diff --git a/sound/pci/emu10k1/memory.c b/sound/pci/emu10k1/memory.c
index 128eaca17a61aed8c57922917444b74418d8618c..42943b4fcb7b675d4db0446768ac47221c818975 100644
--- a/sound/pci/emu10k1/memory.c
+++ b/sound/pci/emu10k1/memory.c
@@ -466,7 +466,7 @@ static int synth_alloc_pages(struct snd_emu10k1 *emu, struct snd_emu10k1_memblk
 					    __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) {