]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
x86/bugs: Fix reporting of LFENCE retpoline
authorDavid Kaplan <david.kaplan@amd.com>
Mon, 15 Sep 2025 13:47:05 +0000 (08:47 -0500)
committerBorislav Petkov (AMD) <bp@alien8.de>
Tue, 16 Sep 2025 11:21:21 +0000 (13:21 +0200)
The LFENCE retpoline mitigation is not secure but the kernel prints
inconsistent messages about this fact.  The dmesg log says 'Mitigation:
LFENCE', implying the system is mitigated.  But sysfs reports 'Vulnerable:
LFENCE' implying the system (correctly) is not mitigated.

Fix this by printing a consistent 'Vulnerable: LFENCE' string everywhere
when this mitigation is selected.

Signed-off-by: David Kaplan <david.kaplan@amd.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Link: https://lore.kernel.org/20250915134706.3201818-1-david.kaplan@amd.com
arch/x86/kernel/cpu/bugs.c

index 145f8777aa32d41902835c17792ebdabbb897268..66dbb3bd27912320281f160ea25ac383f364c80b 100644 (file)
@@ -2032,7 +2032,7 @@ static void __init spectre_v2_user_apply_mitigation(void)
 static const char * const spectre_v2_strings[] = {
        [SPECTRE_V2_NONE]                       = "Vulnerable",
        [SPECTRE_V2_RETPOLINE]                  = "Mitigation: Retpolines",
-       [SPECTRE_V2_LFENCE]                     = "Mitigation: LFENCE",
+       [SPECTRE_V2_LFENCE]                     = "Vulnerable: LFENCE",
        [SPECTRE_V2_EIBRS]                      = "Mitigation: Enhanced / Automatic IBRS",
        [SPECTRE_V2_EIBRS_LFENCE]               = "Mitigation: Enhanced / Automatic IBRS + LFENCE",
        [SPECTRE_V2_EIBRS_RETPOLINE]            = "Mitigation: Enhanced / Automatic IBRS + Retpolines",
@@ -3559,9 +3559,6 @@ static const char *spectre_bhi_state(void)
 
 static ssize_t spectre_v2_show_state(char *buf)
 {
-       if (spectre_v2_enabled == SPECTRE_V2_LFENCE)
-               return sysfs_emit(buf, "Vulnerable: LFENCE\n");
-
        if (spectre_v2_enabled == SPECTRE_V2_EIBRS && unprivileged_ebpf_enabled())
                return sysfs_emit(buf, "Vulnerable: eIBRS with unprivileged eBPF\n");