>>>>> On Mon, 02 Jun 2003 20:14:53 +0900 (JST), Atsushi Nemoto
>>>>> <anemo@mba.ocn.ne.jp> said:
anemo> If a TLB exception occured on very high address (such as
anemo> 0xffffffffffffffff), invalid_vmalloc_address should be called
anemo> but currently not.
anemo> I think it is because LOAD_KPTE2 in arch/mips64/mm/tlbex-r4k.S
anemo> does not check overflow of (kptbl + offset). Here is a patch
anemo> (both 2.4 and 2.5).
Please ignore it. I missed an another fix. The beqz lacks delay
slot. Here is a new patch.
diff -u linux-mips-cvs/arch/mips64/mm/tlbex-r4k.S
linux.new/arch/mips64/mm/tlbex-r4k.S
--- linux-mips-cvs/arch/mips64/mm/tlbex-r4k.S Mon Apr 28 09:44:54 2003
+++ linux.new/arch/mips64/mm/tlbex-r4k.S Mon Jun 2 20:16:41 2003
@@ -72,9 +72,12 @@
/*
* Determine that fault address is within vmalloc range.
*/
+ bgez \ptr, \not_vmalloc # check overflow
+ nop
dla \tmp, ekptbl
sltu \tmp, \ptr, \tmp
beqz \tmp, \not_vmalloc # not vmalloc
+ nop
.endm
---
Atsushi Nemoto
|