ide: ide_unregister() warm-plug bugfix
PATCH 1/2 ide: ide_unregister() warm-plug bugfix
Fix ide_unregister() to work for ports with no devices attached to them.
Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
---
for 2.6.26
drivers/ide/ide.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)
drivers/ide/ide.c +6 -6
@@ -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);
@@ -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); }