diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2006-02-17 23:58:02 +0100 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-03-20 10:13:32 +0100 |
commit | 6c8927c9634e8a1bc95d5291c55205707f9fa40a (patch) | |
tree | e59db7dca9ab26808703ee3c20ad59c3425024fa /arch/sparc64/kernel/tsb.S | |
parent | [SPARC64]: Check for errors in hypervisor_tlb_lock(). (diff) | |
download | linux-6c8927c9634e8a1bc95d5291c55205707f9fa40a.tar.xz linux-6c8927c9634e8a1bc95d5291c55205707f9fa40a.zip |
[SPARC64]: Fix some SUN4V TLB handling bugs.
1) Add error return checking for TLB load hypervisor
calls.
2) Don't fallthru to dtlb tsb miss handler from itlb tsb
miss handler, oops.
3) On window fixups, propagate fault information to fixup
handler correctly.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64/kernel/tsb.S')
-rw-r--r-- | arch/sparc64/kernel/tsb.S | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/sparc64/kernel/tsb.S b/arch/sparc64/kernel/tsb.S index 7996c9d66702..a17259cf34b8 100644 --- a/arch/sparc64/kernel/tsb.S +++ b/arch/sparc64/kernel/tsb.S @@ -135,8 +135,8 @@ tsb_do_fault: wrpr %g5, PSTATE_AG | PSTATE_MG, %pstate .section .sun4v_2insn_patch, "ax" .word 661b - nop - nop + SET_GL(1) + ldxa [%g0] ASI_SCRATCHPAD, %g2 .previous bne,pn %xcc, tsb_do_itlb_fault @@ -150,7 +150,7 @@ tsb_do_dtlb_fault: ldxa [%g4] ASI_DMMU, %g5 .section .sun4v_2insn_patch, "ax" .word 661b - mov %g4, %g5 + ldx [%g2 + HV_FAULT_D_ADDR_OFFSET], %g5 nop .previous |