linux/arch/x86/kernel/cpu/mcheck
Huang Ying 184e1fdfea x86, mce: fix a race condition about mce_callin and no_way_out
If one CPU has no_way_out == 1, all other CPUs should have no_way_out
== 1. But despite global_nwo is read after mce_callin, global_nwo is
updated after mce_callin too. So it is possible that some CPU read
global_nwo before some other CPU update global_nwo, so that no_way_out
== 1 for some CPU, while no_way_out == 0 for some other CPU.

This patch fixes this race condition via moving mce_callin updating
after global_nwo updating, with a smp_wmb in between. A smp_rmb is
added between their reading too.

Signed-off-by: Huang Ying <ying.huang@intel.com>
Acked-by: Andi Kleen <ak@linux.intel.com>
Acked-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
2009-06-16 16:56:04 -07:00
..
k7.c x86, mce: clean up k7.c 2009-05-28 09:24:10 -07:00
Makefile x86, mce: add table driven machine check grading 2009-06-03 14:40:39 -07:00
mce_amd_64.c x86, mce: trivial clean up for mce_amd_64.c 2009-05-28 09:24:16 -07:00
mce_intel_64.c Merge branch 'linus' into x86/mce3 2009-06-11 23:31:52 +02:00
mce_intel.c x86, mce: Cleanup symbols in intel thermal codes 2009-05-28 09:24:11 -07:00
mce-inject.c x86, mce: rename mce_notify_user to mce_notify_irq 2009-06-03 14:48:04 -07:00
mce-internal.h x86, mce: implement new status bits 2009-06-03 14:45:34 -07:00
mce-severity.c x86, mce: export MCE severities coverage via debugfs 2009-06-03 14:45:34 -07:00
mce.c x86, mce: fix a race condition about mce_callin and no_way_out 2009-06-16 16:56:04 -07:00
mce.h x86, mce: use 64bit machine check code on 32bit 2009-05-28 09:24:13 -07:00
non-fatal.c x86, mce: clean up non-fatal.c 2009-05-28 09:24:10 -07:00
p4.c x86, mce: Cleanup symbols in intel thermal codes 2009-05-28 09:24:11 -07:00
p5.c x86, mce: use 64bit machine check code on 32bit 2009-05-28 09:24:13 -07:00
p6.c x86, mce: clean up p6.c 2009-05-28 09:24:09 -07:00
therm_throt.c x86, mce: trivial clean up for therm_throt.c 2009-05-28 09:24:15 -07:00
threshold.c x86, mce: enable MCE_INTEL for 32bit new MCE 2009-05-28 09:24:13 -07:00
winchip.c x86, mce: clean up winchip.c 2009-05-28 09:24:10 -07:00