diff options
author | Jonathan Cameron <jic23@cam.ac.uk> | 2010-01-09 16:57:34 +0000 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-03-03 16:42:42 -0800 |
commit | 75c8075394906b4bda4b056328bd9b401277d9b8 (patch) | |
tree | a88b40594d0e6adcb207cabd3b41498cf394654a /drivers | |
parent | 0daa04a586f03de8f9022e29fb41c9dc0de28c4a (diff) |
staging: iio: Ensure mutex is correctly unlocked in __iio_push_event
This error was picked up by running the smatch static
checker over all the IIO subsytem.
Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/staging/iio/industrialio-core.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/staging/iio/industrialio-core.c b/drivers/staging/iio/industrialio-core.c index 768f44894d08..87799b2a9262 100644 --- a/drivers/staging/iio/industrialio-core.c +++ b/drivers/staging/iio/industrialio-core.c @@ -79,11 +79,14 @@ EXPORT_SYMBOL(__iio_change_event); /* Does anyone care? */ mutex_lock(&ev_int->event_list_lock); if (test_bit(IIO_BUSY_BIT_POS, &ev_int->handler.flags)) { - if (ev_int->current_events == ev_int->max_events) + if (ev_int->current_events == ev_int->max_events) { + mutex_unlock(&ev_int->event_list_lock); return 0; + } ev = kmalloc(sizeof(*ev), GFP_KERNEL); if (ev == NULL) { ret = -ENOMEM; + mutex_unlock(&ev_int->event_list_lock); goto error_ret; } ev->ev.id = ev_code; |