* [PATCH v2] MIPS: fix DMA contiguous allocation
@ 2015-12-09 14:54 Qais Yousef
2015-12-09 15:03 ` Mel Gorman
0 siblings, 1 reply; 2+ messages in thread
From: Qais Yousef @ 2015-12-09 14:54 UTC (permalink / raw)
To: linux-mips; +Cc: linux-mm, linux-kernel, ralf, akpm, mgorman, Qais Yousef
Recent changes to how GFP_ATOMIC is defined seems to have broken the condition
to use mips_alloc_from_contiguous() in mips_dma_alloc_coherent().
I couldn't bottom out the exact change but I think it's this one
d0164adc89f6 (mm, page_alloc: distinguish between being unable to sleep,
unwilling to sleep and avoiding waking kswapd)
>From what I see GFP_ATOMIC has multiple bits set and the check for !(gfp
& GFP_ATOMIC) isn't enough.
The reason behind this condition is to check whether we can potentially do
a sleeping memory allocation. Use gfpflags_allow_blocking() instead which
should be more robust.
Signed-off-by: Qais Yousef <qais.yousef@imgtec.com>
---
arch/mips/mm/dma-default.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/mips/mm/dma-default.c b/arch/mips/mm/dma-default.c
index d8117be729a2..730d394ce5f0 100644
--- 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) && gfpflags_allow_blocking(gfp))
page = dma_alloc_from_contiguous(dev,
count, get_order(size));
if (!page)
--
2.1.0
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH v2] MIPS: fix DMA contiguous allocation
2015-12-09 14:54 [PATCH v2] MIPS: fix DMA contiguous allocation Qais Yousef
@ 2015-12-09 15:03 ` Mel Gorman
0 siblings, 0 replies; 2+ messages in thread
From: Mel Gorman @ 2015-12-09 15:03 UTC (permalink / raw)
To: Qais Yousef; +Cc: linux-mips, linux-mm, linux-kernel, ralf, akpm
On Wed, Dec 09, 2015 at 02:54:05PM +0000, Qais Yousef wrote:
> Recent changes to how GFP_ATOMIC is defined seems to have broken the condition
> to use mips_alloc_from_contiguous() in mips_dma_alloc_coherent().
>
> I couldn't bottom out the exact change but I think it's this one
>
> d0164adc89f6 (mm, page_alloc: distinguish between being unable to sleep,
> unwilling to sleep and avoiding waking kswapd)
>
> From what I see GFP_ATOMIC has multiple bits set and the check for !(gfp
> & GFP_ATOMIC) isn't enough.
>
> The reason behind this condition is to check whether we can potentially do
> a sleeping memory allocation. Use gfpflags_allow_blocking() instead which
> should be more robust.
>
> Signed-off-by: Qais Yousef <qais.yousef@imgtec.com>
Acked-by: Mel Gorman <mgorman@techsingularity.net>
--
Mel Gorman
SUSE Labs
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-12-09 15:03 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-12-09 14:54 [PATCH v2] MIPS: fix DMA contiguous allocation Qais Yousef
2015-12-09 15:03 ` Mel Gorman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).