syscall / hcall entry unnecessarily differs between KVM and non-KVM
builds. Move the SMT priority instruction to the same location
(after INTERRUPT_TO_KERNEL).

Signed-off-by: Nicholas Piggin <npig...@gmail.com>
---
 arch/powerpc/kernel/exceptions-64s.S | 25 +++++++------------------
 1 file changed, 7 insertions(+), 18 deletions(-)

diff --git a/arch/powerpc/kernel/exceptions-64s.S 
b/arch/powerpc/kernel/exceptions-64s.S
index c1075bbe4677..d9e531a00319 100644
--- a/arch/powerpc/kernel/exceptions-64s.S
+++ b/arch/powerpc/kernel/exceptions-64s.S
@@ -1643,10 +1643,8 @@ EXC_COMMON(trap_0b_common, 0xb00, unknown_exception)
        std     r10,PACA_EXGEN+EX_R10(r13)
        INTERRUPT_TO_KERNEL
        KVMTEST EXC_STD 0xc00 /* uses r10, branch to do_kvm_0xc00_system_call */
-       HMT_MEDIUM
        mfctr   r9
 #else
-       HMT_MEDIUM
        mr      r9,r13
        GET_PACA(r13)
        INTERRUPT_TO_KERNEL
@@ -1658,11 +1656,13 @@ BEGIN_FTR_SECTION
        beq-    1f
 END_FTR_SECTION_IFSET(CPU_FTR_REAL_LE)
 #endif
-       /* We reach here with PACA in r13, r13 in r9, and HMT_MEDIUM. */
-
-       .if \real
+       /* We reach here with PACA in r13, r13 in r9. */
        mfspr   r11,SPRN_SRR0
        mfspr   r12,SPRN_SRR1
+
+       HMT_MEDIUM
+
+       .if \real
        __LOAD_HANDLER(r10, system_call_common)
        mtspr   SPRN_SRR0,r10
        ld      r10,PACAKMSR(r13)
@@ -1670,24 +1670,13 @@ END_FTR_SECTION_IFSET(CPU_FTR_REAL_LE)
        RFI_TO_KERNEL
        b       .       /* prevent speculative execution */
        .else
+       li      r10,MSR_RI
+       mtmsrd  r10,1                   /* Set RI (EE=0) */
 #ifdef CONFIG_RELOCATABLE
-       /*
-        * We can't branch directly so we do it via the CTR which
-        * is volatile across system calls.
-        */
        __LOAD_HANDLER(r10, system_call_common)
        mtctr   r10
-       mfspr   r11,SPRN_SRR0
-       mfspr   r12,SPRN_SRR1
-       li      r10,MSR_RI
-       mtmsrd  r10,1
        bctr
 #else
-       /* We can branch directly */
-       mfspr   r11,SPRN_SRR0
-       mfspr   r12,SPRN_SRR1
-       li      r10,MSR_RI
-       mtmsrd  r10,1                   /* Set RI (EE=0) */
        b       system_call_common
 #endif
        .endif
-- 
2.20.1

Reply via email to