tree:
https://git.kernel.org/pub/scm/linux/kernel/git/mel/linux.git mm-bulk-rebase-v5r7
head: 4421e102e22b8958c4a06e33d5a628f1d0b6110e
commit: e0184c95d87dcd562f509145ada6da38e5b5f252 [13/15] SUNRPC: Refresh rq_pages using a
bulk page allocator
config: m68k-allmodconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 9.3.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://git.kernel.org/pub/scm/linux/kernel/git/mel/linux.git/commit/?id=...
git remote add mel
https://git.kernel.org/pub/scm/linux/kernel/git/mel/linux.git
git fetch --no-tags mel mm-bulk-rebase-v5r7
git checkout e0184c95d87dcd562f509145ada6da38e5b5f252
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from include/linux/kernel.h:10,
from include/linux/list.h:9,
from include/linux/rculist.h:10,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from net/sunrpc/svc_xprt.c:8:
include/linux/scatterlist.h: In function 'sg_set_buf':
arch/m68k/include/asm/page_mm.h:174:49: warning: ordered comparison of pointer with
null pointer [-Wextra]
174 | #define virt_addr_valid(kaddr) ((void *)(kaddr) >= (void *)PAGE_OFFSET
&& (void *)(kaddr) < high_memory)
| ^~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
include/linux/scatterlist.h:137:2: note: in expansion of macro 'BUG_ON'
137 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~
include/linux/scatterlist.h:137:10: note: in expansion of macro
'virt_addr_valid'
137 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~~~~~~~~~~
net/sunrpc/svc_xprt.c: In function 'svc_alloc_arg':
> net/sunrpc/svc_xprt.c:666:13: error: implicit declaration of
function 'alloc_pages_bulk'; did you mean 'alloc_pages_node'?
[-Werror=implicit-function-declaration]
666 | needed -=
alloc_pages_bulk(GFP_KERNEL, needed, &list);
| ^~~~~~~~~~~~~~~~
| alloc_pages_node
cc1: some warnings being treated as errors
vim +666 net/sunrpc/svc_xprt.c
641
642 static int svc_alloc_arg(struct svc_rqst *rqstp)
643 {
644 struct svc_serv *serv = rqstp->rq_server;
645 unsigned long needed;
646 struct xdr_buf *arg;
647 struct page *page;
648 LIST_HEAD(list);
649 int pages;
650 int i;
651
652 pages = (serv->sv_max_mesg + 2 * PAGE_SIZE) >> PAGE_SHIFT;
653 if (pages > RPCSVC_MAXPAGES) {
654 pr_warn_once("svc: warning: pages=%u > RPCSVC_MAXPAGES=%lu\n",
655 pages, RPCSVC_MAXPAGES);
656 /* use as many pages as possible */
657 pages = RPCSVC_MAXPAGES;
658 }
659
660 for (needed = 0, i = 0; i < pages ; i++) {
661 if (!rqstp->rq_pages[i])
662 needed++;
663 }
664 i = 0;
665 while (needed) {
666 needed -= alloc_pages_bulk(GFP_KERNEL, needed, &list);
667 for (; i < pages; i++) {
668 if (rqstp->rq_pages[i])
669 continue;
670 page = list_first_entry_or_null(&list, struct page, lru);
671 if (likely(page)) {
672 list_del(&page->lru);
673 rqstp->rq_pages[i] = page;
674 continue;
675 }
676 set_current_state(TASK_INTERRUPTIBLE);
677 if (signalled() || kthread_should_stop()) {
678 set_current_state(TASK_RUNNING);
679 return -EINTR;
680 }
681 schedule_timeout(msecs_to_jiffies(500));
682 break;
683 }
684 }
685 rqstp->rq_page_end = &rqstp->rq_pages[pages];
686 rqstp->rq_pages[pages] = NULL; /* this might be seen in nfsd_splice_actor() */
687
688 /* Make arg->head point to first page and arg->pages point to rest */
689 arg = &rqstp->rq_arg;
690 arg->head[0].iov_base = page_address(rqstp->rq_pages[0]);
691 arg->head[0].iov_len = PAGE_SIZE;
692 arg->pages = rqstp->rq_pages + 1;
693 arg->page_base = 0;
694 /* save at least one page for response */
695 arg->page_len = (pages-2)*PAGE_SIZE;
696 arg->len = (pages-1)*PAGE_SIZE;
697 arg->tail[0].iov_len = 0;
698 return 0;
699 }
700
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org