Some ppc64 signal/ptrace patches.
Paul Mackerras
paulus at samba.org
Mon Dec 13 15:10:27 EST 2004
David Woodhouse writes:
> First, single-stepping into and out of signals wasn't working. We were
> sending a SIGTRAP to the debugger on the second instruction of the
> handler, not the first.
The patch you included doesn't seem to have the bits to fix that.
> Second, the return path from sigsuspend() was stomping on the r4 and r5
> registers (the args to the signal handler) by using syscall_exit to get
> back to userspace instead of ret_from_except.
Likewise, there were no entry.S changes in the patch. Care to send an
all-inclusive patch, or series of patches, that fix all these problems?
> Third, signals were remaining masked when a signal handler was _NOT_
> invoked due to having a bogus altstack. We aborted the setup of the
> signal frame and forced a SIGSEGV, but we didn't put the original signal
> mask back. As discovered by Bodo Stroesser.
AFAICS we will now just stay in the loop in sys_[32][rt_]sigsuspend in
this case, rather than actually ever delivering the SIGSEGV...
Paul.
More information about the Linuxppc64-dev
mailing list