Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
[cascardo/linux.git] / arch / powerpc / kernel / entry_64.S
index 254518d..6432d4b 100644 (file)
@@ -140,7 +140,7 @@ END_FW_FTR_SECTION_IFSET(FW_FEATURE_SPLPAR)
 #ifdef CONFIG_PPC_BOOK3E
        wrteei  1
 #else
-       ld      r11,PACAKMSR(r13)
+       li      r11,MSR_RI
        ori     r11,r11,MSR_EE
        mtmsrd  r11,1
 #endif /* CONFIG_PPC_BOOK3E */
@@ -196,7 +196,6 @@ system_call:                        /* label this so stack traces look sane */
 #ifdef CONFIG_PPC_BOOK3E
        wrteei  0
 #else
-       ld      r10,PACAKMSR(r13)
        /*
         * For performance reasons we clear RI the same time that we
         * clear EE. We only need to clear RI just before we restore r13
@@ -204,8 +203,7 @@ system_call:                        /* label this so stack traces look sane */
         * We have to be careful to restore RI if we branch anywhere from
         * here (eg syscall_exit_work).
         */
-       li      r9,MSR_RI
-       andc    r11,r10,r9
+       li      r11,0
        mtmsrd  r11,1
 #endif /* CONFIG_PPC_BOOK3E */
 
@@ -222,13 +220,12 @@ system_call:                      /* label this so stack traces look sane */
 #endif
 2:     addi    r3,r1,STACK_FRAME_OVERHEAD
 #ifdef CONFIG_PPC_BOOK3S
+       li      r10,MSR_RI
        mtmsrd  r10,1           /* Restore RI */
 #endif
        bl      restore_math
 #ifdef CONFIG_PPC_BOOK3S
-       ld      r10,PACAKMSR(r13)
-       li      r9,MSR_RI
-       andc    r11,r10,r9 /* Re-clear RI */
+       li      r11,0
        mtmsrd  r11,1
 #endif
        ld      r8,_MSR(r1)
@@ -309,6 +306,7 @@ syscall_enosys:
        
 syscall_exit_work:
 #ifdef CONFIG_PPC_BOOK3S
+       li      r10,MSR_RI
        mtmsrd  r10,1           /* Restore RI */
 #endif
        /* If TIF_RESTOREALL is set, don't scribble on either r3 or ccr.
@@ -355,7 +353,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
 #ifdef CONFIG_PPC_BOOK3E
        wrteei  1
 #else
-       ld      r10,PACAKMSR(r13)
+       li      r10,MSR_RI
        ori     r10,r10,MSR_EE
        mtmsrd  r10,1
 #endif /* CONFIG_PPC_BOOK3E */
@@ -369,13 +367,13 @@ END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
 tabort_syscall:
        /* Firstly we need to enable TM in the kernel */
        mfmsr   r10
-       li      r13, 1
-       rldimi  r10, r13, MSR_TM_LG, 63-MSR_TM_LG
+       li      r9, 1
+       rldimi  r10, r9, MSR_TM_LG, 63-MSR_TM_LG
        mtmsrd  r10, 0
 
        /* tabort, this dooms the transaction, nothing else */
-       li      r13, (TM_CAUSE_SYSCALL|TM_CAUSE_PERSISTENT)
-       TABORT(R13)
+       li      r9, (TM_CAUSE_SYSCALL|TM_CAUSE_PERSISTENT)
+       TABORT(R9)
 
        /*
         * Return directly to userspace. We have corrupted user register state,
@@ -383,8 +381,8 @@ tabort_syscall:
         * resume after the tbegin of the aborted transaction with the
         * checkpointed register state.
         */
-       li      r13, MSR_RI
-       andc    r10, r10, r13
+       li      r9, MSR_RI
+       andc    r10, r10, r9
        mtmsrd  r10, 1
        mtspr   SPRN_SRR0, r11
        mtspr   SPRN_SRR1, r12
@@ -620,7 +618,7 @@ _GLOBAL(ret_from_except_lite)
 #ifdef CONFIG_PPC_BOOK3E
        wrteei  0
 #else
-       ld      r10,PACAKMSR(r13) /* Get kernel MSR without EE */
+       li      r10,MSR_RI
        mtmsrd  r10,1             /* Update machine state */
 #endif /* CONFIG_PPC_BOOK3E */
 
@@ -752,7 +750,7 @@ resume_kernel:
 #ifdef CONFIG_PPC_BOOK3E
        wrteei  0
 #else
-       ld      r10,PACAKMSR(r13) /* Get kernel MSR without EE */
+       li      r10,MSR_RI
        mtmsrd  r10,1             /* Update machine state */
 #endif /* CONFIG_PPC_BOOK3E */
 #endif /* CONFIG_PREEMPT */
@@ -842,8 +840,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_HAS_PPR)
         * userspace and we take an exception after restoring r13,
         * we end up corrupting the userspace r13 value.
         */
-       ld      r4,PACAKMSR(r13) /* Get kernel MSR without EE */
-       andc    r4,r4,r0         /* r0 contains MSR_RI here */
+       li      r4,0
        mtmsrd  r4,1
 
 #ifdef CONFIG_PPC_TRANSACTIONAL_MEM