aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2007-03-05 03:30:45 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-03-05 10:57:53 -0500
commita5f5e43e2b1377392f9afe93aca29b9abf1d6a44 (patch)
treee0e2f64aecffe931e81390f97cc1453c5f1dd400
parent6d3baf2eb8bd680b2d4f509bc3dbf4dcd6e27a40 (diff)
[PATCH] fix "NMI appears to be stuck"
Testing NMI watchdog ... CPU#0: NMI appears to be stuck (54->54)! CPU#1: NMI appears to be stuck (0->0)! Keep the PIT/HPET alive when nmi_watchdog = 1 is given on the command line. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@elte.hu> Cc: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--arch/i386/kernel/apic.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/arch/i386/kernel/apic.c b/arch/i386/kernel/apic.c
index 7a2c9cbdb511..2383bcf18c5d 100644
--- a/arch/i386/kernel/apic.c
+++ b/arch/i386/kernel/apic.c
@@ -493,8 +493,15 @@ void __init setup_boot_APIC_clock(void)
493 /* No broadcast on UP ! */ 493 /* No broadcast on UP ! */
494 if (num_possible_cpus() == 1) 494 if (num_possible_cpus() == 1)
495 return; 495 return;
496 } else 496 } else {
497 lapic_clockevent.features &= ~CLOCK_EVT_FEAT_DUMMY; 497 /*
498 * If nmi_watchdog is set to IO_APIC, we need the
499 * PIT/HPET going. Otherwise register lapic as a dummy
500 * device.
501 */
502 if (nmi_watchdog != NMI_IO_APIC)
503 lapic_clockevent.features &= ~CLOCK_EVT_FEAT_DUMMY;
504 }
498 505
499 /* Setup the lapic or request the broadcast */ 506 /* Setup the lapic or request the broadcast */
500 setup_APIC_timer(); 507 setup_APIC_timer();