diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index d09644b52d1c..04c2dc709276 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c @@ -1640,11 +1640,16 @@ struct pci_bus *pci_create_bus(struct device *parent, struct pci_bus * __devinit pci_scan_bus_parented(struct device *parent, int bus, struct pci_ops *ops, void *sysdata) { + LIST_HEAD(resources); struct pci_bus *b; - b = pci_create_bus(parent, bus, ops, sysdata); + pci_add_resource(&resources, &ioport_resource); + pci_add_resource(&resources, &iomem_resource); + b = pci_create_root_bus(parent, bus, ops, sysdata, &resources); if (b) b->subordinate = pci_scan_child_bus(b); + else + pci_free_resource_list(&resources); return b; } EXPORT_SYMBOL(pci_scan_bus_parented);