Removed unnecessary (and broken) wakeup code in rpstart(). There is no

need to do it directly, since ttwwakeup() is always called just before
returning from rpstart().  The brokenness was waking up the wrong address
after clearing TS_SO_OLOWAT.  It's not clear how processes waiting for
output to drain below low water ever got woken up.

Found by:	when I fixed longstanding warts in output watermark
		handling, this was the only driver that knew too much
		(anything) about the watermarks
This commit is contained in:
bde 1997-12-28 05:45:07 +00:00
parent 07b5eb4e92
commit aee0b8bb68
2 changed files with 0 additions and 30 deletions

View File

@ -1976,13 +1976,6 @@ rpstart(tp)
}
count = sGetTxCnt(cp);
if(tp->t_outq.c_cc <= tp->t_lowat) {
if(tp->t_state & TS_SO_OLOWAT) {
tp->t_state &= ~TS_SO_OLOWAT;
wakeup(TSA_CARR_ON(tp));
}
selwakeup(&tp->t_wsel);
}
if(tp->t_outq.c_cc == 0) {
if((tp->t_state & TS_BUSY) && (count == 0)) {
tp->t_state &= ~TS_BUSY;
@ -1991,14 +1984,6 @@ rpstart(tp)
splx(spl);
return;
}
/*
if((tp->t_state & TS_BUSY) && count == 0)
tp->t_state &= ~TS_BUSY;
if(tp->t_outq.c_cc <= tp->t_lowat)
ttyowake(tp);
*/
xmit_fifo_room = TXFIFO_SIZE - sGetTxCnt(cp);
qp = &tp->t_outq;
count = 0;

View File

@ -1976,13 +1976,6 @@ rpstart(tp)
}
count = sGetTxCnt(cp);
if(tp->t_outq.c_cc <= tp->t_lowat) {
if(tp->t_state & TS_SO_OLOWAT) {
tp->t_state &= ~TS_SO_OLOWAT;
wakeup(TSA_CARR_ON(tp));
}
selwakeup(&tp->t_wsel);
}
if(tp->t_outq.c_cc == 0) {
if((tp->t_state & TS_BUSY) && (count == 0)) {
tp->t_state &= ~TS_BUSY;
@ -1991,14 +1984,6 @@ rpstart(tp)
splx(spl);
return;
}
/*
if((tp->t_state & TS_BUSY) && count == 0)
tp->t_state &= ~TS_BUSY;
if(tp->t_outq.c_cc <= tp->t_lowat)
ttyowake(tp);
*/
xmit_fifo_room = TXFIFO_SIZE - sGetTxCnt(cp);
qp = &tp->t_outq;
count = 0;