]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
tracing/uprobe: Adopt guard() and scoped_guard()
authorMasami Hiramatsu (Google) <mhiramat@kernel.org>
Fri, 29 Nov 2024 16:48:19 +0000 (01:48 +0900)
committerMasami Hiramatsu (Google) <mhiramat@kernel.org>
Fri, 10 Jan 2025 00:00:12 +0000 (09:00 +0900)
Use guard() or scoped_guard() in uprobe events for critical sections
rather than discrete lock/unlock pairs.

Link: https://lore.kernel.org/all/173289889911.73724.12457932738419630525.stgit@devnote2/
Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
kernel/trace/trace_uprobe.c

index 4875e7f5de3db249af34c539c079fbedd38f4107..ccc762fbb69cd195c1cd8a14ad6a8d5e125c3820 100644 (file)
@@ -498,11 +498,11 @@ static int register_trace_uprobe(struct trace_uprobe *tu)
        struct trace_uprobe *old_tu;
        int ret;
 
-       mutex_lock(&event_mutex);
+       guard(mutex)(&event_mutex);
 
        ret = validate_ref_ctr_offset(tu);
        if (ret)
-               goto end;
+               return ret;
 
        /* register as an event */
        old_tu = find_probe_event(trace_probe_name(&tu->tp),
@@ -511,11 +511,9 @@ static int register_trace_uprobe(struct trace_uprobe *tu)
                if (is_ret_probe(tu) != is_ret_probe(old_tu)) {
                        trace_probe_log_set_index(0);
                        trace_probe_log_err(0, DIFF_PROBE_TYPE);
-                       ret = -EEXIST;
-               } else {
-                       ret = append_trace_uprobe(tu, old_tu);
+                       return -EEXIST;
                }
-               goto end;
+               return append_trace_uprobe(tu, old_tu);
        }
 
        ret = register_uprobe_event(tu);
@@ -525,14 +523,11 @@ static int register_trace_uprobe(struct trace_uprobe *tu)
                        trace_probe_log_err(0, EVENT_EXIST);
                } else
                        pr_warn("Failed to register probe event(%d)\n", ret);
-               goto end;
+               return ret;
        }
 
        dyn_event_add(&tu->devent, trace_probe_event_call(&tu->tp));
 
-end:
-       mutex_unlock(&event_mutex);
-
        return ret;
 }