x86: ptrace vs -ENOSYS
authorRoland McGrath <roland@redhat.com>
Mon, 17 Mar 2008 04:59:11 +0000 (21:59 -0700)
committerIngo Molnar <mingo@elte.hu>
Thu, 17 Apr 2008 15:41:13 +0000 (17:41 +0200)
commita31f8dd7ee3b2f5645c220406b1e21f82971f32b
treebb8904f23fbb9db5d34558cbe3b61bc3511ea249
parent8ab32bb89b5b9bf06147c31947eba65f0f21c3c0
x86: ptrace vs -ENOSYS

When we're stopped at syscall entry tracing, ptrace can change the %rax
value from -ENOSYS to something else.  If no system call is actually made
because the syscall number (now in orig_rax) is bad, then we now always
reset %rax to -ENOSYS again.

This changes it to leave the return value alone after entry tracing.
That way, the %rax value set by ptrace is there to be seen in user mode
(or in syscall exit tracing).  This is consistent with what the 32-bit
kernel does.

Signed-off-by: Roland McGrath <roland@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/entry_64.S