From d8a30597475e285a969d181c85a359470104042f Mon Sep 17 00:00:00 2001 From: Jonathan Corbet Date: Fri, 16 May 2008 14:17:33 -0600 Subject: [PATCH] --- yaml --- r: 100315 b: refs/heads/master c: 3462032d66703ef7721329b44fe2dac4aaef475d h: refs/heads/master i: 100313: d6ea9a6000ad11fe3726360d06bfc077a88453b2 100311: 50cac07354f29fdd9ae42b9d0c66fedb2e66a8aa v: v3 --- [refs] | 2 +- trunk/drivers/isdn/hardware/eicon/divamnt.c | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 7805bf03bd06..be1ca23c84f3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a237f3bbaab28bb780201f15f6003cf3d2e81024 +refs/heads/master: 3462032d66703ef7721329b44fe2dac4aaef475d diff --git a/trunk/drivers/isdn/hardware/eicon/divamnt.c b/trunk/drivers/isdn/hardware/eicon/divamnt.c index c90928974249..1e85f743214e 100644 --- a/trunk/drivers/isdn/hardware/eicon/divamnt.c +++ b/trunk/drivers/isdn/hardware/eicon/divamnt.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include "platform.h" @@ -127,14 +128,19 @@ static unsigned int maint_poll(struct file *file, poll_table * wait) static int maint_open(struct inode *ino, struct file *filep) { + int ret; + + lock_kernel(); /* only one open is allowed, so we test it atomically */ if (test_and_set_bit(0, &opened)) - return (-EBUSY); - - filep->private_data = NULL; - - return nonseekable_open(ino, filep); + ret = -EBUSY; + else { + filep->private_data = NULL; + ret = nonseekable_open(ino, filep); + } + unlock_kernel(); + return ret; } static int maint_close(struct inode *ino, struct file *filep)