From b17879f71c2eb4a10f5a63918819d9d572b23a9a Mon Sep 17 00:00:00 2001
From: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Date: Wed, 18 Jun 2008 08:34:39 +1000
Subject: [PATCH] [POWERPC] 4xx: Clear new TLB cache attribute bits in Data
 Storage vector

A recent commit added support for the new 440x6 and 464 cores that have the
added WL1, IL1I, IL1D, IL2I, and ILD2 bits for the caching attributes in the
TLBs.  The new bits were cleared in the finish_tlb_load function, however a
similar bit of code was missed in the DataStorage interrupt vector.

Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
---
 arch/powerpc/kernel/head_44x.S | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/kernel/head_44x.S b/arch/powerpc/kernel/head_44x.S
index c2b9dc4fce5d..22b5d2c459a3 100644
--- a/arch/powerpc/kernel/head_44x.S
+++ b/arch/powerpc/kernel/head_44x.S
@@ -368,7 +368,12 @@ interrupt_base:
 
 	rlwimi	r11,r13,0,26,31		/* Insert static perms */
 
-	rlwinm	r11,r11,0,20,15		/* Clear U0-U3 */
+	/*
+	 * Clear U0-U3 and WL1 IL1I IL1D IL2I IL2D bits which are added
+	 * on newer 440 cores like the 440x6 used on AMCC 460EX/460GT (see
+	 * include/asm-powerpc/pgtable-ppc32.h for details).
+	 */
+	rlwinm	r11,r11,0,20,10
 
 	/* find the TLB index that caused the fault.  It has to be here. */
 	tlbsx	r10, 0, r10