diff options
Diffstat (limited to 'drivers/ide/ide-cd.c')
-rw-r--r-- | drivers/ide/ide-cd.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c index 31fc76960a8f..0c73fe39a236 100644 --- a/drivers/ide/ide-cd.c +++ b/drivers/ide/ide-cd.c | |||
@@ -31,7 +31,6 @@ | |||
31 | #include <linux/delay.h> | 31 | #include <linux/delay.h> |
32 | #include <linux/timer.h> | 32 | #include <linux/timer.h> |
33 | #include <linux/seq_file.h> | 33 | #include <linux/seq_file.h> |
34 | #include <linux/smp_lock.h> | ||
35 | #include <linux/slab.h> | 34 | #include <linux/slab.h> |
36 | #include <linux/interrupt.h> | 35 | #include <linux/interrupt.h> |
37 | #include <linux/errno.h> | 36 | #include <linux/errno.h> |
@@ -52,6 +51,7 @@ | |||
52 | 51 | ||
53 | #include "ide-cd.h" | 52 | #include "ide-cd.h" |
54 | 53 | ||
54 | static DEFINE_MUTEX(ide_cd_mutex); | ||
55 | static DEFINE_MUTEX(idecd_ref_mutex); | 55 | static DEFINE_MUTEX(idecd_ref_mutex); |
56 | 56 | ||
57 | static void ide_cd_release(struct device *); | 57 | static void ide_cd_release(struct device *); |
@@ -1602,7 +1602,7 @@ static int idecd_open(struct block_device *bdev, fmode_t mode) | |||
1602 | struct cdrom_info *info; | 1602 | struct cdrom_info *info; |
1603 | int rc = -ENXIO; | 1603 | int rc = -ENXIO; |
1604 | 1604 | ||
1605 | lock_kernel(); | 1605 | mutex_lock(&ide_cd_mutex); |
1606 | info = ide_cd_get(bdev->bd_disk); | 1606 | info = ide_cd_get(bdev->bd_disk); |
1607 | if (!info) | 1607 | if (!info) |
1608 | goto out; | 1608 | goto out; |
@@ -1611,7 +1611,7 @@ static int idecd_open(struct block_device *bdev, fmode_t mode) | |||
1611 | if (rc < 0) | 1611 | if (rc < 0) |
1612 | ide_cd_put(info); | 1612 | ide_cd_put(info); |
1613 | out: | 1613 | out: |
1614 | unlock_kernel(); | 1614 | mutex_unlock(&ide_cd_mutex); |
1615 | return rc; | 1615 | return rc; |
1616 | } | 1616 | } |
1617 | 1617 | ||
@@ -1619,11 +1619,11 @@ static int idecd_release(struct gendisk *disk, fmode_t mode) | |||
1619 | { | 1619 | { |
1620 | struct cdrom_info *info = ide_drv_g(disk, cdrom_info); | 1620 | struct cdrom_info *info = ide_drv_g(disk, cdrom_info); |
1621 | 1621 | ||
1622 | lock_kernel(); | 1622 | mutex_lock(&ide_cd_mutex); |
1623 | cdrom_release(&info->devinfo, mode); | 1623 | cdrom_release(&info->devinfo, mode); |
1624 | 1624 | ||
1625 | ide_cd_put(info); | 1625 | ide_cd_put(info); |
1626 | unlock_kernel(); | 1626 | mutex_unlock(&ide_cd_mutex); |
1627 | 1627 | ||
1628 | return 0; | 1628 | return 0; |
1629 | } | 1629 | } |
@@ -1694,9 +1694,9 @@ static int idecd_ioctl(struct block_device *bdev, fmode_t mode, | |||
1694 | { | 1694 | { |
1695 | int ret; | 1695 | int ret; |
1696 | 1696 | ||
1697 | lock_kernel(); | 1697 | mutex_lock(&ide_cd_mutex); |
1698 | ret = idecd_locked_ioctl(bdev, mode, cmd, arg); | 1698 | ret = idecd_locked_ioctl(bdev, mode, cmd, arg); |
1699 | unlock_kernel(); | 1699 | mutex_unlock(&ide_cd_mutex); |
1700 | 1700 | ||
1701 | return ret; | 1701 | return ret; |
1702 | } | 1702 | } |