Module Name: src Committed By: christos Date: Mon Apr 4 23:07:07 UTC 2016
Modified Files: src/sys/compat/svr4_32: svr4_32_signal.c src/sys/kern: kern_exec.c kern_exit.c kern_lwp.c kern_sig.c src/sys/sys: proc.h sysctl.h Log Message: no need to pass the coredump flag to exit1() since it is set and known in one place. To generate a diff of this commit: cvs rdiff -u -r1.27 -r1.28 src/sys/compat/svr4_32/svr4_32_signal.c cvs rdiff -u -r1.425 -r1.426 src/sys/kern/kern_exec.c cvs rdiff -u -r1.252 -r1.253 src/sys/kern/kern_exit.c cvs rdiff -u -r1.183 -r1.184 src/sys/kern/kern_lwp.c cvs rdiff -u -r1.322 -r1.323 src/sys/kern/kern_sig.c cvs rdiff -u -r1.328 -r1.329 src/sys/sys/proc.h cvs rdiff -u -r1.219 -r1.220 src/sys/sys/sysctl.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/compat/svr4_32/svr4_32_signal.c diff -u src/sys/compat/svr4_32/svr4_32_signal.c:1.27 src/sys/compat/svr4_32/svr4_32_signal.c:1.28 --- src/sys/compat/svr4_32/svr4_32_signal.c:1.27 Mon Apr 4 17:21:49 2016 +++ src/sys/compat/svr4_32/svr4_32_signal.c Mon Apr 4 19:07:06 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: svr4_32_signal.c,v 1.27 2016/04/04 21:21:49 christos Exp $ */ +/* $NetBSD: svr4_32_signal.c,v 1.28 2016/04/04 23:07:06 christos Exp $ */ /*- * Copyright (c) 1994, 1998 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: svr4_32_signal.c,v 1.27 2016/04/04 21:21:49 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: svr4_32_signal.c,v 1.28 2016/04/04 23:07:06 christos Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_svr4.h" @@ -630,7 +630,7 @@ svr4_32_sys_context(struct lwp *l, const case SVR4_SETCONTEXT: DPRINTF(("setcontext(%p)\n", SCARG(uap, uc))); if (!SCARG_P32(uap, uc)) - exit1(l, 0, 0, 0); + exit1(l, 0, 0); else if ((error = copyin(SCARG_P32(uap, uc), &uc, sizeof(uc))) != 0) return error; Index: src/sys/kern/kern_exec.c diff -u src/sys/kern/kern_exec.c:1.425 src/sys/kern/kern_exec.c:1.426 --- src/sys/kern/kern_exec.c:1.425 Mon Apr 4 16:47:57 2016 +++ src/sys/kern/kern_exec.c Mon Apr 4 19:07:06 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_exec.c,v 1.425 2016/04/04 20:47:57 christos Exp $ */ +/* $NetBSD: kern_exec.c,v 1.426 2016/04/04 23:07:06 christos Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -59,7 +59,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_exec.c,v 1.425 2016/04/04 20:47:57 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_exec.c,v 1.426 2016/04/04 23:07:06 christos Exp $"); #include "opt_exec.h" #include "opt_execfmt.h" @@ -1350,7 +1350,7 @@ execve_runproc(struct lwp *l, struct exe /* Acquire the sched-state mutex (exit1() will release it). */ if (!is_spawn) { mutex_enter(p->p_lock); - exit1(l, error, SIGABRT, 0); + exit1(l, error, SIGABRT); } return error; @@ -2229,7 +2229,7 @@ spawn_return(void *arg) * A NetBSD specific workaround is POSIX_SPAWN_RETURNERROR as * flag bit in the attrp argument to posix_spawn(2), see above. */ - exit1(l, 127, 0, 0); + exit1(l, 127, 0); } void Index: src/sys/kern/kern_exit.c diff -u src/sys/kern/kern_exit.c:1.252 src/sys/kern/kern_exit.c:1.253 --- src/sys/kern/kern_exit.c:1.252 Mon Apr 4 16:47:57 2016 +++ src/sys/kern/kern_exit.c Mon Apr 4 19:07:06 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_exit.c,v 1.252 2016/04/04 20:47:57 christos Exp $ */ +/* $NetBSD: kern_exit.c,v 1.253 2016/04/04 23:07:06 christos Exp $ */ /*- * Copyright (c) 1998, 1999, 2006, 2007, 2008 The NetBSD Foundation, Inc. @@ -67,7 +67,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_exit.c,v 1.252 2016/04/04 20:47:57 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_exit.c,v 1.253 2016/04/04 23:07:06 christos Exp $"); #include "opt_ktrace.h" #include "opt_dtrace.h" @@ -183,7 +183,7 @@ sys_exit(struct lwp *l, const struct sys } /* exit1() will release the mutex. */ - exit1(l, SCARG(uap, rval), 0, 0); + exit1(l, SCARG(uap, rval), 0); /* NOTREACHED */ return (0); } @@ -196,7 +196,7 @@ sys_exit(struct lwp *l, const struct sys * Must be called with p->p_lock held. Does not return. */ void -exit1(struct lwp *l, int exitcode, int signo, int coredump) +exit1(struct lwp *l, int exitcode, int signo) { struct proc *p, *child, *next_child, *old_parent, *new_parent; struct pgrp *pgrp; @@ -307,8 +307,6 @@ exit1(struct lwp *l, int exitcode, int s p->p_xexit = exitcode; p->p_xsig = signo; - if (coredump) - p->p_sflag |= PS_COREDUMP; /* * If emulation has process exit hook, call it now. Index: src/sys/kern/kern_lwp.c diff -u src/sys/kern/kern_lwp.c:1.183 src/sys/kern/kern_lwp.c:1.184 --- src/sys/kern/kern_lwp.c:1.183 Mon Apr 4 16:47:57 2016 +++ src/sys/kern/kern_lwp.c Mon Apr 4 19:07:06 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_lwp.c,v 1.183 2016/04/04 20:47:57 christos Exp $ */ +/* $NetBSD: kern_lwp.c,v 1.184 2016/04/04 23:07:06 christos Exp $ */ /*- * Copyright (c) 2001, 2006, 2007, 2008, 2009 The NetBSD Foundation, Inc. @@ -211,7 +211,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_lwp.c,v 1.183 2016/04/04 20:47:57 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_lwp.c,v 1.184 2016/04/04 23:07:06 christos Exp $"); #include "opt_ddb.h" #include "opt_lockdebug.h" @@ -1043,7 +1043,7 @@ lwp_exit(struct lwp *l) KASSERT(current == true); KASSERT(p != &proc0); /* XXXSMP kernel_lock not held */ - exit1(l, 0, 0, 0); + exit1(l, 0, 0); /* NOTREACHED */ } p->p_nzlwps++; Index: src/sys/kern/kern_sig.c diff -u src/sys/kern/kern_sig.c:1.322 src/sys/kern/kern_sig.c:1.323 --- src/sys/kern/kern_sig.c:1.322 Mon Apr 4 16:47:57 2016 +++ src/sys/kern/kern_sig.c Mon Apr 4 19:07:06 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_sig.c,v 1.322 2016/04/04 20:47:57 christos Exp $ */ +/* $NetBSD: kern_sig.c,v 1.323 2016/04/04 23:07:06 christos Exp $ */ /*- * Copyright (c) 2006, 2007, 2008 The NetBSD Foundation, Inc. @@ -70,7 +70,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_sig.c,v 1.322 2016/04/04 20:47:57 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_sig.c,v 1.323 2016/04/04 23:07:06 christos Exp $"); #include "opt_ptrace.h" #include "opt_dtrace.h" @@ -1946,7 +1946,7 @@ killproc(struct proc *p, const char *why void sigexit(struct lwp *l, int signo) { - int exitsig, error, docore, coreflag = 0; + int exitsig, error, docore; struct proc *p; struct lwp *t; @@ -2017,8 +2017,7 @@ sigexit(struct lwp *l, int signo) if (docore) { mutex_exit(p->p_lock); - if ((error = (*coredump_vec)(l, NULL)) == 0) - coreflag = 1; + error = (*coredump_vec)(l, NULL); if (kern_logsigexit) { int uid = l->l_cred ? @@ -2037,12 +2036,14 @@ sigexit(struct lwp *l, int signo) #endif /* PAX_SEGVGUARD */ /* Acquire the sched state mutex. exit1() will release it. */ mutex_enter(p->p_lock); + if (error == 0) + p->p_sflag |= PS_COREDUMP; } /* No longer dumping core. */ p->p_sflag &= ~PS_WCORE; - exit1(l, 0, exitsig, coreflag); + exit1(l, 0, exitsig); /* NOTREACHED */ } Index: src/sys/sys/proc.h diff -u src/sys/sys/proc.h:1.328 src/sys/sys/proc.h:1.329 --- src/sys/sys/proc.h:1.328 Mon Apr 4 16:47:57 2016 +++ src/sys/sys/proc.h Mon Apr 4 19:07:06 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: proc.h,v 1.328 2016/04/04 20:47:57 christos Exp $ */ +/* $NetBSD: proc.h,v 1.329 2016/04/04 23:07:06 christos Exp $ */ /*- * Copyright (c) 2006, 2007, 2008 The NetBSD Foundation, Inc. @@ -491,7 +491,7 @@ int tsleep(wchan_t, pri_t, const char *, int mtsleep(wchan_t, pri_t, const char *, int, kmutex_t *); void wakeup(wchan_t); int kpause(const char *, bool, int, kmutex_t *); -void exit1(struct lwp *, int, int, int) __dead; +void exit1(struct lwp *, int, int) __dead; int kill1(struct lwp *l, pid_t pid, ksiginfo_t *ksi, register_t *retval); int do_sys_wait(int *, int *, int, struct rusage *); struct proc *proc_alloc(void); Index: src/sys/sys/sysctl.h diff -u src/sys/sys/sysctl.h:1.219 src/sys/sys/sysctl.h:1.220 --- src/sys/sys/sysctl.h:1.219 Mon Jan 18 18:27:49 2016 +++ src/sys/sys/sysctl.h Mon Apr 4 19:07:06 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: sysctl.h,v 1.219 2016/01/18 23:27:49 pooka Exp $ */ +/* $NetBSD: sysctl.h,v 1.220 2016/04/04 23:07:06 christos Exp $ */ /* * Copyright (c) 1989, 1993 @@ -38,6 +38,7 @@ #define _SYS_SYSCTL_H_ #include <sys/param.h> /* precautionary upon removal from ucred.h */ +#include <sys/wait.h> /* WCOREFLAG */ #include <sys/proc.h> /* Needed for things like P_ZOMBIE() and LW_SINTR */ #include <uvm/uvm_param.h>