diff options
| -rw-r--r-- | kernel/trace/trace.c | 5 | ||||
| -rw-r--r-- | kernel/trace/trace_boot.c | 8 | ||||
| -rw-r--r-- | kernel/trace/trace_mmiotrace.c | 10 |
3 files changed, 18 insertions, 5 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 |
diff --git a/kernel/trace/trace_boot.c b/kernel/trace/trace_boot.c index 19bfc75d467e..c21d5f3956ad 100644 --- a/kernel/trace/trace_boot.c +++ b/kernel/trace/trace_boot.c | |||
| @@ -129,6 +129,7 @@ struct tracer boot_tracer __read_mostly = | |||
| 129 | 129 | ||
| 130 | void trace_boot_call(struct boot_trace_call *bt, initcall_t fn) | 130 | void trace_boot_call(struct boot_trace_call *bt, initcall_t fn) |
| 131 | { | 131 | { |
| 132 | struct ftrace_event_call *call = &event_boot_call; | ||
| 132 | struct ring_buffer_event *event; | 133 | struct ring_buffer_event *event; |
| 133 | struct ring_buffer *buffer; | 134 | struct ring_buffer *buffer; |
| 134 | struct trace_boot_call *entry; | 135 | struct trace_boot_call *entry; |
| @@ -150,13 +151,15 @@ void trace_boot_call(struct boot_trace_call *bt, initcall_t fn) | |||
| 150 | goto out; | 151 | goto out; |
| 151 | entry = ring_buffer_event_data(event); | 152 | entry = ring_buffer_event_data(event); |
| 152 | entry->boot_call = *bt; | 153 | entry->boot_call = *bt; |
| 153 | trace_buffer_unlock_commit(buffer, event, 0, 0); | 154 | if (!filter_check_discard(call, entry, buffer, event)) |
| 155 | trace_buffer_unlock_commit(buffer, event, 0, 0); | ||
| 154 | out: | 156 | out: |
| 155 | preempt_enable(); | 157 | preempt_enable(); |
| 156 | } | 158 | } |
| 157 | 159 | ||
| 158 | void trace_boot_ret(struct boot_trace_ret *bt, initcall_t fn) | 160 | void trace_boot_ret(struct boot_trace_ret *bt, initcall_t fn) |
| 159 | { | 161 | { |
| 162 | struct ftrace_event_call *call = &event_boot_ret; | ||
| 160 | struct ring_buffer_event *event; | 163 | struct ring_buffer_event *event; |
| 161 | struct ring_buffer *buffer; | 164 | struct ring_buffer *buffer; |
| 162 | struct trace_boot_ret *entry; | 165 | struct trace_boot_ret *entry; |
| @@ -175,7 +178,8 @@ void trace_boot_ret(struct boot_trace_ret *bt, initcall_t fn) | |||
| 175 | goto out; | 178 | goto out; |
| 176 | entry = ring_buffer_event_data(event); | 179 | entry = ring_buffer_event_data(event); |
| 177 | entry->boot_ret = *bt; | 180 | entry->boot_ret = *bt; |
| 178 | trace_buffer_unlock_commit(buffer, event, 0, 0); | 181 | if (!filter_check_discard(call, entry, buffer, event)) |
| 182 | trace_buffer_unlock_commit(buffer, event, 0, 0); | ||
| 179 | out: | 183 | out: |
| 180 | preempt_enable(); | 184 | preempt_enable(); |
| 181 | } | 185 | } |
diff --git a/kernel/trace/trace_mmiotrace.c b/kernel/trace/trace_mmiotrace.c index c4c9bbda53d3..0acd834659ed 100644 --- a/kernel/trace/trace_mmiotrace.c +++ b/kernel/trace/trace_mmiotrace.c | |||
| @@ -307,6 +307,7 @@ static void __trace_mmiotrace_rw(struct trace_array *tr, | |||
| 307 | struct trace_array_cpu *data, | 307 | struct trace_array_cpu *data, |
| 308 | struct mmiotrace_rw *rw) | 308 | struct mmiotrace_rw *rw) |
| 309 | { | 309 | { |
| 310 | struct ftrace_event_call *call = &event_mmiotrace_rw; | ||
| 310 | struct ring_buffer *buffer = tr->buffer; | 311 | struct ring_buffer *buffer = tr->buffer; |
| 311 | struct ring_buffer_event *event; | 312 | struct ring_buffer_event *event; |
| 312 | struct trace_mmiotrace_rw *entry; | 313 | struct trace_mmiotrace_rw *entry; |
| @@ -320,7 +321,9 @@ static void __trace_mmiotrace_rw(struct trace_array *tr, | |||
| 320 | } | 321 | } |
| 321 | entry = ring_buffer_event_data(event); | 322 | entry = ring_buffer_event_data(event); |
| 322 | entry->rw = *rw; | 323 | entry->rw = *rw; |
| 323 | trace_buffer_unlock_commit(buffer, event, 0, pc); | 324 | |
| 325 | if (!filter_check_discard(call, entry, buffer, event)) | ||
| 326 | trace_buffer_unlock_commit(buffer, event, 0, pc); | ||
| 324 | } | 327 | } |
| 325 | 328 | ||
| 326 | void mmio_trace_rw(struct mmiotrace_rw *rw) | 329 | void mmio_trace_rw(struct mmiotrace_rw *rw) |
| @@ -334,6 +337,7 @@ static void __trace_mmiotrace_map(struct trace_array *tr, | |||
| 334 | struct trace_array_cpu *data, | 337 | struct trace_array_cpu *data, |
| 335 | struct mmiotrace_map *map) | 338 | struct mmiotrace_map *map) |
| 336 | { | 339 | { |
| 340 | struct ftrace_event_call *call = &event_mmiotrace_map; | ||
| 337 | struct ring_buffer *buffer = tr->buffer; | 341 | struct ring_buffer *buffer = tr->buffer; |
| 338 | struct ring_buffer_event *event; | 342 | struct ring_buffer_event *event; |
| 339 | struct trace_mmiotrace_map *entry; | 343 | struct trace_mmiotrace_map *entry; |
| @@ -347,7 +351,9 @@ static void __trace_mmiotrace_map(struct trace_array *tr, | |||
| 347 | } | 351 | } |
| 348 | entry = ring_buffer_event_data(event); | 352 | entry = ring_buffer_event_data(event); |
| 349 | entry->map = *map; | 353 | entry->map = *map; |
| 350 | trace_buffer_unlock_commit(buffer, event, 0, pc); | 354 | |
| 355 | if (!filter_check_discard(call, entry, buffer, event)) | ||
| 356 | trace_buffer_unlock_commit(buffer, event, 0, pc); | ||
| 351 | } | 357 | } |
| 352 | 358 | ||
| 353 | void mmio_trace_mapping(struct mmiotrace_map *map) | 359 | void mmio_trace_mapping(struct mmiotrace_map *map) |
