RE: [PATCH v8 2/5] iommu/dma: Add a new dma_map_ops of get_merge_boundary()
Hello! > From: Sergei Shtylyov, Sent: Tuesday, July 23, 2019 5:17 PM > > Hello! > > On 23.07.2019 8:26, Yoshihiro Shimoda wrote: > > > This patch adds a new dma_map_ops of get_merge_boundary() to > > expose the DMA merge boundary if the domain type is IOMMU_DOMAIN_DMA. > > > > Signed-off-by: Yoshihiro Shimoda > > --- > > drivers/iommu/dma-iommu.c | 11 +++ > > 1 file changed, 11 insertions(+) > > > > diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c > > index a7f9c3e..f3e5f2b 100644 > > --- a/drivers/iommu/dma-iommu.c > > +++ b/drivers/iommu/dma-iommu.c > > @@ -1085,6 +1085,16 @@ static int iommu_dma_get_sgtable(struct device *dev, > > struct sg_table *sgt, > > return ret; > > } > > > > +static unsigned long iommu_dma_get_merge_boundary(struct device *dev) > > +{ > > + struct iommu_domain *domain = iommu_get_dma_domain(dev); > > + > > + if (domain->type != IOMMU_DOMAIN_DMA) > > + return 0; /* can't merge */ > > + > > + return (1 << __ffs(domain->pgsize_bitmap)) - 1; > > Not 1UL? Thank you for your review! I'll fix it. Best regards, Yoshihiro Shimoda > > +} > > + > > static const struct dma_map_ops iommu_dma_ops = { > > .alloc = iommu_dma_alloc, > > .free = iommu_dma_free, > [...] > > MBR, Sergei ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
Re: [PATCH v8 2/5] iommu/dma: Add a new dma_map_ops of get_merge_boundary()
On Tue, Jul 23, 2019 at 11:17:19AM +0300, Sergei Shtylyov wrote: > Hello! > > On 23.07.2019 8:26, Yoshihiro Shimoda wrote: > > > This patch adds a new dma_map_ops of get_merge_boundary() to > > expose the DMA merge boundary if the domain type is IOMMU_DOMAIN_DMA. > > > > Signed-off-by: Yoshihiro Shimoda Sergei's comment notwithstanding, Reviewed-by: Simon Horman > > --- > > drivers/iommu/dma-iommu.c | 11 +++ > > 1 file changed, 11 insertions(+) > > > > diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c > > index a7f9c3e..f3e5f2b 100644 > > --- a/drivers/iommu/dma-iommu.c > > +++ b/drivers/iommu/dma-iommu.c > > @@ -1085,6 +1085,16 @@ static int iommu_dma_get_sgtable(struct device *dev, > > struct sg_table *sgt, > > return ret; > > } > > +static unsigned long iommu_dma_get_merge_boundary(struct device *dev) > > +{ > > + struct iommu_domain *domain = iommu_get_dma_domain(dev); > > + > > + if (domain->type != IOMMU_DOMAIN_DMA) > > + return 0; /* can't merge */ > > + > > + return (1 << __ffs(domain->pgsize_bitmap)) - 1; > >Not 1UL? > > > +} > > + > > static const struct dma_map_ops iommu_dma_ops = { > > .alloc = iommu_dma_alloc, > > .free = iommu_dma_free, > [...] > > MBR, Sergei > ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
Re: [PATCH v8 2/5] iommu/dma: Add a new dma_map_ops of get_merge_boundary()
Hello! On 23.07.2019 8:26, Yoshihiro Shimoda wrote: This patch adds a new dma_map_ops of get_merge_boundary() to expose the DMA merge boundary if the domain type is IOMMU_DOMAIN_DMA. Signed-off-by: Yoshihiro Shimoda --- drivers/iommu/dma-iommu.c | 11 +++ 1 file changed, 11 insertions(+) diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c index a7f9c3e..f3e5f2b 100644 --- a/drivers/iommu/dma-iommu.c +++ b/drivers/iommu/dma-iommu.c @@ -1085,6 +1085,16 @@ static int iommu_dma_get_sgtable(struct device *dev, struct sg_table *sgt, return ret; } +static unsigned long iommu_dma_get_merge_boundary(struct device *dev) +{ + struct iommu_domain *domain = iommu_get_dma_domain(dev); + + if (domain->type != IOMMU_DOMAIN_DMA) + return 0; /* can't merge */ + + return (1 << __ffs(domain->pgsize_bitmap)) - 1; Not 1UL? +} + static const struct dma_map_ops iommu_dma_ops = { .alloc = iommu_dma_alloc, .free = iommu_dma_free, [...] MBR, Sergei ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
[PATCH v8 2/5] iommu/dma: Add a new dma_map_ops of get_merge_boundary()
This patch adds a new dma_map_ops of get_merge_boundary() to expose the DMA merge boundary if the domain type is IOMMU_DOMAIN_DMA. Signed-off-by: Yoshihiro Shimoda --- drivers/iommu/dma-iommu.c | 11 +++ 1 file changed, 11 insertions(+) diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c index a7f9c3e..f3e5f2b 100644 --- a/drivers/iommu/dma-iommu.c +++ b/drivers/iommu/dma-iommu.c @@ -1085,6 +1085,16 @@ static int iommu_dma_get_sgtable(struct device *dev, struct sg_table *sgt, return ret; } +static unsigned long iommu_dma_get_merge_boundary(struct device *dev) +{ + struct iommu_domain *domain = iommu_get_dma_domain(dev); + + if (domain->type != IOMMU_DOMAIN_DMA) + return 0; /* can't merge */ + + return (1 << __ffs(domain->pgsize_bitmap)) - 1; +} + static const struct dma_map_ops iommu_dma_ops = { .alloc = iommu_dma_alloc, .free = iommu_dma_free, @@ -1100,6 +1110,7 @@ static const struct dma_map_ops iommu_dma_ops = { .sync_sg_for_device = iommu_dma_sync_sg_for_device, .map_resource = iommu_dma_map_resource, .unmap_resource = iommu_dma_unmap_resource, + .get_merge_boundary = iommu_dma_get_merge_boundary, }; /* -- 2.7.4 ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu