CVSROOT:        /cvs
Module name:    src
Changes by:     m...@cvs.openbsd.org    2014/05/31 05:27:50

Modified files:
        sys/arch/m88k/m88k: sig_machdep.c trap.c 

Log message:
Address several problems in signal delivery on 88100 processors:
- when building the sigcontext, rewind the pipeline for recoverable
exceptions, so that sigreturn actually has a chance to cause the
interrupted instruction to be run again.
- when returning with sigreturn, and the sigcontext contains valid
DAE information, the DAE need to be emulated before returning, for
the processor will not reissue them.
- finally, when the sigframe is allocated on the current process' stack,
be careful not to stomp upon addresses referenced by the DAE information,
for this would defeat the previous point.

All these changes only affect 88100 processors only. 88110 operation is
unchanged.

While there, do not copyout an empty siginfo struct if the signal handler
does not expect any.

Hair-pulling evil testcase provided by aoyama@, based upon one of
devel/libsigsegv configure tests (which would spin on 88100 and run happily on
88110).

Reply via email to