Module Name:    src
Committed By:   martin
Date:           Mon Feb 20 12:21:24 UTC 2012

Modified Files:
        src/sys/uvm: uvm_glue.c

Log Message:
Solve previous fix (for early posix_spawn children exiting on error)
differently.


To generate a diff of this commit:
cvs rdiff -u -r1.156 -r1.157 src/sys/uvm/uvm_glue.c

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

Modified files:

Index: src/sys/uvm/uvm_glue.c
diff -u src/sys/uvm/uvm_glue.c:1.156 src/sys/uvm/uvm_glue.c:1.157
--- src/sys/uvm/uvm_glue.c:1.156	Sun Feb 12 11:18:04 2012
+++ src/sys/uvm/uvm_glue.c	Mon Feb 20 12:21:23 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: uvm_glue.c,v 1.156 2012/02/12 11:18:04 martin Exp $	*/
+/*	$NetBSD: uvm_glue.c,v 1.157 2012/02/20 12:21:23 martin Exp $	*/
 
 /*
  * Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -62,7 +62,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_glue.c,v 1.156 2012/02/12 11:18:04 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_glue.c,v 1.157 2012/02/20 12:21:23 martin Exp $");
 
 #include "opt_kgdb.h"
 #include "opt_kstack.h"
@@ -416,14 +416,13 @@ uvm_proc_exit(struct proc *p)
 
 	KASSERT(p == l->l_proc);
 	ovm = p->p_vmspace;
-	if (__predict_false(ovm == NULL))
-		return;
 
 	/*
 	 * borrow proc0's address space.
 	 */
 	KPREEMPT_DISABLE(l);
-	pmap_deactivate(l);
+	if (__predict_true(ovm != NULL))
+		pmap_deactivate(l);
 	p->p_vmspace = proc0.p_vmspace;
 	pmap_activate(l);
 	KPREEMPT_ENABLE(l);

Reply via email to