summaryrefslogtreecommitdiffstats
path: root/drivers/char/synclink.c
diff options
context:
space:
mode:
authorAlan Cox <alan@lxorguk.ukuu.org.uk>2008-04-30 00:53:24 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2008-04-30 08:29:39 -0700
commit1f8cabb7055b98300aa0798ee0f6513dfc130cc2 (patch)
tree79c4991f74a2f3865ab7a7cd23f52e809dc1e5fb /drivers/char/synclink.c
parent341339e7aff33e3aa73d6c49dbd5a79be0bbec04 (diff)
downloadlinux-1f8cabb7055b98300aa0798ee0f6513dfc130cc2.tar.gz
linux-1f8cabb7055b98300aa0798ee0f6513dfc130cc2.tar.bz2
linux-1f8cabb7055b98300aa0798ee0f6513dfc130cc2.zip
synclink series: Prepare for BKL pushdown
As these are quite complex I've simply pushed the BKL down into the ioctl handler not tried to do anything neater. Signed-off-by: Alan Cox <alan@redhat.com> Cc: Paul Fulghum <paulkf@microgate.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/char/synclink.c')
-rw-r--r--drivers/char/synclink.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/char/synclink.c b/drivers/char/synclink.c
index fadab1d9510f..1c9c440f59ce 100644
--- a/drivers/char/synclink.c
+++ b/drivers/char/synclink.c
@@ -2942,6 +2942,7 @@ static int mgsl_ioctl(struct tty_struct *tty, struct file * file,
unsigned int cmd, unsigned long arg)
{
struct mgsl_struct * info = (struct mgsl_struct *)tty->driver_data;
+ int ret;
if (debug_level >= DEBUG_LEVEL_INFO)
printk("%s(%d):mgsl_ioctl %s cmd=%08X\n", __FILE__,__LINE__,
@@ -2956,7 +2957,10 @@ static int mgsl_ioctl(struct tty_struct *tty, struct file * file,
return -EIO;
}
- return mgsl_ioctl_common(info, cmd, arg);
+ lock_kernel();
+ ret = mgsl_ioctl_common(info, cmd, arg);
+ unlock_kernel();
+ return ret;
}
static int mgsl_ioctl_common(struct mgsl_struct *info, unsigned int cmd, unsigned long arg)