Subject: Re: linux-next: build failure after merge of the mm-hotfixes tree

From: Stephen Rothwell <[email-masked]>
Date: Wed, 3 Jul 2024 09:22:33 +1000

Hi Andrew,

On Wed, 3 Jul 2024 08:44:40 +1000 Stephen Rothwell <[email-masked]> wrote:
>
> On Mon, 1 Jul 2024 11:15:17 -0700 Yang Shi <[email-masked]> wrote:
> >
> > On 6/30/24 6:01 PM, Stephen Rothwell wrote:  
> > >
> > > On Mon, 1 Jul 2024 10:16:41 +1000 Stephen Rothwell <[email-masked]> wrote:    
> > >> After merging the mm-hotfixes tree, today's linux-next build (powerpc
> > >> ppc64_defconfig) failed like this:
> > >>
> > >> mm/gup.c: In function 'gup_hugepte':
> > >> mm/gup.c:474:25: error: implicit declaration of function 'try_grab_folio_fast'; did you mean 'try_grab_folio'? [-Werror=implicit-function-declaration]
> > >>    474 |                 folio = try_grab_folio_fast(page, refs, flags);
> > >>        |                         ^~~~~~~~~~~~~~~~~~~
> > >>        |                         try_grab_folio
> > >> mm/gup.c:474:23: warning: assignment to 'struct folio *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
> > >>    474 |                 folio = try_grab_folio_fast(page, refs, flags);
> > >>        |                       ^
> > >> mm/gup.c: At top level:
> > >> mm/gup.c:2747:22: error: conflicting types for 'try_grab_folio_fast'; have 'struct folio *(struct page *, int,  unsigned int)'
> > >>   2747 | static struct folio *try_grab_folio_fast(struct page *page, int refs,
> > >>        |                      ^~~~~~~~~~~~~~~~~~~
> > >> mm/gup.c:474:25: note: previous implicit declaration of 'try_grab_folio_fast' with type 'int()'
> > >>    474 |                 folio = try_grab_folio_fast(page, refs, flags);
> > >>        |                         ^~~~~~~~~~~~~~~~~~~
> > >> cc1: some warnings being treated as errors
> > >>
> > >> Caused by commit
> > >>
> > >>    5f408bfe0d13 ("mm: gup: stop abusing try_grab_folio")
> > >>
> > >> I have reverted that commit for today.    
> > > And I also had to revert commit
> > >
> > >    52cca85b0ebf ("mm-gup-introduce-memfd_pin_folios-for-pinning-memfd-folios-fix")
> > >
> > > from the mm-unstable branch of the mm tree.    
> > 
> > The patch attached in this mail should fix the compile error.
> > 
> > https://lore.kernel.org/linux-mm/[email-masked]/  
> 
> It looks like that patch has been applied to the mm tree instead of the
> mm-hotfixes tree - as a fix for commit
> 
>   50ceb37037f3 ("mm: gup: stop abusing try_grab_folio")

So for today, I have applied the following patch to the mm-hotfixes
tree merge and stopped reverting
mm-gup-introduce-memfd_pin_folios-for-pinning-memfd-folios-fix.

From: Stephen Rothwell <[email-masked]>
Date: Wed, 3 Jul 2024 08:52:20 +1000
Subject: [PATCH] fixup for "mm: gup: stop abusing try_grab_folio"

Signed-off-by: Stephen Rothwell <[email-masked]>
---
 mm/gup.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/mm/gup.c b/mm/gup.c
index 12c7b41712f7..5f58c95b3ab9 100644
--- a/mm/gup.c
+++ b/mm/gup.c
@@ -437,6 +437,9 @@ static unsigned long hugepte_addr_end(unsigned long addr, unsigned long end,
 	return (__boundary - 1 < end - 1) ? __boundary : end;
 }
 
+static struct folio *try_grab_folio_fast(struct page *page, int refs,
+					 unsigned int flags);
+
 /*
  * Returns 1 if succeeded, 0 if failed, -EMLINK if unshare needed.
  *
-- 
2.45.2

-- 
Cheers,
Stephen Rothwell