From: Konrad Rzeszutek Wilk Date: Sat, 12 May 2018 00:16:26 +0000 (-0400) Subject: x86/bugs/IBRS: Warn if IBRS is enabled during boot. X-Git-Tag: v4.1.12-124.31.3~779 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=35e2983d16be6183f03841d8167fde9bd81413cf;p=users%2Fjedix%2Flinux-maple.git x86/bugs/IBRS: Warn if IBRS is enabled during boot. It should never be. But in case it is lets warn and clear it. OraBug: 28041771 CVE: CVE-2018-3639 Signed-off-by: Konrad Rzeszutek Wilk Reviewed-by: Mihai Carabas Signed-off-by: Brian Maly --- diff --git a/arch/x86/kernel/cpu/bugs_64.c b/arch/x86/kernel/cpu/bugs_64.c index 2b83e8899a0b..ec6df4448c94 100644 --- a/arch/x86/kernel/cpu/bugs_64.c +++ b/arch/x86/kernel/cpu/bugs_64.c @@ -123,7 +123,10 @@ void __init check_bugs(void) */ if (boot_cpu_has(X86_FEATURE_IBRS)) { rdmsrl(MSR_IA32_SPEC_CTRL, x86_spec_ctrl_base); - + if (x86_spec_ctrl_base & SPEC_CTRL_IBRS) { + pr_warn("SPEC CTRL MSR (0x%16llx) has IBRS set during boot, clearing it.", x86_spec_ctrl_base); + x86_spec_ctrl_base &= ~(SPEC_CTRL_IBRS); + } x86_spec_ctrl_priv = x86_spec_ctrl_base; }