media: v4l2-core: push taking ioctl mutex down to ioctl handler

The ioctl serialization mutex (vdev->lock or q->lock for vb2 queues)
was taken at the highest level in v4l2-dev.c. This prevents more
fine-grained locking since at that level we cannot examine the ioctl
arguments, we can only do that after video_usercopy is called.

So push the locking down to __video_do_ioctl() and subdev_do_ioctl_lock().

This also allows us to make a few functions in v4l2-ioctl.c static and
video_usercopy() is no longer exported.

The locking scheme is not changed by this patch, just pushed down.

Signed-off-by: Hans Verkuil <hansverk@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
Hans Verkuil
2018-05-11 05:32:24 -04:00
committed by Mauro Carvalho Chehab
parent eba09b5b3d
commit 73a110623e
5 changed files with 33 additions and 31 deletions

View File

@@ -435,15 +435,6 @@ void video_device_release(struct video_device *vdev);
*/
void video_device_release_empty(struct video_device *vdev);
/**
* v4l2_is_known_ioctl - Checks if a given cmd is a known V4L ioctl
*
* @cmd: ioctl command
*
* returns true if cmd is a known V4L2 ioctl
*/
bool v4l2_is_known_ioctl(unsigned int cmd);
/**
* v4l2_disable_ioctl- mark that a given command isn't implemented.
* shouldn't use core locking