[PATCH] Update email address for Kumar
[safe/jmp/linux-2.6] / arch / powerpc / kernel / entry_32.S
index 094eea6..2e99ae4 100644 (file)
@@ -199,10 +199,9 @@ _GLOBAL(DoSyscall)
 #ifdef SHOW_SYSCALLS
        bl      do_show_syscall
 #endif /* SHOW_SYSCALLS */
-       rlwinm  r10,r1,0,0,18   /* current_thread_info() */
-       lwz     r11,TI_LOCAL_FLAGS(r10)
-       rlwinm  r11,r11,0,~_TIFL_FORCE_NOERROR
-       stw     r11,TI_LOCAL_FLAGS(r10)
+       rlwinm  r10,r1,0,0,(31-THREAD_SHIFT)    /* current_thread_info() */
+       li      r11,0
+       stb     r11,TI_SC_NOERR(r10)
        lwz     r11,TI_FLAGS(r10)
        andi.   r11,r11,_TIF_SYSCALL_T_OR_A
        bne-    syscall_dotrace
@@ -225,10 +224,10 @@ ret_from_syscall:
        mr      r6,r3
        li      r11,-_LAST_ERRNO
        cmplw   0,r3,r11
-       rlwinm  r12,r1,0,0,18   /* current_thread_info() */
+       rlwinm  r12,r1,0,0,(31-THREAD_SHIFT)    /* current_thread_info() */
        blt+    30f
-       lwz     r11,TI_LOCAL_FLAGS(r12)
-       andi.   r11,r11,_TIFL_FORCE_NOERROR
+       lbz     r11,TI_SC_NOERR(r12)
+       cmpwi   r11,0
        bne     30f
        neg     r3,r3
        lwz     r10,_CCR(r1)    /* Set SO bit in CR */
@@ -279,7 +278,7 @@ ret_from_fork:
 syscall_dotrace:
        SAVE_NVGPRS(r1)
        li      r0,0xc00
-       stw     r0,TRAP(r1)
+       stw     r0,_TRAP(r1)
        addi    r3,r1,STACK_FRAME_OVERHEAD
        bl      do_syscall_trace_enter
        lwz     r0,GPR0(r1)     /* Restore original registers */
@@ -300,12 +299,12 @@ syscall_exit_work:
        ori     r10,r10,MSR_EE
        SYNC
        MTMSRD(r10)             /* re-enable interrupts */
-       lwz     r4,TRAP(r1)
+       lwz     r4,_TRAP(r1)
        andi.   r4,r4,1
        beq     4f
        SAVE_NVGPRS(r1)
        li      r4,0xc00
-       stw     r4,TRAP(r1)
+       stw     r4,_TRAP(r1)
 4:
        addi    r3,r1,STACK_FRAME_OVERHEAD
        bl      do_syscall_trace_leave
@@ -315,7 +314,7 @@ syscall_exit_work:
        LOAD_MSR_KERNEL(r10,MSR_KERNEL) /* doesn't include MSR_EE */
        SYNC
        MTMSRD(r10)             /* disable interrupts again */
-       rlwinm  r12,r1,0,0,18   /* current_thread_info() */
+       rlwinm  r12,r1,0,0,(31-THREAD_SHIFT)    /* current_thread_info() */
        lwz     r9,TI_FLAGS(r12)
 5:
        andi.   r0,r9,_TIF_NEED_RESCHED
@@ -411,49 +410,49 @@ show_syscalls_task:
        .globl  ppc_sigsuspend
 ppc_sigsuspend:
        SAVE_NVGPRS(r1)
-       lwz     r0,TRAP(r1)
+       lwz     r0,_TRAP(r1)
        rlwinm  r0,r0,0,0,30            /* clear LSB to indicate full */
-       stw     r0,TRAP(r1)             /* register set saved */
+       stw     r0,_TRAP(r1)            /* register set saved */
        b       sys_sigsuspend
 
        .globl  ppc_rt_sigsuspend
 ppc_rt_sigsuspend:
        SAVE_NVGPRS(r1)
-       lwz     r0,TRAP(r1)
+       lwz     r0,_TRAP(r1)
        rlwinm  r0,r0,0,0,30
-       stw     r0,TRAP(r1)
+       stw     r0,_TRAP(r1)
        b       sys_rt_sigsuspend
 
        .globl  ppc_fork
 ppc_fork:
        SAVE_NVGPRS(r1)
-       lwz     r0,TRAP(r1)
+       lwz     r0,_TRAP(r1)
        rlwinm  r0,r0,0,0,30            /* clear LSB to indicate full */
-       stw     r0,TRAP(r1)             /* register set saved */
+       stw     r0,_TRAP(r1)            /* register set saved */
        b       sys_fork
 
        .globl  ppc_vfork
 ppc_vfork:
        SAVE_NVGPRS(r1)
-       lwz     r0,TRAP(r1)
+       lwz     r0,_TRAP(r1)
        rlwinm  r0,r0,0,0,30            /* clear LSB to indicate full */
-       stw     r0,TRAP(r1)             /* register set saved */
+       stw     r0,_TRAP(r1)            /* register set saved */
        b       sys_vfork
 
        .globl  ppc_clone
 ppc_clone:
        SAVE_NVGPRS(r1)
-       lwz     r0,TRAP(r1)
+       lwz     r0,_TRAP(r1)
        rlwinm  r0,r0,0,0,30            /* clear LSB to indicate full */
-       stw     r0,TRAP(r1)             /* register set saved */
+       stw     r0,_TRAP(r1)            /* register set saved */
        b       sys_clone
 
        .globl  ppc_swapcontext
 ppc_swapcontext:
        SAVE_NVGPRS(r1)
-       lwz     r0,TRAP(r1)
+       lwz     r0,_TRAP(r1)
        rlwinm  r0,r0,0,0,30            /* clear LSB to indicate full */
-       stw     r0,TRAP(r1)             /* register set saved */
+       stw     r0,_TRAP(r1)            /* register set saved */
        b       sys_swapcontext
 
 /*
@@ -470,9 +469,9 @@ handle_page_fault:
        cmpwi   r3,0
        beq+    ret_from_except
        SAVE_NVGPRS(r1)
-       lwz     r0,TRAP(r1)
+       lwz     r0,_TRAP(r1)
        clrrwi  r0,r0,1
-       stw     r0,TRAP(r1)
+       stw     r0,_TRAP(r1)
        mr      r5,r3
        addi    r3,r1,STACK_FRAME_OVERHEAD
        lwz     r4,_DAR(r1)
@@ -618,7 +617,7 @@ BEGIN_FTR_SECTION
        b       2b
 END_FTR_SECTION_IFSET(CPU_FTR_601)
        li      r10,-1
-       stw     r10,TRAP(r11)
+       stw     r10,_TRAP(r11)
        addi    r3,r1,STACK_FRAME_OVERHEAD
        lis     r10,MSR_KERNEL@h
        ori     r10,r10,MSR_KERNEL@l
@@ -630,10 +629,11 @@ END_FTR_SECTION_IFSET(CPU_FTR_601)
        .globl  sigreturn_exit
 sigreturn_exit:
        subi    r1,r3,STACK_FRAME_OVERHEAD
-       rlwinm  r12,r1,0,0,18   /* current_thread_info() */
+       rlwinm  r12,r1,0,0,(31-THREAD_SHIFT)    /* current_thread_info() */
        lwz     r9,TI_FLAGS(r12)
        andi.   r0,r9,_TIF_SYSCALL_T_OR_A
-       bnel-   do_syscall_trace_leave
+       beq+    ret_from_except_full
+       bl      do_syscall_trace_leave
        /* fall through */
 
        .globl  ret_from_except_full
@@ -656,7 +656,7 @@ ret_from_except:
 
 user_exc_return:               /* r10 contains MSR_KERNEL here */
        /* Check current_thread_info()->flags */
-       rlwinm  r9,r1,0,0,18
+       rlwinm  r9,r1,0,0,(31-THREAD_SHIFT)
        lwz     r9,TI_FLAGS(r9)
        andi.   r0,r9,(_TIF_SIGPENDING|_TIF_NEED_RESCHED)
        bne     do_work
@@ -676,7 +676,7 @@ restore_user:
 /* N.B. the only way to get here is from the beq following ret_from_except. */
 resume_kernel:
        /* check current_thread_info->preempt_count */
-       rlwinm  r9,r1,0,0,18
+       rlwinm  r9,r1,0,0,(31-THREAD_SHIFT)
        lwz     r0,TI_PREEMPT(r9)
        cmpwi   0,r0,0          /* if non-zero, just restore regs and return */
        bne     restore
@@ -686,7 +686,7 @@ resume_kernel:
        andi.   r0,r3,MSR_EE    /* interrupts off? */
        beq     restore         /* don't schedule if so */
 1:     bl      preempt_schedule_irq
-       rlwinm  r9,r1,0,0,18
+       rlwinm  r9,r1,0,0,(31-THREAD_SHIFT)
        lwz     r3,TI_FLAGS(r9)
        andi.   r0,r3,_TIF_NEED_RESCHED
        bne-    1b
@@ -888,7 +888,7 @@ recheck:
        LOAD_MSR_KERNEL(r10,MSR_KERNEL)
        SYNC
        MTMSRD(r10)             /* disable interrupts */
-       rlwinm  r9,r1,0,0,18
+       rlwinm  r9,r1,0,0,(31-THREAD_SHIFT)
        lwz     r9,TI_FLAGS(r9)
        andi.   r0,r9,_TIF_NEED_RESCHED
        bne-    do_resched
@@ -899,12 +899,12 @@ do_user_signal:                   /* r10 contains MSR_KERNEL here */
        SYNC
        MTMSRD(r10)             /* hard-enable interrupts */
        /* save r13-r31 in the exception frame, if not already done */
-       lwz     r3,TRAP(r1)
+       lwz     r3,_TRAP(r1)
        andi.   r0,r3,1
        beq     2f
        SAVE_NVGPRS(r1)
        rlwinm  r3,r3,0,0,30
-       stw     r3,TRAP(r1)
+       stw     r3,_TRAP(r1)
 2:     li      r3,0
        addi    r4,r1,STACK_FRAME_OVERHEAD
        bl      do_signal
@@ -936,12 +936,12 @@ nonrecoverable:
 BEGIN_FTR_SECTION
        blr
 END_FTR_SECTION_IFSET(CPU_FTR_601)
-       lwz     r3,TRAP(r1)
+       lwz     r3,_TRAP(r1)
        andi.   r0,r3,1
        beq     4f
        SAVE_NVGPRS(r1)
        rlwinm  r3,r3,0,0,30
-       stw     r3,TRAP(r1)
+       stw     r3,_TRAP(r1)
 4:     addi    r3,r1,STACK_FRAME_OVERHEAD
        bl      nonrecoverable_exception
        /* shouldn't return */
@@ -954,7 +954,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_601)
  * here so it's easy to add arch-specific sections later.
  * -- Cort
  */
-#ifdef CONFIG_PPC_OF
+#ifdef CONFIG_PPC_RTAS
 /*
  * On CHRP, the Run-Time Abstraction Services (RTAS) have to be
  * called with the MMU off.
@@ -963,14 +963,13 @@ _GLOBAL(enter_rtas)
        stwu    r1,-INT_FRAME_SIZE(r1)
        mflr    r0
        stw     r0,INT_FRAME_SIZE+4(r1)
-       lis     r4,rtas_data@ha
-       lwz     r4,rtas_data@l(r4)
+       LOADADDR(r4, rtas)
        lis     r6,1f@ha        /* physical return address for rtas */
        addi    r6,r6,1f@l
        tophys(r6,r6)
        tophys(r7,r1)
-       lis     r8,rtas_entry@ha
-       lwz     r8,rtas_entry@l(r8)
+       lwz     r8,RTASENTRY(r4)
+       lwz     r4,RTASBASE(r4)
        mfmsr   r9
        stw     r9,8(r1)
        LOAD_MSR_KERNEL(r0,MSR_KERNEL)
@@ -978,7 +977,6 @@ _GLOBAL(enter_rtas)
        MTMSRD(r0)              /* don't get trashed */
        li      r9,MSR_KERNEL & ~(MSR_IR|MSR_DR)
        mtlr    r6
-       CLR_TOP32(r7)
        mtspr   SPRN_SPRG2,r7
        mtspr   SPRN_SRR0,r8
        mtspr   SPRN_SRR1,r9
@@ -999,4 +997,4 @@ machine_check_in_rtas:
        twi     31,0,0
        /* XXX load up BATs and panic */
 
-#endif /* CONFIG_PPC_OF */
+#endif /* CONFIG_PPC_RTAS */