diff options
Diffstat (limited to 'drivers/macintosh/adb.c')
-rw-r--r-- | drivers/macintosh/adb.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/macintosh/adb.c b/drivers/macintosh/adb.c index bf64e49d996a..75049e765191 100644 --- a/drivers/macintosh/adb.c +++ b/drivers/macintosh/adb.c | |||
@@ -24,7 +24,6 @@ | |||
24 | #include <linux/fs.h> | 24 | #include <linux/fs.h> |
25 | #include <linux/mm.h> | 25 | #include <linux/mm.h> |
26 | #include <linux/sched.h> | 26 | #include <linux/sched.h> |
27 | #include <linux/smp_lock.h> | ||
28 | #include <linux/adb.h> | 27 | #include <linux/adb.h> |
29 | #include <linux/cuda.h> | 28 | #include <linux/cuda.h> |
30 | #include <linux/pmu.h> | 29 | #include <linux/pmu.h> |
@@ -55,6 +54,7 @@ extern struct adb_driver adb_iop_driver; | |||
55 | extern struct adb_driver via_pmu_driver; | 54 | extern struct adb_driver via_pmu_driver; |
56 | extern struct adb_driver macio_adb_driver; | 55 | extern struct adb_driver macio_adb_driver; |
57 | 56 | ||
57 | static DEFINE_MUTEX(adb_mutex); | ||
58 | static struct adb_driver *adb_driver_list[] = { | 58 | static struct adb_driver *adb_driver_list[] = { |
59 | #ifdef CONFIG_ADB_MACII | 59 | #ifdef CONFIG_ADB_MACII |
60 | &via_macii_driver, | 60 | &via_macii_driver, |
@@ -647,7 +647,7 @@ static int adb_open(struct inode *inode, struct file *file) | |||
647 | struct adbdev_state *state; | 647 | struct adbdev_state *state; |
648 | int ret = 0; | 648 | int ret = 0; |
649 | 649 | ||
650 | lock_kernel(); | 650 | mutex_lock(&adb_mutex); |
651 | if (iminor(inode) > 0 || adb_controller == NULL) { | 651 | if (iminor(inode) > 0 || adb_controller == NULL) { |
652 | ret = -ENXIO; | 652 | ret = -ENXIO; |
653 | goto out; | 653 | goto out; |
@@ -665,7 +665,7 @@ static int adb_open(struct inode *inode, struct file *file) | |||
665 | state->inuse = 1; | 665 | state->inuse = 1; |
666 | 666 | ||
667 | out: | 667 | out: |
668 | unlock_kernel(); | 668 | mutex_unlock(&adb_mutex); |
669 | return ret; | 669 | return ret; |
670 | } | 670 | } |
671 | 671 | ||
@@ -674,7 +674,7 @@ static int adb_release(struct inode *inode, struct file *file) | |||
674 | struct adbdev_state *state = file->private_data; | 674 | struct adbdev_state *state = file->private_data; |
675 | unsigned long flags; | 675 | unsigned long flags; |
676 | 676 | ||
677 | lock_kernel(); | 677 | mutex_lock(&adb_mutex); |
678 | if (state) { | 678 | if (state) { |
679 | file->private_data = NULL; | 679 | file->private_data = NULL; |
680 | spin_lock_irqsave(&state->lock, flags); | 680 | spin_lock_irqsave(&state->lock, flags); |
@@ -687,7 +687,7 @@ static int adb_release(struct inode *inode, struct file *file) | |||
687 | spin_unlock_irqrestore(&state->lock, flags); | 687 | spin_unlock_irqrestore(&state->lock, flags); |
688 | } | 688 | } |
689 | } | 689 | } |
690 | unlock_kernel(); | 690 | mutex_unlock(&adb_mutex); |
691 | return 0; | 691 | return 0; |
692 | } | 692 | } |
693 | 693 | ||