diff options
author | Dale Rahn <drahn@cvs.openbsd.org> | 2002-09-06 14:24:36 +0000 |
---|---|---|
committer | Dale Rahn <drahn@cvs.openbsd.org> | 2002-09-06 14:24:36 +0000 |
commit | 621fc0c10d6d9f2f7380037d6580c4af69808ad5 (patch) | |
tree | 9bb2867fd089470b3f4bb8723cd28dfaa3777bd6 /sys | |
parent | 284201d8c10822c1d342c2a286b0a219d4050235 (diff) |
Restore EE bit of MSR on return from exception, rather than blindly
enabling it. pefo@
Diffstat (limited to 'sys')
-rw-r--r-- | sys/arch/macppc/macppc/locore.S | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/arch/macppc/macppc/locore.S b/sys/arch/macppc/macppc/locore.S index 50433e85933..f7619dbf436 100644 --- a/sys/arch/macppc/macppc/locore.S +++ b/sys/arch/macppc/macppc/locore.S @@ -1,4 +1,4 @@ -/* $OpenBSD: locore.S,v 1.4 2002/07/24 02:19:28 drahn Exp $ */ +/* $OpenBSD: locore.S,v 1.5 2002/09/06 14:24:35 drahn Exp $ */ /* $NetBSD: locore.S,v 1.2 1996/10/16 19:33:09 ws Exp $ */ /* @@ -911,7 +911,10 @@ s_trap: FRAME_SETUP(tempsave) /* Now we can recover interrupts again: */ mfmsr 7 - ori 7,7,(PSL_EE|PSL_ME|PSL_RI) + mfsrr1 31 + andi. 31,31,PSL_EE /* restore EE from previous context */ + or 7,7,31 + ori 7,7,(PSL_ME|PSL_RI) mtmsr 7 isync /* Call C trap code: */ |