[v2] iio: mma8452: Add missed iio_device_unregister() call in mma8452_probe()
diff mbox series

Message ID 20200528064121.547001-1-hslester96@gmail.com
State New
Headers show
Series
  • [v2] iio: mma8452: Add missed iio_device_unregister() call in mma8452_probe()
Related show

Commit Message

Chuhong Yuan May 28, 2020, 6:41 a.m. UTC
The function iio_device_register() was called in mma8452_probe().
But the function iio_device_unregister() was not called after
a call of the function mma8452_set_freefall_mode() failed.
Thus add the missed function call for one error case.

Fixes: 1a965d405fc6 ("drivers:iio:accel:mma8452: added cleanup provision in case of failure.")
Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
---
Changes in v2:
  - Add fixes tag.
  - Modify description.

 drivers/iio/accel/mma8452.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Jonathan Cameron May 31, 2020, 11:19 a.m. UTC | #1
On Thu, 28 May 2020 14:41:21 +0800
Chuhong Yuan <hslester96@gmail.com> wrote:

> The function iio_device_register() was called in mma8452_probe().
> But the function iio_device_unregister() was not called after
> a call of the function mma8452_set_freefall_mode() failed.
> Thus add the missed function call for one error case.
> 
> Fixes: 1a965d405fc6 ("drivers:iio:accel:mma8452: added cleanup provision in case of failure.")
> Signed-off-by: Chuhong Yuan <hslester96@gmail.com>

Applied to the fixes-togreg branch of iio.git 
> ---
> Changes in v2:
>   - Add fixes tag.
>   - Modify description.
> 
>  drivers/iio/accel/mma8452.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c
> index 00e100fc845a..813bca7cfc3e 100644
> --- a/drivers/iio/accel/mma8452.c
> +++ b/drivers/iio/accel/mma8452.c
> @@ -1685,10 +1685,13 @@ static int mma8452_probe(struct i2c_client *client,
>  
>  	ret = mma8452_set_freefall_mode(data, false);
>  	if (ret < 0)
> -		goto buffer_cleanup;
> +		goto unregister_device;
>  
>  	return 0;
>  
> +unregister_device:
> +	iio_device_unregister(indio_dev);
> +
>  buffer_cleanup:
>  	iio_triggered_buffer_cleanup(indio_dev);
>

Patch
diff mbox series

diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c
index 00e100fc845a..813bca7cfc3e 100644
--- a/drivers/iio/accel/mma8452.c
+++ b/drivers/iio/accel/mma8452.c
@@ -1685,10 +1685,13 @@  static int mma8452_probe(struct i2c_client *client,
 
 	ret = mma8452_set_freefall_mode(data, false);
 	if (ret < 0)
-		goto buffer_cleanup;
+		goto unregister_device;
 
 	return 0;
 
+unregister_device:
+	iio_device_unregister(indio_dev);
+
 buffer_cleanup:
 	iio_triggered_buffer_cleanup(indio_dev);