Module Name: src Committed By: jmcneill Date: Wed Dec 14 04:12:22 UTC 2011
Modified Files: src/sys/arch/usermode/dev: cpu.c src/sys/arch/usermode/include: machdep.h src/sys/arch/usermode/usermode: trap.c Log Message: need to sigaltstack for each lwp To generate a diff of this commit: cvs rdiff -u -r1.50 -r1.51 src/sys/arch/usermode/dev/cpu.c cvs rdiff -u -r1.4 -r1.5 src/sys/arch/usermode/include/machdep.h cvs rdiff -u -r1.43 -r1.44 src/sys/arch/usermode/usermode/trap.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/arch/usermode/dev/cpu.c diff -u src/sys/arch/usermode/dev/cpu.c:1.50 src/sys/arch/usermode/dev/cpu.c:1.51 --- src/sys/arch/usermode/dev/cpu.c:1.50 Tue Dec 13 12:25:42 2011 +++ src/sys/arch/usermode/dev/cpu.c Wed Dec 14 04:12:22 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: cpu.c,v 1.50 2011/12/13 12:25:42 reinoud Exp $ */ +/* $NetBSD: cpu.c,v 1.51 2011/12/14 04:12:22 jmcneill Exp $ */ /*- * Copyright (c) 2007 Jared D. McNeill <jmcne...@invisible.ca> @@ -30,7 +30,7 @@ #include "opt_hz.h" #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.50 2011/12/13 12:25:42 reinoud Exp $"); +__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.51 2011/12/14 04:12:22 jmcneill Exp $"); #include <sys/param.h> #include <sys/conf.h> @@ -302,6 +302,7 @@ cpu_lwp_trampoline(ucontext_t *ucp, void /* actual jump */ thunk_makecontext(ucp, (void (*)(void)) func, 1, arg, NULL, NULL); + thunk_sigaltstack(usermode_signal_stack(), NULL); thunk_setcontext(ucp); } Index: src/sys/arch/usermode/include/machdep.h diff -u src/sys/arch/usermode/include/machdep.h:1.4 src/sys/arch/usermode/include/machdep.h:1.5 --- src/sys/arch/usermode/include/machdep.h:1.4 Sun Nov 27 21:38:17 2011 +++ src/sys/arch/usermode/include/machdep.h Wed Dec 14 04:12:22 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: machdep.h,v 1.4 2011/11/27 21:38:17 reinoud Exp $ */ +/* $NetBSD: machdep.h,v 1.5 2011/12/14 04:12:22 jmcneill Exp $ */ /*- * Copyright (c) 2011 Reinoud Zandijk <rein...@netbsd.org> @@ -40,3 +40,5 @@ void md_syscall_dec_pc(ucontext_t *ucp, void syscall(void); void pagefault(void); +/* signal stack */ +stack_t *usermode_signal_stack(void); Index: src/sys/arch/usermode/usermode/trap.c diff -u src/sys/arch/usermode/usermode/trap.c:1.43 src/sys/arch/usermode/usermode/trap.c:1.44 --- src/sys/arch/usermode/usermode/trap.c:1.43 Tue Dec 13 17:54:01 2011 +++ src/sys/arch/usermode/usermode/trap.c Wed Dec 14 04:12:22 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: trap.c,v 1.43 2011/12/13 17:54:01 reinoud Exp $ */ +/* $NetBSD: trap.c,v 1.44 2011/12/14 04:12:22 jmcneill Exp $ */ /*- * Copyright (c) 2011 Reinoud Zandijk <rein...@netbsd.org> @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.43 2011/12/13 17:54:01 reinoud Exp $"); +__KERNEL_RCSID(0, "$NetBSD: trap.c,v 1.44 2011/12/14 04:12:22 jmcneill Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -313,4 +313,8 @@ pagefault(void) pcb->pcb_errno = lwp_errno; } - +stack_t * +usermode_signal_stack(void) +{ + return &sigstk; +}