basler-excite: BKL pushdown
authorArnd Bergmann <arnd@arndb.de>
Tue, 20 May 2008 17:15:36 +0000 (19:15 +0200)
committerJonathan Corbet <corbet@lwn.net>
Fri, 20 Jun 2008 20:05:54 +0000 (14:05 -0600)
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
arch/mips/basler/excite/excite_iodev.c

index 476d20e08d0e4ceb2251b745ad3e81620f77589e..a1e3526b4a94dd31d4013ccbc88d0a0e3857b3b2 100644 (file)
@@ -26,6 +26,7 @@
 #include <linux/interrupt.h>
 #include <linux/platform_device.h>
 #include <linux/miscdevice.h>
+#include <linux/smp_lock.h>
 
 #include "excite_iodev.h"
 
@@ -110,8 +111,14 @@ static int __exit iodev_remove(struct device *dev)
 
 static int iodev_open(struct inode *i, struct file *f)
 {
-       return request_irq(iodev_irq, iodev_irqhdl, IRQF_DISABLED,
+       int ret;
+
+       lock_kernel();
+       ret = request_irq(iodev_irq, iodev_irqhdl, IRQF_DISABLED,
                           iodev_name, &miscdev);
+       unlock_kernel();
+
+       return ret;
 }
 
 static int iodev_release(struct inode *i, struct file *f)