diff options
author | Stoyan Gaydarov <stoyboyker@gmail.com> | 2009-03-24 17:12:47 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2009-03-30 11:43:42 -0400 |
commit | 5ed2b6419ef48efda66a71d4b26bd2fa6b6a1ac7 (patch) | |
tree | 80a33b6bfaf2a620746cc4c547ff2c7b7a2f29d7 /drivers/media/video/dabusb.c | |
parent | cea0213de7e2376041bc1997a2303b09e7d5aad0 (diff) |
V4L/DVB (11235): changed ioctls to unlocked
Signed-off-by: Stoyan Gaydarov <stoyboyker@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/dabusb.c')
-rw-r--r-- | drivers/media/video/dabusb.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/media/video/dabusb.c b/drivers/media/video/dabusb.c index a525a924edfa..384da45807a0 100644 --- a/drivers/media/video/dabusb.c +++ b/drivers/media/video/dabusb.c | |||
@@ -673,8 +673,9 @@ static int dabusb_release (struct inode *inode, struct file *file) | |||
673 | return 0; | 673 | return 0; |
674 | } | 674 | } |
675 | 675 | ||
676 | static int dabusb_ioctl (struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) | 676 | static long dabusb_ioctl (struct file *file, unsigned int cmd, unsigned long arg) |
677 | { | 677 | { |
678 | lock_kernel(); | ||
678 | pdabusb_t s = (pdabusb_t) file->private_data; | 679 | pdabusb_t s = (pdabusb_t) file->private_data; |
679 | pbulk_transfer_t pbulk; | 680 | pbulk_transfer_t pbulk; |
680 | int ret = 0; | 681 | int ret = 0; |
@@ -682,13 +683,16 @@ static int dabusb_ioctl (struct inode *inode, struct file *file, unsigned int cm | |||
682 | 683 | ||
683 | dbg("dabusb_ioctl"); | 684 | dbg("dabusb_ioctl"); |
684 | 685 | ||
685 | if (s->remove_pending) | 686 | if (s->remove_pending) { |
687 | unlock_kernel(); | ||
686 | return -EIO; | 688 | return -EIO; |
689 | } | ||
687 | 690 | ||
688 | mutex_lock(&s->mutex); | 691 | mutex_lock(&s->mutex); |
689 | 692 | ||
690 | if (!s->usbdev) { | 693 | if (!s->usbdev) { |
691 | mutex_unlock(&s->mutex); | 694 | mutex_unlock(&s->mutex); |
695 | unlock_kernel(); | ||
692 | return -EIO; | 696 | return -EIO; |
693 | } | 697 | } |
694 | 698 | ||
@@ -729,6 +733,7 @@ static int dabusb_ioctl (struct inode *inode, struct file *file, unsigned int cm | |||
729 | break; | 733 | break; |
730 | } | 734 | } |
731 | mutex_unlock(&s->mutex); | 735 | mutex_unlock(&s->mutex); |
736 | unlock_kernel(); | ||
732 | return ret; | 737 | return ret; |
733 | } | 738 | } |
734 | 739 | ||
@@ -737,7 +742,7 @@ static const struct file_operations dabusb_fops = | |||
737 | .owner = THIS_MODULE, | 742 | .owner = THIS_MODULE, |
738 | .llseek = no_llseek, | 743 | .llseek = no_llseek, |
739 | .read = dabusb_read, | 744 | .read = dabusb_read, |
740 | .ioctl = dabusb_ioctl, | 745 | .unlocked_ioctl = dabusb_ioctl, |
741 | .open = dabusb_open, | 746 | .open = dabusb_open, |
742 | .release = dabusb_release, | 747 | .release = dabusb_release, |
743 | }; | 748 | }; |