|
14 | 14 | #include <asm/visasm.h> |
15 | 15 | #include <asm/processor.h> |
16 | 16 |
|
17 | | -#define RTRAP_PSTATE (PSTATE_TSO|PSTATE_PEF|PSTATE_PRIV|PSTATE_IE) |
18 | | -#define RTRAP_PSTATE_IRQOFF (PSTATE_TSO|PSTATE_PEF|PSTATE_PRIV) |
19 | | -#define RTRAP_PSTATE_AG_IRQOFF (PSTATE_TSO|PSTATE_PEF|PSTATE_PRIV|PSTATE_AG) |
20 | | - |
21 | 17 | #ifdef CONFIG_CONTEXT_TRACKING |
22 | 18 | # define SCHEDULE_USER schedule_user |
23 | 19 | #else |
@@ -242,52 +238,17 @@ rt_continue: ldx [%sp + PTREGS_OFF + PT_V9_G1], %g1 |
242 | 238 | wrpr %g1, %cwp |
243 | 239 | ba,a,pt %xcc, user_rtt_fill_64bit |
244 | 240 |
|
245 | | -user_rtt_fill_fixup: |
246 | | - rdpr %cwp, %g1 |
247 | | - add %g1, 1, %g1 |
248 | | - wrpr %g1, 0x0, %cwp |
249 | | - |
250 | | - rdpr %wstate, %g2 |
251 | | - sll %g2, 3, %g2 |
252 | | - wrpr %g2, 0x0, %wstate |
253 | | - |
254 | | - /* We know %canrestore and %otherwin are both zero. */ |
255 | | - |
256 | | - sethi %hi(sparc64_kern_pri_context), %g2 |
257 | | - ldx [%g2 + %lo(sparc64_kern_pri_context)], %g2 |
258 | | - mov PRIMARY_CONTEXT, %g1 |
259 | | - |
260 | | -661: stxa %g2, [%g1] ASI_DMMU |
261 | | - .section .sun4v_1insn_patch, "ax" |
262 | | - .word 661b |
263 | | - stxa %g2, [%g1] ASI_MMU |
264 | | - .previous |
265 | | - |
266 | | - sethi %hi(KERNBASE), %g1 |
267 | | - flush %g1 |
| 241 | +user_rtt_fill_fixup_dax: |
| 242 | + ba,pt %xcc, user_rtt_fill_fixup_common |
| 243 | + mov 1, %g3 |
268 | 244 |
|
269 | | - or %g4, FAULT_CODE_WINFIXUP, %g4 |
270 | | - stb %g4, [%g6 + TI_FAULT_CODE] |
271 | | - stx %g5, [%g6 + TI_FAULT_ADDR] |
| 245 | +user_rtt_fill_fixup_mna: |
| 246 | + ba,pt %xcc, user_rtt_fill_fixup_common |
| 247 | + mov 2, %g3 |
272 | 248 |
|
273 | | - mov %g6, %l1 |
274 | | - wrpr %g0, 0x0, %tl |
275 | | - |
276 | | -661: nop |
277 | | - .section .sun4v_1insn_patch, "ax" |
278 | | - .word 661b |
279 | | - SET_GL(0) |
280 | | - .previous |
281 | | - |
282 | | - wrpr %g0, RTRAP_PSTATE, %pstate |
283 | | - |
284 | | - mov %l1, %g6 |
285 | | - ldx [%g6 + TI_TASK], %g4 |
286 | | - LOAD_PER_CPU_BASE(%g5, %g6, %g1, %g2, %g3) |
287 | | - call do_sparc64_fault |
288 | | - add %sp, PTREGS_OFF, %o0 |
289 | | - ba,pt %xcc, rtrap |
290 | | - nop |
| 249 | +user_rtt_fill_fixup: |
| 250 | + ba,pt %xcc, user_rtt_fill_fixup_common |
| 251 | + clr %g3 |
291 | 252 |
|
292 | 253 | user_rtt_pre_restore: |
293 | 254 | add %g1, 1, %g1 |
|
0 commit comments