]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
uprobes: make uprobe_register() return struct uprobe *
authorOleg Nesterov <oleg@redhat.com>
Thu, 1 Aug 2024 13:27:34 +0000 (15:27 +0200)
committerPeter Zijlstra <peterz@infradead.org>
Fri, 2 Aug 2024 09:30:31 +0000 (11:30 +0200)
commit3c83a9ad0295eb63bdeb81d821b8c3b9417fbcac
tree36bca08f980f0943b9284655632297288e8ad797
parente04332ebc8ac128fa551e83f1161ab1c094d13a9
uprobes: make uprobe_register() return struct uprobe *

This way uprobe_unregister() and uprobe_apply() can use "struct uprobe *"
rather than inode + offset. This simplifies the code and allows to avoid
the unnecessary find_uprobe() + put_uprobe() in these functions.

TODO: uprobe_unregister() still needs get_uprobe/put_uprobe to ensure that
this uprobe can't be freed before up_write(&uprobe->register_rwsem).

Co-developed-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Jiri Olsa <jolsa@kernel.org>
Link: https://lore.kernel.org/r/20240801132734.GA8803@redhat.com
include/linux/uprobes.h
kernel/events/uprobes.c
kernel/trace/bpf_trace.c
kernel/trace/trace_uprobe.c
tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c