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:

committed by
Mauro Carvalho Chehab

parent
eba09b5b3d
commit
73a110623e
@@ -658,18 +658,6 @@ void v4l_printk_ioctl(const char *prefix, unsigned int cmd);
|
||||
|
||||
struct video_device;
|
||||
|
||||
|
||||
/**
|
||||
* v4l2_ioctl_get_lock - get the mutex (if any) that it is need to lock for
|
||||
* a given command.
|
||||
*
|
||||
* @vdev: Pointer to struct &video_device.
|
||||
* @cmd: Ioctl name.
|
||||
*
|
||||
* .. note:: Internal use only. Should not be used outside V4L2 core.
|
||||
*/
|
||||
struct mutex *v4l2_ioctl_get_lock(struct video_device *vdev, unsigned int cmd);
|
||||
|
||||
/* names for fancy debug output */
|
||||
extern const char *v4l2_field_names[];
|
||||
extern const char *v4l2_type_names[];
|
||||
|
Reference in New Issue
Block a user