aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2024-12-10 18:15:25 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2024-12-10 18:15:25 -0800
commit1594c49394ffb0a5a9c889276ea204f05c1d46e3 (patch)
tree76314b105eb99d6a73aa66219db2e1102d3f8405
parentMerge tag 'locking_urgent_for_v6.13_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip (diff)
parenttracing/eprobe: Fix to release eprobe when failed to add dyn_event (diff)
downloadwireguard-linux-1594c49394ffb0a5a9c889276ea204f05c1d46e3.tar.xz
wireguard-linux-1594c49394ffb0a5a9c889276ea204f05c1d46e3.zip
Merge tag 'probes-fixes-v6.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
Pull eprobes fix from Masami Hiramatsu: - release eprobe when failing to add dyn_event. This unregisters event call and release eprobe when it fails to add a dynamic event. Found in cleaning up. * tag 'probes-fixes-v6.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace: tracing/eprobe: Fix to release eprobe when failed to add dyn_event
Diffstat (limited to '')
-rw-r--r--kernel/trace/trace_eprobe.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/kernel/trace/trace_eprobe.c b/kernel/trace/trace_eprobe.c
index ebda68ee9abf..be8be0c1aaf0 100644
--- a/kernel/trace/trace_eprobe.c
+++ b/kernel/trace/trace_eprobe.c
@@ -963,6 +963,11 @@ static int __trace_eprobe_create(int argc, const char *argv[])
goto error;
}
ret = dyn_event_add(&ep->devent, &ep->tp.event->call);
+ if (ret < 0) {
+ trace_probe_unregister_event_call(&ep->tp);
+ mutex_unlock(&event_mutex);
+ goto error;
+ }
mutex_unlock(&event_mutex);
return ret;
parse_error: