staging:iio:ad799x: Do not return error code in interrupt handler
authorLars-Peter Clausen <lars@metafoo.de>
Wed, 4 Jul 2012 16:09:00 +0000 (17:09 +0100)
committerJonathan Cameron <jic23@kernel.org>
Sun, 8 Jul 2012 19:02:27 +0000 (20:02 +0100)
The interrupt handler should only ever return one of the three irqreturn_t
constants and not an error code. Also make sure to always call
iio_trigger_notify_done before leaving the trigger handler.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/staging/iio/adc/ad799x_core.c
drivers/staging/iio/adc/ad799x_ring.c

index 2d4bda9..9900507 100644 (file)
@@ -350,10 +350,10 @@ static irqreturn_t ad799x_event_handler(int irq, void *private)
 
        ret = ad799x_i2c_read8(st, AD7998_ALERT_STAT_REG, &status);
        if (ret)
-               return ret;
+               goto done;
 
        if (!status)
-               return -EIO;
+               goto done;
 
        ad799x_i2c_write8(st, AD7998_ALERT_STAT_REG, AD7998_ALERT_STAT_CLEAR);
 
@@ -372,6 +372,7 @@ static irqreturn_t ad799x_event_handler(int irq, void *private)
                                       iio_get_time_ns());
        }
 
+done:
        return IRQ_HANDLED;
 }
 
index 0882c9e..858a685 100644 (file)
@@ -81,8 +81,6 @@ static irqreturn_t ad799x_trigger_handler(int irq, void *p)
        ring->access->store_to(indio_dev->buffer, rxbuf, time_ns);
 done:
        kfree(rxbuf);
-       if (b_sent < 0)
-               return b_sent;
 out:
        iio_trigger_notify_done(indio_dev->trig);