linux-next: build failure after merge of the akpm-current tree
Subsystems (3)
Hi all,
After merging the akpm-current tree, today's linux-next build (sparc defconfig) failed like this:
In file included from arch/sparc/include/asm/pgtable_32.h:25:0,
from arch/sparc/include/asm/pgtable.h:7,
from include/linux/pgtable.h:6,
from include/linux/mm.h:33,
from mm/vmalloc.c:12:
mm/vmalloc.c: In function 'vmalloc_to_page':
include/asm-generic/pgtable-nopud.h:51:27: error: implicit declaration of function 'pud_page'; did you mean 'put_page'? [-Werror=implicit-function-declaration]
#define p4d_page(p4d) (pud_page((pud_t){ p4d }))
^
mm/vmalloc.c:643:10: note: in expansion of macro 'p4d_page'
return p4d_page(*p4d) + ((addr & ~P4D_MASK) >> PAGE_SHIFT);
^~~~~~~~
mm/vmalloc.c:643:25: warning: return makes pointer from integer without a cast [-Wint-conversion]
return p4d_page(*p4d) + ((addr & ~P4D_MASK) >> PAGE_SHIFT);
mm/vmalloc.c:651:25: warning: return makes pointer from integer without a cast [-Wint-conversion]
return pud_page(*pud) + ((addr & ~PUD_MASK) >> PAGE_SHIFT);
~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Caused by commit
70d18d470920 ("mm/vmalloc: fix HUGE_VMAP regression by enabling huge pages in vmalloc_to_page")
I have applied the following hack path for today (hopefully someone can come up with something better):
From: Stephen Rothwell <[email protected]>
Date: Thu, 18 Mar 2021 18:32:58 +1100
Subject: [PATCH] hack to make SPARC32 build
--- mm/vmalloc.c | 8 ++++++++ 1 file changed, 8 insertions(+)
mm/vmalloc.c +8 -0
@@ -640,7 +640,11 @@ struct page *vmalloc_to_page(const void *vmalloc_addr)if (p4d_none (*p4d))return NULL ; if (p4d_leaf(*p4d)) +#ifdef CONFIG_SPARC32 +return NULL ; +#else return p4d_page (*p4d) + ((addr & ~P4D_MASK ) >>PAGE_SHIFT ); +#endif if (WARN_ON_ONCE (p4d_bad (*p4d)))return NULL ;
@@ -648,7 +652,11 @@ struct page *vmalloc_to_page(const void *vmalloc_addr)if (pud_none (*pud))return NULL ; if (pud_leaf(*pud)) +#ifdef CONFIG_SPARC32 +return NULL ; +#else return pud_page (*pud) + ((addr & ~PUD_MASK ) >>PAGE_SHIFT ); +#endif if (WARN_ON_ONCE (pud_bad (*pud)))return NULL ;
Signature · 5 lines
2.30.0 -- Cheers, Stephen Rothwell
Hi all,
Quoted 68 lines · On Thu, 18 Mar 2021 20:56:07 +1100 Stephen Rothwell <[email protected]>…
After merging the akpm-current tree, today's linux-next build (sparc defconfig) failed like this:
In file included from
arch/sparc/include/asm/pgtable_32.h:25:0,from arch/sparc/include/asm/pgtable.h:7, from include/linux/pgtable.h:6, from include/linux/mm.h:33, from mm/vmalloc.c:12: mm/vmalloc.c: In function 'vmalloc_to_page': include/asm-generic/pgtable-nopud.h:51:27: error: implicit declaration of function 'pud_page'; did you mean 'put_page'? [-Werror=implicit-function-declaration] #define p4d_page(p4d) (pud_page((pud_t){ p4d })) ^ mm/vmalloc.c:643:10: note: in expansion of macro 'p4d_page' return p4d_page(*p4d) + ((addr & ~P4D_MASK) >> PAGE_SHIFT); ^~~~~~~~ mm/vmalloc.c:643:25: warning: return makes pointer from integer without a cast [-Wint-conversion] return p4d_page(*p4d) + ((addr & ~P4D_MASK) >> PAGE_SHIFT); mm/vmalloc.c:651:25: warning: return makes pointer from integer without a cast [-Wint-conversion] return pud_page(*pud) + ((addr & ~PUD_MASK) >> PAGE_SHIFT); ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Caused by commit
70d18d470920("mm/vmalloc: fixHUGE_VMAPregression by enabling huge pages invmalloc_to_page")I have applied the following hack path for today (hopefully someone can come up with something better):
From: Stephen Rothwell <[email protected]>
Date: Thu, 18 Mar 2021 18:32:58 +1100
Subject: [PATCH] hack to make SPARC32 buildSigned-off-by Stephen Rothwell <[email protected]>--- mm/vmalloc.c | 8 ++++++++ 1 file changed, 8 insertions(+)mm/vmalloc.c +8
-0@@ -640,7 +640,11 @@ struct page *vmalloc_to_page(const void *vmalloc_addr)if (p4d_none (*p4d))return NULL ; if (p4d_leaf(*p4d)) +#ifdef CONFIG_SPARC32 +return NULL ; +#else return p4d_page (*p4d) + ((addr & ~P4D_MASK ) >>PAGE_SHIFT ); +#endif if (WARN_ON_ONCE (p4d_bad (*p4d)))return NULL ;@@ -648,7 +652,11 @@ struct page *vmalloc_to_page(const void *vmalloc_addr)if (pud_none (*pud))return NULL ; if (pud_leaf(*pud)) +#ifdef CONFIG_SPARC32 +return NULL ; +#else return pud_page (*pud) + ((addr & ~PUD_MASK ) >>PAGE_SHIFT ); +#endif if (WARN_ON_ONCE (pud_bad (*pud)))return NULL ;Signature · 1 line
2.30.0
I am still applying this hack.
Signature · 2 lines
Cheers, Stephen Rothwell
Excerpts from Stephen Rothwell's message of March 24, 2021 6:58 am:
Quoted 69 lines
Hi all,
Quoted 66 lines · On Thu, 18 Mar 2021 20:56:07 +1100 Stephen Rothwell <[email protected]>…
After merging the akpm-current tree, today's linux-next build (sparc defconfig) failed like this:
In file included from
arch/sparc/include/asm/pgtable_32.h:25:0,from arch/sparc/include/asm/pgtable.h:7, from include/linux/pgtable.h:6, from include/linux/mm.h:33, from mm/vmalloc.c:12: mm/vmalloc.c: In function 'vmalloc_to_page': include/asm-generic/pgtable-nopud.h:51:27: error: implicit declaration of function 'pud_page'; did you mean 'put_page'? [-Werror=implicit-function-declaration] #define p4d_page(p4d) (pud_page((pud_t){ p4d })) ^ mm/vmalloc.c:643:10: note: in expansion of macro 'p4d_page' return p4d_page(*p4d) + ((addr & ~P4D_MASK) >> PAGE_SHIFT); ^~~~~~~~ mm/vmalloc.c:643:25: warning: return makes pointer from integer without a cast [-Wint-conversion] return p4d_page(*p4d) + ((addr & ~P4D_MASK) >> PAGE_SHIFT); mm/vmalloc.c:651:25: warning: return makes pointer from integer without a cast [-Wint-conversion] return pud_page(*pud) + ((addr & ~PUD_MASK) >> PAGE_SHIFT); ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Caused by commit
70d18d470920("mm/vmalloc: fixHUGE_VMAPregression by enabling huge pages invmalloc_to_page")I have applied the following hack path for today (hopefully someone can come up with something better):
From: Stephen Rothwell <[email protected]>
Date: Thu, 18 Mar 2021 18:32:58 +1100
Subject: [PATCH] hack to make SPARC32 buildSigned-off-by Stephen Rothwell <[email protected]>--- mm/vmalloc.c | 8 ++++++++ 1 file changed, 8 insertions(+)mm/vmalloc.c +8
-0@@ -640,7 +640,11 @@ struct page *vmalloc_to_page(const void *vmalloc_addr)if (p4d_none (*p4d))return NULL ; if (p4d_leaf(*p4d)) +#ifdef CONFIG_SPARC32 +return NULL ; +#else return p4d_page (*p4d) + ((addr & ~P4D_MASK ) >>PAGE_SHIFT ); +#endif if (WARN_ON_ONCE (p4d_bad (*p4d)))return NULL ;@@ -648,7 +652,11 @@ struct page *vmalloc_to_page(const void *vmalloc_addr)if (pud_none (*pud))return NULL ; if (pud_leaf(*pud)) +#ifdef CONFIG_SPARC32 +return NULL ; +#else return pud_page (*pud) + ((addr & ~PUD_MASK ) >>PAGE_SHIFT ); +#endif if (WARN_ON_ONCE (pud_bad (*pud)))return NULL ;
Quoted 4 lines
Quoted 2 lines
Signature · 1 line
2.30.0I am still applying this hack.
Oh I missed your first mail, thanks for the ping. I'll have a look today.
Thanks,
Nick