aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMinfei Huang <mnfhuang@gmail.com>2015-09-16 12:19:42 -0400
committerSteven Rostedt <rostedt@goodmis.org>2015-10-22 15:44:24 -0400
commit883a1e867e0fe7c2dc2e5844ef692f80177631d5 (patch)
treeaf404d70021b6563ae8df94726e441e85511298a
parent3061692921f2d701bb09699d16ed780903dd54e2 (diff)
ftrace: Calculate the correct dyn_ftrace number to report to the userspace
Now, ftrace only calculate the dyn_ftrace number in the adding breakpoint loop, not in adding update and finish update loop. Calculate the correct dyn_ftrace, once ftrace reports the failure message to the userspace. Link: http://lkml.kernel.org/r/1442420382-13130-1-git-send-email-mnfhuang@gmail.com Signed-off-by: Minfei Huang <mnfhuang@gmail.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r--arch/x86/kernel/ftrace.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c
index 8b7b0a51e742..311bcf338f07 100644
--- a/arch/x86/kernel/ftrace.c
+++ b/arch/x86/kernel/ftrace.c
@@ -556,6 +556,7 @@ void ftrace_replace_code(int enable)
556 run_sync(); 556 run_sync();
557 557
558 report = "updating code"; 558 report = "updating code";
559 count = 0;
559 560
560 for_ftrace_rec_iter(iter) { 561 for_ftrace_rec_iter(iter) {
561 rec = ftrace_rec_iter_record(iter); 562 rec = ftrace_rec_iter_record(iter);
@@ -563,11 +564,13 @@ void ftrace_replace_code(int enable)
563 ret = add_update(rec, enable); 564 ret = add_update(rec, enable);
564 if (ret) 565 if (ret)
565 goto remove_breakpoints; 566 goto remove_breakpoints;
567 count++;
566 } 568 }
567 569
568 run_sync(); 570 run_sync();
569 571
570 report = "removing breakpoints"; 572 report = "removing breakpoints";
573 count = 0;
571 574
572 for_ftrace_rec_iter(iter) { 575 for_ftrace_rec_iter(iter) {
573 rec = ftrace_rec_iter_record(iter); 576 rec = ftrace_rec_iter_record(iter);
@@ -575,6 +578,7 @@ void ftrace_replace_code(int enable)
575 ret = finish_update(rec, enable); 578 ret = finish_update(rec, enable);
576 if (ret) 579 if (ret)
577 goto remove_breakpoints; 580 goto remove_breakpoints;
581 count++;
578 } 582 }
579 583
580 run_sync(); 584 run_sync();