mirror of
https://github.com/torvalds/linux.git
synced 2024-12-23 03:11:46 +00:00
5d6a016349
We have too many combinations for function tracing. Lets simply stick to the most advanced option, so we don't have to care of other combinations. This means we always select DYNAMIC_FTRACE if FUNCTION_TRACER is selected. In the s390 Makefile also remove CONFIG_FTRACE_SYSCALLS since that functionality got moved to architecture independent code in the meantime. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
68 lines
1.2 KiB
ArmAsm
68 lines
1.2 KiB
ArmAsm
/*
|
|
* Copyright IBM Corp. 2008, 2009
|
|
*
|
|
* Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>,
|
|
*
|
|
*/
|
|
|
|
#include <linux/linkage.h>
|
|
#include <asm/asm-offsets.h>
|
|
#include <asm/ftrace.h>
|
|
|
|
.section .kprobes.text, "ax"
|
|
|
|
ENTRY(ftrace_stub)
|
|
br %r14
|
|
|
|
ENTRY(_mcount)
|
|
br %r14
|
|
|
|
ENTRY(ftrace_caller)
|
|
stm %r2,%r5,16(%r15)
|
|
bras %r1,1f
|
|
0: .long ftrace_trace_function
|
|
1: st %r14,56(%r15)
|
|
lr %r0,%r15
|
|
ahi %r15,-96
|
|
l %r3,100(%r15)
|
|
la %r2,0(%r14)
|
|
st %r0,__SF_BACKCHAIN(%r15)
|
|
la %r3,0(%r3)
|
|
ahi %r2,-MCOUNT_INSN_SIZE
|
|
l %r14,0b-0b(%r1)
|
|
l %r14,0(%r14)
|
|
basr %r14,%r14
|
|
#ifdef CONFIG_FUNCTION_GRAPH_TRACER
|
|
l %r2,100(%r15)
|
|
l %r3,152(%r15)
|
|
ENTRY(ftrace_graph_caller)
|
|
# The bras instruction gets runtime patched to call prepare_ftrace_return.
|
|
# See ftrace_enable_ftrace_graph_caller. The patched instruction is:
|
|
# bras %r14,prepare_ftrace_return
|
|
bras %r14,0f
|
|
0: st %r2,100(%r15)
|
|
#endif
|
|
ahi %r15,96
|
|
l %r14,56(%r15)
|
|
lm %r2,%r5,16(%r15)
|
|
br %r14
|
|
|
|
#ifdef CONFIG_FUNCTION_GRAPH_TRACER
|
|
|
|
ENTRY(return_to_handler)
|
|
stm %r2,%r5,16(%r15)
|
|
st %r14,56(%r15)
|
|
lr %r0,%r15
|
|
ahi %r15,-96
|
|
st %r0,__SF_BACKCHAIN(%r15)
|
|
bras %r1,0f
|
|
.long ftrace_return_to_handler
|
|
0: l %r2,0b-0b(%r1)
|
|
basr %r14,%r2
|
|
lr %r14,%r2
|
|
ahi %r15,96
|
|
lm %r2,%r5,16(%r15)
|
|
br %r14
|
|
|
|
#endif
|