summaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/cpu.h
diff options
context:
space:
mode:
authorFenghua Yu <fenghua.yu@intel.com>2012-11-14 13:36:53 +0100
committerH. Peter Anvin <hpa@linux.intel.com>2012-11-15 00:28:03 +0100
commite1c467e69040c3be68959332959c07fb3d818e87 (patch)
tree8b26708bc23accd1ebfb6b7dcd08f69350f07a92 /arch/x86/include/asm/cpu.h
parentx86-32, hotplug: Add start_cpu0() entry point to head_32.S (diff)
downloadlinux-e1c467e69040c3be68959332959c07fb3d818e87.tar.xz
linux-e1c467e69040c3be68959332959c07fb3d818e87.zip
x86, hotplug: Wake up CPU0 via NMI instead of INIT, SIPI, SIPI
Instead of waiting for STARTUP after INITs, BSP will execute the BIOS boot-strap code which is not a desired behavior for waking up BSP. To avoid the boot-strap code, wake up CPU0 by NMI instead. This works to wake up soft offlined CPU0 only. If CPU0 is hard offlined (i.e. physically hot removed and then hot added), NMI won't wake it up. We'll change this code in the future to wake up hard offlined CPU0 if real platform and request are available. AP is still waken up as before by INIT, SIPI, SIPI sequence. Signed-off-by: Fenghua Yu <fenghua.yu@intel.com> Link: http://lkml.kernel.org/r/1352896613-25957-1-git-send-email-fenghua.yu@intel.com Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'arch/x86/include/asm/cpu.h')
-rw-r--r--arch/x86/include/asm/cpu.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/include/asm/cpu.h b/arch/x86/include/asm/cpu.h
index 4564c8e28a33..a1195726e8c2 100644
--- a/arch/x86/include/asm/cpu.h
+++ b/arch/x86/include/asm/cpu.h
@@ -28,6 +28,7 @@ struct x86_cpu {
#ifdef CONFIG_HOTPLUG_CPU
extern int arch_register_cpu(int num);
extern void arch_unregister_cpu(int);
+extern void __cpuinit start_cpu0(void);
#endif
DECLARE_PER_CPU(int, cpu_state);