summaryrefslogtreecommitdiff
path: root/arch/x86
diff options
context:
space:
mode:
authorAndi Kleen <andi@firstfloor.org>2009-02-12 13:49:37 +0100
committerH. Peter Anvin <hpa@zytor.com>2009-02-24 13:41:01 -0800
commit5ca8681ca10f671427710f4954644359856581a3 (patch)
tree35d14e43d01150c2d04d487296ce4ae69dec2131 /arch/x86
parentdf20e2eb3e59b8625021a1bc8b1b53a4edc6008b (diff)
x86, mce, cmci: disable CMCI on rebooting
Impact: Avoids confusing other OSes. Disable the CMCI vector on reboot to avoid confusing other OS. Signed-off-by: Andi Kleen <ak@linux.intel.com> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/kernel/apic.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/x86/kernel/apic.c b/arch/x86/kernel/apic.c
index 570f36e44e59..648676f0b50a 100644
--- a/arch/x86/kernel/apic.c
+++ b/arch/x86/kernel/apic.c
@@ -868,6 +868,14 @@ void clear_local_APIC(void)
apic_write(APIC_LVTTHMR, v | APIC_LVT_MASKED);
}
#endif
+#ifdef CONFIG_X86_MCE_INTEL
+ if (maxlvt >= 6) {
+ v = apic_read(APIC_LVTCMCI);
+ if (!(v & APIC_LVT_MASKED))
+ apic_write(APIC_LVTCMCI, v | APIC_LVT_MASKED);
+ }
+#endif
+
/*
* Clean APIC state for other OSs:
*/