Hazard problem in tlb-r4k.c
There seems to be a hazard problem in the local_flush_tlb_range function in tlb-r4k.c, which the patch below will fix.
It could hit anyone, but it probably only a problem on CPUs, which doesn't allow matching entries in the TLB.
/Carsten
--
_ _ ____ ___ Carsten Langgaard Mailto:[email protected] |\ /|||___)(___ MIPS Denmark Direct: +45 4486 5527 | \/ ||| ____) Lautrupvang 4B Switch: +45 4486 5555 TECHNOLOGIES 2750 Ballerup Fax...: +45 4486 5556 Denmark http://www.mips.com
Index: arch/mips/mm/tlb-r4k.c
===================================================================
RCS file: /cvs/linux/arch/mips/mm/tlb-r4k.c,v
retrieving revision 1.6.2.3
mips/mm/tlb-r4k.c +1 -2
@@ -119,12 +119,11 @@ idx =get_index ();set_entrylo0 (0 );set_entrylo1 (0 ); -set_entryhi (KSEG0 );if (idx <0 )continue ; -BARRIER ;/* Make sure all entries differ. */ set_entryhi (KSEG0 +idx*0x2000 ); +BARRIER ;tlb_write_indexed ();BARRIER ; }