]> err.no Git - linux-2.6/blobdiff - drivers/sbus/char/flash.c
flash: BKL pushdown
[linux-2.6] / drivers / sbus / char / flash.c
index 6e99507aeb12c23fba03c52a56697f58d0d216c9..7d95e151513a0a5446e07ef6da24d9605334af53 100644 (file)
@@ -14,6 +14,7 @@
 #include <linux/init.h>
 #include <linux/smp_lock.h>
 #include <linux/spinlock.h>
+#include <linux/mm.h>
 
 #include <asm/system.h>
 #include <asm/uaccess.h>
@@ -126,9 +127,13 @@ flash_read(struct file * file, char __user * buf,
 static int
 flash_open(struct inode *inode, struct file *file)
 {
-       if (test_and_set_bit(0, (void *)&flash.busy) != 0)
+       lock_kernel();
+       if (test_and_set_bit(0, (void *)&flash.busy) != 0) {
+               unlock_kernel();
                return -EBUSY;
+       }
 
+       unlock_kernel();
        return 0;
 }
 
@@ -190,7 +195,7 @@ static int __init flash_init(void)
        }
        if (!sdev) {
 #ifdef CONFIG_PCI
-               struct linux_prom_registers *ebus_regs;
+               const struct linux_prom_registers *ebus_regs;
 
                for_each_ebus(ebus) {
                        for_each_ebusdev(edev, ebus) {