linux/arch/x86/kernel/cpu
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
..
cpufreq CPUFREQ: Mark e_powersaver driver as EXPERIMENTAL and DANGEROUS 2009-06-10 15:22:44 -07:00
mcheck x86, mce: fix a race condition about mce_callin and no_way_out 2009-06-16 16:56:04 -07:00
mtrr Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-06-10 15:49:36 -07:00
.gitignore
addon_cpuid_features.c
amd.c Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-06-10 16:15:14 -07:00
bugs_64.c
bugs.c
centaur.c
cmpxchg.c
common.c Merge branch 'linus' into perfcounters/core 2009-06-11 17:55:42 +02:00
cpu_debug.c Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-06-10 15:51:15 -07:00
cpu.h
cyrix.c
hypervisor.c
intel_cacheinfo.c
intel.c
Makefile
mkcapflags.pl
perf_counter.c perf_counter/x86: Add a quirk for Atom processors 2009-06-12 13:48:32 +02:00
perfctr-watchdog.c
powerflags.c
proc.c
transmeta.c
umc.c
vmware.c