Some ppc64 signal/ptrace patches.

David Woodhouse dwmw2 at infradead.org
Sat Nov 27 01:18:49 EST 2004


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.

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.

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.


-- 
dwmw2
-------------- next part --------------
A non-text attachment was scrubbed...
Name: linux-2.6.10-ppc64-sigmasking.patch
Type: text/x-patch
Size: 4353 bytes
Desc: not available
Url : http://ozlabs.org/pipermail/linuxppc64-dev/attachments/20041126/64ea2fb1/attachment.bin 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: linux-2.6.10-ppc64-sigsuspend.patch
Type: text/x-patch
Size: 1643 bytes
Desc: not available
Url : http://ozlabs.org/pipermail/linuxppc64-dev/attachments/20041126/64ea2fb1/attachment-0001.bin 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: linux-2.6.10-ppc64-singlestep.patch
Type: text/x-patch
Size: 3914 bytes
Desc: not available
Url : http://ozlabs.org/pipermail/linuxppc64-dev/attachments/20041126/64ea2fb1/attachment-0002.bin 


More information about the Linuxppc64-dev mailing list