summaryrefslogtreecommitdiffstats
path: root/arch/arm/include/asm/stacktrace.h
diff options
context:
space:
mode:
authorTakashi Iwai2014-09-03 16:57:41 +0200
committerTakashi Iwai2014-09-03 16:57:41 +0200
commit05244d166739ae273fdc7a2151bdef61df49ca7d (patch)
tree9065482d33f445c90f0b99d29aa51485d1d96488 /arch/arm/include/asm/stacktrace.h
parentALSA: hda - Fix COEF setups for ALC1150 codec (diff)
parentMerge remote-tracking branches 'asoc/fix/axi', 'asoc/fix/cs4265', 'asoc/fix/d... (diff)
downloadkernel-qcow2-linux-05244d166739ae273fdc7a2151bdef61df49ca7d.tar.gz
kernel-qcow2-linux-05244d166739ae273fdc7a2151bdef61df49ca7d.tar.xz
kernel-qcow2-linux-05244d166739ae273fdc7a2151bdef61df49ca7d.zip
Merge tag 'asoc-v3.17-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
ASoC: Fixes for v3.17 A few more driver specific fixes on top of the currently pending fixes (which are already in your tree but not Linus').
Diffstat (limited to 'arch/arm/include/asm/stacktrace.h')
-rw-r--r--arch/arm/include/asm/stacktrace.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/arm/include/asm/stacktrace.h b/arch/arm/include/asm/stacktrace.h
index 4d0a16441b29..7722201ead19 100644
--- a/arch/arm/include/asm/stacktrace.h
+++ b/arch/arm/include/asm/stacktrace.h
@@ -1,13 +1,28 @@
#ifndef __ASM_STACKTRACE_H
#define __ASM_STACKTRACE_H
+#include <asm/ptrace.h>
+
struct stackframe {
+ /*
+ * FP member should hold R7 when CONFIG_THUMB2_KERNEL is enabled
+ * and R11 otherwise.
+ */
unsigned long fp;
unsigned long sp;
unsigned long lr;
unsigned long pc;
};
+static __always_inline
+void arm_get_current_stackframe(struct pt_regs *regs, struct stackframe *frame)
+{
+ frame->fp = frame_pointer(regs);
+ frame->sp = regs->ARM_sp;
+ frame->lr = regs->ARM_lr;
+ frame->pc = regs->ARM_pc;
+}
+
extern int unwind_frame(struct stackframe *frame);
extern void walk_stackframe(struct stackframe *frame,
int (*fn)(struct stackframe *, void *), void *data);