From owner-cvs-src@FreeBSD.ORG Tue Mar 20 00:36:11 2007 Return-Path: X-Original-To: cvs-src@FreeBSD.org Delivered-To: cvs-src@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4ABB216A408; Tue, 20 Mar 2007 00:36:11 +0000 (UTC) (envelope-from bms@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 3B72E13C45A; Tue, 20 Mar 2007 00:36:11 +0000 (UTC) (envelope-from bms@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l2K0aBU2076531; Tue, 20 Mar 2007 00:36:11 GMT (envelope-from bms@repoman.freebsd.org) Received: (from bms@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l2K0aBjA076530; Tue, 20 Mar 2007 00:36:11 GMT (envelope-from bms) Message-Id: <200703200036.l2K0aBjA076530@repoman.freebsd.org> From: Bruce M Simpson Date: Tue, 20 Mar 2007 00:36:11 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/net if.c if_var.h src/sys/netgraph ng_ether.c src/sys/netinet in.c in_var.h src/sys/netinet6 mld6.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Mar 2007 00:36:11 -0000 bms 2007-03-20 00:36:11 UTC FreeBSD src repository Modified files: sys/net if.c if_var.h sys/netgraph ng_ether.c sys/netinet in.c in_var.h sys/netinet6 mld6.c Log: Implement reference counting for ifmultiaddr, in_multi, and in6_multi structures. Detect when ifnet instances are detached from the network stack and perform appropriate cleanup to prevent memory leaks. This has been implemented in such a way as to be backwards ABI compatible. Kernel consumers are changed to use if_delmulti_ifma(); in_delmulti() is unable to detect interface removal by design, as it performs searches on structures which are removed with the interface. With this architectural change, the panics FreeBSD users have experienced with carp and pfsync should be resolved. Obtained from: p4 branch bms_netdev Reviewed by: andre Sponsored by: Garance A Drosehn Idea from: NetBSD MFC after: 1 month Revision Changes Path 1.267 +193 -37 src/sys/net/if.c 1.111 +2 -2 src/sys/net/if_var.h 1.62 +18 -3 src/sys/netgraph/ng_ether.c 1.97 +114 -74 src/sys/netinet/in.c 1.60 +1 -1 src/sys/netinet/in_var.h 1.29 +83 -72 src/sys/netinet6/mld6.c