PCI: Simplify pci_bus_distribute_available_resources()
authorNicholas Johnson <nicholas.johnson-opensource@outlook.com.au>
Sat, 22 Jun 2019 16:43:46 +0000 (11:43 -0500)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 2 Jul 2019 18:56:26 +0000 (13:56 -0500)
Reorder pci_bus_distribute_available_resources() to group related code
together.  No functional change intended.

Link: https://lore.kernel.org/r/PS2P216MB0642C7A485649D2D787A1C6F80000@PS2P216MB0642.KORP216.PROD.OUTLOOK.COM
Link: https://lore.kernel.org/r/20190622210310.180905-2-helgaas@kernel.org
Signed-off-by: Nicholas Johnson <nicholas.johnson-opensource@outlook.com.au>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Reviewed-by: Logan Gunthorpe <logang@deltatee.com>
drivers/pci/setup-bus.c

index d533102b2788f3cdbed222fafe3d0847486b1f25..ee5be219dd41d3e957de5149049ef833a8169aa2 100644 (file)
@@ -1865,16 +1865,6 @@ static void pci_bus_distribute_available_resources(struct pci_bus *bus,
        extend_bridge_window(bridge, mmio_pref_res, add_list,
                             available_mmio_pref);
 
-       /*
-        * Calculate the total amount of extra resource space we can
-        * pass to bridges below this one.  This is basically the
-        * extra space reduced by the minimal required space for the
-        * non-hotplug bridges.
-        */
-       remaining_io = available_io;
-       remaining_mmio = available_mmio;
-       remaining_mmio_pref = available_mmio_pref;
-
        /*
         * Calculate how many hotplug bridges and normal bridges there
         * are on this bus.  We will distribute the additional available
@@ -1887,6 +1877,31 @@ static void pci_bus_distribute_available_resources(struct pci_bus *bus,
                        normal_bridges++;
        }
 
+       /*
+        * There is only one bridge on the bus so it gets all available
+        * resources which it can then distribute to the possible hotplug
+        * bridges below.
+        */
+       if (hotplug_bridges + normal_bridges == 1) {
+               dev = list_first_entry(&bus->devices, struct pci_dev, bus_list);
+               if (dev->subordinate) {
+                       pci_bus_distribute_available_resources(dev->subordinate,
+                               add_list, available_io, available_mmio,
+                               available_mmio_pref);
+               }
+               return;
+       }
+
+       /*
+        * Calculate the total amount of extra resource space we can
+        * pass to bridges below this one.  This is basically the
+        * extra space reduced by the minimal required space for the
+        * non-hotplug bridges.
+        */
+       remaining_io = available_io;
+       remaining_mmio = available_mmio;
+       remaining_mmio_pref = available_mmio_pref;
+
        for_each_pci_bridge(dev, bus) {
                const struct resource *res;
 
@@ -1910,21 +1925,6 @@ static void pci_bus_distribute_available_resources(struct pci_bus *bus,
                        remaining_mmio_pref -= resource_size(res);
        }
 
-       /*
-        * There is only one bridge on the bus so it gets all available
-        * resources which it can then distribute to the possible hotplug
-        * bridges below.
-        */
-       if (hotplug_bridges + normal_bridges == 1) {
-               dev = list_first_entry(&bus->devices, struct pci_dev, bus_list);
-               if (dev->subordinate) {
-                       pci_bus_distribute_available_resources(dev->subordinate,
-                               add_list, available_io, available_mmio,
-                               available_mmio_pref);
-               }
-               return;
-       }
-
        /*
         * Go over devices on this bus and distribute the remaining
         * resource space between hotplug bridges.