summaryrefslogtreecommitdiffstats
path: root/arch/s390/include/asm/ftrace.h
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2009-06-12 10:26:44 +0200
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2009-06-12 10:27:38 +0200
commitdfd9f7abc0fb67b5781f340d982384cea53b2884 (patch)
tree850baae88167699f45ba1dea1765b9156373db72 /arch/s390/include/asm/ftrace.h
parent[S390] kprobes: use probe_kernel_write (diff)
downloadlinux-dfd9f7abc0fb67b5781f340d982384cea53b2884.tar.xz
linux-dfd9f7abc0fb67b5781f340d982384cea53b2884.zip
[S390] ftrace: add dynamic ftrace support
Dynamic ftrace support for s390. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/include/asm/ftrace.h')
-rw-r--r--arch/s390/include/asm/ftrace.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/s390/include/asm/ftrace.h b/arch/s390/include/asm/ftrace.h
index 5a5bc75e19d4..ba23d8f97d07 100644
--- a/arch/s390/include/asm/ftrace.h
+++ b/arch/s390/include/asm/ftrace.h
@@ -2,7 +2,26 @@
#define _ASM_S390_FTRACE_H
#ifndef __ASSEMBLY__
+
extern void _mcount(void);
+extern unsigned long ftrace_dyn_func;
+
+struct dyn_arch_ftrace { };
+
+#define MCOUNT_ADDR ((long)_mcount)
+
+#ifdef CONFIG_64BIT
+#define MCOUNT_INSN_SIZE 24
+#define MCOUNT_OFFSET 14
+#else
+#define MCOUNT_INSN_SIZE 30
+#define MCOUNT_OFFSET 8
#endif
+static inline unsigned long ftrace_call_adjust(unsigned long addr)
+{
+ return addr - MCOUNT_OFFSET;
+}
+
+#endif /* __ASSEMBLY__ */
#endif /* _ASM_S390_FTRACE_H */