drivers/misc/xilinx_sdfec.c:736:15: sparse: sparse: incorrect type in argument 2 (different address spaces)

From: kbuild test robot
Date: Thu May 28 2020 - 10:57:23 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: b0c3ba31be3e45a130e13b278cf3b90f69bda6f6
commit: a6b07e89fd8530b943217ccd4909d1bf65acc45d misc: xilinx_sdfec: add missing __user annotation
date: 5 months ago
config: m68k-randconfig-s031-20200528 (attached as .config)
compiler: m68k-linux-gcc (GCC) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-240-gf0fe1cd9-dirty
git checkout a6b07e89fd8530b943217ccd4909d1bf65acc45d
# save the attached .config to linux build tree
make W=1 C=1 ARCH=m68k CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp@xxxxxxxxx>


sparse warnings: (new ones prefixed by >>)

drivers/misc/xilinx_sdfec.c:736:15: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/misc/xilinx_sdfec.c:736:15: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/misc/xilinx_sdfec.c:736:15: sparse: sparse: cast removes address space '<asn:1>' of expression
>> drivers/misc/xilinx_sdfec.c:736:15: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got unsigned int enum xsdfec_order [noderef] <asn:1> * @@
drivers/misc/xilinx_sdfec.c:736:15: sparse: expected void const *
drivers/misc/xilinx_sdfec.c:736:15: sparse: got unsigned int enum xsdfec_order [noderef] <asn:1> *
drivers/misc/xilinx_sdfec.c:761:15: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/misc/xilinx_sdfec.c:761:15: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/misc/xilinx_sdfec.c:761:15: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/misc/xilinx_sdfec.c:761:15: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const * @@ got bool [noderef] [usertype] <asn:1> *arg @@
drivers/misc/xilinx_sdfec.c:761:15: sparse: expected void const *
drivers/misc/xilinx_sdfec.c:761:15: sparse: got bool [noderef] [usertype] <asn:1> *arg
drivers/misc/xilinx_sdfec.c:788:15: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/misc/xilinx_sdfec.c:788:15: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/misc/xilinx_sdfec.c:788:15: sparse: sparse: cast removes address space '<asn:1>' of expression
drivers/misc/xilinx_sdfec.c:788:15: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void * @@ got bool [noderef] [usertype] <asn:1> *arg @@
drivers/misc/xilinx_sdfec.c:788:15: sparse: expected void *
drivers/misc/xilinx_sdfec.c:788:15: sparse: got bool [noderef] [usertype] <asn:1> *arg
drivers/misc/xilinx_sdfec.c:1057:17: sparse: sparse: incorrect type in initializer (different base types) @@ expected restricted __poll_t ( *poll )( ... ) @@ got unsigned int ( * )( ... ) @@
drivers/misc/xilinx_sdfec.c:1057:17: sparse: expected restricted __poll_t ( *poll )( ... )
drivers/misc/xilinx_sdfec.c:1057:17: sparse: got unsigned int ( * )( ... )

vim +736 drivers/misc/xilinx_sdfec.c

729
730 static int xsdfec_set_order(struct xsdfec_dev *xsdfec, void __user *arg)
731 {
732 bool order_invalid;
733 enum xsdfec_order order;
734 int err;
735
> 736 err = get_user(order, (enum xsdfec_order __user *)arg);
737 if (err)
738 return -EFAULT;
739
740 order_invalid = (order != XSDFEC_MAINTAIN_ORDER) &&
741 (order != XSDFEC_OUT_OF_ORDER);
742 if (order_invalid)
743 return -EINVAL;
744
745 /* Verify Device has not started */
746 if (xsdfec->state == XSDFEC_STARTED)
747 return -EIO;
748
749 xsdfec_regwrite(xsdfec, XSDFEC_ORDER_ADDR, order);
750
751 xsdfec->config.order = order;
752
753 return 0;
754 }
755

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

Attachment: .config.gz
Description: application/gzip