diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index 078cee0d6b4d..34d0ee8e0e85 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -741,6 +741,9 @@ __poll_t ring_buffer_poll_wait(struct ring_buffer *buffer, int cpu, if (full) { poll_wait(filp, &work->full_waiters, poll_table); work->full_waiters_pending = true; + if (!cpu_buffer->shortest_full || + cpu_buffer->shortest_full > full) + cpu_buffer->shortest_full = full; } else { poll_wait(filp, &work->waiters, poll_table); work->waiters_pending = true;