aboutsummaryrefslogtreecommitdiff
path: root/sys/netinet/in_mcast.c
diff options
context:
space:
mode:
authorAlexander V. Chernikov <melifaro@FreeBSD.org>2020-10-18 12:03:36 +0000
committerAlexander V. Chernikov <melifaro@FreeBSD.org>2020-10-18 12:03:36 +0000
commitfa8b3fcb4cbb145eebef6b05ccf96c737a1193f8 (patch)
tree7c5ad5733362f0e728c0111c0d7d69a5d444ba27 /sys/netinet/in_mcast.c
parent22ab212ff8e9c0cd6044cf61b02ea78aa0f52aa7 (diff)
downloadsrc-fa8b3fcb4cbb145eebef6b05ccf96c737a1193f8.tar.gz
src-fa8b3fcb4cbb145eebef6b05ccf96c737a1193f8.zip
Notes
Diffstat (limited to 'sys/netinet/in_mcast.c')
-rw-r--r--sys/netinet/in_mcast.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/netinet/in_mcast.c b/sys/netinet/in_mcast.c
index f1b9f005ff2c..6d390a0b263c 100644
--- a/sys/netinet/in_mcast.c
+++ b/sys/netinet/in_mcast.c
@@ -2009,6 +2009,7 @@ inp_join_group(struct inpcb *inp, struct sockopt *sopt)
else
ifp = inp_lookup_mcast_ifp(inp, &gsa->sin,
mreqn.imr_address);
+ NET_EPOCH_EXIT(et);
break;
}
case IP_ADD_SOURCE_MEMBERSHIP: {
@@ -2032,6 +2033,7 @@ inp_join_group(struct inpcb *inp, struct sockopt *sopt)
NET_EPOCH_ENTER(et);
ifp = inp_lookup_mcast_ifp(inp, &gsa->sin,
mreqs.imr_interface);
+ NET_EPOCH_EXIT(et);
CTR3(KTR_IGMPV3, "%s: imr_interface = 0x%08x, ifp = %p",
__func__, ntohl(mreqs.imr_interface.s_addr), ifp);
break;
@@ -2074,6 +2076,7 @@ inp_join_group(struct inpcb *inp, struct sockopt *sopt)
return (EADDRNOTAVAIL);
NET_EPOCH_ENTER(et);
ifp = ifnet_byindex_ref(gsr.gsr_interface);
+ NET_EPOCH_EXIT(et);
break;
default:
@@ -2082,7 +2085,6 @@ inp_join_group(struct inpcb *inp, struct sockopt *sopt)
return (EOPNOTSUPP);
break;
}
- NET_EPOCH_EXIT(et);
if (ifp == NULL || (ifp->if_flags & IFF_MULTICAST) == 0) {
if (ifp != NULL)