From 64482bd8ef1700e98d96fb6e240c501d68c8371c Mon Sep 17 00:00:00 2001 From: Al Viro Date: Sun, 20 May 2012 11:59:03 -0400 Subject: [PATCH] parisc: decide whether to go to slow path (tracesys) based on thread flags Signed-off-by: Al Viro --- arch/parisc/include/asm/thread_info.h | 2 ++ arch/parisc/kernel/syscall.S | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/arch/parisc/include/asm/thread_info.h b/arch/parisc/include/asm/thread_info.h index d0e2fe7d54a..d1fb79a36f3 100644 --- a/arch/parisc/include/asm/thread_info.h +++ b/arch/parisc/include/asm/thread_info.h @@ -74,6 +74,8 @@ struct thread_info { #define _TIF_USER_WORK_MASK (_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | \ _TIF_NEED_RESCHED) +#define _TIF_SYSCALL_TRACE_MASK (_TIF_SYSCALL_TRACE | _TIF_SINGLESTEP | \ + _TIF_BLOCKSTEP) #define tsk_is_polling(t) test_tsk_thread_flag(t, TIF_POLLING_NRFLAG) diff --git a/arch/parisc/kernel/syscall.S b/arch/parisc/kernel/syscall.S index 54a9cbfc08a..86742df0b19 100644 --- a/arch/parisc/kernel/syscall.S +++ b/arch/parisc/kernel/syscall.S @@ -180,9 +180,10 @@ linux_gateway_entry: /* Are we being ptraced? */ mfctl %cr30, %r1 - LDREG TI_TASK(%r1),%r1 - ldw TASK_PTRACE(%r1), %r1 - bb,<,n %r1,31,.Ltracesys + LDREG TI_FLAGS(%r1),%r1 + ldi _TIF_SYSCALL_TRACE_MASK, %r19 + and,COND(=) %r1, %r19, %r0 + b,n .Ltracesys /* Note! We cannot use the syscall table that is mapped nearby since the gateway page is mapped execute-only. */ -- 2.20.1