From 84f6005ccf27aee202ea70d398e7a37ec1f7801a Mon Sep 17 00:00:00 2001 From: Robert Watson Date: Mon, 20 Apr 2009 23:25:38 +0000 Subject: [PATCH] Acquire interfce address list lock while walking the interface address list during tun device initialization. MFC after: 2 weeks --- sys/net/if_tun.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/net/if_tun.c b/sys/net/if_tun.c index 0a1d34e733d..df965beefad 100644 --- a/sys/net/if_tun.c +++ b/sys/net/if_tun.c @@ -520,6 +520,7 @@ tuninit(struct ifnet *ifp) getmicrotime(&ifp->if_lastchange); #ifdef INET + IF_ADDR_LOCK(ifp); TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) { if (ifa->ifa_addr->sa_family == AF_INET) { struct sockaddr_in *si; @@ -535,6 +536,7 @@ tuninit(struct ifnet *ifp) mtx_unlock(&tp->tun_mtx); } } + IF_ADDR_UNLOCK(ifp); #endif return (error); }