Commit 530e8064 authored by Pawan Gupta's avatar Pawan Gupta Committed by Borislav Petkov (AMD)
Browse files

x86/bugs: Simplify the retbleed=stuff checks

parent 98ff5c07
Loading
Loading
Loading
Loading
+8 −16
Original line number Diff line number Diff line
@@ -1263,24 +1263,16 @@ static void __init retbleed_update_mitigation(void)
	if (!boot_cpu_has_bug(X86_BUG_RETBLEED) || cpu_mitigations_off())
		return;

	/*
	 * retbleed=stuff is only allowed on Intel.  If stuffing can't be used
	 * then a different mitigation will be selected below.
	 *
	 * its=stuff will also attempt to enable stuffing.
	 */
	if (retbleed_mitigation == RETBLEED_MITIGATION_STUFF ||
	    its_mitigation == ITS_MITIGATION_RETPOLINE_STUFF) {
		if (spectre_v2_enabled != SPECTRE_V2_RETPOLINE) {
	 /* ITS can also enable stuffing */
	if (its_mitigation == ITS_MITIGATION_RETPOLINE_STUFF)
		retbleed_mitigation = RETBLEED_MITIGATION_STUFF;

	if (retbleed_mitigation == RETBLEED_MITIGATION_STUFF &&
	    spectre_v2_enabled != SPECTRE_V2_RETPOLINE) {
		pr_err("WARNING: retbleed=stuff depends on spectre_v2=retpoline\n");
		retbleed_mitigation = RETBLEED_MITIGATION_NONE;
		} else {
			if (retbleed_mitigation != RETBLEED_MITIGATION_STUFF)
				pr_info("Retbleed mitigation updated to stuffing\n");

			retbleed_mitigation = RETBLEED_MITIGATION_STUFF;
		}
	}

	/*
	 * Let IBRS trump all on Intel without affecting the effects of the
	 * retbleed= cmdline option except for call depth based stuffing