Ver Fonte

powerpc: Fix TLB invalidation on boot on 32-bit

The intent of "flush_tlbs" is to invalidate all TLB entries by doing a
TLB invalidate instruction for all pages in the address range 0 to
0x00400000.  A loop counter is set up at the high value and
decremented by page size.  However, the loop is only done once as the
sense of the conditional branch at the loop end does not match the
setup/decrement.  This fixes it to do the whole range by correcting
the branch condition.

Signed-off-by: Rocky Craig <rocky.craig@hp.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Rocky Craig há 16 anos atrás
pai
commit
9acd57ca74
1 ficheiros alterados com 1 adições e 1 exclusões
  1. 1 1
      arch/powerpc/kernel/head_32.S

+ 1 - 1
arch/powerpc/kernel/head_32.S

@@ -1155,7 +1155,7 @@ flush_tlbs:
 	lis	r10, 0x40
 	lis	r10, 0x40
 1:	addic.	r10, r10, -0x1000
 1:	addic.	r10, r10, -0x1000
 	tlbie	r10
 	tlbie	r10
-	blt	1b
+	bgt	1b
 	sync
 	sync
 	blr
 	blr