View | Details | Raw Unified | Return to bug 204831
Collapse All | Expand All

(-)mld6.c (+10 lines)
Lines 2989-2994 mld_v2_dispatch_general_query(struct mld_ifinfo *m Link Here
2989
	KASSERT(mli->mli_version == MLD_VERSION_2,
2989
	KASSERT(mli->mli_version == MLD_VERSION_2,
2990
	    ("%s: called when version %d", __func__, mli->mli_version));
2990
	    ("%s: called when version %d", __func__, mli->mli_version));
2991
2991
2992
	/*
2993
	 * Check that there are some packets queued. If so, send them first.
2994
	 * For large number of groups the reply to general query can take
2995
	 * many packets, we should finish sending them before starting of
2996
	 * queuing the new reply.
2997
	 */
2998
	if (mli->mli_gq.ifq_head != NULL)
2999
		goto send;
3000
2992
	ifp = mli->mli_ifp;
3001
	ifp = mli->mli_ifp;
2993
3002
2994
	IF_ADDR_RLOCK(ifp);
3003
	IF_ADDR_RLOCK(ifp);
Lines 3024-3029 mld_v2_dispatch_general_query(struct mld_ifinfo *m Link Here
3024
	}
3033
	}
3025
	IF_ADDR_RUNLOCK(ifp);
3034
	IF_ADDR_RUNLOCK(ifp);
3026
3035
3036
send:
3027
	mld_dispatch_queue(&mli->mli_gq, MLD_MAX_RESPONSE_BURST);
3037
	mld_dispatch_queue(&mli->mli_gq, MLD_MAX_RESPONSE_BURST);
3028
3038
3029
	/*
3039
	/*

Return to bug 204831