These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / arch / powerpc / kernel / exceptions-64s.S
index 9519e6b..0a0399c 100644 (file)
@@ -59,14 +59,13 @@ END_FTR_SECTION_IFSET(CPU_FTR_REAL_LE)                              \
 
 #if defined(CONFIG_RELOCATABLE)
        /*
-        * We can't branch directly; in the direct case we use LR
-        * and system_call_entry restores LR.  (We thus need to move
-        * LR to r10 in the RFID case too.)
+        * We can't branch directly so we do it via the CTR which
+        * is volatile across system calls.
         */
 #define SYSCALL_PSERIES_2_DIRECT                               \
        mflr    r10 ;                                           \
        ld      r12,PACAKBASE(r13) ;                            \
-       LOAD_HANDLER(r12, system_call_entry_direct) ;           \
+       LOAD_HANDLER(r12, system_call_entry) ;                  \
        mtctr   r12 ;                                           \
        mfspr   r12,SPRN_SRR1 ;                                 \
        /* Re-use of r13... No spare regs to do this */ \
@@ -80,7 +79,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_REAL_LE)                                \
        mfspr   r12,SPRN_SRR1 ;                                 \
        li      r10,MSR_RI ;                                    \
        mtmsrd  r10,1 ;                 /* Set RI (EE=0) */     \
-       b       system_call_entry_direct ;
+       b       system_call_common ;
 #endif
 
 /*
@@ -969,13 +968,6 @@ hv_facility_unavailable_relon_trampoline:
 __end_interrupts:
 
        .align  7
-system_call_entry_direct:
-#if defined(CONFIG_RELOCATABLE)
-       /* The first level prologue may have used LR to get here, saving
-        * orig in r10.  To save hacking/ifdeffing common code, restore here.
-        */
-       mtlr    r10
-#endif
 system_call_entry:
        b       system_call_common