mirror of
https://github.com/torvalds/linux.git
synced 2026-09-26 10:02:02 +02:00
arm64: ftrace: prepare ftrace_modify_call() for use without CALL_OPS
ftrace_modify_call() is guarded by CONFIG_DYNAMIC_FTRACE_WITH_CALL_OPS and calls ftrace_rec_set_ops(rec, arm64_rec_get_ops(rec)) directly, which only exists when CALL_OPS is enabled. Generic ftrace also needs ftrace_modify_call() when CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS is enabled, to retarget a callsite between two non-FTRACE_ADDR destinations, as happens when a direct trampoline is modified. The next patch allows DIRECT_CALLS without CALL_OPS, so widen the guard to cover both configurations and switch the body to the ftrace_rec_update_ops() wrapper, which already has a stub for the !CALL_OPS case. ftrace_make_call() already uses the same wrapper today. No functional change: with CALL_OPS enabled, ftrace_rec_update_ops() expands to the exact call this replaces. Assisted-by: Claude:unspecified Signed-off-by: Jose Fernandez (Anthropic) <jose.fernandez@linux.dev> Acked-by: Xu Kuohai <xukuohai@huawei.com> Tested-by: Nathan Chancellor <nathan@kernel.org> Tested-by: Clayton Craft <craftyguy@postmarketos.org> Reviewed-by: Puranjay Mohan <puranjay@kernel.org> Signed-off-by: Will Deacon <will@kernel.org>
This commit is contained in:
parent
a13c140cc2
commit
123b4fc0f8
|
|
@ -409,7 +409,8 @@ int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
|
|||
return ftrace_modify_code(pc, old, new, true);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_DYNAMIC_FTRACE_WITH_CALL_OPS
|
||||
#if defined(CONFIG_DYNAMIC_FTRACE_WITH_CALL_OPS) || \
|
||||
defined(CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS)
|
||||
int ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_addr,
|
||||
unsigned long addr)
|
||||
{
|
||||
|
|
@ -417,7 +418,7 @@ int ftrace_modify_call(struct dyn_ftrace *rec, unsigned long old_addr,
|
|||
u32 old, new;
|
||||
int ret;
|
||||
|
||||
ret = ftrace_rec_set_ops(rec, arm64_rec_get_ops(rec));
|
||||
ret = ftrace_rec_update_ops(rec);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user