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

Yinghai Lu
2014-12-09T00:09:33Z

On Mon, Dec 8, 2014 at 3:00 PM, Benjamin Herrenschmidt
<benh@kernel.crashing.org> wrote:

>
> I think an option would be to keep track of whether the PCI host bridge
> can do 64-bit pref above 4G.

Yes, that could be enhancement.

That should fix the problem Marek's

But not on Zermond's, as his system is not using _CRS.

Or we can enforce new rule that no _CRS then only use under 4G ?

>
> If it can't then we know 64-bit pref is always fair game for 32-bit
> resources and we can thus downgrade all the bridges 64-pref to 32-perf.
>
> If it can, then we probably do need to leave it there do real 64-bit
> pref, and shoot anything that is 32-bit only down the non-pref windows.
>
> We *could* try to be smart and scan first to check if anything under the
> bridge actually has large/64-bit BARs but that's going to be a heuristic
> at best and isn't going to do any good with hotplug.
>
> I tend to think that treating anything 32-bit pref as non-pref is in
> fact the best solution unless we know that the platform doesn't do
>>32-bit pref anyway in which case we leave them alone.

Yes, but will need to enable pci=realloc automatically, so we can take
back control
of bridge mmio bar.

Thanks

Yinghai