Disable NMI watchdog by default properly
authorLinus Torvalds <torvalds@woody.linux-foundation.org>
Thu, 15 Mar 2007 00:50:48 +0000 (17:50 -0700)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Thu, 15 Mar 2007 00:53:43 +0000 (17:53 -0700)
This reverts commit 6ebf622b2577c50b1f496bd6a5e8739e55ae7b1c and
replaces it with one that actually works.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/i386/kernel/nmi.c
arch/x86_64/kernel/nmi.c
include/asm-i386/nmi.h
include/asm-x86_64/nmi.h

index 821df34d2b3a3a1b8a71ada0a77b64229e0f0200..14702427b10415fbec39f241802ceca233b2b055 100644 (file)
@@ -245,14 +245,6 @@ static int __init check_nmi_watchdog(void)
        unsigned int *prev_nmi_count;
        int cpu;
 
-       /* Enable NMI watchdog for newer systems.
-          Probably safe on most older systems too, but let's be careful.
-          IBM ThinkPads use INT10 inside SMM and that allows early NMI inside SMM
-          which hangs the system. Disable watchdog for all thinkpads */
-       if (nmi_watchdog == NMI_DEFAULT && dmi_get_year(DMI_BIOS_DATE) >= 2004 &&
-               !dmi_name_in_vendors("ThinkPad"))
-               nmi_watchdog = NMI_LOCAL_APIC;
-
        if ((nmi_watchdog == NMI_NONE) || (nmi_watchdog == NMI_DEFAULT))
                return 0;
 
index 486f4c61a948851f3b729a646da78e679e689341..82d9d85d52709c2322392a5e33e5768b0c8dc085 100644 (file)
@@ -187,10 +187,7 @@ void nmi_watchdog_default(void)
 {
        if (nmi_watchdog != NMI_DEFAULT)
                return;
-       if (nmi_known_cpu())
-               nmi_watchdog = NMI_LOCAL_APIC;
-       else
-               nmi_watchdog = NMI_IO_APIC;
+       nmi_watchdog = NMI_NONE;
 }
 
 static int endflag __initdata = 0;
index 64544cb85d6a40b4d06928a33c15728a5d265378..b04333ea6f31e9bd338b9842d1afeec1ea9f7ba4 100644 (file)
@@ -33,7 +33,7 @@ extern int nmi_watchdog_tick (struct pt_regs * regs, unsigned reason);
 
 extern atomic_t nmi_active;
 extern unsigned int nmi_watchdog;
-#define NMI_DEFAULT     0
+#define NMI_DEFAULT     -1
 #define NMI_NONE       0
 #define NMI_IO_APIC    1
 #define NMI_LOCAL_APIC 2
index ceb3d8dac33d43e03d9d6f489b1592754edc8616..72375e7d32a895846200ff921ebfd5e8776296bf 100644 (file)
@@ -64,7 +64,7 @@ extern int setup_nmi_watchdog(char *);
 
 extern atomic_t nmi_active;
 extern unsigned int nmi_watchdog;
-#define NMI_DEFAULT    0
+#define NMI_DEFAULT    -1
 #define NMI_NONE       0
 #define NMI_IO_APIC    1
 #define NMI_LOCAL_APIC 2