The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=00678f5e5c08ec7949e2f57d78faeaf266a0f17a
commit 00678f5e5c08ec7949e2f57d78faeaf266a0f17a Author: Benjamin Jacobs <[email protected]> AuthorDate: 2026-09-03 13:52:24 +0000 Commit: Mark Johnston <[email protected]> CommitDate: 2026-09-03 15:05:03 +0000 dtrace/arm: Really trap translation faults Fix the constant case label to properly handle translation faults caused by DTrace probes. Alignment errors are not expected to be generated, so stop handling them. While at it, correct an amd64-specific comment and add a comment regarding the missing faulting address which could be addressed by a later improvement. PR: 298064 MFC after: 1 month Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D59281 --- sys/cddl/dev/dtrace/arm/dtrace_subr.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/sys/cddl/dev/dtrace/arm/dtrace_subr.c b/sys/cddl/dev/dtrace/arm/dtrace_subr.c index 10e9281709b6..2cf308fb9f77 100644 --- a/sys/cddl/dev/dtrace/arm/dtrace_subr.c +++ b/sys/cddl/dev/dtrace/arm/dtrace_subr.c @@ -166,7 +166,7 @@ dtrace_gethrestime(void) return (current_time.tv_sec * 1000000000UL + current_time.tv_nsec); } -/* Function to handle DTrace traps during probes. See amd64/amd64/trap.c */ +/* Function to handle DTrace traps during probes. See arm/arm/trap-v6.c */ int dtrace_trap(struct trapframe *frame, u_int type) { @@ -187,8 +187,12 @@ dtrace_trap(struct trapframe *frame, u_int type) */ switch (type) { /* Page fault. */ - case FAULT_ALIGN: + case FAULT_PERM_L1: + case FAULT_PERM_L2: + case FAULT_TRAN_L1: + case FAULT_TRAN_L2: /* Flag a bad address. */ + /* XXX FAR is missing from the trapframe */ cpu_core[curcpu].cpuc_dtrace_flags |= CPU_DTRACE_BADADDR; cpu_core[curcpu].cpuc_dtrace_illval = 0;
