diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2007-03-05 03:30:45 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-03-05 10:57:53 -0500 |
commit | a5f5e43e2b1377392f9afe93aca29b9abf1d6a44 (patch) | |
tree | e0e2f64aecffe931e81390f97cc1453c5f1dd400 /arch/i386/kernel/apic.c | |
parent | 6d3baf2eb8bd680b2d4f509bc3dbf4dcd6e27a40 (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>
Diffstat (limited to 'arch/i386/kernel/apic.c')
-rw-r--r-- | arch/i386/kernel/apic.c | 11 |
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(); |