From: Hou Zhiqiang <zhiqiang....@nxp.com>

Free the allocated pci_host_bridge struct when failed to get
host bridge resources, and free the resource windows before
free the bridge.

Signed-off-by: Hou Zhiqiang <zhiqiang....@nxp.com>
---
 drivers/pci/controller/dwc/pcie-designware-host.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c 
b/drivers/pci/controller/dwc/pcie-designware-host.c
index 29a05759a294..ecacce016489 100644
--- a/drivers/pci/controller/dwc/pcie-designware-host.c
+++ b/drivers/pci/controller/dwc/pcie-designware-host.c
@@ -353,7 +353,7 @@ int dw_pcie_host_init(struct pcie_port *pp)
        ret = devm_of_pci_get_host_bridge_resources(dev, 0, 0xff,
                                        &bridge->windows, &pp->io_base);
        if (ret)
-               return ret;
+               goto error;
 
        ret = devm_request_pci_bus_resources(dev, &bridge->windows);
        if (ret)
@@ -502,6 +502,7 @@ int dw_pcie_host_init(struct pcie_port *pp)
        return 0;
 
 error:
+       pci_free_resource_list(&bridge->windows);
        pci_free_host_bridge(bridge);
        return ret;
 }
-- 
2.17.1

Reply via email to