arch/mips/loongson2ef/common/reset.c:20:11: sparse: sparse: cast removes address space '__iomem' of expression

From: kernel test robot
Date: Mon Mar 22 2021 - 06:40:12 EST


Hi Jiaxun,

First bad commit (maybe != root cause):

tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 0d02ec6b3136c73c09e7859f0d0e4e2c4c07b49b
commit: b13812ddea615b6507beef24f76540c0c1143c5c MIPS: Loongson2ef: Disable Loongson MMI instructions
date: 6 months ago
config: mips-randconfig-s032-20210322 (attached as .config)
compiler: mips64el-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.3-277-gc089cd2d-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b13812ddea615b6507beef24f76540c0c1143c5c
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout b13812ddea615b6507beef24f76540c0c1143c5c
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=mips

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>


sparse warnings: (new ones prefixed by >>)
command-line: note: in included file:
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQUIRE redefined
builtin:0:0: sparse: this was the original definition
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_SEQ_CST redefined
builtin:0:0: sparse: this was the original definition
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQ_REL redefined
builtin:0:0: sparse: this was the original definition
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_RELEASE redefined
builtin:0:0: sparse: this was the original definition
>> arch/mips/loongson2ef/common/reset.c:20:11: sparse: sparse: cast removes address space '__iomem' of expression
--
command-line: note: in included file:
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQUIRE redefined
builtin:0:0: sparse: this was the original definition
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_SEQ_CST redefined
builtin:0:0: sparse: this was the original definition
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQ_REL redefined
builtin:0:0: sparse: this was the original definition
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_RELEASE redefined
builtin:0:0: sparse: this was the original definition
fs/ocfs2/refcounttree.c:635:27: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] rf_generation @@ got unsigned int @@
fs/ocfs2/refcounttree.c:635:27: sparse: expected restricted __le32 [usertype] rf_generation
fs/ocfs2/refcounttree.c:635:27: sparse: got unsigned int
>> fs/ocfs2/refcounttree.c:2087:9: sparse: sparse: cast from restricted __le16
>> fs/ocfs2/refcounttree.c:2134:17: sparse: sparse: cast from restricted __le32
--
command-line: note: in included file:
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQUIRE redefined
builtin:0:0: sparse: this was the original definition
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_SEQ_CST redefined
builtin:0:0: sparse: this was the original definition
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQ_REL redefined
builtin:0:0: sparse: this was the original definition
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_RELEASE redefined
builtin:0:0: sparse: this was the original definition
>> arch/mips/pci/ops-loongson2.c:93:24: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int [usertype] val @@ got restricted __le32 [usertype] @@
arch/mips/pci/ops-loongson2.c:93:24: sparse: expected unsigned int [usertype] val
arch/mips/pci/ops-loongson2.c:93:24: sparse: got restricted __le32 [usertype]
>> arch/mips/pci/ops-loongson2.c:93:44: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void volatile [noderef] __iomem *mem @@ got void *[assigned] addrp @@
arch/mips/pci/ops-loongson2.c:93:44: sparse: expected void volatile [noderef] __iomem *mem
arch/mips/pci/ops-loongson2.c:93:44: sparse: got void *[assigned] addrp
>> arch/mips/pci/ops-loongson2.c:95:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const volatile [noderef] __iomem *mem @@ got void *[assigned] addrp @@
arch/mips/pci/ops-loongson2.c:95:25: sparse: expected void const volatile [noderef] __iomem *mem
arch/mips/pci/ops-loongson2.c:95:25: sparse: got void *[assigned] addrp
>> arch/mips/pci/ops-loongson2.c:95:25: sparse: sparse: cast to restricted __le32
--
command-line: note: in included file:
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQUIRE redefined
builtin:0:0: sparse: this was the original definition
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_SEQ_CST redefined
builtin:0:0: sparse: this was the original definition
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_ACQ_REL redefined
builtin:0:0: sparse: this was the original definition
builtin:1:9: sparse: sparse: preprocessor token __ATOMIC_RELEASE redefined
builtin:0:0: sparse: this was the original definition
drivers/net/wireless/intel/iwlwifi/mvm/rs.c: note: in included file (through drivers/net/wireless/intel/iwlwifi/mvm/..//fw/img.h, drivers/net/wireless/intel/iwlwifi/mvm/..//iwl-trans.h, ...):
drivers/net/wireless/intel/iwlwifi/mvm/..//fw/file.h:330:19: sparse: sparse: mixed bitwiseness
drivers/net/wireless/intel/iwlwifi/mvm/..//fw/file.h:484:19: sparse: sparse: mixed bitwiseness
>> drivers/net/wireless/intel/iwlwifi/mvm/rs.c:3298:6: sparse: sparse: context imbalance in 'iwl_mvm_rs_tx_status' - wrong count at exit

vim +/__iomem +20 arch/mips/loongson2ef/common/reset.c

71e2f4dd5a65bd Jiaxun Yang 2019-10-20 16
71e2f4dd5a65bd Jiaxun Yang 2019-10-20 17 static inline void loongson_reboot(void)
71e2f4dd5a65bd Jiaxun Yang 2019-10-20 18 {
71e2f4dd5a65bd Jiaxun Yang 2019-10-20 19 #ifndef CONFIG_CPU_JUMP_WORKAROUNDS
4bdc0d676a6431 Christoph Hellwig 2020-01-06 @20 ((void (*)(void))ioremap(LOONGSON_BOOT_BASE, 4)) ();
71e2f4dd5a65bd Jiaxun Yang 2019-10-20 21 #else
71e2f4dd5a65bd Jiaxun Yang 2019-10-20 22 void (*func)(void);
71e2f4dd5a65bd Jiaxun Yang 2019-10-20 23
4bdc0d676a6431 Christoph Hellwig 2020-01-06 24 func = (void *)ioremap(LOONGSON_BOOT_BASE, 4);
71e2f4dd5a65bd Jiaxun Yang 2019-10-20 25
71e2f4dd5a65bd Jiaxun Yang 2019-10-20 26 __asm__ __volatile__(
71e2f4dd5a65bd Jiaxun Yang 2019-10-20 27 " .set noat \n"
71e2f4dd5a65bd Jiaxun Yang 2019-10-20 28 " jr %[func] \n"
71e2f4dd5a65bd Jiaxun Yang 2019-10-20 29 " .set at \n"
71e2f4dd5a65bd Jiaxun Yang 2019-10-20 30 : /* No outputs */
71e2f4dd5a65bd Jiaxun Yang 2019-10-20 31 : [func] "r" (func));
71e2f4dd5a65bd Jiaxun Yang 2019-10-20 32 #endif
71e2f4dd5a65bd Jiaxun Yang 2019-10-20 33 }
71e2f4dd5a65bd Jiaxun Yang 2019-10-20 34

:::::: The code at line 20 was first introduced by commit
:::::: 4bdc0d676a643140bdf17dbf7eafedee3d496a3c remove ioremap_nocache and devm_ioremap_nocache

:::::: TO: Christoph Hellwig <hch@xxxxxx>
:::::: CC: Christoph Hellwig <hch@xxxxxx>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip