ftrace/x86: Have ftrace_write() return -EPERM and clean up callers
Having ftrace_write() return -EPERM on failure, as that's what the callers return, then we can clean up the code a bit. That is, instead of: if (ftrace_write(...)) return -EPERM; return 0; or if (ftrace_write(...)) { ret = -EPERM; goto_out; } We can instead have: return ftrace_write(...); or ret = ftrace_write(...); if (ret) goto out; Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
parent
7dec935a3a
commit
92550405c4
1 changed files with 8 additions and 19 deletions
|
@ -308,7 +308,10 @@ static int ftrace_write(unsigned long ip, const char *val, int size)
|
|||
if (within(ip, (unsigned long)_text, (unsigned long)_etext))
|
||||
ip = (unsigned long)__va(__pa_symbol(ip));
|
||||
|
||||
return probe_kernel_write((void *)ip, val, size);
|
||||
if (probe_kernel_write((void *)ip, val, size))
|
||||
return -EPERM;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int add_break(unsigned long ip, const char *old)
|
||||
|
@ -323,10 +326,7 @@ static int add_break(unsigned long ip, const char *old)
|
|||
if (memcmp(replaced, old, MCOUNT_INSN_SIZE) != 0)
|
||||
return -EINVAL;
|
||||
|
||||
if (ftrace_write(ip, &brk, 1))
|
||||
return -EPERM;
|
||||
|
||||
return 0;
|
||||
return ftrace_write(ip, &brk, 1);
|
||||
}
|
||||
|
||||
static int add_brk_on_call(struct dyn_ftrace *rec, unsigned long addr)
|
||||
|
@ -463,9 +463,7 @@ static int add_update_code(unsigned long ip, unsigned const char *new)
|
|||
/* skip breakpoint */
|
||||
ip++;
|
||||
new++;
|
||||
if (ftrace_write(ip, new, MCOUNT_INSN_SIZE - 1))
|
||||
return -EPERM;
|
||||
return 0;
|
||||
return ftrace_write(ip, new, MCOUNT_INSN_SIZE - 1);
|
||||
}
|
||||
|
||||
static int add_update_call(struct dyn_ftrace *rec, unsigned long addr)
|
||||
|
@ -520,10 +518,7 @@ static int finish_update_call(struct dyn_ftrace *rec, unsigned long addr)
|
|||
|
||||
new = ftrace_call_replace(ip, addr);
|
||||
|
||||
if (ftrace_write(ip, new, 1))
|
||||
return -EPERM;
|
||||
|
||||
return 0;
|
||||
return ftrace_write(ip, new, 1);
|
||||
}
|
||||
|
||||
static int finish_update_nop(struct dyn_ftrace *rec)
|
||||
|
@ -533,9 +528,7 @@ static int finish_update_nop(struct dyn_ftrace *rec)
|
|||
|
||||
new = ftrace_nop_replace();
|
||||
|
||||
if (ftrace_write(ip, new, 1))
|
||||
return -EPERM;
|
||||
return 0;
|
||||
return ftrace_write(ip, new, 1);
|
||||
}
|
||||
|
||||
static int finish_update(struct dyn_ftrace *rec, int enable)
|
||||
|
@ -656,10 +649,6 @@ ftrace_modify_code(unsigned long ip, unsigned const char *old_code,
|
|||
run_sync();
|
||||
|
||||
ret = ftrace_write(ip, new_code, 1);
|
||||
if (ret) {
|
||||
ret = -EPERM;
|
||||
goto out;
|
||||
}
|
||||
out:
|
||||
run_sync();
|
||||
return ret;
|
||||
|
|
Loading…
Reference in a new issue