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);
