Module Name: src
Committed By: skrll
Date: Wed Jun 3 21:08:51 UTC 2009
Modified Files:
src/sys/arch/hp700/hp700: locore.S
src/sys/arch/hp700/include: cpu.h
src/sys/arch/hppa/hppa: vm_machdep.c
Log Message:
Do not use lwp_trampoline for cpu_setfunc, but a simplified setfunc_trampoline
that does not call lwp_startup().
To generate a diff of this commit:
cvs rdiff -u -r1.34 -r1.35 src/sys/arch/hp700/hp700/locore.S
cvs rdiff -u -r1.33 -r1.34 src/sys/arch/hp700/include/cpu.h
cvs rdiff -u -r1.35 -r1.36 src/sys/arch/hppa/hppa/vm_machdep.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/hp700/hp700/locore.S
diff -u src/sys/arch/hp700/hp700/locore.S:1.34 src/sys/arch/hp700/hp700/locore.S:1.35
--- src/sys/arch/hp700/hp700/locore.S:1.34 Sun May 24 09:17:59 2009
+++ src/sys/arch/hp700/hp700/locore.S Wed Jun 3 21:08:51 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.S,v 1.34 2009/05/24 09:17:59 skrll Exp $ */
+/* $NetBSD: locore.S,v 1.35 2009/06/03 21:08:51 skrll Exp $ */
/* $OpenBSD: locore.S,v 1.158 2008/07/28 19:08:46 miod Exp $ */
/*
@@ -982,6 +982,7 @@
.import lwp_startup, code
CALL(lwp_startup, %r1)
+ALTENTRY(setfunc_trampoline)
/* get trampoline func (%t3) and arg (%arg0) */
ldw HPPA_FRAME_ARG(3)(%sp), %arg0
ldw HPPA_FRAME_ARG(2)(%sp), %t3
Index: src/sys/arch/hp700/include/cpu.h
diff -u src/sys/arch/hp700/include/cpu.h:1.33 src/sys/arch/hp700/include/cpu.h:1.34
--- src/sys/arch/hp700/include/cpu.h:1.33 Wed May 13 14:33:42 2009
+++ src/sys/arch/hp700/include/cpu.h Wed Jun 3 21:08:51 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.h,v 1.33 2009/05/13 14:33:42 skrll Exp $ */
+/* $NetBSD: cpu.h,v 1.34 2009/06/03 21:08:51 skrll Exp $ */
/* $OpenBSD: cpu.h,v 1.55 2008/07/23 17:39:35 kettenis Exp $ */
@@ -270,6 +270,7 @@
size_t *);
int copy_on_fault(void);
void lwp_trampoline(void);
+void setfunc_trampoline(void);
int cpu_dumpsize(void);
int cpu_dump(void);
#endif
Index: src/sys/arch/hppa/hppa/vm_machdep.c
diff -u src/sys/arch/hppa/hppa/vm_machdep.c:1.35 src/sys/arch/hppa/hppa/vm_machdep.c:1.36
--- src/sys/arch/hppa/hppa/vm_machdep.c:1.35 Thu Apr 30 07:01:27 2009
+++ src/sys/arch/hppa/hppa/vm_machdep.c Wed Jun 3 21:08:51 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: vm_machdep.c,v 1.35 2009/04/30 07:01:27 skrll Exp $ */
+/* $NetBSD: vm_machdep.c,v 1.36 2009/06/03 21:08:51 skrll Exp $ */
/* $OpenBSD: vm_machdep.c,v 1.64 2008/09/30 18:54:26 miod Exp $ */
@@ -29,7 +29,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vm_machdep.c,v 1.35 2009/04/30 07:01:27 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vm_machdep.c,v 1.36 2009/06/03 21:08:51 skrll Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -200,11 +200,11 @@
*/
osp = sp;
- /* lwp_trampoline's frame */
+ /* setfunc_trampoline's frame */
sp += HPPA_FRAME_SIZE;
*(register_t *)(sp + HPPA_FRAME_PSP) = osp;
- *(register_t *)(sp + HPPA_FRAME_CRP) = (register_t)lwp_trampoline;
+ *(register_t *)(sp + HPPA_FRAME_CRP) = (register_t)setfunc_trampoline;
*HPPA_FRAME_CARG(2, sp) = KERNMODE(func);
*HPPA_FRAME_CARG(3, sp) = (register_t)arg;