2018-07-22 23:30:59

by Randy Dunlap

[permalink] [raw]
Subject: [PATCH v2] mtd/maps: fix solutionengine.c printk format warnings

From: Randy Dunlap <[email protected]>

Fix 2 printk format warnings (this driver is currently only used by
arch/sh/) by using "%pap" instead of "%lx".
(or we could just cast the physical addresses to unsigned int)

Fixes these build warnings:

../drivers/mtd/maps/solutionengine.c: In function 'init_soleng_maps':
../include/linux/kern_levels.h:5:18: warning: format '%lx' expects argument of type 'long unsigned int', but argument 2 has type 'resource_size_t' {aka 'unsigned int'} [-Wformat=]
../drivers/mtd/maps/solutionengine.c:62:54: note: format string is defined here
printk(KERN_NOTICE "Solution Engine: Flash at 0x%08lx, EPROM at 0x%08lx\n",
~~~~^
%08x
../include/linux/kern_levels.h:5:18: warning: format '%lx' expects argument of type 'long unsigned int', but argument 3 has type 'resource_size_t' {aka 'unsigned int'} [-Wformat=]
../drivers/mtd/maps/solutionengine.c:62:72: note: format string is defined here
printk(KERN_NOTICE "Solution Engine: Flash at 0x%08lx, EPROM at 0x%08lx\n",
~~~~^
%08x

Cc: David Woodhouse <[email protected]>
Cc: Brian Norris <[email protected]>
Cc: Boris Brezillon <[email protected]>
Cc: Marek Vasut <[email protected]>
Cc: Richard Weinberger <[email protected]>
Cc: [email protected]
Cc: Yoshinori Sato <[email protected]>
Cc: Rich Felker <[email protected]>
Cc: [email protected]
Cc: Sergei Shtylyov <[email protected]>

Signed-off-by: Randy Dunlap <[email protected]>
---
v2: indent all lines inside the new block

drivers/mtd/maps/solutionengine.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)

--- linux-next-20180717.orig/drivers/mtd/maps/solutionengine.c
+++ linux-next-20180717/drivers/mtd/maps/solutionengine.c
@@ -59,9 +59,14 @@ static int __init init_soleng_maps(void)
return -ENXIO;
}
}
- printk(KERN_NOTICE "Solution Engine: Flash at 0x%08lx, EPROM at 0x%08lx\n",
- soleng_flash_map.phys & 0x1fffffff,
- soleng_eprom_map.phys & 0x1fffffff);
+ {
+ resource_size_t fl_phys = soleng_flash_map.phys & 0x1fffffff;
+ resource_size_t ep_phys = soleng_eprom_map.phys & 0x1fffffff;
+
+ printk(KERN_NOTICE
+ "Solution Engine: Flash at 0x%pap, EPROM at 0x%pap\n",
+ &fl_phys, &ep_phys);
+ }
flash_mtd->owner = THIS_MODULE;

eprom_mtd = do_map_probe("map_rom", &soleng_eprom_map);




2018-07-24 05:50:57

by Boris Brezillon

[permalink] [raw]
Subject: Re: [PATCH v2] mtd/maps: fix solutionengine.c printk format warnings

On Sun, 22 Jul 2018 16:28:52 -0700
Randy Dunlap <[email protected]> wrote:

> From: Randy Dunlap <[email protected]>
>
> Fix 2 printk format warnings (this driver is currently only used by
> arch/sh/) by using "%pap" instead of "%lx".
> (or we could just cast the physical addresses to unsigned int)
>
> Fixes these build warnings:
>
> ../drivers/mtd/maps/solutionengine.c: In function 'init_soleng_maps':
> ../include/linux/kern_levels.h:5:18: warning: format '%lx' expects argument of type 'long unsigned int', but argument 2 has type 'resource_size_t' {aka 'unsigned int'} [-Wformat=]
> ../drivers/mtd/maps/solutionengine.c:62:54: note: format string is defined here
> printk(KERN_NOTICE "Solution Engine: Flash at 0x%08lx, EPROM at 0x%08lx\n",
> ~~~~^
> %08x
> ../include/linux/kern_levels.h:5:18: warning: format '%lx' expects argument of type 'long unsigned int', but argument 3 has type 'resource_size_t' {aka 'unsigned int'} [-Wformat=]
> ../drivers/mtd/maps/solutionengine.c:62:72: note: format string is defined here
> printk(KERN_NOTICE "Solution Engine: Flash at 0x%08lx, EPROM at 0x%08lx\n",
> ~~~~^
> %08x
>
> Cc: David Woodhouse <[email protected]>
> Cc: Brian Norris <[email protected]>
> Cc: Boris Brezillon <[email protected]>
> Cc: Marek Vasut <[email protected]>
> Cc: Richard Weinberger <[email protected]>
> Cc: [email protected]
> Cc: Yoshinori Sato <[email protected]>
> Cc: Rich Felker <[email protected]>
> Cc: [email protected]
> Cc: Sergei Shtylyov <[email protected]>
>
> Signed-off-by: Randy Dunlap <[email protected]>
> ---
> v2: indent all lines inside the new block
>
> drivers/mtd/maps/solutionengine.c | 11 ++++++++---
> 1 file changed, 8 insertions(+), 3 deletions(-)
>
> --- linux-next-20180717.orig/drivers/mtd/maps/solutionengine.c
> +++ linux-next-20180717/drivers/mtd/maps/solutionengine.c
> @@ -59,9 +59,14 @@ static int __init init_soleng_maps(void)
> return -ENXIO;
> }
> }
> - printk(KERN_NOTICE "Solution Engine: Flash at 0x%08lx, EPROM at 0x%08lx\n",
> - soleng_flash_map.phys & 0x1fffffff,
> - soleng_eprom_map.phys & 0x1fffffff);

Hm, not sure why masking with 0x1fffffff is required. It seems .phys is
either 0 or 0x1000000, so maybe we should just go for

printk(KERN_NOTICE "Solution Engine: Flash at 0x%pap, EPROM at 0x%pap\n",
&soleng_flash_map.phys, &soleng_eprom_map.phys);


> + {
> + resource_size_t fl_phys = soleng_flash_map.phys & 0x1fffffff;
> + resource_size_t ep_phys = soleng_eprom_map.phys & 0x1fffffff;
> +
> + printk(KERN_NOTICE
> + "Solution Engine: Flash at 0x%pap, EPROM at 0x%pap\n",
> + &fl_phys, &ep_phys);
> + }
> flash_mtd->owner = THIS_MODULE;
>
> eprom_mtd = do_map_probe("map_rom", &soleng_eprom_map);
>
>