Skip to contentSkip to conversation

mptfusion: release resources in error return path

PATCH In review Tomas Henzl 2 participants 2 messages Jul 26, 2010 – Jul 27, 2010

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 mptfusion: release resources in error return path

We should release the resources in error return code path. The requested pci bars should be released under an error condition, when mpt_mapresources fails.

---

drivers/message/fusion/mptbase.c +3 -0
index e319abc..ea12663 100644
@@ -1632,6 +1632,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;
 		}
 	} else {
@@ -1645,6 +1646,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;
 		}
 	}
@@ -1675,6 +1677,7 @@ 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;
 	}
 	ioc->memmap = mem;
#1 lore raw

Please consider this patch as an ACKed.
It has valid error handling in mpt_mapreousrces().

Thanks, Kashyap

Quoted 45 lines

-----Original Message-----
From: Tomas Henzl [mailto:[email protected]]
Sent: Monday, July 26, 2010 8:11 PM
To: '[email protected]'
Cc: James Bottomley; Desai, Kashyap; Moore, Eric; Prakash, Sathya
Subject: [PATCH] mptfusion: release resources in error return path

We should release the resources in error return code path. The requested pci bars should be released under an error condition, when mpt_mapresources fails.

---

drivers/message/fusion/mptbase.c +1 -0
index e319abc..ea12663 100644
@@ -1632,6 +1632,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;
 		}
drivers/message/fusion/mptbase.c +1 -0
 	} else {
@@ -1645,6 +1646,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;
 		}
drivers/message/fusion/mptbase.c +1 -0
 	}
@@ -1675,6 +1677,7 @@ 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;
 	}
 	ioc->memmap = mem;