Skip to content

Commit

Permalink
media: ti-vpe: Fix a missing check and reference count leak
Browse files Browse the repository at this point in the history
[ Upstream commit 7dae2aa ]

pm_runtime_get_sync() increments the runtime PM usage counter even
when it returns an error code, causing incorrect ref count if
pm_runtime_put_noidle() is not called in error handling paths.
And also, when the call of function vpe_runtime_get() failed,
we won't call vpe_runtime_put().
Thus call pm_runtime_put_noidle() if pm_runtime_get_sync() fails
inside vpe_runtime_get().

Fixes: 4571912 ("[media] v4l: ti-vpe: Add VPE mem to mem driver")
Signed-off-by: Qiushi Wu <wu000273@umn.edu>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
  • Loading branch information
QiushiWu authored and gregkh committed Oct 29, 2020
1 parent 41d0249 commit d7e1b54
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions drivers/media/platform/ti-vpe/vpe.c
Expand Up @@ -2475,6 +2475,8 @@ static int vpe_runtime_get(struct platform_device *pdev)

r = pm_runtime_get_sync(&pdev->dev);
WARN_ON(r < 0);
if (r)
pm_runtime_put_noidle(&pdev->dev);
return r < 0 ? r : 0;
}

Expand Down

0 comments on commit d7e1b54

Please sign in to comment.