Loading drivers/iommu/dma-mapping-fast.c +5 −1 Original line number Diff line number Diff line Loading @@ -345,6 +345,8 @@ static int fast_smmu_map_sg(struct device *dev, struct scatterlist *sg, if ((attrs & DMA_ATTR_SKIP_CPU_SYNC) == 0) fast_smmu_sync_sg_for_device(dev, sg, nents, dir); trace_map_sg(to_msm_iommu_domain(mapping->domain), iova, iova_len, prot); return ret; fail: iommu_dma_invalidate_sg(sg, nents); Loading Loading @@ -376,13 +378,15 @@ static void fast_smmu_unmap_sg(struct device *dev, break; sg = tmp; } len = sg_dma_address(sg) + sg_dma_len(sg) - start; len = ALIGN(sg_dma_address(sg) + sg_dma_len(sg) - start, FAST_PAGE_SIZE); av8l_fast_unmap_public(mapping->pgtbl_ops, start, len); spin_lock_irqsave(&mapping->lock, flags); __fast_smmu_free_iova(mapping, start, len); spin_unlock_irqrestore(&mapping->lock, flags); trace_unmap(to_msm_iommu_domain(mapping->domain), start, len, len); } static void __fast_smmu_free_pages(struct page **pages, int count) Loading Loading
drivers/iommu/dma-mapping-fast.c +5 −1 Original line number Diff line number Diff line Loading @@ -345,6 +345,8 @@ static int fast_smmu_map_sg(struct device *dev, struct scatterlist *sg, if ((attrs & DMA_ATTR_SKIP_CPU_SYNC) == 0) fast_smmu_sync_sg_for_device(dev, sg, nents, dir); trace_map_sg(to_msm_iommu_domain(mapping->domain), iova, iova_len, prot); return ret; fail: iommu_dma_invalidate_sg(sg, nents); Loading Loading @@ -376,13 +378,15 @@ static void fast_smmu_unmap_sg(struct device *dev, break; sg = tmp; } len = sg_dma_address(sg) + sg_dma_len(sg) - start; len = ALIGN(sg_dma_address(sg) + sg_dma_len(sg) - start, FAST_PAGE_SIZE); av8l_fast_unmap_public(mapping->pgtbl_ops, start, len); spin_lock_irqsave(&mapping->lock, flags); __fast_smmu_free_iova(mapping, start, len); spin_unlock_irqrestore(&mapping->lock, flags); trace_unmap(to_msm_iommu_domain(mapping->domain), start, len, len); } static void __fast_smmu_free_pages(struct page **pages, int count) Loading