diff options
Diffstat (limited to 'arch/x86_64/kernel/nmi.c')
| -rw-r--r-- | arch/x86_64/kernel/nmi.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/x86_64/kernel/nmi.c b/arch/x86_64/kernel/nmi.c index e00d4adec36b..61de0b34a01e 100644 --- a/arch/x86_64/kernel/nmi.c +++ b/arch/x86_64/kernel/nmi.c | |||
| @@ -112,17 +112,20 @@ static __init int cpu_has_lapic(void) | |||
| 112 | } | 112 | } |
| 113 | } | 113 | } |
| 114 | 114 | ||
| 115 | int __init check_nmi_watchdog (void) | 115 | static int __init check_nmi_watchdog (void) |
| 116 | { | 116 | { |
| 117 | int counts[NR_CPUS]; | 117 | int counts[NR_CPUS]; |
| 118 | int cpu; | 118 | int cpu; |
| 119 | 119 | ||
| 120 | if (nmi_watchdog == NMI_NONE) | ||
| 121 | return 0; | ||
| 122 | |||
| 120 | if (nmi_watchdog == NMI_LOCAL_APIC && !cpu_has_lapic()) { | 123 | if (nmi_watchdog == NMI_LOCAL_APIC && !cpu_has_lapic()) { |
| 121 | nmi_watchdog = NMI_NONE; | 124 | nmi_watchdog = NMI_NONE; |
| 122 | return -1; | 125 | return -1; |
| 123 | } | 126 | } |
| 124 | 127 | ||
| 125 | printk(KERN_INFO "testing NMI watchdog ... "); | 128 | printk(KERN_INFO "Testing NMI watchdog ... "); |
| 126 | 129 | ||
| 127 | for (cpu = 0; cpu < NR_CPUS; cpu++) | 130 | for (cpu = 0; cpu < NR_CPUS; cpu++) |
| 128 | counts[cpu] = cpu_pda[cpu].__nmi_count; | 131 | counts[cpu] = cpu_pda[cpu].__nmi_count; |
| @@ -148,6 +151,8 @@ int __init check_nmi_watchdog (void) | |||
| 148 | 151 | ||
| 149 | return 0; | 152 | return 0; |
| 150 | } | 153 | } |
| 154 | /* Have this called later during boot so counters are updating */ | ||
| 155 | late_initcall(check_nmi_watchdog); | ||
| 151 | 156 | ||
| 152 | int __init setup_nmi_watchdog(char *str) | 157 | int __init setup_nmi_watchdog(char *str) |
| 153 | { | 158 | { |
