iommu/vt-d: Prevent VMD child devices from being remapping targets
authorJon Derrick <jonathan.derrick@intel.com>
Wed, 30 Aug 2017 21:05:59 +0000 (15:05 -0600)
committerBjorn Helgaas <bhelgaas@google.com>
Wed, 30 Aug 2017 21:43:58 +0000 (16:43 -0500)
commit5823e330b58c52d74bcf4588626863994a53f6d9
tree5effe977542a89c5ab0d0d1172459027ae350ee3
parentc37f23d44e866d079d30399cb358dd19617562a1
iommu/vt-d: Prevent VMD child devices from being remapping targets

VMD child devices must use the VMD endpoint's ID as the requester.  Because
of this, there needs to be a way to link the parent VMD endpoint's IOMMU
group and associated mappings to the VMD child devices such that attaching
and detaching child devices modify the endpoint's mappings, while
preventing early detaching on a singular device removal or unbinding.

The reassignment of individual VMD child devices devices to VMs is outside
the scope of VMD, but may be implemented in the future. For now it is best
to prevent any such attempts.

Prevent VMD child devices from returning an IOMMU, which prevents it from
exposing an iommu_group sysfs directory and allowing subsequent binding by
userspace-access drivers such as VFIO.

Signed-off-by: Jon Derrick <jonathan.derrick@intel.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/iommu/intel-iommu.c