]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - sound/oss/msnd_pinnacle.c
sound: push BKL into open functions
[net-next-2.6.git] / sound / oss / msnd_pinnacle.c
index a1e3f9671beaffa9ff315f86d6af839102875e27..153d822bf9a3e51413f5df078a56e7552212f5e5 100644 (file)
@@ -756,12 +756,15 @@ static int dev_open(struct inode *inode, struct file *file)
        int minor = iminor(inode);
        int err = 0;
 
+       lock_kernel();
        if (minor == dev.dsp_minor) {
                if ((file->f_mode & FMODE_WRITE &&
                     test_bit(F_AUDIO_WRITE_INUSE, &dev.flags)) ||
                    (file->f_mode & FMODE_READ &&
-                    test_bit(F_AUDIO_READ_INUSE, &dev.flags)))
-                       return -EBUSY;
+                    test_bit(F_AUDIO_READ_INUSE, &dev.flags))) {
+                       err = -EBUSY;
+                       goto out;
+               }
 
                if ((err = dsp_open(file)) >= 0) {
                        dev.nresets = 0;
@@ -782,7 +785,8 @@ static int dev_open(struct inode *inode, struct file *file)
                /* nothing */
        } else
                err = -EINVAL;
-
+out:
+       unlock_kernel();
        return err;
 }