Patrick Keller wrote: > > On Tue, 2009-12-01 at 01:19 +0000, Yinghai Lu wrote: >> need to apply this after 9/9 patchset >> >> prepare for pciehp_realloc >> >> it will clear the resource size for bridge >> >> Signed-off-by: Yinghai Lu <yinghai@xxxxxxxxxx> >> >> --- >> drivers/pci/setup-bus.c | 42 ++++++++++++++++++++++++++++++++++++++++++ >> include/linux/pci.h | 1 + >> 2 files changed, 43 insertions(+) >> >> Index: linux-2.6/drivers/pci/setup-bus.c >> =================================================================== >> --- linux-2.6.orig/drivers/pci/setup-bus.c >> +++ linux-2.6/drivers/pci/setup-bus.c >> @@ -739,6 +739,48 @@ static void __ref __pci_bridge_assign_re >> break; >> } >> } >> + >> +void pci_bridge_release_res(struct pci_bus *bus) >> +{ >> + int idx; >> + bool changed = false; >> + struct pci_dev *dev; >> + struct resource *r; >> + >> + /* The root bus? */ >> + if (!bus->self) >> + return; >> + >> + /* for pci bridges res only */ >> + dev = bus->self; >> + if ((dev->class >> 8) != PCI_CLASS_BRIDGE_PCI) >> + return; >> + >> + for (idx = PCI_BRIDGE_RESOURCES; idx < PCI_BRIDGE_RESOURCES + 3; >> + idx++) { >> + r = &dev->resource[idx]; >> + if (!r->parent) >> + continue; >> + >> + /* if there are children under that, we should not release it */ >> + if (r->child) >> + continue; >> + >> + if (!release_resource(r)) { >> + dev_printk(KERN_DEBUG, &dev->dev, >> + "resource %d %pR released\n", idx, r); >> + /* old size is not kept */ >> + r->start = 0; >> + r->end = 0; >> + r->flags = 0; >> + changed = true; >> + } >> + } >> + >> + if (changed) >> + pci_setup_bridge(bus); >> +} >> + > > Need to add EXPORT_SYMBOL(pci_bridge_release_res); here so the hotplug > kernel module will find this function. thanks, will update that in next round. YH -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html