]>
Commit | Line | Data |
---|---|---|
a65d4bac GKH |
1 | From foo@baz Sat Jul 28 10:25:26 CEST 2018 |
2 | From: Sami Tolvanen <samitolvanen@google.com> | |
3 | Date: Mon, 7 May 2018 14:09:46 -0400 | |
4 | Subject: media: media-device: fix ioctl function types | |
5 | ||
6 | From: Sami Tolvanen <samitolvanen@google.com> | |
7 | ||
8 | [ Upstream commit daa36370b62428cca6d48d1b2530a8419f631c8c ] | |
9 | ||
10 | This change fixes function types for media device ioctls to avoid | |
11 | indirect call mismatches with Control-Flow Integrity checking. | |
12 | ||
13 | Signed-off-by: Sami Tolvanen <samitolvanen@google.com> | |
14 | Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com> | |
15 | Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> | |
16 | Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> | |
17 | Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> | |
18 | Signed-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; |