[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