[PATCH 1/7] arch_numa: Provide platform numa init hook
From: Jiaxun Yang
Date: Fri Aug 09 2024 - 15:25:21 EST
For some pre-devicetree systems, NUMA information may come from
platform specific way.
Provide platform numa init hook to allow platform code kick in
as last resort method to supply NUMA configuration.
Signed-off-by: Jiaxun Yang <jiaxun.yang@xxxxxxxxxxx>
---
drivers/base/arch_numa.c | 7 +++++++
include/asm-generic/numa.h | 1 +
2 files changed, 8 insertions(+)
diff --git a/drivers/base/arch_numa.c b/drivers/base/arch_numa.c
index 8d49893c0e94..d464baeee69a 100644
--- a/drivers/base/arch_numa.c
+++ b/drivers/base/arch_numa.c
@@ -305,6 +305,11 @@ static int __init arch_acpi_numa_init(void)
}
#endif
+int __init __weak arch_platform_numa_init(void)
+{
+ return -EOPNOTSUPP;
+}
+
/**
* arch_numa_init() - Initialize NUMA
*
@@ -318,6 +323,8 @@ void __init arch_numa_init(void)
return;
if (acpi_disabled && !numa_init(of_numa_init))
return;
+ if (!numa_init(arch_platform_numa_init))
+ return;
}
numa_init(dummy_numa_init);
diff --git a/include/asm-generic/numa.h b/include/asm-generic/numa.h
index c2b046d1fd82..53a8210fde00 100644
--- a/include/asm-generic/numa.h
+++ b/include/asm-generic/numa.h
@@ -31,6 +31,7 @@ static inline const struct cpumask *cpumask_of_node(int node)
#endif
void __init arch_numa_init(void);
+int __init arch_platform_numa_init(void);
int __init numa_add_memblk(int nodeid, u64 start, u64 end);
void __init early_map_cpu_to_node(unsigned int cpu, int nid);
int __init early_cpu_to_node(int cpu);
--
2.46.0