aboutsummaryrefslogtreecommitdiff
path: root/arch/x86/include/asm/smp.h
diff options
context:
space:
mode:
authorGravatar Thomas Gleixner <tglx@linutronix.de> 2023-05-12 23:07:51 +0200
committerGravatar Peter Zijlstra <peterz@infradead.org> 2023-05-15 13:45:03 +0200
commitbea629d57d006733d155bdb65ba4867788da69b6 (patch)
tree0cd89568831448d32fb5088ba1c4fbcca71d4d52 /arch/x86/include/asm/smp.h
parentcpu/hotplug: Allow "parallel" bringup up to CPUHP_BP_KICK_AP_STATE (diff)
downloadlinux-bea629d57d006733d155bdb65ba4867788da69b6.tar.gz
linux-bea629d57d006733d155bdb65ba4867788da69b6.tar.bz2
linux-bea629d57d006733d155bdb65ba4867788da69b6.zip
x86/apic: Save the APIC virtual base address
For parallel CPU brinugp it's required to read the APIC ID in the low level startup code. The virtual APIC base address is a constant because its a fix-mapped address. Exposing that constant which is composed via macros to assembly code is non-trivial due to header inclusion hell. Aside of that it's constant only because of the vsyscall ABI requirement. Once vsyscall is out of the picture the fixmap can be placed at runtime. Avoid header hell, stay flexible and store the address in a variable which can be exposed to the low level startup code. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Tested-by: Michael Kelley <mikelley@microsoft.com> Tested-by: Oleksandr Natalenko <oleksandr@natalenko.name> Tested-by: Helge Deller <deller@gmx.de> # parisc Tested-by: Guilherme G. Piccoli <gpiccoli@igalia.com> # Steam Deck Link: https://lore.kernel.org/r/20230512205257.299231005@linutronix.de
Diffstat (limited to 'arch/x86/include/asm/smp.h')
-rw-r--r--arch/x86/include/asm/smp.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
index 726c2a243eb0..c6d5b65b7a47 100644
--- a/arch/x86/include/asm/smp.h
+++ b/arch/x86/include/asm/smp.h
@@ -196,6 +196,7 @@ extern void nmi_selftest(void);
#endif
extern unsigned int smpboot_control;
+extern unsigned long apic_mmio_base;
#endif /* !__ASSEMBLY__ */