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

Alex Chiang
2010-01-21T22:09:58Z

* Yinghai Lu <yinghai@kernel.org>:
> On 01/21/2010 01:32 PM, Alex Chiang wrote:
> >> @@ -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 }

Hm, ok. Thanks for pointing it out.

/ac