diff options
Diffstat (limited to 'drivers/char/scx200_gpio.c')
-rw-r--r-- | drivers/char/scx200_gpio.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/char/scx200_gpio.c b/drivers/char/scx200_gpio.c index be2c623a9862..1d9100561c8a 100644 --- a/drivers/char/scx200_gpio.c +++ b/drivers/char/scx200_gpio.c | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <linux/kernel.h> | 12 | #include <linux/kernel.h> |
13 | #include <linux/init.h> | 13 | #include <linux/init.h> |
14 | #include <linux/platform_device.h> | 14 | #include <linux/platform_device.h> |
15 | #include <linux/smp_lock.h> | ||
15 | #include <asm/uaccess.h> | 16 | #include <asm/uaccess.h> |
16 | #include <asm/io.h> | 17 | #include <asm/io.h> |
17 | 18 | ||
@@ -46,12 +47,12 @@ struct nsc_gpio_ops scx200_gpio_ops = { | |||
46 | }; | 47 | }; |
47 | EXPORT_SYMBOL_GPL(scx200_gpio_ops); | 48 | EXPORT_SYMBOL_GPL(scx200_gpio_ops); |
48 | 49 | ||
49 | /* No BKL needed here: no global resources used */ | ||
50 | static int scx200_gpio_open(struct inode *inode, struct file *file) | 50 | static int scx200_gpio_open(struct inode *inode, struct file *file) |
51 | { | 51 | { |
52 | unsigned m = iminor(inode); | 52 | unsigned m = iminor(inode); |
53 | file->private_data = &scx200_gpio_ops; | 53 | file->private_data = &scx200_gpio_ops; |
54 | 54 | ||
55 | cycle_kernel_lock(); | ||
55 | if (m >= MAX_PINS) | 56 | if (m >= MAX_PINS) |
56 | return -EINVAL; | 57 | return -EINVAL; |
57 | return nonseekable_open(inode, file); | 58 | return nonseekable_open(inode, file); |