aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/ftrace_event.h5
-rw-r--r--include/trace/ftrace.h4
-rw-r--r--kernel/trace/trace_events.c4
3 files changed, 7 insertions, 6 deletions
diff --git a/include/linux/ftrace_event.h b/include/linux/ftrace_event.h
index ac8c6f8cf242..8544f121d9f1 100644
--- a/include/linux/ftrace_event.h
+++ b/include/linux/ftrace_event.h
@@ -112,8 +112,8 @@ struct ftrace_event_call {
112 struct dentry *dir; 112 struct dentry *dir;
113 struct trace_event *event; 113 struct trace_event *event;
114 int enabled; 114 int enabled;
115 int (*regfunc)(void); 115 int (*regfunc)(void *);
116 void (*unregfunc)(void); 116 void (*unregfunc)(void *);
117 int id; 117 int id;
118 int (*raw_init)(void); 118 int (*raw_init)(void);
119 int (*show_format)(struct trace_seq *s); 119 int (*show_format)(struct trace_seq *s);
@@ -122,6 +122,7 @@ struct ftrace_event_call {
122 int filter_active; 122 int filter_active;
123 struct event_filter *filter; 123 struct event_filter *filter;
124 void *mod; 124 void *mod;
125 void *data;
125 126
126 atomic_t profile_count; 127 atomic_t profile_count;
127 int (*profile_enable)(struct ftrace_event_call *); 128 int (*profile_enable)(struct ftrace_event_call *);
diff --git a/include/trace/ftrace.h b/include/trace/ftrace.h
index 25d3b02a06f8..46d81b5e8610 100644
--- a/include/trace/ftrace.h
+++ b/include/trace/ftrace.h
@@ -568,7 +568,7 @@ static void ftrace_raw_event_##call(proto) \
568 trace_nowake_buffer_unlock_commit(event, irq_flags, pc); \ 568 trace_nowake_buffer_unlock_commit(event, irq_flags, pc); \
569} \ 569} \
570 \ 570 \
571static int ftrace_raw_reg_event_##call(void) \ 571static int ftrace_raw_reg_event_##call(void *ptr) \
572{ \ 572{ \
573 int ret; \ 573 int ret; \
574 \ 574 \
@@ -579,7 +579,7 @@ static int ftrace_raw_reg_event_##call(void) \
579 return ret; \ 579 return ret; \
580} \ 580} \
581 \ 581 \
582static void ftrace_raw_unreg_event_##call(void) \ 582static void ftrace_raw_unreg_event_##call(void *ptr) \
583{ \ 583{ \
584 unregister_trace_##call(ftrace_raw_event_##call); \ 584 unregister_trace_##call(ftrace_raw_event_##call); \
585} \ 585} \
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
index f95f8470dd38..1d289e2d6693 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -86,14 +86,14 @@ static void ftrace_event_enable_disable(struct ftrace_event_call *call,
86 if (call->enabled) { 86 if (call->enabled) {
87 call->enabled = 0; 87 call->enabled = 0;
88 tracing_stop_cmdline_record(); 88 tracing_stop_cmdline_record();
89 call->unregfunc(); 89 call->unregfunc(call->data);
90 } 90 }
91 break; 91 break;
92 case 1: 92 case 1:
93 if (!call->enabled) { 93 if (!call->enabled) {
94 call->enabled = 1; 94 call->enabled = 1;
95 tracing_start_cmdline_record(); 95 tracing_start_cmdline_record();
96 call->regfunc(); 96 call->regfunc(call->data);
97 } 97 }
98 break; 98 break;
99 } 99 }