dma-mapping: introduce a dma_common_find_pages helper
A helper to find the backing page array based on a virtual address. This also ensures we do the same vm_flags check everywhere instead of slightly different or missing ones in a few places. Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
@@ -1439,18 +1439,13 @@ static struct page **__atomic_get_pages(void *addr)
|
||||
|
||||
static struct page **__iommu_get_pages(void *cpu_addr, unsigned long attrs)
|
||||
{
|
||||
struct vm_struct *area;
|
||||
|
||||
if (__in_atomic_pool(cpu_addr, PAGE_SIZE))
|
||||
return __atomic_get_pages(cpu_addr);
|
||||
|
||||
if (attrs & DMA_ATTR_NO_KERNEL_MAPPING)
|
||||
return cpu_addr;
|
||||
|
||||
area = find_vm_area(cpu_addr);
|
||||
if (area && (area->flags & VM_DMA_COHERENT))
|
||||
return area->pages;
|
||||
return NULL;
|
||||
return dma_common_find_pages(cpu_addr);
|
||||
}
|
||||
|
||||
static void *__iommu_alloc_simple(struct device *dev, size_t size, gfp_t gfp,
|
||||
|
Reference in New Issue
Block a user