]> err.no Git - linux-2.6/commit
[PATCH] s390: uml ptrace fixes
authorBodo Stroesser <bstroesser@fujitsu-siemens.com>
Sat, 4 Jun 2005 22:43:32 +0000 (15:43 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Sun, 5 Jun 2005 00:13:00 +0000 (17:13 -0700)
commitc5c3a6d8fe923b8780b9cd10e72344b8cf8518b5
tree7b6b663ae1668befa18f8ff0b95f0cc2e254471d
parent778959db97c7ed8eed4025916916b17a4629ce3d
[PATCH] s390: uml ptrace fixes

To make UML build and run on s390, I needed to do these two little
changes:

1) UML includes some of the subarch's (s390) headers. I had to
   change one of them with the following one-liner, to make this
   compile. AFAICS, this change doesn't break compilation of s390
   itself.

2) UML needs to intercept syscalls via ptrace to invalidate the syscall,
   read syscall's parameters and write the result with the result of
   UML's syscall processing. Also, UML needs to make sure, that the host
   does no syscall restart processing. On i386 for example, this can be
   done by writing -1 to orig_eax on the 2nd syscall interception
   (orig_eax is the syscall number, which after the interception is used
   as a "interrupt was a syscall" flag only.
   Unfortunately, s390 holds syscall number and syscall result in gpr2 and
   its "interrupt was a syscall" flag (trap) is unreachable via ptrace.
   So I changed the host to set trap to -1, if the syscall number is changed
   to an invalid value on the first syscall interception.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/s390/kernel/ptrace.c
include/asm-s390/user.h