mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-08 14:23:19 +00:00
mtd: rawnand: denali: Fix missing pci_release_regions in probe and remove
The pci_release_regions was miss at error case, just add it. Signed-off-by: Chen Ridong <chenridong@huawei.com> Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com> Link: https://lore.kernel.org/linux-mtd/20240826024339.476921-1-chenridong@huawei.com
This commit is contained in:
parent
ccce710134
commit
d43b24f50d
@ -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);
|
denali->reg = devm_ioremap(denali->dev, csr_base, csr_len);
|
||||||
if (!denali->reg) {
|
if (!denali->reg) {
|
||||||
dev_err(&dev->dev, "Spectra: Unable to remap memory region\n");
|
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);
|
denali->host = devm_ioremap(denali->dev, mem_base, mem_len);
|
||||||
if (!denali->host) {
|
if (!denali->host) {
|
||||||
dev_err(&dev->dev, "Spectra: ioremap failed!");
|
dev_err(&dev->dev, "Spectra: ioremap failed!");
|
||||||
return -ENOMEM;
|
ret = -ENOMEM;
|
||||||
|
goto regions_release;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = denali_init(denali);
|
ret = denali_init(denali);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
goto regions_release;
|
||||||
|
|
||||||
nsels = denali->nbanks;
|
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:
|
out_remove_denali:
|
||||||
denali_remove(denali);
|
denali_remove(denali);
|
||||||
|
regions_release:
|
||||||
|
pci_release_regions(dev);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -123,6 +127,7 @@ static void denali_pci_remove(struct pci_dev *dev)
|
|||||||
{
|
{
|
||||||
struct denali_controller *denali = pci_get_drvdata(dev);
|
struct denali_controller *denali = pci_get_drvdata(dev);
|
||||||
|
|
||||||
|
pci_release_regions(dev);
|
||||||
denali_remove(denali);
|
denali_remove(denali);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user