]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/msm/hdmi: Fix missing put_device() call in msm_hdmi_get_phy
authorMiaoqian Lin <linmq006@gmail.com>
Fri, 7 Jan 2022 08:50:22 +0000 (08:50 +0000)
committerDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Tue, 25 Jan 2022 02:44:54 +0000 (05:44 +0300)
The reference taken by 'of_find_device_by_node()' must be released when
not needed anymore.
Add the corresponding 'put_device()' in the error handling path.

Fixes: 759a4a9ba44f ("drm/msm/hdmi: Make HDMI core get its PHY")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/20220107085026.23831-1-linmq006@gmail.com
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
drivers/gpu/drm/msm/hdmi/hdmi.c

index 3acdeae25caf09e0c093132b4572a012c57f81e0..719720709e9e754316580bf1eafcb62b08af5d1f 100644 (file)
@@ -97,10 +97,15 @@ static int msm_hdmi_get_phy(struct hdmi *hdmi)
 
        of_node_put(phy_node);
 
-       if (!phy_pdev || !hdmi->phy) {
+       if (!phy_pdev) {
                DRM_DEV_ERROR(&pdev->dev, "phy driver is not ready\n");
                return -EPROBE_DEFER;
        }
+       if (!hdmi->phy) {
+               DRM_DEV_ERROR(&pdev->dev, "phy driver is not ready\n");
+               put_device(&phy_pdev->dev);
+               return -EPROBE_DEFER;
+       }
 
        hdmi->phy_dev = get_device(&phy_pdev->dev);