On Sun, 24 Oct 2021 19:12:49 +0200 Lars-Peter Clausen <lars@xxxxxxxxxx> wrote: > IIO trigger handlers need to return one of the irqreturn_t values. > Returning an error code is not supported. > > The ltr501 interrupt handler gets this right for most error paths, but > there is one case where it returns the error code. > > In addition for this particular case the trigger handler does not call > `iio_trigger_notify_done()`. Which when not done keeps the triggered > disabled forever. > > Modify the code so that the function returns a valid irqreturn_t value as > well as calling `iio_trigger_notify_done()` on all exit paths. > > Fixes: 2690be905123 ("iio: Add Lite-On ltr501 ambient light / proximity sensor driver") > Signed-off-by: Lars-Peter Clausen <lars@xxxxxxxxxx> Series applied to the fixes-togreg branch of iio.git and marked for stable. Thanks, Jonathan > --- > drivers/iio/light/ltr501.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/iio/light/ltr501.c b/drivers/iio/light/ltr501.c > index 7e51aaac0bf8..b2983b1a9ed1 100644 > --- a/drivers/iio/light/ltr501.c > +++ b/drivers/iio/light/ltr501.c > @@ -1275,7 +1275,7 @@ static irqreturn_t ltr501_trigger_handler(int irq, void *p) > ret = regmap_bulk_read(data->regmap, LTR501_ALS_DATA1, > als_buf, sizeof(als_buf)); > if (ret < 0) > - return ret; > + goto done; > if (test_bit(0, indio_dev->active_scan_mask)) > scan.channels[j++] = le16_to_cpu(als_buf[1]); > if (test_bit(1, indio_dev->active_scan_mask))