From owner-svn-src-all@freebsd.org Wed Oct 9 17:03:21 2019 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 973AE1288ED; Wed, 9 Oct 2019 17:03:21 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 46pLBx3V1Fz4g8w; Wed, 9 Oct 2019 17:03:21 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5B0A61B9E0; Wed, 9 Oct 2019 17:03:21 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id x99H3Lif092057; Wed, 9 Oct 2019 17:03:21 GMT (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id x99H3KEe092055; Wed, 9 Oct 2019 17:03:20 GMT (envelope-from glebius@FreeBSD.org) Message-Id: <201910091703.x99H3KEe092055@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: glebius set sender to glebius@FreeBSD.org using -f From: Gleb Smirnoff Date: Wed, 9 Oct 2019 17:03:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353357 - head/sys/netinet X-SVN-Group: head X-SVN-Commit-Author: glebius X-SVN-Commit-Paths: head/sys/netinet X-SVN-Commit-Revision: 353357 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Oct 2019 17:03:21 -0000 Author: glebius Date: Wed Oct 9 17:03:20 2019 New Revision: 353357 URL: https://svnweb.freebsd.org/changeset/base/353357 Log: Revert most of the multicast changes from r353292. This needs a more accurate approach. Modified: head/sys/netinet/in_mcast.c head/sys/netinet/ip_output.c Modified: head/sys/netinet/in_mcast.c ============================================================================== --- head/sys/netinet/in_mcast.c Wed Oct 9 17:02:28 2019 (r353356) +++ head/sys/netinet/in_mcast.c Wed Oct 9 17:03:20 2019 (r353357) @@ -388,12 +388,14 @@ inm_lookup_locked(struct ifnet *ifp, const struct in_a struct in_multi * inm_lookup(struct ifnet *ifp, const struct in_addr ina) { + struct epoch_tracker et; struct in_multi *inm; IN_MULTI_LIST_LOCK_ASSERT(); - NET_EPOCH_ASSERT(); + NET_EPOCH_ENTER(et); inm = inm_lookup_locked(ifp, ina); + NET_EPOCH_EXIT(et); return (inm); } @@ -1198,13 +1200,10 @@ int in_joingroup(struct ifnet *ifp, const struct in_addr *gina, /*const*/ struct in_mfilter *imf, struct in_multi **pinm) { - struct epoch_tracker et; int error; IN_MULTI_LOCK(); - NET_EPOCH_ENTER(et); error = in_joingroup_locked(ifp, gina, imf, pinm); - NET_EPOCH_EXIT(et); IN_MULTI_UNLOCK(); return (error); @@ -1227,7 +1226,6 @@ in_joingroup_locked(struct ifnet *ifp, const struct in struct in_multi *inm; int error; - NET_EPOCH_ASSERT(); IN_MULTI_LOCK_ASSERT(); IN_MULTI_LIST_UNLOCK_ASSERT(); @@ -1285,14 +1283,11 @@ in_joingroup_locked(struct ifnet *ifp, const struct in int in_leavegroup(struct in_multi *inm, /*const*/ struct in_mfilter *imf) { - struct epoch_tracker et; int error; - NET_EPOCH_ENTER(et); IN_MULTI_LOCK(); error = in_leavegroup_locked(inm, imf); IN_MULTI_UNLOCK(); - NET_EPOCH_EXIT(et); return (error); } @@ -1316,7 +1311,6 @@ in_leavegroup_locked(struct in_multi *inm, /*const*/ s struct in_mfilter timf; int error; - NET_EPOCH_ASSERT(); IN_MULTI_LOCK_ASSERT(); IN_MULTI_LIST_UNLOCK_ASSERT(); @@ -1818,11 +1812,15 @@ inp_getmoptions(struct inpcb *inp, struct sockopt *sop if (!in_nullhost(imo->imo_multicast_addr)) { mreqn.imr_address = imo->imo_multicast_addr; } else if (ifp != NULL) { + struct epoch_tracker et; + mreqn.imr_ifindex = ifp->if_index; + NET_EPOCH_ENTER(et); IFP_TO_IA(ifp, ia, &in_ifa_tracker); if (ia != NULL) mreqn.imr_address = IA_SIN(ia)->sin_addr; + NET_EPOCH_EXIT(et); } } INP_WUNLOCK(inp); Modified: head/sys/netinet/ip_output.c ============================================================================== --- head/sys/netinet/ip_output.c Wed Oct 9 17:02:28 2019 (r353356) +++ head/sys/netinet/ip_output.c Wed Oct 9 17:03:20 2019 (r353357) @@ -1079,7 +1079,6 @@ int ip_ctloutput(struct socket *so, struct sockopt *sopt) { struct inpcb *inp = sotoinpcb(so); - struct epoch_tracker et; int error, optval; #ifdef RSS uint32_t rss_bucket; @@ -1518,9 +1517,7 @@ ip_ctloutput(struct socket *so, struct sockopt *sopt) case IP_MULTICAST_TTL: case IP_MULTICAST_LOOP: case IP_MSFILTER: - NET_EPOCH_ENTER(et); error = inp_getmoptions(inp, sopt); - NET_EPOCH_EXIT(et); break; #if defined(IPSEC) || defined(IPSEC_SUPPORT)