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