powerpc: Fix TLB invalidation on boot on 32-bit
authorRocky Craig <rocky.craig@hp.com>
Thu, 14 Aug 2008 13:11:54 +0000 (23:11 +1000)
committerPaul Mackerras <paulus@samba.org>
Mon, 18 Aug 2008 04:22:34 +0000 (14:22 +1000)
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>
arch/powerpc/kernel/head_32.S

index 99ee2f0f0f2bdcef067df7179e9614c459838983..8bb65751929948fbc35e29fce9fb899058d9b39a 100644 (file)
@@ -1155,7 +1155,7 @@ flush_tlbs:
        lis     r10, 0x40
 1:     addic.  r10, r10, -0x1000
        tlbie   r10
-       blt     1b
+       bgt     1b
        sync
        blr