GNU/Weeb Mailing List <[email protected]>
 help / color / mirror / Atom feed
* [ammarfaizi2-block:dhowells/linux-fs/iov-cifs 2/13] fs/netfs/iterator.c:65:66: sparse: sparse: incorrect type in argument 5 (different base types)
@ 2023-02-01 13:35 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2023-02-01 13:35 UTC (permalink / raw)
  To: David Howells; +Cc: oe-kbuild-all, Ammar Faizi, GNU/Weeb Mailing List

tree:   https://github.com/ammarfaizi2/linux-block dhowells/linux-fs/iov-cifs
head:   418842b957d86e37f2eafde039bb92623962ee19
commit: d6a8d826e443d9da9c2585088abc3be9b7cc66d6 [2/13] netfs: Add a function to extract a UBUF or IOVEC into a BVEC iterator
config: sparc-randconfig-s043-20230129 (https://download.01.org/0day-ci/archive/20230201/[email protected]/config)
compiler: sparc64-linux-gcc (GCC) 12.1.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.4-39-gce1a6720-dirty
        # https://github.com/ammarfaizi2/linux-block/commit/d6a8d826e443d9da9c2585088abc3be9b7cc66d6
        git remote add ammarfaizi2-block https://github.com/ammarfaizi2/linux-block
        git fetch --no-tags ammarfaizi2-block dhowells/linux-fs/iov-cifs
        git checkout d6a8d826e443d9da9c2585088abc3be9b7cc66d6
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=sparc olddefconfig
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=sparc SHELL=/bin/bash fs/netfs/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <[email protected]>

sparse warnings: (new ones prefixed by >>)
>> fs/netfs/iterator.c:65:66: sparse: sparse: incorrect type in argument 5 (different base types) @@     expected restricted iov_iter_extraction_t [usertype] extraction_flags @@     got unsigned int extract_flags @@
   fs/netfs/iterator.c:65:66: sparse:     expected restricted iov_iter_extraction_t [usertype] extraction_flags
   fs/netfs/iterator.c:65:66: sparse:     got unsigned int extract_flags

vim +65 fs/netfs/iterator.c

    13	
    14	/**
    15	 * netfs_extract_user_iter - Extract the pages from a user iterator into a bvec
    16	 * @orig: The original iterator
    17	 * @orig_len: The amount of iterator to copy
    18	 * @new: The iterator to be set up
    19	 * @extract_flags: Flags to qualify the request
    20	 *
    21	 * Extract the page fragments from the given amount of the source iterator and
    22	 * build up a second iterator that refers to all of those bits.  This allows
    23	 * the original iterator to disposed of.
    24	 *
    25	 * @extract_flags can have ITER_ALLOW_P2PDMA set to request peer-to-peer DMA be
    26	 * allowed on the pages extracted.
    27	 *
    28	 * On success, the number of elements in the bvec is returned, the original
    29	 * iterator will have been advanced by the amount extracted.
    30	 *
    31	 * The iov_iter_extract_mode() function should be used to query how cleanup
    32	 * should be performed.
    33	 */
    34	ssize_t netfs_extract_user_iter(struct iov_iter *orig, size_t orig_len,
    35					struct iov_iter *new, unsigned int extract_flags)
    36	{
    37		struct bio_vec *bv = NULL;
    38		struct page **pages;
    39		unsigned int cur_npages;
    40		unsigned int max_pages;
    41		unsigned int npages = 0;
    42		unsigned int i;
    43		ssize_t ret;
    44		size_t count = orig_len, offset, len;
    45		size_t bv_size, pg_size;
    46	
    47		if (WARN_ON_ONCE(!iter_is_ubuf(orig) && !iter_is_iovec(orig)))
    48			return -EIO;
    49	
    50		max_pages = iov_iter_npages(orig, INT_MAX);
    51		bv_size = array_size(max_pages, sizeof(*bv));
    52		bv = kvmalloc(bv_size, GFP_KERNEL);
    53		if (!bv)
    54			return -ENOMEM;
    55	
    56		/* Put the page list at the end of the bvec list storage.  bvec
    57		 * elements are larger than page pointers, so as long as we work
    58		 * 0->last, we should be fine.
    59		 */
    60		pg_size = array_size(max_pages, sizeof(*pages));
    61		pages = (void *)bv + bv_size - pg_size;
    62	
    63		while (count && npages < max_pages) {
    64			ret = iov_iter_extract_pages(orig, &pages, count,
  > 65						     max_pages - npages, extract_flags,

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-02-01 13:36 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-01 13:35 [ammarfaizi2-block:dhowells/linux-fs/iov-cifs 2/13] fs/netfs/iterator.c:65:66: sparse: sparse: incorrect type in argument 5 (different base types) kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox