diff options
-rw-r--r-- | arch/sparc64/kernel/tsb.S | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/sparc64/kernel/tsb.S b/arch/sparc64/kernel/tsb.S index be8f0892d721..7996c9d66702 100644 --- a/arch/sparc64/kernel/tsb.S +++ b/arch/sparc64/kernel/tsb.S | |||
@@ -265,13 +265,19 @@ __tsb_context_switch: | |||
265 | mov SCRATCHPAD_UTSBREG2, %g1 | 265 | mov SCRATCHPAD_UTSBREG2, %g1 |
266 | stxa %g2, [%g1] ASI_SCRATCHPAD | 266 | stxa %g2, [%g1] ASI_SCRATCHPAD |
267 | 267 | ||
268 | /* Save away %o5's %pstate, we have to use %o5 for | ||
269 | * the hypervisor call. | ||
270 | */ | ||
271 | mov %o5, %g1 | ||
272 | |||
268 | mov HV_FAST_MMU_TSB_CTXNON0, %o5 | 273 | mov HV_FAST_MMU_TSB_CTXNON0, %o5 |
269 | mov 1, %o0 | 274 | mov 1, %o0 |
270 | mov %o4, %o1 | 275 | mov %o4, %o1 |
271 | ta HV_FAST_TRAP | 276 | ta HV_FAST_TRAP |
272 | 277 | ||
278 | /* Finish up and restore %o5. */ | ||
273 | ba,pt %xcc, 9f | 279 | ba,pt %xcc, 9f |
274 | nop | 280 | mov %g1, %o5 |
275 | 281 | ||
276 | /* SUN4U TSB switch. */ | 282 | /* SUN4U TSB switch. */ |
277 | 1: mov TSB_REG, %g1 | 283 | 1: mov TSB_REG, %g1 |