소스 검색

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 17 년 전
부모
커밋
9acd57ca74
1개의 변경된 파일1개의 추가작업 그리고 1개의 파일을 삭제
  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