diff options
-rw-r--r-- | drivers/ide/ide-probe.c | 6 | ||||
-rw-r--r-- | drivers/ide/ide.c | 8 | ||||
-rw-r--r-- | include/linux/ide.h | 4 |
3 files changed, 9 insertions, 9 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); |
diff --git a/include/linux/ide.h b/include/linux/ide.h index 0bacf7f7c791..16ae68857f57 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
@@ -1382,11 +1382,11 @@ extern const ide_pio_timings_t ide_pio_timings[6]; | |||
1382 | 1382 | ||
1383 | 1383 | ||
1384 | extern spinlock_t ide_lock; | 1384 | extern spinlock_t ide_lock; |
1385 | extern struct semaphore ide_cfg_sem; | 1385 | extern struct mutex ide_cfg_mtx; |
1386 | /* | 1386 | /* |
1387 | * Structure locking: | 1387 | * Structure locking: |
1388 | * | 1388 | * |
1389 | * ide_cfg_sem and ide_lock together protect changes to | 1389 | * ide_cfg_mtx and ide_lock together protect changes to |
1390 | * ide_hwif_t->{next,hwgroup} | 1390 | * ide_hwif_t->{next,hwgroup} |
1391 | * ide_drive_t->next | 1391 | * ide_drive_t->next |
1392 | * | 1392 | * |