aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2010-03-30 08:32:34 +0100
committerKeir Fraser <keir.fraser@citrix.com>2010-03-30 08:32:34 +0100
commit24f2d7393849de5aec0ff36f3b02d22d327de59e (patch)
tree404d87753206f08243a5a266ec0f7b096302c3fb
parente1a5597bc844d14d4d46a88b301b9cea39729634 (diff)
downloadxen-24f2d7393849de5aec0ff36f3b02d22d327de59e.tar.gz
xen-24f2d7393849de5aec0ff36f3b02d22d327de59e.tar.bz2
xen-24f2d7393849de5aec0ff36f3b02d22d327de59e.zip
mcheck: Small fix for CMCI Threshold set problem.
When generating new threshold value, we must firstly clean old value before or the new set value since the new value might be different with the old (BIOS might pre-set some threshold). Signed-off-by: Liping Ke <liping.ke@intel.com> Signed-off-by: Ying Huang <ying.huang@intel.com>
-rw-r--r--xen/arch/x86/cpu/mcheck/mce_intel.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/xen/arch/x86/cpu/mcheck/mce_intel.c b/xen/arch/x86/cpu/mcheck/mce_intel.c
index 9e56df9ca9..0eefd9263c 100644
--- a/xen/arch/x86/cpu/mcheck/mce_intel.c
+++ b/xen/arch/x86/cpu/mcheck/mce_intel.c
@@ -824,6 +824,8 @@ static int do_cmci_discover(int i)
clear_bit(i, __get_cpu_var(mce_banks_owned));
goto out;
}
+
+ val &= ~CMCI_THRESHOLD_MASK;
wrmsrl(msr, val | CMCI_EN | CMCI_THRESHOLD);
rdmsrl(msr, val);