All of lore.kernel.org
 help / color / mirror / Atom feed
* [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(&current->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(&current->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 = &current->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(&current->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(&current->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 = &current->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.