diff options
author | Masami Hiramatsu <mhiramat@kernel.org> | 2022-03-15 23:00:50 +0900 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2022-03-17 20:16:29 -0700 |
commit | 54ecbe6f1ed5138c895bdff55608cf502755b20e (patch) | |
tree | 409360f3d1dd0bafbbbf390c201dced76a64e063 /kernel/exit.c | |
parent | cad9931f64dc7f5dbdec12cae9f30063360f9855 (diff) | |
download | linux-54ecbe6f1ed5138c895bdff55608cf502755b20e.tar.gz linux-54ecbe6f1ed5138c895bdff55608cf502755b20e.tar.bz2 linux-54ecbe6f1ed5138c895bdff55608cf502755b20e.zip |
rethook: Add a generic return hook
Add a return hook framework which hooks the function return. Most of the
logic came from the kretprobe, but this is independent from kretprobe.
Note that this is expected to be used with other function entry hooking
feature, like ftrace, fprobe, adn kprobes. Eventually this will replace
the kretprobe (e.g. kprobe + rethook = kretprobe), but at this moment,
this is just an additional hook.
Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Tested-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/164735285066.1084943.9259661137330166643.stgit@devnote2
Diffstat (limited to 'kernel/exit.c')
-rw-r--r-- | kernel/exit.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/exit.c b/kernel/exit.c index b00a25bb4ab9..2d1803fa8fe6 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -64,6 +64,7 @@ #include <linux/compat.h> #include <linux/io_uring.h> #include <linux/kprobes.h> +#include <linux/rethook.h> #include <linux/uaccess.h> #include <asm/unistd.h> @@ -169,6 +170,7 @@ static void delayed_put_task_struct(struct rcu_head *rhp) struct task_struct *tsk = container_of(rhp, struct task_struct, rcu); kprobe_flush_task(tsk); + rethook_flush_task(tsk); perf_event_delayed_put(tsk); trace_sched_process_free(tsk); put_task_struct(tsk); |