perf tools: Fix build error on read only source.
[sfrench/cifs-2.6.git] / sound / sound_core.c
index 7c2d677a2df529d1055d3727f3158f2cbda8e73b..cb61317df509690fd597cb0385647af63d5a0e06 100644 (file)
@@ -576,8 +576,6 @@ static int soundcore_open(struct inode *inode, struct file *file)
        struct sound_unit *s;
        const struct file_operations *new_fops = NULL;
 
-       lock_kernel ();
-
        chain=unit&0x0F;
        if(chain==4 || chain==5)        /* dsp/audio/dsp16 */
        {
@@ -630,18 +628,19 @@ static int soundcore_open(struct inode *inode, struct file *file)
                const struct file_operations *old_fops = file->f_op;
                file->f_op = new_fops;
                spin_unlock(&sound_loader_lock);
-               if(file->f_op->open)
+
+               if (file->f_op->open)
                        err = file->f_op->open(inode,file);
+
                if (err) {
                        fops_put(file->f_op);
                        file->f_op = fops_get(old_fops);
                }
+
                fops_put(old_fops);
-               unlock_kernel();
                return err;
        }
        spin_unlock(&sound_loader_lock);
-       unlock_kernel();
        return -ENODEV;
 }