The branch main has been updated by kib:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=3e8a9995e9541a0bdd707f111e51ef46a544ee3e

commit 3e8a9995e9541a0bdd707f111e51ef46a544ee3e
Author:     Konstantin Belousov <[email protected]>
AuthorDate: 2026-02-18 19:04:39 +0000
Commit:     Konstantin Belousov <[email protected]>
CommitDate: 2026-03-05 23:53:57 +0000

    amd64: extract uprintf_signal printing into a helper
---
 sys/amd64/amd64/trap.c | 40 +++++++++++++++++++++++++---------------
 1 file changed, 25 insertions(+), 15 deletions(-)

diff --git a/sys/amd64/amd64/trap.c b/sys/amd64/amd64/trap.c
index 84305ca918df..d07fbc223193 100644
--- a/sys/amd64/amd64/trap.c
+++ b/sys/amd64/amd64/trap.c
@@ -177,6 +177,30 @@ SYSCTL_INT(_machdep, OID_AUTO, nmi_flush_l1d_sw, 
CTLFLAG_RWTUN,
     &nmi_flush_l1d_sw, 0,
     "Flush L1 Data Cache on NMI exit, software bhyve L1TF mitigation assist");
 
+static void
+trap_uprintf_signal(struct thread *td, struct trapframe *frame, register_t 
addr,
+    int signo, int ucode)
+{
+       struct proc *p;
+
+       if (!uprintf_signal)
+               return;
+       p = td->td_proc;
+       uprintf("pid %d comm %s: signal %d err %#lx code %d type %d "
+           "addr %#lx rsp %#lx rip %#lx rax %#lx "
+           "<%02x %02x %02x %02x %02x %02x %02x %02x>\n",
+           p->p_pid, p->p_comm, signo, frame->tf_err, ucode, frame->tf_trapno,
+           addr, frame->tf_rsp, frame->tf_rip, frame->tf_rax,
+           fubyte((void *)(frame->tf_rip + 0)),
+           fubyte((void *)(frame->tf_rip + 1)),
+           fubyte((void *)(frame->tf_rip + 2)),
+           fubyte((void *)(frame->tf_rip + 3)),
+           fubyte((void *)(frame->tf_rip + 4)),
+           fubyte((void *)(frame->tf_rip + 5)),
+           fubyte((void *)(frame->tf_rip + 6)),
+           fubyte((void *)(frame->tf_rip + 7)));
+}
+
 /*
  * Table of handlers for various segment load faults.
  */
@@ -626,21 +650,7 @@ trap(struct trapframe *frame)
        ksi.ksi_code = ucode;
        ksi.ksi_trapno = type;
        ksi.ksi_addr = (void *)addr;
-       if (uprintf_signal) {
-               uprintf("pid %d comm %s: signal %d err %#lx code %d type %d "
-                   "addr %#lx rsp %#lx rip %#lx rax %#lx "
-                   "<%02x %02x %02x %02x %02x %02x %02x %02x>\n",
-                   p->p_pid, p->p_comm, signo, frame->tf_err, ucode, type,
-                   addr, frame->tf_rsp, frame->tf_rip, frame->tf_rax,
-                   fubyte((void *)(frame->tf_rip + 0)),
-                   fubyte((void *)(frame->tf_rip + 1)),
-                   fubyte((void *)(frame->tf_rip + 2)),
-                   fubyte((void *)(frame->tf_rip + 3)),
-                   fubyte((void *)(frame->tf_rip + 4)),
-                   fubyte((void *)(frame->tf_rip + 5)),
-                   fubyte((void *)(frame->tf_rip + 6)),
-                   fubyte((void *)(frame->tf_rip + 7)));
-       }
+       trap_uprintf_signal(td, frame, addr, signo, ucode);
        KASSERT((read_rflags() & PSL_I) != 0, ("interrupts disabled"));
        trapsignal(td, &ksi);
 

Reply via email to