sgiioc4: fix error cleanup path (take 2)
authorSergei Shtylyov <sshtylyov@ru.mvista.com>
Thu, 23 Oct 2008 21:22:06 +0000 (23:22 +0200)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Thu, 23 Oct 2008 21:22:06 +0000 (23:22 +0200)
The driver "forgot" to call iounmap() iff request_mem_region() call failed in
sgiioc4_ide_setup_pci_device()...

Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Cc: jeremy@sgi.com
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
drivers/ide/sgiioc4.c

index 8af9b23499fdd59d481e1dc03d0d9c44a2525606..9fadea41e1c69dcaf50daca2437bbe9d364268fd 100644 (file)
@@ -590,7 +590,8 @@ sgiioc4_ide_setup_pci_device(struct pci_dev *dev)
                printk(KERN_ERR "%s %s -- ERROR: addresses 0x%08lx to 0x%08lx "
                       "already in use\n", DRV_NAME, pci_name(dev),
                       cmd_phys_base, cmd_phys_base + IOC4_CMD_CTL_BLK_SIZE);
-               return -EBUSY;
+               rc = -EBUSY;
+               goto req_mem_rgn_err;
        }
 
        /* Initialize the IO registers */
@@ -618,6 +619,7 @@ err_free:
        ide_host_free(host);
 err:
        release_mem_region(cmd_phys_base, IOC4_CMD_CTL_BLK_SIZE);
+req_mem_rgn_err:
        iounmap(virt_base);
        return rc;
 }