summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormiod <miod@openbsd.org>2006-06-26 22:18:06 +0000
committermiod <miod@openbsd.org>2006-06-26 22:18:06 +0000
commit6fc9544237df7073dfe9997fb7058c0634b78958 (patch)
tree6d85d49d7135820e3e8639428f54e3cc71dfe0c8
parentEnable wide targets on FAS366 esp; note that this changes the way esp (diff)
downloadwireguard-openbsd-6fc9544237df7073dfe9997fb7058c0634b78958.tar.xz
wireguard-openbsd-6fc9544237df7073dfe9997fb7058c0634b78958.zip
Always skip the offending instruction for fpu faults, even if it is
theoretically recoverable, as there is no way we can rely on the signal handler to do this properly; consistent with other platforms, and lets a few autoconf tests in ports pass again. spotted by sturm@; reluctantly ok kettenis@
-rw-r--r--sys/arch/sparc64/sparc64/trap.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/sys/arch/sparc64/sparc64/trap.c b/sys/arch/sparc64/sparc64/trap.c
index 15a00ab5ff1..676695a8c3e 100644
--- a/sys/arch/sparc64/sparc64/trap.c
+++ b/sys/arch/sparc64/sparc64/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.41 2006/05/15 21:56:54 kettenis Exp $ */
+/* $OpenBSD: trap.c,v 1.42 2006/06/26 22:18:06 miod Exp $ */
/* $NetBSD: trap.c,v 1.73 2001/08/09 01:03:01 eeh Exp $ */
/*
@@ -693,13 +693,10 @@ badtrap:
copyin((caddr_t)pc, &p->p_md.md_fpstate->fs_queue[0].fq_instr, sizeof(int));
p->p_md.md_fpstate->fs_queue[0].fq_addr = (int *)pc;
p->p_md.md_fpstate->fs_qsize = 1;
- ADVANCE;
}
+ ADVANCE;
fpu_cleanup(p, p->p_md.md_fpstate);
/* fpu_cleanup posts signals if needed */
-#if 0 /* ??? really never??? */
- ADVANCE;
-#endif
break;
case T_TAGOF: