ide: I/O resources are released too early in ide_unregister()
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Fri, 1 Feb 2008 22:09:35 +0000 (23:09 +0100)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Fri, 1 Feb 2008 22:09:35 +0000 (23:09 +0100)
Release I/O resources after releasing DMA.

Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
drivers/ide/ide.c

index 7fa30ac..ea7512d 100644 (file)
@@ -529,13 +529,6 @@ void ide_unregister(unsigned int index)
                free_irq(hwif->irq, hwgroup);
 
        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
         * the hwgroup if we were the only member
@@ -590,6 +583,13 @@ void ide_unregister(unsigned int index)
                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 */
        tmp_hwif = *hwif;