]> 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:22:21 +0000 (09:22 +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 ba4a32b132baada502df485477d85281600b872f..59ce068b152f5fc252f16f0134e169239c9a3ead 100644 (file)
@@ -267,8 +267,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);