diff --git a/drivers/iommu/dma-mapping-fast.c b/drivers/iommu/dma-mapping-fast.c index e309014e22d1..0c02eeb3bb48 100644 --- a/drivers/iommu/dma-mapping-fast.c +++ b/drivers/iommu/dma-mapping-fast.c @@ -643,6 +643,7 @@ static void *__fast_smmu_alloc_contiguous(struct device *dev, size_t size, coherent_addr = page_address(page); } + memset(coherent_addr, 0, size); *handle = iova; return coherent_addr; @@ -681,6 +682,9 @@ static void *fast_smmu_alloc(struct device *dev, size_t size, return NULL; } + if (!(attrs & DMA_ATTR_SKIP_ZEROING)) + gfp |= __GFP_ZERO; + *handle = DMA_ERROR_CODE; size = ALIGN(size, SZ_4K);