aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/xtensa/kernel/stacktrace.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/xtensa/kernel/stacktrace.c b/arch/xtensa/kernel/stacktrace.c
index 174c11f13bba..b9f82510c650 100644
--- a/arch/xtensa/kernel/stacktrace.c
+++ b/arch/xtensa/kernel/stacktrace.c
@@ -253,10 +253,14 @@ static int return_address_cb(struct stackframe *frame, void *data)
253 return 1; 253 return 1;
254} 254}
255 255
256/*
257 * level == 0 is for the return address from the caller of this function,
258 * not from this function itself.
259 */
256unsigned long return_address(unsigned level) 260unsigned long return_address(unsigned level)
257{ 261{
258 struct return_addr_data r = { 262 struct return_addr_data r = {
259 .skip = level + 1, 263 .skip = level,
260 }; 264 };
261 walk_stackframe(stack_pointer(NULL), return_address_cb, &r); 265 walk_stackframe(stack_pointer(NULL), return_address_cb, &r);
262 return r.addr; 266 return r.addr;