From owner-cvs-src-old@FreeBSD.ORG Thu Dec 2 10:39:53 2010 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EA2411065696 for ; Thu, 2 Dec 2010 10:39:53 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D6EAF8FC18 for ; Thu, 2 Dec 2010 10:39:53 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.4/8.14.4) with ESMTP id oB2Adrrd093520 for ; Thu, 2 Dec 2010 10:39:53 GMT (envelope-from bz@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.4/8.14.4/Submit) id oB2AdrAH093519 for cvs-src-old@freebsd.org; Thu, 2 Dec 2010 10:39:53 GMT (envelope-from bz@repoman.freebsd.org) Message-Id: <201012021039.oB2AdrAH093519@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to bz@repoman.freebsd.org using -f From: "Bjoern A. Zeeb" Date: Thu, 2 Dec 2010 10:39:44 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: RELENG_8 Subject: cvs commit: src/sys/netinet6 in6.c nd6.c nd6_nbr.c X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Dec 2010 10:39:54 -0000 bz 2010-12-02 10:39:44 UTC FreeBSD src repository Modified files: (Branch: RELENG_8) sys/netinet6 in6.c nd6.c nd6_nbr.c Log: SVN rev 216118 on 2010-12-02 10:39:44Z by bz MFC r216022: Plug well observed races on la_hold entries with the callout handler. Call the handler function with the lock held, return unlocked as we might free the entry. Rework functions later in the call graph to be either called with the lock held or, only if needed, unlocked. Place asserts to document and tighten assumptions on various lle locking, which were not always true before. We call nd6_ns_output() unlocked and the assignment of ip6->ip6_src was decentralized to minimize possible complexity introduced with the formerly missing locking there. This also resulted in a push down of local variable scopes into smaller blocks. Reported by: many Submitted by: Dmitrij Tejblum (tejblum yandex-team.ru) (original version) Tested by: remko PR: kern/148857 Approved by: re (kib) Revision Changes Path 1.121.2.12 +3 -1 src/sys/netinet6/in6.c 1.123.2.14 +64 -38 src/sys/netinet6/nd6.c 1.69.2.5 +23 -19 src/sys/netinet6/nd6_nbr.c