diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
commit | c71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch) | |
tree | ecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /drivers/media/dvb/bt8xx/dst_ca.c | |
parent | ea53c912f8a86a8567697115b6a0d8152beee5c8 (diff) | |
parent | 6a00f206debf8a5c8899055726ad127dbeeed098 (diff) |
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts:
litmus/sched_cedf.c
Diffstat (limited to 'drivers/media/dvb/bt8xx/dst_ca.c')
-rw-r--r-- | drivers/media/dvb/bt8xx/dst_ca.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/media/dvb/bt8xx/dst_ca.c b/drivers/media/dvb/bt8xx/dst_ca.c index cf8705162845..48e48e8af55a 100644 --- a/drivers/media/dvb/bt8xx/dst_ca.c +++ b/drivers/media/dvb/bt8xx/dst_ca.c | |||
@@ -22,7 +22,7 @@ | |||
22 | #include <linux/module.h> | 22 | #include <linux/module.h> |
23 | #include <linux/slab.h> | 23 | #include <linux/slab.h> |
24 | #include <linux/init.h> | 24 | #include <linux/init.h> |
25 | #include <linux/smp_lock.h> | 25 | #include <linux/mutex.h> |
26 | #include <linux/string.h> | 26 | #include <linux/string.h> |
27 | #include <linux/dvb/ca.h> | 27 | #include <linux/dvb/ca.h> |
28 | #include "dvbdev.h" | 28 | #include "dvbdev.h" |
@@ -52,6 +52,7 @@ | |||
52 | } while(0) | 52 | } while(0) |
53 | 53 | ||
54 | 54 | ||
55 | static DEFINE_MUTEX(dst_ca_mutex); | ||
55 | static unsigned int verbose = 5; | 56 | static unsigned int verbose = 5; |
56 | module_param(verbose, int, 0644); | 57 | module_param(verbose, int, 0644); |
57 | MODULE_PARM_DESC(verbose, "verbose startup messages, default is 1 (yes)"); | 58 | MODULE_PARM_DESC(verbose, "verbose startup messages, default is 1 (yes)"); |
@@ -564,7 +565,7 @@ static long dst_ca_ioctl(struct file *file, unsigned int cmd, unsigned long ioct | |||
564 | void __user *arg = (void __user *)ioctl_arg; | 565 | void __user *arg = (void __user *)ioctl_arg; |
565 | int result = 0; | 566 | int result = 0; |
566 | 567 | ||
567 | lock_kernel(); | 568 | mutex_lock(&dst_ca_mutex); |
568 | dvbdev = file->private_data; | 569 | dvbdev = file->private_data; |
569 | state = (struct dst_state *)dvbdev->priv; | 570 | state = (struct dst_state *)dvbdev->priv; |
570 | p_ca_message = kmalloc(sizeof (struct ca_msg), GFP_KERNEL); | 571 | p_ca_message = kmalloc(sizeof (struct ca_msg), GFP_KERNEL); |
@@ -652,7 +653,7 @@ static long dst_ca_ioctl(struct file *file, unsigned int cmd, unsigned long ioct | |||
652 | kfree (p_ca_slot_info); | 653 | kfree (p_ca_slot_info); |
653 | kfree (p_ca_caps); | 654 | kfree (p_ca_caps); |
654 | 655 | ||
655 | unlock_kernel(); | 656 | mutex_unlock(&dst_ca_mutex); |
656 | return result; | 657 | return result; |
657 | } | 658 | } |
658 | 659 | ||
@@ -694,7 +695,8 @@ static const struct file_operations dst_ca_fops = { | |||
694 | .open = dst_ca_open, | 695 | .open = dst_ca_open, |
695 | .release = dst_ca_release, | 696 | .release = dst_ca_release, |
696 | .read = dst_ca_read, | 697 | .read = dst_ca_read, |
697 | .write = dst_ca_write | 698 | .write = dst_ca_write, |
699 | .llseek = noop_llseek, | ||
698 | }; | 700 | }; |
699 | 701 | ||
700 | static struct dvb_device dvbdev_ca = { | 702 | static struct dvb_device dvbdev_ca = { |