aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc/kernel/etrap_32.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sparc/kernel/etrap_32.S')
-rw-r--r--arch/sparc/kernel/etrap_32.S18
1 files changed, 13 insertions, 5 deletions
diff --git a/arch/sparc/kernel/etrap_32.S b/arch/sparc/kernel/etrap_32.S
index 84b5f0d2afde..e3e80d65e39a 100644
--- a/arch/sparc/kernel/etrap_32.S
+++ b/arch/sparc/kernel/etrap_32.S
@@ -234,7 +234,8 @@ tsetup_srmmu_stackchk:
234 234
235 cmp %glob_tmp, %sp 235 cmp %glob_tmp, %sp
236 bleu,a 1f 236 bleu,a 1f
237 lda [%g0] ASI_M_MMUREGS, %glob_tmp ! read MMU control 237LEON_PI( lda [%g0] ASI_LEON_MMUREGS, %glob_tmp) ! read MMU control
238SUN_PI_( lda [%g0] ASI_M_MMUREGS, %glob_tmp) ! read MMU control
238 239
239trap_setup_user_stack_is_bolixed: 240trap_setup_user_stack_is_bolixed:
240 /* From user/kernel into invalid window w/bad user 241 /* From user/kernel into invalid window w/bad user
@@ -249,18 +250,25 @@ trap_setup_user_stack_is_bolixed:
2491: 2501:
250 /* Clear the fault status and turn on the no_fault bit. */ 251 /* Clear the fault status and turn on the no_fault bit. */
251 or %glob_tmp, 0x2, %glob_tmp ! or in no_fault bit 252 or %glob_tmp, 0x2, %glob_tmp ! or in no_fault bit
252 sta %glob_tmp, [%g0] ASI_M_MMUREGS ! set it 253LEON_PI(sta %glob_tmp, [%g0] ASI_LEON_MMUREGS) ! set it
254SUN_PI_(sta %glob_tmp, [%g0] ASI_M_MMUREGS) ! set it
253 255
254 /* Dump the registers and cross fingers. */ 256 /* Dump the registers and cross fingers. */
255 STORE_WINDOW(sp) 257 STORE_WINDOW(sp)
256 258
257 /* Clear the no_fault bit and check the status. */ 259 /* Clear the no_fault bit and check the status. */
258 andn %glob_tmp, 0x2, %glob_tmp 260 andn %glob_tmp, 0x2, %glob_tmp
259 sta %glob_tmp, [%g0] ASI_M_MMUREGS 261LEON_PI(sta %glob_tmp, [%g0] ASI_LEON_MMUREGS)
262SUN_PI_(sta %glob_tmp, [%g0] ASI_M_MMUREGS)
263
260 mov AC_M_SFAR, %glob_tmp 264 mov AC_M_SFAR, %glob_tmp
261 lda [%glob_tmp] ASI_M_MMUREGS, %g0 265LEON_PI(lda [%glob_tmp] ASI_LEON_MMUREGS, %g0)
266SUN_PI_(lda [%glob_tmp] ASI_M_MMUREGS, %g0)
267
262 mov AC_M_SFSR, %glob_tmp 268 mov AC_M_SFSR, %glob_tmp
263 lda [%glob_tmp] ASI_M_MMUREGS, %glob_tmp ! save away status of winstore 269LEON_PI(lda [%glob_tmp] ASI_LEON_MMUREGS, %glob_tmp)! save away status of winstore
270SUN_PI_(lda [%glob_tmp] ASI_M_MMUREGS, %glob_tmp) ! save away status of winstore
271
264 andcc %glob_tmp, 0x2, %g0 ! did we fault? 272 andcc %glob_tmp, 0x2, %g0 ! did we fault?
265 bne trap_setup_user_stack_is_bolixed ! failure 273 bne trap_setup_user_stack_is_bolixed ! failure
266 nop 274 nop