On Thu, May 04, 2023 at 11:16:20PM +0800, kernel test robot wrote: > tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master > head: 145e5cddfe8b4bf607510b2dcf630d95f4db420f > commit: 848839c209785a44524fdafa04b0464cd453da1f [14552/14714] mm-gup-disallow-foll_longterm-gup-fast-writing-to-file-backed-mappings-fix > config: mips-maltaup_xpa_defconfig (https://download.01.org/0day-ci/archive/20230504/202305042329.Gyk53keD-lkp@xxxxxxxxx/config) > compiler: mipsel-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://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=848839c209785a44524fdafa04b0464cd453da1f > git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git > git fetch --no-tags linux-next master > git checkout 848839c209785a44524fdafa04b0464cd453da1f > # 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=mips olddefconfig > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=mips SHELL=/bin/bash > > If you fix the issue, kindly add following tag where applicable > | Reported-by: kernel test robot <lkp@xxxxxxxxx> > | Link: https://lore.kernel.org/oe-kbuild-all/202305042329.Gyk53keD-lkp@xxxxxxxxx/ > > All errors (new ones prefixed by >>): > > mm/gup.c: In function 'gup_huge_pmd': > >> mm/gup.c:2813:14: error: implicit declaration of function 'folio_fast_pin_allowed'; did you mean 'folio_test_pinned'? [-Werror=implicit-function-declaration] > 2813 | if (!folio_fast_pin_allowed(folio, flags)) { > | ^~~~~~~~~~~~~~~~~~~~~~ > | folio_test_pinned > cc1: some warnings being treated as errors > > > vim +2813 mm/gup.c > > cbd34da7dc9afd Christoph Hellwig 2019-07-11 2782 > 2667f50e8b8145 Steve Capper 2014-10-09 2783 static int gup_huge_pmd(pmd_t orig, pmd_t *pmdp, unsigned long addr, > 0cd22afdcea21f John Hubbard 2019-10-18 2784 unsigned long end, unsigned int flags, > 0cd22afdcea21f John Hubbard 2019-10-18 2785 struct page **pages, int *nr) > 2667f50e8b8145 Steve Capper 2014-10-09 2786 { > 667ed1f7bb3b1c Matthew Wilcox (Oracle 2021-12-22 2787) struct page *page; > 667ed1f7bb3b1c Matthew Wilcox (Oracle 2021-12-22 2788) struct folio *folio; > 2667f50e8b8145 Steve Capper 2014-10-09 2789 int refs; > 2667f50e8b8145 Steve Capper 2014-10-09 2790 > b798bec4741bdd Ira Weiny 2019-05-13 2791 if (!pmd_access_permitted(orig, flags & FOLL_WRITE)) > 2667f50e8b8145 Steve Capper 2014-10-09 2792 return 0; > 2667f50e8b8145 Steve Capper 2014-10-09 2793 > 7af75561e17132 Ira Weiny 2019-05-13 2794 if (pmd_devmap(orig)) { > 7af75561e17132 Ira Weiny 2019-05-13 2795 if (unlikely(flags & FOLL_LONGTERM)) > 7af75561e17132 Ira Weiny 2019-05-13 2796 return 0; > 86dfbed49f88fd John Hubbard 2020-04-01 2797 return __gup_device_huge_pmd(orig, pmdp, addr, end, flags, > 86dfbed49f88fd John Hubbard 2020-04-01 2798 pages, nr); > 7af75561e17132 Ira Weiny 2019-05-13 2799 } > b59f65fa076a8e Kirill A. Shutemov 2017-03-16 2800 > c228afb11ac693 Matthew Wilcox (Oracle 2022-01-07 2801) page = nth_page(pmd_page(orig), (addr & ~PMD_MASK) >> PAGE_SHIFT); > a43e982082c24c John Hubbard 2020-01-30 2802 refs = record_subpages(page, addr, end, pages + *nr); > 2667f50e8b8145 Steve Capper 2014-10-09 2803 > 667ed1f7bb3b1c Matthew Wilcox (Oracle 2021-12-22 2804) folio = try_grab_folio(page, refs, flags); > 667ed1f7bb3b1c Matthew Wilcox (Oracle 2021-12-22 2805) if (!folio) > 2667f50e8b8145 Steve Capper 2014-10-09 2806 return 0; > 2667f50e8b8145 Steve Capper 2014-10-09 2807 > 2667f50e8b8145 Steve Capper 2014-10-09 2808 if (unlikely(pmd_val(orig) != pmd_val(*pmdp))) { > 667ed1f7bb3b1c Matthew Wilcox (Oracle 2021-12-22 2809) gup_put_folio(folio, refs, flags); > 2667f50e8b8145 Steve Capper 2014-10-09 2810 return 0; > 2667f50e8b8145 Steve Capper 2014-10-09 2811 } > 2667f50e8b8145 Steve Capper 2014-10-09 2812 > 369dd755eb2530 Lorenzo Stoakes 2023-05-02 @2813 if (!folio_fast_pin_allowed(folio, flags)) { > 369dd755eb2530 Lorenzo Stoakes 2023-05-02 2814 gup_put_folio(folio, refs, flags); > 369dd755eb2530 Lorenzo Stoakes 2023-05-02 2815 return 0; > 369dd755eb2530 Lorenzo Stoakes 2023-05-02 2816 } > 84209e87c6963f David Hildenbrand 2022-11-16 2817 if (!pmd_write(orig) && gup_must_unshare(NULL, flags, &folio->page)) { > a7f226604170ac David Hildenbrand 2022-05-09 2818 gup_put_folio(folio, refs, flags); > a7f226604170ac David Hildenbrand 2022-05-09 2819 return 0; > a7f226604170ac David Hildenbrand 2022-05-09 2820 } > a7f226604170ac David Hildenbrand 2022-05-09 2821 > a43e982082c24c John Hubbard 2020-01-30 2822 *nr += refs; > 667ed1f7bb3b1c Matthew Wilcox (Oracle 2021-12-22 2823) folio_set_referenced(folio); > 2667f50e8b8145 Steve Capper 2014-10-09 2824 return 1; > 2667f50e8b8145 Steve Capper 2014-10-09 2825 } > 2667f50e8b8145 Steve Capper 2014-10-09 2826 > > :::::: The code at line 2813 was first introduced by commit > :::::: 369dd755eb25309495d67de7cd85b77e0bc0f948 mm/gup: disallow FOLL_LONGTERM GUP-fast writing to file-backed mappings > > :::::: TO: Lorenzo Stoakes <lstoakes@xxxxxxxxx> > :::::: CC: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > > -- > 0-DAY CI Kernel Test Service > https://github.com/intel/lkp-tests Yeah I think Andrew's fix didn't quite cover all arches, I'll fix this up in a v9. Just needs some juggling around with #ifdef's :)