diff options
author | Matthias Kaehlcke <matthias.kaehlcke@gmail.com> | 2007-07-09 17:17:55 -0400 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2007-07-09 17:17:55 -0400 |
commit | ef29888ea8e1fdc499e995260195b66fc91d2728 (patch) | |
tree | aa042c07a63de5bf4147ab819f89724ad9838877 /drivers/ide | |
parent | c283f5dbe31920ca70b80a594a97bfaa2a28be13 (diff) |
ide: use mutex instead of ide_cfg_sem semaphore in IDE driver
The IDE driver uses a semaphore as mutex.
Use the mutex API instead of the (binary) semaphore.
Signed-off-by: Matthias Kaehlcke <matthias.kaehlcke@gmail.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide')
-rw-r--r-- | drivers/ide/ide-probe.c | 6 | ||||
-rw-r--r-- | drivers/ide/ide.c | 8 |
2 files changed, 7 insertions, 7 deletions
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c index f5ce22c38f82..648aabd121cd 100644 --- a/drivers/ide/ide-probe.c +++ b/drivers/ide/ide-probe.c | |||
@@ -1025,7 +1025,7 @@ static int init_irq (ide_hwif_t *hwif) | |||
1025 | BUG_ON(irqs_disabled()); | 1025 | BUG_ON(irqs_disabled()); |
1026 | BUG_ON(hwif == NULL); | 1026 | BUG_ON(hwif == NULL); |
1027 | 1027 | ||
1028 | down(&ide_cfg_sem); | 1028 | mutex_lock(&ide_cfg_mtx); |
1029 | hwif->hwgroup = NULL; | 1029 | hwif->hwgroup = NULL; |
1030 | #if MAX_HWIFS > 1 | 1030 | #if MAX_HWIFS > 1 |
1031 | /* | 1031 | /* |
@@ -1154,7 +1154,7 @@ static int init_irq (ide_hwif_t *hwif) | |||
1154 | printk(" (%sed with %s)", | 1154 | printk(" (%sed with %s)", |
1155 | hwif->sharing_irq ? "shar" : "serializ", match->name); | 1155 | hwif->sharing_irq ? "shar" : "serializ", match->name); |
1156 | printk("\n"); | 1156 | printk("\n"); |
1157 | up(&ide_cfg_sem); | 1157 | mutex_unlock(&ide_cfg_mtx); |
1158 | return 0; | 1158 | return 0; |
1159 | out_unlink: | 1159 | out_unlink: |
1160 | spin_lock_irq(&ide_lock); | 1160 | spin_lock_irq(&ide_lock); |
@@ -1177,7 +1177,7 @@ out_unlink: | |||
1177 | } | 1177 | } |
1178 | spin_unlock_irq(&ide_lock); | 1178 | spin_unlock_irq(&ide_lock); |
1179 | out_up: | 1179 | out_up: |
1180 | up(&ide_cfg_sem); | 1180 | mutex_unlock(&ide_cfg_mtx); |
1181 | return 1; | 1181 | return 1; |
1182 | } | 1182 | } |
1183 | 1183 | ||
diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c index 3717a329b43b..14ac7c2049e9 100644 --- a/drivers/ide/ide.c +++ b/drivers/ide/ide.c | |||
@@ -169,7 +169,7 @@ static const u8 ide_hwif_to_major[] = { IDE0_MAJOR, IDE1_MAJOR, | |||
169 | static int idebus_parameter; /* holds the "idebus=" parameter */ | 169 | static int idebus_parameter; /* holds the "idebus=" parameter */ |
170 | static int system_bus_speed; /* holds what we think is VESA/PCI bus speed */ | 170 | static int system_bus_speed; /* holds what we think is VESA/PCI bus speed */ |
171 | 171 | ||
172 | DECLARE_MUTEX(ide_cfg_sem); | 172 | DEFINE_MUTEX(ide_cfg_mtx); |
173 | __cacheline_aligned_in_smp DEFINE_SPINLOCK(ide_lock); | 173 | __cacheline_aligned_in_smp DEFINE_SPINLOCK(ide_lock); |
174 | 174 | ||
175 | #ifdef CONFIG_IDEPCI_PCIBUS_ORDER | 175 | #ifdef CONFIG_IDEPCI_PCIBUS_ORDER |
@@ -564,7 +564,7 @@ void ide_unregister(unsigned int index) | |||
564 | { | 564 | { |
565 | ide_drive_t *drive; | 565 | ide_drive_t *drive; |
566 | ide_hwif_t *hwif, *g; | 566 | ide_hwif_t *hwif, *g; |
567 | static ide_hwif_t tmp_hwif; /* protected by ide_cfg_sem */ | 567 | static ide_hwif_t tmp_hwif; /* protected by ide_cfg_mtx */ |
568 | ide_hwgroup_t *hwgroup; | 568 | ide_hwgroup_t *hwgroup; |
569 | int irq_count = 0, unit; | 569 | int irq_count = 0, unit; |
570 | 570 | ||
@@ -572,7 +572,7 @@ void ide_unregister(unsigned int index) | |||
572 | 572 | ||
573 | BUG_ON(in_interrupt()); | 573 | BUG_ON(in_interrupt()); |
574 | BUG_ON(irqs_disabled()); | 574 | BUG_ON(irqs_disabled()); |
575 | down(&ide_cfg_sem); | 575 | mutex_lock(&ide_cfg_mtx); |
576 | spin_lock_irq(&ide_lock); | 576 | spin_lock_irq(&ide_lock); |
577 | hwif = &ide_hwifs[index]; | 577 | hwif = &ide_hwifs[index]; |
578 | if (!hwif->present) | 578 | if (!hwif->present) |
@@ -679,7 +679,7 @@ void ide_unregister(unsigned int index) | |||
679 | 679 | ||
680 | abort: | 680 | abort: |
681 | spin_unlock_irq(&ide_lock); | 681 | spin_unlock_irq(&ide_lock); |
682 | up(&ide_cfg_sem); | 682 | mutex_unlock(&ide_cfg_mtx); |
683 | } | 683 | } |
684 | 684 | ||
685 | EXPORT_SYMBOL(ide_unregister); | 685 | EXPORT_SYMBOL(ide_unregister); |