After loading the TIF flag with the new LOAD_TIF_KERNEL() macro, we need to
do an "and." instruction. Without the "." after the instruction, the condition
flags register will not be set, and the following branch instruction would be
based on some previous instruction.

Signed-off-by: Kevin Corry <[EMAIL PROTECTED]>

Index: linux-2.6.20-arnd3-perfmon2/arch/powerpc/kernel/entry_32.S
===================================================================
--- linux-2.6.20-arnd3-perfmon2.orig/arch/powerpc/kernel/entry_32.S
+++ linux-2.6.20-arnd3-perfmon2/arch/powerpc/kernel/entry_32.S
@@ -236,7 +236,7 @@ ret_from_syscall:
        lwz     r9,TI_FLAGS(r12)
        li      r8,-_LAST_ERRNO
        
LOAD_TIF_KERNEL(r7,_TIF_SYSCALL_T_OR_A|_TIF_SINGLESTEP|_TIF_USER_WORK_MASK|_TIF_PERSYSCALL_MASK)
-       and     r0,r9,r7
+       and.    r0,r9,r7
        bne-    syscall_exit_work
        cmplw   0,r3,r8
        blt+    syscall_exit_cont
Index: linux-2.6.20-arnd3-perfmon2/arch/powerpc/kernel/entry_64.S
===================================================================
--- linux-2.6.20-arnd3-perfmon2.orig/arch/powerpc/kernel/entry_64.S
+++ linux-2.6.20-arnd3-perfmon2/arch/powerpc/kernel/entry_64.S
@@ -169,7 +169,7 @@ syscall_exit:
        ld      r9,TI_FLAGS(r12)
        li      r11,-_LAST_ERRNO
        LOAD_TIF_KERNEL(r0, 
_TIF_SYSCALL_T_OR_A|_TIF_SINGLESTEP|_TIF_USER_WORK_MASK|_TIF_PERSYSCALL_MASK)
-       andi.   r0,r9,r0
+       and.    r0,r9,r0
        bne-    syscall_exit_work
        cmpld   r3,r11
        ld      r5,_CCR(r1)
@@ -468,7 +468,7 @@ _GLOBAL(ret_from_except_lite)
        clrrdi  r9,r1,THREAD_SHIFT
        ld      r4,TI_FLAGS(r9)
        LOAD_TIF_KERNEL(r0, _TIF_USER_WORK_MASK)
-       and     r0,r4,r0
+       and.    r0,r4,r0
        bne     do_work
 #endif
 
_______________________________________________
perfmon mailing list
[email protected]
http://www.hpl.hp.com/hosted/linux/mail-archives/perfmon/

Reply via email to