diff options
author | Oleg Nesterov <oleg@redhat.com> | 2013-03-28 14:19:11 -0400 |
---|---|---|
committer | Oleg Nesterov <oleg@redhat.com> | 2013-04-13 09:32:00 -0400 |
commit | 0e3853d202e8b2720bc4c674dc58849b2662c8f8 (patch) | |
tree | 1985c7d62717dd07c2e3957acbb66515dc0ce65d | |
parent | 456fdbcb8648a20f56977efbc6f13e28936fcf0b (diff) |
uprobes/tracing: Kill the pointless local_save_flags/preempt_count calls
uprobe_trace_func() is never called with irqs or preemption
disabled, no need to ask preempt_count() or local_save_flags().
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Tested-by: Anton Arapov <anton@redhat.com>
-rw-r--r-- | kernel/trace/trace_uprobe.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/kernel/trace/trace_uprobe.c b/kernel/trace/trace_uprobe.c index 8e009016e4ba..43d258db998e 100644 --- a/kernel/trace/trace_uprobe.c +++ b/kernel/trace/trace_uprobe.c | |||
@@ -492,17 +492,13 @@ static int uprobe_trace_func(struct trace_uprobe *tu, struct pt_regs *regs) | |||
492 | struct ring_buffer_event *event; | 492 | struct ring_buffer_event *event; |
493 | struct ring_buffer *buffer; | 493 | struct ring_buffer *buffer; |
494 | u8 *data; | 494 | u8 *data; |
495 | int size, i, pc; | 495 | int size, i; |
496 | unsigned long irq_flags; | ||
497 | struct ftrace_event_call *call = &tu->call; | 496 | struct ftrace_event_call *call = &tu->call; |
498 | 497 | ||
499 | local_save_flags(irq_flags); | ||
500 | pc = preempt_count(); | ||
501 | |||
502 | size = sizeof(*entry) + tu->size; | 498 | size = sizeof(*entry) + tu->size; |
503 | 499 | ||
504 | event = trace_current_buffer_lock_reserve(&buffer, call->event.type, | 500 | event = trace_current_buffer_lock_reserve(&buffer, call->event.type, |
505 | size, irq_flags, pc); | 501 | size, 0, 0); |
506 | if (!event) | 502 | if (!event) |
507 | return 0; | 503 | return 0; |
508 | 504 | ||
@@ -513,7 +509,7 @@ static int uprobe_trace_func(struct trace_uprobe *tu, struct pt_regs *regs) | |||
513 | call_fetch(&tu->args[i].fetch, regs, data + tu->args[i].offset); | 509 | call_fetch(&tu->args[i].fetch, regs, data + tu->args[i].offset); |
514 | 510 | ||
515 | if (!filter_current_check_discard(buffer, call, entry, event)) | 511 | if (!filter_current_check_discard(buffer, call, entry, event)) |
516 | trace_buffer_unlock_commit(buffer, event, irq_flags, pc); | 512 | trace_buffer_unlock_commit(buffer, event, 0, 0); |
517 | 513 | ||
518 | return 0; | 514 | return 0; |
519 | } | 515 | } |