diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2012-07-19 13:59:40 -0400 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2012-08-03 14:46:50 -0400 |
commit | 1a65f970d10ace7a1e399f9061a65679c0ae57d0 (patch) | |
tree | 7ae933b1c49b4c20a77b770c3a96b983f48d915f /arch | |
parent | 26c3c283c5b08dd250279c06ba3ab5b094bbacc3 (diff) |
x86: mce: Remove the frozen cases in the hotplug code
No point in having double cases if we can simply mask the FROZEN bit
out.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Chen Gong <gong.chen@linux.intel.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kernel/cpu/mcheck/mce.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c index bd3a5e850f4f..b4dde1527edd 100644 --- a/arch/x86/kernel/cpu/mcheck/mce.c +++ b/arch/x86/kernel/cpu/mcheck/mce.c | |||
@@ -2262,34 +2262,32 @@ mce_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu) | |||
2262 | unsigned int cpu = (unsigned long)hcpu; | 2262 | unsigned int cpu = (unsigned long)hcpu; |
2263 | struct timer_list *t = &per_cpu(mce_timer, cpu); | 2263 | struct timer_list *t = &per_cpu(mce_timer, cpu); |
2264 | 2264 | ||
2265 | switch (action) { | 2265 | switch (action & ~CPU_TASKS_FROZEN) { |
2266 | case CPU_ONLINE: | 2266 | case CPU_ONLINE: |
2267 | case CPU_ONLINE_FROZEN: | ||
2268 | mce_device_create(cpu); | 2267 | mce_device_create(cpu); |
2269 | if (threshold_cpu_callback) | 2268 | if (threshold_cpu_callback) |
2270 | threshold_cpu_callback(action, cpu); | 2269 | threshold_cpu_callback(action, cpu); |
2271 | break; | 2270 | break; |
2272 | case CPU_DEAD: | 2271 | case CPU_DEAD: |
2273 | case CPU_DEAD_FROZEN: | ||
2274 | if (threshold_cpu_callback) | 2272 | if (threshold_cpu_callback) |
2275 | threshold_cpu_callback(action, cpu); | 2273 | threshold_cpu_callback(action, cpu); |
2276 | mce_device_remove(cpu); | 2274 | mce_device_remove(cpu); |
2277 | break; | 2275 | break; |
2278 | case CPU_DOWN_PREPARE: | 2276 | case CPU_DOWN_PREPARE: |
2279 | case CPU_DOWN_PREPARE_FROZEN: | ||
2280 | del_timer_sync(t); | 2277 | del_timer_sync(t); |
2281 | smp_call_function_single(cpu, mce_disable_cpu, &action, 1); | 2278 | smp_call_function_single(cpu, mce_disable_cpu, &action, 1); |
2282 | break; | 2279 | break; |
2283 | case CPU_DOWN_FAILED: | 2280 | case CPU_DOWN_FAILED: |
2284 | case CPU_DOWN_FAILED_FROZEN: | ||
2285 | smp_call_function_single(cpu, mce_reenable_cpu, &action, 1); | 2281 | smp_call_function_single(cpu, mce_reenable_cpu, &action, 1); |
2286 | mce_start_timer(cpu, t); | 2282 | mce_start_timer(cpu, t); |
2287 | break; | 2283 | break; |
2288 | case CPU_POST_DEAD: | 2284 | } |
2285 | |||
2286 | if (action == CPU_POST_DEAD) { | ||
2289 | /* intentionally ignoring frozen here */ | 2287 | /* intentionally ignoring frozen here */ |
2290 | cmci_rediscover(cpu); | 2288 | cmci_rediscover(cpu); |
2291 | break; | ||
2292 | } | 2289 | } |
2290 | |||
2293 | return NOTIFY_OK; | 2291 | return NOTIFY_OK; |
2294 | } | 2292 | } |
2295 | 2293 | ||