Loading drivers/iommu/amd_iommu.c +4 −0 Original line number Diff line number Diff line Loading @@ -3069,6 +3069,10 @@ static int amd_iommu_domain_init(struct iommu_domain *dom) dom->priv = domain; dom->geometry.aperture_start = 0; dom->geometry.aperture_end = ~0ULL; dom->geometry.force_aperture = true; return 0; out_free: Loading drivers/iommu/iommu.c +16 −3 Original line number Diff line number Diff line Loading @@ -348,10 +348,23 @@ EXPORT_SYMBOL_GPL(iommu_device_group); 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; return domain->ops->domain_get_attr(domain, attr, data); ret = domain->ops->domain_get_attr(domain, attr, data); } return ret; } EXPORT_SYMBOL_GPL(iommu_domain_get_attr); Loading include/linux/iommu.h +8 −0 Original line number Diff line number Diff line Loading @@ -37,11 +37,18 @@ struct iommu_domain; typedef int (*iommu_fault_handler_t)(struct iommu_domain *, struct device *, unsigned long, int, void *); struct iommu_domain_geometry { dma_addr_t aperture_start; /* First address that can be mapped */ dma_addr_t aperture_end; /* Last address that can be mapped */ bool force_aperture; /* DMA only allowed in mappable range? */ }; struct iommu_domain { struct iommu_ops *ops; void *priv; iommu_fault_handler_t handler; void *handler_token; struct iommu_domain_geometry geometry; }; #define IOMMU_CAP_CACHE_COHERENCY 0x1 Loading @@ -49,6 +56,7 @@ struct iommu_domain { enum iommu_attr { DOMAIN_ATTR_MAX, DOMAIN_ATTR_GEOMETRY, }; #ifdef CONFIG_IOMMU_API Loading Loading
drivers/iommu/amd_iommu.c +4 −0 Original line number Diff line number Diff line Loading @@ -3069,6 +3069,10 @@ static int amd_iommu_domain_init(struct iommu_domain *dom) dom->priv = domain; dom->geometry.aperture_start = 0; dom->geometry.aperture_end = ~0ULL; dom->geometry.force_aperture = true; return 0; out_free: Loading
drivers/iommu/iommu.c +16 −3 Original line number Diff line number Diff line Loading @@ -348,10 +348,23 @@ EXPORT_SYMBOL_GPL(iommu_device_group); 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; return domain->ops->domain_get_attr(domain, attr, data); ret = domain->ops->domain_get_attr(domain, attr, data); } return ret; } EXPORT_SYMBOL_GPL(iommu_domain_get_attr); Loading
include/linux/iommu.h +8 −0 Original line number Diff line number Diff line Loading @@ -37,11 +37,18 @@ struct iommu_domain; typedef int (*iommu_fault_handler_t)(struct iommu_domain *, struct device *, unsigned long, int, void *); struct iommu_domain_geometry { dma_addr_t aperture_start; /* First address that can be mapped */ dma_addr_t aperture_end; /* Last address that can be mapped */ bool force_aperture; /* DMA only allowed in mappable range? */ }; struct iommu_domain { struct iommu_ops *ops; void *priv; iommu_fault_handler_t handler; void *handler_token; struct iommu_domain_geometry geometry; }; #define IOMMU_CAP_CACHE_COHERENCY 0x1 Loading @@ -49,6 +56,7 @@ struct iommu_domain { enum iommu_attr { DOMAIN_ATTR_MAX, DOMAIN_ATTR_GEOMETRY, }; #ifdef CONFIG_IOMMU_API Loading