TIF_SYSCALL_TRACE should be cleared only if both ptrace and utrace do not want it, change utrace_reset() to check PT_SYSCALL_TRACE before clear_tsk_thread_flag(TIF_SYSCALL_TRACE).
Signed-off-by: Oleg Nesterov <o...@redhat.com> --- kernel/utrace.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/kernel/utrace.c b/kernel/utrace.c index daa96b9..a824ac3 100644 --- a/kernel/utrace.c +++ b/kernel/utrace.c @@ -697,6 +697,7 @@ static bool utrace_reset(struct task_struct *task, struct utrace *utrace) BUG_ON(utrace->death); flags &= UTRACE_EVENT(REAP); } else if (!(flags & UTRACE_EVENT_SYSCALL) && + !(task->ptrace & PT_SYSCALL_TRACE) && test_tsk_thread_flag(task, TIF_SYSCALL_TRACE)) { clear_tsk_thread_flag(task, TIF_SYSCALL_TRACE); } -- 1.5.5.1