Skip to contentSkip to conversation

Hazard problem in tlb-r4k.c

PATCH Carsten Langgaard 1 participant 1 message May 17, 2002 MIPS

lore
Share & tools
lore
#0 lore raw

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
diff -u -r1.6.2.3 tlb-r4k.c
@@ -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;
 			}