svn commit: r338450 - head/sys/netinet6

Bjoern A. Zeeb bz at FreeBSD.org
Mon Sep 3 22:27:29 UTC 2018


Author: bz
Date: Mon Sep  3 22:27:27 2018
New Revision: 338450
URL: https://svnweb.freebsd.org/changeset/base/338450

Log:
  Replicate r328271 from legacy IP to IPv6 using a single macro
  to clear L2 and L3 route caches.
  Also mark one function argument as __unused.
  
  Reviewed by:	karels, ae
  Approved by:	re (rgrimes)
  Differential Revision:	https://reviews.freebsd.org/D17007

Modified:
  head/sys/netinet6/in6_pcb.c
  head/sys/netinet6/ip6_output.c

Modified: head/sys/netinet6/in6_pcb.c
==============================================================================
--- head/sys/netinet6/in6_pcb.c	Mon Sep  3 22:14:37 2018	(r338449)
+++ head/sys/netinet6/in6_pcb.c	Mon Sep  3 22:27:27 2018	(r338450)
@@ -846,13 +846,10 @@ in6_pcbpurgeif0(struct inpcbinfo *pcbinfo, struct ifne
  * (by a redirect), time to try a default gateway again.
  */
 void
-in6_losing(struct inpcb *in6p)
+in6_losing(struct inpcb *inp)
 {
 
-	RO_RTFREE(&in6p->inp_route6);
-	if (in6p->inp_route6.ro_lle)
-		LLE_FREE(in6p->inp_route6.ro_lle);	/* zeros ro_lle */
-	return;
+	RO_INVALIDATE_CACHE(&inp->inp_route6);
 }
 
 /*
@@ -860,12 +857,10 @@ in6_losing(struct inpcb *in6p)
  * and allocate a (hopefully) better one.
  */
 struct inpcb *
-in6_rtchange(struct inpcb *inp, int errno)
+in6_rtchange(struct inpcb *inp, int errno __unused)
 {
 
-	RO_RTFREE(&in6p->inp_route6);
-	if (inp->inp_route6.ro_lle)
-		LLE_FREE(inp->inp_route6.ro_lle);	/* zeros ro_lle */
+	RO_INVALIDATE_CACHE(&inp->inp_route6);
 	return inp;
 }
 

Modified: head/sys/netinet6/ip6_output.c
==============================================================================
--- head/sys/netinet6/ip6_output.c	Mon Sep  3 22:14:37 2018	(r338449)
+++ head/sys/netinet6/ip6_output.c	Mon Sep  3 22:27:27 2018	(r338450)
@@ -804,22 +804,16 @@ again:
 			error = netisr_queue(NETISR_IPV6, m);
 			goto done;
 		} else {
-			RO_RTFREE(ro);
+			RO_INVALIDATE_CACHE(ro);
 			needfiblookup = 1; /* Redo the routing table lookup. */
-			if (ro->ro_lle)
-				LLE_FREE(ro->ro_lle);	/* zeros ro_lle */
-			ro->ro_lle = NULL;
 		}
 	}
 	/* See if fib was changed by packet filter. */
 	if (fibnum != M_GETFIB(m)) {
 		m->m_flags |= M_SKIP_FIREWALL;
 		fibnum = M_GETFIB(m);
-		RO_RTFREE(ro);
+		RO_INVALIDATE_CACHE(ro);
 		needfiblookup = 1;
-		if (ro->ro_lle)
-			LLE_FREE(ro->ro_lle);	/* zeros ro_lle */
-		ro->ro_lle = NULL;
 	}
 	if (needfiblookup)
 		goto again;


More information about the svn-src-head mailing list