Commit 64157b2c authored by Qiushi Wu's avatar Qiushi Wu Committed by Mauro Carvalho Chehab
Browse files

media: exynos4-is: Fix a reference count leak



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.
Thus call pm_runtime_put_noidle() if pm_runtime_get_sync() fails.

Signed-off-by: default avatarQiushi Wu <wu000273@umn.edu>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent 7dae2aaa
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -510,9 +510,11 @@ static int s5pcsis_s_stream(struct v4l2_subdev *sd, int enable)
	if (enable) {
		s5pcsis_clear_counters(state);
		ret = pm_runtime_get_sync(&state->pdev->dev);
		if (ret && ret != 1)
		if (ret && ret != 1) {
			pm_runtime_put_noidle(&state->pdev->dev);
			return ret;
		}
	}

	mutex_lock(&state->lock);
	if (enable) {