From owner-cvs-sys Wed Jan 15 10:58:44 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.4/8.8.4) id KAA17102 for cvs-sys-outgoing; Wed, 15 Jan 1997 10:58:44 -0800 (PST) Received: (from bde@localhost) by freefall.freebsd.org (8.8.4/8.8.4) id KAA17093; Wed, 15 Jan 1997 10:58:43 -0800 (PST) Date: Wed, 15 Jan 1997 10:58:43 -0800 (PST) From: Bruce Evans Message-Id: <199701151858.KAA17093@freefall.freebsd.org> To: CVS-committers, cvs-all, cvs-sys Subject: cvs commit: src/sys/kern kern_fork.c Sender: owner-cvs-sys@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk bde 97/01/15 10:58:43 Modified: sys/kern kern_fork.c Log: Fixed interrupt unmasking for child processes which I broke in rev.1.10 two years ago. Children continued to run at splhigh() after returning from vm_fork(). This mainly affected kernel processes and init. For ordinary processes, interrupts are normally unmasked a few instructions later after fork() returns (it may be important for syscall() not to reschedule the child processes). Kernel processes had workarounds for the problem. Init manages to start because some routines "know" that it is safe to go to sleep despite their caller starting them at a high ipl. Then its ipl gets fixed on its first normal return from a syscall. Revision Changes Path 1.29 +1 -0 src/sys/kern/kern_fork.c