summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2024-02-13 22:05:16 +0100
committerThomas Gleixner <tglx@linutronix.de>2024-02-15 22:07:41 +0100
commitde6aec241750a4f9d33d0e055d97fb3e0170c31a (patch)
tree86ada806f9c4febd192c8115f103cb0346672e1d
parentdcb7600849ce9b3d9b3d2965f452287f06fc9093 (diff)
x86/mm/numa: Move early mptable evaluation into common code
There is no reason to have the early mptable evaluation conditionally invoked only from the AMD numa topology code. Make it explicit and invoke it from setup_arch() right after the corresponding ACPI init call. Remove the pointless wrapper and invoke x86_init::mpparse::early_parse_smp_config() directly. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Tested-by: Michael Kelley <mhklinux@outlook.com> Tested-by: Sohil Mehta <sohil.mehta@intel.com> Link: https://lore.kernel.org/r/20240212154639.931761608@linutronix.de
-rw-r--r--arch/x86/include/asm/mpspec.h5
-rw-r--r--arch/x86/kernel/setup.c2
-rw-r--r--arch/x86/mm/amdtopology.c7
3 files changed, 2 insertions, 12 deletions
diff --git a/arch/x86/include/asm/mpspec.h b/arch/x86/include/asm/mpspec.h
index 82480b7d01f0..b423d11e002d 100644
--- a/arch/x86/include/asm/mpspec.h
+++ b/arch/x86/include/asm/mpspec.h
@@ -46,11 +46,6 @@ extern int smp_found_config;
# define smp_found_config 0
#endif
-static inline void early_get_smp_config(void)
-{
- x86_init.mpparse.early_parse_smp_cfg();
-}
-
#ifdef CONFIG_X86_MPPARSE
extern void e820__memblock_alloc_reserved_mpc_new(void);
extern int enable_update_mptable;
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index 1a3d66f17487..b1e52ac164b1 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -1088,7 +1088,9 @@ void __init setup_arch(char **cmdline_p)
early_platform_quirks();
+ /* Some platforms need the APIC registered for NUMA configuration */
early_acpi_boot_init();
+ x86_init.mpparse.early_parse_smp_cfg();
x86_flattree_get_config();
diff --git a/arch/x86/mm/amdtopology.c b/arch/x86/mm/amdtopology.c
index 5681b997b357..9332b36a1091 100644
--- a/arch/x86/mm/amdtopology.c
+++ b/arch/x86/mm/amdtopology.c
@@ -161,13 +161,6 @@ int __init amd_numa_init(void)
*/
cores = topology_get_domain_size(TOPO_CORE_DOMAIN);
- /*
- * Scan MPTABLE to map the local APIC and ensure that the boot CPU
- * APIC ID is valid. This is required because on pre ACPI/SRAT
- * systems IO-APICs are mapped before the boot CPU.
- */
- early_get_smp_config();
-
apicid = boot_cpu_physical_apicid;
if (apicid > 0)
pr_info("BSP APIC ID: %02x\n", apicid);