Some ppc64 signal/ptrace patches.

Paul Mackerras paulus at
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...


More information about the Linuxppc64-dev mailing list