Commit 4e83017e authored by Masami Hiramatsu (Google)'s avatar Masami Hiramatsu (Google)
Browse files

tracing/eprobe: Adopt guard() and scoped_guard()

Use guard() or scoped_guard() in eprobe events for critical sections
rather than discrete lock/unlock pairs.

Link: https://lore.kernel.org/all/173289890996.73724.17421347964110362029.stgit@devnote2/



Signed-off-by: default avatarMasami Hiramatsu (Google) <mhiramat@kernel.org>
parent f8821732
Loading
Loading
Loading
Loading
+17 −19
Original line number Diff line number Diff line
@@ -917,10 +917,10 @@ static int __trace_eprobe_create(int argc, const char *argv[])
		goto error;
	}

	mutex_lock(&event_mutex);
	scoped_guard(mutex, &event_mutex) {
		event_call = find_and_get_event(sys_name, sys_event);
		ep = alloc_event_probe(group, event, event_call, argc - 2);
	mutex_unlock(&event_mutex);
	}

	if (IS_ERR(ep)) {
		ret = PTR_ERR(ep);
@@ -952,23 +952,21 @@ static int __trace_eprobe_create(int argc, const char *argv[])
	if (ret < 0)
		goto error;
	init_trace_eprobe_call(ep);
	mutex_lock(&event_mutex);
	scoped_guard(mutex, &event_mutex) {
		ret = trace_probe_register_event_call(&ep->tp);
		if (ret) {
			if (ret == -EEXIST) {
				trace_probe_log_set_index(0);
				trace_probe_log_err(0, EVENT_EXIST);
			}
		mutex_unlock(&event_mutex);
			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:
	ret = -EINVAL;