diff options
| -rw-r--r-- | arch/i386/kernel/apic.c | 2 | ||||
| -rw-r--r-- | arch/i386/kernel/nmi.c | 4 | ||||
| -rw-r--r-- | arch/x86_64/kernel/nmi.c | 4 | ||||
| -rw-r--r-- | include/asm-i386/nmi.h | 3 | ||||
| -rw-r--r-- | include/asm-x86_64/nmi.h | 3 |
5 files changed, 9 insertions, 7 deletions
diff --git a/arch/i386/kernel/apic.c b/arch/i386/kernel/apic.c index f9fff29e01a9..3d67ae18d762 100644 --- a/arch/i386/kernel/apic.c +++ b/arch/i386/kernel/apic.c | |||
| @@ -1085,7 +1085,7 @@ static int __init detect_init_APIC (void) | |||
| 1085 | if (l & MSR_IA32_APICBASE_ENABLE) | 1085 | if (l & MSR_IA32_APICBASE_ENABLE) |
| 1086 | mp_lapic_addr = l & MSR_IA32_APICBASE_BASE; | 1086 | mp_lapic_addr = l & MSR_IA32_APICBASE_BASE; |
| 1087 | 1087 | ||
| 1088 | if (nmi_watchdog != NMI_NONE) | 1088 | if (nmi_watchdog != NMI_NONE && nmi_watchdog != NMI_DISABLED) |
| 1089 | nmi_watchdog = NMI_LOCAL_APIC; | 1089 | nmi_watchdog = NMI_LOCAL_APIC; |
| 1090 | 1090 | ||
| 1091 | printk(KERN_INFO "Found and enabled local APIC!\n"); | 1091 | printk(KERN_INFO "Found and enabled local APIC!\n"); |
diff --git a/arch/i386/kernel/nmi.c b/arch/i386/kernel/nmi.c index 99beac7f96ce..8c1c965eb2a8 100644 --- a/arch/i386/kernel/nmi.c +++ b/arch/i386/kernel/nmi.c | |||
| @@ -77,7 +77,7 @@ static int __init check_nmi_watchdog(void) | |||
| 77 | unsigned int *prev_nmi_count; | 77 | unsigned int *prev_nmi_count; |
| 78 | int cpu; | 78 | int cpu; |
| 79 | 79 | ||
| 80 | if ((nmi_watchdog == NMI_NONE) || (nmi_watchdog == NMI_DEFAULT)) | 80 | if ((nmi_watchdog == NMI_NONE) || (nmi_watchdog == NMI_DISABLED)) |
| 81 | return 0; | 81 | return 0; |
| 82 | 82 | ||
| 83 | if (!atomic_read(&nmi_active)) | 83 | if (!atomic_read(&nmi_active)) |
| @@ -424,7 +424,7 @@ int proc_nmi_enabled(struct ctl_table *table, int write, struct file *file, | |||
| 424 | if (!!old_state == !!nmi_watchdog_enabled) | 424 | if (!!old_state == !!nmi_watchdog_enabled) |
| 425 | return 0; | 425 | return 0; |
| 426 | 426 | ||
| 427 | if (atomic_read(&nmi_active) < 0) { | 427 | if (atomic_read(&nmi_active) < 0 || nmi_watchdog == NMI_DISABLED) { |
| 428 | printk( KERN_WARNING "NMI watchdog is permanently disabled\n"); | 428 | printk( KERN_WARNING "NMI watchdog is permanently disabled\n"); |
| 429 | return -EIO; | 429 | return -EIO; |
| 430 | } | 430 | } |
diff --git a/arch/x86_64/kernel/nmi.c b/arch/x86_64/kernel/nmi.c index cb8ee9d02f86..0ec6d2ddb931 100644 --- a/arch/x86_64/kernel/nmi.c +++ b/arch/x86_64/kernel/nmi.c | |||
| @@ -85,7 +85,7 @@ int __init check_nmi_watchdog (void) | |||
| 85 | int *counts; | 85 | int *counts; |
| 86 | int cpu; | 86 | int cpu; |
| 87 | 87 | ||
| 88 | if ((nmi_watchdog == NMI_NONE) || (nmi_watchdog == NMI_DEFAULT)) | 88 | if ((nmi_watchdog == NMI_NONE) || (nmi_watchdog == NMI_DISABLED)) |
| 89 | return 0; | 89 | return 0; |
| 90 | 90 | ||
| 91 | if (!atomic_read(&nmi_active)) | 91 | if (!atomic_read(&nmi_active)) |
| @@ -442,7 +442,7 @@ int proc_nmi_enabled(struct ctl_table *table, int write, struct file *file, | |||
| 442 | if (!!old_state == !!nmi_watchdog_enabled) | 442 | if (!!old_state == !!nmi_watchdog_enabled) |
| 443 | return 0; | 443 | return 0; |
| 444 | 444 | ||
| 445 | if (atomic_read(&nmi_active) < 0) { | 445 | if (atomic_read(&nmi_active) < 0 || nmi_watchdog == NMI_DISABLED) { |
| 446 | printk( KERN_WARNING "NMI watchdog is permanently disabled\n"); | 446 | printk( KERN_WARNING "NMI watchdog is permanently disabled\n"); |
| 447 | return -EIO; | 447 | return -EIO; |
| 448 | } | 448 | } |
diff --git a/include/asm-i386/nmi.h b/include/asm-i386/nmi.h index ff30c98f87b0..70a958a8e381 100644 --- a/include/asm-i386/nmi.h +++ b/include/asm-i386/nmi.h | |||
| @@ -33,11 +33,12 @@ extern int nmi_watchdog_tick (struct pt_regs * regs, unsigned reason); | |||
| 33 | 33 | ||
| 34 | extern atomic_t nmi_active; | 34 | extern atomic_t nmi_active; |
| 35 | extern unsigned int nmi_watchdog; | 35 | extern unsigned int nmi_watchdog; |
| 36 | #define NMI_DEFAULT -1 | 36 | #define NMI_DISABLED -1 |
| 37 | #define NMI_NONE 0 | 37 | #define NMI_NONE 0 |
| 38 | #define NMI_IO_APIC 1 | 38 | #define NMI_IO_APIC 1 |
| 39 | #define NMI_LOCAL_APIC 2 | 39 | #define NMI_LOCAL_APIC 2 |
| 40 | #define NMI_INVALID 3 | 40 | #define NMI_INVALID 3 |
| 41 | #define NMI_DEFAULT NMI_DISABLED | ||
| 41 | 42 | ||
| 42 | struct ctl_table; | 43 | struct ctl_table; |
| 43 | struct file; | 44 | struct file; |
diff --git a/include/asm-x86_64/nmi.h b/include/asm-x86_64/nmi.h index 5fb3c0de5ccc..65b6acf3bb59 100644 --- a/include/asm-x86_64/nmi.h +++ b/include/asm-x86_64/nmi.h | |||
| @@ -64,11 +64,12 @@ extern int setup_nmi_watchdog(char *); | |||
| 64 | 64 | ||
| 65 | extern atomic_t nmi_active; | 65 | extern atomic_t nmi_active; |
| 66 | extern unsigned int nmi_watchdog; | 66 | extern unsigned int nmi_watchdog; |
| 67 | #define NMI_DEFAULT -1 | 67 | #define NMI_DISABLED -1 |
| 68 | #define NMI_NONE 0 | 68 | #define NMI_NONE 0 |
| 69 | #define NMI_IO_APIC 1 | 69 | #define NMI_IO_APIC 1 |
| 70 | #define NMI_LOCAL_APIC 2 | 70 | #define NMI_LOCAL_APIC 2 |
| 71 | #define NMI_INVALID 3 | 71 | #define NMI_INVALID 3 |
| 72 | #define NMI_DEFAULT NMI_DISABLED | ||
| 72 | 73 | ||
| 73 | struct ctl_table; | 74 | struct ctl_table; |
| 74 | struct file; | 75 | struct file; |
