And use the max bus resource from the parent rather than assume 255.

Signed-off-by: Keith Busch <keith.bu...@intel.com>
---
 drivers/pci/probe.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index f14a970..ae5a4b3 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -856,7 +856,10 @@ int pci_scan_bridge(struct pci_bus *bus, struct pci_dev 
*dev, int max, int pass)
                        if (!child)
                                goto out;
                        child->primary = primary;
-                       pci_bus_insert_busn_res(child, secondary, subordinate);
+                       if (!pci_bus_insert_busn_res(child, secondary, 
subordinate)) {
+                               pci_remove_bus(child);
+                               goto out;
+                       }
                        child->bridge_ctl = bctl;
                }
 
@@ -896,7 +899,10 @@ int pci_scan_bridge(struct pci_bus *bus, struct pci_dev 
*dev, int max, int pass)
                        child = pci_add_new_bus(bus, dev, max+1);
                        if (!child)
                                goto out;
-                       pci_bus_insert_busn_res(child, max+1, 0xff);
+                       if (!pci_bus_insert_busn_res(child, max+1, 
bus->busn_res.end)) {
+                               pci_remove_bus(child);
+                               goto out;
+                       }
                }
                max++;
                buses = (buses & 0xff000000)
-- 
2.6.2.307.g37023ba

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to