[PATCH] drivers/base, mm: move arch_numa.c to mm/

From: Mike Rapoport (Microsoft)

Date: Thu Aug 06 2026 - 02:58:54 EST


arch_numa.c implements boot time discovery and initialization of NUMA
topology on architectures that select GENERIC_ARCH_NUMA (currently arm64
and riscv).

Since this is step in the initialization of the memory management
subsystem, it's logical to have arch_numa.c in mm/ alongside numa.c,
numa_memblks.c and numa_emulation.c.

Move arch_numa.c to mm/ and add its F: entry to "MEMBLOCK AND MEMORY
MANAGEMENT INITIALIZATION" in MAINTAINERS.

Signed-off-by: Mike Rapoport (Microsoft) <rppt@xxxxxxxxxx>
---
MAINTAINERS | 1 +
drivers/base/Kconfig | 7 -------
drivers/base/Makefile | 1 -
mm/Kconfig | 7 +++++++
mm/Makefile | 1 +
{drivers/base => mm}/arch_numa.c | 0
6 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index 5114e6db7307..465b64f8e93c 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -16880,6 +16880,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock.git fixes
F: Documentation/core-api/boot-time-mm.rst
F: include/linux/kho/abi/memblock.h
F: include/linux/memblock.h
+F: mm/arch_numa.c
F: mm/bootmem_info.c
F: mm/memblock.c
F: mm/memtest.c
diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig
index f7d385cbd3ba..1d93bfc34490 100644
--- a/drivers/base/Kconfig
+++ b/drivers/base/Kconfig
@@ -239,13 +239,6 @@ config GENERIC_ARCH_TOPOLOGY
appropriate scaling, sysfs interface for reading capacity values at
runtime.

-config GENERIC_ARCH_NUMA
- bool
- select NUMA_MEMBLKS
- help
- Enable support for generic NUMA implementation. Currently, RISC-V
- and ARM64 use it.
-
config FW_DEVLINK_SYNC_STATE_TIMEOUT
bool "sync_state() behavior defaults to timeout instead of strict"
help
diff --git a/drivers/base/Makefile b/drivers/base/Makefile
index 8074a10183dc..435710f643a5 100644
--- a/drivers/base/Makefile
+++ b/drivers/base/Makefile
@@ -25,7 +25,6 @@ obj-$(CONFIG_PINCTRL) += pinctrl.o
obj-$(CONFIG_DEV_COREDUMP) += devcoredump.o
obj-$(CONFIG_GENERIC_MSI_IRQ) += platform-msi.o
obj-$(CONFIG_GENERIC_ARCH_TOPOLOGY) += arch_topology.o
-obj-$(CONFIG_GENERIC_ARCH_NUMA) += arch_numa.o
obj-$(CONFIG_ACPI) += physical_location.o

obj-y += test/
diff --git a/mm/Kconfig b/mm/Kconfig
index 9e0ca4824905..410b8a0a92b9 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -1469,6 +1469,13 @@ config NUMA_EMU
into virtual nodes when booted with "numa=fake=N", where N is the
number of nodes. This is only useful for debugging.

+config GENERIC_ARCH_NUMA
+ bool
+ select NUMA_MEMBLKS
+ help
+ Enable support for generic NUMA implementation. Currently, RISC-V
+ and ARM64 use it.
+
config ARCH_HAS_USER_SHADOW_STACK
bool
help
diff --git a/mm/Makefile b/mm/Makefile
index eff9f9e7e061..fd29be716fa8 100644
--- a/mm/Makefile
+++ b/mm/Makefile
@@ -122,6 +122,7 @@ obj-$(CONFIG_CMA) += cma.o
obj-$(CONFIG_NUMA) += numa.o
obj-$(CONFIG_NUMA_MEMBLKS) += numa_memblks.o
obj-$(CONFIG_NUMA_EMU) += numa_emulation.o
+obj-$(CONFIG_GENERIC_ARCH_NUMA) += arch_numa.o
obj-$(CONFIG_BALLOON) += balloon.o
obj-$(CONFIG_PAGE_EXTENSION) += page_ext.o
obj-$(CONFIG_PAGE_TABLE_CHECK) += page_table_check.o
diff --git a/drivers/base/arch_numa.c b/mm/arch_numa.c
similarity index 100%
rename from drivers/base/arch_numa.c
rename to mm/arch_numa.c

---
base-commit: 075b74841bd0065a3bda3440873c747938e69b68
change-id: 20260806-arch-numa-444bb4806114

--
Sincerely yours,
Mike.