[SPARC64]: Fix return from trap on SUN4V.
authorDavid S. Miller <davem@sunset.davemloft.net>
Fri, 17 Feb 2006 00:23:45 +0000 (16:23 -0800)
committerDavid S. Miller <davem@sunset.davemloft.net>
Mon, 20 Mar 2006 09:13:19 +0000 (01:13 -0800)
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>
arch/sparc64/kernel/rtrap.S

index 551f719..1e724fe 100644 (file)
@@ -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