diff options
| -rw-r--r-- | arch/powerpc/kernel/head_44x.S | 7 | ||||
| -rw-r--r-- | arch/powerpc/mm/hash_low_64.S | 4 |
2 files changed, 10 insertions, 1 deletions
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: | |||
| 368 | 368 | ||
| 369 | rlwimi r11,r13,0,26,31 /* Insert static perms */ | 369 | rlwimi r11,r13,0,26,31 /* Insert static perms */ |
| 370 | 370 | ||
| 371 | rlwinm r11,r11,0,20,15 /* Clear U0-U3 */ | 371 | /* |
| 372 | * Clear U0-U3 and WL1 IL1I IL1D IL2I IL2D bits which are added | ||
| 373 | * on newer 440 cores like the 440x6 used on AMCC 460EX/460GT (see | ||
| 374 | * include/asm-powerpc/pgtable-ppc32.h for details). | ||
| 375 | */ | ||
| 376 | rlwinm r11,r11,0,20,10 | ||
| 372 | 377 | ||
| 373 | /* find the TLB index that caused the fault. It has to be here. */ | 378 | /* find the TLB index that caused the fault. It has to be here. */ |
| 374 | tlbsx r10, 0, r10 | 379 | tlbsx r10, 0, r10 |
diff --git a/arch/powerpc/mm/hash_low_64.S b/arch/powerpc/mm/hash_low_64.S index 21d248486479..70f4c833fa32 100644 --- a/arch/powerpc/mm/hash_low_64.S +++ b/arch/powerpc/mm/hash_low_64.S | |||
| @@ -568,6 +568,10 @@ htab_inval_old_hpte: | |||
| 568 | ld r7,STK_PARM(r9)(r1) /* ssize */ | 568 | ld r7,STK_PARM(r9)(r1) /* ssize */ |
| 569 | ld r8,STK_PARM(r8)(r1) /* local */ | 569 | ld r8,STK_PARM(r8)(r1) /* local */ |
| 570 | bl .flush_hash_page | 570 | bl .flush_hash_page |
| 571 | /* Clear out _PAGE_HPTE_SUB bits in the new linux PTE */ | ||
| 572 | lis r0,_PAGE_HPTE_SUB@h | ||
| 573 | ori r0,r0,_PAGE_HPTE_SUB@l | ||
| 574 | andc r30,r30,r0 | ||
| 571 | b htab_insert_pte | 575 | b htab_insert_pte |
| 572 | 576 | ||
| 573 | htab_bail_ok: | 577 | htab_bail_ok: |
