diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2006-02-22 16:15:45 -0800 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-03-20 01:13:57 -0800 |
commit | fc504928677049f0ad3f1fd4e0bb3908172df8f3 (patch) | |
tree | f55fc6a9061b0eac3f0465df412286caf83b3fbd /arch/sparc64 | |
parent | d7744a09504d5ae84edc8289a02254e1f2102410 (diff) | |
download | op-kernel-dev-fc504928677049f0ad3f1fd4e0bb3908172df8f3.zip op-kernel-dev-fc504928677049f0ad3f1fd4e0bb3908172df8f3.tar.gz |
[SPARC64]: Drop %gl to 0 before re-enabling PSTATE_IE in rtrap
If we take a window fault, on SUN4V set %gl to zero before we
turn PSTATE_IE back on in %pstate. Otherwise if we take an
interrupt we'll end up with corrupt register state.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64')
-rw-r--r-- | arch/sparc64/kernel/rtrap.S | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/sparc64/kernel/rtrap.S b/arch/sparc64/kernel/rtrap.S index 1e724fe..7130e86 100644 --- a/arch/sparc64/kernel/rtrap.S +++ b/arch/sparc64/kernel/rtrap.S @@ -333,7 +333,6 @@ user_rtt_fill_fixup: mov %g6, %l1 wrpr %g0, 0x0, %tl - wrpr %g0, RTRAP_PSTATE, %pstate 661: nop .section .sun4v_1insn_patch, "ax" @@ -341,6 +340,8 @@ user_rtt_fill_fixup: SET_GL(0) .previous + wrpr %g0, RTRAP_PSTATE, %pstate + mov %l1, %g6 ldx [%g6 + TI_TASK], %g4 LOAD_PER_CPU_BASE(%g5, %g6, %g1, %g2, %g3) |