summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2001-04-18 17:17:55 +0000
committerjhb <jhb@FreeBSD.org>2001-04-18 17:17:55 +0000
commit82131f7a660dcea81c8a5ab014109eabe6919132 (patch)
treed713156ccc133c82b12b6c3fb5c8d963b2ebd2b5
parentfe80a1fb97a193b04c1f861a96313a285211e002 (diff)
downloadFreeBSD-src-82131f7a660dcea81c8a5ab014109eabe6919132.zip
FreeBSD-src-82131f7a660dcea81c8a5ab014109eabe6919132.tar.gz
Back out the previous revision as it causes random sig 11's to userland
processes until a better fix is found. Submitted by: gallatin
-rw-r--r--sys/alpha/alpha/exception.s10
1 files changed, 3 insertions, 7 deletions
diff --git a/sys/alpha/alpha/exception.s b/sys/alpha/alpha/exception.s
index 842cc35..bc8ee57 100644
--- a/sys/alpha/alpha/exception.s
+++ b/sys/alpha/alpha/exception.s
@@ -254,19 +254,15 @@ LEAF(exception_return, 1) /* XXX should be NESTED */
Ler1: LDGP(pv)
ldq s1, (FRAME_PS * 8)(sp) /* get the saved PS */
- and s1, ALPHA_PSL_USERMODE, t0 /* are we returning to user? */
- beq t0, Lkernelret /* no: kernel return */
-
and s1, ALPHA_PSL_IPL_MASK, t0 /* look at the saved IPL */
bne t0, Lrestoreregs /* != 0: can't do AST or SIR */
+ and s1, ALPHA_PSL_USERMODE, t0 /* are we returning to user? */
+ beq t0, Lrestoreregs /* no: just return */
+
/* Handle any AST's or resched's. */
mov sp, a0 /* only arg is frame */
CALL(ast)
- br Lrestoreregs
-
-Lkernelret:
- stq globalp,(FRAME_T7*8)(sp) /* fixup globalp */
Lrestoreregs:
/* set the hae register if this process has specified a value */
OpenPOWER on IntegriCloud