From: Huang Ying Date: Mon, 15 Jun 2009 07:37:07 +0000 (+0800) Subject: x86, mce: fix a race condition about mce_callin and no_way_out X-Git-Tag: v2.6.31-rc1~97^2^2~21 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=184e1fdfea066ab8f12a1e8912f402d2d6556d11;p=pandora-kernel.git 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 Acked-by: Andi Kleen Acked-by: Hidetoshi Seto --- Reading git-diff-tree failed