From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============2192295318952269275==" MIME-Version: 1.0 From: kernel test robot To: kbuild-all@lists.01.org Subject: [intel-lts:5.10/android-civ 21771/23680] fs/userfaultfd.c:1875:39: warning: passing argument 2 of 'validate_range' makes integer from pointer without a cast Date: Sun, 05 Dec 2021 05:06:11 +0800 Message-ID: <202112050455.AnhWSX7z-lkp@intel.com> List-Id: --===============2192295318952269275== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable tree: https://github.com/intel/linux-intel-lts.git 5.10/android-civ head: 0e493748b235bf61d817dabdad2832ac4e932217 commit: 532f15c329f05070e3d5e8010b555dac1dac8f4b [21771/23680] Merge branch= 'v5.10/yocto/20210902' into android_0902 config: arc-randconfig-r043-20211203 (https://download.01.org/0day-ci/archi= ve/20211205/202112050455.AnhWSX7z-lkp(a)intel.com/config) compiler: arceb-elf-gcc (GCC) 11.2.0 reproduce (this is a W=3D1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/= make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/intel/linux-intel-lts/commit/532f15c329f05070e= 3d5e8010b555dac1dac8f4b git remote add intel-lts https://github.com/intel/linux-intel-lts.g= it git fetch --no-tags intel-lts 5.10/android-civ git checkout 532f15c329f05070e3d5e8010b555dac1dac8f4b # save the config file to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=3D$HOME/0day COMPILER=3Dgcc-11.2.0 make.cross= O=3Dbuild_dir ARCH=3Darc SHELL=3D/bin/bash If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All warnings (new ones prefixed by >>): fs/userfaultfd.c: In function 'userfaultfd_continue': >> fs/userfaultfd.c:1875:39: warning: passing argument 2 of 'validate_range= ' makes integer from pointer without a cast [-Wint-conversion] 1875 | ret =3D validate_range(ctx->mm, &uffdio_continue.range.s= tart, | ^~~~~~~~~~~~~~~~~~~~~~~~~~= ~~ | | | __u64 * {aka long long uns= igned int *} fs/userfaultfd.c:1245:49: note: expected '__u64' {aka 'long long unsigne= d int'} but argument is of type '__u64 *' {aka 'long long unsigned int *'} 1245 | __u64 start, __u64 len) | ~~~~~~^~~~~ vim +/validate_range +1875 fs/userfaultfd.c 63b2d4174c4ad1 Andrea Arcangeli 2020-04-06 1855 = 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1856 static int userfaultfd_co= ntinue(struct userfaultfd_ctx *ctx, unsigned long arg) 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1857 { 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1858 __s64 ret; 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1859 struct uffdio_continue u= ffdio_continue; 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1860 struct uffdio_continue _= _user *user_uffdio_continue; 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1861 struct userfaultfd_wake_= range range; 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1862 = 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1863 user_uffdio_continue =3D= (struct uffdio_continue __user *)arg; 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1864 = 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1865 ret =3D -EAGAIN; 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1866 if (READ_ONCE(ctx->mmap_= changing)) 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1867 goto out; 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1868 = 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1869 ret =3D -EFAULT; 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1870 if (copy_from_user(&uffd= io_continue, user_uffdio_continue, 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1871 /* don't copy the o= utput fields */ 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1872 sizeof(uffdio_conti= nue) - (sizeof(__s64)))) 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1873 goto out; 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1874 = 4a5cf92412ab1a Axel Rasmussen 2021-03-18 @1875 ret =3D validate_range(c= tx->mm, &uffdio_continue.range.start, 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1876 uffdio_continue.r= ange.len); 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1877 if (ret) 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1878 goto out; 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1879 = 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1880 ret =3D -EINVAL; 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1881 /* double check for wrap= around just in case. */ 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1882 if (uffdio_continue.rang= e.start + uffdio_continue.range.len <=3D 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1883 uffdio_continue.rang= e.start) { 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1884 goto out; 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1885 } 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1886 if (uffdio_continue.mode= & ~UFFDIO_CONTINUE_MODE_DONTWAKE) 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1887 goto out; 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1888 = 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1889 if (mmget_not_zero(ctx->= mm)) { 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1890 ret =3D mcopy_continue(= ctx->mm, uffdio_continue.range.start, 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1891 uffdio_continue.= range.len, 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1892 &ctx->mmap_chang= ing); 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1893 mmput(ctx->mm); 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1894 } else { 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1895 return -ESRCH; 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1896 } 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1897 = 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1898 if (unlikely(put_user(re= t, &user_uffdio_continue->mapped))) 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1899 return -EFAULT; 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1900 if (ret < 0) 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1901 goto out; 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1902 = 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1903 /* len =3D=3D 0 would wa= ke all */ 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1904 BUG_ON(!ret); 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1905 range.len =3D ret; 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1906 if (!(uffdio_continue.mo= de & UFFDIO_CONTINUE_MODE_DONTWAKE)) { 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1907 range.start =3D uffdio_= continue.range.start; 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1908 wake_userfault(ctx, &ra= nge); 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1909 } 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1910 ret =3D range.len =3D=3D= uffdio_continue.range.len ? 0 : -EAGAIN; 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1911 = 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1912 out: 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1913 return ret; 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1914 } 4a5cf92412ab1a Axel Rasmussen 2021-03-18 1915 = :::::: The code@line 1875 was first introduced by commit :::::: 4a5cf92412ab1a3fdf6ad24d901f5e14fd56d4fa BACKPORT: FROMGIT: userfaul= tfd: add UFFDIO_CONTINUE ioctl :::::: TO: Axel Rasmussen :::::: CC: Todd Kjos --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============2192295318952269275==--