Skip to content

Commit

Permalink
ARM: dma-mapping: use himem for DMA buffers for IOMMU-mapped devices
Browse files Browse the repository at this point in the history
IOMMU can provide access to any memory page, so there is no point in
limiting the allocated pages only to lowmem, once other parts of
dma-mapping subsystem correctly supports himem pages.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
  • Loading branch information
Marek Szyprowski committed Feb 25, 2013
1 parent 9848e48 commit f8669be
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions arch/arm/mm/dma-mapping.c
Original file line number Diff line number Diff line change
Expand Up @@ -1095,12 +1095,17 @@ static struct page **__iommu_alloc_buffer(struct device *dev, size_t size,
return pages;
}

/*
* IOMMU can map any pages, so himem can also be used here
*/
gfp |= __GFP_NOWARN | __GFP_HIGHMEM;

while (count) {
int j, order = __fls(count);

pages[i] = alloc_pages(gfp | __GFP_NOWARN, order);
pages[i] = alloc_pages(gfp, order);
while (!pages[i] && order)
pages[i] = alloc_pages(gfp | __GFP_NOWARN, --order);
pages[i] = alloc_pages(gfp, --order);
if (!pages[i])
goto error;

Expand Down

0 comments on commit f8669be

Please sign in to comment.