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