Assure that MPS settings are set up for bridges which are discovered
during manually triggered rescan via sysfs. This sequence of bridge
init (using pci_rescan_bus()) will be used for pciehp hot-add events
when BARs are movable.

Signed-off-by: Sergey Miroshnichenko <s.miroshniche...@yadro.com>
---
 drivers/pci/probe.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index 5f52a19738aa..4bb10d27cb3a 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -3688,7 +3688,7 @@ static void pci_reassign_root_bus_resources(struct 
pci_bus *root)
 unsigned int pci_rescan_bus(struct pci_bus *bus)
 {
        unsigned int max;
-       struct pci_bus *root = bus;
+       struct pci_bus *root = bus, *child;
 
        while (!pci_is_root_bus(root))
                root = root->parent;
@@ -3708,6 +3708,9 @@ unsigned int pci_rescan_bus(struct pci_bus *bus)
                pci_assign_unassigned_bus_resources(bus);
        }
 
+       list_for_each_entry(child, &root->children, node)
+               pcie_bus_configure_settings(child);
+
        pci_bus_add_devices(bus);
 
        return max;
-- 
2.21.0

Reply via email to