Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c06e004c authored by Russell King's avatar Russell King
Browse files

ARM: Use GFP_DMA only for masks _less_ than 32-bit



We were using GFP_DMA for masks other than 0xffffffff, which is
wrong when some masks are initialized to 0xffffffffffffffff.
This caused such masks to obtain memory from the precious DMA
pool.

Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent ce63e6bd
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -205,7 +205,7 @@ __dma_alloc(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp,

	order = get_order(size);

	if (mask != 0xffffffff)
	if (mask < 0xffffffffULL)
		gfp |= GFP_DMA;

	page = alloc_pages(gfp, order);
@@ -289,7 +289,7 @@ __dma_alloc(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp,
	if (!mask)
		goto error;

	if (mask != 0xffffffff)
	if (mask < 0xffffffffULL)
		gfp |= GFP_DMA;
	virt = kmalloc(size, gfp);
	if (!virt)