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