Re: [PATCH] iommu/dma: Apply dma_{alloc,free}_contiguous functions

Robin Murphy
2019-06-14T10:42:59Z

On 06/06/2019 07:28, Christoph Hellwig wrote:
> Looks fine to me. Robin, any comments?

AFAICS this looks like the obvious conversion, so... no? :)

> On Mon, Jun 03, 2019 at 03:52:59PM -0700, Nicolin Chen wrote:
>> This patch replaces dma_{alloc,release}_from_contiguous() with
>> dma_{alloc,free}_contiguous() to simplify those function calls.

Acked-by: Robin Murphy <robin.murphy@arm.com>

>> Signed-off-by: Nicolin Chen <nicoleotsuka@gmail.com>
>> ---
>> drivers/iommu/dma-iommu.c | 14 ++++----------
>> 1 file changed, 4 insertions(+), 10 deletions(-)
>>
>> diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
>> index 0cd49c2d3770..cc3d39dbbe1a 100644
>> --- a/drivers/iommu/dma-iommu.c
>> +++ b/drivers/iommu/dma-iommu.c
>> @@ -951,8 +951,8 @@ static void __iommu_dma_free(struct device *dev, size_t size, void *cpu_addr)
>>
>> if (pages)
>> __iommu_dma_free_pages(pages, count);
>> - if (page && !dma_release_from_contiguous(dev, page, count))
>> - __free_pages(page, get_order(alloc_size));
>> + if (page)
>> + dma_free_contiguous(dev, page, alloc_size);
>> }
>>
>> static void iommu_dma_free(struct device *dev, size_t size, void *cpu_addr,
>> @@ -970,12 +970,7 @@ static void *iommu_dma_alloc_pages(struct device *dev, size_t size,
>> struct page *page = NULL;
>> void *cpu_addr;
>>
>> - if (gfpflags_allow_blocking(gfp))
>> - page = dma_alloc_from_contiguous(dev, alloc_size >> PAGE_SHIFT,
>> - get_order(alloc_size),
>> - gfp & __GFP_NOWARN);
>> - if (!page)
>> - page = alloc_pages(gfp, get_order(alloc_size));
>> + page = dma_alloc_contiguous(dev, alloc_size, gfp);
>> if (!page)
>> return NULL;
>>
>> @@ -997,8 +992,7 @@ static void *iommu_dma_alloc_pages(struct device *dev, size_t size,
>> memset(cpu_addr, 0, alloc_size);
>> return cpu_addr;
>> out_free_pages:
>> - if (!dma_release_from_contiguous(dev, page, alloc_size >> PAGE_SHIFT))
>> - __free_pages(page, get_order(alloc_size));
>> + dma_free_contiguous(dev, page, alloc_size);
>> return NULL;
>> }
>>
>> --
>> 2.17.1
> ---end quoted text---