arch/powerpc/platforms/powermac/nvram.c:304:24: sparse: sparse: incorrect type in argument 1 (different address spaces)

From: kernel test robot
Date: Mon Dec 04 2023 - 06:02:49 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 33cc938e65a98f1d29d0a18403dbbee050dcad9a
commit: 0a2b782a00f33e7d06dc43d099fa071ae97bee77 fortify: Make pointer arguments const
date: 1 year, 10 months ago
config: powerpc64-randconfig-r122-20231117 (https://download.01.org/0day-ci/archive/20231204/202312041835.DSQPXMaZ-lkp@xxxxxxxxx/config)
compiler: powerpc64-linux-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20231204/202312041835.DSQPXMaZ-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202312041835.DSQPXMaZ-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
>> arch/powerpc/platforms/powermac/nvram.c:304:24: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *const p @@ got unsigned char [noderef] [usertype] __iomem *base @@
arch/powerpc/platforms/powermac/nvram.c:304:24: sparse: expected void const *const p
arch/powerpc/platforms/powermac/nvram.c:304:24: sparse: got unsigned char [noderef] [usertype] __iomem *base
arch/powerpc/platforms/powermac/nvram.c:338:20: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *const p @@ got unsigned char [noderef] [usertype] __iomem *base @@
arch/powerpc/platforms/powermac/nvram.c:338:20: sparse: expected void const *const p
arch/powerpc/platforms/powermac/nvram.c:338:20: sparse: got unsigned char [noderef] [usertype] __iomem *base
arch/powerpc/platforms/powermac/nvram.c:384:24: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *const p @@ got unsigned char [noderef] [usertype] __iomem *base @@
arch/powerpc/platforms/powermac/nvram.c:384:24: sparse: expected void const *const p
arch/powerpc/platforms/powermac/nvram.c:384:24: sparse: got unsigned char [noderef] [usertype] __iomem *base
arch/powerpc/platforms/powermac/nvram.c:429:20: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *const p @@ got unsigned char [noderef] [usertype] __iomem *base @@
arch/powerpc/platforms/powermac/nvram.c:429:20: sparse: expected void const *const p
arch/powerpc/platforms/powermac/nvram.c:429:20: sparse: got unsigned char [noderef] [usertype] __iomem *base
arch/powerpc/platforms/powermac/nvram.c:480:35: sparse: sparse: cast removes address space '__iomem' of expression
arch/powerpc/platforms/powermac/nvram.c:526:35: sparse: sparse: cast removes address space '__iomem' of expression
arch/powerpc/platforms/powermac/nvram.c:527:35: sparse: sparse: cast removes address space '__iomem' of expression
arch/powerpc/platforms/powermac/nvram.c:534:44: sparse: sparse: dereference of noderef expression

vim +304 arch/powerpc/platforms/powermac/nvram.c

14cf11af6cf608 arch/powerpc/platforms/powermac/pmac_nvram.c Paul Mackerras 2005-09-26 279
14cf11af6cf608 arch/powerpc/platforms/powermac/pmac_nvram.c Paul Mackerras 2005-09-26 280 static int sm_erase_bank(int bank)
14cf11af6cf608 arch/powerpc/platforms/powermac/pmac_nvram.c Paul Mackerras 2005-09-26 281 {
2d4b971287cbce arch/powerpc/platforms/powermac/nvram.c Akinobu Mita 2012-01-27 282 int stat;
14cf11af6cf608 arch/powerpc/platforms/powermac/pmac_nvram.c Paul Mackerras 2005-09-26 283 unsigned long timeout;
14cf11af6cf608 arch/powerpc/platforms/powermac/pmac_nvram.c Paul Mackerras 2005-09-26 284
af308377e204e2 arch/powerpc/platforms/powermac/nvram.c Stephen Rothwell 2006-03-23 285 u8 __iomem *base = (u8 __iomem *)nvram_data + core99_bank*NVRAM_SIZE;
14cf11af6cf608 arch/powerpc/platforms/powermac/pmac_nvram.c Paul Mackerras 2005-09-26 286
14cf11af6cf608 arch/powerpc/platforms/powermac/pmac_nvram.c Paul Mackerras 2005-09-26 287 DBG("nvram: Sharp/Micron Erasing bank %d...\n", bank);
14cf11af6cf608 arch/powerpc/platforms/powermac/pmac_nvram.c Paul Mackerras 2005-09-26 288
14cf11af6cf608 arch/powerpc/platforms/powermac/pmac_nvram.c Paul Mackerras 2005-09-26 289 out_8(base, SM_FLASH_CMD_ERASE_SETUP);
14cf11af6cf608 arch/powerpc/platforms/powermac/pmac_nvram.c Paul Mackerras 2005-09-26 290 out_8(base, SM_FLASH_CMD_ERASE_CONFIRM);
14cf11af6cf608 arch/powerpc/platforms/powermac/pmac_nvram.c Paul Mackerras 2005-09-26 291 timeout = 0;
14cf11af6cf608 arch/powerpc/platforms/powermac/pmac_nvram.c Paul Mackerras 2005-09-26 292 do {
14cf11af6cf608 arch/powerpc/platforms/powermac/pmac_nvram.c Paul Mackerras 2005-09-26 293 if (++timeout > 1000000) {
35499c0195e46f arch/powerpc/platforms/powermac/nvram.c Paul Mackerras 2005-10-22 294 printk(KERN_ERR "nvram: Sharp/Micron flash erase timeout !\n");
14cf11af6cf608 arch/powerpc/platforms/powermac/pmac_nvram.c Paul Mackerras 2005-09-26 295 break;
14cf11af6cf608 arch/powerpc/platforms/powermac/pmac_nvram.c Paul Mackerras 2005-09-26 296 }
14cf11af6cf608 arch/powerpc/platforms/powermac/pmac_nvram.c Paul Mackerras 2005-09-26 297 out_8(base, SM_FLASH_CMD_READ_STATUS);
14cf11af6cf608 arch/powerpc/platforms/powermac/pmac_nvram.c Paul Mackerras 2005-09-26 298 stat = in_8(base);
14cf11af6cf608 arch/powerpc/platforms/powermac/pmac_nvram.c Paul Mackerras 2005-09-26 299 } while (!(stat & SM_FLASH_STATUS_DONE));
14cf11af6cf608 arch/powerpc/platforms/powermac/pmac_nvram.c Paul Mackerras 2005-09-26 300
14cf11af6cf608 arch/powerpc/platforms/powermac/pmac_nvram.c Paul Mackerras 2005-09-26 301 out_8(base, SM_FLASH_CMD_CLEAR_STATUS);
14cf11af6cf608 arch/powerpc/platforms/powermac/pmac_nvram.c Paul Mackerras 2005-09-26 302 out_8(base, SM_FLASH_CMD_RESET);
14cf11af6cf608 arch/powerpc/platforms/powermac/pmac_nvram.c Paul Mackerras 2005-09-26 303
2d4b971287cbce arch/powerpc/platforms/powermac/nvram.c Akinobu Mita 2012-01-27 @304 if (memchr_inv(base, 0xff, NVRAM_SIZE)) {
14cf11af6cf608 arch/powerpc/platforms/powermac/pmac_nvram.c Paul Mackerras 2005-09-26 305 printk(KERN_ERR "nvram: Sharp/Micron flash erase failed !\n");
14cf11af6cf608 arch/powerpc/platforms/powermac/pmac_nvram.c Paul Mackerras 2005-09-26 306 return -ENXIO;
14cf11af6cf608 arch/powerpc/platforms/powermac/pmac_nvram.c Paul Mackerras 2005-09-26 307 }
14cf11af6cf608 arch/powerpc/platforms/powermac/pmac_nvram.c Paul Mackerras 2005-09-26 308 return 0;
14cf11af6cf608 arch/powerpc/platforms/powermac/pmac_nvram.c Paul Mackerras 2005-09-26 309 }
14cf11af6cf608 arch/powerpc/platforms/powermac/pmac_nvram.c Paul Mackerras 2005-09-26 310

:::::: The code at line 304 was first introduced by commit
:::::: 2d4b971287cbce16585acda4b76308faa8da0950 powerpc/pmac: Use string library in nvram code

:::::: TO: Akinobu Mita <akinobu.mita@xxxxxxxxx>
:::::: CC: Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki