Now we have pushed the lock down we can stop wrapping the call with a lock in
the tty layer.
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
switch (cmd) {
case TIOCSBRK:
case TIOCCBRK:
switch (cmd) {
case TIOCSBRK:
case TIOCCBRK:
- if (tty->driver->ioctl) {
- lock_kernel();
+ if (tty->driver->ioctl)
retval = tty->driver->ioctl(tty, file, cmd, arg);
retval = tty->driver->ioctl(tty, file, cmd, arg);
return retval;
/* These two ioctl's always return success; even if */
return retval;
/* These two ioctl's always return success; even if */
break;
}
if (tty->driver->ioctl) {
break;
}
if (tty->driver->ioctl) {
retval = (tty->driver->ioctl)(tty, file, cmd, arg);
retval = (tty->driver->ioctl)(tty, file, cmd, arg);
if (retval != -ENOIOCTLCMD)
return retval;
}
ld = tty_ldisc_ref_wait(tty);
retval = -EINVAL;
if (ld->ioctl) {
if (retval != -ENOIOCTLCMD)
return retval;
}
ld = tty_ldisc_ref_wait(tty);
retval = -EINVAL;
if (ld->ioctl) {
retval = ld->ioctl(tty, file, cmd, arg);
retval = ld->ioctl(tty, file, cmd, arg);
if (retval == -ENOIOCTLCMD)
retval = -EINVAL;
}
if (retval == -ENOIOCTLCMD)
retval = -EINVAL;
}