Skip to content

Commit

Permalink
ide: ide_unregister() warm-plug bugfix
Browse files Browse the repository at this point in the history
Fix ide_unregister() to work for ports with no devices attached to them.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
  • Loading branch information
Bartlomiej Zolnierkiewicz committed Jul 5, 2008
1 parent 7cd95f5 commit bd8a59e
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions drivers/ide/ide.c
Original file line number Diff line number Diff line change
Expand Up @@ -315,13 +315,14 @@ void ide_unregister(ide_hwif_t *hwif)

BUG_ON(in_interrupt());
BUG_ON(irqs_disabled());

mutex_lock(&ide_cfg_mtx);
spin_lock_irq(&ide_lock);
if (!hwif->present)
goto abort;
__ide_port_unregister_devices(hwif);
hwif->present = 0;

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 Expand Up @@ -359,7 +360,6 @@ void ide_unregister(ide_hwif_t *hwif)
/* restore hwif data to pristine status */
ide_init_port_data(hwif, hwif->index);

abort:
spin_unlock_irq(&ide_lock);
mutex_unlock(&ide_cfg_mtx);
}
Expand Down

0 comments on commit bd8a59e

Please sign in to comment.