[openeuler:OLK-6.6 3544/3544] lib/iov_iter.c:330:38: sparse: sparse: incorrect type in argument 1 (different address spaces)
tree: https://gitee.com/openeuler/kernel.git OLK-6.6 head: c098fa18c07cc52100a52db8fd0c2900461888c9 commit: 19e163fcb526efb8bf229887f399ddf4847ceecb [3544/3544] iov_iter, x86: Be consistent about the __user tag on copy_mc_to_user() config: x86_64-randconfig-121-20251215 (https://download.01.org/0day-ci/archive/20251223/202512230823.urp3AnL9-lkp@i...) compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251223/202512230823.urp3AnL9-lkp@i...) 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@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202512230823.urp3AnL9-lkp@intel.com/ sparse warnings: (new ones prefixed by >>)
lib/iov_iter.c:330:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got void * @@ lib/iov_iter.c:330:38: sparse: expected void [noderef] __user *to lib/iov_iter.c:330:38: sparse: got void * lib/iov_iter.c: note: in included file (through arch/x86/include/asm/uaccess.h, include/linux/uaccess.h, include/linux/sched/task.h, ...): arch/x86/include/asm/uaccess_64.h:88:24: sparse: sparse: cast removes address space '__user' of expression arch/x86/include/asm/uaccess_64.h:88:24: sparse: sparse: cast removes address space '__user' of expression arch/x86/include/asm/uaccess_64.h:88:24: sparse: sparse: cast removes address space '__user' of expression arch/x86/include/asm/uaccess_64.h:88:24: sparse: sparse: cast removes address space '__user' of expression arch/x86/include/asm/uaccess_64.h:88:24: sparse: sparse: cast removes address space '__user' of expression lib/iov_iter.c: note: in included file: include/net/checksum.h:33:39: sparse: sparse: incorrect type in argument 3 (different base types) @@ expected restricted __wsum [usertype] sum @@ got unsigned int @@ include/net/checksum.h:33:39: sparse: expected restricted __wsum [usertype] sum include/net/checksum.h:33:39: sparse: got unsigned int include/net/checksum.h:33:39: sparse: sparse: incorrect type in argument 3 (different base types) @@ expected restricted __wsum [usertype] sum @@ got unsigned int @@ include/net/checksum.h:33:39: sparse: expected restricted __wsum [usertype] sum include/net/checksum.h:33:39: sparse: got unsigned int include/net/checksum.h:41:45: sparse: sparse: incorrect type in argument 3 (different base types) @@ expected restricted __wsum [usertype] sum @@ got unsigned int @@ include/net/checksum.h:41:45: sparse: expected restricted __wsum [usertype] sum include/net/checksum.h:41:45: sparse: got unsigned int include/net/checksum.h:41:45: sparse: sparse: incorrect type in argument 3 (different base types) @@ expected restricted __wsum [usertype] sum @@ got unsigned int @@ include/net/checksum.h:41:45: sparse: expected restricted __wsum [usertype] sum include/net/checksum.h:41:45: sparse: got unsigned int lib/iov_iter.c: note: in included file (through arch/x86/include/asm/uaccess.h, include/linux/uaccess.h, include/linux/sched/task.h, ...): arch/x86/include/asm/uaccess_64.h:88:24: sparse: sparse: cast removes address space '__user' of expression arch/x86/include/asm/uaccess_64.h:88:24: sparse: sparse: cast removes address space '__user' of expression arch/x86/include/asm/uaccess_64.h:88:24: sparse: sparse: cast removes address space '__user' of expression arch/x86/include/asm/uaccess_64.h:88:24: sparse: sparse: cast removes address space '__user' of expression arch/x86/include/asm/uaccess_64.h:88:24: sparse: sparse: cast removes address space '__user' of expression
vim +330 lib/iov_iter.c c35e02480014f7 mm/iov_iter.c Matthew Wilcox 2014-08-01 324 ec6347bb43395c lib/iov_iter.c Dan Williams 2020-10-05 325 #ifdef CONFIG_ARCH_HAS_COPY_MC ec6347bb43395c lib/iov_iter.c Dan Williams 2020-10-05 326 static int copyout_mc(void __user *to, const void *from, size_t n) 8780356ef630aa lib/iov_iter.c Dan Williams 2018-05-03 327 { 96d4f267e40f95 lib/iov_iter.c Linus Torvalds 2019-01-03 328 if (access_ok(to, n)) { d0ef4c360f7ea3 lib/iov_iter.c Marco Elver 2020-01-21 329 instrument_copy_to_user(to, from, n); ec6347bb43395c lib/iov_iter.c Dan Williams 2020-10-05 @330 n = copy_mc_to_user((__force void *) to, from, n); 8780356ef630aa lib/iov_iter.c Dan Williams 2018-05-03 331 } 8780356ef630aa lib/iov_iter.c Dan Williams 2018-05-03 332 return n; 8780356ef630aa lib/iov_iter.c Dan Williams 2018-05-03 333 } 8780356ef630aa lib/iov_iter.c Dan Williams 2018-05-03 334 :::::: The code at line 330 was first introduced by commit :::::: ec6347bb43395cb92126788a1a5b25302543f815 x86, powerpc: Rename memcpy_mcsafe() to copy_mc_to_{user, kernel}() :::::: TO: Dan Williams <dan.j.williams@intel.com> :::::: CC: Borislav Petkov <bp@suse.de> -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki
participants (1)
-
kernel test robot