• Keith Owens's avatar
    [IA64] Add TIF_SIGDELAYED, delay a signal until it is safe · 88ac1e2b
    Keith Owens authored
    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: default avatarKeith Owens <kaos@sgi.com>
    Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
    88ac1e2b
thread_info.h 3.37 KB