diff options
author | David S. Miller <davem@davemloft.net> | 2018-06-26 08:07:17 +0900 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-06-26 08:07:17 +0900 |
commit | 9ff3b40e411c00870d1c29cd6b843fca7c4160ae (patch) | |
tree | 4d58943bf8907f5704ba004fd5383c0d7683c61f /arch/arm64/mm/dma-mapping.c | |
parent | 823819507095135b475a99048f0b0b6e75580fbc (diff) | |
parent | 6f0d349d922ba44e4348a17a78ea51b7135965b1 (diff) | |
download | talos-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.c | 9 |
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); |