From ce7845feba9ecbacd72fb04787bb86b82bdb0e54 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 17 Nov 2005 10:44:51 +0100 Subject: [PATCH] --- yaml --- r: 15944 b: refs/heads/master c: e017fa5772cd2536b2b2fb210f5a6e86cceaa633 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/sound/pci/emu10k1/emupcm.c | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index ab799139fdd6..778a007483ab 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 89173bd41439bc6304e3e20f742e52266208ccad +refs/heads/master: e017fa5772cd2536b2b2fb210f5a6e86cceaa633 diff --git a/trunk/sound/pci/emu10k1/emupcm.c b/trunk/sound/pci/emu10k1/emupcm.c index 90d3a0b50d17..166f7c4d28c9 100644 --- a/trunk/sound/pci/emu10k1/emupcm.c +++ b/trunk/sound/pci/emu10k1/emupcm.c @@ -405,15 +405,17 @@ static int snd_emu10k1_playback_hw_params(snd_pcm_substream_t * substream, if ((err = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params))) < 0) return err; if (err > 0) { /* change */ - snd_util_memblk_t *memblk; + int mapped; if (epcm->memblk != NULL) snd_emu10k1_free_pages(emu, epcm->memblk); - memblk = snd_emu10k1_alloc_pages(emu, substream); - if ((epcm->memblk = memblk) == NULL || ((emu10k1_memblk_t *)memblk)->mapped_page < 0) { - epcm->start_addr = 0; + epcm->memblk = snd_emu10k1_alloc_pages(emu, substream); + epcm->start_addr = 0; + if (! epcm->memblk) return -ENOMEM; - } - epcm->start_addr = ((emu10k1_memblk_t *)memblk)->mapped_page << PAGE_SHIFT; + mapped = ((emu10k1_memblk_t *)epcm->memblk)->mapped_page; + if (mapped < 0) + return -ENOMEM; + epcm->start_addr = mapped << PAGE_SHIFT; } return 0; }