[PATCH 1/2] mm/page-flags: Define HWPoison test-and-change helpers unconditionally

From: Kaitao Cheng

Date: Thu Sep 03 2026 - 01:37:27 EST


From: Kaitao Cheng <chengkaitao@xxxxxxxxxx>

Page flag helpers for configuration-dependent flags provide false or no-op
variants so that their users can be independent of the configuration.

The HWPoison helpers do not fully follow this pattern. When
CONFIG_MEMORY_FAILURE is enabled, PAGEFLAG() and TESTSCFLAG() provide the
regular, test-and-set, and test-and-clear operations. When it is disabled,
only PAGEFLAG_FALSE() is instantiated, leaving TestSetPageHWPoison() and
TestClearPageHWPoison() undefined.

Use TESTSCFLAG_FALSE() to provide the missing accessors when memory failure
handling is disabled. Both accessors return false, which is consistent with
HWPoison state being unavailable, and makes the accessor interface
consistent across configurations.

Signed-off-by: Kaitao Cheng <chengkaitao@xxxxxxxxxx>
---
include/linux/page-flags.h | 1 +
1 file changed, 1 insertion(+)

diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
index 7a863572adce..a2315ab1dd3a 100644
--- a/include/linux/page-flags.h
+++ b/include/linux/page-flags.h
@@ -656,6 +656,7 @@ TESTSCFLAG(HWPoison, hwpoison, PF_ANY)
#define __PG_HWPOISON (1UL << PG_hwpoison)
#else
PAGEFLAG_FALSE(HWPoison, hwpoison)
+TESTSCFLAG_FALSE(HWPoison, hwpoison)
#define __PG_HWPOISON 0
#endif

--
2.50.1 (Apple Git-155)