aboutsummaryrefslogtreecommitdiff
path: root/drivers/iommu/intel/iommu.c
diff options
context:
space:
mode:
authorLu Baolu <baolu.lu@linux.intel.com>2024-11-04 09:40:39 +0800
committerJoerg Roedel <jroedel@suse.de>2024-11-05 13:32:27 +0100
commitc43e1ccdebf2c950545fdf12c5796ad6f7bad7ee (patch)
tree0c8eac7e644950464e3f6911f54f1aaa46f31197 /drivers/iommu/intel/iommu.c
parent9baed1c28030ebac5d44b889b3adf155340fa751 (diff)
downloadlinux-c43e1ccdebf2c950545fdf12c5796ad6f7bad7ee.tar.gz
linux-c43e1ccdebf2c950545fdf12c5796ad6f7bad7ee.tar.bz2
linux-c43e1ccdebf2c950545fdf12c5796ad6f7bad7ee.zip
iommu/vt-d: Drain PRQs when domain removed from RID
As this iommu driver now supports page faults for requests without PASID, page requests should be drained when a domain is removed from the RID2PASID entry. This results in the intel_iommu_drain_pasid_prq() call being moved to intel_pasid_tear_down_entry(). This indicates that when a translation is removed from any PASID entry and the PRI has been enabled on the device, page requests are drained in the domain detachment path. The intel_iommu_drain_pasid_prq() helper has been modified to support sending device TLB invalidation requests for both PASID and non-PASID cases. Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com> Reviewed-by: Yi Liu <yi.l.liu@intel.com> Link: https://lore.kernel.org/r/20241101045543.70086-1-baolu.lu@linux.intel.com Signed-off-by: Joerg Roedel <jroedel@suse.de>
Diffstat (limited to 'drivers/iommu/intel/iommu.c')
-rw-r--r--drivers/iommu/intel/iommu.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
index 74cf84e3e4e0..e2b3aa601191 100644
--- a/drivers/iommu/intel/iommu.c
+++ b/drivers/iommu/intel/iommu.c
@@ -4067,7 +4067,6 @@ static void intel_iommu_remove_dev_pasid(struct device *dev, ioasid_t pasid,
intel_iommu_debugfs_remove_dev_pasid(dev_pasid);
kfree(dev_pasid);
intel_pasid_tear_down_entry(iommu, dev, pasid, false);
- intel_iommu_drain_pasid_prq(dev, pasid);
}
static int intel_iommu_set_dev_pasid(struct iommu_domain *domain,