Re: [PATCH -v11 05/30] PCI: Add busn_res operation functions

From: Yinghai Lu
Date: Tue May 01 2012 - 03:19:30 EST


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