Re: [PATCH] MIPS: Fix DMA contiguous allocation

From: Qais Yousef
Date: Wed Dec 09 2015 - 09:32:53 EST


On 12/09/2015 11:36 AM, Mel Gorman wrote:
On Tue, Dec 08, 2015 at 02:19:39PM -0800, Andrew Morton wrote:
On Tue, 8 Dec 2015 10:18:50 +0000 Qais Yousef <qais.yousef@xxxxxxxxxx> wrote:

--- a/arch/mips/mm/dma-default.c
+++ b/arch/mips/mm/dma-default.c
@@ -145,7 +145,7 @@ static void *mips_dma_alloc_coherent(struct device *dev, size_t size,
gfp = massage_gfp_flags(dev, gfp);
- if (IS_ENABLED(CONFIG_DMA_CMA) && !(gfp & GFP_ATOMIC))
+ if (IS_ENABLED(CONFIG_DMA_CMA) && ((gfp & GFP_ATOMIC) != GFP_ATOMIC))
page = dma_alloc_from_contiguous(dev,
count, get_order(size));
if (!page)
hm. It seems that the code is asking "can I do a potentially-sleeping
memory allocation"?

The way to do that under the new regime is

if (IS_ENABLED(CONFIG_DMA_CMA) && gfpflags_allow_blocking(gfp))

Mel, can you please confirm?
Yes, this is the correct way it should be checked. The full flags cover
watermark and kswapd treatment which potentially could be altered by
the caller.


OK thanks both. I'll send a revised version with this change.

Thanks,
Qais
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/