Skip to content

Commit

Permalink
ide: __ide_port_unregister_devices() doesn't need an ide_lock held
Browse files Browse the repository at this point in the history
[ and ide_cfg_mtx mutex provides a sufficient protection for callers ]

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
  • Loading branch information
Bartlomiej Zolnierkiewicz committed Dec 29, 2008
1 parent 1f473e9 commit 44e3123
Showing 1 changed file with 0 additions and 7 deletions.
7 changes: 0 additions & 7 deletions drivers/ide/ide.c
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,6 @@ static void ide_port_init_devices_data(ide_hwif_t *hwif)
}
}

/* Called with ide_lock held. */
static void __ide_port_unregister_devices(ide_hwif_t *hwif)
{
int i;
Expand All @@ -139,22 +138,18 @@ static void __ide_port_unregister_devices(ide_hwif_t *hwif)
ide_drive_t *drive = &hwif->drives[i];

if (drive->dev_flags & IDE_DFLAG_PRESENT) {
spin_unlock_irq(&ide_lock);
device_unregister(&drive->gendev);
wait_for_completion(&drive->gendev_rel_comp);
spin_lock_irq(&ide_lock);
}
}
}

void ide_port_unregister_devices(ide_hwif_t *hwif)
{
mutex_lock(&ide_cfg_mtx);
spin_lock_irq(&ide_lock);
__ide_port_unregister_devices(hwif);
hwif->present = 0;
ide_port_init_devices_data(hwif);
spin_unlock_irq(&ide_lock);
mutex_unlock(&ide_cfg_mtx);
}
EXPORT_SYMBOL_GPL(ide_port_unregister_devices);
Expand Down Expand Up @@ -192,12 +187,10 @@ void ide_unregister(ide_hwif_t *hwif)

mutex_lock(&ide_cfg_mtx);

spin_lock_irq(&ide_lock);
if (hwif->present) {
__ide_port_unregister_devices(hwif);
hwif->present = 0;
}
spin_unlock_irq(&ide_lock);

ide_proc_unregister_port(hwif);

Expand Down

0 comments on commit 44e3123

Please sign in to comment.