Add explicit lock_kernel() calls to vfc_open().
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
#include <linux/spinlock.h>
#include <linux/mutex.h>
#include <linux/mm.h>
#include <linux/spinlock.h>
#include <linux/mutex.h>
#include <linux/mm.h>
+#include <linux/smp_lock.h>
#include <asm/openprom.h>
#include <asm/oplib.h>
#include <asm/openprom.h>
#include <asm/oplib.h>
spin_lock(&vfc_dev_lock);
dev = vfc_get_dev_ptr(iminor(inode));
if (dev == NULL) {
spin_unlock(&vfc_dev_lock);
spin_lock(&vfc_dev_lock);
dev = vfc_get_dev_ptr(iminor(inode));
if (dev == NULL) {
spin_unlock(&vfc_dev_lock);
return -ENODEV;
}
if (dev->busy) {
spin_unlock(&vfc_dev_lock);
return -ENODEV;
}
if (dev->busy) {
spin_unlock(&vfc_dev_lock);
vfc_captstat_reset(dev);
vfc_unlock_device(dev);
vfc_captstat_reset(dev);
vfc_unlock_device(dev);