Re: [PATCH] drm/msm/dsi: add missing put_device()

From: Dmitry Baryshkov
Date: Tue Jul 18 2023 - 04:16:05 EST


On 18/07/2023 11:13, sunran001@xxxxxxxxxx wrote:
The of_find_device_by_node() takes a reference to the underlying device
structure, we should release that reference.

Detected by coccinelle with the following ERROR:
./drivers/gpu/drm/msm/dsi/dsi.c:50:1-7: ERROR: missing put_device; call
of_find_device_by_node on line 32, but without a corresponding object
release within this function.

Signed-off-by: Ran Sun <sunran001@xxxxxxxxxx>
---
 drivers/gpu/drm/msm/dsi/dsi.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/msm/dsi/dsi.c b/drivers/gpu/drm/msm/dsi/dsi.c
index baab79ab6e74..81461e8852a7 100644
--- a/drivers/gpu/drm/msm/dsi/dsi.c
+++ b/drivers/gpu/drm/msm/dsi/dsi.c
@@ -46,7 +46,7 @@ static int dsi_get_phy(struct msm_dsi *msm_dsi)
         DRM_DEV_ERROR(&pdev->dev, "%s: phy driver is not ready\n", __func__);
         return -EPROBE_DEFER;
     }
-
+    put_device(&pdev->dev);

NAK. First, you are putting pdev instead of phy_pdev. Next, the reference to the phy dev is correctly stored and then put in dsi_destroy(). Please do not make blind patches when reviewing static analyser warnings.

     return 0;
 }

--
With best wishes
Dmitry