Skip to contentSkip to conversation

arm64: stacktrace: Report when we reach the end of the stack

PATCH RESEND Applied Mark Brown 2 participants 2 messages Feb 24, 2021 – Feb 25, 2021 arm64

lore
Share & tools
lore

Mark Brown

author
#0 lore raw

PATCH RESEND 1/1 arm64: stacktrace: Report when we reach the end of the stack

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.

---

Resending this separately from the wider series it was originally sent in as it came up in discussion of Madhavan's series earlier today - we could probably just apply this as is since it seems like we'll want it regardless of how reliable stacktrace ends up being implemented.

 arch/arm64/kernel/stacktrace.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm64/kernel/stacktrace.c +1 -1
index 0fb42129b469..ad20981dfda4 100644
@@ -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;
Signature · 7 lines
2.20.1


_______________________________________________
linux-arm-kernel mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
maintainer Applied
#1 lore raw
Quoted 8 lines · Mark Brown

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.

[...]

Applied to arm64 (for-next/fixes), thanks!

[1/1] arm64: stacktrace: Report when we reach the end of the stack

      https://git.kernel.org/arm64/c/3c02600144bd

Cheers,

Signature · 10 lines
Will

https://fixes.arm64.dev
https://next.arm64.dev
https://will.arm64.dev

_______________________________________________
linux-arm-kernel mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel