diff options
author | Shaohua Li <shaohua.li@intel.com> | 2006-09-26 04:52:27 -0400 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2006-09-26 04:52:27 -0400 |
commit | 4038f901cf102a40715b900984ed7540a9fa637f (patch) | |
tree | e73261bee0e0856dba5a8bc447b18779a61fe235 /arch/i386/kernel/smpboot.c | |
parent | c41c5cd3b20a2d81c30498f13b1527847a8fdf69 (diff) |
[PATCH] i386/x86-64: Fix NMI watchdog suspend/resume
Making NMI suspend/resume work with SMP. We use CPU hotplug to offline
APs in SMP suspend/resume. Only BSP executes sysdev's .suspend/.resume
method. APs should follow CPU hotplug code path.
And:
+From: Don Zickus <dzickus@redhat.com>
Makes the start/stop paths of nmi watchdog more robust to handle the
suspend/resume cases more gracefully.
AK: I merged the two patches together
Signed-off-by: Shaohua Li <shaohua.li@intel.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Cc: Don Zickus <dzickus@redhat.com>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Diffstat (limited to 'arch/i386/kernel/smpboot.c')
-rw-r--r-- | arch/i386/kernel/smpboot.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/i386/kernel/smpboot.c b/arch/i386/kernel/smpboot.c index efe07990e7fc..9367af76ce37 100644 --- a/arch/i386/kernel/smpboot.c +++ b/arch/i386/kernel/smpboot.c | |||
@@ -1376,7 +1376,8 @@ int __cpu_disable(void) | |||
1376 | */ | 1376 | */ |
1377 | if (cpu == 0) | 1377 | if (cpu == 0) |
1378 | return -EBUSY; | 1378 | return -EBUSY; |
1379 | 1379 | if (nmi_watchdog == NMI_LOCAL_APIC) | |
1380 | stop_apic_nmi_watchdog(NULL); | ||
1380 | clear_local_APIC(); | 1381 | clear_local_APIC(); |
1381 | /* Allow any queued timer interrupts to get serviced */ | 1382 | /* Allow any queued timer interrupts to get serviced */ |
1382 | local_irq_enable(); | 1383 | local_irq_enable(); |