Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 7 Nov 2019 20:44:34 +0000 (UTC)
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r354476 - head/sys/netinet
Message-ID:  <201911072044.xA7KiYnn072130@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: glebius
Date: Thu Nov  7 20:44:34 2019
New Revision: 354476
URL: https://svnweb.freebsd.org/changeset/base/354476

Log:
  Remove unnecessary recursive epoch enter via INP_INFO_RLOCK
  macro in divert_packet().  This function is called only from
  pfil(9) filters, which in their place always run in the
  network epoch.

Modified:
  head/sys/netinet/ip_divert.c

Modified: head/sys/netinet/ip_divert.c
==============================================================================
--- head/sys/netinet/ip_divert.c	Thu Nov  7 20:43:12 2019	(r354475)
+++ head/sys/netinet/ip_divert.c	Thu Nov  7 20:44:34 2019	(r354476)
@@ -192,8 +192,9 @@ divert_packet(struct mbuf *m, bool incoming)
 	u_int16_t nport;
 	struct sockaddr_in divsrc;
 	struct m_tag *mtag;
-	struct epoch_tracker et;
 
+	NET_EPOCH_ASSERT();
+
 	mtag = m_tag_locate(m, MTAG_IPFW_RULE, 0, NULL);
 	if (mtag == NULL) {
 		m_freem(m);
@@ -231,7 +232,6 @@ divert_packet(struct mbuf *m, bool incoming)
 
 		/* Sanity check */
 		M_ASSERTPKTHDR(m);
-		NET_EPOCH_ASSERT();
 
 		/* Find IP address for receive interface */
 		ifp = m->m_pkthdr.rcvif;
@@ -272,7 +272,6 @@ divert_packet(struct mbuf *m, bool incoming)
 	/* Put packet on socket queue, if any */
 	sa = NULL;
 	nport = htons((u_int16_t)(((struct ipfw_rule_ref *)(mtag+1))->info));
-	INP_INFO_RLOCK_ET(&V_divcbinfo, et);
 	CK_LIST_FOREACH(inp, &V_divcb, inp_list) {
 		/* XXX why does only one socket match? */
 		if (inp->inp_lport == nport) {
@@ -290,7 +289,6 @@ divert_packet(struct mbuf *m, bool incoming)
 			break;
 		}
 	}
-	INP_INFO_RUNLOCK_ET(&V_divcbinfo, et);
 	if (sa == NULL) {
 		m_freem(m);
 		KMOD_IPSTAT_INC(ips_noproto);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201911072044.xA7KiYnn072130>