]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/media/video/videodev.c
Merge commit 'v2.6.26' into bkl-removal
[linux-2.6-omap-h63xx.git] / drivers / media / video / videodev.c
index 67a661cf5219bc65e225f304d5872579c034313b..7649860a388d0da519dbbb4d0def8238e3b80ac6 100644 (file)
@@ -36,6 +36,7 @@
 #include <linux/init.h>
 #include <linux/kmod.h>
 #include <linux/slab.h>
+#include <linux/smp_lock.h>
 #include <asm/uaccess.h>
 #include <asm/system.h>
 
@@ -442,6 +443,7 @@ static int video_open(struct inode *inode, struct file *file)
 
        if(minor>=VIDEO_NUM_DEVICES)
                return -ENODEV;
+       lock_kernel();
        mutex_lock(&videodev_lock);
        vfl=video_device[minor];
        if(vfl==NULL) {
@@ -451,6 +453,7 @@ static int video_open(struct inode *inode, struct file *file)
                vfl=video_device[minor];
                if (vfl==NULL) {
                        mutex_unlock(&videodev_lock);
+                       unlock_kernel();
                        return -ENODEV;
                }
        }
@@ -464,6 +467,7 @@ static int video_open(struct inode *inode, struct file *file)
        }
        fops_put(old_fops);
        mutex_unlock(&videodev_lock);
+       unlock_kernel();
        return err;
 }