]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
drm/exynos: fix ref count leak in mic_pre_enable
authorNavid Emamdoost <navid.emamdoost@gmail.com>
Mon, 15 Jun 2020 05:49:28 +0000 (00:49 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 Jul 2020 07:32:51 +0000 (09:32 +0200)
[ Upstream commit d4f5a095daf0d25f0b385e1ef26338608433a4c5 ]

in mic_pre_enable, pm_runtime_get_sync is called which
increments the counter even in case of failure, leading to incorrect
ref count. In case of failure, decrement the ref count before returning.

Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/exynos/exynos_drm_mic.c

index b78e8c5ba553b215f590a38ec6bf97dce02b9e7d..2aff986add899e8683c317f42f7d26a6b24d887f 100644 (file)
@@ -268,8 +268,10 @@ static void mic_pre_enable(struct drm_bridge *bridge)
                goto unlock;
 
        ret = pm_runtime_get_sync(mic->dev);
-       if (ret < 0)
+       if (ret < 0) {
+               pm_runtime_put_noidle(mic->dev);
                goto unlock;
+       }
 
        mic_set_path(mic, 1);