summaryrefslogtreecommitdiffstats
path: root/arch/arm64/mm/dma-mapping.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2018-06-26 08:07:17 +0900
committerDavid S. Miller <davem@davemloft.net>2018-06-26 08:07:17 +0900
commit9ff3b40e411c00870d1c29cd6b843fca7c4160ae (patch)
tree4d58943bf8907f5704ba004fd5383c0d7683c61f /arch/arm64/mm/dma-mapping.c
parent823819507095135b475a99048f0b0b6e75580fbc (diff)
parent6f0d349d922ba44e4348a17a78ea51b7135965b1 (diff)
downloadtalos-op-linux-9ff3b40e411c00870d1c29cd6b843fca7c4160ae.tar.gz
talos-op-linux-9ff3b40e411c00870d1c29cd6b843fca7c4160ae.zip
Merge ra.kernel.org:/pub/scm/linux/kernel/git/davem/net
Diffstat (limited to 'arch/arm64/mm/dma-mapping.c')
-rw-r--r--arch/arm64/mm/dma-mapping.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/arch/arm64/mm/dma-mapping.c b/arch/arm64/mm/dma-mapping.c
index 49e217ac7e1e..61e93f0b5482 100644
--- a/arch/arm64/mm/dma-mapping.c
+++ b/arch/arm64/mm/dma-mapping.c
@@ -583,13 +583,14 @@ static void *__iommu_alloc_attrs(struct device *dev, size_t size,
size >> PAGE_SHIFT);
return NULL;
}
- if (!coherent)
- __dma_flush_area(page_to_virt(page), iosize);
-
addr = dma_common_contiguous_remap(page, size, VM_USERMAP,
prot,
__builtin_return_address(0));
- if (!addr) {
+ if (addr) {
+ memset(addr, 0, size);
+ if (!coherent)
+ __dma_flush_area(page_to_virt(page), iosize);
+ } else {
iommu_dma_unmap_page(dev, *handle, iosize, 0, attrs);
dma_release_from_contiguous(dev, page,
size >> PAGE_SHIFT);
OpenPOWER on IntegriCloud