Explorar o código

iommu/amd: Flush iommu tlb in dma_ops_free_addresses

Instead of setting need_flush, do the flush directly in
dma_ops_free_addresses.

Signed-off-by: Joerg Roedel <jroedel@suse.de>
Joerg Roedel %!s(int64=9) %!d(string=hai) anos
pai
achega
d41ab09896
Modificáronse 1 ficheiros con 4 adicións e 2 borrados
  1. 4 2
      drivers/iommu/amd_iommu.c

+ 4 - 2
drivers/iommu/amd_iommu.c

@@ -1648,8 +1648,10 @@ static void dma_ops_free_addresses(struct dma_ops_domain *dom,
 		return;
 #endif
 
-	if ((address >> APERTURE_RANGE_SHIFT) >= dom->next_index)
-		dom->need_flush = true;
+	if (address + pages > range->next_bit) {
+		domain_flush_tlb(&dom->domain);
+		domain_flush_complete(&dom->domain);
+	}
 
 	address = (address % APERTURE_RANGE_SIZE) >> PAGE_SHIFT;