int                     (*raw_init)(void);
        int                     (*show_format)(struct ftrace_event_call *call,
                                               struct trace_seq *s);
-       int                     (*define_fields)(void);
+       int                     (*define_fields)(struct ftrace_event_call *);
        struct list_head        fields;
        int                     filter_active;
        struct event_filter     *filter;
 
 #undef TRACE_EVENT
 #define TRACE_EVENT(call, proto, args, tstruct, func, print)           \
 int                                                                    \
-ftrace_define_fields_##call(void)                                      \
+ftrace_define_fields_##call(struct ftrace_event_call *event_call)      \
 {                                                                      \
        struct ftrace_raw_##call field;                                 \
-       struct ftrace_event_call *event_call = &event_##call;           \
        int ret;                                                        \
                                                                        \
        __common_field(int, type, 1);                                   \
 
                                          id);
 
        if (call->define_fields) {
-               ret = call->define_fields();
+               ret = call->define_fields(call);
                if (ret < 0) {
                        pr_warning("Could not initialize trace point"
                                   " events/%s\n", call->name);
 
 
 #undef TRACE_EVENT_FORMAT
 #define TRACE_EVENT_FORMAT(call, proto, args, fmt, tstruct, tpfmt)     \
-int ftrace_define_fields_##call(void);                                 \
+int ftrace_define_fields_##call(struct ftrace_event_call *event_call); \
 static int ftrace_raw_init_event_##call(void);                         \
                                                                        \
 struct ftrace_event_call __used                                                \
 #undef TRACE_EVENT_FORMAT
 #define TRACE_EVENT_FORMAT(call, proto, args, fmt, tstruct, tpfmt)     \
 int                                                                    \
-ftrace_define_fields_##call(void)                                      \
+ftrace_define_fields_##call(struct ftrace_event_call *event_call)      \
 {                                                                      \
-       struct ftrace_event_call *event_call = &event_##call;           \
        struct args field;                                              \
        int ret;                                                        \
                                                                        \