diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2006-02-17 01:23:45 +0100 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-03-20 10:13:19 +0100 |
commit | af02bec66294c76fba181c665c68a31fd4392020 (patch) | |
tree | f741bdd782c719cba6dd8efe01f107a46d115a27 /arch/sparc64/kernel/rtrap.S | |
parent | [SPARC64]: Add GET_GL_GLOBAL() macro for SUN4V. (diff) | |
download | linux-af02bec66294c76fba181c665c68a31fd4392020.tar.xz linux-af02bec66294c76fba181c665c68a31fd4392020.zip |
[SPARC64]: Fix return from trap on SUN4V.
We need to set the global register set _AND_ disable
PSTATE_IE in %pstate. The original patch sequence was
leaving PSTATE_IE enabled when returning to kernel mode,
oops.
This fixes the random register corruption being seen
on SUN4V.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64/kernel/rtrap.S')
-rw-r--r-- | arch/sparc64/kernel/rtrap.S | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/sparc64/kernel/rtrap.S b/arch/sparc64/kernel/rtrap.S index 551f71982008..1e724fe172ae 100644 --- a/arch/sparc64/kernel/rtrap.S +++ b/arch/sparc64/kernel/rtrap.S @@ -234,8 +234,10 @@ rt_continue: ldx [%sp + PTREGS_OFF + PT_V9_G1], %g1 /* Normal globals are restored, go to trap globals. */ 661: wrpr %g0, RTRAP_PSTATE_AG_IRQOFF, %pstate - .section .sun4v_1insn_patch, "ax" + nop + .section .sun4v_2insn_patch, "ax" .word 661b + wrpr %g0, RTRAP_PSTATE_IRQOFF, %pstate SET_GL(1) .previous |