[PATCH v2 16/22] alpha: select ARCH_USE_MEMTEST
From: Matt Turner <mattst88@gmail.com>
Date: 2026-09-05 19:30:02
Also in:
linux-doc, linux-hardening, lkml
Subsystem:
alpha port, documentation, the rest · Maintainers:
Richard Henderson, Matt Turner, Magnus Lindholm, Jonathan Corbet, Linus Torvalds
Wire up the generic early memtest from arch_mm_preinit(), which runs after parse_early_param() has picked up the memtest= command line option and before memblock_free_all() hands the memory to the buddy allocator. paging_init() would be the natural place, but Alpha calls it from setup_arch(), before the option is parsed, so the test would never run. The test range starts at the first DRAM address rather than physical zero because low memory on Alpha is owned by the console and PALcode. Tested under QEMU with memtest=4: all four patterns pass over the free memblock ranges, with no bad memory reserved. Assisted-by: Claude:claude-opus-5 Signed-off-by: Matt Turner <mattst88@gmail.com> Also add ALPHA to the memtest= parameter's architecture list. Tested-by: Magnus Lindholm <linmag7@gmail.com> Reviewed-by: Magnus Lindholm <linmag7@gmail.com> --- Documentation/admin-guide/kernel-parameters.txt | 2 +- arch/alpha/Kconfig | 1 + arch/alpha/mm/init.c | 5 +++++ 3 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
index 68647ff4bdd2..58d057a678db 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt@@ -4030,7 +4030,7 @@ Kernel parameters poison checking when freeing elements back to the pool. Useful for debugging mempool corruption. - memtest= [KNL,X86,ARM,M68K,PPC,RISCV,EARLY] Enable memtest + memtest= [KNL,ALPHA,X86,ARM,M68K,PPC,RISCV,EARLY] Enable memtest Format: <integer> default : 0 <disable> Specifies the number of memtest passes to be
diff --git a/arch/alpha/Kconfig b/arch/alpha/Kconfig
index 1ba262812212..f2a5b8c8688a 100644
--- a/arch/alpha/Kconfig
+++ b/arch/alpha/Kconfig@@ -22,6 +22,7 @@ config ALPHA select ARCH_SUPPORTS_INT128 if CC_HAS_INT128 select ARCH_SUPPORTS_PAGE_TABLE_CHECK select ARCH_USE_CMPXCHG_LOCKREF + select ARCH_USE_MEMTEST select FORCE_PCI select PCI_DOMAINS if PCI select PCI_SYSCALL if PCI
diff --git a/arch/alpha/mm/init.c b/arch/alpha/mm/init.c
index f4d65a60c869..6c28947d6e2d 100644
--- a/arch/alpha/mm/init.c
+++ b/arch/alpha/mm/init.c@@ -226,6 +226,11 @@ void __init paging_init(void) memset(absolute_pointer(ZERO_PGE), 0, PAGE_SIZE); } +void __init arch_mm_preinit(void) +{ + early_memtest(memblock_start_of_DRAM(), PFN_PHYS(max_low_pfn)); +} + #if defined(CONFIG_ALPHA_GENERIC) || defined(CONFIG_ALPHA_SRM) void srm_paging_stop (void)
--
2.54.0