Hi Julian, First bad commit (maybe != root cause): tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 5103a5be098c0dae5d4b057520d7e9f4c5570979 commit: 969f31e9eae3fb5d8388677c2ec34c2f447f7376 [8292/10499] lib: fix kconfig dependency on ARCH_WANT_FRAME_POINTERS config: csky-randconfig-s031-20210407 (attached as .config) compiler: csky-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-279-g6d5d9b42-dirty # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=969f31e9eae3fb5d8388677c2ec34c2f447f7376 git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git git fetch --no-tags linux-next master git checkout 969f31e9eae3fb5d8388677c2ec34c2f447f7376 # 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=csky If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> sparse warnings: (new ones prefixed by >>) >> ipc/msg.c:958:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *addr @@ got long const [noderef] __user *__gu_ptr @@ ipc/msg.c:958:13: sparse: expected void const *addr ipc/msg.c:958:13: sparse: got long const [noderef] __user *__gu_ptr >> ipc/msg.c:1023:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected long *__pu_addr @@ got long [noderef] __user * @@ ipc/msg.c:1023:13: sparse: expected long *__pu_addr ipc/msg.c:1023:13: sparse: got long [noderef] __user * ipc/msg.c:180:26: sparse: sparse: context imbalance in 'newque' - unexpected unlock -- >> drivers/md/dm-ioctl.c:1784:47: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *to @@ got struct dm_ioctl [noderef] __user *user @@ drivers/md/dm-ioctl.c:1784:47: sparse: expected void *to drivers/md/dm-ioctl.c:1784:47: sparse: got struct dm_ioctl [noderef] __user *user drivers/md/dm-ioctl.c:1799:39: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *to @@ got struct dm_ioctl [noderef] __user *user @@ drivers/md/dm-ioctl.c:1799:39: sparse: expected void *to drivers/md/dm-ioctl.c:1799:39: sparse: got struct dm_ioctl [noderef] __user *user -- >> drivers/mtd/ubi/cdev.c:467:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *addr @@ got signed int const [noderef] __user *__gu_ptr @@ drivers/mtd/ubi/cdev.c:467:23: sparse: expected void const *addr drivers/mtd/ubi/cdev.c:467:23: sparse: got signed int const [noderef] __user *__gu_ptr drivers/mtd/ubi/cdev.c:512:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *addr @@ got signed int const [noderef] __user *__gu_ptr @@ drivers/mtd/ubi/cdev.c:512:23: sparse: expected void const *addr drivers/mtd/ubi/cdev.c:512:23: sparse: got signed int const [noderef] __user *__gu_ptr drivers/mtd/ubi/cdev.c:526:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *addr @@ got signed int const [noderef] __user *__gu_ptr @@ drivers/mtd/ubi/cdev.c:526:23: sparse: expected void const *addr drivers/mtd/ubi/cdev.c:526:23: sparse: got signed int const [noderef] __user *__gu_ptr >> drivers/mtd/ubi/cdev.c:869:23: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected signed int *__pu_addr @@ got signed int [noderef] [usertype] __user * @@ drivers/mtd/ubi/cdev.c:869:23: sparse: expected signed int *__pu_addr drivers/mtd/ubi/cdev.c:869:23: sparse: got signed int [noderef] [usertype] __user * drivers/mtd/ubi/cdev.c:882:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *addr @@ got signed int const [noderef] __user *__gu_ptr @@ drivers/mtd/ubi/cdev.c:882:23: sparse: expected void const *addr drivers/mtd/ubi/cdev.c:882:23: sparse: got signed int const [noderef] __user *__gu_ptr drivers/mtd/ubi/cdev.c:969:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *addr @@ got signed int const [noderef] __user *__gu_ptr @@ drivers/mtd/ubi/cdev.c:969:23: sparse: expected void const *addr drivers/mtd/ubi/cdev.c:969:23: sparse: got signed int const [noderef] __user *__gu_ptr drivers/mtd/ubi/cdev.c:984:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *addr @@ got signed int const [noderef] __user *__gu_ptr @@ drivers/mtd/ubi/cdev.c:984:23: sparse: expected void const *addr drivers/mtd/ubi/cdev.c:984:23: sparse: got signed int const [noderef] __user *__gu_ptr drivers/mtd/ubi/cdev.c:1050:31: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected signed int *__pu_addr @@ got signed int [noderef] [usertype] __user * @@ drivers/mtd/ubi/cdev.c:1050:31: sparse: expected signed int *__pu_addr drivers/mtd/ubi/cdev.c:1050:31: sparse: got signed int [noderef] [usertype] __user * drivers/mtd/ubi/cdev.c:1061:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *addr @@ got signed int const [noderef] __user *__gu_ptr @@ drivers/mtd/ubi/cdev.c:1061:23: sparse: expected void const *addr drivers/mtd/ubi/cdev.c:1061:23: sparse: got signed int const [noderef] __user *__gu_ptr -- >> sound/core/compress_offload.c:977:26: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int *__pu_addr @@ got int [noderef] __user * @@ sound/core/compress_offload.c:977:26: sparse: expected int *__pu_addr sound/core/compress_offload.c:977:26: sparse: got int [noderef] __user * -- lib/locking-selftest.c:302:1: sparse: sparse: context imbalance in 'AA_spin' - wrong count at exit lib/locking-selftest.c:304:1: sparse: sparse: context imbalance in 'AA_wlock' - wrong count at exit lib/locking-selftest.c:306:1: sparse: sparse: context imbalance in 'AA_rlock' - wrong count at exit lib/locking-selftest.c:325:13: sparse: sparse: context imbalance in 'rlock_AA1' - wrong count at exit lib/locking-selftest.c:331:13: sparse: sparse: context imbalance in 'rlock_AA1B' - wrong count at exit lib/locking-selftest.c:351:13: sparse: sparse: context imbalance in 'rlock_AA2' - wrong count at exit lib/locking-selftest.c:363:13: sparse: sparse: context imbalance in 'rlock_AA3' - wrong count at exit lib/locking-selftest.c:726:1: sparse: sparse: context imbalance in 'double_unlock_spin' - unexpected unlock lib/locking-selftest.c:728:1: sparse: sparse: context imbalance in 'double_unlock_wlock' - unexpected unlock lib/locking-selftest.c:730:1: sparse: sparse: context imbalance in 'double_unlock_rlock' - unexpected unlock lib/locking-selftest.c:757:1: sparse: sparse: context imbalance in 'init_held_spin' - wrong count at exit lib/locking-selftest.c:759:1: sparse: sparse: context imbalance in 'init_held_wlock' - wrong count at exit lib/locking-selftest.c:761:1: sparse: sparse: context imbalance in 'init_held_rlock' - wrong count at exit lib/locking-selftest.c:2468:13: sparse: sparse: context imbalance in 'rcu_exit' - unexpected unlock lib/locking-selftest.c:2477:13: sparse: sparse: context imbalance in 'rcu_bh_exit' - unexpected unlock lib/locking-selftest.c:2486:13: sparse: sparse: context imbalance in 'rcu_sched_exit' - unexpected unlock lib/locking-selftest.c:2505:13: sparse: sparse: context imbalance in 'raw_spinlock_exit' - unexpected unlock lib/locking-selftest.c:2514:13: sparse: sparse: context imbalance in 'spinlock_exit' - unexpected unlock lib/locking-selftest.c: note: in included file (through include/linux/thread_info.h, include/asm-generic/preempt.h, arch/csky/include/generated/asm/preempt.h, ...): >> arch/csky/include/asm/thread_info.h:51:9: sparse: sparse: context imbalance in 'RCU_in_HARDIRQ' - wrong count at exit >> arch/csky/include/asm/thread_info.h:51:9: sparse: sparse: context imbalance in 'RCU_in_NOTTHREADED_HARDIRQ' - wrong count at exit >> arch/csky/include/asm/thread_info.h:51:9: sparse: sparse: context imbalance in 'RCU_in_SOFTIRQ' - wrong count at exit lib/locking-selftest.c:2585:1: sparse: sparse: context imbalance in 'RCU_in_RCU' - wrong count at exit lib/locking-selftest.c:2585:1: sparse: sparse: context imbalance in 'RCU_in_RCU_BH' - wrong count at exit lib/locking-selftest.c:2585:1: sparse: sparse: context imbalance in 'RCU_in_RCU_CALLBACK' - wrong count at exit lib/locking-selftest.c:2585:1: sparse: sparse: context imbalance in 'RCU_in_RCU_SCHED' - wrong count at exit lib/locking-selftest.c:2585:1: sparse: sparse: context imbalance in 'RCU_in_RAW_SPINLOCK' - wrong count at exit lib/locking-selftest.c:2585:1: sparse: sparse: context imbalance in 'RCU_in_SPINLOCK' - wrong count at exit lib/locking-selftest.c:2585:1: sparse: sparse: context imbalance in 'RCU_in_MUTEX' - wrong count at exit >> arch/csky/include/asm/thread_info.h:51:9: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_HARDIRQ' - wrong count at exit >> arch/csky/include/asm/thread_info.h:51:9: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_NOTTHREADED_HARDIRQ' - wrong count at exit >> arch/csky/include/asm/thread_info.h:51:9: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_SOFTIRQ' - wrong count at exit lib/locking-selftest.c:2586:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RCU' - wrong count at exit lib/locking-selftest.c:2586:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RCU_BH' - wrong count at exit lib/locking-selftest.c:2586:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RCU_CALLBACK' - wrong count at exit lib/locking-selftest.c:2586:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RCU_SCHED' - wrong count at exit lib/locking-selftest.c:2586:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RAW_SPINLOCK' - wrong count at exit lib/locking-selftest.c:2586:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_SPINLOCK' - wrong count at exit lib/locking-selftest.c:2586:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_MUTEX' - wrong count at exit >> arch/csky/include/asm/thread_info.h:51:9: sparse: sparse: context imbalance in 'SPINLOCK_in_HARDIRQ' - wrong count at exit >> arch/csky/include/asm/thread_info.h:51:9: sparse: sparse: context imbalance in 'SPINLOCK_in_NOTTHREADED_HARDIRQ' - wrong count at exit >> arch/csky/include/asm/thread_info.h:51:9: sparse: sparse: context imbalance in 'SPINLOCK_in_SOFTIRQ' - wrong count at exit lib/locking-selftest.c:2587:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RCU' - wrong count at exit lib/locking-selftest.c:2587:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RCU_BH' - wrong count at exit lib/locking-selftest.c:2587:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RCU_CALLBACK' - wrong count at exit lib/locking-selftest.c:2587:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RCU_SCHED' - wrong count at exit lib/locking-selftest.c:2587:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RAW_SPINLOCK' - wrong count at exit lib/locking-selftest.c:2587:1: sparse: sparse: context imbalance in 'SPINLOCK_in_SPINLOCK' - wrong count at exit lib/locking-selftest.c:2587:1: sparse: sparse: context imbalance in 'SPINLOCK_in_MUTEX' - wrong count at exit lib/locking-selftest.c:2588:1: sparse: sparse: context imbalance in 'MUTEX_in_RCU' - wrong count at exit lib/locking-selftest.c:2588:1: sparse: sparse: context imbalance in 'MUTEX_in_RCU_BH' - wrong count at exit lib/locking-selftest.c:2588:1: sparse: sparse: context imbalance in 'MUTEX_in_RCU_SCHED' - wrong count at exit lib/locking-selftest.c:2588:1: sparse: sparse: context imbalance in 'MUTEX_in_RAW_SPINLOCK' - wrong count at exit lib/locking-selftest.c:2588:1: sparse: sparse: context imbalance in 'MUTEX_in_SPINLOCK' - wrong count at exit -- >> sound/hda/hdmi_chmap.c:678:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int *__pu_addr @@ got unsigned int [noderef] __user *tlv @@ sound/hda/hdmi_chmap.c:678:13: sparse: expected unsigned int *__pu_addr sound/hda/hdmi_chmap.c:678:13: sparse: got unsigned int [noderef] __user *tlv >> sound/hda/hdmi_chmap.c:710:29: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int *__pu_addr @@ got unsigned int [noderef] __user *[assigned] dst @@ sound/hda/hdmi_chmap.c:710:29: sparse: expected unsigned int *__pu_addr sound/hda/hdmi_chmap.c:710:29: sparse: got unsigned int [noderef] __user *[assigned] dst >> sound/hda/hdmi_chmap.c:711:29: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int *__pu_addr @@ got unsigned int [noderef] __user * @@ sound/hda/hdmi_chmap.c:711:29: sparse: expected unsigned int *__pu_addr sound/hda/hdmi_chmap.c:711:29: sparse: got unsigned int [noderef] __user * sound/hda/hdmi_chmap.c:732:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int *__pu_addr @@ got unsigned int [noderef] __user * @@ sound/hda/hdmi_chmap.c:732:13: sparse: expected unsigned int *__pu_addr sound/hda/hdmi_chmap.c:732:13: sparse: got unsigned int [noderef] __user * -- >> sound/pci/hda/hda_hwdep.c:26:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *addr @@ got unsigned int const [noderef] __user *__gu_ptr @@ sound/pci/hda/hda_hwdep.c:26:13: sparse: expected void const *addr sound/pci/hda/hda_hwdep.c:26:13: sparse: got unsigned int const [noderef] __user *__gu_ptr >> sound/pci/hda/hda_hwdep.c:30:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int *__pu_addr @@ got unsigned int [noderef] __user * @@ sound/pci/hda/hda_hwdep.c:30:13: sparse: expected unsigned int *__pu_addr sound/pci/hda/hda_hwdep.c:30:13: sparse: got unsigned int [noderef] __user * sound/pci/hda/hda_hwdep.c:40:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *addr @@ got unsigned int const [noderef] __user *__gu_ptr @@ sound/pci/hda/hda_hwdep.c:40:13: sparse: expected void const *addr sound/pci/hda/hda_hwdep.c:40:13: sparse: got unsigned int const [noderef] __user *__gu_ptr sound/pci/hda/hda_hwdep.c:52:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int *__pu_addr @@ got unsigned int [noderef] __user * @@ sound/pci/hda/hda_hwdep.c:52:13: sparse: expected unsigned int *__pu_addr sound/pci/hda/hda_hwdep.c:52:13: sparse: got unsigned int [noderef] __user * >> sound/pci/hda/hda_hwdep.c:68:24: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int *__pu_addr @@ got int [noderef] __user * @@ sound/pci/hda/hda_hwdep.c:68:24: sparse: expected int *__pu_addr sound/pci/hda/hda_hwdep.c:68:24: sparse: got int [noderef] __user * -- >> sound/core/seq/oss/seq_oss_ioctl.c:97:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *addr @@ got int const [noderef] __user *__gu_ptr @@ sound/core/seq/oss/seq_oss_ioctl.c:97:21: sparse: expected void const *addr sound/core/seq/oss/seq_oss_ioctl.c:97:21: sparse: got int const [noderef] __user *__gu_ptr >> sound/core/seq/oss/seq_oss_ioctl.c:104:24: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int *__pu_addr @@ got int [noderef] __user *p @@ sound/core/seq/oss/seq_oss_ioctl.c:104:24: sparse: expected int *__pu_addr sound/core/seq/oss/seq_oss_ioctl.c:104:24: sparse: got int [noderef] __user *p sound/core/seq/oss/seq_oss_ioctl.c:109:24: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int *__pu_addr @@ got int [noderef] __user *p @@ sound/core/seq/oss/seq_oss_ioctl.c:109:24: sparse: expected int *__pu_addr sound/core/seq/oss/seq_oss_ioctl.c:109:24: sparse: got int [noderef] __user *p sound/core/seq/oss/seq_oss_ioctl.c:112:24: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int *__pu_addr @@ got int [noderef] __user *p @@ sound/core/seq/oss/seq_oss_ioctl.c:112:24: sparse: expected int *__pu_addr sound/core/seq/oss/seq_oss_ioctl.c:112:24: sparse: got int [noderef] __user *p sound/core/seq/oss/seq_oss_ioctl.c:115:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *addr @@ got int const [noderef] __user *__gu_ptr @@ sound/core/seq/oss/seq_oss_ioctl.c:115:21: sparse: expected void const *addr sound/core/seq/oss/seq_oss_ioctl.c:115:21: sparse: got int const [noderef] __user *__gu_ptr sound/core/seq/oss/seq_oss_ioctl.c:120:24: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int *__pu_addr @@ got int [noderef] __user *p @@ sound/core/seq/oss/seq_oss_ioctl.c:120:24: sparse: expected int *__pu_addr sound/core/seq/oss/seq_oss_ioctl.c:120:24: sparse: got int [noderef] __user *p sound/core/seq/oss/seq_oss_ioctl.c:123:24: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int *__pu_addr @@ got int [noderef] __user *p @@ sound/core/seq/oss/seq_oss_ioctl.c:123:24: sparse: expected int *__pu_addr sound/core/seq/oss/seq_oss_ioctl.c:123:24: sparse: got int [noderef] __user *p sound/core/seq/oss/seq_oss_ioctl.c:126:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *addr @@ got int const [noderef] __user *__gu_ptr @@ sound/core/seq/oss/seq_oss_ioctl.c:126:21: sparse: expected void const *addr sound/core/seq/oss/seq_oss_ioctl.c:126:21: sparse: got int const [noderef] __user *__gu_ptr sound/core/seq/oss/seq_oss_ioctl.c:129:24: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int *__pu_addr @@ got int [noderef] __user *p @@ sound/core/seq/oss/seq_oss_ioctl.c:129:24: sparse: expected int *__pu_addr sound/core/seq/oss/seq_oss_ioctl.c:129:24: sparse: got int [noderef] __user *p sound/core/seq/oss/seq_oss_ioctl.c:132:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *addr @@ got int const [noderef] __user *__gu_ptr @@ sound/core/seq/oss/seq_oss_ioctl.c:132:21: sparse: expected void const *addr sound/core/seq/oss/seq_oss_ioctl.c:132:21: sparse: got int const [noderef] __user *__gu_ptr sound/core/seq/oss/seq_oss_ioctl.c:150:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *addr @@ got int const [noderef] __user *__gu_ptr @@ sound/core/seq/oss/seq_oss_ioctl.c:150:21: sparse: expected void const *addr sound/core/seq/oss/seq_oss_ioctl.c:150:21: sparse: got int const [noderef] __user *__gu_ptr sound/core/seq/oss/seq_oss_ioctl.c:162:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *addr @@ got int const [noderef] __user *__gu_ptr @@ sound/core/seq/oss/seq_oss_ioctl.c:162:21: sparse: expected void const *addr sound/core/seq/oss/seq_oss_ioctl.c:162:21: sparse: got int const [noderef] __user *__gu_ptr sound/core/seq/oss/seq_oss_ioctl.c:169:24: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int *__pu_addr @@ got int [noderef] __user *p @@ sound/core/seq/oss/seq_oss_ioctl.c:169:24: sparse: expected int *__pu_addr sound/core/seq/oss/seq_oss_ioctl.c:169:24: sparse: got int [noderef] __user *p -- >> sound/core/seq/oss/seq_oss_timer.c:224:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *addr @@ got int const [noderef] __user *__gu_ptr @@ sound/core/seq/oss/seq_oss_timer.c:224:21: sparse: expected void const *addr sound/core/seq/oss/seq_oss_timer.c:224:21: sparse: got int const [noderef] __user *__gu_ptr >> sound/core/seq/oss/seq_oss_timer.c:229:24: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int *__pu_addr @@ got int [noderef] __user *arg @@ sound/core/seq/oss/seq_oss_timer.c:229:24: sparse: expected int *__pu_addr sound/core/seq/oss/seq_oss_timer.c:229:24: sparse: got int [noderef] __user *arg sound/core/seq/oss/seq_oss_timer.c:243:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *addr @@ got int const [noderef] __user *__gu_ptr @@ sound/core/seq/oss/seq_oss_timer.c:243:21: sparse: expected void const *addr sound/core/seq/oss/seq_oss_timer.c:243:21: sparse: got int const [noderef] __user *__gu_ptr sound/core/seq/oss/seq_oss_timer.c:247:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *addr @@ got int const [noderef] __user *__gu_ptr @@ sound/core/seq/oss/seq_oss_timer.c:247:21: sparse: expected void const *addr sound/core/seq/oss/seq_oss_timer.c:247:21: sparse: got int const [noderef] __user *__gu_ptr vim +958 ipc/msg.c ^1da177e4c3f41 Linus Torvalds 2005-04-16 952 31c213f2106b7e Dominik Brodowski 2018-03-20 953 long ksys_msgsnd(int msqid, struct msgbuf __user *msgp, size_t msgsz, 31c213f2106b7e Dominik Brodowski 2018-03-20 954 int msgflg) 651971cb7242e8 suzuki 2006-12-06 955 { 651971cb7242e8 suzuki 2006-12-06 956 long mtype; 651971cb7242e8 suzuki 2006-12-06 957 651971cb7242e8 suzuki 2006-12-06 @958 if (get_user(mtype, &msgp->mtype)) 651971cb7242e8 suzuki 2006-12-06 959 return -EFAULT; 651971cb7242e8 suzuki 2006-12-06 960 return do_msgsnd(msqid, mtype, msgp->mtext, msgsz, msgflg); 651971cb7242e8 suzuki 2006-12-06 961 } 651971cb7242e8 suzuki 2006-12-06 962 31c213f2106b7e Dominik Brodowski 2018-03-20 963 SYSCALL_DEFINE4(msgsnd, int, msqid, struct msgbuf __user *, msgp, size_t, msgsz, 31c213f2106b7e Dominik Brodowski 2018-03-20 964 int, msgflg) 31c213f2106b7e Dominik Brodowski 2018-03-20 965 { 31c213f2106b7e Dominik Brodowski 2018-03-20 966 return ksys_msgsnd(msqid, msgp, msgsz, msgflg); 31c213f2106b7e Dominik Brodowski 2018-03-20 967 } 31c213f2106b7e Dominik Brodowski 2018-03-20 968 9b1404c24a3573 Al Viro 2017-07-09 969 #ifdef CONFIG_COMPAT 9b1404c24a3573 Al Viro 2017-07-09 970 9b1404c24a3573 Al Viro 2017-07-09 971 struct compat_msgbuf { 9b1404c24a3573 Al Viro 2017-07-09 972 compat_long_t mtype; 9b1404c24a3573 Al Viro 2017-07-09 973 char mtext[1]; 9b1404c24a3573 Al Viro 2017-07-09 974 }; 9b1404c24a3573 Al Viro 2017-07-09 975 31c213f2106b7e Dominik Brodowski 2018-03-20 976 long compat_ksys_msgsnd(int msqid, compat_uptr_t msgp, 31c213f2106b7e Dominik Brodowski 2018-03-20 977 compat_ssize_t msgsz, int msgflg) 9b1404c24a3573 Al Viro 2017-07-09 978 { 9b1404c24a3573 Al Viro 2017-07-09 979 struct compat_msgbuf __user *up = compat_ptr(msgp); 9b1404c24a3573 Al Viro 2017-07-09 980 compat_long_t mtype; 9b1404c24a3573 Al Viro 2017-07-09 981 9b1404c24a3573 Al Viro 2017-07-09 982 if (get_user(mtype, &up->mtype)) 9b1404c24a3573 Al Viro 2017-07-09 983 return -EFAULT; 9b1404c24a3573 Al Viro 2017-07-09 984 return do_msgsnd(msqid, mtype, up->mtext, (ssize_t)msgsz, msgflg); 9b1404c24a3573 Al Viro 2017-07-09 985 } 31c213f2106b7e Dominik Brodowski 2018-03-20 986 31c213f2106b7e Dominik Brodowski 2018-03-20 987 COMPAT_SYSCALL_DEFINE4(msgsnd, int, msqid, compat_uptr_t, msgp, 31c213f2106b7e Dominik Brodowski 2018-03-20 988 compat_ssize_t, msgsz, int, msgflg) 31c213f2106b7e Dominik Brodowski 2018-03-20 989 { 31c213f2106b7e Dominik Brodowski 2018-03-20 990 return compat_ksys_msgsnd(msqid, msgp, msgsz, msgflg); 31c213f2106b7e Dominik Brodowski 2018-03-20 991 } 9b1404c24a3573 Al Viro 2017-07-09 992 #endif 9b1404c24a3573 Al Viro 2017-07-09 993 ^1da177e4c3f41 Linus Torvalds 2005-04-16 994 static inline int convert_mode(long *msgtyp, int msgflg) ^1da177e4c3f41 Linus Torvalds 2005-04-16 995 { 8ac6ed5857c8d5 Peter Hurley 2013-04-30 996 if (msgflg & MSG_COPY) 8ac6ed5857c8d5 Peter Hurley 2013-04-30 997 return SEARCH_NUMBER; ^1da177e4c3f41 Linus Torvalds 2005-04-16 998 /* ^1da177e4c3f41 Linus Torvalds 2005-04-16 999 * find message of correct type. ^1da177e4c3f41 Linus Torvalds 2005-04-16 1000 * msgtyp = 0 => get first. ^1da177e4c3f41 Linus Torvalds 2005-04-16 1001 * msgtyp > 0 => get first message of matching type. ^1da177e4c3f41 Linus Torvalds 2005-04-16 1002 * msgtyp < 0 => get message with least type must be < abs(msgtype). ^1da177e4c3f41 Linus Torvalds 2005-04-16 1003 */ ^1da177e4c3f41 Linus Torvalds 2005-04-16 1004 if (*msgtyp == 0) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1005 return SEARCH_ANY; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1006 if (*msgtyp < 0) { 999898355e08ae Jiri Slaby 2016-12-14 1007 if (*msgtyp == LONG_MIN) /* -LONG_MIN is undefined */ 999898355e08ae Jiri Slaby 2016-12-14 1008 *msgtyp = LONG_MAX; 999898355e08ae Jiri Slaby 2016-12-14 1009 else 5a06a363ef4844 Ingo Molnar 2006-07-30 1010 *msgtyp = -*msgtyp; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1011 return SEARCH_LESSEQUAL; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1012 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1013 if (msgflg & MSG_EXCEPT) ^1da177e4c3f41 Linus Torvalds 2005-04-16 1014 return SEARCH_NOTEQUAL; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1015 return SEARCH_EQUAL; ^1da177e4c3f41 Linus Torvalds 2005-04-16 1016 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 1017 f9dd87f4738c75 Stanislav Kinsbursky 2013-01-04 1018 static long do_msg_fill(void __user *dest, struct msg_msg *msg, size_t bufsz) f9dd87f4738c75 Stanislav Kinsbursky 2013-01-04 1019 { f9dd87f4738c75 Stanislav Kinsbursky 2013-01-04 1020 struct msgbuf __user *msgp = dest; f9dd87f4738c75 Stanislav Kinsbursky 2013-01-04 1021 size_t msgsz; f9dd87f4738c75 Stanislav Kinsbursky 2013-01-04 1022 f9dd87f4738c75 Stanislav Kinsbursky 2013-01-04 @1023 if (put_user(msg->m_type, &msgp->mtype)) f9dd87f4738c75 Stanislav Kinsbursky 2013-01-04 1024 return -EFAULT; f9dd87f4738c75 Stanislav Kinsbursky 2013-01-04 1025 f9dd87f4738c75 Stanislav Kinsbursky 2013-01-04 1026 msgsz = (bufsz > msg->m_ts) ? msg->m_ts : bufsz; f9dd87f4738c75 Stanislav Kinsbursky 2013-01-04 1027 if (store_msg(msgp->mtext, msg, msgsz)) f9dd87f4738c75 Stanislav Kinsbursky 2013-01-04 1028 return -EFAULT; f9dd87f4738c75 Stanislav Kinsbursky 2013-01-04 1029 return msgsz; f9dd87f4738c75 Stanislav Kinsbursky 2013-01-04 1030 } f9dd87f4738c75 Stanislav Kinsbursky 2013-01-04 1031 :::::: The code at line 958 was first introduced by commit :::::: 651971cb7242e8f6d7ebd153e69bd271cb731223 [PATCH] Fix the size limit of compat space msgsize :::::: TO: suzuki <suzuki@xxxxxxxxxxxxxxxxxx> :::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxx> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip