* [melver:review/uaccess-logging 4/6] kernel/uaccess-buffer.c:62:31: sparse: sparse: incorrect type in argument 1 (different address spaces)
@ 2021-12-09 21:24 kernel test robot
0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2021-12-09 21:24 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 6047 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/melver/linux.git review/uaccess-logging
head: b0aa74824d0cd2fca9a45f5328b355949217f721
commit: 8ebb2cf0597b5485d0e3aa745fb79d9495ac9b97 [4/6] uaccess-buffer: add CONFIG_GENERIC_ENTRY support
config: i386-randconfig-s031-20211207 (https://download.01.org/0day-ci/archive/20211210/202112100515.6IGZbs7H-lkp(a)intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.4-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/melver/linux.git/commit/?id=8ebb2cf0597b5485d0e3aa745fb79d9495ac9b97
git remote add melver https://git.kernel.org/pub/scm/linux/kernel/git/melver/linux.git
git fetch --no-tags melver review/uaccess-logging
git checkout 8ebb2cf0597b5485d0e3aa745fb79d9495ac9b97
# 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=i386 SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
>> kernel/uaccess-buffer.c:62:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/uaccess-buffer.c:62:31: sparse: expected struct spinlock [usertype] *lock
kernel/uaccess-buffer.c:62:31: sparse: got struct spinlock [noderef] __rcu *
kernel/uaccess-buffer.c:65:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/uaccess-buffer.c:65:33: sparse: expected struct spinlock [usertype] *lock
kernel/uaccess-buffer.c:65:33: sparse: got struct spinlock [noderef] __rcu *
>> kernel/uaccess-buffer.c:83:13: sparse: sparse: Using plain integer as NULL pointer
vim +62 kernel/uaccess-buffer.c
b3442207580a7a Peter Collingbourne 2021-12-07 59
b3442207580a7a Peter Collingbourne 2021-12-07 60 void __uaccess_buffer_post_exit_loop(void)
b3442207580a7a Peter Collingbourne 2021-12-07 61 {
b3442207580a7a Peter Collingbourne 2021-12-07 @62 spin_lock_irq(¤t->sighand->siglock);
b3442207580a7a Peter Collingbourne 2021-12-07 63 current->blocked = current->real_blocked;
b3442207580a7a Peter Collingbourne 2021-12-07 64 recalc_sigpending();
b3442207580a7a Peter Collingbourne 2021-12-07 65 spin_unlock_irq(¤t->sighand->siglock);
b3442207580a7a Peter Collingbourne 2021-12-07 66 }
b3442207580a7a Peter Collingbourne 2021-12-07 67
b3442207580a7a Peter Collingbourne 2021-12-07 68 void uaccess_buffer_free(struct task_struct *tsk)
b3442207580a7a Peter Collingbourne 2021-12-07 69 {
b3442207580a7a Peter Collingbourne 2021-12-07 70 struct uaccess_buffer_info *buf = &tsk->uaccess_buffer;
b3442207580a7a Peter Collingbourne 2021-12-07 71
b3442207580a7a Peter Collingbourne 2021-12-07 72 kfree(buf->kbegin);
b3442207580a7a Peter Collingbourne 2021-12-07 73 clear_syscall_work(UACCESS_BUFFER_EXIT);
b3442207580a7a Peter Collingbourne 2021-12-07 74 buf->kbegin = buf->kcur = buf->kend = NULL;
b3442207580a7a Peter Collingbourne 2021-12-07 75 }
b3442207580a7a Peter Collingbourne 2021-12-07 76
b3442207580a7a Peter Collingbourne 2021-12-07 77 void __uaccess_buffer_syscall_entry(void)
b3442207580a7a Peter Collingbourne 2021-12-07 78 {
b3442207580a7a Peter Collingbourne 2021-12-07 79 struct uaccess_buffer_info *buf = ¤t->uaccess_buffer;
b3442207580a7a Peter Collingbourne 2021-12-07 80 struct uaccess_descriptor desc;
b3442207580a7a Peter Collingbourne 2021-12-07 81
b3442207580a7a Peter Collingbourne 2021-12-07 82 if (get_user(buf->desc_ptr, buf->desc_ptr_ptr) || !buf->desc_ptr ||
b3442207580a7a Peter Collingbourne 2021-12-07 @83 put_user(0, buf->desc_ptr_ptr) ||
b3442207580a7a Peter Collingbourne 2021-12-07 84 copy_from_user(&desc, buf->desc_ptr, sizeof(desc)))
b3442207580a7a Peter Collingbourne 2021-12-07 85 return;
b3442207580a7a Peter Collingbourne 2021-12-07 86
b3442207580a7a Peter Collingbourne 2021-12-07 87 if (desc.size > 1024)
b3442207580a7a Peter Collingbourne 2021-12-07 88 desc.size = 1024;
b3442207580a7a Peter Collingbourne 2021-12-07 89
b3442207580a7a Peter Collingbourne 2021-12-07 90 if (buf->kend - buf->kbegin != desc.size)
b3442207580a7a Peter Collingbourne 2021-12-07 91 buf->kbegin =
b3442207580a7a Peter Collingbourne 2021-12-07 92 krealloc_array(buf->kbegin, desc.size,
b3442207580a7a Peter Collingbourne 2021-12-07 93 sizeof(struct uaccess_buffer_entry),
b3442207580a7a Peter Collingbourne 2021-12-07 94 GFP_KERNEL);
b3442207580a7a Peter Collingbourne 2021-12-07 95 if (!buf->kbegin)
b3442207580a7a Peter Collingbourne 2021-12-07 96 return;
b3442207580a7a Peter Collingbourne 2021-12-07 97
b3442207580a7a Peter Collingbourne 2021-12-07 98 set_syscall_work(UACCESS_BUFFER_EXIT);
b3442207580a7a Peter Collingbourne 2021-12-07 99 buf->kcur = buf->kbegin;
b3442207580a7a Peter Collingbourne 2021-12-07 100 buf->kend = buf->kbegin + desc.size;
b3442207580a7a Peter Collingbourne 2021-12-07 101 buf->ubegin =
b3442207580a7a Peter Collingbourne 2021-12-07 102 (struct uaccess_buffer_entry __user *)(unsigned long)desc.addr;
b3442207580a7a Peter Collingbourne 2021-12-07 103 }
b3442207580a7a Peter Collingbourne 2021-12-07 104
:::::: The code at line 62 was first introduced by commit
:::::: b3442207580a7ad112ed80ebff4f516282979c3b uaccess-buffer: add core code
:::::: TO: Peter Collingbourne <pcc@google.com>
:::::: CC: Marco Elver <elver@google.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply [flat|nested] 2+ messages in thread
* [melver:review/uaccess-logging 4/6] kernel/uaccess-buffer.c:62:31: sparse: sparse: incorrect type in argument 1 (different address spaces)
@ 2021-12-10 22:59 kernel test robot
0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2021-12-10 22:59 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 6047 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/melver/linux.git review/uaccess-logging
head: b0aa74824d0cd2fca9a45f5328b355949217f721
commit: 8ebb2cf0597b5485d0e3aa745fb79d9495ac9b97 [4/6] uaccess-buffer: add CONFIG_GENERIC_ENTRY support
config: i386-randconfig-s031-20211207 (https://download.01.org/0day-ci/archive/20211211/202112110605.yKU6WJER-lkp(a)intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.4-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/melver/linux.git/commit/?id=8ebb2cf0597b5485d0e3aa745fb79d9495ac9b97
git remote add melver https://git.kernel.org/pub/scm/linux/kernel/git/melver/linux.git
git fetch --no-tags melver review/uaccess-logging
git checkout 8ebb2cf0597b5485d0e3aa745fb79d9495ac9b97
# 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=i386 SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
>> kernel/uaccess-buffer.c:62:31: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/uaccess-buffer.c:62:31: sparse: expected struct spinlock [usertype] *lock
kernel/uaccess-buffer.c:62:31: sparse: got struct spinlock [noderef] __rcu *
kernel/uaccess-buffer.c:65:33: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected struct spinlock [usertype] *lock @@ got struct spinlock [noderef] __rcu * @@
kernel/uaccess-buffer.c:65:33: sparse: expected struct spinlock [usertype] *lock
kernel/uaccess-buffer.c:65:33: sparse: got struct spinlock [noderef] __rcu *
>> kernel/uaccess-buffer.c:83:13: sparse: sparse: Using plain integer as NULL pointer
vim +62 kernel/uaccess-buffer.c
b3442207580a7a Peter Collingbourne 2021-12-07 59
b3442207580a7a Peter Collingbourne 2021-12-07 60 void __uaccess_buffer_post_exit_loop(void)
b3442207580a7a Peter Collingbourne 2021-12-07 61 {
b3442207580a7a Peter Collingbourne 2021-12-07 @62 spin_lock_irq(¤t->sighand->siglock);
b3442207580a7a Peter Collingbourne 2021-12-07 63 current->blocked = current->real_blocked;
b3442207580a7a Peter Collingbourne 2021-12-07 64 recalc_sigpending();
b3442207580a7a Peter Collingbourne 2021-12-07 65 spin_unlock_irq(¤t->sighand->siglock);
b3442207580a7a Peter Collingbourne 2021-12-07 66 }
b3442207580a7a Peter Collingbourne 2021-12-07 67
b3442207580a7a Peter Collingbourne 2021-12-07 68 void uaccess_buffer_free(struct task_struct *tsk)
b3442207580a7a Peter Collingbourne 2021-12-07 69 {
b3442207580a7a Peter Collingbourne 2021-12-07 70 struct uaccess_buffer_info *buf = &tsk->uaccess_buffer;
b3442207580a7a Peter Collingbourne 2021-12-07 71
b3442207580a7a Peter Collingbourne 2021-12-07 72 kfree(buf->kbegin);
b3442207580a7a Peter Collingbourne 2021-12-07 73 clear_syscall_work(UACCESS_BUFFER_EXIT);
b3442207580a7a Peter Collingbourne 2021-12-07 74 buf->kbegin = buf->kcur = buf->kend = NULL;
b3442207580a7a Peter Collingbourne 2021-12-07 75 }
b3442207580a7a Peter Collingbourne 2021-12-07 76
b3442207580a7a Peter Collingbourne 2021-12-07 77 void __uaccess_buffer_syscall_entry(void)
b3442207580a7a Peter Collingbourne 2021-12-07 78 {
b3442207580a7a Peter Collingbourne 2021-12-07 79 struct uaccess_buffer_info *buf = ¤t->uaccess_buffer;
b3442207580a7a Peter Collingbourne 2021-12-07 80 struct uaccess_descriptor desc;
b3442207580a7a Peter Collingbourne 2021-12-07 81
b3442207580a7a Peter Collingbourne 2021-12-07 82 if (get_user(buf->desc_ptr, buf->desc_ptr_ptr) || !buf->desc_ptr ||
b3442207580a7a Peter Collingbourne 2021-12-07 @83 put_user(0, buf->desc_ptr_ptr) ||
b3442207580a7a Peter Collingbourne 2021-12-07 84 copy_from_user(&desc, buf->desc_ptr, sizeof(desc)))
b3442207580a7a Peter Collingbourne 2021-12-07 85 return;
b3442207580a7a Peter Collingbourne 2021-12-07 86
b3442207580a7a Peter Collingbourne 2021-12-07 87 if (desc.size > 1024)
b3442207580a7a Peter Collingbourne 2021-12-07 88 desc.size = 1024;
b3442207580a7a Peter Collingbourne 2021-12-07 89
b3442207580a7a Peter Collingbourne 2021-12-07 90 if (buf->kend - buf->kbegin != desc.size)
b3442207580a7a Peter Collingbourne 2021-12-07 91 buf->kbegin =
b3442207580a7a Peter Collingbourne 2021-12-07 92 krealloc_array(buf->kbegin, desc.size,
b3442207580a7a Peter Collingbourne 2021-12-07 93 sizeof(struct uaccess_buffer_entry),
b3442207580a7a Peter Collingbourne 2021-12-07 94 GFP_KERNEL);
b3442207580a7a Peter Collingbourne 2021-12-07 95 if (!buf->kbegin)
b3442207580a7a Peter Collingbourne 2021-12-07 96 return;
b3442207580a7a Peter Collingbourne 2021-12-07 97
b3442207580a7a Peter Collingbourne 2021-12-07 98 set_syscall_work(UACCESS_BUFFER_EXIT);
b3442207580a7a Peter Collingbourne 2021-12-07 99 buf->kcur = buf->kbegin;
b3442207580a7a Peter Collingbourne 2021-12-07 100 buf->kend = buf->kbegin + desc.size;
b3442207580a7a Peter Collingbourne 2021-12-07 101 buf->ubegin =
b3442207580a7a Peter Collingbourne 2021-12-07 102 (struct uaccess_buffer_entry __user *)(unsigned long)desc.addr;
b3442207580a7a Peter Collingbourne 2021-12-07 103 }
b3442207580a7a Peter Collingbourne 2021-12-07 104
:::::: The code at line 62 was first introduced by commit
:::::: b3442207580a7ad112ed80ebff4f516282979c3b uaccess-buffer: add core code
:::::: TO: Peter Collingbourne <pcc@google.com>
:::::: CC: Marco Elver <elver@google.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2021-12-10 22:59 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-09 21:24 [melver:review/uaccess-logging 4/6] kernel/uaccess-buffer.c:62:31: sparse: sparse: incorrect type in argument 1 (different address spaces) kernel test robot
2021-12-10 22:59 kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.