summaryrefslogtreecommitdiffstats
path: root/arch/i386/kernel/smpboot.c
diff options
context:
space:
mode:
authorShaohua Li2005-12-13 07:17:08 +0100
committerLinus Torvalds2005-12-13 07:31:16 +0100
commit5e9ef02ec00c70840661d174dc2f4862db471bb6 (patch)
tree037db38d2f476f71210b7c64eb2bcd2f74aa1486 /arch/i386/kernel/smpboot.c
parent[PATCH] x86_64: Make sure hpet_address is 0 when any part of HPET initializat... (diff)
downloadkernel-qcow2-linux-5e9ef02ec00c70840661d174dc2f4862db471bb6.tar.gz
kernel-qcow2-linux-5e9ef02ec00c70840661d174dc2f4862db471bb6.tar.xz
kernel-qcow2-linux-5e9ef02ec00c70840661d174dc2f4862db471bb6.zip
[PATCH] i386/x86-64 disable LAPIC completely for offline CPU
Disabling LAPIC timer isn't sufficient. In some situations, such as we enabled NMI watchdog, there is still unexpected interrupt (such as NMI) invoked in offline CPU. This also avoids offline CPU receives spurious interrupt and anything similar. Signed-off-by: Shaohua Li <shaohua.li@intel.com> Signed-off-by: Andi Kleen <ak@suse.de> Acked-by: "Seth, Rohit" <rohit.seth@intel.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/i386/kernel/smpboot.c')
-rw-r--r--arch/i386/kernel/smpboot.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/i386/kernel/smpboot.c b/arch/i386/kernel/smpboot.c
index d16520da4550..9ed449af8e9f 100644
--- a/arch/i386/kernel/smpboot.c
+++ b/arch/i386/kernel/smpboot.c
@@ -1338,8 +1338,7 @@ int __cpu_disable(void)
if (cpu == 0)
return -EBUSY;
- /* We enable the timer again on the exit path of the death loop */
- disable_APIC_timer();
+ clear_local_APIC();
/* Allow any queued timer interrupts to get serviced */
local_irq_enable();
mdelay(1);