2020-05-28 06:43:57

by Chuhong Yuan

[permalink] [raw]
Subject: [PATCH v2] iio: mma8452: Add missed iio_device_unregister() call in mma8452_probe()

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 <[email protected]>
---
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);

--
2.26.2


2020-05-31 11:22:20

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH v2] iio: mma8452: Add missed iio_device_unregister() call in mma8452_probe()

On Thu, 28 May 2020 14:41:21 +0800
Chuhong Yuan <[email protected]> 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 <[email protected]>

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);
>