32-bit signal contexts missing dar, dsisr, trap

Gary Byers gb at clozure.com
Mon Feb 17 00:26:11 EST 2003


When setting up the signal frame for a 32-bit signal handler, current
versions (2.5.61 from kernel.org, 2.4.21-pre4 with recent patches from
penguinppc64.org) of the ppc64 kernel neglect to copy the dar, dsisr,
and trap fields (at least) from the 64-bit register context to the
handler's 32-bit context.

Somewhat oddly, in both kernels the functions 'setup_frame32' and
'setup_rt_frame32' copy a slightly different set of registers/state
information: setup_rt_frame32() copies the MQ register and
setup_rt_frame32() doesn't.  (I honestly don't know if there are
machines that can run the ppc64 kernel that -have- MQ registers or

Perhaps this would be clearer if the loop that copies the 32 "real"
GPRs were just extended to copy up to and including PT_RESULT ?

Gary Byers
gb at clozure.com

** Sent via the linuxppc64-dev mail list. See http://lists.linuxppc.org/

More information about the Linuxppc64-dev mailing list