Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 6 Dec 2008 19:09:39 +0000 (UTC)
From:      "Christian S.J. Peron" <csjp@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r185713 - head/sys/netinet
Message-ID:  <200812061909.mB6J9dIv002688@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: csjp
Date: Sat Dec  6 19:09:38 2008
New Revision: 185713
URL: http://svn.freebsd.org/changeset/base/185713

Log:
  in_rtalloc1(9) returns a locked route, so make sure that we use
  RTFREE_LOCKED() here.  This macro makes sure the reference count
  on the route is being managed properly.  This elimates another
  case which results in the following message being printed to the
  console:
  
  rtfree: 0xc841ee88 has 1 refs
  
  Reviewed by:	bz
  MFC after:	2 weeks

Modified:
  head/sys/netinet/if_ether.c

Modified: head/sys/netinet/if_ether.c
==============================================================================
--- head/sys/netinet/if_ether.c	Sat Dec  6 14:50:46 2008	(r185712)
+++ head/sys/netinet/if_ether.c	Sat Dec  6 19:09:38 2008	(r185713)
@@ -924,12 +924,12 @@ reply:
 			 * over who claims what Ether address.
 			 */
 			if (rt->rt_ifp == ifp) {
-				rtfree(rt);
+				RTFREE_LOCKED(rt);
 				goto drop;
 			}
 			(void)memcpy(ar_tha(ah), ar_sha(ah), ah->ar_hln);
 			(void)memcpy(ar_sha(ah), enaddr, ah->ar_hln);
-			rtfree(rt);
+			RTFREE_LOCKED(rt);
 
 			/*
 			 * Also check that the node which sent the ARP packet
@@ -948,10 +948,10 @@ reply:
 				    " from %s via %s, expecting %s\n",
 				    inet_ntoa(isaddr), ifp->if_xname,
 				    rt->rt_ifp->if_xname);
-				rtfree(rt);
+				RTFREE_LOCKED(rt);
 				goto drop;
 			}
-			rtfree(rt);
+			RTFREE_LOCKED(rt);
 
 #ifdef DEBUG_PROXY
 			printf("arp: proxying for %s\n",



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