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

From: Stephen Rothwell
Date: Fri Sep 23 2022 - 03:56:07 EST


Hi all,

After merging the mm tree, today's linux-next build (powerpc
ppc64_defconfig) failed like this:

drivers/base/memory.c: In function 'memory_block_online':
drivers/base/memory.c:186:34: error: 'struct memory_block' has no member named 'nr_hwpoison'
186 | if (atomic_long_read(&mem->nr_hwpoison))
| ^~
drivers/base/memory.c: In function 'remove_memory_block_devices':
drivers/base/memory.c:870:61: error: 'struct memory_block' has no member named 'nr_hwpoison'
870 | clear_hwpoisoned_pages(atomic_long_read(&mem->nr_hwpoison));
| ^~

Caused by commit

69b496f03bb4 ("mm/hwpoison: introduce per-memory_block hwpoison counter")

This build has CONFIG_MEMORY_FAILURE not set.

I have applied the following fix patch for today.

From: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Date: Fri, 23 Sep 2022 17:50:50 +1000
Subject: [PATCH] fix up for "mm/hwpoison: introduce per-memory_block hwpoison counter"

Signed-off-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
---
drivers/base/memory.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/drivers/base/memory.c b/drivers/base/memory.c
index c9bde4c4ffdf..143c63ceb4c3 100644
--- a/drivers/base/memory.c
+++ b/drivers/base/memory.c
@@ -183,8 +183,10 @@ static int memory_block_online(struct memory_block *mem)
struct zone *zone;
int ret;

+#ifdef CONFIG_MEMORY_FAILURE
if (atomic_long_read(&mem->nr_hwpoison))
return -EHWPOISON;
+#endif

zone = zone_for_pfn_range(mem->online_type, mem->nid, mem->group,
start_pfn, nr_pages);
@@ -867,7 +869,9 @@ void remove_memory_block_devices(unsigned long start, unsigned long size)
mem = find_memory_block_by_id(block_id);
if (WARN_ON_ONCE(!mem))
continue;
+#ifdef CONFIG_MEMORY_FAILURE
clear_hwpoisoned_pages(atomic_long_read(&mem->nr_hwpoison));
+#endif
unregister_memory_block_under_nodes(mem);
remove_memory_block(mem);
}
--
2.35.1

--
Cheers,
Stephen Rothwell

Attachment: pgpwFdjvHF38o.pgp
Description: OpenPGP digital signature