diff options
author | Sergei Shtylyov <sshtylyov@ru.mvista.com> | 2008-10-23 17:22:06 -0400 |
---|---|---|
committer | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2008-10-23 17:22:06 -0400 |
commit | 3059ef99a167da6d5d77701fda5b905d985e31af (patch) | |
tree | a3475fd12b804a9bd52ad6e54446ed2bc5f969e0 /drivers/ide | |
parent | d2441183dc222d12961ff2201f5086c846505d93 (diff) |
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()...
Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Cc: jeremy@sgi.com
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide')
-rw-r--r-- | drivers/ide/sgiioc4.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/ide/sgiioc4.c b/drivers/ide/sgiioc4.c index 8af9b23499fd..9fadea41e1c6 100644 --- a/drivers/ide/sgiioc4.c +++ b/drivers/ide/sgiioc4.c | |||
@@ -590,7 +590,8 @@ sgiioc4_ide_setup_pci_device(struct pci_dev *dev) | |||
590 | printk(KERN_ERR "%s %s -- ERROR: addresses 0x%08lx to 0x%08lx " | 590 | printk(KERN_ERR "%s %s -- ERROR: addresses 0x%08lx to 0x%08lx " |
591 | "already in use\n", DRV_NAME, pci_name(dev), | 591 | "already in use\n", DRV_NAME, pci_name(dev), |
592 | cmd_phys_base, cmd_phys_base + IOC4_CMD_CTL_BLK_SIZE); | 592 | cmd_phys_base, cmd_phys_base + IOC4_CMD_CTL_BLK_SIZE); |
593 | return -EBUSY; | 593 | rc = -EBUSY; |
594 | goto req_mem_rgn_err; | ||
594 | } | 595 | } |
595 | 596 | ||
596 | /* Initialize the IO registers */ | 597 | /* Initialize the IO registers */ |
@@ -618,6 +619,7 @@ err_free: | |||
618 | ide_host_free(host); | 619 | ide_host_free(host); |
619 | err: | 620 | err: |
620 | release_mem_region(cmd_phys_base, IOC4_CMD_CTL_BLK_SIZE); | 621 | release_mem_region(cmd_phys_base, IOC4_CMD_CTL_BLK_SIZE); |
622 | req_mem_rgn_err: | ||
621 | iounmap(virt_base); | 623 | iounmap(virt_base); |
622 | return rc; | 624 | return rc; |
623 | } | 625 | } |