Commit 8eb5ce3f authored by Thomas Gleixner's avatar Thomas Gleixner

PCI/MSI: Consolidate error handling in msi_capability_init()

Three error exits doing exactly the same ask for a common error exit point.
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Tested-by: default avatarMarc Zyngier <maz@kernel.org>
Reviewed-by: default avatarMarc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20210729222543.098828720@linutronix.de
parent 67961e77
......@@ -659,25 +659,16 @@ static int msi_capability_init(struct pci_dev *dev, int nvec,
/* Configure MSI capability structure */
ret = pci_msi_setup_msi_irqs(dev, nvec, PCI_CAP_ID_MSI);
if (ret) {
msi_mask_irq(entry, mask, 0);
free_msi_irqs(dev);
return ret;
}
if (ret)
goto err;
ret = msi_verify_entries(dev);
if (ret) {
msi_mask_irq(entry, mask, 0);
free_msi_irqs(dev);
return ret;
}
if (ret)
goto err;
ret = populate_msi_sysfs(dev);
if (ret) {
msi_mask_irq(entry, mask, 0);
free_msi_irqs(dev);
return ret;
}
if (ret)
goto err;
/* Set MSI enabled bits */
pci_intx_for_msi(dev, 0);
......@@ -687,6 +678,11 @@ static int msi_capability_init(struct pci_dev *dev, int nvec,
pcibios_free_irq(dev);
dev->irq = entry->irq;
return 0;
err:
msi_mask_irq(entry, mask, 0);
free_msi_irqs(dev);
return ret;
}
static void __iomem *msix_map_region(struct pci_dev *dev, unsigned nr_entries)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment