media: staging: tegra-vde: fix runtime pm imbalance on error
authorDinghao Liu <dinghao.liu@zju.edu.cn>
Thu, 21 May 2020 06:27:45 +0000 (08:27 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Tue, 23 Jun 2020 11:18:10 +0000 (13:18 +0200)
pm_runtime_get_sync() increments the runtime PM usage counter even
the call returns an error code. Thus a pairing decrement is needed
on the error handling path to keep the counter balanced.

Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/staging/media/tegra-vde/vde.c

index d3e6351..3fdf2cd 100644 (file)
@@ -777,7 +777,7 @@ static int tegra_vde_ioctl_decode_h264(struct tegra_vde *vde,
 
        ret = pm_runtime_get_sync(dev);
        if (ret < 0)
-               goto unlock;
+               goto put_runtime_pm;
 
        /*
         * We rely on the VDE registers reset value, otherwise VDE
@@ -843,8 +843,6 @@ static int tegra_vde_ioctl_decode_h264(struct tegra_vde *vde,
 put_runtime_pm:
        pm_runtime_mark_last_busy(dev);
        pm_runtime_put_autosuspend(dev);
-
-unlock:
        mutex_unlock(&vde->lock);
 
 release_dpb_frames: