]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/cris/arch-v32/drivers/mach-fs/gpio.c
cris: cdev lock_kernel() pushdown
[linux-2.6-omap-h63xx.git] / arch / cris / arch-v32 / drivers / mach-fs / gpio.c
index 7863fd4efc2bfc5837980ac8f6444f401921b42f..fe1fde893887ea76f90c699dd180c94625a704b2 100644 (file)
@@ -22,6 +22,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>
@@ -426,9 +427,10 @@ gpio_open(struct inode *inode, struct file *filp)
                return -EINVAL;
 
        priv = kmalloc(sizeof(struct gpio_private), GFP_KERNEL);
-
        if (!priv)
                return -ENOMEM;
+
+       lock_kernel();
        memset(priv, 0, sizeof(*priv));
 
        priv->minor = p;
@@ -449,6 +451,7 @@ gpio_open(struct inode *inode, struct file *filp)
        alarmlist = priv;
        spin_unlock_irq(&alarm_lock);
 
+       unlock_kernel();
        return 0;
 }