[IA64] Add TIF_SIGDELAYED, delay a signal until it is safe
Some of the work on recoverable MCA events has a requirement to send a signal to a user process. But it is not safe to send signals from MCA/INIT/NMI/PMI, because the rest of the kernel is an unknown state. This patch adds set_sigdelayed() which is called from the problem contexts to set the delayed signal. The delayed signal will be delivered from the right context on the next transition from kernel to user space. If TIF_SIGDELAYED is set when we run ia64_leave_kernel or ia64_leave_syscall then the delayed signal is delivered and cleared. All code for sigdelayed processing is on the slow paths. A recoverable MCA handler that wants to kill a user task just does set_sigdelayed(pid, signo, code, addr); Signed-off-by:Keith Owens <kaos@sgi.com> Signed-off-by:
Tony Luck <tony.luck@intel.com>
Showing
Please register or sign in to comment