]> git.baikalelectronics.ru Git - kernel.git/commitdiff
mm/memtest: add ARCH_USE_MEMTEST
authorAnshuman Khandual <anshuman.khandual@arm.com>
Fri, 30 Apr 2021 05:55:15 +0000 (22:55 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 30 Apr 2021 18:20:36 +0000 (11:20 -0700)
early_memtest() does not get called from all architectures.  Hence
enabling CONFIG_MEMTEST and providing a valid memtest=[1..N] kernel
command line option might not trigger the memory pattern tests as would be
expected in normal circumstances.  This situation is misleading.

The change here prevents the above mentioned problem after introducing a
new config option ARCH_USE_MEMTEST that should be subscribed on platforms
that call early_memtest(), in order to enable the config CONFIG_MEMTEST.
Conversely CONFIG_MEMTEST cannot be enabled on platforms where it would
not be tested anyway.

Link: https://lkml.kernel.org/r/1617269193-22294-1-git-send-email-anshuman.khandual@arm.com
Signed-off-by: Anshuman Khandual <anshuman.khandual@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com> (arm64)
Reviewed-by: Max Filippov <jcmvbkbc@gmail.com>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Will Deacon <will@kernel.org>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Chris Zankel <chris@zankel.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/arm/Kconfig
arch/arm64/Kconfig
arch/mips/Kconfig
arch/powerpc/Kconfig
arch/x86/Kconfig
arch/xtensa/Kconfig
lib/Kconfig.debug

index e6e08d8a45fcecabe1d5b85b8bd153d35850a2be..085c830d344bdf875eb944f15eee39a97facccff 100644 (file)
@@ -33,6 +33,7 @@ config ARM
        select ARCH_SUPPORTS_ATOMIC_RMW
        select ARCH_USE_BUILTIN_BSWAP
        select ARCH_USE_CMPXCHG_LOCKREF
+       select ARCH_USE_MEMTEST
        select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT if MMU
        select ARCH_WANT_IPC_PARSE_VERSION
        select ARCH_WANT_LD_ORPHAN_WARN
index 570fa52eb6f0ac828be171f8765ebb8099305476..7f2a8009133738d88b5db67b69b0c768c5bbeee4 100644 (file)
@@ -67,6 +67,7 @@ config ARM64
        select ARCH_KEEP_MEMBLOCK
        select ARCH_USE_CMPXCHG_LOCKREF
        select ARCH_USE_GNU_PROPERTY
+       select ARCH_USE_MEMTEST
        select ARCH_USE_QUEUED_RWLOCKS
        select ARCH_USE_QUEUED_SPINLOCKS
        select ARCH_USE_SYM_ANNOTATIONS
index 702648f60e41d9544c66e2f42b1b5f430c21a6e8..49a3c9cd1cb296938b706c062991ea08a9e21d7c 100644 (file)
@@ -16,6 +16,7 @@ config MIPS
        select ARCH_SUPPORTS_UPROBES
        select ARCH_USE_BUILTIN_BSWAP
        select ARCH_USE_CMPXCHG_LOCKREF if 64BIT
+       select ARCH_USE_MEMTEST
        select ARCH_USE_QUEUED_RWLOCKS
        select ARCH_USE_QUEUED_SPINLOCKS
        select ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT if MMU
index 3b34c44832e07ab4a50fcbdc8598e6b07158363c..2d060c0025958408379472ced1b34b5bb47bf838 100644 (file)
@@ -149,6 +149,7 @@ config PPC
        select ARCH_SUPPORTS_DEBUG_PAGEALLOC    if PPC32 || PPC_BOOK3S_64
        select ARCH_USE_BUILTIN_BSWAP
        select ARCH_USE_CMPXCHG_LOCKREF         if PPC64
+       select ARCH_USE_MEMTEST
        select ARCH_USE_QUEUED_RWLOCKS          if PPC_QUEUED_SPINLOCKS
        select ARCH_USE_QUEUED_SPINLOCKS        if PPC_QUEUED_SPINLOCKS
        select ARCH_WANT_IPC_PARSE_VERSION
index 0fc82237414ddfd02724fa6f906a2bf7a147b119..dac15f646f797e6f8b33516023ebc8e18b2c3ed6 100644 (file)
@@ -100,6 +100,7 @@ config X86
        select ARCH_SUPPORTS_LTO_CLANG          if X86_64
        select ARCH_SUPPORTS_LTO_CLANG_THIN     if X86_64
        select ARCH_USE_BUILTIN_BSWAP
+       select ARCH_USE_MEMTEST
        select ARCH_USE_QUEUED_RWLOCKS
        select ARCH_USE_QUEUED_SPINLOCKS
        select ARCH_USE_SYM_ANNOTATIONS
index 9ad6b7b82707cc0a1e890602ec35973898fa8845..524413aabbc4030e2d08b97218f4a6100dce5cee 100644 (file)
@@ -7,6 +7,7 @@ config XTENSA
        select ARCH_HAS_SYNC_DMA_FOR_CPU if MMU
        select ARCH_HAS_SYNC_DMA_FOR_DEVICE if MMU
        select ARCH_HAS_DMA_SET_UNCACHED if MMU
+       select ARCH_USE_MEMTEST
        select ARCH_USE_QUEUED_RWLOCKS
        select ARCH_USE_QUEUED_SPINLOCKS
        select ARCH_WANT_FRAME_POINTERS
index b38bbb5bb00ef7a2051401abd80ddd1370b46906..678c13967580ecca7b10daeb2223175d4ab218e3 100644 (file)
@@ -2573,11 +2573,18 @@ config TEST_FPU
 
 endif # RUNTIME_TESTING_MENU
 
+config ARCH_USE_MEMTEST
+       bool
+       help
+         An architecture should select this when it uses early_memtest()
+         during boot process.
+
 config MEMTEST
        bool "Memtest"
+       depends on ARCH_USE_MEMTEST
        help
          This option adds a kernel parameter 'memtest', which allows memtest
-         to be set.
+         to be set and executed.
                memtest=0, mean disabled; -- default
                memtest=1, mean do 1 test pattern;
                ...