diff --git a/[refs] b/[refs] index 96b6a6ab1230..3b40e26ca1ff 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 60efc15ae96c7aace8060411b0d5add20e1ab21e +refs/heads/master: 60303ed3f4b9332b9aa9bc17c68bc174e7343e2d diff --git a/trunk/kernel/trace/trace.c b/trunk/kernel/trace/trace.c index 88111b08b2c1..6ed6013dff2b 100644 --- a/trunk/kernel/trace/trace.c +++ b/trunk/kernel/trace/trace.c @@ -4073,6 +4073,14 @@ static ssize_t tracing_clock_write(struct file *filp, const char __user *ubuf, if (max_tr.buffer) ring_buffer_set_clock(max_tr.buffer, trace_clocks[i].func); + /* + * New clock may not be consistent with the previous clock. + * Reset the buffer so that it doesn't have incomparable timestamps. + */ + tracing_reset_online_cpus(&global_trace); + if (max_tr.buffer) + tracing_reset_online_cpus(&max_tr); + mutex_unlock(&trace_types_lock); *fpos += cnt;