arch/mips/kernel/syscall.c:173:31: sparse: sparse: incorrect type in initializer (different address spaces)

From: kernel test robot
Date: Fri Nov 19 2021 - 23:45:50 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: a90af8f15bdc9449ee2d24e1d73fa3f7e8633f81
commit: ddb002d6d6af12c45dd9d565cadf0f40b36b7c25 MIPS: uaccess: Reduce number of nested macros
date: 7 months ago
config: mips-randconfig-s032-20211116 (attached as .config)
compiler: mipsel-linux-gcc (GCC) 11.2.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.4-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ddb002d6d6af12c45dd9d565cadf0f40b36b7c25
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout ddb002d6d6af12c45dd9d565cadf0f40b36b7c25
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.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/kernel/syscall.c:173:31: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const [noderef] __user *__gu_ptr @@ got unsigned int * @@
arch/mips/kernel/syscall.c:173:31: sparse: expected unsigned int const [noderef] __user *__gu_ptr
arch/mips/kernel/syscall.c:173:31: sparse: got unsigned int *
>> arch/mips/kernel/syscall.c:174:32: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int [noderef] __user *__pu_ptr @@ got unsigned int * @@
arch/mips/kernel/syscall.c:174:32: sparse: expected unsigned int [noderef] __user *__pu_ptr
arch/mips/kernel/syscall.c:174:32: sparse: got unsigned int *
--
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/kernel/ptrace.c: note: in included file:
>> arch/mips/include/asm/syscall.h:70:17: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const [noderef] __user *__p @@ got int * @@
arch/mips/include/asm/syscall.h:70:17: sparse: expected int const [noderef] __user *__p
arch/mips/include/asm/syscall.h:70:17: sparse: got int *
--
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/kernel/signal.c:280:13: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:280:13: sparse: sparse: cast removes address space '__user' of expression
>> arch/mips/kernel/signal.c:280:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int [noderef] __user *__pu_ptr @@ got unsigned int [usertype] * @@
arch/mips/kernel/signal.c:280:13: sparse: expected unsigned int [noderef] __user *__pu_ptr
arch/mips/kernel/signal.c:280:13: sparse: got unsigned int [usertype] *
arch/mips/kernel/signal.c:280:13: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:293:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:293:23: sparse: sparse: cast removes address space '__user' of expression
>> arch/mips/kernel/signal.c:293:23: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const [noderef] __user *__gu_ptr @@ got unsigned int * @@
arch/mips/kernel/signal.c:293:23: sparse: expected unsigned int const [noderef] __user *__gu_ptr
arch/mips/kernel/signal.c:293:23: sparse: got unsigned int *
arch/mips/kernel/signal.c:300:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:300:23: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:300:23: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const [noderef] __user *__gu_ptr @@ got unsigned int * @@
arch/mips/kernel/signal.c:300:23: sparse: expected unsigned int const [noderef] __user *__gu_ptr
arch/mips/kernel/signal.c:300:23: sparse: got unsigned int *
arch/mips/kernel/signal.c:630:17: sparse: sparse: symbol 'sys_sigreturn' was not declared. Should it be static?
arch/mips/kernel/signal.c:667:17: sparse: sparse: symbol 'sys_rt_sigreturn' was not declared. Should it be static?
arch/mips/kernel/signal.c:157:14: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:157:12: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ucontext [noderef] __user *uc @@ got struct ucontext * @@
arch/mips/kernel/signal.c:157:12: sparse: expected struct ucontext [noderef] __user *uc
arch/mips/kernel/signal.c:157:12: sparse: got struct ucontext *
arch/mips/kernel/signal.c:157:14: sparse: sparse: cast removes address space '__user' of expression
arch/mips/kernel/signal.c:157:12: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct ucontext [noderef] __user *uc @@ got struct ucontext * @@
arch/mips/kernel/signal.c:157:12: sparse: expected struct ucontext [noderef] __user *uc
arch/mips/kernel/signal.c:157:12: sparse: got struct ucontext *
--
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/sibyte/common/sb_tbprof.c:449:14: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const [noderef] __user *p @@ got char *buf @@
arch/mips/sibyte/common/sb_tbprof.c:449:14: sparse: expected void const [noderef] __user *p
arch/mips/sibyte/common/sb_tbprof.c:449:14: sparse: got char *buf
arch/mips/sibyte/common/sb_tbprof.c:464:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __user *to @@ got char *dest @@
arch/mips/sibyte/common/sb_tbprof.c:464:38: sparse: expected void [noderef] __user *to
arch/mips/sibyte/common/sb_tbprof.c:464:38: sparse: got char *dest
>> arch/mips/sibyte/common/sb_tbprof.c:515:23: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int [noderef] __user *__p @@ got int * @@
arch/mips/sibyte/common/sb_tbprof.c:515:23: sparse: expected int [noderef] __user *__p
arch/mips/sibyte/common/sb_tbprof.c:515:23: sparse: got int *
arch/mips/sibyte/common/sb_tbprof.c:531:27: sparse: sparse: incorrect type in initializer (incompatible argument 2 (different address spaces)) @@ expected int ( *read )( ... ) @@ got int ( * )( ... ) @@
arch/mips/sibyte/common/sb_tbprof.c:531:27: sparse: expected int ( *read )( ... )
arch/mips/sibyte/common/sb_tbprof.c:531:27: sparse: got int ( * )( ... )
--
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
kernel/ptrace.c:53:22: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/ptrace.c:53:22: sparse: struct task_struct *
kernel/ptrace.c:53:22: sparse: struct task_struct [noderef] __rcu *
kernel/ptrace.c:72:23: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct task_struct [noderef] __rcu *parent @@ got struct task_struct *new_parent @@
kernel/ptrace.c:72:23: sparse: expected struct task_struct [noderef] __rcu *parent
kernel/ptrace.c:72:23: sparse: got struct task_struct *new_parent
kernel/ptrace.c:73:29: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct cred const [noderef] __rcu *ptracer_cred @@ got struct cred const * @@
kernel/ptrace.c:73:29: sparse: expected struct cred const [noderef] __rcu *ptracer_cred
kernel/ptrace.c:73:29: sparse: got struct cred const *
kernel/ptrace.c:127:18: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected struct cred const *old_cred @@ got struct cred const [noderef] __rcu *ptracer_cred @@
kernel/ptrace.c:127:18: sparse: expected struct cred const *old_cred
kernel/ptrace.c:127:18: sparse: got struct cred const [noderef] __rcu *ptracer_cred
kernel/ptrace.c:131:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:131:25: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:131:25: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:169:27: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:169:27: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:169:27: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:181:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:181:28: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:181:28: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:186:30: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:186:30: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:186:30: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:196:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/ptrace.c:196:9: sparse: struct task_struct [noderef] __rcu *
kernel/ptrace.c:196:9: sparse: struct task_struct *
kernel/ptrace.c:241:44: sparse: sparse: incompatible types in comparison expression (different address spaces):
kernel/ptrace.c:241:44: sparse: struct task_struct [noderef] __rcu *
kernel/ptrace.c:241:44: sparse: struct task_struct *
kernel/ptrace.c:415:24: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:415:24: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:415:24: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:438:26: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:438:26: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:438:26: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:474:54: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *parent @@ got struct task_struct [noderef] __rcu *parent @@
kernel/ptrace.c:474:54: sparse: expected struct task_struct *parent
kernel/ptrace.c:474:54: sparse: got struct task_struct [noderef] __rcu *parent
kernel/ptrace.c:482:53: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected struct task_struct *new_parent @@ got struct task_struct [noderef] __rcu *real_parent @@
kernel/ptrace.c:482:53: sparse: expected struct task_struct *new_parent
kernel/ptrace.c:482:53: sparse: got struct task_struct [noderef] __rcu *real_parent
kernel/ptrace.c:530:41: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct task_struct *p1 @@ got struct task_struct [noderef] __rcu *real_parent @@
kernel/ptrace.c:530:41: sparse: expected struct task_struct *p1
kernel/ptrace.c:530:41: sparse: got struct task_struct [noderef] __rcu *real_parent
kernel/ptrace.c:532:50: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct sighand_struct *sigh @@ got struct sighand_struct [noderef] __rcu *sighand @@
kernel/ptrace.c:532:50: sparse: expected struct sighand_struct *sigh
kernel/ptrace.c:532:50: sparse: got struct sighand_struct [noderef] __rcu *sighand
kernel/ptrace.c:734:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:734:37: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:734:37: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:742:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:742:39: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:742:39: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:847:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:847:37: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:847:37: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:851:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:851:39: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:851:39: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:1081:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:1081:37: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:1081:37: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:1083:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/ptrace.c:1083:39: sparse: expected struct spinlock [usertype] *lock
kernel/ptrace.c:1083:39: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:480:38: sparse: sparse: dereference of noderef expression
kernel/ptrace.c: note: in included file (through include/linux/rcuwait.h, include/linux/percpu-rwsem.h, include/linux/fs.h, ...):
include/linux/sched/signal.h:708:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
include/linux/sched/signal.h:708:37: sparse: expected struct spinlock [usertype] *lock
include/linux/sched/signal.h:708:37: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:681:9: sparse: sparse: context imbalance in 'ptrace_getsiginfo' - different lock contexts for basic block
include/linux/sched/signal.h:708:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
include/linux/sched/signal.h:708:37: sparse: expected struct spinlock [usertype] *lock
include/linux/sched/signal.h:708:37: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:697:9: sparse: sparse: context imbalance in 'ptrace_setsiginfo' - different lock contexts for basic block
kernel/ptrace.c:853:9: sparse: sparse: context imbalance in 'ptrace_resume' - different lock contexts for basic block
kernel/ptrace.c: note: in included file:
>> arch/mips/include/asm/syscall.h:70:17: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const [noderef] __user *__p @@ got int * @@
arch/mips/include/asm/syscall.h:70:17: sparse: expected int const [noderef] __user *__p
arch/mips/include/asm/syscall.h:70:17: sparse: got int *
kernel/ptrace.c: note: in included file (through include/linux/rcuwait.h, include/linux/percpu-rwsem.h, include/linux/fs.h, ...):
include/linux/sched/signal.h:708:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
include/linux/sched/signal.h:708:37: sparse: expected struct spinlock [usertype] *lock
include/linux/sched/signal.h:708:37: sparse: got struct spinlock [noderef] __rcu *
include/linux/sched/signal.h:708:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
include/linux/sched/signal.h:708:37: sparse: expected struct spinlock [usertype] *lock
include/linux/sched/signal.h:708:37: sparse: got struct spinlock [noderef] __rcu *
kernel/ptrace.c:1229:9: sparse: sparse: context imbalance in 'ptrace_request' - different lock contexts for basic block
--
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
kernel/seccomp.c:1333:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/seccomp.c:1333:31: sparse: expected struct spinlock [usertype] *lock
kernel/seccomp.c:1333:31: sparse: got struct spinlock [noderef] __rcu *
kernel/seccomp.c:1345:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/seccomp.c:1345:33: sparse: expected struct spinlock [usertype] *lock
kernel/seccomp.c:1345:33: sparse: got struct spinlock [noderef] __rcu *
kernel/seccomp.c:1831:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/seccomp.c:1831:31: sparse: expected struct spinlock [usertype] *lock
kernel/seccomp.c:1831:31: sparse: got struct spinlock [noderef] __rcu *
kernel/seccomp.c:1849:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/seccomp.c:1849:33: sparse: expected struct spinlock [usertype] *lock
kernel/seccomp.c:1849:33: sparse: got struct spinlock [noderef] __rcu *
kernel/seccomp.c: note: in included file:
>> arch/mips/include/asm/syscall.h:70:17: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const [noderef] __user *__p @@ got int * @@
arch/mips/include/asm/syscall.h:70:17: sparse: expected int const [noderef] __user *__p
arch/mips/include/asm/syscall.h:70:17: sparse: got int *
--
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/w1/slaves/w1_ds28e04.c:342:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected char [noderef] __user *__p @@ got char *buf @@
drivers/w1/slaves/w1_ds28e04.c:342:13: sparse: expected char [noderef] __user *__p
drivers/w1/slaves/w1_ds28e04.c:342:13: sparse: got char *buf
>> drivers/w1/slaves/w1_ds28e04.c:356:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected char const [noderef] __user *__p @@ got char const *buf @@
drivers/w1/slaves/w1_ds28e04.c:356:13: sparse: expected char const [noderef] __user *__p
drivers/w1/slaves/w1_ds28e04.c:356:13: sparse: got char const *buf

vim +173 arch/mips/kernel/syscall.c

3c37026d43c47b Ralf Baechle 2005-04-13 96
12890d0f61fc4e Ralf Baechle 2012-12-27 97 static inline int mips_atomic_set(unsigned long addr, unsigned long new)
^1da177e4c3f41 Linus Torvalds 2005-04-16 98 {
f1e39a4a616cd9 Ralf Baechle 2009-09-17 99 unsigned long old, tmp;
12890d0f61fc4e Ralf Baechle 2012-12-27 100 struct pt_regs *regs;
f1e39a4a616cd9 Ralf Baechle 2009-09-17 101 unsigned int err;
f1e39a4a616cd9 Ralf Baechle 2009-09-17 102
f1e39a4a616cd9 Ralf Baechle 2009-09-17 103 if (unlikely(addr & 3))
f1e39a4a616cd9 Ralf Baechle 2009-09-17 104 return -EINVAL;
f1e39a4a616cd9 Ralf Baechle 2009-09-17 105
96d4f267e40f95 Linus Torvalds 2019-01-03 106 if (unlikely(!access_ok((const void __user *)addr, 4)))
f1e39a4a616cd9 Ralf Baechle 2009-09-17 107 return -EINVAL;
f1e39a4a616cd9 Ralf Baechle 2009-09-17 108
256ec489f1c772 Thomas Bogendoerfer 2020-08-24 109 if (cpu_has_llsc && IS_ENABLED(CONFIG_WAR_R10000_LLSC)) {
f1e39a4a616cd9 Ralf Baechle 2009-09-17 110 __asm__ __volatile__ (
378ed6f0e3c525 Paul Burton 2018-11-08 111 " .set push \n"
a809d46066d517 Ralf Baechle 2014-03-30 112 " .set arch=r4000 \n"
f1e39a4a616cd9 Ralf Baechle 2009-09-17 113 " li %[err], 0 \n"
f1e39a4a616cd9 Ralf Baechle 2009-09-17 114 "1: ll %[old], (%[addr]) \n"
f1e39a4a616cd9 Ralf Baechle 2009-09-17 115 " move %[tmp], %[new] \n"
f1e39a4a616cd9 Ralf Baechle 2009-09-17 116 "2: sc %[tmp], (%[addr]) \n"
f1e39a4a616cd9 Ralf Baechle 2009-09-17 117 " beqzl %[tmp], 1b \n"
f1e39a4a616cd9 Ralf Baechle 2009-09-17 118 "3: \n"
0e525e48f73cc8 Maciej W. Rozycki 2014-11-15 119 " .insn \n"
f1e39a4a616cd9 Ralf Baechle 2009-09-17 120 " .section .fixup,\"ax\" \n"
f1e39a4a616cd9 Ralf Baechle 2009-09-17 121 "4: li %[err], %[efault] \n"
f1e39a4a616cd9 Ralf Baechle 2009-09-17 122 " j 3b \n"
f1e39a4a616cd9 Ralf Baechle 2009-09-17 123 " .previous \n"
f1e39a4a616cd9 Ralf Baechle 2009-09-17 124 " .section __ex_table,\"a\" \n"
f1e39a4a616cd9 Ralf Baechle 2009-09-17 125 " "STR(PTR)" 1b, 4b \n"
f1e39a4a616cd9 Ralf Baechle 2009-09-17 126 " "STR(PTR)" 2b, 4b \n"
f1e39a4a616cd9 Ralf Baechle 2009-09-17 127 " .previous \n"
378ed6f0e3c525 Paul Burton 2018-11-08 128 " .set pop \n"
f1e39a4a616cd9 Ralf Baechle 2009-09-17 129 : [old] "=&r" (old),
f1e39a4a616cd9 Ralf Baechle 2009-09-17 130 [err] "=&r" (err),
f1e39a4a616cd9 Ralf Baechle 2009-09-17 131 [tmp] "=&r" (tmp)
f1e39a4a616cd9 Ralf Baechle 2009-09-17 132 : [addr] "r" (addr),
f1e39a4a616cd9 Ralf Baechle 2009-09-17 133 [new] "r" (new),
f1e39a4a616cd9 Ralf Baechle 2009-09-17 134 [efault] "i" (-EFAULT)
f1e39a4a616cd9 Ralf Baechle 2009-09-17 135 : "memory");
f1e39a4a616cd9 Ralf Baechle 2009-09-17 136 } else if (cpu_has_llsc) {
f1e39a4a616cd9 Ralf Baechle 2009-09-17 137 __asm__ __volatile__ (
378ed6f0e3c525 Paul Burton 2018-11-08 138 " .set push \n"
fee313d4b880d4 Markos Chandras 2015-01-15 139 " .set "MIPS_ISA_ARCH_LEVEL" \n"
f1e39a4a616cd9 Ralf Baechle 2009-09-17 140 " li %[err], 0 \n"
4915e1b043d628 James Hogan 2017-05-31 141 "1: \n"
e84957e6ae043b Paul Burton 2019-10-01 142 " " __SYNC(full, loongson3_war) " \n"
4915e1b043d628 James Hogan 2017-05-31 143 user_ll("%[old]", "(%[addr])")
f1e39a4a616cd9 Ralf Baechle 2009-09-17 144 " move %[tmp], %[new] \n"
4915e1b043d628 James Hogan 2017-05-31 145 "2: \n"
4915e1b043d628 James Hogan 2017-05-31 146 user_sc("%[tmp]", "(%[addr])")
203e090ade7357 James Hogan 2017-05-31 147 " beqz %[tmp], 1b \n"
f1e39a4a616cd9 Ralf Baechle 2009-09-17 148 "3: \n"
0e525e48f73cc8 Maciej W. Rozycki 2014-11-15 149 " .insn \n"
f1e39a4a616cd9 Ralf Baechle 2009-09-17 150 " .section .fixup,\"ax\" \n"
f1e39a4a616cd9 Ralf Baechle 2009-09-17 151 "5: li %[err], %[efault] \n"
f1e39a4a616cd9 Ralf Baechle 2009-09-17 152 " j 3b \n"
f1e39a4a616cd9 Ralf Baechle 2009-09-17 153 " .previous \n"
f1e39a4a616cd9 Ralf Baechle 2009-09-17 154 " .section __ex_table,\"a\" \n"
f1e39a4a616cd9 Ralf Baechle 2009-09-17 155 " "STR(PTR)" 1b, 5b \n"
f1e39a4a616cd9 Ralf Baechle 2009-09-17 156 " "STR(PTR)" 2b, 5b \n"
f1e39a4a616cd9 Ralf Baechle 2009-09-17 157 " .previous \n"
378ed6f0e3c525 Paul Burton 2018-11-08 158 " .set pop \n"
f1e39a4a616cd9 Ralf Baechle 2009-09-17 159 : [old] "=&r" (old),
f1e39a4a616cd9 Ralf Baechle 2009-09-17 160 [err] "=&r" (err),
f1e39a4a616cd9 Ralf Baechle 2009-09-17 161 [tmp] "=&r" (tmp)
f1e39a4a616cd9 Ralf Baechle 2009-09-17 162 : [addr] "r" (addr),
f1e39a4a616cd9 Ralf Baechle 2009-09-17 163 [new] "r" (new),
f1e39a4a616cd9 Ralf Baechle 2009-09-17 164 [efault] "i" (-EFAULT)
f1e39a4a616cd9 Ralf Baechle 2009-09-17 165 : "memory");
f1e39a4a616cd9 Ralf Baechle 2009-09-17 166 } else {
f1e39a4a616cd9 Ralf Baechle 2009-09-17 167 do {
f1e39a4a616cd9 Ralf Baechle 2009-09-17 168 preempt_disable();
f1e39a4a616cd9 Ralf Baechle 2009-09-17 169 ll_bit = 1;
f1e39a4a616cd9 Ralf Baechle 2009-09-17 170 ll_task = current;
f1e39a4a616cd9 Ralf Baechle 2009-09-17 171 preempt_enable();
f1e39a4a616cd9 Ralf Baechle 2009-09-17 172
f1e39a4a616cd9 Ralf Baechle 2009-09-17 @173 err = __get_user(old, (unsigned int *) addr);
f1e39a4a616cd9 Ralf Baechle 2009-09-17 @174 err |= __put_user(new, (unsigned int *) addr);
f1e39a4a616cd9 Ralf Baechle 2009-09-17 175 if (err)
f1e39a4a616cd9 Ralf Baechle 2009-09-17 176 break;
f1e39a4a616cd9 Ralf Baechle 2009-09-17 177 rmb();
f1e39a4a616cd9 Ralf Baechle 2009-09-17 178 } while (!ll_bit);
f1e39a4a616cd9 Ralf Baechle 2009-09-17 179 }
f1e39a4a616cd9 Ralf Baechle 2009-09-17 180
f1e39a4a616cd9 Ralf Baechle 2009-09-17 181 if (unlikely(err))
f1e39a4a616cd9 Ralf Baechle 2009-09-17 182 return err;
f1e39a4a616cd9 Ralf Baechle 2009-09-17 183
12890d0f61fc4e Ralf Baechle 2012-12-27 184 regs = current_pt_regs();
f1e39a4a616cd9 Ralf Baechle 2009-09-17 185 regs->regs[2] = old;
f1e39a4a616cd9 Ralf Baechle 2009-09-17 186 regs->regs[7] = 0; /* No error */
f1e39a4a616cd9 Ralf Baechle 2009-09-17 187
f1e39a4a616cd9 Ralf Baechle 2009-09-17 188 /*
f1e39a4a616cd9 Ralf Baechle 2009-09-17 189 * Don't let your children do this ...
f1e39a4a616cd9 Ralf Baechle 2009-09-17 190 */
f1e39a4a616cd9 Ralf Baechle 2009-09-17 191 __asm__ __volatile__(
f1e39a4a616cd9 Ralf Baechle 2009-09-17 192 " move $29, %0 \n"
f1e39a4a616cd9 Ralf Baechle 2009-09-17 193 " j syscall_exit \n"
f1e39a4a616cd9 Ralf Baechle 2009-09-17 194 : /* no outputs */
f1e39a4a616cd9 Ralf Baechle 2009-09-17 195 : "r" (regs));
f1e39a4a616cd9 Ralf Baechle 2009-09-17 196
f1e39a4a616cd9 Ralf Baechle 2009-09-17 197 /* unreached. Honestly. */
f2ace93136cade Ralf Baechle 2012-12-27 198 unreachable();
f1e39a4a616cd9 Ralf Baechle 2009-09-17 199 }
f1e39a4a616cd9 Ralf Baechle 2009-09-17 200

:::::: The code at line 173 was first introduced by commit
:::::: f1e39a4a616cd9981a9decfd5332fd07a01abb8b MIPS: Rewrite sysmips(MIPS_ATOMIC_SET, ...) in C with inline assembler

:::::: TO: Ralf Baechle <ralf@xxxxxxxxxxxxxx>
:::::: CC: Ralf Baechle <ralf@xxxxxxxxxxxxxx>

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

Attachment: .config.gz
Description: application/gzip