PERFORCE change 80632 for review

Robert Watson rwatson at FreeBSD.org
Wed Jul 20 21:27:43 GMT 2005


http://perforce.freebsd.org/chv.cgi?CH=80632

Change 80632 by rwatson at rwatson_zoo on 2005/07/20 21:27:06

	While unsatisfactory from the perspective of addressing inter-layer
	and network layer locking for multicast address lists and data,
	acquire the link layer multicast address lock around network layer
	iteration of the link layer multicast address list.  This will
	change when I work on the network layer behavior.

Affected files ...

.. //depot/projects/netsmp/src/sys/netinet/in_var.h#4 edit
.. //depot/projects/netsmp/src/sys/netinet6/in6_var.h#3 edit

Differences ...

==== //depot/projects/netsmp/src/sys/netinet/in_var.h#4 (text+ko) ====

@@ -187,7 +187,7 @@
 do { \
 	struct ifmultiaddr *ifma; \
 \
-	IF_ADDR_LOCK_ASSERT(ifp); \
+	IF_ADDR_LOCK(ifp); \
 	TAILQ_FOREACH(ifma, &((ifp)->if_multiaddrs), ifma_link) { \
 		if (ifma->ifma_addr->sa_family == AF_INET \
 		    && ((struct sockaddr_in *)ifma->ifma_addr)->sin_addr.s_addr == \
@@ -195,6 +195,7 @@
 			break; \
 	} \
 	(inm) = ifma ? ifma->ifma_protospec : 0; \
+	IF_ADDR_UNLOCK(ifp); \
 } while(0)
 
 /*

==== //depot/projects/netsmp/src/sys/netinet6/in6_var.h#3 (text+ko) ====

@@ -545,7 +545,7 @@
 /* struct in6_multi *in6m; */					\
 do { \
 	struct ifmultiaddr *ifma; \
-	IF_ADDR_LOCK_ASSERT(ifp); \
+	IF_ADDR_LOCK(ifp); \
 	TAILQ_FOREACH(ifma, &(ifp)->if_multiaddrs, ifma_link) { \
 		if (ifma->ifma_addr->sa_family == AF_INET6 \
 		    && IN6_ARE_ADDR_EQUAL(&((struct sockaddr_in6 *)ifma->ifma_addr)->sin6_addr, \
@@ -553,6 +553,7 @@
 			break; \
 	} \
 	(in6m) = (struct in6_multi *)(ifma ? ifma->ifma_protospec : 0); \
+	IF_ADDR_UNLOCK(ifp); \
 } while(0)
 
 /*


More information about the p4-projects mailing list