From f44f65ff03f7dd2ad508480dc5d8fcf4ce6f33a4 Mon Sep 17 00:00:00 2001 From: Mark Johnston Date: Sat, 25 Jan 2025 16:17:03 +0000 Subject: [PATCH] arm64: Clean up usage of the dtrace invop handler - Don't consume the breakpoint if all invop handlers returned a non-zero value. - Fix style nits. MFC after: 2 weeks Sponsored by: Innovate UK (cherry picked from commit 853cd8723494ccc2e972aaa09e7d04ede1508c95) --- sys/arm64/arm64/trap.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sys/arm64/arm64/trap.c b/sys/arm64/arm64/trap.c index 64a27b138a9..fdcb7e708da 100644 --- a/sys/arm64/arm64/trap.c +++ b/sys/arm64/arm64/trap.c @@ -538,11 +538,10 @@ do_el1h_sync(struct thread *td, struct trapframe *frame) break; case EXCP_BRK: #ifdef KDTRACE_HOOKS - if ((esr & ESR_ELx_ISS_MASK) == 0x40d && \ - dtrace_invop_jump_addr != 0) { - dtrace_invop_jump_addr(frame); + if ((esr & ESR_ELx_ISS_MASK) == 0x40d /* BRK_IMM16_VAL */ && + dtrace_invop_jump_addr != NULL && + dtrace_invop_jump_addr(frame) == 0) break; - } #endif #ifdef KDB kdb_trap(exception, 0, frame);