Subject: CVS commit: syssrc/sys/kern
To: None <source-changes@netbsd.org>
From: Christos Zoulas <christos@netbsd.org>
List: source-changes
Date: 12/18/2001 17:51:53
Module Name:	syssrc
Committed By:	christos
Date:		Tue Dec 18 15:51:52 UTC 2001

Modified Files:
	syssrc/sys/kern: kern_sig.c

Log Message:
PR/14795: Christos Zoulas: Fix locking problem on MP systems where
ltsleep() is calling CURSIG() which can call issignal() and issignal()
could not deal with being called from a locked context. This happens
when a process receives SIGTTIN, and issignal() calls psignal() to
post SIGCHLD to the parent.

XXX: It is really messy to have issignal() handle the job control
functionality and the whole signal interlocking protocol needs to
be re-designed. For now this fix (provided by enami) does the trick.
I've been running with this fix for weeks, and atatat has stress-tested
the kernel running ~30 make kernels...


To generate a diff of this commit:
cvs rdiff -r1.118 -r1.119 syssrc/sys/kern/kern_sig.c

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