ide: ide_unregister() locking bugfix
PATCH 2/2 ide: ide_unregister() locking bugfix
Holding ide_lock for ide_release_dma_engine() call is unnecessary and triggers WARN_ON(irqs_disabled()) in dma_free_coherent().
Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
--- drivers/ide/ide.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/ide/ide.c +2 -2
@@ -352,15 +352,15 @@ void ide_unregister(ide_hwif_t *hwif)blk_unregister_region (MKDEV (hwif->major,0 ),MAX_DRIVES <<PARTN_BITS );kfree (hwif->sg_table);unregister_blkdev (hwif->major, hwif->name); -spin_lock_irq (&ide_lock);if (hwif->dma_base)ide_release_dma_engine (hwif); +spin_lock_irq (&ide_lock);/* restore hwif data to pristine status */ ide_init_port_data (hwif, hwif->index); -spin_unlock_irq (&ide_lock); +mutex_unlock (&ide_cfg_mtx); }