svn commit: r355102 - head/sys/netinet6
Ryan Libby
rlibby at FreeBSD.org
Mon Nov 25 22:25:11 UTC 2019
Author: rlibby
Date: Mon Nov 25 22:25:10 2019
New Revision: 355102
URL: https://svnweb.freebsd.org/changeset/base/355102
Log:
in6_joingroup_locked: need if_addr_lock around in6m_disconnect_locked
It looks like the call that requires the lock was introduced in r337866.
Reviewed by: hselasky
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D20739
Modified:
head/sys/netinet6/in6_mcast.c
Modified: head/sys/netinet6/in6_mcast.c
==============================================================================
--- head/sys/netinet6/in6_mcast.c Mon Nov 25 21:21:37 2019 (r355101)
+++ head/sys/netinet6/in6_mcast.c Mon Nov 25 22:25:10 2019 (r355102)
@@ -1267,6 +1267,7 @@ out_in6m_release:
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) {
@@ -1277,6 +1278,7 @@ out_in6m_release:
in6m_disconnect_locked(&inmh, inm);
in6m_rele_locked(&inmh, inm);
NET_EPOCH_EXIT(et);
+ IF_ADDR_WUNLOCK(ifp);
} else {
*pinm = inm;
}
More information about the svn-src-all
mailing list