Commit 9e2b5de5 authored by Jisheng Zhang's avatar Jisheng Zhang Committed by Bjorn Helgaas
Browse files

PCI: dwc: Free MSI in dw_pcie_host_init() error path



If we ever did MSI-related initializations, we need to call
dw_pcie_free_msi() in the error code path.

Remove the IS_ENABLED(CONFIG_PCI_MSI) check for MSI init because
pci_msi_enabled() already has a stub for !CONFIG_PCI_MSI.

Signed-off-by: default avatarJisheng Zhang <Jisheng.Zhang@synaptics.com>
Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
Acked-by: default avatarGustavo Pimentel <gustavo.pimentel@synopsys.com>
parent dc69a3d5
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -445,7 +445,7 @@ int dw_pcie_host_init(struct pcie_port *pp)
	if (ret)
		pci->num_viewport = 2;

	if (IS_ENABLED(CONFIG_PCI_MSI) && pci_msi_enabled()) {
	if (pci_msi_enabled()) {
		/*
		 * If a specific SoC driver needs to change the
		 * default number of vectors, it needs to implement
@@ -483,7 +483,7 @@ int dw_pcie_host_init(struct pcie_port *pp)
	if (pp->ops->host_init) {
		ret = pp->ops->host_init(pp);
		if (ret)
			goto error;
			goto err_free_msi;
	}

	pp->root_bus_nr = pp->busn->start;
@@ -497,7 +497,7 @@ int dw_pcie_host_init(struct pcie_port *pp)

	ret = pci_scan_root_bus_bridge(bridge);
	if (ret)
		goto error;
		goto err_free_msi;

	bus = bridge->bus;

@@ -513,6 +513,9 @@ int dw_pcie_host_init(struct pcie_port *pp)
	pci_bus_add_devices(bus);
	return 0;

err_free_msi:
	if (pci_msi_enabled() && !pp->ops->msi_host_init)
		dw_pcie_free_msi(pp);
error:
	pci_free_host_bridge(bridge);
	return ret;