aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/message/fusion
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/message/fusion')
-rw-r--r--drivers/message/fusion/mptbase.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c
index d99db5623acf..fb69baa06ca8 100644
--- a/drivers/message/fusion/mptbase.c
+++ b/drivers/message/fusion/mptbase.c
@@ -1666,7 +1666,7 @@ mpt_mapresources(MPT_ADAPTER *ioc)
1666 if (pci_request_selected_regions(pdev, ioc->bars, "mpt")) { 1666 if (pci_request_selected_regions(pdev, ioc->bars, "mpt")) {
1667 printk(MYIOC_s_ERR_FMT "pci_request_selected_regions() with " 1667 printk(MYIOC_s_ERR_FMT "pci_request_selected_regions() with "
1668 "MEM failed\n", ioc->name); 1668 "MEM failed\n", ioc->name);
1669 return r; 1669 goto out_pci_disable_device;
1670 } 1670 }
1671 1671
1672 if (sizeof(dma_addr_t) > 4) { 1672 if (sizeof(dma_addr_t) > 4) {
@@ -1690,8 +1690,7 @@ mpt_mapresources(MPT_ADAPTER *ioc)
1690 } else { 1690 } else {
1691 printk(MYIOC_s_WARN_FMT "no suitable DMA mask for %s\n", 1691 printk(MYIOC_s_WARN_FMT "no suitable DMA mask for %s\n",
1692 ioc->name, pci_name(pdev)); 1692 ioc->name, pci_name(pdev));
1693 pci_release_selected_regions(pdev, ioc->bars); 1693 goto out_pci_release_region;
1694 return r;
1695 } 1694 }
1696 } else { 1695 } else {
1697 if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(32)) 1696 if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(32))
@@ -1704,8 +1703,7 @@ mpt_mapresources(MPT_ADAPTER *ioc)
1704 } else { 1703 } else {
1705 printk(MYIOC_s_WARN_FMT "no suitable DMA mask for %s\n", 1704 printk(MYIOC_s_WARN_FMT "no suitable DMA mask for %s\n",
1706 ioc->name, pci_name(pdev)); 1705 ioc->name, pci_name(pdev));
1707 pci_release_selected_regions(pdev, ioc->bars); 1706 goto out_pci_release_region;
1708 return r;
1709 } 1707 }
1710 } 1708 }
1711 1709
@@ -1735,8 +1733,8 @@ mpt_mapresources(MPT_ADAPTER *ioc)
1735 if (mem == NULL) { 1733 if (mem == NULL) {
1736 printk(MYIOC_s_ERR_FMT ": ERROR - Unable to map adapter" 1734 printk(MYIOC_s_ERR_FMT ": ERROR - Unable to map adapter"
1737 " memory!\n", ioc->name); 1735 " memory!\n", ioc->name);
1738 pci_release_selected_regions(pdev, ioc->bars); 1736 r = -EINVAL;
1739 return -EINVAL; 1737 goto out_pci_release_region;
1740 } 1738 }
1741 ioc->memmap = mem; 1739 ioc->memmap = mem;
1742 dinitprintk(ioc, printk(MYIOC_s_INFO_FMT "mem = %p, mem_phys = %llx\n", 1740 dinitprintk(ioc, printk(MYIOC_s_INFO_FMT "mem = %p, mem_phys = %llx\n",
@@ -1750,6 +1748,12 @@ mpt_mapresources(MPT_ADAPTER *ioc)
1750 ioc->pio_chip = (SYSIF_REGS __iomem *)port; 1748 ioc->pio_chip = (SYSIF_REGS __iomem *)port;
1751 1749
1752 return 0; 1750 return 0;
1751
1752out_pci_release_region:
1753 pci_release_selected_regions(pdev, ioc->bars);
1754out_pci_disable_device:
1755 pci_disable_device(pdev);
1756 return r;
1753} 1757}
1754 1758
1755/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ 1759/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/