diff options
Diffstat (limited to 'kernel/trace/trace.c')
-rw-r--r-- | kernel/trace/trace.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index ef82a7fabf3b..fd52a19dd172 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c | |||
@@ -1206,6 +1206,7 @@ ftrace_trace_special(void *__tr, | |||
1206 | unsigned long arg1, unsigned long arg2, unsigned long arg3, | 1206 | unsigned long arg1, unsigned long arg2, unsigned long arg3, |
1207 | int pc) | 1207 | int pc) |
1208 | { | 1208 | { |
1209 | struct ftrace_event_call *call = &event_special; | ||
1209 | struct ring_buffer_event *event; | 1210 | struct ring_buffer_event *event; |
1210 | struct trace_array *tr = __tr; | 1211 | struct trace_array *tr = __tr; |
1211 | struct ring_buffer *buffer = tr->buffer; | 1212 | struct ring_buffer *buffer = tr->buffer; |
@@ -1219,7 +1220,9 @@ ftrace_trace_special(void *__tr, | |||
1219 | entry->arg1 = arg1; | 1220 | entry->arg1 = arg1; |
1220 | entry->arg2 = arg2; | 1221 | entry->arg2 = arg2; |
1221 | entry->arg3 = arg3; | 1222 | entry->arg3 = arg3; |
1222 | trace_buffer_unlock_commit(buffer, event, 0, pc); | 1223 | |
1224 | if (!filter_check_discard(call, entry, buffer, event)) | ||
1225 | trace_buffer_unlock_commit(buffer, event, 0, pc); | ||
1223 | } | 1226 | } |
1224 | 1227 | ||
1225 | void | 1228 | void |