OSDN Git Service

x86/ibt,bpf: Add ENDBR instructions to prologue and trampoline
authorPeter Zijlstra <peterz@infradead.org>
Tue, 8 Mar 2022 15:30:33 +0000 (16:30 +0100)
committerPeter Zijlstra <peterz@infradead.org>
Tue, 15 Mar 2022 09:32:38 +0000 (10:32 +0100)
commit58912710558889629daae3e0824daacab663bd4a
tree30d77a65f42cafbf37d3790fde2eddc975b99cd7
parentcc66bb91457827f62e2b6cb2518666820f0a6c48
x86/ibt,bpf: Add ENDBR instructions to prologue and trampoline

With IBT enabled builds we need ENDBR instructions at indirect jump
target sites, since we start execution of the JIT'ed code through an
indirect jump, the very first instruction needs to be ENDBR.

Similarly, since eBPF tail-calls use indirect branches, their landing
site needs to be an ENDBR too.

The trampolines need similar adjustment.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Fixed-by: Kumar Kartikeya Dwivedi <memxor@gmail.com>
Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
Link: https://lore.kernel.org/r/20220308154318.464998838@infradead.org
arch/x86/net/bpf_jit_comp.c