[PATCH] powerpc: Merge thread_info.h
[pandora-kernel.git] / arch / powerpc / kernel / entry_32.S
index fc9dded..37b4396 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 */
@@ -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
@@ -630,7 +629,7 @@ 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
        beq+    ret_from_except_full
@@ -657,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
@@ -677,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
@@ -687,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
@@ -889,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