Skip to content

Commit

Permalink
[SPARC64]: Do not write garbage into %pstate in tsb_context_switch().
Browse files Browse the repository at this point in the history
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: David S. Miller <davem@davemloft.net>
  • Loading branch information
David S. Miller committed Mar 20, 2006
1 parent de635d8 commit a7b31ba
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion arch/sparc64/kernel/tsb.S
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit a7b31ba

Please sign in to comment.