Lower the spl() of the new process from splhigh() right away, since

nothing else will lower it until either much later, or never(?) for
kernel processes.

This basically re-fixes what Bruce fixed in rev 1.29 of kern_fork.c,
which was broken again now the child does not execute back up the fork()
calling tree.
This commit is contained in:
Peter Wemm 1997-04-07 11:42:09 +00:00
parent 2083cff23d
commit e2d8771131
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=24702
3 changed files with 27 additions and 6 deletions

View File

@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: exception.s,v 1.21 1997/02/22 09:32:16 peter Exp $
* $Id: exception.s,v 1.22 1997/04/07 07:15:48 peter Exp $
*/
#include "npx.h" /* NNPX */
@ -251,7 +251,14 @@ IDTVEC(int0x80_syscall)
jmp _doreti
ENTRY(fork_trampoline)
pushl %ebx /* arg1 */
pushl %ebx /* splz smashes regs */
pushl %esi
movl $SWI_AST_MASK,%eax /* spl0() */
movl %eax,_cpl
call _splz
popl %esi /* arg1 */
call %esi /* function */
addl $4,%esp
/* cut from syscall */

View File

@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: exception.s,v 1.21 1997/02/22 09:32:16 peter Exp $
* $Id: exception.s,v 1.22 1997/04/07 07:15:48 peter Exp $
*/
#include "npx.h" /* NNPX */
@ -251,7 +251,14 @@ IDTVEC(int0x80_syscall)
jmp _doreti
ENTRY(fork_trampoline)
pushl %ebx /* arg1 */
pushl %ebx /* splz smashes regs */
pushl %esi
movl $SWI_AST_MASK,%eax /* spl0() */
movl %eax,_cpl
call _splz
popl %esi /* arg1 */
call %esi /* function */
addl $4,%esp
/* cut from syscall */

View File

@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: exception.s,v 1.21 1997/02/22 09:32:16 peter Exp $
* $Id: exception.s,v 1.22 1997/04/07 07:15:48 peter Exp $
*/
#include "npx.h" /* NNPX */
@ -251,7 +251,14 @@ IDTVEC(int0x80_syscall)
jmp _doreti
ENTRY(fork_trampoline)
pushl %ebx /* arg1 */
pushl %ebx /* splz smashes regs */
pushl %esi
movl $SWI_AST_MASK,%eax /* spl0() */
movl %eax,_cpl
call _splz
popl %esi /* arg1 */
call %esi /* function */
addl $4,%esp
/* cut from syscall */