diff options
author | 2003-04-11 00:25:40 +0000 | |
---|---|---|
committer | 2003-04-11 00:25:40 +0000 | |
commit | 7882195e3b0c889c768509dca9a34691a41da566 (patch) | |
tree | 9a80605531b006603cd852716943bcc21b8f9db5 | |
parent | count traps and interrupts (diff) | |
download | wireguard-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.c | 9 |
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: |