From owner-cvs-src-old@FreeBSD.ORG Sun Aug 23 20:40:58 2009 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 D1CC3106568F for ; Sun, 23 Aug 2009 20:40:58 +0000 (UTC) (envelope-from rwatson@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A2B378FC2B for ; Sun, 23 Aug 2009 20:40:58 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n7NKewkh026932 for ; Sun, 23 Aug 2009 20:40:58 GMT (envelope-from rwatson@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n7NKewri026931 for cvs-src-old@freebsd.org; Sun, 23 Aug 2009 20:40:58 GMT (envelope-from rwatson@repoman.freebsd.org) Message-Id: <200908232040.n7NKewri026931@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to rwatson@repoman.freebsd.org using -f From: Robert Watson Date: Sun, 23 Aug 2009 20:40:19 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/compat/linux linux_ioctl.c src/sys/contrib/altq/altq altq_subr.c src/sys/kern kern_uuid.c src/sys/net bridgestp.c if.c if_llatbl.c if_var.h if_vlan.c src/sys/netgraph ng_gif.c src/sys/netinet in.c src/sys/netinet6 icmp6.c in6.c in6_ifattach.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: Sun, 23 Aug 2009 20:40:58 -0000 rwatson 2009-08-23 20:40:19 UTC FreeBSD src repository Modified files: sys/compat/linux linux_ioctl.c sys/contrib/altq/altq altq_subr.c sys/kern kern_uuid.c sys/net bridgestp.c if.c if_llatbl.c if_var.h if_vlan.c sys/netgraph ng_gif.c sys/netinet in.c sys/netinet6 icmp6.c in6.c in6_ifattach.c nd6.c sys/netipsec xform_ipip.c sys/nfsclient bootp_subr.c Log: SVN rev 196481 on 2009-08-23 20:40:19Z by rwatson Rework global locks for interface list and index management, correcting several critical bugs, including race conditions and lock order issues: Replace the single rwlock, ifnet_lock, with two locks, an rwlock and an sxlock. Either can be held to stablize the lists and indexes, but both are required to write. This allows the list to be held stable in both network interrupt contexts and sleepable user threads across sleeping memory allocations or device driver interactions. As before, writes to the interface list must occur from sleepable contexts. Reviewed by: bz, julian MFC after: 3 days Revision Changes Path 1.156 +4 -6 src/sys/compat/linux/linux_ioctl.c 1.26 +4 -4 src/sys/contrib/altq/altq/altq_subr.c 1.24 +3 -3 src/sys/kern/kern_uuid.c 1.51 +2 -2 src/sys/net/bridgestp.c 1.361 +58 -36 src/sys/net/if.c 1.9 +4 -4 src/sys/net/if_llatbl.c 1.154 +34 -8 src/sys/net/if_var.h 1.140 +2 -2 src/sys/net/if_vlan.c 1.29 +2 -2 src/sys/netgraph/ng_gif.c 1.144 +1 -6 src/sys/netinet/in.c 1.118 +6 -6 src/sys/netinet6/icmp6.c 1.123 +3 -8 src/sys/netinet6/in6.c 1.75 +3 -3 src/sys/netinet6/in6_ifattach.c 1.124 +2 -2 src/sys/netinet6/nd6.c 1.33 +4 -4 src/sys/netipsec/xform_ipip.c 1.87 +1 -1 src/sys/nfsclient/bootp_subr.c