Currently we have following call flow:

    tracer_init_tracefs()
        tracing_init_dentry()
        event_trace_init()
            tracing_init_dentry()

This shows tracing_init_dentry() is called twice in this flow and this
is not necessary.

Let's remove the second one when it is for sure be properly initialized.

Signed-off-by: Wei Yang <richard.weiy...@linux.alibaba.com>

---
v2:
  * merged 4 & 5
---
 kernel/trace/trace_events.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
index f6f55682d3e2..76879b29cf33 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -3434,7 +3434,6 @@ early_initcall(event_trace_enable_again);
 __init int event_trace_init(void)
 {
        struct trace_array *tr;
-       struct dentry *d_tracer;
        struct dentry *entry;
        int ret;
 
@@ -3442,11 +3441,7 @@ __init int event_trace_init(void)
        if (!tr)
                return -ENODEV;
 
-       d_tracer = tracing_init_dentry();
-       if (IS_ERR(d_tracer))
-               return 0;
-
-       entry = tracefs_create_file("available_events", 0444, d_tracer,
+       entry = tracefs_create_file("available_events", 0444, NULL,
                                    tr, &ftrace_avail_fops);
        if (!entry)
                pr_warn("Could not create tracefs 'available_events' entry\n");
@@ -3457,7 +3452,7 @@ __init int event_trace_init(void)
        if (trace_define_common_fields())
                pr_warn("tracing: Failed to allocate common fields");
 
-       ret = early_event_add_tracer(d_tracer, tr);
+       ret = early_event_add_tracer(NULL, tr);
        if (ret)
                return ret;
 
-- 
2.20.1 (Apple Git-117)

Reply via email to