[RFC PATCH 2/3] arm64: stacktrace: Report when we reach the end of the stack
Mark Rutland
mark.rutland at arm.com
Tue Oct 13 07:07:55 EDT 2020
On Mon, Oct 12, 2020 at 06:26:04PM +0100, Mark Brown wrote:
> Currently the arm64 unwinder code returns -EINVAL whenever it can't find
> the next stack frame, not distinguishing between cases where the stack has
> been corrupted or is otherwise in a state it shouldn't be and cases
> where we have reached the end of the stack. At the minute none of the
> callers care what error code is returned but this will be important for
> reliable stack trace which needs to be sure that the stack is intact.
>
> Change to return -ENOENT in the case where we reach the bottom of the
> stack. The error codes from this function are only used in kernel, this
> particular code is chosen as we are indicating that we know there is no
> frame there.
>
> Signed-off-by: Mark Brown <broonie at kernel.org>
Acked-by: Mark Rutland <mark.rutland at arm.com>
Mark.
> ---
> arch/arm64/kernel/stacktrace.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm64/kernel/stacktrace.c b/arch/arm64/kernel/stacktrace.c
> index 0fb42129b469..ad20981dfda4 100644
> --- a/arch/arm64/kernel/stacktrace.c
> +++ b/arch/arm64/kernel/stacktrace.c
> @@ -46,7 +46,7 @@ int notrace unwind_frame(struct task_struct *tsk, struct stackframe *frame)
>
> /* Terminal record; nothing to unwind */
> if (!fp)
> - return -EINVAL;
> + return -ENOENT;
>
> if (fp & 0xf)
> return -EINVAL;
> --
> 2.20.1
>
More information about the linux-arm-kernel
mailing list