--- a/sys/net/pf/if_pfsync.c 2026-09-11 21:16:24.138644221 +0000 +++ b/sys/net/pf/if_pfsync.c 2026-09-11 21:16:46.350353846 +0000 @@ -200,10 +200,10 @@ lwkt_reltoken(&pf_token); struct pfsync_softc *sc = ifp->if_softc; - callout_stop(&sc->sc_tmo); + callout_drain(&sc->sc_tmo); /* callout_stop(&sc->sc_tdb_tmo); XXX we don't support tdb (yet) */ - callout_stop(&sc->sc_bulk_tmo); - callout_stop(&sc->sc_bulkfail_tmo); + callout_drain(&sc->sc_bulk_tmo); + callout_drain(&sc->sc_bulkfail_tmo); #ifdef CARP if (!pfsync_sync_ok) carp_group_demote_adj(&sc->sc_if, -1); @@ -1516,9 +1516,11 @@ { struct pfsync_softc *sc = v; + lwkt_gettoken(&pf_token); crit_enter(); pfsync_sendout(sc); crit_exit(); + lwkt_reltoken(&pf_token); } void @@ -1549,7 +1551,7 @@ int cpu; struct pf_state *state; - ASSERT_LWKT_TOKEN_HELD(&pf_token); + lwkt_gettoken(&pf_token); crit_enter(); if (sc->sc_mbuf != NULL) @@ -1610,6 +1612,7 @@ if (sc->sc_mbuf != NULL) pfsync_sendout(sc); crit_exit(); + lwkt_reltoken(&pf_token); } void @@ -1618,7 +1621,7 @@ struct pfsync_softc *sc = v; int error; - ASSERT_LWKT_TOKEN_HELD(&pf_token); + lwkt_gettoken(&pf_token); if (sc->sc_bulk_tries++ < PFSYNC_MAX_BULKTRIES) { /* Try again in a bit */ @@ -1651,6 +1654,7 @@ callout_stop(&sc->sc_bulkfail_tmo); lwkt_gettoken(&pf_token); } + lwkt_reltoken(&pf_token); } static void