From 3893212ddc2cea4fdda9588871252e7f11cacf6b Mon Sep 17 00:00:00 2001 From: Robert Watson Date: Fri, 26 Jun 2009 00:45:20 +0000 Subject: [PATCH] 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 --- sys/net/if_stf.c | 6 +++--- sys/net/if_tun.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/sys/net/if_stf.c b/sys/net/if_stf.c index 12ce174f09d8..24e5ca5a8cc1 100644 --- a/sys/net/if_stf.c +++ b/sys/net/if_stf.c @@ -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; } diff --git a/sys/net/if_tun.c b/sys/net/if_tun.c index 41fbb476c761..a9a1c62d0810 100644 --- a/sys/net/if_tun.c +++ b/sys/net/if_tun.c @@ -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); }