aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonrad Witaszczyk <def@FreeBSD.org>2025-10-28 16:09:24 +0000
committerKonrad Witaszczyk <def@FreeBSD.org>2025-10-29 17:52:42 +0000
commit2acdec9e4d915ec61d0ca45b408f9beb7aa4b772 (patch)
tree8115a15149bdcbdf317c19f567bc4354cc23e94e
parentbe27c64b3a0150534252a66263703283a79c39a0 (diff)
dtrace/arm64: properly traverse the symbol table
LINKER_EACH_FUNCTION_NAMEVAL() stops processing the symbol table if a callback function returns a non-zero value. The fbt_provide_module_function() callback should not return 1 when ignoring symbols. Instead, always return 0, as in dtrace/x86. Fixes: 30b68ecda84e ("Changes that improve DTrace FBT reliability on freebsd/arm64:") Reviewed by: markj, oshogbo Approved by: oshogbo (mentor) Obtained from: CheriBSD Differential Revision: https://reviews.freebsd.org/D53399
-rw-r--r--sys/cddl/dev/fbt/aarch64/fbt_isa.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/cddl/dev/fbt/aarch64/fbt_isa.c b/sys/cddl/dev/fbt/aarch64/fbt_isa.c
index ffe2f37a6d16..6c789530442d 100644
--- a/sys/cddl/dev/fbt/aarch64/fbt_isa.c
+++ b/sys/cddl/dev/fbt/aarch64/fbt_isa.c
@@ -104,7 +104,7 @@ fbt_provide_module_function(linker_file_t lf, int symindx,
*/
if (strcmp(name, "handle_el1h_sync") == 0 ||
strcmp(name, "do_el1h_sync") == 0)
- return (1);
+ return (0);
instr = (uint32_t *)(symval->value);
limit = (uint32_t *)(symval->value + symval->size);