]> err.no Git - linux-2.6/blobdiff - drivers/sbus/char/uctrl.c
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6
[linux-2.6] / drivers / sbus / char / uctrl.c
index 44d2ef906ac732aa7b0a4c92467602ad128ab9e6..513ba61ae966b53e0edc20bf6501a018ac79be6e 100644 (file)
@@ -9,6 +9,7 @@
 #include <linux/delay.h>
 #include <linux/interrupt.h>
 #include <linux/slab.h>
+#include <linux/smp_lock.h>
 #include <linux/ioport.h>
 #include <linux/init.h>
 #include <linux/miscdevice.h>
@@ -211,8 +212,10 @@ uctrl_ioctl(struct inode *inode, struct file *file,
 static int
 uctrl_open(struct inode *inode, struct file *file)
 {
+       lock_kernel();
        uctrl_get_event_status();
        uctrl_get_external_status();
+       unlock_kernel();
        return 0;
 }
 
@@ -393,13 +396,13 @@ static int __init ts102_uctrl_init(void)
        err = request_irq(driver->irq, uctrl_interrupt, 0, "uctrl", driver);
        if (err) {
                printk("%s: unable to register irq %d\n",
-                      __FUNCTION__, driver->irq);
+                      __func__, driver->irq);
                return err;
        }
 
        if (misc_register(&uctrl_dev)) {
                printk("%s: unable to get misc minor %d\n",
-                      __FUNCTION__, uctrl_dev.minor);
+                      __func__, uctrl_dev.minor);
                free_irq(driver->irq, driver);
                return -ENODEV;
        }