diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2012-09-06 19:48:59 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2012-09-06 19:48:59 -0400 |
commit | fff34b3412b9401a76ba9d021db1bd91cb0e02b6 (patch) | |
tree | 870ed2d1555004e7939d15b5099017aae61c97b8 /sound/pci/emu10k1/memory.c | |
parent | 28e1e58fb668e262648fb8ee8a24154633f40507 (diff) | |
parent | 636802ef96eebe279b22ad9f9dacfe29291e45c7 (diff) |
Merge branch 'merge' into next
Brings in various bug fixes from 3.6-rcX
Diffstat (limited to 'sound/pci/emu10k1/memory.c')
-rw-r--r-- | sound/pci/emu10k1/memory.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sound/pci/emu10k1/memory.c b/sound/pci/emu10k1/memory.c index 4f502a2bdc3c..0a436626182b 100644 --- a/sound/pci/emu10k1/memory.c +++ b/sound/pci/emu10k1/memory.c | |||
@@ -326,7 +326,10 @@ snd_emu10k1_alloc_pages(struct snd_emu10k1 *emu, struct snd_pcm_substream *subst | |||
326 | for (page = blk->first_page; page <= blk->last_page; page++, idx++) { | 326 | for (page = blk->first_page; page <= blk->last_page; page++, idx++) { |
327 | unsigned long ofs = idx << PAGE_SHIFT; | 327 | unsigned long ofs = idx << PAGE_SHIFT; |
328 | dma_addr_t addr; | 328 | dma_addr_t addr; |
329 | addr = snd_pcm_sgbuf_get_addr(substream, ofs); | 329 | if (ofs >= runtime->dma_bytes) |
330 | addr = emu->silent_page.addr; | ||
331 | else | ||
332 | addr = snd_pcm_sgbuf_get_addr(substream, ofs); | ||
330 | if (! is_valid_page(emu, addr)) { | 333 | if (! is_valid_page(emu, addr)) { |
331 | printk(KERN_ERR "emu: failure page = %d\n", idx); | 334 | printk(KERN_ERR "emu: failure page = %d\n", idx); |
332 | mutex_unlock(&hdr->block_mutex); | 335 | mutex_unlock(&hdr->block_mutex); |