|
@@ -1511,6 +1511,13 @@ void syscall_trace_leave(struct pt_regs *regs)
|
|
{
|
|
{
|
|
bool step;
|
|
bool step;
|
|
|
|
|
|
|
|
+ /*
|
|
|
|
+ * We may come here right after calling schedule_user()
|
|
|
|
+ * or do_notify_resume(), in which case we can be in RCU
|
|
|
|
+ * user mode.
|
|
|
|
+ */
|
|
|
|
+ rcu_user_exit();
|
|
|
|
+
|
|
audit_syscall_exit(regs);
|
|
audit_syscall_exit(regs);
|
|
|
|
|
|
if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
|
|
if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
|