Added the missing GFP_ATOMIC to page_alloc when called with GFP_DMA.
GFP_KERNEL often results in stalls for ZONE_DMA, so GFP_ATOMIC is more
prgmatic.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
                                            __GFP_NOWARN);
                if (!p || (page_to_pfn(p) & ~(emu->dma_mask >> PAGE_SHIFT)))
                        /* try to allocate from <16MB zone */
-                       p = alloc_page(GFP_DMA |
+                       p = alloc_page(GFP_ATOMIC | GFP_DMA |
                                       __GFP_NORETRY | /* no OOM-killer */
                                       __GFP_NOWARN);
                if (!p) {