diff options
-rw-r--r-- | drivers/pci/host/pci-aardvark.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/pci/host/pci-aardvark.c b/drivers/pci/host/pci-aardvark.c index ef9893fa3176..4f5e567fd7e0 100644 --- a/drivers/pci/host/pci-aardvark.c +++ b/drivers/pci/host/pci-aardvark.c | |||
@@ -848,7 +848,7 @@ static int advk_pcie_parse_request_of_pci_ranges(struct advk_pcie *pcie) | |||
848 | int err, res_valid = 0; | 848 | int err, res_valid = 0; |
849 | struct device *dev = &pcie->pdev->dev; | 849 | struct device *dev = &pcie->pdev->dev; |
850 | struct device_node *np = dev->of_node; | 850 | struct device_node *np = dev->of_node; |
851 | struct resource_entry *win; | 851 | struct resource_entry *win, *tmp; |
852 | resource_size_t iobase; | 852 | resource_size_t iobase; |
853 | 853 | ||
854 | INIT_LIST_HEAD(&pcie->resources); | 854 | INIT_LIST_HEAD(&pcie->resources); |
@@ -862,7 +862,7 @@ static int advk_pcie_parse_request_of_pci_ranges(struct advk_pcie *pcie) | |||
862 | if (err) | 862 | if (err) |
863 | goto out_release_res; | 863 | goto out_release_res; |
864 | 864 | ||
865 | resource_list_for_each_entry(win, &pcie->resources) { | 865 | resource_list_for_each_entry_safe(win, tmp, &pcie->resources) { |
866 | struct resource *res = win->res; | 866 | struct resource *res = win->res; |
867 | 867 | ||
868 | switch (resource_type(res)) { | 868 | switch (resource_type(res)) { |
@@ -874,9 +874,11 @@ static int advk_pcie_parse_request_of_pci_ranges(struct advk_pcie *pcie) | |||
874 | lower_32_bits(res->start), | 874 | lower_32_bits(res->start), |
875 | OB_PCIE_IO); | 875 | OB_PCIE_IO); |
876 | err = pci_remap_iospace(res, iobase); | 876 | err = pci_remap_iospace(res, iobase); |
877 | if (err) | 877 | if (err) { |
878 | dev_warn(dev, "error %d: failed to map resource %pR\n", | 878 | dev_warn(dev, "error %d: failed to map resource %pR\n", |
879 | err, res); | 879 | err, res); |
880 | resource_list_destroy_entry(win); | ||
881 | } | ||
880 | break; | 882 | break; |
881 | case IORESOURCE_MEM: | 883 | case IORESOURCE_MEM: |
882 | advk_pcie_set_ob_win(pcie, 0, | 884 | advk_pcie_set_ob_win(pcie, 0, |