diff options
Diffstat (limited to 'kernel/trace/ring_buffer.c')
| -rw-r--r-- | kernel/trace/ring_buffer.c | 8 | 
1 files changed, 4 insertions, 4 deletions
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index a05541a8fbae..9d939e7ca924 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -3286,19 +3286,19 @@ ring_buffer_read(struct ring_buffer_iter *iter, u64 *ts)  	struct ring_buffer_per_cpu *cpu_buffer = iter->cpu_buffer;  	unsigned long flags; - again:  	spin_lock_irqsave(&cpu_buffer->reader_lock, flags); + again:  	event = rb_iter_peek(iter, ts);  	if (!event)  		goto out; +	if (event->type_len == RINGBUF_TYPE_PADDING) +		goto again; +  	rb_advance_iter(iter);   out:  	spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); -	if (event && event->type_len == RINGBUF_TYPE_PADDING) -		goto again; -  	return event;  }  EXPORT_SYMBOL_GPL(ring_buffer_read);  | 
