[PATCH 3/6] arm64: stacktrace: make struct stackframe private to stacktrace.c
Madhavan T. Venkataraman
madvenka at linux.microsoft.com
Wed Apr 13 08:03:49 PDT 2022
On 4/13/22 09:59, Mark Rutland wrote:
> Now that arm64 uses arch_stack_walk() consistently, struct stackframe is
> only used within stacktrace.c. To make it easier to read and maintain
> this code, it would be nicer if the definition were there too.
>
> Move the definition into stacktrace.c.
>
> There should be no functional change as a result of this patch.
>
> Signed-off-by: Mark Rutland <mark.rutland at arm.com>
> Cc: Catalin Marinas <catalin.marinas at arm.com>
> Cc: Madhavan T. Venkataraman <madvenka at linux.microsoft.com>
> Cc: Mark Brown <broonie at kernel.org>
> Cc: Will Deacon <will at kernel.org>
> ---
> arch/arm64/include/asm/stacktrace.h | 32 -----------------------------
> arch/arm64/kernel/stacktrace.c | 32 +++++++++++++++++++++++++++++
> 2 files changed, 32 insertions(+), 32 deletions(-)
>
> diff --git a/arch/arm64/include/asm/stacktrace.h b/arch/arm64/include/asm/stacktrace.h
> index e77cdef9ca29..aec9315bf156 100644
> --- a/arch/arm64/include/asm/stacktrace.h
> +++ b/arch/arm64/include/asm/stacktrace.h
> @@ -31,38 +31,6 @@ struct stack_info {
> enum stack_type type;
> };
>
> -/*
> - * A snapshot of a frame record or fp/lr register values, along with some
> - * accounting information necessary for robust unwinding.
> - *
> - * @fp: The fp value in the frame record (or the real fp)
> - * @pc: The lr value in the frame record (or the real lr)
> - *
> - * @stacks_done: Stacks which have been entirely unwound, for which it is no
> - * longer valid to unwind to.
> - *
> - * @prev_fp: The fp that pointed to this frame record, or a synthetic value
> - * of 0. This is used to ensure that within a stack, each
> - * subsequent frame record is at an increasing address.
> - * @prev_type: The type of stack this frame record was on, or a synthetic
> - * value of STACK_TYPE_UNKNOWN. This is used to detect a
> - * transition from one stack to another.
> - *
> - * @kr_cur: When KRETPROBES is selected, holds the kretprobe instance
> - * associated with the most recently encountered replacement lr
> - * value.
> - */
> -struct stackframe {
> - unsigned long fp;
> - unsigned long pc;
> - DECLARE_BITMAP(stacks_done, __NR_STACK_TYPES);
> - unsigned long prev_fp;
> - enum stack_type prev_type;
> -#ifdef CONFIG_KRETPROBES
> - struct llist_node *kr_cur;
> -#endif
> -};
> -
> extern void dump_backtrace(struct pt_regs *regs, struct task_struct *tsk,
> const char *loglvl);
>
> diff --git a/arch/arm64/kernel/stacktrace.c b/arch/arm64/kernel/stacktrace.c
> index 08af9ca9a845..073d0941a5b6 100644
> --- a/arch/arm64/kernel/stacktrace.c
> +++ b/arch/arm64/kernel/stacktrace.c
> @@ -18,6 +18,38 @@
> #include <asm/stack_pointer.h>
> #include <asm/stacktrace.h>
>
> +/*
> + * A snapshot of a frame record or fp/lr register values, along with some
> + * accounting information necessary for robust unwinding.
> + *
> + * @fp: The fp value in the frame record (or the real fp)
> + * @pc: The lr value in the frame record (or the real lr)
> + *
> + * @stacks_done: Stacks which have been entirely unwound, for which it is no
> + * longer valid to unwind to.
> + *
> + * @prev_fp: The fp that pointed to this frame record, or a synthetic value
> + * of 0. This is used to ensure that within a stack, each
> + * subsequent frame record is at an increasing address.
> + * @prev_type: The type of stack this frame record was on, or a synthetic
> + * value of STACK_TYPE_UNKNOWN. This is used to detect a
> + * transition from one stack to another.
> + *
> + * @kr_cur: When KRETPROBES is selected, holds the kretprobe instance
> + * associated with the most recently encountered replacement lr
> + * value.
> + */
> +struct stackframe {
> + unsigned long fp;
> + unsigned long pc;
> + DECLARE_BITMAP(stacks_done, __NR_STACK_TYPES);
> + unsigned long prev_fp;
> + enum stack_type prev_type;
> +#ifdef CONFIG_KRETPROBES
> + struct llist_node *kr_cur;
> +#endif
> +};
> +
> static notrace void start_backtrace(struct stackframe *frame, unsigned long fp,
> unsigned long pc)
> {
Reviewed-by: Madhavan T. Venkataraman <madvenka at linux.microsoft.com>
More information about the linux-arm-kernel
mailing list