From c9b3b5e2ac45c6e972d53c4bd7f8a535314feddc Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Wed, 3 Jul 2013 18:35:10 -0400 Subject: [PATCH] Fix: ring buffer: get_subbuf() checks should be performed on "consumed" parameter This triggers lots of false-positive -EAGAIN errors in flight recorder snapshots. Reported-by: Julien Desfossez Signed-off-by: Mathieu Desnoyers --- lib/ringbuffer/ring_buffer_frontend.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/ringbuffer/ring_buffer_frontend.c b/lib/ringbuffer/ring_buffer_frontend.c index 6b92193d..225d78c6 100644 --- a/lib/ringbuffer/ring_buffer_frontend.c +++ b/lib/ringbuffer/ring_buffer_frontend.c @@ -1022,7 +1022,7 @@ retry: */ if (((commit_count - chan->backend.subbuf_size) & chan->commit_count_mask) - - (buf_trunc(consumed_cur, chan) + - (buf_trunc(consumed, chan) >> chan->backend.num_subbuf_order) != 0) goto nodata; @@ -1031,7 +1031,7 @@ retry: * Check that we are not about to read the same subbuffer in * which the writer head is. */ - if (subbuf_trunc(write_offset, chan) - subbuf_trunc(consumed_cur, chan) + if (subbuf_trunc(write_offset, chan) - subbuf_trunc(consumed, chan) == 0) goto nodata; -- 2.34.1