]> git.baikalelectronics.ru Git - kernel.git/commit
iommu/vt-d: Fix ineffective devTLB invalidation for subdevices
authorLiu Yi L <yi.l.liu@intel.com>
Wed, 6 Jan 2021 16:03:57 +0000 (00:03 +0800)
committerWill Deacon <will@kernel.org>
Thu, 7 Jan 2021 14:38:15 +0000 (14:38 +0000)
commit270ba426984b2af3d4ef63b2e7cb5c25b645b63f
tree762d8fe765d706fd1eabd794ecfc1bc2b0e80c3e
parentffdd2f06c680e31e9bbe7848c315e2137ffe7597
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: 324503e778e1 ("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>
drivers/iommu/intel/iommu.c