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 | |
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')
-rw-r--r-- | drivers/media/dvb/bt8xx/dst_ca.c | 7 | ||||
-rw-r--r-- | drivers/media/video/dabusb.c | 11 |
2 files changed, 13 insertions, 5 deletions
diff --git a/drivers/media/dvb/bt8xx/dst_ca.c b/drivers/media/dvb/bt8xx/dst_ca.c index 6c68f02c1709..607d7387fb6f 100644 --- a/drivers/media/dvb/bt8xx/dst_ca.c +++ b/drivers/media/dvb/bt8xx/dst_ca.c | |||
@@ -552,8 +552,10 @@ free_mem_and_exit: | |||
552 | return result; | 552 | return result; |
553 | } | 553 | } |
554 | 554 | ||
555 | static int dst_ca_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long ioctl_arg) | 555 | static long dst_ca_ioctl(struct file *file, unsigned int cmd, unsigned long ioctl_arg) |
556 | { | 556 | { |
557 | lock_kernel(); | ||
558 | |||
557 | struct dvb_device* dvbdev = (struct dvb_device*) file->private_data; | 559 | struct dvb_device* dvbdev = (struct dvb_device*) file->private_data; |
558 | struct dst_state* state = (struct dst_state*) dvbdev->priv; | 560 | struct dst_state* state = (struct dst_state*) dvbdev->priv; |
559 | struct ca_slot_info *p_ca_slot_info; | 561 | struct ca_slot_info *p_ca_slot_info; |
@@ -647,6 +649,7 @@ static int dst_ca_ioctl(struct inode *inode, struct file *file, unsigned int cmd | |||
647 | kfree (p_ca_slot_info); | 649 | kfree (p_ca_slot_info); |
648 | kfree (p_ca_caps); | 650 | kfree (p_ca_caps); |
649 | 651 | ||
652 | unlock_kernel(); | ||
650 | return result; | 653 | return result; |
651 | } | 654 | } |
652 | 655 | ||
@@ -684,7 +687,7 @@ static ssize_t dst_ca_write(struct file *file, const char __user *buffer, size_t | |||
684 | 687 | ||
685 | static const struct file_operations dst_ca_fops = { | 688 | static const struct file_operations dst_ca_fops = { |
686 | .owner = THIS_MODULE, | 689 | .owner = THIS_MODULE, |
687 | .ioctl = dst_ca_ioctl, | 690 | .unlocked_ioctl = dst_ca_ioctl, |
688 | .open = dst_ca_open, | 691 | .open = dst_ca_open, |
689 | .release = dst_ca_release, | 692 | .release = dst_ca_release, |
690 | .read = dst_ca_read, | 693 | .read = dst_ca_read, |
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 | }; |