mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 23:32:14 +00:00
add infrastructure for tagging functions as error injectable
Using BPF we can override kprob'ed functions and return arbitrary values. Obviously this can be a bit unsafe, so make this feature opt-in for functions. Simply tag a function with KPROBE_ERROR_INJECT_SYMBOL in order to give BPF access to that function for error injection purposes. Signed-off-by: Josef Bacik <jbacik@fb.com> Acked-by: Ingo Molnar <mingo@kernel.org> Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
parent
a23967c181
commit
92ace9991d
6 changed files with 195 additions and 1 deletions
|
@ -580,4 +580,15 @@ extern const struct bpf_func_proto bpf_sock_map_update_proto;
|
|||
void bpf_user_rnd_init_once(void);
|
||||
u64 bpf_user_rnd_u32(u64 r1, u64 r2, u64 r3, u64 r4, u64 r5);
|
||||
|
||||
#if defined(__KERNEL__) && !defined(__ASSEMBLY__)
|
||||
#ifdef CONFIG_BPF_KPROBE_OVERRIDE
|
||||
#define BPF_ALLOW_ERROR_INJECTION(fname) \
|
||||
static unsigned long __used \
|
||||
__attribute__((__section__("_kprobe_error_inject_list"))) \
|
||||
_eil_addr_##fname = (unsigned long)fname;
|
||||
#else
|
||||
#define BPF_ALLOW_ERROR_INJECTION(fname)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif /* _LINUX_BPF_H */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue