]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
x86/bugs: Use SBPB in write_ibpb() if applicable
authorJosh Poimboeuf <jpoimboe@kernel.org>
Tue, 8 Apr 2025 21:47:31 +0000 (14:47 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 2 May 2025 06:02:08 +0000 (08:02 +0200)
[ Upstream commit fc9fd3f98423367c79e0bd85a9515df26dc1b3cc ]

write_ibpb() does IBPB, which (among other things) flushes branch type
predictions on AMD.  If the CPU has SRSO_NO, or if the SRSO mitigation
has been disabled, branch type flushing isn't needed, in which case the
lighter-weight SBPB can be used.

The 'x86_pred_cmd' variable already keeps track of whether IBPB or SBPB
should be used.  Use that instead of hardcoding IBPB.

Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/17c5dcd14b29199b75199d67ff7758de9d9a4928.1744148254.git.jpoimboe@kernel.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/x86/entry/entry.S

index b7ea3e8e9eccd540a2ff55eda7a05266a48a4f49..58e3124ee2b420ce88c591956489a136a024366b 100644 (file)
@@ -18,7 +18,7 @@
 
 SYM_FUNC_START(entry_ibpb)
        movl    $MSR_IA32_PRED_CMD, %ecx
-       movl    $PRED_CMD_IBPB, %eax
+       movl    _ASM_RIP(x86_pred_cmd), %eax
        xorl    %edx, %edx
        wrmsr