32-bit signal contexts missing dar, dsisr, trap

Paul Mackerras paulus at samba.org
Wed Feb 19 09:03:27 EST 2003


Gary Byers writes:

> 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.

Hmmm, these fields aren't needed for restoring the state of the
process when the signal handler returns, and the information in them
should mostly be available in a more portable form in the siginfo
struct (for a "real-time" signal handler, at least).

Why do you need dar, dsisr, and trap?

> 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
> not.)

No, the 601 is the most recent processor that has an MQ register
AFAIK. :)

Paul.

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





More information about the Linuxppc64-dev mailing list