]> git.ipfire.org Git - thirdparty/linux.git/commit
x86/bugs: Fix the SRSO mitigation on Zen3/4
authorBorislav Petkov (AMD) <bp@alien8.de>
Thu, 28 Mar 2024 12:59:05 +0000 (13:59 +0100)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 29 Mar 2024 19:13:12 +0000 (12:13 -0700)
commit4535e1a4174c4111d92c5a9a21e542d232e0fcaa
tree66bebce8a5f6fb8b4e17553421dfbc9ab39acb21
parent091619baace558cff8b6dab919294f991fe8e182
x86/bugs: Fix the SRSO mitigation on Zen3/4

The original version of the mitigation would patch in the calls to the
untraining routines directly.  That is, the alternative() in UNTRAIN_RET
will patch in the CALL to srso_alias_untrain_ret() directly.

However, even if commit e7c25c441e9e ("x86/cpu: Cleanup the untrain
mess") meant well in trying to clean up the situation, due to micro-
architectural reasons, the untraining routine srso_alias_untrain_ret()
must be the target of a CALL instruction and not of a JMP instruction as
it is done now.

Reshuffle the alternative macros to accomplish that.

Fixes: e7c25c441e9e ("x86/cpu: Cleanup the untrain mess")
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Ingo Molnar <mingo@kernel.org>
Cc: stable@kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/x86/include/asm/asm-prototypes.h
arch/x86/include/asm/nospec-branch.h
arch/x86/lib/retpoline.S