aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/trace/trace.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index e521f1e8f2bb..9110329ecf77 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -658,12 +658,20 @@ void tracing_reset(struct trace_array *tr, int cpu)
658 658
659void tracing_reset_online_cpus(struct trace_array *tr) 659void tracing_reset_online_cpus(struct trace_array *tr)
660{ 660{
661 struct ring_buffer *buffer = tr->buffer;
661 int cpu; 662 int cpu;
662 663
664 ring_buffer_record_disable(buffer);
665
666 /* Make sure all commits have finished */
667 synchronize_sched();
668
663 tr->time_start = ftrace_now(tr->cpu); 669 tr->time_start = ftrace_now(tr->cpu);
664 670
665 for_each_online_cpu(cpu) 671 for_each_online_cpu(cpu)
666 tracing_reset(tr, cpu); 672 tracing_reset(tr, cpu);
673
674 ring_buffer_record_enable(buffer);
667} 675}
668 676
669void tracing_reset_current(int cpu) 677void tracing_reset_current(int cpu)