diff mbox series

[-next] denali_pci: Fix missing pci_release_regions in probe and remove

Message ID 20240814092854.3109192-1-chenridong@huawei.com
State New
Headers show
Series [-next] denali_pci: Fix missing pci_release_regions in probe and remove | expand

Commit Message

Chen Ridong Aug. 14, 2024, 9:28 a.m. UTC
The pci_release_regions was miss at error case, just add it.

Signed-off-by: Chen Ridong <chenridong@huawei.com>
---
 drivers/mtd/nand/raw/denali_pci.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

Comments

Miquel Raynal Aug. 23, 2024, 5:26 p.m. UTC | #1
Hi Chen,

chenridong@huawei.com wrote on Wed, 14 Aug 2024 09:28:54 +0000:

> The pci_release_regions was miss at error case, just add it.

I was about to take this but the subject prefix is wrong. Please fix it.

Thanks,
Miquèl
Chen Ridong Aug. 26, 2024, 1:48 a.m. UTC | #2
On 2024/8/24 1:26, Miquel Raynal wrote:
> Hi Chen,
> 
> chenridong@huawei.com wrote on Wed, 14 Aug 2024 09:28:54 +0000:
> 
>> The pci_release_regions was miss at error case, just add it.
> 
> I was about to take this but the subject prefix is wrong. Please fix it.
> 
> Thanks,
> Miquèl

Thanks, I will send a new one.

Thanks,
Ridong
diff mbox series

Patch

diff --git a/drivers/mtd/nand/raw/denali_pci.c b/drivers/mtd/nand/raw/denali_pci.c
index de7e722d3826..e22094e39546 100644
--- a/drivers/mtd/nand/raw/denali_pci.c
+++ b/drivers/mtd/nand/raw/denali_pci.c
@@ -77,18 +77,20 @@  static int denali_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
 	denali->reg = devm_ioremap(denali->dev, csr_base, csr_len);
 	if (!denali->reg) {
 		dev_err(&dev->dev, "Spectra: Unable to remap memory region\n");
-		return -ENOMEM;
+		ret = -ENOMEM;
+		goto regions_release;
 	}
 
 	denali->host = devm_ioremap(denali->dev, mem_base, mem_len);
 	if (!denali->host) {
 		dev_err(&dev->dev, "Spectra: ioremap failed!");
-		return -ENOMEM;
+		ret = -ENOMEM;
+		goto regions_release;
 	}
 
 	ret = denali_init(denali);
 	if (ret)
-		return ret;
+		goto regions_release;
 
 	nsels = denali->nbanks;
 
@@ -116,6 +118,8 @@  static int denali_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
 
 out_remove_denali:
 	denali_remove(denali);
+regions_release:
+	pci_release_regions(dev);
 	return ret;
 }
 
@@ -123,6 +127,7 @@  static void denali_pci_remove(struct pci_dev *dev)
 {
 	struct denali_controller *denali = pci_get_drvdata(dev);
 
+	pci_release_regions(dev);
 	denali_remove(denali);
 }