[RESEND PATCH] drm/mipi-dsi: Fix error handling in mipi_dsi_device_register_full

Miaoqian Lin posted 1 patch 3 years, 11 months ago
drivers/gpu/drm/drm_mipi_dsi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[RESEND PATCH] drm/mipi-dsi: Fix error handling in mipi_dsi_device_register_full
Posted by Miaoqian Lin 3 years, 11 months ago
In mipi_dsi_device_alloc(), it calls device_initialize(&dsi->dev);
We need to use put_device() instead freeing directly.

Fixes: 068a002 ("drm: Add MIPI DSI bus support")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
---
 drivers/gpu/drm/drm_mipi_dsi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_mipi_dsi.c b/drivers/gpu/drm/drm_mipi_dsi.c
index c40bde96cfdf..8cc8deca006f 100644
--- a/drivers/gpu/drm/drm_mipi_dsi.c
+++ b/drivers/gpu/drm/drm_mipi_dsi.c
@@ -228,7 +228,7 @@ mipi_dsi_device_register_full(struct mipi_dsi_host *host,
 	ret = mipi_dsi_device_add(dsi);
 	if (ret) {
 		drm_err(host, "failed to add DSI device %d\n", ret);
-		kfree(dsi);
+		put_device(&dsi->dev);
 		return ERR_PTR(ret);
 	}
 
-- 
2.25.1
Re: [RESEND PATCH] drm/mipi-dsi: Fix error handling in mipi_dsi_device_register_full
Posted by Andrzej Hajda 3 years, 11 months ago

On 01.06.2022 14:40, Miaoqian Lin wrote:
> In mipi_dsi_device_alloc(), it calls device_initialize(&dsi->dev);
> We need to use put_device() instead freeing directly.
>
> Fixes: 068a002 ("drm: Add MIPI DSI bus support")
> Signed-off-by: Miaoqian Lin <linmq006@gmail.com>

Looks correct.
Reviewed-by: Andrzej Hajda <andrzej.hajda@intel.com>

Regards
Andrzej

> ---
>   drivers/gpu/drm/drm_mipi_dsi.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/drm_mipi_dsi.c b/drivers/gpu/drm/drm_mipi_dsi.c
> index c40bde96cfdf..8cc8deca006f 100644
> --- a/drivers/gpu/drm/drm_mipi_dsi.c
> +++ b/drivers/gpu/drm/drm_mipi_dsi.c
> @@ -228,7 +228,7 @@ mipi_dsi_device_register_full(struct mipi_dsi_host *host,
>   	ret = mipi_dsi_device_add(dsi);
>   	if (ret) {
>   		drm_err(host, "failed to add DSI device %d\n", ret);
> -		kfree(dsi);
> +		put_device(&dsi->dev);
>   		return ERR_PTR(ret);
>   	}
>