aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64/kernel/tsb.S
diff options
context:
space:
mode:
authorDavid S. Miller <davem@sunset.davemloft.net>2006-02-17 17:58:02 -0500
committerDavid S. Miller <davem@sunset.davemloft.net>2006-03-20 04:13:32 -0500
commit6c8927c9634e8a1bc95d5291c55205707f9fa40a (patch)
treee59db7dca9ab26808703ee3c20ad59c3425024fa /arch/sparc64/kernel/tsb.S
parent12e126ad229abc718d05600027fcd5794c1e31e5 (diff)
[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.S6
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:
135 wrpr %g5, PSTATE_AG | PSTATE_MG, %pstate 135 wrpr %g5, PSTATE_AG | PSTATE_MG, %pstate
136 .section .sun4v_2insn_patch, "ax" 136 .section .sun4v_2insn_patch, "ax"
137 .word 661b 137 .word 661b
138 nop 138 SET_GL(1)
139 nop 139 ldxa [%g0] ASI_SCRATCHPAD, %g2
140 .previous 140 .previous
141 141
142 bne,pn %xcc, tsb_do_itlb_fault 142 bne,pn %xcc, tsb_do_itlb_fault
@@ -150,7 +150,7 @@ tsb_do_dtlb_fault:
150 ldxa [%g4] ASI_DMMU, %g5 150 ldxa [%g4] ASI_DMMU, %g5
151 .section .sun4v_2insn_patch, "ax" 151 .section .sun4v_2insn_patch, "ax"
152 .word 661b 152 .word 661b
153 mov %g4, %g5 153 ldx [%g2 + HV_FAULT_D_ADDR_OFFSET], %g5
154 nop 154 nop
155 .previous 155 .previous
156 156