From d7c8794263e6eeca4cdbe3c857327f98af2774d7 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann Date: Tue, 20 May 2008 19:15:43 +0200 Subject: [PATCH] --- yaml --- r: 100337 b: refs/heads/master c: b05c9e6cd939b6f79be17e9b6a23ca15a219dec2 h: refs/heads/master i: 100335: 66fd87d858d7b02bc5b80fbd201d21d45002d87a v: v3 --- [refs] | 2 +- trunk/drivers/sbus/char/cpwatchdog.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index ed94c344cd6e..e6e76f357daa 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 122bc5eaf81a3870f6cc00d2e5e97f32f92e636b +refs/heads/master: b05c9e6cd939b6f79be17e9b6a23ca15a219dec2 diff --git a/trunk/drivers/sbus/char/cpwatchdog.c b/trunk/drivers/sbus/char/cpwatchdog.c index 235703414370..23abfdfb44f1 100644 --- a/trunk/drivers/sbus/char/cpwatchdog.c +++ b/trunk/drivers/sbus/char/cpwatchdog.c @@ -279,6 +279,7 @@ static inline int wd_opt_timeout(void) static int wd_open(struct inode *inode, struct file *f) { + lock_kernel(); switch(iminor(inode)) { case WD0_MINOR: @@ -291,6 +292,7 @@ static int wd_open(struct inode *inode, struct file *f) f->private_data = &wd_dev.watchdog[WD2_ID]; break; default: + unlock_kernel(); return(-ENODEV); } @@ -304,11 +306,13 @@ static int wd_open(struct inode *inode, struct file *f) (void *)wd_dev.regs)) { printk("%s: Cannot register IRQ %d\n", WD_OBPNAME, wd_dev.irq); + unlock_kernel(); return(-EBUSY); } wd_dev.initialized = 1; } + unlock_kernel(); return(nonseekable_open(inode, f)); }