The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=37fa2e7695818d4da269a24e2de1a653828947dd
commit 37fa2e7695818d4da269a24e2de1a653828947dd Author: Konstantin Belousov <[email protected]> AuthorDate: 2026-02-12 20:24:13 +0000 Commit: Colin Percival <[email protected]> CommitDate: 2026-02-18 01:47:15 +0000 filt_timerexpire_l(): re-insert restarted timer into head instead of tail PR: 293141 (cherry picked from commit 75a30ea09f4e75480743fae5c2369d50a6d8526c) (cherry picked from commit 119af90d483aee79bf549b3d63e1093bb59e1092) --- sys/kern/kern_event.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index 835a22c81528..869c4cf24ddb 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -769,8 +769,13 @@ filt_timerexpire_l(struct knote *kn, bool proc_locked) PROC_LOCK(p); if (P_SHOULDSTOP(p) || P_KILLED(p)) { if ((kc->flags & KQ_TIMER_CB_ENQUEUED) == 0) { + /* + * Insert into head so that + * kqtimer_proc_continue() does not + * iterate into us again. + */ kc->flags |= KQ_TIMER_CB_ENQUEUED; - TAILQ_INSERT_TAIL(&p->p_kqtim_stop, kc, link); + TAILQ_INSERT_HEAD(&p->p_kqtim_stop, kc, link); } if (!proc_locked) PROC_UNLOCK(p);
