aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/vr41xx_giu.c
diff options
context:
space:
mode:
authorJonathan Corbet <corbet@lwn.net>2008-05-18 17:32:43 -0400
committerJonathan Corbet <corbet@lwn.net>2008-06-20 16:05:53 -0400
commitf2b9857eee17797541b845782ade4d7a9d50f843 (patch)
tree914a00afee2ff953199f99f7cf869e3fd83b36bd /drivers/char/vr41xx_giu.c
parent0b2806768899dba5967bcd4a3b93eaed9a1dc4f3 (diff)
Add a bunch of cycle_kernel_lock() calls
All of the open() functions which don't need the BKL on their face may still depend on its acquisition to serialize opens against driver initialization. So make those functions acquire then release the BKL to be on the safe side. Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Diffstat (limited to 'drivers/char/vr41xx_giu.c')
-rw-r--r--drivers/char/vr41xx_giu.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/char/vr41xx_giu.c b/drivers/char/vr41xx_giu.c
index 412937fdb958..ffe9b4e3072e 100644
--- a/drivers/char/vr41xx_giu.c
+++ b/drivers/char/vr41xx_giu.c
@@ -27,6 +27,7 @@
27#include <linux/kernel.h> 27#include <linux/kernel.h>
28#include <linux/module.h> 28#include <linux/module.h>
29#include <linux/platform_device.h> 29#include <linux/platform_device.h>
30#include <linux/smp_lock.h>
30#include <linux/spinlock.h> 31#include <linux/spinlock.h>
31#include <linux/types.h> 32#include <linux/types.h>
32 33
@@ -543,12 +544,11 @@ static ssize_t gpio_write(struct file *file, const char __user *data,
543 return i; 544 return i;
544} 545}
545 546
546/* No BKL needed here; only global (giu_nr_pins) is only set
547 at probe time */
548static int gpio_open(struct inode *inode, struct file *file) 547static int gpio_open(struct inode *inode, struct file *file)
549{ 548{
550 unsigned int pin; 549 unsigned int pin;
551 550
551 cycle_kernel_lock();
552 pin = iminor(inode); 552 pin = iminor(inode);
553 if (pin >= giu_nr_pins) 553 if (pin >= giu_nr_pins)
554 return -EBADF; 554 return -EBADF;