ANDROID: bpf: disable CFI for dispatcher functions

BPF dispatcher functions are patched at runtime to perform direct
instead of indirect calls. Disable CFI for the dispatcher functions
to avoid conflicts.

Bug: 145210207
Change-Id: I61dc7ce8a549145a79b7e69c646888578e0641ba
Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
This commit is contained in:
Sami Tolvanen 2020-01-29 15:14:14 -08:00
parent f6a4d900cc
commit cedd91c6f4

View File

@ -489,7 +489,7 @@ struct bpf_dispatcher {
u32 image_off;
};
static __always_inline unsigned int bpf_dispatcher_nopfunc(
static __always_inline __nocfi unsigned int bpf_dispatcher_nopfunc(
const void *ctx,
const struct bpf_insn *insnsi,
unsigned int (*bpf_func)(const void *,
@ -513,7 +513,7 @@ void *bpf_jit_alloc_exec_page(void);
}
#define DEFINE_BPF_DISPATCHER(name) \
noinline unsigned int name##func( \
noinline __nocfi unsigned int name##func( \
const void *ctx, \
const struct bpf_insn *insnsi, \
unsigned int (*bpf_func)(const void *, \