diff options
| author | Peter Wemm <peter@FreeBSD.org> | 1996-05-05 17:35:19 +0000 |
|---|---|---|
| committer | Peter Wemm <peter@FreeBSD.org> | 1996-05-05 17:35:19 +0000 |
| commit | 3461d589f27adbc21d3313e25d31e0313a89c3b8 (patch) | |
| tree | 36004e0ce832bfe93e23df91eb9c6c564dc9aa76 /sys/dev/si | |
| parent | 34914e50d4db960571da370dbd1f5939537a5dbd (diff) | |
Notes
Diffstat (limited to 'sys/dev/si')
| -rw-r--r-- | sys/dev/si/si.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/sys/dev/si/si.c b/sys/dev/si/si.c index e60a0872ed73..a607fdda00ce 100644 --- a/sys/dev/si/si.c +++ b/sys/dev/si/si.c @@ -30,7 +30,7 @@ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN * NO EVENT SHALL THE AUTHORS BE LIABLE. * - * $Id: si.c,v 1.37 1996/03/28 14:28:51 scrappy Exp $ + * $Id: si.c,v 1.38 1996/05/05 17:09:04 peter Exp $ */ #ifndef lint @@ -1891,16 +1891,27 @@ siintr(int unit) } /* - * Process read characters if not skipped above + * If the tty input buffers are blocked, stop emptying + * the incoming buffers and let the auto flow control + * assert.. */ - c = ccbp->hi_rxipos - ccbp->hi_rxopos; - if (c == 0) { + if (tp->t_state & TS_TBLOCK) { goto end_rx; } + /* + * Process read characters if not skipped above + */ op = ccbp->hi_rxopos; ip = ccbp->hi_rxipos; + c = ip - op; + if (c == 0) { + goto end_rx; + } + n = c & 0xff; + if (n > 250) + n = 250; DPRINT((pp, DBG_INTR, "n = %d, op = %d, ip = %d\n", n, op, ip)); |
