f48cb8b48b
Impact: Allow 64 bit PowerPC to trace modules with dynamic ftrace This adds code to handle the PPC64 module trampolines, and allows for PPC64 to use dynamic ftrace. Thanks to Paul Mackerras for these updates: - fix the mod and rec->arch.mod NULL checks. - fix to is_bl_op compare. Thanks to Milton Miller for: - finding the nasty race with using two nops, and recommending instead that I use a branch 8 forward. Signed-off-by: Steven Rostedt <srostedt@redhat.com>
27 lines
572 B
C
27 lines
572 B
C
#ifndef _ASM_POWERPC_FTRACE
|
|
#define _ASM_POWERPC_FTRACE
|
|
|
|
#ifdef CONFIG_FUNCTION_TRACER
|
|
#define MCOUNT_ADDR ((long)(_mcount))
|
|
#define MCOUNT_INSN_SIZE 4 /* sizeof mcount call */
|
|
|
|
#ifndef __ASSEMBLY__
|
|
extern void _mcount(void);
|
|
|
|
#ifdef CONFIG_DYNAMIC_FTRACE
|
|
static inline unsigned long ftrace_call_adjust(unsigned long addr)
|
|
{
|
|
/* reloction of mcount call site is the same as the address */
|
|
return addr;
|
|
}
|
|
|
|
struct dyn_arch_ftrace {
|
|
struct module *mod;
|
|
};
|
|
#endif /* CONFIG_DYNAMIC_FTRACE */
|
|
#endif /* __ASSEMBLY__ */
|
|
|
|
#endif
|
|
|
|
#endif /* _ASM_POWERPC_FTRACE */
|