From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============5555777459760535948==" MIME-Version: 1.0 From: kernel test robot To: kbuild-all@lists.01.org Subject: Re: [PATCH v2 3/5] uaccess-buffer: add CONFIG_GENERIC_ENTRY support Date: Wed, 24 Nov 2021 09:45:21 +0800 Message-ID: <202111240910.4cK6zCbO-lkp@intel.com> In-Reply-To: <20211123051658.3195589-4-pcc@google.com> List-Id: --===============5555777459760535948== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Peter, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on tip/sched/core] [also build test WARNING on bpf-next/master bpf/master linus/master v5.16-r= c2] [cannot apply to arm64/for-next/core arm-perf/for-next/perf tip/core/entry = next-20211123] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Peter-Collingbourne/kernel= -introduce-uaccess-logging/20211123-131922 base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git cb0e52b= 7748737b2cf6481fdd9b920ce7e1ebbdf config: i386-randconfig-s002-20211123 (https://download.01.org/0day-ci/arch= ive/20211124/202111240910.4cK6zCbO-lkp(a)intel.com/config.gz) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.4-dirty # https://github.com/0day-ci/linux/commit/7cd6f102201f3ea35eea1b990= f7543e890b7fdbb git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Peter-Collingbourne/kernel-introdu= ce-uaccess-logging/20211123-131922 git checkout 7cd6f102201f3ea35eea1b990f7543e890b7fdbb # save the config file to linux build tree make W=3D1 C=3D1 CF=3D'-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=3D= build_dir ARCH=3Di386 SHELL=3D/bin/bash If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot sparse warnings: (new ones prefixed by >>) kernel/uaccess-buffer.c:32:29: sparse: sparse: Using plain integer as NU= LL pointer kernel/uaccess-buffer.c:72:31: sparse: sparse: incorrect type in argumen= t 1 (different address spaces) @@ expected struct spinlock [usertype] *= lock @@ got struct spinlock [noderef] __rcu * @@ kernel/uaccess-buffer.c:72:31: sparse: expected struct spinlock [use= rtype] *lock kernel/uaccess-buffer.c:72:31: sparse: got struct spinlock [noderef]= __rcu * kernel/uaccess-buffer.c:75:33: sparse: sparse: incorrect type in argumen= t 1 (different address spaces) @@ expected struct spinlock [usertype] *= lock @@ got struct spinlock [noderef] __rcu * @@ kernel/uaccess-buffer.c:75:33: sparse: expected struct spinlock [use= rtype] *lock kernel/uaccess-buffer.c:75:33: sparse: got struct spinlock [noderef]= __rcu * kernel/uaccess-buffer.c:83:29: sparse: sparse: Using plain integer as NU= LL pointer kernel/uaccess-buffer.c:94:13: sparse: sparse: Using plain integer as NU= LL pointer kernel/uaccess-buffer.c:117:22: sparse: sparse: cast removes address spa= ce '__user' of expression kernel/uaccess-buffer.c:119:21: sparse: sparse: Using plain integer as N= ULL pointer >> kernel/uaccess-buffer.c:105:65: sparse: sparse: non size-preserving inte= ger to pointer cast >> kernel/uaccess-buffer.c:117:39: sparse: sparse: non size-preserving poin= ter to integer cast vim +105 kernel/uaccess-buffer.c e050ed271bb000 Peter Collingbourne 2021-11-22 87 = e050ed271bb000 Peter Collingbourne 2021-11-22 88 void __uaccess_buffer_s= yscall_entry(void) e050ed271bb000 Peter Collingbourne 2021-11-22 89 { e050ed271bb000 Peter Collingbourne 2021-11-22 90 struct uaccess_buffer_= info *buf =3D ¤t->uaccess_buffer; e050ed271bb000 Peter Collingbourne 2021-11-22 91 struct uaccess_descrip= tor desc; e050ed271bb000 Peter Collingbourne 2021-11-22 92 = e050ed271bb000 Peter Collingbourne 2021-11-22 93 if (get_user(buf->desc= _ptr, buf->desc_ptr_ptr) || !buf->desc_ptr || e050ed271bb000 Peter Collingbourne 2021-11-22 94 put_user(0, buf->d= esc_ptr_ptr) || e050ed271bb000 Peter Collingbourne 2021-11-22 95 copy_from_user(&de= sc, buf->desc_ptr, sizeof(desc))) e050ed271bb000 Peter Collingbourne 2021-11-22 96 return; e050ed271bb000 Peter Collingbourne 2021-11-22 97 = e050ed271bb000 Peter Collingbourne 2021-11-22 98 if (desc.size > 1024) e050ed271bb000 Peter Collingbourne 2021-11-22 99 desc.size =3D 1024; e050ed271bb000 Peter Collingbourne 2021-11-22 100 = e050ed271bb000 Peter Collingbourne 2021-11-22 101 buf->kbegin =3D kmallo= c_array( e050ed271bb000 Peter Collingbourne 2021-11-22 102 desc.size, sizeof(str= uct uaccess_buffer_entry), GFP_KERNEL); e050ed271bb000 Peter Collingbourne 2021-11-22 103 buf->kcur =3D buf->kbe= gin; e050ed271bb000 Peter Collingbourne 2021-11-22 104 buf->kend =3D buf->kbe= gin + desc.size; e050ed271bb000 Peter Collingbourne 2021-11-22 @105 buf->ubegin =3D (struc= t uaccess_buffer_entry __user *)desc.addr; e050ed271bb000 Peter Collingbourne 2021-11-22 106 } e050ed271bb000 Peter Collingbourne 2021-11-22 107 = e050ed271bb000 Peter Collingbourne 2021-11-22 108 void __uaccess_buffer_s= yscall_exit(void) e050ed271bb000 Peter Collingbourne 2021-11-22 109 { e050ed271bb000 Peter Collingbourne 2021-11-22 110 struct uaccess_buffer_= info *buf =3D ¤t->uaccess_buffer; e050ed271bb000 Peter Collingbourne 2021-11-22 111 u64 num_entries =3D bu= f->kcur - buf->kbegin; e050ed271bb000 Peter Collingbourne 2021-11-22 112 struct uaccess_descrip= tor desc; e050ed271bb000 Peter Collingbourne 2021-11-22 113 = e050ed271bb000 Peter Collingbourne 2021-11-22 114 if (!buf->kcur) e050ed271bb000 Peter Collingbourne 2021-11-22 115 return; e050ed271bb000 Peter Collingbourne 2021-11-22 116 = e050ed271bb000 Peter Collingbourne 2021-11-22 @117 desc.addr =3D (u64)(bu= f->ubegin + num_entries); --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============5555777459760535948==--