Commit c797bd45 authored by Madhavan T. Venkataraman's avatar Madhavan T. Venkataraman Committed by Catalin Marinas
Browse files

arm64: stacktrace: rename unwinder functions



Rename unwinder functions for consistency and better naming.

	- Rename start_backtrace() to unwind_init().
	- Rename unwind_frame() to unwind_next().
	- Rename walk_stackframe() to unwind().

There should be no functional change as a result of this patch.

Signed-off-by: default avatarMadhavan T. Venkataraman <madvenka@linux.microsoft.com>
Reviewed-by: default avatarMark Brown <broonie@kernel.org>
Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
Reviewed-by: Kalesh Singh <kaleshsingh@google.com> for the series.
Link: https://lore.kernel.org/r/20220413145910.3060139-5-mark.rutland@arm.com


Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent 96bb1530
Loading
Loading
Loading
Loading
+17 −17
Original line number Diff line number Diff line
@@ -50,7 +50,7 @@ struct stackframe {
#endif
};

static notrace void start_backtrace(struct stackframe *frame, unsigned long fp,
static notrace void unwind_init(struct stackframe *frame, unsigned long fp,
				unsigned long pc)
{
	frame->fp = fp;
@@ -62,7 +62,7 @@ static notrace void start_backtrace(struct stackframe *frame, unsigned long fp,
	/*
	 * Prime the first unwind.
	 *
	 * In unwind_frame() we'll check that the FP points to a valid stack,
	 * In unwind_next() we'll check that the FP points to a valid stack,
	 * which can't be STACK_TYPE_UNKNOWN, and the first unwind will be
	 * treated as a transition to whichever stack that happens to be. The
	 * prev_fp value won't be used, but we set it to 0 such that it is
@@ -72,7 +72,7 @@ static notrace void start_backtrace(struct stackframe *frame, unsigned long fp,
	frame->prev_fp = 0;
	frame->prev_type = STACK_TYPE_UNKNOWN;
}
NOKPROBE_SYMBOL(start_backtrace);
NOKPROBE_SYMBOL(unwind_init);

/*
 * Unwind from one frame record (A) to the next frame record (B).
@@ -81,7 +81,7 @@ NOKPROBE_SYMBOL(start_backtrace);
 * records (e.g. a cycle), determined based on the location and fp value of A
 * and the location (but not the fp value) of B.
 */
static int notrace unwind_frame(struct task_struct *tsk,
static int notrace unwind_next(struct task_struct *tsk,
			       struct stackframe *frame)
{
	unsigned long fp = frame->fp;
@@ -122,7 +122,7 @@ static int notrace unwind_frame(struct task_struct *tsk,

	/*
	 * Record this frame record's values and location. The prev_fp and
	 * prev_type are only meaningful to the next unwind_frame() invocation.
	 * prev_type are only meaningful to the next unwind_next() invocation.
	 */
	frame->fp = READ_ONCE_NOCHECK(*(unsigned long *)(fp));
	frame->pc = READ_ONCE_NOCHECK(*(unsigned long *)(fp + 8));
@@ -155,9 +155,9 @@ static int notrace unwind_frame(struct task_struct *tsk,

	return 0;
}
NOKPROBE_SYMBOL(unwind_frame);
NOKPROBE_SYMBOL(unwind_next);

static void notrace walk_stackframe(struct task_struct *tsk,
static void notrace unwind(struct task_struct *tsk,
			   struct stackframe *frame,
			   bool (*fn)(void *, unsigned long), void *data)
{
@@ -166,12 +166,12 @@ static void notrace walk_stackframe(struct task_struct *tsk,

		if (!fn(data, frame->pc))
			break;
		ret = unwind_frame(tsk, frame);
		ret = unwind_next(tsk, frame);
		if (ret < 0)
			break;
	}
}
NOKPROBE_SYMBOL(walk_stackframe);
NOKPROBE_SYMBOL(unwind);

static bool dump_backtrace_entry(void *arg, unsigned long where)
{
@@ -213,14 +213,14 @@ noinline notrace void arch_stack_walk(stack_trace_consume_fn consume_entry,
	struct stackframe frame;

	if (regs)
		start_backtrace(&frame, regs->regs[29], regs->pc);
		unwind_init(&frame, regs->regs[29], regs->pc);
	else if (task == current)
		start_backtrace(&frame,
		unwind_init(&frame,
				(unsigned long)__builtin_frame_address(1),
				(unsigned long)__builtin_return_address(0));
	else
		start_backtrace(&frame, thread_saved_fp(task),
		unwind_init(&frame, thread_saved_fp(task),
				thread_saved_pc(task));

	walk_stackframe(task, &frame, consume_entry, cookie);
	unwind(task, &frame, consume_entry, cookie);
}