From 094435d41df823dde850e193add57534a5b709c9 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Tue, 29 Sep 2015 12:57:42 +0200 Subject: ALSA: pcm: Avoid double hw_free calls at releasing a stream snd_pcm_release_substream() always calls hw_free op when the stream was opened. This is superfluous in most cases because it's been already released via explicit hw_free ioctl. Although this double call is usually OK as this callback should be written to be called multiple times, it's better to avoid superfluous calls. Reported-by: Vinod Koul Tested-by: Jeeja Kp Signed-off-by: Takashi Iwai --- sound/core/pcm_native.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'sound/core') diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c index 4863af5..13988701 100644 --- a/sound/core/pcm_native.c +++ b/sound/core/pcm_native.c @@ -2227,7 +2227,8 @@ void snd_pcm_release_substream(struct snd_pcm_substream *substream) snd_pcm_drop(substream); if (substream->hw_opened) { - if (substream->ops->hw_free != NULL) + if (substream->ops->hw_free && + substream->runtime->status->state != SNDRV_PCM_STATE_OPEN) substream->ops->hw_free(substream); substream->ops->close(substream); substream->hw_opened = 0; -- cgit v1.1