Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1287541 > unrolled thread
| Started by | Qais Yousef <qais.yousef@imgtec.com> |
|---|---|
| First post | 2015-12-09 16:00 +0100 |
| Last post | 2015-12-09 16:10 +0100 |
| Articles | 2 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH v2] MIPS: fix DMA contiguous allocation Qais Yousef <qais.yousef@imgtec.com> - 2015-12-09 16:00 +0100
Re: [PATCH v2] MIPS: fix DMA contiguous allocation Mel Gorman <mgorman@techsingularity.net> - 2015-12-09 16:10 +0100
| From | Qais Yousef <qais.yousef@imgtec.com> |
|---|---|
| Date | 2015-12-09 16:00 +0100 |
| Subject | [PATCH v2] MIPS: fix DMA contiguous allocation |
| Message-ID | <qDOnM-1h9-21@gated-at.bofh.it> |
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 from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | Mel Gorman <mgorman@techsingularity.net> |
|---|---|
| Date | 2015-12-09 16:10 +0100 |
| Message-ID | <qDOxs-1zF-23@gated-at.bofh.it> |
| In reply to | #1287541 |
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 from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web