Commit 36d4fe14 authored by Josh Poimboeuf's avatar Josh Poimboeuf Committed by Ingo Molnar
Browse files

x86/bugs: Remove CONFIG_BHI_MITIGATION_AUTO and spectre_bhi=auto



Unlike most other mitigations' "auto" options, spectre_bhi=auto only
mitigates newer systems, which is confusing and not particularly useful.

Remove it.

Signed-off-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
Reviewed-by: default avatarNikolay Borisov <nik.borisov@suse.com>
Cc: Sean Christopherson <seanjc@google.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: https://lore.kernel.org/r/412e9dc87971b622bbbaf64740ebc1f140bff343.1712813475.git.jpoimboe@kernel.org
parent 5f882f3b
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -669,10 +669,6 @@ kernel command line.
			needed.
		off
			Disable the mitigation.
		auto
			Enable the HW mitigation if needed, but
			*don't* enable the SW mitigation except for KVM.
			The system may be vulnerable.

For spectre_v2_user see Documentation/admin-guide/kernel-parameters.txt

+0 −3
Original line number Diff line number Diff line
@@ -6072,9 +6072,6 @@
			on   - (default) Enable the HW or SW mitigation
			       as needed.
			off  - Disable the mitigation.
			auto - Enable the HW mitigation if needed, but
			       *don't* enable the SW mitigation except
			       for KVM.  The system may be vulnerable.

	spectre_v2=	[X86,EARLY] Control mitigation of Spectre variant 2
			(indirect branch speculation) vulnerability.
+0 −5
Original line number Diff line number Diff line
@@ -2651,11 +2651,6 @@ config SPECTRE_BHI_OFF
	bool "off"
	help
	  Equivalent to setting spectre_bhi=off command line parameter.
config SPECTRE_BHI_AUTO
	bool "auto"
	depends on BROKEN
	help
	  Equivalent to setting spectre_bhi=auto command line parameter.

endchoice

+1 −9
Original line number Diff line number Diff line
@@ -1625,13 +1625,10 @@ static bool __init spec_ctrl_bhi_dis(void)
enum bhi_mitigations {
	BHI_MITIGATION_OFF,
	BHI_MITIGATION_ON,
	BHI_MITIGATION_AUTO,
};

static enum bhi_mitigations bhi_mitigation __ro_after_init =
	IS_ENABLED(CONFIG_SPECTRE_BHI_ON)  ? BHI_MITIGATION_ON  :
	IS_ENABLED(CONFIG_SPECTRE_BHI_OFF) ? BHI_MITIGATION_OFF :
					     BHI_MITIGATION_AUTO;
	IS_ENABLED(CONFIG_SPECTRE_BHI_ON) ? BHI_MITIGATION_ON : BHI_MITIGATION_OFF;

static int __init spectre_bhi_parse_cmdline(char *str)
{
@@ -1642,8 +1639,6 @@ static int __init spectre_bhi_parse_cmdline(char *str)
		bhi_mitigation = BHI_MITIGATION_OFF;
	else if (!strcmp(str, "on"))
		bhi_mitigation = BHI_MITIGATION_ON;
	else if (!strcmp(str, "auto"))
		bhi_mitigation = BHI_MITIGATION_AUTO;
	else
		pr_err("Ignoring unknown spectre_bhi option (%s)", str);

@@ -1673,9 +1668,6 @@ static void __init bhi_select_mitigation(void)
	setup_force_cpu_cap(X86_FEATURE_CLEAR_BHB_LOOP_ON_VMEXIT);
	pr_info("Spectre BHI mitigation: SW BHB clearing on vm exit\n");

	if (bhi_mitigation == BHI_MITIGATION_AUTO)
		return;

	/* Mitigate syscalls when the mitigation is forced =on */
	setup_force_cpu_cap(X86_FEATURE_CLEAR_BHB_LOOP);
	pr_info("Spectre BHI mitigation: SW BHB clearing on syscall\n");