• Alexey Kardashevskiy's avatar
    vfio/powerpc/spapr_tce: Enforce IOMMU type compatibility check · 1282ba7f
    Alexey Kardashevskiy authored
    The existing SPAPR TCE driver advertises both VFIO_SPAPR_TCE_IOMMU and
    VFIO_SPAPR_TCE_v2_IOMMU types to the userspace and the userspace usually
    picks the v2.
    
    Normally the userspace would create a container, attach an IOMMU group
    to it and only then set the IOMMU type (which would normally be v2).
    
    However a specific IOMMU group may not support v2, in other words
    it may not implement set_window/unset_window/take_ownership/
    release_ownership and such a group should not be attached to
    a v2 container.
    
    This adds extra checks that a new group can do what the selected IOMMU
    type suggests. The userspace can then test the return value from
    ioctl(VFIO_SET_IOMMU, VFIO_SPAPR_TCE_v2_IOMMU) and try
    VFIO_SPAPR_TCE_IOMMU.
    Signed-off-by: default avatarAlexey Kardashevskiy <aik@ozlabs.ru>
    Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
    1282ba7f
vfio_iommu_spapr_tce.c 33 KB