svn commit: r185713 - head/sys/netinet
Christian S.J. Peron
csjp at FreeBSD.org
Sat Dec 6 11:09:39 PST 2008
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",
More information about the svn-src-head
mailing list