aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2012-07-19 13:59:40 -0400
committerTony Luck <tony.luck@intel.com>2012-08-03 14:46:50 -0400
commit1a65f970d10ace7a1e399f9061a65679c0ae57d0 (patch)
tree7ae933b1c49b4c20a77b770c3a96b983f48d915f /arch
parent26c3c283c5b08dd250279c06ba3ab5b094bbacc3 (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.c12
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