From 614ce73d3d6eba13946f863bec24981d355902e1 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Tue, 31 May 2016 12:48:40 +0200 Subject: [PATCH] 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 --- src/pcm/pcm_direct.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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; -- 2.47.3