iommu/vt-d: Add device_block_translation() helper
authorLu Baolu <baolu.lu@linux.intel.com>
Tue, 22 Nov 2022 00:29:44 +0000 (08:29 +0800)
committerJoerg Roedel <jroedel@suse.de>
Tue, 22 Nov 2022 13:05:20 +0000 (14:05 +0100)
commitc7be17c2903d4acbf9aa372bfb6e2a418387fce0
tree53a0d155e19467c33b4b1635c3d74c259dd55f42
parentec62b4424174f41bdcedd08d12d7bed80088453d
iommu/vt-d: Add device_block_translation() helper

If domain attaching to device fails, the IOMMU driver should bring the
device to blocking DMA state. The upper layer is expected to recover it
by attaching a new domain. Use device_block_translation() in the error
path of dev_attach to make the behavior specific.

The difference between device_block_translation() and the previous
dmar_remove_one_dev_info() is that, in the scalable mode, it is the
RID2PASID entry instead of context entry being cleared. As a result,
enabling PCI capabilities is moved up.

Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Link: https://lore.kernel.org/r/20221118132451.114406-3-baolu.lu@linux.intel.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/intel/iommu.c