]> xenbits.xensource.com Git - xen.git/commitdiff
IOMMU/x86: drop TLB flushes from quarantine_init() hooks
authorJan Beulich <jbeulich@suse.com>
Tue, 5 Apr 2022 13:41:05 +0000 (15:41 +0200)
committerJan Beulich <jbeulich@suse.com>
Tue, 5 Apr 2022 13:41:05 +0000 (15:41 +0200)
The page tables just created aren't hooked up yet anywhere, so there's
nothing that could be present in any TLB, and hence nothing to flush.
Dropping this flush is, at least on the VT-d side, a prereq to per-
device domain ID use when quarantining devices, as dom_io isn't going
to be assigned a DID anymore: The warning in get_iommu_did() would
trigger.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Paul Durrant <paul@xen.org>
Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
master commit: 54c5cef49239e2f27ec3b3fc8804bf57aa4bf46d
master date: 2022-04-05 14:19:42 +0200

xen/drivers/passthrough/amd/iommu_map.c
xen/drivers/passthrough/vtd/iommu.c

index 2986ae5fc9f61b394107f4a6bcbb7c7fe79235d9..0b619e235e4fe2a0a9d97a0e20614742265ba2db 100644 (file)
@@ -840,8 +840,6 @@ int __init amd_iommu_quarantine_init(struct domain *d)
  out:
     spin_unlock(&hd->arch.mapping_lock);
 
-    amd_iommu_flush_all_pages(d);
-
     /* Pages leaked in failure case */
     return level ? -ENOMEM : 0;
 }
index 7c09ef77ed94c3e7a41976011c0e3fa2ad5fe5d2..b0918643b3b90e35774565071a22167db89d586d 100644 (file)
@@ -2858,7 +2858,6 @@ static int __init intel_iommu_quarantine_init(struct domain *d)
     struct dma_pte *parent;
     unsigned int agaw = width_to_agaw(DEFAULT_DOMAIN_ADDRESS_WIDTH);
     unsigned int level = agaw_to_level(agaw);
-    int rc;
 
     if ( hd->arch.pgd_maddr )
     {
@@ -2905,10 +2904,8 @@ static int __init intel_iommu_quarantine_init(struct domain *d)
  out:
     spin_unlock(&hd->arch.mapping_lock);
 
-    rc = iommu_flush_iotlb_all(d);
-
     /* Pages leaked in failure case */
-    return level ? -ENOMEM : rc;
+    return level ? -ENOMEM : 0;
 }
 
 const struct iommu_ops __initconstrel intel_iommu_ops = {