tree: https://github.com/ammarfaizi2/linux-block dhowells/linux-fs/iov-extract head: 924c5c657ea686d6ba5c0cf47561c005befc9484 commit: c9b99998ac4d6709b657adfce1e58c6d8ee6f1c9 [21/32] 9p: Pin pages rather than ref'ing if appropriate config: m68k-allyesconfig compiler: m68k-linux-gcc (GCC) 12.1.0 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 # https://github.com/ammarfaizi2/linux-block/commit/c9b99998ac4d6709b657adfce1e58c6d8ee6f1c9 git remote add ammarfaizi2-block https://github.com/ammarfaizi2/linux-block git fetch --no-tags ammarfaizi2-block dhowells/linux-fs/iov-extract git checkout c9b99998ac4d6709b657adfce1e58c6d8ee6f1c9 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=m68k olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=m68k SHELL=/bin/bash net/9p/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot All warnings (new ones prefixed by >>): net/9p/trans_virtio.c: In function 'p9_get_mapped_pages': >> net/9p/trans_virtio.c:334:56: warning: passing argument 4 of 'iov_iter_extract_pages' makes integer from pointer without a cast [-Wint-conversion] 334 | n = iov_iter_extract_pages(data, pages, count, offs, gup_flags); | ^~~~ | | | size_t * {aka unsigned int *} In file included from include/linux/socket.h:8, from include/uapi/linux/in.h:25, from include/linux/in.h:19, from net/9p/trans_virtio.c:16: include/linux/uio.h:377:61: note: expected 'unsigned int' but argument is of type 'size_t *' {aka 'unsigned int *'} 377 | size_t maxsize, unsigned int maxpages, | ~~~~~~~~~~~~~^~~~~~~~ net/9p/trans_virtio.c:334:13: error: too few arguments to function 'iov_iter_extract_pages' 334 | n = iov_iter_extract_pages(data, pages, count, offs, gup_flags); | ^~~~~~~~~~~~~~~~~~~~~~ include/linux/uio.h:376:9: note: declared here 376 | ssize_t iov_iter_extract_pages(struct iov_iter *i, struct page ***pages, | ^~~~~~~~~~~~~~~~~~~~~~ net/9p/trans_virtio.c: In function 'p9_virtio_zc_request': net/9p/trans_virtio.c:512:25: error: too few arguments to function 'p9_release_pages' 512 | p9_release_pages(in_pages, in_nr_pages); | ^~~~~~~~~~~~~~~~ In file included from net/9p/trans_virtio.c:36: net/9p/trans_common.h:7:6: note: declared here 7 | void p9_release_pages(struct page **pages, int nr_pages, | ^~~~~~~~~~~~~~~~ net/9p/trans_virtio.c:513:25: error: too many arguments to function 'atomic_sub' 513 | atomic_sub(in_nr_pages, &vp_pinned, cleanup_mode); | ^~~~~~~~~~ In file included from include/linux/atomic.h:82, from include/linux/mm_types_task.h:13, from include/linux/mm_types.h:5, from include/linux/uio.h:10: include/linux/atomic/atomic-instrumented.h:121:1: note: declared here 121 | atomic_sub(int i, atomic_t *v) | ^~~~~~~~~~ net/9p/trans_virtio.c:516:25: error: too few arguments to function 'p9_release_pages' 516 | p9_release_pages(out_pages, out_nr_pages); | ^~~~~~~~~~~~~~~~ net/9p/trans_common.h:7:6: note: declared here 7 | void p9_release_pages(struct page **pages, int nr_pages, | ^~~~~~~~~~~~~~~~ net/9p/trans_virtio.c:517:25: error: too many arguments to function 'atomic_sub' 517 | atomic_sub(out_nr_pages, &vp_pinned, cleanup_mode); | ^~~~~~~~~~ include/linux/atomic/atomic-instrumented.h:121:1: note: declared here 121 | atomic_sub(int i, atomic_t *v) | ^~~~~~~~~~ vim +/iov_iter_extract_pages +334 net/9p/trans_virtio.c 307 308 static int p9_get_mapped_pages(struct virtio_chan *chan, 309 struct page ***pages, 310 struct iov_iter *data, 311 int count, 312 size_t *offs, 313 int *cleanup_mode, 314 unsigned int gup_flags) 315 { 316 int nr_pages; 317 int err; 318 int n; 319 320 if (!iov_iter_count(data)) 321 return 0; 322 323 /* 324 * We allow only p9_max_pages pinned. We wait for the 325 * Other zc request to finish here 326 */ 327 if (atomic_read(&vp_pinned) >= chan->p9_max_pages) { 328 err = wait_event_killable(vp_wq, 329 (atomic_read(&vp_pinned) < chan->p9_max_pages)); 330 if (err == -ERESTARTSYS) 331 return err; 332 } 333 > 334 n = iov_iter_extract_pages(data, pages, count, offs, gup_flags); 335 if (n < 0) 336 return n; 337 *cleanup_mode = iov_iter_extract_mode(data, gup_flags); 338 nr_pages = DIV_ROUND_UP(n + *offs, PAGE_SIZE); 339 atomic_add(nr_pages, &vp_pinned); 340 return n; 341 } 342 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests