diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c index 336406bcb59e2cd3ded45db70449d390deac2850..d5443eeb8b6338a2a51d7a1c158e4d87c0184e16 100644 --- a/sound/core/pcm_native.c +++ b/sound/core/pcm_native.c @@ -2594,7 +2594,8 @@ void snd_pcm_release_substream(struct snd_pcm_substream *substream) snd_pcm_drop(substream); if (substream->hw_opened) { - do_hw_free(substream); + if (substream->runtime->status->state != SNDRV_PCM_STATE_OPEN) + do_hw_free(substream); substream->ops->close(substream); substream->hw_opened = 0; }