linux-next: build failure after merge of the drm tree

Paul Cercueil paul at crapouillou.net
Wed Sep 30 16:39:18 UTC 2020



Le mer. 30 sept. 2020 à 18:11, Christoph Hellwig <hch at lst.de> a écrit 
:
> On Wed, Sep 30, 2020 at 03:33:13PM +0200, Paul Cercueil wrote:
>>  One thing missing for remap_pfn_range(), I have no alternative for 
>> this:
>> 
>>  vma->vm_page_prot = dma_pgprot(dev, vma->vm_page_prot,
>>  DMA_ATTR_NON_CONSISTENT);
>> 
>>  So I have to do:
>> 
>>  vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
>>  pgprot_val(vma->vm_page_prot) &= ~_CACHE_MASK;
>>  pgprot_val(vma->vm_page_prot) |= _CACHE_CACHABLE_NONCOHERENT;
>> 
>>  And that will only compile on MIPS, because these _CACHE_* macros 
>> are only
>>  defined there.
>> 
>>  I would need something like a pgprot_noncoherent(), I think.
> 
> dma_alloc_pages gives you cached memory, so you can't just use an
> uncached protection for the userspace mmap here.  If you want uncached
> memory you need to use dma_alloc_coherent paired with 
> dma_mmap_coherent.
> Or dma_alloc_wc for a slightly different flavor of uncached. (both
> of the map to dma_alloc_attrs / dma_mmap_attrs eventually).

I don't want uncached memory, I want non-coherent cached memory.

-Paul




More information about the dri-devel mailing list