]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
tracing/eprobe: Fix to release eprobe when failed to add dyn_event
authorMasami Hiramatsu (Google) <mhiramat@kernel.org>
Fri, 29 Nov 2024 16:47:47 +0000 (01:47 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 14 Dec 2024 18:54:50 +0000 (19:54 +0100)
[ Upstream commit 494b332064c0ce2f7392fa92632bc50191c1b517 ]

Fix eprobe event to unregister event call and release eprobe when it fails
to add dynamic event correctly.

Link: https://lore.kernel.org/all/173289886698.73724.1959899350183686006.stgit@devnote2/
Fixes: 7491e2c44278 ("tracing: Add a probe that attaches to trace events")
Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
kernel/trace/trace_eprobe.c

index d2370cdb4c1d644b4f427c9f35dce178f5d4a353..2a75cf3aa7bf886401578d11b63bcab1e2f31507 100644 (file)
@@ -1069,6 +1069,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: