diff options
author | Namhyung Kim <namhyung@kernel.org> | 2014-01-17 03:08:40 -0500 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2014-02-20 12:30:11 -0500 |
commit | 43fe98913c9f67e3b523615ee3316f9520a623e0 (patch) | |
tree | c610b40c7d7d6fc9278ec69de4ec46000ab4f83e /kernel/trace | |
parent | ca3b162021a421b38a9cd7b66555b9b01568dc9d (diff) |
tracing/uprobes: Support mix of ftrace and perf
It seems there's no reason to prevent mixed used of ftrace and perf
for a single uprobe event. At least the kprobes already support it.
Link: http://lkml.kernel.org/r/1389946120-19610-6-git-send-email-namhyung@kernel.org
Reviewed-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Cc: zhangwei(Jovi) <jovi.zhangwei@huawei.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'kernel/trace')
-rw-r--r-- | kernel/trace/trace_uprobe.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/kernel/trace/trace_uprobe.c b/kernel/trace/trace_uprobe.c index 01fcb0db75cb..e4473367e7a4 100644 --- a/kernel/trace/trace_uprobe.c +++ b/kernel/trace/trace_uprobe.c | |||
@@ -882,9 +882,6 @@ probe_event_enable(struct trace_uprobe *tu, struct ftrace_event_file *file, | |||
882 | int ret; | 882 | int ret; |
883 | 883 | ||
884 | if (file) { | 884 | if (file) { |
885 | if (tu->tp.flags & TP_FLAG_PROFILE) | ||
886 | return -EINTR; | ||
887 | |||
888 | link = kmalloc(sizeof(*link), GFP_KERNEL); | 885 | link = kmalloc(sizeof(*link), GFP_KERNEL); |
889 | if (!link) | 886 | if (!link) |
890 | return -ENOMEM; | 887 | return -ENOMEM; |
@@ -893,12 +890,8 @@ probe_event_enable(struct trace_uprobe *tu, struct ftrace_event_file *file, | |||
893 | list_add_tail_rcu(&link->list, &tu->tp.files); | 890 | list_add_tail_rcu(&link->list, &tu->tp.files); |
894 | 891 | ||
895 | tu->tp.flags |= TP_FLAG_TRACE; | 892 | tu->tp.flags |= TP_FLAG_TRACE; |
896 | } else { | 893 | } else |
897 | if (tu->tp.flags & TP_FLAG_TRACE) | ||
898 | return -EINTR; | ||
899 | |||
900 | tu->tp.flags |= TP_FLAG_PROFILE; | 894 | tu->tp.flags |= TP_FLAG_PROFILE; |
901 | } | ||
902 | 895 | ||
903 | ret = uprobe_buffer_enable(); | 896 | ret = uprobe_buffer_enable(); |
904 | if (ret < 0) | 897 | if (ret < 0) |