diff options
author | Ingo Molnar <mingo@kernel.org> | 2012-11-13 18:58:39 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2012-11-13 18:58:39 +0100 |
commit | 745040347d7e8e7b47e3790de76423d9eab474eb (patch) | |
tree | 6cd8e949b68b2006071d7075bfae89103626ff26 /arch | |
parent | 59fa6245192159ab5e1e17b8e31f15afa9cff4bf (diff) | |
parent | 2c5594df344cd1ff0cc9bf007dea3235582b3acf (diff) |
Merge branch 'rcu/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/urgent
Pull syscall tracing fix from Paul E. McKenney.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kernel/ptrace.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/x86/kernel/ptrace.c b/arch/x86/kernel/ptrace.c index b00b33a1839..eff5b8c6865 100644 --- a/arch/x86/kernel/ptrace.c +++ b/arch/x86/kernel/ptrace.c @@ -1511,6 +1511,13 @@ void syscall_trace_leave(struct pt_regs *regs) { 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); if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT))) |