From f2de1ce930eeb835522e94891c0b6a2178d3b78c Mon Sep 17 00:00:00 2001 From: ligd Date: Mon, 19 Dec 2022 20:09:06 +0800 Subject: [PATCH] sim/alsa: don't let siwtch out when open alsa mixer Signed-off-by: ligd --- arch/sim/src/sim/posix/sim_alsa.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/arch/sim/src/sim/posix/sim_alsa.c b/arch/sim/src/sim/posix/sim_alsa.c index f1c3392d823..b9b874db966 100644 --- a/arch/sim/src/sim/posix/sim_alsa.c +++ b/arch/sim/src/sim/posix/sim_alsa.c @@ -772,12 +772,13 @@ out: static int sim_mixer_open(struct sim_audio_s *priv) { snd_mixer_selem_id_t *sid = NULL; + irqstate_t flags = up_irq_save(); int ret; ret = snd_mixer_open(&priv->mixer, 0); if (ret < 0) { - return ret; + goto fail; } ret = snd_mixer_attach(priv->mixer, "default"); @@ -841,9 +842,11 @@ static int sim_mixer_open(struct sim_audio_s *priv) } } + up_irq_restore(flags); return 0; fail: snd_mixer_close(priv->mixer); + up_irq_restore(flags); priv->mixer = NULL; return 0; }