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);