Commit a7b31bac authored by David S. Miller's avatar David S. Miller
Browse files

[SPARC64]: Do not write garbage into %pstate in tsb_context_switch().



For SUN4V, we were clobbering %o5 to do the hypervisor call.
This clobbers the saved %pstate value and we end up writing
garbage into that register as a result.  Oops.

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent de635d83
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -265,13 +265,19 @@ __tsb_context_switch:
	mov	SCRATCHPAD_UTSBREG2, %g1
	stxa	%g2, [%g1] ASI_SCRATCHPAD

	/* Save away %o5's %pstate, we have to use %o5 for
	 * the hypervisor call.
	 */
	mov	%o5, %g1

	mov	HV_FAST_MMU_TSB_CTXNON0, %o5
	mov	1, %o0
	mov	%o4, %o1
	ta	HV_FAST_TRAP

	/* Finish up and restore %o5.  */
	ba,pt	%xcc, 9f
	 nop
	 mov	%g1, %o5

	/* SUN4U TSB switch.  */
1:	mov	TSB_REG, %g1