Commit 940727bf authored by Zhang Qilong's avatar Zhang Qilong Committed by Mauro Carvalho Chehab
Browse files

media: cedrus: fix reference leak in cedrus_start_streaming



pm_runtime_get_sync will increment pm usage counter even it
failed. Forgetting to pm_runtime_put_noidle will result in
reference leak in cedrus_start_streaming. We should fix it.

Fixes: d5aecd28 ("media: cedrus: Implement runtime PM")
Signed-off-by: default avatarZhang Qilong <zhangqilong3@huawei.com>
Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent 4cbbe2aa
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -479,8 +479,10 @@ static int cedrus_start_streaming(struct vb2_queue *vq, unsigned int count)

	if (V4L2_TYPE_IS_OUTPUT(vq->type)) {
		ret = pm_runtime_get_sync(dev->dev);
		if (ret < 0)
		if (ret < 0) {
			pm_runtime_put_noidle(dev->dev);
			goto err_cleanup;
		}

		if (dev->dec_ops[ctx->current_codec]->start) {
			ret = dev->dec_ops[ctx->current_codec]->start(ctx);