diff options
author | rwatson <rwatson@FreeBSD.org> | 2005-08-02 23:51:22 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2005-08-02 23:51:22 +0000 |
commit | efa13b9da9fc80838e2c73140ae27393b3660da4 (patch) | |
tree | 6a51a4d707aa123ea392e553343304e5cac763ac /sys/netinet/in_var.h | |
parent | 127682bc8cc0193fbd197a841ceae23e224bfe24 (diff) | |
download | FreeBSD-src-efa13b9da9fc80838e2c73140ae27393b3660da4.zip FreeBSD-src-efa13b9da9fc80838e2c73140ae27393b3660da4.tar.gz |
Modify network protocol consumers of the ifnet multicast address lists
to lock if_addr_mtx.
Problem reported by: Ed Maste <emaste at phaedrus dot sandvine dot ca>
MFC after: 1 week
Diffstat (limited to 'sys/netinet/in_var.h')
-rw-r--r-- | sys/netinet/in_var.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/netinet/in_var.h b/sys/netinet/in_var.h index 2106211..95a4558 100644 --- a/sys/netinet/in_var.h +++ b/sys/netinet/in_var.h @@ -185,6 +185,7 @@ struct in_multistep { do { \ struct ifmultiaddr *ifma; \ \ + 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 == \ @@ -192,6 +193,7 @@ do { \ break; \ } \ (inm) = ifma ? ifma->ifma_protospec : 0; \ + IF_ADDR_UNLOCK(ifp); \ } while(0) /* |