|
Borislav Petkov |
8e5641 |
From: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
|
|
Borislav Petkov |
8e5641 |
Date: Thu, 7 Jul 2022 13:41:52 -0300
|
|
Borislav Petkov |
8e5641 |
Subject: [PATCH] x86/bugs: Do not enable IBPB-on-entry when IBPB is not supported
|
|
Borislav Petkov |
d06c64 |
Patch-mainline: v5.19-rc4
|
|
Borislav Petkov |
d06c64 |
Git-commit: 2259da159fbe5dba8ac00b560cf00b6a6537fa18
|
|
Borislav Petkov |
8e5641 |
References: bsc#1199657 CVE-2022-29900 CVE-2022-29901
|
|
Borislav Petkov |
8e5641 |
|
|
Borislav Petkov |
8e5641 |
There are some VM configurations which have Skylake model but do not
|
|
Borislav Petkov |
8e5641 |
support IBPB. In those cases, when using retbleed=ibpb, userspace is going
|
|
Borislav Petkov |
8e5641 |
to be killed and kernel is going to panic.
|
|
Borislav Petkov |
8e5641 |
|
|
Borislav Petkov |
8e5641 |
If the CPU does not support IBPB, warn and proceed with the auto option. Also,
|
|
Borislav Petkov |
8e5641 |
do not fallback to IBPB on AMD/Hygon systems if it is not supported.
|
|
Borislav Petkov |
8e5641 |
|
|
Borislav Petkov |
8e5641 |
Fixes: 3ebc17006888 ("x86/bugs: Add retbleed=ibpb")
|
|
Borislav Petkov |
8e5641 |
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
|
|
Borislav Petkov |
7e3175 |
|
|
Borislav Petkov |
7e3175 |
[ bp: The fallback to IBPB when RETBLEED_CMD_AUTO doesn't make sense for our
|
|
Borislav Petkov |
7e3175 |
trees because upstream has fine-grained config options which we didn't
|
|
Borislav Petkov |
7e3175 |
backport. ]
|
|
Borislav Petkov |
7e3175 |
|
|
Borislav Petkov |
8e5641 |
Signed-off-by: Borislav Petkov <bp@suse.de>
|
|
Borislav Petkov |
8e5641 |
---
|
|
Borislav Petkov |
7e3175 |
arch/x86/kernel/cpu/bugs.c | 5 +++++
|
|
Borislav Petkov |
7e3175 |
1 file changed, 5 insertions(+)
|
|
Borislav Petkov |
8e5641 |
|
|
Borislav Petkov |
8e5641 |
--- a/arch/x86/kernel/cpu/bugs.c
|
|
Borislav Petkov |
8e5641 |
+++ b/arch/x86/kernel/cpu/bugs.c
|
|
Borislav Petkov |
7e3175 |
@@ -930,9 +930,14 @@ static void __init retbleed_select_mitig
|
|
Borislav Petkov |
8e5641 |
break;
|
|
Borislav Petkov |
8e5641 |
|
|
Borislav Petkov |
8e5641 |
case RETBLEED_CMD_IBPB:
|
|
Borislav Petkov |
8e5641 |
+ if (!boot_cpu_has(X86_FEATURE_IBPB)) {
|
|
Borislav Petkov |
8e5641 |
+ pr_err("WARNING: CPU does not support IBPB.\n");
|
|
Borislav Petkov |
8e5641 |
+ goto do_cmd_auto;
|
|
Borislav Petkov |
8e5641 |
+ }
|
|
Borislav Petkov |
8e5641 |
retbleed_mitigation = RETBLEED_MITIGATION_IBPB;
|
|
Borislav Petkov |
8e5641 |
break;
|
|
Borislav Petkov |
8e5641 |
|
|
Borislav Petkov |
8e5641 |
+do_cmd_auto:
|
|
Borislav Petkov |
8e5641 |
case RETBLEED_CMD_AUTO:
|
|
Borislav Petkov |
8e5641 |
default:
|
|
Borislav Petkov |
8e5641 |
if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD ||
|