From 626ff2b34dbb7679b798f7a4962a8b3def695045 Mon Sep 17 00:00:00 2001 From: Hajime Tazaki Date: Thu, 23 Jul 2026 11:35:50 +0200 Subject: [PATCH] um: allow deselecting CONFIG_MMU Allow deselecting CONFIG_MMU to build a no-MMU UML kernel. Signed-off-by: Hajime Tazaki Signed-off-by: Ricardo Koller [drop defconfig file, minor adjustments/fixes, rewrite message] Link: https://patch.msgid.link/20260723113633.dc6b7df78016.Id9eb1e435a7d9ee75ec3e25db69ed3e8ff202a58@changeid Signed-off-by: Johannes Berg --- arch/um/Kconfig | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/arch/um/Kconfig b/arch/um/Kconfig index 5af245ede463..133c1c81a907 100644 --- a/arch/um/Kconfig +++ b/arch/um/Kconfig @@ -17,9 +17,9 @@ config UML select ARCH_HAS_KCOV select ARCH_HAS_STRNCPY_FROM_USER select ARCH_HAS_STRNLEN_USER - select ARCH_HAS_STRICT_KERNEL_RWX + select ARCH_HAS_STRICT_KERNEL_RWX if MMU select HAVE_ARCH_AUDITSYSCALL - select HAVE_ARCH_KASAN if X86_64 + select HAVE_ARCH_KASAN if X86_64 && MMU select HAVE_ARCH_KASAN_VMALLOC if HAVE_ARCH_KASAN select HAVE_ARCH_SECCOMP_FILTER select HAVE_ASM_MODVERSIONS @@ -37,18 +37,23 @@ config UML select ARCH_SUPPORTS_LTO_CLANG_THIN select TRACE_IRQFLAGS_SUPPORT select TTY # Needed for line.c - select HAVE_ARCH_VMAP_STACK + select HAVE_ARCH_VMAP_STACK if MMU select HAVE_RUST select ARCH_HAS_UBSAN select HAVE_ARCH_TRACEHOOK select HAVE_SYSCALL_TRACEPOINTS select THREAD_INFO_IN_TASK select SPARSE_IRQ - select MMU_GATHER_RCU_TABLE_FREE + select MMU_GATHER_RCU_TABLE_FREE if MMU + select UACCESS_MEMCPY if !MMU + select GENERIC_STRNLEN_USER if !MMU + select GENERIC_STRNCPY_FROM_USER if !MMU config MMU - bool + bool "MMU support" default y + help + Turning this off allows a nommu build, say Y. config UML_DMA_EMULATION bool @@ -210,8 +215,15 @@ config MCONSOLE It is safe to say 'Y' here. +config ARCH_FORCE_MAX_ORDER + int "Order of maximal physically contiguous allocations" if EXPERT + default "10" if MMU + default "16" if !MMU + config KERNEL_STACK_ORDER int "Kernel stack size order" + default 3 if !MMU + range 3 10 if !MMU default 2 if 64BIT range 2 10 if 64BIT default 1 if !64BIT