Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site dartvax.UUCP Path: utzoo!linus!decvax!dartvax!steve From: steve@dartvax.UUCP (Steve Campbell) Newsgroups: net.bugs.4bsd,net.periphs,net.unix-wizards Subject: Soft carrier bug in 4.?BSD dh/dm driver Message-ID: <405@dartvax.UUCP> Date: Sun, 20-Nov-83 15:29:47 EST Article-I.D.: dartvax.405 Posted: Sun Nov 20 15:29:47 1983 Date-Received: Mon, 21-Nov-83 01:00:40 EST Organization: Dartmouth College Lines: 29 We recently reshuffled the ports on our VAX 750, moving our DEC DF03 dialer from a dz port to an ABLE dh/dm port. The dialer refused to work there, even with the soft carrier config flag set. The trusty breakout box showed that the dh/dm port was not raising DTR, so though the DF03 would dial, it would not go into data mode when the callee answered. The problem turns out to be in the dmopen routine in the (4.[12]BSD) dh/dm driver, dh.c. The routine tests the soft carrier flag and exits before turning on the port, so the open completes, but the control signals aren't up. The fix is just to move the test down near the normal end of dmopen. Here's the "diff new old" of the 4.1BSD version. The 4.2 code is the same except for some name changes. 687,688c687,689 < if (dm >= NDH || (ui = dminfo[dm]) == 0 || ui->ui_alive == 0) { < tp->t_state |= CARR_ON; /* This may be unnecessary, but... */ --- > if (dm >= NDH || (ui = dminfo[dm]) == 0 || ui->ui_alive == 0 || > (dhsoftCAR[dm]&(1< tp->t_state |= CARR_ON; 698c699 < if (addr->dmlstat&DML_CAR || (dhsoftCAR[dm]&(1< if (addr->dmlstat&DML_CAR) steve campbell ...decvax!dartvax!steve