Telnet problems

Chris Torek chris at umcp-cs.UUCP
Thu Feb 6 14:44:09 AEST 1986


This is a bug in the dmf32 driver.  I have seen several versions
of the driver with the same bug (including one I was running for
some time; I fixed it about an hour after posting it to net.sources,
as I recall . . .).

Look at /sys/vaxuba/dmf.c.  Find the routine `dmfstart'.  It will
have a few lines commented something like this:

	/*
	 * If there are sleepers, and output has drained below low
	 * water mark, wake 'em up.
	 */

The code under this comment *should* look like this:

	if (tp->t_outq.c_cc <= TTLOWAT(tp)) {
		if (tp->t_state&TS_ASLEEP) {
			tp->t_state &= ~TS_ASLEEP;
			wakeup((caddr_t)&tp->t_outq);
		}
		if (tp->t_wsel) {
			selwakeup(tp->t_wsel, tp->t_state & TS_WCOLL);
			tp->t_wsel = 0;
			tp->t_state &= ~TS_WCOLL;
		}
	}

but the `if (tp->t_wsel)' clause is missing.  Add it, compile and
boot the new kernel, and all should be well again.
-- 
In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 1415)
UUCP:	seismo!umcp-cs!chris
CSNet:	chris at umcp-cs		ARPA:	chris at mimsy.umd.edu



More information about the Comp.unix mailing list