[PATCH 1/2] sgiioc4: fix error cleanup path

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The driver "forgot" to call iounmap() if request_mem_region() call failed in
sgiioc4_ide_setup_pci_device(). While fixing this, rename the 'err' label to
'alloc_err' and get rid of the 'err_free' label altogether...

Signed-off-by: Sergei Shtylyov <sshtylyov@xxxxxxxxxxxxx>

---
This patch is against the recent Linus' tree.
                                          
 drivers/ide/pci/sgiioc4.c |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)

Index: linux-2.6/drivers/ide/pci/sgiioc4.c
===================================================================
--- linux-2.6.orig/drivers/ide/pci/sgiioc4.c
+++ linux-2.6/drivers/ide/pci/sgiioc4.c
@@ -617,7 +617,8 @@ sgiioc4_ide_setup_pci_device(struct pci_
 		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 request_error;
 	}
 
 	/* Initialize the IO registers */
@@ -633,18 +634,17 @@ sgiioc4_ide_setup_pci_device(struct pci_
 	host = ide_host_alloc(&d, hws);
 	if (host == NULL) {
 		rc = -ENOMEM;
-		goto err;
+		goto alloc_error;
 	}
 
 	rc = ide_host_register(host, &d, hws);
-	if (rc)
-		goto err_free;
+	if (!rc)
+		return 0;
 
-	return 0;
-err_free:
 	ide_host_free(host);
-err:
+ alloc_error:
 	release_mem_region(cmd_phys_base, IOC4_CMD_CTL_BLK_SIZE);
+ request_error:
 	iounmap(virt_base);
 	return rc;
 }

--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux