The branch main has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=73e3f094faefea012ce978986c2c5d9e4d417acb
commit 73e3f094faefea012ce978986c2c5d9e4d417acb Author: Konstantin Belousov <k...@freebsd.org> AuthorDate: 2025-07-28 15:04:53 +0000 Commit: Konstantin Belousov <k...@freebsd.org> CommitDate: 2025-07-28 16:22:33 +0000 exterr: enqueue ktrace event on syscall exit instead of at EXTERROR() call This restores the feature of EXTERROR() being allowed at any context except the interrupt handlers. Reviewed by: emaste Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D51595 --- sys/kern/sys_generic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/kern/sys_generic.c b/sys/kern/sys_generic.c index b472aaea89e6..5606b36f772f 100644 --- a/sys/kern/sys_generic.c +++ b/sys/kern/sys_generic.c @@ -2269,6 +2269,7 @@ exterr_copyout(struct thread *td) ue.error = 0; sz = sizeof(ue.error); } else { + ktrexterr(td); sz = sizeof(ue) - __offsetof(struct uexterror, error); } error = copyout(&ue.error, uloc, sz); @@ -2335,7 +2336,6 @@ exterr_set(int eerror, int category, const char *mmsg, uintptr_t pp1, td->td_kexterr.p1 = pp1; td->td_kexterr.p2 = pp2; td->td_kexterr.src_line = line; - ktrexterr(td); } return (eerror); }