lkml.org 
[lkml]   [2011]   [Nov]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH] iio: Fix build error in industrialio-core.c
From
Date


Sasha Levin <levinsasha928@gmail.com> wrote:

>The error was introduced in commit b4641336 ("iio: fix a leak due to
>improper use of anon_inode_getfd()").
>
>Looks like the code wasn't even compile tested. Instead of just fixing
>the
>error I changed the function a bit to make it nicer.
Minimal change would have been slightly nicer but clean up is obvious so fine. Thanks for doing this. Andrew m has a dirty build fix in NM but he will drop that when this hits.
>Cc: Jonathan Cameron <jic23@cam.ac.uk>
>Cc: Greg Kroah-Hartman <gregkh@suse.de>
>Cc: linux-iio@vger.kernel.org
>Cc: devel@driverdev.osuosl.org
>Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Acked-by: Jonathan Cameron <jic23@kernel.org>
>---
> drivers/staging/iio/industrialio-core.c | 21 ++++++++++-----------
> 1 files changed, 10 insertions(+), 11 deletions(-)
>
>diff --git a/drivers/staging/iio/industrialio-core.c
>b/drivers/staging/iio/industrialio-core.c
>index 2656409..5367914 100644
>--- a/drivers/staging/iio/industrialio-core.c
>+++ b/drivers/staging/iio/industrialio-core.c
>@@ -242,25 +242,24 @@ static const struct file_operations
>iio_event_chrdev_fileops = {
>
> static int iio_event_getfd(struct iio_dev *indio_dev)
> {
>+ struct iio_event_interface *ev_int = indio_dev->event_interface;
> int fd;
>
>- if (indio_dev->event_interface == NULL)
>+ if (ev_int == NULL)
> return -ENODEV;
>
>- mutex_lock(&indio_dev->event_interface->event_list_lock);
>- if (test_and_set_bit(IIO_BUSY_BIT_POS,
>- &indio_dev->event_interface->flags)) {
>- mutex_unlock(&indio_dev->event_interface->event_list_lock);
>+ mutex_lock(&ev_int->event_list_lock);
>+ if (test_and_set_bit(IIO_BUSY_BIT_POS, &ev_int->flags)) {
>+ mutex_unlock(&ev_int->event_list_lock);
> return -EBUSY;
> }
>- mutex_unlock(&indio_dev->event_interface->event_list_lock);
>- fd = anon_inode_getfd("iio:event",
>- &iio_event_chrdev_fileops,
>- indio_dev->event_interface, O_RDONLY);
>+ mutex_unlock(&ev_int->event_list_lock);
>+ fd = anon_inode_getfd("iio:event", &iio_event_chrdev_fileops,
>+ ev_int, O_RDONLY);
> if (fd < 0) {
>- mutex_lock(&indio_dev->event_interface->event_list_lock);
>+ mutex_lock(&ev_int->event_list_lock);
> clear_bit(IIO_BUSY_BIT_POS, &ev_int->flags);
>- mutex_unlock(&indio_dev->event_interface->event_list_lock);
>+ mutex_unlock(&ev_int->event_list_lock);
> }
> return fd;
> }
>--
>1.7.8.rc3

--
Sent from my Android phone
with K-9 Mail. Please excuse my brevity.


\
 
 \ /
  Last update: 2011-11-24 09:53    [W:0.089 / U:0.256 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site