[PATCH] x86: fix NMI with CPU hotplug
authorShaohua Li <shaohua.li@intel.com>
Mon, 12 Dec 2005 08:37:02 +0000 (00:37 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 12 Dec 2005 16:57:42 +0000 (08:57 -0800)
With CPU hotplug enabled, NMI watchdog stoped working.  It appears the
violation is the cpu_online check in nmi handler.  local ACPI based NMI
watchdog is initialized before we set CPU online for APs.  It's quite
possible a NMI is fired before we set CPU online, and that's what happens
here.

Signed-off-by: Shaohua Li <shaohua.li@intel.com>
Acked-by: Zwane Mwaikambo <zwane@arm.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/i386/kernel/traps.c

index c34d1bfc51619b0ee978740d34ffad9d6dd499bb..f0dffa03fbbaec9d1efec46f02441b0427eb92f8 100644 (file)
@@ -650,13 +650,6 @@ fastcall void do_nmi(struct pt_regs * regs, long error_code)
 
        cpu = smp_processor_id();
 
-#ifdef CONFIG_HOTPLUG_CPU
-       if (!cpu_online(cpu)) {
-               nmi_exit();
-               return;
-       }
-#endif
-
        ++nmi_count(cpu);
 
        if (!rcu_dereference(nmi_callback)(regs, cpu))