Index: sys/netinet6/in6_mcast.c =================================================================== --- sys/netinet6/in6_mcast.c +++ sys/netinet6/in6_mcast.c @@ -1315,6 +1315,7 @@ struct epoch_tracker et; CTR2(KTR_MLD, "%s: dropping ref on %p", __func__, inm); + IF_ADDR_WLOCK(ifp); NET_EPOCH_ENTER(et); CK_STAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { if (ifma->ifma_protospec == inm) { @@ -1325,6 +1326,7 @@ in6m_disconnect_locked(&inmh, inm); in6m_rele_locked(&inmh, inm); NET_EPOCH_EXIT(et); + IF_ADDR_WUNLOCK(ifp); } else { *pinm = inm; }