salkind%nyu@sri-unix.UUCP (01/28/84)
From: Lou Salkind <salkind@nyu> Subject: dh soft carrier bug Index: sys/vaxuba/dh.c 4.2BSD Description: If the soft carrier flag for a dh line is set (dhsoftCAR), and a dm modem interrupt occurs on the line, the TS_CARR_ON flag may be cleared. This causes future reads/writes to the terminal to return EIO. Repeat-By: On a line with modem control, bring down DTR to force a modem interrupt. (This really can happen!) Fix: In dmintr(), add the declaration: register int unit; and change if (addr->dmcsr&DM_CF) { tp = &dh11[(dm<<4)+(addr->dmcsr&0xf)]; to unit = addr->dmcsr & 0xf; if (addr->dmcsr&DM_CF && (dhsoftCAR[dm]&(1<<unit)) == 0) { tp = &dh11[(dm<<4)+unit]; (Some may rationalize that the current behavior is correct, but in my opinion soft carrier means "ignore modem signals.")