tracing/filter: Simplify tracepoint event lookup
authorJiri Olsa <jolsa@redhat.com>
Thu, 11 Aug 2011 14:25:48 +0000 (16:25 +0200)
committerSteven Rostedt <rostedt@goodmis.org>
Fri, 19 Aug 2011 18:35:53 +0000 (14:35 -0400)
We dont need to perform lookup through the ftrace_events list,
instead we can use the 'tp_event' field.

Each perf_event contains tracepoint event field 'tp_event', which
got initialized during the tracepoint event initialization.

Signed-off-by: Jiri Olsa <jolsa@redhat.com>
Link: http://lkml.kernel.org/r/1313072754-4620-5-git-send-email-jolsa@redhat.com
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
kernel/trace/trace_events_filter.c

index 97b93f31884b03f50ae9066244607b8d39f5b083..0948905dd39c10bc8f8feb2c6ab8318a40839f7a 100644 (file)
@@ -1894,17 +1894,14 @@ int ftrace_profile_set_filter(struct perf_event *event, int event_id,
        int err;
        struct event_filter *filter;
        struct filter_parse_state *ps;
-       struct ftrace_event_call *call = NULL;
+       struct ftrace_event_call *call;
 
        mutex_lock(&event_mutex);
 
-       list_for_each_entry(call, &ftrace_events, list) {
-               if (call->event.type == event_id)
-                       break;
-       }
+       call = event->tp_event;
 
        err = -EINVAL;
-       if (&call->list == &ftrace_events)
+       if (!call)
                goto out_unlock;
 
        err = -EEXIST;