diff options
Diffstat (limited to 'drivers/isdn/mISDN')
-rw-r--r-- | drivers/isdn/mISDN/timerdev.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/isdn/mISDN/timerdev.c b/drivers/isdn/mISDN/timerdev.c index 81048b8ed8ad..de43c8c70ad0 100644 --- a/drivers/isdn/mISDN/timerdev.c +++ b/drivers/isdn/mISDN/timerdev.c | |||
@@ -24,9 +24,10 @@ | |||
24 | #include <linux/miscdevice.h> | 24 | #include <linux/miscdevice.h> |
25 | #include <linux/module.h> | 25 | #include <linux/module.h> |
26 | #include <linux/mISDNif.h> | 26 | #include <linux/mISDNif.h> |
27 | #include <linux/smp_lock.h> | 27 | #include <linux/mutex.h> |
28 | #include "core.h" | 28 | #include "core.h" |
29 | 29 | ||
30 | static DEFINE_MUTEX(mISDN_mutex); | ||
30 | static u_int *debug; | 31 | static u_int *debug; |
31 | 32 | ||
32 | 33 | ||
@@ -224,7 +225,7 @@ mISDN_ioctl(struct file *filep, unsigned int cmd, unsigned long arg) | |||
224 | if (*debug & DEBUG_TIMER) | 225 | if (*debug & DEBUG_TIMER) |
225 | printk(KERN_DEBUG "%s(%p, %x, %lx)\n", __func__, | 226 | printk(KERN_DEBUG "%s(%p, %x, %lx)\n", __func__, |
226 | filep, cmd, arg); | 227 | filep, cmd, arg); |
227 | lock_kernel(); | 228 | mutex_lock(&mISDN_mutex); |
228 | switch (cmd) { | 229 | switch (cmd) { |
229 | case IMADDTIMER: | 230 | case IMADDTIMER: |
230 | if (get_user(tout, (int __user *)arg)) { | 231 | if (get_user(tout, (int __user *)arg)) { |
@@ -256,7 +257,7 @@ mISDN_ioctl(struct file *filep, unsigned int cmd, unsigned long arg) | |||
256 | default: | 257 | default: |
257 | ret = -EINVAL; | 258 | ret = -EINVAL; |
258 | } | 259 | } |
259 | unlock_kernel(); | 260 | mutex_unlock(&mISDN_mutex); |
260 | return ret; | 261 | return ret; |
261 | } | 262 | } |
262 | 263 | ||