Commit c5c27a0a authored by Thomas Gleixner's avatar Thomas Gleixner

x86/stacktrace: Remove the pointless ULONG_MAX marker

Terminating the last trace entry with ULONG_MAX is a completely pointless
exercise and none of the consumers can rely on it because it's
inconsistently implemented across architectures. In fact quite some of the
callers remove the entry and adjust stack_trace.nr_entries afterwards.
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Alexander Potapenko <glider@google.com>
Link: https://lkml.kernel.org/r/20190410103643.750954603@linutronix.de
parent fdc78339
...@@ -46,9 +46,6 @@ static void noinline __save_stack_trace(struct stack_trace *trace, ...@@ -46,9 +46,6 @@ static void noinline __save_stack_trace(struct stack_trace *trace,
if (!addr || save_stack_address(trace, addr, nosched)) if (!addr || save_stack_address(trace, addr, nosched))
break; break;
} }
if (trace->nr_entries < trace->max_entries)
trace->entries[trace->nr_entries++] = ULONG_MAX;
} }
/* /*
...@@ -97,7 +94,7 @@ __save_stack_trace_reliable(struct stack_trace *trace, ...@@ -97,7 +94,7 @@ __save_stack_trace_reliable(struct stack_trace *trace,
if (regs) { if (regs) {
/* Success path for user tasks */ /* Success path for user tasks */
if (user_mode(regs)) if (user_mode(regs))
goto success; return 0;
/* /*
* Kernel mode registers on the stack indicate an * Kernel mode registers on the stack indicate an
...@@ -132,10 +129,6 @@ __save_stack_trace_reliable(struct stack_trace *trace, ...@@ -132,10 +129,6 @@ __save_stack_trace_reliable(struct stack_trace *trace,
if (!(task->flags & (PF_KTHREAD | PF_IDLE))) if (!(task->flags & (PF_KTHREAD | PF_IDLE)))
return -EINVAL; return -EINVAL;
success:
if (trace->nr_entries < trace->max_entries)
trace->entries[trace->nr_entries++] = ULONG_MAX;
return 0; return 0;
} }
...@@ -221,9 +214,6 @@ void save_stack_trace_user(struct stack_trace *trace) ...@@ -221,9 +214,6 @@ void save_stack_trace_user(struct stack_trace *trace)
/* /*
* Trace user stack if we are not a kernel thread * Trace user stack if we are not a kernel thread
*/ */
if (current->mm) { if (current->mm)
__save_stack_trace_user(trace); __save_stack_trace_user(trace);
}
if (trace->nr_entries < trace->max_entries)
trace->entries[trace->nr_entries++] = ULONG_MAX;
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment