Subject: CVS commit: syssrc
To: None <source-changes@netbsd.org>
From: Tohru Nishimura <nisimura@netbsd.org>
List: source-changes
Date: 03/25/2000 02:14:15
Module Name:	syssrc
Committed By:	nisimura
Date:		Sat Mar 25 10:14:14 UTC 2000

Modified Files:
	syssrc/sys/arch/arc/arc: machdep.c
	syssrc/sys/arch/cobalt/cobalt: machdep.c
	syssrc/sys/arch/hpcmips/hpcmips: machdep.c
	syssrc/sys/arch/newsmips/newsmips: machdep.c
	syssrc/sys/arch/pmax/pmax: machdep.c

Log Message:
Make sure proc0 PCB has spl0 condition in CP0 status register field.

cpu_fork() mistakenly created processes forked by proc0, including
kthreads, in splhigh condition, because [1] proc0's PCB was zero
cleared during initialization, and [2] value 0 in status register
field made processes to have splhigh condition when CPU tick was
assigned for them.  This mostly doesn't matter as forked processes
dive immediately into user mode through proc_trampoline code path,
however, kthreads never do that and remain in splhigh.

Reported by Ethan Solomita <ethan@geocast.com>.


To generate a diff of this commit:
cvs rdiff -r1.31 -r1.32 syssrc/sys/arch/arc/arc/machdep.c
cvs rdiff -r1.3 -r1.4 syssrc/sys/arch/cobalt/cobalt/machdep.c
cvs rdiff -r1.19 -r1.20 syssrc/sys/arch/hpcmips/hpcmips/machdep.c
cvs rdiff -r1.38 -r1.39 syssrc/sys/arch/newsmips/newsmips/machdep.c
cvs rdiff -r1.167 -r1.168 syssrc/sys/arch/pmax/pmax/machdep.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.