Re: [PATCH] iio: gyro: mpu3050: Fix resource leak

From: Andy Shevchenko

Date: Sun Feb 22 2026 - 06:07:42 EST


On Fri, Feb 20, 2026 at 02:05:22PM -0600, Ethan Tidmore wrote:
> The interrupt handler is setup but only a few lines down if
> iio_trigger_register() fails the function returns without properly
> releasing the handler:
>
> ret = request_threaded_irq(irq,
> mpu3050_irq_handler,
> mpu3050_irq_thread,
> irq_trig,
> mpu3050->trig->name,
> mpu3050->trig);
>
> ...
>
> ret = iio_trigger_register(mpu3050->trig);
> if (ret)
> return ret;
>
> indio_dev->trig = iio_trigger_get(mpu3050->trig);
>
> return 0;
> }
>
> Change request_threaded_irq() to devm_request_threaded_irq() to resolve
> resource leak and use current API.
>
> Detected by Smatch:
> drivers/iio/gyro/mpu3050-core.c:1128 mpu3050_trigger_probe() warn:
> 'irq' from request_threaded_irq() not released on lines: 1124.

...

> + ret = devm_request_threaded_irq(dev,
> + irq,
> + mpu3050_irq_handler,
> + mpu3050_irq_thread,
> + irq_trig,
> + mpu3050->trig->name,
> + mpu3050->trig);
> if (ret) {
> dev_err(dev, "can't get IRQ %d, error %d\n", irq, ret);
> return ret;

Now this prints two messages on the error path...

--
With Best Regards,
Andy Shevchenko