diff options
-rw-r--r-- | drivers/pci/host/pci-xgene.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/pci/host/pci-xgene.c b/drivers/pci/host/pci-xgene.c index 7c3b54b9eb17..1a6108788f6f 100644 --- a/drivers/pci/host/pci-xgene.c +++ b/drivers/pci/host/pci-xgene.c | |||
@@ -246,14 +246,11 @@ static int xgene_pcie_ecam_init(struct pci_config_window *cfg, u32 ipversion) | |||
246 | ret = xgene_get_csr_resource(adev, &csr); | 246 | ret = xgene_get_csr_resource(adev, &csr); |
247 | if (ret) { | 247 | if (ret) { |
248 | dev_err(dev, "can't get CSR resource\n"); | 248 | dev_err(dev, "can't get CSR resource\n"); |
249 | kfree(port); | ||
250 | return ret; | 249 | return ret; |
251 | } | 250 | } |
252 | port->csr_base = devm_ioremap_resource(dev, &csr); | 251 | port->csr_base = devm_ioremap_resource(dev, &csr); |
253 | if (IS_ERR(port->csr_base)) { | 252 | if (IS_ERR(port->csr_base)) |
254 | kfree(port); | 253 | return PTR_ERR(port->csr_base); |
255 | return -ENOMEM; | ||
256 | } | ||
257 | 254 | ||
258 | port->cfg_base = cfg->win; | 255 | port->cfg_base = cfg->win; |
259 | port->version = ipversion; | 256 | port->version = ipversion; |
@@ -638,7 +635,7 @@ static int xgene_pcie_probe_bridge(struct platform_device *pdev) | |||
638 | struct device_node *dn = dev->of_node; | 635 | struct device_node *dn = dev->of_node; |
639 | struct xgene_pcie_port *port; | 636 | struct xgene_pcie_port *port; |
640 | resource_size_t iobase = 0; | 637 | resource_size_t iobase = 0; |
641 | struct pci_bus *bus; | 638 | struct pci_bus *bus, *child; |
642 | int ret; | 639 | int ret; |
643 | LIST_HEAD(res); | 640 | LIST_HEAD(res); |
644 | 641 | ||
@@ -681,6 +678,8 @@ static int xgene_pcie_probe_bridge(struct platform_device *pdev) | |||
681 | 678 | ||
682 | pci_scan_child_bus(bus); | 679 | pci_scan_child_bus(bus); |
683 | pci_assign_unassigned_bus_resources(bus); | 680 | pci_assign_unassigned_bus_resources(bus); |
681 | list_for_each_entry(child, &bus->children, node) | ||
682 | pcie_bus_configure_settings(child); | ||
684 | pci_bus_add_devices(bus); | 683 | pci_bus_add_devices(bus); |
685 | return 0; | 684 | return 0; |
686 | 685 | ||