aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/trace_selftest.c
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2011-08-08 16:57:47 -0400
committerSteven Rostedt <rostedt@goodmis.org>2012-07-19 13:17:35 -0400
commit2f5f6ad9390c1ebbf738d130dbfe80b60eaa167e (patch)
tree1a88c37725d3efbcde8fa0a3cf19490d793877f0 /kernel/trace/trace_selftest.c
parent6e0f17be0361444862637e8986c8c1a3b3f8dcf8 (diff)
ftrace: Pass ftrace_ops as third parameter to function trace callback
Currently the function trace callback receives only the ip and parent_ip of the function that it traced. It would be more powerful to also return the ops that registered the function as well. This allows the same function to act differently depending on what ftrace_ops registered it. Link: http://lkml.kernel.org/r/20120612225424.267254552@goodmis.org Reviewed-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'kernel/trace/trace_selftest.c')
-rw-r--r--kernel/trace/trace_selftest.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/kernel/trace/trace_selftest.c b/kernel/trace/trace_selftest.c
index 288541f977fb..9ae40c823af8 100644
--- a/kernel/trace/trace_selftest.c
+++ b/kernel/trace/trace_selftest.c
@@ -103,35 +103,40 @@ static inline void warn_failed_init_tracer(struct tracer *trace, int init_ret)
103 103
104static int trace_selftest_test_probe1_cnt; 104static int trace_selftest_test_probe1_cnt;
105static void trace_selftest_test_probe1_func(unsigned long ip, 105static void trace_selftest_test_probe1_func(unsigned long ip,
106 unsigned long pip) 106 unsigned long pip,
107 struct ftrace_ops *op)
107{ 108{
108 trace_selftest_test_probe1_cnt++; 109 trace_selftest_test_probe1_cnt++;
109} 110}
110 111
111static int trace_selftest_test_probe2_cnt; 112static int trace_selftest_test_probe2_cnt;
112static void trace_selftest_test_probe2_func(unsigned long ip, 113static void trace_selftest_test_probe2_func(unsigned long ip,
113 unsigned long pip) 114 unsigned long pip,
115 struct ftrace_ops *op)
114{ 116{
115 trace_selftest_test_probe2_cnt++; 117 trace_selftest_test_probe2_cnt++;
116} 118}
117 119
118static int trace_selftest_test_probe3_cnt; 120static int trace_selftest_test_probe3_cnt;
119static void trace_selftest_test_probe3_func(unsigned long ip, 121static void trace_selftest_test_probe3_func(unsigned long ip,
120 unsigned long pip) 122 unsigned long pip,
123 struct ftrace_ops *op)
121{ 124{
122 trace_selftest_test_probe3_cnt++; 125 trace_selftest_test_probe3_cnt++;
123} 126}
124 127
125static int trace_selftest_test_global_cnt; 128static int trace_selftest_test_global_cnt;
126static void trace_selftest_test_global_func(unsigned long ip, 129static void trace_selftest_test_global_func(unsigned long ip,
127 unsigned long pip) 130 unsigned long pip,
131 struct ftrace_ops *op)
128{ 132{
129 trace_selftest_test_global_cnt++; 133 trace_selftest_test_global_cnt++;
130} 134}
131 135
132static int trace_selftest_test_dyn_cnt; 136static int trace_selftest_test_dyn_cnt;
133static void trace_selftest_test_dyn_func(unsigned long ip, 137static void trace_selftest_test_dyn_func(unsigned long ip,
134 unsigned long pip) 138 unsigned long pip,
139 struct ftrace_ops *op)
135{ 140{
136 trace_selftest_test_dyn_cnt++; 141 trace_selftest_test_dyn_cnt++;
137} 142}