Author: rwatson Date: Fri Jun 26 00:45:20 2009 New Revision: 195022 URL: http://svn.freebsd.org/changeset/base/195022
Log: Update if_stf and if_tun to use if_addr_rlock()/if_addr_runlock() rather than IF_ADDR_LOCK()/IF_ADDR_UNLOCK() when iterating ifp->if_addrhead. MFC after: 6 weeks Modified: head/sys/net/if_stf.c head/sys/net/if_tun.c Modified: head/sys/net/if_stf.c ============================================================================== --- head/sys/net/if_stf.c Fri Jun 26 00:44:23 2009 (r195021) +++ head/sys/net/if_stf.c Fri Jun 26 00:45:20 2009 (r195022) @@ -384,7 +384,7 @@ stf_getsrcifa6(ifp) struct sockaddr_in6 *sin6; struct in_addr in; - IF_ADDR_LOCK(ifp); + if_addr_rlock(ifp); TAILQ_FOREACH(ia, &ifp->if_addrhead, ifa_link) { if (ia->ifa_addr->sa_family != AF_INET6) continue; @@ -400,10 +400,10 @@ stf_getsrcifa6(ifp) continue; ifa_ref(ia); - IF_ADDR_UNLOCK(ifp); + if_addr_runlock(ifp); return (struct in6_ifaddr *)ia; } - IF_ADDR_UNLOCK(ifp); + if_addr_runlock(ifp); return NULL; } Modified: head/sys/net/if_tun.c ============================================================================== --- head/sys/net/if_tun.c Fri Jun 26 00:44:23 2009 (r195021) +++ head/sys/net/if_tun.c Fri Jun 26 00:45:20 2009 (r195022) @@ -520,7 +520,7 @@ tuninit(struct ifnet *ifp) getmicrotime(&ifp->if_lastchange); #ifdef INET - IF_ADDR_LOCK(ifp); + if_addr_rlock(ifp); TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { if (ifa->ifa_addr->sa_family == AF_INET) { struct sockaddr_in *si; @@ -536,7 +536,7 @@ tuninit(struct ifnet *ifp) mtx_unlock(&tp->tun_mtx); } } - IF_ADDR_UNLOCK(ifp); + if_addr_runlock(ifp); #endif return (error); } _______________________________________________ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"