Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

iio: stk3310: Don't return error code in interrupt handler

Interrupt handlers must return one of the irqreturn_t values. Returning a
error code is not supported.

The stk3310 event interrupt handler returns an error code when reading the
flags register fails.

Fix the implementation to always return an irqreturn_t value.

Fixes: 3dd477acbdd1 ("iio: light: Add threshold interrupt support for STK3310")
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Link: https://lore.kernel.org/r/20211024171251.22896-3-lars@metafoo.de
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>

authored by

Lars-Peter Clausen and committed by
Jonathan Cameron
8e1eeca5 45febe0d

+3 -3
+3 -3
drivers/iio/light/stk3310.c
··· 546 546 mutex_lock(&data->lock); 547 547 ret = regmap_field_read(data->reg_flag_nf, &dir); 548 548 if (ret < 0) { 549 - dev_err(&data->client->dev, "register read failed\n"); 550 - mutex_unlock(&data->lock); 551 - return ret; 549 + dev_err(&data->client->dev, "register read failed: %d\n", ret); 550 + goto out; 552 551 } 553 552 event = IIO_UNMOD_EVENT_CODE(IIO_PROXIMITY, 1, 554 553 IIO_EV_TYPE_THRESH, ··· 559 560 ret = regmap_field_write(data->reg_flag_psint, 0); 560 561 if (ret < 0) 561 562 dev_err(&data->client->dev, "failed to reset interrupts\n"); 563 + out: 562 564 mutex_unlock(&data->lock); 563 565 564 566 return IRQ_HANDLED;