ftrace: remove mcount set
The arch dependent function ftrace_mcount_set was only used by the daemon start up code. This patch removes it. Signed-off-by: Steven Rostedt <srostedt@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
Родитель
cb7be3b2fc
Коммит
4d296c2432
|
@ -95,19 +95,6 @@ int ftrace_update_ftrace_func(ftrace_func_t func)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ftrace_mcount_set(unsigned long *data)
|
|
||||||
{
|
|
||||||
unsigned long pc, old;
|
|
||||||
unsigned long *addr = data;
|
|
||||||
unsigned char *new;
|
|
||||||
|
|
||||||
pc = (unsigned long)&mcount_call;
|
|
||||||
memcpy(&old, &mcount_call, MCOUNT_INSN_SIZE);
|
|
||||||
new = ftrace_call_replace(pc, *addr);
|
|
||||||
*addr = ftrace_modify_code(pc, (unsigned char *)&old, new);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* run from kstop_machine */
|
/* run from kstop_machine */
|
||||||
int __init ftrace_dyn_arch_init(void *data)
|
int __init ftrace_dyn_arch_init(void *data)
|
||||||
{
|
{
|
||||||
|
|
|
@ -126,23 +126,6 @@ notrace int ftrace_update_ftrace_func(ftrace_func_t func)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
notrace int ftrace_mcount_set(unsigned long *data)
|
|
||||||
{
|
|
||||||
unsigned long ip = (long)(&mcount_call);
|
|
||||||
unsigned long *addr = data;
|
|
||||||
unsigned char old[MCOUNT_INSN_SIZE], *new;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Replace the mcount stub with a pointer to the
|
|
||||||
* ip recorder function.
|
|
||||||
*/
|
|
||||||
memcpy(old, &mcount_call, MCOUNT_INSN_SIZE);
|
|
||||||
new = ftrace_call_replace(ip, *addr);
|
|
||||||
*addr = ftrace_modify_code(ip, old, new);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int __init ftrace_dyn_arch_init(void *data)
|
int __init ftrace_dyn_arch_init(void *data)
|
||||||
{
|
{
|
||||||
/* This is running in kstop_machine */
|
/* This is running in kstop_machine */
|
||||||
|
|
|
@ -69,24 +69,6 @@ notrace int ftrace_update_ftrace_func(ftrace_func_t func)
|
||||||
return ftrace_modify_code(ip, old, new);
|
return ftrace_modify_code(ip, old, new);
|
||||||
}
|
}
|
||||||
|
|
||||||
notrace int ftrace_mcount_set(unsigned long *data)
|
|
||||||
{
|
|
||||||
unsigned long ip = (long)(&mcount_call);
|
|
||||||
unsigned long *addr = data;
|
|
||||||
unsigned char old[MCOUNT_INSN_SIZE], *new;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Replace the mcount stub with a pointer to the
|
|
||||||
* ip recorder function.
|
|
||||||
*/
|
|
||||||
memcpy(old, &mcount_call, MCOUNT_INSN_SIZE);
|
|
||||||
new = ftrace_call_replace(ip, *addr);
|
|
||||||
*addr = ftrace_modify_code(ip, old, new);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int __init ftrace_dyn_arch_init(void *data)
|
int __init ftrace_dyn_arch_init(void *data)
|
||||||
{
|
{
|
||||||
ftrace_mcount_set(data);
|
ftrace_mcount_set(data);
|
||||||
|
|
|
@ -103,13 +103,6 @@ notrace int ftrace_update_ftrace_func(ftrace_func_t func)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
notrace int ftrace_mcount_set(unsigned long *data)
|
|
||||||
{
|
|
||||||
/* mcount is initialized as a nop */
|
|
||||||
*data = 0;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int __init ftrace_dyn_arch_init(void *data)
|
int __init ftrace_dyn_arch_init(void *data)
|
||||||
{
|
{
|
||||||
extern const unsigned char ftrace_test_p6nop[];
|
extern const unsigned char ftrace_test_p6nop[];
|
||||||
|
|
|
@ -71,7 +71,6 @@ extern int ftrace_ip_converted(unsigned long ip);
|
||||||
extern unsigned char *ftrace_nop_replace(void);
|
extern unsigned char *ftrace_nop_replace(void);
|
||||||
extern unsigned char *ftrace_call_replace(unsigned long ip, unsigned long addr);
|
extern unsigned char *ftrace_call_replace(unsigned long ip, unsigned long addr);
|
||||||
extern int ftrace_dyn_arch_init(void *data);
|
extern int ftrace_dyn_arch_init(void *data);
|
||||||
extern int ftrace_mcount_set(unsigned long *data);
|
|
||||||
extern int ftrace_update_ftrace_func(ftrace_func_t func);
|
extern int ftrace_update_ftrace_func(ftrace_func_t func);
|
||||||
extern void ftrace_caller(void);
|
extern void ftrace_caller(void);
|
||||||
extern void ftrace_call(void);
|
extern void ftrace_call(void);
|
||||||
|
|
|
@ -620,7 +620,6 @@ static int ftrace_update_code(void *ignore);
|
||||||
|
|
||||||
static int __ftrace_modify_code(void *data)
|
static int __ftrace_modify_code(void *data)
|
||||||
{
|
{
|
||||||
unsigned long addr;
|
|
||||||
int *command = data;
|
int *command = data;
|
||||||
|
|
||||||
if (*command & FTRACE_ENABLE_CALLS) {
|
if (*command & FTRACE_ENABLE_CALLS) {
|
||||||
|
@ -639,14 +638,6 @@ static int __ftrace_modify_code(void *data)
|
||||||
if (*command & FTRACE_UPDATE_TRACE_FUNC)
|
if (*command & FTRACE_UPDATE_TRACE_FUNC)
|
||||||
ftrace_update_ftrace_func(ftrace_trace_function);
|
ftrace_update_ftrace_func(ftrace_trace_function);
|
||||||
|
|
||||||
if (*command & FTRACE_ENABLE_MCOUNT) {
|
|
||||||
addr = (unsigned long)ftrace_record_ip;
|
|
||||||
ftrace_mcount_set(&addr);
|
|
||||||
} else if (*command & FTRACE_DISABLE_MCOUNT) {
|
|
||||||
addr = (unsigned long)ftrace_stub;
|
|
||||||
ftrace_mcount_set(&addr);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче