MIPS: Ftrace: Fix the CONFIG_DYNAMIC_FTRACE=n compile
arch/mips/kernel/ftrace.c: In function ‘ftrace_get_parent_ra_addr’: arch/mips/kernel/ftrace.c:212: error: implicit declaration of function ‘in_kernel_space’ arch/mips/kernel/ftrace.c: In function ‘prepare_ftrace_return’: arch/mips/kernel/ftrace.c:314: error: ‘MCOUNT_OFFSET_INSNS’ undeclared (first use in this function) arch/mips/kernel/ftrace.c:314: error: (Each undeclared identifier is reported only once arch/mips/kernel/ftrace.c:314: error: for each function it appears in.) Signed-off-by: Thomas Gleixner <tglx@linutronix.de> To: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/2634/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
20ef5d3a23
commit
49de830ad7
@ -19,6 +19,26 @@
|
|||||||
|
|
||||||
#include <asm-generic/sections.h>
|
#include <asm-generic/sections.h>
|
||||||
|
|
||||||
|
#if defined(KBUILD_MCOUNT_RA_ADDRESS) && defined(CONFIG_32BIT)
|
||||||
|
#define MCOUNT_OFFSET_INSNS 5
|
||||||
|
#else
|
||||||
|
#define MCOUNT_OFFSET_INSNS 4
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Check if the address is in kernel space
|
||||||
|
*
|
||||||
|
* Clone core_kernel_text() from kernel/extable.c, but doesn't call
|
||||||
|
* init_kernel_text() for Ftrace doesn't trace functions in init sections.
|
||||||
|
*/
|
||||||
|
static inline int in_kernel_space(unsigned long ip)
|
||||||
|
{
|
||||||
|
if (ip >= (unsigned long)_stext &&
|
||||||
|
ip <= (unsigned long)_etext)
|
||||||
|
return 1;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_DYNAMIC_FTRACE
|
#ifdef CONFIG_DYNAMIC_FTRACE
|
||||||
|
|
||||||
#define JAL 0x0c000000 /* jump & link: ip --> ra, jump to target */
|
#define JAL 0x0c000000 /* jump & link: ip --> ra, jump to target */
|
||||||
@ -54,20 +74,6 @@ static inline void ftrace_dyn_arch_init_insns(void)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Check if the address is in kernel space
|
|
||||||
*
|
|
||||||
* Clone core_kernel_text() from kernel/extable.c, but doesn't call
|
|
||||||
* init_kernel_text() for Ftrace doesn't trace functions in init sections.
|
|
||||||
*/
|
|
||||||
static inline int in_kernel_space(unsigned long ip)
|
|
||||||
{
|
|
||||||
if (ip >= (unsigned long)_stext &&
|
|
||||||
ip <= (unsigned long)_etext)
|
|
||||||
return 1;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int ftrace_modify_code(unsigned long ip, unsigned int new_code)
|
static int ftrace_modify_code(unsigned long ip, unsigned int new_code)
|
||||||
{
|
{
|
||||||
int faulted;
|
int faulted;
|
||||||
@ -112,11 +118,6 @@ static int ftrace_modify_code(unsigned long ip, unsigned int new_code)
|
|||||||
* 1: offset = 4 instructions
|
* 1: offset = 4 instructions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined(KBUILD_MCOUNT_RA_ADDRESS) && defined(CONFIG_32BIT)
|
|
||||||
#define MCOUNT_OFFSET_INSNS 5
|
|
||||||
#else
|
|
||||||
#define MCOUNT_OFFSET_INSNS 4
|
|
||||||
#endif
|
|
||||||
#define INSN_B_1F (0x10000000 | MCOUNT_OFFSET_INSNS)
|
#define INSN_B_1F (0x10000000 | MCOUNT_OFFSET_INSNS)
|
||||||
|
|
||||||
int ftrace_make_nop(struct module *mod,
|
int ftrace_make_nop(struct module *mod,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user