+Sergey Senozhatsky who's going to be looking into this. Hi Christoph, On Tue, Oct 1, 2019 at 3:37 PM Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote: > > On Mon, Sep 30, 2019 at 01:23:10AM -0700, Christoph Hellwig wrote: > > And drivers really have no business looking at the dma mask. I have > > a plan for dma_alloc_pages API that could replace that cruft, but > > until then please use GFP_KERNEL and let the dma subsystem bounce > > buffer if needed. > > Can you try this series: > > http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/dma_alloc_pages > > and see if it does whay you need for usb? Reviving this thread. Sorry for no updates for a long time. dma_alloc_pages() still wouldn't be an equivalent replacement of the existing dma_alloc_coherent() (used behind the scenes by usb_alloc_coherent()). That's because the latter can allocate non-contiguous memory if the DMA device can handle it (i.e. is behind an IOMMU), but the former can only allocate a contiguous range of pages. That said, I noticed that you also put a lot of effort into making the NONCONSISTENT attribute more usable. Perhaps that's the way to go here then? Of course we would need to make sure that the attribute is handled properly on ARM and ARM64, which are the most affected platforms. Right now neither handles them. The former doesn't use the generic DMA mapping ops, while the latter does, but doesn't enable a Kconfig option needed to allow generic inconsistent allocations. Any hints would be appreciated. Best regards, Tomasz