]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
arm64: dma-mapping: Simplify pgprot handling
authorRobin Murphy <Robin.Murphy@arm.com>
Fri, 31 Jul 2015 17:28:34 +0000 (18:28 +0100)
committerWill Deacon <will.deacon@arm.com>
Mon, 3 Aug 2015 12:17:38 +0000 (13:17 +0100)
Since __get_dma_pgprot() does The Right Thing(TM) in the non-coherent
case, and the non-cacheable alias for DMA buffers is private to the
kernel anyway, we can simplify things slightly and make the code more
readable by just using PAGE_KERNEL as the base pgprot.

Suggested-by: Catalin Marinas <catalin.marinas@arm.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm64/mm/dma-mapping.c

index e5d74cdfdb711db90a88b6249c69f72e18800fd1..0bcc4bc94b4ad3b4d72d735dc7e88a190c2e5cbe 100644 (file)
@@ -144,6 +144,7 @@ static void *__dma_alloc(struct device *dev, size_t size,
        struct page *page;
        void *ptr, *coherent_ptr;
        bool coherent = is_device_dma_coherent(dev);
+       pgprot_t prot = __get_dma_pgprot(attrs, PAGE_KERNEL, false);
 
        size = PAGE_ALIGN(size);
 
@@ -171,9 +172,7 @@ static void *__dma_alloc(struct device *dev, size_t size,
        /* create a coherent mapping */
        page = virt_to_page(ptr);
        coherent_ptr = dma_common_contiguous_remap(page, size, VM_USERMAP,
-                               __get_dma_pgprot(attrs,
-                                       __pgprot(PROT_NORMAL_NC), false),
-                                       NULL);
+                                                  prot, NULL);
        if (!coherent_ptr)
                goto no_map;