[kas:lam 5/13] drivers/input/serio/serport.c:216:21: sparse: sparse: incorrect type in assignment (different address spaces)

From: kernel test robot
Date: Tue Sep 20 2022 - 06:26:52 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/kas/linux.git lam
head: 8836fbd6cd3120383a0bc63cd54c7dd55639ed49
commit: 2600a472582e2968633831d430c2a1366ad3e8b1 [5/13] x86/uaccess: Provide untagged_addr() and remove tags before address check
config: x86_64-randconfig-s023-20220919 (https://download.01.org/0day-ci/archive/20220920/202209201829.bNE1v4V7-lkp@xxxxxxxxx/config)
compiler: gcc-11 (Debian 11.3.0-5) 11.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.4-39-gce1a6720-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/kas/linux.git/commit/?id=2600a472582e2968633831d430c2a1366ad3e8b1
git remote add kas https://git.kernel.org/pub/scm/linux/kernel/git/kas/linux.git
git fetch --no-tags kas lam
git checkout 2600a472582e2968633831d430c2a1366ad3e8b1
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/acpi/ drivers/input/serio/ drivers/platform/x86/

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@xxxxxxxxx>

sparse warnings: (new ones prefixed by >>)
>> drivers/input/serio/serport.c:216:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected unsigned long [noderef] __user *__ptr_clean @@ got unsigned long * @@
drivers/input/serio/serport.c:216:21: sparse: expected unsigned long [noderef] __user *__ptr_clean
drivers/input/serio/serport.c:216:21: sparse: got unsigned long *
--
>> drivers/input/serio/serio_raw.c:178:29: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected char [noderef] __user *__ptr_clean @@ got char * @@
drivers/input/serio/serio_raw.c:178:29: sparse: expected char [noderef] __user *__ptr_clean
drivers/input/serio/serio_raw.c:178:29: sparse: got char *
>> drivers/input/serio/serio_raw.c:219:21: sparse: sparse: incorrect type in assignment (different address spaces) @@ expected char const [noderef] __user *__ptr_clean @@ got char const * @@
drivers/input/serio/serio_raw.c:219:21: sparse: expected char const [noderef] __user *__ptr_clean
drivers/input/serio/serio_raw.c:219:21: sparse: got char const *

vim +216 drivers/input/serio/serport.c

a80d8b02751060 John Sung 2014-09-09 205
^1da177e4c3f41 Linus Torvalds 2005-04-16 206 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 207 * serport_ldisc_ioctl() allows to set the port protocol, and device ID
^1da177e4c3f41 Linus Torvalds 2005-04-16 208 */
^1da177e4c3f41 Linus Torvalds 2005-04-16 209
d78328bcc4d0e6 Jiri Slaby 2021-11-22 210 static int serport_ldisc_ioctl(struct tty_struct *tty, unsigned int cmd,
d78328bcc4d0e6 Jiri Slaby 2021-11-22 211 unsigned long arg)
^1da177e4c3f41 Linus Torvalds 2005-04-16 212 {
a80d8b02751060 John Sung 2014-09-09 213 if (cmd == SPIOCSTYPE) {
^1da177e4c3f41 Linus Torvalds 2005-04-16 214 unsigned long type;
^1da177e4c3f41 Linus Torvalds 2005-04-16 215
^1da177e4c3f41 Linus Torvalds 2005-04-16 @216 if (get_user(type, (unsigned long __user *) arg))
^1da177e4c3f41 Linus Torvalds 2005-04-16 217 return -EFAULT;
^1da177e4c3f41 Linus Torvalds 2005-04-16 218
a80d8b02751060 John Sung 2014-09-09 219 serport_set_type(tty, type);
a80d8b02751060 John Sung 2014-09-09 220 return 0;
a80d8b02751060 John Sung 2014-09-09 221 }
a80d8b02751060 John Sung 2014-09-09 222
a80d8b02751060 John Sung 2014-09-09 223 return -EINVAL;
a80d8b02751060 John Sung 2014-09-09 224 }
a80d8b02751060 John Sung 2014-09-09 225

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

:::::: TO: Linus Torvalds <torvalds@xxxxxxxxxxxxxxx>
:::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxxxxxx>

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