|
@@ -164,6 +164,7 @@ static void exit_to_usermode_loop(struct pt_regs *regs, u32 cached_flags)
|
|
|
if (cached_flags & _TIF_NOTIFY_RESUME) {
|
|
|
clear_thread_flag(TIF_NOTIFY_RESUME);
|
|
|
tracehook_notify_resume(regs);
|
|
|
+ rseq_handle_notify_resume(regs);
|
|
|
}
|
|
|
|
|
|
if (cached_flags & _TIF_USER_RETURN_NOTIFY)
|
|
@@ -254,6 +255,8 @@ __visible inline void syscall_return_slowpath(struct pt_regs *regs)
|
|
|
WARN(irqs_disabled(), "syscall %ld left IRQs disabled", regs->orig_ax))
|
|
|
local_irq_enable();
|
|
|
|
|
|
+ rseq_syscall(regs);
|
|
|
+
|
|
|
/*
|
|
|
* First do one-time work. If these work items are enabled, we
|
|
|
* want to run them exactly once per syscall exit with IRQs on.
|