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>