Commit 0fe4aeea authored by Josh Poimboeuf's avatar Josh Poimboeuf Committed by Borislav Petkov
Browse files

x86/bugs: Do IBPB fallback check only once



When booting with retbleed=auto, if the kernel wasn't built with
CONFIG_CC_HAS_RETURN_THUNK, the mitigation falls back to IBPB.  Make
sure a warning is printed in that case.  The IBPB fallback check is done
twice, but it really only needs to be done once.

Signed-off-by: default avatarJosh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
parent 3ebc1700
Loading
Loading
Loading
Loading
+5 −10
Original line number Original line Diff line number Diff line
@@ -891,18 +891,13 @@ static void __init retbleed_select_mitigation(void)
	case RETBLEED_CMD_AUTO:
	case RETBLEED_CMD_AUTO:
	default:
	default:
		if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD ||
		if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD ||
		    boot_cpu_data.x86_vendor == X86_VENDOR_HYGON) {
		    boot_cpu_data.x86_vendor == X86_VENDOR_HYGON)

			if (IS_ENABLED(CONFIG_RETPOLINE) &&
			    IS_ENABLED(CONFIG_CC_HAS_RETURN_THUNK))
			retbleed_mitigation = RETBLEED_MITIGATION_UNRET;
			retbleed_mitigation = RETBLEED_MITIGATION_UNRET;
			else
				retbleed_mitigation = RETBLEED_MITIGATION_IBPB;
		}


		/*
		/*
		 * The Intel mitigation (IBRS) was already selected in
		 * The Intel mitigation (IBRS or eIBRS) was already selected in
		 * spectre_v2_select_mitigation().
		 * spectre_v2_select_mitigation().  'retbleed_mitigation' will
		 * be set accordingly below.
		 */
		 */


		break;
		break;