Re: [PATCH 9/9] pci: set PCI_PREF_RANGE_TYPE_64 in pci_bridge_check_ranges

Yinghai Lu
2010-01-21T21:55:32Z

On 01/21/2010 01:32 PM, Alex Chiang wrote:
> * Yinghai Lu <yinghai@kernel.org>:
>> make pci_bridge_check_ranges() to store the
>> PCI_PREF_RANGE_TYPE_64 in addition to IORESOURCE_MEM_64. just
>> like pci_read_bridge_bases()
>>
>> Signed-off-by: Yinghai Lu <yinghai@kernel.org>
>> ---
>> drivers/pci/setup-bus.c | 5 ++++-
>> 1 files changed, 4 insertions(+), 1 deletions(-)
>>
>> diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
>> index a9c4f9e..8fafe73 100644
>> --- a/drivers/pci/setup-bus.c
>> +++ b/drivers/pci/setup-bus.c
>> @@ -359,8 +359,11 @@ static void pci_bridge_check_ranges(struct pci_bus *bus)
>> }
>> if (pmem) {
>> b_res[2].flags |= IORESOURCE_MEM | IORESOURCE_PREFETCH;
>> - if ((pmem & PCI_PREF_RANGE_TYPE_MASK) == PCI_PREF_RANGE_TYPE_64)
>> + if ((pmem & PCI_PREF_RANGE_TYPE_MASK) ==
>> + PCI_PREF_RANGE_TYPE_64) {
>> b_res[2].flags |= IORESOURCE_MEM_64;
>> + b_res[2].flags |= PCI_PREF_RANGE_TYPE_64;
here set PCI_PREF_RANGE_TYPE_64 too.
>> + }
>> }
>
> My copy of pci_read_bridge_bases() in jbarnes's linux-next tree
> doesn't do anything like that.
>
> 284 void __devinit pci_read_bridge_bases(struct pci_bus *child)
> 285 {
> ...
> 369 if (base <= limit) {
> 370 res->flags = (mem_base_lo & PCI_PREF_RANGE_TYPE_MASK) |
> 371 IORESOURCE_MEM | IORESOURCE_PREFETCH;
so it could save PCI_PREF_RANGE_TYPE_64 here.
> 372 if (res->flags & PCI_PREF_RANGE_TYPE_64)
> 373 res->flags |= IORESOURCE_MEM_64;
> 374 res->start = base;
> 375 res->end = limit + 0xfffff;
> 376 dev_printk(KERN_DEBUG, &dev->dev, " bridge window %pR\n", res);
> 377 }

YH