--- 6a47672f930aedfe67163ce56a0e5a726470e734 +++ 7c3ce5f379f2ba5b5023170748119a6b0033e763 @@ -309,8 +309,10 @@ snd_emu10k1_alloc_pages(struct snd_emu10 if (snd_BUG_ON(!hdr)) return NULL; + idx = runtime->period_size >= runtime->buffer_size ? + (emu->delay_pcm_irq * 2) : 0; mutex_lock(&hdr->block_mutex); - blk = search_empty(emu, runtime->dma_bytes); + blk = search_empty(emu, runtime->dma_bytes + idx); if (blk == NULL) { mutex_unlock(&hdr->block_mutex); return NULL;