Re: [PATCH] PCI: Clear bridge MEM_64 flag if one child does not support it

Yinghai Lu
2014-12-08T23:59:56Z

On Mon, Dec 8, 2014 at 2:56 PM, Benjamin Herrenschmidt
<benh@kernel.crashing.org> wrote:
> On Mon, 2014-12-08 at 13:52 -0800, Yinghai Lu wrote:
>> 2. or scan the children resource other than ROM to clear bridge MEM_64
>> for mmio pref.
>>
>> The patch is using second way so will keep child mmio pref into bridge
>> mmio pref range.
>
> That means that having a single ROM BAR that is 32-bit and prefetchable
> will downgrade the entire window to 32-bit ? That's not going to work
> either.

the ROM BAR get skipped during the checking.

+ if (i != PCI_ROM_RESOURCE)
+ mem64_mask &= r->flags & IORESOURCE_MEM_64;
+ }

>
> I have GPUs with 16G BARs for example... suddenly they don't fit
> anaymore because we downgraded the window to 32 bit because somewhere
> there's a 32-bit pref resource ?
>
> That will break more than it fixes...

Please check if this patch break your platform. I tried on my setup on
x86. and it is still
working on 64 bit resource allocation.

Thanks

Yinghai