summaryrefslogtreecommitdiff
path: root/arch/x86/kernel/smpboot.c
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@linux-mips.org>2008-05-21 22:10:16 +0100
committerIngo Molnar <mingo@elte.hu>2008-07-08 09:12:58 +0200
commita1133d8e4ffc2db751eb987a2f3cf8ead67927c3 (patch)
tree39fcc6bceff908667af3f84ff21eca18404f6d28 /arch/x86/kernel/smpboot.c
parent73d08e636026bbcb413d4864ca5e917502f8a0f9 (diff)
x86: APIC/SMP: downgrade the NMI watchdog for "nosmp"
If configured to use the I/O APIC, the NMI watchdog is deemed to fail if the chip has been deactivated as a result of "nosmp". Downgrade to the local APIC watchdog similarly to what is done for the UP case. Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/smpboot.c')
-rw-r--r--arch/x86/kernel/smpboot.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
index 8c53d86e3e86..df60bc7c9cb7 100644
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -1159,6 +1159,10 @@ static int __init smp_sanity_check(unsigned max_cpus)
if (!max_cpus) {
printk(KERN_INFO "SMP mode deactivated.\n");
smpboot_clear_io_apic();
+
+ if (nmi_watchdog != NMI_NONE && nmi_watchdog != NMI_DISABLED)
+ nmi_watchdog = NMI_LOCAL_APIC;
+
#ifdef CONFIG_X86_32
connect_bsp_APIC();
#endif