1 // SPDX-License-Identifier: GPL-2.0 2 /* 3 * Stack trace management functions 4 * 5 * Copyright IBM Corp. 2006 6 * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> 7 */ 8 9 #include <linux/stacktrace.h> 10 #include <asm/stacktrace.h> 11 #include <asm/unwind.h> 12 13 void arch_stack_walk(stack_trace_consume_fn consume_entry, void *cookie, 14 struct task_struct *task, struct pt_regs *regs) 15 { 16 struct unwind_state state; 17 unsigned long addr; 18 19 unwind_for_each_frame(&state, task, regs, 0) { 20 addr = unwind_get_return_address(&state); 21 if (!addr || !consume_entry(cookie, addr, false)) 22 break; 23 } 24 } 25