diff mbox series

iio: adc: max1027: fix not unregistered iio trigger

Message ID 20191118114018.25431-1-hslester96@gmail.com (mailing list archive)
State New, archived
Headers show
Series iio: adc: max1027: fix not unregistered iio trigger | expand

Commit Message

Chuhong Yuan Nov. 18, 2019, 11:40 a.m. UTC
The driver forgets to unregister the iio trigger in probe failure and
remove.
Use devm API to fix it.

Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
---
 drivers/iio/adc/max1027.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Comments

Jonathan Cameron Nov. 23, 2019, 4:29 p.m. UTC | #1
On Mon, 18 Nov 2019 19:40:18 +0800
Chuhong Yuan <hslester96@gmail.com> wrote:

> The driver forgets to unregister the iio trigger in probe failure and
> remove.
> Use devm API to fix it.
> 
> Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
Hi.

This has crossed with some other patches to the driver, but the fix
is still applicable.  If we want to push this back to older stable
branches we will need to do manual backports.

Adjusted version applied to the fixes-togreg branch of iio.git.

Thanks,

Jonathan

> ---
>  drivers/iio/adc/max1027.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/iio/adc/max1027.c b/drivers/iio/adc/max1027.c
> index 214883458582..8caead7dffa5 100644
> --- a/drivers/iio/adc/max1027.c
> +++ b/drivers/iio/adc/max1027.c
> @@ -446,7 +446,12 @@ static int max1027_probe(struct spi_device *spi)
>  	st->trig->ops = &max1027_trigger_ops;
>  	st->trig->dev.parent = &spi->dev;
>  	iio_trigger_set_drvdata(st->trig, indio_dev);
> -	iio_trigger_register(st->trig);
> +
> +	ret = devm_iio_trigger_register(&spi->dev, st->trig);
> +	if (ret < 0) {
> +		dev_err(&indio_dev->dev, "Failed to register iio trigger\n");
> +		return ret;
> +	}
>  
>  	ret = devm_request_threaded_irq(&spi->dev, spi->irq,
>  					iio_trigger_generic_data_rdy_poll,
diff mbox series

Patch

diff --git a/drivers/iio/adc/max1027.c b/drivers/iio/adc/max1027.c
index 214883458582..8caead7dffa5 100644
--- a/drivers/iio/adc/max1027.c
+++ b/drivers/iio/adc/max1027.c
@@ -446,7 +446,12 @@  static int max1027_probe(struct spi_device *spi)
 	st->trig->ops = &max1027_trigger_ops;
 	st->trig->dev.parent = &spi->dev;
 	iio_trigger_set_drvdata(st->trig, indio_dev);
-	iio_trigger_register(st->trig);
+
+	ret = devm_iio_trigger_register(&spi->dev, st->trig);
+	if (ret < 0) {
+		dev_err(&indio_dev->dev, "Failed to register iio trigger\n");
+		return ret;
+	}
 
 	ret = devm_request_threaded_irq(&spi->dev, spi->irq,
 					iio_trigger_generic_data_rdy_poll,