|
Borislav Petkov |
6c7f2f |
From: Josh Poimboeuf <jpoimboe@kernel.org>
|
|
Borislav Petkov |
6c7f2f |
Date: Tue, 14 Jun 2022 23:16:07 +0200
|
|
Borislav Petkov |
6c7f2f |
Subject: x86/speculation: Fix SPEC_CTRL write on SMT state change
|
|
Borislav Petkov |
6c7f2f |
Git-commit: 56aa4d221f1ee2c3a49b45b800778ec6e0ab73c5
|
|
Borislav Petkov |
d06c64 |
Patch-mainline: v5.19-rc4
|
|
Borislav Petkov |
6c7f2f |
References: bsc#1199657 CVE-2022-29900 CVE-2022-29901
|
|
Borislav Petkov |
6c7f2f |
|
|
Borislav Petkov |
6c7f2f |
If the SMT state changes, SSBD might get accidentally disabled. Fix
|
|
Borislav Petkov |
6c7f2f |
that.
|
|
Borislav Petkov |
6c7f2f |
|
|
Borislav Petkov |
6c7f2f |
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
|
|
Borislav Petkov |
6c7f2f |
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
|
|
Borislav Petkov |
6c7f2f |
Signed-off-by: Borislav Petkov <bp@suse.de>
|
|
Borislav Petkov |
6c7f2f |
---
|
|
Borislav Petkov |
6c7f2f |
arch/x86/kernel/cpu/bugs.c | 3 ++-
|
|
Borislav Petkov |
6c7f2f |
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
Borislav Petkov |
6c7f2f |
|
|
Borislav Petkov |
6c7f2f |
diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c
|
|
Borislav Petkov |
6c7f2f |
index 108bd74289c5..9b80059c4e02 100644
|
|
Borislav Petkov |
6c7f2f |
--- a/arch/x86/kernel/cpu/bugs.c
|
|
Borislav Petkov |
6c7f2f |
+++ b/arch/x86/kernel/cpu/bugs.c
|
|
Borislav Petkov |
6c7f2f |
@@ -1458,7 +1458,8 @@ static void __init spectre_v2_select_mitigation(void)
|
|
Borislav Petkov |
6c7f2f |
|
|
Borislav Petkov |
6c7f2f |
static void update_stibp_msr(void * __unused)
|
|
Borislav Petkov |
6c7f2f |
{
|
|
Borislav Petkov |
6c7f2f |
- write_spec_ctrl_current(x86_spec_ctrl_base, true);
|
|
Borislav Petkov |
6c7f2f |
+ u64 val = spec_ctrl_current() | (x86_spec_ctrl_base & SPEC_CTRL_STIBP);
|
|
Borislav Petkov |
6c7f2f |
+ write_spec_ctrl_current(val, true);
|
|
Borislav Petkov |
6c7f2f |
}
|
|
Borislav Petkov |
6c7f2f |
|
|
Borislav Petkov |
6c7f2f |
/* Update x86_spec_ctrl_base in case SMT state changed. */
|
|
Borislav Petkov |
6c7f2f |
|