]> git.baikalelectronics.ru Git - kernel.git/commit
bpf: add a bpf_override_function helper
authorJosef Bacik <jbacik@fb.com>
Tue, 7 Nov 2017 20:28:42 +0000 (15:28 -0500)
committerDavid S. Miller <davem@davemloft.net>
Sat, 11 Nov 2017 03:18:05 +0000 (12:18 +0900)
commit4354fc95d8f507d88a5b6999d22a0a50d1cb4309
tree80e320112959e90d474fd20e644b8377217dad0b
parent1971c169d0a1f621e18111b229316687a52900be
bpf: add a bpf_override_function helper

Error injection is sloppy and very ad-hoc.  BPF could fill this niche
perfectly with it's kprobe functionality.  We could make sure errors are
only triggered in specific call chains that we care about with very
specific situations.  Accomplish this with the bpf_override_funciton
helper.  This will modify the probe'd callers return value to the
specified value and set the PC to an override function that simply
returns, bypassing the originally probed function.  This gives us a nice
clean way to implement systematic error injection for all of our code
paths.

Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Josef Bacik <jbacik@fb.com>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
15 files changed:
arch/Kconfig
arch/x86/Kconfig
arch/x86/include/asm/kprobes.h
arch/x86/include/asm/ptrace.h
arch/x86/kernel/kprobes/ftrace.c
include/linux/filter.h
include/linux/trace_events.h
include/uapi/linux/bpf.h
kernel/bpf/core.c
kernel/bpf/verifier.c
kernel/events/core.c
kernel/trace/Kconfig
kernel/trace/bpf_trace.c
kernel/trace/trace_kprobe.c
kernel/trace/trace_probe.h