diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-05-20 11:59:03 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-10-01 09:58:14 -0400 |
commit | 64482bd8ef1700e98d96fb6e240c501d68c8371c (patch) | |
tree | 243bf1ad99b4d1b640d5623bdaf37a551a1b276d /arch/parisc | |
parent | e3b880c6ee55e8858a75e3dcf6c3dda04d5e3605 (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.h | 2 | ||||
-rw-r--r-- | 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 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. */ |