Module Name: src
Committed By: kamil
Date: Wed May 1 22:55:55 UTC 2019
Modified Files:
src/sys/kern: sys_lwp.c
Log Message:
Call MD code in mi_startlwp() before MI check for debugger
This allows to get initialized mcontext.
To generate a diff of this commit:
cvs rdiff -u -r1.64 -r1.65 src/sys/kern/sys_lwp.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/kern/sys_lwp.c
diff -u src/sys/kern/sys_lwp.c:1.64 src/sys/kern/sys_lwp.c:1.65
--- src/sys/kern/sys_lwp.c:1.64 Wed May 1 21:57:34 2019
+++ src/sys/kern/sys_lwp.c Wed May 1 22:55:55 2019
@@ -1,4 +1,4 @@
-/* $NetBSD: sys_lwp.c,v 1.64 2019/05/01 21:57:34 kamil Exp $ */
+/* $NetBSD: sys_lwp.c,v 1.65 2019/05/01 22:55:55 kamil Exp $ */
/*-
* Copyright (c) 2001, 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sys_lwp.c,v 1.64 2019/05/01 21:57:34 kamil Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sys_lwp.c,v 1.65 2019/05/01 22:55:55 kamil Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -75,6 +75,8 @@ mi_startlwp(void *arg)
struct lwp *l = curlwp;
struct proc *p = l->l_proc;
+ (p->p_emul->e_startlwp)(arg);
+
/* If the process is traced, report lwp creation to a debugger */
if ((p->p_slflag & (PSL_TRACED|PSL_TRACELWP_CREATE|PSL_SYSCALL)) ==
(PSL_TRACED|PSL_TRACELWP_CREATE)) {
@@ -83,7 +85,7 @@ mi_startlwp(void *arg)
if ((p->p_slflag & (PSL_TRACED|PSL_TRACELWP_CREATE|PSL_SYSCALL)) !=
(PSL_TRACED|PSL_TRACELWP_CREATE)) {
mutex_exit(proc_lock);
- goto my_tracer_is_gone;
+ return;
}
mutex_enter(p->p_lock);
@@ -92,9 +94,6 @@ mi_startlwp(void *arg)
// XXX ktrpoint(KTR_PSIG)
mutex_exit(p->p_lock);
}
-
-my_tracer_is_gone:
- (p->p_emul->e_startlwp)(arg);
}
int