On Mon, Apr 30, 2012 at 5:34 PM, Yinghai Lu <yinghai@xxxxxxxxxx> wrote: > On Mon, Apr 30, 2012 at 4:29 PM, Bjorn Helgaas <bhelgaas@xxxxxxxxxx> wrote: >> On Sun, Mar 18, 2012 at 11:42 PM, Yinghai Lu <yinghai@xxxxxxxxxx> wrote: >>> +void pci_bus_update_busn_res_end(struct pci_bus *b, int bus_max) >>> +{ >>> + struct resource *res = &b->busn_res; >>> + struct resource old_res = *res; >>> + >>> + res->end = bus_max; >> >> I've mentioned before that I'm not comfortable with updating the >> struct resource after it's been inserted into the tree. If you want >> to do an in-place update, I think you need to add a new interface in >> kernel/resource.c so it can make sure the resource tree remains >> consistent. > > ok, will add one function in kernel/resource.c to make sure that end > could be updated safely > by checking parent and children. Rebased busn_alloc branch and added attached patch into that. as for removing bus->subordinate and bus->secondary, like to do that later. Thanks Yinghai
Attachment:
resource_update.patch
Description: Binary data