[PATCH] IDE: always release DMA engine
authorSergei Shtylylov <sshtylyov@ru.mvista.com>
Tue, 3 Oct 2006 08:14:14 +0000 (01:14 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Tue, 3 Oct 2006 15:04:07 +0000 (08:04 -0700)
Release the DMA engine for the custom mapping IDE drivers also (for
example, siimage.c does allocate it in both I/O-mapped and custom-mapped
modes).  Remove useless code from the error path of
ide_allocate_dma_engine().

Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/ide/ide-dma.c

index 9937fa7da546b7e621b3ec5084e3049bbe1b896b..22ef73eb1f688b4efea45c232662b9d579605162 100644 (file)
@@ -809,15 +809,14 @@ static int ide_release_iomio_dma(ide_hwif_t *hwif)
 /*
  * Needed for allowing full modular support of ide-driver
  */
-int ide_release_dma (ide_hwif_t *hwif)
+int ide_release_dma(ide_hwif_t *hwif)
 {
+       ide_release_dma_engine(hwif);
+
        if (hwif->mmio == 2)
                return 1;
-       if (hwif->chipset == ide_etrax100)
-               return 1;
-
-       ide_release_dma_engine(hwif);
-       return ide_release_iomio_dma(hwif);
+       else
+               return ide_release_iomio_dma(hwif);
 }
 
 static int ide_allocate_dma_engine(ide_hwif_t *hwif)
@@ -829,10 +828,9 @@ static int ide_allocate_dma_engine(ide_hwif_t *hwif)
        if (hwif->dmatable_cpu)
                return 0;
 
-       printk(KERN_ERR "%s: -- Error, unable to allocate%s DMA table(s).\n",
-                       hwif->cds->name, !hwif->dmatable_cpu ? " CPU" : "");
+       printk(KERN_ERR "%s: -- Error, unable to allocate DMA table.\n",
+              hwif->cds->name);
 
-       ide_release_dma_engine(hwif);
        return 1;
 }