From: Alan Cox Remove broken softcar functions, wrap ioctl handler in BKL Signed-off-by: Alan Cox Signed-off-by: Andrew Morton --- drivers/char/stallion.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff -puN drivers/char/stallion.c~stallion-prepare-for-bkl-push-down drivers/char/stallion.c --- a/drivers/char/stallion.c~stallion-prepare-for-bkl-push-down +++ a/drivers/char/stallion.c @@ -1273,18 +1273,9 @@ static int stl_ioctl(struct tty_struct * rc = 0; + lock_kernel(); + switch (cmd) { - case TIOCGSOFTCAR: - rc = put_user(((tty->termios->c_cflag & CLOCAL) ? 1 : 0), - (unsigned __user *) argp); - break; - case TIOCSSOFTCAR: - if (get_user(ival, (unsigned int __user *) arg)) - return -EFAULT; - tty->termios->c_cflag = - (tty->termios->c_cflag & ~CLOCAL) | - (ival ? CLOCAL : 0); - break; case TIOCGSERIAL: rc = stl_getserial(portp, argp); break; @@ -1308,7 +1299,7 @@ static int stl_ioctl(struct tty_struct * rc = -ENOIOCTLCMD; break; } - + unlock_kernel(); return rc; } _