diff options
author | Alan Cox <alan@lxorguk.ukuu.org.uk> | 2008-04-30 00:53:24 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-30 08:29:39 -0700 |
commit | 1f8cabb7055b98300aa0798ee0f6513dfc130cc2 (patch) | |
tree | 79c4991f74a2f3865ab7a7cd23f52e809dc1e5fb /drivers/char/synclink.c | |
parent | 341339e7aff33e3aa73d6c49dbd5a79be0bbec04 (diff) | |
download | blackbird-op-linux-1f8cabb7055b98300aa0798ee0f6513dfc130cc2.tar.gz blackbird-op-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.c | 6 |
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) |