x86/alternative: Use .ibt_endbr_seal to seal indirect calls
authorPeter Zijlstra <peterz@infradead.org>
Tue, 8 Mar 2022 15:30:56 +0000 (16:30 +0100)
committerPeter Zijlstra <peterz@infradead.org>
Tue, 15 Mar 2022 09:32:47 +0000 (10:32 +0100)
commited53a0d971926e484d86cce617ec02a7ee85c3fe
tree1423484f3912113c56c0b77fa5b0397113040828
parent89bc853eae4ad125030ef99f207ba76c2f00a26e
x86/alternative: Use .ibt_endbr_seal to seal indirect calls

Objtool's --ibt option generates .ibt_endbr_seal which lists
superfluous ENDBR instructions. That is those instructions for which
the function is never indirectly called.

Overwrite these ENDBR instructions with a NOP4 such that these
function can never be indirect called, reducing the number of viable
ENDBR targets in the kernel.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
Link: https://lore.kernel.org/r/20220308154319.822545231@infradead.org
arch/um/kernel/um_arch.c
arch/x86/Kconfig
arch/x86/include/asm/alternative.h
arch/x86/include/asm/ibt.h
arch/x86/kernel/alternative.c
arch/x86/kernel/module.c
scripts/Makefile.build
scripts/link-vmlinux.sh