diff --git a/[refs] b/[refs] index 1f11ae3596b5..2fafee297d7d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b8de7bd168fa54d059b16d3057b2f8a32cc5bdc3 +refs/heads/master: 621968cdb2563b667d6ecb484ba91ef4c3a797b3 diff --git a/trunk/kernel/trace/trace.c b/trunk/kernel/trace/trace.c index e521f1e8f2bb..9110329ecf77 100644 --- a/trunk/kernel/trace/trace.c +++ b/trunk/kernel/trace/trace.c @@ -658,12 +658,20 @@ void tracing_reset(struct trace_array *tr, int cpu) void tracing_reset_online_cpus(struct trace_array *tr) { + struct ring_buffer *buffer = tr->buffer; int cpu; + ring_buffer_record_disable(buffer); + + /* Make sure all commits have finished */ + synchronize_sched(); + tr->time_start = ftrace_now(tr->cpu); for_each_online_cpu(cpu) tracing_reset(tr, cpu); + + ring_buffer_record_enable(buffer); } void tracing_reset_current(int cpu)