Re: [PATCH 1/2] dma-mapping: fix page attributes for dma_mmap_*

From: Christoph Hellwig
Date: Tue Aug 06 2019 - 01:12:50 EST


On Mon, Aug 05, 2019 at 07:55:44PM -0700, Gavin Li wrote:
> > /* create a coherent mapping */
> > ret = dma_common_contiguous_remap(page, size, VM_USERMAP,
> > - arch_dma_mmap_pgprot(dev, PAGE_KERNEL, attrs),
> > + dma_pgprot(dev, PAGE_KERNEL, attrs),
> > __builtin_return_address(0));
> > if (!ret) {
> > __dma_direct_free_pages(dev, size, page);
>
> Is dma_common_contiguous_remap() still necessary in the
> DMA_ATTR_NON_CONSISTENT case? I would presume it would be fine to just
> return a linearly mapped address in that case.

It would not be required for a real DMA_ATTR_NON_CONSISTENT
implementation. But only parisc and mips actually properly implement
DMA_ATTR_NON_CONSISTENT, everyone ignores it. Given that the API is
a little ill defined and I have a better replacement in the pipeline
I don't want to start implementing it for other architectures now.