diff options
Diffstat (limited to 'arch/x86/kernel/pci-dma.c')
| -rw-r--r-- | arch/x86/kernel/pci-dma.c | 4 | 
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/x86/kernel/pci-dma.c b/arch/x86/kernel/pci-dma.c index 872079a67e4d..f7d0672481fd 100644 --- a/arch/x86/kernel/pci-dma.c +++ b/arch/x86/kernel/pci-dma.c @@ -100,8 +100,10 @@ void *dma_generic_alloc_coherent(struct device *dev, size_t size,  	flag |= __GFP_ZERO;  again:  	page = NULL; -	if (!(flag & GFP_ATOMIC)) +	/* CMA can be used only in the context which permits sleeping */ +	if (flag & __GFP_WAIT)  		page = dma_alloc_from_contiguous(dev, count, get_order(size)); +	/* fallback */  	if (!page)  		page = alloc_pages_node(dev_to_node(dev), flag, get_order(size));  	if (!page)  | 
