summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorMiod Vallat <miod@cvs.openbsd.org>2014-05-26 17:31:18 +0000
committerMiod Vallat <miod@cvs.openbsd.org>2014-05-26 17:31:18 +0000
commit5d82fb1fac0d849f96f797c75cf020658a089c5e (patch)
tree4ca55ced3760a0b6cf5bff974e98d4bbe6384f9d /sys
parenta06c16c3687c905c143dc223104b49879597d366 (diff)
Do not change the state of the carry bit in the psr when returning with
ERESTART or EJUSTRETURN, for we're not supposed to. (Actually, setting the carry bit upon syscall failure doesn't make much sense on m88k, since this is not how the syscall stubs check for failure)
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/m88k/m88k/trap.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/sys/arch/m88k/m88k/trap.c b/sys/arch/m88k/m88k/trap.c
index 8054055b12c..5e95bb0c829 100644
--- a/sys/arch/m88k/m88k/trap.c
+++ b/sys/arch/m88k/m88k/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.93 2014/05/11 00:12:44 guenther Exp $ */
+/* $OpenBSD: trap.c,v 1.94 2014/05/26 17:31:17 miod Exp $ */
/*
* Copyright (c) 2004, Miodrag Vallat.
* Copyright (c) 1998 Steve Murphree, Jr.
@@ -1265,12 +1265,10 @@ m88100_syscall(register_t code, struct trapframe *tf)
tf->tf_sfip = tf->tf_snip + 4;
break;
case ERESTART:
- tf->tf_epsr &= ~PSR_C;
tf->tf_sfip = tf->tf_snip & ~FIP_E;
tf->tf_snip = tf->tf_sxip & ~NIP_E;
break;
case EJUSTRETURN:
- tf->tf_epsr &= ~PSR_C;
break;
default:
bad:
@@ -1388,10 +1386,8 @@ m88110_syscall(register_t code, struct trapframe *tf)
* exip is already at the trap instruction, so
* there is nothing to do.
*/
- tf->tf_epsr &= ~PSR_C;
break;
case EJUSTRETURN:
- tf->tf_epsr &= ~PSR_C;
/* skip one instruction */
m88110_skip_insn(tf);
break;