Module Name: src
Committed By: matt
Date: Thu Dec 1 03:50:09 UTC 2011
Modified Files:
src/sys/arch/mips/mips [matt-nb5-mips64]: mipsX_subr.S
Log Message:
When trying to map the stack of the current lwp into TLB, if the stack was
mapped via KSEGX skip the load.
To generate a diff of this commit:
cvs rdiff -u -r1.26.36.1.2.47 -r1.26.36.1.2.48 \
src/sys/arch/mips/mips/mipsX_subr.S
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/mips/mips/mipsX_subr.S
diff -u src/sys/arch/mips/mips/mipsX_subr.S:1.26.36.1.2.47 src/sys/arch/mips/mips/mipsX_subr.S:1.26.36.1.2.48
--- src/sys/arch/mips/mips/mipsX_subr.S:1.26.36.1.2.47 Thu Nov 3 18:29:27 2011
+++ src/sys/arch/mips/mips/mipsX_subr.S Thu Dec 1 03:50:08 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: mipsX_subr.S,v 1.26.36.1.2.47 2011/11/03 18:29:27 matt Exp $ */
+/* $NetBSD: mipsX_subr.S,v 1.26.36.1.2.48 2011/12/01 03:50:08 matt Exp $ */
/*
* Copyright 2002 Wasabi Systems, Inc.
@@ -2404,7 +2404,7 @@ END(MIPSX(setfunc_trampoline))
* sure TBIS(it) in the case.
*/
LEAF_NOPROFILE(MIPSX(cpu_switch_resume))
-#if !defined(ENABLE_MIPS_16KB_PAGE) || defined(VMSWAP_UAREA)
+#if PAGE_SIZE < USPACE
INT_L a1, L_MD_UPTE_0(a0) # a1 = upte[0]
INT_L a2, L_MD_UPTE_1(a0) # a2 = upte[1]
PTR_L v0, L_PCB(a0) # va = l->l_addr
@@ -2412,6 +2412,15 @@ LEAF_NOPROFILE(MIPSX(cpu_switch_resume))
li t0, VM_MIN_KERNEL_ADDRESS # compute index
blt v0, t0, MIPSX(resume)
nop
+#if defined(ENABLE_MIPS_KSEGX)
+ li t0, VM_KSEGX_ADDRESS # below KSEGX?
+ blt v0, t0, 1f
+ nop
+ li t0, VM_KSEGX_ADDRESS+VM_KSEGX_SIZE # within KSEGX?
+ blt v0, t0, MIPSX(resume)
+ nop
+1:
+#endif
#else
li t0, MIPS_KSEG0_START # above XKSEG?
blt t0, v0, MIPSX(resume)
@@ -2482,7 +2491,7 @@ MIPSX(entry0set):
INT_S zero, 0(a3) # clear tlb lock
#endif
MIPSX(resume):
-#endif /* !ENABLE_MIPS_16KB_PAGE || VMSWAP_UAREA */
+#endif /* PAGE_SIZE < USPACE */
#if (MIPS32R2 + MIPS64R2 + MIPS64R2_RMIXL) > 0
PTR_L v0, L_PRIVATE(a0) # get lwp private
_MTC0 v0, MIPS_COP_0_TLB_CONTEXT, 4 # make available for rdhwr