diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-07-05 18:30:51 (GMT) |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-07-05 18:30:51 (GMT) |
commit | 2b54ed9467697b0ce2d60d89e5e4253c9e322c26 (patch) | |
tree | 0dcc38e0e8549987f87a10940ee5df6038ac4272 | |
parent | bd8a59e29726b2a5ff7baefe995febdc63044a61 (diff) | |
download | linux-2b54ed9467697b0ce2d60d89e5e4253c9e322c26.tar.xz |
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 <bzolnier@gmail.com>
-rw-r--r-- | drivers/ide/ide.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c index b31359c..300431d 100644 --- a/drivers/ide/ide.c +++ b/drivers/ide/ide.c @@ -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); } |