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@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; }