ANDROID: bpf: disable CFI in 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: Iea72f5a9fe09dd5adbb90b0174945707f42594b0 Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
This commit is contained in:

committed by
Alistair Delva

parent
db36655a24
commit
e97c57662c
@@ -635,7 +635,7 @@ struct bpf_dispatcher {
|
|||||||
struct bpf_ksym ksym;
|
struct bpf_ksym ksym;
|
||||||
};
|
};
|
||||||
|
|
||||||
static __always_inline unsigned int bpf_dispatcher_nop_func(
|
static __always_inline __nocfi unsigned int bpf_dispatcher_nop_func(
|
||||||
const void *ctx,
|
const void *ctx,
|
||||||
const struct bpf_insn *insnsi,
|
const struct bpf_insn *insnsi,
|
||||||
unsigned int (*bpf_func)(const void *,
|
unsigned int (*bpf_func)(const void *,
|
||||||
@@ -663,7 +663,7 @@ void bpf_trampoline_put(struct bpf_trampoline *tr);
|
|||||||
}
|
}
|
||||||
|
|
||||||
#define DEFINE_BPF_DISPATCHER(name) \
|
#define DEFINE_BPF_DISPATCHER(name) \
|
||||||
noinline unsigned int bpf_dispatcher_##name##_func( \
|
noinline __nocfi unsigned int bpf_dispatcher_##name##_func( \
|
||||||
const void *ctx, \
|
const void *ctx, \
|
||||||
const struct bpf_insn *insnsi, \
|
const struct bpf_insn *insnsi, \
|
||||||
unsigned int (*bpf_func)(const void *, \
|
unsigned int (*bpf_func)(const void *, \
|
||||||
|
Reference in New Issue
Block a user