This issue was reported by the mini_lock.cocci coccinelle semantic patch.

Signed-off-by: Lars-Peter Clausen <[email protected]>
Acked-by: Maxime Ripard <[email protected]>
Acked-by: Jonathan Cameron <[email protected]>
---
 drivers/iio/adc/at91_adc.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/iio/adc/at91_adc.c b/drivers/iio/adc/at91_adc.c
index 6a08469..f61780a 100644
--- a/drivers/iio/adc/at91_adc.c
+++ b/drivers/iio/adc/at91_adc.c
@@ -349,9 +349,11 @@ static int at91_adc_read_raw(struct iio_dev *idev,
                                                       st->done,
                                                       msecs_to_jiffies(1000));
                if (ret == 0)
-                       return -ETIMEDOUT;
-               else if (ret < 0)
+                       ret = -ETIMEDOUT;
+               if (ret < 0) {
+                       mutex_unlock(&st->lock);
                        return ret;
+               }
 
                *val = st->last_value;
 
-- 
1.7.10

_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to