Subject: [PATCH][RFC] PCI: rcar: Add bus notifier so we can limit the DMA range

From: [email-masked] (Will Deacon)
Date: Wed, 6 Jun 2018 16:45:06 +0100

On Mon, Jun 04, 2018 at 05:30:48PM -0500, Bjorn Helgaas wrote:
> [+cc ARM64 folks, linux-kernel]
> 
> The original patch under discussion is:
> https://lkml.kernel.org/r/20180521220514.30256-1-marek.vasut+renesas at gmail.com
> 
> On Tue, May 22, 2018 at 11:52:21AM +0200, Marek Vasut wrote:
> > On 05/22/2018 10:10 AM, Arnd Bergmann wrote:
> > > On Tue, May 22, 2018 at 12:05 AM, Marek Vasut <[email-masked]> wrote:
> > >> From: Phil Edworthy <[email-masked]>
> > >>
> > >> The PCIe DMA controller on RCar Gen2 and earlier is on 32bit bus,
> > >> so limit the DMA range to 32bit.
> > >>
> > >> Signed-off-by: Phil Edworthy <[email-masked]>
> > >> Signed-off-by: Marek Vasut <[email-masked]>
> > >> Cc: Arnd Bergmann <[email-masked]>
> > >> Cc: Geert Uytterhoeven <[email-masked]>
> > >> Cc: Phil Edworthy <[email-masked]>
> > >> Cc: Simon Horman <[email-masked]>
> > >> Cc: Wolfram Sang <[email-masked]>
> > >> Cc: linux-renesas-soc at vger.kernel.org
> > >> To: linux-pci at vger.kernel.org
> > >> ---
> > >> NOTE: I'm aware of https://patchwork.kernel.org/patch/9495895/ , but the
> > >>       discussion seems to have gone way off, so I'm sending this as a
> > >>       RFC. Any feedback on how to do this limiting properly would be nice.
> > > 
> > > Doing it in the driver is clearly not appropriate, we must do this in
> > > common code. If I remember correctly, it's specifically ARM64 that is
> > > broken here, it incorrectly allows setting a DMA mask to 64 bit
> > > when that is not available.
> > 
> > Yep, that's correct. ARM64 with devices mapping tremendous amounts of
> > memory. So did anything change since that discussion references in the NOTE?

Is it specifically arm64 that's broken here? If so, why and how do other
archs (e.g. riscv) handle this? I thought all of this behaviour was driven
by the DMA ops, and we're just using generic code for that afaict.

Will