Skip to content

Commit 7dc8ea1

Browse files
larsclausensmb49
authored andcommitted
iio: kxsd9: Don't return error code in trigger handler
BugLink: https://bugs.launchpad.net/bugs/1957007 commit 45febe0 upstream. IIO trigger handlers need to return one of the irqreturn_t values. Returning an error code is not supported. The kxsd9 interrupt handler returns an error code if reading the data registers fails. In addition when exiting due to an error 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. Since we can't return the error code make sure to at least log it as part of the error message. Fixes: 0427a10 ("iio: accel: kxsd9: Add triggered buffer handling") Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Link: https://lore.kernel.org/r/20211024171251.22896-2-lars@metafoo.de Cc: <Stable@vger.kernel.org> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Kamal Mostafa <kamal@canonical.com> Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
1 parent d4f4738 commit 7dc8ea1

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

drivers/iio/accel/kxsd9.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -224,14 +224,14 @@ static irqreturn_t kxsd9_trigger_handler(int irq, void *p)
224224
hw_values.chan,
225225
sizeof(hw_values.chan));
226226
if (ret) {
227-
dev_err(st->dev,
228-
"error reading data\n");
229-
return ret;
227+
dev_err(st->dev, "error reading data: %d\n", ret);
228+
goto out;
230229
}
231230

232231
iio_push_to_buffers_with_timestamp(indio_dev,
233232
&hw_values,
234233
iio_get_time_ns(indio_dev));
234+
out:
235235
iio_trigger_notify_done(indio_dev->trig);
236236

237237
return IRQ_HANDLED;

0 commit comments

Comments
 (0)