ARM: dma: use phys_addr_t in __dma_page_[cpu_to_dev/dev_to_cpu]
authorSantosh Shilimkar <santosh.shilimkar@ti.com>
Thu, 24 Apr 2014 15:30:07 +0000 (11:30 -0400)
committerSantosh Shilimkar <santosh.shilimkar@ti.com>
Wed, 7 May 2014 13:21:45 +0000 (09:21 -0400)
On a 32 bit ARM architecture with LPAE extension physical addresses
cannot fit into unsigned long variable.

So fix it by using phys_addr_t instead of unsigned long.

Cc: Nicolas Pitre <nicolas.pitre@linaro.org>
Cc: Russell King - ARM Linux <linux@arm.linux.org.uk>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
arch/arm/mm/dma-mapping.c

index f62aa06..5260f43 100644 (file)
@@ -885,7 +885,7 @@ static void dma_cache_maint_page(struct page *page, unsigned long offset,
 static void __dma_page_cpu_to_dev(struct page *page, unsigned long off,
        size_t size, enum dma_data_direction dir)
 {
-       unsigned long paddr;
+       phys_addr_t paddr;
 
        dma_cache_maint_page(page, off, size, dir, dmac_map_area);
 
@@ -901,7 +901,7 @@ static void __dma_page_cpu_to_dev(struct page *page, unsigned long off,
 static void __dma_page_dev_to_cpu(struct page *page, unsigned long off,
        size_t size, enum dma_data_direction dir)
 {
-       unsigned long paddr = page_to_phys(page) + off;
+       phys_addr_t paddr = page_to_phys(page) + off;
 
        /* FIXME: non-speculating: not required */
        /* don't bother invalidating if DMA to device */