Re: [PATCH][RFC] PCI: rcar: Add bus notifier so we can limit the DMA range
From: Will Deacon
Date: Wed Jun 06 2018 - 11:44:39 EST
On Mon, Jun 04, 2018 at 05:30:48PM -0500, Bjorn Helgaas wrote:
> [+cc ARM64 folks, linux-kernel]
> The original patch under discussion is:
> 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 <marek.vasut@xxxxxxxxx> wrote:
> > >> From: Phil Edworthy <phil.edworthy@xxxxxxxxxxx>
> > >>
> > >> 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 <phil.edworthy@xxxxxxxxxxx>
> > >> Signed-off-by: Marek Vasut <marek.vasut+renesas@xxxxxxxxx>
> > >> Cc: Arnd Bergmann <arnd@xxxxxxxx>
> > >> Cc: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>
> > >> Cc: Phil Edworthy <phil.edworthy@xxxxxxxxxxx>
> > >> Cc: Simon Horman <horms+renesas@xxxxxxxxxxxx>
> > >> Cc: Wolfram Sang <wsa@xxxxxxxxxxxxx>
> > >> Cc: linux-renesas-soc@xxxxxxxxxxxxxxx
> > >> To: linux-pci@xxxxxxxxxxxxxxx
> > >> ---
> > >> 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.