diff options
author | Steven Rostedt (VMware) <rostedt@goodmis.org> | 2017-04-03 18:18:47 -0400 |
---|---|---|
committer | Steven Rostedt (VMware) <rostedt@goodmis.org> | 2017-04-20 22:06:37 -0400 |
commit | bca6c8d0480a8aa5c86f8f416db96c71f6b79e29 (patch) | |
tree | aef6cd660ec1b1bf9c25f109cb282b6fcb190353 /kernel/trace/trace_functions.c | |
parent | e51a9896794bbb819d89b803e5a8446199034853 (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.c | 24 |
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 | ||
328 | static void | 328 | static void |
329 | ftrace_traceon_count(unsigned long ip, unsigned long parent_ip, void **data) | 329 | ftrace_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 | ||
334 | static void | 335 | static void |
335 | ftrace_traceoff_count(unsigned long ip, unsigned long parent_ip, void **data) | 336 | ftrace_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 | ||
340 | static void | 342 | static void |
341 | ftrace_traceon(unsigned long ip, unsigned long parent_ip, void **data) | 343 | ftrace_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 | ||
349 | static void | 352 | static void |
350 | ftrace_traceoff(unsigned long ip, unsigned long parent_ip, void **data) | 353 | ftrace_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 | ||
367 | static void | 371 | static void |
368 | ftrace_stacktrace(unsigned long ip, unsigned long parent_ip, void **data) | 372 | ftrace_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 | ||
373 | static void | 378 | static void |
374 | ftrace_stacktrace_count(unsigned long ip, unsigned long parent_ip, void **data) | 379 | ftrace_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 | ||
421 | static void | 427 | static void |
422 | ftrace_dump_probe(unsigned long ip, unsigned long parent_ip, void **data) | 428 | ftrace_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. */ |
429 | static void | 436 | static void |
430 | ftrace_cpudump_probe(unsigned long ip, unsigned long parent_ip, void **data) | 437 | ftrace_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); |