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: Thomas Gleixner <tglx@linutronix.de> Tested-by: Marc Zyngier <maz@kernel.org> Reviewed-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20210729222543.098828720@linutronix.de
This commit is contained in:
parent
67961e77a3
commit
8eb5ce3f78
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue