Message ID | 7-v1-8060f06462cc+c0a39-dart_paging_jgg@nvidia.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | iommu: Convert dart & iommufd to the new domain_alloc_paging() | expand |
On Fri, Sep 22, 2023 at 02:07:58PM -0300, Jason Gunthorpe wrote: > Since the IDENTITY and BLOCKED behaviors were moved to global statics all > that remains is the paging domain. Rename to > apple_dart_attach_dev_paging() and remove the left over cruft. > > Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> > --- > drivers/iommu/apple-dart.c | 33 +++++++++++---------------------- > 1 file changed, 11 insertions(+), 22 deletions(-) > > diff --git a/drivers/iommu/apple-dart.c b/drivers/iommu/apple-dart.c > index 376f4c5461e8f7..62efe0aa056f60 100644 > --- a/drivers/iommu/apple-dart.c > +++ b/drivers/iommu/apple-dart.c > @@ -650,8 +650,8 @@ static int apple_dart_domain_add_streams(struct apple_dart_domain *domain, > true); > } > > -static int apple_dart_attach_dev(struct iommu_domain *domain, > - struct device *dev) > +static int apple_dart_attach_dev_paging(struct iommu_domain *domain, > + struct device *dev) > { > int ret, i; > struct apple_dart_stream_map *stream_map; > @@ -665,21 +665,13 @@ static int apple_dart_attach_dev(struct iommu_domain *domain, > if (ret) > return ret; > > - switch (domain->type) { > - case IOMMU_DOMAIN_DMA: > - case IOMMU_DOMAIN_UNMANAGED: > - ret = apple_dart_domain_add_streams(dart_domain, cfg); > - if (ret) > - return ret; > + ret = apple_dart_domain_add_streams(dart_domain, cfg); > + if (ret) > + return ret; > > - for_each_stream_map(i, cfg, stream_map) > - apple_dart_setup_translation(dart_domain, stream_map); > - break; > - default: > - return -EINVAL; > - } > - > - return ret; > + for_each_stream_map(i, cfg, stream_map) > + apple_dart_setup_translation(dart_domain, stream_map); > + return 0; > } > > static int apple_dart_attach_dev_identity(struct iommu_domain *domain, > @@ -755,13 +747,10 @@ static void apple_dart_release_device(struct device *dev) > kfree(cfg); > } > > -static struct iommu_domain *apple_dart_domain_alloc(unsigned int type) > +static struct iommu_domain *apple_dart_domain_alloc_paging(struct device *dev) > { > struct apple_dart_domain *dart_domain; > > - if (type != IOMMU_DOMAIN_DMA && type != IOMMU_DOMAIN_UNMANAGED) > - return NULL; > - > dart_domain = kzalloc(sizeof(*dart_domain), GFP_KERNEL); > if (!dart_domain) > return NULL; > @@ -982,7 +971,7 @@ static void apple_dart_get_resv_regions(struct device *dev, > static const struct iommu_ops apple_dart_iommu_ops = { > .identity_domain = &apple_dart_identity_domain, > .blocked_domain = &apple_dart_blocked_domain, > - .domain_alloc = apple_dart_domain_alloc, > + .domain_alloc_paging = apple_dart_domain_alloc_paging, > .probe_device = apple_dart_probe_device, > .release_device = apple_dart_release_device, > .device_group = apple_dart_device_group, > @@ -992,7 +981,7 @@ static const struct iommu_ops apple_dart_iommu_ops = { > .pgsize_bitmap = -1UL, /* Restricted during dart probe */ > .owner = THIS_MODULE, > .default_domain_ops = &(const struct iommu_domain_ops) { > - .attach_dev = apple_dart_attach_dev, > + .attach_dev = apple_dart_attach_dev_paging, > .map_pages = apple_dart_map_pages, > .unmap_pages = apple_dart_unmap_pages, > .flush_iotlb_all = apple_dart_flush_iotlb_all, > -- > 2.42.0 Reviewed-by: Janne Grunau <j@jannau.net> best regards Janne
diff --git a/drivers/iommu/apple-dart.c b/drivers/iommu/apple-dart.c index 376f4c5461e8f7..62efe0aa056f60 100644 --- a/drivers/iommu/apple-dart.c +++ b/drivers/iommu/apple-dart.c @@ -650,8 +650,8 @@ static int apple_dart_domain_add_streams(struct apple_dart_domain *domain, true); } -static int apple_dart_attach_dev(struct iommu_domain *domain, - struct device *dev) +static int apple_dart_attach_dev_paging(struct iommu_domain *domain, + struct device *dev) { int ret, i; struct apple_dart_stream_map *stream_map; @@ -665,21 +665,13 @@ static int apple_dart_attach_dev(struct iommu_domain *domain, if (ret) return ret; - switch (domain->type) { - case IOMMU_DOMAIN_DMA: - case IOMMU_DOMAIN_UNMANAGED: - ret = apple_dart_domain_add_streams(dart_domain, cfg); - if (ret) - return ret; + ret = apple_dart_domain_add_streams(dart_domain, cfg); + if (ret) + return ret; - for_each_stream_map(i, cfg, stream_map) - apple_dart_setup_translation(dart_domain, stream_map); - break; - default: - return -EINVAL; - } - - return ret; + for_each_stream_map(i, cfg, stream_map) + apple_dart_setup_translation(dart_domain, stream_map); + return 0; } static int apple_dart_attach_dev_identity(struct iommu_domain *domain, @@ -755,13 +747,10 @@ static void apple_dart_release_device(struct device *dev) kfree(cfg); } -static struct iommu_domain *apple_dart_domain_alloc(unsigned int type) +static struct iommu_domain *apple_dart_domain_alloc_paging(struct device *dev) { struct apple_dart_domain *dart_domain; - if (type != IOMMU_DOMAIN_DMA && type != IOMMU_DOMAIN_UNMANAGED) - return NULL; - dart_domain = kzalloc(sizeof(*dart_domain), GFP_KERNEL); if (!dart_domain) return NULL; @@ -982,7 +971,7 @@ static void apple_dart_get_resv_regions(struct device *dev, static const struct iommu_ops apple_dart_iommu_ops = { .identity_domain = &apple_dart_identity_domain, .blocked_domain = &apple_dart_blocked_domain, - .domain_alloc = apple_dart_domain_alloc, + .domain_alloc_paging = apple_dart_domain_alloc_paging, .probe_device = apple_dart_probe_device, .release_device = apple_dart_release_device, .device_group = apple_dart_device_group, @@ -992,7 +981,7 @@ static const struct iommu_ops apple_dart_iommu_ops = { .pgsize_bitmap = -1UL, /* Restricted during dart probe */ .owner = THIS_MODULE, .default_domain_ops = &(const struct iommu_domain_ops) { - .attach_dev = apple_dart_attach_dev, + .attach_dev = apple_dart_attach_dev_paging, .map_pages = apple_dart_map_pages, .unmap_pages = apple_dart_unmap_pages, .flush_iotlb_all = apple_dart_flush_iotlb_all,
Since the IDENTITY and BLOCKED behaviors were moved to global statics all that remains is the paging domain. Rename to apple_dart_attach_dev_paging() and remove the left over cruft. Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> --- drivers/iommu/apple-dart.c | 33 +++++++++++---------------------- 1 file changed, 11 insertions(+), 22 deletions(-)