VSID is only for create_hpte(). When _PAGE_HASHPTE is
already set, add_hash_page() bails out without calling
create_hpte() and doesn't need the value of VSID.

Signed-off-by: Christophe Leroy <[email protected]>
---
 arch/powerpc/mm/book3s32/hash_low.S | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/powerpc/mm/book3s32/hash_low.S 
b/arch/powerpc/mm/book3s32/hash_low.S
index f964fd34dad9..1366e8e4fc05 100644
--- a/arch/powerpc/mm/book3s32/hash_low.S
+++ b/arch/powerpc/mm/book3s32/hash_low.S
@@ -188,12 +188,6 @@ _GLOBAL(add_hash_page)
        mflr    r0
        stw     r0,4(r1)
 
-       /* Convert context and va to VSID */
-       mulli   r3,r3,897*16            /* multiply context by context skew */
-       rlwinm  r0,r4,4,28,31           /* get ESID (top 4 bits of va) */
-       mulli   r0,r0,0x111             /* multiply by ESID skew */
-       add     r3,r3,r0                /* note create_hpte trims to 24 bits */
-
 #ifdef CONFIG_SMP
        lwz     r8,TASK_CPU(r2)         /* to go in mmu_hash_lock */
        oris    r8,r8,12
@@ -257,6 +251,12 @@ _GLOBAL(add_hash_page)
        stwcx.  r5,0,r8
        bne-    1b
 
+       /* Convert context and va to VSID */
+       mulli   r3,r3,897*16            /* multiply context by context skew */
+       rlwinm  r0,r4,4,28,31           /* get ESID (top 4 bits of va) */
+       mulli   r0,r0,0x111             /* multiply by ESID skew */
+       add     r3,r3,r0                /* note create_hpte trims to 24 bits */
+
        bl      create_hpte
 
 9:
-- 
2.25.0

Reply via email to