Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!cbosgd!gatech!seismo!umcp-cs!chris From: chris@umcp-cs.UUCP (Chris Torek) Newsgroups: net.unix,net.unix-wizards Subject: Re: Telnet problems Message-ID: <3062@umcp-cs.UUCP> Date: Wed, 5-Feb-86 23:44:09 EST Article-I.D.: umcp-cs.3062 Posted: Wed Feb 5 23:44:09 1986 Date-Received: Fri, 7-Feb-86 21:08:05 EST References: <134@gt-cmmsr.UUCP> Organization: U of Maryland, Computer Science Dept., College Park, MD Lines: 33 Keywords: flow control, dmf32's Xref: watmath net.unix:7035 net.unix-wizards:16677 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@umcp-cs ARPA: chris@mimsy.umd.edu