aboutsummaryrefslogtreecommitdiffstats
path: root/arch/parisc
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-05-20 11:59:03 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2012-10-01 09:58:14 -0400
commit64482bd8ef1700e98d96fb6e240c501d68c8371c (patch)
tree243bf1ad99b4d1b640d5623bdaf37a551a1b276d /arch/parisc
parente3b880c6ee55e8858a75e3dcf6c3dda04d5e3605 (diff)
parisc: decide whether to go to slow path (tracesys) based on thread flags
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/parisc')
-rw-r--r--arch/parisc/include/asm/thread_info.h2
-rw-r--r--arch/parisc/kernel/syscall.S7
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 d0e2fe7d54a6..d1fb79a36f3d 100644
--- a/arch/parisc/include/asm/thread_info.h
+++ b/arch/parisc/include/asm/thread_info.h
@@ -74,6 +74,8 @@ struct thread_info {
74 74
75#define _TIF_USER_WORK_MASK (_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | \ 75#define _TIF_USER_WORK_MASK (_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | \
76 _TIF_NEED_RESCHED) 76 _TIF_NEED_RESCHED)
77#define _TIF_SYSCALL_TRACE_MASK (_TIF_SYSCALL_TRACE | _TIF_SINGLESTEP | \
78 _TIF_BLOCKSTEP)
77 79
78#define tsk_is_polling(t) test_tsk_thread_flag(t, TIF_POLLING_NRFLAG) 80#define tsk_is_polling(t) test_tsk_thread_flag(t, TIF_POLLING_NRFLAG)
79 81
diff --git a/arch/parisc/kernel/syscall.S b/arch/parisc/kernel/syscall.S
index 54a9cbfc08ad..86742df0b194 100644
--- a/arch/parisc/kernel/syscall.S
+++ b/arch/parisc/kernel/syscall.S
@@ -180,9 +180,10 @@ linux_gateway_entry:
180 180
181 /* Are we being ptraced? */ 181 /* Are we being ptraced? */
182 mfctl %cr30, %r1 182 mfctl %cr30, %r1
183 LDREG TI_TASK(%r1),%r1 183 LDREG TI_FLAGS(%r1),%r1
184 ldw TASK_PTRACE(%r1), %r1 184 ldi _TIF_SYSCALL_TRACE_MASK, %r19
185 bb,<,n %r1,31,.Ltracesys 185 and,COND(=) %r1, %r19, %r0
186 b,n .Ltracesys
186 187
187 /* Note! We cannot use the syscall table that is mapped 188 /* Note! We cannot use the syscall table that is mapped
188 nearby since the gateway page is mapped execute-only. */ 189 nearby since the gateway page is mapped execute-only. */