]>
Commit | Line | Data |
---|---|---|
8da4beba GKH |
1 | From 07d89227a983df957a6a7c56f7c040cde9ac571f Mon Sep 17 00:00:00 2001 |
2 | From: Boris Brezillon <boris.brezillon@collabora.com> | |
3 | Date: Wed, 19 Jun 2019 05:21:33 -0400 | |
4 | Subject: media: v4l2: Test type instead of cfg->type in v4l2_ctrl_new_custom() | |
5 | ||
6 | From: Boris Brezillon <boris.brezillon@collabora.com> | |
7 | ||
8 | commit 07d89227a983df957a6a7c56f7c040cde9ac571f upstream. | |
9 | ||
10 | cfg->type can be overridden by v4l2_ctrl_fill() and the new value is | |
11 | stored in the local type var. Fix the tests to use this local var. | |
12 | ||
13 | Fixes: 0996517cf8ea ("V4L/DVB: v4l2: Add new control handling framework") | |
14 | Cc: <stable@vger.kernel.org> | |
15 | Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> | |
16 | [hverkuil-cisco@xs4all.nl: change to !qmenu and !qmenu_int (checkpatch)] | |
17 | Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> | |
18 | Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> | |
19 | Signed-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 | } |