From owner-p4-projects@FreeBSD.ORG Wed Jul 20 21:27:42 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6EBAA16A421; Wed, 20 Jul 2005 21:27:42 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 48FB616A41F for ; Wed, 20 Jul 2005 21:27:42 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 06A7D43D46 for ; Wed, 20 Jul 2005 21:27:42 +0000 (GMT) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j6KLRfub012604 for ; Wed, 20 Jul 2005 21:27:41 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j6KLRfQ6012601 for perforce@freebsd.org; Wed, 20 Jul 2005 21:27:41 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Wed, 20 Jul 2005 21:27:41 GMT Message-Id: <200507202127.j6KLRfQ6012601@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 80632 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jul 2005 21:27:43 -0000 http://perforce.freebsd.org/chv.cgi?CH=80632 Change 80632 by rwatson@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) /*