tty: move tioclinux from a special case
Right now we have ifdefs and hooks in the core ioctl handler for TIOCLINUX and then test if its a console. This is brain dead. Instead call the tioclinux helper from the relevant driver ioctl methods. Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
b70ac77185
commit
e688510773
|
@ -3026,10 +3026,6 @@ long tty_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
|||
return put_user(tty->ldisc.ops->num, (int __user *)p);
|
||||
case TIOCSETD:
|
||||
return tiocsetd(tty, p);
|
||||
#ifdef CONFIG_VT
|
||||
case TIOCLINUX:
|
||||
return tioclinux(tty, arg);
|
||||
#endif
|
||||
/*
|
||||
* Break handling
|
||||
*/
|
||||
|
|
|
@ -2583,8 +2583,6 @@ int tioclinux(struct tty_struct *tty, unsigned long arg)
|
|||
int lines;
|
||||
int ret;
|
||||
|
||||
if (tty->driver->type != TTY_DRIVER_TYPE_CONSOLE)
|
||||
return -EINVAL;
|
||||
if (current->signal->tty != tty && !capable(CAP_SYS_ADMIN))
|
||||
return -EPERM;
|
||||
if (get_user(type, p))
|
||||
|
|
|
@ -395,6 +395,8 @@ int vt_ioctl(struct tty_struct *tty, struct file * file,
|
|||
|
||||
kbd = kbd_table + console;
|
||||
switch (cmd) {
|
||||
case TIOCLINUX:
|
||||
return tioclinux(tty, arg);
|
||||
case KIOCSOUND:
|
||||
if (!perm)
|
||||
goto eperm;
|
||||
|
|
Loading…
Reference in New Issue