git: a9a3c5818285 - stable/15 - amd64 FRED: handle INT 3, INT 4, and INT 0x92 same as for IDT
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 03 Nov 2026 09:02:24 UTC
The branch stable/15 has been updated by kib:
URL: https://cgit.FreeBSD.org/src/commit/?id=a9a3c581828535a06ee7b821d7936e9c844f379d
commit a9a3c581828535a06ee7b821d7936e9c844f379d
Author: Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2026-10-29 02:16:42 +0000
Commit: Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2026-11-03 09:01:19 +0000
amd64 FRED: handle INT 3, INT 4, and INT 0x92 same as for IDT
(cherry picked from commit 32b9c967e07c7af2b6e421969d0e7ba1cc9b9425)
---
sys/amd64/amd64/trap.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/sys/amd64/amd64/trap.c b/sys/amd64/amd64/trap.c
index 6de47c23c79a..afcd13604caf 100644
--- a/sys/amd64/amd64/trap.c
+++ b/sys/amd64/amd64/trap.c
@@ -1672,6 +1672,22 @@ trap_fred_u(struct trapframe_fred *frame)
frame->tf_idt.tf_err = fred_inst_len(frame);
ia32_syscall(&frame->tf_idt);
break;
+ } else
+#endif
+ if (vec == IDT_BP || vec == IDT_OF) {
+ trap_fred_ev_to_trapno(frame, vec);
+ trap_fred_update_thread(td, frame);
+ trap_fred_handle_u_exc(td, frame, vec, &ksi,
+ &do_trapsig);
+ break;
+ }
+#ifdef KDTRACE_HOOKS
+ else if (vec == IDT_DTRACE_RET) {
+ frame->tf_idt.tf_trapno = T_DTRACE_RET;
+ trap_fred_update_thread(td, frame);
+ (void)trap_user_dtrace(&frame->tf_idt,
+ &dtrace_return_probe_ptr);
+ return;
}
#endif
trap_fred_u_noperm(frame, &ksi);