Re: [PATCH v2 4/4] iio: light: ltr501: Power down chip if request irq fails
From: Jonathan Cameron
Date: Sat Jul 18 2026 - 21:52:17 EST
On Wed, 15 Jul 2026 14:27:26 +0200
Esben Haabendal <esben@xxxxxxxxxx> wrote:
> In case request irq failed, we were leaving the chip powered instead of
> powering it down again.
>
> Signed-off-by: Esben Haabendal <esben@xxxxxxxxxx>
> ---
> 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 379e57ac5f5b..9d4de798e5ab 100644
> --- a/drivers/iio/light/ltr501.c
> +++ b/drivers/iio/light/ltr501.c
> @@ -1571,7 +1571,7 @@ static int ltr501_probe(struct i2c_client *client)
> if (ret) {
> dev_err(&client->dev, "request irq (%d) failed\n",
> client->irq);
> - return ret;
> + goto powerdown_on_error;
A goto after a devm call rings ordering alarm bells. The two calls will
be reverse of expected order (error handling generally reverse order of
setup).
Instead of doing this, register an extra callback with devm_add_action_or_reset()
for the power down. That will do for the fix, then if you have time
convert remaining two calls to devm as well in a follow up patch.
Jonathan
> }
> } else {
> indio_dev->info = data->chip_info->info_no_irq;
>