LIST_HEAD(ftrace_events);
 static LIST_HEAD(ftrace_generic_fields);
 static LIST_HEAD(ftrace_common_fields);
+static bool eventdir_initialized;
 
 #define GFP_TRACE (GFP_KERNEL | __GFP_ZERO)
 
        if (!file)
                return -ENOMEM;
 
-       return event_create_dir(tr->event_dir, file);
+       if (eventdir_initialized)
+               return event_create_dir(tr->event_dir, file);
+       else
+               return event_define_fields(call);
 }
 
 /*
        if (ret)
                pr_warn("Failed to register trace events module notifier\n");
 #endif
+
+       eventdir_initialized = true;
+
        return 0;
 }