]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commit
objtool/x86: Rewrite retpoline thunk calls
authorPeter Zijlstra <peterz@infradead.org>
Fri, 26 Mar 2021 15:12:15 +0000 (16:12 +0100)
committerIngo Molnar <mingo@kernel.org>
Fri, 2 Apr 2021 10:47:28 +0000 (12:47 +0200)
commit9bc0bb50727c8ac69fbb33fb937431cf3518ff37
tree586a82e95847ae6c3f393728fb074b1d6df9ae71
parent50e7b4a1a1b264fc7df0698f2defb93cadf19a7b
objtool/x86: Rewrite retpoline thunk calls

When the compiler emits: "CALL __x86_indirect_thunk_\reg" for an
indirect call, have objtool rewrite it to:

ALTERNATIVE "call __x86_indirect_thunk_\reg",
    "call *%reg", ALT_NOT(X86_FEATURE_RETPOLINE)

Additionally, in order to not emit endless identical
.altinst_replacement chunks, use a global symbol for them, see
__x86_indirect_alt_*.

This also avoids objtool from having to do code generation.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Miroslav Benes <mbenes@suse.cz>
Link: https://lkml.kernel.org/r/20210326151300.320177914@infradead.org
arch/x86/include/asm/asm-prototypes.h
arch/x86/lib/retpoline.S
tools/objtool/arch/x86/decode.c