|
@@ -1666,7 +1666,7 @@ mpt_mapresources(MPT_ADAPTER *ioc)
|
|
|
if (pci_request_selected_regions(pdev, ioc->bars, "mpt")) {
|
|
|
printk(MYIOC_s_ERR_FMT "pci_request_selected_regions() with "
|
|
|
"MEM failed\n", ioc->name);
|
|
|
- return r;
|
|
|
+ goto out_pci_disable_device;
|
|
|
}
|
|
|
|
|
|
if (sizeof(dma_addr_t) > 4) {
|
|
@@ -1690,8 +1690,7 @@ mpt_mapresources(MPT_ADAPTER *ioc)
|
|
|
} else {
|
|
|
printk(MYIOC_s_WARN_FMT "no suitable DMA mask for %s\n",
|
|
|
ioc->name, pci_name(pdev));
|
|
|
- pci_release_selected_regions(pdev, ioc->bars);
|
|
|
- return r;
|
|
|
+ goto out_pci_release_region;
|
|
|
}
|
|
|
} else {
|
|
|
if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(32))
|
|
@@ -1704,8 +1703,7 @@ mpt_mapresources(MPT_ADAPTER *ioc)
|
|
|
} else {
|
|
|
printk(MYIOC_s_WARN_FMT "no suitable DMA mask for %s\n",
|
|
|
ioc->name, pci_name(pdev));
|
|
|
- pci_release_selected_regions(pdev, ioc->bars);
|
|
|
- return r;
|
|
|
+ goto out_pci_release_region;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -1735,8 +1733,8 @@ mpt_mapresources(MPT_ADAPTER *ioc)
|
|
|
if (mem == NULL) {
|
|
|
printk(MYIOC_s_ERR_FMT ": ERROR - Unable to map adapter"
|
|
|
" memory!\n", ioc->name);
|
|
|
- pci_release_selected_regions(pdev, ioc->bars);
|
|
|
- return -EINVAL;
|
|
|
+ r = -EINVAL;
|
|
|
+ goto out_pci_release_region;
|
|
|
}
|
|
|
ioc->memmap = mem;
|
|
|
dinitprintk(ioc, printk(MYIOC_s_INFO_FMT "mem = %p, mem_phys = %llx\n",
|
|
@@ -1750,6 +1748,12 @@ mpt_mapresources(MPT_ADAPTER *ioc)
|
|
|
ioc->pio_chip = (SYSIF_REGS __iomem *)port;
|
|
|
|
|
|
return 0;
|
|
|
+
|
|
|
+out_pci_release_region:
|
|
|
+ pci_release_selected_regions(pdev, ioc->bars);
|
|
|
+out_pci_disable_device:
|
|
|
+ pci_disable_device(pdev);
|
|
|
+ return r;
|
|
|
}
|
|
|
|
|
|
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
|