• Lu Baolu's avatar
    vfio/mdev: Add iommu related member in mdev_device · 8ac13175
    Lu Baolu authored
    A parent device might create different types of mediated
    devices. For example, a mediated device could be created
    by the parent device with full isolation and protection
    provided by the IOMMU. One usage case could be found on
    Intel platforms where a mediated device is an assignable
    subset of a PCI, the DMA requests on behalf of it are all
    tagged with a PASID. Since IOMMU supports PASID-granular
    translations (scalable mode in VT-d 3.0), this mediated
    device could be individually protected and isolated by an
    IOMMU.
    
    This patch adds a new member in the struct mdev_device to
    indicate that the mediated device represented by mdev could
    be isolated and protected by attaching a domain to a device
    represented by mdev->iommu_device. It also adds a helper to
    add or set the iommu device.
    
    * mdev_device->iommu_device
      - This, if set, indicates that the mediated device could
        be fully isolated and protected by IOMMU via attaching
        an iommu domain to this device. If empty, it indicates
        using vendor defined isolation, hence bypass IOMMU.
    
    * mdev_set/get_iommu_device(dev, iommu_device)
      - Set or get the iommu device which represents this mdev
        in IOMMU's device scope. Drivers don't need to set the
        iommu device if it uses vendor defined isolation.
    
    Cc: Ashok Raj <ashok.raj@intel.com>
    Cc: Jacob Pan <jacob.jun.pan@linux.intel.com>
    Cc: Kevin Tian <kevin.tian@intel.com>
    Cc: Liu Yi L <yi.l.liu@intel.com>
    Suggested-by: default avatarKevin Tian <kevin.tian@intel.com>
    Suggested-by: default avatarAlex Williamson <alex.williamson@redhat.com>
    Signed-off-by: default avatarLu Baolu <baolu.lu@linux.intel.com>
    Reviewed-by: default avatarJean-Philippe Brucker <jean-philippe.brucker@arm.com>
    Reviewed-by: default avatarKirti Wankhede <kwankhede@nvidia.com>
    Acked-by: default avatarAlex Williamson <alex.williamson@redhat.com>
    Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
    8ac13175
mdev_core.c 9.29 KB