2019-03-29 12:49:15

by Laurentiu Tudor

[permalink] [raw]
Subject: [PATCH] i2c: imx: don't leak the i2c adapter on error

From: Laurentiu Tudor <[email protected]>

Make sure to free the i2c adapter on the error exit path.

Signed-off-by: Laurentiu Tudor <[email protected]>
---
drivers/i2c/busses/i2c-imx.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c
index 42fed40198a0..2dfd33f48cd8 100644
--- a/drivers/i2c/busses/i2c-imx.c
+++ b/drivers/i2c/busses/i2c-imx.c
@@ -1169,11 +1169,13 @@ static int i2c_imx_probe(struct platform_device *pdev)
/* Init DMA config if supported */
ret = i2c_imx_dma_request(i2c_imx, phy_addr);
if (ret < 0)
- goto clk_notifier_unregister;
+ goto del_adapter;

dev_info(&i2c_imx->adapter.dev, "IMX I2C adapter registered\n");
return 0; /* Return OK */

+del_adapter:
+ i2c_del_adapter(&i2c_imx->adapter);
clk_notifier_unregister:
clk_notifier_unregister(i2c_imx->clk, &i2c_imx->clk_change_nb);
rpm_disable:
--
2.17.1



2019-03-29 13:35:34

by Mukesh Ojha

[permalink] [raw]
Subject: Re: [PATCH] i2c: imx: don't leak the i2c adapter on error


On 3/29/2019 6:18 PM, [email protected] wrote:
> From: Laurentiu Tudor <[email protected]>
>
> Make sure to free the i2c adapter on the error exit path.
>
> Signed-off-by: Laurentiu Tudor <[email protected]>
Reviewed-by: Mukesh Ojha <[email protected]>

Cheers,
-Mukesh
> ---
> drivers/i2c/busses/i2c-imx.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c
> index 42fed40198a0..2dfd33f48cd8 100644
> --- a/drivers/i2c/busses/i2c-imx.c
> +++ b/drivers/i2c/busses/i2c-imx.c
> @@ -1169,11 +1169,13 @@ static int i2c_imx_probe(struct platform_device *pdev)
> /* Init DMA config if supported */
> ret = i2c_imx_dma_request(i2c_imx, phy_addr);
> if (ret < 0)
> - goto clk_notifier_unregister;
> + goto del_adapter;
>
> dev_info(&i2c_imx->adapter.dev, "IMX I2C adapter registered\n");
> return 0; /* Return OK */
>
> +del_adapter:
> + i2c_del_adapter(&i2c_imx->adapter);
> clk_notifier_unregister:
> clk_notifier_unregister(i2c_imx->clk, &i2c_imx->clk_change_nb);
> rpm_disable:

2019-03-29 21:09:48

by Uwe Kleine-König

[permalink] [raw]
Subject: Re: [PATCH] i2c: imx: don't leak the i2c adapter on error

On Fri, Mar 29, 2019 at 02:48:17PM +0200, [email protected] wrote:
> From: Laurentiu Tudor <[email protected]>
>
> Make sure to free the i2c adapter on the error exit path.
>
> Signed-off-by: Laurentiu Tudor <[email protected]>

> drivers/i2c/busses/i2c-imx.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c
> index 42fed40198a0..2dfd33f48cd8 100644
> --- a/drivers/i2c/busses/i2c-imx.c
> +++ b/drivers/i2c/busses/i2c-imx.c
> @@ -1169,11 +1169,13 @@ static int i2c_imx_probe(struct platform_device *pdev)
> /* Init DMA config if supported */
> ret = i2c_imx_dma_request(i2c_imx, phy_addr);
> if (ret < 0)
> - goto clk_notifier_unregister;
> + goto del_adapter;
>
> dev_info(&i2c_imx->adapter.dev, "IMX I2C adapter registered\n");
> return 0; /* Return OK */
>
> +del_adapter:
> + i2c_del_adapter(&i2c_imx->adapter);

Indention problem here, please remove the superflous space here.

Other than that:

Reviewed-by: Uwe Kleine-K?nig <[email protected]>
Fixes: e1ab9a468e3b ("i2c: imx: improve the error handling in i2c_imx_dma_request()")

Thanks
Uwe

> clk_notifier_unregister:
> clk_notifier_unregister(i2c_imx->clk, &i2c_imx->clk_change_nb);
> rpm_disable:
> --
> 2.17.1
>
>
>

--
Pengutronix e.K. | Uwe Kleine-K?nig |
Industrial Linux Solutions | http://www.pengutronix.de/ |