[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190409172652.GF14679@lst.de>
Date: Tue, 9 Apr 2019 19:26:52 +0200
From: Christoph Hellwig <hch@....de>
To: Robin Murphy <robin.murphy@....com>
Cc: Christoph Hellwig <hch@....de>, Joerg Roedel <joro@...tes.org>,
Catalin Marinas <catalin.marinas@....com>,
Will Deacon <will.deacon@....com>,
Tom Lendacky <thomas.lendacky@....com>,
iommu@...ts.linux-foundation.org,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 09/21] dma-iommu: refactor iommu_dma_get_sgtable
On Tue, Apr 09, 2019 at 04:49:30PM +0100, Robin Murphy wrote:
>> *cpu_addr,
>> + size_t size)
>> +{
>> + unsigned int count = PAGE_ALIGN(size) >> PAGE_SHIFT;
>> + struct vm_struct *area = find_vm_area(cpu_addr);
>> +
>> + if (WARN_ON(!area || !area->pages))
>> + return -ENXIO;
>> + return sg_alloc_table_from_pages(sgt, area->pages, count, 0, size,
>> + GFP_KERNEL);
>> +}
>> +
>
> Is this complex enough to deserve being broken out? Really I'd prefer to
> keep get_sgtable() as small and consolidated as possible so that it's that
> much easier to delete in future :)
Well, it is logically separate, and this keeps it tidy. But I agree
with the long term goal of killing off this awkward API that should
never have been added.
>
> I guess there is a certain symmetry with mmap(), so if that's the angle
> you're dead set on, could we at least keep this guy down where
> __iommu_dma_get_sgtable_page() was?
It is up there so that we can reduce the number of ifdef blocks for
dma remapping later on.
Powered by blists - more mailing lists