PCI: Skip resource distribution when no hotplug bridges
authorNicholas Johnson <nicholas.johnson-opensource@outlook.com.au>
Sat, 22 Jun 2019 17:13:50 +0000 (12:13 -0500)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 2 Jul 2019 18:56:54 +0000 (13:56 -0500)
If "hotplug_bridges == 0", "!dev->is_hotplug_bridge" is always true, so the
loop that divides the remaining resources among hotplug-capable bridges
does nothing.

Check for "hotplug_bridges == 0" earlier, so we don't even have to compute
the amount of remaining resources.  No functional change intended.

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

index ee5be219dd41d3e957de5149049ef833a8169aa2..79b1fa6519be7bc831d53a8c1e2c7c597fbb76e1 100644 (file)
@@ -1892,6 +1892,9 @@ static void pci_bus_distribute_available_resources(struct pci_bus *bus,
                return;
        }
 
+       if (hotplug_bridges == 0)
+               return;
+
        /*
         * Calculate the total amount of extra resource space we can
         * pass to bridges below this one.  This is basically the
@@ -1941,8 +1944,6 @@ static void pci_bus_distribute_available_resources(struct pci_bus *bus,
                 * Distribute available extra resources equally between
                 * hotplug-capable downstream ports taking alignment into
                 * account.
-                *
-                * Here hotplug_bridges is always != 0.
                 */
                align = pci_resource_alignment(bridge, io_res);
                io = div64_ul(available_io, hotplug_bridges);