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

Reply via email to