Return to BSD News archive
Received: by minnie.vk1xwt.ampr.org with NNTP id AA27 ; Wed, 27 Jan 93 13:11:02 EST Path: sserve!manuel.anu.edu.au!munnari.oz.au!sgiblab!spool.mu.edu!uunet!gatech!udel!sbcs.sunysb.edu!stark.UUCP!gene From: gene@stark.uucp (Gene Stark) Newsgroups: comp.unix.bsd Subject: Xten and patch00061 (FIX) Date: 26 Jan 93 08:53:43 Organization: Gene Stark's home system Lines: 60 Distribution: world Message-ID: <GENE.93Jan26085343@stark.stark.uucp> NNTP-Posting-Host: stark.uucp These patches are for my "tw" X-10 driver, which can be found on ref.tfs.com in directory /usr/src/sys.extras/stark-xten. You MUST apply these diffs if you have installed patch00061 in patchkit-0.2. DON'T apply them if you didn't install that patch. *** /sys/i386/isa/tw.c.pl1 Wed Dec 2 09:31:20 1992 --- /sys/i386/isa/tw.c Tue Jan 26 07:56:30 1993 *************** *** 199,205 **** struct tw_sc { u_int sc_port; /* I/O Port */ u_int sc_state; /* Current software control state */ ! struct proc *sc_selp; /* Process sleeping on select */ u_char sc_xphase; /* Current state of sync (for transmitter) */ u_char sc_rphase; /* Current state of sync (for receiver) */ u_char sc_flags; /* Flags for current reception */ --- 199,205 ---- struct tw_sc { u_int sc_port; /* I/O Port */ u_int sc_state; /* Current software control state */ ! pid_t sc_selp; /* Process sleeping on select */ u_char sc_xphase; /* Current state of sync (for transmitter) */ u_char sc_rphase; /* Current state of sync (for receiver) */ u_char sc_flags; /* Flags for current reception */ *************** *** 411,416 **** --- 411,417 ---- struct proc *p; { struct tw_sc *sc; + struct proc *pp; int s, i; sc = &tw_sc[TWUNIT(dev)]; *************** *** 419,428 **** splx(s); return(1); } ! if(sc->sc_selp && sc->sc_selp->p_wchan == (caddr_t)&selwait) { sc->sc_state |= TWS_COLL; } else { ! sc->sc_selp = p; } splx(s); return(0); --- 420,430 ---- splx(s); return(1); } ! if(sc->sc_selp && (pp = pfind(sc->sc_selp)) ! && pp->p_wchan == (caddr_t)&selwait) { sc->sc_state |= TWS_COLL; } else { ! sc->sc_selp = p->p_pid; } splx(s); return(0);