|
@@ -3286,19 +3286,19 @@ ring_buffer_read(struct ring_buffer_iter *iter, u64 *ts)
|
|
struct ring_buffer_per_cpu *cpu_buffer = iter->cpu_buffer;
|
|
struct ring_buffer_per_cpu *cpu_buffer = iter->cpu_buffer;
|
|
unsigned long flags;
|
|
unsigned long flags;
|
|
|
|
|
|
- again:
|
|
|
|
spin_lock_irqsave(&cpu_buffer->reader_lock, flags);
|
|
spin_lock_irqsave(&cpu_buffer->reader_lock, flags);
|
|
|
|
+ again:
|
|
event = rb_iter_peek(iter, ts);
|
|
event = rb_iter_peek(iter, ts);
|
|
if (!event)
|
|
if (!event)
|
|
goto out;
|
|
goto out;
|
|
|
|
|
|
|
|
+ if (event->type_len == RINGBUF_TYPE_PADDING)
|
|
|
|
+ goto again;
|
|
|
|
+
|
|
rb_advance_iter(iter);
|
|
rb_advance_iter(iter);
|
|
out:
|
|
out:
|
|
spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags);
|
|
spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags);
|
|
|
|
|
|
- if (event && event->type_len == RINGBUF_TYPE_PADDING)
|
|
|
|
- goto again;
|
|
|
|
-
|
|
|
|
return event;
|
|
return event;
|
|
}
|
|
}
|
|
EXPORT_SYMBOL_GPL(ring_buffer_read);
|
|
EXPORT_SYMBOL_GPL(ring_buffer_read);
|