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

From: Wei Yang
Date: Mon Dec 08 2014 - 21:26:15 EST

On Tue, Dec 09, 2014 at 11:11:19AM +1100, Gavin Shan wrote:
>On Mon, Dec 08, 2014 at 03:59:54PM -0800, Yinghai Lu wrote:
>>On Mon, Dec 8, 2014 at 2:56 PM, Benjamin Herrenschmidt
>><benh@xxxxxxxxxxxxxxxxxxx> 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.
>I'm going to give it a spin and Richard, could you please apply Yinghai's
>patch to see if your SRIOV code can work properly?

Yinghai & Gavin,

I did a quick test on my machine. This patch doesn't affect the MMIO
allocation on out platform, so SRIOV works fine.

I will spend more time to read the patch to get more understanding about the


Richard Yang
Help you, Help me

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at