Skip to contentSkip to conversation

sgiioc4: fix error cleanup path (take 2)

PATCH Applied Sergei Shtylyov 2 participants 2 messages Oct 20, 2008 – Oct 23, 2008 libata

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 sgiioc4: fix error cleanup path (take 2)

The driver "forgot" to call iounmap() iff request_mem_region() call failed in sgiioc4_ide_setup_pci_device()...

---
This patch is against the recent Linus' tree.

 drivers/ide/pci/sgiioc4.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletion(-)
drivers/ide/pci/sgiioc4.c +3 -1
Index: 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 req_mem_rgn_err;
 	}
 
 	/* Initialize the IO registers */
@@ -645,6 +646,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;
 }