mirror of https://gitee.com/openkylin/linux.git
V4L/DVB: Fix a merge conflict that affects unlock_ioctl
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
be737a8269
commit
7242063018
|
@ -236,20 +236,20 @@ static unsigned int v4l2_poll(struct file *filp, struct poll_table_struct *poll)
|
|||
static long v4l2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
struct video_device *vdev = video_devdata(filp);
|
||||
int ret;
|
||||
int ret = -ENODEV;
|
||||
|
||||
if (!vdev->fops->ioctl)
|
||||
return -ENOTTY;
|
||||
if (vdev->fops->unlocked_ioctl) {
|
||||
if (vdev->lock)
|
||||
mutex_lock(vdev->lock);
|
||||
ret = vdev->fops->unlocked_ioctl(filp, cmd, arg);
|
||||
if (video_is_registered(vdev))
|
||||
ret = vdev->fops->unlocked_ioctl(filp, cmd, arg);
|
||||
if (vdev->lock)
|
||||
mutex_unlock(vdev->lock);
|
||||
} else if (vdev->fops->ioctl) {
|
||||
/* TODO: convert all drivers to unlocked_ioctl */
|
||||
lock_kernel();
|
||||
ret = vdev->fops->ioctl(filp, cmd, arg);
|
||||
if (video_is_registered(vdev))
|
||||
ret = vdev->fops->ioctl(filp, cmd, arg);
|
||||
unlock_kernel();
|
||||
} else
|
||||
ret = -ENOTTY;
|
||||
|
|
Loading…
Reference in New Issue