From: Xiubo Li <xiubli@redhat.com>
To: kernel test robot <lkp@intel.com>, David Howells <dhowells@redhat.com>
Cc: llvm@lists.linux.dev, kbuild-all@lists.01.org,
ceph-devel@vger.kernel.org, Jeff Layton <jlayton@kernel.org>
Subject: Re: [ceph-client:testing 7/9] lib/iov_iter.c:1464:9: warning: comparison of distinct pointer types ('typeof (nr * ((1UL) << (12)) - offset) *' (aka 'unsigned long *') and 'typeof (maxsize) *' (aka 'unsigned int *'))
Date: Sun, 12 Jun 2022 10:26:14 +0800 [thread overview]
Message-ID: <a1a3edde-7b44-eb09-6695-e7c57356b96e@redhat.com> (raw)
In-Reply-To: <202206112305.4DdsErK8-lkp@intel.com>
Thanks for the warning report.
These was introduced by one DO NOT MEGE patch, which should go into
mainline via David Howells's tree IMO.
-- Xiubo
On 6/11/22 11:10 PM, kernel test robot wrote:
> tree: https://github.com/ceph/ceph-client.git testing
> head: 7b864d005b1f7f6a144420e180891b6401078407
> commit: 3adeefbfca0fd57cc943b7ec0330385f48041f0c [7/9] [DO NOT MERGE] iov_iter: Fix iter_xarray_get_pages{,_alloc}()
> config: riscv-randconfig-r034-20220611 (https://download.01.org/0day-ci/archive/20220611/202206112305.4DdsErK8-lkp@intel.com/config)
> compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project ff4abe755279a3a47cc416ef80dbc900d9a98a19)
> reproduce (this is a W=1 build):
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # install riscv cross compiling tool for clang build
> # apt-get install binutils-riscv-linux-gnu
> # https://github.com/ceph/ceph-client/commit/3adeefbfca0fd57cc943b7ec0330385f48041f0c
> git remote add ceph-client https://github.com/ceph/ceph-client.git
> git fetch --no-tags ceph-client testing
> git checkout 3adeefbfca0fd57cc943b7ec0330385f48041f0c
> # save the config file
> mkdir build_dir && cp config build_dir/.config
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash
>
> If you fix the issue, kindly add following tag where applicable
> Reported-by: kernel test robot <lkp@intel.com>
>
> All warnings (new ones prefixed by >>):
>
>>> lib/iov_iter.c:1464:9: warning: comparison of distinct pointer types ('typeof (nr * ((1UL) << (12)) - offset) *' (aka 'unsigned long *') and 'typeof (maxsize) *' (aka 'unsigned int *')) [-Wcompare-distinct-pointer-types]
> return min(nr * PAGE_SIZE - offset, maxsize);
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> include/linux/minmax.h:45:19: note: expanded from macro 'min'
> #define min(x, y) __careful_cmp(x, y, <)
> ^~~~~~~~~~~~~~~~~~~~~~
> include/linux/minmax.h:36:24: note: expanded from macro '__careful_cmp'
> __builtin_choose_expr(__safe_cmp(x, y), \
> ^~~~~~~~~~~~~~~~
> include/linux/minmax.h:26:4: note: expanded from macro '__safe_cmp'
> (__typecheck(x, y) && __no_side_effects(x, y))
> ^~~~~~~~~~~~~~~~~
> include/linux/minmax.h:20:28: note: expanded from macro '__typecheck'
> (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
> ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
> lib/iov_iter.c:1628:9: warning: comparison of distinct pointer types ('typeof (nr * ((1UL) << (12)) - offset) *' (aka 'unsigned long *') and 'typeof (maxsize) *' (aka 'unsigned int *')) [-Wcompare-distinct-pointer-types]
> return min(nr * PAGE_SIZE - offset, maxsize);
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> include/linux/minmax.h:45:19: note: expanded from macro 'min'
> #define min(x, y) __careful_cmp(x, y, <)
> ^~~~~~~~~~~~~~~~~~~~~~
> include/linux/minmax.h:36:24: note: expanded from macro '__careful_cmp'
> __builtin_choose_expr(__safe_cmp(x, y), \
> ^~~~~~~~~~~~~~~~
> include/linux/minmax.h:26:4: note: expanded from macro '__safe_cmp'
> (__typecheck(x, y) && __no_side_effects(x, y))
> ^~~~~~~~~~~~~~~~~
> include/linux/minmax.h:20:28: note: expanded from macro '__typecheck'
> (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
> ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
> 2 warnings generated.
>
>
> vim +1464 lib/iov_iter.c
>
> 1430
> 1431 static ssize_t iter_xarray_get_pages(struct iov_iter *i,
> 1432 struct page **pages, size_t maxsize,
> 1433 unsigned maxpages, size_t *_start_offset)
> 1434 {
> 1435 unsigned nr, offset;
> 1436 pgoff_t index, count;
> 1437 size_t size = maxsize;
> 1438 loff_t pos;
> 1439
> 1440 if (!size || !maxpages)
> 1441 return 0;
> 1442
> 1443 pos = i->xarray_start + i->iov_offset;
> 1444 index = pos >> PAGE_SHIFT;
> 1445 offset = pos & ~PAGE_MASK;
> 1446 *_start_offset = offset;
> 1447
> 1448 count = 1;
> 1449 if (size > PAGE_SIZE - offset) {
> 1450 size -= PAGE_SIZE - offset;
> 1451 count += size >> PAGE_SHIFT;
> 1452 size &= ~PAGE_MASK;
> 1453 if (size)
> 1454 count++;
> 1455 }
> 1456
> 1457 if (count > maxpages)
> 1458 count = maxpages;
> 1459
> 1460 nr = iter_xarray_populate_pages(pages, i->xarray, index, count);
> 1461 if (nr == 0)
> 1462 return 0;
> 1463
>> 1464 return min(nr * PAGE_SIZE - offset, maxsize);
> 1465 }
> 1466
>
WARNING: multiple messages have this Message-ID (diff)
From: Xiubo Li <xiubli@redhat.com>
To: kbuild-all@lists.01.org
Subject: Re: [ceph-client:testing 7/9] lib/iov_iter.c:1464:9: warning: comparison of distinct pointer types ('typeof (nr * ((1UL) << (12)) - offset) *' (aka 'unsigned long *') and 'typeof (maxsize) *' (aka 'unsigned int *'))
Date: Sun, 12 Jun 2022 10:26:14 +0800 [thread overview]
Message-ID: <a1a3edde-7b44-eb09-6695-e7c57356b96e@redhat.com> (raw)
In-Reply-To: <202206112305.4DdsErK8-lkp@intel.com>
[-- Attachment #1: Type: text/plain, Size: 5085 bytes --]
Thanks for the warning report.
These was introduced by one DO NOT MEGE patch, which should go into
mainline via David Howells's tree IMO.
-- Xiubo
On 6/11/22 11:10 PM, kernel test robot wrote:
> tree: https://github.com/ceph/ceph-client.git testing
> head: 7b864d005b1f7f6a144420e180891b6401078407
> commit: 3adeefbfca0fd57cc943b7ec0330385f48041f0c [7/9] [DO NOT MERGE] iov_iter: Fix iter_xarray_get_pages{,_alloc}()
> config: riscv-randconfig-r034-20220611 (https://download.01.org/0day-ci/archive/20220611/202206112305.4DdsErK8-lkp(a)intel.com/config)
> compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project ff4abe755279a3a47cc416ef80dbc900d9a98a19)
> reproduce (this is a W=1 build):
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # install riscv cross compiling tool for clang build
> # apt-get install binutils-riscv-linux-gnu
> # https://github.com/ceph/ceph-client/commit/3adeefbfca0fd57cc943b7ec0330385f48041f0c
> git remote add ceph-client https://github.com/ceph/ceph-client.git
> git fetch --no-tags ceph-client testing
> git checkout 3adeefbfca0fd57cc943b7ec0330385f48041f0c
> # save the config file
> mkdir build_dir && cp config build_dir/.config
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash
>
> If you fix the issue, kindly add following tag where applicable
> Reported-by: kernel test robot <lkp@intel.com>
>
> All warnings (new ones prefixed by >>):
>
>>> lib/iov_iter.c:1464:9: warning: comparison of distinct pointer types ('typeof (nr * ((1UL) << (12)) - offset) *' (aka 'unsigned long *') and 'typeof (maxsize) *' (aka 'unsigned int *')) [-Wcompare-distinct-pointer-types]
> return min(nr * PAGE_SIZE - offset, maxsize);
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> include/linux/minmax.h:45:19: note: expanded from macro 'min'
> #define min(x, y) __careful_cmp(x, y, <)
> ^~~~~~~~~~~~~~~~~~~~~~
> include/linux/minmax.h:36:24: note: expanded from macro '__careful_cmp'
> __builtin_choose_expr(__safe_cmp(x, y), \
> ^~~~~~~~~~~~~~~~
> include/linux/minmax.h:26:4: note: expanded from macro '__safe_cmp'
> (__typecheck(x, y) && __no_side_effects(x, y))
> ^~~~~~~~~~~~~~~~~
> include/linux/minmax.h:20:28: note: expanded from macro '__typecheck'
> (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
> ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
> lib/iov_iter.c:1628:9: warning: comparison of distinct pointer types ('typeof (nr * ((1UL) << (12)) - offset) *' (aka 'unsigned long *') and 'typeof (maxsize) *' (aka 'unsigned int *')) [-Wcompare-distinct-pointer-types]
> return min(nr * PAGE_SIZE - offset, maxsize);
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> include/linux/minmax.h:45:19: note: expanded from macro 'min'
> #define min(x, y) __careful_cmp(x, y, <)
> ^~~~~~~~~~~~~~~~~~~~~~
> include/linux/minmax.h:36:24: note: expanded from macro '__careful_cmp'
> __builtin_choose_expr(__safe_cmp(x, y), \
> ^~~~~~~~~~~~~~~~
> include/linux/minmax.h:26:4: note: expanded from macro '__safe_cmp'
> (__typecheck(x, y) && __no_side_effects(x, y))
> ^~~~~~~~~~~~~~~~~
> include/linux/minmax.h:20:28: note: expanded from macro '__typecheck'
> (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
> ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~
> 2 warnings generated.
>
>
> vim +1464 lib/iov_iter.c
>
> 1430
> 1431 static ssize_t iter_xarray_get_pages(struct iov_iter *i,
> 1432 struct page **pages, size_t maxsize,
> 1433 unsigned maxpages, size_t *_start_offset)
> 1434 {
> 1435 unsigned nr, offset;
> 1436 pgoff_t index, count;
> 1437 size_t size = maxsize;
> 1438 loff_t pos;
> 1439
> 1440 if (!size || !maxpages)
> 1441 return 0;
> 1442
> 1443 pos = i->xarray_start + i->iov_offset;
> 1444 index = pos >> PAGE_SHIFT;
> 1445 offset = pos & ~PAGE_MASK;
> 1446 *_start_offset = offset;
> 1447
> 1448 count = 1;
> 1449 if (size > PAGE_SIZE - offset) {
> 1450 size -= PAGE_SIZE - offset;
> 1451 count += size >> PAGE_SHIFT;
> 1452 size &= ~PAGE_MASK;
> 1453 if (size)
> 1454 count++;
> 1455 }
> 1456
> 1457 if (count > maxpages)
> 1458 count = maxpages;
> 1459
> 1460 nr = iter_xarray_populate_pages(pages, i->xarray, index, count);
> 1461 if (nr == 0)
> 1462 return 0;
> 1463
>> 1464 return min(nr * PAGE_SIZE - offset, maxsize);
> 1465 }
> 1466
>
next prev parent reply other threads:[~2022-06-12 2:26 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-11 15:10 [ceph-client:testing 7/9] lib/iov_iter.c:1464:9: warning: comparison of distinct pointer types ('typeof (nr * ((1UL) << (12)) - offset) *' (aka 'unsigned long *') and 'typeof (maxsize) *' (aka 'unsigned int *')) kernel test robot
2022-06-12 2:26 ` Xiubo Li [this message]
2022-06-12 2:26 ` Xiubo Li
2022-06-13 7:52 ` David Howells
2022-06-13 7:52 ` David Howells
2022-06-13 10:18 ` Xiubo Li
2022-06-13 10:18 ` Xiubo Li
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a1a3edde-7b44-eb09-6695-e7c57356b96e@redhat.com \
--to=xiubli@redhat.com \
--cc=ceph-devel@vger.kernel.org \
--cc=dhowells@redhat.com \
--cc=jlayton@kernel.org \
--cc=kbuild-all@lists.01.org \
--cc=lkp@intel.com \
--cc=llvm@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.