DF-4365 / fix.diff
--- a/sys/dev/netif/pcn/if_pcn.c 2026-09-19 00:00:00.000000000 +0000 +++ b/sys/dev/netif/pcn/if_pcn.c 2026-09-19 00:00:00.000000000 +0000 @@ -876,7 +876,16 @@ struct mii_data *mii; struct ifnet *ifp = &sc->arpcom.ac_if; - lwkt_serialize_enter(ifp->if_serializer); + if (!lwkt_serialize_try(ifp->if_serializer)) { + /* + * Never block the softclock thread on the serializer: + * callout_stop() in pcn_stop() waits synchronously for this + * callback while holding it (AB-BA, DF-3715 family). + * Retry next tick. + */ + callout_reset(&sc->pcn_stat_timer, 1, pcn_tick, sc); + return; + } mii = device_get_softc(sc->pcn_miibus); mii_tick(mii); |