aboutsummaryrefslogtreecommitdiffstats
path: root/sound/core/pcm_native.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2006-04-06 13:47:42 -0400
committerJaroslav Kysela <perex@suse.cz>2006-04-12 05:34:04 -0400
commit1576274d30286dd048967176dc8e75e192051ff5 (patch)
tree5b8304905185ec023106afc4d53c3d77f736cd76 /sound/core/pcm_native.c
parentbbdc1b7dbe41578da7c9a6266cf450abe97e4ca7 (diff)
[ALSA] Fix Oops of PCM OSS emulation
Modules: PCM Midlevel,ALSA<-OSS emulation Fix Oops of PCM OSS emulation occuring when multiple playback is used. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/core/pcm_native.c')
-rw-r--r--sound/core/pcm_native.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
index 964e4c47a7f..0860c5a8450 100644
--- a/sound/core/pcm_native.c
+++ b/sound/core/pcm_native.c
@@ -2007,14 +2007,16 @@ static void pcm_release_private(struct snd_pcm_substream *substream)
2007void snd_pcm_release_substream(struct snd_pcm_substream *substream) 2007void snd_pcm_release_substream(struct snd_pcm_substream *substream)
2008{ 2008{
2009 snd_pcm_drop(substream); 2009 snd_pcm_drop(substream);
2010 if (substream->pcm_release)
2011 substream->pcm_release(substream);
2012 if (substream->hw_opened) { 2010 if (substream->hw_opened) {
2013 if (substream->ops->hw_free != NULL) 2011 if (substream->ops->hw_free != NULL)
2014 substream->ops->hw_free(substream); 2012 substream->ops->hw_free(substream);
2015 substream->ops->close(substream); 2013 substream->ops->close(substream);
2016 substream->hw_opened = 0; 2014 substream->hw_opened = 0;
2017 } 2015 }
2016 if (substream->pcm_release) {
2017 substream->pcm_release(substream);
2018 substream->pcm_release = NULL;
2019 }
2018 snd_pcm_detach_substream(substream); 2020 snd_pcm_detach_substream(substream);
2019} 2021}
2020 2022