Re: [PATCH part2 6/6] PCI: Claim hw/fw allocated resources in hot add path.

From: Yinghai Lu
Date: Tue Sep 18 2012 - 00:44:03 EST


On Mon, Sep 17, 2012 at 5:12 PM, Bjorn Helgaas <bhelgaas@xxxxxxxxxx> wrote:
> On Sun, Sep 2, 2012 at 3:50 PM, Yinghai Lu <yinghai@xxxxxxxxxx> wrote:

>> -static void __init pcibios_allocate_bridge_resources(struct pci_dev *dev)
>> +static void pcibios_allocate_bridge_resources(struct pci_dev *dev)
>
> This patch has a little too much going on at the same time. Can you
> split the __init removal into its own patch so we can focus on what's
> left by itself?

ok.

>
>> {
>> int idx;
>> struct resource *r;
>>
>> for (idx = PCI_BRIDGE_RESOURCES; idx < PCI_NUM_RESOURCES; idx++) {
>> r = &dev->resource[idx];
>> + if (r->parent) /* Already allocated */
>> + continue;
>
> This is also a potentially interesting change that maybe should be in
> its own patch.

oh, we don't need that extra checking anymore. because support
removing non-root bus is dropped.

>> +void pcibios_resource_survey_bus(struct pci_bus *bus)
>> +{
>> + dev_printk(KERN_DEBUG, &bus->dev, "Allocating resources\n");
>> +
>> + pcibios_allocate_bus_resources(bus);
>> +
>> + pcibios_allocate_resources(bus, 0);
>> + pcibios_allocate_resources(bus, 1);
>> +
>> + pcibios_allocate_rom_resources(bus);
>> +}
>> +
>> void __init pcibios_resource_survey(void)
>
> I wish pcibios_resource_survey() could look like this:
>
> void __init pcibios_resource_survey(void)
> {
> list_for_each_entry(bus, &pci_root_buses, node)
> pcibios_resource_survey_bus(bus)
>
> e820_reserve_resources_late();
> ...
>
> but maybe there's a reason why pcibios_allocate_rom_resources() really
> has to be in the pcibios_assign_resources() fs_initcall rather than in
> pcibios_resource_survey().

that should be another patch later.

Thanks

Yinghai
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/