cris: cdev lock_kernel() pushdown
[sfrench/cifs-2.6.git] / arch / cris / arch-v32 / drivers / mach-a3 / gpio.c
index de107dad9f4ffb13bde029fdd1c6b5f9544ffd09..ef98608e50672dbcc3823c1cfdfcd94fece0979e 100644 (file)
@@ -23,6 +23,7 @@
 #include <linux/init.h>
 #include <linux/interrupt.h>
 #include <linux/spinlock.h>
+#include <linux/smp_lock.h>
 
 #include <asm/etraxgpio.h>
 #include <hwregs/reg_map.h>
@@ -390,6 +391,8 @@ static int gpio_open(struct inode *inode, struct file *filp)
 
        if (!priv)
                return -ENOMEM;
+
+       lock_kernel();
        memset(priv, 0, sizeof(*priv));
 
        priv->minor = p;
@@ -412,6 +415,7 @@ static int gpio_open(struct inode *inode, struct file *filp)
                spin_unlock_irq(&gpio_lock);
        }
 
+       unlock_kernel();
        return 0;
 }