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)
committerInki Dae <inki.dae@samsung.com>
Mon, 29 Jun 2020 00:38:41 +0000 (09:38 +0900)
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>
drivers/gpu/drm/exynos/exynos_drm_mic.c

index a86abc1..3821ea7 100644 (file)
@@ -269,8 +269,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);