mirror of
https://github.com/torvalds/linux.git
synced 2026-09-24 06:24:02 +02:00
arm64: ftrace: allow DIRECT_CALLS without CALL_OPS
Drop the CALL_OPS requirement from the HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS select. Configurations that keep CALL_OPS (!CFI clang builds, and GCC builds without CC_OPTIMIZE_FOR_SIZE) are unchanged. CALL_OPS-less configurations take the ftrace_caller ops-dispatch path for out-of-range direct calls, trading the per-callsite fast path for working BPF trampolines; in-range attachments still branch directly with no overhead. GCC -Os builds also gain DIRECT_CALLS as a side effect. That is intended: s390 and loongarch already ship DIRECT_CALLS without any per-callsite fast path. 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
123b4fc0f8
commit
9315e22b0c
|
|
@ -187,7 +187,7 @@ config ARM64
|
|||
if (GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS || \
|
||||
CLANG_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS)
|
||||
select HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS \
|
||||
if DYNAMIC_FTRACE_WITH_ARGS && DYNAMIC_FTRACE_WITH_CALL_OPS
|
||||
if DYNAMIC_FTRACE_WITH_ARGS
|
||||
select HAVE_DYNAMIC_FTRACE_WITH_CALL_OPS \
|
||||
if (DYNAMIC_FTRACE_WITH_ARGS && !CFI && \
|
||||
(CC_IS_CLANG || !CC_OPTIMIZE_FOR_SIZE))
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user