diff options
author | 2024-12-10 18:15:25 -0800 | |
---|---|---|
committer | 2024-12-10 18:15:25 -0800 | |
commit | 1594c49394ffb0a5a9c889276ea204f05c1d46e3 (patch) | |
tree | 76314b105eb99d6a73aa66219db2e1102d3f8405 | |
parent | Merge tag 'locking_urgent_for_v6.13_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip (diff) | |
parent | tracing/eprobe: Fix to release eprobe when failed to add dyn_event (diff) | |
download | wireguard-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.c | 5 |
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: |