Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

crypto: atmel - fix 64-bit build warnings

When we enable COMPILE_TEST building for the Atmel sha and tdes implementations,
we run into a couple of warnings about incorrect format strings, e.g.

In file included from include/linux/platform_device.h:14:0,
from drivers/crypto/atmel-sha.c:24:
drivers/crypto/atmel-sha.c: In function 'atmel_sha_xmit_cpu':
drivers/crypto/atmel-sha.c:571:19: error: format '%d' expects argument of type 'int', but argument 6 has type 'size_t {aka long unsigned int}' [-Werror=format=]
In file included from include/linux/printk.h:6:0,
from include/linux/kernel.h:13,
from drivers/crypto/atmel-tdes.c:17:
drivers/crypto/atmel-tdes.c: In function 'atmel_tdes_crypt_dma_stop':
include/linux/kern_levels.h:4:18: error: format '%u' expects argument of type 'unsigned int', but argument 2 has type 'size_t {aka long unsigned int}' [-Werror=format=]

These are all fixed by using the "%z" modifier for size_t data.

There are also a few uses of min()/max() with incompatible types:

drivers/crypto/atmel-tdes.c: In function 'atmel_tdes_crypt_start':
drivers/crypto/atmel-tdes.c:528:181: error: comparison of distinct pointer types lacks a cast [-Werror]

Where possible, we should use consistent types here, otherwise we can use
min_t()/max_t() to get well-defined behavior without a warning.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

authored by

Arnd Bergmann and committed by
Herbert Xu
4c147bcf ceb4afb3

+15 -15
+8 -8
drivers/crypto/atmel-sha.c
··· 568 568 int count, len32; 569 569 const u32 *buffer = (const u32 *)buf; 570 570 571 - dev_dbg(dd->dev, "xmit_cpu: digcnt: 0x%llx 0x%llx, length: %d, final: %d\n", 571 + dev_dbg(dd->dev, "xmit_cpu: digcnt: 0x%llx 0x%llx, length: %zd, final: %d\n", 572 572 ctx->digcnt[1], ctx->digcnt[0], length, final); 573 573 574 574 atmel_sha_write_ctrl(dd, 0); ··· 597 597 struct atmel_sha_reqctx *ctx = ahash_request_ctx(dd->req); 598 598 int len32; 599 599 600 - dev_dbg(dd->dev, "xmit_pdc: digcnt: 0x%llx 0x%llx, length: %d, final: %d\n", 600 + dev_dbg(dd->dev, "xmit_pdc: digcnt: 0x%llx 0x%llx, length: %zd, final: %d\n", 601 601 ctx->digcnt[1], ctx->digcnt[0], length1, final); 602 602 603 603 len32 = DIV_ROUND_UP(length1, sizeof(u32)); ··· 644 644 struct dma_async_tx_descriptor *in_desc; 645 645 struct scatterlist sg[2]; 646 646 647 - dev_dbg(dd->dev, "xmit_dma: digcnt: 0x%llx 0x%llx, length: %d, final: %d\n", 647 + dev_dbg(dd->dev, "xmit_dma: digcnt: 0x%llx 0x%llx, length: %zd, final: %d\n", 648 648 ctx->digcnt[1], ctx->digcnt[0], length1, final); 649 649 650 650 dd->dma_lch_in.dma_conf.src_maxburst = 16; ··· 723 723 ctx->dma_addr = dma_map_single(dd->dev, ctx->buffer, 724 724 ctx->buflen + ctx->block_size, DMA_TO_DEVICE); 725 725 if (dma_mapping_error(dd->dev, ctx->dma_addr)) { 726 - dev_err(dd->dev, "dma %u bytes error\n", ctx->buflen + 726 + dev_err(dd->dev, "dma %zu bytes error\n", ctx->buflen + 727 727 ctx->block_size); 728 728 atmel_sha_complete(dd, -EINVAL); 729 729 } ··· 744 744 745 745 final = (ctx->flags & SHA_FLAGS_FINUP) && !ctx->total; 746 746 747 - dev_dbg(dd->dev, "slow: bufcnt: %u, digcnt: 0x%llx 0x%llx, final: %d\n", 747 + dev_dbg(dd->dev, "slow: bufcnt: %zu, digcnt: 0x%llx 0x%llx, final: %d\n", 748 748 ctx->bufcnt, ctx->digcnt[1], ctx->digcnt[0], final); 749 749 750 750 if (final) ··· 772 772 if (ctx->bufcnt || ctx->offset) 773 773 return atmel_sha_update_dma_slow(dd); 774 774 775 - dev_dbg(dd->dev, "fast: digcnt: 0x%llx 0x%llx, bufcnt: %u, total: %u\n", 775 + dev_dbg(dd->dev, "fast: digcnt: 0x%llx 0x%llx, bufcnt: %zd, total: %u\n", 776 776 ctx->digcnt[1], ctx->digcnt[0], ctx->bufcnt, ctx->total); 777 777 778 778 sg = ctx->sg; ··· 814 814 ctx->dma_addr = dma_map_single(dd->dev, ctx->buffer, 815 815 ctx->buflen + ctx->block_size, DMA_TO_DEVICE); 816 816 if (dma_mapping_error(dd->dev, ctx->dma_addr)) { 817 - dev_err(dd->dev, "dma %u bytes error\n", 817 + dev_err(dd->dev, "dma %zu bytes error\n", 818 818 ctx->buflen + ctx->block_size); 819 819 atmel_sha_complete(dd, -EINVAL); 820 820 } ··· 994 994 if (ctx->digcnt[0] || ctx->digcnt[1]) 995 995 atmel_sha_copy_ready_hash(req); 996 996 997 - dev_dbg(dd->dev, "digcnt: 0x%llx 0x%llx, bufcnt: %d\n", ctx->digcnt[1], 997 + dev_dbg(dd->dev, "digcnt: 0x%llx 0x%llx, bufcnt: %zd\n", ctx->digcnt[1], 998 998 ctx->digcnt[0], ctx->bufcnt); 999 999 1000 1000 return 0;
+7 -7
drivers/crypto/atmel-tdes.c
··· 150 150 static int atmel_tdes_sg_copy(struct scatterlist **sg, size_t *offset, 151 151 void *buf, size_t buflen, size_t total, int out) 152 152 { 153 - unsigned int count, off = 0; 153 + size_t count, off = 0; 154 154 155 155 while (buflen && total) { 156 156 count = min((*sg)->length - *offset, total); ··· 336 336 dd->buf_out, dd->buflen, dd->dma_size, 1); 337 337 if (count != dd->dma_size) { 338 338 err = -EINVAL; 339 - pr_err("not all data converted: %u\n", count); 339 + pr_err("not all data converted: %zu\n", count); 340 340 } 341 341 } 342 342 ··· 361 361 dd->dma_addr_in = dma_map_single(dd->dev, dd->buf_in, 362 362 dd->buflen, DMA_TO_DEVICE); 363 363 if (dma_mapping_error(dd->dev, dd->dma_addr_in)) { 364 - dev_err(dd->dev, "dma %d bytes error\n", dd->buflen); 364 + dev_err(dd->dev, "dma %zd bytes error\n", dd->buflen); 365 365 err = -EINVAL; 366 366 goto err_map_in; 367 367 } ··· 369 369 dd->dma_addr_out = dma_map_single(dd->dev, dd->buf_out, 370 370 dd->buflen, DMA_FROM_DEVICE); 371 371 if (dma_mapping_error(dd->dev, dd->dma_addr_out)) { 372 - dev_err(dd->dev, "dma %d bytes error\n", dd->buflen); 372 + dev_err(dd->dev, "dma %zd bytes error\n", dd->buflen); 373 373 err = -EINVAL; 374 374 goto err_map_out; 375 375 } ··· 525 525 526 526 527 527 if (fast) { 528 - count = min(dd->total, sg_dma_len(dd->in_sg)); 529 - count = min(count, sg_dma_len(dd->out_sg)); 528 + count = min_t(size_t, dd->total, sg_dma_len(dd->in_sg)); 529 + count = min_t(size_t, count, sg_dma_len(dd->out_sg)); 530 530 531 531 err = dma_map_sg(dd->dev, dd->in_sg, 1, DMA_TO_DEVICE); 532 532 if (!err) { ··· 661 661 dd->buf_out, dd->buflen, dd->dma_size, 1); 662 662 if (count != dd->dma_size) { 663 663 err = -EINVAL; 664 - pr_err("not all data converted: %u\n", count); 664 + pr_err("not all data converted: %zu\n", count); 665 665 } 666 666 } 667 667 }