PCI: Remove pci_fixup_parent_subordinate_busnr()
authorAndreas Noever <andreas.noever@gmail.com>
Thu, 23 Jan 2014 20:59:26 +0000 (21:59 +0100)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 11 Feb 2014 22:16:09 +0000 (15:16 -0700)
The function has no effect.

If pcibios_assign_all_busses() is not set then the function does nothing.

If it is set then in pci_scan_bridge we are always in the branch where
we assign the bus numbers ourselves and the subordinate values of all
parent busses will be set to 0xff since that is what they inherited from
their parent bus and ultimately from the root bus.

Signed-off-by: Andreas Noever <andreas.noever@gmail.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/probe.c

index 9a641cc4275d98722d24ee76252006bbc7b7e323..e5df036694706e59c7880badab37c95cd9a31ccf 100644 (file)
@@ -731,22 +731,6 @@ struct pci_bus *__ref pci_add_new_bus(struct pci_bus *parent, struct pci_dev *de
        return child;
 }
 
-static void pci_fixup_parent_subordinate_busnr(struct pci_bus *child, int max)
-{
-       struct pci_bus *parent = child->parent;
-
-       /* Attempts to fix that up are really dangerous unless
-          we're going to re-assign all bus numbers. */
-       if (!pcibios_assign_all_busses())
-               return;
-
-       while (parent->parent && parent->busn_res.end < max) {
-               parent->busn_res.end = max;
-               pci_write_config_byte(parent->self, PCI_SUBORDINATE_BUS, max);
-               parent = parent->parent;
-       }
-}
-
 /*
  * If it's a bridge, configure it and scan the bus behind it.
  * For CardBus bridges, we don't scan behind as the devices will
@@ -879,20 +863,7 @@ int pci_scan_bridge(struct pci_bus *bus, struct pci_dev *dev, int max, int pass)
 
                if (!is_cardbus) {
                        child->bridge_ctl = bctl;
-                       /*
-                        * Adjust subordinate busnr in parent buses.
-                        * We do this before scanning for children because
-                        * some devices may not be detected if the bios
-                        * was lazy.
-                        */
-                       pci_fixup_parent_subordinate_busnr(child, max);
-                       /* Now we can scan all subordinate buses... */
                        max = pci_scan_child_bus(child);
-                       /*
-                        * now fix it up again since we have found
-                        * the real value of max.
-                        */
-                       pci_fixup_parent_subordinate_busnr(child, max);
                } else {
                        /*
                         * For CardBus bridges, we leave 4 bus numbers
@@ -923,7 +894,6 @@ int pci_scan_bridge(struct pci_bus *bus, struct pci_dev *dev, int max, int pass)
                                }
                        }
                        max += i;
-                       pci_fixup_parent_subordinate_busnr(child, max);
                }
                /*
                 * Set the subordinate bus number to its real value.