Merge branches 'fixes', 'misc' and 'spectre' into for-next
[linux-block.git] / arch / arm / kernel / signal.c
index a8155fdf352dcc273cefbcbe325d421fad1eca7b..b908382b69ff55a4036fc03208e327df6bc3fbd0 100644 (file)
@@ -548,6 +548,12 @@ static void handle_signal(struct ksignal *ksig, struct pt_regs *regs)
        sigset_t *oldset = sigmask_to_save();
        int ret;
 
+       /*
+        * Increment event counter and perform fixup for the pre-signal
+        * frame.
+        */
+       rseq_signal_deliver(ksig, regs);
+
        /*
         * Set up the stack frame
         */
@@ -668,6 +674,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(NULL, regs);
                        }
                }
                local_irq_disable();
@@ -711,3 +718,10 @@ asmlinkage void addr_limit_check_failed(void)
 {
        addr_limit_user_check();
 }
+
+#ifdef CONFIG_DEBUG_RSEQ
+asmlinkage void do_rseq_syscall(struct pt_regs *regs)
+{
+       rseq_syscall(regs);
+}
+#endif