aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/trace_functions.c
diff options
context:
space:
mode:
authorSteven Rostedt (VMware) <rostedt@goodmis.org>2017-04-03 18:18:47 -0400
committerSteven Rostedt (VMware) <rostedt@goodmis.org>2017-04-20 22:06:37 -0400
commitbca6c8d0480a8aa5c86f8f416db96c71f6b79e29 (patch)
treeaef6cd660ec1b1bf9c25f109cb282b6fcb190353 /kernel/trace/trace_functions.c
parente51a9896794bbb819d89b803e5a8446199034853 (diff)
ftrace: Pass probe ops to probe function
In preparation to cleaning up the probe function registration code, the "data" parameter will eventually be removed from the probe->func() call. Instead it will receive its own "ops" function, in which it can set up its own data that it needs to map. Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Diffstat (limited to 'kernel/trace/trace_functions.c')
-rw-r--r--kernel/trace/trace_functions.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/kernel/trace/trace_functions.c b/kernel/trace/trace_functions.c
index 4199ca61b0e5..b99f6231281e 100644
--- a/kernel/trace/trace_functions.c
+++ b/kernel/trace/trace_functions.c
@@ -326,19 +326,22 @@ static void update_traceon_count(void **data, bool on)
326} 326}
327 327
328static void 328static void
329ftrace_traceon_count(unsigned long ip, unsigned long parent_ip, void **data) 329ftrace_traceon_count(unsigned long ip, unsigned long parent_ip,
330 struct ftrace_probe_ops *ops, void **data)
330{ 331{
331 update_traceon_count(data, 1); 332 update_traceon_count(data, 1);
332} 333}
333 334
334static void 335static void
335ftrace_traceoff_count(unsigned long ip, unsigned long parent_ip, void **data) 336ftrace_traceoff_count(unsigned long ip, unsigned long parent_ip,
337 struct ftrace_probe_ops *ops, void **data)
336{ 338{
337 update_traceon_count(data, 0); 339 update_traceon_count(data, 0);
338} 340}
339 341
340static void 342static void
341ftrace_traceon(unsigned long ip, unsigned long parent_ip, void **data) 343ftrace_traceon(unsigned long ip, unsigned long parent_ip,
344 struct ftrace_probe_ops *ops, void **data)
342{ 345{
343 if (tracing_is_on()) 346 if (tracing_is_on())
344 return; 347 return;
@@ -347,7 +350,8 @@ ftrace_traceon(unsigned long ip, unsigned long parent_ip, void **data)
347} 350}
348 351
349static void 352static void
350ftrace_traceoff(unsigned long ip, unsigned long parent_ip, void **data) 353ftrace_traceoff(unsigned long ip, unsigned long parent_ip,
354 struct ftrace_probe_ops *ops, void **data)
351{ 355{
352 if (!tracing_is_on()) 356 if (!tracing_is_on())
353 return; 357 return;
@@ -365,13 +369,15 @@ ftrace_traceoff(unsigned long ip, unsigned long parent_ip, void **data)
365#define STACK_SKIP 4 369#define STACK_SKIP 4
366 370
367static void 371static void
368ftrace_stacktrace(unsigned long ip, unsigned long parent_ip, void **data) 372ftrace_stacktrace(unsigned long ip, unsigned long parent_ip,
373 struct ftrace_probe_ops *ops, void **data)
369{ 374{
370 trace_dump_stack(STACK_SKIP); 375 trace_dump_stack(STACK_SKIP);
371} 376}
372 377
373static void 378static void
374ftrace_stacktrace_count(unsigned long ip, unsigned long parent_ip, void **data) 379ftrace_stacktrace_count(unsigned long ip, unsigned long parent_ip,
380 struct ftrace_probe_ops *ops, void **data)
375{ 381{
376 long *count = (long *)data; 382 long *count = (long *)data;
377 long old_count; 383 long old_count;
@@ -419,7 +425,8 @@ static int update_count(void **data)
419} 425}
420 426
421static void 427static void
422ftrace_dump_probe(unsigned long ip, unsigned long parent_ip, void **data) 428ftrace_dump_probe(unsigned long ip, unsigned long parent_ip,
429 struct ftrace_probe_ops *ops, void **data)
423{ 430{
424 if (update_count(data)) 431 if (update_count(data))
425 ftrace_dump(DUMP_ALL); 432 ftrace_dump(DUMP_ALL);
@@ -427,7 +434,8 @@ ftrace_dump_probe(unsigned long ip, unsigned long parent_ip, void **data)
427 434
428/* Only dump the current CPU buffer. */ 435/* Only dump the current CPU buffer. */
429static void 436static void
430ftrace_cpudump_probe(unsigned long ip, unsigned long parent_ip, void **data) 437ftrace_cpudump_probe(unsigned long ip, unsigned long parent_ip,
438 struct ftrace_probe_ops *ops, void **data)
431{ 439{
432 if (update_count(data)) 440 if (update_count(data))
433 ftrace_dump(DUMP_ORIG); 441 ftrace_dump(DUMP_ORIG);