diff options
author | Takashi Iwai <tiwai@suse.de> | 2015-10-07 20:11:21 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2015-10-07 20:11:21 +0200 |
commit | 601d62959d08a450d4666c728ddd2f47c5ba1cfe (patch) | |
tree | 52d9f3c1a2528a9de405d5a19014f3f94b16b35d /arch/arm64/kernel/entry-ftrace.S | |
parent | ALSA: synth: Fix conflicting OSS device registration on AWE32 (diff) | |
parent | Merge remote-tracking branches 'asoc/fix/tlv320aic3x' and 'asoc/fix/wm8962' i... (diff) | |
download | linux-601d62959d08a450d4666c728ddd2f47c5ba1cfe.tar.xz linux-601d62959d08a450d4666c728ddd2f47c5ba1cfe.zip |
Merge tag 'asoc-fix-v4.3-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
ASoC: Fixes for v4.3
Quite a few fixes here but they're all very small and driver specific,
none of them really stand out if you aren't using the relevant hardware
but they're all useful if you do happen to have an affected device.
Diffstat (limited to 'arch/arm64/kernel/entry-ftrace.S')
-rw-r--r-- | arch/arm64/kernel/entry-ftrace.S | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/arch/arm64/kernel/entry-ftrace.S b/arch/arm64/kernel/entry-ftrace.S index 08cafc518b9a..0f03a8fe2314 100644 --- a/arch/arm64/kernel/entry-ftrace.S +++ b/arch/arm64/kernel/entry-ftrace.S @@ -178,6 +178,24 @@ ENTRY(ftrace_stub) ENDPROC(ftrace_stub) #ifdef CONFIG_FUNCTION_GRAPH_TRACER + /* save return value regs*/ + .macro save_return_regs + sub sp, sp, #64 + stp x0, x1, [sp] + stp x2, x3, [sp, #16] + stp x4, x5, [sp, #32] + stp x6, x7, [sp, #48] + .endm + + /* restore return value regs*/ + .macro restore_return_regs + ldp x0, x1, [sp] + ldp x2, x3, [sp, #16] + ldp x4, x5, [sp, #32] + ldp x6, x7, [sp, #48] + add sp, sp, #64 + .endm + /* * void ftrace_graph_caller(void) * @@ -204,11 +222,11 @@ ENDPROC(ftrace_graph_caller) * only when CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST is enabled. */ ENTRY(return_to_handler) - str x0, [sp, #-16]! + save_return_regs mov x0, x29 // parent's fp bl ftrace_return_to_handler// addr = ftrace_return_to_hander(fp); mov x30, x0 // restore the original return address - ldr x0, [sp], #16 + restore_return_regs ret END(return_to_handler) #endif /* CONFIG_FUNCTION_GRAPH_TRACER */ |