aboutsummaryrefslogtreecommitdiff
path: root/arch/arm64/mm/dma-mapping.c
diff options
context:
space:
mode:
authorAlex Shi <alex.shi@linaro.org>2015-03-30 10:58:32 +0800
committerAlex Shi <alex.shi@linaro.org>2015-03-30 10:58:32 +0800
commit2dad587ec1dddf02a00d3b54156337a6dc79a752 (patch)
tree00c8b9d215663f5b999cf4c7077bb79a05b3c5d0 /arch/arm64/mm/dma-mapping.c
parent5210951a4876a42856434546d2789838d3e35f34 (diff)
parentbdcec2cf3acd0d9ef24c653b722596f49ef6a040 (diff)
Merge tag 'v3.14.37' into linux-linaro-lsk-v3.14linux-linaro-lsk-v3.14
This is the 3.14.37 stable release
Diffstat (limited to 'arch/arm64/mm/dma-mapping.c')
-rw-r--r--arch/arm64/mm/dma-mapping.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/arm64/mm/dma-mapping.c b/arch/arm64/mm/dma-mapping.c
index 4164c5ace9f8..de3abbe6c59f 100644
--- a/arch/arm64/mm/dma-mapping.c
+++ b/arch/arm64/mm/dma-mapping.c
@@ -55,6 +55,7 @@ static void *__dma_alloc_coherent(struct device *dev, size_t size,
flags |= GFP_DMA;
if (IS_ENABLED(CONFIG_DMA_CMA)) {
struct page *page;
+ void *addr;
size = PAGE_ALIGN(size);
page = dma_alloc_from_contiguous(dev, size >> PAGE_SHIFT,
@@ -63,7 +64,10 @@ static void *__dma_alloc_coherent(struct device *dev, size_t size,
return NULL;
*dma_handle = phys_to_dma(dev, page_to_phys(page));
- return page_address(page);
+ addr = page_address(page);
+ if (flags & __GFP_ZERO)
+ memset(addr, 0, size);
+ return addr;
} else {
return swiotlb_alloc_coherent(dev, size, dma_handle, flags);
}