event_size contains the maximum size the iterator can read for each
event. It corresponds to the maximum capacity of a ring-buffer page.
During non-consuming read, resizing is disabled. It is therefore safe to
just use rb_subbuf_capacity(), making event_size redundant. Remove it.

Signed-off-by: Vincent Donnefort <[email protected]>
---
 kernel/trace/ring_buffer.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
index 1a158a24b3c8..3129589e2d0e 100644
--- a/kernel/trace/ring_buffer.c
+++ b/kernel/trace/ring_buffer.c
@@ -680,7 +680,6 @@ struct ring_buffer_iter {
        u64                             read_stamp;
        u64                             page_stamp;
        struct ring_buffer_event        *event;
-       size_t                          event_size;
        int                             missed_events;
 };
 
@@ -3558,9 +3557,11 @@ rb_iter_head_event(struct ring_buffer_iter *iter)
         */
        barrier();
 
-       if ((iter->head + length) > commit || length > iter->event_size)
+       if ((iter->head + length) > commit ||
+           length > rb_subbuf_capacity(iter->cpu_buffer->buffer)) {
                /* Writer corrupted the read? */
                goto reset;
+       }
 
        memcpy(iter->event, event, length);
        /*
@@ -6488,8 +6489,7 @@ ring_buffer_read_start(struct trace_buffer *buffer, int 
cpu, gfp_t flags)
                mutex_unlock(&buffer->mutex);
 
        /* Holds the entire event: data and meta data. */
-       iter->event_size = rb_page_capacity(READ_ONCE(cpu_buffer->reader_page));
-       iter->event = kmalloc(iter->event_size, flags);
+       iter->event = kmalloc(rb_subbuf_capacity(buffer), flags);
        if (!iter->event) {
                atomic_dec(&cpu_buffer->resize_disabled);
                return NULL;
-- 
2.55.0.1082.g2b9226bbc0-goog


Reply via email to