]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/4.14.60/media-media-device-fix-ioctl-function-types.patch
Fixes for 5.10
[thirdparty/kernel/stable-queue.git] / releases / 4.14.60 / media-media-device-fix-ioctl-function-types.patch
CommitLineData
a65d4bac
GKH
1From foo@baz Sat Jul 28 10:25:26 CEST 2018
2From: Sami Tolvanen <samitolvanen@google.com>
3Date: Mon, 7 May 2018 14:09:46 -0400
4Subject: media: media-device: fix ioctl function types
5
6From: Sami Tolvanen <samitolvanen@google.com>
7
8[ Upstream commit daa36370b62428cca6d48d1b2530a8419f631c8c ]
9
10This change fixes function types for media device ioctls to avoid
11indirect call mismatches with Control-Flow Integrity checking.
12
13Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
14Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
15Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
16Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
17Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
18Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
19---
20 drivers/media/media-device.c | 21 +++++++++++----------
21 1 file changed, 11 insertions(+), 10 deletions(-)
22
23--- a/drivers/media/media-device.c
24+++ b/drivers/media/media-device.c
25@@ -54,9 +54,10 @@ static int media_device_close(struct fil
26 return 0;
27 }
28
29-static int media_device_get_info(struct media_device *dev,
30- struct media_device_info *info)
31+static long media_device_get_info(struct media_device *dev, void *arg)
32 {
33+ struct media_device_info *info = arg;
34+
35 memset(info, 0, sizeof(*info));
36
37 if (dev->driver_name[0])
38@@ -93,9 +94,9 @@ static struct media_entity *find_entity(
39 return NULL;
40 }
41
42-static long media_device_enum_entities(struct media_device *mdev,
43- struct media_entity_desc *entd)
44+static long media_device_enum_entities(struct media_device *mdev, void *arg)
45 {
46+ struct media_entity_desc *entd = arg;
47 struct media_entity *ent;
48
49 ent = find_entity(mdev, entd->id);
50@@ -146,9 +147,9 @@ static void media_device_kpad_to_upad(co
51 upad->flags = kpad->flags;
52 }
53
54-static long media_device_enum_links(struct media_device *mdev,
55- struct media_links_enum *links)
56+static long media_device_enum_links(struct media_device *mdev, void *arg)
57 {
58+ struct media_links_enum *links = arg;
59 struct media_entity *entity;
60
61 entity = find_entity(mdev, links->entity);
62@@ -194,9 +195,9 @@ static long media_device_enum_links(stru
63 return 0;
64 }
65
66-static long media_device_setup_link(struct media_device *mdev,
67- struct media_link_desc *linkd)
68+static long media_device_setup_link(struct media_device *mdev, void *arg)
69 {
70+ struct media_link_desc *linkd = arg;
71 struct media_link *link = NULL;
72 struct media_entity *source;
73 struct media_entity *sink;
74@@ -222,9 +223,9 @@ static long media_device_setup_link(stru
75 return __media_entity_setup_link(link, linkd->flags);
76 }
77
78-static long media_device_get_topology(struct media_device *mdev,
79- struct media_v2_topology *topo)
80+static long media_device_get_topology(struct media_device *mdev, void *arg)
81 {
82+ struct media_v2_topology *topo = arg;
83 struct media_entity *entity;
84 struct media_interface *intf;
85 struct media_pad *pad;