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