summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormartin <martin@NetBSD.org>2003-02-09 19:44:19 +0000
committermartin <martin@NetBSD.org>2003-02-09 19:44:19 +0000
commit57765e72aca4b856492f4a3ce4e86c2c53fd2c6a (patch)
tree3d5f3450e38c52b8c0bedc43d5bb33f09828fb05
parent2147742d013ff578d9d95ecc6c3653e0fb016f60 (diff)
Remove left over pieces from reusing the signal trampoline for upcalls.
This should fix signal delivery for 32bit kernels.
-rw-r--r--sys/arch/sparc64/sparc64/locore.s16
-rw-r--r--sys/arch/sparc64/sparc64/machdep.c3
-rw-r--r--sys/arch/sparc64/sparc64/netbsd32_machdep.c3
3 files changed, 4 insertions, 18 deletions
diff --git a/sys/arch/sparc64/sparc64/locore.s b/sys/arch/sparc64/sparc64/locore.s
index b6b59a0596a..45689253132 100644
--- a/sys/arch/sparc64/sparc64/locore.s
+++ b/sys/arch/sparc64/sparc64/locore.s
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.170 2003/02/05 12:06:52 nakayama Exp $ */
+/* $NetBSD: locore.s,v 1.171 2003/02/09 19:44:19 martin Exp $ */
/*
* Copyright (c) 1996-2002 Eduardo Horvath
@@ -6641,11 +6641,6 @@ ENTRY(cache_flush_phys)
.globl _C_LABEL(esigcode)
_C_LABEL(sigcode):
/*
- * The next 2 instructions are skipped for signal trampolines.
- */
- ba,a,pt %xcc, 99f
- nop
- /*
* XXX the `save' and `restore' below are unnecessary: should
* replace with simple arithmetic on %sp
*
@@ -6735,14 +6730,7 @@ _C_LABEL(sigcode):
! sigreturn does not return unless it fails
mov SYS_exit, %g1 ! exit(errno)
t ST_SYSCALL
-99:
- /*
- * Upcall for scheduler activations.
- */
- call %g1
- nop
- mov SYS_exit, %g1 ! exit(errno)
- t ST_SYSCALL
+ /* NOTREACHED */
_C_LABEL(esigcode):
#endif
diff --git a/sys/arch/sparc64/sparc64/machdep.c b/sys/arch/sparc64/sparc64/machdep.c
index e5189daa355..a2a16d62980 100644
--- a/sys/arch/sparc64/sparc64/machdep.c
+++ b/sys/arch/sparc64/sparc64/machdep.c
@@ -1,4 +1,4 @@
-/* $NetBSD: machdep.c,v 1.138 2003/01/24 21:55:15 fvdl Exp $ */
+/* $NetBSD: machdep.c,v 1.139 2003/02/09 19:44:20 martin Exp $ */
/*-
* Copyright (c) 1996, 1997, 1998 The NetBSD Foundation, Inc.
@@ -663,7 +663,6 @@ sendsig(sig, mask, code)
#if 1 /* COMPAT_16 */
case 0: /* legacy on-stack sigtramp */
addr = (vaddr_t)p->p_sigctx.ps_sigcode;
- addr += 8; /* XXX skip the upcall code */
break;
#endif /* COMPAT_16 */
diff --git a/sys/arch/sparc64/sparc64/netbsd32_machdep.c b/sys/arch/sparc64/sparc64/netbsd32_machdep.c
index 0bb4e6480bb..62ef97ac894 100644
--- a/sys/arch/sparc64/sparc64/netbsd32_machdep.c
+++ b/sys/arch/sparc64/sparc64/netbsd32_machdep.c
@@ -1,4 +1,4 @@
-/* $NetBSD: netbsd32_machdep.c,v 1.29 2003/01/24 16:54:34 nakayama Exp $ */
+/* $NetBSD: netbsd32_machdep.c,v 1.30 2003/02/09 19:44:20 martin Exp $ */
/*
* Copyright (c) 1998, 2001 Matthew R. Green
@@ -270,7 +270,6 @@ netbsd32_sendsig(sig, mask, code)
*/
addr = (long)p->p_psstr - szsigcode;
tf->tf_global[1] = (long)catcher;
- addr += 8; /* XXX skip the upcall code */
tf->tf_pc = addr;
tf->tf_npc = addr + 4;
tf->tf_out[6] = (u_int64_t)(u_int)(u_long)newsp;