On Wed, Jun 26, 2019 at 02:53:25PM +0200, Christoph Hellwig wrote: > Hi Roger, > > it seems the arm dma direct mapping code isn't doing the right thing > here. On other platforms that have > 4G memory we always use swiotlb > for bounce buffering in case a device that can't DMA to all the memory. > > Arm is the odd one out and uses its own dmabounce framework instead, > but it seems like it doesn't get used in this case. We need to make > sure dmabounce (or swiotlb for that matter) is set up if > 32-bit > addressing is supported. I'm not really an arm platform expert, > but some of those on the Cc list are and might chime in on how to > do that. dmabounce has only ever been used with specific devices that have weird setups. Otherwise, we've never expected what you describe on ARM. I also don't recognise your assertion about the way the DMA API should behave as ever having been documented as a requirement for architectures to implement. dmabounce comes with it some serious issues that have been known to cause OOMs with old kernels (which have never been solved), so that really isn't the answer. This kind of breakage that is now being reported is exactly the problem that I thought would happen with your patches. 32-bit ARM is in maintenance only now, there is no longer any appetite nor funding for development work on core code. -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up According to speedtest.net: 11.9Mbps down 500kbps up