tree:
https://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git
arm-kill-set_fs-5
head: 1086c1cb895540fdf215aecf3ed4a96843d6633e
commit: 7c6abb06b21a8c97bae4a330de4a490c5acf0dbf [17/40] scsi: megaraid_sas: simplify
compat_ioctl handling
config: arc-randconfig-s032-20200918 (attached as .config)
compiler: arc-elf-gcc (GCC) 9.3.0
reproduce:
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.2-201-g24bdaac6-dirty
git checkout 7c6abb06b21a8c97bae4a330de4a490c5acf0dbf
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1
CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=arc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
drivers/scsi/megaraid/megaraid_sas_base.c:4542:21: sparse: sparse: incorrect type in
assignment (different base types) @@ expected restricted __le16 [usertype] flags @@
got int @@
drivers/scsi/megaraid/megaraid_sas_base.c:4542:21: sparse: expected restricted
__le16 [usertype] flags
drivers/scsi/megaraid/megaraid_sas_base.c:4542:21: sparse: got int
drivers/scsi/megaraid/megaraid_sas_base.c:4793:21: sparse: sparse: incorrect type in
assignment (different base types) @@ expected restricted __le16 [usertype] flags @@
got int @@
drivers/scsi/megaraid/megaraid_sas_base.c:4793:21: sparse: expected restricted
__le16 [usertype] flags
drivers/scsi/megaraid/megaraid_sas_base.c:4793:21: sparse: got int
drivers/scsi/megaraid/megaraid_sas_base.c:6608:21: sparse: sparse: incorrect type in
assignment (different base types) @@ expected restricted __le16 [usertype] flags @@
got int @@
drivers/scsi/megaraid/megaraid_sas_base.c:6608:21: sparse: expected restricted
__le16 [usertype] flags
drivers/scsi/megaraid/megaraid_sas_base.c:6608:21: sparse: got int
drivers/scsi/megaraid/megaraid_sas_base.c:4449:21: sparse: sparse: incorrect type in
assignment (different base types) @@ expected restricted __le16 [usertype] flags @@
got int @@
drivers/scsi/megaraid/megaraid_sas_base.c:4449:21: sparse: expected restricted
__le16 [usertype] flags
drivers/scsi/megaraid/megaraid_sas_base.c:4449:21: sparse: got int
drivers/scsi/megaraid/megaraid_sas_base.c:277:31: sparse: sparse: restricted __le16
degrades to integer
drivers/scsi/megaraid/megaraid_sas_base.c:283:31: sparse: sparse: cast from restricted
__le16
drivers/scsi/megaraid/megaraid_sas_base.c:409:29: sparse: sparse: cast to restricted
__le32
drivers/scsi/megaraid/megaraid_sas_base.c:1213:32: sparse: sparse: incorrect type in
assignment (different base types) @@ expected unsigned int [usertype] opcode @@
got restricted __le32 [usertype] opcode @@
drivers/scsi/megaraid/megaraid_sas_base.c:1213:32: sparse: expected unsigned int
[usertype] opcode
drivers/scsi/megaraid/megaraid_sas_base.c:1213:32: sparse: got restricted __le32
[usertype] opcode
drivers/scsi/megaraid/megaraid_sas_base.c:1991:33: sparse: sparse: cast to restricted
__le32
drivers/scsi/megaraid/megaraid_sas_base.c:2032:34: sparse: sparse: cast to restricted
__le32
drivers/scsi/megaraid/megaraid_sas_base.c:4673:21: sparse: sparse: incorrect type in
assignment (different base types) @@ expected restricted __le16 [usertype] flags @@
got int @@
drivers/scsi/megaraid/megaraid_sas_base.c:4673:21: sparse: expected restricted
__le16 [usertype] flags
drivers/scsi/megaraid/megaraid_sas_base.c:4673:21: sparse: got int
drivers/scsi/megaraid/megaraid_sas_base.c:4912:21: sparse: sparse: incorrect type in
assignment (different base types) @@ expected restricted __le16 [usertype] flags @@
got int @@
drivers/scsi/megaraid/megaraid_sas_base.c:4912:21: sparse: expected restricted
__le16 [usertype] flags
drivers/scsi/megaraid/megaraid_sas_base.c:4912:21: sparse: got int
drivers/scsi/megaraid/megaraid_sas_base.c:5097:21: sparse: sparse: incorrect type in
assignment (different base types) @@ expected restricted __le16 [usertype] flags @@
got int @@
drivers/scsi/megaraid/megaraid_sas_base.c:5097:21: sparse: expected restricted
__le16 [usertype] flags
drivers/scsi/megaraid/megaraid_sas_base.c:5097:21: sparse: got int
drivers/scsi/megaraid/megaraid_sas_base.c:5179:21: sparse: sparse: incorrect type in
assignment (different base types) @@ expected restricted __le16 [usertype] flags @@
got int @@
drivers/scsi/megaraid/megaraid_sas_base.c:5179:21: sparse: expected restricted
__le16 [usertype] flags
drivers/scsi/megaraid/megaraid_sas_base.c:5179:21: sparse: got int
drivers/scsi/megaraid/megaraid_sas_base.c:6161:42: sparse: sparse: cast removes address
space '__iomem' of expression
drivers/scsi/megaraid/megaraid_sas_base.c:6160:57: sparse: sparse: incorrect type in
assignment (different address spaces) @@ expected unsigned int [noderef] [usertype]
__iomem * @@ got unsigned int [usertype] * @@
drivers/scsi/megaraid/megaraid_sas_base.c:6160:57: sparse: expected unsigned int
[noderef] [usertype] __iomem *
drivers/scsi/megaraid/megaraid_sas_base.c:6160:57: sparse: got unsigned int
[usertype] *
drivers/scsi/megaraid/megaraid_sas_base.c:6165:34: sparse: sparse: cast removes address
space '__iomem' of expression
drivers/scsi/megaraid/megaraid_sas_base.c:6164:57: sparse: sparse: incorrect type in
assignment (different address spaces) @@ expected unsigned int [noderef] [usertype]
__iomem * @@ got unsigned int [usertype] * @@
drivers/scsi/megaraid/megaraid_sas_base.c:6164:57: sparse: expected unsigned int
[noderef] [usertype] __iomem *
drivers/scsi/megaraid/megaraid_sas_base.c:6164:57: sparse: got unsigned int
[usertype] *
drivers/scsi/megaraid/megaraid_sas_base.c:6472:21: sparse: sparse: incorrect type in
assignment (different base types) @@ expected restricted __le16 [usertype] flags @@
got int @@
drivers/scsi/megaraid/megaraid_sas_base.c:6472:21: sparse: expected restricted
__le16 [usertype] flags
drivers/scsi/megaraid/megaraid_sas_base.c:6472:21: sparse: got int
drivers/scsi/megaraid/megaraid_sas_base.c:6686:21: sparse: sparse: incorrect type in
assignment (different base types) @@ expected restricted __le16 [usertype] flags @@
got int @@
drivers/scsi/megaraid/megaraid_sas_base.c:6686:21: sparse: expected restricted
__le16 [usertype] flags
drivers/scsi/megaraid/megaraid_sas_base.c:6686:21: sparse: got int
drivers/scsi/megaraid/megaraid_sas_base.c:7422:44: sparse: sparse: restricted __le32
degrades to integer
drivers/scsi/megaraid/megaraid_sas_base.c:8053:23: sparse: sparse: incorrect type in
assignment (different base types) @@ expected int crash_support @@ got restricted
__le32 @@
drivers/scsi/megaraid/megaraid_sas_base.c:8053:23: sparse: expected int
crash_support
drivers/scsi/megaraid/megaraid_sas_base.c:8053:23: sparse: got restricted __le32
drivers/scsi/megaraid/megaraid_sas_base.c:8137:31: sparse: sparse: invalid assignment:
&=
drivers/scsi/megaraid/megaraid_sas_base.c:8137:31: sparse: left side has type
restricted __le16
drivers/scsi/megaraid/megaraid_sas_base.c:8137:31: sparse: right side has type int
> drivers/scsi/megaraid/megaraid_sas_base.c:8347:24: sparse:
sparse: incorrect type in return expression (different base types) @@ expected struct
megasas_iocpacket * @@ got int @@
> drivers/scsi/megaraid/megaraid_sas_base.c:8347:24: sparse: expected struct
megasas_iocpacket *
drivers/scsi/megaraid/megaraid_sas_base.c:8347:24: sparse:
got int
drivers/scsi/megaraid/megaraid_sas_base.c:8669:46: sparse: sparse: restricted __le32
degrades to integer
#
https://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git/commi...
git remote add arnd-playground
https://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git
git fetch --no-tags arnd-playground arm-kill-set_fs-5
git checkout 7c6abb06b21a8c97bae4a330de4a490c5acf0dbf
vim +8347 drivers/scsi/megaraid/megaraid_sas_base.c
8335
8336 static struct megasas_iocpacket *
8337 megasas_compat_iocpacket_get_user(void __user *arg)
8338 {
8339 struct megasas_iocpacket *ioc;
8340 struct compat_megasas_iocpacket __user *cioc = arg;
8341 size_t size;
8342 int err = -EFAULT;
8343 int i;
8344
8345 ioc = kzalloc(sizeof(*ioc), GFP_KERNEL);
8346 if (!ioc)
8347 return -ENOMEM;
8348 size = offsetof(struct
megasas_iocpacket, frame) + sizeof(ioc->frame);
8349 if (copy_from_user(ioc, arg, size))
8350 goto out;
8351
8352 for (i = 0; i < MAX_IOCTL_SGE; i++) {
8353 compat_uptr_t iov_base;
8354 if (get_user(iov_base, &cioc->sgl[i].iov_base) ||
8355 get_user(ioc->sgl[i].iov_len, &cioc->sgl[i].iov_len)) {
8356 goto out;
8357 }
8358 ioc->sgl[i].iov_base = compat_ptr(iov_base);
8359 }
8360
8361 return ioc;
8362 out:
8363 kfree(ioc);
8364
8365 return ERR_PTR(err);
8366 }
8367
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org