Re: [PATCH v7 17/24] mm/gup: track FOLL_PIN pages

From: kbuild test robot
Date: Sat Nov 30 2019 - 14:00:05 EST


Hi John,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v5.4]
[cannot apply to mmotm/master rdma/for-next linuxtv-media/master next-20191129]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url: https://github.com/0day-ci/linux/commits/John-Hubbard/mm-gup-track-dma-pinned-pages-FOLL_PIN/20191122-092349
base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git c74386d50fbaf4a54fd3fe560f1abc709c0cff4b
config: sh-allmodconfig (attached as .config)
compiler: sh4-linux-gcc (GCC) 7.4.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=7.4.0 make.cross ARCH=sh

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

mm/gup.c: In function 'pin_user_pages_remote':
>> mm/gup.c:2684:9: error: implicit declaration of function '__get_user_pages_remote'; did you mean 'get_user_pages_remote'? [-Werror=implicit-function-declaration]
return __get_user_pages_remote(tsk, mm, start, nr_pages, gup_flags,
^~~~~~~~~~~~~~~~~~~~~~~
get_user_pages_remote
cc1: some warnings being treated as errors

vim +2684 mm/gup.c

2660
2661 /**
2662 * pin_user_pages_remote() - pin pages of a remote process (task != current)
2663 *
2664 * Nearly the same as get_user_pages_remote(), except that FOLL_PIN is set. See
2665 * get_user_pages_remote() for documentation on the function arguments, because
2666 * the arguments here are identical.
2667 *
2668 * FOLL_PIN means that the pages must be released via unpin_user_page(). Please
2669 * see Documentation/vm/pin_user_pages.rst for details.
2670 *
2671 * This is intended for Case 1 (DIO) in Documentation/vm/pin_user_pages.rst. It
2672 * is NOT intended for Case 2 (RDMA: long-term pins).
2673 */
2674 long pin_user_pages_remote(struct task_struct *tsk, struct mm_struct *mm,
2675 unsigned long start, unsigned long nr_pages,
2676 unsigned int gup_flags, struct page **pages,
2677 struct vm_area_struct **vmas, int *locked)
2678 {
2679 /* FOLL_GET and FOLL_PIN are mutually exclusive. */
2680 if (WARN_ON_ONCE(gup_flags & FOLL_GET))
2681 return -EINVAL;
2682
2683 gup_flags |= FOLL_PIN;
> 2684 return __get_user_pages_remote(tsk, mm, start, nr_pages, gup_flags,
2685 pages, vmas, locked);
2686 }
2687 EXPORT_SYMBOL(pin_user_pages_remote);
2688

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx Intel Corporation

Attachment: .config.gz
Description: application/gzip