]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - queue-5.1/media-v4l2-test-type-instead-of-cfg-type-in-v4l2_ctrl_new_custom.patch
5.1-stable patches
[thirdparty/kernel/stable-queue.git] / queue-5.1 / media-v4l2-test-type-instead-of-cfg-type-in-v4l2_ctrl_new_custom.patch
CommitLineData
8da4beba
GKH
1From 07d89227a983df957a6a7c56f7c040cde9ac571f Mon Sep 17 00:00:00 2001
2From: Boris Brezillon <boris.brezillon@collabora.com>
3Date: Wed, 19 Jun 2019 05:21:33 -0400
4Subject: media: v4l2: Test type instead of cfg->type in v4l2_ctrl_new_custom()
5
6From: Boris Brezillon <boris.brezillon@collabora.com>
7
8commit 07d89227a983df957a6a7c56f7c040cde9ac571f upstream.
9
10cfg->type can be overridden by v4l2_ctrl_fill() and the new value is
11stored in the local type var. Fix the tests to use this local var.
12
13Fixes: 0996517cf8ea ("V4L/DVB: v4l2: Add new control handling framework")
14Cc: <stable@vger.kernel.org>
15Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
16[hverkuil-cisco@xs4all.nl: change to !qmenu and !qmenu_int (checkpatch)]
17Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
18Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
19Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
20
21---
22 drivers/media/v4l2-core/v4l2-ctrls.c | 9 ++++-----
23 1 file changed, 4 insertions(+), 5 deletions(-)
24
25--- a/drivers/media/v4l2-core/v4l2-ctrls.c
26+++ b/drivers/media/v4l2-core/v4l2-ctrls.c
27@@ -2365,16 +2365,15 @@ struct v4l2_ctrl *v4l2_ctrl_new_custom(s
28 v4l2_ctrl_fill(cfg->id, &name, &type, &min, &max, &step,
29 &def, &flags);
30
31- is_menu = (cfg->type == V4L2_CTRL_TYPE_MENU ||
32- cfg->type == V4L2_CTRL_TYPE_INTEGER_MENU);
33+ is_menu = (type == V4L2_CTRL_TYPE_MENU ||
34+ type == V4L2_CTRL_TYPE_INTEGER_MENU);
35 if (is_menu)
36 WARN_ON(step);
37 else
38 WARN_ON(cfg->menu_skip_mask);
39- if (cfg->type == V4L2_CTRL_TYPE_MENU && qmenu == NULL)
40+ if (type == V4L2_CTRL_TYPE_MENU && !qmenu) {
41 qmenu = v4l2_ctrl_get_menu(cfg->id);
42- else if (cfg->type == V4L2_CTRL_TYPE_INTEGER_MENU &&
43- qmenu_int == NULL) {
44+ } else if (type == V4L2_CTRL_TYPE_INTEGER_MENU && !qmenu_int) {
45 handler_set_err(hdl, -EINVAL);
46 return NULL;
47 }