linux/drivers/iommu/intel
Liu Yi L 7c29ada5e7 iommu/vt-d: Fix ineffective devTLB invalidation for subdevices
iommu_flush_dev_iotlb() is called to invalidate caches on a device but
only loops over the devices which are fully-attached to the domain. For
sub-devices, this is ineffective and can result in invalid caching
entries left on the device.

Fix the missing invalidation by adding a loop over the subdevices and
ensuring that 'domain->has_iotlb_device' is updated when attaching to
subdevices.

Fixes: 67b8e02b5e ("iommu/vt-d: Aux-domain specific domain attach/detach")
Signed-off-by: Liu Yi L <yi.l.liu@intel.com>
Acked-by: Lu Baolu <baolu.lu@linux.intel.com>
Link: https://lore.kernel.org/r/1609949037-25291-4-git-send-email-yi.l.liu@intel.com
Signed-off-by: Will Deacon <will@kernel.org>
2021-01-07 14:38:15 +00:00
..
Kconfig iommu/vt-d: Convert intel iommu driver to the iommu ops 2020-11-25 12:03:49 +00:00
Makefile iommu/vt-d: Move Kconfig and Makefile bits down into intel directory 2020-07-29 14:14:55 +02:00
debugfs.c iommu/vt-d: Rename intel-pasid.h to pasid.h 2020-07-24 10:51:21 +02:00
dmar.c iommu/vt-d: Fix misuse of ALIGN in qi_flush_piotlb() 2021-01-07 13:27:14 +00:00
iommu.c iommu/vt-d: Fix ineffective devTLB invalidation for subdevices 2021-01-07 14:38:15 +00:00
irq_remapping.c iommu/intel: Fix memleak in intel_irq_remapping_alloc 2021-01-05 19:12:06 +00:00
pasid.c drm, iommu: Change type of pasid to u32 2020-09-17 19:21:16 +02:00
pasid.h drm, iommu: Change type of pasid to u32 2020-09-17 19:21:16 +02:00
svm.c iommu/vt-d: Move intel_iommu info from struct intel_svm to struct intel_svm_dev 2021-01-07 14:34:36 +00:00
trace.c