Subject: Re: linux-next: build warning after merge of the bitmap tree

From: Yury Norov <[email-masked]>
Date: Fri, 15 Jul 2022 06:40:50 -0700

On Fri, Jul 15, 2022 at 10:22:55PM +1000, Stephen Rothwell wrote:
> Hi all,
> 
> After merging the bitmap tree, today's linux-next build (arm64 defconfig)
> produced this warning:

Fixed, thanks.

(I found some issues of this sort with allyesconfig, but not this one.)
 
> In file included from include/linux/device.h:15,
>                  from include/linux/dmaengine.h:8,
>                  from drivers/dma/ti/k3-udma.c:9:
> drivers/dma/ti/k3-udma.c: In function 'setup_resources':
> drivers/dma/ti/k3-udma.c:5000:26: warning: format '%u' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Wformat=]
>  5000 |                          "Channels: %d (tchan: %u, rchan: %u, gp-rflow: %u)\n",
>       |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> include/linux/dev_printk.h:110:30: note: in definition of macro 'dev_printk_index_wrap'
>   110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
>       |                              ^~~
> include/linux/dev_printk.h:150:58: note: in expansion of macro 'dev_fmt'
>   150 |         dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
>       |                                                          ^~~~~~~
> drivers/dma/ti/k3-udma.c:4999:17: note: in expansion of macro 'dev_info'
>  4999 |                 dev_info(dev,
>       |                 ^~~~~~~~
> drivers/dma/ti/k3-udma.c:5000:49: note: format string is defined here
>  5000 |                          "Channels: %d (tchan: %u, rchan: %u, gp-rflow: %u)\n",
>       |                                                ~^
>       |                                                 |
>       |                                                 unsigned int
>       |                                                %lu
> In file included from include/linux/device.h:15,
>                  from include/linux/dmaengine.h:8,
>                  from drivers/dma/ti/k3-udma.c:9:
> drivers/dma/ti/k3-udma.c:5000:26: warning: format '%u' expects argument of type 'unsigned int', but argument 5 has type 'long unsigned int' [-Wformat=]
>  5000 |                          "Channels: %d (tchan: %u, rchan: %u, gp-rflow: %u)\n",
>       |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> include/linux/dev_printk.h:110:30: note: in definition of macro 'dev_printk_index_wrap'
>   110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
>       |                              ^~~
> include/linux/dev_printk.h:150:58: note: in expansion of macro 'dev_fmt'
>   150 |         dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
>       |                                                          ^~~~~~~
> drivers/dma/ti/k3-udma.c:4999:17: note: in expansion of macro 'dev_info'
>  4999 |                 dev_info(dev,
>       |                 ^~~~~~~~
> drivers/dma/ti/k3-udma.c:5000:60: note: format string is defined here
>  5000 |                          "Channels: %d (tchan: %u, rchan: %u, gp-rflow: %u)\n",
>       |                                                           ~^
>       |                                                            |
>       |                                                            unsigned int
>       |                                                           %lu
> In file included from include/linux/device.h:15,
>                  from include/linux/dmaengine.h:8,
>                  from drivers/dma/ti/k3-udma.c:9:
> drivers/dma/ti/k3-udma.c:5000:26: warning: format '%u' expects argument of type 'unsigned int', but argument 6 has type 'long unsigned int' [-Wformat=]
>  5000 |                          "Channels: %d (tchan: %u, rchan: %u, gp-rflow: %u)\n",
>       |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> include/linux/dev_printk.h:110:30: note: in definition of macro 'dev_printk_index_wrap'
>   110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
>       |                              ^~~
> include/linux/dev_printk.h:150:58: note: in expansion of macro 'dev_fmt'
>   150 |         dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
>       |                                                          ^~~~~~~
> drivers/dma/ti/k3-udma.c:4999:17: note: in expansion of macro 'dev_info'
>  4999 |                 dev_info(dev,
>       |                 ^~~~~~~~
> drivers/dma/ti/k3-udma.c:5000:74: note: format string is defined here
>  5000 |                          "Channels: %d (tchan: %u, rchan: %u, gp-rflow: %u)\n",
>       |                                                                         ~^
>       |                                                                          |
>       |                                                                          unsigned int
>       |                                                                         %lu
> In file included from include/linux/device.h:15,
>                  from include/linux/dmaengine.h:8,
>                  from drivers/dma/ti/k3-udma.c:9:
> drivers/dma/ti/k3-udma.c:5011:26: warning: format '%u' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Wformat=]
>  5011 |                          "Channels: %d (bchan: %u, tchan: %u, rchan: %u)\n",
>       |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> include/linux/dev_printk.h:110:30: note: in definition of macro 'dev_printk_index_wrap'
>   110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
>       |                              ^~~
> include/linux/dev_printk.h:150:58: note: in expansion of macro 'dev_fmt'
>   150 |         dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
>       |                                                          ^~~~~~~
> drivers/dma/ti/k3-udma.c:5010:17: note: in expansion of macro 'dev_info'
>  5010 |                 dev_info(dev,
>       |                 ^~~~~~~~
> drivers/dma/ti/k3-udma.c:5011:49: note: format string is defined here
>  5011 |                          "Channels: %d (bchan: %u, tchan: %u, rchan: %u)\n",
>       |                                                ~^
>       |                                                 |
>       |                                                 unsigned int
>       |                                                %lu
> In file included from include/linux/device.h:15,
>                  from include/linux/dmaengine.h:8,
>                  from drivers/dma/ti/k3-udma.c:9:
> drivers/dma/ti/k3-udma.c:5011:26: warning: format '%u' expects argument of type 'unsigned int', but argument 5 has type 'long unsigned int' [-Wformat=]
>  5011 |                          "Channels: %d (bchan: %u, tchan: %u, rchan: %u)\n",
>       |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> include/linux/dev_printk.h:110:30: note: in definition of macro 'dev_printk_index_wrap'
>   110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
>       |                              ^~~
> include/linux/dev_printk.h:150:58: note: in expansion of macro 'dev_fmt'
>   150 |         dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
>       |                                                          ^~~~~~~
> drivers/dma/ti/k3-udma.c:5010:17: note: in expansion of macro 'dev_info'
>  5010 |                 dev_info(dev,
>       |                 ^~~~~~~~
> drivers/dma/ti/k3-udma.c:5011:60: note: format string is defined here
>  5011 |                          "Channels: %d (bchan: %u, tchan: %u, rchan: %u)\n",
>       |                                                           ~^
>       |                                                            |
>       |                                                            unsigned int
>       |                                                           %lu
> In file included from include/linux/device.h:15,
>                  from include/linux/dmaengine.h:8,
>                  from drivers/dma/ti/k3-udma.c:9:
> drivers/dma/ti/k3-udma.c:5011:26: warning: format '%u' expects argument of type 'unsigned int', but argument 6 has type 'long unsigned int' [-Wformat=]
>  5011 |                          "Channels: %d (bchan: %u, tchan: %u, rchan: %u)\n",
>       |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> include/linux/dev_printk.h:110:30: note: in definition of macro 'dev_printk_index_wrap'
>   110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
>       |                              ^~~
> include/linux/dev_printk.h:150:58: note: in expansion of macro 'dev_fmt'
>   150 |         dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
>       |                                                          ^~~~~~~
> drivers/dma/ti/k3-udma.c:5010:17: note: in expansion of macro 'dev_info'
>  5010 |                 dev_info(dev,
>       |                 ^~~~~~~~
> drivers/dma/ti/k3-udma.c:5011:71: note: format string is defined here
>  5011 |                          "Channels: %d (bchan: %u, tchan: %u, rchan: %u)\n",
>       |                                                                      ~^
>       |                                                                       |
>       |                                                                       unsigned int
>       |                                                                      %lu
> In file included from include/linux/device.h:15,
>                  from include/linux/dmaengine.h:8,
>                  from drivers/dma/ti/k3-udma.c:9:
> drivers/dma/ti/k3-udma.c:5022:26: warning: format '%u' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Wformat=]
>  5022 |                          "Channels: %d (tchan: %u, rchan: %u)\n",
>       |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> include/linux/dev_printk.h:110:30: note: in definition of macro 'dev_printk_index_wrap'
>   110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
>       |                              ^~~
> include/linux/dev_printk.h:150:58: note: in expansion of macro 'dev_fmt'
>   150 |         dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
>       |                                                          ^~~~~~~
> drivers/dma/ti/k3-udma.c:5021:17: note: in expansion of macro 'dev_info'
>  5021 |                 dev_info(dev,
>       |                 ^~~~~~~~
> drivers/dma/ti/k3-udma.c:5022:49: note: format string is defined here
>  5022 |                          "Channels: %d (tchan: %u, rchan: %u)\n",
>       |                                                ~^
>       |                                                 |
>       |                                                 unsigned int
>       |                                                %lu
> In file included from include/linux/device.h:15,
>                  from include/linux/dmaengine.h:8,
>                  from drivers/dma/ti/k3-udma.c:9:
> drivers/dma/ti/k3-udma.c:5022:26: warning: format '%u' expects argument of type 'unsigned int', but argument 5 has type 'long unsigned int' [-Wformat=]
>  5022 |                          "Channels: %d (tchan: %u, rchan: %u)\n",
>       |                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> include/linux/dev_printk.h:110:30: note: in definition of macro 'dev_printk_index_wrap'
>   110 |                 _p_func(dev, fmt, ##__VA_ARGS__);                       \
>       |                              ^~~
> include/linux/dev_printk.h:150:58: note: in expansion of macro 'dev_fmt'
>   150 |         dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
>       |                                                          ^~~~~~~
> drivers/dma/ti/k3-udma.c:5021:17: note: in expansion of macro 'dev_info'
>  5021 |                 dev_info(dev,
>       |                 ^~~~~~~~
> drivers/dma/ti/k3-udma.c:5022:60: note: format string is defined here
>  5022 |                          "Channels: %d (tchan: %u, rchan: %u)\n",
>       |                                                           ~^
>       |                                                            |
>       |                                                            unsigned int
>       |                                                           %lu
> 
> Introduced by commit
> 
>   31563fb891aa ("lib/bitmap: change type of bitmap_weight to unsigned long")
> 
> I have applied the following patch for today:
> 
> From: Stephen Rothwell <[email-masked]>
> Date: Fri, 15 Jul 2022 22:15:40 +1000
> Subject: [PATCH] fix up for k3-udma.c
> 
> due to "lib/bitmap: change type of bitmap_weight to unsigned long"
> 
> Signed-off-by: Stephen Rothwell <[email-masked]>
> ---
>  drivers/dma/ti/k3-udma.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c
> index 2f0d2c68c93c..07cb48db76ba 100644
> --- a/drivers/dma/ti/k3-udma.c
> +++ b/drivers/dma/ti/k3-udma.c
> @@ -4997,7 +4997,7 @@ static int setup_resources(struct udma_dev *ud)
>  	switch (ud->match_data->type) {
>  	case DMA_TYPE_UDMA:
>  		dev_info(dev,
> -			 "Channels: %d (tchan: %u, rchan: %u, gp-rflow: %u)\n",
> +			 "Channels: %d (tchan: %lu, rchan: %lu, gp-rflow: %lu)\n",
>  			 ch_count,
>  			 ud->tchan_cnt - bitmap_weight(ud->tchan_map,
>  						       ud->tchan_cnt),
> @@ -5008,7 +5008,7 @@ static int setup_resources(struct udma_dev *ud)
>  		break;
>  	case DMA_TYPE_BCDMA:
>  		dev_info(dev,
> -			 "Channels: %d (bchan: %u, tchan: %u, rchan: %u)\n",
> +			 "Channels: %d (bchan: %lu, tchan: %lu, rchan: %lu)\n",
>  			 ch_count,
>  			 ud->bchan_cnt - bitmap_weight(ud->bchan_map,
>  						       ud->bchan_cnt),
> @@ -5019,7 +5019,7 @@ static int setup_resources(struct udma_dev *ud)
>  		break;
>  	case DMA_TYPE_PKTDMA:
>  		dev_info(dev,
> -			 "Channels: %d (tchan: %u, rchan: %u)\n",
> +			 "Channels: %d (tchan: %lu, rchan: %lu)\n",
>  			 ch_count,
>  			 ud->tchan_cnt - bitmap_weight(ud->tchan_map,
>  						       ud->tchan_cnt),
> -- 
> 2.35.1
> 
> -- 
> Cheers,
> Stephen Rothwell