summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormickey <mickey@openbsd.org>2003-04-11 00:25:40 +0000
committermickey <mickey@openbsd.org>2003-04-11 00:25:40 +0000
commit7882195e3b0c889c768509dca9a34691a41da566 (patch)
tree9a80605531b006603cd852716943bcc21b8f9db5
parentcount traps and interrupts (diff)
downloadwireguard-openbsd-7882195e3b0c889c768509dca9a34691a41da566.tar.xz
wireguard-openbsd-7882195e3b0c889c768509dca9a34691a41da566.zip
always reread curproc and frame on return from the system call
-rw-r--r--sys/arch/hppa/hppa/trap.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/sys/arch/hppa/hppa/trap.c b/sys/arch/hppa/hppa/trap.c
index 39dd13df0cc..36a253d8a26 100644
--- a/sys/arch/hppa/hppa/trap.c
+++ b/sys/arch/hppa/hppa/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.64 2003/04/11 00:24:09 mickey Exp $ */
+/* $OpenBSD: trap.c,v 1.65 2003/04/11 00:25:40 mickey Exp $ */
/*
* Copyright (c) 1998-2003 Michael Shalayeff
@@ -602,10 +602,10 @@ syscall(struct trapframe *frame)
else
#endif
oerror = error = (*callp->sy_call)(p, args, rval);
+ p = curproc;
+ frame = p->p_md.md_regs;
switch (error) {
case 0:
- p = curproc; /* changes on exec() */
- frame = p->p_md.md_regs;
frame->tf_ret0 = rval[0];
frame->tf_ret1 = rval[!retq];
frame->tf_t1 = 0;
@@ -613,10 +613,7 @@ syscall(struct trapframe *frame)
case ERESTART:
frame->tf_iioq_head -= 12;
frame->tf_iioq_tail -= 12;
- break;
case EJUSTRETURN:
- p = curproc;
- frame = p->p_md.md_regs;
break;
default:
bad: