tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 0dc589da873b58b70f4caf4b070fb0cf70fdd1dc commit: 670d0a4b10704667765f7d18f7592993d02783aa sparse: use identifiers to define address spaces date: 4 weeks ago config: openrisc-randconfig-s032-20200714 (attached as .config) compiler: or1k-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.2-41-g14e84ffc-dirty git checkout 670d0a4b10704667765f7d18f7592993d02783aa # 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=openrisc
If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <l...@intel.com> sparse warnings: (new ones prefixed by >>) >> drivers/net/hamradio/mkiss.c:825:23: sparse: sparse: incorrect type in >> initializer (different address spaces) @@ expected int *__pu_addr @@ >> got int [noderef] __user * @@ drivers/net/hamradio/mkiss.c:825:23: sparse: expected int *__pu_addr drivers/net/hamradio/mkiss.c:825:23: sparse: got int [noderef] __user * drivers/net/hamradio/mkiss.c:829:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user * @@ drivers/net/hamradio/mkiss.c:829:21: sparse: expected int const *__gu_addr drivers/net/hamradio/mkiss.c:829:21: sparse: got int [noderef] __user * include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *to @@ got void [noderef] __user *to @@ include/linux/uaccess.h:131:38: sparse: expected void *to include/linux/uaccess.h:131:38: sparse: got void [noderef] __user *to include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got void const *from @@ include/linux/uaccess.h:131:42: sparse: expected void const [noderef] __user *from include/linux/uaccess.h:131:42: sparse: got void const *from arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const *from @@ got void const [noderef] __user *from @@ arch/openrisc/include/asm/uaccess.h:246:55: sparse: expected void const *from arch/openrisc/include/asm/uaccess.h:246:55: sparse: got void const [noderef] __user *from -- >> drivers/hid/usbhid/hiddev.c:569:13: sparse: sparse: incorrect type in >> initializer (different address spaces) @@ expected int const *__gu_addr >> @@ got int [noderef] __user * @@ drivers/hid/usbhid/hiddev.c:569:13: sparse: expected int const *__gu_addr >> drivers/hid/usbhid/hiddev.c:569:13: sparse: got int [noderef] __user * >> drivers/hid/usbhid/hiddev.c:617:21: sparse: sparse: incorrect type in >> initializer (different address spaces) @@ expected int *__pu_addr @@ >> got int [noderef] __user * @@ drivers/hid/usbhid/hiddev.c:617:21: sparse: expected int *__pu_addr drivers/hid/usbhid/hiddev.c:617:21: sparse: got int [noderef] __user * drivers/hid/usbhid/hiddev.c:656:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int *__pu_addr @@ got int [noderef] __user * @@ drivers/hid/usbhid/hiddev.c:656:21: sparse: expected int *__pu_addr drivers/hid/usbhid/hiddev.c:656:21: sparse: got int [noderef] __user * drivers/hid/usbhid/hiddev.c:664:29: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user * @@ drivers/hid/usbhid/hiddev.c:664:29: sparse: expected int const *__gu_addr drivers/hid/usbhid/hiddev.c:664:29: sparse: got int [noderef] __user * include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *to @@ got void [noderef] __user *to @@ include/linux/uaccess.h:131:38: sparse: expected void *to include/linux/uaccess.h:131:38: sparse: got void [noderef] __user *to include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got void const *from @@ include/linux/uaccess.h:131:42: sparse: expected void const [noderef] __user *from include/linux/uaccess.h:131:42: sparse: got void const *from arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const *from @@ got void const [noderef] __user *from @@ arch/openrisc/include/asm/uaccess.h:246:55: sparse: expected void const *from arch/openrisc/include/asm/uaccess.h:246:55: sparse: got void const [noderef] __user *from include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *to @@ got void [noderef] __user *to @@ include/linux/uaccess.h:131:38: sparse: expected void *to include/linux/uaccess.h:131:38: sparse: got void [noderef] __user *to include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got void const *from @@ include/linux/uaccess.h:131:42: sparse: expected void const [noderef] __user *from include/linux/uaccess.h:131:42: sparse: got void const *from arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const *from @@ got void const [noderef] __user *from @@ arch/openrisc/include/asm/uaccess.h:246:55: sparse: expected void const *from arch/openrisc/include/asm/uaccess.h:246:55: sparse: got void const [noderef] __user *from include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *to @@ got void [noderef] __user *to @@ include/linux/uaccess.h:131:38: sparse: expected void *to include/linux/uaccess.h:131:38: sparse: got void [noderef] __user *to include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got void const *from @@ include/linux/uaccess.h:131:42: sparse: expected void const [noderef] __user *from include/linux/uaccess.h:131:42: sparse: got void const *from arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const *from @@ got void const [noderef] __user *from @@ arch/openrisc/include/asm/uaccess.h:246:55: sparse: expected void const *from arch/openrisc/include/asm/uaccess.h:246:55: sparse: got void const [noderef] __user *from include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *to @@ got void [noderef] __user *to @@ include/linux/uaccess.h:131:38: sparse: expected void *to include/linux/uaccess.h:131:38: sparse: got void [noderef] __user *to include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got void const *from @@ include/linux/uaccess.h:131:42: sparse: expected void const [noderef] __user *from include/linux/uaccess.h:131:42: sparse: got void const *from arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const *from @@ got void const [noderef] __user *from @@ arch/openrisc/include/asm/uaccess.h:246:55: sparse: expected void const *from arch/openrisc/include/asm/uaccess.h:246:55: sparse: got void const [noderef] __user *from include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *to @@ got void [noderef] __user *to @@ include/linux/uaccess.h:131:38: sparse: expected void *to include/linux/uaccess.h:131:38: sparse: got void [noderef] __user *to include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got void const *from @@ include/linux/uaccess.h:131:42: sparse: expected void const [noderef] __user *from include/linux/uaccess.h:131:42: sparse: got void const *from arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const *from @@ got void const [noderef] __user *from @@ arch/openrisc/include/asm/uaccess.h:246:55: sparse: expected void const *from arch/openrisc/include/asm/uaccess.h:246:55: sparse: got void const [noderef] __user *from include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *to @@ got void [noderef] __user *to @@ include/linux/uaccess.h:131:38: sparse: expected void *to include/linux/uaccess.h:131:38: sparse: got void [noderef] __user *to include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got void const *from @@ include/linux/uaccess.h:131:42: sparse: expected void const [noderef] __user *from include/linux/uaccess.h:131:42: sparse: got void const *from arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const *from @@ got void const [noderef] __user *from @@ arch/openrisc/include/asm/uaccess.h:246:55: sparse: expected void const *from arch/openrisc/include/asm/uaccess.h:246:55: sparse: got void const [noderef] __user *from include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *to @@ got void [noderef] __user *to @@ include/linux/uaccess.h:131:38: sparse: expected void *to include/linux/uaccess.h:131:38: sparse: got void [noderef] __user *to include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got void const *from @@ include/linux/uaccess.h:131:42: sparse: expected void const [noderef] __user *from include/linux/uaccess.h:131:42: sparse: got void const *from arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const *from @@ got void const [noderef] __user *from @@ arch/openrisc/include/asm/uaccess.h:246:55: sparse: expected void const *from arch/openrisc/include/asm/uaccess.h:246:55: sparse: got void const [noderef] __user *from include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *to @@ got void [noderef] __user *to @@ include/linux/uaccess.h:131:38: sparse: expected void *to include/linux/uaccess.h:131:38: sparse: got void [noderef] __user *to include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got void const *from @@ include/linux/uaccess.h:131:42: sparse: expected void const [noderef] __user *from include/linux/uaccess.h:131:42: sparse: got void const *from arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const *from @@ got void const [noderef] __user *from @@ arch/openrisc/include/asm/uaccess.h:246:55: sparse: expected void const *from arch/openrisc/include/asm/uaccess.h:246:55: sparse: got void const [noderef] __user *from include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *to @@ got void [noderef] __user *to @@ include/linux/uaccess.h:131:38: sparse: expected void *to include/linux/uaccess.h:131:38: sparse: got void [noderef] __user *to include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got void const *from @@ include/linux/uaccess.h:131:42: sparse: expected void const [noderef] __user *from include/linux/uaccess.h:131:42: sparse: got void const *from arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const *from @@ got void const [noderef] __user *from @@ arch/openrisc/include/asm/uaccess.h:246:55: sparse: expected void const *from arch/openrisc/include/asm/uaccess.h:246:55: sparse: got void const [noderef] __user *from include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *to @@ got void [noderef] __user *to @@ include/linux/uaccess.h:131:38: sparse: expected void *to include/linux/uaccess.h:131:38: sparse: got void [noderef] __user *to include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got void const *from @@ include/linux/uaccess.h:131:42: sparse: expected void const [noderef] __user *from include/linux/uaccess.h:131:42: sparse: got void const *from arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const *from @@ got void const [noderef] __user *from @@ arch/openrisc/include/asm/uaccess.h:246:55: sparse: expected void const *from arch/openrisc/include/asm/uaccess.h:246:55: sparse: got void const [noderef] __user *from include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *to @@ got void [noderef] __user *to @@ include/linux/uaccess.h:131:38: sparse: expected void *to -- >> drivers/usb/atm/usbatm.c:893:24: sparse: sparse: incorrect type in >> initializer (different address spaces) @@ expected int *__pu_addr @@ >> got int [noderef] __user * @@ drivers/usb/atm/usbatm.c:893:24: sparse: expected int *__pu_addr >> drivers/usb/atm/usbatm.c:893:24: sparse: got int [noderef] __user * -- >> fs/ubifs/ioctl.c:153:24: sparse: sparse: incorrect type in initializer >> (different address spaces) @@ expected int *__pu_addr @@ got int >> [noderef] __user * @@ fs/ubifs/ioctl.c:153:24: sparse: expected int *__pu_addr fs/ubifs/ioctl.c:153:24: sparse: got int [noderef] __user * fs/ubifs/ioctl.c:162:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user * @@ fs/ubifs/ioctl.c:162:21: sparse: expected int const *__gu_addr fs/ubifs/ioctl.c:162:21: sparse: got int [noderef] __user * -- net/netrom/af_netrom.c:309:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int const *__gu_addr @@ got unsigned int [noderef] __user * @@ net/netrom/af_netrom.c:309:13: sparse: expected unsigned int const *__gu_addr net/netrom/af_netrom.c:309:13: sparse: got unsigned int [noderef] __user * net/netrom/af_netrom.c:359:13: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int const *__gu_addr @@ got int [noderef] __user *optlen @@ net/netrom/af_netrom.c:359:13: sparse: expected int const *__gu_addr net/netrom/af_netrom.c:359:13: sparse: got int [noderef] __user *optlen >> net/netrom/af_netrom.c:392:13: sparse: sparse: incorrect type in initializer >> (different address spaces) @@ expected int *__pu_addr @@ got int >> [noderef] __user *optlen @@ net/netrom/af_netrom.c:392:13: sparse: expected int *__pu_addr net/netrom/af_netrom.c:392:13: sparse: got int [noderef] __user *optlen >> net/netrom/af_netrom.c:1211:24: sparse: sparse: incorrect type in >> initializer (different address spaces) @@ expected int *__pu_addr @@ >> got int [noderef] __user * @@ net/netrom/af_netrom.c:1211:24: sparse: expected int *__pu_addr >> net/netrom/af_netrom.c:1211:24: sparse: got int [noderef] __user * net/netrom/af_netrom.c:1223:24: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected int *__pu_addr @@ got int [noderef] __user * @@ net/netrom/af_netrom.c:1223:24: sparse: expected int *__pu_addr net/netrom/af_netrom.c:1223:24: sparse: got int [noderef] __user * include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *to @@ got void [noderef] __user *to @@ include/linux/uaccess.h:131:38: sparse: expected void *to include/linux/uaccess.h:131:38: sparse: got void [noderef] __user *to include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] __user *from @@ got void const *from @@ include/linux/uaccess.h:131:42: sparse: expected void const [noderef] __user *from include/linux/uaccess.h:131:42: sparse: got void const *from arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const *from @@ got void const [noderef] __user *from @@ arch/openrisc/include/asm/uaccess.h:246:55: sparse: expected void const *from arch/openrisc/include/asm/uaccess.h:246:55: sparse: got void const [noderef] __user *from arch/openrisc/include/asm/cmpxchg.h:101:29: sparse: sparse: shift too big (32) for type int vim +825 drivers/net/hamradio/mkiss.c ^1da177e4c3f41 Linus Torvalds 2005-04-16 804 815f62bf742718 Ralf Baechle 2005-08-24 805 /* Perform I/O control on an active ax25 channel. */ 815f62bf742718 Ralf Baechle 2005-08-24 806 static int mkiss_ioctl(struct tty_struct *tty, struct file *file, 815f62bf742718 Ralf Baechle 2005-08-24 807 unsigned int cmd, unsigned long arg) ^1da177e4c3f41 Linus Torvalds 2005-04-16 808 { 815f62bf742718 Ralf Baechle 2005-08-24 809 struct mkiss *ax = mkiss_get(tty); f40e0638237a2d Julia Lawall 2008-12-16 810 struct net_device *dev; 815f62bf742718 Ralf Baechle 2005-08-24 811 unsigned int tmp, err; ^1da177e4c3f41 Linus Torvalds 2005-04-16 812 815f62bf742718 Ralf Baechle 2005-08-24 813 /* First make sure we're connected. */ 815f62bf742718 Ralf Baechle 2005-08-24 814 if (ax == NULL) 815f62bf742718 Ralf Baechle 2005-08-24 815 return -ENXIO; f40e0638237a2d Julia Lawall 2008-12-16 816 dev = ax->dev; ^1da177e4c3f41 Linus Torvalds 2005-04-16 817 815f62bf742718 Ralf Baechle 2005-08-24 818 switch (cmd) { 815f62bf742718 Ralf Baechle 2005-08-24 819 case SIOCGIFNAME: 815f62bf742718 Ralf Baechle 2005-08-24 820 err = copy_to_user((void __user *) arg, ax->dev->name, 815f62bf742718 Ralf Baechle 2005-08-24 821 strlen(ax->dev->name) + 1) ? -EFAULT : 0; ^1da177e4c3f41 Linus Torvalds 2005-04-16 822 break; 815f62bf742718 Ralf Baechle 2005-08-24 823 815f62bf742718 Ralf Baechle 2005-08-24 824 case SIOCGIFENCAP: 815f62bf742718 Ralf Baechle 2005-08-24 @825 err = put_user(4, (int __user *) arg); ^1da177e4c3f41 Linus Torvalds 2005-04-16 826 break; 815f62bf742718 Ralf Baechle 2005-08-24 827 815f62bf742718 Ralf Baechle 2005-08-24 828 case SIOCSIFENCAP: 815f62bf742718 Ralf Baechle 2005-08-24 829 if (get_user(tmp, (int __user *) arg)) { 815f62bf742718 Ralf Baechle 2005-08-24 830 err = -EFAULT; ^1da177e4c3f41 Linus Torvalds 2005-04-16 831 break; ^1da177e4c3f41 Linus Torvalds 2005-04-16 832 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 833 815f62bf742718 Ralf Baechle 2005-08-24 834 ax->mode = tmp; 815f62bf742718 Ralf Baechle 2005-08-24 835 dev->addr_len = AX25_ADDR_LEN; 815f62bf742718 Ralf Baechle 2005-08-24 836 dev->hard_header_len = AX25_KISS_HEADER_LEN + 815f62bf742718 Ralf Baechle 2005-08-24 837 AX25_MAX_HEADER_LEN + 3; 815f62bf742718 Ralf Baechle 2005-08-24 838 dev->type = ARPHRD_AX25; ^1da177e4c3f41 Linus Torvalds 2005-04-16 839 815f62bf742718 Ralf Baechle 2005-08-24 840 err = 0; 815f62bf742718 Ralf Baechle 2005-08-24 841 break; ^1da177e4c3f41 Linus Torvalds 2005-04-16 842 815f62bf742718 Ralf Baechle 2005-08-24 843 case SIOCSIFHWADDR: { 815f62bf742718 Ralf Baechle 2005-08-24 844 char addr[AX25_ADDR_LEN]; ^1da177e4c3f41 Linus Torvalds 2005-04-16 845 815f62bf742718 Ralf Baechle 2005-08-24 846 if (copy_from_user(&addr, 815f62bf742718 Ralf Baechle 2005-08-24 847 (void __user *) arg, AX25_ADDR_LEN)) { 815f62bf742718 Ralf Baechle 2005-08-24 848 err = -EFAULT; ^1da177e4c3f41 Linus Torvalds 2005-04-16 849 break; ^1da177e4c3f41 Linus Torvalds 2005-04-16 850 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 851 932ff279a43ab7 Herbert Xu 2006-06-09 852 netif_tx_lock_bh(dev); 815f62bf742718 Ralf Baechle 2005-08-24 853 memcpy(dev->dev_addr, addr, AX25_ADDR_LEN); 932ff279a43ab7 Herbert Xu 2006-06-09 854 netif_tx_unlock_bh(dev); ^1da177e4c3f41 Linus Torvalds 2005-04-16 855 815f62bf742718 Ralf Baechle 2005-08-24 856 err = 0; 815f62bf742718 Ralf Baechle 2005-08-24 857 break; ^1da177e4c3f41 Linus Torvalds 2005-04-16 858 } 815f62bf742718 Ralf Baechle 2005-08-24 859 default: 815f62bf742718 Ralf Baechle 2005-08-24 860 err = -ENOIOCTLCMD; ^1da177e4c3f41 Linus Torvalds 2005-04-16 861 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 862 815f62bf742718 Ralf Baechle 2005-08-24 863 mkiss_put(ax); ^1da177e4c3f41 Linus Torvalds 2005-04-16 864 815f62bf742718 Ralf Baechle 2005-08-24 865 return err; ^1da177e4c3f41 Linus Torvalds 2005-04-16 866 } ^1da177e4c3f41 Linus Torvalds 2005-04-16 867 :::::: The code at line 825 was first introduced by commit :::::: 815f62bf742718458ba822a7e1f51f285eb997f2 [PATCH] SMP rewrite of mkiss :::::: TO: Ralf Baechle <r...@linux-mips.org> :::::: CC: Jeff Garzik <jgar...@pobox.com> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org
.config.gz
Description: application/gzip