]> git.hungrycats.org Git - linux/commitdiff
ALSA CVS update
authorJaroslav Kysela <perex@suse.cz>
Wed, 20 Aug 2003 23:31:54 +0000 (01:31 +0200)
committerJaroslav Kysela <perex@suse.cz>
Wed, 20 Aug 2003 23:31:54 +0000 (01:31 +0200)
D:2003/08/16 10:54:09
A:Jaroslav Kysela <perex@suse.cz>
F:core/oss/pcm_oss.c:1.45->1.46
L:Fixed open for O_RDWR when capture is not available

sound/core/oss/pcm_oss.c

index 257ad284120f9bf09b17b6b8b70f4a1f14a30249..50ffd13db2a846bd2e6487f3454101ae9d375a69 100644 (file)
@@ -1614,8 +1614,12 @@ static int snd_pcm_oss_open_file(struct file *file,
        if ((f_mode & FMODE_READ) && !(csetup && csetup->disable)) {
                if ((err = snd_pcm_open_substream(pcm, SNDRV_PCM_STREAM_CAPTURE, 
                                               &csubstream)) < 0) {
-                       snd_pcm_oss_release_file(pcm_oss_file);
-                       return err;
+                       if (!(f_mode & FMODE_WRITE) || err != -ENODEV) {
+                               snd_pcm_oss_release_file(pcm_oss_file);
+                               return err;
+                       } else {
+                               csubstream = NULL;
+                       }
                }
                pcm_oss_file->streams[SNDRV_PCM_STREAM_CAPTURE] = csubstream;
        }