diff options
author | peter <peter@FreeBSD.org> | 1995-09-11 06:28:38 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 1995-09-11 06:28:38 +0000 |
commit | 0b188ff7251225bef2d5a6f7a9158c003cfefebe (patch) | |
tree | b97577f8fef6cd444d94672798226c57a0c2d79e /sys/dev/si | |
parent | 47fb065f6d468c6e4ec3400e07201999fa4fd89b (diff) | |
download | FreeBSD-src-0b188ff7251225bef2d5a6f7a9158c003cfefebe.zip FreeBSD-src-0b188ff7251225bef2d5a6f7a9158c003cfefebe.tar.gz |
Restore two checks for TS_ISOPEN.. I managed to panic my machine
without them.. I thought TS_CONNECTED implied TS_ISOPEN, but apparently
that's not the case.
Diffstat (limited to 'sys/dev/si')
-rw-r--r-- | sys/dev/si/si.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sys/dev/si/si.c b/sys/dev/si/si.c index e0912f8..6843af0 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.4 1995/08/13 15:44:37 peter Exp $ + * $Id: si.c,v 1.5 1995/08/22 00:48:17 peter Exp $ */ #ifndef lint @@ -1772,7 +1772,8 @@ siintr(int bdnum) * Do break processing */ if (ccbp->hi_state & ST_BREAK) { - if (tp->t_state & TS_CONNECTED) { + if (tp->t_state & TS_CONNECTED && + tp->t_state & TS_ISOPEN) { (*linesw[tp->t_line].l_rint)(TTY_BI, tp); } ccbp->hi_state &= ~ST_BREAK; /* A Bit iffy this */ @@ -1784,7 +1785,8 @@ siintr(int bdnum) * dump any characters. */ - if ((tp->t_state & TS_CONNECTED) == 0) { + if ((tp->t_state & TS_CONNECTED) == 0 || + (tp->t_state & TS_ISOPEN) == 0) { ccbp->hi_rxopos = ccbp->hi_rxipos; } else { while ((c = ccbp->hi_rxipos - ccbp->hi_rxopos) != 0) { |