summaryrefslogtreecommitdiffstats
path: root/sys/i386/isa/rc.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/i386/isa/rc.c')
-rw-r--r--sys/i386/isa/rc.c20
1 files changed, 4 insertions, 16 deletions
diff --git a/sys/i386/isa/rc.c b/sys/i386/isa/rc.c
index ec93d68..1e9f666 100644
--- a/sys/i386/isa/rc.c
+++ b/sys/i386/isa/rc.c
@@ -664,24 +664,12 @@ repeat:
if (icnt <= 0 || !(tp->t_state & TS_ISOPEN))
goto done1;
- if ( linesw[tp->t_line].l_rint == ttyinput
- && ((rc->rc_flags & RC_RTSFLOW) || (tp->t_iflag & IXOFF))
- && !(tp->t_state & TS_TBLOCK)
- && (tp->t_rawq.c_cc + icnt) > RB_I_HIGH_WATER) {
- int queue_full = 0;
-
- if ((tp->t_iflag & IXOFF) &&
- tp->t_cc[VSTOP] != _POSIX_VDISABLE &&
- (queue_full = putc(tp->t_cc[VSTOP], &tp->t_outq)) == 0 ||
- (rc->rc_flags & RC_RTSFLOW)) {
- tp->t_state |= TS_TBLOCK;
- ttstart(tp);
- if (queue_full) /* try again */
- tp->t_state &= ~TS_TBLOCK;
- }
- }
if ( (tp->t_state & TS_CAN_BYPASS_L_RINT)
&& !(tp->t_state & TS_LOCAL)) {
+ if ((tp->t_rawq.c_cc + icnt) >= RB_I_HIGH_WATER
+ && ((rc->rc_flags & RC_RTSFLOW) || (tp->t_iflag & IXOFF))
+ && !(tp->t_state & TS_TBLOCK))
+ ttyblock(tp);
tk_nin += icnt;
tk_rawcc += icnt;
tp->t_rawcc += icnt;
OpenPOWER on IntegriCloud