diff --git a/[refs] b/[refs] index 6d09d53da424..e289f8bea873 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a2f8071428ed9a0f06865f417c962421c9a6b488 +refs/heads/master: b6345879ccbd9b92864fbd7eb8ac48acdb4d6b15 diff --git a/trunk/kernel/trace/trace.c b/trunk/kernel/trace/trace.c index 484337d33959..e52683f7c3b2 100644 --- a/trunk/kernel/trace/trace.c +++ b/trunk/kernel/trace/trace.c @@ -1284,6 +1284,13 @@ ftrace_trace_userstack(struct ring_buffer *buffer, unsigned long flags, int pc) if (!(trace_flags & TRACE_ITER_USERSTACKTRACE)) return; + /* + * NMIs can not handle page faults, even with fix ups. + * The save user stack can (and often does) fault. + */ + if (unlikely(in_nmi())) + return; + event = trace_buffer_lock_reserve(buffer, TRACE_USER_STACK, sizeof(*entry), flags, pc); if (!event)