From: Jonathan Cameron <jic23@cam.ac.uk>
To: michael.hennerich@analog.com
Cc: linux-iio@vger.kernel.org, drivers@analog.com
Subject: Re: [PATCH] staging: iio: iio_ring_rip_outer return immediately if rip_lots returns <= 0
Date: Thu, 07 Oct 2010 12:28:13 +0100 [thread overview]
Message-ID: <4CADAECD.8040504@cam.ac.uk> (raw)
In-Reply-To: <1286448090-4792-2-git-send-email-michael.hennerich@analog.com>
On 10/07/10 11:41, michael.hennerich@analog.com wrote:
> From: Michael Hennerich <michael.hennerich@analog.com>
>
>
Diagnosis of the problem looks right. Sorry about this one,
all my test cases only read from the buffer when they get an
event so I've never triggered this one. Guess I need another
test case!
I think freeing twice is going to cause trouble on any machine,
I've just never triggered the case. I'll probably start
putting together a more comprehensive test program based
around the new generic_buffer program to hammer these
corner cases.
Thanks for your hard work. You are nailing a
lot of bugs that have been there for quite a while.
There is another issue somewhere in that code to do with
very small reads. I triggered it due to a userspace bug
a while ago, but haven't had a chance to chase down the
cause as yet. Actually it seems fairly plausible that it
is another way of triggering the issue you have fixed here.
Great to get some eyes on that ring buffer code, it is a
fairly hideous mess!
> Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Acked-by: Jonathan Cameron <jic23@cam.ac.uk>
> ---
> drivers/staging/iio/industrialio-ring.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/staging/iio/industrialio-ring.c b/drivers/staging/iio/industrialio-ring.c
> index edcf6be..d393ace 100644
> --- a/drivers/staging/iio/industrialio-ring.c
> +++ b/drivers/staging/iio/industrialio-ring.c
> @@ -105,7 +105,7 @@ static ssize_t iio_ring_rip_outer(struct file *filp, char __user *buf,
> return -EINVAL;
> copied = rb->access.rip_lots(rb, count, &data, &dead_offset);
>
> - if (copied < 0) {
> + if (copied <= 0) {
> ret = copied;
> goto error_ret;
> }
next prev parent reply other threads:[~2010-10-07 11:22 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-07 10:41 staging: iio: iio_ring_rip_outer return immediately if rip_lots returns <= 0 michael.hennerich
2010-10-07 10:41 ` [PATCH] " michael.hennerich
2010-10-07 11:28 ` Jonathan Cameron [this message]
-- strict thread matches above, loose matches on Subject: below --
2010-10-07 11:27 michael.hennerich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4CADAECD.8040504@cam.ac.uk \
--to=jic23@cam.ac.uk \
--cc=drivers@analog.com \
--cc=linux-iio@vger.kernel.org \
--cc=michael.hennerich@analog.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.