From bbdc1b7dbe41578da7c9a6266cf450abe97e4ca7 Mon Sep 17 00:00:00 2001 From: OGAWA Hirofumi Date: Thu, 6 Apr 2006 19:42:40 +0200 Subject: [ALSA] pcm_oss: fix snd_pcm_oss_release() oops Modules: ALSA<-OSS emulation Fix Oops due to a typo in snd_pcm_oss.c. Signed-off-by: OGAWA Hirofumi Signed-off-by: Takashi Iwai --- sound/core/oss/pcm_oss.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'sound/core/oss/pcm_oss.c') diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c index 91114c7aeff5..7c0c4e1d6943 100644 --- a/sound/core/oss/pcm_oss.c +++ b/sound/core/oss/pcm_oss.c @@ -1760,7 +1760,7 @@ static int snd_pcm_oss_open_file(struct file *file, snd_pcm_oss_init_substream(substream, &setup[idx], minor); } - if (! pcm_oss_file->streams[0] && pcm_oss_file->streams[1]) { + if (!pcm_oss_file->streams[0] && !pcm_oss_file->streams[1]) { snd_pcm_oss_release_file(pcm_oss_file); return -EINVAL; } -- cgit v1.2.2 From 1576274d30286dd048967176dc8e75e192051ff5 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Thu, 6 Apr 2006 19:47:42 +0200 Subject: [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 --- sound/core/oss/pcm_oss.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'sound/core/oss/pcm_oss.c') diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c index 7c0c4e1d6943..c5978d6c6080 100644 --- a/sound/core/oss/pcm_oss.c +++ b/sound/core/oss/pcm_oss.c @@ -1682,7 +1682,7 @@ static void snd_pcm_oss_init_substream(struct snd_pcm_substream *substream, substream->oss.setup = *setup; if (setup->nonblock) substream->ffile->f_flags |= O_NONBLOCK; - else + else if (setup->block) substream->ffile->f_flags &= ~O_NONBLOCK; runtime = substream->runtime; runtime->oss.params = 1; @@ -1757,6 +1757,7 @@ static int snd_pcm_oss_open_file(struct file *file, } pcm_oss_file->streams[idx] = substream; + substream->file = pcm_oss_file; snd_pcm_oss_init_substream(substream, &setup[idx], minor); } @@ -1809,7 +1810,7 @@ static int snd_pcm_oss_open(struct inode *inode, struct file *file) err = -EFAULT; goto __error; } - memset(setup, 0, sizeof(*setup)); + memset(setup, 0, sizeof(setup)); if (file->f_mode & FMODE_WRITE) snd_pcm_oss_look_for_setup(pcm, SNDRV_PCM_STREAM_PLAYBACK, task_name, &setup[0]); -- cgit v1.2.2