mchk 2 --- tbuf error on 750 running 4.2 BSD

Chris Torek chris at umcp-cs.UUCP
Thu Aug 1 16:24:29 AEST 1985


There is another problem with panic: you can get bogus "panic: sleep"s.
I fixed this a while back.  In /sys/sys/kern_synch.c, change the top of
sleep() to look like this:

sleep(chan, pri)
	caddr_t chan;
	int pri;
{
	register struct proc *rp, **hp;
	register s;

	rp = u.u_procp;
	s = spl6();
	if (panicstr) {
		/*
		 * Let interrupts in for a moment, then just return.
		 * The splnet() really ought to be spl0(), but I'm
		 * too timid to do that.
		 */
		(void) splnet();
		splx(s);
		return;
	}
	if (chan == 0 || rp->p_stat != SRUN || rp->p_rlink)
		panic("sleep");
	.
	.
	.

(The splnet lets network interrupts through, so that the network
disk stuff (remote mount file systems) can finish syncing.  splnet
is also < spl6, so disk interrupts get through too.)
-- 
In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 4251)
UUCP:	seismo!umcp-cs!chris
CSNet:	chris at umcp-cs		ARPA:	chris at maryland



More information about the Comp.bugs.4bsd.ucb-fixes mailing list