Merge branch 'work.tty-ioctl' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull tty ioctl updates from Al Viro: "This is the compat_ioctl work related to tty ioctls. Quite a bit of dead code taken out, all tty-related stuff gone from fs/compat_ioctl.c. A bunch of compat bugs fixed - some still remain, but all more or less generic tty-related ioctls should be covered (remaining issues are in things like driver-private ioctls in a pcmcia serial card driver not getting properly handled in 32bit processes on 64bit host, etc)" * 'work.tty-ioctl' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (53 commits) kill TIOCSERGSTRUCT change semantics of ldisc ->compat_ioctl() kill TIOCSER[SG]WILD synclink_gt(): fix compat_ioctl() pty: fix compat ioctls compat_ioctl - kill keyboard ioctl handling gigaset: add ->compat_ioctl() vt_compat_ioctl(): clean up, use compat_ptr() properly gigaset: don't try to printk userland buffer contents dgnc: don't bother with (empty) stub for TCXONC dgnc: leave TIOC[GS]SOFTCAR to ldisc remove fallback to drivers for TIOCGICOUNT dgnc: break-related ioctls won't reach ->ioctl() kill the rest of tty COMPAT_IOCTL() entries dgnc: TIOCM... won't reach ->ioctl() isdn_tty: TCSBRK{,P} won't reach ->ioctl() kill capinc_tty_ioctl() take compat TIOC[SG]SERIAL treatment into tty_compat_ioctl() synclink: reduce pointless checks in ->ioctl() complete ->[sg]et_serial() switchover ...
This commit is contained in:
@ -297,29 +297,29 @@ static void rs_unthrottle(struct tty_struct * tty)
|
||||
printk(KERN_INFO "simrs_unthrottle called\n");
|
||||
}
|
||||
|
||||
static int rs_setserial(struct tty_struct *tty, struct serial_struct *ss)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int rs_getserial(struct tty_struct *tty, struct serial_struct *ss)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int rs_ioctl(struct tty_struct *tty, unsigned int cmd, unsigned long arg)
|
||||
{
|
||||
if ((cmd != TIOCGSERIAL) && (cmd != TIOCSSERIAL) &&
|
||||
(cmd != TIOCSERCONFIG) && (cmd != TIOCSERGSTRUCT) &&
|
||||
(cmd != TIOCMIWAIT)) {
|
||||
if ((cmd != TIOCSERCONFIG) && (cmd != TIOCMIWAIT)) {
|
||||
if (tty_io_error(tty))
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
switch (cmd) {
|
||||
case TIOCGSERIAL:
|
||||
case TIOCSSERIAL:
|
||||
case TIOCSERGSTRUCT:
|
||||
case TIOCMIWAIT:
|
||||
return 0;
|
||||
case TIOCSERCONFIG:
|
||||
case TIOCSERGETLSR: /* Get line status register */
|
||||
return -EINVAL;
|
||||
case TIOCSERGWILD:
|
||||
case TIOCSERSWILD:
|
||||
/* "setserial -W" is called in Debian boot */
|
||||
printk (KERN_INFO "TIOCSER?WILD ioctl obsolete, ignored.\n");
|
||||
return 0;
|
||||
}
|
||||
return -ENOIOCTLCMD;
|
||||
}
|
||||
@ -448,6 +448,8 @@ static const struct tty_operations hp_ops = {
|
||||
.throttle = rs_throttle,
|
||||
.unthrottle = rs_unthrottle,
|
||||
.send_xchar = rs_send_xchar,
|
||||
.set_serial = rs_setserial,
|
||||
.get_serial = rs_getserial,
|
||||
.hangup = rs_hangup,
|
||||
.proc_show = rs_proc_show,
|
||||
};
|
||||
|
Reference in New Issue
Block a user