lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:   Thu, 7 Apr 2022 22:35:00 +0800
From:   kernel test robot <lkp@...el.com>
To:     "Kirill A. Shutemov" <kirill.shutemov@...ux.intel.com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org
Subject: [kas:lam 6/10] drivers/scsi/scsi_ioctl.c:49:21: sparse: sparse:
 incorrect type in argument 1 (different address spaces)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/kas/linux.git lam
head:   73447e771c55e18598a6fbf6adee1002aee18ea0
commit: 92948bd2c12648f2fb8256ae69dd092ce4398a3a [6/10] x86/uaccess: Remove tags from the address before checking
config: x86_64-randconfig-s021 (https://download.01.org/0day-ci/archive/20220407/202204072240.us5nOO6H-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.2.0-19) 11.2.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.4-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/kas/linux.git/commit/?id=92948bd2c12648f2fb8256ae69dd092ce4398a3a
        git remote add kas https://git.kernel.org/pub/scm/linux/kernel/git/kas/linux.git
        git fetch --no-tags kas lam
        git checkout 92948bd2c12648f2fb8256ae69dd092ce4398a3a
        # save the config file to linux build tree
        mkdir build_dir
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=x86_64 SHELL=/bin/bash arch/x86/kernel/cpu/mce/ block/ drivers/acpi/ drivers/android/ drivers/ata/ drivers/block/ drivers/comedi/ drivers/fpga/ drivers/infiniband/core/ drivers/nvme/host/ drivers/platform/x86/ drivers/scsi/ drivers/usb/gadget/function/ drivers/vdpa/vdpa_user/ drivers/vhost/ fs/cifs/ fs/ext2/ fs/ext4/ fs/f2fs/ fs/jfs/ fs/reiserfs/ fs/xfs/ kernel/ net/bluetooth/ net/core/ net/decnet/ net/ipv4/ net/l2tp/ net/llc/ net/nfc/ net/sctp/ net/smc/ net/tipc/ net/tls/ sound/core/

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


sparse warnings: (new ones prefixed by >>)
>> drivers/scsi/scsi_ioctl.c:49:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   drivers/scsi/scsi_ioctl.c:49:21: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/scsi/scsi_ioctl.c:49:21: sparse:     got unsigned int *__ptr_clean
>> drivers/scsi/scsi_ioctl.c:173:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   drivers/scsi/scsi_ioctl.c:173:16: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/scsi/scsi_ioctl.c:173:16: sparse:     got int *__ptr_clean
>> drivers/scsi/scsi_ioctl.c:173:16: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   drivers/scsi/scsi_ioctl.c:173:16: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/scsi/scsi_ioctl.c:173:16: sparse:     got int *__ptr_clean
   drivers/scsi/scsi_ioctl.c:178:28: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   drivers/scsi/scsi_ioctl.c:178:28: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/scsi/scsi_ioctl.c:178:28: sparse:     got int *__ptr_clean
   drivers/scsi/scsi_ioctl.c:191:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   drivers/scsi/scsi_ioctl.c:191:16: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/scsi/scsi_ioctl.c:191:16: sparse:     got int *__ptr_clean
   drivers/scsi/scsi_ioctl.c:191:16: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   drivers/scsi/scsi_ioctl.c:191:16: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/scsi/scsi_ioctl.c:191:16: sparse:     got int *__ptr_clean
   drivers/scsi/scsi_ioctl.c:196:25: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   drivers/scsi/scsi_ioctl.c:196:25: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/scsi/scsi_ioctl.c:196:25: sparse:     got int *__ptr_clean
   drivers/scsi/scsi_ioctl.c:215:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   drivers/scsi/scsi_ioctl.c:215:16: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/scsi/scsi_ioctl.c:215:16: sparse:     got int *__ptr_clean
   drivers/scsi/scsi_ioctl.c:215:16: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   drivers/scsi/scsi_ioctl.c:215:16: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/scsi/scsi_ioctl.c:215:16: sparse:     got int *__ptr_clean
   drivers/scsi/scsi_ioctl.c:532:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   drivers/scsi/scsi_ioctl.c:532:13: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/scsi/scsi_ioctl.c:532:13: sparse:     got unsigned int *__ptr_clean
   drivers/scsi/scsi_ioctl.c:534:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   drivers/scsi/scsi_ioctl.c:534:13: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/scsi/scsi_ioctl.c:534:13: sparse:     got unsigned int *__ptr_clean
>> drivers/scsi/scsi_ioctl.c:538:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned char *__ptr_clean @@
   drivers/scsi/scsi_ioctl.c:538:13: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/scsi/scsi_ioctl.c:538:13: sparse:     got unsigned char *__ptr_clean
   drivers/scsi/scsi_ioctl.c:924:24: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   drivers/scsi/scsi_ioctl.c:924:24: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/scsi/scsi_ioctl.c:924:24: sparse:     got int *__ptr_clean
   drivers/scsi/scsi_ioctl.c:924:24: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   drivers/scsi/scsi_ioctl.c:924:24: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/scsi/scsi_ioctl.c:924:24: sparse:     got int *__ptr_clean
--
>> drivers/scsi/scsi_error.c:2388:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   drivers/scsi/scsi_error.c:2388:17: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/scsi/scsi_error.c:2388:17: sparse:     got int *__ptr_clean
--
>> drivers/scsi/ch.c:552:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned char *__ptr_clean @@
   drivers/scsi/ch.c:552:17: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/scsi/ch.c:552:17: sparse:     got unsigned char *__ptr_clean
>> drivers/scsi/ch.c:552:17: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned char *__ptr_clean @@
   drivers/scsi/ch.c:552:17: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/scsi/ch.c:552:17: sparse:     got unsigned char *__ptr_clean
--
   drivers/scsi/st.c: note: in included file:
>> include/linux/mtio.h:55:24: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   include/linux/mtio.h:55:24: sparse:     expected void const volatile [noderef] __user *ptr
   include/linux/mtio.h:55:24: sparse:     got unsigned int *__ptr_clean
>> include/linux/mtio.h:55:24: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   include/linux/mtio.h:55:24: sparse:     expected void [noderef] __user *__ptr_pu
   include/linux/mtio.h:55:24: sparse:     got unsigned int *__ptr_clean
>> include/linux/mtio.h:57:24: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got long *__ptr_clean @@
   include/linux/mtio.h:57:24: sparse:     expected void const volatile [noderef] __user *ptr
   include/linux/mtio.h:57:24: sparse:     got long *__ptr_clean
>> include/linux/mtio.h:57:24: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got long *__ptr_clean @@
   include/linux/mtio.h:57:24: sparse:     expected void [noderef] __user *__ptr_pu
   include/linux/mtio.h:57:24: sparse:     got long *__ptr_clean
--
>> drivers/usb/gadget/function/rndis.c:1138:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got char const *__ptr_clean @@
   drivers/usb/gadget/function/rndis.c:1138:21: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/usb/gadget/function/rndis.c:1138:21: sparse:     got char const *__ptr_clean
--
>> drivers/vdpa/vdpa_user/vduse_dev.c:975:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned long long *__ptr_clean @@
   drivers/vdpa/vdpa_user/vduse_dev.c:975:23: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/vdpa/vdpa_user/vduse_dev.c:975:23: sparse:     got unsigned long long *__ptr_clean
>> drivers/vdpa/vdpa_user/vduse_dev.c:975:23: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned long long *__ptr_clean @@
   drivers/vdpa/vdpa_user/vduse_dev.c:975:23: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/vdpa/vdpa_user/vduse_dev.c:975:23: sparse:     got unsigned long long *__ptr_clean
>> drivers/vdpa/vdpa_user/vduse_dev.c:1080:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   drivers/vdpa/vdpa_user/vduse_dev.c:1080:21: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/vdpa/vdpa_user/vduse_dev.c:1080:21: sparse:     got unsigned int *__ptr_clean
   drivers/vdpa/vdpa_user/vduse_dev.c:1381:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned long long *__ptr_clean @@
   drivers/vdpa/vdpa_user/vduse_dev.c:1381:23: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/vdpa/vdpa_user/vduse_dev.c:1381:23: sparse:     got unsigned long long *__ptr_clean
   drivers/vdpa/vdpa_user/vduse_dev.c:1381:23: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned long long *__ptr_clean @@
   drivers/vdpa/vdpa_user/vduse_dev.c:1381:23: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/vdpa/vdpa_user/vduse_dev.c:1381:23: sparse:     got unsigned long long *__ptr_clean
   drivers/vdpa/vdpa_user/vduse_dev.c:1387:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned long long *__ptr_clean @@
   drivers/vdpa/vdpa_user/vduse_dev.c:1387:21: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/vdpa/vdpa_user/vduse_dev.c:1387:21: sparse:     got unsigned long long *__ptr_clean
--
>> drivers/vhost/scsi.c:1872:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   drivers/vhost/scsi.c:1872:21: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/vhost/scsi.c:1872:21: sparse:     got unsigned int *__ptr_clean
   drivers/vhost/scsi.c:1882:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   drivers/vhost/scsi.c:1882:21: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/vhost/scsi.c:1882:21: sparse:     got unsigned int *__ptr_clean
>> drivers/vhost/scsi.c:1882:21: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   drivers/vhost/scsi.c:1882:21: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/vhost/scsi.c:1882:21: sparse:     got unsigned int *__ptr_clean
--
>> drivers/vhost/vhost.c:1602:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   drivers/vhost/vhost.c:1602:13: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/vhost/vhost.c:1602:13: sparse:     got unsigned int *__ptr_clean
>> drivers/vhost/vhost.c:1800:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   drivers/vhost/vhost.c:1800:21: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/vhost/vhost.c:1800:21: sparse:     got int *__ptr_clean
--
   drivers/infiniband/core/user_mad.c: note: in included file (through include/trace/trace_events.h, include/trace/define_trace.h, include/trace/events/ib_umad.h):
   include/trace/events/ib_umad.h:16:1: sparse: sparse: cast to restricted __be32
   include/trace/events/ib_umad.h:16:1: sparse: sparse: cast to restricted __be32
   include/trace/events/ib_umad.h:16:1: sparse: sparse: cast to restricted __be16
   include/trace/events/ib_umad.h:16:1: sparse: sparse: cast to restricted __be32
   include/trace/events/ib_umad.h:16:1: sparse: sparse: cast to restricted __be16
   include/trace/events/ib_umad.h:16:1: sparse: sparse: cast to restricted __be16
   include/trace/events/ib_umad.h:16:1: sparse: sparse: cast to restricted __be64
   include/trace/events/ib_umad.h:16:1: sparse: sparse: cast to restricted __be16
   include/trace/events/ib_umad.h:16:1: sparse: sparse: cast to restricted __be32
   drivers/infiniband/core/user_mad.c: note: in included file (through include/trace/trace_events.h, include/trace/define_trace.h, include/trace/events/ib_umad.h):
   include/trace/events/ib_umad.h:16:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] qpn @@     got restricted __be32 [usertype] qpn @@
   include/trace/events/ib_umad.h:16:1: sparse:     expected unsigned int [usertype] qpn
   include/trace/events/ib_umad.h:16:1: sparse:     got restricted __be32 [usertype] qpn
   include/trace/events/ib_umad.h:16:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] qkey @@     got restricted __be32 [usertype] qkey @@
   include/trace/events/ib_umad.h:16:1: sparse:     expected unsigned int [usertype] qkey
   include/trace/events/ib_umad.h:16:1: sparse:     got restricted __be32 [usertype] qkey
   include/trace/events/ib_umad.h:16:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] lid @@     got restricted __be16 [usertype] lid @@
   include/trace/events/ib_umad.h:16:1: sparse:     expected unsigned short [usertype] lid
   include/trace/events/ib_umad.h:16:1: sparse:     got restricted __be16 [usertype] lid
   include/trace/events/ib_umad.h:16:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] flow_label @@     got restricted __be32 [usertype] flow_label @@
   include/trace/events/ib_umad.h:16:1: sparse:     expected unsigned int [usertype] flow_label
   include/trace/events/ib_umad.h:16:1: sparse:     got restricted __be32 [usertype] flow_label
   include/trace/events/ib_umad.h:16:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] mad_status @@     got restricted __be16 [usertype] status @@
   include/trace/events/ib_umad.h:16:1: sparse:     expected unsigned short [usertype] mad_status
   include/trace/events/ib_umad.h:16:1: sparse:     got restricted __be16 [usertype] status
   include/trace/events/ib_umad.h:16:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] class_specific @@     got restricted __be16 [usertype] class_specific @@
   include/trace/events/ib_umad.h:16:1: sparse:     expected unsigned short [usertype] class_specific
   include/trace/events/ib_umad.h:16:1: sparse:     got restricted __be16 [usertype] class_specific
   include/trace/events/ib_umad.h:16:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned long long [usertype] tid @@     got restricted __be64 [usertype] tid @@
   include/trace/events/ib_umad.h:16:1: sparse:     expected unsigned long long [usertype] tid
   include/trace/events/ib_umad.h:16:1: sparse:     got restricted __be64 [usertype] tid
   include/trace/events/ib_umad.h:16:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] attr_id @@     got restricted __be16 [usertype] attr_id @@
   include/trace/events/ib_umad.h:16:1: sparse:     expected unsigned short [usertype] attr_id
   include/trace/events/ib_umad.h:16:1: sparse:     got restricted __be16 [usertype] attr_id
   include/trace/events/ib_umad.h:16:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] attr_mod @@     got restricted __be32 [usertype] attr_mod @@
   include/trace/events/ib_umad.h:16:1: sparse:     expected unsigned int [usertype] attr_mod
   include/trace/events/ib_umad.h:16:1: sparse:     got restricted __be32 [usertype] attr_mod
   drivers/infiniband/core/user_mad.c: note: in included file (through include/trace/perf.h, include/trace/define_trace.h, include/trace/events/ib_umad.h):
   include/trace/events/ib_umad.h:16:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] qpn @@     got restricted __be32 [usertype] qpn @@
   include/trace/events/ib_umad.h:16:1: sparse:     expected unsigned int [usertype] qpn
   include/trace/events/ib_umad.h:16:1: sparse:     got restricted __be32 [usertype] qpn
   include/trace/events/ib_umad.h:16:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] qkey @@     got restricted __be32 [usertype] qkey @@
   include/trace/events/ib_umad.h:16:1: sparse:     expected unsigned int [usertype] qkey
   include/trace/events/ib_umad.h:16:1: sparse:     got restricted __be32 [usertype] qkey
   include/trace/events/ib_umad.h:16:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] lid @@     got restricted __be16 [usertype] lid @@
   include/trace/events/ib_umad.h:16:1: sparse:     expected unsigned short [usertype] lid
   include/trace/events/ib_umad.h:16:1: sparse:     got restricted __be16 [usertype] lid
   include/trace/events/ib_umad.h:16:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] flow_label @@     got restricted __be32 [usertype] flow_label @@
   include/trace/events/ib_umad.h:16:1: sparse:     expected unsigned int [usertype] flow_label
   include/trace/events/ib_umad.h:16:1: sparse:     got restricted __be32 [usertype] flow_label
   include/trace/events/ib_umad.h:16:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] mad_status @@     got restricted __be16 [usertype] status @@
   include/trace/events/ib_umad.h:16:1: sparse:     expected unsigned short [usertype] mad_status
   include/trace/events/ib_umad.h:16:1: sparse:     got restricted __be16 [usertype] status
   include/trace/events/ib_umad.h:16:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] class_specific @@     got restricted __be16 [usertype] class_specific @@
   include/trace/events/ib_umad.h:16:1: sparse:     expected unsigned short [usertype] class_specific
   include/trace/events/ib_umad.h:16:1: sparse:     got restricted __be16 [usertype] class_specific
   include/trace/events/ib_umad.h:16:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned long long [usertype] tid @@     got restricted __be64 [usertype] tid @@
   include/trace/events/ib_umad.h:16:1: sparse:     expected unsigned long long [usertype] tid
   include/trace/events/ib_umad.h:16:1: sparse:     got restricted __be64 [usertype] tid
   include/trace/events/ib_umad.h:16:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] attr_id @@     got restricted __be16 [usertype] attr_id @@
   include/trace/events/ib_umad.h:16:1: sparse:     expected unsigned short [usertype] attr_id
   include/trace/events/ib_umad.h:16:1: sparse:     got restricted __be16 [usertype] attr_id
   include/trace/events/ib_umad.h:16:1: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] attr_mod @@     got restricted __be32 [usertype] attr_mod @@
   include/trace/events/ib_umad.h:16:1: sparse:     expected unsigned int [usertype] attr_mod
   include/trace/events/ib_umad.h:16:1: sparse:     got restricted __be32 [usertype] attr_mod
>> drivers/infiniband/core/user_mad.c:749:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   drivers/infiniband/core/user_mad.c:749:13: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/infiniband/core/user_mad.c:749:13: sparse:     got unsigned int *__ptr_clean
>> drivers/infiniband/core/user_mad.c:749:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   drivers/infiniband/core/user_mad.c:749:13: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/infiniband/core/user_mad.c:749:13: sparse:     got unsigned int *__ptr_clean
   drivers/infiniband/core/user_mad.c:815:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   drivers/infiniband/core/user_mad.c:815:21: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/infiniband/core/user_mad.c:815:21: sparse:     got unsigned int *__ptr_clean
   drivers/infiniband/core/user_mad.c:815:21: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   drivers/infiniband/core/user_mad.c:815:21: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/infiniband/core/user_mad.c:815:21: sparse:     got unsigned int *__ptr_clean
   drivers/infiniband/core/user_mad.c:863:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   drivers/infiniband/core/user_mad.c:863:13: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/infiniband/core/user_mad.c:863:13: sparse:     got unsigned int *__ptr_clean
   drivers/infiniband/core/user_mad.c:863:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   drivers/infiniband/core/user_mad.c:863:13: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/infiniband/core/user_mad.c:863:13: sparse:     got unsigned int *__ptr_clean
   drivers/infiniband/core/user_mad.c:896:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   drivers/infiniband/core/user_mad.c:896:13: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/infiniband/core/user_mad.c:896:13: sparse:     got unsigned int *__ptr_clean
--
>> drivers/infiniband/core/uverbs_main.c:632:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned long long const *__ptr_clean @@
   drivers/infiniband/core/uverbs_main.c:632:31: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/infiniband/core/uverbs_main.c:632:31: sparse:     got unsigned long long const *__ptr_clean
--
>> drivers/infiniband/core/uverbs_ioctl.c:157:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned short *__ptr_clean @@
   drivers/infiniband/core/uverbs_ioctl.c:157:13: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/infiniband/core/uverbs_ioctl.c:157:13: sparse:     got unsigned short *__ptr_clean
>> drivers/infiniband/core/uverbs_ioctl.c:157:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned short *__ptr_clean @@
   drivers/infiniband/core/uverbs_ioctl.c:157:13: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/infiniband/core/uverbs_ioctl.c:157:13: sparse:     got unsigned short *__ptr_clean
>> drivers/infiniband/core/uverbs_ioctl.c:334:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned long long *__ptr_clean @@
   drivers/infiniband/core/uverbs_ioctl.c:334:29: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/infiniband/core/uverbs_ioctl.c:334:29: sparse:     got unsigned long long *__ptr_clean
>> drivers/infiniband/core/uverbs_ioctl.c:334:29: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned long long *__ptr_clean @@
   drivers/infiniband/core/uverbs_ioctl.c:334:29: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/infiniband/core/uverbs_ioctl.c:334:29: sparse:     got unsigned long long *__ptr_clean
   drivers/infiniband/core/uverbs_ioctl.c:423:17: sparse: sparse: incorrect type in assignment (different modifiers) @@     expected int ( *handler )( ... ) @@     got int ( [noderef] * )( ... ) @@
   drivers/infiniband/core/uverbs_ioctl.c:423:17: sparse:     expected int ( *handler )( ... )
   drivers/infiniband/core/uverbs_ioctl.c:423:17: sparse:     got int ( [noderef] * )( ... )
--
>> net/tipc/socket.c:3242:24: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/tipc/socket.c:3242:24: sparse:     expected void const volatile [noderef] __user *ptr
   net/tipc/socket.c:3242:24: sparse:     got int *__ptr_clean
>> net/tipc/socket.c:3242:24: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/tipc/socket.c:3242:24: sparse:     expected void [noderef] __user *__ptr_pu
   net/tipc/socket.c:3242:24: sparse:     got int *__ptr_clean
   net/tipc/socket.c:3245:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/tipc/socket.c:3245:15: sparse:     expected void const volatile [noderef] __user *ptr
   net/tipc/socket.c:3245:15: sparse:     got int *__ptr_clean
   net/tipc/socket.c:3295:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/tipc/socket.c:3295:16: sparse:     expected void const volatile [noderef] __user *ptr
   net/tipc/socket.c:3295:16: sparse:     got int *__ptr_clean
   net/tipc/socket.c:3295:16: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/tipc/socket.c:3295:16: sparse:     expected void [noderef] __user *__ptr_pu
   net/tipc/socket.c:3295:16: sparse:     got int *__ptr_clean
--
   net/sctp/socket.c: note: in included file (through include/net/sctp/sctp.h):
   include/net/sctp/structs.h:335:41: sparse: sparse: array of flexible structures
>> net/sctp/socket.c:1423:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/sctp/socket.c:1423:21: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:1423:21: sparse:     got int *__ptr_clean
>> net/sctp/socket.c:1423:21: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/sctp/socket.c:1423:21: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:1423:21: sparse:     got int *__ptr_clean
   net/sctp/socket.c:4922:22: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/sctp/socket.c:4922:22: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:4922:22: sparse:     got int *__ptr_clean
   net/sctp/socket.c:4922:22: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/sctp/socket.c:4922:22: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:4922:22: sparse:     got int *__ptr_clean
   net/sctp/socket.c:5446:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/sctp/socket.c:5446:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:5446:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:5446:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/sctp/socket.c:5446:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:5446:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:5514:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/sctp/socket.c:5514:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:5514:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:5514:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/sctp/socket.c:5514:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:5514:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:5545:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/sctp/socket.c:5545:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:5545:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:5545:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/sctp/socket.c:5545:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:5545:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:5568:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/sctp/socket.c:5568:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:5568:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:5568:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/sctp/socket.c:5568:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:5568:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:5600:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/sctp/socket.c:5600:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:5600:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:5600:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/sctp/socket.c:5600:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:5600:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:5602:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/sctp/socket.c:5602:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:5602:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:5602:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/sctp/socket.c:5602:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:5602:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:5711:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/sctp/socket.c:5711:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:5711:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:5711:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/sctp/socket.c:5711:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:5711:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:5746:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/sctp/socket.c:5746:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:5746:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:5746:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/sctp/socket.c:5746:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:5746:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:5996:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/sctp/socket.c:5996:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:5996:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:5996:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/sctp/socket.c:5996:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:5996:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6094:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/sctp/socket.c:6094:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:6094:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6094:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/sctp/socket.c:6094:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:6094:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6116:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/sctp/socket.c:6116:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:6116:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6116:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/sctp/socket.c:6116:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:6116:13: sparse:     got int *__ptr_clean
>> net/sctp/socket.c:6166:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   net/sctp/socket.c:6166:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:6166:13: sparse:     got unsigned int *__ptr_clean
>> net/sctp/socket.c:6166:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   net/sctp/socket.c:6166:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:6166:13: sparse:     got unsigned int *__ptr_clean
   net/sctp/socket.c:6169:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/sctp/socket.c:6169:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:6169:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6169:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/sctp/socket.c:6169:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:6169:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6308:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   net/sctp/socket.c:6308:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:6308:13: sparse:     got unsigned int *__ptr_clean
   net/sctp/socket.c:6308:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   net/sctp/socket.c:6308:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:6308:13: sparse:     got unsigned int *__ptr_clean
   net/sctp/socket.c:6315:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/sctp/socket.c:6315:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:6315:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6315:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/sctp/socket.c:6315:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:6315:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6356:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/sctp/socket.c:6356:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:6356:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6356:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/sctp/socket.c:6356:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:6356:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6382:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/sctp/socket.c:6382:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:6382:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6382:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/sctp/socket.c:6382:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:6382:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6444:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/sctp/socket.c:6444:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:6444:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6444:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/sctp/socket.c:6444:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:6444:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6488:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/sctp/socket.c:6488:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:6488:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6488:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/sctp/socket.c:6488:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:6488:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6516:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/sctp/socket.c:6516:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:6516:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6516:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/sctp/socket.c:6516:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:6516:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6569:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/sctp/socket.c:6569:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:6569:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6569:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/sctp/socket.c:6569:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:6569:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6639:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/sctp/socket.c:6639:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:6639:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6639:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/sctp/socket.c:6639:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:6639:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6669:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/sctp/socket.c:6669:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:6669:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6669:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/sctp/socket.c:6669:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:6669:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6703:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/sctp/socket.c:6703:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:6703:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6703:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/sctp/socket.c:6703:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:6703:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6768:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/sctp/socket.c:6768:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:6768:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6768:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/sctp/socket.c:6768:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:6768:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6796:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/sctp/socket.c:6796:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:6796:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6796:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/sctp/socket.c:6796:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:6796:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6820:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/sctp/socket.c:6820:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:6820:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6820:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/sctp/socket.c:6820:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:6820:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6895:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/sctp/socket.c:6895:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/sctp/socket.c:6895:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6895:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/sctp/socket.c:6895:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/sctp/socket.c:6895:13: sparse:     got int *__ptr_clean
   net/sctp/socket.c:6897:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   net/sctp/socket.c:6897:13: sparse:     expected void const volatile [noderef] __user *ptr
--
>> net/tls/tls_main.c:344:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/tls/tls_main.c:344:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/tls/tls_main.c:344:13: sparse:     got int *__ptr_clean
--
>> drivers/nvme/host/ioctl.c:246:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   drivers/nvme/host/ioctl.c:246:21: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/nvme/host/ioctl.c:246:21: sparse:     got unsigned int *__ptr_clean
>> drivers/nvme/host/ioctl.c:246:21: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   drivers/nvme/host/ioctl.c:246:21: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/nvme/host/ioctl.c:246:21: sparse:     got unsigned int *__ptr_clean
>> drivers/nvme/host/ioctl.c:292:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned long long *__ptr_clean @@
   drivers/nvme/host/ioctl.c:292:21: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/nvme/host/ioctl.c:292:21: sparse:     got unsigned long long *__ptr_clean
>> drivers/nvme/host/ioctl.c:292:21: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned long long *__ptr_clean @@
   drivers/nvme/host/ioctl.c:292:21: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/nvme/host/ioctl.c:292:21: sparse:     got unsigned long long *__ptr_clean
--
>> drivers/platform/x86/wmi.c:903:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned long long *__ptr_clean @@
   drivers/platform/x86/wmi.c:903:13: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/platform/x86/wmi.c:903:13: sparse:     got unsigned long long *__ptr_clean
--
>> arch/x86/kernel/cpu/mce/dev-mcelog.c:265:24: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   arch/x86/kernel/cpu/mce/dev-mcelog.c:265:24: sparse:     expected void const volatile [noderef] __user *ptr
   arch/x86/kernel/cpu/mce/dev-mcelog.c:265:24: sparse:     got int *__ptr_clean
>> arch/x86/kernel/cpu/mce/dev-mcelog.c:265:24: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   arch/x86/kernel/cpu/mce/dev-mcelog.c:265:24: sparse:     expected void [noderef] __user *__ptr_pu
   arch/x86/kernel/cpu/mce/dev-mcelog.c:265:24: sparse:     got int *__ptr_clean
   arch/x86/kernel/cpu/mce/dev-mcelog.c:267:24: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   arch/x86/kernel/cpu/mce/dev-mcelog.c:267:24: sparse:     expected void const volatile [noderef] __user *ptr
   arch/x86/kernel/cpu/mce/dev-mcelog.c:267:24: sparse:     got int *__ptr_clean
   arch/x86/kernel/cpu/mce/dev-mcelog.c:267:24: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   arch/x86/kernel/cpu/mce/dev-mcelog.c:267:24: sparse:     expected void [noderef] __user *__ptr_pu
   arch/x86/kernel/cpu/mce/dev-mcelog.c:267:24: sparse:     got int *__ptr_clean
   arch/x86/kernel/cpu/mce/dev-mcelog.c:275:24: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   arch/x86/kernel/cpu/mce/dev-mcelog.c:275:24: sparse:     expected void const volatile [noderef] __user *ptr
   arch/x86/kernel/cpu/mce/dev-mcelog.c:275:24: sparse:     got int *__ptr_clean
   arch/x86/kernel/cpu/mce/dev-mcelog.c:275:24: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   arch/x86/kernel/cpu/mce/dev-mcelog.c:275:24: sparse:     expected void [noderef] __user *__ptr_pu
   arch/x86/kernel/cpu/mce/dev-mcelog.c:275:24: sparse:     got int *__ptr_clean
--
   kernel/rseq.c:110:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   kernel/rseq.c:110:13: sparse:     expected void const volatile [noderef] __user *ptr
   kernel/rseq.c:110:13: sparse:     got unsigned int *__ptr_clean
   kernel/rseq.c:110:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   kernel/rseq.c:110:13: sparse:     expected void [noderef] __user *__ptr_pu
   kernel/rseq.c:110:13: sparse:     got unsigned int *__ptr_clean
   kernel/rseq.c:117:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   kernel/rseq.c:117:13: sparse:     expected void const volatile [noderef] __user *ptr
   kernel/rseq.c:117:13: sparse:     got unsigned int *__ptr_clean
   kernel/rseq.c:117:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   kernel/rseq.c:117:13: sparse:     expected void [noderef] __user *__ptr_pu
   kernel/rseq.c:117:13: sparse:     got unsigned int *__ptr_clean
>> kernel/rseq.c:131:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned long long *__ptr_clean @@
   kernel/rseq.c:131:13: sparse:     expected void const volatile [noderef] __user *ptr
   kernel/rseq.c:131:13: sparse:     got unsigned long long *__ptr_clean
   kernel/rseq.c:160:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   kernel/rseq.c:160:15: sparse:     expected void const volatile [noderef] __user *ptr
   kernel/rseq.c:160:15: sparse:     got unsigned int *__ptr_clean
   kernel/rseq.c:179:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   kernel/rseq.c:179:15: sparse:     expected void const volatile [noderef] __user *ptr
   kernel/rseq.c:179:15: sparse:     got unsigned int *__ptr_clean
   kernel/rseq.c:220:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned long long *__ptr_clean @@
   kernel/rseq.c:220:16: sparse:     expected void const volatile [noderef] __user *ptr
   kernel/rseq.c:220:16: sparse:     got unsigned long long *__ptr_clean
>> kernel/rseq.c:220:16: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned long long *__ptr_clean @@
   kernel/rseq.c:220:16: sparse:     expected void [noderef] __user *__ptr_pu
   kernel/rseq.c:220:16: sparse:     got unsigned long long *__ptr_clean
--
>> fs/cifs/dfs_cache.c:308:14: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got char const *__ptr_clean @@
   fs/cifs/dfs_cache.c:308:14: sparse:     expected void const volatile [noderef] __user *ptr
   fs/cifs/dfs_cache.c:308:14: sparse:     got char const *__ptr_clean
--
>> fs/ext2/ioctl.c:65:24: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   fs/ext2/ioctl.c:65:24: sparse:     expected void const volatile [noderef] __user *ptr
   fs/ext2/ioctl.c:65:24: sparse:     got int *__ptr_clean
>> fs/ext2/ioctl.c:65:24: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   fs/ext2/ioctl.c:65:24: sparse:     expected void [noderef] __user *__ptr_pu
   fs/ext2/ioctl.c:65:24: sparse:     got int *__ptr_clean
   fs/ext2/ioctl.c:74:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   fs/ext2/ioctl.c:74:21: sparse:     expected void const volatile [noderef] __user *ptr
   fs/ext2/ioctl.c:74:21: sparse:     got int *__ptr_clean
   fs/ext2/ioctl.c:94:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   fs/ext2/ioctl.c:94:32: sparse:     expected void const volatile [noderef] __user *ptr
   fs/ext2/ioctl.c:94:32: sparse:     got int *__ptr_clean
   fs/ext2/ioctl.c:94:32: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   fs/ext2/ioctl.c:94:32: sparse:     expected void [noderef] __user *__ptr_pu
   fs/ext2/ioctl.c:94:32: sparse:     got int *__ptr_clean
   fs/ext2/ioctl.c:105:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   fs/ext2/ioctl.c:105:21: sparse:     expected void const volatile [noderef] __user *ptr
   fs/ext2/ioctl.c:105:21: sparse:     got int *__ptr_clean
--
>> fs/ext4/ioctl.c:806:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   fs/ext4/ioctl.c:806:13: sparse:     expected void const volatile [noderef] __user *ptr
   fs/ext4/ioctl.c:806:13: sparse:     got unsigned int *__ptr_clean
>> fs/ext4/ioctl.c:1163:24: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   fs/ext4/ioctl.c:1163:24: sparse:     expected void const volatile [noderef] __user *ptr
   fs/ext4/ioctl.c:1163:24: sparse:     got int *__ptr_clean
>> fs/ext4/ioctl.c:1163:24: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   fs/ext4/ioctl.c:1163:24: sparse:     expected void [noderef] __user *__ptr_pu
   fs/ext4/ioctl.c:1163:24: sparse:     got int *__ptr_clean
   fs/ext4/ioctl.c:1183:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   fs/ext4/ioctl.c:1183:21: sparse:     expected void const volatile [noderef] __user *ptr
   fs/ext4/ioctl.c:1183:21: sparse:     got int *__ptr_clean
   fs/ext4/ioctl.c:1216:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   fs/ext4/ioctl.c:1216:21: sparse:     expected void const volatile [noderef] __user *ptr
   fs/ext4/ioctl.c:1216:21: sparse:     got unsigned int *__ptr_clean
   fs/ext4/ioctl.c:1536:24: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   fs/ext4/ioctl.c:1536:24: sparse:     expected void const volatile [noderef] __user *ptr
   fs/ext4/ioctl.c:1536:24: sparse:     got unsigned int *__ptr_clean
>> fs/ext4/ioctl.c:1536:24: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   fs/ext4/ioctl.c:1536:24: sparse:     expected void [noderef] __user *__ptr_pu
   fs/ext4/ioctl.c:1536:24: sparse:     got unsigned int *__ptr_clean
--
   fs/f2fs/file.c:49:54: sparse: sparse: cast from restricted vm_fault_t
>> fs/f2fs/file.c:1986:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   fs/f2fs/file.c:1986:16: sparse:     expected void const volatile [noderef] __user *ptr
   fs/f2fs/file.c:1986:16: sparse:     got int *__ptr_clean
>> fs/f2fs/file.c:1986:16: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   fs/f2fs/file.c:1986:16: sparse:     expected void [noderef] __user *__ptr_pu
   fs/f2fs/file.c:1986:16: sparse:     got int *__ptr_clean
>> fs/f2fs/file.c:2214:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   fs/f2fs/file.c:2214:13: sparse:     expected void const volatile [noderef] __user *ptr
   fs/f2fs/file.c:2214:13: sparse:     got unsigned int *__ptr_clean
   fs/f2fs/file.c:2447:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   fs/f2fs/file.c:2447:13: sparse:     expected void const volatile [noderef] __user *ptr
   fs/f2fs/file.c:2447:13: sparse:     got unsigned int *__ptr_clean
   fs/f2fs/file.c:2980:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   fs/f2fs/file.c:2980:16: sparse:     expected void const volatile [noderef] __user *ptr
   fs/f2fs/file.c:2980:16: sparse:     got unsigned int *__ptr_clean
>> fs/f2fs/file.c:2980:16: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   fs/f2fs/file.c:2980:16: sparse:     expected void [noderef] __user *__ptr_pu
   fs/f2fs/file.c:2980:16: sparse:     got unsigned int *__ptr_clean
   fs/f2fs/file.c:3140:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   fs/f2fs/file.c:3140:13: sparse:     expected void const volatile [noderef] __user *ptr
   fs/f2fs/file.c:3140:13: sparse:     got unsigned int *__ptr_clean
   fs/f2fs/file.c:3197:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   fs/f2fs/file.c:3197:16: sparse:     expected void const volatile [noderef] __user *ptr
   fs/f2fs/file.c:3197:16: sparse:     got unsigned int *__ptr_clean
   fs/f2fs/file.c:3197:16: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   fs/f2fs/file.c:3197:16: sparse:     expected void [noderef] __user *__ptr_pu
   fs/f2fs/file.c:3197:16: sparse:     got unsigned int *__ptr_clean
   fs/f2fs/file.c:3301:36: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short const [usertype] *pwcs @@     got restricted __le16 * @@
   fs/f2fs/file.c:3301:36: sparse:     expected unsigned short const [usertype] *pwcs
   fs/f2fs/file.c:3301:36: sparse:     got restricted __le16 *
   fs/f2fs/file.c:3337:28: sparse: sparse: incorrect type in argument 4 (different base types) @@     expected unsigned short [usertype] *pwcs @@     got restricted __le16 * @@
   fs/f2fs/file.c:3337:28: sparse:     expected unsigned short [usertype] *pwcs
   fs/f2fs/file.c:3337:28: sparse:     got restricted __le16 *
>> fs/f2fs/file.c:3362:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned long long *__ptr_clean @@
   fs/f2fs/file.c:3362:16: sparse:     expected void const volatile [noderef] __user *ptr
   fs/f2fs/file.c:3362:16: sparse:     got unsigned long long *__ptr_clean
>> fs/f2fs/file.c:3362:16: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned long long *__ptr_clean @@
   fs/f2fs/file.c:3362:16: sparse:     expected void [noderef] __user *__ptr_pu
   fs/f2fs/file.c:3362:16: sparse:     got unsigned long long *__ptr_clean
   fs/f2fs/file.c:3512:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned long long *__ptr_clean @@
   fs/f2fs/file.c:3512:23: sparse:     expected void const volatile [noderef] __user *ptr
   fs/f2fs/file.c:3512:23: sparse:     got unsigned long long *__ptr_clean
   fs/f2fs/file.c:3512:23: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned long long *__ptr_clean @@
   fs/f2fs/file.c:3512:23: sparse:     expected void [noderef] __user *__ptr_pu
   fs/f2fs/file.c:3512:23: sparse:     got unsigned long long *__ptr_clean
   fs/f2fs/file.c:3671:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned long long *__ptr_clean @@
   fs/f2fs/file.c:3671:23: sparse:     expected void const volatile [noderef] __user *ptr
   fs/f2fs/file.c:3671:23: sparse:     got unsigned long long *__ptr_clean
   fs/f2fs/file.c:3671:23: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned long long *__ptr_clean @@
   fs/f2fs/file.c:3671:23: sparse:     expected void [noderef] __user *__ptr_pu
   fs/f2fs/file.c:3671:23: sparse:     got unsigned long long *__ptr_clean
--
>> fs/jfs/jfs_debug.c:36:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got char const *__ptr_clean @@
   fs/jfs/jfs_debug.c:36:13: sparse:     expected void const volatile [noderef] __user *ptr
   fs/jfs/jfs_debug.c:36:13: sparse:     got char const *__ptr_clean
--
>> fs/reiserfs/ioctl.c:96:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   fs/reiserfs/ioctl.c:96:23: sparse:     expected void const volatile [noderef] __user *ptr
   fs/reiserfs/ioctl.c:96:23: sparse:     got int *__ptr_clean
>> fs/reiserfs/ioctl.c:96:23: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   fs/reiserfs/ioctl.c:96:23: sparse:     expected void [noderef] __user *__ptr_pu
   fs/reiserfs/ioctl.c:96:23: sparse:     got int *__ptr_clean
   fs/reiserfs/ioctl.c:106:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   fs/reiserfs/ioctl.c:106:21: sparse:     expected void const volatile [noderef] __user *ptr
   fs/reiserfs/ioctl.c:106:21: sparse:     got int *__ptr_clean
--
>> block/bsg.c:87:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   block/bsg.c:87:16: sparse:     expected void const volatile [noderef] __user *ptr
   block/bsg.c:87:16: sparse:     got int *__ptr_clean
>> block/bsg.c:87:16: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   block/bsg.c:87:16: sparse:     expected void [noderef] __user *__ptr_pu
   block/bsg.c:87:16: sparse:     got int *__ptr_clean
   block/bsg.c:94:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   block/bsg.c:94:13: sparse:     expected void const volatile [noderef] __user *ptr
   block/bsg.c:94:13: sparse:     got int *__ptr_clean
   block/bsg.c:123:24: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   block/bsg.c:123:24: sparse:     expected void const volatile [noderef] __user *ptr
   block/bsg.c:123:24: sparse:     got int *__ptr_clean
   block/bsg.c:123:24: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   block/bsg.c:123:24: sparse:     expected void [noderef] __user *__ptr_pu
   block/bsg.c:123:24: sparse:     got int *__ptr_clean
   block/bsg.c:125:24: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   block/bsg.c:125:24: sparse:     expected void const volatile [noderef] __user *ptr
   block/bsg.c:125:24: sparse:     got int *__ptr_clean
   block/bsg.c:125:24: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   block/bsg.c:125:24: sparse:     expected void [noderef] __user *__ptr_pu
   block/bsg.c:125:24: sparse:     got int *__ptr_clean
   block/bsg.c:127:24: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   block/bsg.c:127:24: sparse:     expected void const volatile [noderef] __user *ptr
   block/bsg.c:127:24: sparse:     got int *__ptr_clean
   block/bsg.c:127:24: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   block/bsg.c:127:24: sparse:     expected void [noderef] __user *__ptr_pu
   block/bsg.c:127:24: sparse:     got int *__ptr_clean
   block/bsg.c:129:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   block/bsg.c:129:21: sparse:     expected void const volatile [noderef] __user *ptr
   block/bsg.c:129:21: sparse:     got int *__ptr_clean
   block/bsg.c:136:24: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   block/bsg.c:136:24: sparse:     expected void const volatile [noderef] __user *ptr
   block/bsg.c:136:24: sparse:     got int *__ptr_clean
   block/bsg.c:136:24: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   block/bsg.c:136:24: sparse:     expected void [noderef] __user *__ptr_pu
   block/bsg.c:136:24: sparse:     got int *__ptr_clean
   block/bsg.c:139:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   block/bsg.c:139:21: sparse:     expected void const volatile [noderef] __user *ptr
   block/bsg.c:139:21: sparse:     got int *__ptr_clean
   block/bsg.c:147:24: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   block/bsg.c:147:24: sparse:     expected void const volatile [noderef] __user *ptr
   block/bsg.c:147:24: sparse:     got int *__ptr_clean
   block/bsg.c:147:24: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   block/bsg.c:147:24: sparse:     expected void [noderef] __user *__ptr_pu
   block/bsg.c:147:24: sparse:     got int *__ptr_clean
--
>> drivers/acpi/ec_sys.c:53:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got char *__ptr_clean @@
   drivers/acpi/ec_sys.c:53:21: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/acpi/ec_sys.c:53:21: sparse:     got char *__ptr_clean
>> drivers/acpi/ec_sys.c:53:21: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got char *__ptr_clean @@
   drivers/acpi/ec_sys.c:53:21: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/acpi/ec_sys.c:53:21: sparse:     got char *__ptr_clean
>> drivers/acpi/ec_sys.c:87:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got char const *__ptr_clean @@
   drivers/acpi/ec_sys.c:87:21: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/acpi/ec_sys.c:87:21: sparse:     got char const *__ptr_clean
--
>> sound/core/compress_offload.c:975:26: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   sound/core/compress_offload.c:975:26: sparse:     expected void const volatile [noderef] __user *ptr
   sound/core/compress_offload.c:975:26: sparse:     got int *__ptr_clean
>> sound/core/compress_offload.c:975:26: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   sound/core/compress_offload.c:975:26: sparse:     expected void [noderef] __user *__ptr_pu
   sound/core/compress_offload.c:975:26: sparse:     got int *__ptr_clean
--
>> net/bluetooth/af_bluetooth.c:511:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/bluetooth/af_bluetooth.c:511:23: sparse:     expected void const volatile [noderef] __user *ptr
   net/bluetooth/af_bluetooth.c:511:23: sparse:     got int *__ptr_clean
>> net/bluetooth/af_bluetooth.c:511:23: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/bluetooth/af_bluetooth.c:511:23: sparse:     expected void [noderef] __user *__ptr_pu
   net/bluetooth/af_bluetooth.c:511:23: sparse:     got int *__ptr_clean
   net/bluetooth/af_bluetooth.c:522:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/bluetooth/af_bluetooth.c:522:23: sparse:     expected void const volatile [noderef] __user *ptr
   net/bluetooth/af_bluetooth.c:522:23: sparse:     got int *__ptr_clean
   net/bluetooth/af_bluetooth.c:522:23: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/bluetooth/af_bluetooth.c:522:23: sparse:     expected void [noderef] __user *__ptr_pu
   net/bluetooth/af_bluetooth.c:522:23: sparse:     got int *__ptr_clean
   net/bluetooth/af_bluetooth.c:176:25: sparse: sparse: context imbalance in 'bt_accept_enqueue' - different lock contexts for basic block
--
>> net/bluetooth/hci_core.c:825:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned short *__ptr_clean @@
   net/bluetooth/hci_core.c:825:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/bluetooth/hci_core.c:825:13: sparse:     got unsigned short *__ptr_clean
--
>> net/bluetooth/hci_sock.c:1968:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/bluetooth/hci_sock.c:1968:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/bluetooth/hci_sock.c:1968:13: sparse:     got int *__ptr_clean
>> net/bluetooth/hci_sock.c:1985:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got char *__ptr_clean @@
   net/bluetooth/hci_sock.c:1985:21: sparse:     expected void const volatile [noderef] __user *ptr
   net/bluetooth/hci_sock.c:1985:21: sparse:     got char *__ptr_clean
>> net/bluetooth/hci_sock.c:1985:21: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got char *__ptr_clean @@
   net/bluetooth/hci_sock.c:1985:21: sparse:     expected void [noderef] __user *__ptr_pu
   net/bluetooth/hci_sock.c:1985:21: sparse:     got char *__ptr_clean
   net/bluetooth/hci_sock.c:1995:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got char *__ptr_clean @@
   net/bluetooth/hci_sock.c:1995:21: sparse:     expected void const volatile [noderef] __user *ptr
   net/bluetooth/hci_sock.c:1995:21: sparse:     got char *__ptr_clean
   net/bluetooth/hci_sock.c:1995:21: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got char *__ptr_clean @@
   net/bluetooth/hci_sock.c:1995:21: sparse:     expected void [noderef] __user *__ptr_pu
   net/bluetooth/hci_sock.c:1995:21: sparse:     got char *__ptr_clean
>> net/bluetooth/hci_sock.c:2045:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned short *__ptr_clean @@
   net/bluetooth/hci_sock.c:2045:21: sparse:     expected void const volatile [noderef] __user *ptr
   net/bluetooth/hci_sock.c:2045:21: sparse:     got unsigned short *__ptr_clean
>> net/bluetooth/hci_sock.c:2045:21: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned short *__ptr_clean @@
   net/bluetooth/hci_sock.c:2045:21: sparse:     expected void [noderef] __user *__ptr_pu
   net/bluetooth/hci_sock.c:2045:21: sparse:     got unsigned short *__ptr_clean
--
>> net/bluetooth/l2cap_sock.c:464:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/bluetooth/l2cap_sock.c:464:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/bluetooth/l2cap_sock.c:464:13: sparse:     got int *__ptr_clean
>> net/bluetooth/l2cap_sock.c:539:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   net/bluetooth/l2cap_sock.c:539:21: sparse:     expected void const volatile [noderef] __user *ptr
   net/bluetooth/l2cap_sock.c:539:21: sparse:     got unsigned int *__ptr_clean
>> net/bluetooth/l2cap_sock.c:539:21: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   net/bluetooth/l2cap_sock.c:539:21: sparse:     expected void [noderef] __user *__ptr_pu
   net/bluetooth/l2cap_sock.c:539:21: sparse:     got unsigned int *__ptr_clean
   net/bluetooth/l2cap_sock.c:589:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/bluetooth/l2cap_sock.c:589:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/bluetooth/l2cap_sock.c:589:13: sparse:     got int *__ptr_clean
   net/bluetooth/l2cap_sock.c:625:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   net/bluetooth/l2cap_sock.c:625:21: sparse:     expected void const volatile [noderef] __user *ptr
   net/bluetooth/l2cap_sock.c:625:21: sparse:     got unsigned int *__ptr_clean
   net/bluetooth/l2cap_sock.c:625:21: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   net/bluetooth/l2cap_sock.c:625:21: sparse:     expected void [noderef] __user *__ptr_pu
   net/bluetooth/l2cap_sock.c:625:21: sparse:     got unsigned int *__ptr_clean
   net/bluetooth/l2cap_sock.c:632:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   net/bluetooth/l2cap_sock.c:632:21: sparse:     expected void const volatile [noderef] __user *ptr
   net/bluetooth/l2cap_sock.c:632:21: sparse:     got unsigned int *__ptr_clean
   net/bluetooth/l2cap_sock.c:632:21: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   net/bluetooth/l2cap_sock.c:632:21: sparse:     expected void [noderef] __user *__ptr_pu
   net/bluetooth/l2cap_sock.c:632:21: sparse:     got unsigned int *__ptr_clean
   net/bluetooth/l2cap_sock.c:654:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   net/bluetooth/l2cap_sock.c:654:21: sparse:     expected void const volatile [noderef] __user *ptr
   net/bluetooth/l2cap_sock.c:654:21: sparse:     got unsigned int *__ptr_clean
   net/bluetooth/l2cap_sock.c:654:21: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   net/bluetooth/l2cap_sock.c:654:21: sparse:     expected void [noderef] __user *__ptr_pu
   net/bluetooth/l2cap_sock.c:654:21: sparse:     got unsigned int *__ptr_clean
>> net/bluetooth/l2cap_sock.c:669:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned short *__ptr_clean @@
   net/bluetooth/l2cap_sock.c:669:21: sparse:     expected void const volatile [noderef] __user *ptr
   net/bluetooth/l2cap_sock.c:669:21: sparse:     got unsigned short *__ptr_clean
>> net/bluetooth/l2cap_sock.c:669:21: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned short *__ptr_clean @@
   net/bluetooth/l2cap_sock.c:669:21: sparse:     expected void [noderef] __user *__ptr_pu
   net/bluetooth/l2cap_sock.c:669:21: sparse:     got unsigned short *__ptr_clean
   net/bluetooth/l2cap_sock.c:679:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned short *__ptr_clean @@
   net/bluetooth/l2cap_sock.c:679:21: sparse:     expected void const volatile [noderef] __user *ptr
   net/bluetooth/l2cap_sock.c:679:21: sparse:     got unsigned short *__ptr_clean
   net/bluetooth/l2cap_sock.c:679:21: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned short *__ptr_clean @@
   net/bluetooth/l2cap_sock.c:679:21: sparse:     expected void [noderef] __user *__ptr_pu
   net/bluetooth/l2cap_sock.c:679:21: sparse:     got unsigned short *__ptr_clean
   net/bluetooth/l2cap_sock.c:691:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   net/bluetooth/l2cap_sock.c:691:21: sparse:     expected void const volatile [noderef] __user *ptr
   net/bluetooth/l2cap_sock.c:691:21: sparse:     got unsigned int *__ptr_clean
   net/bluetooth/l2cap_sock.c:691:21: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   net/bluetooth/l2cap_sock.c:691:21: sparse:     expected void [noderef] __user *__ptr_pu
   net/bluetooth/l2cap_sock.c:691:21: sparse:     got unsigned int *__ptr_clean
>> net/bluetooth/l2cap_sock.c:712:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned char *__ptr_clean @@
   net/bluetooth/l2cap_sock.c:712:21: sparse:     expected void const volatile [noderef] __user *ptr
   net/bluetooth/l2cap_sock.c:712:21: sparse:     got unsigned char *__ptr_clean
>> net/bluetooth/l2cap_sock.c:712:21: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned char *__ptr_clean @@
   net/bluetooth/l2cap_sock.c:712:21: sparse:     expected void [noderef] __user *__ptr_pu
   net/bluetooth/l2cap_sock.c:712:21: sparse:     got unsigned char *__ptr_clean
--
>> drivers/android/binder.c:3555:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   drivers/android/binder.c:3555:21: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/android/binder.c:3555:21: sparse:     got unsigned int *__ptr_clean
   drivers/android/binder.c:3575:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   drivers/android/binder.c:3575:29: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/android/binder.c:3575:29: sparse:     got unsigned int *__ptr_clean
>> drivers/android/binder.c:3642:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned long long *__ptr_clean @@
   drivers/android/binder.c:3642:29: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/android/binder.c:3642:29: sparse:     got unsigned long long *__ptr_clean
   drivers/android/binder.c:3645:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned long long *__ptr_clean @@
   drivers/android/binder.c:3645:29: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/android/binder.c:3645:29: sparse:     got unsigned long long *__ptr_clean
   drivers/android/binder.c:3714:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned long long *__ptr_clean @@
   drivers/android/binder.c:3714:29: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/android/binder.c:3714:29: sparse:     got unsigned long long *__ptr_clean
   drivers/android/binder.c:3811:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   drivers/android/binder.c:3811:29: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/android/binder.c:3811:29: sparse:     got unsigned int *__ptr_clean
   drivers/android/binder.c:3814:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned long long *__ptr_clean @@
   drivers/android/binder.c:3814:29: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/android/binder.c:3814:29: sparse:     got unsigned long long *__ptr_clean
   drivers/android/binder.c:3933:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned long long *__ptr_clean @@
   drivers/android/binder.c:3933:29: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/android/binder.c:3933:29: sparse:     got unsigned long long *__ptr_clean
   drivers/android/binder.c:4009:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   drivers/android/binder.c:4009:13: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/android/binder.c:4009:13: sparse:     got unsigned int *__ptr_clean
>> drivers/android/binder.c:4009:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   drivers/android/binder.c:4009:13: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/android/binder.c:4009:13: sparse:     got unsigned int *__ptr_clean
   drivers/android/binder.c:4013:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned long long *__ptr_clean @@
   drivers/android/binder.c:4013:13: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/android/binder.c:4013:13: sparse:     got unsigned long long *__ptr_clean
>> drivers/android/binder.c:4013:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned long long *__ptr_clean @@
   drivers/android/binder.c:4013:13: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/android/binder.c:4013:13: sparse:     got unsigned long long *__ptr_clean
   drivers/android/binder.c:4017:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned long long *__ptr_clean @@
   drivers/android/binder.c:4017:13: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/android/binder.c:4017:13: sparse:     got unsigned long long *__ptr_clean
   drivers/android/binder.c:4017:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned long long *__ptr_clean @@
   drivers/android/binder.c:4017:13: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/android/binder.c:4017:13: sparse:     got unsigned long long *__ptr_clean
   drivers/android/binder.c:4140:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   drivers/android/binder.c:4140:21: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/android/binder.c:4140:21: sparse:     got unsigned int *__ptr_clean
   drivers/android/binder.c:4140:21: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   drivers/android/binder.c:4140:21: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/android/binder.c:4140:21: sparse:     got unsigned int *__ptr_clean
   drivers/android/binder.c:4222:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   drivers/android/binder.c:4222:29: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/android/binder.c:4222:29: sparse:     got unsigned int *__ptr_clean
   drivers/android/binder.c:4222:29: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   drivers/android/binder.c:4222:29: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/android/binder.c:4222:29: sparse:     got unsigned int *__ptr_clean
   drivers/android/binder.c:4240:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   drivers/android/binder.c:4240:29: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/android/binder.c:4240:29: sparse:     got unsigned int *__ptr_clean
   drivers/android/binder.c:4240:29: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   drivers/android/binder.c:4240:29: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/android/binder.c:4240:29: sparse:     got unsigned int *__ptr_clean
   drivers/android/binder.c:4366:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   drivers/android/binder.c:4366:29: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/android/binder.c:4366:29: sparse:     got unsigned int *__ptr_clean
   drivers/android/binder.c:4366:29: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   drivers/android/binder.c:4366:29: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/android/binder.c:4366:29: sparse:     got unsigned int *__ptr_clean
   drivers/android/binder.c:4369:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned long long *__ptr_clean @@
   drivers/android/binder.c:4369:29: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/android/binder.c:4369:29: sparse:     got unsigned long long *__ptr_clean
   drivers/android/binder.c:4369:29: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned long long *__ptr_clean @@
   drivers/android/binder.c:4369:29: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/android/binder.c:4369:29: sparse:     got unsigned long long *__ptr_clean
   drivers/android/binder.c:4441:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   drivers/android/binder.c:4441:37: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/android/binder.c:4441:37: sparse:     got unsigned int *__ptr_clean
   drivers/android/binder.c:4441:37: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   drivers/android/binder.c:4441:37: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/android/binder.c:4441:37: sparse:     got unsigned int *__ptr_clean
   drivers/android/binder.c:4461:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   drivers/android/binder.c:4461:21: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/android/binder.c:4461:21: sparse:     got unsigned int *__ptr_clean
   drivers/android/binder.c:4461:21: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   drivers/android/binder.c:4461:21: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/android/binder.c:4461:21: sparse:     got unsigned int *__ptr_clean
   drivers/android/binder.c:4526:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   drivers/android/binder.c:4526:21: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/android/binder.c:4526:21: sparse:     got unsigned int *__ptr_clean
   drivers/android/binder.c:4526:21: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   drivers/android/binder.c:4526:21: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/android/binder.c:4526:21: sparse:     got unsigned int *__ptr_clean
   drivers/android/binder.c:4780:24: sparse: sparse: incorrect type in return expression (different base types) @@     expected restricted __poll_t @@     got int @@
   drivers/android/binder.c:4780:24: sparse:     expected restricted __poll_t
   drivers/android/binder.c:4780:24: sparse:     got int
>> drivers/android/binder.c:5139:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got signed int *__ptr_clean @@
   drivers/android/binder.c:5139:21: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/android/binder.c:5139:21: sparse:     got signed int *__ptr_clean
>> drivers/android/binder.c:5139:21: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got signed int *__ptr_clean @@
   drivers/android/binder.c:5139:21: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/android/binder.c:5139:21: sparse:     got signed int *__ptr_clean
--
>> net/core/pktgen.c:756:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got char const *__ptr_clean @@
   net/core/pktgen.c:756:21: sparse:     expected void const volatile [noderef] __user *ptr
   net/core/pktgen.c:756:21: sparse:     got char const *__ptr_clean
   net/core/pktgen.c:774:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got char const *__ptr_clean @@
   net/core/pktgen.c:774:21: sparse:     expected void const volatile [noderef] __user *ptr
   net/core/pktgen.c:774:21: sparse:     got char const *__ptr_clean
   net/core/pktgen.c:800:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got char const *__ptr_clean @@
   net/core/pktgen.c:800:21: sparse:     expected void const volatile [noderef] __user *ptr
   net/core/pktgen.c:800:21: sparse:     got char const *__ptr_clean
   net/core/pktgen.c:817:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got char const *__ptr_clean @@
   net/core/pktgen.c:817:21: sparse:     expected void const volatile [noderef] __user *ptr
   net/core/pktgen.c:817:21: sparse:     got char const *__ptr_clean
   net/core/pktgen.c:857:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got char const *__ptr_clean @@
   net/core/pktgen.c:857:21: sparse:     expected void const volatile [noderef] __user *ptr
   net/core/pktgen.c:857:21: sparse:     got char const *__ptr_clean
   net/core/pktgen.c:877:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got char const *__ptr_clean @@
   net/core/pktgen.c:877:21: sparse:     expected void const volatile [noderef] __user *ptr
   net/core/pktgen.c:877:21: sparse:     got char const *__ptr_clean
   net/core/pktgen.c:907:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got char const *__ptr_clean @@
   net/core/pktgen.c:907:21: sparse:     expected void const volatile [noderef] __user *ptr
   net/core/pktgen.c:907:21: sparse:     got char const *__ptr_clean
--
>> net/decnet/af_decnet.c:1537:12: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/decnet/af_decnet.c:1537:12: sparse:     expected void const volatile [noderef] __user *ptr
   net/decnet/af_decnet.c:1537:12: sparse:     got int *__ptr_clean
   net/decnet/af_decnet.c:1632:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/decnet/af_decnet.c:1632:21: sparse:     expected void const volatile [noderef] __user *ptr
   net/decnet/af_decnet.c:1632:21: sparse:     got int *__ptr_clean
>> net/decnet/af_decnet.c:1632:21: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/decnet/af_decnet.c:1632:21: sparse:     expected void [noderef] __user *__ptr_pu
   net/decnet/af_decnet.c:1632:21: sparse:     got int *__ptr_clean
   net/decnet/af_decnet.c:250:22: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int hash @@     got restricted __le16 [usertype] sdn_objnamel @@
   net/decnet/af_decnet.c:250:22: sparse:     expected unsigned int hash
   net/decnet/af_decnet.c:250:22: sparse:     got restricted __le16 [usertype] sdn_objnamel
   net/decnet/af_decnet.c:1239:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/decnet/af_decnet.c:1239:23: sparse:     expected void const volatile [noderef] __user *ptr
   net/decnet/af_decnet.c:1239:23: sparse:     got int *__ptr_clean
   net/decnet/af_decnet.c:1239:23: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/decnet/af_decnet.c:1239:23: sparse:     expected void [noderef] __user *__ptr_pu
   net/decnet/af_decnet.c:1239:23: sparse:     got int *__ptr_clean
   net/decnet/af_decnet.c:1252:23: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/decnet/af_decnet.c:1252:23: sparse:     expected void const volatile [noderef] __user *ptr
   net/decnet/af_decnet.c:1252:23: sparse:     got int *__ptr_clean
   net/decnet/af_decnet.c:1252:23: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/decnet/af_decnet.c:1252:23: sparse:     expected void [noderef] __user *__ptr_pu
   net/decnet/af_decnet.c:1252:23: sparse:     got int *__ptr_clean
   net/decnet/af_decnet.c: note: in included file:
   include/net/dn.h:192:24: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __be16 [usertype] sport @@     got restricted __le16 [usertype] addrloc @@
   include/net/dn.h:192:24: sparse:     expected restricted __be16 [usertype] sport
   include/net/dn.h:192:24: sparse:     got restricted __le16 [usertype] addrloc
   include/net/dn.h:193:24: sparse: sparse: incorrect type in assignment (different base types) @@     expected restricted __be16 [usertype] dport @@     got restricted __le16 [usertype] addrrem @@
   include/net/dn.h:193:24: sparse:     expected restricted __be16 [usertype] dport
   include/net/dn.h:193:24: sparse:     got restricted __le16 [usertype] addrrem
   net/decnet/af_decnet.c:2164:9: sparse: sparse: context imbalance in 'dn_socket_get_idx' - wrong count at exit
   net/decnet/af_decnet.c:2184:9: sparse: sparse: context imbalance in 'dn_socket_seq_next' - unexpected unlock
   net/decnet/af_decnet.c:2193:17: sparse: sparse: context imbalance in 'dn_socket_seq_stop' - unexpected unlock
--
>> net/ipv4/ipmr.c:1568:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/ipv4/ipmr.c:1568:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/ipv4/ipmr.c:1568:13: sparse:     got int *__ptr_clean
   net/ipv4/ipmr.c:1573:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/ipv4/ipmr.c:1573:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/ipv4/ipmr.c:1573:13: sparse:     got int *__ptr_clean
>> net/ipv4/ipmr.c:1573:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/ipv4/ipmr.c:1573:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/ipv4/ipmr.c:1573:13: sparse:     got int *__ptr_clean
   net/ipv4/ipmr.c:2889:13: sparse: sparse: context imbalance in 'ipmr_vif_seq_start' - different lock contexts for basic block
   net/ipv4/ipmr.c: note: in included file (through include/linux/mroute.h):
   include/linux/mroute_base.h:429:31: sparse: sparse: context imbalance in 'mr_mfc_seq_stop' - unexpected unlock
--
>> fs/xfs/xfs_ioctl.c:1420:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got signed long long *__ptr_clean @@
   fs/xfs/xfs_ioctl.c:1420:13: sparse:     expected void const volatile [noderef] __user *ptr
   fs/xfs/xfs_ioctl.c:1420:13: sparse:     got signed long long *__ptr_clean
>> fs/xfs/xfs_ioctl.c:1420:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got signed long long *__ptr_clean @@
   fs/xfs/xfs_ioctl.c:1420:13: sparse:     expected void [noderef] __user *__ptr_pu
   fs/xfs/xfs_ioctl.c:1420:13: sparse:     got signed long long *__ptr_clean
   fs/xfs/xfs_ioctl.c:1421:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got signed long long *__ptr_clean @@
   fs/xfs/xfs_ioctl.c:1421:13: sparse:     expected void const volatile [noderef] __user *ptr
   fs/xfs/xfs_ioctl.c:1421:13: sparse:     got signed long long *__ptr_clean
   fs/xfs/xfs_ioctl.c:1421:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got signed long long *__ptr_clean @@
   fs/xfs/xfs_ioctl.c:1421:13: sparse:     expected void [noderef] __user *__ptr_pu
   fs/xfs/xfs_ioctl.c:1421:13: sparse:     got signed long long *__ptr_clean
   fs/xfs/xfs_ioctl.c:1422:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got signed long long *__ptr_clean @@
   fs/xfs/xfs_ioctl.c:1422:13: sparse:     expected void const volatile [noderef] __user *ptr
   fs/xfs/xfs_ioctl.c:1422:13: sparse:     got signed long long *__ptr_clean
   fs/xfs/xfs_ioctl.c:1422:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got signed long long *__ptr_clean @@
   fs/xfs/xfs_ioctl.c:1422:13: sparse:     expected void [noderef] __user *__ptr_pu
   fs/xfs/xfs_ioctl.c:1422:13: sparse:     got signed long long *__ptr_clean
>> fs/xfs/xfs_ioctl.c:1423:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got signed int *__ptr_clean @@
   fs/xfs/xfs_ioctl.c:1423:13: sparse:     expected void const volatile [noderef] __user *ptr
   fs/xfs/xfs_ioctl.c:1423:13: sparse:     got signed int *__ptr_clean
>> fs/xfs/xfs_ioctl.c:1423:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got signed int *__ptr_clean @@
   fs/xfs/xfs_ioctl.c:1423:13: sparse:     expected void [noderef] __user *__ptr_pu
   fs/xfs/xfs_ioctl.c:1423:13: sparse:     got signed int *__ptr_clean
   fs/xfs/xfs_ioctl.c:1424:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got signed int *__ptr_clean @@
   fs/xfs/xfs_ioctl.c:1424:13: sparse:     expected void const volatile [noderef] __user *ptr
   fs/xfs/xfs_ioctl.c:1424:13: sparse:     got signed int *__ptr_clean
   fs/xfs/xfs_ioctl.c:1424:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got signed int *__ptr_clean @@
   fs/xfs/xfs_ioctl.c:1424:13: sparse:     expected void [noderef] __user *__ptr_pu
   fs/xfs/xfs_ioctl.c:1424:13: sparse:     got signed int *__ptr_clean
   fs/xfs/xfs_ioctl.c:1428:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got signed int *__ptr_clean @@
   fs/xfs/xfs_ioctl.c:1428:13: sparse:     expected void const volatile [noderef] __user *ptr
   fs/xfs/xfs_ioctl.c:1428:13: sparse:     got signed int *__ptr_clean
   fs/xfs/xfs_ioctl.c:1428:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got signed int *__ptr_clean @@
   fs/xfs/xfs_ioctl.c:1428:13: sparse:     expected void [noderef] __user *__ptr_pu
   fs/xfs/xfs_ioctl.c:1428:13: sparse:     got signed int *__ptr_clean
   fs/xfs/xfs_ioctl.c:1429:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got signed int *__ptr_clean @@
   fs/xfs/xfs_ioctl.c:1429:13: sparse:     expected void const volatile [noderef] __user *ptr
   fs/xfs/xfs_ioctl.c:1429:13: sparse:     got signed int *__ptr_clean
   fs/xfs/xfs_ioctl.c:1429:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got signed int *__ptr_clean @@
   fs/xfs/xfs_ioctl.c:1429:13: sparse:     expected void [noderef] __user *__ptr_pu
   fs/xfs/xfs_ioctl.c:1429:13: sparse:     got signed int *__ptr_clean
   fs/xfs/xfs_ioctl.c:1430:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got signed int *__ptr_clean @@
   fs/xfs/xfs_ioctl.c:1430:13: sparse:     expected void const volatile [noderef] __user *ptr
   fs/xfs/xfs_ioctl.c:1430:13: sparse:     got signed int *__ptr_clean
   fs/xfs/xfs_ioctl.c:1430:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got signed int *__ptr_clean @@
   fs/xfs/xfs_ioctl.c:1430:13: sparse:     expected void [noderef] __user *__ptr_pu
   fs/xfs/xfs_ioctl.c:1430:13: sparse:     got signed int *__ptr_clean
   fs/xfs/xfs_ioctl.c:1431:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got signed int *__ptr_clean @@
   fs/xfs/xfs_ioctl.c:1431:13: sparse:     expected void const volatile [noderef] __user *ptr
   fs/xfs/xfs_ioctl.c:1431:13: sparse:     got signed int *__ptr_clean
   fs/xfs/xfs_ioctl.c:1431:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got signed int *__ptr_clean @@
   fs/xfs/xfs_ioctl.c:1431:13: sparse:     expected void [noderef] __user *__ptr_pu
   fs/xfs/xfs_ioctl.c:1431:13: sparse:     got signed int *__ptr_clean
>> fs/xfs/xfs_ioctl.c:1934:24: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   fs/xfs/xfs_ioctl.c:1934:24: sparse:     expected void const volatile [noderef] __user *ptr
   fs/xfs/xfs_ioctl.c:1934:24: sparse:     got int *__ptr_clean
>> fs/xfs/xfs_ioctl.c:1934:24: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   fs/xfs/xfs_ioctl.c:1934:24: sparse:     expected void [noderef] __user *__ptr_pu
   fs/xfs/xfs_ioctl.c:1934:24: sparse:     got int *__ptr_clean
>> fs/xfs/xfs_ioctl.c:2096:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   fs/xfs/xfs_ioctl.c:2096:21: sparse:     expected void const volatile [noderef] __user *ptr
   fs/xfs/xfs_ioctl.c:2096:21: sparse:     got unsigned int *__ptr_clean
--
>> net/l2tp/l2tp_ip.c:583:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/l2tp/l2tp_ip.c:583:16: sparse:     expected void const volatile [noderef] __user *ptr
   net/l2tp/l2tp_ip.c:583:16: sparse:     got int *__ptr_clean
>> net/l2tp/l2tp_ip.c:583:16: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/l2tp/l2tp_ip.c:583:16: sparse:     expected void [noderef] __user *__ptr_pu
   net/l2tp/l2tp_ip.c:583:16: sparse:     got int *__ptr_clean
--
>> drivers/ata/libata-scsi.c:571:24: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned long *__ptr_clean @@
   drivers/ata/libata-scsi.c:571:24: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/ata/libata-scsi.c:571:24: sparse:     got unsigned long *__ptr_clean
>> drivers/ata/libata-scsi.c:571:24: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned long *__ptr_clean @@
   drivers/ata/libata-scsi.c:571:24: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/ata/libata-scsi.c:571:24: sparse:     got unsigned long *__ptr_clean
--
>> drivers/block/xen-blkfront.c:515:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got char *__ptr_clean @@
   drivers/block/xen-blkfront.c:515:29: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/block/xen-blkfront.c:515:29: sparse:     got char *__ptr_clean
>> drivers/block/xen-blkfront.c:515:29: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got char *__ptr_clean @@
   drivers/block/xen-blkfront.c:515:29: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/block/xen-blkfront.c:515:29: sparse:     got char *__ptr_clean
--
>> drivers/comedi/comedi_fops.c:1083:29: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   drivers/comedi/comedi_fops.c:1083:29: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/comedi/comedi_fops.c:1083:29: sparse:     got unsigned int *__ptr_clean
>> drivers/comedi/comedi_fops.c:1083:29: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   drivers/comedi/comedi_fops.c:1083:29: sparse:     expected void [noderef] __user *__ptr_pu
   drivers/comedi/comedi_fops.c:1083:29: sparse:     got unsigned int *__ptr_clean
--
>> drivers/fpga/dfl-fme-main.c:143:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   drivers/fpga/dfl-fme-main.c:143:13: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/fpga/dfl-fme-main.c:143:13: sparse:     got int *__ptr_clean
   drivers/fpga/dfl-fme-main.c:155:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   drivers/fpga/dfl-fme-main.c:155:13: sparse:     expected void const volatile [noderef] __user *ptr
   drivers/fpga/dfl-fme-main.c:155:13: sparse:     got int *__ptr_clean
--
>> net/llc/af_llc.c:1171:14: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/llc/af_llc.c:1171:14: sparse:     expected void const volatile [noderef] __user *ptr
   net/llc/af_llc.c:1171:14: sparse:     got int *__ptr_clean
   net/llc/af_llc.c:1202:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/llc/af_llc.c:1202:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/llc/af_llc.c:1202:13: sparse:     got int *__ptr_clean
>> net/llc/af_llc.c:1202:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/llc/af_llc.c:1202:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/llc/af_llc.c:1202:13: sparse:     got int *__ptr_clean
--
>> net/nfc/llcp_sock.c:319:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/nfc/llcp_sock.c:319:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/nfc/llcp_sock.c:319:13: sparse:     got int *__ptr_clean
>> net/nfc/llcp_sock.c:333:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   net/nfc/llcp_sock.c:333:21: sparse:     expected void const volatile [noderef] __user *ptr
   net/nfc/llcp_sock.c:333:21: sparse:     got unsigned int *__ptr_clean
>> net/nfc/llcp_sock.c:333:21: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   net/nfc/llcp_sock.c:333:21: sparse:     expected void [noderef] __user *__ptr_pu
   net/nfc/llcp_sock.c:333:21: sparse:     got unsigned int *__ptr_clean
   net/nfc/llcp_sock.c:342:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   net/nfc/llcp_sock.c:342:21: sparse:     expected void const volatile [noderef] __user *ptr
   net/nfc/llcp_sock.c:342:21: sparse:     got unsigned int *__ptr_clean
   net/nfc/llcp_sock.c:342:21: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   net/nfc/llcp_sock.c:342:21: sparse:     expected void [noderef] __user *__ptr_pu
   net/nfc/llcp_sock.c:342:21: sparse:     got unsigned int *__ptr_clean
   net/nfc/llcp_sock.c:351:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   net/nfc/llcp_sock.c:351:21: sparse:     expected void const volatile [noderef] __user *ptr
   net/nfc/llcp_sock.c:351:21: sparse:     got unsigned int *__ptr_clean
   net/nfc/llcp_sock.c:351:21: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   net/nfc/llcp_sock.c:351:21: sparse:     expected void [noderef] __user *__ptr_pu
   net/nfc/llcp_sock.c:351:21: sparse:     got unsigned int *__ptr_clean
   net/nfc/llcp_sock.c:357:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   net/nfc/llcp_sock.c:357:21: sparse:     expected void const volatile [noderef] __user *ptr
   net/nfc/llcp_sock.c:357:21: sparse:     got unsigned int *__ptr_clean
   net/nfc/llcp_sock.c:357:21: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   net/nfc/llcp_sock.c:357:21: sparse:     expected void [noderef] __user *__ptr_pu
   net/nfc/llcp_sock.c:357:21: sparse:     got unsigned int *__ptr_clean
   net/nfc/llcp_sock.c:363:21: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got unsigned int *__ptr_clean @@
   net/nfc/llcp_sock.c:363:21: sparse:     expected void const volatile [noderef] __user *ptr
   net/nfc/llcp_sock.c:363:21: sparse:     got unsigned int *__ptr_clean
   net/nfc/llcp_sock.c:363:21: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got unsigned int *__ptr_clean @@
   net/nfc/llcp_sock.c:363:21: sparse:     expected void [noderef] __user *__ptr_pu
   net/nfc/llcp_sock.c:363:21: sparse:     got unsigned int *__ptr_clean
   net/nfc/llcp_sock.c:375:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/nfc/llcp_sock.c:375:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/nfc/llcp_sock.c:375:13: sparse:     got int *__ptr_clean
>> net/nfc/llcp_sock.c:375:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/nfc/llcp_sock.c:375:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/nfc/llcp_sock.c:375:13: sparse:     got int *__ptr_clean
--
>> net/smc/af_smc.c:2705:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/smc/af_smc.c:2705:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/smc/af_smc.c:2705:13: sparse:     got int *__ptr_clean
   net/smc/af_smc.c:2721:13: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/smc/af_smc.c:2721:13: sparse:     expected void const volatile [noderef] __user *ptr
   net/smc/af_smc.c:2721:13: sparse:     got int *__ptr_clean
>> net/smc/af_smc.c:2721:13: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/smc/af_smc.c:2721:13: sparse:     expected void [noderef] __user *__ptr_pu
   net/smc/af_smc.c:2721:13: sparse:     got int *__ptr_clean
   net/smc/af_smc.c:2953:16: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void const volatile [noderef] __user *ptr @@     got int *__ptr_clean @@
   net/smc/af_smc.c:2953:16: sparse:     expected void const volatile [noderef] __user *ptr
   net/smc/af_smc.c:2953:16: sparse:     got int *__ptr_clean
   net/smc/af_smc.c:2953:16: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected void [noderef] __user *__ptr_pu @@     got int *__ptr_clean @@
   net/smc/af_smc.c:2953:16: sparse:     expected void [noderef] __user *__ptr_pu
   net/smc/af_smc.c:2953:16: sparse:     got int *__ptr_clean

vim +49 drivers/scsi/scsi_ioctl.c

^1da177e4c3f415 Linus Torvalds      2005-04-16   34  
32993523dc59759 Christoph Hellwig   2005-09-06   35  /**
32993523dc59759 Christoph Hellwig   2005-09-06   36   * ioctl_probe  --  return host identification
32993523dc59759 Christoph Hellwig   2005-09-06   37   * @host:	host to identify
32993523dc59759 Christoph Hellwig   2005-09-06   38   * @buffer:	userspace buffer for identification
32993523dc59759 Christoph Hellwig   2005-09-06   39   *
32993523dc59759 Christoph Hellwig   2005-09-06   40   * Return an identifying string at @buffer, if @buffer is non-NULL, filling
32993523dc59759 Christoph Hellwig   2005-09-06   41   * to the length stored at * (int *) @buffer.
^1da177e4c3f415 Linus Torvalds      2005-04-16   42   */
^1da177e4c3f415 Linus Torvalds      2005-04-16   43  static int ioctl_probe(struct Scsi_Host *host, void __user *buffer)
^1da177e4c3f415 Linus Torvalds      2005-04-16   44  {
^1da177e4c3f415 Linus Torvalds      2005-04-16   45  	unsigned int len, slen;
^1da177e4c3f415 Linus Torvalds      2005-04-16   46  	const char *string;
^1da177e4c3f415 Linus Torvalds      2005-04-16   47  
32993523dc59759 Christoph Hellwig   2005-09-06   48  	if (buffer) {
^1da177e4c3f415 Linus Torvalds      2005-04-16  @49  		if (get_user(len, (unsigned int __user *) buffer))
^1da177e4c3f415 Linus Torvalds      2005-04-16   50  			return -EFAULT;
^1da177e4c3f415 Linus Torvalds      2005-04-16   51  
^1da177e4c3f415 Linus Torvalds      2005-04-16   52  		if (host->hostt->info)
^1da177e4c3f415 Linus Torvalds      2005-04-16   53  			string = host->hostt->info(host);
^1da177e4c3f415 Linus Torvalds      2005-04-16   54  		else
^1da177e4c3f415 Linus Torvalds      2005-04-16   55  			string = host->hostt->name;
^1da177e4c3f415 Linus Torvalds      2005-04-16   56  		if (string) {
^1da177e4c3f415 Linus Torvalds      2005-04-16   57  			slen = strlen(string);
^1da177e4c3f415 Linus Torvalds      2005-04-16   58  			if (len > slen)
^1da177e4c3f415 Linus Torvalds      2005-04-16   59  				len = slen + 1;
^1da177e4c3f415 Linus Torvalds      2005-04-16   60  			if (copy_to_user(buffer, string, len))
^1da177e4c3f415 Linus Torvalds      2005-04-16   61  				return -EFAULT;
^1da177e4c3f415 Linus Torvalds      2005-04-16   62  		}
^1da177e4c3f415 Linus Torvalds      2005-04-16   63  	}
32993523dc59759 Christoph Hellwig   2005-09-06   64  	return 1;
^1da177e4c3f415 Linus Torvalds      2005-04-16   65  }
^1da177e4c3f415 Linus Torvalds      2005-04-16   66  
^1da177e4c3f415 Linus Torvalds      2005-04-16   67  static int ioctl_internal_command(struct scsi_device *sdev, char *cmd,
^1da177e4c3f415 Linus Torvalds      2005-04-16   68  				  int timeout, int retries)
^1da177e4c3f415 Linus Torvalds      2005-04-16   69  {
^1da177e4c3f415 Linus Torvalds      2005-04-16   70  	int result;
^1da177e4c3f415 Linus Torvalds      2005-04-16   71  	struct scsi_sense_hdr sshdr;
^1da177e4c3f415 Linus Torvalds      2005-04-16   72  
e5f73ce3248f724 Hannes Reinecke     2014-06-25   73  	SCSI_LOG_IOCTL(1, sdev_printk(KERN_INFO, sdev,
e5f73ce3248f724 Hannes Reinecke     2014-06-25   74  				      "Trying ioctl with scsi command %d\n", *cmd));
^1da177e4c3f415 Linus Torvalds      2005-04-16   75  
1cf72699c1530c3 James Bottomley     2005-08-28   76  	result = scsi_execute_req(sdev, cmd, DMA_NONE, NULL, 0,
f4f4e47e4af6b02 FUJITA Tomonori     2008-12-04   77  				  &sshdr, timeout, retries, NULL);
^1da177e4c3f415 Linus Torvalds      2005-04-16   78  
e5f73ce3248f724 Hannes Reinecke     2014-06-25   79  	SCSI_LOG_IOCTL(2, sdev_printk(KERN_INFO, sdev,
e5f73ce3248f724 Hannes Reinecke     2014-06-25   80  				      "Ioctl returned  0x%x\n", result));
^1da177e4c3f415 Linus Torvalds      2005-04-16   81  
ced202f7bd78eb6 Hannes Reinecke     2021-04-27   82  	if (result < 0)
ced202f7bd78eb6 Hannes Reinecke     2021-04-27   83  		goto out;
464a00c9e0ad45e Hannes Reinecke     2021-04-27   84  	if (scsi_sense_valid(&sshdr)) {
^1da177e4c3f415 Linus Torvalds      2005-04-16   85  		switch (sshdr.sense_key) {
^1da177e4c3f415 Linus Torvalds      2005-04-16   86  		case ILLEGAL_REQUEST:
^1da177e4c3f415 Linus Torvalds      2005-04-16   87  			if (cmd[0] == ALLOW_MEDIUM_REMOVAL)
^1da177e4c3f415 Linus Torvalds      2005-04-16   88  				sdev->lockable = 0;
^1da177e4c3f415 Linus Torvalds      2005-04-16   89  			else
e5f73ce3248f724 Hannes Reinecke     2014-06-25   90  				sdev_printk(KERN_INFO, sdev,
e5f73ce3248f724 Hannes Reinecke     2014-06-25   91  					    "ioctl_internal_command: "
e5f73ce3248f724 Hannes Reinecke     2014-06-25   92  					    "ILLEGAL REQUEST "
e5f73ce3248f724 Hannes Reinecke     2014-06-25   93  					    "asc=0x%x ascq=0x%x\n",
^1da177e4c3f415 Linus Torvalds      2005-04-16   94  					    sshdr.asc, sshdr.ascq);
^1da177e4c3f415 Linus Torvalds      2005-04-16   95  			break;
^1da177e4c3f415 Linus Torvalds      2005-04-16   96  		case NOT_READY:	/* This happens if there is no disc in drive */
a75ad3c27a6ad78 Jens Axboe          2006-07-28   97  			if (sdev->removable)
^1da177e4c3f415 Linus Torvalds      2005-04-16   98  				break;
df561f6688fef77 Gustavo A. R. Silva 2020-08-23   99  			fallthrough;
^1da177e4c3f415 Linus Torvalds      2005-04-16  100  		case UNIT_ATTENTION:
^1da177e4c3f415 Linus Torvalds      2005-04-16  101  			if (sdev->removable) {
^1da177e4c3f415 Linus Torvalds      2005-04-16  102  				sdev->changed = 1;
1cf72699c1530c3 James Bottomley     2005-08-28  103  				result = 0;	/* This is no longer considered an error */
^1da177e4c3f415 Linus Torvalds      2005-04-16  104  				break;
^1da177e4c3f415 Linus Torvalds      2005-04-16  105  			}
df561f6688fef77 Gustavo A. R. Silva 2020-08-23  106  			fallthrough;	/* for non-removable media */
3bf2ff6749f0f87 Bart Van Assche     2017-08-25  107  		default:
9ccfc756a70d454 James Bottomley     2005-10-02  108  			sdev_printk(KERN_INFO, sdev,
9ccfc756a70d454 James Bottomley     2005-10-02  109  				    "ioctl_internal_command return code = %x\n",
1cf72699c1530c3 James Bottomley     2005-08-28  110  				    result);
d811b848ebb78a1 Hannes Reinecke     2014-10-24  111  			scsi_print_sense_hdr(sdev, NULL, &sshdr);
^1da177e4c3f415 Linus Torvalds      2005-04-16  112  			break;
^1da177e4c3f415 Linus Torvalds      2005-04-16  113  		}
^1da177e4c3f415 Linus Torvalds      2005-04-16  114  	}
ced202f7bd78eb6 Hannes Reinecke     2021-04-27  115  out:
e5f73ce3248f724 Hannes Reinecke     2014-06-25  116  	SCSI_LOG_IOCTL(2, sdev_printk(KERN_INFO, sdev,
e5f73ce3248f724 Hannes Reinecke     2014-06-25  117  				      "IOCTL Releasing command\n"));
^1da177e4c3f415 Linus Torvalds      2005-04-16  118  	return result;
^1da177e4c3f415 Linus Torvalds      2005-04-16  119  }
^1da177e4c3f415 Linus Torvalds      2005-04-16  120  
^1da177e4c3f415 Linus Torvalds      2005-04-16  121  int scsi_set_medium_removal(struct scsi_device *sdev, char state)
^1da177e4c3f415 Linus Torvalds      2005-04-16  122  {
^1da177e4c3f415 Linus Torvalds      2005-04-16  123  	char scsi_cmd[MAX_COMMAND_SIZE];
^1da177e4c3f415 Linus Torvalds      2005-04-16  124  	int ret;
^1da177e4c3f415 Linus Torvalds      2005-04-16  125  
^1da177e4c3f415 Linus Torvalds      2005-04-16  126  	if (!sdev->removable || !sdev->lockable)
^1da177e4c3f415 Linus Torvalds      2005-04-16  127  	       return 0;
^1da177e4c3f415 Linus Torvalds      2005-04-16  128  
^1da177e4c3f415 Linus Torvalds      2005-04-16  129  	scsi_cmd[0] = ALLOW_MEDIUM_REMOVAL;
^1da177e4c3f415 Linus Torvalds      2005-04-16  130  	scsi_cmd[1] = 0;
^1da177e4c3f415 Linus Torvalds      2005-04-16  131  	scsi_cmd[2] = 0;
^1da177e4c3f415 Linus Torvalds      2005-04-16  132  	scsi_cmd[3] = 0;
^1da177e4c3f415 Linus Torvalds      2005-04-16  133  	scsi_cmd[4] = state;
^1da177e4c3f415 Linus Torvalds      2005-04-16  134  	scsi_cmd[5] = 0;
^1da177e4c3f415 Linus Torvalds      2005-04-16  135  
^1da177e4c3f415 Linus Torvalds      2005-04-16  136  	ret = ioctl_internal_command(sdev, scsi_cmd,
^1da177e4c3f415 Linus Torvalds      2005-04-16  137  			IOCTL_NORMAL_TIMEOUT, NORMAL_RETRIES);
^1da177e4c3f415 Linus Torvalds      2005-04-16  138  	if (ret == 0)
^1da177e4c3f415 Linus Torvalds      2005-04-16  139  		sdev->locked = (state == SCSI_REMOVAL_PREVENT);
^1da177e4c3f415 Linus Torvalds      2005-04-16  140  	return ret;
^1da177e4c3f415 Linus Torvalds      2005-04-16  141  }
^1da177e4c3f415 Linus Torvalds      2005-04-16  142  EXPORT_SYMBOL(scsi_set_medium_removal);
^1da177e4c3f415 Linus Torvalds      2005-04-16  143  
^1da177e4c3f415 Linus Torvalds      2005-04-16  144  /*
^1da177e4c3f415 Linus Torvalds      2005-04-16  145   * The scsi_ioctl_get_pci() function places into arg the value
^1da177e4c3f415 Linus Torvalds      2005-04-16  146   * pci_dev::slot_name (8 characters) for the PCI device (if any).
^1da177e4c3f415 Linus Torvalds      2005-04-16  147   * Returns: 0 on success
^1da177e4c3f415 Linus Torvalds      2005-04-16  148   *          -ENXIO if there isn't a PCI device pointer
^1da177e4c3f415 Linus Torvalds      2005-04-16  149   *                 (could be because the SCSI driver hasn't been
^1da177e4c3f415 Linus Torvalds      2005-04-16  150   *                  updated yet, or because it isn't a SCSI
^1da177e4c3f415 Linus Torvalds      2005-04-16  151   *                  device)
^1da177e4c3f415 Linus Torvalds      2005-04-16  152   *          any copy_to_user() error on failure there
^1da177e4c3f415 Linus Torvalds      2005-04-16  153   */
^1da177e4c3f415 Linus Torvalds      2005-04-16  154  static int scsi_ioctl_get_pci(struct scsi_device *sdev, void __user *arg)
^1da177e4c3f415 Linus Torvalds      2005-04-16  155  {
^1da177e4c3f415 Linus Torvalds      2005-04-16  156  	struct device *dev = scsi_get_device(sdev->host);
71610f55fa4db63 Kay Sievers         2008-12-03  157  	const char *name;
^1da177e4c3f415 Linus Torvalds      2005-04-16  158  
^1da177e4c3f415 Linus Torvalds      2005-04-16  159          if (!dev)
^1da177e4c3f415 Linus Torvalds      2005-04-16  160  		return -ENXIO;
71610f55fa4db63 Kay Sievers         2008-12-03  161  
71610f55fa4db63 Kay Sievers         2008-12-03  162  	name = dev_name(dev);
71610f55fa4db63 Kay Sievers         2008-12-03  163  
71610f55fa4db63 Kay Sievers         2008-12-03  164  	/* compatibility with old ioctl which only returned
71610f55fa4db63 Kay Sievers         2008-12-03  165  	 * 20 characters */
71610f55fa4db63 Kay Sievers         2008-12-03  166          return copy_to_user(arg, name, min(strlen(name), (size_t)20))
71610f55fa4db63 Kay Sievers         2008-12-03  167  		? -EFAULT: 0;
^1da177e4c3f415 Linus Torvalds      2005-04-16  168  }
^1da177e4c3f415 Linus Torvalds      2005-04-16  169  
f2542a3be3277a6 Christoph Hellwig   2021-07-24  170  static int sg_get_version(int __user *p)
f2542a3be3277a6 Christoph Hellwig   2021-07-24  171  {
f2542a3be3277a6 Christoph Hellwig   2021-07-24  172  	static const int sg_version_num = 30527;
f2542a3be3277a6 Christoph Hellwig   2021-07-24 @173  	return put_user(sg_version_num, p);
f2542a3be3277a6 Christoph Hellwig   2021-07-24  174  }
f2542a3be3277a6 Christoph Hellwig   2021-07-24  175  

:::::: The code at line 49 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2

:::::: TO: Linus Torvalds <torvalds@...970.osdl.org>
:::::: CC: Linus Torvalds <torvalds@...970.osdl.org>

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ