aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace/trace_functions.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/trace/trace_functions.c')
-rw-r--r--kernel/trace/trace_functions.c35
1 files changed, 22 insertions, 13 deletions
diff --git a/kernel/trace/trace_functions.c b/kernel/trace/trace_functions.c
index 2c8961b35401..797f087183c5 100644
--- a/kernel/trace/trace_functions.c
+++ b/kernel/trace/trace_functions.c
@@ -328,21 +328,24 @@ static void update_traceon_count(struct ftrace_probe_ops *ops,
328 328
329static void 329static void
330ftrace_traceon_count(unsigned long ip, unsigned long parent_ip, 330ftrace_traceon_count(unsigned long ip, unsigned long parent_ip,
331 struct ftrace_probe_ops *ops, void **data) 331 struct trace_array *tr, struct ftrace_probe_ops *ops,
332 void **data)
332{ 333{
333 update_traceon_count(ops, ip, 1); 334 update_traceon_count(ops, ip, 1);
334} 335}
335 336
336static void 337static void
337ftrace_traceoff_count(unsigned long ip, unsigned long parent_ip, 338ftrace_traceoff_count(unsigned long ip, unsigned long parent_ip,
338 struct ftrace_probe_ops *ops, void **data) 339 struct trace_array *tr, struct ftrace_probe_ops *ops,
340 void **data)
339{ 341{
340 update_traceon_count(ops, ip, 0); 342 update_traceon_count(ops, ip, 0);
341} 343}
342 344
343static void 345static void
344ftrace_traceon(unsigned long ip, unsigned long parent_ip, 346ftrace_traceon(unsigned long ip, unsigned long parent_ip,
345 struct ftrace_probe_ops *ops, void **data) 347 struct trace_array *tr, struct ftrace_probe_ops *ops,
348 void **data)
346{ 349{
347 if (tracing_is_on()) 350 if (tracing_is_on())
348 return; 351 return;
@@ -352,7 +355,8 @@ ftrace_traceon(unsigned long ip, unsigned long parent_ip,
352 355
353static void 356static void
354ftrace_traceoff(unsigned long ip, unsigned long parent_ip, 357ftrace_traceoff(unsigned long ip, unsigned long parent_ip,
355 struct ftrace_probe_ops *ops, void **data) 358 struct trace_array *tr, struct ftrace_probe_ops *ops,
359 void **data)
356{ 360{
357 if (!tracing_is_on()) 361 if (!tracing_is_on())
358 return; 362 return;
@@ -371,14 +375,16 @@ ftrace_traceoff(unsigned long ip, unsigned long parent_ip,
371 375
372static void 376static void
373ftrace_stacktrace(unsigned long ip, unsigned long parent_ip, 377ftrace_stacktrace(unsigned long ip, unsigned long parent_ip,
374 struct ftrace_probe_ops *ops, void **data) 378 struct trace_array *tr, struct ftrace_probe_ops *ops,
379 void **data)
375{ 380{
376 trace_dump_stack(STACK_SKIP); 381 trace_dump_stack(STACK_SKIP);
377} 382}
378 383
379static void 384static void
380ftrace_stacktrace_count(unsigned long ip, unsigned long parent_ip, 385ftrace_stacktrace_count(unsigned long ip, unsigned long parent_ip,
381 struct ftrace_probe_ops *ops, void **data) 386 struct trace_array *tr, struct ftrace_probe_ops *ops,
387 void **data)
382{ 388{
383 struct ftrace_func_mapper *mapper = ops->private_data; 389 struct ftrace_func_mapper *mapper = ops->private_data;
384 long *count; 390 long *count;
@@ -436,7 +442,8 @@ static int update_count(struct ftrace_probe_ops *ops, unsigned long ip)
436 442
437static void 443static void
438ftrace_dump_probe(unsigned long ip, unsigned long parent_ip, 444ftrace_dump_probe(unsigned long ip, unsigned long parent_ip,
439 struct ftrace_probe_ops *ops, void **data) 445 struct trace_array *tr, struct ftrace_probe_ops *ops,
446 void **data)
440{ 447{
441 if (update_count(ops, ip)) 448 if (update_count(ops, ip))
442 ftrace_dump(DUMP_ALL); 449 ftrace_dump(DUMP_ALL);
@@ -445,7 +452,8 @@ ftrace_dump_probe(unsigned long ip, unsigned long parent_ip,
445/* Only dump the current CPU buffer. */ 452/* Only dump the current CPU buffer. */
446static void 453static void
447ftrace_cpudump_probe(unsigned long ip, unsigned long parent_ip, 454ftrace_cpudump_probe(unsigned long ip, unsigned long parent_ip,
448 struct ftrace_probe_ops *ops, void **data) 455 struct trace_array *tr, struct ftrace_probe_ops *ops,
456 void **data)
449{ 457{
450 if (update_count(ops, ip)) 458 if (update_count(ops, ip))
451 ftrace_dump(DUMP_ORIG); 459 ftrace_dump(DUMP_ORIG);
@@ -473,7 +481,8 @@ ftrace_probe_print(const char *name, struct seq_file *m,
473 481
474static int 482static int
475ftrace_traceon_print(struct seq_file *m, unsigned long ip, 483ftrace_traceon_print(struct seq_file *m, unsigned long ip,
476 struct ftrace_probe_ops *ops, void *data) 484 struct ftrace_probe_ops *ops,
485 void *data)
477{ 486{
478 return ftrace_probe_print("traceon", m, ip, ops); 487 return ftrace_probe_print("traceon", m, ip, ops);
479} 488}
@@ -508,8 +517,8 @@ ftrace_cpudump_print(struct seq_file *m, unsigned long ip,
508 517
509 518
510static int 519static int
511ftrace_count_init(struct ftrace_probe_ops *ops, unsigned long ip, 520ftrace_count_init(struct ftrace_probe_ops *ops, struct trace_array *tr,
512 void *data) 521 unsigned long ip, void *data)
513{ 522{
514 struct ftrace_func_mapper *mapper = ops->private_data; 523 struct ftrace_func_mapper *mapper = ops->private_data;
515 524
@@ -517,8 +526,8 @@ ftrace_count_init(struct ftrace_probe_ops *ops, unsigned long ip,
517} 526}
518 527
519static void 528static void
520ftrace_count_free(struct ftrace_probe_ops *ops, unsigned long ip, 529ftrace_count_free(struct ftrace_probe_ops *ops, struct trace_array *tr,
521 void **_data) 530 unsigned long ip, void **_data)
522{ 531{
523 struct ftrace_func_mapper *mapper = ops->private_data; 532 struct ftrace_func_mapper *mapper = ops->private_data;
524 533