patch-2.4.0-test3 linux/arch/mips64/kernel/r4k_tlb_glue.S

Next file: linux/arch/mips64/kernel/scall_o32.S
Previous file: linux/arch/mips64/kernel/r4k_tlb.S
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test2/linux/arch/mips64/kernel/r4k_tlb_glue.S linux/arch/mips64/kernel/r4k_tlb_glue.S
@@ -13,16 +13,6 @@
 #include <asm/regdef.h>
 #include <asm/stackframe.h>
 
-	__INIT
-NESTED(__xtlb_refill_debug_tramp, PT_SIZE, sp)
-	j	__xtlb_refill_debug
-	END(__xtlb_refill_debug_tramp)
-
-NESTED(__tlb_refill_debug_tramp, PT_SIZE, sp)
-	j	__tlb_refill_debug
-	END(__tlb_refill_debug_tramp)
-	__FINIT
-
 	.macro	__BUILD_cli
 	CLI
 	.endm
@@ -31,7 +21,7 @@
 	STI
 	.endm
 
-	.macro	tlb_handler name interruptible
+	.macro	tlb_handler name interruptible writebit
 	NESTED(__\name, PT_SIZE, sp)
 	SAVE_ALL
 #if DEBUG_MIPS64
@@ -42,17 +32,17 @@
 ld $7, PT_R7(sp)
 ld $2, PT_R2(sp)
 #endif
-	__BUILD_\interruptible
-	dmfc0	t0, CP0_BADVADDR
-	sd	t0, PT_BVADDR(sp)
+	dmfc0	a2, CP0_BADVADDR
+	li	a1, \writebit
+	sd	a2, PT_BVADDR(sp)
 	move	a0, sp
-	jal	\name
-	j	return
+	__BUILD_\interruptible
+	jal	do_page_fault
 	END(__\name)
+	RESTORE_ALL
+	eret
 	.endm
 
-	tlb_handler	tlb_refill_debug cli
-	tlb_handler	xtlb_refill_debug cli
-	tlb_handler	xtlb_mod_debug sti
-	tlb_handler	xtlb_tlbl_debug sti
-	tlb_handler	xtlb_tlbs_debug sti
+	tlb_handler	xtlb_mod sti 1
+	tlb_handler	xtlb_tlbl sti 0
+	tlb_handler	xtlb_tlbs sti 1

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)