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/