]> 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 05:50:59 +0000 (07:50 +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 2143358d0c4c74816ec903eac6c53ea86b8a71ea..78fd2442b49dcd5acde20de3b7584342bd265e53 100644 (file)
@@ -16,7 +16,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