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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 19 Jul 2021 07:44:38 +0000 (09:44 +0200)
[ 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>
drivers/gpu/drm/mediatek/mtk_drm_crtc.c

index ac03857..dfd5ed1 100644 (file)
@@ -274,7 +274,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;