Merge branches 'iommu/fixes', 'x86/amd', 'groups', 'arm/tegra' and 'api/domain-attr...
[platform/adaptation/renesas_rcar/renesas_kernel.git] / drivers / iommu / iommu.c
index 0e928ac..ddbdaca 100644 (file)
@@ -862,3 +862,36 @@ static int __init iommu_init(void)
        return 0;
 }
 subsys_initcall(iommu_init);
+
+int iommu_domain_get_attr(struct iommu_domain *domain,
+                         enum iommu_attr attr, void *data)
+{
+       struct iommu_domain_geometry *geometry;
+       int ret = 0;
+
+       switch (attr) {
+       case DOMAIN_ATTR_GEOMETRY:
+               geometry  = data;
+               *geometry = domain->geometry;
+
+               break;
+       default:
+               if (!domain->ops->domain_get_attr)
+                       return -EINVAL;
+
+               ret = domain->ops->domain_get_attr(domain, attr, data);
+       }
+
+       return ret;
+}
+EXPORT_SYMBOL_GPL(iommu_domain_get_attr);
+
+int iommu_domain_set_attr(struct iommu_domain *domain,
+                         enum iommu_attr attr, void *data)
+{
+       if (!domain->ops->domain_set_attr)
+               return -EINVAL;
+
+       return domain->ops->domain_set_attr(domain, attr, data);
+}
+EXPORT_SYMBOL_GPL(iommu_domain_set_attr);