[alsa-devel] [PATCH] pcm: fix return value of snd_pcm_ioplug_sw_params()

Takashi Sakamoto o-takashi at sakamocchi.jp
Wed Jul 13 16:15:23 CEST 2016


In former commits for thread-safe PCM APIs, snd_pcm_ioplug_sw_params() got
0 as its return value, against the original implementation.

This commit fixes it.

Fixes: 54931e5a5455('pcm: Add thread-safety to PCM API')
Signed-off-by: Takashi Sakamoto <o-takashi at sakamocchi.jp>
---
 src/pcm/pcm_ioplug.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/src/pcm/pcm_ioplug.c b/src/pcm/pcm_ioplug.c
index 115d89b..1dc198e 100644
--- a/src/pcm/pcm_ioplug.c
+++ b/src/pcm/pcm_ioplug.c
@@ -434,14 +434,16 @@ static int snd_pcm_ioplug_hw_free(snd_pcm_t *pcm)
 static int snd_pcm_ioplug_sw_params(snd_pcm_t *pcm, snd_pcm_sw_params_t *params)
 {
 	ioplug_priv_t *io = pcm->private_data;
-	int err = 0;
+	int err;
 
-	if (io->data->callback->sw_params) {
-		snd_pcm_unlock(pcm); /* to avoid deadlock */
-		err = io->data->callback->sw_params(io->data, params);
-		snd_pcm_lock(pcm);
-	}
-	return 0;
+	if (!io->data->callback->sw_params)
+		return 0;
+
+	snd_pcm_unlock(pcm); /* to avoid deadlock */
+	err = io->data->callback->sw_params(io->data, params);
+	snd_pcm_lock(pcm);
+
+	return err;
 }
 
 
-- 
2.7.4



More information about the Alsa-devel mailing list