Re: [PATCH v2] iio: trigger: Fix error handling in viio_trigger_alloc

From: Dan Carpenter

Date: Thu Nov 06 2025 - 10:16:09 EST


On Thu, Nov 06, 2025 at 04:29:23PM +0800, Ma Ke wrote:
> ---
> Changes in v2:
> - modified the patch, thanks for developer's suggestions.
> ---
> drivers/iio/industrialio-trigger.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/iio/industrialio-trigger.c b/drivers/iio/industrialio-trigger.c
> index 54416a384232..9f6d30a244d9 100644
> --- a/drivers/iio/industrialio-trigger.c
> +++ b/drivers/iio/industrialio-trigger.c
> @@ -524,6 +524,7 @@ static void iio_trig_release(struct device *device)
> CONFIG_IIO_CONSUMERS_PER_TRIGGER);
> }
> kfree(trig->name);
> + mutex_destroy(&trig->pool_lock);
> kfree(trig);
> }
>
> @@ -596,8 +597,9 @@ struct iio_trigger *viio_trigger_alloc(struct device *parent,
>
> free_descs:
> irq_free_descs(trig->subirq_base, CONFIG_IIO_CONSUMERS_PER_TRIGGER);
> + trig->subirq_base = 0;

This doesn't work. Do it before the goto.

regards,
dan carpenter

> free_trig:
> - kfree(trig);
> + put_device(&trig->dev);
> return NULL;
> }
>
> --
> 2.17.1