Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

parisc: decide whether to go to slow path (tracesys) based on thread flags

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

Al Viro 64482bd8 e3b880c6

+6 -3
+2
arch/parisc/include/asm/thread_info.h
··· 74 74 75 75 #define _TIF_USER_WORK_MASK (_TIF_SIGPENDING | _TIF_NOTIFY_RESUME | \ 76 76 _TIF_NEED_RESCHED) 77 + #define _TIF_SYSCALL_TRACE_MASK (_TIF_SYSCALL_TRACE | _TIF_SINGLESTEP | \ 78 + _TIF_BLOCKSTEP) 77 79 78 80 #define tsk_is_polling(t) test_tsk_thread_flag(t, TIF_POLLING_NRFLAG) 79 81
+4 -3
arch/parisc/kernel/syscall.S
··· 180 180 181 181 /* Are we being ptraced? */ 182 182 mfctl %cr30, %r1 183 - LDREG TI_TASK(%r1),%r1 184 - ldw TASK_PTRACE(%r1), %r1 185 - bb,<,n %r1,31,.Ltracesys 183 + LDREG TI_FLAGS(%r1),%r1 184 + ldi _TIF_SYSCALL_TRACE_MASK, %r19 185 + and,COND(=) %r1, %r19, %r0 186 + b,n .Ltracesys 186 187 187 188 /* Note! We cannot use the syscall table that is mapped 188 189 nearby since the gateway page is mapped execute-only. */