svn commit: r195070 - head/sys/net

Robert Watson rwatson at FreeBSD.org
Fri Jun 26 18:50:50 UTC 2009


Author: rwatson
Date: Fri Jun 26 18:50:49 2009
New Revision: 195070
URL: http://svn.freebsd.org/changeset/base/195070

Log:
  Use if_addr_rlock/if_addr_runlock for if_spp when iterating if_addrhead,
  as it is loadable as a module.
  
  Approved by:	re (kib)
  MFC after:	6 weeks

Modified:
  head/sys/net/if_spppsubr.c

Modified: head/sys/net/if_spppsubr.c
==============================================================================
--- head/sys/net/if_spppsubr.c	Fri Jun 26 18:40:29 2009	(r195069)
+++ head/sys/net/if_spppsubr.c	Fri Jun 26 18:50:49 2009	(r195070)
@@ -4905,7 +4905,7 @@ sppp_get_ip_addrs(struct sppp *sp, u_lon
 	 * aliases don't make any sense on a p2p link anyway.
 	 */
 	si = 0;
-	IF_ADDR_LOCK(ifp);
+	if_addr_rlock(ifp);
 	TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link)
 		if (ifa->ifa_addr->sa_family == AF_INET) {
 			si = (struct sockaddr_in *)ifa->ifa_addr;
@@ -4924,7 +4924,7 @@ sppp_get_ip_addrs(struct sppp *sp, u_lon
 		if (si && si->sin_addr.s_addr)
 			ddst = si->sin_addr.s_addr;
 	}
-	IF_ADDR_UNLOCK(ifp);
+	if_addr_runlock(ifp);
 
 	if (dst) *dst = ntohl(ddst);
 	if (src) *src = ntohl(ssrc);
@@ -4948,7 +4948,7 @@ sppp_set_ip_addr(struct sppp *sp, u_long
 	 * aliases don't make any sense on a p2p link anyway.
 	 */
 	si = 0;
-	IF_ADDR_LOCK(ifp);
+	if_addr_rlock(ifp);
 	TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) {
 		if (ifa->ifa_addr->sa_family == AF_INET) {
 			si = (struct sockaddr_in *)ifa->ifa_addr;
@@ -4958,7 +4958,7 @@ sppp_set_ip_addr(struct sppp *sp, u_long
 			}
 		}
 	}
-	IF_ADDR_UNLOCK(ifp);
+	if_addr_runlock(ifp);
 
 	if (ifa != NULL) {
 		int error;
@@ -5010,7 +5010,7 @@ sppp_get_ip6_addrs(struct sppp *sp, stru
 	 * aliases don't make any sense on a p2p link anyway.
 	 */
 	si = NULL;
-	IF_ADDR_LOCK(ifp);
+	if_addr_rlock(ifp);
 	TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link)
 		if (ifa->ifa_addr->sa_family == AF_INET6) {
 			si = (struct sockaddr_in6 *)ifa->ifa_addr;
@@ -5036,7 +5036,7 @@ sppp_get_ip6_addrs(struct sppp *sp, stru
 		bcopy(&ddst, dst, sizeof(*dst));
 	if (src)
 		bcopy(&ssrc, src, sizeof(*src));
-	IF_ADDR_UNLOCK(ifp);
+	if_addr_runlock(ifp);
 }
 
 #ifdef IPV6CP_MYIFID_DYN
@@ -5065,7 +5065,7 @@ sppp_set_ip6_addr(struct sppp *sp, const
 	 */
 
 	sin6 = NULL;
-	IF_ADDR_LOCK(ifp);
+	if_addr_rlock(ifp);
 	TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link) {
 		if (ifa->ifa_addr->sa_family == AF_INET6) {
 			sin6 = (struct sockaddr_in6 *)ifa->ifa_addr;
@@ -5075,7 +5075,7 @@ sppp_set_ip6_addr(struct sppp *sp, const
 			}
 		}
 	}
-	IF_ADDR_UNLOCK(ifp);
+	if_addr_runlock(ifp);
 
 	if (ifa != NULL) {
 		int error;


More information about the svn-src-head mailing list