]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - kernel/trace/trace_probe.c
Merge branch 'for-linus-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/ibft
[linux.git] / kernel / trace / trace_probe.c
index abb05608a09d5d37c1e15775f9b277514fd36a5a..dbef0d1350754c5404995811f31358bc39087400 100644 (file)
@@ -844,6 +844,7 @@ static int __set_print_fmt(struct trace_probe *tp, char *buf, int len,
 
 int traceprobe_set_print_fmt(struct trace_probe *tp, bool is_return)
 {
+       struct trace_event_call *call = trace_probe_event_call(tp);
        int len;
        char *print_fmt;
 
@@ -855,7 +856,7 @@ int traceprobe_set_print_fmt(struct trace_probe *tp, bool is_return)
 
        /* Second: actually write the @print_fmt */
        __set_print_fmt(tp, print_fmt, len + 1, is_return);
-       tp->call.print_fmt = print_fmt;
+       call->print_fmt = print_fmt;
 
        return 0;
 }
@@ -888,31 +889,34 @@ int traceprobe_define_arg_fields(struct trace_event_call *event_call,
 
 void trace_probe_cleanup(struct trace_probe *tp)
 {
+       struct trace_event_call *call = trace_probe_event_call(tp);
        int i;
 
        for (i = 0; i < tp->nr_args; i++)
                traceprobe_free_probe_arg(&tp->args[i]);
 
-       kfree(tp->call.class->system);
-       kfree(tp->call.name);
-       kfree(tp->call.print_fmt);
+       kfree(call->class->system);
+       kfree(call->name);
+       kfree(call->print_fmt);
 }
 
 int trace_probe_init(struct trace_probe *tp, const char *event,
                     const char *group)
 {
+       struct trace_event_call *call = trace_probe_event_call(tp);
+
        if (!event || !group)
                return -EINVAL;
 
-       tp->call.class = &tp->class;
-       tp->call.name = kstrdup(event, GFP_KERNEL);
-       if (!tp->call.name)
+       call->class = &tp->class;
+       call->name = kstrdup(event, GFP_KERNEL);
+       if (!call->name)
                return -ENOMEM;
 
        tp->class.system = kstrdup(group, GFP_KERNEL);
        if (!tp->class.system) {
-               kfree(tp->call.name);
-               tp->call.name = NULL;
+               kfree(call->name);
+               call->name = NULL;
                return -ENOMEM;
        }
        INIT_LIST_HEAD(&tp->files);
@@ -923,7 +927,7 @@ int trace_probe_init(struct trace_probe *tp, const char *event,
 
 int trace_probe_register_event_call(struct trace_probe *tp)
 {
-       struct trace_event_call *call = &tp->call;
+       struct trace_event_call *call = trace_probe_event_call(tp);
        int ret;
 
        ret = register_trace_event(&call->event);
@@ -948,7 +952,7 @@ int trace_probe_add_file(struct trace_probe *tp, struct trace_event_file *file)
        link->file = file;
        INIT_LIST_HEAD(&link->list);
        list_add_tail_rcu(&link->list, &tp->files);
-       tp->flags |= TP_FLAG_TRACE;
+       trace_probe_set_flag(tp, TP_FLAG_TRACE);
        return 0;
 }
 
@@ -979,7 +983,7 @@ int trace_probe_remove_file(struct trace_probe *tp,
        kfree(link);
 
        if (list_empty(&tp->files))
-               tp->flags &= ~TP_FLAG_TRACE;
+               trace_probe_clear_flag(tp, TP_FLAG_TRACE);
 
        return 0;
 }