linux-next: build failure after merge of the akpm_current tree

From: Stephen Rothwell
Date: Fri Jul 17 2020 - 07:31:34 EST


Hi all,

After merging the akpm tree, today's linux-next build (i386 defconfig)
failed like this:

mm/hugetlb.c:1302:20: error: redefinition of 'destroy_compound_gigantic_page'
1302 | static inline void destroy_compound_gigantic_page(struct hstate *h,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mm/hugetlb.c:1223:13: note: previous definition of 'destroy_compound_gigantic_page' was here
1223 | static void destroy_compound_gigantic_page(struct hstate *h, struct page *page,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Caused by commit

d8d718553f84 ("mm,hwpoison: rework soft offline for in-use pages")

The preprocessor directives look like this:

static void destroy_compound_gigantic_page(struct hstate *h, struct page *page,
#ifdef CONFIG_ARCH_HAS_GIGANTIC_PAGE
#ifdef CONFIG_CONTIG_ALLOC
#else /* !CONFIG_CONTIG_ALLOC */
#endif /* CONFIG_CONTIG_ALLOC */
#else /* !CONFIG_ARCH_HAS_GIGANTIC_PAGE */
static inline void destroy_compound_gigantic_page(struct hstate *h,
#endif

So, for now, I have applied the following hack to get it to build.

From: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Date: Fri, 17 Jul 2020 21:17:37 +1000
Subject: [PATCH] fix up for hugetlb.c code movement

Fuxes: "mm,hwpoison: rework soft offline for in-use pages"
Signed-off-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
---
mm/hugetlb.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index 1fe5f7229b24..589c330df4db 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -1220,6 +1220,7 @@ static inline void ClearPageHugePoisoned(struct page *page)
page[3].mapping = NULL;
}

+#ifdef CONFIG_ARCH_HAS_GIGANTIC_PAGE
static void destroy_compound_gigantic_page(struct hstate *h, struct page *page,
unsigned int order)
{
@@ -1244,7 +1245,6 @@ static void destroy_compound_gigantic_page(struct hstate *h, struct page *page,
__ClearPageHead(page);
}

-#ifdef CONFIG_ARCH_HAS_GIGANTIC_PAGE
static void free_gigantic_page(struct page *page, unsigned int order)
{
/*
--
2.27.0

--
Cheers,
Stephen Rothwell

Attachment: pgpuAvW8rDfdM.pgp
Description: OpenPGP digital signature