summaryrefslogtreecommitdiff
path: root/sys/netinet6/in6_mcast.c
diff options
context:
space:
mode:
authorRyan Libby <rlibby@FreeBSD.org>2019-11-25 22:25:10 +0000
committerRyan Libby <rlibby@FreeBSD.org>2019-11-25 22:25:10 +0000
commit6afe56f9c3acf521f9896cd2a546ce870d9e3a6c (patch)
tree133d413f1191ae03852277eaef266bebe6a45160 /sys/netinet6/in6_mcast.c
parent985d08fe52fda556fc631e7e40c5c2b0704a9d02 (diff)
downloadsrc-test2-6afe56f9c3acf521f9896cd2a546ce870d9e3a6c.tar.gz
src-test2-6afe56f9c3acf521f9896cd2a546ce870d9e3a6c.zip
Notes
Diffstat (limited to 'sys/netinet6/in6_mcast.c')
-rw-r--r--sys/netinet6/in6_mcast.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/netinet6/in6_mcast.c b/sys/netinet6/in6_mcast.c
index 5e7969d2a6da..ec33273144db 100644
--- a/sys/netinet6/in6_mcast.c
+++ b/sys/netinet6/in6_mcast.c
@@ -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;
}