]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/commitdiff
drm/mediatek: Fix PM reference leak in mtk_crtc_ddp_hw_init()
authorWang Li <wangli74@huawei.com>
Sat, 10 Apr 2021 03:48:41 +0000 (03:48 +0000)
committerStefan Bader <stefan.bader@canonical.com>
Fri, 13 Aug 2021 07:46:31 +0000 (09:46 +0200)
BugLink: https://bugs.launchpad.net/bugs/1938713
[ Upstream commit 69777e6ca396f0a7e1baff40fcad4a9d3d445b7a ]

pm_runtime_get_sync will increment pm usage counter even it failed.
Forgetting to putting operation will result in reference leak here.
Fix it by replacing it with pm_runtime_resume_and_get to keep usage
counter balanced.

Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Wang Li <wangli74@huawei.com>
Signed-off-by: Chun-Kuang Hu <chunkuang.hu@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
drivers/gpu/drm/mediatek/mtk_drm_crtc.c

index f9455f2724d2374f20f2eea686952c61dec47030..f370d41b3d04111f511288e93dceedfa4dc70bb0 100644 (file)
@@ -240,7 +240,7 @@ static int mtk_crtc_ddp_hw_init(struct mtk_drm_crtc *mtk_crtc)
                drm_connector_list_iter_end(&conn_iter);
        }
 
-       ret = pm_runtime_get_sync(crtc->dev->dev);
+       ret = pm_runtime_resume_and_get(crtc->dev->dev);
        if (ret < 0) {
                DRM_ERROR("Failed to enable power domain: %d\n", ret);
                return ret;