diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-07-10 23:18:26 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-07-10 23:18:26 +0000 |
commit | c7c4310f7fc1485925d800628bf50b3aeab535ef (patch) | |
tree | b12aa4be0e8fb82aaaea97fb475e793e8a347c49 /arch/sparc64/mm/ultra.S | |
parent | 1ffd1d069ca4c5ffe16fea6175dab1b9bbb15820 (diff) |
Merge with Linux 2.4.0-test3-pre8. Linus has accepted most of what
I've sent him, so we're very close to full integration of the MIPS
port into his sources.
Diffstat (limited to 'arch/sparc64/mm/ultra.S')
-rw-r--r-- | arch/sparc64/mm/ultra.S | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/arch/sparc64/mm/ultra.S b/arch/sparc64/mm/ultra.S index 90cc898ff..e954b24c8 100644 --- a/arch/sparc64/mm/ultra.S +++ b/arch/sparc64/mm/ultra.S @@ -432,4 +432,24 @@ xcall_flush_cache_all: nop flush %g6 retry + + .globl xcall_call_function +xcall_call_function: + mov TLB_TAG_ACCESS, %g5 ! wheee... + stxa %g1, [%g5] ASI_IMMU ! save call_data here for a bit + membar #Sync + rdpr %pstate, %g2 + wrpr %g2, PSTATE_IG | PSTATE_AG, %pstate + mov TLB_TAG_ACCESS, %g2 + ldxa [%g2] ASI_IMMU, %g5 + rdpr %pil, %g2 + wrpr %g0, 15, %pil + sethi %hi(109f), %g7 + b,pt %xcc, etrap_irq +109: or %g7, %lo(109b), %g7 + call smp_call_function_client + mov %l5, %o0 + b,pt %xcc, rtrap + clr %l6 + #endif /* CONFIG_SMP */ |