diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c index 784da9d..b478c7b 100644 --- a/drivers/pci/setup-bus.c +++ b/drivers/pci/setup-bus.c @@ -849,14 +849,12 @@ void __ref __pci_bus_size_bridges(struct pci_bus *bus, break; case PCI_CLASS_BRIDGE_PCI: + /* don't size subtractive decoding (transparent) + * PCI-to-PCI bridges */ + if (bus->self->transparent) + break; pci_bridge_check_ranges(bus); - if (bus->self->is_hotplug_bridge) { - additional_io_size = pci_hotplug_io_size; - additional_mem_size = pci_hotplug_mem_size; - } - /* - * Follow thru - */ + /* fall through */ default: pbus_size_io(bus, 0, additional_io_size, realloc_head); /* If the bridge supports prefetchable range, size it