]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
x86/bugs: Add attack vector controls for spectre_v2
authorDavid Kaplan <david.kaplan@amd.com>
Mon, 7 Jul 2025 18:33:10 +0000 (13:33 -0500)
committerBorislav Petkov (AMD) <bp@alien8.de>
Fri, 11 Jul 2025 15:56:41 +0000 (17:56 +0200)
Use attack vector controls to determine if spectre_v2 mitigation is
required.

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

index 2022f05a2ce72999f3c9bace3bc236bc2600ec28..94c72f485707d24d97e5692342ce181fed34b78c 100644 (file)
@@ -2013,8 +2013,7 @@ static enum spectre_v2_mitigation_cmd __init spectre_v2_parse_cmdline(void)
        int ret, i;
 
        cmd = IS_ENABLED(CONFIG_MITIGATION_SPECTRE_V2) ?  SPECTRE_V2_CMD_AUTO : SPECTRE_V2_CMD_NONE;
-       if (cmdline_find_option_bool(boot_command_line, "nospectre_v2") ||
-           cpu_mitigations_off())
+       if (cmdline_find_option_bool(boot_command_line, "nospectre_v2"))
                return SPECTRE_V2_CMD_NONE;
 
        ret = cmdline_find_option(boot_command_line, "spectre_v2", arg, sizeof(arg));
@@ -2286,8 +2285,11 @@ static void __init spectre_v2_select_mitigation(void)
        case SPECTRE_V2_CMD_NONE:
                return;
 
-       case SPECTRE_V2_CMD_FORCE:
        case SPECTRE_V2_CMD_AUTO:
+               if (!should_mitigate_vuln(X86_BUG_SPECTRE_V2))
+                       break;
+               fallthrough;
+       case SPECTRE_V2_CMD_FORCE:
                if (boot_cpu_has(X86_FEATURE_IBRS_ENHANCED)) {
                        spectre_v2_enabled = SPECTRE_V2_EIBRS;
                        break;
@@ -2341,7 +2343,7 @@ static void __init spectre_v2_update_mitigation(void)
                }
        }
 
-       if (boot_cpu_has_bug(X86_BUG_SPECTRE_V2) && !cpu_mitigations_off())
+       if (boot_cpu_has_bug(X86_BUG_SPECTRE_V2))
                pr_info("%s\n", spectre_v2_strings[spectre_v2_enabled]);
 }