Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 18 Jun 2008 18:55:19 +0000 (11:55 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 18 Jun 2008 18:55:19 +0000 (11:55 -0700)
* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
  [POWERPC] Clear sub-page HPTE present bits when demoting page size
  [POWERPC] 4xx: Clear new TLB cache attribute bits in Data Storage vector

arch/powerpc/kernel/head_44x.S
arch/powerpc/mm/hash_low_64.S

index c2b9dc4fce5d24a4021972f5337d66828faca918..22b5d2c459a3bb927bd157966843e71ac729b69b 100644 (file)
@@ -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
index 21d248486479e29b2f6e59d026b29e812ab26c67..70f4c833fa32c51b300c3a69bb53b00f4925e3a9 100644 (file)
@@ -568,6 +568,10 @@ htab_inval_old_hpte:
        ld      r7,STK_PARM(r9)(r1)     /* ssize */
        ld      r8,STK_PARM(r8)(r1)     /* local */
        bl      .flush_hash_page
+       /* Clear out _PAGE_HPTE_SUB bits in the new linux PTE */
+       lis     r0,_PAGE_HPTE_SUB@h
+       ori     r0,r0,_PAGE_HPTE_SUB@l
+       andc    r30,r30,r0
        b       htab_insert_pte
        
 htab_bail_ok: