2022-05-02 22:02:32

by kernel test robot

[permalink] [raw]
Subject: [asahilinux:asahi-soc/rtkit-sart-nvme 4/6] drivers/soc/apple/sart.c:284:4: warning: format specifies type 'unsigned long long' but the argument has type 'phys_addr_t' (aka 'unsigned int')

tree: https://github.com/AsahiLinux/linux asahi-soc/rtkit-sart-nvme
head: b483360a58a6f47f31a470feffc9fd41e8d66b36
commit: 09724d641508aead22e8e4a9761b2255ee6a38fc [4/6] soc: apple: Add SART driver
config: hexagon-allyesconfig (https://download.01.org/0day-ci/archive/20220502/[email protected]/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 09325d36061e42b495d1f4c7e933e260eac260ed)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/AsahiLinux/linux/commit/09724d641508aead22e8e4a9761b2255ee6a38fc
git remote add asahilinux https://github.com/AsahiLinux/linux
git fetch --no-tags asahilinux asahi-soc/rtkit-sart-nvme
git checkout 09724d641508aead22e8e4a9761b2255ee6a38fc
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash drivers/soc/apple/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>

All warnings (new ones prefixed by >>):

>> drivers/soc/apple/sart.c:284:4: warning: format specifies type 'unsigned long long' but the argument has type 'phys_addr_t' (aka 'unsigned int') [-Wformat]
paddr, size);
^~~~~
include/linux/dev_printk.h:146:70: note: expanded from macro 'dev_warn'
dev_printk_index_wrap(_dev_warn, KERN_WARNING, dev, dev_fmt(fmt), ##__VA_ARGS__)
~~~ ^~~~~~~~~~~
include/linux/dev_printk.h:110:23: note: expanded from macro 'dev_printk_index_wrap'
_p_func(dev, fmt, ##__VA_ARGS__); \
~~~ ^~~~~~~~~~~
1 warning generated.


vim +284 drivers/soc/apple/sart.c

253
254 int apple_sart_remove_allowed_region(struct apple_sart *sart, phys_addr_t paddr,
255 size_t size)
256 {
257 int i;
258
259 dev_dbg(sart->dev,
260 "will remove [paddr: %pa, size: 0x%zx] from allowed regions\n",
261 &paddr, size);
262
263 for (i = 0; i < APPLE_SART_MAX_ENTRIES; ++i) {
264 u8 eflags;
265 size_t esize;
266 phys_addr_t epaddr;
267
268 if (test_bit(i, &sart->protected_entries))
269 continue;
270
271 sart->ops->get_entry(sart, i, &eflags, &epaddr, &esize);
272
273 if (epaddr != paddr || esize != size)
274 continue;
275
276 sart->ops->set_entry(sart, i, 0, 0, 0);
277
278 clear_bit(i, &sart->used_entries);
279 dev_dbg(sart->dev, "cleared entry %d\n", i);
280 return 0;
281 }
282
283 dev_warn(sart->dev, "entry [paddr: 0x%llx, size: 0x%zx] not found\n",
> 284 paddr, size);
285
286 return -EINVAL;
287 }
288 EXPORT_SYMBOL_GPL(apple_sart_remove_allowed_region);
289

--
0-DAY CI Kernel Test Service
https://01.org/lkp


2022-05-02 22:49:47

by Sven Peter

[permalink] [raw]
Subject: Re: [asahilinux:asahi-soc/rtkit-sart-nvme 4/6] drivers/soc/apple/sart.c:284:4: warning: format specifies type 'unsigned long long' but the argument has type 'phys_addr_t' (aka 'unsigned int')

Hi Arnd,

On Mon, May 2, 2022, at 08:39, Arnd Bergmann wrote:
> On Mon, May 2, 2022 at 2:21 AM kernel test robot <[email protected]> wrote:
>
>> 277
>> 278 clear_bit(i, &sart->used_entries);
>> 279 dev_dbg(sart->dev, "cleared entry %d\n", i);
>> 280 return 0;
>> 281 }
>> 282
>> 283 dev_warn(sart->dev, "entry [paddr: 0x%llx, size: 0x%zx] not found\n",
>> > 284 paddr, size);
>> 285
>
> Hi Sven,
>
> to print a phys_addr_t, you should pass the address by reference and use
> the special "%pap" format string modifier. I'm not entirely sure if it should
> actually be a dma_addr_t instead of a phys_addr_t. If the type gets changed,
> the format string would become "%pad".

I've been using %pa for all other prints in this file since v1 and just
missed this one for some reason. I'm a bit confused why the bots found this last
one only now but I'll fix it as well.


Thanks,

Sven

2022-05-02 23:25:59

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [asahilinux:asahi-soc/rtkit-sart-nvme 4/6] drivers/soc/apple/sart.c:284:4: warning: format specifies type 'unsigned long long' but the argument has type 'phys_addr_t' (aka 'unsigned int')

On Mon, May 2, 2022 at 9:34 AM Sven Peter <[email protected]> wrote:
> On Mon, May 2, 2022, at 08:39, Arnd Bergmann wrote:
> >
> > to print a phys_addr_t, you should pass the address by reference and use
> > the special "%pap" format string modifier. I'm not entirely sure if it should
> > actually be a dma_addr_t instead of a phys_addr_t. If the type gets changed,
> > the format string would become "%pad".
>
> I've been using %pa for all other prints in this file since v1 and just
> missed this one for some reason. I'm a bit confused why the bots found this last
> one only now but I'll fix it as well.

You only get a warning for 32-bit builds using 64-bit phys_addr_t,
which is fairly
rare, so you can't predict whether the bots will actually run into this.

Arnd

2022-05-03 01:04:41

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [asahilinux:asahi-soc/rtkit-sart-nvme 4/6] drivers/soc/apple/sart.c:284:4: warning: format specifies type 'unsigned long long' but the argument has type 'phys_addr_t' (aka 'unsigned int')

On Mon, May 2, 2022 at 2:21 AM kernel test robot <[email protected]> wrote:

> 277
> 278 clear_bit(i, &sart->used_entries);
> 279 dev_dbg(sart->dev, "cleared entry %d\n", i);
> 280 return 0;
> 281 }
> 282
> 283 dev_warn(sart->dev, "entry [paddr: 0x%llx, size: 0x%zx] not found\n",
> > 284 paddr, size);
> 285

Hi Sven,

to print a phys_addr_t, you should pass the address by reference and use
the special "%pap" format string modifier. I'm not entirely sure if it should
actually be a dma_addr_t instead of a phys_addr_t. If the type gets changed,
the format string would become "%pad".

Arnd