浏览代码

ide: I/O resources are released too early in ide_unregister()

Release I/O resources after releasing DMA.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Bartlomiej Zolnierkiewicz 17 年之前
父节点
当前提交
7cba97f129
共有 1 个文件被更改,包括 7 次插入7 次删除
  1. 7 7
      drivers/ide/ide.c

+ 7 - 7
drivers/ide/ide.c

@@ -529,13 +529,6 @@ void ide_unregister(unsigned int index)
 		free_irq(hwif->irq, hwgroup);
 		free_irq(hwif->irq, hwgroup);
 
 
 	spin_lock_irq(&ide_lock);
 	spin_lock_irq(&ide_lock);
-	/*
-	 * Note that we only release the standard ports,
-	 * and do not even try to handle any extra ports
-	 * allocated for weird IDE interface chipsets.
-	 */
-	ide_hwif_release_regions(hwif);
-
 	/*
 	/*
 	 * Remove us from the hwgroup, and free
 	 * Remove us from the hwgroup, and free
 	 * the hwgroup if we were the only member
 	 * the hwgroup if we were the only member
@@ -590,6 +583,13 @@ void ide_unregister(unsigned int index)
 		hwif->extra_ports = 0;
 		hwif->extra_ports = 0;
 	}
 	}
 
 
+	/*
+	 * Note that we only release the standard ports,
+	 * and do not even try to handle any extra ports
+	 * allocated for weird IDE interface chipsets.
+	 */
+	ide_hwif_release_regions(hwif);
+
 	/* copy original settings */
 	/* copy original settings */
 	tmp_hwif = *hwif;
 	tmp_hwif = *hwif;