aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/staging
diff options
context:
space:
mode:
authorEzequiel Garcia <ezequiel@collabora.com>2020-08-13 21:18:33 +0200
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>2020-08-27 09:30:20 +0200
commitb30063976f29fc221a99d18d37d22ca035068aa9 (patch)
tree4200f2413258919debf92ef3e262c51f927b10fb /drivers/staging
parentmedia: vicodec: add missing v4l2_ctrl_request_hdl_put() (diff)
downloadwireguard-linux-b30063976f29fc221a99d18d37d22ca035068aa9.tar.xz
wireguard-linux-b30063976f29fc221a99d18d37d22ca035068aa9.zip
media: cedrus: Add missing v4l2_ctrl_request_hdl_put()
The check for a required control in the request was missing a call to v4l2_ctrl_request_hdl_put() in the error path. Fix it. Fixes: 50e761516f2b8c ("media: platform: Add Cedrus VPU decoder driver") Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Diffstat (limited to 'drivers/staging')
-rw-r--r--drivers/staging/media/sunxi/cedrus/cedrus.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/staging/media/sunxi/cedrus/cedrus.c b/drivers/staging/media/sunxi/cedrus/cedrus.c
index bc27f9430eeb..7c6b91f0e780 100644
--- a/drivers/staging/media/sunxi/cedrus/cedrus.c
+++ b/drivers/staging/media/sunxi/cedrus/cedrus.c
@@ -199,6 +199,7 @@ static int cedrus_request_validate(struct media_request *req)
struct v4l2_ctrl *ctrl_test;
unsigned int count;
unsigned int i;
+ int ret = 0;
list_for_each_entry(obj, &req->objects, list) {
struct vb2_buffer *vb;
@@ -243,12 +244,16 @@ static int cedrus_request_validate(struct media_request *req)
if (!ctrl_test) {
v4l2_info(&ctx->dev->v4l2_dev,
"Missing required codec control\n");
- return -ENOENT;
+ ret = -ENOENT;
+ break;
}
}
v4l2_ctrl_request_hdl_put(hdl);
+ if (ret)
+ return ret;
+
return vb2_request_validate(req);
}