]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commit
x86/alternative: Implement .retpoline_sites support
authorPeter Zijlstra <peterz@infradead.org>
Tue, 26 Oct 2021 12:01:42 +0000 (14:01 +0200)
committerPeter Zijlstra <peterz@infradead.org>
Thu, 28 Oct 2021 21:25:27 +0000 (23:25 +0200)
commit7508500900814d14e2e085cdc4e28142721abbdf
tree4776ae7d32fa640324f929a0bb23bfd56a86e1bc
parent1a6f74429c42a3854980359a758e222005712aee
x86/alternative: Implement .retpoline_sites support

Rewrite retpoline thunk call sites to be indirect calls for
spectre_v2=off. This ensures spectre_v2=off is as near to a
RETPOLINE=n build as possible.

This is the replacement for objtool writing alternative entries to
ensure the same and achieves feature-parity with the previous
approach.

One noteworthy feature is that it relies on the thunks to be in
machine order to compute the register index.

Specifically, this does not yet address the Jcc __x86_indirect_thunk_*
calls generated by clang, a future patch will add this.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Borislav Petkov <bp@suse.de>
Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
Tested-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/r/20211026120310.232495794@infradead.org
arch/um/kernel/um_arch.c
arch/x86/include/asm/alternative.h
arch/x86/kernel/alternative.c
arch/x86/kernel/module.c