Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8ce0a7df6e6117d8814e976d4b7ce6a6b2c9cf93
Commit:     8ce0a7df6e6117d8814e976d4b7ce6a6b2c9cf93
Parent:     edacf6bb7e7e1b75f2937966a50119439ff78ccb
Author:     Becky Bruce <[EMAIL PROTECTED]>
AuthorDate: Mon Feb 12 17:43:46 2007 -0600
Committer:  Kumar Gala <[EMAIL PROTECTED]>
CommitDate: Mon Feb 12 21:32:38 2007 -0600

    [POWERPC] 85xx: Don't write reserved values to MAS1[TSIZE]
    
    Some of the current tlbwe instructions early on in head_fsl_booke.S take
    advantage of unarchitected behavior that allows the writing of reserved
    values to the TSIZE field.  This patch corrects that, as well as an error
    where an uninitialized (by linux) value was written into a MAS register and
    used for a tlbwe.
    
    Correct this for both arch/ppc and arch/powerpc.
    
    Signed-off-by: Becky Bruce <[EMAIL PROTECTED]>
    Signed-off-by: Kumar Gala <[EMAIL PROTECTED]>
---
 arch/powerpc/kernel/head_fsl_booke.S |    5 ++++-
 arch/ppc/kernel/head_fsl_booke.S     |    5 ++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/kernel/head_fsl_booke.S 
b/arch/powerpc/kernel/head_fsl_booke.S
index 66877bd..54f40d9 100644
--- a/arch/powerpc/kernel/head_fsl_booke.S
+++ b/arch/powerpc/kernel/head_fsl_booke.S
@@ -206,7 +206,8 @@ skpinv:     addi    r6,r6,1                         /* 
Increment */
        rlwimi  r7,r3,16,4,15   /* Setup MAS0 = TLBSEL | ESEL(r3) */
        mtspr   SPRN_MAS0,r7
        tlbre
-       li      r6,0
+       mfspr   r6,SPRN_MAS1
+       rlwinm  r6,r6,0,2,0     /* clear IPROT */
        mtspr   SPRN_MAS1,r6
        tlbwe
        /* Invalidate TLB1 */
@@ -248,6 +249,8 @@ skpinv:     addi    r6,r6,1                         /* 
Increment */
        rlwimi  r7,r5,16,4,15   /* Setup MAS0 = TLBSEL | ESEL(r5) */
        mtspr   SPRN_MAS0,r7
        tlbre
+       mfspr   r8,SPRN_MAS1
+       rlwinm  r8,r8,0,2,0     /* clear IPROT */
        mtspr   SPRN_MAS1,r8
        tlbwe
        /* Invalidate TLB1 */
diff --git a/arch/ppc/kernel/head_fsl_booke.S b/arch/ppc/kernel/head_fsl_booke.S
index 66877bd..54f40d9 100644
--- a/arch/ppc/kernel/head_fsl_booke.S
+++ b/arch/ppc/kernel/head_fsl_booke.S
@@ -206,7 +206,8 @@ skpinv:     addi    r6,r6,1                         /* 
Increment */
        rlwimi  r7,r3,16,4,15   /* Setup MAS0 = TLBSEL | ESEL(r3) */
        mtspr   SPRN_MAS0,r7
        tlbre
-       li      r6,0
+       mfspr   r6,SPRN_MAS1
+       rlwinm  r6,r6,0,2,0     /* clear IPROT */
        mtspr   SPRN_MAS1,r6
        tlbwe
        /* Invalidate TLB1 */
@@ -248,6 +249,8 @@ skpinv:     addi    r6,r6,1                         /* 
Increment */
        rlwimi  r7,r5,16,4,15   /* Setup MAS0 = TLBSEL | ESEL(r5) */
        mtspr   SPRN_MAS0,r7
        tlbre
+       mfspr   r8,SPRN_MAS1
+       rlwinm  r8,r8,0,2,0     /* clear IPROT */
        mtspr   SPRN_MAS1,r8
        tlbwe
        /* Invalidate TLB1 */
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to