diff options
Diffstat (limited to 'arch/arm/kernel/entry-common.S')
-rw-r--r-- | arch/arm/kernel/entry-common.S | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S index 1e7b04a40a3..1edf1deadf8 100644 --- a/arch/arm/kernel/entry-common.S +++ b/arch/arm/kernel/entry-common.S @@ -43,6 +43,8 @@ ret_fast_syscall: * Ok, we need to do extra processing, enter the slow path. */ fast_work_pending: + tst r1, #_TIF_KERNEL_TRACE @ flag can be set asynchronously + bne __sys_trace_return str r0, [sp, #S_R0+S_OFF]! @ returned r0 work_pending: tst r1, #_TIF_NEED_RESCHED @@ -85,8 +87,8 @@ ENTRY(ret_from_fork) get_thread_info tsk ldr r1, [tsk, #TI_FLAGS] @ check for syscall tracing mov why, #1 - tst r1, #_TIF_SYSCALL_TRACE @ are we tracing syscalls? - beq ret_slow_syscall + tst r1, #_TIF_SYSCALL_TRACE | _TIF_KERNEL_TRACE + beq ret_slow_syscall @ are we tracing syscalls? mov r1, sp mov r0, #1 @ trace exit [IP = 1] bl syscall_trace @@ -441,8 +443,8 @@ ENTRY(vector_swi) 1: #endif - tst r10, #_TIF_SYSCALL_TRACE @ are we tracing syscalls? - bne __sys_trace + tst r10, #_TIF_SYSCALL_TRACE | _TIF_KERNEL_TRACE + bne __sys_trace @ are we tracing syscalls? cmp scno, #NR_syscalls @ check upper syscall limit adr lr, BSYM(ret_fast_syscall) @ return address |