diff options
Diffstat (limited to 'arch/x86/include/asm/signal.h')
-rw-r--r-- | arch/x86/include/asm/signal.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/x86/include/asm/signal.h b/arch/x86/include/asm/signal.h index 598457cbd0f8..1213ebd7bee7 100644 --- a/arch/x86/include/asm/signal.h +++ b/arch/x86/include/asm/signal.h @@ -31,6 +31,19 @@ typedef struct { unsigned long sig[_NSIG_WORDS]; } sigset_t; +/* + * Because some traps use the IST stack, we must keep + * preemption disabled while calling do_trap(), but do_trap() + * may call force_sig_info() which will grab the signal spin_locks + * for the task, which in PREEMPT_RT_FULL are mutexes. + * By defining ARCH_RT_DELAYS_SIGNAL_SEND the force_sig_info() will + * set TIF_NOTIFY_RESUME and set up the signal to be sent on exit + * of the trap. + */ +#if defined(CONFIG_PREEMPT_RT_FULL) && defined(CONFIG_X86_64) +#define ARCH_RT_DELAYS_SIGNAL_SEND +#endif + #else /* Here we must cater to libcs that poke about in kernel headers. */ |