[PATCH] crypto: zip - add a cast for printing atomic64_t values

From: Arnd Bergmann
Date: Mon Mar 20 2017 - 08:41:29 EST


kernelci.org reports a build-time regression on linux-next, with a harmless
warning in x86 allmodconfig:

drivers/crypto/cavium/zip/zip_main.c:489:18: warning: format '%ld' expects argument of type 'long int', but argument 7 has type 'long long int' [-Wformat=]
drivers/crypto/cavium/zip/zip_main.c:489:18: warning: format '%ld' expects argument of type 'long int', but argument 6 has type 'long long int' [-Wformat=]
drivers/crypto/cavium/zip/zip_main.c:489:18: warning: format '%ld' expects argument of type 'long int', but argument 5 has type 'long long int' [-Wformat=]

The return type for atomic64_read() unfortunately differs between
architectures, with some defining it as atomic_long_read() and others
returning a 64-bit type explicitly. Fixing this in general would be nice,
but also require changing other users of these functions, so the simpler
workaround is to add a cast here that avoids the warnings on the default
build.

Fixes: 09ae5d37e093 ("crypto: zip - Add Compression/Decompression statistics")
Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
---
drivers/crypto/cavium/zip/zip_main.c | 40 ++++++++++++++++++------------------
1 file changed, 20 insertions(+), 20 deletions(-)

diff --git a/drivers/crypto/cavium/zip/zip_main.c b/drivers/crypto/cavium/zip/zip_main.c
index 0951e20b395b..49f50c0e0308 100644
--- a/drivers/crypto/cavium/zip/zip_main.c
+++ b/drivers/crypto/cavium/zip/zip_main.c
@@ -488,32 +488,32 @@ static int zip_show_stats(struct seq_file *s, void *unused)
atomic64_read(&st->comp_out_bytes));
seq_printf(s, " ZIP Device %d Stats\n"
"-----------------------------------\n"
- "Comp Req Submitted : \t%ld\n"
- "Comp Req Completed : \t%ld\n"
- "Compress In Bytes : \t%ld\n"
- "Compressed Out Bytes : \t%ld\n"
+ "Comp Req Submitted : \t%lld\n"
+ "Comp Req Completed : \t%lld\n"
+ "Compress In Bytes : \t%lld\n"
+ "Compressed Out Bytes : \t%lld\n"
"Average Chunk size : \t%llu\n"
"Average Compression ratio : \t%llu\n"
- "Decomp Req Submitted : \t%ld\n"
- "Decomp Req Completed : \t%ld\n"
- "Decompress In Bytes : \t%ld\n"
- "Decompressed Out Bytes : \t%ld\n"
- "Decompress Bad requests : \t%ld\n"
- "Pending Req : \t%ld\n"
+ "Decomp Req Submitted : \t%lld\n"
+ "Decomp Req Completed : \t%lld\n"
+ "Decompress In Bytes : \t%lld\n"
+ "Decompressed Out Bytes : \t%lld\n"
+ "Decompress Bad requests : \t%lld\n"
+ "Pending Req : \t%lld\n"
"---------------------------------\n",
index,
- atomic64_read(&st->comp_req_submit),
- atomic64_read(&st->comp_req_complete),
- atomic64_read(&st->comp_in_bytes),
- atomic64_read(&st->comp_out_bytes),
+ (u64)atomic64_read(&st->comp_req_submit),
+ (u64)atomic64_read(&st->comp_req_complete),
+ (u64)atomic64_read(&st->comp_in_bytes),
+ (u64)atomic64_read(&st->comp_out_bytes),
avg_chunk,
avg_cr,
- atomic64_read(&st->decomp_req_submit),
- atomic64_read(&st->decomp_req_complete),
- atomic64_read(&st->decomp_in_bytes),
- atomic64_read(&st->decomp_out_bytes),
- atomic64_read(&st->decomp_bad_reqs),
- atomic64_read(&st->pending_req));
+ (u64)atomic64_read(&st->decomp_req_submit),
+ (u64)atomic64_read(&st->decomp_req_complete),
+ (u64)atomic64_read(&st->decomp_in_bytes),
+ (u64)atomic64_read(&st->decomp_out_bytes),
+ (u64)atomic64_read(&st->decomp_bad_reqs),
+ (u64)atomic64_read(&st->pending_req));

/* Reset pending requests count */
atomic64_set(&st->pending_req, 0);
--
2.9.0