[PATCH] powerpc/PCI: Add IORESOURCE_MEM_64 for 64-bit resource in of parsing

Yinghai Lu yinghai at kernel.org
Wed Apr 8 15:39:55 AEST 2015


On Tue, Apr 7, 2015 at 8:49 PM, Benjamin Herrenschmidt
<benh at kernel.crashing.org> wrote:
> On Tue, 2015-04-07 at 17:24 -0700, Yinghai Lu wrote:
>> For device resource PREF bit setting under bridge 64-bit pref resource,
>> we need to make sure only set PREF for 64bit resource, so set IORESOUCE_MEM_64
>> for 64bit resource during of device resource flags parsing.
>
>> Link: https://bugzilla.kernel.org/show_bug.cgi?id=96261
>> Link: https://bugzilla.kernel.org/show_bug.cgi?id=96241
>
> These patches (from the above BZ) aren't right for one thing: You
> shouldn't set the IORESOURCE_PREFETCH in the resource itself. This
> *will* break stuff.
>
> You can put the resource in a prefetchable region indeed, if you
> are on a PCIe-only path (though we should have some arch flag
> to check that the host bridge indeed doesn't do any prefetch,
> on powerpc we are good there).

The patch is at:

http://git.kernel.org/cgit/linux/kernel/git/helgaas/pci.git/commit/?h=for-linus&id=1a3ec5e7b00dcd9cac24efe3d65bfccf82597ce5

and we limit to set pref bit for pcie end devices mmio 64bit resource.

>
> But you can't set the "prefetch" bit on the resource because that would
> be losing the indication that this resource has side effects. This bit
> is used in some cases to enable store gathering when mmap'ing via sysfs
> and can be used for similar uses by drivers.

Any pointer for that?

>
> It's one thing to say "you can put non-prefetch BARs in prefetch windows
> on that path", it's another one to completely make the BAR looks like
> it's prefetchable when it's not.

Too hard for me to tell the difference.

        Yinghai


More information about the Linuxppc-dev mailing list