2023-08-07 14:32:10

by Thomas Gleixner

[permalink] [raw]
Subject: [patch 18/53] 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 <[email protected]>
---
arch/x86/include/asm/mpspec.h | 5 -----
arch/x86/kernel/setup.c | 2 ++
arch/x86/mm/amdtopology.c | 7 -------
3 files changed, 2 insertions(+), 12 deletions(-)

--- 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;
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -1217,7 +1217,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();

initmem_init();
dma_contiguous_reserve(max_pfn_mapped << PAGE_SHIFT);
--- 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);