[tip: x86/bugs] x86/bugs: Fix CONFIG_MITIGATION_RETPOLINE=n mitigation reporting
From: tip-bot2 for Kim Phillips
Date: Fri Oct 02 2026 - 20:43:43 EST
The following commit has been merged into the x86/bugs branch of tip:
Commit-ID: 1847c80537891baead3975f3ca969233ff7b2a11
Gitweb: https://git.kernel.org/tip/1847c80537891baead3975f3ca969233ff7b2a11
Author: Kim Phillips <kim.phillips@xxxxxxx>
AuthorDate: Mon, 31 Aug 2026 16:09:16 -05:00
Committer: Borislav Petkov (AMD) <bp@xxxxxxxxx>
CommitterDate: Fri, 02 Oct 2026 15:48:29 -07:00
x86/bugs: Fix CONFIG_MITIGATION_RETPOLINE=n mitigation reporting
When the kernel lacks retpoline support, spectre_v2_select_retpoline()
emits
"Kernel not compiled with retpoline; no mitigation available!"
before returning SPECTRE_V2_NONE to its callers. SPECTRE_V2_NONE is not
the final answer, though: spectre_v2_update_mitigation() runs afterwards
and can still upgrade the mitigation.
On an Intel CPU affected by RETBleed, built with
CONFIG_MITIGATION_IBRS_ENTRY=y and
CONFIG_MITIGATION_RETPOLINE=n,
and booted with spectre_v2=auto, retbleed_select_mitigation() picks
RETBLEED_MITIGATION_IBRS, and spectre_v2_update_mitigation() then promotes
SPECTRE_V2_NONE to SPECTRE_V2_IBRS. The boot log claims no mitigation is
available immediately before reporting
"Spectre V2 : Mitigation: IBRS",
and sysfs reports the machine as mitigated. The message is alarming and
simply wrong.
Drop "no mitigation available!" because the final mitigation state is printed
afterwards in spectre_v2_update_mitigation() anyway.
[ bp: Drop CC:stable, massage commit message. ]
Fixes: 480e803dacf8 ("x86/bugs: Restructure spectre_v2 mitigation")
Suggested-by: Pawan Gupta <pawan.kumar.gupta@xxxxxxxxxxxxxxx>
Assisted-by: LLM
Signed-off-by: Kim Phillips <kim.phillips@xxxxxxx>
Signed-off-by: Borislav Petkov (AMD) <bp@xxxxxxxxx>
Reviewed-by: Pawan Gupta <pawan.kumar.gupta@xxxxxxxxxxxxxxx>
Link: https://patch.msgid.link/20260831210916.987152-1-kim.phillips@xxxxxxx
---
arch/x86/kernel/cpu/bugs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c
index 1b2381d..000ebee 100644
--- a/arch/x86/kernel/cpu/bugs.c
+++ b/arch/x86/kernel/cpu/bugs.c
@@ -1958,7 +1958,7 @@ early_param("spectre_v2", spectre_v2_parse_cmdline);
static enum spectre_v2_mitigation __init spectre_v2_select_retpoline(void)
{
if (!IS_ENABLED(CONFIG_MITIGATION_RETPOLINE)) {
- pr_err("Kernel not compiled with retpoline; no mitigation available!");
+ pr_err("Kernel not compiled with retpoline");
return SPECTRE_V2_NONE;
}