diff --git a/sys/netinet6/in6_mcast.c b/sys/netinet6/in6_mcast.c index 3f948e14f68..dbdbbd8a254 100644 --- a/sys/netinet6/in6_mcast.c +++ b/sys/netinet6/in6_mcast.c @@ -526,9 +526,6 @@ in6m_release_locked(struct in6_multi *inm) in6m_purge(inm); - /* Free state-change requests that might be queued. */ - _IF_DRAIN(&inm->in6m_scq); - free(inm, M_IP6MADDR); if_delmulti_ifma(ifma); @@ -1076,6 +1073,8 @@ in6m_purge(struct in6_multi *inm) free(ims, M_IP6MSOURCE); inm->in6m_nsrc--; } + /* Free state-change requests that might be queued. */ + _IF_DRAIN(&inm->in6m_scq); } /*