drivers/firmware/dmi_scan.c:145:13: sparse: sparse: incorrect type in assignment (different address spaces)

From: kernel test robot
Date: Mon Dec 11 2023 - 18:17:20 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: a39b6ac3781d46ba18193c9dbb2110f31e9bffe9
commit: aa5222e92f8000ed3c1c38dddf11c83222aadfb3 sched/deadline: Don't use dubious signed bitfields
date: 6 years ago
config: arm64-randconfig-r121-20231116 (https://download.01.org/0day-ci/archive/20231212/202312120718.oZqe253R-lkp@xxxxxxxxx/config)
compiler: aarch64-linux-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20231212/202312120718.oZqe253R-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/202312120718.oZqe253R-lkp@xxxxxxxxx/

sparse warnings: (new ones prefixed by >>)
>> drivers/firmware/dmi_scan.c:145:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [usertype] *buf @@ got void [noderef] __iomem * @@
drivers/firmware/dmi_scan.c:145:13: sparse: expected unsigned char [usertype] *buf
drivers/firmware/dmi_scan.c:145:13: sparse: got void [noderef] __iomem *
>> drivers/firmware/dmi_scan.c:153:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned char [usertype] *buf @@
drivers/firmware/dmi_scan.c:153:9: sparse: expected void volatile [noderef] __iomem *addr
drivers/firmware/dmi_scan.c:153:9: sparse: got unsigned char [usertype] *buf
>> drivers/firmware/dmi_scan.c:736:19: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [usertype] *dmi_table @@ got void [noderef] __iomem * @@
drivers/firmware/dmi_scan.c:736:19: sparse: expected unsigned char [usertype] *dmi_table
drivers/firmware/dmi_scan.c:736:19: sparse: got void [noderef] __iomem *
>> drivers/firmware/dmi_scan.c:755:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned char [usertype] *dmi_table @@
drivers/firmware/dmi_scan.c:755:9: sparse: expected void volatile [noderef] __iomem *addr
drivers/firmware/dmi_scan.c:755:9: sparse: got unsigned char [usertype] *dmi_table
drivers/firmware/dmi_scan.c:1031:13: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned char [usertype] *buf @@ got void [noderef] __iomem * @@
drivers/firmware/dmi_scan.c:1031:13: sparse: expected unsigned char [usertype] *buf
drivers/firmware/dmi_scan.c:1031:13: sparse: got void [noderef] __iomem *
drivers/firmware/dmi_scan.c:1037:9: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void volatile [noderef] __iomem *addr @@ got unsigned char [usertype] *buf @@
drivers/firmware/dmi_scan.c:1037:9: sparse: expected void volatile [noderef] __iomem *addr
drivers/firmware/dmi_scan.c:1037:9: sparse: got unsigned char [usertype] *buf

vim +145 drivers/firmware/dmi_scan.c

7fce084a0b3e2b drivers/firmware/dmi_scan.c Jean Delvare 2007-11-03 138
e7a19c5624c66a drivers/firmware/dmi_scan.c Jean Delvare 2009-03-30 139 static int __init dmi_walk_early(void (*decode)(const struct dmi_header *,
e7a19c5624c66a drivers/firmware/dmi_scan.c Jean Delvare 2009-03-30 140 void *))
7fce084a0b3e2b drivers/firmware/dmi_scan.c Jean Delvare 2007-11-03 141 {
7fce084a0b3e2b drivers/firmware/dmi_scan.c Jean Delvare 2007-11-03 142 u8 *buf;
6e0ad59e3d838a drivers/firmware/dmi_scan.c Jean Delvare 2015-06-25 143 u32 orig_dmi_len = dmi_len;
7fce084a0b3e2b drivers/firmware/dmi_scan.c Jean Delvare 2007-11-03 144
6e0ad59e3d838a drivers/firmware/dmi_scan.c Jean Delvare 2015-06-25 @145 buf = dmi_early_remap(dmi_base, orig_dmi_len);
7fce084a0b3e2b drivers/firmware/dmi_scan.c Jean Delvare 2007-11-03 146 if (buf == NULL)
c926820085437a drivers/firmware/dmi_scan.c Andy Lutomirski 2017-06-15 147 return -ENOMEM;
7fce084a0b3e2b drivers/firmware/dmi_scan.c Jean Delvare 2007-11-03 148
eb4c5ea50e60aa drivers/firmware/dmi_scan.c Ivan Khoronzhuk 2015-06-25 149 dmi_decode_table(buf, decode, NULL);
7fce084a0b3e2b drivers/firmware/dmi_scan.c Jean Delvare 2007-11-03 150
d114a333874725 drivers/firmware/dmi_scan.c Tony Luck 2012-07-20 151 add_device_randomness(buf, dmi_len);
d114a333874725 drivers/firmware/dmi_scan.c Tony Luck 2012-07-20 152
6e0ad59e3d838a drivers/firmware/dmi_scan.c Jean Delvare 2015-06-25 @153 dmi_early_unmap(buf, orig_dmi_len);
^1da177e4c3f41 arch/i386/kernel/dmi_scan.c Linus Torvalds 2005-04-16 154 return 0;
^1da177e4c3f41 arch/i386/kernel/dmi_scan.c Linus Torvalds 2005-04-16 155 }
^1da177e4c3f41 arch/i386/kernel/dmi_scan.c Linus Torvalds 2005-04-16 156

:::::: The code at line 145 was first introduced by commit
:::::: 6e0ad59e3d838a2887e7aa657baee5896030d009 firmware: dmi_scan: Trim DMI table length before exporting it

:::::: TO: Jean Delvare <jdelvare@xxxxxxx>
:::::: CC: Jean Delvare <jdelvare@xxxxxxx>

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