From: Takashi Iwai Date: Tue, 31 May 2016 10:48:40 +0000 (+0200) Subject: pcm: dmix: Return error when slave is in OPEN or DISCONNECTED X-Git-Tag: v1.1.2~120 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=614ce73d3d6eba13946f863bec24981d355902e1;p=alsa-lib.git pcm: dmix: Return error when slave is in OPEN or DISCONNECTED A slave PCM in OPEN or DISCONNECTED state can't be used properly at all, so the best option is to return -EBADFD error. Signed-off-by: Takashi Iwai --- diff --git a/src/pcm/pcm_direct.c b/src/pcm/pcm_direct.c index fbf9a592..21f98e7a 100644 --- a/src/pcm/pcm_direct.c +++ b/src/pcm/pcm_direct.c @@ -822,12 +822,14 @@ int snd_pcm_direct_prepare(snd_pcm_t *pcm) case SND_PCM_STATE_SETUP: case SND_PCM_STATE_XRUN: case SND_PCM_STATE_SUSPENDED: - case SND_PCM_STATE_DISCONNECTED: err = snd_pcm_prepare(dmix->spcm); if (err < 0) return err; snd_pcm_start(dmix->spcm); break; + case SND_PCM_STATE_OPEN: + case SND_PCM_STATE_DISCONNECTED: + return -EBADFD; } snd_pcm_direct_check_interleave(dmix, pcm); dmix->state = SND_PCM_STATE_PREPARED;