ALSA: pcm: Fix mmap without buffer preallocation
[sfrench/cifs-2.6.git] / sound / core / pcm_native.c
index 6919d2943b9d3a7b780a7900accb0275d7aab9d6..6a2971a7e6a1c6f0b8bac91748b9ccd02d5ed788 100644 (file)
@@ -3675,6 +3675,8 @@ static vm_fault_t snd_pcm_mmap_data_fault(struct vm_fault *vmf)
                return VM_FAULT_SIGBUS;
        if (substream->ops->page)
                page = substream->ops->page(substream, offset);
+       else if (!snd_pcm_get_dma_buf(substream))
+               page = virt_to_page(runtime->dma_area + offset);
        else
                page = snd_sgbuf_get_page(snd_pcm_get_dma_buf(substream), offset);
        if (!page)