drivers/tty/n_gsm.c:2630:24: sparse: sparse: incorrect type in initializer (different address spaces)
From: kernel test robot
Date: Wed Jun 17 2020 - 19:21:12 EST
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 1b5044021070efa3259f3e9548dc35d1eb6aa844
commit: a7b121b4b8b0bcc14fc1c2a81d34096109a65dd6 tty: n_gsm: add ioctl to map serial device to mux'ed tty
date: 10 months ago
config: openrisc-randconfig-s032-20200617 (attached as .config)
compiler: or1k-linux-gcc (GCC) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.2-rc1-6-g78f577f8-dirty
git checkout a7b121b4b8b0bcc14fc1c2a81d34096109a65dd6
# save the attached .config to linux build tree
make W=1 C=1 ARCH=openrisc CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>
sparse warnings: (new ones prefixed by >>)
>> include/linux/unaligned/le_byteshift.h:25:16: sparse: sparse: cast truncates bits from constant value (f00d becomes d)
>> include/linux/unaligned/le_byteshift.h:32:30: sparse: sparse: cast truncates bits from constant value (f00dface becomes face)
>> include/linux/unaligned/le_byteshift.h:25:16: sparse: sparse: cast truncates bits from constant value (face becomes ce)
>> include/linux/unaligned/le_byteshift.h:25:16: sparse: sparse: cast truncates bits from constant value (f00d becomes d)
>> include/linux/unaligned/le_byteshift.h:32:30: sparse: sparse: cast truncates bits from constant value (f00dface becomes face)
>> include/linux/unaligned/le_byteshift.h:25:16: sparse: sparse: cast truncates bits from constant value (face becomes ce)
--
drivers/tty/n_gsm.c:2621:35: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] <asn:1> *to @@ got void * @@
drivers/tty/n_gsm.c:2621:35: sparse: expected void [noderef] <asn:1> *to
drivers/tty/n_gsm.c:2621:35: sparse: got void *
drivers/tty/n_gsm.c:2625:41: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] <asn:1> *from @@ got void * @@
drivers/tty/n_gsm.c:2625:41: sparse: expected void const [noderef] <asn:1> *from
drivers/tty/n_gsm.c:2625:41: sparse: got void *
>> drivers/tty/n_gsm.c:2630:24: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected unsigned int *__pu_addr @@ got unsigned int [noderef] [usertype] <asn:1> * @@
>> drivers/tty/n_gsm.c:2630:24: sparse: expected unsigned int *__pu_addr
drivers/tty/n_gsm.c:2630:24: sparse: got unsigned int [noderef] [usertype] <asn:1> *
drivers/tty/n_gsm.c:2795:29: sparse: sparse: restricted __be16 degrades to integer
include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *to @@ got void [noderef] <asn:1> *to @@
include/linux/uaccess.h:131:38: sparse: expected void *to
include/linux/uaccess.h:131:38: sparse: got void [noderef] <asn:1> *to
include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] <asn:1> *from @@ got void const *from @@
include/linux/uaccess.h:131:42: sparse: expected void const [noderef] <asn:1> *from
include/linux/uaccess.h:131:42: sparse: got void const *from
arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const *from @@ got void const [noderef] <asn:1> *from @@
arch/openrisc/include/asm/uaccess.h:246:55: sparse: expected void const *from
arch/openrisc/include/asm/uaccess.h:246:55: sparse: got void const [noderef] <asn:1> *from
include/linux/uaccess.h:131:38: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void *to @@ got void [noderef] <asn:1> *to @@
include/linux/uaccess.h:131:38: sparse: expected void *to
include/linux/uaccess.h:131:38: sparse: got void [noderef] <asn:1> *to
include/linux/uaccess.h:131:42: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const [noderef] <asn:1> *from @@ got void const *from @@
include/linux/uaccess.h:131:42: sparse: expected void const [noderef] <asn:1> *from
include/linux/uaccess.h:131:42: sparse: got void const *from
arch/openrisc/include/asm/uaccess.h:246:55: sparse: sparse: incorrect type in argument 2 (different address spaces) @@ expected void const *from @@ got void const [noderef] <asn:1> *from @@
arch/openrisc/include/asm/uaccess.h:246:55: sparse: expected void const *from
arch/openrisc/include/asm/uaccess.h:246:55: sparse: got void const [noderef] <asn:1> *from
vim +2630 drivers/tty/n_gsm.c
2610
2611 static int gsmld_ioctl(struct tty_struct *tty, struct file *file,
2612 unsigned int cmd, unsigned long arg)
2613 {
2614 struct gsm_config c;
2615 struct gsm_mux *gsm = tty->disc_data;
2616 unsigned int base;
2617
2618 switch (cmd) {
2619 case GSMIOC_GETCONF:
2620 gsm_copy_config_values(gsm, &c);
2621 if (copy_to_user((void *)arg, &c, sizeof(c)))
2622 return -EFAULT;
2623 return 0;
2624 case GSMIOC_SETCONF:
2625 if (copy_from_user(&c, (void *)arg, sizeof(c)))
2626 return -EFAULT;
2627 return gsm_config(gsm, &c);
2628 case GSMIOC_GETFIRST:
2629 base = mux_num_to_base(gsm);
> 2630 return put_user(base + 1, (__u32 __user *)arg);
2631 default:
2632 return n_tty_ioctl_helper(tty, file, cmd, arg);
2633 }
2634 }
2635
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip