Messages in this thread Patch in this message | | | From | Eric Auger <> | Subject | [RFC 07/11] iommu: Use IOMMU_DOMAIN_MIXED typed domain when IOMMU translates MSI | Date | Tue, 27 Sep 2016 20:48:34 +0000 |
| |
If the IOMMU advertises IOMMU_CAP_TRANSLATE_MSI choose IOMMU_DOMAIN_MIXED domain type instead of IOMMU_DOMAIN_UNMANAGED to allow transparent allocation of MSI frame IOVAs.
Signed-off-by: Eric Auger <eric.auger@redhat.com> --- drivers/iommu/iommu.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c index 617cb2b..8b4b90c 100644 --- a/drivers/iommu/iommu.c +++ b/drivers/iommu/iommu.c @@ -1069,7 +1069,10 @@ static struct iommu_domain *__iommu_domain_alloc(struct bus_type *bus, struct iommu_domain *iommu_domain_alloc(struct bus_type *bus) { - return __iommu_domain_alloc(bus, IOMMU_DOMAIN_UNMANAGED); + if (bus->iommu_ops->capable(IOMMU_CAP_TRANSLATE_MSI)) + return __iommu_domain_alloc(bus, IOMMU_DOMAIN_MIXED); + else + return __iommu_domain_alloc(bus, IOMMU_DOMAIN_UNMANAGED); } EXPORT_SYMBOL_GPL(iommu_domain_alloc); -- 1.9.1
| |