parisc: fix ptrace breakage
authorAl Viro <viro@ZenIV.linux.org.uk>
Sun, 9 Dec 2012 06:16:14 +0000 (06:16 +0000)
committerHelge Deller <deller@gmx.de>
Wed, 20 Feb 2013 21:51:11 +0000 (22:51 +0100)
commit52ab532ea76d30b7e7a7b98021e2e873e83029a5
treefa11ff7efd4251743d444bef649bfa068e702237
parent872420b3b869d47b1f1dd93418c34e306d962668
parisc: fix ptrace breakage

1) PTRACE_SYSCALL doesn't work for 64bit process on parisc64.
Compat syscall table is used instead of 64bit one.  IMO we should either
refuse to allow PTRACE_SYSCALL for 64bit processes or duplicate the
logics choosing the right syscall table into .Ltracesys.

2) if you have let the tracee run with PTRACE_SYSCALL and
it had stopped, you can use PTRACE_POKEUSR to modify syscall number
(r20) and arguments 1--4 (r26--r23).  Modifications will have effect.
However, modifying arguments 5 and 6 (r22 and r21 resp.) works only
when process (32bit one) runs on 64bit host - on 32bit one it has no
effect.  AFAICS, the diff below should fix that one.

Signed-off-by: Al Viro <viro@ZenIV.linux.org.uk>
Tested-by: John David Anglin <dave.anglin@bell.net>
Signed-off-by: Helge Deller <deller@gmx.de>
arch/parisc/kernel/syscall.S