11 #include <linux/export.h>
14 #if defined(CONFIG_FRAME_POINTER) && !defined(CONFIG_ARM_UNWIND)
15 #include <linux/sched.h>
17 #include <asm/stacktrace.h>
19 struct return_address_data {
26 struct return_address_data *
data =
d;
29 data->addr = (
void *)frame->
lr;
40 struct return_address_data data;
42 register unsigned long current_sp
asm (
"sp");
44 data.level = level + 1;
46 frame.
fp = (
unsigned long)__builtin_frame_address(0);
47 frame.
sp = current_sp;
48 frame.
lr = (
unsigned long)__builtin_return_address(0);
61 #if defined(CONFIG_ARM_UNWIND)
62 #warning "TODO: return_address should use unwind tables"