X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=kernel%2Ftrace%2Ftrace_events.c;h=8b46dd8f3643ab5018638a09c58bb2db6023b907;hb=b1dace68e555bd54503733782aab991403807846;hp=03c0a48c3ac4f3daca47a46e401a75f02a826316;hpb=90db6ecbb001ad413405a71655c96b602be9bf08;p=deliverable%2Flinux.git diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c index 03c0a48c3ac4..8b46dd8f3643 100644 --- a/kernel/trace/trace_events.c +++ b/kernel/trace/trace_events.c @@ -327,26 +327,33 @@ int trace_event_reg(struct trace_event_call *call, enum trace_reg type, void *data) { struct trace_event_file *file = data; + struct tracepoint *tp; WARN_ON(!(call->flags & TRACE_EVENT_FL_TRACEPOINT)); + + if (call->flags & TRACE_EVENT_FL_MAP) + tp = call->map->tp; + else + tp = call->tp; + switch (type) { case TRACE_REG_REGISTER: - return tracepoint_probe_register(call->tp, + return tracepoint_probe_register(tp, call->class->probe, file); case TRACE_REG_UNREGISTER: - tracepoint_probe_unregister(call->tp, + tracepoint_probe_unregister(tp, call->class->probe, file); return 0; #ifdef CONFIG_PERF_EVENTS case TRACE_REG_PERF_REGISTER: - return tracepoint_probe_register(call->tp, + return tracepoint_probe_register(tp, call->class->perf_probe, call); case TRACE_REG_PERF_UNREGISTER: - tracepoint_probe_unregister(call->tp, + tracepoint_probe_unregister(tp, call->class->perf_probe, call); return 0;