summaryrefslogtreecommitdiffstats
path: root/sys/kern/tty.c
diff options
context:
space:
mode:
authorphk <phk@FreeBSD.org>2012-02-26 20:56:49 +0000
committerphk <phk@FreeBSD.org>2012-02-26 20:56:49 +0000
commitc1bac816f55e7ef0fe1646e34c5a71c76c66723f (patch)
tree69dd540ebfe1547b82631a0f09c93c4b461a9069 /sys/kern/tty.c
parent351ef4815894190ed7c1145f74148593a01bc52d (diff)
downloadFreeBSD-src-c1bac816f55e7ef0fe1646e34c5a71c76c66723f.zip
FreeBSD-src-c1bac816f55e7ef0fe1646e34c5a71c76c66723f.tar.gz
Also call the low-level driver if ->c_iflag & (IXON|IXOFF|IXANY) changes.
Uftdi(4) examines (c_iflag & (IXON|IXOFF)) to control hw XON-XOFF support. This is obviously no good, if changes to those bits are not communicated down the stack.
Diffstat (limited to 'sys/kern/tty.c')
-rw-r--r--sys/kern/tty.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/kern/tty.c b/sys/kern/tty.c
index 9a701d7..8ca6bdf 100644
--- a/sys/kern/tty.c
+++ b/sys/kern/tty.c
@@ -1481,6 +1481,8 @@ tty_generic_ioctl(struct tty *tp, u_long cmd, void *data, int fflag,
*/
if ((t->c_cflag & CIGNORE) == 0 &&
(tp->t_termios.c_cflag != t->c_cflag ||
+ ((tp->t_termios.c_iflag ^ t->c_iflag) &
+ (IXON|IXOFF|IXANY)) ||
tp->t_termios.c_ispeed != t->c_ispeed ||
tp->t_termios.c_ospeed != t->c_ospeed)) {
error = ttydevsw_param(tp, t);
OpenPOWER on IntegriCloud