summaryrefslogtreecommitdiffstats
path: root/arch/mips64/kernel
diff options
context:
space:
mode:
authorUlf Carlsson <md1ulfc@mdstud.chalmers.se>2000-07-08 13:57:48 +0000
committerUlf Carlsson <md1ulfc@mdstud.chalmers.se>2000-07-08 13:57:48 +0000
commit2d25612a92c62b5708d6d43f38d28c6141173328 (patch)
tree7541cd2697d70a54b41b65fc9cb9ba3c4d23974e /arch/mips64/kernel
parent1fcb7623bc138d780101d7a70cfe29b11f7c67ef (diff)
We have to enable interrupts *AFTER* we read CP0_BADVADDR.
We should not do ret_from_irq after a page fault.
Diffstat (limited to 'arch/mips64/kernel')
-rw-r--r--arch/mips64/kernel/r4k_tlb_glue.S5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/mips64/kernel/r4k_tlb_glue.S b/arch/mips64/kernel/r4k_tlb_glue.S
index 8713172df..a59b97735 100644
--- a/arch/mips64/kernel/r4k_tlb_glue.S
+++ b/arch/mips64/kernel/r4k_tlb_glue.S
@@ -32,14 +32,15 @@ ld $6, PT_R6(sp)
ld $7, PT_R7(sp)
ld $2, PT_R2(sp)
#endif
- __BUILD_\interruptible
dmfc0 a2, CP0_BADVADDR
li a1, \writebit
sd a2, PT_BVADDR(sp)
move a0, sp
+ __BUILD_\interruptible
jal do_page_fault
- j ret_from_sys_call
END(__\name)
+ RESTORE_ALL
+ eret
.endm
tlb_handler xtlb_mod sti 1