diff options
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/arm/Kconfig | 1 | ||||
| -rw-r--r-- | arch/arm/kernel/signal.c | 7 | 
2 files changed, 8 insertions, 0 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index c43f5bb55ac8..4fb45365c0ea 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -90,6 +90,7 @@ config ARM  	select HAVE_PERF_USER_STACK_DUMP  	select HAVE_RCU_TABLE_FREE if (SMP && ARM_LPAE)  	select HAVE_REGS_AND_STACK_ACCESS_API +	select HAVE_RSEQ  	select HAVE_SYSCALL_TRACEPOINTS  	select HAVE_UID16  	select HAVE_VIRT_CPU_ACCOUNTING_GEN diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c index bd8810d4acb3..5879ab3f53c1 100644 --- a/arch/arm/kernel/signal.c +++ b/arch/arm/kernel/signal.c @@ -541,6 +541,12 @@ static void handle_signal(struct ksignal *ksig, struct pt_regs *regs)  	int ret;  	/* +	 * Increment event counter and perform fixup for the pre-signal +	 * frame. +	 */ +	rseq_signal_deliver(regs); + +	/*  	 * Set up the stack frame  	 */  	if (ksig->ka.sa.sa_flags & SA_SIGINFO) @@ -660,6 +666,7 @@ do_work_pending(struct pt_regs *regs, unsigned int thread_flags, int syscall)  			} else {  				clear_thread_flag(TIF_NOTIFY_RESUME);  				tracehook_notify_resume(regs); +				rseq_handle_notify_resume(regs);  			}  		}  		local_irq_disable();  | 
