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

From: Stephen Rothwell <[email-masked]>
Date: Fri, 23 Sep 2022 17:55:54 +1000

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 <[email-masked]>
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 <[email-masked]>
---
 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