From owner-svn-src-all@FreeBSD.ORG Sun May 16 03:17:12 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 777A41065675; Sun, 16 May 2010 03:17:12 +0000 (UTC) (envelope-from rfarmer@predatorlabs.net) Received: from mail-gx0-f226.google.com (mail-gx0-f226.google.com [209.85.217.226]) by mx1.freebsd.org (Postfix) with ESMTP id 173F68FC16; Sun, 16 May 2010 03:17:11 +0000 (UTC) Received: by gxk26 with SMTP id 26so827746gxk.13 for ; Sat, 15 May 2010 20:17:11 -0700 (PDT) MIME-Version: 1.0 Received: by 10.150.75.8 with SMTP id x8mr4537839yba.121.1273979831072; Sat, 15 May 2010 20:17:11 -0700 (PDT) Received: by 10.150.137.17 with HTTP; Sat, 15 May 2010 20:17:11 -0700 (PDT) X-Originating-IP: [128.95.133.90] In-Reply-To: <201005152026.o4FKQA3T081989@svn.freebsd.org> References: <201005152026.o4FKQA3T081989@svn.freebsd.org> Date: Sat, 15 May 2010 20:17:11 -0700 Message-ID: From: Rob Farmer To: Matt Jacob Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r208119 - head/sys/dev/isp X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 03:17:12 -0000 On Sat, May 15, 2010 at 1:26 PM, Matt Jacob wrote: > Author: mjacob > Date: Sat May 15 20:26:10 2010 > New Revision: 208119 > URL: http://svn.freebsd.org/changeset/base/208119 > > Log: > =A0Whap. Hook up some wires that were forgotten a few months ago and rest= ore > =A0the zombie device timeout code and the loop down time code and the fab= ric > =A0hysteresis code. > =A0MFC after: =A0 =A01 week > =A0Sponsored By: Panasas > > Modified: > =A0head/sys/dev/isp/isp_freebsd.c > =A0head/sys/dev/isp/ispvar.h > Hi, I haven't seen anything from the tinderbox but I am getting a build failure after this change. This is i386 in vmware: =3D=3D=3D> isp (all) cc -O2 -fno-strict-aliasing -pipe -fomit-frame-pointer -march=3Dprescott -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /usr/obj/usr/src/sys/CORETWO/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=3D8000 --param inline-unit-growth=3D100 --param large-function-growth=3D1000 -fno-common -I/usr/obj/usr/src/sys/CORETWO -mno-align-long-strings -mpreferred-stack-boundary=3D2 -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -ffreestanding -fstack-protector -std=3Diso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -c /usr/src/sys/modules/isp/../../dev/isp/isp.c cc -O2 -fno-strict-aliasing -pipe -fomit-frame-pointer -march=3Dprescott -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /usr/obj/usr/src/sys/CORETWO/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=3D8000 --param inline-unit-growth=3D100 --param large-function-growth=3D1000 -fno-common -I/usr/obj/usr/src/sys/CORETWO -mno-align-long-strings -mpreferred-stack-boundary=3D2 -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -ffreestanding -fstack-protector -std=3Diso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -c /usr/src/sys/modules/isp/../../dev/isp/isp_library.c cc -O2 -fno-strict-aliasing -pipe -fomit-frame-pointer -march=3Dprescott -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /usr/obj/usr/src/sys/CORETWO/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=3D8000 --param inline-unit-growth=3D100 --param large-function-growth=3D1000 -fno-common -I/usr/obj/usr/src/sys/CORETWO -mno-align-long-strings -mpreferred-stack-boundary=3D2 -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -ffreestanding -fstack-protector -std=3Diso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -c /usr/src/sys/modules/isp/../../dev/isp/isp_target.c cc -O2 -fno-strict-aliasing -pipe -fomit-frame-pointer -march=3Dprescott -Werror -D_KERNEL -DKLD_MODULE -nostdinc -DHAVE_KERNEL_OPTION_HEADERS -include /usr/obj/usr/src/sys/CORETWO/opt_global.h -I. -I@ -I@/contrib/altq -finline-limit=3D8000 --param inline-unit-growth=3D100 --param large-function-growth=3D1000 -fno-common -I/usr/obj/usr/src/sys/CORETWO -mno-align-long-strings -mpreferred-stack-boundary=3D2 -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -ffreestanding -fstack-protector -std=3Diso9899:1999 -fstack-protector -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -c /usr/src/sys/modules/isp/../../dev/isp/isp_freebsd.c cc1: warnings being treated as errors /usr/src/sys/modules/isp/../../dev/isp/isp_freebsd.c: In function 'isp_gdt'= : /usr/src/sys/modules/isp/../../dev/isp/isp_freebsd.c:3946: warning: format '%lu' expects type 'long unsigned int', but argument 5 has type 'time_t' /usr/src/sys/modules/isp/../../dev/isp/isp_freebsd.c: In function 'isp_asyn= c': /usr/src/sys/modules/isp/../../dev/isp/isp_freebsd.c:5068: warning: format '%lu' expects type 'long unsigned int', but argument 6 has type 'time_t' *** Error code 1 Stop in /usr/src/sys/modules/isp. *** Error code 1 Stop in /usr/src/sys/modules. *** Error code 1 Stop in /usr/obj/usr/src/sys/CORETWO. *** Error code 1 Stop in /usr/src. *** Error code 1 Stop in /usr/src. --=20 Rob Farmer From owner-svn-src-all@FreeBSD.ORG Sun May 16 04:31:16 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D858C1065677; Sun, 16 May 2010 04:31:16 +0000 (UTC) (envelope-from jfv@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C83D28FC20; Sun, 16 May 2010 04:31:16 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4G4VGBu089005; Sun, 16 May 2010 04:31:16 GMT (envelope-from jfv@svn.freebsd.org) Received: (from jfv@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4G4VGQl089003; Sun, 16 May 2010 04:31:16 GMT (envelope-from jfv@svn.freebsd.org) Message-Id: <201005160431.o4G4VGQl089003@svn.freebsd.org> From: Jack F Vogel Date: Sun, 16 May 2010 04:31:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208127 - stable/7/sys/dev/e1000 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 04:31:17 -0000 Author: jfv Date: Sun May 16 04:31:16 2010 New Revision: 208127 URL: http://svn.freebsd.org/changeset/base/208127 Log: Change poll routine to conform to proper interface. Modified: stable/7/sys/dev/e1000/if_em.c Modified: stable/7/sys/dev/e1000/if_em.c ============================================================================== --- stable/7/sys/dev/e1000/if_em.c Sun May 16 00:43:49 2010 (r208126) +++ stable/7/sys/dev/e1000/if_em.c Sun May 16 04:31:16 2010 (r208127) @@ -1345,7 +1345,7 @@ em_init(void *arg) * Legacy polling routine: note this only works with single queue * *********************************************************************/ -static int +static void em_poll(struct ifnet *ifp, enum poll_cmd cmd, int count) { struct adapter *adapter = ifp->if_softc; @@ -1356,7 +1356,7 @@ em_poll(struct ifnet *ifp, enum poll_cmd EM_CORE_LOCK(adapter); if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) { EM_CORE_UNLOCK(adapter); - return (rx_done); + return; } if (cmd == POLL_AND_CHECK_STATUS) { @@ -1386,7 +1386,7 @@ em_poll(struct ifnet *ifp, enum poll_cmd #endif EM_TX_UNLOCK(txr); - return (rx_done); + return; } #endif /* DEVICE_POLLING */ From owner-svn-src-all@FreeBSD.ORG Sun May 16 05:00:29 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 88151106564A; Sun, 16 May 2010 05:00:29 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 789628FC12; Sun, 16 May 2010 05:00:29 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4G50T15095877; Sun, 16 May 2010 05:00:29 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4G50T1o095875; Sun, 16 May 2010 05:00:29 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201005160500.o4G50T1o095875@svn.freebsd.org> From: Konstantin Belousov Date: Sun, 16 May 2010 05:00:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208128 - head/sys/fs/nullfs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 05:00:29 -0000 Author: kib Date: Sun May 16 05:00:29 2010 New Revision: 208128 URL: http://svn.freebsd.org/changeset/base/208128 Log: Disable bypass for the vop_advlockpurge(). The vop is called after vop_revoke(), the v_data is already destroyed. Reported and tested by: ed Modified: head/sys/fs/nullfs/null_vnops.c Modified: head/sys/fs/nullfs/null_vnops.c ============================================================================== --- head/sys/fs/nullfs/null_vnops.c Sun May 16 04:31:16 2010 (r208127) +++ head/sys/fs/nullfs/null_vnops.c Sun May 16 05:00:29 2010 (r208128) @@ -798,6 +798,7 @@ struct vop_vector null_vnodeops = { .vop_bypass = null_bypass, .vop_access = null_access, .vop_accessx = null_accessx, + .vop_advlockpurge = vop_stdadvlockpurge, .vop_bmap = VOP_EOPNOTSUPP, .vop_getattr = null_getattr, .vop_getwritemount = null_getwritemount, From owner-svn-src-all@FreeBSD.ORG Sun May 16 05:02:31 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3AC2E106566C; Sun, 16 May 2010 05:02:31 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from mail.zoral.com.ua (mx0.zoral.com.ua [91.193.166.200]) by mx1.freebsd.org (Postfix) with ESMTP id A5E448FC14; Sun, 16 May 2010 05:02:30 +0000 (UTC) Received: from deviant.kiev.zoral.com.ua (root@deviant.kiev.zoral.com.ua [10.1.1.148]) by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id o4G52dMG058893 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sun, 16 May 2010 08:02:39 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1]) by deviant.kiev.zoral.com.ua (8.14.4/8.14.4) with ESMTP id o4G52PCN047989; Sun, 16 May 2010 08:02:26 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.14.4/8.14.4/Submit) id o4G52P40047988; Sun, 16 May 2010 08:02:25 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Sun, 16 May 2010 08:02:25 +0300 From: Kostik Belousov To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-ID: <20100516050225.GY83316@deviant.kiev.zoral.com.ua> References: <201005160500.o4G50T1o095875@svn.freebsd.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="KISHs/FnjYvFOG5B" Content-Disposition: inline In-Reply-To: <201005160500.o4G50T1o095875@svn.freebsd.org> User-Agent: Mutt/1.4.2.3i X-Virus-Scanned: clamav-milter 0.95.2 at skuns.kiev.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=-3.7 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00, DNS_FROM_OPENWHOIS autolearn=no version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on skuns.kiev.zoral.com.ua Cc: Subject: Re: svn commit: r208128 - head/sys/fs/nullfs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 05:02:31 -0000 --KISHs/FnjYvFOG5B Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, May 16, 2010 at 05:00:29AM +0000, Konstantin Belousov wrote: > Author: kib > Date: Sun May 16 05:00:29 2010 > New Revision: 208128 > URL: http://svn.freebsd.org/changeset/base/208128 >=20 > Log: > Disable bypass for the vop_advlockpurge(). The vop is called after > vop_revoke(), the v_data is already destroyed. > =20 > Reported and tested by: ed Reported and tested by: emaste Ed Maste, not Ed Schouten. Sorry. --KISHs/FnjYvFOG5B Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (FreeBSD) iEYEARECAAYFAkvvfGEACgkQC3+MBN1Mb4i9iACeMv4FTMPhG3yCNy8hEr3ti67x ztoAoNtrmz1TPYDquQ2VflsrWtgcc8o+ =go+E -----END PGP SIGNATURE----- --KISHs/FnjYvFOG5B-- From owner-svn-src-all@FreeBSD.ORG Sun May 16 05:06:56 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 703FD106566B; Sun, 16 May 2010 05:06:56 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from mail.zoral.com.ua (mx0.zoral.com.ua [91.193.166.200]) by mx1.freebsd.org (Postfix) with ESMTP id DCCFE8FC12; Sun, 16 May 2010 05:06:55 +0000 (UTC) Received: from deviant.kiev.zoral.com.ua (root@deviant.kiev.zoral.com.ua [10.1.1.148]) by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id o4G575FX059128 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sun, 16 May 2010 08:07:05 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1]) by deviant.kiev.zoral.com.ua (8.14.4/8.14.4) with ESMTP id o4G56qoP048006; Sun, 16 May 2010 08:06:52 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.14.4/8.14.4/Submit) id o4G56pa9048005; Sun, 16 May 2010 08:06:51 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Sun, 16 May 2010 08:06:51 +0300 From: Kostik Belousov To: Zachary Loafman Message-ID: <20100516050651.GZ83316@deviant.kiev.zoral.com.ua> References: <201005122124.o4CLOk3b027904@svn.freebsd.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="UEl6xVrmin0CpRyj" Content-Disposition: inline In-Reply-To: <201005122124.o4CLOk3b027904@svn.freebsd.org> User-Agent: Mutt/1.4.2.3i X-Virus-Scanned: clamav-milter 0.95.2 at skuns.kiev.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=-2.5 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_40, DNS_FROM_OPENWHOIS autolearn=no version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on skuns.kiev.zoral.com.ua Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, matthew.fleming@isilon.com Subject: Re: svn commit: r208003 - in head/sys: kern sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 05:06:56 -0000 --UEl6xVrmin0CpRyj Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, May 12, 2010 at 09:24:46PM +0000, Zachary Loafman wrote: > Author: zml > Date: Wed May 12 21:24:46 2010 > New Revision: 208003 > URL: http://svn.freebsd.org/changeset/base/208003 >=20 > Log: > Add VOP_ADVLOCKPURGE so that the file system is called when purging > locks (in the case where the VFS impl isn't using lf_*) > =20 > Submitted by: Matthew Fleming > Reviewed by: zml, dfr After looking at what happen to nullfs, see r208003, I wonder why the vop is needed. It is called after VOP_RECLAIM is called by vgonel(), after fs-specific data are destroyed. So, on the one hand, vop can only operate on struct vnode proper, on the other hand, the actions performed by vop_advlockpurge implementation can be done by vop_reclaim as well. Could you, please, give some details on the supposed use of the vop ? --UEl6xVrmin0CpRyj Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (FreeBSD) iEYEARECAAYFAkvvfWoACgkQC3+MBN1Mb4gXLwCePdawtU3wzHF64fol/6T27b7I 7PgAn0mJbrA0eirA6wYJOpGV7nzaC2KF =E+dx -----END PGP SIGNATURE----- --UEl6xVrmin0CpRyj-- From owner-svn-src-all@FreeBSD.ORG Sun May 16 06:28:22 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8ACA41065673; Sun, 16 May 2010 06:28:22 +0000 (UTC) (envelope-from mj@feral.com) Received: from ns1.feral.com (ns1.feral.com [192.67.166.1]) by mx1.freebsd.org (Postfix) with ESMTP id 57ADE8FC15; Sun, 16 May 2010 06:28:22 +0000 (UTC) Received: from [192.168.0.102] (m206-63.dsl.tsoft.com [198.144.206.63]) by ns1.feral.com (8.14.3/8.14.3) with ESMTP id o4G6SLJf067461; Sat, 15 May 2010 23:28:21 -0700 (PDT) (envelope-from mj@feral.com) Message-ID: <4BEF908C.3000608@feral.com> Date: Sat, 15 May 2010 23:28:28 -0700 From: Matthew Jacob User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.9) Gecko/20100317 Thunderbird/3.0.4 MIME-Version: 1.0 To: Rob Farmer References: <201005152026.o4FKQA3T081989@svn.freebsd.org> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Greylist: Default is to whitelist mail, not delayed by milter-greylist-4.2.3 (ns1.feral.com [192.67.166.1]); Sat, 15 May 2010 23:28:21 -0700 (PDT) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Matt Jacob Subject: Re: svn commit: r208119 - head/sys/dev/isp X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 06:28:22 -0000 On 5/15/2010 8:17 PM, Rob Farmer wrote: > On Sat, May 15, 2010 at 1:26 PM, Matt Jacob wrote: > >> Author: mjacob >> Date: Sat May 15 20:26:10 2010 >> New Revision: 208119 >> URL: http://svn.freebsd.org/changeset/base/208119 >> >> Log: >> Whap. Hook up some wires that were forgotten a few months ago and restore >> the zombie device timeout code and the loop down time code and the fabric >> hysteresis code. >> MFC after: 1 week >> Sponsored By: Panasas >> >> Modified: >> head/sys/dev/isp/isp_freebsd.c >> head/sys/dev/isp/ispvar.h >> >> > Hi, > > I haven't seen anything from the tinderbox but I am getting a build > failure after this change. This is i386 in vmware: > > ===> isp (all) > cc -O2 -fno-strict-aliasing -pipe -fomit-frame-pointer -march=prescott > -Werror -D_KERNEL -DKLD_MODULE -nostdinc > -DHAVE_KERNEL_OPTION_HEADERS -include > /usr/obj/usr/src/sys/CORETWO/opt_global.h -I. -I@ -I@/contrib/altq > -finline-limit=8000 --param inline-unit-growth=100 --param > large-function-growth=1000 -fno-common -I/usr/obj/usr/src/sys/CORETWO > -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx > -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -ffreestanding > -fstack-protector -std=iso9899:1999 -fstack-protector -Wall > -Wredundant-decls -Wnested-externs -Wstrict-prototypes > -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef > -Wno-pointer-sign -fformat-extensions -c > /usr/src/sys/modules/isp/../../dev/isp/isp.c > cc -O2 -fno-strict-aliasing -pipe -fomit-frame-pointer -march=prescott > -Werror -D_KERNEL -DKLD_MODULE -nostdinc > -DHAVE_KERNEL_OPTION_HEADERS -include > /usr/obj/usr/src/sys/CORETWO/opt_global.h -I. -I@ -I@/contrib/altq > -finline-limit=8000 --param inline-unit-growth=100 --param > large-function-growth=1000 -fno-common -I/usr/obj/usr/src/sys/CORETWO > -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx > -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -ffreestanding > -fstack-protector -std=iso9899:1999 -fstack-protector -Wall > -Wredundant-decls -Wnested-externs -Wstrict-prototypes > -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef > -Wno-pointer-sign -fformat-extensions -c > /usr/src/sys/modules/isp/../../dev/isp/isp_library.c > cc -O2 -fno-strict-aliasing -pipe -fomit-frame-pointer -march=prescott > -Werror -D_KERNEL -DKLD_MODULE -nostdinc > -DHAVE_KERNEL_OPTION_HEADERS -include > /usr/obj/usr/src/sys/CORETWO/opt_global.h -I. -I@ -I@/contrib/altq > -finline-limit=8000 --param inline-unit-growth=100 --param > large-function-growth=1000 -fno-common -I/usr/obj/usr/src/sys/CORETWO > -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx > -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -ffreestanding > -fstack-protector -std=iso9899:1999 -fstack-protector -Wall > -Wredundant-decls -Wnested-externs -Wstrict-prototypes > -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef > -Wno-pointer-sign -fformat-extensions -c > /usr/src/sys/modules/isp/../../dev/isp/isp_target.c > cc -O2 -fno-strict-aliasing -pipe -fomit-frame-pointer -march=prescott > -Werror -D_KERNEL -DKLD_MODULE -nostdinc > -DHAVE_KERNEL_OPTION_HEADERS -include > /usr/obj/usr/src/sys/CORETWO/opt_global.h -I. -I@ -I@/contrib/altq > -finline-limit=8000 --param inline-unit-growth=100 --param > large-function-growth=1000 -fno-common -I/usr/obj/usr/src/sys/CORETWO > -mno-align-long-strings -mpreferred-stack-boundary=2 -mno-mmx > -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -ffreestanding > -fstack-protector -std=iso9899:1999 -fstack-protector -Wall > -Wredundant-decls -Wnested-externs -Wstrict-prototypes > -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef > -Wno-pointer-sign -fformat-extensions -c > /usr/src/sys/modules/isp/../../dev/isp/isp_freebsd.c > cc1: warnings being treated as errors > /usr/src/sys/modules/isp/../../dev/isp/isp_freebsd.c: In function 'isp_gdt': > /usr/src/sys/modules/isp/../../dev/isp/isp_freebsd.c:3946: warning: > format '%lu' expects type 'long unsigned int', but argument 5 has type > 'time_t' > /usr/src/sys/modules/isp/../../dev/isp/isp_freebsd.c: In function 'isp_async': > /usr/src/sys/modules/isp/../../dev/isp/isp_freebsd.c:5068: warning: > format '%lu' expects type 'long unsigned int', but argument 6 has type > 'time_t' > *** Error code 1 > Grumble. Thanks. From owner-svn-src-all@FreeBSD.ORG Sun May 16 06:40:05 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8DBA5106564A; Sun, 16 May 2010 06:40:05 +0000 (UTC) (envelope-from mjacob@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7CFA38FC0A; Sun, 16 May 2010 06:40:05 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4G6e5FM021328; Sun, 16 May 2010 06:40:05 GMT (envelope-from mjacob@svn.freebsd.org) Received: (from mjacob@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4G6e5fH021326; Sun, 16 May 2010 06:40:05 GMT (envelope-from mjacob@svn.freebsd.org) Message-Id: <201005160640.o4G6e5fH021326@svn.freebsd.org> From: Matt Jacob Date: Sun, 16 May 2010 06:40:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208129 - head/sys/dev/isp X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 06:40:05 -0000 Author: mjacob Date: Sun May 16 06:40:05 2010 New Revision: 208129 URL: http://svn.freebsd.org/changeset/base/208129 Log: Correct compilation error introduced in last commit. X-MFC: 208119 MFC after: 1 week Sponsored By: Panasas Pointy Hat to: Me Noticed by: Rob Modified: head/sys/dev/isp/isp_freebsd.c Modified: head/sys/dev/isp/isp_freebsd.c ============================================================================== --- head/sys/dev/isp/isp_freebsd.c Sun May 16 05:00:29 2010 (r208128) +++ head/sys/dev/isp/isp_freebsd.c Sun May 16 06:40:05 2010 (r208129) @@ -3943,7 +3943,7 @@ isp_gdt(void *arg) fcportdb_t *lp; int dbidx, tgt, more_to_do = 0; - isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0, "Chan %d GDT timer expired @ %lu", chan, time_uptime); + isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0, "Chan %d GDT timer expired @ %lu", chan, (unsigned long) time_uptime); for (dbidx = 0; dbidx < MAX_FC_TARG; dbidx++) { lp = &FCPARAM(isp, chan)->portdb[dbidx]; @@ -5065,7 +5065,7 @@ isp_async(ispsoftc_t *isp, ispasync_t cm lp->state = FC_PORTDB_STATE_ZOMBIE; lp->gone_timer = ISP_FC_PC(isp, bus)->gone_device_time; if (fc->ready && !callout_active(&fc->gdt)) { - isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0, "Chan %d Starting Gone Device Timer with %u seconds time now %lu", bus, lp->gone_timer, time_uptime); + isp_prt(isp, ISP_LOGSANCFG|ISP_LOGDEBUG0, "Chan %d Starting Gone Device Timer with %u seconds time now %lu", bus, lp->gone_timer, (unsigned long)time_uptime); callout_reset(&fc->gdt, hz, isp_gdt, fc); } tgt = lp->dev_map_idx - 1; From owner-svn-src-all@FreeBSD.ORG Sun May 16 07:16:30 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 80FDF1065674; Sun, 16 May 2010 07:16:30 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6EBEF8FC14; Sun, 16 May 2010 07:16:30 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4G7GTK0029349; Sun, 16 May 2010 07:16:29 GMT (envelope-from mm@svn.freebsd.org) Received: (from mm@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4G7GTxM029345; Sun, 16 May 2010 07:16:29 GMT (envelope-from mm@svn.freebsd.org) Message-Id: <201005160716.o4G7GTxM029345@svn.freebsd.org> From: Martin Matuska Date: Sun, 16 May 2010 07:16:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208130 - in head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 07:16:30 -0000 Author: mm Date: Sun May 16 07:16:28 2010 New Revision: 208130 URL: http://svn.freebsd.org/changeset/base/208130 Log: Fix perfomance problem with ZFS prefetch caching [1] Add statistics for ZFS prefetch (sysctl kstat.zfs.misc.zfetchstats) Partial import of OpenSolaris onnv revision 10474:0e96dd3b905a Reported by: jhell@dataix.net (private e-mail) [1] Approved by: pjd, delphij (mentor) Obtained from: OpenSolaris (Bug ID 6859997, 6868951) MFC after: 3 days Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_zfetch.h Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c Sun May 16 06:40:05 2010 (r208129) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c Sun May 16 07:16:28 2010 (r208130) @@ -1192,6 +1192,7 @@ dmu_init(void) { dbuf_init(); dnode_init(); + zfetch_init(); arc_init(); l2arc_init(); } @@ -1200,6 +1201,7 @@ void dmu_fini(void) { arc_fini(); + zfetch_fini(); dnode_fini(); dbuf_fini(); l2arc_fini(); Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c Sun May 16 06:40:05 2010 (r208129) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c Sun May 16 07:16:28 2010 (r208130) @@ -19,18 +19,17 @@ * CDDL HEADER END */ /* - * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ -#pragma ident "%Z%%M% %I% %E% SMI" - #include #include #include #include #include #include +#include /* * I'm against tune-ables, but these should probably exist as tweakable globals @@ -77,6 +76,41 @@ static zstream_t *dmu_zfetch_stream_recl static void dmu_zfetch_stream_remove(zfetch_t *, zstream_t *); static int dmu_zfetch_streams_equal(zstream_t *, zstream_t *); +typedef struct zfetch_stats { + kstat_named_t zfetchstat_hits; + kstat_named_t zfetchstat_misses; + kstat_named_t zfetchstat_colinear_hits; + kstat_named_t zfetchstat_colinear_misses; + kstat_named_t zfetchstat_stride_hits; + kstat_named_t zfetchstat_stride_misses; + kstat_named_t zfetchstat_reclaim_successes; + kstat_named_t zfetchstat_reclaim_failures; + kstat_named_t zfetchstat_stream_resets; + kstat_named_t zfetchstat_stream_noresets; + kstat_named_t zfetchstat_bogus_streams; +} zfetch_stats_t; + +static zfetch_stats_t zfetch_stats = { + { "hits", KSTAT_DATA_UINT64 }, + { "misses", KSTAT_DATA_UINT64 }, + { "colinear_hits", KSTAT_DATA_UINT64 }, + { "colinear_misses", KSTAT_DATA_UINT64 }, + { "stride_hits", KSTAT_DATA_UINT64 }, + { "stride_misses", KSTAT_DATA_UINT64 }, + { "reclaim_successes", KSTAT_DATA_UINT64 }, + { "reclaim_failures", KSTAT_DATA_UINT64 }, + { "streams_resets", KSTAT_DATA_UINT64 }, + { "streams_noresets", KSTAT_DATA_UINT64 }, + { "bogus_streams", KSTAT_DATA_UINT64 }, +}; + +#define ZFETCHSTAT_INCR(stat, val) \ + atomic_add_64(&zfetch_stats.stat.value.ui64, (val)); + +#define ZFETCHSTAT_BUMP(stat) ZFETCHSTAT_INCR(stat, 1); + +kstat_t *zfetch_ksp; + /* * Given a zfetch structure and a zstream structure, determine whether the * blocks to be read are part of a co-linear pair of existing prefetch @@ -213,6 +247,29 @@ dmu_zfetch_dofetch(zfetch_t *zf, zstream zs->zst_last = LBOLT; } +void +zfetch_init(void) +{ + + zfetch_ksp = kstat_create("zfs", 0, "zfetchstats", "misc", + KSTAT_TYPE_NAMED, sizeof (zfetch_stats) / sizeof (kstat_named_t), + KSTAT_FLAG_VIRTUAL); + + if (zfetch_ksp != NULL) { + zfetch_ksp->ks_data = &zfetch_stats; + kstat_install(zfetch_ksp); + } +} + +void +zfetch_fini(void) +{ + if (zfetch_ksp != NULL) { + kstat_delete(zfetch_ksp); + zfetch_ksp = NULL; + } +} + /* * This takes a pointer to a zfetch structure and a dnode. It performs the * necessary setup for the zfetch structure, grokking data from the @@ -283,7 +340,7 @@ dmu_zfetch_fetchsz(dnode_t *dn, uint64_t } /* - * given a zfetch and a zsearch structure, see if there is an associated zstream + * given a zfetch and a zstream structure, see if there is an associated zstream * for this block read. If so, it starts a prefetch for the stream it * located and returns true, otherwise it returns false */ @@ -315,6 +372,7 @@ top: */ if (zs->zst_len == 0) { /* bogus stream */ + ZFETCHSTAT_BUMP(zfetchstat_bogus_streams); continue; } @@ -324,9 +382,14 @@ top: */ if (zh->zst_offset >= zs->zst_offset && zh->zst_offset < zs->zst_offset + zs->zst_len) { - /* already fetched */ - rc = 1; - goto out; + if (prefetched) { + /* already fetched */ + ZFETCHSTAT_BUMP(zfetchstat_stride_hits); + rc = 1; + goto out; + } else { + ZFETCHSTAT_BUMP(zfetchstat_stride_misses); + } } /* @@ -439,6 +502,7 @@ top: if (reset) { zstream_t *remove = zs; + ZFETCHSTAT_BUMP(zfetchstat_stream_resets); rc = 0; mutex_exit(&zs->zst_lock); rw_exit(&zf->zf_rwlock); @@ -457,6 +521,7 @@ top: } } } else { + ZFETCHSTAT_BUMP(zfetchstat_stream_noresets); rc = 1; dmu_zfetch_dofetch(zf, zs); mutex_exit(&zs->zst_lock); @@ -513,13 +578,12 @@ dmu_zfetch_stream_insert(zfetch_t *zf, z zs_next = list_next(&zf->zf_stream, zs_walk); if (dmu_zfetch_streams_equal(zs_walk, zs)) { - return (0); + return (0); } } list_insert_head(&zf->zf_stream, zs); zf->zf_stream_cnt++; - return (1); } @@ -623,8 +687,15 @@ dmu_zfetch(zfetch_t *zf, uint64_t offset P2ALIGN(offset, blksz)) >> blkshft; fetched = dmu_zfetch_find(zf, &zst, prefetched); - if (!fetched) { - fetched = dmu_zfetch_colinear(zf, &zst); + if (fetched) { + ZFETCHSTAT_BUMP(zfetchstat_hits); + } else { + ZFETCHSTAT_BUMP(zfetchstat_misses); + if (fetched = dmu_zfetch_colinear(zf, &zst)) { + ZFETCHSTAT_BUMP(zfetchstat_colinear_hits); + } else { + ZFETCHSTAT_BUMP(zfetchstat_colinear_misses); + } } if (!fetched) { @@ -634,11 +705,14 @@ dmu_zfetch(zfetch_t *zf, uint64_t offset * we still couldn't find a stream, drop the lock, and allocate * one if possible. Otherwise, give up and go home. */ - if (newstream == NULL) { + if (newstream) { + ZFETCHSTAT_BUMP(zfetchstat_reclaim_successes); + } else { uint64_t maxblocks; uint32_t max_streams; uint32_t cur_streams; + ZFETCHSTAT_BUMP(zfetchstat_reclaim_failures); cur_streams = zf->zf_stream_cnt; maxblocks = zf->zf_dnode->dn_maxblkid; @@ -651,7 +725,6 @@ dmu_zfetch(zfetch_t *zf, uint64_t offset if (cur_streams >= max_streams) { return; } - newstream = kmem_zalloc(sizeof (zstream_t), KM_SLEEP); } Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_zfetch.h ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_zfetch.h Sun May 16 06:40:05 2010 (r208129) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_zfetch.h Sun May 16 07:16:28 2010 (r208130) @@ -19,15 +19,13 @@ * CDDL HEADER END */ /* - * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #ifndef _DFETCH_H #define _DFETCH_H -#pragma ident "%Z%%M% %I% %E% SMI" - #include #ifdef __cplusplus @@ -63,6 +61,9 @@ typedef struct zfetch { uint64_t zf_alloc_fail; /* # of failed attempts to alloc strm */ } zfetch_t; +void zfetch_init(void); +void zfetch_fini(void); + void dmu_zfetch_init(zfetch_t *, struct dnode *); void dmu_zfetch_rele(zfetch_t *); void dmu_zfetch(zfetch_t *, uint64_t, uint64_t, int); From owner-svn-src-all@FreeBSD.ORG Sun May 16 07:46:04 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 691F2106564A; Sun, 16 May 2010 07:46:04 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 56FE68FC14; Sun, 16 May 2010 07:46:04 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4G7k48g035792; Sun, 16 May 2010 07:46:04 GMT (envelope-from mm@svn.freebsd.org) Received: (from mm@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4G7k3Es035787; Sun, 16 May 2010 07:46:03 GMT (envelope-from mm@svn.freebsd.org) Message-Id: <201005160746.o4G7k3Es035787@svn.freebsd.org> From: Martin Matuska Date: Sun, 16 May 2010 07:46:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208131 - in head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 07:46:04 -0000 Author: mm Date: Sun May 16 07:46:03 2010 New Revision: 208131 URL: http://svn.freebsd.org/changeset/base/208131 Log: Fix deadlock between zfs_dirent_lock and zfs_rmdir OpenSolaris onnv revision: 11321:506b7043a14c Approved by: pjd, delphij (mentor) Obtained from: OpenSolaris (Bug ID 6847615) MFC after: 3 days Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_dir.h head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_dir.h ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_dir.h Sun May 16 07:16:28 2010 (r208130) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_dir.h Sun May 16 07:46:03 2010 (r208131) @@ -44,6 +44,7 @@ extern "C" { #define ZRENAMING 0x0010 /* znode is being renamed */ #define ZCILOOK 0x0020 /* case-insensitive lookup requested */ #define ZCIEXACT 0x0040 /* c-i requires c-s match (rename) */ +#define ZHAVELOCK 0x0080 /* z_name_lock is already held */ /* mknode flags */ #define IS_ROOT_NODE 0x01 /* create a root node */ Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h Sun May 16 07:16:28 2010 (r208130) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h Sun May 16 07:46:03 2010 (r208131) @@ -174,6 +174,7 @@ typedef struct znode_phys { typedef struct zfs_dirlock { char *dl_name; /* directory entry being locked */ uint32_t dl_sharecnt; /* 0 if exclusive, > 0 if shared */ + uint8_t dl_namelock; /* 1 if z_name_lock is NOT held */ uint16_t dl_namesize; /* set if dl_name was allocated */ kcondvar_t dl_cv; /* wait for entry to be unlocked */ struct znode *dl_dzp; /* directory znode */ Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c Sun May 16 07:16:28 2010 (r208130) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c Sun May 16 07:46:03 2010 (r208131) @@ -114,6 +114,8 @@ zfs_match_find(zfsvfs_t *zfsvfs, znode_t * ZCIEXACT: On a purely case-insensitive file system, * this lookup should be case-sensitive. * ZRENAMING: we are locking for renaming, force narrow locks + * ZHAVELOCK: Don't grab the z_name_lock for this call. The + * current thread already holds it. * * Output arguments: * zpp - pointer to the znode for the entry (NULL if there isn't one) @@ -208,13 +210,20 @@ zfs_dirent_lock(zfs_dirlock_t **dlpp, zn /* * Wait until there are no locks on this name. + * + * Don't grab the the lock if it is already held. However, cannot + * have both ZSHARED and ZHAVELOCK together. */ - rw_enter(&dzp->z_name_lock, RW_READER); + ASSERT(!(flag & ZSHARED) || !(flag & ZHAVELOCK)); + if (!(flag & ZHAVELOCK)) + rw_enter(&dzp->z_name_lock, RW_READER); + mutex_enter(&dzp->z_lock); for (;;) { if (dzp->z_unlinked) { mutex_exit(&dzp->z_lock); - rw_exit(&dzp->z_name_lock); + if (!(flag & ZHAVELOCK)) + rw_exit(&dzp->z_name_lock); return (ENOENT); } for (dl = dzp->z_dirlocks; dl != NULL; dl = dl->dl_next) { @@ -224,7 +233,8 @@ zfs_dirent_lock(zfs_dirlock_t **dlpp, zn } if (error != 0) { mutex_exit(&dzp->z_lock); - rw_exit(&dzp->z_name_lock); + if (!(flag & ZHAVELOCK)) + rw_exit(&dzp->z_name_lock); return (ENOENT); } if (dl == NULL) { @@ -235,6 +245,7 @@ zfs_dirent_lock(zfs_dirlock_t **dlpp, zn cv_init(&dl->dl_cv, NULL, CV_DEFAULT, NULL); dl->dl_name = name; dl->dl_sharecnt = 0; + dl->dl_namelock = 0; dl->dl_namesize = 0; dl->dl_dzp = dzp; dl->dl_next = dzp->z_dirlocks; @@ -246,6 +257,12 @@ zfs_dirent_lock(zfs_dirlock_t **dlpp, zn cv_wait(&dl->dl_cv, &dzp->z_lock); } + /* + * If the z_name_lock was NOT held for this dirlock record it. + */ + if (flag & ZHAVELOCK) + dl->dl_namelock = 1; + if ((flag & ZSHARED) && ++dl->dl_sharecnt > 1 && dl->dl_namesize == 0) { /* * We're the second shared reference to dl. Make a copy of @@ -325,7 +342,10 @@ zfs_dirent_unlock(zfs_dirlock_t *dl) zfs_dirlock_t **prev_dl, *cur_dl; mutex_enter(&dzp->z_lock); - rw_exit(&dzp->z_name_lock); + + if (!dl->dl_namelock) + rw_exit(&dzp->z_name_lock); + if (dl->dl_sharecnt > 1) { dl->dl_sharecnt--; mutex_exit(&dzp->z_lock); Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Sun May 16 07:16:28 2010 (r208130) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Sun May 16 07:46:03 2010 (r208131) @@ -3208,6 +3208,15 @@ top: } } + /* + * If the source and destination directories are the same, we should + * grab the z_name_lock of that directory only once. + */ + if (sdzp == tdzp) { + zflg |= ZHAVELOCK; + rw_enter(&sdzp->z_name_lock, RW_READER); + } + if (cmp < 0) { serr = zfs_dirent_lock(&sdl, sdzp, snm, &szp, ZEXISTS | zflg, NULL, NULL); @@ -3230,6 +3239,10 @@ top: if (tzp) VN_RELE(ZTOV(tzp)); } + + if (sdzp == tdzp) + rw_exit(&sdzp->z_name_lock); + if (strcmp(snm, ".") == 0 || strcmp(snm, "..") == 0) serr = EINVAL; ZFS_EXIT(zfsvfs); @@ -3238,6 +3251,10 @@ top: if (terr) { zfs_dirent_unlock(sdl); VN_RELE(ZTOV(szp)); + + if (sdzp == tdzp) + rw_exit(&sdzp->z_name_lock); + if (strcmp(tnm, "..") == 0) terr = EINVAL; ZFS_EXIT(zfsvfs); @@ -3320,6 +3337,10 @@ top: zfs_rename_unlock(&zl); zfs_dirent_unlock(sdl); zfs_dirent_unlock(tdl); + + if (sdzp == tdzp) + rw_exit(&sdzp->z_name_lock); + VN_RELE(ZTOV(szp)); if (tzp) VN_RELE(ZTOV(tzp)); @@ -3367,6 +3388,9 @@ out: zfs_dirent_unlock(sdl); zfs_dirent_unlock(tdl); + if (sdzp == tdzp) + rw_exit(&sdzp->z_name_lock); + VN_RELE(ZTOV(szp)); if (tzp) VN_RELE(ZTOV(tzp)); From owner-svn-src-all@FreeBSD.ORG Sun May 16 08:03:25 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5B771106564A; Sun, 16 May 2010 08:03:25 +0000 (UTC) (envelope-from kevlo@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4A7318FC08; Sun, 16 May 2010 08:03:25 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4G83OMg039771; Sun, 16 May 2010 08:03:24 GMT (envelope-from kevlo@svn.freebsd.org) Received: (from kevlo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4G83OHV039769; Sun, 16 May 2010 08:03:24 GMT (envelope-from kevlo@svn.freebsd.org) Message-Id: <201005160803.o4G83OHV039769@svn.freebsd.org> From: Kevin Lo Date: Sun, 16 May 2010 08:03:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208132 - head/sbin/bsdlabel X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 08:03:25 -0000 Author: kevlo Date: Sun May 16 08:03:24 2010 New Revision: 208132 URL: http://svn.freebsd.org/changeset/base/208132 Log: Use setresuid/setresgid to drop privileges Modified: head/sbin/bsdlabel/bsdlabel.c Modified: head/sbin/bsdlabel/bsdlabel.c ============================================================================== --- head/sbin/bsdlabel/bsdlabel.c Sun May 16 07:46:03 2010 (r208131) +++ head/sbin/bsdlabel/bsdlabel.c Sun May 16 08:03:24 2010 (r208132) @@ -684,6 +684,8 @@ editit(void) int pid, xpid; int locstat, omask; const char *ed; + uid_t uid; + gid_t gid; omask = sigblock(sigmask(SIGINT)|sigmask(SIGQUIT)|sigmask(SIGHUP)); while ((pid = fork()) < 0) { @@ -699,8 +701,12 @@ editit(void) } if (pid == 0) { sigsetmask(omask); - setgid(getgid()); - setuid(getuid()); + gid = getgid(); + if (setresgid(gid, gid, gid) == -1) + err(1, "setresgid"); + uid = getuid(); + if (setresuid(uid, uid, uid) == -1) + err(1, "setresuid"); if ((ed = getenv("EDITOR")) == (char *)0) ed = DEFEDITOR; execlp(ed, ed, tmpfil, (char *)0); From owner-svn-src-all@FreeBSD.ORG Sun May 16 09:59:28 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8AD3E106566C; Sun, 16 May 2010 09:59:28 +0000 (UTC) (envelope-from stefanf@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5F42D8FC23; Sun, 16 May 2010 09:59:28 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4G9xSCM065202; Sun, 16 May 2010 09:59:28 GMT (envelope-from stefanf@svn.freebsd.org) Received: (from stefanf@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4G9xSwu065200; Sun, 16 May 2010 09:59:28 GMT (envelope-from stefanf@svn.freebsd.org) Message-Id: <201005160959.o4G9xSwu065200@svn.freebsd.org> From: Stefan Farfeleder Date: Sun, 16 May 2010 09:59:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208133 - stable/7/bin/sh X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 09:59:28 -0000 Author: stefanf Date: Sun May 16 09:59:28 2010 New Revision: 208133 URL: http://svn.freebsd.org/changeset/base/208133 Log: Merge r199631: Handle current work directories of arbitrary length. Modified: stable/7/bin/sh/cd.c Directory Properties: stable/7/bin/sh/ (props changed) Modified: stable/7/bin/sh/cd.c ============================================================================== --- stable/7/bin/sh/cd.c Sun May 16 08:03:24 2010 (r208132) +++ stable/7/bin/sh/cd.c Sun May 16 09:59:28 2010 (r208133) @@ -70,7 +70,7 @@ STATIC int docd(char *, int, int); STATIC char *getcomponent(void); STATIC char *findcwd(char *); STATIC void updatepwd(char *); -STATIC char *getpwd2(char *, size_t); +STATIC char *getpwd2(void); STATIC char *curdir = NULL; /* current working directory */ STATIC char *prevdir; /* previous working directory */ @@ -263,10 +263,8 @@ findcwd(char *dir) * any more because we traversed a symbolic link or something * we couldn't stat(). */ - if (dir == NULL || curdir == NULL) { - p = stalloc(PATH_MAX); - return getpwd2(p, PATH_MAX); - } + if (dir == NULL || curdir == NULL) + return getpwd2(); cdcomppath = stalloc(strlen(dir) + 1); scopy(dir, cdcomppath); STARTSTACKSTR(new); @@ -313,7 +311,7 @@ updatepwd(char *dir) int pwdcmd(int argc, char **argv) { - char buf[PATH_MAX]; + char *p; int ch, phys; optreset = 1; optind = 1; opterr = 0; /* initialize getopt */ @@ -341,9 +339,9 @@ pwdcmd(int argc, char **argv) out1str(curdir); out1c('\n'); } else { - if (getcwd(buf, sizeof(buf)) == NULL) + if ((p = getpwd2()) == NULL) error(".: %s", strerror(errno)); - out1str(buf); + out1str(p); out1c('\n'); } @@ -356,36 +354,45 @@ pwdcmd(int argc, char **argv) char * getpwd(void) { - char buf[PATH_MAX]; char *p; if (curdir) return curdir; - p = getpwd2(buf, sizeof(buf)); + p = getpwd2(); if (p != NULL) curdir = savestr(p); return curdir; } +#define MAXPWD 256 + /* * Return the current directory. */ STATIC char * -getpwd2(char *buf, size_t size) +getpwd2(void) { - if (getcwd(buf, size) == NULL) { - char *pwd = getenv("PWD"); - struct stat stdot, stpwd; - - if (pwd && *pwd == '/' && stat(".", &stdot) != -1 && - stat(pwd, &stpwd) != -1 && - stdot.st_dev == stpwd.st_dev && - stdot.st_ino == stpwd.st_ino) { + struct stat stdot, stpwd; + char *pwd; + int i; + + for (i = MAXPWD;; i *= 2) { + pwd = stalloc(i); + if (getcwd(pwd, i) != NULL) return pwd; - } - return NULL; + stunalloc(pwd); + if (errno != ERANGE) + break; + } + + pwd = getenv("PWD"); + if (pwd && *pwd == '/' && stat(".", &stdot) != -1 && + stat(pwd, &stpwd) != -1 && + stdot.st_dev == stpwd.st_dev && + stdot.st_ino == stpwd.st_ino) { + return pwd; } - return buf; + return NULL; } From owner-svn-src-all@FreeBSD.ORG Sun May 16 10:01:07 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 01B161065673; Sun, 16 May 2010 10:01:07 +0000 (UTC) (envelope-from stefanf@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CA6318FC0C; Sun, 16 May 2010 10:01:06 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GA16j3065690; Sun, 16 May 2010 10:01:06 GMT (envelope-from stefanf@svn.freebsd.org) Received: (from stefanf@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GA16ud065688; Sun, 16 May 2010 10:01:06 GMT (envelope-from stefanf@svn.freebsd.org) Message-Id: <201005161001.o4GA16ud065688@svn.freebsd.org> From: Stefan Farfeleder Date: Sun, 16 May 2010 10:01:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208134 - stable/8/bin/sh X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 10:01:07 -0000 Author: stefanf Date: Sun May 16 10:01:06 2010 New Revision: 208134 URL: http://svn.freebsd.org/changeset/base/208134 Log: Merge r199631: Handle current work directories of arbitrary length. Modified: stable/8/bin/sh/cd.c Directory Properties: stable/8/bin/sh/ (props changed) Modified: stable/8/bin/sh/cd.c ============================================================================== --- stable/8/bin/sh/cd.c Sun May 16 09:59:28 2010 (r208133) +++ stable/8/bin/sh/cd.c Sun May 16 10:01:06 2010 (r208134) @@ -70,7 +70,7 @@ STATIC int docd(char *, int, int); STATIC char *getcomponent(void); STATIC char *findcwd(char *); STATIC void updatepwd(char *); -STATIC char *getpwd2(char *, size_t); +STATIC char *getpwd2(void); STATIC char *curdir = NULL; /* current working directory */ STATIC char *prevdir; /* previous working directory */ @@ -263,10 +263,8 @@ findcwd(char *dir) * any more because we traversed a symbolic link or something * we couldn't stat(). */ - if (dir == NULL || curdir == NULL) { - p = stalloc(PATH_MAX); - return getpwd2(p, PATH_MAX); - } + if (dir == NULL || curdir == NULL) + return getpwd2(); cdcomppath = stalloc(strlen(dir) + 1); scopy(dir, cdcomppath); STARTSTACKSTR(new); @@ -313,7 +311,7 @@ updatepwd(char *dir) int pwdcmd(int argc, char **argv) { - char buf[PATH_MAX]; + char *p; int ch, phys; optreset = 1; optind = 1; opterr = 0; /* initialize getopt */ @@ -341,9 +339,9 @@ pwdcmd(int argc, char **argv) out1str(curdir); out1c('\n'); } else { - if (getcwd(buf, sizeof(buf)) == NULL) + if ((p = getpwd2()) == NULL) error(".: %s", strerror(errno)); - out1str(buf); + out1str(p); out1c('\n'); } @@ -356,36 +354,45 @@ pwdcmd(int argc, char **argv) char * getpwd(void) { - char buf[PATH_MAX]; char *p; if (curdir) return curdir; - p = getpwd2(buf, sizeof(buf)); + p = getpwd2(); if (p != NULL) curdir = savestr(p); return curdir; } +#define MAXPWD 256 + /* * Return the current directory. */ STATIC char * -getpwd2(char *buf, size_t size) +getpwd2(void) { - if (getcwd(buf, size) == NULL) { - char *pwd = getenv("PWD"); - struct stat stdot, stpwd; - - if (pwd && *pwd == '/' && stat(".", &stdot) != -1 && - stat(pwd, &stpwd) != -1 && - stdot.st_dev == stpwd.st_dev && - stdot.st_ino == stpwd.st_ino) { + struct stat stdot, stpwd; + char *pwd; + int i; + + for (i = MAXPWD;; i *= 2) { + pwd = stalloc(i); + if (getcwd(pwd, i) != NULL) return pwd; - } - return NULL; + stunalloc(pwd); + if (errno != ERANGE) + break; + } + + pwd = getenv("PWD"); + if (pwd && *pwd == '/' && stat(".", &stdot) != -1 && + stat(pwd, &stpwd) != -1 && + stdot.st_dev == stpwd.st_dev && + stdot.st_ino == stpwd.st_ino) { + return pwd; } - return buf; + return NULL; } From owner-svn-src-all@FreeBSD.ORG Sun May 16 10:20:54 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 82370106567F; Sun, 16 May 2010 10:20:54 +0000 (UTC) (envelope-from stefanf@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 708C48FC16; Sun, 16 May 2010 10:20:54 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GAKsEs070130; Sun, 16 May 2010 10:20:54 GMT (envelope-from stefanf@svn.freebsd.org) Received: (from stefanf@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GAKsrw070128; Sun, 16 May 2010 10:20:54 GMT (envelope-from stefanf@svn.freebsd.org) Message-Id: <201005161020.o4GAKsrw070128@svn.freebsd.org> From: Stefan Farfeleder Date: Sun, 16 May 2010 10:20:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208135 - stable/7/bin/sh X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 10:20:54 -0000 Author: stefanf Date: Sun May 16 10:20:54 2010 New Revision: 208135 URL: http://svn.freebsd.org/changeset/base/208135 Log: Merge r190698: Don't let trailing empty lines overwrite the result of the last command with 0. Modified: stable/7/bin/sh/eval.c Directory Properties: stable/7/bin/sh/ (props changed) Modified: stable/7/bin/sh/eval.c ============================================================================== --- stable/7/bin/sh/eval.c Sun May 16 10:01:06 2010 (r208134) +++ stable/7/bin/sh/eval.c Sun May 16 10:20:54 2010 (r208135) @@ -166,7 +166,8 @@ evalstring(char *s) setstackmark(&smark); setinputstring(s, 1); while ((n = parsecmd(0)) != NEOF) { - evaltree(n, 0); + if (n != NULL) + evaltree(n, 0); popstackmark(&smark); } popfile(); From owner-svn-src-all@FreeBSD.ORG Sun May 16 10:23:34 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2756C106566B; Sun, 16 May 2010 10:23:34 +0000 (UTC) (envelope-from stefanf@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 155A88FC08; Sun, 16 May 2010 10:23:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GANX8S070788; Sun, 16 May 2010 10:23:33 GMT (envelope-from stefanf@svn.freebsd.org) Received: (from stefanf@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GANXd3070782; Sun, 16 May 2010 10:23:33 GMT (envelope-from stefanf@svn.freebsd.org) Message-Id: <201005161023.o4GANXd3070782@svn.freebsd.org> From: Stefan Farfeleder Date: Sun, 16 May 2010 10:23:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208136 - stable/7/bin/sh X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 10:23:34 -0000 Author: stefanf Date: Sun May 16 10:23:33 2010 New Revision: 208136 URL: http://svn.freebsd.org/changeset/base/208136 Log: Merge r193169: Fix the eval command in combination with set -e. Modified: stable/7/bin/sh/eval.c stable/7/bin/sh/eval.h stable/7/bin/sh/histedit.c stable/7/bin/sh/main.c stable/7/bin/sh/trap.c Directory Properties: stable/7/bin/sh/ (props changed) Modified: stable/7/bin/sh/eval.c ============================================================================== --- stable/7/bin/sh/eval.c Sun May 16 10:20:54 2010 (r208135) +++ stable/7/bin/sh/eval.c Sun May 16 10:23:33 2010 (r208136) @@ -83,6 +83,7 @@ MKINIT int evalskip; /* set if we are s STATIC int skipcount; /* number of levels to skip */ MKINIT int loopnest; /* current loop nesting level */ int funcnest; /* depth of function calls */ +STATIC int builtin_flags; /* evalcommand flags for builtins */ char *commandname; @@ -147,7 +148,7 @@ evalcmd(int argc, char **argv) STPUTC('\0', concat); p = grabstackstr(concat); } - evalstring(p); + evalstring(p, builtin_flags & EV_TESTED); } return exitstatus; } @@ -158,7 +159,7 @@ evalcmd(int argc, char **argv) */ void -evalstring(char *s) +evalstring(char *s, int flags) { union node *n; struct stackmark smark; @@ -167,7 +168,7 @@ evalstring(char *s) setinputstring(s, 1); while ((n = parsecmd(0)) != NEOF) { if (n != NULL) - evaltree(n, 0); + evaltree(n, flags); popstackmark(&smark); } popfile(); @@ -841,6 +842,7 @@ evalcommand(union node *cmd, int flags, commandname = argv[0]; argptr = argv + 1; optptr = NULL; /* initialize nextopt */ + builtin_flags = flags; exitstatus = (*builtinfunc[cmdentry.u.index])(argc, argv); flushall(); cmddone: Modified: stable/7/bin/sh/eval.h ============================================================================== --- stable/7/bin/sh/eval.h Sun May 16 10:20:54 2010 (r208135) +++ stable/7/bin/sh/eval.h Sun May 16 10:23:33 2010 (r208136) @@ -46,7 +46,7 @@ struct backcmd { /* result of evalbackc }; int evalcmd(int, char **); -void evalstring(char *); +void evalstring(char *, int); union node; /* BLETCH for ansi C */ void evaltree(union node *, int); void evalbackcmd(union node *, struct backcmd *); Modified: stable/7/bin/sh/histedit.c ============================================================================== --- stable/7/bin/sh/histedit.c Sun May 16 10:20:54 2010 (r208135) +++ stable/7/bin/sh/histedit.c Sun May 16 10:23:33 2010 (r208136) @@ -350,7 +350,7 @@ histcmd(int argc, char **argv) if (displayhist) { out2str(s); } - evalstring(s); + evalstring(s, 0); if (displayhist && hist) { /* * XXX what about recursive and @@ -382,7 +382,7 @@ histcmd(int argc, char **argv) fclose(efp); editcmd = stalloc(strlen(editor) + strlen(editfile) + 2); sprintf(editcmd, "%s %s", editor, editfile); - evalstring(editcmd); /* XXX - should use no JC command */ + evalstring(editcmd, 0); /* XXX - should use no JC command */ INTON; readcmdfile(editfile); /* XXX - should read back - quick tst */ unlink(editfile); Modified: stable/7/bin/sh/main.c ============================================================================== --- stable/7/bin/sh/main.c Sun May 16 10:20:54 2010 (r208135) +++ stable/7/bin/sh/main.c Sun May 16 10:23:33 2010 (r208136) @@ -178,7 +178,7 @@ state2: state3: state = 4; if (minusc) { - evalstring(minusc); + evalstring(minusc, 0); } if (sflag || minusc == NULL) { state4: /* XXX ??? - why isn't this before the "if" statement */ Modified: stable/7/bin/sh/trap.c ============================================================================== --- stable/7/bin/sh/trap.c Sun May 16 10:20:54 2010 (r208135) +++ stable/7/bin/sh/trap.c Sun May 16 10:23:33 2010 (r208136) @@ -416,7 +416,7 @@ dotrap(void) if (i == SIGCHLD) ignore_sigchld++; savestatus = exitstatus; - evalstring(trap[i]); + evalstring(trap[i], 0); exitstatus = savestatus; if (i == SIGCHLD) ignore_sigchld--; @@ -471,7 +471,7 @@ exitshell(int status) handler = &loc1; if ((p = trap[0]) != NULL && *p != '\0') { trap[0] = NULL; - evalstring(p); + evalstring(p, 0); } l1: handler = &loc2; /* probably unnecessary */ flushall(); From owner-svn-src-all@FreeBSD.ORG Sun May 16 10:51:46 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4B9AF1065670; Sun, 16 May 2010 10:51:46 +0000 (UTC) (envelope-from simon@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3A8AC8FC0C; Sun, 16 May 2010 10:51:46 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GApjrC078636; Sun, 16 May 2010 10:51:45 GMT (envelope-from simon@svn.freebsd.org) Received: (from simon@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GApjMx078634; Sun, 16 May 2010 10:51:45 GMT (envelope-from simon@svn.freebsd.org) Message-Id: <201005161051.o4GApjMx078634@svn.freebsd.org> From: "Simon L. Nielsen" Date: Sun, 16 May 2010 10:51:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-svnadmin@freebsd.org X-SVN-Group: svnadmin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208137 - svnadmin/tools X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 10:51:46 -0000 Author: simon Date: Sun May 16 10:51:45 2010 New Revision: 208137 URL: http://svn.freebsd.org/changeset/base/208137 Log: Checkpoint svn2cvs script: - Add latest hacks needed for things CVS doesn't understand but SVN does. They are disabled but kepts here in case we want to know later what was done. - Add 7.4 branch - I don't know if it will exists but it's simpler to add new braches when the exporter is stopped anyway. Modified: svnadmin/tools/export.py Modified: svnadmin/tools/export.py ============================================================================== --- svnadmin/tools/export.py Sun May 16 10:23:33 2010 (r208136) +++ svnadmin/tools/export.py Sun May 16 10:51:45 2010 (r208137) @@ -204,6 +204,7 @@ maptable = [ ( 'releng/7.1/', 'RELENG_7_1' ), ( 'releng/7.2/', 'RELENG_7_2' ), ( 'releng/7.3/', 'RELENG_7_3' ), + ( 'releng/7.4/', 'RELENG_7_4' ), ( 'releng/8.0/', 'RELENG_8_0' ), ( 'releng/8.1/', 'RELENG_8_1' ), ] @@ -325,8 +326,14 @@ def exportrev(pool, fs_ptr, rev, cvspath # continue #if p == 'head/lib/libc/stdio/asprintf.c' and k == 'D': # continue - if p == 'head/tools/build/options/WITH_BIND_LIBS' and k == 'A' and rev == 193280: - continue + #if p == 'head/tools/build/options/WITH_BIND_LIBS' and k == 'A' and rev == 193280: + # continue + #if p == 'head/usr.bin/csup/Makefile' and k == 'D' and rev == 204556: + # continue + #if p == 'stable/8/release/picobsd/floppy.tree/sbin' and k == 'A' and rev == 204868: + # continue + #if p == 'stable/8/release/picobsd/floppy.tree/sbin' and k == 'D': + # continue makedirs(workpath, _dirname(path), 'src') # Now the directory for the files must exist, and branch tag will be sticky assert os.path.isdir(os.path.join(workpath, _dirname(path))) From owner-svn-src-all@FreeBSD.ORG Sun May 16 11:03:47 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A9E2B1065670; Sun, 16 May 2010 11:03:46 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 975408FC08; Sun, 16 May 2010 11:03:46 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GB3kHE081396; Sun, 16 May 2010 11:03:46 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GB3k2N081392; Sun, 16 May 2010 11:03:46 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201005161103.o4GB3k2N081392@svn.freebsd.org> From: Jilles Tjoelker Date: Sun, 16 May 2010 11:03:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208138 - stable/8/share/man/man3 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 11:03:47 -0000 Author: jilles Date: Sun May 16 11:03:46 2010 New Revision: 208138 URL: http://svn.freebsd.org/changeset/base/208138 Log: MFC r207816: Document clock and pshared condvar attributes. Note: clock accepts CLOCK_VIRTUAL and CLOCK_PROF too, but this seems broken as it simply waits for the difference of the current and given value of the clock as if it were CLOCK_MONOTONIC. So document only CLOCK_REALTIME and CLOCK_MONOTONIC as allowed. Modified: stable/8/share/man/man3/Makefile stable/8/share/man/man3/pthread_cond_timedwait.3 stable/8/share/man/man3/pthread_condattr.3 Directory Properties: stable/8/share/man/man3/ (props changed) Modified: stable/8/share/man/man3/Makefile ============================================================================== --- stable/8/share/man/man3/Makefile Sun May 16 10:51:45 2010 (r208137) +++ stable/8/share/man/man3/Makefile Sun May 16 11:03:46 2010 (r208138) @@ -251,7 +251,11 @@ PTHREAD_MLINKS+=pthread_barrierattr.3 pt PTHREAD_MLINKS+=pthread_barrier_destroy.3 pthread_barrier_init.3 \ pthread_barrier_destroy.3 pthread_barrier_wait.3 PTHREAD_MLINKS+=pthread_condattr.3 pthread_condattr_destroy.3 \ - pthread_condattr.3 pthread_condattr_init.3 + pthread_condattr.3 pthread_condattr_init.3 \ + pthread_condattr.3 pthread_condattr_getclock.3 \ + pthread_condattr.3 pthread_condattr_setclock.3 \ + pthread_condattr.3 pthread_condattr_getpshared.3 \ + pthread_condattr.3 pthread_condattr_setpshared.3 PTHREAD_MLINKS+=pthread_getconcurrency.3 pthread_setconcurrency.3 PTHREAD_MLINKS+=pthread_multi_np.3 pthread_single_np.3 PTHREAD_MLINKS+=pthread_mutexattr.3 pthread_mutexattr_destroy.3 \ Modified: stable/8/share/man/man3/pthread_cond_timedwait.3 ============================================================================== --- stable/8/share/man/man3/pthread_cond_timedwait.3 Sun May 16 10:51:45 2010 (r208137) +++ stable/8/share/man/man3/pthread_cond_timedwait.3 Sun May 16 11:03:46 2010 (r208138) @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 28, 1998 +.Dd May 9, 2010 .Dt PTHREAD_COND_TIMEDWAIT 3 .Os .Sh NAME @@ -56,6 +56,11 @@ time specified in .Fa abstime , and the current thread reacquires the lock on .Fa mutex . +.Pp +The clock used to measure +.Fa abstime +can be specified during creation of the condition variable using +.Xr pthread_condattr_setclock 3 . .Sh RETURN VALUES If successful, the .Fn pthread_cond_timedwait @@ -87,7 +92,8 @@ was not locked by the calling thread. .Xr pthread_cond_destroy 3 , .Xr pthread_cond_init 3 , .Xr pthread_cond_signal 3 , -.Xr pthread_cond_wait 3 +.Xr pthread_cond_wait 3 , +.Xr pthread_condattr_setclock 3 .Sh STANDARDS The .Fn pthread_cond_timedwait Modified: stable/8/share/man/man3/pthread_condattr.3 ============================================================================== --- stable/8/share/man/man3/pthread_condattr.3 Sun May 16 10:51:45 2010 (r208137) +++ stable/8/share/man/man3/pthread_condattr.3 Sun May 16 11:03:46 2010 (r208138) @@ -26,12 +26,16 @@ .\" EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" .\" $FreeBSD$ -.Dd April 28, 2000 +.Dd May 9, 2010 .Dt PTHREAD_CONDATTR 3 .Os .Sh NAME .Nm pthread_condattr_init , -.Nm pthread_condattr_destroy +.Nm pthread_condattr_destroy , +.Nm pthread_condattr_getclock , +.Nm pthread_condattr_setclock , +.Nm pthread_condattr_getpshared , +.Nm pthread_condattr_setpshared , .Nd condition attribute operations .Sh LIBRARY .Lb libpthread @@ -41,14 +45,17 @@ .Fn pthread_condattr_init "pthread_condattr_t *attr" .Ft int .Fn pthread_condattr_destroy "pthread_condattr_t *attr" +.Ft int +.Fn pthread_condattr_getclock "pthread_condattr_t * restrict attr" "clock_t * restrict clock_id" +.Ft int +.Fn pthread_condattr_setclock "pthread_condattr_t *attr" "clock_t clock_id" +.Ft int +.Fn pthread_condattr_getpshared "pthread_condattr_t * restrict attr" "int * restrict pshared" +.Ft int +.Fn pthread_condattr_setpshared "pthread_condattr_t *attr" "int pshared" .Sh DESCRIPTION Condition attribute objects are used to specify parameters to .Fn pthread_cond_init . -.Fx Ns 's -implementation of conditions does not support any non-default -attributes, so these functions are not very useful, though they are required -to be present by -.Tn POSIX . .Pp The .Fn pthread_condattr_init @@ -57,6 +64,52 @@ function initializes a condition attribu The .Fn pthread_condattr_destroy function destroys a condition attribute object. +.Pp +The +.Fn pthread_condattr_getclock +function will put the value of the clock attribute from +.Fa attr +into the memory area pointed to by +.Fa clock_id . +The +.Fn pthread_condattr_setclock +function will set the clock attribute of +.Fa attr +to the value specified in +.Fa clock_id . +The clock attribute affects the interpretation of +.Fa abstime +in +.Xr pthread_cond_timedwait 3 +and may be set to +.Dv CLOCK_REALTIME +(default) +or +.Dv CLOCK_MONOTONIC . +.Pp +The +.Fn pthread_condattr_getpshared +function will put the value of the process-shared attribute from +.Fa attr +into the memory area pointed to by +.Fa pshared . +The +.Fn pthread_condattr_setpshared +function will set the process-shared attribute of +.Fa attr +to the value specified in +.Fa pshared . +The argument +.Fa pshared +may have one of the following values: +.Bl -tag -width ".Dv PTHREAD_PROCESS_PRIVATE" +.It Dv PTHREAD_PROCESS_PRIVATE +The condition variable it is attached to may only be accessed by +threads in the same process as the one that created the object. +.It Dv PTHREAD_PROCESS_SHARED +The condition variable it is attached to may be accessed by +threads in processes other than the one that created the object. +.El .Sh RETURN VALUES If successful, these functions return 0. Otherwise, an error number is returned to indicate the error. @@ -77,8 +130,29 @@ function will fail if: Invalid value for .Fa attr . .El +.Pp +The +.Fn pthread_condattr_setclock +function will fail if: +.Bl -tag -width Er +.It Bq Er EINVAL +The value specified in +.Fa clock_id +is not one of the allowed values. +.El +.Pp +The +.Fn pthread_condattr_setpshared +function will fail if: +.Bl -tag -width Er +.It Bq Er EINVAL +The value specified in +.Fa pshared +is not one of the allowed values. +.El .Sh SEE ALSO -.Xr pthread_cond_init 3 +.Xr pthread_cond_init 3 , +.Xr pthread_cond_timedwait 3 .Sh STANDARDS The .Fn pthread_condattr_init @@ -86,3 +160,15 @@ and .Fn pthread_condattr_destroy functions conform to .St -p1003.1-96 +.Sh BUGS +The implementation of +condition variables +does not fully conform to +.St -p1003.2 +because the process-shared attribute is ignored; +if any value other than +.Dv PTHREAD_PROCESSES_PRIVATE +is specified in a call to +.Fn pthread_condattr_setpshared , +it will return +.Er EINVAL . From owner-svn-src-all@FreeBSD.ORG Sun May 16 11:06:33 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 18675106564A; Sun, 16 May 2010 11:06:33 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0731D8FC12; Sun, 16 May 2010 11:06:33 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GB6WgS082035; Sun, 16 May 2010 11:06:32 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GB6WMr082033; Sun, 16 May 2010 11:06:32 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201005161106.o4GB6WMr082033@svn.freebsd.org> From: Jilles Tjoelker Date: Sun, 16 May 2010 11:06:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208139 - stable/8/share/man/man1 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 11:06:33 -0000 Author: jilles Date: Sun May 16 11:06:32 2010 New Revision: 208139 URL: http://svn.freebsd.org/changeset/base/208139 Log: MFC r207817: builtin(1): sh has no @ builtin command. Modified: stable/8/share/man/man1/builtin.1 Directory Properties: stable/8/share/man/man1/ (props changed) Modified: stable/8/share/man/man1/builtin.1 ============================================================================== --- stable/8/share/man/man1/builtin.1 Sun May 16 11:03:46 2010 (r208138) +++ stable/8/share/man/man1/builtin.1 Sun May 16 11:06:32 2010 (r208139) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 25, 2010 +.Dd May 9, 2010 .Dt BUILTIN 1 .Os .Sh NAME @@ -200,7 +200,7 @@ but are implemented as scripts using a b .It Ic % Ta \&No Ta Yes Ta \&No .It Ic \&. Ta \&No Ta \&No Ta Yes .It Ic \&: Ta \&No Ta Yes Ta Yes -.It Ic @ Ta \&No Ta Yes Ta Yes +.It Ic @ Ta \&No Ta Yes Ta \&No .It Ic \&[ Ta Yes Ta \&No Ta Yes .It Ic { Ta \&No Ta \&No Ta Yes .It Ic } Ta \&No Ta \&No Ta Yes From owner-svn-src-all@FreeBSD.ORG Sun May 16 11:14:12 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 31E7E106567A; Sun, 16 May 2010 11:14:12 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1FD458FC1A; Sun, 16 May 2010 11:14:12 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GBEC1j083757; Sun, 16 May 2010 11:14:12 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GBEBxl083753; Sun, 16 May 2010 11:14:11 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201005161114.o4GBEBxl083753@svn.freebsd.org> From: Jilles Tjoelker Date: Sun, 16 May 2010 11:14:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208140 - stable/7/share/man/man3 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 11:14:12 -0000 Author: jilles Date: Sun May 16 11:14:11 2010 New Revision: 208140 URL: http://svn.freebsd.org/changeset/base/208140 Log: MFC r207816: Document clock and pshared condvar attributes. Note: clock accepts CLOCK_VIRTUAL and CLOCK_PROF too, but this seems broken as it simply waits for the difference of the current and given value of the clock as if it were CLOCK_MONOTONIC. So document only CLOCK_REALTIME and CLOCK_MONOTONIC as allowed. Modified: stable/7/share/man/man3/Makefile stable/7/share/man/man3/pthread_cond_timedwait.3 stable/7/share/man/man3/pthread_condattr.3 Directory Properties: stable/7/share/man/man3/ (props changed) Modified: stable/7/share/man/man3/Makefile ============================================================================== --- stable/7/share/man/man3/Makefile Sun May 16 11:06:32 2010 (r208139) +++ stable/7/share/man/man3/Makefile Sun May 16 11:14:11 2010 (r208140) @@ -248,7 +248,11 @@ PTHREAD_MLINKS+=pthread_barrierattr.3 pt PTHREAD_MLINKS+=pthread_barrier_destroy.3 pthread_barrier_init.3 \ pthread_barrier_destroy.3 pthread_barrier_wait.3 PTHREAD_MLINKS+=pthread_condattr.3 pthread_condattr_destroy.3 \ - pthread_condattr.3 pthread_condattr_init.3 + pthread_condattr.3 pthread_condattr_init.3 \ + pthread_condattr.3 pthread_condattr_getclock.3 \ + pthread_condattr.3 pthread_condattr_setclock.3 \ + pthread_condattr.3 pthread_condattr_getpshared.3 \ + pthread_condattr.3 pthread_condattr_setpshared.3 PTHREAD_MLINKS+=pthread_getconcurrency.3 pthread_setconcurrency.3 PTHREAD_MLINKS+=pthread_multi_np.3 pthread_single_np.3 PTHREAD_MLINKS+=pthread_mutexattr.3 pthread_mutexattr_destroy.3 \ Modified: stable/7/share/man/man3/pthread_cond_timedwait.3 ============================================================================== --- stable/7/share/man/man3/pthread_cond_timedwait.3 Sun May 16 11:06:32 2010 (r208139) +++ stable/7/share/man/man3/pthread_cond_timedwait.3 Sun May 16 11:14:11 2010 (r208140) @@ -27,7 +27,7 @@ .\" .\" $FreeBSD$ .\" -.Dd July 28, 1998 +.Dd May 9, 2010 .Dt PTHREAD_COND_TIMEDWAIT 3 .Os .Sh NAME @@ -56,6 +56,11 @@ time specified in .Fa abstime , and the current thread reacquires the lock on .Fa mutex . +.Pp +The clock used to measure +.Fa abstime +can be specified during creation of the condition variable using +.Xr pthread_condattr_setclock 3 . .Sh RETURN VALUES If successful, the .Fn pthread_cond_timedwait @@ -87,7 +92,8 @@ was not locked by the calling thread. .Xr pthread_cond_destroy 3 , .Xr pthread_cond_init 3 , .Xr pthread_cond_signal 3 , -.Xr pthread_cond_wait 3 +.Xr pthread_cond_wait 3 , +.Xr pthread_condattr_setclock 3 .Sh STANDARDS The .Fn pthread_cond_timedwait Modified: stable/7/share/man/man3/pthread_condattr.3 ============================================================================== --- stable/7/share/man/man3/pthread_condattr.3 Sun May 16 11:06:32 2010 (r208139) +++ stable/7/share/man/man3/pthread_condattr.3 Sun May 16 11:14:11 2010 (r208140) @@ -26,12 +26,16 @@ .\" EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" .\" $FreeBSD$ -.Dd April 28, 2000 +.Dd May 9, 2010 .Dt PTHREAD_CONDATTR 3 .Os .Sh NAME .Nm pthread_condattr_init , -.Nm pthread_condattr_destroy +.Nm pthread_condattr_destroy , +.Nm pthread_condattr_getclock , +.Nm pthread_condattr_setclock , +.Nm pthread_condattr_getpshared , +.Nm pthread_condattr_setpshared , .Nd condition attribute operations .Sh LIBRARY .Lb libpthread @@ -41,14 +45,17 @@ .Fn pthread_condattr_init "pthread_condattr_t *attr" .Ft int .Fn pthread_condattr_destroy "pthread_condattr_t *attr" +.Ft int +.Fn pthread_condattr_getclock "pthread_condattr_t * restrict attr" "clock_t * restrict clock_id" +.Ft int +.Fn pthread_condattr_setclock "pthread_condattr_t *attr" "clock_t clock_id" +.Ft int +.Fn pthread_condattr_getpshared "pthread_condattr_t * restrict attr" "int * restrict pshared" +.Ft int +.Fn pthread_condattr_setpshared "pthread_condattr_t *attr" "int pshared" .Sh DESCRIPTION Condition attribute objects are used to specify parameters to .Fn pthread_cond_init . -.Fx Ns 's -implementation of conditions does not support any non-default -attributes, so these functions are not very useful, though they are required -to be present by -.Tn POSIX . .Pp The .Fn pthread_condattr_init @@ -57,6 +64,52 @@ function initializes a condition attribu The .Fn pthread_condattr_destroy function destroys a condition attribute object. +.Pp +The +.Fn pthread_condattr_getclock +function will put the value of the clock attribute from +.Fa attr +into the memory area pointed to by +.Fa clock_id . +The +.Fn pthread_condattr_setclock +function will set the clock attribute of +.Fa attr +to the value specified in +.Fa clock_id . +The clock attribute affects the interpretation of +.Fa abstime +in +.Xr pthread_cond_timedwait 3 +and may be set to +.Dv CLOCK_REALTIME +(default) +or +.Dv CLOCK_MONOTONIC . +.Pp +The +.Fn pthread_condattr_getpshared +function will put the value of the process-shared attribute from +.Fa attr +into the memory area pointed to by +.Fa pshared . +The +.Fn pthread_condattr_setpshared +function will set the process-shared attribute of +.Fa attr +to the value specified in +.Fa pshared . +The argument +.Fa pshared +may have one of the following values: +.Bl -tag -width ".Dv PTHREAD_PROCESS_PRIVATE" +.It Dv PTHREAD_PROCESS_PRIVATE +The condition variable it is attached to may only be accessed by +threads in the same process as the one that created the object. +.It Dv PTHREAD_PROCESS_SHARED +The condition variable it is attached to may be accessed by +threads in processes other than the one that created the object. +.El .Sh RETURN VALUES If successful, these functions return 0. Otherwise, an error number is returned to indicate the error. @@ -77,8 +130,29 @@ function will fail if: Invalid value for .Fa attr . .El +.Pp +The +.Fn pthread_condattr_setclock +function will fail if: +.Bl -tag -width Er +.It Bq Er EINVAL +The value specified in +.Fa clock_id +is not one of the allowed values. +.El +.Pp +The +.Fn pthread_condattr_setpshared +function will fail if: +.Bl -tag -width Er +.It Bq Er EINVAL +The value specified in +.Fa pshared +is not one of the allowed values. +.El .Sh SEE ALSO -.Xr pthread_cond_init 3 +.Xr pthread_cond_init 3 , +.Xr pthread_cond_timedwait 3 .Sh STANDARDS The .Fn pthread_condattr_init @@ -86,3 +160,15 @@ and .Fn pthread_condattr_destroy functions conform to .St -p1003.1-96 +.Sh BUGS +The implementation of +condition variables +does not fully conform to +.St -p1003.2 +because the process-shared attribute is ignored; +if any value other than +.Dv PTHREAD_PROCESSES_PRIVATE +is specified in a call to +.Fn pthread_condattr_setpshared , +it will return +.Er EINVAL . From owner-svn-src-all@FreeBSD.ORG Sun May 16 11:17:22 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 01AA91065676; Sun, 16 May 2010 11:17:22 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E46198FC15; Sun, 16 May 2010 11:17:21 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GBHL36084498; Sun, 16 May 2010 11:17:21 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GBHLu6084496; Sun, 16 May 2010 11:17:21 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201005161117.o4GBHLu6084496@svn.freebsd.org> From: Jilles Tjoelker Date: Sun, 16 May 2010 11:17:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208141 - stable/7/share/man/man1 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 11:17:22 -0000 Author: jilles Date: Sun May 16 11:17:21 2010 New Revision: 208141 URL: http://svn.freebsd.org/changeset/base/208141 Log: MFC r207817: builtin(1): sh has no @ builtin command. Modified: stable/7/share/man/man1/builtin.1 Directory Properties: stable/7/share/man/man1/ (props changed) Modified: stable/7/share/man/man1/builtin.1 ============================================================================== --- stable/7/share/man/man1/builtin.1 Sun May 16 11:14:11 2010 (r208140) +++ stable/7/share/man/man1/builtin.1 Sun May 16 11:17:21 2010 (r208141) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 25, 2010 +.Dd May 9, 2010 .Dt BUILTIN 1 .Os .Sh NAME @@ -200,7 +200,7 @@ but are implemented as scripts using a b .It Ic % Ta \&No Ta Yes Ta \&No .It Ic \&. Ta \&No Ta \&No Ta Yes .It Ic \&: Ta \&No Ta Yes Ta Yes -.It Ic @ Ta \&No Ta Yes Ta Yes +.It Ic @ Ta \&No Ta Yes Ta \&No .It Ic \&[ Ta Yes Ta \&No Ta Yes .It Ic { Ta \&No Ta \&No Ta Yes .It Ic } Ta \&No Ta \&No Ta Yes From owner-svn-src-all@FreeBSD.ORG Sun May 16 11:56:43 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2F06E1065670; Sun, 16 May 2010 11:56:43 +0000 (UTC) (envelope-from pjd@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1D42A8FC15; Sun, 16 May 2010 11:56:43 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GBuhWr093124; Sun, 16 May 2010 11:56:43 GMT (envelope-from pjd@svn.freebsd.org) Received: (from pjd@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GBug1Y093122; Sun, 16 May 2010 11:56:42 GMT (envelope-from pjd@svn.freebsd.org) Message-Id: <201005161156.o4GBug1Y093122@svn.freebsd.org> From: Pawel Jakub Dawidek Date: Sun, 16 May 2010 11:56:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208142 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 11:56:43 -0000 Author: pjd Date: Sun May 16 11:56:42 2010 New Revision: 208142 URL: http://svn.freebsd.org/changeset/base/208142 Log: The whole point of having dedicated worker thread for each leaf VDEV was to avoid calling zio_interrupt() from geom_up thread context. It turns out that when provider is forcibly removed from the system and we kill worker thread there can still be some ZIOs pending. To complete pending ZIOs when there is no worker thread anymore we still have to call zio_interrupt() from geom_up context. To avoid this race just remove use of worker threads altogether. This should be more or less fine, because I also thought that zio_interrupt() does more work, but it only makes small UMA allocation with M_WAITOK. It also saves one context switch per I/O request. PR: kern/145339 Reported by: Alex Bakhtin MFC after: 1 week Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c Sun May 16 11:17:21 2010 (r208141) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c Sun May 16 11:56:42 2010 (r208142) @@ -47,31 +47,6 @@ struct g_class zfs_vdev_class = { DECLARE_GEOM_CLASS(zfs_vdev_class, zfs_vdev); -typedef struct vdev_geom_ctx { - struct g_consumer *gc_consumer; - int gc_state; - struct bio_queue_head gc_queue; - struct mtx gc_queue_mtx; -} vdev_geom_ctx_t; - -static void -vdev_geom_release(vdev_t *vd) -{ - vdev_geom_ctx_t *ctx; - - ctx = vd->vdev_tsd; - vd->vdev_tsd = NULL; - - mtx_lock(&ctx->gc_queue_mtx); - ctx->gc_state = 1; - wakeup_one(&ctx->gc_queue); - while (ctx->gc_state != 2) - msleep(&ctx->gc_state, &ctx->gc_queue_mtx, 0, "vgeom:w", 0); - mtx_unlock(&ctx->gc_queue_mtx); - mtx_destroy(&ctx->gc_queue_mtx); - kmem_free(ctx, sizeof(*ctx)); -} - static void vdev_geom_orphan(struct g_consumer *cp) { @@ -96,8 +71,7 @@ vdev_geom_orphan(struct g_consumer *cp) ZFS_LOG(1, "Destroyed geom %s.", gp->name); g_wither_geom(gp, error); } - vdev_geom_release(vd); - + vd->vdev_tsd = NULL; vd->vdev_remove_wanted = B_TRUE; spa_async_request(vd->vdev_spa, SPA_ASYNC_REMOVE); } @@ -188,52 +162,6 @@ vdev_geom_detach(void *arg, int flag __u } } -static void -vdev_geom_worker(void *arg) -{ - vdev_geom_ctx_t *ctx; - zio_t *zio; - struct bio *bp; - - thread_lock(curthread); - sched_prio(curthread, PRIBIO); - thread_unlock(curthread); - - ctx = arg; - for (;;) { - mtx_lock(&ctx->gc_queue_mtx); - bp = bioq_takefirst(&ctx->gc_queue); - if (bp == NULL) { - if (ctx->gc_state == 1) { - ctx->gc_state = 2; - wakeup_one(&ctx->gc_state); - mtx_unlock(&ctx->gc_queue_mtx); - kthread_exit(); - } - msleep(&ctx->gc_queue, &ctx->gc_queue_mtx, - PRIBIO | PDROP, "vgeom:io", 0); - continue; - } - mtx_unlock(&ctx->gc_queue_mtx); - zio = bp->bio_caller1; - zio->io_error = bp->bio_error; - if (bp->bio_cmd == BIO_FLUSH && bp->bio_error == ENOTSUP) { - vdev_t *vd; - - /* - * If we get ENOTSUP, we know that no future - * attempts will ever succeed. In this case we - * set a persistent bit so that we don't bother - * with the ioctl in the future. - */ - vd = zio->io_vd; - vd->vdev_nowritecache = B_TRUE; - } - g_destroy_bio(bp); - zio_interrupt(zio); - } -} - static uint64_t nvlist_get_guid(nvlist_t *list) { @@ -488,7 +416,6 @@ vdev_geom_open_by_path(vdev_t *vd, int c static int vdev_geom_open(vdev_t *vd, uint64_t *psize, uint64_t *ashift) { - vdev_geom_ctx_t *ctx; struct g_provider *pp; struct g_consumer *cp; int error, owned; @@ -557,19 +484,9 @@ vdev_geom_open(vdev_t *vd, uint64_t *psi } cp->private = vd; - - ctx = kmem_zalloc(sizeof(*ctx), KM_SLEEP); - bioq_init(&ctx->gc_queue); - mtx_init(&ctx->gc_queue_mtx, "zfs:vdev:geom:queue", NULL, MTX_DEF); - ctx->gc_consumer = cp; - ctx->gc_state = 0; - - vd->vdev_tsd = ctx; + vd->vdev_tsd = cp; pp = cp->provider; - kproc_kthread_add(vdev_geom_worker, ctx, &zfsproc, NULL, 0, 0, - "zfskern", "vdev %s", pp->name); - /* * Determine the actual size of the device. */ @@ -592,50 +509,49 @@ vdev_geom_open(vdev_t *vd, uint64_t *psi static void vdev_geom_close(vdev_t *vd) { - vdev_geom_ctx_t *ctx; struct g_consumer *cp; - if ((ctx = vd->vdev_tsd) == NULL) - return; - if ((cp = ctx->gc_consumer) == NULL) + cp = vd->vdev_tsd; + if (cp == NULL) return; - vdev_geom_release(vd); + vd->vdev_tsd = NULL; g_post_event(vdev_geom_detach, cp, M_WAITOK, NULL); } static void vdev_geom_io_intr(struct bio *bp) { - vdev_geom_ctx_t *ctx; zio_t *zio; zio = bp->bio_caller1; - ctx = zio->io_vd->vdev_tsd; - - if ((zio->io_error = bp->bio_error) == 0 && bp->bio_resid != 0) + zio->io_error = bp->bio_error; + if (zio->io_error == 0 && bp->bio_resid != 0) zio->io_error = EIO; + if (bp->bio_cmd == BIO_FLUSH && bp->bio_error == ENOTSUP) { + vdev_t *vd; - mtx_lock(&ctx->gc_queue_mtx); - bioq_insert_tail(&ctx->gc_queue, bp); - wakeup_one(&ctx->gc_queue); - mtx_unlock(&ctx->gc_queue_mtx); + /* + * If we get ENOTSUP, we know that no future + * attempts will ever succeed. In this case we + * set a persistent bit so that we don't bother + * with the ioctl in the future. + */ + vd = zio->io_vd; + vd->vdev_nowritecache = B_TRUE; + } + g_destroy_bio(bp); + zio_interrupt(zio); } static int vdev_geom_io_start(zio_t *zio) { vdev_t *vd; - vdev_geom_ctx_t *ctx; struct g_consumer *cp; struct bio *bp; int error; - cp = NULL; - vd = zio->io_vd; - ctx = vd->vdev_tsd; - if (ctx != NULL) - cp = ctx->gc_consumer; if (zio->io_type == ZIO_TYPE_IOCTL) { /* XXPOLICY */ @@ -664,6 +580,7 @@ vdev_geom_io_start(zio_t *zio) return (ZIO_PIPELINE_CONTINUE); } sendreq: + cp = vd->vdev_tsd; if (cp == NULL) { zio->io_error = ENXIO; return (ZIO_PIPELINE_CONTINUE); From owner-svn-src-all@FreeBSD.ORG Sun May 16 12:39:17 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CD3481065672; Sun, 16 May 2010 12:39:17 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BCC878FC2D; Sun, 16 May 2010 12:39:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GCdHru002583; Sun, 16 May 2010 12:39:17 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GCdH7I002581; Sun, 16 May 2010 12:39:17 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201005161239.o4GCdH7I002581@svn.freebsd.org> From: Marius Strobl Date: Sun, 16 May 2010 12:39:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208143 - head/sys/modules/cas X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 12:39:17 -0000 Author: marius Date: Sun May 16 12:39:17 2010 New Revision: 208143 URL: http://svn.freebsd.org/changeset/base/208143 Log: Add the ofw_bus_if.h dependency introduced with r207585. Modified: head/sys/modules/cas/Makefile Modified: head/sys/modules/cas/Makefile ============================================================================== --- head/sys/modules/cas/Makefile Sun May 16 11:56:42 2010 (r208142) +++ head/sys/modules/cas/Makefile Sun May 16 12:39:17 2010 (r208143) @@ -3,6 +3,10 @@ .PATH: ${.CURDIR}/../../dev/cas KMOD= if_cas -SRCS= bus_if.h device_if.h if_cas.c miibus_if.h pci_if.h +SRCS= bus_if.h device_if.h if_cas.c miibus_if.h pci_if.h ${ofw_bus_if} + +.if ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "sparc64" +ofw_bus_if= ofw_bus_if.h +.endif .include From owner-svn-src-all@FreeBSD.ORG Sun May 16 13:14:02 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 27EF8106566C; Sun, 16 May 2010 13:14:02 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail09.syd.optusnet.com.au (mail09.syd.optusnet.com.au [211.29.132.190]) by mx1.freebsd.org (Postfix) with ESMTP id 941D58FC17; Sun, 16 May 2010 13:14:01 +0000 (UTC) Received: from c122-106-169-155.carlnfd1.nsw.optusnet.com.au (c122-106-169-155.carlnfd1.nsw.optusnet.com.au [122.106.169.155]) by mail09.syd.optusnet.com.au (8.13.1/8.13.1) with ESMTP id o4GDDvnS026996 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sun, 16 May 2010 23:13:59 +1000 Date: Sun, 16 May 2010 23:13:57 +1000 (EST) From: Bruce Evans X-X-Sender: bde@delplex.bde.org To: Ulrich Spoerlein In-Reply-To: <201005141426.o4EEQu7B081269@svn.freebsd.org> Message-ID: <20100516230149.V8088@delplex.bde.org> References: <201005141426.o4EEQu7B081269@svn.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r208075 - in head/usr.sbin/apmd: . contrib X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 13:14:02 -0000 On Fri, 14 May 2010, Ulrich Spoerlein wrote: > Log: > Sync apmd(8) with DragonflyBSD, bringing WARNS to 3 > > Reviewed by: ed (partial, long time ago) > ... > Modified: head/usr.sbin/apmd/apmd.c > ============================================================================== > --- head/usr.sbin/apmd/apmd.c Fri May 14 14:26:49 2010 (r208074) > +++ head/usr.sbin/apmd/apmd.c Fri May 14 14:26:56 2010 (r208075) > @@ -52,8 +52,6 @@ static const char rcsid[] = > ... > - execl(_PATH_BSHELL, "sh", "-c", p->line, (char *)NULL); > + execl(_PATH_BSHELL, "sh", "-c", p->line, NULL); execl() takes variadic args, so removing this cast adds a bug. > @@ -315,7 +313,7 @@ exec_event_cmd(struct event_config *ev) > status = exec_run_cmd(ev->cmdlist); > if (status && ev->rejectable) { > syslog(LOG_ERR, "canceled"); > - (void) event_cmd_reject_act(NULL); > + event_cmd_reject_act(NULL); Removing this cast is not as correct as removing the ones for the err() family, since the function returns non-void. > @@ -674,7 +672,7 @@ main(int ac, char* av[]) > daemon(0, 0); > > #ifdef NICE_INCR > - (void) nice(NICE_INCR); > + nice(NICE_INCR); > #endif Removing this cast is probably correct, since it is probably wrong to not check for errors and wronger to cast away the warning (from lint) about this. The bug of not checking for errors remains. Bruce From owner-svn-src-all@FreeBSD.ORG Sun May 16 14:51:37 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4E7EB106564A; Sun, 16 May 2010 14:51:37 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3BAB48FC0A; Sun, 16 May 2010 14:51:37 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GEpaT6031745; Sun, 16 May 2010 14:51:36 GMT (envelope-from zec@svn.freebsd.org) Received: (from zec@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GEpatq031738; Sun, 16 May 2010 14:51:36 GMT (envelope-from zec@svn.freebsd.org) Message-Id: <201005161451.o4GEpatq031738@svn.freebsd.org> From: Marko Zec Date: Sun, 16 May 2010 14:51:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208145 - in stable/8: share/man/man4 sys/netgraph X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 14:51:37 -0000 Author: zec Date: Sun May 16 14:51:36 2010 New Revision: 208145 URL: http://svn.freebsd.org/changeset/base/208145 Log: MFC r207680: Add an optional "persistent" flag to ng_hub and ng_bridge, which if set, disables automatic node shutdown when the last hook gets disconnected. Reviewed by: julian Modified: stable/8/share/man/man4/ng_bridge.4 stable/8/share/man/man4/ng_hub.4 stable/8/sys/netgraph/ng_bridge.c stable/8/sys/netgraph/ng_bridge.h stable/8/sys/netgraph/ng_hub.c stable/8/sys/netgraph/ng_hub.h Directory Properties: stable/8/share/man/man4/ (props changed) stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/share/man/man4/ng_bridge.4 ============================================================================== --- stable/8/share/man/man4/ng_bridge.4 Sun May 16 14:31:53 2010 (r208144) +++ stable/8/share/man/man4/ng_bridge.4 Sun May 16 14:51:36 2010 (r208145) @@ -34,7 +34,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 31, 2000 +.Dd May 5, 2010 .Dt NG_BRIDGE 4 .Os .Sh NAME @@ -181,11 +181,17 @@ but also atomically clears the statistic .It Dv NGM_BRIDGE_GET_TABLE Returns the current host mapping table used to direct packets, in a .Dv "struct ng_bridge_host_ary" . +.It Dv NGM_BRIDGE_SET_PERSISTENT +This command sets the persistent flag on the node, and takes no arguments. .El .Sh SHUTDOWN This node shuts down upon receipt of a .Dv NGM_SHUTDOWN -control message, or when all hooks have been disconnected. +control message, or when all hooks have been disconnected. Setting the +persistent flag via a +.Dv NGM_BRIDGE_SET_PERSISTENT +control message disables automatic node shutdown when the last hook gets +disconnected. .Sh FILES .Bl -tag -width XXXXXXXX -compact .It Pa /usr/share/examples/netgraph/ether.bridge Modified: stable/8/share/man/man4/ng_hub.4 ============================================================================== --- stable/8/share/man/man4/ng_hub.4 Sun May 16 14:31:53 2010 (r208144) +++ stable/8/share/man/man4/ng_hub.4 Sun May 16 14:51:36 2010 (r208145) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 17, 2004 +.Dd May 5, 2010 .Dt NG_HUB 4 .Os .Sh NAME @@ -45,11 +45,20 @@ A node accepts any request to connect, regardless of the hook name, as long as the name is unique. .Sh CONTROL MESSAGES -This node type supports only the generic control messages. +This node type supports the generic control messages, plus the +following: +.Bl -tag -width foo +.It Dv NGM_HUB_SET_PERSISTENT +This command sets the persistent flag on the node, and takes no arguments. +.El .Sh SHUTDOWN This node shuts down upon receipt of a .Dv NGM_SHUTDOWN -control message, or when all hooks have been disconnected. +control message, or when all hooks have been disconnected. Setting the +persistent flag via a +.Dv NGM_HUB_SET_PERSISTENT +control message disables automatic node shutdown when the last hook gets +disconnected. .Sh SEE ALSO .Xr netgraph 4 , .Xr ng_bridge 4 , Modified: stable/8/sys/netgraph/ng_bridge.c ============================================================================== --- stable/8/sys/netgraph/ng_bridge.c Sun May 16 14:31:53 2010 (r208144) +++ stable/8/sys/netgraph/ng_bridge.c Sun May 16 14:51:36 2010 (r208145) @@ -83,7 +83,7 @@ #include #ifdef NG_SEPARATE_MALLOC -MALLOC_DEFINE(M_NETGRAPH_BRIDGE, "netgraph_bridge", "netgraph bridge node "); +MALLOC_DEFINE(M_NETGRAPH_BRIDGE, "netgraph_bridge", "netgraph bridge node"); #else #define M_NETGRAPH_BRIDGE M_NETGRAPH #endif @@ -105,6 +105,7 @@ struct ng_bridge_private { u_int numBuckets; /* num buckets in table */ u_int hashMask; /* numBuckets - 1 */ int numLinks; /* num connected links */ + int persistent; /* can exist w/o hooks */ struct callout timer; /* one second periodic timer */ }; typedef struct ng_bridge_private *priv_p; @@ -270,6 +271,13 @@ static const struct ng_cmdlist ng_bridge NULL, &ng_bridge_host_ary_type }, + { + NGM_BRIDGE_COOKIE, + NGM_BRIDGE_SET_PERSISTENT, + "setpersistent", + NULL, + NULL + }, { 0 } }; @@ -494,6 +502,11 @@ ng_bridge_rcvmsg(node_p node, item_p ite } break; } + case NGM_BRIDGE_SET_PERSISTENT: + { + priv->persistent = 1; + break; + } default: error = EINVAL; break; @@ -799,7 +812,8 @@ ng_bridge_disconnect(hook_p hook) /* If no more hooks, go away */ if ((NG_NODE_NUMHOOKS(NG_HOOK_NODE(hook)) == 0) - && (NG_NODE_IS_VALID(NG_HOOK_NODE(hook)))) { + && (NG_NODE_IS_VALID(NG_HOOK_NODE(hook))) + && !priv->persistent) { ng_rmnode_self(NG_HOOK_NODE(hook)); } return (0); Modified: stable/8/sys/netgraph/ng_bridge.h ============================================================================== --- stable/8/sys/netgraph/ng_bridge.h Sun May 16 14:31:53 2010 (r208144) +++ stable/8/sys/netgraph/ng_bridge.h Sun May 16 14:51:36 2010 (r208145) @@ -149,6 +149,7 @@ enum { NGM_BRIDGE_CLR_STATS, /* clear link stats */ NGM_BRIDGE_GETCLR_STATS, /* atomically get & clear link stats */ NGM_BRIDGE_GET_TABLE, /* get link table */ + NGM_BRIDGE_SET_PERSISTENT, /* set persistent mode */ }; #endif /* _NETGRAPH_NG_BRIDGE_H_ */ Modified: stable/8/sys/netgraph/ng_hub.c ============================================================================== --- stable/8/sys/netgraph/ng_hub.c Sun May 16 14:31:53 2010 (r208144) +++ stable/8/sys/netgraph/ng_hub.c Sun May 16 14:51:36 2010 (r208145) @@ -36,16 +36,46 @@ #include #include +#ifdef NG_SEPARATE_MALLOC +MALLOC_DEFINE(M_NETGRAPH_HUB, "netgraph_hub", "netgraph hub node"); +#else +#define M_NETGRAPH_HUB M_NETGRAPH +#endif + +/* Per-node private data */ +struct ng_hub_private { + int persistent; /* can exist w/o hooks */ +}; +typedef struct ng_hub_private *priv_p; + +/* Netgraph node methods */ static ng_constructor_t ng_hub_constructor; +static ng_rcvmsg_t ng_hub_rcvmsg; +static ng_shutdown_t ng_hub_shutdown; static ng_rcvdata_t ng_hub_rcvdata; static ng_disconnect_t ng_hub_disconnect; +/* List of commands and how to convert arguments to/from ASCII */ +static const struct ng_cmdlist ng_hub_cmdlist[] = { + { + NGM_HUB_COOKIE, + NGM_HUB_SET_PERSISTENT, + "setpersistent", + NULL, + NULL + }, + { 0 } +}; + static struct ng_type ng_hub_typestruct = { .version = NG_ABI_VERSION, .name = NG_HUB_NODE_TYPE, .constructor = ng_hub_constructor, + .rcvmsg = ng_hub_rcvmsg, + .shutdown = ng_hub_shutdown, .rcvdata = ng_hub_rcvdata, .disconnect = ng_hub_disconnect, + .cmdlist = ng_hub_cmdlist, }; NETGRAPH_INIT(hub, &ng_hub_typestruct); @@ -53,10 +83,39 @@ NETGRAPH_INIT(hub, &ng_hub_typestruct); static int ng_hub_constructor(node_p node) { + priv_p priv; + + /* Allocate and initialize private info */ + priv = malloc(sizeof(*priv), M_NETGRAPH_HUB, M_NOWAIT | M_ZERO); + if (priv == NULL) + return (ENOMEM); + NG_NODE_SET_PRIVATE(node, priv); return (0); } +/* + * Receive a control message + */ +static int +ng_hub_rcvmsg(node_p node, item_p item, hook_p lasthook) +{ + const priv_p priv = NG_NODE_PRIVATE(node); + int error = 0; + struct ng_mesg *msg; + + NGI_GET_MSG(item, msg); + if (msg->header.typecookie == NGM_HUB_COOKIE && + msg->header.cmd == NGM_HUB_SET_PERSISTENT) { + priv->persistent = 1; + } else { + error = EINVAL; + } + + NG_FREE_MSG(msg); + return (error); +} + static int ng_hub_rcvdata(hook_p hook, item_p item) { @@ -89,12 +148,25 @@ ng_hub_rcvdata(hook_p hook, item_p item) return (error); } +/* + * Shutdown node + */ +static int +ng_hub_shutdown(node_p node) +{ + const priv_p priv = NG_NODE_PRIVATE(node); + + free(priv, M_NETGRAPH_HUB); + return (0); +} + static int ng_hub_disconnect(hook_p hook) { + const priv_p priv = NG_NODE_PRIVATE(NG_HOOK_NODE(hook)); if (NG_NODE_NUMHOOKS(NG_HOOK_NODE(hook)) == 0 && - NG_NODE_IS_VALID(NG_HOOK_NODE(hook))) + NG_NODE_IS_VALID(NG_HOOK_NODE(hook)) && !priv->persistent) ng_rmnode_self(NG_HOOK_NODE(hook)); return (0); } Modified: stable/8/sys/netgraph/ng_hub.h ============================================================================== --- stable/8/sys/netgraph/ng_hub.h Sun May 16 14:31:53 2010 (r208144) +++ stable/8/sys/netgraph/ng_hub.h Sun May 16 14:51:36 2010 (r208145) @@ -33,4 +33,9 @@ #define NG_HUB_NODE_TYPE "hub" #define NGM_HUB_COOKIE 1082189597 +/* Netgraph control messages */ +enum { + NGM_HUB_SET_PERSISTENT = 1, /* set persistent mode */ +}; + #endif /* _NETGRAPH_NG_HUB_H_ */ From owner-svn-src-all@FreeBSD.ORG Sun May 16 14:53:43 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 918B2106566C; Sun, 16 May 2010 14:53:43 +0000 (UTC) (envelope-from zec@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7FFAE8FC1A; Sun, 16 May 2010 14:53:43 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GErhvY032251; Sun, 16 May 2010 14:53:43 GMT (envelope-from zec@svn.freebsd.org) Received: (from zec@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GErhEt032249; Sun, 16 May 2010 14:53:43 GMT (envelope-from zec@svn.freebsd.org) Message-Id: <201005161453.o4GErhEt032249@svn.freebsd.org> From: Marko Zec Date: Sun, 16 May 2010 14:53:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208146 - stable/8/sys/netgraph X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 14:53:43 -0000 Author: zec Date: Sun May 16 14:53:43 2010 New Revision: 208146 URL: http://svn.freebsd.org/changeset/base/208146 Log: MFC r208036: Increase the target buffer for performing NGM_ASCII2BINARY conversion from 2000 bytes to 20 Kbytes, which now matches the buffer size used for NGM_BINARY2ASCII conversions. The aim of this change is to allow for bigger binary structures to be managed via netgraph ASCII messages, until we come up with an API improvement which would get rid of such arbitrary hardcoded limits. Modified: stable/8/sys/netgraph/ng_base.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/netgraph/ng_base.c ============================================================================== --- stable/8/sys/netgraph/ng_base.c Sun May 16 14:51:36 2010 (r208145) +++ stable/8/sys/netgraph/ng_base.c Sun May 16 14:53:43 2010 (r208146) @@ -2763,7 +2763,7 @@ ng_generic_msg(node_p here, item_p item, case NGM_ASCII2BINARY: { - int bufSize = 2000; /* XXX hard coded constant */ + int bufSize = 20 * 1024; /* XXX hard coded constant */ const struct ng_cmdlist *c; const struct ng_parse_type *argstype; struct ng_mesg *ascii, *binary; From owner-svn-src-all@FreeBSD.ORG Sun May 16 15:12:34 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F25E61065676; Sun, 16 May 2010 15:12:34 +0000 (UTC) (envelope-from pjd@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DE8968FC16; Sun, 16 May 2010 15:12:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GFCYIK036430; Sun, 16 May 2010 15:12:34 GMT (envelope-from pjd@svn.freebsd.org) Received: (from pjd@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GFCYq2036425; Sun, 16 May 2010 15:12:34 GMT (envelope-from pjd@svn.freebsd.org) Message-Id: <201005161512.o4GFCYq2036425@svn.freebsd.org> From: Pawel Jakub Dawidek Date: Sun, 16 May 2010 15:12:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208147 - in head/sys/cddl: compat/opensolaris/kern compat/opensolaris/sys contrib/opensolaris/uts/common/fs/zfs contrib/opensolaris/uts/common/fs/zfs/sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 15:12:35 -0000 Author: pjd Date: Sun May 16 15:12:34 2010 New Revision: 208147 URL: http://svn.freebsd.org/changeset/base/208147 Log: Add task structure to zio and use it instead of allocating one. This eliminates the only place where we can sleep when calling zio_interrupt(). As a side-effect this can actually improve performance a little as we allocate one less thing for every I/O. Prodded by: kib MFC after: 1 week Added: head/sys/cddl/compat/opensolaris/sys/taskq.h (contents, props changed) Modified: head/sys/cddl/compat/opensolaris/kern/opensolaris_taskq.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c Modified: head/sys/cddl/compat/opensolaris/kern/opensolaris_taskq.c ============================================================================== --- head/sys/cddl/compat/opensolaris/kern/opensolaris_taskq.c Sun May 16 14:53:43 2010 (r208146) +++ head/sys/cddl/compat/opensolaris/kern/opensolaris_taskq.c Sun May 16 15:12:34 2010 (r208147) @@ -40,12 +40,6 @@ __FBSDID("$FreeBSD$"); static uma_zone_t taskq_zone; -struct ostask { - struct task ost_task; - task_func_t *ost_func; - void *ost_arg; -}; - taskq_t *system_taskq = NULL; static void @@ -140,3 +134,32 @@ taskq_dispatch(taskq_t *tq, task_func_t return ((taskqid_t)(void *)task); } + +#define TASKQ_MAGIC 0x74541c + +static void +taskq_run_safe(void *arg, int pending __unused) +{ + struct ostask *task = arg; + + ASSERT(task->ost_magic == TASKQ_MAGIC); + task->ost_func(task->ost_arg); + task->ost_magic = 0; +} + +taskqid_t +taskq_dispatch_safe(taskq_t *tq, task_func_t func, void *arg, + struct ostask *task) +{ + + ASSERT(task->ost_magic != TASKQ_MAGIC); + + task->ost_magic = TASKQ_MAGIC; + task->ost_func = func; + task->ost_arg = arg; + + TASK_INIT(&task->ost_task, 0, taskq_run_safe, task); + taskqueue_enqueue(tq->tq_queue, &task->ost_task); + + return ((taskqid_t)(void *)task); +} Added: head/sys/cddl/compat/opensolaris/sys/taskq.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/cddl/compat/opensolaris/sys/taskq.h Sun May 16 15:12:34 2010 (r208147) @@ -0,0 +1,44 @@ +/*- + * Copyright (c) 2010 Pawel Jakub Dawidek + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _OPENSOLARIS_SYS_TASKQ_H_ +#define _OPENSOLARIS_SYS_TASKQ_H_ + +#include_next + +struct ostask { + struct task ost_task; + task_func_t *ost_func; + void *ost_arg; + int ost_magic; +}; + +taskqid_t taskq_dispatch_safe(taskq_t *tq, task_func_t func, void *arg, + struct ostask *task); + +#endif /* _OPENSOLARIS_SYS_TASKQ_H_ */ Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h Sun May 16 14:53:43 2010 (r208146) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h Sun May 16 15:12:34 2010 (r208147) @@ -316,6 +316,9 @@ struct zio { /* FMA state */ uint64_t io_ena; + + /* FreeBSD only. */ + struct ostask io_task; }; extern zio_t *zio_null(zio_t *pio, spa_t *spa, Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c Sun May 16 14:53:43 2010 (r208146) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c Sun May 16 15:12:34 2010 (r208147) @@ -908,8 +908,8 @@ zio_taskq_dispatch(zio_t *zio, enum zio_ if (t == ZIO_TYPE_WRITE && zio->io_vd && zio->io_vd->vdev_aux) t = ZIO_TYPE_NULL; - (void) taskq_dispatch(zio->io_spa->spa_zio_taskq[t][q], - (task_func_t *)zio_execute, zio, TQ_SLEEP); + (void) taskq_dispatch_safe(zio->io_spa->spa_zio_taskq[t][q], + (task_func_t *)zio_execute, zio, &zio->io_task); } static boolean_t @@ -2220,9 +2220,9 @@ zio_done(zio_t *zio) * Reexecution is potentially a huge amount of work. * Hand it off to the otherwise-unused claim taskq. */ - (void) taskq_dispatch( + (void) taskq_dispatch_safe( spa->spa_zio_taskq[ZIO_TYPE_CLAIM][ZIO_TASKQ_ISSUE], - (task_func_t *)zio_reexecute, zio, TQ_SLEEP); + (task_func_t *)zio_reexecute, zio, &zio->io_task); } return (ZIO_PIPELINE_STOP); } From owner-svn-src-all@FreeBSD.ORG Sun May 16 15:15:00 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 13A4F1065677; Sun, 16 May 2010 15:15:00 +0000 (UTC) (envelope-from pjd@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 021C28FC13; Sun, 16 May 2010 15:15:00 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GFEx9E036982; Sun, 16 May 2010 15:14:59 GMT (envelope-from pjd@svn.freebsd.org) Received: (from pjd@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GFExnj036980; Sun, 16 May 2010 15:14:59 GMT (envelope-from pjd@svn.freebsd.org) Message-Id: <201005161514.o4GFExnj036980@svn.freebsd.org> From: Pawel Jakub Dawidek Date: Sun, 16 May 2010 15:14:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208148 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 15:15:00 -0000 Author: pjd Date: Sun May 16 15:14:59 2010 New Revision: 208148 URL: http://svn.freebsd.org/changeset/base/208148 Log: Allow to configure UMA usage for ZIO data via loader and turn it on by default for amd64. On i386 I saw performance degradation when UMA was used, but for amd64 it should help. MFC after: 3 days Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c Sun May 16 15:12:34 2010 (r208147) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c Sun May 16 15:14:59 2010 (r208148) @@ -33,6 +33,17 @@ #include #include +#if defined(__amd64__) +static int zio_use_uma = 1; +#else +static int zio_use_uma = 0; +#endif +SYSCTL_DECL(_vfs_zfs); +SYSCTL_NODE(_vfs_zfs, OID_AUTO, zio, CTLFLAG_RW, 0, "ZFS ZIO"); +TUNABLE_INT("vfs.zfs.zio.use_uma", &zio_use_uma); +SYSCTL_INT(_vfs_zfs_zio, OID_AUTO, use_uma, CTLFLAG_RDTUN, &zio_use_uma, 0, + "Use uma(9) for ZIO allocations"); + /* * ========================================================================== * I/O priority table @@ -69,10 +80,8 @@ char *zio_type_name[ZIO_TYPES] = { * ========================================================================== */ kmem_cache_t *zio_cache; -#ifdef ZIO_USE_UMA kmem_cache_t *zio_buf_cache[SPA_MAXBLOCKSIZE >> SPA_MINBLOCKSHIFT]; kmem_cache_t *zio_data_buf_cache[SPA_MAXBLOCKSIZE >> SPA_MINBLOCKSHIFT]; -#endif #ifdef _KERNEL extern vmem_t *zio_alloc_arena; @@ -88,13 +97,13 @@ extern vmem_t *zio_alloc_arena; void zio_init(void) { -#ifdef ZIO_USE_UMA size_t c; -#endif zio_cache = kmem_cache_create("zio_cache", sizeof (zio_t), 0, NULL, NULL, NULL, NULL, NULL, 0); -#ifdef ZIO_USE_UMA + if (!zio_use_uma) + goto end; + /* * For small buffers, we want a cache for each multiple of * SPA_MINBLOCKSIZE. For medium-size buffers, we want a cache @@ -138,15 +147,13 @@ zio_init(void) if (zio_data_buf_cache[c - 1] == NULL) zio_data_buf_cache[c - 1] = zio_data_buf_cache[c]; } -#endif - +end: zio_inject_init(); } void zio_fini(void) { -#ifdef ZIO_USE_UMA size_t c; kmem_cache_t *last_cache = NULL; kmem_cache_t *last_data_cache = NULL; @@ -164,7 +171,6 @@ zio_fini(void) } zio_data_buf_cache[c] = NULL; } -#endif kmem_cache_destroy(zio_cache); @@ -186,15 +192,14 @@ zio_fini(void) void * zio_buf_alloc(size_t size) { -#ifdef ZIO_USE_UMA size_t c = (size - 1) >> SPA_MINBLOCKSHIFT; ASSERT(c < SPA_MAXBLOCKSIZE >> SPA_MINBLOCKSHIFT); - return (kmem_cache_alloc(zio_buf_cache[c], KM_PUSHPAGE)); -#else - return (kmem_alloc(size, KM_SLEEP)); -#endif + if (zio_use_uma) + return (kmem_cache_alloc(zio_buf_cache[c], KM_PUSHPAGE)); + else + return (kmem_alloc(size, KM_SLEEP)); } /* @@ -206,43 +211,40 @@ zio_buf_alloc(size_t size) void * zio_data_buf_alloc(size_t size) { -#ifdef ZIO_USE_UMA size_t c = (size - 1) >> SPA_MINBLOCKSHIFT; ASSERT(c < SPA_MAXBLOCKSIZE >> SPA_MINBLOCKSHIFT); - return (kmem_cache_alloc(zio_data_buf_cache[c], KM_PUSHPAGE)); -#else - return (kmem_alloc(size, KM_SLEEP)); -#endif + if (zio_use_uma) + return (kmem_cache_alloc(zio_data_buf_cache[c], KM_PUSHPAGE)); + else + return (kmem_alloc(size, KM_SLEEP)); } void zio_buf_free(void *buf, size_t size) { -#ifdef ZIO_USE_UMA size_t c = (size - 1) >> SPA_MINBLOCKSHIFT; ASSERT(c < SPA_MAXBLOCKSIZE >> SPA_MINBLOCKSHIFT); - kmem_cache_free(zio_buf_cache[c], buf); -#else - kmem_free(buf, size); -#endif + if (zio_use_uma) + kmem_cache_free(zio_buf_cache[c], buf); + else + kmem_free(buf, size); } void zio_data_buf_free(void *buf, size_t size) { -#ifdef ZIO_USE_UMA size_t c = (size - 1) >> SPA_MINBLOCKSHIFT; ASSERT(c < SPA_MAXBLOCKSIZE >> SPA_MINBLOCKSHIFT); - kmem_cache_free(zio_data_buf_cache[c], buf); -#else - kmem_free(buf, size); -#endif + if (zio_use_uma) + kmem_cache_free(zio_data_buf_cache[c], buf); + else + kmem_free(buf, size); } /* From owner-svn-src-all@FreeBSD.ORG Sun May 16 15:18:26 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 27BAD106566C; Sun, 16 May 2010 15:18:26 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 144158FC14; Sun, 16 May 2010 15:18:26 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GFIPHS037981; Sun, 16 May 2010 15:18:25 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GFIPRM037976; Sun, 16 May 2010 15:18:25 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201005161518.o4GFIPRM037976@svn.freebsd.org> From: Nathan Whitehorn Date: Sun, 16 May 2010 15:18:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208149 - in head/sys: conf dev/pci powerpc/include powerpc/powermac powerpc/powerpc X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 15:18:26 -0000 Author: nwhitehorn Date: Sun May 16 15:18:25 2010 New Revision: 208149 URL: http://svn.freebsd.org/changeset/base/208149 Log: Add support for the U4 PCI-Express bridge chipset used in late-generation Powermac G5 systems. MSI and several other things are not presently supported. The U3/U4 internal device support portions of this change were contributed by Andreas Tobler. MFC after: 1 week Added: head/sys/powerpc/powermac/uninorthpci.c (contents, props changed) Deleted: head/sys/powerpc/powermac/cpchtvar.h Modified: head/sys/conf/files.powerpc head/sys/dev/pci/pci.c head/sys/powerpc/include/intr_machdep.h head/sys/powerpc/powermac/cpcht.c head/sys/powerpc/powermac/uninorth.c head/sys/powerpc/powermac/uninorthvar.h head/sys/powerpc/powerpc/openpic.c Modified: head/sys/conf/files.powerpc ============================================================================== --- head/sys/conf/files.powerpc Sun May 16 15:14:59 2010 (r208148) +++ head/sys/conf/files.powerpc Sun May 16 15:18:25 2010 (r208149) @@ -139,7 +139,8 @@ powerpc/powermac/openpic_macio.c optiona powerpc/powermac/pswitch.c optional powermac pswitch powerpc/powermac/pmu.c optional powermac pmu powerpc/powermac/smu.c optional powermac smu -powerpc/powermac/uninorth.c optional powermac pci +powerpc/powermac/uninorth.c optional powermac +powerpc/powermac/uninorthpci.c optional powermac pci powerpc/powermac/vcoregpio.c optional powermac powerpc/powerpc/altivec.c optional aim powerpc/powerpc/atomic.S standard Modified: head/sys/dev/pci/pci.c ============================================================================== --- head/sys/dev/pci/pci.c Sun May 16 15:14:59 2010 (r208148) +++ head/sys/dev/pci/pci.c Sun May 16 15:18:25 2010 (r208149) @@ -53,7 +53,7 @@ __FBSDID("$FreeBSD$"); #include #include -#if defined(__i386__) || defined(__amd64__) +#if defined(__i386__) || defined(__amd64__) || defined(__powerpc__) #include #endif @@ -559,7 +559,7 @@ pci_read_extcap(device_t pcib, pcicfgreg { #define REG(n, w) PCIB_READ_CONFIG(pcib, cfg->bus, cfg->slot, cfg->func, n, w) #define WREG(n, v, w) PCIB_WRITE_CONFIG(pcib, cfg->bus, cfg->slot, cfg->func, n, v, w) -#if defined(__i386__) || defined(__amd64__) +#if defined(__i386__) || defined(__amd64__) || defined(__powerpc__) uint64_t addr; #endif uint32_t val; @@ -603,7 +603,7 @@ pci_read_extcap(device_t pcib, pcicfgreg cfg->pp.pp_data = ptr + PCIR_POWER_DATA; } break; -#if defined(__i386__) || defined(__amd64__) +#if defined(__i386__) || defined(__amd64__) || defined(__powerpc__) case PCIY_HT: /* HyperTransport */ /* Determine HT-specific capability type. */ val = REG(ptr + PCIR_HT_COMMAND, 2); Modified: head/sys/powerpc/include/intr_machdep.h ============================================================================== --- head/sys/powerpc/include/intr_machdep.h Sun May 16 15:14:59 2010 (r208148) +++ head/sys/powerpc/include/intr_machdep.h Sun May 16 15:18:25 2010 (r208149) @@ -30,6 +30,11 @@ #define INTR_VECTORS 256 +/* + * Default base address for MSI messages on PowerPC + */ +#define MSI_INTEL_ADDR_BASE 0xfee00000 + extern device_t pic; extern device_t pic8259; Modified: head/sys/powerpc/powermac/cpcht.c ============================================================================== --- head/sys/powerpc/powermac/cpcht.c Sun May 16 15:14:59 2010 (r208148) +++ head/sys/powerpc/powermac/cpcht.c Sun May 16 15:18:25 2010 (r208149) @@ -1,5 +1,5 @@ /*- - * Copyright (C) 2008 Nathan Whitehorn + * Copyright (C) 2008-2010 Nathan Whitehorn * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -39,7 +39,9 @@ #include #include +#include #include +#include #include #include @@ -47,396 +49,341 @@ #include #include -#include #include #include #include "pcib_if.h" - -#include "opt_isa.h" - -#ifdef DEV_ISA -#include -#endif - -static MALLOC_DEFINE(M_CPCHT, "cpcht", "CPC HT device information"); +#include "pic_if.h" /* - * HT Driver methods. + * IBM CPC9X5 Hypertransport Device interface. */ static int cpcht_probe(device_t); static int cpcht_attach(device_t); -static ofw_bus_get_devinfo_t cpcht_get_devinfo; - - -static device_method_t cpcht_methods[] = { - /* Device interface */ - DEVMETHOD(device_probe, cpcht_probe), - DEVMETHOD(device_attach, cpcht_attach), - - /* Bus interface */ - DEVMETHOD(bus_print_child, bus_generic_print_child), - DEVMETHOD(bus_read_ivar, bus_generic_read_ivar), - DEVMETHOD(bus_setup_intr, bus_generic_setup_intr), - DEVMETHOD(bus_teardown_intr, bus_generic_teardown_intr), - DEVMETHOD(bus_alloc_resource, bus_generic_alloc_resource), - DEVMETHOD(bus_release_resource, bus_generic_release_resource), - DEVMETHOD(bus_activate_resource,bus_generic_activate_resource), - - /* ofw_bus interface */ - DEVMETHOD(ofw_bus_get_devinfo, cpcht_get_devinfo), - DEVMETHOD(ofw_bus_get_compat, ofw_bus_gen_get_compat), - DEVMETHOD(ofw_bus_get_model, ofw_bus_gen_get_model), - DEVMETHOD(ofw_bus_get_name, ofw_bus_gen_get_name), - DEVMETHOD(ofw_bus_get_node, ofw_bus_gen_get_node), - DEVMETHOD(ofw_bus_get_type, ofw_bus_gen_get_type), - - { 0, 0 } -}; - -static driver_t cpcht_driver = { - "cpcht", - cpcht_methods, - 0 -}; - -static devclass_t cpcht_devclass; - -DRIVER_MODULE(cpcht, nexus, cpcht_driver, cpcht_devclass, 0, 0); - -static int -cpcht_probe(device_t dev) -{ - const char *type, *compatible; - - type = ofw_bus_get_type(dev); - compatible = ofw_bus_get_compat(dev); - - if (type == NULL || compatible == NULL) - return (ENXIO); - - if (strcmp(type, "ht") != 0) - return (ENXIO); - - if (strcmp(compatible, "u3-ht") == 0) { - device_set_desc(dev, "IBM CPC925 HyperTransport Tunnel"); - return (0); - } else if (strcmp(compatible,"u4-ht") == 0) { - device_set_desc(dev, "IBM CPC945 HyperTransport Tunnel"); - return (0); - } - - return (ENXIO); -} - -static int -cpcht_attach(device_t dev) -{ - phandle_t root, child; - device_t cdev; - struct ofw_bus_devinfo *dinfo; - u_int32_t reg[6]; - - root = ofw_bus_get_node(dev); - - if (OF_getprop(root, "reg", reg, sizeof(reg)) < 8) - return (ENXIO); - - for (child = OF_child(root); child != 0; child = OF_peer(child)) { - dinfo = malloc(sizeof(*dinfo), M_CPCHT, M_WAITOK | M_ZERO); - - if (ofw_bus_gen_setup_devinfo(dinfo, child) != 0) { - free(dinfo, M_CPCHT); - continue; - } - cdev = device_add_child(dev, NULL, -1); - if (cdev == NULL) { - device_printf(dev, "<%s>: device_add_child failed\n", - dinfo->obd_name); - ofw_bus_gen_destroy_devinfo(dinfo); - free(dinfo, M_CPCHT); - continue; - } - device_set_ivars(cdev, dinfo); - } - - return (bus_generic_attach(dev)); -} - -static const struct ofw_bus_devinfo * -cpcht_get_devinfo(device_t dev, device_t child) -{ - return (device_get_ivars(child)); -} - -#ifdef DEV_ISA - -/* - * CPC ISA Device interface. - */ -static int cpcisa_probe(device_t); - -/* - * Driver methods. - */ -static device_method_t cpcisa_methods[] = { - /* Device interface */ - DEVMETHOD(device_probe, cpcisa_probe), - DEVMETHOD(device_attach, isab_attach), - /* Bus interface */ - DEVMETHOD(bus_print_child, bus_generic_print_child), - DEVMETHOD(bus_read_ivar, bus_generic_read_ivar), - DEVMETHOD(bus_setup_intr, bus_generic_setup_intr), - DEVMETHOD(bus_teardown_intr, bus_generic_teardown_intr), - DEVMETHOD(bus_alloc_resource, bus_generic_alloc_resource), - DEVMETHOD(bus_release_resource, bus_generic_release_resource), - DEVMETHOD(bus_activate_resource,bus_generic_activate_resource), - - {0,0} -}; - -static driver_t cpcisa_driver = { - "isab", - cpcisa_methods, - 0 -}; - -DRIVER_MODULE(cpcisa, cpcht, cpcisa_driver, isab_devclass, 0, 0); - -static int -cpcisa_probe(device_t dev) -{ - const char *type; - - type = ofw_bus_get_type(dev); - - if (type == NULL) - return (ENXIO); - - if (strcmp(type, "isa") != 0) - return (ENXIO); - - device_set_desc(dev, "HyperTransport-ISA bridge"); - - return (0); -} - -#endif /* DEV_ISA */ - -/* - * CPC PCI Device interface. - */ -static int cpcpci_probe(device_t); -static int cpcpci_attach(device_t); +static void cpcht_configure_htbridge(device_t, phandle_t); /* * Bus interface. */ -static int cpcpci_read_ivar(device_t, device_t, int, +static int cpcht_read_ivar(device_t, device_t, int, uintptr_t *); -static struct resource * cpcpci_alloc_resource(device_t bus, - device_t child, int type, int *rid, u_long start, - u_long end, u_long count, u_int flags); -static int cpcpci_activate_resource(device_t bus, device_t child, +static struct resource *cpcht_alloc_resource(device_t bus, device_t child, + int type, int *rid, u_long start, u_long end, + u_long count, u_int flags); +static int cpcht_activate_resource(device_t bus, device_t child, + int type, int rid, struct resource *res); +static int cpcht_release_resource(device_t bus, device_t child, + int type, int rid, struct resource *res); +static int cpcht_deactivate_resource(device_t bus, device_t child, int type, int rid, struct resource *res); /* * pcib interface. */ -static int cpcpci_maxslots(device_t); -static u_int32_t cpcpci_read_config(device_t, u_int, u_int, u_int, +static int cpcht_maxslots(device_t); +static u_int32_t cpcht_read_config(device_t, u_int, u_int, u_int, u_int, int); -static void cpcpci_write_config(device_t, u_int, u_int, u_int, +static void cpcht_write_config(device_t, u_int, u_int, u_int, u_int, u_int32_t, int); -static int cpcpci_route_interrupt(device_t, device_t, int); +static int cpcht_route_interrupt(device_t bus, device_t dev, + int pin); /* * ofw_bus interface */ -static phandle_t cpcpci_get_node(device_t bus, device_t child); +static phandle_t cpcht_get_node(device_t bus, device_t child); /* * Driver methods. */ -static device_method_t cpcpci_methods[] = { +static device_method_t cpcht_methods[] = { /* Device interface */ - DEVMETHOD(device_probe, cpcpci_probe), - DEVMETHOD(device_attach, cpcpci_attach), + DEVMETHOD(device_probe, cpcht_probe), + DEVMETHOD(device_attach, cpcht_attach), /* Bus interface */ DEVMETHOD(bus_print_child, bus_generic_print_child), - DEVMETHOD(bus_read_ivar, cpcpci_read_ivar), + DEVMETHOD(bus_read_ivar, cpcht_read_ivar), DEVMETHOD(bus_setup_intr, bus_generic_setup_intr), DEVMETHOD(bus_teardown_intr, bus_generic_teardown_intr), - DEVMETHOD(bus_alloc_resource, cpcpci_alloc_resource), - DEVMETHOD(bus_activate_resource, cpcpci_activate_resource), + DEVMETHOD(bus_alloc_resource, cpcht_alloc_resource), + DEVMETHOD(bus_release_resource, cpcht_release_resource), + DEVMETHOD(bus_activate_resource, cpcht_activate_resource), + DEVMETHOD(bus_deactivate_resource, cpcht_deactivate_resource), /* pcib interface */ - DEVMETHOD(pcib_maxslots, cpcpci_maxslots), - DEVMETHOD(pcib_read_config, cpcpci_read_config), - DEVMETHOD(pcib_write_config, cpcpci_write_config), - DEVMETHOD(pcib_route_interrupt, cpcpci_route_interrupt), + DEVMETHOD(pcib_maxslots, cpcht_maxslots), + DEVMETHOD(pcib_read_config, cpcht_read_config), + DEVMETHOD(pcib_write_config, cpcht_write_config), + DEVMETHOD(pcib_route_interrupt, cpcht_route_interrupt), /* ofw_bus interface */ - DEVMETHOD(ofw_bus_get_node, cpcpci_get_node), + DEVMETHOD(ofw_bus_get_node, cpcht_get_node), { 0, 0 } }; -static driver_t cpcpci_driver = { +struct cpcht_irq { + int ht_source; + + vm_offset_t ht_base; + vm_offset_t apple_eoi; + uint32_t eoi_data; + int edge; +}; + +static struct cpcht_irq *cpcht_irqmap = NULL; + +struct cpcht_softc { + device_t sc_dev; + phandle_t sc_node; + vm_offset_t sc_data; + uint64_t sc_populated_slots; + struct rman sc_mem_rman; + + struct cpcht_irq htirq_map[128]; +}; + +static driver_t cpcht_driver = { "pcib", - cpcpci_methods, - sizeof(struct cpcpci_softc) + cpcht_methods, + sizeof(struct cpcht_softc) }; -static devclass_t cpcpci_devclass; +static devclass_t cpcht_devclass; + +DRIVER_MODULE(cpcht, nexus, cpcht_driver, cpcht_devclass, 0, 0); -DRIVER_MODULE(cpcpci, cpcht, cpcpci_driver, cpcpci_devclass, 0, 0); +#define HTAPIC_REQUEST_EOI 0x20 +#define HTAPIC_TRIGGER_LEVEL 0x02 +#define HTAPIC_MASK 0x01 + +struct cpcht_range { + u_int32_t pci_hi; + u_int32_t pci_mid; + u_int32_t pci_lo; + u_int32_t junk; + u_int32_t host_hi; + u_int32_t host_lo; + u_int32_t size_hi; + u_int32_t size_lo; +}; static int -cpcpci_probe(device_t dev) +cpcht_probe(device_t dev) { - const char *type; + const char *type, *compatible; type = ofw_bus_get_type(dev); + compatible = ofw_bus_get_compat(dev); - if (type == NULL) + if (type == NULL || compatible == NULL) return (ENXIO); - if (strcmp(type, "pci") != 0) + if (strcmp(type, "ht") != 0) return (ENXIO); - device_set_desc(dev, "HyperTransport-PCI bridge"); - + if (strcmp(compatible, "u3-ht") != 0) + return (ENXIO); + + + device_set_desc(dev, "IBM CPC9X5 HyperTransport Tunnel"); return (0); } static int -cpcpci_attach(device_t dev) +cpcht_attach(device_t dev) { - struct cpcpci_softc *sc; - phandle_t node; - u_int32_t reg[2], busrange[2], config_base; - struct cpcpci_range *rp, *io, *mem[2]; - struct cpcpci_range fakeio; - int nmem, i; + struct cpcht_softc *sc; + phandle_t node, child; + u_int32_t reg[3]; + int error; node = ofw_bus_get_node(dev); sc = device_get_softc(dev); - if (OF_getprop(OF_parent(node), "reg", reg, sizeof(reg)) < 8) - return (ENXIO); - - if (OF_getprop(node, "bus-range", busrange, sizeof(busrange)) != 8) + if (OF_getprop(node, "reg", reg, sizeof(reg)) < 12) return (ENXIO); sc->sc_dev = dev; sc->sc_node = node; - sc->sc_bus = busrange[0]; - config_base = reg[1]; - if (sc->sc_bus) - config_base += 0x01000000UL + (sc->sc_bus << 16); - sc->sc_data = (vm_offset_t)pmap_mapdev(config_base, PAGE_SIZE << 4); - - bzero(sc->sc_range, sizeof(sc->sc_range)); - sc->sc_nrange = OF_getprop(node, "ranges", sc->sc_range, - sizeof(sc->sc_range)); + sc->sc_populated_slots = 0; + sc->sc_data = (vm_offset_t)pmap_mapdev(reg[1], reg[2]); - if (sc->sc_nrange == -1) { - device_printf(dev, "could not get ranges\n"); - return (ENXIO); - } + sc->sc_mem_rman.rm_type = RMAN_ARRAY; + sc->sc_mem_rman.rm_descr = "CPCHT Device Memory"; + error = rman_init(&sc->sc_mem_rman); + + if (error) { + device_printf(dev, "rman_init() failed. error = %d\n", error); + return (error); + } + + /* + * Set up the resource manager and the HT->MPIC mapping. For cpcht, + * the ranges are properties of the child bridges, and this is also + * where we get the HT interrupts properties. + */ + + bzero(sc->htirq_map, sizeof(sc->htirq_map)); + for (child = OF_child(node); child != 0; child = OF_peer(child)) + cpcht_configure_htbridge(dev, child); + + /* Now make the mapping table available to the MPIC */ + cpcht_irqmap = sc->htirq_map; + + device_add_child(dev, "pci", device_get_unit(dev)); + + return (bus_generic_attach(dev)); +} - sc->sc_range[6].pci_hi = 0; - io = NULL; - nmem = 0; +static void +cpcht_configure_htbridge(device_t dev, phandle_t child) +{ + struct cpcht_softc *sc; + struct ofw_pci_register pcir; + struct cpcht_range ranges[6], *rp; + int nranges, ptr, nextptr; + uint32_t vend, val; + int i, nirq, irq; + u_int f, s; + + sc = device_get_softc(dev); + if (OF_getprop(child, "reg", &pcir, sizeof(pcir)) == -1) + return; + + s = OFW_PCI_PHYS_HI_DEVICE(pcir.phys_hi); + f = OFW_PCI_PHYS_HI_FUNCTION(pcir.phys_hi); - for (rp = sc->sc_range; rp->pci_hi != 0; rp++) { + /* + * Mark this slot is populated. The remote south bridge does + * not like us talking to unpopulated slots on the root bus. + */ + sc->sc_populated_slots |= (1 << s); + + /* + * Next grab this child bus's bus ranges. + */ + bzero(ranges, sizeof(ranges)); + nranges = OF_getprop(child, "ranges", ranges, sizeof(ranges)); + + ranges[6].pci_hi = 0; + for (rp = ranges; rp->pci_hi != 0; rp++) { switch (rp->pci_hi & OFW_PCI_PHYS_HI_SPACEMASK) { case OFW_PCI_PHYS_HI_SPACE_CONFIG: break; case OFW_PCI_PHYS_HI_SPACE_IO: - io = rp; - break; case OFW_PCI_PHYS_HI_SPACE_MEM32: - mem[nmem] = rp; - nmem++; + rman_manage_region(&sc->sc_mem_rman, rp->pci_lo, + rp->pci_lo + rp->size_lo - 1); break; case OFW_PCI_PHYS_HI_SPACE_MEM64: + panic("64-bit CPCHT reserved memory!"); break; } } - if (io == NULL) { - /* - * On at least some machines, the I/O port range is - * not exported in the OF device tree. So hardcode it. - */ - - fakeio.host_lo = 0; - fakeio.pci_lo = reg[1]; - fakeio.size_lo = 0x00400000; - if (sc->sc_bus) - fakeio.pci_lo += 0x02000000UL + (sc->sc_bus << 14); - io = &fakeio; - } - sc->sc_io_rman.rm_type = RMAN_ARRAY; - sc->sc_io_rman.rm_descr = "CPC 9xx PCI I/O Ports"; - sc->sc_iostart = io->host_lo; - if (rman_init(&sc->sc_io_rman) != 0 || - rman_manage_region(&sc->sc_io_rman, io->pci_lo, - io->pci_lo + io->size_lo - 1) != 0) { - device_printf(dev, "failed to set up io range management\n"); - return (ENXIO); - } - - if (nmem == 0) { - device_printf(dev, "can't find mem ranges\n"); - return (ENXIO); - } - sc->sc_mem_rman.rm_type = RMAN_ARRAY; - sc->sc_mem_rman.rm_descr = "CPC 9xx PCI Memory"; - if (rman_init(&sc->sc_mem_rman) != 0) { - device_printf(dev, - "failed to init mem range resources\n"); - return (ENXIO); - } - for (i = 0; i < nmem; i++) { - if (rman_manage_region(&sc->sc_mem_rman, mem[i]->pci_lo, - mem[i]->pci_lo + mem[i]->size_lo - 1) != 0) { - device_printf(dev, - "failed to set up memory range management\n"); - return (ENXIO); + /* + * Next build up any HT->MPIC mappings for this sub-bus. One would + * naively hope that enabling, disabling, and EOIing interrupts would + * cause the appropriate HT bus transactions to that effect. This is + * not the case. + * + * Instead, we have to muck about on the HT peer's root PCI bridges, + * figure out what interrupts they send, enable them, and cache + * the location of their WaitForEOI registers so that we can + * send EOIs later. + */ + + /* All the devices we are interested in have caps */ + if (!(PCIB_READ_CONFIG(dev, 0, s, f, PCIR_STATUS, 2) + & PCIM_STATUS_CAPPRESENT)) + return; + + nextptr = PCIB_READ_CONFIG(dev, 0, s, f, PCIR_CAP_PTR, 1); + while (nextptr != 0) { + ptr = nextptr; + nextptr = PCIB_READ_CONFIG(dev, 0, s, f, + ptr + PCICAP_NEXTPTR, 1); + + /* Find the HT IRQ capabilities */ + if (PCIB_READ_CONFIG(dev, 0, s, f, + ptr + PCICAP_ID, 1) != PCIY_HT) + continue; + + val = PCIB_READ_CONFIG(dev, 0, s, f, ptr + PCIR_HT_COMMAND, 2); + if ((val & PCIM_HTCMD_CAP_MASK) != PCIM_HTCAP_INTERRUPT) + continue; + + /* Ask for the IRQ count */ + PCIB_WRITE_CONFIG(dev, 0, s, f, ptr + PCIR_HT_COMMAND, 0x1, 1); + nirq = PCIB_READ_CONFIG(dev, 0, s, f, ptr + 4, 4); + nirq = ((nirq >> 16) & 0xff) + 1; + + device_printf(dev, "%d HT IRQs on device %d.%d\n", nirq, s, f); + + for (i = 0; i < nirq; i++) { + PCIB_WRITE_CONFIG(dev, 0, s, f, + ptr + PCIR_HT_COMMAND, 0x10 + (i << 1), 1); + irq = PCIB_READ_CONFIG(dev, 0, s, f, ptr + 4, 4); + + /* + * Mask this interrupt for now. + */ + PCIB_WRITE_CONFIG(dev, 0, s, f, ptr + 4, + irq | HTAPIC_MASK, 4); + irq = (irq >> 16) & 0xff; + + sc->htirq_map[irq].ht_source = i; + sc->htirq_map[irq].ht_base = sc->sc_data + + (((((s & 0x1f) << 3) | (f & 0x07)) << 8) | (ptr)); + + PCIB_WRITE_CONFIG(dev, 0, s, f, + ptr + PCIR_HT_COMMAND, 0x11 + (i << 1), 1); + sc->htirq_map[irq].eoi_data = + PCIB_READ_CONFIG(dev, 0, s, f, ptr + 4, 4) | + 0x80000000; + + /* + * Apple uses a non-compliant IO/APIC that differs + * in how we signal EOIs. Check if this device was + * made by Apple, and act accordingly. + */ + vend = PCIB_READ_CONFIG(dev, 0, s, f, + PCIR_DEVVENDOR, 4); + if ((vend & 0xffff) == 0x106b) + sc->htirq_map[irq].apple_eoi = + (sc->htirq_map[irq].ht_base - ptr) + 0x60; } } - - ofw_bus_setup_iinfo(node, &sc->sc_pci_iinfo, sizeof(cell_t)); - - device_add_child(dev, "pci", device_get_unit(dev)); - - return (bus_generic_attach(dev)); } static int -cpcpci_maxslots(device_t dev) +cpcht_maxslots(device_t dev) { return (PCI_SLOTMAX); } static u_int32_t -cpcpci_read_config(device_t dev, u_int bus, u_int slot, u_int func, u_int reg, +cpcht_read_config(device_t dev, u_int bus, u_int slot, u_int func, u_int reg, int width) { - struct cpcpci_softc *sc; + struct cpcht_softc *sc; vm_offset_t caoff; sc = device_get_softc(dev); caoff = sc->sc_data + (((((slot & 0x1f) << 3) | (func & 0x07)) << 8) | reg); + if (bus == 0 && (!(sc->sc_populated_slots & (1 << slot)) || func > 0)) + return (0xffffffff); + + if (bus > 0) + caoff += 0x01000000UL + (bus << 16); + switch (width) { case 1: return (in8rb(caoff)); @@ -453,16 +400,22 @@ cpcpci_read_config(device_t dev, u_int b } static void -cpcpci_write_config(device_t dev, u_int bus, u_int slot, u_int func, +cpcht_write_config(device_t dev, u_int bus, u_int slot, u_int func, u_int reg, u_int32_t val, int width) { - struct cpcpci_softc *sc; + struct cpcht_softc *sc; vm_offset_t caoff; sc = device_get_softc(dev); caoff = sc->sc_data + (((((slot & 0x1f) << 3) | (func & 0x07)) << 8) | reg); + if (bus == 0 && (!(sc->sc_populated_slots & (1 << slot)) || func > 0)) + return; + + if (bus > 0) + caoff += 0x01000000UL + (bus << 16); + switch (width) { case 1: out8rb(caoff, val); @@ -477,9 +430,9 @@ cpcpci_write_config(device_t dev, u_int } static int -cpcpci_read_ivar(device_t dev, device_t child, int which, uintptr_t *result) +cpcht_read_ivar(device_t dev, device_t child, int which, uintptr_t *result) { - struct cpcpci_softc *sc; + struct cpcht_softc *sc; sc = device_get_softc(dev); @@ -488,38 +441,53 @@ cpcpci_read_ivar(device_t dev, device_t *result = device_get_unit(dev); return (0); case PCIB_IVAR_BUS: - *result = sc->sc_bus; + *result = 0; /* Root bus */ return (0); } return (ENOENT); } +static phandle_t +cpcht_get_node(device_t bus, device_t dev) +{ + struct cpcht_softc *sc; + + sc = device_get_softc(bus); + /* We only have one child, the PCI bus, which needs our own node. */ + return (sc->sc_node); +} + +static int +cpcht_route_interrupt(device_t bus, device_t dev, int pin) +{ + return (pin); +} + static struct resource * -cpcpci_alloc_resource(device_t bus, device_t child, int type, int *rid, +cpcht_alloc_resource(device_t bus, device_t child, int type, int *rid, u_long start, u_long end, u_long count, u_int flags) { - struct cpcpci_softc *sc; + struct cpcht_softc *sc; struct resource *rv; struct rman *rm; - int needactivate; + int needactivate, err; needactivate = flags & RF_ACTIVE; flags &= ~RF_ACTIVE; sc = device_get_softc(bus); + err = 0; switch (type) { + case SYS_RES_IOPORT: + end = min(end, start + count); + + /* FALLTHROUGH */ case SYS_RES_MEMORY: rm = &sc->sc_mem_rman; break; - case SYS_RES_IOPORT: - rm = &sc->sc_io_rman; - if (rm == NULL) - return (NULL); - break; - case SYS_RES_IRQ: return (bus_alloc_resource(bus, type, rid, start, end, count, flags)); @@ -553,11 +521,11 @@ cpcpci_alloc_resource(device_t bus, devi } static int -cpcpci_activate_resource(device_t bus, device_t child, int type, int rid, +cpcht_activate_resource(device_t bus, device_t child, int type, int rid, struct resource *res) { void *p; - struct cpcpci_softc *sc; + struct cpcht_softc *sc; sc = device_get_softc(bus); @@ -568,15 +536,9 @@ cpcpci_activate_resource(device_t bus, d vm_offset_t start; start = (vm_offset_t)rman_get_start(res); - /* - * For i/o-ports, convert the start address to the - * CPC PCI i/o window - */ - if (type == SYS_RES_IOPORT) - start += sc->sc_iostart; if (bootverbose) - printf("cpcpci mapdev: start %x, len %ld\n", start, + printf("cpcht mapdev: start %zx, len %ld\n", start, rman_get_size(res)); p = pmap_mapdev(start, (vm_size_t)rman_get_size(res)); @@ -590,36 +552,259 @@ cpcpci_activate_resource(device_t bus, d return (rman_activate_resource(res)); } -static phandle_t -cpcpci_get_node(device_t bus, device_t dev) +static int +cpcht_release_resource(device_t bus, device_t child, int type, int rid, + struct resource *res) { - struct cpcpci_softc *sc; - sc = device_get_softc(bus); - /* We only have one child, the PCI bus, which needs our own node. */ - return (sc->sc_node); + if (rman_get_flags(res) & RF_ACTIVE) { + int error = bus_deactivate_resource(child, type, rid, res); + if (error) + return error; + } + + return (rman_release_resource(res)); } static int -cpcpci_route_interrupt(device_t bus, device_t dev, int pin) +cpcht_deactivate_resource(device_t bus, device_t child, int type, int rid, + struct resource *res) { - struct cpcpci_softc *sc; - struct ofw_pci_register reg; - uint32_t pintr, mintr; - uint8_t maskbuf[sizeof(reg) + sizeof(pintr)]; - sc = device_get_softc(bus); - pintr = pin; - if (ofw_bus_lookup_imap(ofw_bus_get_node(dev), &sc->sc_pci_iinfo, ®, - sizeof(reg), &pintr, sizeof(pintr), &mintr, sizeof(mintr), maskbuf)) - return (mintr); - - /* Maybe it's a real interrupt, not an intpin */ - if (pin > 4) - return (pin); - - device_printf(bus, "could not route pin %d for device %d.%d\n", - pin, pci_get_slot(dev), pci_get_function(dev)); - return (PCI_INVALID_IRQ); + /* + * If this is a memory resource, unmap it. + */ + if ((type == SYS_RES_MEMORY) || (type == SYS_RES_IOPORT)) { + u_int32_t psize; + + psize = rman_get_size(res); + pmap_unmapdev((vm_offset_t)rman_get_virtual(res), psize); + } + + return (rman_deactivate_resource(res)); +} + +/* + * Driver for the integrated MPIC on U3/U4 (CPC925/CPC945) + */ + +static int openpic_cpcht_probe(device_t); +static int openpic_cpcht_attach(device_t); +static void openpic_cpcht_config(device_t, u_int irq, + enum intr_trigger trig, enum intr_polarity pol); +static void openpic_cpcht_enable(device_t, u_int irq, u_int vector); +static void openpic_cpcht_unmask(device_t, u_int irq); +static void openpic_cpcht_eoi(device_t, u_int irq); + +static device_method_t openpic_cpcht_methods[] = { + /* Device interface */ + DEVMETHOD(device_probe, openpic_cpcht_probe), + DEVMETHOD(device_attach, openpic_cpcht_attach), + + /* PIC interface */ + DEVMETHOD(pic_config, openpic_cpcht_config), + DEVMETHOD(pic_dispatch, openpic_dispatch), + DEVMETHOD(pic_enable, openpic_cpcht_enable), + DEVMETHOD(pic_eoi, openpic_cpcht_eoi), + DEVMETHOD(pic_ipi, openpic_ipi), + DEVMETHOD(pic_mask, openpic_mask), + DEVMETHOD(pic_unmask, openpic_cpcht_unmask), + + { 0, 0 }, +}; + +struct openpic_cpcht_softc { + struct openpic_softc sc_openpic; + + struct mtx sc_ht_mtx; +}; + +static driver_t openpic_cpcht_driver = { + "htpic", + openpic_cpcht_methods, + sizeof(struct openpic_softc), +}; + +DRIVER_MODULE(openpic, unin, openpic_cpcht_driver, openpic_devclass, 0, 0); + +static int +openpic_cpcht_probe(device_t dev) +{ + const char *type = ofw_bus_get_type(dev); + + if (strcmp(type, "open-pic") != 0) + return (ENXIO); + + device_set_desc(dev, OPENPIC_DEVSTR); + return (0); +} + +static int +openpic_cpcht_attach(device_t dev) +{ + struct openpic_cpcht_softc *sc; + int err, irq; + + err = openpic_attach(dev); + if (err != 0) + return (err); + + /* + * The HT APIC stuff is not thread-safe, so we need a mutex to + * protect it. + */ + sc = device_get_softc(dev); + mtx_init(&sc->sc_ht_mtx, "htpic", NULL, MTX_SPIN); + + /* + * Interrupts 0-3 are internally sourced and are level triggered + * active low. Interrupts 4-123 are connected to a pulse generator + * and should be programmed as edge triggered low-to-high. + * + * IBM CPC945 Manual, Section 9.3. + */ + + for (irq = 0; irq < 4; irq++) + openpic_config(dev, irq, INTR_TRIGGER_LEVEL, INTR_POLARITY_LOW); + for (irq = 4; irq < 124; irq++) + openpic_config(dev, irq, INTR_TRIGGER_EDGE, INTR_POLARITY_LOW); + + return (0); +} + +static void +openpic_cpcht_config(device_t dev, u_int irq, enum intr_trigger trig, + enum intr_polarity pol) +{ + struct openpic_cpcht_softc *sc; + uint32_t ht_irq; + + /* + * The interrupt settings for the MPIC are completely determined + * by the internal wiring in the northbridge. Real changes to these + * settings need to be negotiated with the remote IO-APIC on the HT + * link. + */ + + sc = device_get_softc(dev); + + if (cpcht_irqmap != NULL && irq < 128 && + cpcht_irqmap[irq].ht_base > 0 && !cpcht_irqmap[irq].edge) { + mtx_lock_spin(&sc->sc_ht_mtx); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Sun May 16 15:21:13 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5DB7C1065677; Sun, 16 May 2010 15:21:13 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4CB7B8FC15; Sun, 16 May 2010 15:21:13 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GFLDXg038740; Sun, 16 May 2010 15:21:13 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GFLDu5038738; Sun, 16 May 2010 15:21:13 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201005161521.o4GFLDu5038738@svn.freebsd.org> From: Nathan Whitehorn Date: Sun, 16 May 2010 15:21:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208150 - head/sys/powerpc/cpufreq X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 15:21:13 -0000 Author: nwhitehorn Date: Sun May 16 15:21:13 2010 New Revision: 208150 URL: http://svn.freebsd.org/changeset/base/208150 Log: On SMP G5 systems, sometimes the power-mode-data property is only found on CPU 0, so look there if it is not otherwise available. Modified: head/sys/powerpc/cpufreq/pcr.c Modified: head/sys/powerpc/cpufreq/pcr.c ============================================================================== --- head/sys/powerpc/cpufreq/pcr.c Sun May 16 15:18:25 2010 (r208149) +++ head/sys/powerpc/cpufreq/pcr.c Sun May 16 15:21:13 2010 (r208150) @@ -202,6 +202,11 @@ pcr_attach(device_t dev) return (ENXIO); } + if (OF_getproplen(cpu, "power-mode-data") <= 0) { + /* Use the first CPU's node */ + cpu = OF_child(OF_parent(cpu)); + } + /* * Collect the PCR values for each mode from the device tree. * These include bus timing information, and so cannot be From owner-svn-src-all@FreeBSD.ORG Sun May 16 15:57:00 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5A332106566C; Sun, 16 May 2010 15:57:00 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 47BA98FC14; Sun, 16 May 2010 15:57:00 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GFv0nB046666; Sun, 16 May 2010 15:57:00 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GFv0Lf046659; Sun, 16 May 2010 15:57:00 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201005161557.o4GFv0Lf046659@svn.freebsd.org> From: Nathan Whitehorn Date: Sun, 16 May 2010 15:57:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208152 - in head/sys: dev/ofw powerpc/aim powerpc/ofw X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 15:57:00 -0000 Author: nwhitehorn Date: Sun May 16 15:56:59 2010 New Revision: 208152 URL: http://svn.freebsd.org/changeset/base/208152 Log: On PowerMac11,2 and (presumably) PowerMac12,1, we need to quiesce the firmware in order to take over control of the SMU. Without doing this, the firmware background process doing fan control will run amok as we take over the system and crash the management chip. This is limited to these two machines because our kernel is heavily dependent on firmware accesses, and so quiescing firmware can cause nasty problems. Modified: head/sys/dev/ofw/ofw_if.m head/sys/dev/ofw/ofw_standard.c head/sys/dev/ofw/openfirm.c head/sys/dev/ofw/openfirm.h head/sys/powerpc/aim/ofw_machdep.c head/sys/powerpc/ofw/ofw_real.c Modified: head/sys/dev/ofw/ofw_if.m ============================================================================== --- head/sys/dev/ofw/ofw_if.m Sun May 16 15:22:42 2010 (r208151) +++ head/sys/dev/ofw/ofw_if.m Sun May 16 15:56:59 2010 (r208152) @@ -340,6 +340,13 @@ METHOD void release { # Commands for returning control to the firmware /** + * @brief Turn off firmware background activities + */ +METHOD void quiesce { + ofw_t _ofw; +}; + +/** * @brief Temporarily return control to firmware. */ METHOD void enter { Modified: head/sys/dev/ofw/ofw_standard.c ============================================================================== --- head/sys/dev/ofw/ofw_standard.c Sun May 16 15:22:42 2010 (r208151) +++ head/sys/dev/ofw/ofw_standard.c Sun May 16 15:56:59 2010 (r208152) @@ -105,6 +105,7 @@ static ssize_t ofw_std_write(ofw_t ofw, static int ofw_std_seek(ofw_t ofw, ihandle_t instance, uint64_t pos); static caddr_t ofw_std_claim(ofw_t ofw, void *virt, size_t size, u_int align); static void ofw_std_release(ofw_t ofw, void *virt, size_t size); +static void ofw_std_quiesce(ofw_t ofw); static void ofw_std_enter(ofw_t ofw); static void ofw_std_exit(ofw_t ofw); @@ -133,6 +134,7 @@ static ofw_method_t ofw_std_methods[] = OFWMETHOD(ofw_seek, ofw_std_seek), OFWMETHOD(ofw_claim, ofw_std_claim), OFWMETHOD(ofw_release, ofw_std_release), + OFWMETHOD(ofw_quiesce, ofw_std_quiesce), OFWMETHOD(ofw_enter, ofw_std_enter), OFWMETHOD(ofw_exit, ofw_std_exit), @@ -730,6 +732,23 @@ ofw_std_release(ofw_t ofw, void *virt, s * Control transfer functions */ +/* Turn off OF background tasks */ +static void +ofw_std_quiesce(ofw_t ofw) +{ + struct { + cell_t name; + cell_t nargs; + cell_t nreturns; + } args = { + (cell_t)"quiesce", + 0, + 0, + }; + + openfirmware(&args); +} + /* Suspend and drop back to the Open Firmware interface. */ static void ofw_std_enter(ofw_t ofw) Modified: head/sys/dev/ofw/openfirm.c ============================================================================== --- head/sys/dev/ofw/openfirm.c Sun May 16 15:22:42 2010 (r208151) +++ head/sys/dev/ofw/openfirm.c Sun May 16 15:56:59 2010 (r208152) @@ -409,6 +409,15 @@ OF_release(void *virt, size_t size) * Control transfer functions */ +/* Turn off OF background tasks */ +void +OF_quiesce() +{ + + OFW_QUIESCE(ofw_obj); +} + + /* Suspend and drop back to the Open Firmware interface. */ void OF_enter() Modified: head/sys/dev/ofw/openfirm.h ============================================================================== --- head/sys/dev/ofw/openfirm.h Sun May 16 15:22:42 2010 (r208151) +++ head/sys/dev/ofw/openfirm.h Sun May 16 15:56:59 2010 (r208152) @@ -133,6 +133,7 @@ void *OF_claim(void *virtrequest, size_ void OF_release(void *virt, size_t size); /* Control transfer functions */ +void OF_quiesce(void); void OF_enter(void); void OF_exit(void) __attribute__((noreturn)); Modified: head/sys/powerpc/aim/ofw_machdep.c ============================================================================== --- head/sys/powerpc/aim/ofw_machdep.c Sun May 16 15:22:42 2010 (r208151) +++ head/sys/powerpc/aim/ofw_machdep.c Sun May 16 15:56:59 2010 (r208152) @@ -281,6 +281,8 @@ OF_initial_setup(void *fdt_ptr, void *ju boolean_t OF_bootstrap() { + char model[32]; + phandle_t rootnode; boolean_t status = FALSE; mtx_init(&ofw_mutex, "open firmware", NULL, MTX_DEF); @@ -295,6 +297,17 @@ OF_bootstrap() return status; OF_init(openfirmware); + + /* + * On some machines, we need to quiesce OF to turn off + * background processes. + */ + rootnode = OF_finddevice("/"); + if (OF_getprop(rootnode, "model", model, sizeof(model)) > 0) { + if (strcmp(model, "PowerMac11,2") == 0 || + strcmp(model, "PowerMac12,1") == 0) + OF_quiesce(); + } } else { status = OF_install(OFW_FDT, 0); Modified: head/sys/powerpc/ofw/ofw_real.c ============================================================================== --- head/sys/powerpc/ofw/ofw_real.c Sun May 16 15:22:42 2010 (r208151) +++ head/sys/powerpc/ofw/ofw_real.c Sun May 16 15:56:59 2010 (r208152) @@ -106,6 +106,7 @@ static ssize_t ofw_real_write(ofw_t, iha static int ofw_real_seek(ofw_t, ihandle_t instance, u_int64_t pos); static caddr_t ofw_real_claim(ofw_t, void *virt, size_t size, u_int align); static void ofw_real_release(ofw_t, void *virt, size_t size); +static void ofw_real_quiesce(ofw_t); static void ofw_real_enter(ofw_t); static void ofw_real_exit(ofw_t); @@ -133,6 +134,7 @@ static ofw_method_t ofw_real_methods[] = OFWMETHOD(ofw_seek, ofw_real_seek), OFWMETHOD(ofw_claim, ofw_real_claim), OFWMETHOD(ofw_release, ofw_real_release), + OFWMETHOD(ofw_quiesce, ofw_real_quiesce), OFWMETHOD(ofw_enter, ofw_real_enter), OFWMETHOD(ofw_exit, ofw_real_exit), @@ -889,6 +891,27 @@ ofw_real_release(ofw_t ofw, void *virt, * Control transfer functions */ +/* Turn off OF background tasks */ +static void +ofw_real_quiesce(ofw_t ofw) +{ + vm_offset_t argsptr; + struct { + cell_t name; + cell_t nargs; + cell_t nreturns; + } args; + + args.name = (cell_t)(uintptr_t)"quiesce"; + args.nargs = 0; + args.nreturns = 0; + + ofw_real_start(); + argsptr = ofw_real_map(&args, sizeof(args)); + openfirmware((void *)argsptr); + ofw_real_stop(); +} + /* Suspend and drop back to the Open Firmware interface. */ static void ofw_real_enter(ofw_t ofw) From owner-svn-src-all@FreeBSD.ORG Sun May 16 16:33:38 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7D6E8106564A; Sun, 16 May 2010 16:33:38 +0000 (UTC) (envelope-from jh@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 69D838FC14; Sun, 16 May 2010 16:33:38 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GGXcY8054664; Sun, 16 May 2010 16:33:38 GMT (envelope-from jh@svn.freebsd.org) Received: (from jh@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GGXcNE054662; Sun, 16 May 2010 16:33:38 GMT (envelope-from jh@svn.freebsd.org) Message-Id: <201005161633.o4GGXcNE054662@svn.freebsd.org> From: Jaakko Heinonen Date: Sun, 16 May 2010 16:33:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208153 - stable/7/sbin/restore X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 16:33:38 -0000 Author: jh Date: Sun May 16 16:33:38 2010 New Revision: 208153 URL: http://svn.freebsd.org/changeset/base/208153 Log: MFC r203157, r203816: Handle short reads when the -P option is used and remove some dead code. PR: bin/121502 Modified: stable/7/sbin/restore/tape.c Directory Properties: stable/7/sbin/restore/ (props changed) Modified: stable/7/sbin/restore/tape.c ============================================================================== --- stable/7/sbin/restore/tape.c Sun May 16 15:56:59 2010 (r208152) +++ stable/7/sbin/restore/tape.c Sun May 16 16:33:38 2010 (r208153) @@ -227,7 +227,7 @@ setup(void) volno = 1; setdumpnum(); FLUSHTAPEBUF(); - if (!pipein && !bflag) + if (!pipein && !pipecmdin && !bflag) findtapeblksize(); if (gethead(&spcl) == FAIL) { fprintf(stderr, "Tape is not a dump tape\n"); @@ -333,10 +333,6 @@ getvol(long nextvol) } if (volno == 1) return; - if (pipecmdin) { - closemt(); - goto getpipecmdhdr; - } goto gethdr; } again: @@ -400,7 +396,6 @@ again: if (pipecmdin) { char volno[sizeof("2147483647")]; -getpipecmdhdr: (void)sprintf(volno, "%d", newvol); if (setenv("RESTORE_VOLUME", volno, 1) == -1) { fprintf(stderr, "Cannot set $RESTORE_VOLUME: %s\n", @@ -1204,17 +1199,17 @@ getmore: * Check for mid-tape short read error. * If found, skip rest of buffer and start with the next. */ - if (!pipein && numtrec < ntrec && i > 0) { + if (!pipein && !pipecmdin && numtrec < ntrec && i > 0) { dprintf(stdout, "mid-media short read error.\n"); numtrec = ntrec; } /* * Handle partial block read. */ - if (pipein && i == 0 && rd > 0) + if ((pipein || pipecmdin) && i == 0 && rd > 0) i = rd; else if (i > 0 && i != ntrec * TP_BSIZE) { - if (pipein) { + if (pipein || pipecmdin) { rd += i; cnt -= i; if (cnt > 0) From owner-svn-src-all@FreeBSD.ORG Sun May 16 16:42:53 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9038A106566C; Sun, 16 May 2010 16:42:53 +0000 (UTC) (envelope-from rrs@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7DFF48FC0A; Sun, 16 May 2010 16:42:53 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GGgrA3056776; Sun, 16 May 2010 16:42:53 GMT (envelope-from rrs@svn.freebsd.org) Received: (from rrs@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GGgrGD056771; Sun, 16 May 2010 16:42:53 GMT (envelope-from rrs@svn.freebsd.org) Message-Id: <201005161642.o4GGgrGD056771@svn.freebsd.org> From: Randall Stewart Date: Sun, 16 May 2010 16:42:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208154 - stable/8/sys/netinet X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 16:42:53 -0000 Author: rrs Date: Sun May 16 16:42:52 2010 New Revision: 208154 URL: http://svn.freebsd.org/changeset/base/208154 Log: MFC of 207924: This fixes a bug with the one-2-one model socket when a user sets up a socket to a server sends data and closes the socket before the server has called accept(). It used to NOT work at all. Now we add a flag to the assoc and defer assoc cleanup so that the accept will succeed Modified: stable/8/sys/netinet/sctp_constants.h stable/8/sys/netinet/sctp_input.c stable/8/sys/netinet/sctp_pcb.c stable/8/sys/netinet/sctp_usrreq.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/netinet/sctp_constants.h ============================================================================== --- stable/8/sys/netinet/sctp_constants.h Sun May 16 16:33:38 2010 (r208153) +++ stable/8/sys/netinet/sctp_constants.h Sun May 16 16:42:52 2010 (r208154) @@ -498,6 +498,7 @@ __FBSDID("$FreeBSD$"); #define SCTP_STATE_ABOUT_TO_BE_FREED 0x0200 #define SCTP_STATE_PARTIAL_MSG_LEFT 0x0400 #define SCTP_STATE_WAS_ABORTED 0x0800 +#define SCTP_STATE_IN_ACCEPT_QUEUE 0x1000 #define SCTP_STATE_MASK 0x007f #define SCTP_GET_STATE(asoc) ((asoc)->state & SCTP_STATE_MASK) Modified: stable/8/sys/netinet/sctp_input.c ============================================================================== --- stable/8/sys/netinet/sctp_input.c Sun May 16 16:33:38 2010 (r208153) +++ stable/8/sys/netinet/sctp_input.c Sun May 16 16:42:52 2010 (r208154) @@ -2743,6 +2743,14 @@ sctp_handle_cookie_echo(struct mbuf *m, * Now we must move it from one hash table to * another and get the tcb in the right place. */ + + /* + * This is where the one-2-one socket is put into + * the accept state waiting for the accept! + */ + if (*stcb) { + (*stcb)->asoc.state |= SCTP_STATE_IN_ACCEPT_QUEUE; + } sctp_move_pcb_and_assoc(*inp_p, inp, *stcb); atomic_add_int(&(*stcb)->asoc.refcnt, 1); @@ -4859,8 +4867,8 @@ process_control_chunks: } /* * First are we accepting? We do this again here - * sincen it is possible that a previous endpoint - * WAS listening responded to a INIT-ACK and then + * since it is possible that a previous endpoint WAS + * listening responded to a INIT-ACK and then * closed. We opened and bound.. and are now no * longer listening. */ Modified: stable/8/sys/netinet/sctp_pcb.c ============================================================================== --- stable/8/sys/netinet/sctp_pcb.c Sun May 16 16:33:38 2010 (r208153) +++ stable/8/sys/netinet/sctp_pcb.c Sun May 16 16:42:52 2010 (r208154) @@ -4576,12 +4576,13 @@ sctp_free_assoc(struct sctp_inpcb *inp, stcb->block_entry = NULL; } } - if (stcb->asoc.refcnt) { + if ((stcb->asoc.refcnt) || (stcb->asoc.state & SCTP_STATE_IN_ACCEPT_QUEUE)) { /* - * reader or writer in the way, we have hopefully given him - * something to chew on above. + * Someone holds a reference OR the socket is unaccepted + * yet. */ - sctp_timer_start(SCTP_TIMER_TYPE_ASOCKILL, inp, stcb, NULL); + if (stcb->asoc.refcnt) + sctp_timer_start(SCTP_TIMER_TYPE_ASOCKILL, inp, stcb, NULL); SCTP_TCB_UNLOCK(stcb); if ((inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) || (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE)) Modified: stable/8/sys/netinet/sctp_usrreq.c ============================================================================== --- stable/8/sys/netinet/sctp_usrreq.c Sun May 16 16:33:38 2010 (r208153) +++ stable/8/sys/netinet/sctp_usrreq.c Sun May 16 16:42:52 2010 (r208154) @@ -1510,7 +1510,7 @@ sctp_do_connect_x(struct socket *so, str added = sctp_connectx_helper_add(stcb, sa, (totaddr - 1), &error); /* Fill in the return id */ if (error) { - (void)sctp_free_assoc(inp, stcb, SCTP_PCBFREE_FORCE, SCTP_FROM_SCTP_USRREQ + SCTP_LOC_12); + (void)sctp_free_assoc(inp, stcb, SCTP_PCBFREE_FORCE, SCTP_FROM_SCTP_USRREQ + SCTP_LOC_6); goto out_now; } a_id = (sctp_assoc_t *) optval; @@ -4670,6 +4670,7 @@ sctp_accept(struct socket *so, struct so SCTP_TCB_LOCK(stcb); SCTP_INP_RUNLOCK(inp); store = stcb->asoc.primary_destination->ro._l_addr; + stcb->asoc.state &= ~SCTP_STATE_IN_ACCEPT_QUEUE; SCTP_TCB_UNLOCK(stcb); switch (store.sa.sa_family) { case AF_INET: @@ -4736,6 +4737,10 @@ sctp_accept(struct socket *so, struct so } SCTP_INP_WUNLOCK(inp); } + if (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) { + SCTP_TCB_LOCK(stcb); + sctp_free_assoc(inp, stcb, SCTP_NORMAL_PROC, SCTP_FROM_SCTP_USRREQ + SCTP_LOC_7); + } return (0); } From owner-svn-src-all@FreeBSD.ORG Sun May 16 16:45:51 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 536681065670; Sun, 16 May 2010 16:45:51 +0000 (UTC) (envelope-from rrs@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 41A568FC17; Sun, 16 May 2010 16:45:51 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GGjnL7057506; Sun, 16 May 2010 16:45:49 GMT (envelope-from rrs@svn.freebsd.org) Received: (from rrs@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GGjnID057504; Sun, 16 May 2010 16:45:49 GMT (envelope-from rrs@svn.freebsd.org) Message-Id: <201005161645.o4GGjnID057504@svn.freebsd.org> From: Randall Stewart Date: Sun, 16 May 2010 16:45:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208155 - stable/8/sys/netinet X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 16:45:51 -0000 Author: rrs Date: Sun May 16 16:45:49 2010 New Revision: 208155 URL: http://svn.freebsd.org/changeset/base/208155 Log: MFC of 207963 This fixes PR-SCTP issues: - Slide the map at the proper place. - Mark the bits in the nr_array ONLY if there is no marking. - When generating a FWD-TSN we allow us to skip past ACKED chunks too. Modified: stable/8/sys/netinet/sctp_indata.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/netinet/sctp_indata.c ============================================================================== --- stable/8/sys/netinet/sctp_indata.c Sun May 16 16:42:52 2010 (r208154) +++ stable/8/sys/netinet/sctp_indata.c Sun May 16 16:45:49 2010 (r208155) @@ -3694,6 +3694,7 @@ sctp_try_advance_peer_ack_point(struct s tp1 = TAILQ_FIRST(&asoc->sent_queue); while (tp1) { if (tp1->sent != SCTP_FORWARD_TSN_SKIP && + tp1->sent != SCTP_DATAGRAM_ACKED && tp1->sent != SCTP_DATAGRAM_RESEND) { /* no chance to advance, out of here */ break; @@ -5540,8 +5541,8 @@ sctp_handle_forward_tsn(struct sctp_tcb * report where we are. */ struct sctp_association *asoc; - uint32_t new_cum_tsn, tsn, gap; - unsigned int i, fwd_sz, cumack_set_flag, m_size, fnd = 0; + uint32_t new_cum_tsn, gap; + unsigned int i, fwd_sz, cumack_set_flag, m_size; uint32_t str_seq; struct sctp_stream_in *strm; struct sctp_tmit_chunk *chk, *at; @@ -5565,15 +5566,6 @@ sctp_handle_forward_tsn(struct sctp_tcb /* Already got there ... */ return; } - if (compare_with_wrap(new_cum_tsn, asoc->highest_tsn_inside_map, - MAX_TSN)) { - asoc->highest_tsn_inside_map = new_cum_tsn; - - } - if (compare_with_wrap(new_cum_tsn, asoc->highest_tsn_inside_nr_map, - MAX_TSN)) { - asoc->highest_tsn_inside_nr_map = new_cum_tsn; - } /* * now we know the new TSN is more advanced, let's find the actual * gap @@ -5628,34 +5620,14 @@ sctp_handle_forward_tsn(struct sctp_tcb } else { SCTP_TCB_LOCK_ASSERT(stcb); for (i = 0; i <= gap; i++) { - SCTP_UNSET_TSN_PRESENT(asoc->mapping_array, i); - SCTP_SET_TSN_PRESENT(asoc->nr_mapping_array, i); - /* FIX ME add something to set up highest TSN in map */ - } - if (compare_with_wrap(new_cum_tsn, asoc->highest_tsn_inside_nr_map, MAX_TSN)) { - asoc->highest_tsn_inside_nr_map = new_cum_tsn; - } - if (compare_with_wrap(new_cum_tsn, asoc->highest_tsn_inside_map, MAX_TSN) || - new_cum_tsn == asoc->highest_tsn_inside_map) { - /* We must back down to see what the new highest is */ - for (tsn = new_cum_tsn; (compare_with_wrap(tsn, asoc->mapping_array_base_tsn, MAX_TSN) || - (tsn == asoc->mapping_array_base_tsn)); tsn--) { - SCTP_CALC_TSN_TO_GAP(gap, tsn, asoc->mapping_array_base_tsn); - if (SCTP_IS_TSN_PRESENT(asoc->mapping_array, gap)) { - asoc->highest_tsn_inside_map = tsn; - fnd = 1; - break; + if (!SCTP_IS_TSN_PRESENT(asoc->mapping_array, i) && + !SCTP_IS_TSN_PRESENT(asoc->nr_mapping_array, i)) { + SCTP_SET_TSN_PRESENT(asoc->nr_mapping_array, i); + if (compare_with_wrap(asoc->mapping_array_base_tsn + i, asoc->highest_tsn_inside_nr_map, MAX_TSN)) { + asoc->highest_tsn_inside_nr_map = asoc->mapping_array_base_tsn + i; } } - if (!fnd) { - asoc->highest_tsn_inside_map = asoc->mapping_array_base_tsn - 1; - } } - /* - * Now after marking all, slide thing forward but no sack - * please. - */ - sctp_slide_mapping_arrays(stcb); } /*************************************************************/ /* 2. Clear up re-assembly queue */ @@ -5826,6 +5798,11 @@ sctp_handle_forward_tsn(struct sctp_tcb } SCTP_INP_READ_UNLOCK(stcb->sctp_ep); } + /* + * Now slide thing forward. + */ + sctp_slide_mapping_arrays(stcb); + if (TAILQ_FIRST(&asoc->reasmqueue)) { /* now lets kick out and check for more fragmented delivery */ /* sa_ignore NO_NULL_CHK */ From owner-svn-src-all@FreeBSD.ORG Sun May 16 16:50:34 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 34E52106564A; Sun, 16 May 2010 16:50:34 +0000 (UTC) (envelope-from rrs@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 086188FC16; Sun, 16 May 2010 16:50:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GGoXxq058578; Sun, 16 May 2010 16:50:33 GMT (envelope-from rrs@svn.freebsd.org) Received: (from rrs@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GGoXhs058575; Sun, 16 May 2010 16:50:33 GMT (envelope-from rrs@svn.freebsd.org) Message-Id: <201005161650.o4GGoXhs058575@svn.freebsd.org> From: Randall Stewart Date: Sun, 16 May 2010 16:50:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208156 - stable/8/sys/netinet X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 16:50:34 -0000 Author: rrs Date: Sun May 16 16:50:33 2010 New Revision: 208156 URL: http://svn.freebsd.org/changeset/base/208156 Log: MFC 207966 (for Michael) Get rid of unused constants. Modified: stable/8/sys/netinet/sctp_constants.h stable/8/sys/netinet/sctp_indata.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/netinet/sctp_constants.h ============================================================================== --- stable/8/sys/netinet/sctp_constants.h Sun May 16 16:45:49 2010 (r208155) +++ stable/8/sys/netinet/sctp_constants.h Sun May 16 16:50:33 2010 (r208156) @@ -361,14 +361,6 @@ __FBSDID("$FreeBSD$"); * hit this value) */ #define SCTP_DATAGRAM_RESEND 4 #define SCTP_DATAGRAM_ACKED 10010 -/* EY - * If a tsn is nr-gapped, its first tagged as NR_MARKED and then NR_ACKED - * When yet another nr-sack is received, if a particular TSN's sent tag - * is observed to be NR_ACKED after gap-ack info is processed, this implies - * that particular TSN is reneged -*/ -#define SCTP_DATAGRAM_NR_ACKED 10020 -#define SCTP_DATAGRAM_NR_MARKED 20005 #define SCTP_DATAGRAM_MARKED 20010 #define SCTP_FORWARD_TSN_SKIP 30010 Modified: stable/8/sys/netinet/sctp_indata.c ============================================================================== --- stable/8/sys/netinet/sctp_indata.c Sun May 16 16:45:49 2010 (r208155) +++ stable/8/sys/netinet/sctp_indata.c Sun May 16 16:50:33 2010 (r208156) @@ -4917,14 +4917,6 @@ done_with_it: if (tp1 != NULL) { /* Peer revoked all dg's marked or acked */ TAILQ_FOREACH(tp1, &asoc->sent_queue, sctp_next) { - /* - * EY- maybe check only if it is nr_acked - * nr_marked may not be possible - */ - if ((tp1->sent == SCTP_DATAGRAM_NR_ACKED) || - (tp1->sent == SCTP_DATAGRAM_NR_MARKED)) { - continue; - } if (tp1->sent == SCTP_DATAGRAM_ACKED) { tp1->sent = SCTP_DATAGRAM_SENT; if (SCTP_BASE_SYSCTL(sctp_logging_level) & SCTP_FLIGHT_LOGGING_ENABLE) { From owner-svn-src-all@FreeBSD.ORG Sun May 16 16:51:44 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DC83C1065673; Sun, 16 May 2010 16:51:44 +0000 (UTC) (envelope-from rrs@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 923B18FC1B; Sun, 16 May 2010 16:51:44 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GGpiLx058898; Sun, 16 May 2010 16:51:44 GMT (envelope-from rrs@svn.freebsd.org) Received: (from rrs@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GGpiaL058895; Sun, 16 May 2010 16:51:44 GMT (envelope-from rrs@svn.freebsd.org) Message-Id: <201005161651.o4GGpiaL058895@svn.freebsd.org> From: Randall Stewart Date: Sun, 16 May 2010 16:51:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208157 - stable/8/sys/netinet X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 16:51:45 -0000 Author: rrs Date: Sun May 16 16:51:44 2010 New Revision: 208157 URL: http://svn.freebsd.org/changeset/base/208157 Log: MFC 207983 More PR-SCTP bugs: - Make sure that when you kick the streams you add correctly using a 16 bit unsigned. - Make sure when sending out you allow FWD-TSN to skip over and list the ACKED chunks in the stream/seq list (so the rcv will kick the stream) Modified: stable/8/sys/netinet/sctp_indata.c stable/8/sys/netinet/sctp_output.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/netinet/sctp_indata.c ============================================================================== --- stable/8/sys/netinet/sctp_indata.c Sun May 16 16:50:33 2010 (r208156) +++ stable/8/sys/netinet/sctp_indata.c Sun May 16 16:51:44 2010 (r208157) @@ -3750,7 +3750,8 @@ sctp_try_advance_peer_ack_point(struct s * the chunk, advance our peer ack point and we can check * the next chunk. */ - if (tp1->sent == SCTP_FORWARD_TSN_SKIP) { + if ((tp1->sent == SCTP_FORWARD_TSN_SKIP) || + (tp1->sent == SCTP_DATAGRAM_ACKED)) { /* advance PeerAckPoint goes forward */ if (compare_with_wrap(tp1->rec.data.TSN_seq, asoc->advanced_peer_ack_point, @@ -5351,7 +5352,7 @@ sctp_kick_prsctp_reorder_queue(struct sc { struct sctp_queued_to_read *ctl, *nctl; struct sctp_association *asoc; - int tt; + uint16_t tt; asoc = &stcb->asoc; tt = strmin->last_sequence_delivered; Modified: stable/8/sys/netinet/sctp_output.c ============================================================================== --- stable/8/sys/netinet/sctp_output.c Sun May 16 16:50:33 2010 (r208156) +++ stable/8/sys/netinet/sctp_output.c Sun May 16 16:51:44 2010 (r208157) @@ -9707,7 +9707,6 @@ send_forward_tsn(struct sctp_tcb *stcb, chk->rec.chunk_id.can_take_data = 0; chk->asoc = asoc; chk->whoTo = NULL; - chk->data = sctp_get_mbuf_for_msg(MCLBYTES, 0, M_DONTWAIT, 1, MT_DATA); if (chk->data == NULL) { sctp_free_a_chunk(stcb, chk); @@ -9734,7 +9733,8 @@ sctp_fill_in_rest: unsigned int cnt_of_skipped = 0; TAILQ_FOREACH(at, &asoc->sent_queue, sctp_next) { - if (at->sent != SCTP_FORWARD_TSN_SKIP) { + if ((at->sent != SCTP_FORWARD_TSN_SKIP) && + (at->sent != SCTP_DATAGRAM_ACKED)) { /* no more to look at */ break; } From owner-svn-src-all@FreeBSD.ORG Sun May 16 16:52:57 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 302F81065675; Sun, 16 May 2010 16:52:57 +0000 (UTC) (envelope-from rrs@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1EFE28FC0A; Sun, 16 May 2010 16:52:57 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GGqv84059214; Sun, 16 May 2010 16:52:57 GMT (envelope-from rrs@svn.freebsd.org) Received: (from rrs@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GGqulW059212; Sun, 16 May 2010 16:52:56 GMT (envelope-from rrs@svn.freebsd.org) Message-Id: <201005161652.o4GGqulW059212@svn.freebsd.org> From: Randall Stewart Date: Sun, 16 May 2010 16:52:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208158 - stable/8/sys/netinet X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 16:52:57 -0000 Author: rrs Date: Sun May 16 16:52:56 2010 New Revision: 208158 URL: http://svn.freebsd.org/changeset/base/208158 Log: MFC 207985 Fix an old long time bug in generating a fwd-tsn. This would appear when greater than the size of mbuf TSN's would need to be skipped. Modified: stable/8/sys/netinet/sctp_output.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/netinet/sctp_output.c ============================================================================== --- stable/8/sys/netinet/sctp_output.c Sun May 16 16:51:44 2010 (r208157) +++ stable/8/sys/netinet/sctp_output.c Sun May 16 16:52:56 2010 (r208158) @@ -9775,9 +9775,8 @@ sctp_fill_in_rest: 0xff, 0xff, cnt_of_space, space_needed); } - cnt_of_skipped = (cnt_of_space - - ((sizeof(struct sctp_forward_tsn_chunk)) / - sizeof(struct sctp_strseq))); + cnt_of_skipped = cnt_of_space - sizeof(struct sctp_forward_tsn_chunk); + cnt_of_skipped /= sizeof(struct sctp_strseq); /*- * Go through and find the TSN that will be the one * we report. From owner-svn-src-all@FreeBSD.ORG Sun May 16 16:54:05 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C6B04106566C; Sun, 16 May 2010 16:54:05 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B5FFB8FC0C; Sun, 16 May 2010 16:54:05 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GGs5FE059513; Sun, 16 May 2010 16:54:05 GMT (envelope-from alc@svn.freebsd.org) Received: (from alc@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GGs56l059511; Sun, 16 May 2010 16:54:05 GMT (envelope-from alc@svn.freebsd.org) Message-Id: <201005161654.o4GGs56l059511@svn.freebsd.org> From: Alan Cox Date: Sun, 16 May 2010 16:54:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208159 - head/sys/vm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 16:54:05 -0000 Author: alc Date: Sun May 16 16:54:05 2010 New Revision: 208159 URL: http://svn.freebsd.org/changeset/base/208159 Log: Add a comment about the proper use of vm_object_page_remove(). MFC after: 1 week Modified: head/sys/vm/vm_object.c Modified: head/sys/vm/vm_object.c ============================================================================== --- head/sys/vm/vm_object.c Sun May 16 16:52:56 2010 (r208158) +++ head/sys/vm/vm_object.c Sun May 16 16:54:05 2010 (r208159) @@ -1906,7 +1906,8 @@ vm_object_collapse(vm_object_t object) * that contain managed pages. There are two exceptions. First, * it may be performed on the kernel and kmem objects. Second, * it may be used by msync(..., MS_INVALIDATE) to invalidate - * device-backed pages. + * device-backed pages. In both of these cases, "clean_only" + * must be FALSE. * * The object must be locked. */ From owner-svn-src-all@FreeBSD.ORG Sun May 16 17:03:56 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 612081065670; Sun, 16 May 2010 17:03:56 +0000 (UTC) (envelope-from rrs@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4ED8A8FC16; Sun, 16 May 2010 17:03:56 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GH3ufx061720; Sun, 16 May 2010 17:03:56 GMT (envelope-from rrs@svn.freebsd.org) Received: (from rrs@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GH3ug7061710; Sun, 16 May 2010 17:03:56 GMT (envelope-from rrs@svn.freebsd.org) Message-Id: <201005161703.o4GH3ug7061710@svn.freebsd.org> From: Randall Stewart Date: Sun, 16 May 2010 17:03:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208160 - head/sys/netinet X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 17:03:56 -0000 Author: rrs Date: Sun May 16 17:03:56 2010 New Revision: 208160 URL: http://svn.freebsd.org/changeset/base/208160 Log: This adds back the Iterator to the sctp code base. We now properly have ONE thread that services all VNET's. Also we purge out the old timer based iterator code which had multiple LOR's and other issues. MFC after: 3 days Modified: head/sys/netinet/sctp_bsd_addr.c head/sys/netinet/sctp_bsd_addr.h head/sys/netinet/sctp_constants.h head/sys/netinet/sctp_lock_bsd.h head/sys/netinet/sctp_pcb.c head/sys/netinet/sctp_pcb.h head/sys/netinet/sctp_structs.h head/sys/netinet/sctp_timer.c head/sys/netinet/sctputil.c Modified: head/sys/netinet/sctp_bsd_addr.c ============================================================================== --- head/sys/netinet/sctp_bsd_addr.c Sun May 16 16:54:05 2010 (r208159) +++ head/sys/netinet/sctp_bsd_addr.c Sun May 16 17:03:56 2010 (r208160) @@ -49,16 +49,6 @@ __FBSDID("$FreeBSD$"); #include /* Declare all of our malloc named types */ - -/* Note to Michael/Peter for mac-os, - * I think mac has this too since I - * do see the M_PCB type, so I - * will also put in the mac file the - * MALLOC_DECLARE. If this does not - * work for mac uncomment the defines for - * the strings that we use in Panda, I put - * them in comments in the mac-os file. - */ MALLOC_DEFINE(SCTP_M_MAP, "sctp_map", "sctp asoc map descriptor"); MALLOC_DEFINE(SCTP_M_STRMI, "sctp_stri", "sctp stream in array"); MALLOC_DEFINE(SCTP_M_STRMO, "sctp_stro", "sctp stream out array"); @@ -79,46 +69,77 @@ MALLOC_DEFINE(SCTP_M_MVRF, "sctp_mvrf", MALLOC_DEFINE(SCTP_M_ITER, "sctp_iter", "sctp iterator control"); MALLOC_DEFINE(SCTP_M_SOCKOPT, "sctp_socko", "sctp socket option"); -#if defined(SCTP_USE_THREAD_BASED_ITERATOR) +/* Global NON-VNET structure that controls the iterator */ +struct iterator_control sctp_it_ctl; +static int __sctp_thread_based_iterator_started = 0; + + +static void +sctp_cleanup_itqueue(void) +{ + struct sctp_iterator *it; + + while ((it = TAILQ_FIRST(&sctp_it_ctl.iteratorhead)) != NULL) { + if (it->function_atend != NULL) { + (*it->function_atend) (it->pointer, it->val); + } + TAILQ_REMOVE(&sctp_it_ctl.iteratorhead, it, sctp_nxt_itr); + SCTP_FREE(it, SCTP_M_ITER); + } +} + + void sctp_wakeup_iterator(void) { - wakeup(&SCTP_BASE_INFO(iterator_running)); + wakeup(&sctp_it_ctl.iterator_running); } static void sctp_iterator_thread(void *v) { - CURVNET_SET((struct vnet *)v); SCTP_IPI_ITERATOR_WQ_LOCK(); - SCTP_BASE_INFO(iterator_running) = 0; while (1) { - msleep(&SCTP_BASE_INFO(iterator_running), - &SCTP_BASE_INFO(ipi_iterator_wq_mtx), + msleep(&sctp_it_ctl.iterator_running, + &sctp_it_ctl.ipi_iterator_wq_mtx, 0, "waiting_for_work", 0); - if (SCTP_BASE_INFO(threads_must_exit)) { + if (sctp_it_ctl.iterator_flags & SCTP_ITERATOR_MUST_EXIT) { SCTP_IPI_ITERATOR_WQ_DESTROY(); + SCTP_ITERATOR_LOCK_DESTROY(); + sctp_cleanup_itqueue(); + __sctp_thread_based_iterator_started = 0; kthread_exit(); } sctp_iterator_worker(); } - CURVNET_RESTORE(); } void sctp_startup_iterator(void) { + if (__sctp_thread_based_iterator_started) { + /* You only get one */ + return; + } + /* init the iterator head */ + __sctp_thread_based_iterator_started = 1; + sctp_it_ctl.iterator_running = 0; + sctp_it_ctl.iterator_flags = 0; + sctp_it_ctl.cur_it = NULL; + SCTP_ITERATOR_LOCK_INIT(); + SCTP_IPI_ITERATOR_WQ_INIT(); + TAILQ_INIT(&sctp_it_ctl.iteratorhead); + int ret; ret = kproc_create(sctp_iterator_thread, - (void *)curvnet, - &SCTP_BASE_INFO(thread_proc), + (void *)NULL, + &sctp_it_ctl.thread_proc, RFPROC, SCTP_KTHREAD_PAGES, SCTP_KTRHEAD_NAME); } -#endif #ifdef INET6 Modified: head/sys/netinet/sctp_bsd_addr.h ============================================================================== --- head/sys/netinet/sctp_bsd_addr.h Sun May 16 16:54:05 2010 (r208159) +++ head/sys/netinet/sctp_bsd_addr.h Sun May 16 17:03:56 2010 (r208160) @@ -37,12 +37,11 @@ __FBSDID("$FreeBSD$"); #if defined(_KERNEL) || defined(__Userspace__) -#if defined(SCTP_USE_THREAD_BASED_ITERATOR) +extern struct iterator_control sctp_it_ctl; void sctp_wakeup_iterator(void); void sctp_startup_iterator(void); -#endif #ifdef INET6 void sctp_gather_internal_ifa_flags(struct sctp_ifa *ifa); Modified: head/sys/netinet/sctp_constants.h ============================================================================== --- head/sys/netinet/sctp_constants.h Sun May 16 16:54:05 2010 (r208159) +++ head/sys/netinet/sctp_constants.h Sun May 16 17:03:56 2010 (r208160) @@ -87,10 +87,6 @@ __FBSDID("$FreeBSD$"); /* #define SCTP_AUDITING_ENABLED 1 used for debug/auditing */ #define SCTP_AUDIT_SIZE 256 -/* temporary disabled since it does not work with VNET. */ -#if 0 -#define SCTP_USE_THREAD_BASED_ITERATOR 1 -#endif #define SCTP_KTRHEAD_NAME "sctp_iterator" #define SCTP_KTHREAD_PAGES 0 @@ -572,7 +568,6 @@ __FBSDID("$FreeBSD$"); #define SCTP_TIMER_TYPE_EVENTWAKE 13 #define SCTP_TIMER_TYPE_STRRESET 14 #define SCTP_TIMER_TYPE_INPKILL 15 -#define SCTP_TIMER_TYPE_ITERATOR 16 #define SCTP_TIMER_TYPE_EARLYFR 17 #define SCTP_TIMER_TYPE_ASOCKILL 18 #define SCTP_TIMER_TYPE_ADDR_WQ 19 Modified: head/sys/netinet/sctp_lock_bsd.h ============================================================================== --- head/sys/netinet/sctp_lock_bsd.h Sun May 16 16:54:05 2010 (r208159) +++ head/sys/netinet/sctp_lock_bsd.h Sun May 16 17:03:56 2010 (r208160) @@ -107,42 +107,36 @@ extern int sctp_logoff_stuff; #define SCTP_INP_INFO_WUNLOCK() rw_wunlock(&SCTP_BASE_INFO(ipi_ep_mtx)) -#define SCTP_IPI_ADDR_INIT() \ +#define SCTP_IPI_ADDR_INIT() \ rw_init(&SCTP_BASE_INFO(ipi_addr_mtx), "sctp-addr") - #define SCTP_IPI_ADDR_DESTROY() do { \ if(rw_wowned(&SCTP_BASE_INFO(ipi_addr_mtx))) { \ rw_wunlock(&SCTP_BASE_INFO(ipi_addr_mtx)); \ } \ rw_destroy(&SCTP_BASE_INFO(ipi_addr_mtx)); \ } while (0) - - - #define SCTP_IPI_ADDR_RLOCK() do { \ rw_rlock(&SCTP_BASE_INFO(ipi_addr_mtx)); \ } while (0) - #define SCTP_IPI_ADDR_WLOCK() do { \ rw_wlock(&SCTP_BASE_INFO(ipi_addr_mtx)); \ } while (0) - #define SCTP_IPI_ADDR_RUNLOCK() rw_runlock(&SCTP_BASE_INFO(ipi_addr_mtx)) #define SCTP_IPI_ADDR_WUNLOCK() rw_wunlock(&SCTP_BASE_INFO(ipi_addr_mtx)) #define SCTP_IPI_ITERATOR_WQ_INIT() \ - mtx_init(&SCTP_BASE_INFO(ipi_iterator_wq_mtx), "sctp-it-wq", "sctp_it_wq", MTX_DEF) + mtx_init(&sctp_it_ctl.ipi_iterator_wq_mtx, "sctp-it-wq", "sctp_it_wq", MTX_DEF) #define SCTP_IPI_ITERATOR_WQ_DESTROY() \ - mtx_destroy(&SCTP_BASE_INFO(ipi_iterator_wq_mtx)) + mtx_destroy(&sctp_it_ctl.ipi_iterator_wq_mtx) #define SCTP_IPI_ITERATOR_WQ_LOCK() do { \ - mtx_lock(&SCTP_BASE_INFO(ipi_iterator_wq_mtx)); \ + mtx_lock(&sctp_it_ctl.ipi_iterator_wq_mtx); \ } while (0) -#define SCTP_IPI_ITERATOR_WQ_UNLOCK() mtx_unlock(&SCTP_BASE_INFO(ipi_iterator_wq_mtx)) +#define SCTP_IPI_ITERATOR_WQ_UNLOCK() mtx_unlock(&sctp_it_ctl.ipi_iterator_wq_mtx) #define SCTP_IP_PKTLOG_INIT() \ @@ -300,25 +294,45 @@ extern int sctp_logoff_stuff; #endif #define SCTP_ITERATOR_LOCK_INIT() \ - mtx_init(&SCTP_BASE_INFO(it_mtx), "sctp-it", "iterator", MTX_DEF) + mtx_init(&sctp_it_ctl.it_mtx, "sctp-it", "iterator", MTX_DEF) #ifdef INVARIANTS #define SCTP_ITERATOR_LOCK() \ do { \ - if (mtx_owned(&SCTP_BASE_INFO(it_mtx))) \ + if (mtx_owned(&sctp_it_ctl.it_mtx)) \ panic("Iterator Lock"); \ - mtx_lock(&SCTP_BASE_INFO(it_mtx)); \ + mtx_lock(&sctp_it_ctl.it_mtx); \ } while (0) #else #define SCTP_ITERATOR_LOCK() \ do { \ - mtx_lock(&SCTP_BASE_INFO(it_mtx)); \ + mtx_lock(&sctp_it_ctl.it_mtx); \ } while (0) #endif -#define SCTP_ITERATOR_UNLOCK() mtx_unlock(&SCTP_BASE_INFO(it_mtx)) -#define SCTP_ITERATOR_LOCK_DESTROY() mtx_destroy(&SCTP_BASE_INFO(it_mtx)) +#define SCTP_ITERATOR_UNLOCK() mtx_unlock(&sctp_it_ctl.it_mtx) +#define SCTP_ITERATOR_LOCK_DESTROY() mtx_destroy(&sctp_it_ctl.it_mtx) + + +#define SCTP_WQ_ADDR_INIT() do { \ + mtx_init(&SCTP_BASE_INFO(wq_addr_mtx), "sctp-addr-wq","sctp_addr_wq",MTX_DEF); \ + } while (0) + +#define SCTP_WQ_ADDR_DESTROY() do { \ + if(mtx_owned(&SCTP_BASE_INFO(wq_addr_mtx))) { \ + mtx_unlock(&SCTP_BASE_INFO(wq_addr_mtx)); \ + } \ + mtx_destroy(&SCTP_BASE_INFO(wq_addr_mtx)); \ + } while (0) + +#define SCTP_WQ_ADDR_LOCK() do { \ + mtx_lock(&SCTP_BASE_INFO(wq_addr_mtx)); \ +} while (0) +#define SCTP_WQ_ADDR_UNLOCK() do { \ + mtx_unlock(&SCTP_BASE_INFO(wq_addr_mtx)); \ +} while (0) + #define SCTP_INCR_EP_COUNT() \ Modified: head/sys/netinet/sctp_pcb.c ============================================================================== --- head/sys/netinet/sctp_pcb.c Sun May 16 16:54:05 2010 (r208159) +++ head/sys/netinet/sctp_pcb.c Sun May 16 17:03:56 2010 (r208160) @@ -692,13 +692,11 @@ sctp_add_addr_to_vrf(uint32_t vrf_id, vo (void)SCTP_GETTIME_TIMEVAL(&wi->start_time); wi->ifa = sctp_ifap; wi->action = SCTP_ADD_IP_ADDRESS; - SCTP_IPI_ITERATOR_WQ_LOCK(); - /* - * Should this really be a tailq? As it is we will process - * the newest first :-0 - */ + + SCTP_WQ_ADDR_LOCK(); LIST_INSERT_HEAD(&SCTP_BASE_INFO(addr_wq), wi, sctp_nxt_addr); - SCTP_IPI_ITERATOR_WQ_UNLOCK(); + SCTP_WQ_ADDR_UNLOCK(); + sctp_timer_start(SCTP_TIMER_TYPE_ADDR_WQ, (struct sctp_inpcb *)NULL, (struct sctp_tcb *)NULL, @@ -806,13 +804,13 @@ out_now: (void)SCTP_GETTIME_TIMEVAL(&wi->start_time); wi->ifa = sctp_ifap; wi->action = SCTP_DEL_IP_ADDRESS; - SCTP_IPI_ITERATOR_WQ_LOCK(); + SCTP_WQ_ADDR_LOCK(); /* * Should this really be a tailq? As it is we will process * the newest first :-0 */ LIST_INSERT_HEAD(&SCTP_BASE_INFO(addr_wq), wi, sctp_nxt_addr); - SCTP_IPI_ITERATOR_WQ_UNLOCK(); + SCTP_WQ_ADDR_UNLOCK(); sctp_timer_start(SCTP_TIMER_TYPE_ADDR_WQ, (struct sctp_inpcb *)NULL, @@ -3017,57 +3015,68 @@ continue_anyway: static void -sctp_iterator_inp_being_freed(struct sctp_inpcb *inp, struct sctp_inpcb *inp_next) +sctp_iterator_inp_being_freed(struct sctp_inpcb *inp) { - struct sctp_iterator *it; + struct sctp_iterator *it, *nit; /* * We enter with the only the ITERATOR_LOCK in place and a write * lock on the inp_info stuff. */ - + it = sctp_it_ctl.cur_it; + if (it && (it->vn != curvnet)) { + /* Its not looking at our VNET */ + return; + } + if (it && (it->inp == inp)) { + /* + * This is tricky and we hold the iterator lock, but when it + * returns and gets the lock (when we release it) the + * iterator will try to operate on inp. We need to stop that + * from happening. But of course the iterator has a + * reference on the stcb and inp. We can mark it and it will + * stop. + * + * If its a single iterator situation, we set the end iterator + * flag. Otherwise we set the iterator to go to the next + * inp. + * + */ + if (it->iterator_flags & SCTP_ITERATOR_DO_SINGLE_INP) { + sctp_it_ctl.iterator_flags |= SCTP_ITERATOR_STOP_CUR_IT; + } else { + sctp_it_ctl.iterator_flags |= SCTP_ITERATOR_STOP_CUR_INP; + } + } /* - * Go through all iterators, we must do this since it is possible - * that some iterator does NOT have the lock, but is waiting for it. - * And the one that had the lock has either moved in the last - * iteration or we just cleared it above. We need to find all of - * those guys. The list of iterators should never be very big - * though. - */ - TAILQ_FOREACH(it, &SCTP_BASE_INFO(iteratorhead), sctp_nxt_itr) { - if (it == inp->inp_starting_point_for_iterator) - /* skip this guy, he's special */ + * Now go through and remove any single reference to our inp that + * may be still pending on the list + */ + SCTP_IPI_ITERATOR_WQ_LOCK(); + it = TAILQ_FIRST(&sctp_it_ctl.iteratorhead); + while (it) { + nit = TAILQ_NEXT(it, sctp_nxt_itr); + if (it->vn != curvnet) { + it = nit; continue; + } if (it->inp == inp) { - /* - * This is tricky and we DON'T lock the iterator. - * Reason is he's running but waiting for me since - * inp->inp_starting_point_for_iterator has the lock - * on me (the guy above we skipped). This tells us - * its is not running but waiting for - * inp->inp_starting_point_for_iterator to be - * released by the guy that does have our INP in a - * lock. - */ + /* This one points to me is it inp specific? */ if (it->iterator_flags & SCTP_ITERATOR_DO_SINGLE_INP) { - it->inp = NULL; - it->stcb = NULL; + /* Remove and free this one */ + TAILQ_REMOVE(&sctp_it_ctl.iteratorhead, + it, sctp_nxt_itr); + if (it->function_atend != NULL) { + (*it->function_atend) (it->pointer, it->val); + } + SCTP_FREE(it, SCTP_M_ITER); } else { - /* set him up to do the next guy not me */ - it->inp = inp_next; - it->stcb = NULL; + it->inp = LIST_NEXT(it->inp, sctp_list); } } + it = nit; } - it = inp->inp_starting_point_for_iterator; - if (it) { - if (it->iterator_flags & SCTP_ITERATOR_DO_SINGLE_INP) { - it->inp = NULL; - } else { - it->inp = inp_next; - } - it->stcb = NULL; - } + SCTP_IPI_ITERATOR_WQ_UNLOCK(); } /* release sctp_inpcb unbind the port */ @@ -3083,7 +3092,6 @@ sctp_inpcb_free(struct sctp_inpcb *inp, * all associations. d) finally the ep itself. */ struct sctp_pcb *m; - struct sctp_inpcb *inp_save; struct sctp_tcb *asoc, *nasoc; struct sctp_laddr *laddr, *nladdr; struct inpcb *ip_pcb; @@ -3100,6 +3108,7 @@ sctp_inpcb_free(struct sctp_inpcb *inp, sctp_log_closing(inp, NULL, 0); #endif SCTP_ITERATOR_LOCK(); + so = inp->sctp_socket; if (inp->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) { /* been here before.. eeks.. get out of here */ @@ -3126,6 +3135,9 @@ sctp_inpcb_free(struct sctp_inpcb *inp, inp->sctp_flags |= SCTP_PCB_FLAGS_DONT_WAKE; inp->sctp_flags &= ~SCTP_PCB_FLAGS_WAKEINPUT; inp->sctp_flags &= ~SCTP_PCB_FLAGS_WAKEOUTPUT; + + /* mark any iterators on the list or being processed */ + sctp_iterator_inp_being_freed(inp); } sctp_timer_stop(SCTP_TIMER_TYPE_NEWCOOKIE, inp, NULL, NULL, SCTP_FROM_SCTP_PCB + SCTP_LOC_1); @@ -3494,11 +3506,8 @@ sctp_inpcb_free(struct sctp_inpcb *inp, shared_key = LIST_FIRST(&inp->sctp_ep.shared_keys); } - inp_save = LIST_NEXT(inp, sctp_list); LIST_REMOVE(inp, sctp_list); - /* fix any iterators only after out of the list */ - sctp_iterator_inp_being_freed(inp, inp_save); /* * if we have an address list the following will free the list of * ifaddr's that are set into this ep. Again macro limitations here, @@ -5436,8 +5445,6 @@ sctp_pcb_init() /* init the empty list of (All) Endpoints */ LIST_INIT(&SCTP_BASE_INFO(listhead)); - /* init the iterator head */ - TAILQ_INIT(&SCTP_BASE_INFO(iteratorhead)); /* init the hash table of endpoints */ TUNABLE_INT_FETCH("net.inet.sctp.tcbhashsize", &SCTP_BASE_SYSCTL(sctp_hashtblsize)); @@ -5500,16 +5507,15 @@ sctp_pcb_init() /* Master Lock INIT for info structure */ SCTP_INP_INFO_LOCK_INIT(); SCTP_STATLOG_INIT_LOCK(); - SCTP_ITERATOR_LOCK_INIT(); SCTP_IPI_COUNT_INIT(); SCTP_IPI_ADDR_INIT(); - SCTP_IPI_ITERATOR_WQ_INIT(); #ifdef SCTP_PACKET_LOGGING SCTP_IP_PKTLOG_INIT(); #endif LIST_INIT(&SCTP_BASE_INFO(addr_wq)); + SCTP_WQ_ADDR_INIT(); /* not sure if we need all the counts */ SCTP_BASE_INFO(ipi_count_ep) = 0; /* assoc/tcb zone info */ @@ -5537,11 +5543,7 @@ sctp_pcb_init() LIST_INIT(&SCTP_BASE_INFO(vtag_timewait)[i]); } -#if defined(SCTP_USE_THREAD_BASED_ITERATOR) - SCTP_BASE_INFO(iterator_running) = 0; - SCTP_BASE_INFO(threads_must_exit) = 0; sctp_startup_iterator(); -#endif /* * INIT the default VRF which for BSD is the only one, other O/S's @@ -5565,30 +5567,49 @@ sctp_pcb_finish(void) struct sctpvtaghead *chain; struct sctp_tagblock *twait_block, *prev_twait_block; struct sctp_laddr *wi; - struct sctp_iterator *it; int i; -#if defined(SCTP_USE_THREAD_BASED_ITERATOR) - SCTP_BASE_INFO(threads_must_exit) = 1; - /* Wake the thread up so it will exit now */ - sctp_wakeup_iterator(); + /* + * Free BSD the it thread never exits but we do clean up. The only + * way freebsd reaches here if we have VRF's but we still add the + * ifdef to make it compile on old versions. + */ + { + struct sctp_iterator *it, *nit; + + SCTP_IPI_ITERATOR_WQ_LOCK(); + it = TAILQ_FIRST(&sctp_it_ctl.iteratorhead); + while (it) { + nit = TAILQ_NEXT(it, sctp_nxt_itr); + if (it->vn != curvnet) { + it = nit; + continue; + } + TAILQ_REMOVE(&sctp_it_ctl.iteratorhead, + it, sctp_nxt_itr); + if (it->function_atend != NULL) { + (*it->function_atend) (it->pointer, it->val); + } + SCTP_FREE(it, SCTP_M_ITER); + it = nit; + } + SCTP_IPI_ITERATOR_WQ_UNLOCK(); + SCTP_ITERATOR_LOCK(); + if ((sctp_it_ctl.cur_it) && + (sctp_it_ctl.cur_it->vn == curvnet)) { + sctp_it_ctl.iterator_flags |= SCTP_ITERATOR_STOP_CUR_IT; + } + SCTP_ITERATOR_UNLOCK(); + } -#endif SCTP_OS_TIMER_STOP(&SCTP_BASE_INFO(addr_wq_timer.timer)); - SCTP_IPI_ITERATOR_WQ_LOCK(); + SCTP_WQ_ADDR_LOCK(); while ((wi = LIST_FIRST(&SCTP_BASE_INFO(addr_wq))) != NULL) { LIST_REMOVE(wi, sctp_nxt_addr); SCTP_DECR_LADDR_COUNT(); SCTP_ZONE_FREE(SCTP_BASE_INFO(ipi_zone_laddr), wi); } - SCTP_IPI_ITERATOR_WQ_UNLOCK(); - while ((it = TAILQ_FIRST(&SCTP_BASE_INFO(iteratorhead))) != NULL) { - if (it->function_atend != NULL) { - (*it->function_atend) (it->pointer, it->val); - } - TAILQ_REMOVE(&SCTP_BASE_INFO(iteratorhead), it, sctp_nxt_itr); - SCTP_FREE(it, SCTP_M_ITER); - } + SCTP_WQ_ADDR_UNLOCK(); /* * free the vrf/ifn/ifa lists and hashes (be sure address monitor is @@ -5640,10 +5661,11 @@ sctp_pcb_finish(void) SCTP_IP_PKTLOG_DESTROY(); #endif SCTP_IPI_ADDR_DESTROY(); - SCTP_ITERATOR_LOCK_DESTROY(); SCTP_STATLOG_DESTROY(); SCTP_INP_INFO_LOCK_DESTROY(); + SCTP_WQ_ADDR_DESTROY(); + SCTP_ZONE_DESTROY(SCTP_BASE_INFO(ipi_zone_ep)); SCTP_ZONE_DESTROY(SCTP_BASE_INFO(ipi_zone_asoc)); SCTP_ZONE_DESTROY(SCTP_BASE_INFO(ipi_zone_laddr)); @@ -6632,6 +6654,7 @@ sctp_initiate_iterator(inp_func inpf, it->asoc_state = asoc_state; it->function_inp_end = inpe; it->no_chunk_output = chunk_output_off; + it->vn = curvnet; if (s_inp) { it->inp = s_inp; it->iterator_flags = SCTP_ITERATOR_DO_SINGLE_INP; @@ -6647,22 +6670,11 @@ sctp_initiate_iterator(inp_func inpf, if (it->inp) { SCTP_INP_INCR_REF(it->inp); } - TAILQ_INSERT_TAIL(&SCTP_BASE_INFO(iteratorhead), it, sctp_nxt_itr); -#if defined(SCTP_USE_THREAD_BASED_ITERATOR) - if (SCTP_BASE_INFO(iterator_running) == 0) { + TAILQ_INSERT_TAIL(&sctp_it_ctl.iteratorhead, it, sctp_nxt_itr); + if (sctp_it_ctl.iterator_running == 0) { sctp_wakeup_iterator(); } SCTP_IPI_ITERATOR_WQ_UNLOCK(); -#else - if (it->inp) - SCTP_INP_DECR_REF(it->inp); - SCTP_IPI_ITERATOR_WQ_UNLOCK(); - /* Init the timer */ - SCTP_OS_TIMER_INIT(&it->tmr.timer); - /* add to the list of all iterators */ - sctp_timer_start(SCTP_TIMER_TYPE_ITERATOR, (struct sctp_inpcb *)it, - NULL, NULL); -#endif /* sa_ignore MEMLEAK {memory is put on the tailq for the iterator} */ return (0); } Modified: head/sys/netinet/sctp_pcb.h ============================================================================== --- head/sys/netinet/sctp_pcb.h Sun May 16 16:54:05 2010 (r208159) +++ head/sys/netinet/sctp_pcb.h Sun May 16 17:03:56 2010 (r208160) @@ -177,8 +177,6 @@ struct sctp_epinfo { struct sctppcbhead listhead; struct sctpladdr addr_wq; - struct sctpiterators iteratorhead; - int threads_must_exit; /* ep zone info */ sctp_zone_t ipi_zone_ep; sctp_zone_t ipi_zone_asoc; @@ -191,10 +189,10 @@ struct sctp_epinfo { sctp_zone_t ipi_zone_asconf_ack; struct rwlock ipi_ep_mtx; - struct mtx it_mtx; struct mtx ipi_iterator_wq_mtx; struct rwlock ipi_addr_mtx; struct mtx ipi_pktlog_mtx; + struct mtx wq_addr_mtx; uint32_t ipi_count_ep; /* assoc/tcb zone info */ @@ -228,14 +226,9 @@ struct sctp_epinfo { uint32_t ipi_free_chunks; uint32_t ipi_free_strmoq; - struct sctpvtaghead vtag_timewait[SCTP_STACK_VTAG_HASH_SIZE]; /* address work queue handling */ -#if defined(SCTP_USE_THREAD_BASED_ITERATOR) - uint32_t iterator_running; - SCTP_PROCESS_STRUCT thread_proc; -#endif struct sctp_timer addr_wq_timer; }; Modified: head/sys/netinet/sctp_structs.h ============================================================================== --- head/sys/netinet/sctp_structs.h Sun May 16 16:54:05 2010 (r208159) +++ head/sys/netinet/sctp_structs.h Sun May 16 17:03:56 2010 (r208160) @@ -108,9 +108,11 @@ typedef void (*end_func) (void *ptr, uin struct sctp_iterator { TAILQ_ENTRY(sctp_iterator) sctp_nxt_itr; + struct vnet *vn; struct sctp_timer tmr; struct sctp_inpcb *inp; /* current endpoint */ struct sctp_tcb *stcb; /* current* assoc */ + struct sctp_inpcb *next_inp; /* special hook to skip to */ asoc_func function_assoc; /* per assoc function */ inp_func function_inp; /* per endpoint function */ inp_func function_inp_end; /* end INP function */ @@ -129,6 +131,7 @@ struct sctp_iterator { #define SCTP_ITERATOR_DO_ALL_INP 0x00000001 #define SCTP_ITERATOR_DO_SINGLE_INP 0x00000002 + TAILQ_HEAD(sctpiterators, sctp_iterator); struct sctp_copy_all { @@ -145,6 +148,20 @@ struct sctp_asconf_iterator { int cnt; }; +struct iterator_control { + struct mtx ipi_iterator_wq_mtx; + struct mtx it_mtx; + SCTP_PROCESS_STRUCT thread_proc; + struct sctpiterators iteratorhead; + struct sctp_iterator *cur_it; + uint32_t iterator_running; + uint32_t iterator_flags; +}; + +#define SCTP_ITERATOR_MUST_EXIT 0x00000001 +#define SCTP_ITERATOR_STOP_CUR_IT 0x00000002 +#define SCTP_ITERATOR_STOP_CUR_INP 0x00000004 + struct sctp_net_route { sctp_rtentry_t *ro_rt; void *ro_lle; Modified: head/sys/netinet/sctp_timer.c ============================================================================== --- head/sys/netinet/sctp_timer.c Sun May 16 16:54:05 2010 (r208159) +++ head/sys/netinet/sctp_timer.c Sun May 16 17:03:56 2010 (r208160) @@ -1880,143 +1880,3 @@ sctp_autoclose_timer(struct sctp_inpcb * } } } - -void -sctp_iterator_timer(struct sctp_iterator *it) -{ - int iteration_count = 0; - int inp_skip = 0; - - /* - * only one iterator can run at a time. This is the only way we can - * cleanly pull ep's from underneath all the running interators when - * a ep is freed. - */ - SCTP_ITERATOR_LOCK(); - if (it->inp == NULL) { - /* iterator is complete */ -done_with_iterator: - SCTP_ITERATOR_UNLOCK(); - SCTP_INP_INFO_WLOCK(); - TAILQ_REMOVE(&SCTP_BASE_INFO(iteratorhead), it, sctp_nxt_itr); - /* stopping the callout is not needed, in theory */ - SCTP_INP_INFO_WUNLOCK(); - (void)SCTP_OS_TIMER_STOP(&it->tmr.timer); - if (it->function_atend != NULL) { - (*it->function_atend) (it->pointer, it->val); - } - SCTP_FREE(it, SCTP_M_ITER); - return; - } -select_a_new_ep: - SCTP_INP_WLOCK(it->inp); - while (((it->pcb_flags) && - ((it->inp->sctp_flags & it->pcb_flags) != it->pcb_flags)) || - ((it->pcb_features) && - ((it->inp->sctp_features & it->pcb_features) != it->pcb_features))) { - /* endpoint flags or features don't match, so keep looking */ - if (it->iterator_flags & SCTP_ITERATOR_DO_SINGLE_INP) { - SCTP_INP_WUNLOCK(it->inp); - goto done_with_iterator; - } - SCTP_INP_WUNLOCK(it->inp); - it->inp = LIST_NEXT(it->inp, sctp_list); - if (it->inp == NULL) { - goto done_with_iterator; - } - SCTP_INP_WLOCK(it->inp); - } - if ((it->inp->inp_starting_point_for_iterator != NULL) && - (it->inp->inp_starting_point_for_iterator != it)) { - SCTP_PRINTF("Iterator collision, waiting for one at %p\n", - it->inp); - SCTP_INP_WUNLOCK(it->inp); - goto start_timer_return; - } - /* mark the current iterator on the endpoint */ - it->inp->inp_starting_point_for_iterator = it; - SCTP_INP_WUNLOCK(it->inp); - SCTP_INP_RLOCK(it->inp); - /* now go through each assoc which is in the desired state */ - if (it->done_current_ep == 0) { - if (it->function_inp != NULL) - inp_skip = (*it->function_inp) (it->inp, it->pointer, it->val); - it->done_current_ep = 1; - } - if (it->stcb == NULL) { - /* run the per instance function */ - it->stcb = LIST_FIRST(&it->inp->sctp_asoc_list); - } - SCTP_INP_RUNLOCK(it->inp); - if ((inp_skip) || it->stcb == NULL) { - if (it->function_inp_end != NULL) { - inp_skip = (*it->function_inp_end) (it->inp, - it->pointer, - it->val); - } - goto no_stcb; - } - if ((it->stcb) && - (it->stcb->asoc.stcb_starting_point_for_iterator == it)) { - it->stcb->asoc.stcb_starting_point_for_iterator = NULL; - } - while (it->stcb) { - SCTP_TCB_LOCK(it->stcb); - if (it->asoc_state && ((it->stcb->asoc.state & it->asoc_state) != it->asoc_state)) { - /* not in the right state... keep looking */ - SCTP_TCB_UNLOCK(it->stcb); - goto next_assoc; - } - /* mark the current iterator on the assoc */ - it->stcb->asoc.stcb_starting_point_for_iterator = it; - /* see if we have limited out the iterator loop */ - iteration_count++; - if (iteration_count > SCTP_ITERATOR_MAX_AT_ONCE) { - start_timer_return: - /* set a timer to continue this later */ - if (it->stcb) - SCTP_TCB_UNLOCK(it->stcb); - sctp_timer_start(SCTP_TIMER_TYPE_ITERATOR, - (struct sctp_inpcb *)it, NULL, NULL); - SCTP_ITERATOR_UNLOCK(); - return; - } - /* run function on this one */ - (*it->function_assoc) (it->inp, it->stcb, it->pointer, it->val); - - /* - * we lie here, it really needs to have its own type but - * first I must verify that this won't effect things :-0 - */ - if (it->no_chunk_output == 0) - sctp_chunk_output(it->inp, it->stcb, SCTP_OUTPUT_FROM_T3, SCTP_SO_NOT_LOCKED); - - SCTP_TCB_UNLOCK(it->stcb); -next_assoc: - it->stcb = LIST_NEXT(it->stcb, sctp_tcblist); - if (it->stcb == NULL) { - if (it->function_inp_end != NULL) { - inp_skip = (*it->function_inp_end) (it->inp, - it->pointer, - it->val); - } - } - } -no_stcb: - /* done with all assocs on this endpoint, move on to next endpoint */ - it->done_current_ep = 0; - SCTP_INP_WLOCK(it->inp); - it->inp->inp_starting_point_for_iterator = NULL; - SCTP_INP_WUNLOCK(it->inp); - if (it->iterator_flags & SCTP_ITERATOR_DO_SINGLE_INP) { - it->inp = NULL; - } else { - SCTP_INP_INFO_RLOCK(); - it->inp = LIST_NEXT(it->inp, sctp_list); - SCTP_INP_INFO_RUNLOCK(); - } - if (it->inp == NULL) { - goto done_with_iterator; - } - goto select_a_new_ep; -} Modified: head/sys/netinet/sctputil.c ============================================================================== --- head/sys/netinet/sctputil.c Sun May 16 16:54:05 2010 (r208159) +++ head/sys/netinet/sctputil.c Sun May 16 17:03:56 2010 (r208160) @@ -48,6 +48,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #define NUMBER_OF_MTU_SIZES 18 @@ -1255,7 +1256,6 @@ sctp_expand_mapping_array(struct sctp_as } -#if defined(SCTP_USE_THREAD_BASED_ITERATOR) static void sctp_iterator_work(struct sctp_iterator *it) { @@ -1277,27 +1277,23 @@ done_with_iterator: return; } select_a_new_ep: - SCTP_INP_WLOCK(it->inp); + SCTP_INP_RLOCK(it->inp); while (((it->pcb_flags) && ((it->inp->sctp_flags & it->pcb_flags) != it->pcb_flags)) || ((it->pcb_features) && ((it->inp->sctp_features & it->pcb_features) != it->pcb_features))) { /* endpoint flags or features don't match, so keep looking */ if (it->iterator_flags & SCTP_ITERATOR_DO_SINGLE_INP) { - SCTP_INP_WUNLOCK(it->inp); + SCTP_INP_RUNLOCK(it->inp); goto done_with_iterator; } - SCTP_INP_WUNLOCK(it->inp); + SCTP_INP_RUNLOCK(it->inp); it->inp = LIST_NEXT(it->inp, sctp_list); if (it->inp == NULL) { goto done_with_iterator; } - SCTP_INP_WLOCK(it->inp); + SCTP_INP_RLOCK(it->inp); } - - SCTP_INP_WUNLOCK(it->inp); - SCTP_INP_RLOCK(it->inp); - /* now go through each assoc which is in the desired state */ if (it->done_current_ep == 0) { if (it->function_inp != NULL) @@ -1330,13 +1326,34 @@ select_a_new_ep: /* Pause to let others grab the lock */ atomic_add_int(&it->stcb->asoc.refcnt, 1); SCTP_TCB_UNLOCK(it->stcb); - SCTP_INP_INCR_REF(it->inp); SCTP_INP_RUNLOCK(it->inp); SCTP_ITERATOR_UNLOCK(); SCTP_ITERATOR_LOCK(); + if (sctp_it_ctl.iterator_flags) { + /* We won't be staying here */ + SCTP_INP_DECR_REF(it->inp); + atomic_add_int(&it->stcb->asoc.refcnt, -1); + if (sctp_it_ctl.iterator_flags & + SCTP_ITERATOR_MUST_EXIT) { + goto done_with_iterator; + } + if (sctp_it_ctl.iterator_flags & + SCTP_ITERATOR_STOP_CUR_IT) { + sctp_it_ctl.iterator_flags &= ~SCTP_ITERATOR_STOP_CUR_IT; + goto done_with_iterator; + } + if (sctp_it_ctl.iterator_flags & + SCTP_ITERATOR_STOP_CUR_INP) { + sctp_it_ctl.iterator_flags &= ~SCTP_ITERATOR_STOP_CUR_INP; + goto no_stcb; + } + /* If we reach here huh? */ + printf("Unknown it ctl flag %x\n", + sctp_it_ctl.iterator_flags); + sctp_it_ctl.iterator_flags = 0; + } SCTP_INP_RLOCK(it->inp); - SCTP_INP_DECR_REF(it->inp); SCTP_TCB_LOCK(it->stcb); atomic_add_int(&it->stcb->asoc.refcnt, -1); @@ -1368,8 +1385,6 @@ next_assoc: no_stcb: /* done with all assocs on this endpoint, move on to next endpoint */ it->done_current_ep = 0; - SCTP_INP_WLOCK(it->inp); - SCTP_INP_WUNLOCK(it->inp); if (it->iterator_flags & SCTP_ITERATOR_DO_SINGLE_INP) { it->inp = NULL; } else { @@ -1390,27 +1405,28 @@ sctp_iterator_worker(void) /* This function is called with the WQ lock in place */ - SCTP_BASE_INFO(iterator_running) = 1; -again: - it = TAILQ_FIRST(&SCTP_BASE_INFO(iteratorhead)); + sctp_it_ctl.iterator_running = 1; + sctp_it_ctl.cur_it = it = TAILQ_FIRST(&sctp_it_ctl.iteratorhead); while (it) { /* now lets work on this one */ - TAILQ_REMOVE(&SCTP_BASE_INFO(iteratorhead), it, sctp_nxt_itr); + TAILQ_REMOVE(&sctp_it_ctl.iteratorhead, it, sctp_nxt_itr); SCTP_IPI_ITERATOR_WQ_UNLOCK(); + CURVNET_SET(it->vn); sctp_iterator_work(it); + + CURVNET_RESTORE(); SCTP_IPI_ITERATOR_WQ_LOCK(); + if (sctp_it_ctl.iterator_flags & SCTP_ITERATOR_MUST_EXIT) { + sctp_it_ctl.cur_it = NULL; + break; + } /* sa_ignore FREED_MEMORY */ - it = TAILQ_FIRST(&SCTP_BASE_INFO(iteratorhead)); - } - if (TAILQ_FIRST(&SCTP_BASE_INFO(iteratorhead))) { - goto again; + sctp_it_ctl.cur_it = it = TAILQ_FIRST(&sctp_it_ctl.iteratorhead); } - SCTP_BASE_INFO(iterator_running) = 0; + sctp_it_ctl.iterator_running = 0; return; } -#endif - static void sctp_handle_addr_wq(void) @@ -1431,7 +1447,8 @@ sctp_handle_addr_wq(void) } LIST_INIT(&asc->list_of_work); asc->cnt = 0; - SCTP_IPI_ITERATOR_WQ_LOCK(); + + SCTP_WQ_ADDR_LOCK(); wi = LIST_FIRST(&SCTP_BASE_INFO(addr_wq)); while (wi != NULL) { LIST_REMOVE(wi, sctp_nxt_addr); @@ -1439,7 +1456,8 @@ sctp_handle_addr_wq(void) asc->cnt++; wi = LIST_FIRST(&SCTP_BASE_INFO(addr_wq)); } - SCTP_IPI_ITERATOR_WQ_UNLOCK(); + SCTP_WQ_ADDR_UNLOCK(); + if (asc->cnt == 0) { SCTP_FREE(asc, SCTP_M_ASC_IT); } else { @@ -1470,7 +1488,6 @@ sctp_timeout_handler(void *t) #endif int did_output, type; - struct sctp_iterator *it = NULL; tmr = (struct sctp_timer *)t; inp = (struct sctp_inpcb *)tmr->ep; @@ -1509,10 +1526,6 @@ sctp_timeout_handler(void *t) } /* if this is an iterator timeout, get the struct and clear inp */ tmr->stopped_from = 0xa003; - if (tmr->type == SCTP_TIMER_TYPE_ITERATOR) { - it = (struct sctp_iterator *)inp; - inp = NULL; - } type = tmr->type; if (inp) { SCTP_INP_INCR_REF(inp); @@ -1611,10 +1624,6 @@ sctp_timeout_handler(void *t) case SCTP_TIMER_TYPE_ADDR_WQ: sctp_handle_addr_wq(); break; - case SCTP_TIMER_TYPE_ITERATOR: - SCTP_STAT_INCR(sctps_timoiterator); - sctp_iterator_timer(it); - break; case SCTP_TIMER_TYPE_SEND: if ((stcb == NULL) || (inp == NULL)) { break; @@ -1962,15 +1971,6 @@ sctp_timer_start(int t_type, struct sctp tmr = &SCTP_BASE_INFO(addr_wq_timer); to_ticks = SCTP_ADDRESS_TICK_DELAY; break; - case SCTP_TIMER_TYPE_ITERATOR: - { - struct sctp_iterator *it; - - it = (struct sctp_iterator *)inp; - tmr = &it->tmr; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Sun May 16 17:55:09 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7EA6C106564A; Sun, 16 May 2010 17:55:09 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 619548FC18; Sun, 16 May 2010 17:55:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GHt9Nm072937; Sun, 16 May 2010 17:55:09 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GHt9ie072934; Sun, 16 May 2010 17:55:09 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201005161755.o4GHt9ie072934@svn.freebsd.org> From: Nathan Whitehorn Date: Sun, 16 May 2010 17:55:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208162 - in head/sys: dev/ata/chipsets powerpc/ofw X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 17:55:09 -0000 Author: nwhitehorn Date: Sun May 16 17:55:09 2010 New Revision: 208162 URL: http://svn.freebsd.org/changeset/base/208162 Log: Relocate interrupt sense setting for K2 SATA from the ATA driver to the OFW PCI layer and read the sense directly from the device tree instead of guessing. MFC after: 1 week Modified: head/sys/dev/ata/chipsets/ata-serverworks.c head/sys/powerpc/ofw/ofw_pcibus.c Modified: head/sys/dev/ata/chipsets/ata-serverworks.c ============================================================================== --- head/sys/dev/ata/chipsets/ata-serverworks.c Sun May 16 17:22:54 2010 (r208161) +++ head/sys/dev/ata/chipsets/ata-serverworks.c Sun May 16 17:55:09 2010 (r208162) @@ -41,9 +41,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#ifdef __powerpc__ -#include -#endif #include #include #include @@ -220,10 +217,6 @@ ata_serverworks_ch_attach(device_t dev) ch->hw.tf_write = ata_serverworks_tf_write; #ifdef __powerpc__ ch->hw.status = ata_serverworks_status; - - /* Make sure that our interrupt is edge triggered */ - powerpc_config_intr(bus_get_resource_start(device_get_parent(dev), - SYS_RES_IRQ, 0), INTR_TRIGGER_EDGE, INTR_POLARITY_HIGH); #endif if (ctlr->chip->chipid == ATA_K2) { Modified: head/sys/powerpc/ofw/ofw_pcibus.c ============================================================================== --- head/sys/powerpc/ofw/ofw_pcibus.c Sun May 16 17:22:54 2010 (r208161) +++ head/sys/powerpc/ofw/ofw_pcibus.c Sun May 16 17:55:09 2010 (r208162) @@ -43,6 +43,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include @@ -192,20 +193,36 @@ ofw_pcibus_enum_devtree(device_t dev, u_ pci_add_child(dev, (struct pci_devinfo *)dinfo); /* - * Some devices don't have an intpin set, but do have - * interrupts. These are fully specified, and set in the + * Some devices don't have an intpin set, but do have + * interrupts. These are fully specified, and set in the * interrupts property, so add that value to the device's * resource list. - */ - if (dinfo->opd_dinfo.cfg.intpin == 0) { - ofw_pci_intr_t intr; + */ + if (dinfo->opd_dinfo.cfg.intpin == 0) { + ofw_pci_intr_t intr[2]; + phandle_t iparent; + int icells; if (OF_getprop(child, "interrupts", &intr, sizeof(intr)) > 0) { - resource_list_add(&dinfo->opd_dinfo.resources, - SYS_RES_IRQ, 0, intr, intr, 1); + iparent = 0; + icells = 1; + OF_getprop(child, "interrupt-parent", &iparent, + sizeof(iparent)); + OF_getprop(iparent, "#interrupt-cells", &icells, + sizeof(icells)); + + if (iparent != 0 && icells > 1) { + powerpc_config_intr(intr[0], + (intr[1] & 1) ? INTR_TRIGGER_LEVEL : + INTR_TRIGGER_EDGE, + INTR_POLARITY_HIGH); + } + + resource_list_add(&dinfo->opd_dinfo.resources, + SYS_RES_IRQ, 0, intr[0], intr[0], 1); } - } + } } } From owner-svn-src-all@FreeBSD.ORG Sun May 16 19:25:57 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 56A10106564A; Sun, 16 May 2010 19:25:57 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4600A8FC16; Sun, 16 May 2010 19:25:57 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GJPvlf092878; Sun, 16 May 2010 19:25:57 GMT (envelope-from alc@svn.freebsd.org) Received: (from alc@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GJPvMu092877; Sun, 16 May 2010 19:25:57 GMT (envelope-from alc@svn.freebsd.org) Message-Id: <201005161925.o4GJPvMu092877@svn.freebsd.org> From: Alan Cox Date: Sun, 16 May 2010 19:25:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208164 - head/sys/vm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 19:25:57 -0000 Author: alc Date: Sun May 16 19:25:56 2010 New Revision: 208164 URL: http://svn.freebsd.org/changeset/base/208164 Log: Correct an error of omission in r202897: Now that amd64 uses the direct map to access the message buffer, we must explicitly request that the underlying physical pages are included in a crash dump. Reported by: Benjamin Kaduk Modified: head/sys/vm/vm_page.c Modified: head/sys/vm/vm_page.c ============================================================================== --- head/sys/vm/vm_page.c Sun May 16 19:01:32 2010 (r208163) +++ head/sys/vm/vm_page.c Sun May 16 19:25:56 2010 (r208164) @@ -108,6 +108,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -375,6 +376,19 @@ vm_page_startup(vm_offset_t vaddr) new_end + vm_page_dump_size, VM_PROT_READ | VM_PROT_WRITE); bzero((void *)vm_page_dump, vm_page_dump_size); #endif +#ifdef __amd64__ + /* + * Request that the physical pages underlying the message buffer be + * included in a crash dump. Since the message buffer is accessed + * through the direct map, they are not automatically included. + */ + pa = DMAP_TO_PHYS((vm_offset_t)msgbufp->msg_ptr); + last_pa = pa + round_page(MSGBUF_SIZE); + while (pa < last_pa) { + dump_add_page(pa); + pa += PAGE_SIZE; + } +#endif /* * Compute the number of pages of memory that will be available for * use (taking into account the overhead of a page structure per From owner-svn-src-all@FreeBSD.ORG Sun May 16 19:43:49 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 73AAE106566C; Sun, 16 May 2010 19:43:49 +0000 (UTC) (envelope-from rrs@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 60D328FC15; Sun, 16 May 2010 19:43:49 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GJhncg096846; Sun, 16 May 2010 19:43:49 GMT (envelope-from rrs@svn.freebsd.org) Received: (from rrs@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GJhnTo096839; Sun, 16 May 2010 19:43:49 GMT (envelope-from rrs@svn.freebsd.org) Message-Id: <201005161943.o4GJhnTo096839@svn.freebsd.org> From: Randall Stewart Date: Sun, 16 May 2010 19:43:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208165 - in head/sys: kern mips/conf mips/include mips/mips mips/rmi mips/rmi/dev/xlr X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 19:43:49 -0000 Author: rrs Date: Sun May 16 19:43:48 2010 New Revision: 208165 URL: http://svn.freebsd.org/changeset/base/208165 Log: This pushes all of JC's patches that I have in place. I am now able to run 32 cores ok.. but I still will hang on buildworld with a NFS problem. I suspect I am missing a patch for the netlogic rge driver. JC check and see if I am missing anything except your core-mask changes Obtained from: JC Modified: head/sys/kern/sched_ule.c head/sys/kern/subr_smp.c head/sys/mips/conf/XLR head/sys/mips/include/locore.h head/sys/mips/include/param.h head/sys/mips/include/smp.h head/sys/mips/mips/cpu.c head/sys/mips/mips/machdep.c head/sys/mips/mips/mp_machdep.c head/sys/mips/mips/mpboot.S head/sys/mips/mips/pmap.c head/sys/mips/rmi/dev/xlr/rge.c head/sys/mips/rmi/files.xlr head/sys/mips/rmi/interrupt.h head/sys/mips/rmi/intr_machdep.c head/sys/mips/rmi/iodi.c head/sys/mips/rmi/on_chip.c head/sys/mips/rmi/pic.h head/sys/mips/rmi/xlr_machdep.c head/sys/mips/rmi/xlr_pci.c head/sys/mips/rmi/xlrconfig.h Modified: head/sys/kern/sched_ule.c ============================================================================== --- head/sys/kern/sched_ule.c Sun May 16 19:25:56 2010 (r208164) +++ head/sys/kern/sched_ule.c Sun May 16 19:43:48 2010 (r208165) @@ -80,7 +80,7 @@ dtrace_vtime_switch_func_t dtrace_vtime_ #include #include -#if defined(__sparc64__) || defined(__mips__) +#if defined(__sparc64__) #error "This architecture is not currently compatible with ULE" #endif Modified: head/sys/kern/subr_smp.c ============================================================================== --- head/sys/kern/subr_smp.c Sun May 16 19:25:56 2010 (r208164) +++ head/sys/kern/subr_smp.c Sun May 16 19:43:48 2010 (r208165) @@ -503,7 +503,10 @@ smp_topo_none(void) top = &group[0]; top->cg_parent = NULL; top->cg_child = NULL; - top->cg_mask = (1 << mp_ncpus) - 1; + if (mp_ncpus == sizeof(top->cg_mask) * 8) + top->cg_mask = -1; + else + top->cg_mask = (1 << mp_ncpus) - 1; top->cg_count = mp_ncpus; top->cg_children = 0; top->cg_level = CG_SHARE_NONE; Modified: head/sys/mips/conf/XLR ============================================================================== --- head/sys/mips/conf/XLR Sun May 16 19:25:56 2010 (r208164) +++ head/sys/mips/conf/XLR Sun May 16 19:43:48 2010 (r208165) @@ -59,10 +59,11 @@ include "../rmi/std.xlr" makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols #profile 2 -#options SCHED_ULE # ULE scheduler +options SCHED_ULE # ULE scheduler #options VERBOSE_SYSINIT -options SCHED_4BSD # 4BSD scheduler -#options PREEMPTION # Enable kernel thread preemption +#options SCHED_4BSD # 4BSD scheduler +options SMP +options PREEMPTION # Enable kernel thread preemption #options FULL_PREEMPTION # Enable kernel thread preemption options INET # InterNETworking options INET6 # IPv6 communications protocols Modified: head/sys/mips/include/locore.h ============================================================================== --- head/sys/mips/include/locore.h Sun May 16 19:25:56 2010 (r208164) +++ head/sys/mips/include/locore.h Sun May 16 19:43:48 2010 (r208165) @@ -60,6 +60,7 @@ typedef int mips_prid_t; /* 0x09 unannounced */ /* 0x0a unannounced */ #define MIPS_PRID_CID_LEXRA 0x0b /* Lexra */ +#define MIPS_PRID_CID_RMI 0x0c /* RMI */ #define MIPS_PRID_CID_CAVIUM 0x0d /* Cavium */ #define MIPS_PRID_COPTS(x) (((x) >> 24) & 0x00ff) /* Company Options */ Modified: head/sys/mips/include/param.h ============================================================================== --- head/sys/mips/include/param.h Sun May 16 19:25:56 2010 (r208164) +++ head/sys/mips/include/param.h Sun May 16 19:43:48 2010 (r208165) @@ -70,7 +70,7 @@ #define MID_MACHINE 0 /* None but has to be defined */ #ifdef SMP -#define MAXSMPCPU 16 +#define MAXSMPCPU 32 #define MAXCPU MAXSMPCPU #else #define MAXSMPCPU 1 Modified: head/sys/mips/include/smp.h ============================================================================== --- head/sys/mips/include/smp.h Sun May 16 19:25:56 2010 (r208164) +++ head/sys/mips/include/smp.h Sun May 16 19:43:48 2010 (r208165) @@ -26,6 +26,7 @@ #define IPI_AST 0x0004 #define IPI_STOP 0x0008 #define IPI_STOP_HARD 0x0008 +#define IPI_PREEMPT 0x0010 #ifndef LOCORE Modified: head/sys/mips/mips/cpu.c ============================================================================== --- head/sys/mips/mips/cpu.c Sun May 16 19:25:56 2010 (r208164) +++ head/sys/mips/mips/cpu.c Sun May 16 19:43:48 2010 (r208165) @@ -178,6 +178,9 @@ cpu_identify(void) case MIPS_PRID_CID_LEXRA: printf("Lexra"); break; + case MIPS_PRID_CID_RMI: + printf("RMI"); + break; case MIPS_PRID_CID_CAVIUM: printf("Cavium"); break; Modified: head/sys/mips/mips/machdep.c ============================================================================== --- head/sys/mips/mips/machdep.c Sun May 16 19:25:56 2010 (r208164) +++ head/sys/mips/mips/machdep.c Sun May 16 19:43:48 2010 (r208165) @@ -346,7 +346,7 @@ mips_vector_init(void) bcopy(MipsTLBMiss, (void *)TLB_MISS_EXC_VEC, MipsTLBMissEnd - MipsTLBMiss); -#ifdef TARGET_OCTEON +#if defined(TARGET_OCTEON) || defined(TARGET_XLR_XLS) /* Fake, but sufficient, for the 32-bit with 64-bit hardware addresses */ bcopy(MipsTLBMiss, (void *)XTLB_MISS_EXC_VEC, MipsTLBMissEnd - MipsTLBMiss); Modified: head/sys/mips/mips/mp_machdep.c ============================================================================== --- head/sys/mips/mips/mp_machdep.c Sun May 16 19:25:56 2010 (r208164) +++ head/sys/mips/mips/mp_machdep.c Sun May 16 19:43:48 2010 (r208165) @@ -141,6 +141,10 @@ mips_ipi_handler(void *arg) atomic_clear_int(&stopped_cpus, cpumask); CTR0(KTR_SMP, "IPI_STOP (restart)"); break; + case IPI_PREEMPT: + CTR1(KTR_SMP, "%s: IPI_PREEMPT", __func__); + sched_preempt(curthread); + break; default: panic("Unknown IPI 0x%0x on cpu %d", ipi, curcpu); } @@ -234,7 +238,9 @@ cpu_mp_start(void) void smp_init_secondary(u_int32_t cpuid) { +#ifndef TARGET_XLR_XLS int ipi_int_mask, clock_int_mask; +#endif /* TLB */ Mips_SetWIRED(0); @@ -288,12 +294,16 @@ smp_init_secondary(u_int32_t cpuid) while (smp_started == 0) ; /* nothing */ +#ifndef TARGET_XLR_XLS /* * Unmask the clock and ipi interrupts. */ clock_int_mask = hard_int_mask(5); ipi_int_mask = hard_int_mask(platform_ipi_intrnum()); set_intr_mask(ALL_INT_MASK & ~(ipi_int_mask | clock_int_mask)); +#else + platform_init_ap(cpuid); +#endif /* * Bootstrap the compare register. Modified: head/sys/mips/mips/mpboot.S ============================================================================== --- head/sys/mips/mips/mpboot.S Sun May 16 19:25:56 2010 (r208164) +++ head/sys/mips/mips/mpboot.S Sun May 16 19:43:48 2010 (r208165) @@ -76,9 +76,10 @@ GLOBAL(mpentry) PTR_LA gp, _C_LABEL(_gp) +#ifndef TARGET_XLR_XLS jal platform_init_ap move a0, s0 - +#endif jal smp_init_secondary move a0, s0 Modified: head/sys/mips/mips/pmap.c ============================================================================== --- head/sys/mips/mips/pmap.c Sun May 16 19:25:56 2010 (r208164) +++ head/sys/mips/mips/pmap.c Sun May 16 19:43:48 2010 (r208165) @@ -80,6 +80,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -109,6 +110,10 @@ __FBSDID("$FreeBSD$"); #define PMAP_SHPGPERPROC 200 #endif +#if defined(TARGET_XLR_XLS) +#define HIGHMEM_SUPPORT +#endif + #if !defined(PMAP_DIAGNOSTIC) #define PMAP_INLINE __inline #else @@ -183,12 +188,18 @@ static int pmap_unuse_pt(pmap_t, vm_offs static int init_pte_prot(vm_offset_t va, vm_page_t m, vm_prot_t prot); static void pmap_TLB_invalidate_kernel(vm_offset_t); static void pmap_TLB_update_kernel(vm_offset_t, pt_entry_t); +static vm_page_t pmap_alloc_pte_page(pmap_t, unsigned int, int, vm_offset_t *); +static void pmap_release_pte_page(vm_page_t); #ifdef SMP static void pmap_invalidate_page_action(void *arg); static void pmap_invalidate_all_action(void *arg); static void pmap_update_page_action(void *arg); +#endif +#ifdef HIGHMEM_SUPPORT +static void * pmap_ptpgzone_allocf(uma_zone_t, int, u_int8_t*, int); +static uma_zone_t ptpgzone; #endif struct local_sysmaps { @@ -530,6 +541,12 @@ pmap_init(void) pv_entry_max = PMAP_SHPGPERPROC * maxproc + cnt.v_page_count; pv_entry_high_water = 9 * (pv_entry_max / 10); uma_zone_set_obj(pvzone, &pvzone_obj, pv_entry_max); + +#ifdef HIGHMEM_SUPPORT + ptpgzone = uma_zcreate("PT ENTRY", PAGE_SIZE, NULL, + NULL, NULL, NULL, PAGE_SIZE-1, UMA_ZONE_NOFREE); + uma_zone_set_allocf(ptpgzone, pmap_ptpgzone_allocf); +#endif } /*************************************************** @@ -887,7 +904,7 @@ _pmap_unwire_pte_hold(pmap_t pmap, vm_pa /* * If the page is finally unwired, simply free it. */ - vm_page_free_zero(m); + pmap_release_pte_page(m); atomic_subtract_int(&cnt.v_wire_count, 1); return (1); } @@ -947,6 +964,118 @@ pmap_pinit0(pmap_t pmap) bzero(&pmap->pm_stats, sizeof pmap->pm_stats); } +#ifdef HIGHMEM_SUPPORT +static void * +pmap_ptpgzone_allocf(uma_zone_t zone, int bytes, u_int8_t *flags, int wait) +{ + vm_page_t m; + vm_paddr_t paddr; + + *flags = UMA_SLAB_PRIV; + m = vm_phys_alloc_contig(1, 0, MIPS_KSEG0_LARGEST_PHYS, + PAGE_SIZE, PAGE_SIZE); + if (m == NULL) + return (NULL); + + paddr = VM_PAGE_TO_PHYS(m); + return ((void *)MIPS_PHYS_TO_KSEG0(paddr)); +} + +static vm_page_t +pmap_alloc_pte_page(pmap_t pmap, unsigned int index, int wait, vm_offset_t *vap) +{ + vm_paddr_t paddr; + void *va; + vm_page_t m; + int locked; + + locked = mtx_owned(&pmap->pm_mtx); + if (locked) { + mtx_assert(&vm_page_queue_mtx, MA_OWNED); + PMAP_UNLOCK(pmap); + vm_page_unlock_queues(); + } + va = uma_zalloc(ptpgzone, wait); + if (locked) { + vm_page_lock_queues(); + PMAP_LOCK(pmap); + } + if (va == NULL) + return (NULL); + + paddr = MIPS_KSEG0_TO_PHYS(va); + m = PHYS_TO_VM_PAGE(paddr); + + if ((m->flags & PG_ZERO) == 0) + bzero(va, PAGE_SIZE); + m->pindex = index; + m->valid = VM_PAGE_BITS_ALL; + m->wire_count = 1; + atomic_add_int(&cnt.v_wire_count, 1); + *vap = (vm_offset_t)va; + return (m); +} + +static void +pmap_release_pte_page(vm_page_t m) +{ + void *va; + vm_paddr_t paddr; + + paddr = VM_PAGE_TO_PHYS(m); + va = (void *)MIPS_PHYS_TO_KSEG0(paddr); + uma_zfree(ptpgzone, va); +} +#else +static vm_page_t +pmap_alloc_pte_page(pmap_t pmap, unsigned int index, int wait, vm_offset_t *vap) +{ + vm_offset_t va; + vm_page_t m; + int locked, req; + + locked = mtx_owned(&pmap->pm_mtx); + req = VM_ALLOC_WIRED | VM_ALLOC_NOOBJ; + if (wait & M_WAITOK) + req |= VM_ALLOC_NORMAL; + else + req |= VM_ALLOC_INTERRUPT; + + m = vm_page_alloc(NULL, index, req); + if (m == NULL) { + if (wait & M_WAITOK) { + if (locked) { + mtx_assert(&vm_page_queue_mtx, MA_OWNED); + PMAP_UNLOCK(pmap); + vm_page_unlock_queues(); + } + VM_WAIT; + if (locked) { + vm_page_lock_queues(); + PMAP_LOCK(pmap); + } + } + return NULL; + } + + va = MIPS_PHYS_TO_KSEG0(VM_PAGE_TO_PHYS(m)); + if ((m->flags & PG_ZERO) == 0) + bzero((void *)va, PAGE_SIZE); + else + vm_page_flag_clear(m, PG_ZERO); + + m->valid = VM_PAGE_BITS_ALL; + *vap = (vm_offset_t)va; + return (m); +} + +static void +pmap_release_pte_page(vm_page_t m) +{ + vm_page_free(m); +} +#endif + /* * Initialize a preallocated and zeroed pmap structure, * such as one in a vmspace structure. @@ -955,37 +1084,16 @@ int pmap_pinit(pmap_t pmap) { vm_offset_t ptdva; - vm_paddr_t ptdpa; vm_page_t ptdpg; int i; - int req; PMAP_LOCK_INIT(pmap); - req = VM_ALLOC_NOOBJ | VM_ALLOC_NORMAL | VM_ALLOC_WIRED | - VM_ALLOC_ZERO; - /* * allocate the page directory page */ - while ((ptdpg = vm_page_alloc(NULL, NUSERPGTBLS, req)) == NULL) - VM_WAIT; - - ptdpg->valid = VM_PAGE_BITS_ALL; - - ptdpa = VM_PAGE_TO_PHYS(ptdpg); - if (ptdpa < MIPS_KSEG0_LARGEST_PHYS) { - ptdva = MIPS_PHYS_TO_KSEG0(ptdpa); - } else { - ptdva = kmem_alloc_nofault(kernel_map, PAGE_SIZE); - if (ptdva == 0) - panic("pmap_pinit: unable to allocate kva"); - pmap_kenter(ptdva, ptdpa); - } - + ptdpg = pmap_alloc_pte_page(pmap, NUSERPGTBLS, M_WAITOK, &ptdva); pmap->pm_segtab = (pd_entry_t *)ptdva; - if ((ptdpg->flags & PG_ZERO) == 0) - bzero(pmap->pm_segtab, PAGE_SIZE); pmap->pm_active = 0; pmap->pm_ptphint = NULL; @@ -1006,7 +1114,7 @@ pmap_pinit(pmap_t pmap) static vm_page_t _pmap_allocpte(pmap_t pmap, unsigned ptepindex, int flags) { - vm_offset_t pteva, ptepa; + vm_offset_t pteva; vm_page_t m; int req; @@ -1018,25 +1126,9 @@ _pmap_allocpte(pmap_t pmap, unsigned pte /* * Find or fabricate a new pagetable page */ - if ((m = vm_page_alloc(NULL, ptepindex, req)) == NULL) { - if (flags & M_WAITOK) { - PMAP_UNLOCK(pmap); - vm_page_unlock_queues(); - VM_WAIT; - vm_page_lock_queues(); - PMAP_LOCK(pmap); - } - /* - * Indicate the need to retry. While waiting, the page - * table page may have been allocated. - */ + m = pmap_alloc_pte_page(pmap, ptepindex, flags, &pteva); + if (m == NULL) return (NULL); - } - if ((m->flags & PG_ZERO) == 0) - pmap_zero_page(m); - - KASSERT(m->queue == PQ_NONE, - ("_pmap_allocpte: %p->queue != PQ_NONE", m)); /* * Map the pagetable page into the process address space, if it @@ -1044,34 +1136,12 @@ _pmap_allocpte(pmap_t pmap, unsigned pte */ pmap->pm_stats.resident_count++; - - ptepa = VM_PAGE_TO_PHYS(m); - if (ptepa < MIPS_KSEG0_LARGEST_PHYS) { - pteva = MIPS_PHYS_TO_KSEG0(ptepa); - } else { - pteva = kmem_alloc_nofault(kernel_map, PAGE_SIZE); - if (pteva == 0) - panic("_pmap_allocpte: unable to allocate kva"); - pmap_kenter(pteva, ptepa); - } - pmap->pm_segtab[ptepindex] = (pd_entry_t)pteva; /* * Set the page table hint */ pmap->pm_ptphint = m; - - /* - * Kernel page tables are allocated in pmap_bootstrap() or - * pmap_growkernel(). - */ - if (is_kernel_pmap(pmap)) - panic("_pmap_allocpte() called for kernel pmap\n"); - - m->valid = VM_PAGE_BITS_ALL; - vm_page_flag_clear(m, PG_ZERO); - return (m); } @@ -1158,17 +1228,12 @@ pmap_release(pmap_t pmap) ptdva = (vm_offset_t)pmap->pm_segtab; ptdpg = PHYS_TO_VM_PAGE(vtophys(ptdva)); - if (ptdva >= VM_MIN_KERNEL_ADDRESS) { - pmap_kremove(ptdva); - kmem_free(kernel_map, ptdva, PAGE_SIZE); - } else { - KASSERT(MIPS_IS_KSEG0_ADDR(ptdva), - ("pmap_release: 0x%0lx is not in kseg0", (long)ptdva)); - } + KASSERT(MIPS_IS_KSEG0_ADDR(ptdva), + ("pmap_release: 0x%0lx is not in kseg0", (long)ptdva)); ptdpg->wire_count--; atomic_subtract_int(&cnt.v_wire_count, 1); - vm_page_free_zero(ptdpg); + pmap_release_pte_page(ptdpg); PMAP_LOCK_DESTROY(pmap); } @@ -1178,10 +1243,10 @@ pmap_release(pmap_t pmap) void pmap_growkernel(vm_offset_t addr) { - vm_offset_t ptppaddr; + vm_offset_t pageva; vm_page_t nkpg; pt_entry_t *pte; - int i, req; + int i; mtx_assert(&kernel_map->system_mtx, MA_OWNED); if (kernel_vm_end == 0) { @@ -1213,26 +1278,13 @@ pmap_growkernel(vm_offset_t addr) /* * This index is bogus, but out of the way */ - req = VM_ALLOC_INTERRUPT | VM_ALLOC_WIRED | VM_ALLOC_NOOBJ; - nkpg = vm_page_alloc(NULL, nkpt, req); + nkpg = pmap_alloc_pte_page(kernel_pmap, nkpt, M_NOWAIT, &pageva); + if (!nkpg) panic("pmap_growkernel: no memory to grow kernel"); nkpt++; - - ptppaddr = VM_PAGE_TO_PHYS(nkpg); - if (ptppaddr >= MIPS_KSEG0_LARGEST_PHYS) { - /* - * We need to do something here, but I am not sure - * what. We can access anything in the 0 - 512Meg - * region, but if we get a page to go in the kernel - * segmap that is outside of of that we really need - * to have another mapping beyond the temporary ones - * I have. Not sure how to do this yet. FIXME FIXME. - */ - panic("Gak, can't handle a k-page table outside of lower 512Meg"); - } - pte = (pt_entry_t *)MIPS_PHYS_TO_KSEG0(ptppaddr); + pte = (pt_entry_t *)pageva; segtab_pde(kernel_segmap, kernel_vm_end) = (pd_entry_t)pte; /* @@ -1396,7 +1448,8 @@ pmap_remove_entry(struct pmap *pmap, vm_ } } - KASSERT(pv != NULL, ("pmap_remove_entry: pv not found")); + KASSERT(pv != NULL, ("pmap_remove_entry: pv not found, pa %lx va %lx", + (u_long)VM_PAGE_TO_PHYS(m), (u_long)va)); TAILQ_REMOVE(&m->md.pv_list, pv, pv_list); m->md.pv_list_count--; if (TAILQ_FIRST(&m->md.pv_list) == NULL) Modified: head/sys/mips/rmi/dev/xlr/rge.c ============================================================================== --- head/sys/mips/rmi/dev/xlr/rge.c Sun May 16 19:25:56 2010 (r208164) +++ head/sys/mips/rmi/dev/xlr/rge.c Sun May 16 19:43:48 2010 (r208165) @@ -54,6 +54,7 @@ __FBSDID("$FreeBSD$"); #define __RMAN_RESOURCE_VISIBLE #include #include +#include #include #include @@ -83,6 +84,7 @@ __FBSDID("$FreeBSD$"); #include #include #include /* for DELAY */ +#include #include /* */ #include #include @@ -112,7 +114,6 @@ MODULE_DEPEND(rge, ether, 1, 1, 1); MODULE_DEPEND(rge, miibus, 1, 1, 1); /* #define DEBUG */ -/*#define RX_COPY */ #define RGE_TX_THRESHOLD 1024 #define RGE_TX_Q_SIZE 1024 @@ -204,10 +205,18 @@ ldadd_wu(unsigned int value, unsigned lo return value; } +static __inline__ uint32_t +xlr_enable_kx(void) +{ + uint32_t sr = mips_rd_status(); + + mips_wr_status((sr & ~MIPS_SR_INT_IE) | MIPS_SR_KX); + return sr; +} + /* #define mac_stats_add(x, val) ({(x) += (val);}) */ #define mac_stats_add(x, val) ldadd_wu(val, &x) - #define XLR_MAX_CORE 8 #define RGE_LOCK_INIT(_sc, _name) \ mtx_init(&(_sc)->rge_mtx, _name, MTX_NETWORK_LOCK, MTX_DEF) @@ -332,56 +341,6 @@ DRIVER_MODULE(miibus, rge, miibus_driver #define STR(x) __STR(x) #endif -#define XKPHYS 0x8000000000000000 -/* -- No longer needed RRS -static __inline__ uint32_t -lw_40bit_phys(uint64_t phys, int cca) -{ - uint64_t addr; - uint32_t value = 0; - unsigned long flags; - - addr = XKPHYS | ((uint64_t) cca << 59) | (phys & 0xfffffffffcULL); - - enable_KX(flags); - __asm__ __volatile__( - ".set push\n" - ".set noreorder\n" - ".set mips64\n" - "lw %0, 0(%1) \n" - ".set pop\n" - : "=r"(value) - : "r"(addr)); - - disable_KX(flags); - return value; -} -*/ -/* -- No longer used RRS -static __inline__ uint64_t -ld_40bit_phys(uint64_t phys, int cca) -{ - uint64_t addr; - uint64_t value = 0; - unsigned long flags; - - - addr = XKPHYS | ((uint64_t) cca << 59) | (phys & 0xfffffffffcULL); - enable_KX(flags); - __asm__ __volatile__( - ".set push\n" - ".set noreorder\n" - ".set mips64\n" - "ld %0, 0(%1) \n" - ".set pop\n" - : "=r"(value) - : "r"(addr)); - - disable_KX(flags); - return value; -} -*/ - void *xlr_tx_ring_mem; struct tx_desc_node { @@ -449,7 +408,7 @@ init_p2d_allocation(void) for (i = 0; i < 32; i++) { if (cpumask & (1 << i)) { - cpu = cpu_ltop_map[i]; + cpu = i; if (!active_core[cpu / 4]) { active_core[cpu / 4] = 1; xlr_total_active_core++; @@ -507,7 +466,7 @@ get_p2d_desc(void) { struct tx_desc_node *node; struct p2d_tx_desc *tx_desc = NULL; - int cpu = xlr_cpu_id(); + int cpu = xlr_core_id(); mtx_lock_spin(&tx_desc_lock[cpu]); node = TAILQ_FIRST(&tx_frag_desc[cpu]); @@ -527,7 +486,7 @@ static void free_p2d_desc(struct p2d_tx_desc *tx_desc) { struct tx_desc_node *node; - int cpu = xlr_cpu_id(); + int cpu = xlr_core_id(); mtx_lock_spin(&tx_desc_lock[cpu]); node = TAILQ_FIRST(&free_tx_frag_desc[cpu]); @@ -553,7 +512,7 @@ build_frag_list(struct mbuf *m_head, str vm_offset_t taddr; uint64_t fr_stid; - fr_stid = (xlr_cpu_id() << 3) + xlr_thr_id() + 4; + fr_stid = (xlr_core_id() << 3) + xlr_thr_id() + 4; if (tx_desc == NULL) return 1; @@ -620,21 +579,6 @@ build_frag_list(struct mbuf *m_head, str static void release_tx_desc(struct msgrng_msg *msg, int rel_buf) { - /* - * OLD code: vm_paddr_t paddr = msg->msg0 & 0xffffffffffULL; - * uint64_t temp; struct p2d_tx_desc *tx_desc; struct mbuf *m; - * - * paddr += (XLR_MAX_TX_FRAGS * sizeof(uint64_t)); *** In o32 we will - * crash here ****** temp = ld_40bit_phys(paddr, 3); tx_desc = - * (struct p2d_tx_desc *)((vm_offset_t)temp); - * - * if (rel_buf) { paddr += sizeof(uint64_t); - * - * temp = ld_40bit_phys(paddr, 3); - * - * m = (struct mbuf *)((vm_offset_t)temp); m_freem(m); } printf("Call - * fre_p2d_desc\n"); free_p2d_desc(tx_desc); - */ struct p2d_tx_desc *tx_desc, *chk_addr; struct mbuf *m; @@ -652,52 +596,6 @@ release_tx_desc(struct msgrng_msg *msg, free_p2d_desc(tx_desc); } -#ifdef RX_COPY -#define RGE_MAX_NUM_DESC (6 * MAX_NUM_DESC) -uint8_t *rge_rx_buffers[RGE_MAX_NUM_DESC]; -static struct mtx rge_rx_mtx; -int g_rx_buf_head; - -static void -init_rx_buf(void) -{ - int i; - uint8_t *buf, *start; - uint32_t size, *ptr; - - mtx_init(&rge_rx_mtx, "xlr rx_desc", NULL, MTX_SPIN); - - size = (RGE_MAX_NUM_DESC * (MAX_FRAME_SIZE + XLR_CACHELINE_SIZE)); - - start = (uint8_t *) contigmalloc(size, M_DEVBUF, M_NOWAIT | M_ZERO, - 0, 0xffffffff, XLR_CACHELINE_SIZE, 0); - if (start == NULL) - panic("NO RX BUFFERS"); - buf = start; - size = (MAX_FRAME_SIZE + XLR_CACHELINE_SIZE); - for (i = 0; i < RGE_MAX_NUM_DESC; i++) { - buf = start + (i * size); - ptr = (uint32_t *) buf; - *ptr = (uint32_t) buf; - rge_rx_buffers[i] = buf + XLR_CACHELINE_SIZE; - } -} - -static void * -get_rx_buf(void) -{ - void *ptr = NULL; - - mtx_lock_spin(&rge_rx_mtx); - if (g_rx_buf_head < RGE_MAX_NUM_DESC) { - ptr = (void *)rge_rx_buffers[g_rx_buf_head]; - g_rx_buf_head++; - } - mtx_unlock_spin(&rge_rx_mtx); - return ptr; -} - -#endif static struct mbuf * get_mbuf(void) @@ -716,23 +614,16 @@ static void free_buf(vm_paddr_t paddr) { struct mbuf *m; - uint32_t *temp; - uint32_t mag, um; + uint32_t mag, um, sr; + + sr = xlr_enable_kx(); + um = xlr_paddr_lw(paddr - XLR_CACHELINE_SIZE); + mag = xlr_paddr_lw(paddr - XLR_CACHELINE_SIZE + sizeof(uint32_t)); + mips_wr_status(sr); - /* - * This will crash I think. RRS temp = lw_40bit_phys((paddr - - * XLR_CACHELINE_SIZE), 3); m = (struct mbuf *)temp; - */ - /* - * This gets us a kseg0 address for the mbuf/magic on the ring but - * we need to get the va to free the mbuf. This is stored at *temp; - */ - temp = (uint32_t *) MIPS_PHYS_TO_KSEG0(paddr - XLR_CACHELINE_SIZE); - um = temp[0]; - mag = temp[1]; if (mag != 0xf00bad) { - printf("Something is wrong kseg:%p found mag:%x not 0xf00bad\n", - temp, mag); + printf("Something is wrong kseg:%lx found mag:%x not 0xf00bad\n", + (u_long)paddr, mag); return; } m = (struct mbuf *)um; @@ -743,19 +634,13 @@ free_buf(vm_paddr_t paddr) static void * get_buf(void) { -#ifdef RX_COPY - return get_rx_buf(); -#else struct mbuf *m_new = NULL; - + unsigned int *md; #ifdef INVARIANTS vm_paddr_t temp1, temp2; - #endif - unsigned int *md; m_new = get_mbuf(); - if (m_new == NULL) return NULL; @@ -765,8 +650,6 @@ get_buf(void) md[1] = 0xf00bad; m_adj(m_new, XLR_CACHELINE_SIZE); - - /* return (void *)m_new; */ #ifdef INVARIANTS temp1 = vtophys((vm_offset_t)m_new->m_data); temp2 = vtophys((vm_offset_t)m_new->m_data + 1536); @@ -774,7 +657,6 @@ get_buf(void) panic("ALLOCED BUFFER IS NOT CONTIGUOUS\n"); #endif return (void *)m_new->m_data; -#endif } /********************************************************************** @@ -826,13 +708,13 @@ xlr_mac_send_fr(struct driver_data *priv { int stid = priv->rfrbucket; struct msgrng_msg msg; - int vcpu = (xlr_cpu_id() << 2) + xlr_thr_id(); + int vcpu = xlr_cpu_id(); mac_make_desc_rfr(&msg, addr); /* Send the packet to MAC */ - dbg_msg("mac_%d: Sending free packet %llx to stid %d\n", - priv->instance, addr, stid); + dbg_msg("mac_%d: Sending free packet %lx to stid %d\n", + priv->instance, (u_long)addr, stid); if (priv->type == XLR_XGMAC) { while (message_send(1, MSGRNG_CODE_XGMAC, stid, &msg)); } else { @@ -1084,18 +966,25 @@ rmi_xlr_config_pde(struct driver_data *p /* uint32_t desc_pack_ctrl = 0; */ uint32_t cpumask; - cpumask = PCPU_GET(cpumask) | PCPU_GET(other_cpus); + cpumask = PCPU_GET(cpumask); +#ifdef SMP + /* + * rge may be called before SMP start in a BOOTP/NFSROOT + * setup. we will distribute packets to other cpus only when + * the SMP is started. + */ + if (smp_started) + cpumask |= PCPU_GET(other_cpus); +#endif - for (i = 0; i < 32; i++) { + for (i = 0; i < MAXCPU; i++) { if (cpumask & (1 << i)) { - cpu = cpu_ltop_map[i]; + cpu = i; bucket = ((cpu >> 2) << 3); - //|(cpu & 0x03); bucket_map |= (1ULL << bucket); - dbg_msg("i=%d, cpu=%d, bucket = %d, bucket_map=%llx\n", - i, cpu, bucket, bucket_map); } } + printf("rmi_xlr_config_pde: bucket_map=%llx\n", bucket_map); /* bucket_map = 0x1; */ xlr_write_reg(priv->mmio, R_PDE_CLASS_0, (bucket_map & 0xffffffff)); @@ -1116,6 +1005,28 @@ rmi_xlr_config_pde(struct driver_data *p } static void +rge_smp_update_pde(void *dummy __unused) +{ + int i; + struct driver_data *priv; + struct rge_softc *sc; + + printf("Updating packet distribution for SMP\n"); + for (i = 0; i < XLR_MAX_MACS; i++) { + sc = dev_mac[i]; + if (!sc) + continue; + priv = &(sc->priv); + rmi_xlr_mac_set_enable(priv, 0); + rmi_xlr_config_pde(priv); + rmi_xlr_mac_set_enable(priv, 1); + } +} + +SYSINIT(rge_smp_update_pde, SI_SUB_SMP, SI_ORDER_ANY, rge_smp_update_pde, NULL); + + +static void rmi_xlr_config_parser(struct driver_data *priv) { /* @@ -1613,10 +1524,7 @@ retry: static void mac_frin_replenish(void *args /* ignored */ ) { -#ifdef RX_COPY - return; -#else - int cpu = xlr_cpu_id(); + int cpu = xlr_core_id(); int done = 0; int i = 0; @@ -1685,7 +1593,6 @@ mac_frin_replenish(void *args /* ignored if (done == XLR_MAX_MACS) break; } -#endif } static volatile uint32_t g_tx_frm_tx_ok=0; @@ -1716,8 +1623,8 @@ rmi_xlr_mac_msgring_handler(int bucket, struct rge_softc *sc = NULL; struct driver_data *priv = 0; struct ifnet *ifp; - int cpu = xlr_cpu_id(); - int vcpu = (cpu << 2) + xlr_thr_id(); + int vcpu = xlr_cpu_id(); + int cpu = xlr_core_id(); dbg_msg("mac: bucket=%d, size=%d, code=%d, stid=%d, msg0=%llx msg1=%llx\n", bucket, size, code, stid, msg->msg0, msg->msg1); @@ -2098,80 +2005,18 @@ rge_release_resources(struct rge_softc * uint32_t gmac_rx_fail[32]; uint32_t gmac_rx_pass[32]; -#ifdef RX_COPY static void rge_rx(struct rge_softc *sc, vm_paddr_t paddr, int len) { - /* - * struct mbuf *m = (struct mbuf *)*(unsigned int *)((char *)addr - - * XLR_CACHELINE_SIZE); - */ struct mbuf *m; - void *ptr; - uint32_t *temp; + uint32_t tm, mag, sr; struct ifnet *ifp = sc->rge_ifp; - unsigned long msgrng_flags; - int cpu = PCPU_GET(cpuid); - - - temp = (uint32_t *) MIPS_PHYS_TO_KSEG0(paddr - XLR_CACHELINE_SIZE); - ptr = (void *)(temp + XLR_CACHELINE_SIZE); - m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); - if (m != NULL) { - m->m_len = m->m_pkthdr.len = MCLBYTES; - m_copyback(m, 0, len + BYTE_OFFSET, ptr); - /* align the data */ - m->m_data += BYTE_OFFSET; - m->m_pkthdr.len = m->m_len = len; - m->m_pkthdr.rcvif = ifp; - gmac_rx_pass[cpu]++; - } else { - gmac_rx_fail[cpu]++; - } - msgrng_access_enable(msgrng_flags); - xlr_mac_send_fr(&sc->priv, paddr, MAX_FRAME_SIZE); - msgrng_access_disable(msgrng_flags); - -#ifdef DUMP_PACKETS - { - int i = 0; - unsigned char *buf = (char *)m->m_data; + sr = xlr_enable_kx(); + tm = xlr_paddr_lw(paddr - XLR_CACHELINE_SIZE); + mag = xlr_paddr_lw(paddr - XLR_CACHELINE_SIZE + sizeof(uint32_t)); + mips_wr_status(sr); - printf("Rx Packet: length=%d\n", len); - for (i = 0; i < 64; i++) { - if (i && (i % 16) == 0) - printf("\n"); - printf("%02x ", buf[i]); - } - printf("\n"); - } -#endif - - - if (m) { - ifp->if_ipackets++; - (*ifp->if_input) (ifp, m); - } -} - -#else -static void -rge_rx(struct rge_softc *sc, vm_paddr_t paddr, int len) -{ - /* - * struct mbuf *m = (struct mbuf *)*(unsigned int *)((char *)addr - - * XLR_CACHELINE_SIZE); - */ - struct mbuf *m; - uint32_t *temp, tm, mag; - - struct ifnet *ifp = sc->rge_ifp; - - - temp = (uint32_t *) MIPS_PHYS_TO_KSEG0(paddr - XLR_CACHELINE_SIZE); - tm = temp[0]; - mag = temp[1]; m = (struct mbuf *)tm; if (mag != 0xf00bad) { /* somebody else packet Error - FIXME in intialization */ @@ -2201,8 +2046,6 @@ rge_rx(struct rge_softc *sc, vm_paddr_t (*ifp->if_input) (ifp, m); } -#endif *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Sun May 16 19:44:08 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 690FA106564A; Sun, 16 May 2010 19:44:08 +0000 (UTC) (envelope-from pjd@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 570B58FC14; Sun, 16 May 2010 19:44:08 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GJi8YX096964; Sun, 16 May 2010 19:44:08 GMT (envelope-from pjd@svn.freebsd.org) Received: (from pjd@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GJi8bM096961; Sun, 16 May 2010 19:44:08 GMT (envelope-from pjd@svn.freebsd.org) Message-Id: <201005161944.o4GJi8bM096961@svn.freebsd.org> From: Pawel Jakub Dawidek Date: Sun, 16 May 2010 19:44:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208166 - in head: cddl/contrib/opensolaris/lib/libzpool/common/sys sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 19:44:08 -0000 Author: pjd Date: Sun May 16 19:44:08 2010 New Revision: 208166 URL: http://svn.freebsd.org/changeset/base/208166 Log: Fix userland build by making io_task available only for the kernel and by providing taskq_dispatch_safe() macro. MFC after: 1 week Modified: head/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h Modified: head/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h ============================================================================== --- head/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h Sun May 16 19:43:48 2010 (r208165) +++ head/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h Sun May 16 19:44:08 2010 (r208166) @@ -343,6 +343,9 @@ extern void taskq_wait(taskq_t *); extern int taskq_member(taskq_t *, void *); extern void system_taskq_init(void); +#define taskq_dispatch_safe(tq, func, arg, task) \ + taskq_dispatch((tq), (func), (arg), TQ_SLEEP) + #define XVA_MAPSIZE 3 #define XVA_MAGIC 0x78766174 Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h Sun May 16 19:43:48 2010 (r208165) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h Sun May 16 19:44:08 2010 (r208166) @@ -317,8 +317,10 @@ struct zio { /* FMA state */ uint64_t io_ena; +#ifdef _KERNEL /* FreeBSD only. */ struct ostask io_task; +#endif }; extern zio_t *zio_null(zio_t *pio, spa_t *spa, From owner-svn-src-all@FreeBSD.ORG Sun May 16 19:54:43 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 989A71065672; Sun, 16 May 2010 19:54:43 +0000 (UTC) (envelope-from juli@clockworksquid.com) Received: from mail-px0-f182.google.com (mail-px0-f182.google.com [209.85.212.182]) by mx1.freebsd.org (Postfix) with ESMTP id 5A8BA8FC08; Sun, 16 May 2010 19:54:42 +0000 (UTC) Received: by pxi7 with SMTP id 7so860374pxi.13 for ; Sun, 16 May 2010 12:54:42 -0700 (PDT) Received: by 10.141.124.3 with SMTP id b3mr2904972rvn.123.1274039682616; Sun, 16 May 2010 12:54:42 -0700 (PDT) MIME-Version: 1.0 Sender: juli@clockworksquid.com Received: by 10.140.247.13 with HTTP; Sun, 16 May 2010 12:54:22 -0700 (PDT) In-Reply-To: <201005161943.o4GJhnTo096839@svn.freebsd.org> References: <201005161943.o4GJhnTo096839@svn.freebsd.org> From: Juli Mallett Date: Sun, 16 May 2010 12:54:22 -0700 X-Google-Sender-Auth: _jXcWiqN0hqDjkNSeNDAInP3sWQ Message-ID: To: Randall Stewart Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r208165 - in head/sys: kern mips/conf mips/include mips/mips mips/rmi mips/rmi/dev/xlr X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 19:54:43 -0000 On Sun, May 16, 2010 at 12:43, Randall Stewart wrote: > Author: rrs > Date: Sun May 16 19:43:48 2010 > New Revision: 208165 > URL: http://svn.freebsd.org/changeset/base/208165 > > Log: > =A0This pushes all of JC's patches that I have in place. I > =A0am now able to run 32 cores ok.. but I still will hang > =A0on buildworld with a NFS problem. I suspect I am missing > =A0a patch for the netlogic rge driver. > > =A0JC check and see if I am missing anything except your > =A0core-mask changes This isn't a very good commit message. Commits communicate things going forward. A follow-up E-Mail CCing JC would have been a good way to chat with him about its completeness. More importantly, though, there's just no description of the contents. This is particularly frustrating as it's also not broken up into functional chunks very well. Given the fact that there are MI changes and pan-MIPS changes here it would be nice to see a little more care taken. The changes to the MIPS MP code, for instance, I thought we had discussed and decided were sub-par and easily made less invasive. I can't comment on the RMI-specific stuff except to say that it's an unenumerated jumble of VM, networking and SMP changes. From owner-svn-src-all@FreeBSD.ORG Sun May 16 19:57:39 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 19B4E1065673; Sun, 16 May 2010 19:57:39 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 084B58FC0C; Sun, 16 May 2010 19:57:39 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GJvcEP099940; Sun, 16 May 2010 19:57:38 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GJvcVV099932; Sun, 16 May 2010 19:57:38 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201005161957.o4GJvcVV099932@svn.freebsd.org> From: Nathan Whitehorn Date: Sun, 16 May 2010 19:57:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208167 - head/sys/powerpc/powermac X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 19:57:39 -0000 Author: nwhitehorn Date: Sun May 16 19:57:38 2010 New Revision: 208167 URL: http://svn.freebsd.org/changeset/base/208167 Log: Enable smu(4) to report fan speeds on late-model Powermac G5s. Modified: head/sys/powerpc/powermac/smu.c Modified: head/sys/powerpc/powermac/smu.c ============================================================================== --- head/sys/powerpc/powermac/smu.c Sun May 16 19:44:08 2010 (r208166) +++ head/sys/powerpc/powermac/smu.c Sun May 16 19:57:38 2010 (r208167) @@ -662,14 +662,34 @@ static int smu_fan_read_rpm(device_t smu, struct smu_fan *fan) { struct smu_cmd cmd; + int rpm, error; - cmd.cmd = SMU_FAN; - cmd.len = 1; - cmd.data[0] = 1; + if (!fan->old_style) { + cmd.cmd = SMU_FAN; + cmd.len = 2; + cmd.data[0] = 0x31; + cmd.data[1] = fan->reg; + + error = smu_run_cmd(smu, &cmd, 1); + if (error) + fan->old_style = 1; + + rpm = (cmd.data[0] << 8) | cmd.data[1]; + } - smu_run_cmd(smu, &cmd, 1); + if (fan->old_style) { + cmd.cmd = SMU_FAN; + cmd.len = 1; + cmd.data[0] = 1; + + error = smu_run_cmd(smu, &cmd, 1); + if (error) + return (error); - return ((cmd.data[fan->reg*2+1] << 8) | cmd.data[fan->reg*2+2]); + rpm = (cmd.data[fan->reg*2+1] << 8) | cmd.data[fan->reg*2+2]; + } + + return (rpm); } static int @@ -685,6 +705,9 @@ smu_fanrpm_sysctl(SYSCTL_HANDLER_ARGS) fan = &sc->sc_fans[arg2]; rpm = smu_fan_read_rpm(smu, fan); + if (rpm < 0) + return (rpm); + error = sysctl_handle_int(oidp, &rpm, 0, req); if (error || !req->newptr) From owner-svn-src-all@FreeBSD.ORG Sun May 16 20:13:58 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BD34A106564A; Sun, 16 May 2010 20:13:58 +0000 (UTC) (envelope-from dimitry@andric.com) Received: from tensor.andric.com (cl-327.ede-01.nl.sixxs.net [IPv6:2001:7b8:2ff:146::2]) by mx1.freebsd.org (Postfix) with ESMTP id 3BB878FC08; Sun, 16 May 2010 20:13:58 +0000 (UTC) Received: from [IPv6:2001:7b8:3a7:0:b97b:7c39:3a92:b81] (unknown [IPv6:2001:7b8:3a7:0:b97b:7c39:3a92:b81]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by tensor.andric.com (Postfix) with ESMTPSA id 29FAA5C43; Sun, 16 May 2010 22:13:57 +0200 (CEST) Message-ID: <4BF0520C.5040903@andric.com> Date: Sun, 16 May 2010 22:14:04 +0200 From: Dimitry Andric User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.9.2.5pre) Gecko/20100516 Lanikai/3.1pre MIME-Version: 1.0 To: Jeff Roberson References: <201004240705.o3O75aZP055400@svn.freebsd.org> In-Reply-To: <201004240705.o3O75aZP055400@svn.freebsd.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r207141 - in head: lib/libufs sbin/dumpfs sbin/fsck_ffs sbin/fsdb sbin/tunefs sys/kern sys/sys sys/ufs/ffs sys/ufs/ufs usr.sbin/makefs/ffs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 20:13:58 -0000 On 2010-04-24 09:05, Jeff Roberson wrote: > Author: jeff > Date: Sat Apr 24 07:05:35 2010 > New Revision: 207141 > URL: http://svn.freebsd.org/changeset/base/207141 > > Log: > - Merge soft-updates journaling from projects/suj/head into head. This > brings in support for an optional intent log which eliminates the need > for background fsck on unclean shutdown. Hi Jeff, Sorry that I am a bit late in checking this out, but my -CURRENT box was nice and stable, and only now did I update it. I found out that this specific commit has caused softupdates to become unstable for me. That is, when running a specific set of commands (just building the bash port), I get a few LORs involving softupdates; first this one: lock order reversal: 1st 0xe41e9ee4 bufwait (bufwait) @ /usr/src/sys/kern/vfs_bio.c:2581 2nd 0xc4e59a00 dirhash (dirhash) @ /usr/src/sys/ufs/ufs/ufs_dirhash.c:283 KDB: stack backtrace: db_trace_self_wrapper(c0cc05e4,f32287bc,c08e7c55,c08d7fcb,c0cc35be,...) at db_trace_self_wrapper+0x26 kdb_backtrace(c08d7fcb,c0cc35be,c4122fc8,c41263c8,f3228818,...) at kdb_backtrace+0x29 _witness_debugger(c0cc35be,c4e59a00,c0ce70a0,c41263c8,c0ce6d25,...) at _witness_debugger+0x25 witness_checkorder(c4e59a00,9,c0ce6d25,11b,0,...) at witness_checkorder+0x839 _sx_xlock(c4e59a00,0,c0ce6d25,11b,c4fc01d0,...) at _sx_xlock+0x85 ufsdirhash_acquire(e41e9e84,e74f4800,200,e74f4818,f32288e8,...) at ufsdirhash_acquire+0x35 ufsdirhash_add(c4fc01d0,f3228944,818,f32288d4,f32288d8,...) at ufsdirhash_add+0x13 ufs_direnter(c4fc2660,c4fdebb0,f3228944,f3228bd4,0,...) at ufs_direnter+0x6f9 ufs_makeinode(f3228bd4,0,f3228b30,f3228a8c,c0bfc9f5,...) at ufs_makeinode+0x557 ufs_create(f3228b30,f3228b48,0,0,f3228ba8,...) at ufs_create+0x30 VOP_CREATE_APV(c0dcde00,f3228b30,f3228bd4,f3228ac8,0,...) at VOP_CREATE_APV+0xa5 vn_open_cred(f3228ba8,f3228c5c,1a4,0,c4ccf900,...) at vn_open_cred+0x215 vn_open(f3228ba8,f3228c5c,1a4,c4d22188,0,...) at vn_open+0x3b kern_openat(c4e55900,ffffff9c,28415180,0,a02,...) at kern_openat+0x125 kern_open(c4e55900,28415180,0,a01,1a4,...) at kern_open+0x35 open(c4e55900,f3228cf8,c0cf8fe1,c0cc3e0e,c4e4daa0,...) at open+0x30 syscall(f3228d38) at syscall+0x220 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (5, FreeBSD ELF32, open), eip = 0x283685e3, esp = 0xbfbfe6fc, ebp = 0xbfbfe728 --- Then the next one: lock order reversal: 1st 0xc4eb3c08 ufs (ufs) @ /usr/src/sys/kern/vfs_lookup.c:502 2nd 0xe415b130 bufwait (bufwait) @ /usr/src/sys/ufs/ffs/ffs_softdep.c:11189 3rd 0xc50778d8 ufs (ufs) @ /usr/src/sys/kern/vfs_subr.c:2091 KDB: stack backtrace: db_trace_self_wrapper(c0cc05e4,f3225300,c08e7c55,c08d7fcb,c0cc35d7,...) at db_trace_self_wrapper+0x26 kdb_backtrace(c08d7fcb,c0cc35d7,c4122fc8,c4126360,f322535c,...) at kdb_backtrace+0x29 _witness_debugger(c0cc35d7,c50778d8,c0cb5991,c4126360,c0cca6ba,...) at _witness_debugger+0x25 witness_checkorder(c50778d8,9,c0cca6ba,82b,0,...) at witness_checkorder+0x839 __lockmgr_args(c50778d8,80100,c50778f8,0,0,...) at __lockmgr_args+0x7f9 ffs_lock(f3225480,c08e79fb,c0cc9b5f,80100,c5077880,...) at ffs_lock+0x8a VOP_LOCK1_APV(c0dcde00,f3225480,c4e55be4,c0de87a0,c5077880,...) at VOP_LOCK1_APV+0xb5 _vn_lock(c5077880,80100,c0cca6ba,82b,4,...) at _vn_lock+0x5e vget(c5077880,80100,c4e55b40,50,0,...) at vget+0xb9 vfs_hash_get(c4ac8ca8,1a9e03,80000,c4e55b40,f32255d0,...) at vfs_hash_get+0xe6 ffs_vgetf(c4ac8ca8,1a9e03,80000,f32255d0,1,...) at ffs_vgetf+0x49 softdep_sync_metadata(c4eb3bb0,0,c0ce68d1,147,0,...) at softdep_sync_metadata+0xc92 ffs_syncvnode(c4eb3bb0,1,c4e55b40,f3225690,246,...) at ffs_syncvnode+0x3e2 ffs_truncate(c4eb3bb0,a00,0,880,c4ccf900,...) at ffs_truncate+0x862 ufs_direnter(c4eb3bb0,c5111bb0,f3225944,f3225bd4,0,...) at ufs_direnter+0x8d4 ufs_makeinode(f3225bd4,0,f3225b30,f3225a8c,c0bfc9f5,...) at ufs_makeinode+0x557 ufs_create(f3225b30,f3225b48,0,0,f3225ba8,...) at ufs_create+0x30 VOP_CREATE_APV(c0dcde00,f3225b30,f3225bd4,f3225ac8,0,...) at VOP_CREATE_APV+0xa5 vn_open_cred(f3225ba8,f3225c5c,1a4,0,c4ccf900,...) at vn_open_cred+0x215 vn_open(f3225ba8,f3225c5c,1a4,c4d22348,28411000,...) at vn_open+0x3b kern_openat(c4e55b40,ffffff9c,28409ad4,0,602,...) at kern_openat+0x125 kern_open(c4e55b40,28409ad4,0,601,1b6,...) at kern_open+0x35 open(c4e55b40,f3225cf8,c,c4e55b40,c4e4dd48,...) at open+0x30 syscall(f3225d38) at syscall+0x220 Xint0x80_syscall() at Xint0x80_syscall+0x20 --- syscall (5, FreeBSD ELF32, open), eip = 0x281e15e3, esp = 0xbfbfe2cc, ebp = 0xbfbfe388 --- And soon after that second one, the system will just stop reacting to any keyboard input, or on any ssh sessions. It can still be ping'd, though, so something is definitely alive, but it is totally unusable. Is there any possibility of finding out whether there's a real deadlock going on? I can access ddb since it's a virtual machine. Btw, I ended up on r207141 by bisecting; r207139 works perfectly stable, r207141 will always hang up after a certain amount of time. I realize that r207141 was a merge from a project branch, so maybe I can try to bisect in that branch, to see if I can pinpoint a specific change that causes this breakage? From owner-svn-src-all@FreeBSD.ORG Sun May 16 20:31:31 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DF8A41065673; Sun, 16 May 2010 20:31:31 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CE6D88FC24; Sun, 16 May 2010 20:31:31 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GKVVHk008145; Sun, 16 May 2010 20:31:31 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GKVV2u008143; Sun, 16 May 2010 20:31:31 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201005162031.o4GKVV2u008143@svn.freebsd.org> From: Nathan Whitehorn Date: Sun, 16 May 2010 20:31:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208168 - head/sys/powerpc/powermac X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 20:31:32 -0000 Author: nwhitehorn Date: Sun May 16 20:31:31 2010 New Revision: 208168 URL: http://svn.freebsd.org/changeset/base/208168 Log: It is not necessary (and in some cases harmful) to hardcode ata_kauai's IRQ to 39 on K2 devices, as well as Shasta ones. Reported by: Andreas Tobler Modified: head/sys/powerpc/powermac/ata_kauai.c Modified: head/sys/powerpc/powermac/ata_kauai.c ============================================================================== --- head/sys/powerpc/powermac/ata_kauai.c Sun May 16 19:57:38 2010 (r208167) +++ head/sys/powerpc/powermac/ata_kauai.c Sun May 16 20:31:31 2010 (r208168) @@ -220,8 +220,9 @@ ata_kauai_probe(device_t dev) if (compatstring != NULL && strcmp(compatstring,"shasta-ata") == 0) sc->shasta = 1; - /* Regular Kauai controllers apparently need this hack */ - if (!sc->shasta) + /* Pre-K2 controllers apparently need this hack */ + if (!sc->shasta && + (compatstring == NULL || strcmp(compatstring, "K2-UATA") != 0)) bus_set_resource(dev, SYS_RES_IRQ, 0, 39, 1); rid = PCIR_BARS; From owner-svn-src-all@FreeBSD.ORG Sun May 16 20:43:17 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7AEBA1065672; Sun, 16 May 2010 20:43:17 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 69F478FC21; Sun, 16 May 2010 20:43:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GKhHpl010718; Sun, 16 May 2010 20:43:17 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GKhHp8010715; Sun, 16 May 2010 20:43:17 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <201005162043.o4GKhHp8010715@svn.freebsd.org> From: Tim Kientzle Date: Sun, 16 May 2010 20:43:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208169 - head/lib/libarchive X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 20:43:17 -0000 Author: kientzle Date: Sun May 16 20:43:17 2010 New Revision: 208169 URL: http://svn.freebsd.org/changeset/base/208169 Log: Reorganize slightly in preparation for making lzma and bz2 support conditional. Modified: head/lib/libarchive/Makefile head/lib/libarchive/config_freebsd.h Modified: head/lib/libarchive/Makefile ============================================================================== --- head/lib/libarchive/Makefile Sun May 16 20:31:31 2010 (r208168) +++ head/lib/libarchive/Makefile Sun May 16 20:43:17 2010 (r208169) @@ -2,8 +2,16 @@ .include LIB= archive -DPADD= ${LIBBZ2} ${LIBZ} ${LIBMD} ${LIBLZMA} -LDADD= -lbz2 -lz -lmd -llzma +DPADD= ${LIBZ} ${LIBMD} +LDADD= -lz -lmd + +DPADD+= ${LIBBZ2} +LDADD+= -lbz2 +CFLAGS+= -DHAVE_BZLIB_H 1 + +DPADD+= ${LIBLZMA} +LDADD+= -llzma +CFLAGS+= -DHAVE_LIBLZMA=1 -DHAVE_LZMA_H=1 # FreeBSD SHLIB_MAJOR value is managed as part of the FreeBSD system. # It has no real relation to the libarchive version number. @@ -11,7 +19,6 @@ SHLIB_MAJOR= 5 CFLAGS+= -DPLATFORM_CONFIG_H=\"config_freebsd.h\" CFLAGS+= -I${.OBJDIR} -CFLAGS+= -DHAVE_LIBLZMA=1 -DHAVE_LZMA_H=1 .if ${MK_OPENSSL} != "no" CFLAGS+= -DWITH_OPENSSL Modified: head/lib/libarchive/config_freebsd.h ============================================================================== --- head/lib/libarchive/config_freebsd.h Sun May 16 20:31:31 2010 (r208168) +++ head/lib/libarchive/config_freebsd.h Sun May 16 20:43:17 2010 (r208169) @@ -52,7 +52,6 @@ #endif #define HAVE_BSDXML_H 1 -#define HAVE_BZLIB_H 1 #define HAVE_CHFLAGS 1 #define HAVE_CHOWN 1 #define HAVE_DECL_INT64_MAX 1 From owner-svn-src-all@FreeBSD.ORG Sun May 16 20:48:02 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A25241065672; Sun, 16 May 2010 20:48:02 +0000 (UTC) (envelope-from kientzle@freebsd.org) Received: from monday.kientzle.com (kientzle.com [66.166.149.50]) by mx1.freebsd.org (Postfix) with ESMTP id 58C828FC17; Sun, 16 May 2010 20:48:02 +0000 (UTC) Received: (from root@localhost) by monday.kientzle.com (8.14.3/8.14.3) id o4GKmIjd006039; Sun, 16 May 2010 20:48:18 GMT (envelope-from kientzle@freebsd.org) Received: from horton.x.kientzle.com (fw2.kientzle.com [10.123.1.2]) by kientzle.com with SMTP id itt5meaxfyidh7etigcicbfwww; Sun, 16 May 2010 20:48:17 +0000 (UTC) (envelope-from kientzle@freebsd.org) Message-ID: <4BF059FF.8050002@freebsd.org> Date: Sun, 16 May 2010 13:47:59 -0700 From: Tim Kientzle User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.8.1.23) Gecko/20100314 SeaMonkey/1.1.18 MIME-Version: 1.0 To: Anonymous References: <201005081628.o48GSM9s067363__30886.3841965378$1273336146$gmane$org@svn.freebsd.org> <86aas3oc8b.fsf@gmail.com> In-Reply-To: <86aas3oc8b.fsf@gmail.com> Content-Type: multipart/mixed; boundary="------------040200080200060400000804" Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r207790 - head/usr.bin/tar X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 20:48:02 -0000 This is a multi-part message in MIME format. --------------040200080200060400000804 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Please try the attached patch and let me know if it fixes it for you... Cheers, Tim Anonymous wrote: > Tim Kientzle writes: > >> Author: kientzle >> Date: Sat May 8 16:28:22 2010 >> New Revision: 207790 >> URL: http://svn.freebsd.org/changeset/base/207790 >> >> Log: >> Config updates. >> >> Modified: >> head/usr.bin/tar/config_freebsd.h > > Smth broke after this commit. Hitting ^T causes ports to barf errors. > > before > > x11-toolkits/wxgtk28 $ make BATCH= patch > ===> Extracting for wxgtk2-2.8.10_4 > => MD5 Checksum OK for wxGTK-2.8.10.tar.bz2. > => SHA256 Checksum OK for wxGTK-2.8.10.tar.bz2. > load: 0.05 cmd: sh 64229 [running] 0.00r 0.00u 0.00s 0% 1576k > load: 0.05 cmd: bzip2 64231 [running] 0.19r 0.16u 0.00s 2% 4564k > load: 0.05 cmd: bsdtar 64232 [running] 0.36r 0.00u 0.13s 1% 2420k > load: 0.05 cmd: bzip2 64231 [running] 0.56r 0.47u 0.00s 4% 4568k > load: 0.05 cmd: bsdtar 64232 [running] 1.82r 0.05u 0.62s 6% 2448k > ===> Patching for wxgtk2-2.8.10_4 > ===> Applying FreeBSD patches for wxgtk2-2.8.10_4 > > after > > x11-toolkits/wxgtk28 $ make BATCH= patch > load: 0.05 cmd: make 63587 [zio->io_cv)] 0.19r 0.03u 0.00s 0% 1268k > ===> Extracting for wxgtk2-2.8.10_4 > load: 0.05 cmd: awk 63621 [zio->io_cv)] 0.01r 0.00u 0.00s 0% 1492k > => MD5 Checksum OK for wxGTK-2.8.10.tar.bz2. > => SHA256 Checksum OK for wxGTK-2.8.10.tar.bz2. > load: 0.05 cmd: bzip2 63631 [running] 0.13r 0.10u 0.00s 1% 4564k > wxGTK-2.8.10/contrib/include/wx/fl/controlbar.h: Error reading stdin > load: 0.05 cmd: bzip2 63631 [running] 0.34r 0.30u 0.00s 3% 4568k > tar: Error exit delayed from previous errors. > *** Error code 1 > > Looks like errors are related to extracting from stdin. > > $ bzip2 -dc wxGTK-2.8.10.tar.bz2 | tar xf - > load: 0.04 cmd: bzip2 65117 [running] 0.17r 0.07u 0.00s 0% 4564k > tar: Error reading stdin > load: 0.04 cmd: bzip2 65117 [running] 0.33r 0.23u 0.00s 2% 4568k > tar: Error exit delayed from previous errors. > zsh: broken pipe bzip2 -dc wxGTK-2.8.10.tar.bz2 | > zsh: exit 1 tar xf - > > --------------040200080200060400000804 Content-Type: text/x-patch; name="libarchive_retry_eintr.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="libarchive_retry_eintr.patch" Index: archive_read_open_fd.c =================================================================== --- archive_read_open_fd.c (revision 208162) +++ archive_read_open_fd.c (working copy) @@ -116,11 +116,15 @@ ssize_t bytes_read; *buff = mine->buffer; - bytes_read = read(mine->fd, mine->buffer, mine->block_size); - if (bytes_read < 0) { - archive_set_error(a, errno, "Error reading fd %d", mine->fd); + for (;;) { + bytes_read = read(mine->fd, mine->buffer, mine->block_size); + if (bytes_read < 0) { + if (errno == EINTR) + continue; + archive_set_error(a, errno, "Error reading fd %d", mine->fd); + } + return (bytes_read); } - return (bytes_read); } #if ARCHIVE_API_VERSION < 2 Index: archive_read_open_filename.c =================================================================== --- archive_read_open_filename.c (revision 208162) +++ archive_read_open_filename.c (working copy) @@ -160,15 +160,19 @@ ssize_t bytes_read; *buff = mine->buffer; - bytes_read = read(mine->fd, mine->buffer, mine->block_size); - if (bytes_read < 0) { - if (mine->filename[0] == '\0') - archive_set_error(a, errno, "Error reading stdin"); - else - archive_set_error(a, errno, "Error reading '%s'", - mine->filename); + for (;;) { + bytes_read = read(mine->fd, mine->buffer, mine->block_size); + if (bytes_read < 0) { + if (errno == EINTR) + continue; + else if (mine->filename[0] == '\0') + archive_set_error(a, errno, "Error reading stdin"); + else + archive_set_error(a, errno, "Error reading '%s'", + mine->filename); + } + return (bytes_read); } - return (bytes_read); } #if ARCHIVE_API_VERSION < 2 --------------040200080200060400000804-- From owner-svn-src-all@FreeBSD.ORG Sun May 16 21:06:27 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 081E31065670; Sun, 16 May 2010 21:06:27 +0000 (UTC) (envelope-from pjd@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id EABAC8FC0A; Sun, 16 May 2010 21:06:26 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GL6Qur015818; Sun, 16 May 2010 21:06:26 GMT (envelope-from pjd@svn.freebsd.org) Received: (from pjd@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GL6Qnm015816; Sun, 16 May 2010 21:06:26 GMT (envelope-from pjd@svn.freebsd.org) Message-Id: <201005162106.o4GL6Qnm015816@svn.freebsd.org> From: Pawel Jakub Dawidek Date: Sun, 16 May 2010 21:06:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208170 - head/usr.bin/wc X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 21:06:27 -0000 Author: pjd Date: Sun May 16 21:06:26 2010 New Revision: 208170 URL: http://svn.freebsd.org/changeset/base/208170 Log: On SIGINFO print current values on stderr. Modified: head/usr.bin/wc/wc.c Modified: head/usr.bin/wc/wc.c ============================================================================== --- head/usr.bin/wc/wc.c Sun May 16 20:43:17 2010 (r208169) +++ head/usr.bin/wc/wc.c Sun May 16 21:06:26 2010 (r208170) @@ -63,11 +63,20 @@ __FBSDID("$FreeBSD$"); #include uintmax_t tlinect, twordct, tcharct, tlongline; -int doline, doword, dochar, domulti, dolongline; +int doline, doword, dochar, domulti, dolongline, siginfo; +static void show_cnt(const char *file, uintmax_t linect, uintmax_t wordct, + uintmax_t charct, uintmax_t llct); static int cnt(const char *); static void usage(void); +static void +siginfo_handler(int sig __unused) +{ + + siginfo = 1; +} + int main(int argc, char *argv[]) { @@ -101,6 +110,8 @@ main(int argc, char *argv[]) argv += optind; argc -= optind; + (void)signal(SIGINFO, siginfo_handler); + /* Wc's flags are on by default. */ if (doline + doword + dochar + domulti + dolongline == 0) doline = doword = dochar = 1; @@ -110,31 +121,46 @@ main(int argc, char *argv[]) if (!*argv) { if (cnt((char *)NULL) != 0) ++errors; - else - (void)printf("\n"); - } - else do { - if (cnt(*argv) != 0) - ++errors; - else - (void)printf(" %s\n", *argv); - ++total; - } while(*++argv); - - if (total > 1) { - if (doline) - (void)printf(" %7ju", tlinect); - if (doword) - (void)printf(" %7ju", twordct); - if (dochar || domulti) - (void)printf(" %7ju", tcharct); - if (dolongline) - (void)printf(" %7ju", tlongline); - (void)printf(" total\n"); + } else { + do { + if (cnt(*argv) != 0) + ++errors; + ++total; + } while(*++argv); } + + if (total > 1) + show_cnt("total", tlinect, twordct, tcharct, tlongline); exit(errors == 0 ? 0 : 1); } +static void +show_cnt(const char *file, uintmax_t linect, uintmax_t wordct, + uintmax_t charct, uintmax_t llct) +{ + FILE *out; + + if (!siginfo) + out = stdout; + else { + out = stderr; + siginfo = 0; + } + + if (doline) + (void)fprintf(out, " %7ju", linect); + if (doword) + (void)fprintf(out, " %7ju", wordct); + if (dochar || domulti) + (void)fprintf(out, " %7ju", charct); + if (dolongline) + (void)fprintf(out, " %7ju", llct); + if (file != NULL) + (void)fprintf(out, " %s\n", file); + else + (void)fprintf(out, "\n"); +} + static int cnt(const char *file) { @@ -149,10 +175,9 @@ cnt(const char *file) mbstate_t mbs; linect = wordct = charct = llct = tmpll = 0; - if (file == NULL) { - file = "stdin"; + if (file == NULL) fd = STDIN_FILENO; - } else { + else { if ((fd = open(file, O_RDONLY, 0)) < 0) { warn("%s: open", file); return (1); @@ -171,6 +196,10 @@ cnt(const char *file) (void)close(fd); return (1); } + if (siginfo) { + show_cnt(file, linect, wordct, charct, + llct); + } charct += len; for (p = buf; len--; ++p) if (*p == '\n') { @@ -182,16 +211,13 @@ cnt(const char *file) tmpll++; } tlinect += linect; - (void)printf(" %7ju", linect); - if (dochar) { + if (dochar) tcharct += charct; - (void)printf(" %7ju", charct); - } if (dolongline) { if (llct > tlongline) tlongline = llct; - (void)printf(" %7ju", tlongline); } + show_cnt(file, linect, wordct, charct, llct); (void)close(fd); return (0); } @@ -206,8 +232,9 @@ cnt(const char *file) return (1); } if (S_ISREG(sb.st_mode)) { - (void)printf(" %7lld", (long long)sb.st_size); - tcharct += sb.st_size; + charct = sb.st_size; + show_cnt(file, linect, wordct, charct, llct); + tcharct += charct; (void)close(fd); return (0); } @@ -220,12 +247,14 @@ word: gotsp = 1; memset(&mbs, 0, sizeof(mbs)); while ((len = read(fd, buf, MAXBSIZE)) != 0) { if (len == -1) { - warn("%s: read", file); + warn("%s: read", file != NULL ? file : "stdin"); (void)close(fd); return (1); } p = buf; while (len > 0) { + if (siginfo) + show_cnt(file, linect, wordct, charct, llct); if (!domulti || MB_CUR_MAX == 1) { clen = 1; wch = (unsigned char)*p; @@ -233,7 +262,8 @@ word: gotsp = 1; (size_t)-1) { if (!warned) { errno = EILSEQ; - warn("%s", file); + warn("%s", + file != NULL ? file : "stdin"); warned = 1; } memset(&mbs, 0, sizeof(mbs)); @@ -264,24 +294,18 @@ word: gotsp = 1; } if (domulti && MB_CUR_MAX > 1) if (mbrtowc(NULL, NULL, 0, &mbs) == (size_t)-1 && !warned) - warn("%s", file); - if (doline) { + warn("%s", file != NULL ? file : "stdin"); + if (doline) tlinect += linect; - (void)printf(" %7ju", linect); - } - if (doword) { + if (doword) twordct += wordct; - (void)printf(" %7ju", wordct); - } - if (dochar || domulti) { + if (dochar || domulti) tcharct += charct; - (void)printf(" %7ju", charct); - } if (dolongline) { if (llct > tlongline) tlongline = llct; - (void)printf(" %7ju", llct); } + show_cnt(file, linect, wordct, charct, llct); (void)close(fd); return (0); } From owner-svn-src-all@FreeBSD.ORG Sun May 16 21:38:24 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 079721065670; Sun, 16 May 2010 21:38:24 +0000 (UTC) (envelope-from marius@alchemy.franken.de) Received: from alchemy.franken.de (alchemy.franken.de [194.94.249.214]) by mx1.freebsd.org (Postfix) with ESMTP id 737838FC0C; Sun, 16 May 2010 21:38:23 +0000 (UTC) Received: from alchemy.franken.de (localhost [127.0.0.1]) by alchemy.franken.de (8.14.3/8.14.3/ALCHEMY.FRANKEN.DE) with ESMTP id o4GLcMTP029152; Sun, 16 May 2010 23:38:22 +0200 (CEST) (envelope-from marius@alchemy.franken.de) Received: (from marius@localhost) by alchemy.franken.de (8.14.3/8.14.3/Submit) id o4GLcMIh029151; Sun, 16 May 2010 23:38:22 +0200 (CEST) (envelope-from marius) Date: Sun, 16 May 2010 23:38:22 +0200 From: Marius Strobl To: Nathan Whitehorn Message-ID: <20100516213822.GA49967@alchemy.franken.de> References: <201005161557.o4GFv0Lf046659@svn.freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201005161557.o4GFv0Lf046659@svn.freebsd.org> User-Agent: Mutt/1.4.2.3i Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r208152 - in head/sys: dev/ofw powerpc/aim powerpc/ofw X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 21:38:24 -0000 On Sun, May 16, 2010 at 03:57:00PM +0000, Nathan Whitehorn wrote: > Author: nwhitehorn > Date: Sun May 16 15:56:59 2010 > New Revision: 208152 > URL: http://svn.freebsd.org/changeset/base/208152 > > Log: > On PowerMac11,2 and (presumably) PowerMac12,1, we need to quiesce the > firmware in order to take over control of the SMU. Without doing this, > the firmware background process doing fan control will run amok as we > take over the system and crash the management chip. > > This is limited to these two machines because our kernel is heavily > dependent on firmware accesses, and so quiescing firmware can cause > nasty problems. > Given that the "quiesce" service isn't part of the Open Firmware standard nor of one of its supplements as far as I can see and given this service isn't available on sun4u I'd prefer this implementation to be entirely moved to MD parts instead (similar to the "SUNW," services which we keep MD). Marius From owner-svn-src-all@FreeBSD.ORG Sun May 16 21:47:07 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E2A241065672; Sun, 16 May 2010 21:47:07 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from argol.doit.wisc.edu (argol.doit.wisc.edu [144.92.197.212]) by mx1.freebsd.org (Postfix) with ESMTP id B16378FC08; Sun, 16 May 2010 21:47:07 +0000 (UTC) MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; CHARSET=US-ASCII; format=flowed Received: from avs-daemon.smtpauth3.wiscmail.wisc.edu by smtpauth3.wiscmail.wisc.edu (Sun Java(tm) System Messaging Server 7u2-7.05 32bit (built Jul 30 2009)) id <0L2J001008IJDI00@smtpauth3.wiscmail.wisc.edu>; Sun, 16 May 2010 16:47:07 -0500 (CDT) Received: from comporellon.tachypleus.net ([unknown] [76.210.66.137]) by smtpauth3.wiscmail.wisc.edu (Sun Java(tm) System Messaging Server 7u2-7.05 32bit (built Jul 30 2009)) with ESMTPSA id <0L2J00I988IH1G40@smtpauth3.wiscmail.wisc.edu>; Sun, 16 May 2010 16:47:06 -0500 (CDT) Date: Sun, 16 May 2010 16:47:05 -0500 From: Nathan Whitehorn In-reply-to: <20100516213822.GA49967@alchemy.franken.de> To: Marius Strobl Message-id: <4BF067D9.3030602@freebsd.org> X-Spam-Report: AuthenticatedSender=yes, SenderIP=76.210.66.137 X-Spam-PmxInfo: Server=avs-9, Version=5.5.9.395186, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2010.5.16.213917, SenderIP=76.210.66.137 References: <201005161557.o4GFv0Lf046659@svn.freebsd.org> <20100516213822.GA49967@alchemy.franken.de> User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.9.1.9) Gecko/20100407 Thunderbird/3.0.4 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r208152 - in head/sys: dev/ofw powerpc/aim powerpc/ofw X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 21:47:08 -0000 On 05/16/10 16:38, Marius Strobl wrote: > On Sun, May 16, 2010 at 03:57:00PM +0000, Nathan Whitehorn wrote: > >> Author: nwhitehorn >> Date: Sun May 16 15:56:59 2010 >> New Revision: 208152 >> URL: http://svn.freebsd.org/changeset/base/208152 >> >> Log: >> On PowerMac11,2 and (presumably) PowerMac12,1, we need to quiesce the >> firmware in order to take over control of the SMU. Without doing this, >> the firmware background process doing fan control will run amok as we >> take over the system and crash the management chip. >> >> This is limited to these two machines because our kernel is heavily >> dependent on firmware accesses, and so quiescing firmware can cause >> nasty problems. >> >> > Given that the "quiesce" service isn't part of the Open Firmware > standard nor of one of its supplements as far as I can see and > given this service isn't available on sun4u I'd prefer this > implementation to be entirely moved to MD parts instead (similar > to the "SUNW," services which we keep MD). > This is tricky on PowerPC, because there are 3 OF implementations in use (native virtual-mode, 32-bit virtual mode, and 32-bit real mode), and it has to go in all of them. I'll try to come up with a non-horrible way to put this in the MD code, and I won't MFC this change in the meantime. -Nathan From owner-svn-src-all@FreeBSD.ORG Sun May 16 21:48:40 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 55DC3106567C; Sun, 16 May 2010 21:48:40 +0000 (UTC) (envelope-from kmacy@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 44C118FC16; Sun, 16 May 2010 21:48:40 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GLme5O025006; Sun, 16 May 2010 21:48:40 GMT (envelope-from kmacy@svn.freebsd.org) Received: (from kmacy@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GLmele025002; Sun, 16 May 2010 21:48:40 GMT (envelope-from kmacy@svn.freebsd.org) Message-Id: <201005162148.o4GLmele025002@svn.freebsd.org> From: Kip Macy Date: Sun, 16 May 2010 21:48:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208171 - in head/sys: net netinet6 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 21:48:40 -0000 Author: kmacy Date: Sun May 16 21:48:39 2010 New Revision: 208171 URL: http://svn.freebsd.org/changeset/base/208171 Log: allocate ipv6 flows from the ipv6 flow zone reported by: rrs@ MFC after: 3 days Modified: head/sys/net/flowtable.c head/sys/net/flowtable.h head/sys/netinet6/ip6_input.c Modified: head/sys/net/flowtable.c ============================================================================== --- head/sys/net/flowtable.c Sun May 16 21:06:26 2010 (r208170) +++ head/sys/net/flowtable.c Sun May 16 21:48:39 2010 (r208171) @@ -417,7 +417,6 @@ flowtable_pcpu_unlock(struct flowtable * #define FL_ENTRY_UNLOCK(table, hash) (table)->ft_unlock((table), (hash)) #define FL_STALE (1<<8) -#define FL_IPV6 (1<<9) #define FL_OVERWRITE (1<<10) void Modified: head/sys/net/flowtable.h ============================================================================== --- head/sys/net/flowtable.h Sun May 16 21:06:26 2010 (r208170) +++ head/sys/net/flowtable.h Sun May 16 21:48:39 2010 (r208171) @@ -37,6 +37,7 @@ $FreeBSD$ #define FL_HASH_ALL (1<<0) /* hash 4-tuple + protocol */ #define FL_PCPU (1<<1) /* pcpu cache */ #define FL_NOAUTO (1<<2) /* don't automatically add flentry on miss */ +#define FL_IPV6 (1<<9) #define FL_TCP (1<<11) #define FL_SCTP (1<<12) Modified: head/sys/netinet6/ip6_input.c ============================================================================== --- head/sys/netinet6/ip6_input.c Sun May 16 21:06:26 2010 (r208170) +++ head/sys/netinet6/ip6_input.c Sun May 16 21:48:39 2010 (r208171) @@ -191,7 +191,7 @@ ip6_init(void) */ V_ip6_output_flowtable_size = 1 << fls((1024 + maxusers * 64)-1); } - V_ip6_ft = flowtable_alloc("ipv6", V_ip6_output_flowtable_size, FL_PCPU); + V_ip6_ft = flowtable_alloc("ipv6", V_ip6_output_flowtable_size, FL_IPV6|FL_PCPU); #endif V_ip6_desync_factor = arc4random() % MAX_TEMP_DESYNC_FACTOR; From owner-svn-src-all@FreeBSD.ORG Sun May 16 22:01:44 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 046E7106566C; Sun, 16 May 2010 22:01:44 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E61CB8FC15; Sun, 16 May 2010 22:01:43 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GM1hej027921; Sun, 16 May 2010 22:01:43 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GM1h8W027917; Sun, 16 May 2010 22:01:43 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201005162201.o4GM1h8W027917@svn.freebsd.org> From: Nathan Whitehorn Date: Sun, 16 May 2010 22:01:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208172 - in head/sys: dev/ofw powerpc/aim powerpc/ofw X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 22:01:44 -0000 Author: nwhitehorn Date: Sun May 16 22:01:43 2010 New Revision: 208172 URL: http://svn.freebsd.org/changeset/base/208172 Log: Pull OF_quiesce() out of the MI Open Firmware layer and entirely into PPC ofw_machdep.c, in recognition of its state as a machine specific hack. Requested by: marius Modified: head/sys/dev/ofw/ofw_if.m head/sys/dev/ofw/ofw_standard.c head/sys/dev/ofw/openfirm.c head/sys/dev/ofw/openfirm.h head/sys/powerpc/aim/ofw_machdep.c head/sys/powerpc/ofw/ofw_real.c Modified: head/sys/dev/ofw/ofw_if.m ============================================================================== --- head/sys/dev/ofw/ofw_if.m Sun May 16 21:48:39 2010 (r208171) +++ head/sys/dev/ofw/ofw_if.m Sun May 16 22:01:43 2010 (r208172) @@ -340,13 +340,6 @@ METHOD void release { # Commands for returning control to the firmware /** - * @brief Turn off firmware background activities - */ -METHOD void quiesce { - ofw_t _ofw; -}; - -/** * @brief Temporarily return control to firmware. */ METHOD void enter { Modified: head/sys/dev/ofw/ofw_standard.c ============================================================================== --- head/sys/dev/ofw/ofw_standard.c Sun May 16 21:48:39 2010 (r208171) +++ head/sys/dev/ofw/ofw_standard.c Sun May 16 22:01:43 2010 (r208172) @@ -105,7 +105,6 @@ static ssize_t ofw_std_write(ofw_t ofw, static int ofw_std_seek(ofw_t ofw, ihandle_t instance, uint64_t pos); static caddr_t ofw_std_claim(ofw_t ofw, void *virt, size_t size, u_int align); static void ofw_std_release(ofw_t ofw, void *virt, size_t size); -static void ofw_std_quiesce(ofw_t ofw); static void ofw_std_enter(ofw_t ofw); static void ofw_std_exit(ofw_t ofw); @@ -134,7 +133,6 @@ static ofw_method_t ofw_std_methods[] = OFWMETHOD(ofw_seek, ofw_std_seek), OFWMETHOD(ofw_claim, ofw_std_claim), OFWMETHOD(ofw_release, ofw_std_release), - OFWMETHOD(ofw_quiesce, ofw_std_quiesce), OFWMETHOD(ofw_enter, ofw_std_enter), OFWMETHOD(ofw_exit, ofw_std_exit), @@ -732,23 +730,6 @@ ofw_std_release(ofw_t ofw, void *virt, s * Control transfer functions */ -/* Turn off OF background tasks */ -static void -ofw_std_quiesce(ofw_t ofw) -{ - struct { - cell_t name; - cell_t nargs; - cell_t nreturns; - } args = { - (cell_t)"quiesce", - 0, - 0, - }; - - openfirmware(&args); -} - /* Suspend and drop back to the Open Firmware interface. */ static void ofw_std_enter(ofw_t ofw) Modified: head/sys/dev/ofw/openfirm.c ============================================================================== --- head/sys/dev/ofw/openfirm.c Sun May 16 21:48:39 2010 (r208171) +++ head/sys/dev/ofw/openfirm.c Sun May 16 22:01:43 2010 (r208172) @@ -409,15 +409,6 @@ OF_release(void *virt, size_t size) * Control transfer functions */ -/* Turn off OF background tasks */ -void -OF_quiesce() -{ - - OFW_QUIESCE(ofw_obj); -} - - /* Suspend and drop back to the Open Firmware interface. */ void OF_enter() Modified: head/sys/dev/ofw/openfirm.h ============================================================================== --- head/sys/dev/ofw/openfirm.h Sun May 16 21:48:39 2010 (r208171) +++ head/sys/dev/ofw/openfirm.h Sun May 16 22:01:43 2010 (r208172) @@ -133,7 +133,6 @@ void *OF_claim(void *virtrequest, size_ void OF_release(void *virt, size_t size); /* Control transfer functions */ -void OF_quiesce(void); void OF_enter(void); void OF_exit(void) __attribute__((noreturn)); Modified: head/sys/powerpc/aim/ofw_machdep.c ============================================================================== --- head/sys/powerpc/aim/ofw_machdep.c Sun May 16 21:48:39 2010 (r208171) +++ head/sys/powerpc/aim/ofw_machdep.c Sun May 16 22:01:43 2010 (r208172) @@ -77,6 +77,7 @@ static int (*ofwcall)(void *); static void *fdt; int ofw_real_mode; +static void ofw_quiesce(void); static int openfirmware(void *args); /* @@ -281,8 +282,6 @@ OF_initial_setup(void *fdt_ptr, void *ju boolean_t OF_bootstrap() { - char model[32]; - phandle_t rootnode; boolean_t status = FALSE; mtx_init(&ofw_mutex, "open firmware", NULL, MTX_DEF); @@ -302,12 +301,7 @@ OF_bootstrap() * On some machines, we need to quiesce OF to turn off * background processes. */ - rootnode = OF_finddevice("/"); - if (OF_getprop(rootnode, "model", model, sizeof(model)) > 0) { - if (strcmp(model, "PowerMac11,2") == 0 || - strcmp(model, "PowerMac12,1") == 0) - OF_quiesce(); - } + ofw_quiesce(); } else { status = OF_install(OFW_FDT, 0); @@ -320,6 +314,39 @@ OF_bootstrap() return (status); } +static void +ofw_quiesce(void) +{ + phandle_t rootnode; + char model[32]; + struct { + cell_t name; + cell_t nargs; + cell_t nreturns; + } args; + + /* + * Only quiesce Open Firmware on PowerMac11,2 and 12,1. It is + * necessary there to shut down a background thread doing fan + * management, and is harmful on other machines. + * + * Note: we don't need to worry about which OF module we are + * using since this is called only from very early boot, within + * OF's boot context. + */ + + rootnode = OF_finddevice("/"); + if (OF_getprop(rootnode, "model", model, sizeof(model)) > 0) { + if (strcmp(model, "PowerMac11,2") == 0 || + strcmp(model, "PowerMac12,1") == 0) { + args.name = (cell_t)(uintptr_t)"quiesce"; + args.nargs = 0; + args.nreturns = 0; + openfirmware(&args); + } + } +} + static int openfirmware(void *args) { Modified: head/sys/powerpc/ofw/ofw_real.c ============================================================================== --- head/sys/powerpc/ofw/ofw_real.c Sun May 16 21:48:39 2010 (r208171) +++ head/sys/powerpc/ofw/ofw_real.c Sun May 16 22:01:43 2010 (r208172) @@ -106,7 +106,6 @@ static ssize_t ofw_real_write(ofw_t, iha static int ofw_real_seek(ofw_t, ihandle_t instance, u_int64_t pos); static caddr_t ofw_real_claim(ofw_t, void *virt, size_t size, u_int align); static void ofw_real_release(ofw_t, void *virt, size_t size); -static void ofw_real_quiesce(ofw_t); static void ofw_real_enter(ofw_t); static void ofw_real_exit(ofw_t); @@ -134,7 +133,6 @@ static ofw_method_t ofw_real_methods[] = OFWMETHOD(ofw_seek, ofw_real_seek), OFWMETHOD(ofw_claim, ofw_real_claim), OFWMETHOD(ofw_release, ofw_real_release), - OFWMETHOD(ofw_quiesce, ofw_real_quiesce), OFWMETHOD(ofw_enter, ofw_real_enter), OFWMETHOD(ofw_exit, ofw_real_exit), @@ -891,27 +889,6 @@ ofw_real_release(ofw_t ofw, void *virt, * Control transfer functions */ -/* Turn off OF background tasks */ -static void -ofw_real_quiesce(ofw_t ofw) -{ - vm_offset_t argsptr; - struct { - cell_t name; - cell_t nargs; - cell_t nreturns; - } args; - - args.name = (cell_t)(uintptr_t)"quiesce"; - args.nargs = 0; - args.nreturns = 0; - - ofw_real_start(); - argsptr = ofw_real_map(&args, sizeof(args)); - openfirmware((void *)argsptr); - ofw_real_stop(); -} - /* Suspend and drop back to the Open Firmware interface. */ static void ofw_real_enter(ofw_t ofw) From owner-svn-src-all@FreeBSD.ORG Sun May 16 22:03:09 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 80FD2106566B; Sun, 16 May 2010 22:03:09 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from adsum.doit.wisc.edu (adsum.doit.wisc.edu [144.92.197.210]) by mx1.freebsd.org (Postfix) with ESMTP id 517228FC14; Sun, 16 May 2010 22:03:09 +0000 (UTC) MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; CHARSET=US-ASCII; format=flowed Received: from avs-daemon.smtpauth1.wiscmail.wisc.edu by smtpauth1.wiscmail.wisc.edu (Sun Java(tm) System Messaging Server 7u2-7.05 32bit (built Jul 30 2009)) id <0L2J00D00998TQ00@smtpauth1.wiscmail.wisc.edu>; Sun, 16 May 2010 17:03:08 -0500 (CDT) Received: from comporellon.tachypleus.net ([unknown] [76.210.66.137]) by smtpauth1.wiscmail.wisc.edu (Sun Java(tm) System Messaging Server 7u2-7.05 32bit (built Jul 30 2009)) with ESMTPSA id <0L2J000H7996MS40@smtpauth1.wiscmail.wisc.edu>; Sun, 16 May 2010 17:03:07 -0500 (CDT) Date: Sun, 16 May 2010 17:03:06 -0500 From: Nathan Whitehorn In-reply-to: <4BF067D9.3030602@freebsd.org> To: Marius Strobl Message-id: <4BF06B9A.7000402@freebsd.org> X-Spam-Report: AuthenticatedSender=yes, SenderIP=76.210.66.137 X-Spam-PmxInfo: Server=avs-12, Version=5.5.9.395186, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2010.5.16.215415, SenderIP=76.210.66.137 References: <201005161557.o4GFv0Lf046659@svn.freebsd.org> <20100516213822.GA49967@alchemy.franken.de> <4BF067D9.3030602@freebsd.org> User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.9.1.9) Gecko/20100407 Thunderbird/3.0.4 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r208152 - in head/sys: dev/ofw powerpc/aim powerpc/ofw X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 22:03:09 -0000 On 05/16/10 16:47, Nathan Whitehorn wrote: > On 05/16/10 16:38, Marius Strobl wrote: >> On Sun, May 16, 2010 at 03:57:00PM +0000, Nathan Whitehorn wrote: >>> Author: nwhitehorn >>> Date: Sun May 16 15:56:59 2010 >>> New Revision: 208152 >>> URL: http://svn.freebsd.org/changeset/base/208152 >>> >>> Log: >>> On PowerMac11,2 and (presumably) PowerMac12,1, we need to quiesce >>> the >>> firmware in order to take over control of the SMU. Without doing >>> this, >>> the firmware background process doing fan control will run amok >>> as we >>> take over the system and crash the management chip. >>> >>> This is limited to these two machines because our kernel is heavily >>> dependent on firmware accesses, and so quiescing firmware can cause >>> nasty problems. >>> >> Given that the "quiesce" service isn't part of the Open Firmware >> standard nor of one of its supplements as far as I can see and >> given this service isn't available on sun4u I'd prefer this >> implementation to be entirely moved to MD parts instead (similar >> to the "SUNW," services which we keep MD). > > This is tricky on PowerPC, because there are 3 OF implementations in > use (native virtual-mode, 32-bit virtual mode, and 32-bit real mode), > and it has to go in all of them. I'll try to come up with a > non-horrible way to put this in the MD code, and I won't MFC this > change in the meantime. > -Nathan Immediately after writing this, I realized I had tricked myself into thinking it was hard. Since this is called very early on, in the context set up by Open Firmware, none of those distinctions matter. It's been pulled back in to PPC-specific code in revision 208172. -Nathan From owner-svn-src-all@FreeBSD.ORG Sun May 16 22:21:33 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9FE51106564A; Sun, 16 May 2010 22:21:33 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 749E28FC16; Sun, 16 May 2010 22:21:33 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GMLXFc032240; Sun, 16 May 2010 22:21:33 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GMLXet032237; Sun, 16 May 2010 22:21:33 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201005162221.o4GMLXet032237@svn.freebsd.org> From: Nathan Whitehorn Date: Sun, 16 May 2010 22:21:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208173 - in head: sbin/geom/class/part sys/geom/part X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 22:21:33 -0000 Author: nwhitehorn Date: Sun May 16 22:21:33 2010 New Revision: 208173 URL: http://svn.freebsd.org/changeset/base/208173 Log: Teach gpart about bootcode on APM. Modified: head/sbin/geom/class/part/geom_part.c head/sys/geom/part/g_part_apm.c Modified: head/sbin/geom/class/part/geom_part.c ============================================================================== --- head/sbin/geom/class/part/geom_part.c Sun May 16 22:01:43 2010 (r208172) +++ head/sbin/geom/class/part/geom_part.c Sun May 16 22:21:33 2010 (r208173) @@ -705,7 +705,7 @@ gpart_bootcode(struct gctl_req *req, uns if (gctl_has_param(req, bootcode_param)) { s = gctl_get_ascii(req, bootcode_param); - bootsize = 64 * 1024; /* Arbitrary limit. */ + bootsize = 800 * 1024; /* Arbitrary limit. */ bootcode = gpart_bootfile_read(s, &bootsize); error = gctl_change_param(req, bootcode_param, bootsize, bootcode); Modified: head/sys/geom/part/g_part_apm.c ============================================================================== --- head/sys/geom/part/g_part_apm.c Sun May 16 22:01:43 2010 (r208172) +++ head/sys/geom/part/g_part_apm.c Sun May 16 22:21:33 2010 (r208173) @@ -131,6 +131,26 @@ apm_parse_type(const char *type, char *b strncpy(buf, type, bufsz); return (0); } + alias = g_part_alias_name(G_PART_ALIAS_APPLE_BOOT); + if (!strcasecmp(type, alias)) { + strcpy(buf, APM_ENT_TYPE_APPLE_BOOT); + return (0); + } + alias = g_part_alias_name(G_PART_ALIAS_APPLE_HFS); + if (!strcasecmp(type, alias)) { + strcpy(buf, APM_ENT_TYPE_APPLE_HFS); + return (0); + } + alias = g_part_alias_name(G_PART_ALIAS_APPLE_UFS); + if (!strcasecmp(type, alias)) { + strcpy(buf, APM_ENT_TYPE_APPLE_UFS); + return (0); + } + alias = g_part_alias_name(G_PART_ALIAS_FREEBSD_BOOT); + if (!strcasecmp(type, alias)) { + strcpy(buf, APM_ENT_TYPE_APPLE_BOOT); + return (0); + } alias = g_part_alias_name(G_PART_ALIAS_FREEBSD); if (!strcasecmp(type, alias)) { strcpy(buf, APM_ENT_TYPE_FREEBSD); @@ -445,6 +465,12 @@ g_part_apm_type(struct g_part_table *bas entry = (struct g_part_apm_entry *)baseentry; type = entry->ent.ent_type; + if (!strcmp(type, APM_ENT_TYPE_APPLE_BOOT)) + return (g_part_alias_name(G_PART_ALIAS_APPLE_BOOT)); + if (!strcmp(type, APM_ENT_TYPE_APPLE_HFS)) + return (g_part_alias_name(G_PART_ALIAS_APPLE_HFS)); + if (!strcmp(type, APM_ENT_TYPE_APPLE_UFS)) + return (g_part_alias_name(G_PART_ALIAS_APPLE_UFS)); if (!strcmp(type, APM_ENT_TYPE_FREEBSD)) return (g_part_alias_name(G_PART_ALIAS_FREEBSD)); if (!strcmp(type, APM_ENT_TYPE_FREEBSD_SWAP)) From owner-svn-src-all@FreeBSD.ORG Sun May 16 22:52:52 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4501E106564A; Sun, 16 May 2010 22:52:52 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 31E148FC0C; Sun, 16 May 2010 22:52:52 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GMqpxK039104; Sun, 16 May 2010 22:52:51 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GMqpvm039101; Sun, 16 May 2010 22:52:51 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201005162252.o4GMqpvm039101@svn.freebsd.org> From: Jilles Tjoelker Date: Sun, 16 May 2010 22:52:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208174 - in stable/8: bin/sh tools/regression/bin/sh/expansion X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 22:52:52 -0000 Author: jilles Date: Sun May 16 22:52:51 2010 New Revision: 208174 URL: http://svn.freebsd.org/changeset/base/208174 Log: MFC r207944: sh: Fix pathname expansion with quoted slashes like *\/. These are git commits 36f0fa8fcbc8c7b2b194addd29100fb40e73e4e9 and d6d06ff5c2ea0fa44becc5ef4340e5f2f15073e4 in dash. Because this is the first code I'm importing from dash to expand.c, add the Herbert Xu copyright notice which is in dash's expand.c. When pathname expanding *\/, the CTLESC representing the quoted state was erroneously taken as part of the * pathname component. This CTLESC was then seen by the pattern matching code as escaping the '\0' terminating the string. The code is slightly different because dash converts the CTLESC characters to backslashes and removes all the other CTL* characters to allow substituting glob(3). The effect of the bug was also slightly different from dash (where nothing matched at all). Because a CTLESC can escape a '\0' in some way, whether files were included despite the bug depended on memory that should not be read. In particular, on many machines /*\/ expanded to a strict subset of what /*/ expanded to. Example: echo /*"/null" This should print /dev/null, not /*/null. PR: bin/146378 Obtained from: dash Added: stable/8/tools/regression/bin/sh/expansion/pathname2.0 - copied unchanged from r207944, head/tools/regression/bin/sh/expansion/pathname2.0 Modified: stable/8/bin/sh/expand.c Directory Properties: stable/8/bin/sh/ (props changed) stable/8/tools/regression/bin/sh/ (props changed) Modified: stable/8/bin/sh/expand.c ============================================================================== --- stable/8/bin/sh/expand.c Sun May 16 22:21:33 2010 (r208173) +++ stable/8/bin/sh/expand.c Sun May 16 22:52:51 2010 (r208174) @@ -1,6 +1,8 @@ /*- * Copyright (c) 1991, 1993 * The Regents of the University of California. All rights reserved. + * Copyright (c) 1997-2005 + * Herbert Xu . All rights reserved. * * This code is derived from software contributed to Berkeley by * Kenneth Almquist. @@ -1142,10 +1144,11 @@ expmeta(char *enddir, char *name) struct dirent *dp; int atend; int matchdot; + int esc; metaflag = 0; start = name; - for (p = name ; ; p++) { + for (p = name; esc = 0, *p; p += esc + 1) { if (*p == '*' || *p == '?') metaflag = 1; else if (*p == '[') { @@ -1170,12 +1173,14 @@ expmeta(char *enddir, char *name) break; else if (*p == CTLQUOTEMARK) continue; - else if (*p == CTLESC) - p++; - if (*p == '/') { - if (metaflag) - break; - start = p + 1; + else { + if (*p == CTLESC) + esc++; + if (p[esc] == '/') { + if (metaflag) + break; + start = p + esc + 1; + } } } if (metaflag == 0) { /* we've reached the end of the file name */ @@ -1221,7 +1226,8 @@ expmeta(char *enddir, char *name) atend = 1; } else { atend = 0; - *endname++ = '\0'; + *endname = '\0'; + endname += esc + 1; } matchdot = 0; p = start; @@ -1249,7 +1255,7 @@ expmeta(char *enddir, char *name) } closedir(dirp); if (! atend) - endname[-1] = '/'; + endname[-esc - 1] = esc ? CTLESC : '/'; } Copied: stable/8/tools/regression/bin/sh/expansion/pathname2.0 (from r207944, head/tools/regression/bin/sh/expansion/pathname2.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/bin/sh/expansion/pathname2.0 Sun May 16 22:52:51 2010 (r208174, copy of r207944, head/tools/regression/bin/sh/expansion/pathname2.0) @@ -0,0 +1,31 @@ +# $FreeBSD$ + +failures=0 + +check() { + testcase=$1 + expect=$2 + eval "set -- $testcase" + actual="$*" + if [ "$actual" != "$expect" ]; then + failures=$((failures+1)) + printf '%s\n' "For $testcase, expected $expect actual $actual" + fi +} + +set -e +T=$(mktemp -d ${TMPDIR:-/tmp}/sh-test.XXXXXX) +trap 'rm -rf $T' 0 +cd -P $T + +mkdir testdir testdir2 'testdir/*' 'testdir/?' testdir/a testdir/b testdir2/b +mkdir testdir2/.c +touch testf 'testdir/*/1' 'testdir/?/1' testdir/a/1 testdir/b/1 testdir2/b/.a + +check '*\/' 'testdir/ testdir2/' +check '"testdir/"*"/1"' 'testdir/*/1 testdir/?/1 testdir/a/1 testdir/b/1' +check '"testdir/"*"/"*' 'testdir/*/1 testdir/?/1 testdir/a/1 testdir/b/1' +check '"testdir/"*\/*' 'testdir/*/1 testdir/?/1 testdir/a/1 testdir/b/1' +check '"testdir"*"/"*"/"*' 'testdir/*/1 testdir/?/1 testdir/a/1 testdir/b/1' + +exit $((failures != 0)) From owner-svn-src-all@FreeBSD.ORG Sun May 16 23:45:10 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B4E301065670; Sun, 16 May 2010 23:45:10 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A0D8C8FC18; Sun, 16 May 2010 23:45:10 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4GNjA17050503; Sun, 16 May 2010 23:45:10 GMT (envelope-from alc@svn.freebsd.org) Received: (from alc@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4GNjAnG050489; Sun, 16 May 2010 23:45:10 GMT (envelope-from alc@svn.freebsd.org) Message-Id: <201005162345.o4GNjAnG050489@svn.freebsd.org> From: Alan Cox Date: Sun, 16 May 2010 23:45:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208175 - in head/sys: amd64/amd64 arm/arm i386/i386 i386/xen ia64/ia64 mips/mips powerpc/aim powerpc/booke sparc64/sparc64 sun4v/sun4v vm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 May 2010 23:45:10 -0000 Author: alc Date: Sun May 16 23:45:10 2010 New Revision: 208175 URL: http://svn.freebsd.org/changeset/base/208175 Log: On entry to pmap_enter(), assert that the page is busy. While I'm here, make the style of assertion used by pmap_enter() consistent across all architectures. On entry to pmap_remove_write(), assert that the page is neither unmanaged nor fictitious, since we cannot remove write access to either kind of page. With the push down of the page queues lock, pmap_remove_write() cannot condition its behavior on the state of the PG_WRITEABLE flag if the page is busy. Assert that the object containing the page is locked. This allows us to know that the page will neither become busy nor will PG_WRITEABLE be set on it while pmap_remove_write() is running. Correct a long-standing bug in vm_page_cowsetup(). We cannot possibly do copy-on-write-based zero-copy transmit on unmanaged or fictitious pages, so don't even try. Previously, the call to pmap_remove_write() would have failed silently. Modified: head/sys/amd64/amd64/pmap.c head/sys/arm/arm/pmap.c head/sys/i386/i386/pmap.c head/sys/i386/xen/pmap.c head/sys/ia64/ia64/pmap.c head/sys/mips/mips/pmap.c head/sys/powerpc/aim/mmu_oea.c head/sys/powerpc/aim/mmu_oea64.c head/sys/powerpc/booke/pmap.c head/sys/sparc64/sparc64/pmap.c head/sys/sun4v/sun4v/pmap.c head/sys/vm/vm_page.c head/sys/vm/vm_page.h Modified: head/sys/amd64/amd64/pmap.c ============================================================================== --- head/sys/amd64/amd64/pmap.c Sun May 16 22:52:51 2010 (r208174) +++ head/sys/amd64/amd64/pmap.c Sun May 16 23:45:10 2010 (r208175) @@ -3139,7 +3139,10 @@ pmap_enter(pmap_t pmap, vm_offset_t va, va = trunc_page(va); KASSERT(va <= VM_MAX_KERNEL_ADDRESS, ("pmap_enter: toobig")); KASSERT(va < UPT_MIN_ADDRESS || va >= UPT_MAX_ADDRESS, - ("pmap_enter: invalid to pmap_enter page table pages (va: 0x%lx)", va)); + ("pmap_enter: invalid to pmap_enter page table pages (va: 0x%lx)", + va)); + KASSERT((m->oflags & VPO_BUSY) != 0, + ("pmap_enter: page %p is not busy", m)); mpte = NULL; @@ -4240,7 +4243,16 @@ pmap_remove_write(vm_page_t m) pt_entry_t oldpte, *pte; vm_offset_t va; - if ((m->flags & PG_FICTITIOUS) != 0 || + KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0, + ("pmap_remove_write: page %p is not managed", m)); + + /* + * If the page is not VPO_BUSY, then PG_WRITEABLE cannot be set by + * another thread while the object is locked. Thus, if PG_WRITEABLE + * is clear, no page table entries need updating. + */ + VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED); + if ((m->oflags & VPO_BUSY) == 0 && (m->flags & PG_WRITEABLE) == 0) return; vm_page_lock_queues(); Modified: head/sys/arm/arm/pmap.c ============================================================================== --- head/sys/arm/arm/pmap.c Sun May 16 22:52:51 2010 (r208174) +++ head/sys/arm/arm/pmap.c Sun May 16 23:45:10 2010 (r208175) @@ -3318,6 +3318,8 @@ pmap_enter_locked(pmap_t pmap, vm_offset u_int oflags; vm_paddr_t pa; + KASSERT((m->oflags & VPO_BUSY) != 0 || (flags & M_NOWAIT) != 0, + ("pmap_enter_locked: page %p is not busy", m)); PMAP_ASSERT_LOCKED(pmap); mtx_assert(&vm_page_queue_mtx, MA_OWNED); if (va == vector_page) { @@ -4527,7 +4529,17 @@ void pmap_remove_write(vm_page_t m) { - if (m->flags & PG_WRITEABLE) { + KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0, + ("pmap_remove_write: page %p is not managed", m)); + + /* + * If the page is not VPO_BUSY, then PG_WRITEABLE cannot be set by + * another thread while the object is locked. Thus, if PG_WRITEABLE + * is clear, no page table entries need updating. + */ + VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED); + if ((m->oflags & VPO_BUSY) != 0 || + (m->flags & PG_WRITEABLE) != 0) { vm_page_lock_queues(); pmap_clearbit(m, PVF_WRITE); vm_page_unlock_queues(); Modified: head/sys/i386/i386/pmap.c ============================================================================== --- head/sys/i386/i386/pmap.c Sun May 16 22:52:51 2010 (r208174) +++ head/sys/i386/i386/pmap.c Sun May 16 23:45:10 2010 (r208175) @@ -3268,7 +3268,10 @@ pmap_enter(pmap_t pmap, vm_offset_t va, va = trunc_page(va); KASSERT(va <= VM_MAX_KERNEL_ADDRESS, ("pmap_enter: toobig")); KASSERT(va < UPT_MIN_ADDRESS || va >= UPT_MAX_ADDRESS, - ("pmap_enter: invalid to pmap_enter page table pages (va: 0x%x)", va)); + ("pmap_enter: invalid to pmap_enter page table pages (va: 0x%x)", + va)); + KASSERT((m->oflags & VPO_BUSY) != 0, + ("pmap_enter: page %p is not busy", m)); mpte = NULL; @@ -4410,7 +4413,16 @@ pmap_remove_write(vm_page_t m) pt_entry_t oldpte, *pte; vm_offset_t va; - if ((m->flags & PG_FICTITIOUS) != 0 || + KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0, + ("pmap_remove_write: page %p is not managed", m)); + + /* + * If the page is not VPO_BUSY, then PG_WRITEABLE cannot be set by + * another thread while the object is locked. Thus, if PG_WRITEABLE + * is clear, no page table entries need updating. + */ + VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED); + if ((m->oflags & VPO_BUSY) == 0 && (m->flags & PG_WRITEABLE) == 0) return; vm_page_lock_queues(); Modified: head/sys/i386/xen/pmap.c ============================================================================== --- head/sys/i386/xen/pmap.c Sun May 16 22:52:51 2010 (r208174) +++ head/sys/i386/xen/pmap.c Sun May 16 23:45:10 2010 (r208175) @@ -2682,12 +2682,12 @@ pmap_enter(pmap_t pmap, vm_offset_t va, CTR6(KTR_PMAP, "pmap_enter: pmap=%08p va=0x%08x access=0x%x ma=0x%08x prot=0x%x wired=%d", pmap, va, access, xpmap_ptom(VM_PAGE_TO_PHYS(m)), prot, wired); va = trunc_page(va); -#ifdef PMAP_DIAGNOSTIC - if (va > VM_MAX_KERNEL_ADDRESS) - panic("pmap_enter: toobig"); - if ((va >= UPT_MIN_ADDRESS) && (va < UPT_MAX_ADDRESS)) - panic("pmap_enter: invalid to pmap_enter page table pages (va: 0x%x)", va); -#endif + KASSERT(va <= VM_MAX_KERNEL_ADDRESS, ("pmap_enter: toobig")); + KASSERT(va < UPT_MIN_ADDRESS || va >= UPT_MAX_ADDRESS, + ("pmap_enter: invalid to pmap_enter page table pages (va: 0x%x)", + va)); + KASSERT((m->oflags & VPO_BUSY) != 0, + ("pmap_enter: page %p is not busy", m)); mpte = NULL; @@ -3780,7 +3780,16 @@ pmap_remove_write(vm_page_t m) pmap_t pmap; pt_entry_t oldpte, *pte; - if ((m->flags & PG_FICTITIOUS) != 0 || + KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0, + ("pmap_remove_write: page %p is not managed", m)); + + /* + * If the page is not VPO_BUSY, then PG_WRITEABLE cannot be set by + * another thread while the object is locked. Thus, if PG_WRITEABLE + * is clear, no page table entries need updating. + */ + VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED); + if ((m->oflags & VPO_BUSY) == 0 && (m->flags & PG_WRITEABLE) == 0) return; vm_page_lock_queues(); Modified: head/sys/ia64/ia64/pmap.c ============================================================================== --- head/sys/ia64/ia64/pmap.c Sun May 16 22:52:51 2010 (r208174) +++ head/sys/ia64/ia64/pmap.c Sun May 16 23:45:10 2010 (r208175) @@ -1497,10 +1497,9 @@ pmap_enter(pmap_t pmap, vm_offset_t va, oldpmap = pmap_switch(pmap); va &= ~PAGE_MASK; -#ifdef DIAGNOSTIC - if (va > VM_MAX_KERNEL_ADDRESS) - panic("pmap_enter: toobig"); -#endif + KASSERT(va <= VM_MAX_KERNEL_ADDRESS, ("pmap_enter: toobig")); + KASSERT((m->oflags & VPO_BUSY) != 0, + ("pmap_enter: page %p is not busy", m)); /* * Find (or create) a pte for the given mapping. @@ -2116,7 +2115,16 @@ pmap_remove_write(vm_page_t m) pv_entry_t pv; vm_prot_t prot; - if ((m->flags & PG_FICTITIOUS) != 0 || + KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0, + ("pmap_remove_write: page %p is not managed", m)); + + /* + * If the page is not VPO_BUSY, then PG_WRITEABLE cannot be set by + * another thread while the object is locked. Thus, if PG_WRITEABLE + * is clear, no page table entries need updating. + */ + VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED); + if ((m->oflags & VPO_BUSY) == 0 && (m->flags & PG_WRITEABLE) == 0) return; vm_page_lock_queues(); Modified: head/sys/mips/mips/pmap.c ============================================================================== --- head/sys/mips/mips/pmap.c Sun May 16 22:52:51 2010 (r208174) +++ head/sys/mips/mips/pmap.c Sun May 16 23:45:10 2010 (r208175) @@ -1791,10 +1791,9 @@ pmap_enter(pmap_t pmap, vm_offset_t va, return; va &= ~PAGE_MASK; -#ifdef PMAP_DIAGNOSTIC - if (va > VM_MAX_KERNEL_ADDRESS) - panic("pmap_enter: toobig"); -#endif + KASSERT(va <= VM_MAX_KERNEL_ADDRESS, ("pmap_enter: toobig")); + KASSERT((m->oflags & VPO_BUSY) != 0, + ("pmap_enter: page %p is not busy", m)); mpte = NULL; @@ -2584,7 +2583,16 @@ pmap_remove_write(vm_page_t m) vm_offset_t va; pt_entry_t *pte; - if ((m->flags & PG_FICTITIOUS) != 0 || + KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0, + ("pmap_remove_write: page %p is not managed", m)); + + /* + * If the page is not VPO_BUSY, then PG_WRITEABLE cannot be set by + * another thread while the object is locked. Thus, if PG_WRITEABLE + * is clear, no page table entries need updating. + */ + VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED); + if ((m->oflags & VPO_BUSY) == 0 && (m->flags & PG_WRITEABLE) == 0) return; Modified: head/sys/powerpc/aim/mmu_oea.c ============================================================================== --- head/sys/powerpc/aim/mmu_oea.c Sun May 16 22:52:51 2010 (r208174) +++ head/sys/powerpc/aim/mmu_oea.c Sun May 16 23:45:10 2010 (r208175) @@ -876,6 +876,7 @@ moea_bootstrap(mmu_t mmup, vm_offset_t k struct vm_page m; m.phys_addr = translations[i].om_pa + off; + m.oflags = VPO_BUSY; PMAP_LOCK(&ofw_pmap); moea_enter_locked(&ofw_pmap, translations[i].om_va + off, &m, @@ -1101,6 +1102,8 @@ moea_enter_locked(pmap_t pmap, vm_offset if (pmap_bootstrapped) mtx_assert(&vm_page_queue_mtx, MA_OWNED); PMAP_LOCK_ASSERT(pmap, MA_OWNED); + KASSERT((m->oflags & VPO_BUSY) != 0 || VM_OBJECT_LOCKED(m->object), + ("moea_enter_locked: page %p is not busy", m)); /* XXX change the pvo head for fake pages */ if ((m->flags & PG_FICTITIOUS) == PG_FICTITIOUS) { @@ -1323,7 +1326,16 @@ moea_remove_write(mmu_t mmu, vm_page_t m pmap_t pmap; u_int lo; - if ((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) != 0 || + KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0, + ("moea_remove_write: page %p is not managed", m)); + + /* + * If the page is not VPO_BUSY, then PG_WRITEABLE cannot be set by + * another thread while the object is locked. Thus, if PG_WRITEABLE + * is clear, no page table entries need updating. + */ + VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED); + if ((m->oflags & VPO_BUSY) == 0 && (m->flags & PG_WRITEABLE) == 0) return; vm_page_lock_queues(); Modified: head/sys/powerpc/aim/mmu_oea64.c ============================================================================== --- head/sys/powerpc/aim/mmu_oea64.c Sun May 16 22:52:51 2010 (r208174) +++ head/sys/powerpc/aim/mmu_oea64.c Sun May 16 23:45:10 2010 (r208175) @@ -1235,6 +1235,8 @@ moea64_enter_locked(pmap_t pmap, vm_offs if (pmap_bootstrapped) mtx_assert(&vm_page_queue_mtx, MA_OWNED); PMAP_LOCK_ASSERT(pmap, MA_OWNED); + KASSERT((m->oflags & VPO_BUSY) != 0 || VM_OBJECT_LOCKED(m->object), + ("moea64_enter_locked: page %p is not busy", m)); /* XXX change the pvo head for fake pages */ if ((m->flags & PG_FICTITIOUS) == PG_FICTITIOUS) { @@ -1519,7 +1521,16 @@ moea64_remove_write(mmu_t mmu, vm_page_t pmap_t pmap; uint64_t lo; - if ((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) != 0 || + KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0, + ("moea64_remove_write: page %p is not managed", m)); + + /* + * If the page is not VPO_BUSY, then PG_WRITEABLE cannot be set by + * another thread while the object is locked. Thus, if PG_WRITEABLE + * is clear, no page table entries need updating. + */ + VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED); + if ((m->oflags & VPO_BUSY) == 0 && (m->flags & PG_WRITEABLE) == 0) return; vm_page_lock_queues(); Modified: head/sys/powerpc/booke/pmap.c ============================================================================== --- head/sys/powerpc/booke/pmap.c Sun May 16 22:52:51 2010 (r208174) +++ head/sys/powerpc/booke/pmap.c Sun May 16 23:45:10 2010 (r208175) @@ -1557,6 +1557,8 @@ mmu_booke_enter_locked(mmu_t mmu, pmap_t KASSERT((va <= VM_MAXUSER_ADDRESS), ("mmu_booke_enter_locked: user pmap, non user va")); } + KASSERT((m->oflags & VPO_BUSY) != 0 || VM_OBJECT_LOCKED(m->object), + ("mmu_booke_enter_locked: page %p is not busy", m)); PMAP_LOCK_ASSERT(pmap, MA_OWNED); @@ -1941,7 +1943,16 @@ mmu_booke_remove_write(mmu_t mmu, vm_pag pv_entry_t pv; pte_t *pte; - if ((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) != 0 || + KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0, + ("mmu_booke_remove_write: page %p is not managed", m)); + + /* + * If the page is not VPO_BUSY, then PG_WRITEABLE cannot be set by + * another thread while the object is locked. Thus, if PG_WRITEABLE + * is clear, no page table entries need updating. + */ + VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED); + if ((m->oflags & VPO_BUSY) == 0 && (m->flags & PG_WRITEABLE) == 0) return; vm_page_lock_queues(); Modified: head/sys/sparc64/sparc64/pmap.c ============================================================================== --- head/sys/sparc64/sparc64/pmap.c Sun May 16 22:52:51 2010 (r208174) +++ head/sys/sparc64/sparc64/pmap.c Sun May 16 23:45:10 2010 (r208175) @@ -1351,6 +1351,8 @@ pmap_enter_locked(pmap_t pm, vm_offset_t mtx_assert(&vm_page_queue_mtx, MA_OWNED); PMAP_LOCK_ASSERT(pm, MA_OWNED); + KASSERT((m->oflags & VPO_BUSY) != 0 || VM_OBJECT_LOCKED(m->object), + ("pmap_enter_locked: page %p is not busy", m)); PMAP_STATS_INC(pmap_nenter); pa = VM_PAGE_TO_PHYS(m); @@ -1985,7 +1987,16 @@ pmap_remove_write(vm_page_t m) struct tte *tp; u_long data; - if ((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) != 0 || + KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0, + ("pmap_remove_write: page %p is not managed", m)); + + /* + * If the page is not VPO_BUSY, then PG_WRITEABLE cannot be set by + * another thread while the object is locked. Thus, if PG_WRITEABLE + * is clear, no page table entries need updating. + */ + VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED); + if ((m->oflags & VPO_BUSY) == 0 && (m->flags & PG_WRITEABLE) == 0) return; vm_page_lock_queues(); Modified: head/sys/sun4v/sun4v/pmap.c ============================================================================== --- head/sys/sun4v/sun4v/pmap.c Sun May 16 22:52:51 2010 (r208174) +++ head/sys/sun4v/sun4v/pmap.c Sun May 16 23:45:10 2010 (r208175) @@ -1061,6 +1061,8 @@ pmap_enter(pmap_t pmap, vm_offset_t va, vm_page_t om; int invlva; + KASSERT((m->oflags & VPO_BUSY) != 0, + ("pmap_enter: page %p is not busy", m)); if (pmap->pm_context) DPRINTF("pmap_enter(va=%lx, pa=0x%lx, prot=%x)\n", va, VM_PAGE_TO_PHYS(m), prot); @@ -1737,7 +1739,17 @@ void pmap_remove_write(vm_page_t m) { - if ((m->flags & PG_WRITEABLE) == 0) + KASSERT((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) == 0, + ("pmap_remove_write: page %p is not managed", m)); + + /* + * If the page is not VPO_BUSY, then PG_WRITEABLE cannot be set by + * another thread while the object is locked. Thus, if PG_WRITEABLE + * is clear, no page table entries need updating. + */ + VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED); + if ((m->oflags & VPO_BUSY) == 0 && + (m->flags & PG_WRITEABLE) == 0) return; vm_page_lock_queues(); tte_clear_phys_bit(m, VTD_SW_W|VTD_W); Modified: head/sys/vm/vm_page.c ============================================================================== --- head/sys/vm/vm_page.c Sun May 16 22:52:51 2010 (r208174) +++ head/sys/vm/vm_page.c Sun May 16 23:45:10 2010 (r208175) @@ -2336,10 +2336,12 @@ vm_page_cowsetup(vm_page_t m) { vm_page_lock_assert(m, MA_OWNED); - if (m->cow == USHRT_MAX - 1) + if ((m->flags & (PG_FICTITIOUS | PG_UNMANAGED)) != 0 || + m->cow == USHRT_MAX - 1 || !VM_OBJECT_TRYLOCK(m->object)) return (EBUSY); m->cow++; pmap_remove_write(m); + VM_OBJECT_UNLOCK(m->object); return (0); } Modified: head/sys/vm/vm_page.h ============================================================================== --- head/sys/vm/vm_page.h Sun May 16 22:52:51 2010 (r208174) +++ head/sys/vm/vm_page.h Sun May 16 23:45:10 2010 (r208175) @@ -217,8 +217,8 @@ extern struct vpglocks pa_lock[]; * pte mappings, nor can they be removed from their objects via * the object, and such pages are also not on any PQ queue. * - * PG_WRITEABLE is set exclusively by pmap_enter(). When it does so, either - * the page must be VPO_BUSY or the containing object must be locked. + * PG_WRITEABLE is set exclusively by pmap_enter(). When it does so, the page + * must be VPO_BUSY. */ #define PG_CACHED 0x0001 /* page is cached */ #define PG_FREE 0x0002 /* page is free */ From owner-svn-src-all@FreeBSD.ORG Mon May 17 01:18:13 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D6BBC1065673; Mon, 17 May 2010 01:18:13 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C520B8FC1F; Mon, 17 May 2010 01:18:13 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4H1IDii072098; Mon, 17 May 2010 01:18:13 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4H1IDeI072097; Mon, 17 May 2010 01:18:13 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201005170118.o4H1IDeI072097@svn.freebsd.org> From: Rick Macklem Date: Mon, 17 May 2010 01:18:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208176 - stable/8/usr.sbin/mountd X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 01:18:13 -0000 Author: rmacklem Date: Mon May 17 01:18:12 2010 New Revision: 208176 URL: http://svn.freebsd.org/changeset/base/208176 Log: MFC: r207689 If the "-alldirs" export option was used for the V4: line, mountd would crash in check_options() since dp == NULL for the V4: line. This patch moves the check for options allowed on the V4: line to ahead of where dp is used to avoid this crash. Modified: stable/8/usr.sbin/mountd/mountd.c Directory Properties: stable/8/usr.sbin/mountd/ (props changed) Modified: stable/8/usr.sbin/mountd/mountd.c ============================================================================== --- stable/8/usr.sbin/mountd/mountd.c Sun May 16 23:45:10 2010 (r208175) +++ stable/8/usr.sbin/mountd/mountd.c Mon May 17 01:18:12 2010 (r208176) @@ -2881,16 +2881,16 @@ check_options(dp) syslog(LOG_ERR, "-mask and /masklen are mutually exclusive"); return (1); } - if ((opt_flags & OP_ALLDIRS) && dp->dp_left) { - syslog(LOG_ERR, "-alldirs has multiple directories"); - return (1); - } if (v4root_phase > 0 && (opt_flags & ~(OP_SEC | OP_MASK | OP_NET | OP_HAVEMASK | OP_MASKLEN)) != 0) { syslog(LOG_ERR,"only -sec,-net,-mask options allowed on V4:"); return (1); } + if ((opt_flags & OP_ALLDIRS) && dp->dp_left) { + syslog(LOG_ERR, "-alldirs has multiple directories"); + return (1); + } return (0); } From owner-svn-src-all@FreeBSD.ORG Mon May 17 01:20:50 2010 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 35CBF106566B; Mon, 17 May 2010 01:20:50 +0000 (UTC) (envelope-from keramida@ceid.upatras.gr) Received: from igloo.linux.gr (igloo.linux.gr [62.1.205.36]) by mx1.freebsd.org (Postfix) with ESMTP id 9E5DC8FC14; Mon, 17 May 2010 01:20:49 +0000 (UTC) X-Spam-Status: No X-Hellug-MailScanner-From: keramida@ceid.upatras.gr X-Hellug-MailScanner-SpamCheck: not spam, SpamAssassin (not cached, score=-1.001, required 5, autolearn=not spam, ALL_TRUSTED -1.00, BAYES_40 -0.00) X-Hellug-MailScanner: Found to be clean X-Hellug-MailScanner-ID: o4H12i8J022125 Received: from kobe.laptop (ppp-94-64-236-75.home.otenet.gr [94.64.236.75]) (authenticated bits=128) by igloo.linux.gr (8.14.3/8.14.3/Debian-9.1) with ESMTP id o4H12i8J022125 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Mon, 17 May 2010 04:02:50 +0300 Received: from kobe.laptop (kobe.laptop [127.0.0.1]) by kobe.laptop (8.14.4/8.14.4) with ESMTP id o4H12hsC057801 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 17 May 2010 04:02:44 +0300 (EEST) (envelope-from keramida@ceid.upatras.gr) Received: (from keramida@localhost) by kobe.laptop (8.14.4/8.14.4/Submit) id o4H12h9h057798; Mon, 17 May 2010 04:02:43 +0300 (EEST) (envelope-from keramida@ceid.upatras.gr) From: Giorgos Keramidas To: Tim Kientzle References: <201005162043.o4GKhHp8010715@svn.freebsd.org> Date: Mon, 17 May 2010 04:02:43 +0300 In-Reply-To: <201005162043.o4GKhHp8010715@svn.freebsd.org> (Tim Kientzle's message of "Sun, 16 May 2010 20:43:17 +0000 (UTC)") Message-ID: <87fx1r8hn0.fsf@kobe.laptop> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r208169 - head/lib/libarchive X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 01:20:50 -0000 On Sun, 16 May 2010 20:43:17 +0000 (UTC), Tim Kientzle wrote: > Author: kientzle > Date: Sun May 16 20:43:17 2010 > New Revision: 208169 > URL: http://svn.freebsd.org/changeset/base/208169 > > Log: > Reorganize slightly in preparation for making lzma and bz2 support conditional. > > Modified: > head/lib/libarchive/Makefile > head/lib/libarchive/config_freebsd.h > > Modified: head/lib/libarchive/Makefile > ============================================================================== > --- head/lib/libarchive/Makefile Sun May 16 20:31:31 2010 (r208168) > +++ head/lib/libarchive/Makefile Sun May 16 20:43:17 2010 (r208169) > @@ -2,8 +2,16 @@ > .include > > LIB= archive > -DPADD= ${LIBBZ2} ${LIBZ} ${LIBMD} ${LIBLZMA} > -LDADD= -lbz2 -lz -lmd -llzma > +DPADD= ${LIBZ} ${LIBMD} > +LDADD= -lz -lmd > + > +DPADD+= ${LIBBZ2} > +LDADD+= -lbz2 > +CFLAGS+= -DHAVE_BZLIB_H 1 We need an equal-sign in -DHAVE_BZLIB_H=1 here. Otherwise libarchive is broken with: % cc -O2 -pipe -DHAVE_BZLIB_H 1 -DHAVE_LIBLZMA=1 -DHAVE_LZMA_H=1 \ % -DPLATFORM_CONFIG_H=\"config_freebsd.h\" \ % -I/usr/obj/usr/src/lib/libarchive -DWITH_OPENSSL -g -std=gnu99 \ % -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k \ % -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes \ % -Wpointer-arith -Wreturn-type -Wcast-qual -Wwrite-strings -Wswitch \ % -Wshadow -Wunused-parameter -Wcast-align -Wchar-subscripts \ % -Winline -Wnested-externs -Wredundant-decls -Wold-style-definition \ % -Wno-pointer-sign -c /usr/src/lib/libarchive/archive_check_magic.c % cc: 1: No such file or directory From owner-svn-src-all@FreeBSD.ORG Mon May 17 01:41:12 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 37CDC1065674; Mon, 17 May 2010 01:41:12 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0CC7E8FC20; Mon, 17 May 2010 01:41:12 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4H1fBus077111; Mon, 17 May 2010 01:41:11 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4H1fBZC077109; Mon, 17 May 2010 01:41:11 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201005170141.o4H1fBZC077109@svn.freebsd.org> From: Rick Macklem Date: Mon, 17 May 2010 01:41:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208177 - stable/8/sys/fs/nfs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 01:41:12 -0000 Author: rmacklem Date: Mon May 17 01:41:11 2010 New Revision: 208177 URL: http://svn.freebsd.org/changeset/base/208177 Log: MFC: r207764 Patch the experimental NFS client so that it works for NFSv2 by adding the necessary mapping from NFSv3 procedure numbers to NFSv2 procedure numbers when doing NFSv2 RPCs. Modified: stable/8/sys/fs/nfs/nfs_commonkrpc.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/fs/nfs/nfs_commonkrpc.c ============================================================================== --- stable/8/sys/fs/nfs/nfs_commonkrpc.c Mon May 17 01:18:12 2010 (r208176) +++ stable/8/sys/fs/nfs/nfs_commonkrpc.c Mon May 17 01:41:11 2010 (r208177) @@ -97,14 +97,37 @@ static void nfs_up(struct nfsmount *, st int, int); static int nfs_msg(struct thread *, const char *, const char *, int); -extern int nfsv2_procid[]; - struct nfs_cached_auth { int ca_refs; /* refcount, including 1 from the cache */ uid_t ca_uid; /* uid that corresponds to this auth */ AUTH *ca_auth; /* RPC auth handle */ }; +static int nfsv2_procid[NFS_V3NPROCS] = { + NFSV2PROC_NULL, + NFSV2PROC_GETATTR, + NFSV2PROC_SETATTR, + NFSV2PROC_LOOKUP, + NFSV2PROC_NOOP, + NFSV2PROC_READLINK, + NFSV2PROC_READ, + NFSV2PROC_WRITE, + NFSV2PROC_CREATE, + NFSV2PROC_MKDIR, + NFSV2PROC_SYMLINK, + NFSV2PROC_CREATE, + NFSV2PROC_REMOVE, + NFSV2PROC_RMDIR, + NFSV2PROC_RENAME, + NFSV2PROC_LINK, + NFSV2PROC_READDIR, + NFSV2PROC_NOOP, + NFSV2PROC_STATFS, + NFSV2PROC_NOOP, + NFSV2PROC_NOOP, + NFSV2PROC_NOOP, +}; + /* * Initialize sockets and congestion for a new NFS connection. * We do not free the sockaddr if error. @@ -533,6 +556,15 @@ newnfs_request(struct nfsrv_descript *nd if (nmp != NULL) { NFSINCRGLOBAL(newnfsstats.rpcrequests); + + /* Map the procnum to the old NFSv2 one, as required. */ + if ((nd->nd_flag & ND_NFSV2) != 0) { + if (nd->nd_procnum < NFS_V3NPROCS) + procnum = nfsv2_procid[nd->nd_procnum]; + else + procnum = NFSV2PROC_NOOP; + } + /* * Now only used for the R_DONTRECOVER case, but until that is * supported within the krpc code, I need to keep a queue of From owner-svn-src-all@FreeBSD.ORG Mon May 17 02:01:22 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7647C1065678; Mon, 17 May 2010 02:01:22 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 64A7F8FC21; Mon, 17 May 2010 02:01:22 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4H21Mrw081665; Mon, 17 May 2010 02:01:22 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4H21Mpa081662; Mon, 17 May 2010 02:01:22 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201005170201.o4H21Mpa081662@svn.freebsd.org> From: Rick Macklem Date: Mon, 17 May 2010 02:01:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208179 - stable/8/sys/fs/nfs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 02:01:22 -0000 Author: rmacklem Date: Mon May 17 02:01:22 2010 New Revision: 208179 URL: http://svn.freebsd.org/changeset/base/208179 Log: MFC: r207785 Fix typos in macros. Modified: stable/8/sys/fs/nfs/nfskpiport.h stable/8/sys/fs/nfs/nfsport.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/fs/nfs/nfskpiport.h ============================================================================== --- stable/8/sys/fs/nfs/nfskpiport.h Mon May 17 01:49:52 2010 (r208178) +++ stable/8/sys/fs/nfs/nfskpiport.h Mon May 17 02:01:22 2010 (r208179) @@ -27,7 +27,7 @@ */ #ifndef _NFS_NFSKPIPORT_H_ -#define _NFSKPIPORT_NFS_H_ +#define _NFS_NFSKPIPORT_H_ /* * These definitions are needed since the generic code is now using Darwin8 * KPI stuff. (I know, seems a bit silly, but I want the code to build on @@ -70,4 +70,4 @@ typedef struct mbuf * mbuf_t; #define uio_iov_len(p) ((p)->uio_iov->iov_len) #define uio_iov_len_add(p, v) ((p)->uio_iov->iov_len += (v)) -#endif /* _NFSKPIPORT_NFS_H */ +#endif /* _NFS_NFSKPIPORT_H */ Modified: stable/8/sys/fs/nfs/nfsport.h ============================================================================== --- stable/8/sys/fs/nfs/nfsport.h Mon May 17 01:49:52 2010 (r208178) +++ stable/8/sys/fs/nfs/nfsport.h Mon May 17 02:01:22 2010 (r208179) @@ -33,7 +33,7 @@ */ #ifndef _NFS_NFSPORT_H_ -#define _NFSPORT_NFS_H_ +#define _NFS_NFSPORT_H_ /* * In general, I'm not fond of #includes in .h files, but this seems @@ -922,4 +922,4 @@ struct nfsreq { #endif /* _KERNEL */ -#endif /* _NFSPORT_NFS_H */ +#endif /* _NFS_NFSPORT_H */ From owner-svn-src-all@FreeBSD.ORG Mon May 17 02:20:24 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EF0271065670; Mon, 17 May 2010 02:20:24 +0000 (UTC) (envelope-from jfv@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DD8F48FC13; Mon, 17 May 2010 02:20:24 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4H2KOd2085956; Mon, 17 May 2010 02:20:24 GMT (envelope-from jfv@svn.freebsd.org) Received: (from jfv@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4H2KO3r085954; Mon, 17 May 2010 02:20:24 GMT (envelope-from jfv@svn.freebsd.org) Message-Id: <201005170220.o4H2KO3r085954@svn.freebsd.org> From: Jack F Vogel Date: Mon, 17 May 2010 02:20:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208181 - stable/7/sys/dev/e1000 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 02:20:25 -0000 Author: jfv Date: Mon May 17 02:20:24 2010 New Revision: 208181 URL: http://svn.freebsd.org/changeset/base/208181 Log: Change lem_poll to match em Modified: stable/7/sys/dev/e1000/if_lem.c Modified: stable/7/sys/dev/e1000/if_lem.c ============================================================================== --- stable/7/sys/dev/e1000/if_lem.c Mon May 17 02:11:03 2010 (r208180) +++ stable/7/sys/dev/e1000/if_lem.c Mon May 17 02:20:24 2010 (r208181) @@ -1231,7 +1231,7 @@ lem_init(void *arg) * Legacy polling routine * *********************************************************************/ -static int +static void lem_poll(struct ifnet *ifp, enum poll_cmd cmd, int count) { struct adapter *adapter = ifp->if_softc; @@ -1240,7 +1240,7 @@ lem_poll(struct ifnet *ifp, enum poll_cm EM_CORE_LOCK(adapter); if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) { EM_CORE_UNLOCK(adapter); - return (rx_done); + return; } if (cmd == POLL_AND_CHECK_STATUS) { @@ -1262,7 +1262,7 @@ lem_poll(struct ifnet *ifp, enum poll_cm if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) lem_start_locked(ifp); EM_TX_UNLOCK(adapter); - return (rx_done); + return; } #endif /* DEVICE_POLLING */ From owner-svn-src-all@FreeBSD.ORG Mon May 17 03:51:58 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CBD43106564A; Mon, 17 May 2010 03:51:57 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 84BCD8FC12; Mon, 17 May 2010 03:51:57 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4H3pvBj006402; Mon, 17 May 2010 03:51:57 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4H3pvuG006399; Mon, 17 May 2010 03:51:57 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201005170351.o4H3pvuG006399@svn.freebsd.org> From: Alexander Motin Date: Mon, 17 May 2010 03:51:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208183 - in head/sys: conf modules/mvs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 03:51:58 -0000 Author: mav Date: Mon May 17 03:51:57 2010 New Revision: 208183 URL: http://svn.freebsd.org/changeset/base/208183 Log: Make mvs_if.c to not be always linked statically into the kernel. Link it same way as mvs.c. Modified: head/sys/conf/files head/sys/modules/mvs/Makefile Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Mon May 17 02:44:51 2010 (r208182) +++ head/sys/conf/files Mon May 17 03:51:57 2010 (r208183) @@ -1294,7 +1294,7 @@ dev/mpt/mpt_raid.c optional mpt dev/mpt/mpt_user.c optional mpt dev/msk/if_msk.c optional msk inet dev/mvs/mvs.c optional mvs -dev/mvs/mvs_if.m standard +dev/mvs/mvs_if.m optional mvs dev/mvs/mvs_pci.c optional mvs pci dev/mwl/if_mwl.c optional mwl dev/mwl/if_mwl_pci.c optional mwl pci Modified: head/sys/modules/mvs/Makefile ============================================================================== --- head/sys/modules/mvs/Makefile Mon May 17 02:44:51 2010 (r208182) +++ head/sys/modules/mvs/Makefile Mon May 17 03:51:57 2010 (r208183) @@ -3,7 +3,7 @@ .PATH: ${.CURDIR}/../../dev/mvs KMOD= mvs -SRCS= mvs.c mvs_pci.c mvs.h mvs_if.h device_if.h bus_if.h pci_if.h opt_cam.h +SRCS= mvs.c mvs_pci.c mvs.h mvs_if.c mvs_if.h device_if.h bus_if.h pci_if.h opt_cam.h MFILES= kern/bus_if.m kern/device_if.m dev/pci/pci_if.m dev/mvs/mvs_if.m From owner-svn-src-all@FreeBSD.ORG Mon May 17 07:06:55 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ACD7A106566B; Mon, 17 May 2010 07:06:55 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 831E08FC1C; Mon, 17 May 2010 07:06:55 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4H76tuO049239; Mon, 17 May 2010 07:06:55 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4H76t8e049238; Mon, 17 May 2010 07:06:55 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201005170706.o4H76t8e049238@svn.freebsd.org> From: Xin LI Date: Mon, 17 May 2010 07:06:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208184 - head/lib/libarchive X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 07:06:55 -0000 Author: delphij Date: Mon May 17 07:06:54 2010 New Revision: 208184 URL: http://svn.freebsd.org/changeset/base/208184 Log: Fix build. Modified: head/lib/libarchive/Makefile Modified: head/lib/libarchive/Makefile ============================================================================== --- head/lib/libarchive/Makefile Mon May 17 03:51:57 2010 (r208183) +++ head/lib/libarchive/Makefile Mon May 17 07:06:54 2010 (r208184) @@ -7,7 +7,7 @@ LDADD= -lz -lmd DPADD+= ${LIBBZ2} LDADD+= -lbz2 -CFLAGS+= -DHAVE_BZLIB_H 1 +CFLAGS+= -DHAVE_BZLIB_H=1 DPADD+= ${LIBLZMA} LDADD+= -llzma From owner-svn-src-all@FreeBSD.ORG Mon May 17 08:11:23 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D3A401065670; Mon, 17 May 2010 08:11:23 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C22E08FC0C; Mon, 17 May 2010 08:11:23 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4H8BNws063416; Mon, 17 May 2010 08:11:23 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4H8BNjN063414; Mon, 17 May 2010 08:11:23 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201005170811.o4H8BNjN063414@svn.freebsd.org> From: Konstantin Belousov Date: Mon, 17 May 2010 08:11:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208185 - stable/8/sys/fs/procfs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 08:11:23 -0000 Author: kib Date: Mon May 17 08:11:23 2010 New Revision: 208185 URL: http://svn.freebsd.org/changeset/base/208185 Log: MFC r207847: For detach procfs ctl command, also clear P_STOPPED_TRACE process stop flag, and for each thread, TDB_SUSPEND debug flag, same as it is done by exit1() for orphaned debugee. Modified: stable/8/sys/fs/procfs/procfs_ctl.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/fs/procfs/procfs_ctl.c ============================================================================== --- stable/8/sys/fs/procfs/procfs_ctl.c Mon May 17 07:06:54 2010 (r208184) +++ stable/8/sys/fs/procfs/procfs_ctl.c Mon May 17 08:11:23 2010 (r208185) @@ -110,6 +110,7 @@ static int procfs_control(struct thread *td, struct proc *p, int op) { int error = 0; + struct thread *temp; /* * Attach - attaches the target process for debugging @@ -212,10 +213,12 @@ out: } /* not being traced any more */ - p->p_flag &= ~P_TRACED; + p->p_flag &= ~(P_TRACED | P_STOPPED_TRACE); /* remove pending SIGTRAP, else the process will die */ sigqueue_delete_proc(p, SIGTRAP); + FOREACH_THREAD_IN_PROC(p, temp) + temp->td_dbgflags &= ~TDB_SUSPEND; PROC_UNLOCK(p); /* give process back to original parent */ From owner-svn-src-all@FreeBSD.ORG Mon May 17 08:15:04 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AB0DA1065670; Mon, 17 May 2010 08:15:04 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9981D8FC12; Mon, 17 May 2010 08:15:04 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4H8F4Ja064271; Mon, 17 May 2010 08:15:04 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4H8F4AM064269; Mon, 17 May 2010 08:15:04 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201005170815.o4H8F4AM064269@svn.freebsd.org> From: Konstantin Belousov Date: Mon, 17 May 2010 08:15:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208186 - stable/8/sys/fs/procfs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 08:15:04 -0000 Author: kib Date: Mon May 17 08:15:04 2010 New Revision: 208186 URL: http://svn.freebsd.org/changeset/base/208186 Log: MFC r207848: The thread_unsuspend() requires both process mutex and process spinlock locked. Postpone the process unlock till the thread_unsuspend() is called. Modified: stable/8/sys/fs/procfs/procfs_ctl.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/fs/procfs/procfs_ctl.c ============================================================================== --- stable/8/sys/fs/procfs/procfs_ctl.c Mon May 17 08:11:23 2010 (r208185) +++ stable/8/sys/fs/procfs/procfs_ctl.c Mon May 17 08:15:04 2010 (r208186) @@ -236,7 +236,6 @@ out: PROC_LOCK(p); p->p_oppid = 0; p->p_flag &= ~P_WAITED; /* XXX ? */ - PROC_UNLOCK(p); sx_xunlock(&proctree_lock); wakeup(td->td_proc); /* XXX for CTL_WAIT below ? */ @@ -249,9 +248,10 @@ out: */ case PROCFS_CTL_STEP: error = proc_sstep(FIRST_THREAD_IN_PROC(p)); - PROC_UNLOCK(p); - if (error) + if (error) { + PROC_UNLOCK(p); return (error); + } break; /* @@ -260,7 +260,6 @@ out: */ case PROCFS_CTL_RUN: p->p_flag &= ~P_STOPPED_SIG; /* this uses SIGSTOP */ - PROC_UNLOCK(p); break; /* @@ -292,6 +291,7 @@ out: PROC_SLOCK(p); thread_unsuspend(p); /* If it can run, let it do so. */ PROC_SUNLOCK(p); + PROC_UNLOCK(p); return (0); } From owner-svn-src-all@FreeBSD.ORG Mon May 17 08:35:14 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 68F1A106567B; Mon, 17 May 2010 08:35:14 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 577B28FC1D; Mon, 17 May 2010 08:35:14 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4H8ZEoK068772; Mon, 17 May 2010 08:35:14 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4H8ZElI068770; Mon, 17 May 2010 08:35:14 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201005170835.o4H8ZElI068770@svn.freebsd.org> From: Konstantin Belousov Date: Mon, 17 May 2010 08:35:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208187 - stable/7/sys/fs/procfs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 08:35:14 -0000 Author: kib Date: Mon May 17 08:35:14 2010 New Revision: 208187 URL: http://svn.freebsd.org/changeset/base/208187 Log: MFC r207848: The thread_unsuspend() requires both process mutex and process spinlock locked. Postpone the process unlock till the thread_unsuspend() is called. Modified: stable/7/sys/fs/procfs/procfs_ctl.c Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/sys/fs/procfs/procfs_ctl.c ============================================================================== --- stable/7/sys/fs/procfs/procfs_ctl.c Mon May 17 08:15:04 2010 (r208186) +++ stable/7/sys/fs/procfs/procfs_ctl.c Mon May 17 08:35:14 2010 (r208187) @@ -233,7 +233,6 @@ out: PROC_LOCK(p); p->p_oppid = 0; p->p_flag &= ~P_WAITED; /* XXX ? */ - PROC_UNLOCK(p); sx_xunlock(&proctree_lock); wakeup(td->td_proc); /* XXX for CTL_WAIT below ? */ @@ -246,9 +245,10 @@ out: */ case PROCFS_CTL_STEP: error = proc_sstep(FIRST_THREAD_IN_PROC(p)); /* XXXKSE */ - PROC_UNLOCK(p); - if (error) + if (error) { + PROC_UNLOCK(p); return (error); + } break; /* @@ -257,7 +257,6 @@ out: */ case PROCFS_CTL_RUN: p->p_flag &= ~P_STOPPED_SIG; /* this uses SIGSTOP */ - PROC_UNLOCK(p); break; /* @@ -289,6 +288,7 @@ out: PROC_SLOCK(p); thread_unsuspend(p); /* If it can run, let it do so. */ PROC_SUNLOCK(p); + PROC_UNLOCK(p); return (0); } From owner-svn-src-all@FreeBSD.ORG Mon May 17 08:46:28 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 51D711065677; Mon, 17 May 2010 08:46:28 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 407278FC0A; Mon, 17 May 2010 08:46:28 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4H8kSE8071277; Mon, 17 May 2010 08:46:28 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4H8kSpJ071275; Mon, 17 May 2010 08:46:28 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201005170846.o4H8kSpJ071275@svn.freebsd.org> From: Konstantin Belousov Date: Mon, 17 May 2010 08:46:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208188 - stable/7/sys/fs/procfs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 08:46:28 -0000 Author: kib Date: Mon May 17 08:46:27 2010 New Revision: 208188 URL: http://svn.freebsd.org/changeset/base/208188 Log: Partial MFC r207847: For detach procfs ctl command, clear P_STOPPED_TRACE process stop flag. Modified: stable/7/sys/fs/procfs/procfs_ctl.c Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/sys/fs/procfs/procfs_ctl.c ============================================================================== --- stable/7/sys/fs/procfs/procfs_ctl.c Mon May 17 08:35:14 2010 (r208187) +++ stable/7/sys/fs/procfs/procfs_ctl.c Mon May 17 08:46:27 2010 (r208188) @@ -212,7 +212,7 @@ out: } /* not being traced any more */ - p->p_flag &= ~P_TRACED; + p->p_flag &= ~(P_TRACED | P_STOPPED_TRACE); /* remove pending SIGTRAP, else the process will die */ sigqueue_delete_proc(p, SIGTRAP); From owner-svn-src-all@FreeBSD.ORG Mon May 17 09:38:00 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5A2CE106567C; Mon, 17 May 2010 09:38:00 +0000 (UTC) (envelope-from kaiw@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 48DC18FC0A; Mon, 17 May 2010 09:38:00 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4H9bx1Z082616; Mon, 17 May 2010 09:37:59 GMT (envelope-from kaiw@svn.freebsd.org) Received: (from kaiw@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4H9bxMR082608; Mon, 17 May 2010 09:37:59 GMT (envelope-from kaiw@svn.freebsd.org) Message-Id: <201005170937.o4H9bxMR082608@svn.freebsd.org> From: Kai Wang Date: Mon, 17 May 2010 09:37:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208189 - head/usr.bin/ar X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 09:38:00 -0000 Author: kaiw Date: Mon May 17 09:37:59 2010 New Revision: 208189 URL: http://svn.freebsd.org/changeset/base/208189 Log: Removed ar(1)'s support for compressed archives. This change removes ar(1)'s dependencies on compressor libraries -lz, -lbz2 and -llzma and fixes building HEAD on some versions of FreeBSD[78]. Option -j and -z is now accepted but ignored. Compressed ar(1) archives are not useful without a ld(1) that can read them. Also, the current ar(1) compression scheme prevents random access of archive members and needs to be redesigned anyway. Submitted by: kientzle (original patch) Reviewed by: delphij Discussed on: -current mailing list Modified: head/usr.bin/ar/Makefile head/usr.bin/ar/acpyacc.y head/usr.bin/ar/ar.1 head/usr.bin/ar/ar.c head/usr.bin/ar/ar.h head/usr.bin/ar/read.c head/usr.bin/ar/write.c Modified: head/usr.bin/ar/Makefile ============================================================================== --- head/usr.bin/ar/Makefile Mon May 17 08:46:27 2010 (r208188) +++ head/usr.bin/ar/Makefile Mon May 17 09:37:59 2010 (r208189) @@ -3,8 +3,8 @@ PROG= ar SRCS= ar.c acplex.l acpyacc.y read.c util.c write.c y.tab.h -DPADD= ${LIBARCHIVE} ${LIBBZ2} ${LIBZ} ${LIBLZMA} ${LIBELF} -LDADD= -larchive -lbz2 -lz -llzma -lelf +DPADD= ${LIBARCHIVE} ${LIBELF} +LDADD= -larchive -lelf CFLAGS+=-I. -I${.CURDIR} Modified: head/usr.bin/ar/acpyacc.y ============================================================================== --- head/usr.bin/ar/acpyacc.y Mon May 17 08:46:27 2010 (r208188) +++ head/usr.bin/ar/acpyacc.y Mon May 17 09:37:59 2010 (r208189) @@ -250,7 +250,7 @@ arscp_open(char *fname) if ((a = archive_read_new()) == NULL) bsdar_errc(bsdar, EX_SOFTWARE, 0, "archive_read_new failed"); - archive_read_support_compression_all(a); + archive_read_support_compression_none(a); archive_read_support_format_ar(a); AC(archive_read_open_file(a, fname, DEF_BLKSZ)); if ((r = archive_read_next_header(a, &entry))) Modified: head/usr.bin/ar/ar.1 ============================================================================== --- head/usr.bin/ar/ar.1 Mon May 17 08:46:27 2010 (r208188) +++ head/usr.bin/ar/ar.1 Mon May 17 09:37:59 2010 (r208189) @@ -23,7 +23,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 31, 2007 +.Dd May 17, 2010 .Dt AR 1 .Os .Sh NAME @@ -186,8 +186,7 @@ Synonymous with option Synonymous with option .Fl b . .It Fl j -Compress the resulting archive with -.Xr bzip2 1 . +This option is accepted but ignored. .It Fl m Move archive members specified by arguments .Ar files ... @@ -344,8 +343,7 @@ of extraction unless the .Fl o option was specified. .It Fl z -Compress the resulting archive with -.Xr gzip 1 . +This option is accepted but ignored. .El .Sh EXAMPLES To create a new archive Modified: head/usr.bin/ar/ar.c ============================================================================== --- head/usr.bin/ar/ar.c Mon May 17 08:46:27 2010 (r208188) +++ head/usr.bin/ar/ar.c Mon May 17 09:37:59 2010 (r208189) @@ -178,7 +178,7 @@ main(int argc, char **argv) bsdar->options |= AR_TR; break; case 'j': - bsdar->options |= AR_J; + /* ignored */ break; case 'l': /* ignored, for GNU ar comptibility */ @@ -223,7 +223,7 @@ main(int argc, char **argv) set_mode(bsdar, opt); break; case 'z': - bsdar->options |= AR_Z; + /* ignored */ break; case OPTION_HELP: bsdar_usage(); Modified: head/usr.bin/ar/ar.h ============================================================================== --- head/usr.bin/ar/ar.h Mon May 17 08:46:27 2010 (r208188) +++ head/usr.bin/ar/ar.h Mon May 17 09:37:59 2010 (r208189) @@ -81,7 +81,6 @@ struct bsdar { const char *addlib; /* target of ADDLIB. */ const char *posarg; /* position arg for modifiers -a, -b. */ char mode; /* program mode */ - char compression; /* compression mode */ int options; /* command line options */ const char *progname; /* program name */ Modified: head/usr.bin/ar/read.c ============================================================================== --- head/usr.bin/ar/read.c Mon May 17 08:46:27 2010 (r208188) +++ head/usr.bin/ar/read.c Mon May 17 09:37:59 2010 (r208189) @@ -87,7 +87,7 @@ read_archive(struct bsdar *bsdar, char m if ((a = archive_read_new()) == NULL) bsdar_errc(bsdar, EX_SOFTWARE, 0, "archive_read_new failed"); - archive_read_support_compression_all(a); + archive_read_support_compression_none(a); archive_read_support_format_ar(a); AC(archive_read_open_file(a, bsdar->filename, DEF_BLKSZ)); Modified: head/usr.bin/ar/write.c ============================================================================== --- head/usr.bin/ar/write.c Mon May 17 08:46:27 2010 (r208188) +++ head/usr.bin/ar/write.c Mon May 17 09:37:59 2010 (r208189) @@ -247,7 +247,7 @@ read_objs(struct bsdar *bsdar, const cha if ((a = archive_read_new()) == NULL) bsdar_errc(bsdar, EX_SOFTWARE, 0, "archive_read_new failed"); - archive_read_support_compression_all(a); + archive_read_support_compression_none(a); archive_read_support_format_ar(a); AC(archive_read_open_filename(a, archive, DEF_BLKSZ)); for (;;) { @@ -264,13 +264,6 @@ read_objs(struct bsdar *bsdar, const cha continue; } - /* - * Remember the compression mode of existing archive. - * If neither -j nor -z is specified, this mode will - * be used for resulting archive. - */ - bsdar->compression = archive_compression(a); - name = archive_entry_pathname(entry); /* @@ -360,9 +353,6 @@ write_archive(struct bsdar *bsdar, char pos = NULL; memset(&sb, 0, sizeof(sb)); - /* By default, no compression is assumed. */ - bsdar->compression = ARCHIVE_COMPRESSION_NONE; - /* * Test if the specified archive exists, to figure out * whether we are creating one here. @@ -618,23 +608,7 @@ write_objs(struct bsdar *bsdar) bsdar_errc(bsdar, EX_SOFTWARE, 0, "archive_write_new failed"); archive_write_set_format_ar_svr4(a); - - /* The compression mode of the existing archive is used - * for the result archive or if creating a new archive, we - * do not compress archive by default. This default behavior can - * be overrided by compression mode specified explicitly - * through command line option `-j' or `-z'. - */ - if (bsdar->options & AR_J) - bsdar->compression = ARCHIVE_COMPRESSION_BZIP2; - if (bsdar->options & AR_Z) - bsdar->compression = ARCHIVE_COMPRESSION_GZIP; - if (bsdar->compression == ARCHIVE_COMPRESSION_BZIP2) - archive_write_set_compression_bzip2(a); - else if (bsdar->compression == ARCHIVE_COMPRESSION_GZIP) - archive_write_set_compression_gzip(a); - else - archive_write_set_compression_none(a); + archive_write_set_compression_none(a); AC(archive_write_open_filename(a, bsdar->filename)); From owner-svn-src-all@FreeBSD.ORG Mon May 17 10:28:53 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 70F4D1065672; Mon, 17 May 2010 10:28:53 +0000 (UTC) (envelope-from swell.k@gmail.com) Received: from fg-out-1718.google.com (fg-out-1718.google.com [72.14.220.153]) by mx1.freebsd.org (Postfix) with ESMTP id 7298B8FC17; Mon, 17 May 2010 10:28:52 +0000 (UTC) Received: by fg-out-1718.google.com with SMTP id l26so2055509fgb.13 for ; Mon, 17 May 2010 03:28:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:subject:references :date:in-reply-to:message-id:user-agent:mime-version:content-type; bh=UUc22fba6th222nUhsbYkQ7tPqwKOM8Wos5Ltg0IP2M=; b=LbatYRBLdcbE6xROXFb5VuvPExK0dhekRXqnDVixrr/hdagR5qvR9dgMOjYu2c2VHb 168U4s+VpCKHS5cr6ouDfu08vif+DP4RY4kj2rrom9ZGYwSgVLbbySs5pEmjJYRaHRIi QjBvcVoeKGt+nvj0rzNiTZqRPlr4CT7fnFP2M= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; b=IjXh2aAJv8kd9vXW+U8RVupHSsSJCYa3W/f8zcF12xMfu7DnlaK5iHp/VxE7moGXdz iSuq87uCzU2zbTvvYVH49y6gSw+R3x1NXbmldKxF77fUyOVer8nBjtmhF5CNx97mFAq2 Nimtwp3vD8o+iNi/SzfwElDFM9X1EMMX0ZStk= Received: by 10.87.69.29 with SMTP id w29mr8241514fgk.35.1274092131297; Mon, 17 May 2010 03:28:51 -0700 (PDT) Received: from localhost (95-25-188-72.broadband.corbina.ru [95.25.188.72]) by mx.google.com with ESMTPS id d4sm13002266fga.5.2010.05.17.03.28.50 (version=SSLv3 cipher=RC4-MD5); Mon, 17 May 2010 03:28:50 -0700 (PDT) From: Anonymous To: Tim Kientzle References: <201005081628.o48GSM9s067363__30886.3841965378$1273336146$gmane$org@svn.freebsd.org> <86aas3oc8b.fsf@gmail.com> <4BF059FF.8050002__30617.9139217877$1274042897$gmane$org@freebsd.org> Date: Mon, 17 May 2010 14:28:48 +0400 In-Reply-To: <4BF059FF.8050002__30617.9139217877$1274042897$gmane$org@freebsd.org> (Tim Kientzle's message of "Sun, 16 May 2010 13:47:59 -0700") Message-ID: <861vdaakkf.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r207790 - head/usr.bin/tar X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 10:28:53 -0000 Tim Kientzle writes: > Please try the attached patch and let me know if it fixes it for you... > > Cheers, > > Tim [...] It fixes the issue. Thanks. From owner-svn-src-all@FreeBSD.ORG Mon May 17 10:54:12 2010 Return-Path: Delivered-To: svn-src-all@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 978D31065689; Mon, 17 May 2010 10:54:12 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from tarsier.geekcn.org (tarsier.geekcn.org [IPv6:2001:470:a803::1]) by mx1.freebsd.org (Postfix) with ESMTP id 680FB8FC19; Mon, 17 May 2010 10:54:11 +0000 (UTC) Received: from mail.geekcn.org (tarsier.geekcn.org [211.166.10.233]) by tarsier.geekcn.org (Postfix) with ESMTP id 6BE8CA56AA3; Mon, 17 May 2010 18:54:09 +0800 (CST) X-Virus-Scanned: amavisd-new at geekcn.org Received: from tarsier.geekcn.org ([211.166.10.233]) by mail.geekcn.org (mail.geekcn.org [211.166.10.233]) (amavisd-new, port 10024) with LMTP id 9fP0SweT0Qya; Mon, 17 May 2010 18:54:03 +0800 (CST) Received: from delta.delphij.net (c-24-4-100-103.hsd1.ca.comcast.net [24.4.100.103]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by tarsier.geekcn.org (Postfix) with ESMTPSA id 7B11EA56AA9; Mon, 17 May 2010 18:54:01 +0800 (CST) DomainKey-Signature: a=rsa-sha1; s=default; d=delphij.net; c=nofws; q=dns; h=message-id:date:from:reply-to:organization:user-agent: mime-version:to:cc:subject:references:in-reply-to: x-enigmail-version:openpgp:content-type:content-transfer-encoding; b=riGW7YufkQgMRQsmo9dgekV/sxcSAeKW2tlkqOdpsYhbpje7U56i64s8je/E49nQ4 P3gmVxUDOgYDgBhGB18PA== Message-ID: <4BF12043.3010009@delphij.net> Date: Mon, 17 May 2010 03:53:55 -0700 From: Xin LI Organization: The Geek China Organization User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.9.1.9) Gecko/20100408 Thunderbird/3.0.4 ThunderBrowse/3.2.8.1 MIME-Version: 1.0 To: Kai Wang References: <201005170937.o4H9bxMR082608@svn.freebsd.org> In-Reply-To: <201005170937.o4H9bxMR082608@svn.freebsd.org> X-Enigmail-Version: 1.0.1 OpenPGP: id=3FCA37C1; url=http://www.delphij.net/delphij.asc Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: svn-src-head@FreeBSD.ORG, svn-src-all@FreeBSD.ORG, src-committers@FreeBSD.ORG Subject: Re: svn commit: r208189 - head/usr.bin/ar X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: d@delphij.net List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 10:54:12 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 2010/05/17 02:37, Kai Wang wrote: > Author: kaiw > Date: Mon May 17 09:37:59 2010 > New Revision: 208189 > URL: http://svn.freebsd.org/changeset/base/208189 > > Log: > Removed ar(1)'s support for compressed archives. This change removes > ar(1)'s dependencies on compressor libraries -lz, -lbz2 and -llzma and > fixes building HEAD on some versions of FreeBSD[78]. Option -j and -z > is now accepted but ignored. > > Compressed ar(1) archives are not useful without a ld(1) that can read > them. Also, the current ar(1) compression scheme prevents random > access of archive members and needs to be redesigned anyway. > > Submitted by: kientzle (original patch) Thanks! Cheers, - -- Xin LI http://www.delphij.net/ FreeBSD - The Power to Serve! Live free or die -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.14 (FreeBSD) iQEcBAEBAgAGBQJL8SBDAAoJEATO+BI/yjfB5L8H/1g1dYSRfWF46pTaRVmaXVFq SwehL5jGPtN9UxZzSeLD9XTqOCQc1VSl5yrkTp+FtHxwh8gG6H8J8rQeQlVvguzd Ns3HXTL3b64LOPvumYj22+kklbapvP7ZjZHCT4pixcGA8wyteM8Zi5hjN0bELINM 0eq62DJuaC59UzPksfWGO7pdlGmkWeAYzPWXsPpaCX65MAkHJpIwmTrrMiNELvvu bhmxw3Op2iVmiY4AJuQX/yjL9AHSpriHC/sb1n9iQMfcqJ0OQRKHR2DR04omWAbF RUF6p5N501yylLAEI3MOGZH/f47/GIr84eAheuNbC4WzI93StWllB7s6DHdlN1U= =/81y -----END PGP SIGNATURE----- From owner-svn-src-all@FreeBSD.ORG Mon May 17 11:18:33 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EFA631065672; Mon, 17 May 2010 11:18:33 +0000 (UTC) (envelope-from ivoras@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DF27C8FC19; Mon, 17 May 2010 11:18:33 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HBIXNm007529; Mon, 17 May 2010 11:18:33 GMT (envelope-from ivoras@svn.freebsd.org) Received: (from ivoras@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HBIXo3007527; Mon, 17 May 2010 11:18:33 GMT (envelope-from ivoras@svn.freebsd.org) Message-Id: <201005171118.o4HBIXo3007527@svn.freebsd.org> From: Ivan Voras Date: Mon, 17 May 2010 11:18:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208190 - head/usr.sbin/daemon X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 11:18:34 -0000 Author: ivoras Date: Mon May 17 11:18:33 2010 New Revision: 208190 URL: http://svn.freebsd.org/changeset/base/208190 Log: Slightly improve wording. Modified: head/usr.sbin/daemon/daemon.8 Modified: head/usr.sbin/daemon/daemon.8 ============================================================================== --- head/usr.sbin/daemon/daemon.8 Mon May 17 09:37:59 2010 (r208189) +++ head/usr.sbin/daemon/daemon.8 Mon May 17 11:18:33 2010 (r208190) @@ -63,7 +63,8 @@ Note, that the file will be created shor actually executed, and will remain after the process exits (although it will be removed if the execution fails). .It Fl u Ar user -Run the program with the rights of user specified, requires privilege. +Login name of the user to execute the program under. +Requires adequate superuser privileges. .El .Sh EXIT STATUS The From owner-svn-src-all@FreeBSD.ORG Mon May 17 14:20:26 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7EA221065676; Mon, 17 May 2010 14:20:26 +0000 (UTC) (envelope-from kensmith@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6D4348FC08; Mon, 17 May 2010 14:20:26 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HEKQed047603; Mon, 17 May 2010 14:20:26 GMT (envelope-from kensmith@svn.freebsd.org) Received: (from kensmith@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HEKQHa047601; Mon, 17 May 2010 14:20:26 GMT (envelope-from kensmith@svn.freebsd.org) Message-Id: <201005171420.o4HEKQHa047601@svn.freebsd.org> From: Ken Smith Date: Mon, 17 May 2010 14:20:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208192 - stable/8/sys/conf X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 14:20:26 -0000 Author: kensmith Date: Mon May 17 14:20:26 2010 New Revision: 208192 URL: http://svn.freebsd.org/changeset/base/208192 Log: Since sometimes developer activity the week before a code freeze starts causes the stable branch to be a little less reliable than normal mark the stable/8 branch as 8.1-PRERELEASE to warn users. Modified: stable/8/sys/conf/newvers.sh Modified: stable/8/sys/conf/newvers.sh ============================================================================== --- stable/8/sys/conf/newvers.sh Mon May 17 14:00:46 2010 (r208191) +++ stable/8/sys/conf/newvers.sh Mon May 17 14:20:26 2010 (r208192) @@ -31,8 +31,8 @@ # $FreeBSD$ TYPE="FreeBSD" -REVISION="8.0" -BRANCH="STABLE" +REVISION="8.1" +BRANCH="PRERELEASE" if [ "X${BRANCH_OVERRIDE}" != "X" ]; then BRANCH=${BRANCH_OVERRIDE} fi From owner-svn-src-all@FreeBSD.ORG Mon May 17 14:27:41 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4FBE3106567F; Mon, 17 May 2010 14:27:41 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 341EC8FC14; Mon, 17 May 2010 14:27:41 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HERfmM049265; Mon, 17 May 2010 14:27:41 GMT (envelope-from mm@svn.freebsd.org) Received: (from mm@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HERfpS049262; Mon, 17 May 2010 14:27:41 GMT (envelope-from mm@svn.freebsd.org) Message-Id: <201005171427.o4HERfpS049262@svn.freebsd.org> From: Martin Matuska Date: Mon, 17 May 2010 14:27:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208193 - stable/8/lib/libpam/modules/pam_krb5 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 14:27:41 -0000 Author: mm Date: Mon May 17 14:27:40 2010 New Revision: 208193 URL: http://svn.freebsd.org/changeset/base/208193 Log: MFC r207553, r207555, r207651: Implement the no_user_check option to pam_krb5. This option is available in the Linux implementation of pam_krb5 and allows to authorize a user not known to the local system. Ccache is not used as we don't have a secure uid/gid for the cache file. Usable for authentication of external kerberos users (e.g Active Directory) via PAM from applications like Cyrus saslauthd, PHP or perl. PR: bin/146186 Approved by: deplhij (mentor) Modified: stable/8/lib/libpam/modules/pam_krb5/pam_krb5.8 stable/8/lib/libpam/modules/pam_krb5/pam_krb5.c Directory Properties: stable/8/lib/libpam/ (props changed) Modified: stable/8/lib/libpam/modules/pam_krb5/pam_krb5.8 ============================================================================== --- stable/8/lib/libpam/modules/pam_krb5/pam_krb5.8 Mon May 17 14:20:26 2010 (r208192) +++ stable/8/lib/libpam/modules/pam_krb5/pam_krb5.8 Mon May 17 14:27:40 2010 (r208193) @@ -1,7 +1,7 @@ .\" .\" $Id: pam_krb5.5,v 1.5 2000/01/05 00:59:56 fcusack Exp $ .\" $FreeBSD$ -.Dd January 15, 1999 +.Dd May 3, 2010 .Dt PAM_KRB5 8 .Os .Sh NAME @@ -108,6 +108,10 @@ and .Ql %p , to designate the current process ID; can be used in .Ar name . +.It Cm no_user_check +Do not verify if a user exists on the local system. This option implies the +.Cm no_ccache +option because there is no secure local uid/gid for the cache file. .El .Ss Kerberos 5 Account Management Module The Kerberos 5 account management component Modified: stable/8/lib/libpam/modules/pam_krb5/pam_krb5.c ============================================================================== --- stable/8/lib/libpam/modules/pam_krb5/pam_krb5.c Mon May 17 14:20:26 2010 (r208192) +++ stable/8/lib/libpam/modules/pam_krb5/pam_krb5.c Mon May 17 14:27:40 2010 (r208193) @@ -89,6 +89,7 @@ static void compat_free_data_contents(kr #define PAM_OPT_DEBUG "debug" #define PAM_OPT_FORWARDABLE "forwardable" #define PAM_OPT_NO_CCACHE "no_ccache" +#define PAM_OPT_NO_USER_CHECK "no_user_check" #define PAM_OPT_REUSE_CCACHE "reuse_ccache" /* @@ -194,34 +195,39 @@ pam_sm_authenticate(pam_handle_t *pamh, PAM_LOG("Got password"); - /* Verify the local user exists (AFTER getting the password) */ - if (strchr(user, '@')) { - /* get a local account name for this principal */ - krbret = krb5_aname_to_localname(pam_context, princ, - sizeof(luser), luser); - if (krbret != 0) { - PAM_VERBOSE_ERROR("Kerberos 5 error"); - PAM_LOG("Error krb5_aname_to_localname(): %s", - krb5_get_err_text(pam_context, krbret)); - retval = PAM_USER_UNKNOWN; - goto cleanup2; + if (openpam_get_option(pamh, PAM_OPT_NO_USER_CHECK)) + PAM_LOG("Skipping local user check"); + else { + + /* Verify the local user exists (AFTER getting the password) */ + if (strchr(user, '@')) { + /* get a local account name for this principal */ + krbret = krb5_aname_to_localname(pam_context, princ, + sizeof(luser), luser); + if (krbret != 0) { + PAM_VERBOSE_ERROR("Kerberos 5 error"); + PAM_LOG("Error krb5_aname_to_localname(): %s", + krb5_get_err_text(pam_context, krbret)); + retval = PAM_USER_UNKNOWN; + goto cleanup2; + } + + retval = pam_set_item(pamh, PAM_USER, luser); + if (retval != PAM_SUCCESS) + goto cleanup2; + + PAM_LOG("PAM_USER Redone"); } - retval = pam_set_item(pamh, PAM_USER, luser); - if (retval != PAM_SUCCESS) + pwd = getpwnam(user); + if (pwd == NULL) { + retval = PAM_USER_UNKNOWN; goto cleanup2; + } - PAM_LOG("PAM_USER Redone"); - } - - pwd = getpwnam(user); - if (pwd == NULL) { - retval = PAM_USER_UNKNOWN; - goto cleanup2; + PAM_LOG("Done getpwnam()"); } - PAM_LOG("Done getpwnam()"); - /* Get a TGT */ memset(&creds, 0, sizeof(krb5_creds)); krbret = krb5_get_init_creds_password(pam_context, &creds, princ, @@ -366,7 +372,8 @@ pam_sm_setcred(pam_handle_t *pamh, int f return (PAM_SERVICE_ERR); /* If a persistent cache isn't desired, stop now. */ - if (openpam_get_option(pamh, PAM_OPT_NO_CCACHE)) + if (openpam_get_option(pamh, PAM_OPT_NO_CCACHE) || + openpam_get_option(pamh, PAM_OPT_NO_USER_CHECK)) return (PAM_SUCCESS); PAM_LOG("Establishing credentials"); From owner-svn-src-all@FreeBSD.ORG Mon May 17 15:31:24 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 675A2106564A; Mon, 17 May 2010 15:31:24 +0000 (UTC) (envelope-from vanhu@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 55ED78FC18; Mon, 17 May 2010 15:31:24 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HFVO2E063301; Mon, 17 May 2010 15:31:24 GMT (envelope-from vanhu@svn.freebsd.org) Received: (from vanhu@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HFVOIV063299; Mon, 17 May 2010 15:31:24 GMT (envelope-from vanhu@svn.freebsd.org) Message-Id: <201005171531.o4HFVOIV063299@svn.freebsd.org> From: VANHULLEBUS Yvan Date: Mon, 17 May 2010 15:31:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208194 - stable/8/sys/netipsec X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 15:31:24 -0000 Author: vanhu Date: Mon May 17 15:31:24 2010 New Revision: 208194 URL: http://svn.freebsd.org/changeset/base/208194 Log: MFC: Locks SPTREE when setting some SP entries to state DEAD. This can prevent kernel panics when updating SPs while there is some traffic for them. Obtained from: NETASQ Modified: stable/8/sys/netipsec/key.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/netipsec/key.c ============================================================================== --- stable/8/sys/netipsec/key.c Mon May 17 14:27:40 2010 (r208193) +++ stable/8/sys/netipsec/key.c Mon May 17 15:31:24 2010 (r208194) @@ -1882,7 +1882,9 @@ key_spdadd(so, m, mhp) newsp = key_getsp(&spidx); if (mhp->msg->sadb_msg_type == SADB_X_SPDUPDATE) { if (newsp) { + SPTREE_LOCK(); newsp->state = IPSEC_SPSTATE_DEAD; + SPTREE_UNLOCK(); KEY_FREESP(&newsp); } } else { @@ -2127,7 +2129,9 @@ key_spddelete(so, m, mhp) /* save policy id to buffer to be returned. */ xpl0->sadb_x_policy_id = sp->id; + SPTREE_LOCK(); sp->state = IPSEC_SPSTATE_DEAD; + SPTREE_UNLOCK(); KEY_FREESP(&sp); { @@ -2194,7 +2198,9 @@ key_spddelete2(so, m, mhp) return key_senderror(so, m, EINVAL); } + SPTREE_LOCK(); sp->state = IPSEC_SPSTATE_DEAD; + SPTREE_UNLOCK(); KEY_FREESP(&sp); { From owner-svn-src-all@FreeBSD.ORG Mon May 17 15:45:54 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 95BA5106566C; Mon, 17 May 2010 15:45:54 +0000 (UTC) (envelope-from matthew.fleming@isilon.com) Received: from seaxch09.isilon.com (seaxch09.isilon.com [74.85.160.25]) by mx1.freebsd.org (Postfix) with ESMTP id 733018FC16; Mon, 17 May 2010 15:45:54 +0000 (UTC) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Date: Mon, 17 May 2010 08:33:52 -0700 Message-ID: <06D5F9F6F655AD4C92E28B662F7F853E021D4D66@seaxch09.desktop.isilon.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: svn commit: r208003 - in head/sys: kern sys Thread-Index: Acr0tZ24VvXcICWfSciYrg8DiAvBhwBH5f1R References: <201005122124.o4CLOk3b027904@svn.freebsd.org> <20100516050651.GZ83316@deviant.kiev.zoral.com.ua> From: "Matthew Fleming" To: "Kostik Belousov" , "Zachary Loafman" Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: RE: svn commit: r208003 - in head/sys: kern sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 15:45:54 -0000 > From: Kostik Belousov [mailto:kostikbel@gmail.com] > On Wed, May 12, 2010 at 09:24:46PM +0000, Zachary Loafman wrote: > > Author: zml > > Date: Wed May 12 21:24:46 2010 > > New Revision: 208003 > > URL: http://svn.freebsd.org/changeset/base/208003 > >=20 > > Log: > > Add VOP_ADVLOCKPURGE so that the file system is called when = purging > > locks (in the case where the VFS impl isn't using lf_*) > > =20 > > Submitted by: Matthew Fleming > > Reviewed by: zml, dfr >=20 > After looking at what happen to nullfs, see r208003, I wonder why > the vop is needed. It is called after VOP_RECLAIM is called by = vgonel(), > after fs-specific data are destroyed. So, on the one hand, vop can = only > operate on struct vnode proper, on the other hand, the actions = performed > by vop_advlockpurge implementation can be done by vop_reclaim as well. >=20 > Could you, please, give some details on the supposed use of the vop ? >From a design perspective, it makes little sense to allow overriding the = advlock operation, but not the purge. A specific example is if an = implementation does not use struct lockf to implement advlock, then the = hack you mention of purging in VOP_RECLAIM is needed. After looking over the history of the changes, I believe it would be = sufficient to have the lock purge done before the reclaim. The vnode is = locked exclusively for both operations, so I don't believe there will be = any timing windows. But I am still not 100% sure when the file lock is = used versus the interlock for serializing access to various fields. The advlock VOPs are analogous to the regular VOP_LOCK in that we expect = an implementation may override the VOP and also the data structures = used, e.g. to not use the vnode's v_lock field for the VOP_LOCK. Thus = any code which refers to v_lockf should be wrapped in a VOP to allow = correct overriding. Thanks, matthew From owner-svn-src-all@FreeBSD.ORG Mon May 17 16:28:11 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 55FFF106564A; Mon, 17 May 2010 16:28:11 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from mail.zoral.com.ua (mx0.zoral.com.ua [91.193.166.200]) by mx1.freebsd.org (Postfix) with ESMTP id DF2808FC15; Mon, 17 May 2010 16:28:10 +0000 (UTC) Received: from deviant.kiev.zoral.com.ua (root@deviant.kiev.zoral.com.ua [10.1.1.148]) by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id o4HGSJKh019060 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 17 May 2010 19:28:19 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1]) by deviant.kiev.zoral.com.ua (8.14.4/8.14.4) with ESMTP id o4HGS6SI046648; Mon, 17 May 2010 19:28:06 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.14.4/8.14.4/Submit) id o4HGS628046639; Mon, 17 May 2010 19:28:06 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Mon, 17 May 2010 19:28:06 +0300 From: Kostik Belousov To: Matthew Fleming Message-ID: <20100517162806.GM83316@deviant.kiev.zoral.com.ua> References: <201005122124.o4CLOk3b027904@svn.freebsd.org> <20100516050651.GZ83316@deviant.kiev.zoral.com.ua> <06D5F9F6F655AD4C92E28B662F7F853E021D4D66@seaxch09.desktop.isilon.com> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="n8d7KAgWmJ23Ts4y" Content-Disposition: inline In-Reply-To: <06D5F9F6F655AD4C92E28B662F7F853E021D4D66@seaxch09.desktop.isilon.com> User-Agent: Mutt/1.4.2.3i X-Virus-Scanned: clamav-milter 0.95.2 at skuns.kiev.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=-2.4 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_50, DNS_FROM_OPENWHOIS autolearn=no version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on skuns.kiev.zoral.com.ua Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, Zachary Loafman , src-committers@freebsd.org Subject: Re: svn commit: r208003 - in head/sys: kern sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 16:28:11 -0000 --n8d7KAgWmJ23Ts4y Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, May 17, 2010 at 08:33:52AM -0700, Matthew Fleming wrote: > > From: Kostik Belousov [mailto:kostikbel@gmail.com] > > On Wed, May 12, 2010 at 09:24:46PM +0000, Zachary Loafman wrote: > > > Author: zml > > > Date: Wed May 12 21:24:46 2010 > > > New Revision: 208003 > > > URL: http://svn.freebsd.org/changeset/base/208003 > > >=20 > > > Log: > > > Add VOP_ADVLOCKPURGE so that the file system is called when purging > > > locks (in the case where the VFS impl isn't using lf_*) > > > =20 > > > Submitted by: Matthew Fleming > > > Reviewed by: zml, dfr > >=20 > > After looking at what happen to nullfs, see r208003, I wonder why > > the vop is needed. It is called after VOP_RECLAIM is called by vgonel(), > > after fs-specific data are destroyed. So, on the one hand, vop can only > > operate on struct vnode proper, on the other hand, the actions performed > > by vop_advlockpurge implementation can be done by vop_reclaim as well. > >=20 > > Could you, please, give some details on the supposed use of the vop ? >=20 > >From a design perspective, it makes little sense to allow overriding > the advlock operation, but not the purge. A specific example is if an > implementation does not use struct lockf to implement advlock, then > the hack you mention of purging in VOP_RECLAIM is needed. > > After looking over the history of the changes, I believe it would be > sufficient to have the lock purge done before the reclaim. The vnode > is locked exclusively for both operations, so I don't believe there > will be any timing windows. But I am still not 100% sure when the file > lock is used versus the interlock for serializing access to various > fields. > > The advlock VOPs are analogous to the regular VOP_LOCK in that we > expect an implementation may override the VOP and also the data > structures used, e.g. to not use the vnode's v_lock field for the > VOP_LOCK. Thus any code which refers to v_lockf should be wrapped in a > VOP to allow correct overriding. Essentially, my argument is that whatever you do in VOP_ADVLOCKPURGE, can be and should be done in VOP_RECLAIM. This would also cover the v_data issue. --n8d7KAgWmJ23Ts4y Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (FreeBSD) iEYEARECAAYFAkvxbpUACgkQC3+MBN1Mb4jcwQCeItE83uff8FnY+WbI7H0xwDC+ QQAAoMFTDaTO9L/6gYGutbLyqpOoIJZd =PJi1 -----END PGP SIGNATURE----- --n8d7KAgWmJ23Ts4y-- From owner-svn-src-all@FreeBSD.ORG Mon May 17 16:47:25 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E847F1065675; Mon, 17 May 2010 16:47:25 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BD0D18FC13; Mon, 17 May 2010 16:47:25 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HGlP68080075; Mon, 17 May 2010 16:47:25 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HGlPj6080073; Mon, 17 May 2010 16:47:25 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201005171647.o4HGlPj6080073@svn.freebsd.org> From: Pyun YongHyeon Date: Mon, 17 May 2010 16:47:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208196 - stable/8/sys/dev/fxp X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 16:47:26 -0000 Author: yongari Date: Mon May 17 16:47:25 2010 New Revision: 208196 URL: http://svn.freebsd.org/changeset/base/208196 Log: MFC r207750: 8255x configure command requires number of bytes of configuration table. The default size of the configuration table was 22 bytes. To use extended feature of 82550/82551 the configuration table size was expanded to 32 bytes. The added configuration for 82550/82551 specifies VLAN hardware tagging and IPSec configuration as well as TCO. To make configuration easier fxp(4) used a configuration template and the template was copied to configuration table. After that, some parameters of the configuration table was changed depending on controller type and operation mode. However the size of template was 22 bytes so some configuration parameters were not properly initialized on 82550/82551. Fix this by increasing the template size. For 82557, 82558 and 82559 the size of the configuration is still 22 bytes. Modified: stable/8/sys/dev/fxp/if_fxp.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/dev/fxp/if_fxp.c ============================================================================== --- stable/8/sys/dev/fxp/if_fxp.c Mon May 17 16:04:09 2010 (r208195) +++ stable/8/sys/dev/fxp/if_fxp.c Mon May 17 16:47:25 2010 (r208196) @@ -106,9 +106,8 @@ static int tx_threshold = 64; /* * The configuration byte map has several undefined fields which - * must be one or must be zero. Set up a template for these bits - * only, (assuming a 82557 chip) leaving the actual configuration - * to fxp_init. + * must be one or must be zero. Set up a template for these bits. + * The actual configuration is performed in fxp_init. * * See struct fxp_cb_config for the bit definitions. */ @@ -137,7 +136,17 @@ static u_char fxp_cb_config_template[] = 0xf0, /* 18 */ 0x0, /* 19 */ 0x3f, /* 20 */ - 0x5 /* 21 */ + 0x5, /* 21 */ + 0x0, /* 22 */ + 0x0, /* 23 */ + 0x0, /* 24 */ + 0x0, /* 25 */ + 0x0, /* 26 */ + 0x0, /* 27 */ + 0x0, /* 28 */ + 0x0, /* 29 */ + 0x0, /* 30 */ + 0x0 /* 31 */ }; /* From owner-svn-src-all@FreeBSD.ORG Mon May 17 16:54:31 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B8C731065672; Mon, 17 May 2010 16:54:31 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8DC578FC14; Mon, 17 May 2010 16:54:31 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HGsVs2081653; Mon, 17 May 2010 16:54:31 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HGsVA3081651; Mon, 17 May 2010 16:54:31 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201005171654.o4HGsVA3081651@svn.freebsd.org> From: Pyun YongHyeon Date: Mon, 17 May 2010 16:54:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208197 - stable/7/sys/dev/fxp X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 16:54:31 -0000 Author: yongari Date: Mon May 17 16:54:31 2010 New Revision: 208197 URL: http://svn.freebsd.org/changeset/base/208197 Log: MFC r207750: 8255x configure command requires number of bytes of configuration table. The default size of the configuration table was 22 bytes. To use extended feature of 82550/82551 the configuration table size was expanded to 32 bytes. The added configuration for 82550/82551 specifies VLAN hardware tagging and IPSec configuration as well as TCO. To make configuration easier fxp(4) used a configuration template and the template was copied to configuration table. After that, some parameters of the configuration table was changed depending on controller type and operation mode. However the size of template was 22 bytes so some configuration parameters were not properly initialized on 82550/82551. Fix this by increasing the template size. For 82557, 82558 and 82559 the size of the configuration is still 22 bytes. Modified: stable/7/sys/dev/fxp/if_fxp.c Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/sys/dev/fxp/if_fxp.c ============================================================================== --- stable/7/sys/dev/fxp/if_fxp.c Mon May 17 16:47:25 2010 (r208196) +++ stable/7/sys/dev/fxp/if_fxp.c Mon May 17 16:54:31 2010 (r208197) @@ -106,9 +106,8 @@ static int tx_threshold = 64; /* * The configuration byte map has several undefined fields which - * must be one or must be zero. Set up a template for these bits - * only, (assuming a 82557 chip) leaving the actual configuration - * to fxp_init. + * must be one or must be zero. Set up a template for these bits. + * The actual configuration is performed in fxp_init. * * See struct fxp_cb_config for the bit definitions. */ @@ -137,7 +136,17 @@ static u_char fxp_cb_config_template[] = 0xf0, /* 18 */ 0x0, /* 19 */ 0x3f, /* 20 */ - 0x5 /* 21 */ + 0x5, /* 21 */ + 0x0, /* 22 */ + 0x0, /* 23 */ + 0x0, /* 24 */ + 0x0, /* 25 */ + 0x0, /* 26 */ + 0x0, /* 27 */ + 0x0, /* 28 */ + 0x0, /* 29 */ + 0x0, /* 30 */ + 0x0 /* 31 */ }; /* From owner-svn-src-all@FreeBSD.ORG Mon May 17 16:57:55 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B99D81065675; Mon, 17 May 2010 16:57:55 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A6EC68FC13; Mon, 17 May 2010 16:57:55 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HGvtBW082753; Mon, 17 May 2010 16:57:55 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HGvtxS082749; Mon, 17 May 2010 16:57:55 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201005171657.o4HGvtxS082749@svn.freebsd.org> From: Pyun YongHyeon Date: Mon, 17 May 2010 16:57:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208199 - stable/8/sys/dev/fxp X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 16:57:55 -0000 Author: yongari Date: Mon May 17 16:57:55 2010 New Revision: 208199 URL: http://svn.freebsd.org/changeset/base/208199 Log: MFC r207832: Export hardware MAC statistics through sysctl node. Previously fxp(4) already used to extract most hardware MAC statistics but it didn't show them. With this change, all MAC statistics counters are exported. Because there are a couple of new counters for 82558 and 82559, enable extended MAC statistics functionality to get these counters. Accoring to public data sheet, 82559 MAC statistics return 24 DWORD counters(3 counters are unknown at this moment) so increase MAC counter structure to meet the MAC statistics block size. The completion of MAC counter dump is now checked against FXP_STATS_DR_COMPLETE status code which is appended at the end of status block. Previously fxp(4) ignored the status of the FXP_SCB_COMMAND_CU_DUMPRESET command. fxp(4) does not wait for the completion of pending command before issuing FXP_SCB_COMMAND_CU_DUMPRESET. Instead it skips the command and try it next time. This scheme may show better performance but there is chance to loose updated counters after stopping controller. So make sure to update MAC statistics in fxp_stop(). While I'm here move sysctl node creation to fxp_sysctl_node(). Tested by: Larry Baird < lab <> gta dot com > Modified: stable/8/sys/dev/fxp/if_fxp.c stable/8/sys/dev/fxp/if_fxpreg.h stable/8/sys/dev/fxp/if_fxpvar.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/dev/fxp/if_fxp.c ============================================================================== --- stable/8/sys/dev/fxp/if_fxp.c Mon May 17 16:55:26 2010 (r208198) +++ stable/8/sys/dev/fxp/if_fxp.c Mon May 17 16:57:55 2010 (r208199) @@ -262,6 +262,8 @@ static int fxp_miibus_readreg(device_t static int fxp_miibus_writereg(device_t dev, int phy, int reg, int value); static void fxp_load_ucode(struct fxp_softc *sc); +static void fxp_update_stats(struct fxp_softc *sc); +static void fxp_sysctl_node(struct fxp_softc *sc); static int sysctl_int_range(SYSCTL_HANDLER_ARGS, int low, int high); static int sysctl_hw_fxp_bundle_max(SYSCTL_HANDLER_ARGS); @@ -537,39 +539,7 @@ fxp_attach(device_t dev) && (data & FXP_PHY_SERIAL_ONLY)) sc->flags |= FXP_FLAG_SERIAL_MEDIA; - SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), - SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), - OID_AUTO, "int_delay", CTLTYPE_INT | CTLFLAG_RW, - &sc->tunable_int_delay, 0, sysctl_hw_fxp_int_delay, "I", - "FXP driver receive interrupt microcode bundling delay"); - SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), - SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), - OID_AUTO, "bundle_max", CTLTYPE_INT | CTLFLAG_RW, - &sc->tunable_bundle_max, 0, sysctl_hw_fxp_bundle_max, "I", - "FXP driver receive interrupt microcode bundle size limit"); - SYSCTL_ADD_INT(device_get_sysctl_ctx(dev), - SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), - OID_AUTO, "rnr", CTLFLAG_RD, &sc->rnr, 0, - "FXP RNR events"); - SYSCTL_ADD_INT(device_get_sysctl_ctx(dev), - SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), - OID_AUTO, "noflow", CTLFLAG_RW, &sc->tunable_noflow, 0, - "FXP flow control disabled"); - - /* - * Pull in device tunables. - */ - sc->tunable_int_delay = TUNABLE_INT_DELAY; - sc->tunable_bundle_max = TUNABLE_BUNDLE_MAX; - sc->tunable_noflow = 1; - (void) resource_int_value(device_get_name(dev), device_get_unit(dev), - "int_delay", &sc->tunable_int_delay); - (void) resource_int_value(device_get_name(dev), device_get_unit(dev), - "bundle_max", &sc->tunable_bundle_max); - (void) resource_int_value(device_get_name(dev), device_get_unit(dev), - "noflow", &sc->tunable_noflow); - sc->rnr = 0; - + fxp_sysctl_node(sc); /* * Enable workarounds for certain chip revision deficiencies. * @@ -2020,6 +1990,81 @@ fxp_intr_body(struct fxp_softc *sc, stru return (rx_npkts); } +static void +fxp_update_stats(struct fxp_softc *sc) +{ + struct ifnet *ifp = sc->ifp; + struct fxp_stats *sp = sc->fxp_stats; + struct fxp_hwstats *hsp; + uint32_t *status; + + FXP_LOCK_ASSERT(sc, MA_OWNED); + + bus_dmamap_sync(sc->fxp_stag, sc->fxp_smap, + BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); + /* Update statistical counters. */ + if (sc->revision >= FXP_REV_82559_A0) + status = &sp->completion_status; + else if (sc->revision >= FXP_REV_82558_A4) + status = (uint32_t *)&sp->tx_tco; + else + status = &sp->tx_pause; + if (*status == htole32(FXP_STATS_DR_COMPLETE)) { + hsp = &sc->fxp_hwstats; + hsp->tx_good += le32toh(sp->tx_good); + hsp->tx_maxcols += le32toh(sp->tx_maxcols); + hsp->tx_latecols += le32toh(sp->tx_latecols); + hsp->tx_underruns += le32toh(sp->tx_underruns); + hsp->tx_lostcrs += le32toh(sp->tx_lostcrs); + hsp->tx_deffered += le32toh(sp->tx_deffered); + hsp->tx_single_collisions += le32toh(sp->tx_single_collisions); + hsp->tx_multiple_collisions += + le32toh(sp->tx_multiple_collisions); + hsp->tx_total_collisions += le32toh(sp->tx_total_collisions); + hsp->rx_good += le32toh(sp->rx_good); + hsp->rx_crc_errors += le32toh(sp->rx_crc_errors); + hsp->rx_alignment_errors += le32toh(sp->rx_alignment_errors); + hsp->rx_rnr_errors += le32toh(sp->rx_rnr_errors); + hsp->rx_overrun_errors += le32toh(sp->rx_overrun_errors); + hsp->rx_cdt_errors += le32toh(sp->rx_cdt_errors); + hsp->rx_shortframes += le32toh(sp->rx_shortframes); + hsp->tx_pause += le32toh(sp->tx_pause); + hsp->rx_pause += le32toh(sp->rx_pause); + hsp->rx_controls += le32toh(sp->rx_controls); + hsp->tx_tco += le16toh(sp->tx_tco); + hsp->rx_tco += le16toh(sp->rx_tco); + + ifp->if_opackets += le32toh(sp->tx_good); + ifp->if_collisions += le32toh(sp->tx_total_collisions); + if (sp->rx_good) { + ifp->if_ipackets += le32toh(sp->rx_good); + sc->rx_idle_secs = 0; + } else if (sc->flags & FXP_FLAG_RXBUG) { + /* + * Receiver's been idle for another second. + */ + sc->rx_idle_secs++; + } + ifp->if_ierrors += + le32toh(sp->rx_crc_errors) + + le32toh(sp->rx_alignment_errors) + + le32toh(sp->rx_rnr_errors) + + le32toh(sp->rx_overrun_errors); + /* + * If any transmit underruns occured, bump up the transmit + * threshold by another 512 bytes (64 * 8). + */ + if (sp->tx_underruns) { + ifp->if_oerrors += le32toh(sp->tx_underruns); + if (tx_threshold < 192) + tx_threshold += 64; + } + *status = 0; + bus_dmamap_sync(sc->fxp_stag, sc->fxp_smap, + BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); + } +} + /* * Update packet in/out/collision statistics. The i82557 doesn't * allow you to access these counters without doing a fairly @@ -2036,35 +2081,11 @@ fxp_tick(void *xsc) { struct fxp_softc *sc = xsc; struct ifnet *ifp = sc->ifp; - struct fxp_stats *sp = sc->fxp_stats; FXP_LOCK_ASSERT(sc, MA_OWNED); - bus_dmamap_sync(sc->fxp_stag, sc->fxp_smap, BUS_DMASYNC_POSTREAD); - ifp->if_opackets += le32toh(sp->tx_good); - ifp->if_collisions += le32toh(sp->tx_total_collisions); - if (sp->rx_good) { - ifp->if_ipackets += le32toh(sp->rx_good); - sc->rx_idle_secs = 0; - } else if (sc->flags & FXP_FLAG_RXBUG) { - /* - * Receiver's been idle for another second. - */ - sc->rx_idle_secs++; - } - ifp->if_ierrors += - le32toh(sp->rx_crc_errors) + - le32toh(sp->rx_alignment_errors) + - le32toh(sp->rx_rnr_errors) + - le32toh(sp->rx_overrun_errors); - /* - * If any transmit underruns occured, bump up the transmit - * threshold by another 512 bytes (64 * 8). - */ - if (sp->tx_underruns) { - ifp->if_oerrors += le32toh(sp->tx_underruns); - if (tx_threshold < 192) - tx_threshold += 64; - } + + /* Update statistical counters. */ + fxp_update_stats(sc); /* * Release any xmit buffers that have completed DMA. This isn't @@ -2099,24 +2120,7 @@ fxp_tick(void *xsc) /* * Start another stats dump. */ - bus_dmamap_sync(sc->fxp_stag, sc->fxp_smap, - BUS_DMASYNC_PREREAD); fxp_scb_cmd(sc, FXP_SCB_COMMAND_CU_DUMPRESET); - } else { - /* - * A previous command is still waiting to be accepted. - * Just zero our copy of the stats and wait for the - * next timer event to update them. - */ - sp->tx_good = 0; - sp->tx_underruns = 0; - sp->tx_total_collisions = 0; - - sp->rx_good = 0; - sp->rx_crc_errors = 0; - sp->rx_alignment_errors = 0; - sp->rx_rnr_errors = 0; - sp->rx_overrun_errors = 0; } if (sc->miibus != NULL) mii_tick(device_get_softc(sc->miibus)); @@ -2160,6 +2164,8 @@ fxp_stop(struct fxp_softc *sc) /* Disable interrupts. */ CSR_WRITE_1(sc, FXP_CSR_SCB_INTRCNTL, FXP_SCB_INTR_DISABLE); + fxp_update_stats(sc); + /* * Release any xmit buffers. */ @@ -2262,7 +2268,9 @@ fxp_init_body(struct fxp_softc *sc) * Initialize base of dump-stats buffer. */ fxp_scb_wait(sc); - bus_dmamap_sync(sc->fxp_stag, sc->fxp_smap, BUS_DMASYNC_PREREAD); + bzero(sc->fxp_stats, sizeof(struct fxp_stats)); + bus_dmamap_sync(sc->fxp_stag, sc->fxp_smap, + BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); CSR_WRITE_4(sc, FXP_CSR_SCB_GENERAL, sc->stats_addr); fxp_scb_cmd(sc, FXP_SCB_COMMAND_CU_DUMP_ADR); @@ -2383,6 +2391,22 @@ fxp_init_body(struct fxp_softc *sc) cbp->pri_fc_loc = 1; /* FC pri location (byte31) */ } + /* Enable 82558 and 82559 extended statistics functionality. */ + if (sc->revision >= FXP_REV_82558_A4) { + if (sc->revision >= FXP_REV_82559_A0) { + /* + * Extend configuration table size to 32 + * to include TCO configuration. + */ + cbp->byte_count = 32; + cbp->ext_stats_dis = 1; + /* Enable TCO stats. */ + cbp->tno_int_or_tco_en = 1; + cbp->gamla_rx = 1; + } else + cbp->ext_stats_dis = 0; + } + /* * Start the config command/DMA. */ @@ -3004,6 +3028,113 @@ fxp_load_ucode(struct fxp_softc *sc) sc->flags |= FXP_FLAG_UCODE; } +#define FXP_SYSCTL_STAT_ADD(c, h, n, p, d) \ + SYSCTL_ADD_UINT(c, h, OID_AUTO, n, CTLFLAG_RD, p, 0, d) + +static void +fxp_sysctl_node(struct fxp_softc *sc) +{ + struct sysctl_ctx_list *ctx; + struct sysctl_oid_list *child, *parent; + struct sysctl_oid *tree; + struct fxp_hwstats *hsp; + + ctx = device_get_sysctl_ctx(sc->dev); + child = SYSCTL_CHILDREN(device_get_sysctl_tree(sc->dev)); + + SYSCTL_ADD_PROC(ctx, child, + OID_AUTO, "int_delay", CTLTYPE_INT | CTLFLAG_RW, + &sc->tunable_int_delay, 0, sysctl_hw_fxp_int_delay, "I", + "FXP driver receive interrupt microcode bundling delay"); + SYSCTL_ADD_PROC(ctx, child, + OID_AUTO, "bundle_max", CTLTYPE_INT | CTLFLAG_RW, + &sc->tunable_bundle_max, 0, sysctl_hw_fxp_bundle_max, "I", + "FXP driver receive interrupt microcode bundle size limit"); + SYSCTL_ADD_INT(ctx, child,OID_AUTO, "rnr", CTLFLAG_RD, &sc->rnr, 0, + "FXP RNR events"); + SYSCTL_ADD_INT(ctx, child, + OID_AUTO, "noflow", CTLFLAG_RW, &sc->tunable_noflow, 0, + "FXP flow control disabled"); + + /* + * Pull in device tunables. + */ + sc->tunable_int_delay = TUNABLE_INT_DELAY; + sc->tunable_bundle_max = TUNABLE_BUNDLE_MAX; + sc->tunable_noflow = 1; + (void) resource_int_value(device_get_name(sc->dev), + device_get_unit(sc->dev), "int_delay", &sc->tunable_int_delay); + (void) resource_int_value(device_get_name(sc->dev), + device_get_unit(sc->dev), "bundle_max", &sc->tunable_bundle_max); + (void) resource_int_value(device_get_name(sc->dev), + device_get_unit(sc->dev), "noflow", &sc->tunable_noflow); + sc->rnr = 0; + + hsp = &sc->fxp_hwstats; + tree = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "stats", CTLFLAG_RD, + NULL, "FXP statistics"); + parent = SYSCTL_CHILDREN(tree); + + /* Rx MAC statistics. */ + tree = SYSCTL_ADD_NODE(ctx, parent, OID_AUTO, "rx", CTLFLAG_RD, + NULL, "Rx MAC statistics"); + child = SYSCTL_CHILDREN(tree); + FXP_SYSCTL_STAT_ADD(ctx, child, "good_frames", + &hsp->rx_good, "Good frames"); + FXP_SYSCTL_STAT_ADD(ctx, child, "crc_errors", + &hsp->rx_crc_errors, "CRC errors"); + FXP_SYSCTL_STAT_ADD(ctx, child, "alignment_errors", + &hsp->rx_alignment_errors, "Alignment errors"); + FXP_SYSCTL_STAT_ADD(ctx, child, "rnr_errors", + &hsp->rx_rnr_errors, "RNR errors"); + FXP_SYSCTL_STAT_ADD(ctx, child, "overrun_errors", + &hsp->rx_overrun_errors, "Overrun errors"); + FXP_SYSCTL_STAT_ADD(ctx, child, "cdt_errors", + &hsp->rx_cdt_errors, "Collision detect errors"); + FXP_SYSCTL_STAT_ADD(ctx, child, "shortframes", + &hsp->rx_shortframes, "Short frame errors"); + if (sc->revision >= FXP_REV_82558_A4) { + FXP_SYSCTL_STAT_ADD(ctx, child, "pause", + &hsp->rx_pause, "Pause frames"); + FXP_SYSCTL_STAT_ADD(ctx, child, "controls", + &hsp->rx_controls, "Unsupported control frames"); + } + if (sc->revision >= FXP_REV_82559_A0) + FXP_SYSCTL_STAT_ADD(ctx, child, "tco", + &hsp->rx_tco, "TCO frames"); + + /* Tx MAC statistics. */ + tree = SYSCTL_ADD_NODE(ctx, parent, OID_AUTO, "tx", CTLFLAG_RD, + NULL, "Tx MAC statistics"); + child = SYSCTL_CHILDREN(tree); + FXP_SYSCTL_STAT_ADD(ctx, child, "good_frames", + &hsp->tx_good, "Good frames"); + FXP_SYSCTL_STAT_ADD(ctx, child, "maxcols", + &hsp->tx_maxcols, "Maximum collisions errors"); + FXP_SYSCTL_STAT_ADD(ctx, child, "latecols", + &hsp->tx_latecols, "Late collisions errors"); + FXP_SYSCTL_STAT_ADD(ctx, child, "underruns", + &hsp->tx_underruns, "Underrun errors"); + FXP_SYSCTL_STAT_ADD(ctx, child, "lostcrs", + &hsp->tx_lostcrs, "Lost carrier sense"); + FXP_SYSCTL_STAT_ADD(ctx, child, "deffered", + &hsp->tx_deffered, "Deferred"); + FXP_SYSCTL_STAT_ADD(ctx, child, "single_collisions", + &hsp->tx_single_collisions, "Single collisions"); + FXP_SYSCTL_STAT_ADD(ctx, child, "multiple_collisions", + &hsp->tx_multiple_collisions, "Multiple collisions"); + FXP_SYSCTL_STAT_ADD(ctx, child, "total_collisions", + &hsp->tx_total_collisions, "Total collisions"); + if (sc->revision >= FXP_REV_82558_A4) + FXP_SYSCTL_STAT_ADD(ctx, child, "pause", + &hsp->tx_pause, "Pause frames"); + if (sc->revision >= FXP_REV_82559_A0) + FXP_SYSCTL_STAT_ADD(ctx, child, "tco", + &hsp->tx_tco, "TCO frames"); +} + +#undef FXP_SYSCTL_STAT_ADD + static int sysctl_int_range(SYSCTL_HANDLER_ARGS, int low, int high) { Modified: stable/8/sys/dev/fxp/if_fxpreg.h ============================================================================== --- stable/8/sys/dev/fxp/if_fxpreg.h Mon May 17 16:55:26 2010 (r208198) +++ stable/8/sys/dev/fxp/if_fxpreg.h Mon May 17 16:57:55 2010 (r208199) @@ -418,7 +418,15 @@ struct fxp_stats { uint32_t rx_overrun_errors; uint32_t rx_cdt_errors; uint32_t rx_shortframes; + uint32_t tx_pause; + uint32_t rx_pause; + uint32_t rx_controls; + uint16_t tx_tco; + uint16_t rx_tco; uint32_t completion_status; + uint32_t reserved0; + uint32_t reserved1; + uint32_t reserved2; }; #define FXP_STATS_DUMP_COMPLETE 0xa005 #define FXP_STATS_DR_COMPLETE 0xa007 Modified: stable/8/sys/dev/fxp/if_fxpvar.h ============================================================================== --- stable/8/sys/dev/fxp/if_fxpvar.h Mon May 17 16:55:26 2010 (r208198) +++ stable/8/sys/dev/fxp/if_fxpvar.h Mon May 17 16:57:55 2010 (r208199) @@ -149,6 +149,30 @@ struct fxp_ident { char *name; }; +struct fxp_hwstats { + uint32_t tx_good; + uint32_t tx_maxcols; + uint32_t tx_latecols; + uint32_t tx_underruns; + uint32_t tx_lostcrs; + uint32_t tx_deffered; + uint32_t tx_single_collisions; + uint32_t tx_multiple_collisions; + uint32_t tx_total_collisions; + uint32_t tx_pause; + uint32_t tx_tco; + uint32_t rx_good; + uint32_t rx_crc_errors; + uint32_t rx_alignment_errors; + uint32_t rx_rnr_errors; + uint32_t rx_overrun_errors; + uint32_t rx_cdt_errors; + uint32_t rx_shortframes; + uint32_t rx_pause; + uint32_t rx_controls; + uint32_t rx_tco; +}; + /* * NOTE: Elements are ordered for optimal cacheline behavior, and NOT * for functional grouping. @@ -175,6 +199,7 @@ struct fxp_softc { int tx_queued; /* # of active TxCB's */ struct fxp_stats *fxp_stats; /* Pointer to interface stats */ uint32_t stats_addr; /* DMA address of the stats structure */ + struct fxp_hwstats fxp_hwstats; int rx_idle_secs; /* # of seconds RX has been idle */ struct callout stat_ch; /* stat callout */ int watchdog_timer; /* seconds until chip reset */ From owner-svn-src-all@FreeBSD.ORG Mon May 17 16:59:36 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 631851065672; Mon, 17 May 2010 16:59:36 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 50B9F8FC16; Mon, 17 May 2010 16:59:36 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HGxaYl083333; Mon, 17 May 2010 16:59:36 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HGxaYr083329; Mon, 17 May 2010 16:59:36 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201005171659.o4HGxaYr083329@svn.freebsd.org> From: Pyun YongHyeon Date: Mon, 17 May 2010 16:59:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208200 - stable/7/sys/dev/fxp X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 16:59:36 -0000 Author: yongari Date: Mon May 17 16:59:36 2010 New Revision: 208200 URL: http://svn.freebsd.org/changeset/base/208200 Log: MFC r207832: Export hardware MAC statistics through sysctl node. Previously fxp(4) already used to extract most hardware MAC statistics but it didn't show them. With this change, all MAC statistics counters are exported. Because there are a couple of new counters for 82558 and 82559, enable extended MAC statistics functionality to get these counters. Accoring to public data sheet, 82559 MAC statistics return 24 DWORD counters(3 counters are unknown at this moment) so increase MAC counter structure to meet the MAC statistics block size. The completion of MAC counter dump is now checked against FXP_STATS_DR_COMPLETE status code which is appended at the end of status block. Previously fxp(4) ignored the status of the FXP_SCB_COMMAND_CU_DUMPRESET command. fxp(4) does not wait for the completion of pending command before issuing FXP_SCB_COMMAND_CU_DUMPRESET. Instead it skips the command and try it next time. This scheme may show better performance but there is chance to loose updated counters after stopping controller. So make sure to update MAC statistics in fxp_stop(). While I'm here move sysctl node creation to fxp_sysctl_node(). Tested by: Larry Baird < lab <> gta dot com > Modified: stable/7/sys/dev/fxp/if_fxp.c stable/7/sys/dev/fxp/if_fxpreg.h stable/7/sys/dev/fxp/if_fxpvar.h Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/sys/dev/fxp/if_fxp.c ============================================================================== --- stable/7/sys/dev/fxp/if_fxp.c Mon May 17 16:57:55 2010 (r208199) +++ stable/7/sys/dev/fxp/if_fxp.c Mon May 17 16:59:36 2010 (r208200) @@ -262,6 +262,8 @@ static int fxp_miibus_readreg(device_t static void fxp_miibus_writereg(device_t dev, int phy, int reg, int value); static void fxp_load_ucode(struct fxp_softc *sc); +static void fxp_update_stats(struct fxp_softc *sc); +static void fxp_sysctl_node(struct fxp_softc *sc); static int sysctl_int_range(SYSCTL_HANDLER_ARGS, int low, int high); static int sysctl_hw_fxp_bundle_max(SYSCTL_HANDLER_ARGS); @@ -538,39 +540,7 @@ fxp_attach(device_t dev) && (data & FXP_PHY_SERIAL_ONLY)) sc->flags |= FXP_FLAG_SERIAL_MEDIA; - SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), - SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), - OID_AUTO, "int_delay", CTLTYPE_INT | CTLFLAG_RW, - &sc->tunable_int_delay, 0, sysctl_hw_fxp_int_delay, "I", - "FXP driver receive interrupt microcode bundling delay"); - SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev), - SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), - OID_AUTO, "bundle_max", CTLTYPE_INT | CTLFLAG_RW, - &sc->tunable_bundle_max, 0, sysctl_hw_fxp_bundle_max, "I", - "FXP driver receive interrupt microcode bundle size limit"); - SYSCTL_ADD_INT(device_get_sysctl_ctx(dev), - SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), - OID_AUTO, "rnr", CTLFLAG_RD, &sc->rnr, 0, - "FXP RNR events"); - SYSCTL_ADD_INT(device_get_sysctl_ctx(dev), - SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), - OID_AUTO, "noflow", CTLFLAG_RW, &sc->tunable_noflow, 0, - "FXP flow control disabled"); - - /* - * Pull in device tunables. - */ - sc->tunable_int_delay = TUNABLE_INT_DELAY; - sc->tunable_bundle_max = TUNABLE_BUNDLE_MAX; - sc->tunable_noflow = 1; - (void) resource_int_value(device_get_name(dev), device_get_unit(dev), - "int_delay", &sc->tunable_int_delay); - (void) resource_int_value(device_get_name(dev), device_get_unit(dev), - "bundle_max", &sc->tunable_bundle_max); - (void) resource_int_value(device_get_name(dev), device_get_unit(dev), - "noflow", &sc->tunable_noflow); - sc->rnr = 0; - + fxp_sysctl_node(sc); /* * Enable workarounds for certain chip revision deficiencies. * @@ -2014,6 +1984,81 @@ fxp_intr_body(struct fxp_softc *sc, stru } } +static void +fxp_update_stats(struct fxp_softc *sc) +{ + struct ifnet *ifp = sc->ifp; + struct fxp_stats *sp = sc->fxp_stats; + struct fxp_hwstats *hsp; + uint32_t *status; + + FXP_LOCK_ASSERT(sc, MA_OWNED); + + bus_dmamap_sync(sc->fxp_stag, sc->fxp_smap, + BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); + /* Update statistical counters. */ + if (sc->revision >= FXP_REV_82559_A0) + status = &sp->completion_status; + else if (sc->revision >= FXP_REV_82558_A4) + status = (uint32_t *)&sp->tx_tco; + else + status = &sp->tx_pause; + if (*status == htole32(FXP_STATS_DR_COMPLETE)) { + hsp = &sc->fxp_hwstats; + hsp->tx_good += le32toh(sp->tx_good); + hsp->tx_maxcols += le32toh(sp->tx_maxcols); + hsp->tx_latecols += le32toh(sp->tx_latecols); + hsp->tx_underruns += le32toh(sp->tx_underruns); + hsp->tx_lostcrs += le32toh(sp->tx_lostcrs); + hsp->tx_deffered += le32toh(sp->tx_deffered); + hsp->tx_single_collisions += le32toh(sp->tx_single_collisions); + hsp->tx_multiple_collisions += + le32toh(sp->tx_multiple_collisions); + hsp->tx_total_collisions += le32toh(sp->tx_total_collisions); + hsp->rx_good += le32toh(sp->rx_good); + hsp->rx_crc_errors += le32toh(sp->rx_crc_errors); + hsp->rx_alignment_errors += le32toh(sp->rx_alignment_errors); + hsp->rx_rnr_errors += le32toh(sp->rx_rnr_errors); + hsp->rx_overrun_errors += le32toh(sp->rx_overrun_errors); + hsp->rx_cdt_errors += le32toh(sp->rx_cdt_errors); + hsp->rx_shortframes += le32toh(sp->rx_shortframes); + hsp->tx_pause += le32toh(sp->tx_pause); + hsp->rx_pause += le32toh(sp->rx_pause); + hsp->rx_controls += le32toh(sp->rx_controls); + hsp->tx_tco += le16toh(sp->tx_tco); + hsp->rx_tco += le16toh(sp->rx_tco); + + ifp->if_opackets += le32toh(sp->tx_good); + ifp->if_collisions += le32toh(sp->tx_total_collisions); + if (sp->rx_good) { + ifp->if_ipackets += le32toh(sp->rx_good); + sc->rx_idle_secs = 0; + } else if (sc->flags & FXP_FLAG_RXBUG) { + /* + * Receiver's been idle for another second. + */ + sc->rx_idle_secs++; + } + ifp->if_ierrors += + le32toh(sp->rx_crc_errors) + + le32toh(sp->rx_alignment_errors) + + le32toh(sp->rx_rnr_errors) + + le32toh(sp->rx_overrun_errors); + /* + * If any transmit underruns occured, bump up the transmit + * threshold by another 512 bytes (64 * 8). + */ + if (sp->tx_underruns) { + ifp->if_oerrors += le32toh(sp->tx_underruns); + if (tx_threshold < 192) + tx_threshold += 64; + } + *status = 0; + bus_dmamap_sync(sc->fxp_stag, sc->fxp_smap, + BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); + } +} + /* * Update packet in/out/collision statistics. The i82557 doesn't * allow you to access these counters without doing a fairly @@ -2030,35 +2075,11 @@ fxp_tick(void *xsc) { struct fxp_softc *sc = xsc; struct ifnet *ifp = sc->ifp; - struct fxp_stats *sp = sc->fxp_stats; FXP_LOCK_ASSERT(sc, MA_OWNED); - bus_dmamap_sync(sc->fxp_stag, sc->fxp_smap, BUS_DMASYNC_POSTREAD); - ifp->if_opackets += le32toh(sp->tx_good); - ifp->if_collisions += le32toh(sp->tx_total_collisions); - if (sp->rx_good) { - ifp->if_ipackets += le32toh(sp->rx_good); - sc->rx_idle_secs = 0; - } else if (sc->flags & FXP_FLAG_RXBUG) { - /* - * Receiver's been idle for another second. - */ - sc->rx_idle_secs++; - } - ifp->if_ierrors += - le32toh(sp->rx_crc_errors) + - le32toh(sp->rx_alignment_errors) + - le32toh(sp->rx_rnr_errors) + - le32toh(sp->rx_overrun_errors); - /* - * If any transmit underruns occured, bump up the transmit - * threshold by another 512 bytes (64 * 8). - */ - if (sp->tx_underruns) { - ifp->if_oerrors += le32toh(sp->tx_underruns); - if (tx_threshold < 192) - tx_threshold += 64; - } + + /* Update statistical counters. */ + fxp_update_stats(sc); /* * Release any xmit buffers that have completed DMA. This isn't @@ -2093,24 +2114,7 @@ fxp_tick(void *xsc) /* * Start another stats dump. */ - bus_dmamap_sync(sc->fxp_stag, sc->fxp_smap, - BUS_DMASYNC_PREREAD); fxp_scb_cmd(sc, FXP_SCB_COMMAND_CU_DUMPRESET); - } else { - /* - * A previous command is still waiting to be accepted. - * Just zero our copy of the stats and wait for the - * next timer event to update them. - */ - sp->tx_good = 0; - sp->tx_underruns = 0; - sp->tx_total_collisions = 0; - - sp->rx_good = 0; - sp->rx_crc_errors = 0; - sp->rx_alignment_errors = 0; - sp->rx_rnr_errors = 0; - sp->rx_overrun_errors = 0; } if (sc->miibus != NULL) mii_tick(device_get_softc(sc->miibus)); @@ -2154,6 +2158,8 @@ fxp_stop(struct fxp_softc *sc) /* Disable interrupts. */ CSR_WRITE_1(sc, FXP_CSR_SCB_INTRCNTL, FXP_SCB_INTR_DISABLE); + fxp_update_stats(sc); + /* * Release any xmit buffers. */ @@ -2256,7 +2262,9 @@ fxp_init_body(struct fxp_softc *sc) * Initialize base of dump-stats buffer. */ fxp_scb_wait(sc); - bus_dmamap_sync(sc->fxp_stag, sc->fxp_smap, BUS_DMASYNC_PREREAD); + bzero(sc->fxp_stats, sizeof(struct fxp_stats)); + bus_dmamap_sync(sc->fxp_stag, sc->fxp_smap, + BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); CSR_WRITE_4(sc, FXP_CSR_SCB_GENERAL, sc->stats_addr); fxp_scb_cmd(sc, FXP_SCB_COMMAND_CU_DUMP_ADR); @@ -2377,6 +2385,22 @@ fxp_init_body(struct fxp_softc *sc) cbp->pri_fc_loc = 1; /* FC pri location (byte31) */ } + /* Enable 82558 and 82559 extended statistics functionality. */ + if (sc->revision >= FXP_REV_82558_A4) { + if (sc->revision >= FXP_REV_82559_A0) { + /* + * Extend configuration table size to 32 + * to include TCO configuration. + */ + cbp->byte_count = 32; + cbp->ext_stats_dis = 1; + /* Enable TCO stats. */ + cbp->tno_int_or_tco_en = 1; + cbp->gamla_rx = 1; + } else + cbp->ext_stats_dis = 0; + } + /* * Start the config command/DMA. */ @@ -2997,6 +3021,113 @@ fxp_load_ucode(struct fxp_softc *sc) sc->flags |= FXP_FLAG_UCODE; } +#define FXP_SYSCTL_STAT_ADD(c, h, n, p, d) \ + SYSCTL_ADD_UINT(c, h, OID_AUTO, n, CTLFLAG_RD, p, 0, d) + +static void +fxp_sysctl_node(struct fxp_softc *sc) +{ + struct sysctl_ctx_list *ctx; + struct sysctl_oid_list *child, *parent; + struct sysctl_oid *tree; + struct fxp_hwstats *hsp; + + ctx = device_get_sysctl_ctx(sc->dev); + child = SYSCTL_CHILDREN(device_get_sysctl_tree(sc->dev)); + + SYSCTL_ADD_PROC(ctx, child, + OID_AUTO, "int_delay", CTLTYPE_INT | CTLFLAG_RW, + &sc->tunable_int_delay, 0, sysctl_hw_fxp_int_delay, "I", + "FXP driver receive interrupt microcode bundling delay"); + SYSCTL_ADD_PROC(ctx, child, + OID_AUTO, "bundle_max", CTLTYPE_INT | CTLFLAG_RW, + &sc->tunable_bundle_max, 0, sysctl_hw_fxp_bundle_max, "I", + "FXP driver receive interrupt microcode bundle size limit"); + SYSCTL_ADD_INT(ctx, child,OID_AUTO, "rnr", CTLFLAG_RD, &sc->rnr, 0, + "FXP RNR events"); + SYSCTL_ADD_INT(ctx, child, + OID_AUTO, "noflow", CTLFLAG_RW, &sc->tunable_noflow, 0, + "FXP flow control disabled"); + + /* + * Pull in device tunables. + */ + sc->tunable_int_delay = TUNABLE_INT_DELAY; + sc->tunable_bundle_max = TUNABLE_BUNDLE_MAX; + sc->tunable_noflow = 1; + (void) resource_int_value(device_get_name(sc->dev), + device_get_unit(sc->dev), "int_delay", &sc->tunable_int_delay); + (void) resource_int_value(device_get_name(sc->dev), + device_get_unit(sc->dev), "bundle_max", &sc->tunable_bundle_max); + (void) resource_int_value(device_get_name(sc->dev), + device_get_unit(sc->dev), "noflow", &sc->tunable_noflow); + sc->rnr = 0; + + hsp = &sc->fxp_hwstats; + tree = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "stats", CTLFLAG_RD, + NULL, "FXP statistics"); + parent = SYSCTL_CHILDREN(tree); + + /* Rx MAC statistics. */ + tree = SYSCTL_ADD_NODE(ctx, parent, OID_AUTO, "rx", CTLFLAG_RD, + NULL, "Rx MAC statistics"); + child = SYSCTL_CHILDREN(tree); + FXP_SYSCTL_STAT_ADD(ctx, child, "good_frames", + &hsp->rx_good, "Good frames"); + FXP_SYSCTL_STAT_ADD(ctx, child, "crc_errors", + &hsp->rx_crc_errors, "CRC errors"); + FXP_SYSCTL_STAT_ADD(ctx, child, "alignment_errors", + &hsp->rx_alignment_errors, "Alignment errors"); + FXP_SYSCTL_STAT_ADD(ctx, child, "rnr_errors", + &hsp->rx_rnr_errors, "RNR errors"); + FXP_SYSCTL_STAT_ADD(ctx, child, "overrun_errors", + &hsp->rx_overrun_errors, "Overrun errors"); + FXP_SYSCTL_STAT_ADD(ctx, child, "cdt_errors", + &hsp->rx_cdt_errors, "Collision detect errors"); + FXP_SYSCTL_STAT_ADD(ctx, child, "shortframes", + &hsp->rx_shortframes, "Short frame errors"); + if (sc->revision >= FXP_REV_82558_A4) { + FXP_SYSCTL_STAT_ADD(ctx, child, "pause", + &hsp->rx_pause, "Pause frames"); + FXP_SYSCTL_STAT_ADD(ctx, child, "controls", + &hsp->rx_controls, "Unsupported control frames"); + } + if (sc->revision >= FXP_REV_82559_A0) + FXP_SYSCTL_STAT_ADD(ctx, child, "tco", + &hsp->rx_tco, "TCO frames"); + + /* Tx MAC statistics. */ + tree = SYSCTL_ADD_NODE(ctx, parent, OID_AUTO, "tx", CTLFLAG_RD, + NULL, "Tx MAC statistics"); + child = SYSCTL_CHILDREN(tree); + FXP_SYSCTL_STAT_ADD(ctx, child, "good_frames", + &hsp->tx_good, "Good frames"); + FXP_SYSCTL_STAT_ADD(ctx, child, "maxcols", + &hsp->tx_maxcols, "Maximum collisions errors"); + FXP_SYSCTL_STAT_ADD(ctx, child, "latecols", + &hsp->tx_latecols, "Late collisions errors"); + FXP_SYSCTL_STAT_ADD(ctx, child, "underruns", + &hsp->tx_underruns, "Underrun errors"); + FXP_SYSCTL_STAT_ADD(ctx, child, "lostcrs", + &hsp->tx_lostcrs, "Lost carrier sense"); + FXP_SYSCTL_STAT_ADD(ctx, child, "deffered", + &hsp->tx_deffered, "Deferred"); + FXP_SYSCTL_STAT_ADD(ctx, child, "single_collisions", + &hsp->tx_single_collisions, "Single collisions"); + FXP_SYSCTL_STAT_ADD(ctx, child, "multiple_collisions", + &hsp->tx_multiple_collisions, "Multiple collisions"); + FXP_SYSCTL_STAT_ADD(ctx, child, "total_collisions", + &hsp->tx_total_collisions, "Total collisions"); + if (sc->revision >= FXP_REV_82558_A4) + FXP_SYSCTL_STAT_ADD(ctx, child, "pause", + &hsp->tx_pause, "Pause frames"); + if (sc->revision >= FXP_REV_82559_A0) + FXP_SYSCTL_STAT_ADD(ctx, child, "tco", + &hsp->tx_tco, "TCO frames"); +} + +#undef FXP_SYSCTL_STAT_ADD + static int sysctl_int_range(SYSCTL_HANDLER_ARGS, int low, int high) { Modified: stable/7/sys/dev/fxp/if_fxpreg.h ============================================================================== --- stable/7/sys/dev/fxp/if_fxpreg.h Mon May 17 16:57:55 2010 (r208199) +++ stable/7/sys/dev/fxp/if_fxpreg.h Mon May 17 16:59:36 2010 (r208200) @@ -418,7 +418,15 @@ struct fxp_stats { uint32_t rx_overrun_errors; uint32_t rx_cdt_errors; uint32_t rx_shortframes; + uint32_t tx_pause; + uint32_t rx_pause; + uint32_t rx_controls; + uint16_t tx_tco; + uint16_t rx_tco; uint32_t completion_status; + uint32_t reserved0; + uint32_t reserved1; + uint32_t reserved2; }; #define FXP_STATS_DUMP_COMPLETE 0xa005 #define FXP_STATS_DR_COMPLETE 0xa007 Modified: stable/7/sys/dev/fxp/if_fxpvar.h ============================================================================== --- stable/7/sys/dev/fxp/if_fxpvar.h Mon May 17 16:57:55 2010 (r208199) +++ stable/7/sys/dev/fxp/if_fxpvar.h Mon May 17 16:59:36 2010 (r208200) @@ -149,6 +149,30 @@ struct fxp_ident { char *name; }; +struct fxp_hwstats { + uint32_t tx_good; + uint32_t tx_maxcols; + uint32_t tx_latecols; + uint32_t tx_underruns; + uint32_t tx_lostcrs; + uint32_t tx_deffered; + uint32_t tx_single_collisions; + uint32_t tx_multiple_collisions; + uint32_t tx_total_collisions; + uint32_t tx_pause; + uint32_t tx_tco; + uint32_t rx_good; + uint32_t rx_crc_errors; + uint32_t rx_alignment_errors; + uint32_t rx_rnr_errors; + uint32_t rx_overrun_errors; + uint32_t rx_cdt_errors; + uint32_t rx_shortframes; + uint32_t rx_pause; + uint32_t rx_controls; + uint32_t rx_tco; +}; + /* * NOTE: Elements are ordered for optimal cacheline behavior, and NOT * for functional grouping. @@ -175,6 +199,7 @@ struct fxp_softc { int tx_queued; /* # of active TxCB's */ struct fxp_stats *fxp_stats; /* Pointer to interface stats */ uint32_t stats_addr; /* DMA address of the stats structure */ + struct fxp_hwstats fxp_hwstats; int rx_idle_secs; /* # of seconds RX has been idle */ struct callout stat_ch; /* stat callout */ int watchdog_timer; /* seconds until chip reset */ From owner-svn-src-all@FreeBSD.ORG Mon May 17 17:02:42 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 859DF1065672; Mon, 17 May 2010 17:02:42 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7398F8FC1C; Mon, 17 May 2010 17:02:42 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HH2grS084121; Mon, 17 May 2010 17:02:42 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HH2gOR084118; Mon, 17 May 2010 17:02:42 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201005171702.o4HH2gOR084118@svn.freebsd.org> From: Pyun YongHyeon Date: Mon, 17 May 2010 17:02:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208201 - stable/8/sys/dev/sge X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 17:02:42 -0000 Author: yongari Date: Mon May 17 17:02:42 2010 New Revision: 208201 URL: http://svn.freebsd.org/changeset/base/208201 Log: MFC r207851: Implement TSO and TSO over VLAN. Increase number of allowed fragmentation of mbuf chain to 32 from 16 because TSO can send 64KB sized packet which in turn requires long list of mbuf chain. Due to lack of documentation, I'm not sure whether driver have to pull up ethernet/IP/TCP header with options to make controller work but driver have to parse TCP header to update pseudo TCP checksum anyway. The controller expects pseudo TCP checksum computed by upper stack and the checksum should follow the MS NDIS specification to make TSO work. Tested by: xclin cs dot nctu dot edu dot tw > Modified: stable/8/sys/dev/sge/if_sge.c stable/8/sys/dev/sge/if_sgereg.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/dev/sge/if_sge.c ============================================================================== --- stable/8/sys/dev/sge/if_sge.c Mon May 17 16:59:36 2010 (r208200) +++ stable/8/sys/dev/sge/if_sge.c Mon May 17 17:02:42 2010 (r208201) @@ -72,8 +72,13 @@ __FBSDID("$FreeBSD$"); #include #include +#include +#include +#include +#include + #include -#include +#include #include #include @@ -620,8 +625,8 @@ sge_attach(device_t dev) ifp->if_snd.ifq_drv_maxlen = SGE_TX_RING_CNT - 1; IFQ_SET_MAXLEN(&ifp->if_snd, ifp->if_snd.ifq_drv_maxlen); IFQ_SET_READY(&ifp->if_snd); - ifp->if_capabilities = IFCAP_TXCSUM | IFCAP_RXCSUM; - ifp->if_hwassist = SGE_CSUM_FEATURES; + ifp->if_capabilities = IFCAP_TXCSUM | IFCAP_RXCSUM | IFCAP_TSO4; + ifp->if_hwassist = SGE_CSUM_FEATURES | CSUM_TSO; ifp->if_capenable = ifp->if_capabilities; /* * Do MII setup. @@ -641,7 +646,7 @@ sge_attach(device_t dev) /* VLAN setup. */ if ((sc->sge_flags & SGE_FLAG_SIS190) == 0) ifp->if_capabilities |= IFCAP_VLAN_HWTAGGING | - IFCAP_VLAN_HWCSUM; + IFCAP_VLAN_HWCSUM | IFCAP_VLAN_HWTSO; ifp->if_capabilities |= IFCAP_VLAN_MTU; ifp->if_capenable = ifp->if_capabilities; /* Tell the upper layer(s) we support long frames. */ @@ -851,8 +856,8 @@ sge_dma_alloc(struct sge_softc *sc) /* Create DMA tag for Tx buffers. */ error = bus_dma_tag_create(cd->sge_tag, 1, 0, BUS_SPACE_MAXADDR, - BUS_SPACE_MAXADDR, NULL, NULL, MCLBYTES * SGE_MAXTXSEGS, - SGE_MAXTXSEGS, MCLBYTES, 0, NULL, NULL, &cd->sge_txmbuf_tag); + BUS_SPACE_MAXADDR, NULL, NULL, SGE_TSO_MAXSIZE, SGE_MAXTXSEGS, + SGE_TSO_MAXSEGSIZE, 0, NULL, NULL, &cd->sge_txmbuf_tag); if (error != 0) { device_printf(sc->sge_dev, "could not create Tx mbuf DMA tag.\n"); @@ -1424,13 +1429,73 @@ sge_encap(struct sge_softc *sc, struct m struct sge_desc *desc; struct sge_txdesc *txd; bus_dma_segment_t txsegs[SGE_MAXTXSEGS]; - uint32_t cflags; + uint32_t cflags, mss; int error, i, nsegs, prod, si; SGE_LOCK_ASSERT(sc); si = prod = sc->sge_cdata.sge_tx_prod; txd = &sc->sge_cdata.sge_txdesc[prod]; + if (((*m_head)->m_pkthdr.csum_flags & CSUM_TSO) != 0) { + struct ether_header *eh; + struct ip *ip; + struct tcphdr *tcp; + uint32_t ip_off, poff; + + if (M_WRITABLE(*m_head) == 0) { + /* Get a writable copy. */ + m = m_dup(*m_head, M_DONTWAIT); + m_freem(*m_head); + if (m == NULL) { + *m_head = NULL; + return (ENOBUFS); + } + *m_head = m; + } + ip_off = sizeof(struct ether_header); + m = m_pullup(*m_head, ip_off); + if (m == NULL) { + *m_head = NULL; + return (ENOBUFS); + } + eh = mtod(m, struct ether_header *); + /* Check the existence of VLAN tag. */ + if (eh->ether_type == htons(ETHERTYPE_VLAN)) { + ip_off = sizeof(struct ether_vlan_header); + m = m_pullup(m, ip_off); + if (m == NULL) { + *m_head = NULL; + return (ENOBUFS); + } + } + m = m_pullup(m, ip_off + sizeof(struct ip)); + if (m == NULL) { + *m_head = NULL; + return (ENOBUFS); + } + ip = (struct ip *)(mtod(m, char *) + ip_off); + poff = ip_off + (ip->ip_hl << 2); + m = m_pullup(m, poff + sizeof(struct tcphdr)); + if (m == NULL) { + *m_head = NULL; + return (ENOBUFS); + } + tcp = (struct tcphdr *)(mtod(m, char *) + poff); + m = m_pullup(m, poff + (tcp->th_off << 2)); + if (m == NULL) { + *m_head = NULL; + return (ENOBUFS); + } + /* + * Reset IP checksum and recompute TCP pseudo + * checksum that NDIS specification requires. + */ + ip->ip_sum = 0; + tcp->th_sum = in_pseudo(ip->ip_src.s_addr, ip->ip_dst.s_addr, + htons(IPPROTO_TCP)); + *m_head = m; + } + error = bus_dmamap_load_mbuf_sg(sc->sge_cdata.sge_txmbuf_tag, txd->tx_dmamap, *m_head, txsegs, &nsegs, 0); if (error == EFBIG) { @@ -1462,16 +1527,23 @@ sge_encap(struct sge_softc *sc, struct m m = *m_head; cflags = 0; - if (m->m_pkthdr.csum_flags & CSUM_IP) - cflags |= TDC_IP_CSUM; - if (m->m_pkthdr.csum_flags & CSUM_TCP) - cflags |= TDC_TCP_CSUM; - if (m->m_pkthdr.csum_flags & CSUM_UDP) - cflags |= TDC_UDP_CSUM; + mss = 0; + if ((m->m_pkthdr.csum_flags & CSUM_TSO) != 0) { + cflags |= TDC_LS; + mss = (uint32_t)m->m_pkthdr.tso_segsz; + mss <<= 16; + } else { + if (m->m_pkthdr.csum_flags & CSUM_IP) + cflags |= TDC_IP_CSUM; + if (m->m_pkthdr.csum_flags & CSUM_TCP) + cflags |= TDC_TCP_CSUM; + if (m->m_pkthdr.csum_flags & CSUM_UDP) + cflags |= TDC_UDP_CSUM; + } for (i = 0; i < nsegs; i++) { desc = &sc->sge_ldata.sge_tx_ring[prod]; if (i == 0) { - desc->sge_sts_size = htole32(m->m_pkthdr.len); + desc->sge_sts_size = htole32(m->m_pkthdr.len | mss); desc->sge_cmdsts = 0; } else { desc->sge_sts_size = 0; @@ -1759,6 +1831,17 @@ sge_ioctl(struct ifnet *ifp, u_long comm if ((mask & IFCAP_VLAN_HWCSUM) != 0 && (ifp->if_capabilities & IFCAP_VLAN_HWCSUM) != 0) ifp->if_capenable ^= IFCAP_VLAN_HWCSUM; + if ((mask & IFCAP_TSO4) != 0 && + (ifp->if_capabilities & IFCAP_TSO4) != 0) { + ifp->if_capenable ^= IFCAP_TSO4; + if ((ifp->if_capenable & IFCAP_TSO4) != 0) + ifp->if_hwassist |= CSUM_TSO; + else + ifp->if_hwassist &= ~CSUM_TSO; + } + if ((mask & IFCAP_VLAN_HWTSO) != 0 && + (ifp->if_capabilities & IFCAP_VLAN_HWTSO) != 0) + ifp->if_capenable ^= IFCAP_VLAN_HWTSO; if ((mask & IFCAP_VLAN_HWTAGGING) != 0 && (ifp->if_capabilities & IFCAP_VLAN_HWTAGGING) != 0) { /* @@ -1766,6 +1849,9 @@ sge_ioctl(struct ifnet *ifp, u_long comm * tagging require interface reinitialization. */ ifp->if_capenable ^= IFCAP_VLAN_HWTAGGING; + if ((ifp->if_capenable & IFCAP_VLAN_HWTAGGING) == 0) + ifp->if_capenable &= + ~(IFCAP_VLAN_HWTSO | IFCAP_VLAN_HWCSUM); reinit = 1; } if (reinit > 0 && (ifp->if_drv_flags & IFF_DRV_RUNNING) != 0) { Modified: stable/8/sys/dev/sge/if_sgereg.h ============================================================================== --- stable/8/sys/dev/sge/if_sgereg.h Mon May 17 16:59:36 2010 (r208200) +++ stable/8/sys/dev/sge/if_sgereg.h Mon May 17 17:02:42 2010 (r208201) @@ -283,7 +283,9 @@ struct sge_desc { #define SGE_RX_RING_CNT 256 /* [8, 1024] */ #define SGE_TX_RING_CNT 256 /* [8, 8192] */ #define SGE_DESC_ALIGN 16 -#define SGE_MAXTXSEGS 16 +#define SGE_MAXTXSEGS 32 +#define SGE_TSO_MAXSIZE (65535 + sizeof(struct ether_vlan_header)) +#define SGE_TSO_MAXSEGSIZE 4096 #define SGE_RX_BUF_ALIGN sizeof(uint64_t) #define SGE_RX_RING_SZ (SGE_RX_RING_CNT * sizeof(struct sge_desc)) From owner-svn-src-all@FreeBSD.ORG Mon May 17 17:04:09 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D8E801065673; Mon, 17 May 2010 17:04:09 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C693E8FC1B; Mon, 17 May 2010 17:04:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HH49ui084464; Mon, 17 May 2010 17:04:09 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HH49SZ084461; Mon, 17 May 2010 17:04:09 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201005171704.o4HH49SZ084461@svn.freebsd.org> From: Pyun YongHyeon Date: Mon, 17 May 2010 17:04:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208202 - stable/7/sys/dev/sge X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 17:04:10 -0000 Author: yongari Date: Mon May 17 17:04:09 2010 New Revision: 208202 URL: http://svn.freebsd.org/changeset/base/208202 Log: MFC r207851: Implement TSO and TSO over VLAN. Increase number of allowed fragmentation of mbuf chain to 32 from 16 because TSO can send 64KB sized packet which in turn requires long list of mbuf chain. Due to lack of documentation, I'm not sure whether driver have to pull up ethernet/IP/TCP header with options to make controller work but driver have to parse TCP header to update pseudo TCP checksum anyway. The controller expects pseudo TCP checksum computed by upper stack and the checksum should follow the MS NDIS specification to make TSO work. Tested by: xclin cs dot nctu dot edu dot tw > Modified: stable/7/sys/dev/sge/if_sge.c stable/7/sys/dev/sge/if_sgereg.h Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/sys/dev/sge/if_sge.c ============================================================================== --- stable/7/sys/dev/sge/if_sge.c Mon May 17 17:02:42 2010 (r208201) +++ stable/7/sys/dev/sge/if_sge.c Mon May 17 17:04:09 2010 (r208202) @@ -72,8 +72,13 @@ __FBSDID("$FreeBSD$"); #include #include +#include +#include +#include +#include + #include -#include +#include #include #include @@ -620,8 +625,8 @@ sge_attach(device_t dev) ifp->if_snd.ifq_drv_maxlen = SGE_TX_RING_CNT - 1; IFQ_SET_MAXLEN(&ifp->if_snd, ifp->if_snd.ifq_drv_maxlen); IFQ_SET_READY(&ifp->if_snd); - ifp->if_capabilities = IFCAP_TXCSUM | IFCAP_RXCSUM; - ifp->if_hwassist = SGE_CSUM_FEATURES; + ifp->if_capabilities = IFCAP_TXCSUM | IFCAP_RXCSUM | IFCAP_TSO4; + ifp->if_hwassist = SGE_CSUM_FEATURES | CSUM_TSO; ifp->if_capenable = ifp->if_capabilities; /* * Do MII setup. @@ -641,7 +646,7 @@ sge_attach(device_t dev) /* VLAN setup. */ if ((sc->sge_flags & SGE_FLAG_SIS190) == 0) ifp->if_capabilities |= IFCAP_VLAN_HWTAGGING | - IFCAP_VLAN_HWCSUM; + IFCAP_VLAN_HWCSUM | IFCAP_VLAN_HWTSO; ifp->if_capabilities |= IFCAP_VLAN_MTU; ifp->if_capenable = ifp->if_capabilities; /* Tell the upper layer(s) we support long frames. */ @@ -851,8 +856,8 @@ sge_dma_alloc(struct sge_softc *sc) /* Create DMA tag for Tx buffers. */ error = bus_dma_tag_create(cd->sge_tag, 1, 0, BUS_SPACE_MAXADDR, - BUS_SPACE_MAXADDR, NULL, NULL, MCLBYTES * SGE_MAXTXSEGS, - SGE_MAXTXSEGS, MCLBYTES, 0, NULL, NULL, &cd->sge_txmbuf_tag); + BUS_SPACE_MAXADDR, NULL, NULL, SGE_TSO_MAXSIZE, SGE_MAXTXSEGS, + SGE_TSO_MAXSEGSIZE, 0, NULL, NULL, &cd->sge_txmbuf_tag); if (error != 0) { device_printf(sc->sge_dev, "could not create Tx mbuf DMA tag.\n"); @@ -1424,13 +1429,73 @@ sge_encap(struct sge_softc *sc, struct m struct sge_desc *desc; struct sge_txdesc *txd; bus_dma_segment_t txsegs[SGE_MAXTXSEGS]; - uint32_t cflags; + uint32_t cflags, mss; int error, i, nsegs, prod, si; SGE_LOCK_ASSERT(sc); si = prod = sc->sge_cdata.sge_tx_prod; txd = &sc->sge_cdata.sge_txdesc[prod]; + if (((*m_head)->m_pkthdr.csum_flags & CSUM_TSO) != 0) { + struct ether_header *eh; + struct ip *ip; + struct tcphdr *tcp; + uint32_t ip_off, poff; + + if (M_WRITABLE(*m_head) == 0) { + /* Get a writable copy. */ + m = m_dup(*m_head, M_DONTWAIT); + m_freem(*m_head); + if (m == NULL) { + *m_head = NULL; + return (ENOBUFS); + } + *m_head = m; + } + ip_off = sizeof(struct ether_header); + m = m_pullup(*m_head, ip_off); + if (m == NULL) { + *m_head = NULL; + return (ENOBUFS); + } + eh = mtod(m, struct ether_header *); + /* Check the existence of VLAN tag. */ + if (eh->ether_type == htons(ETHERTYPE_VLAN)) { + ip_off = sizeof(struct ether_vlan_header); + m = m_pullup(m, ip_off); + if (m == NULL) { + *m_head = NULL; + return (ENOBUFS); + } + } + m = m_pullup(m, ip_off + sizeof(struct ip)); + if (m == NULL) { + *m_head = NULL; + return (ENOBUFS); + } + ip = (struct ip *)(mtod(m, char *) + ip_off); + poff = ip_off + (ip->ip_hl << 2); + m = m_pullup(m, poff + sizeof(struct tcphdr)); + if (m == NULL) { + *m_head = NULL; + return (ENOBUFS); + } + tcp = (struct tcphdr *)(mtod(m, char *) + poff); + m = m_pullup(m, poff + (tcp->th_off << 2)); + if (m == NULL) { + *m_head = NULL; + return (ENOBUFS); + } + /* + * Reset IP checksum and recompute TCP pseudo + * checksum that NDIS specification requires. + */ + ip->ip_sum = 0; + tcp->th_sum = in_pseudo(ip->ip_src.s_addr, ip->ip_dst.s_addr, + htons(IPPROTO_TCP)); + *m_head = m; + } + error = bus_dmamap_load_mbuf_sg(sc->sge_cdata.sge_txmbuf_tag, txd->tx_dmamap, *m_head, txsegs, &nsegs, 0); if (error == EFBIG) { @@ -1462,16 +1527,23 @@ sge_encap(struct sge_softc *sc, struct m m = *m_head; cflags = 0; - if (m->m_pkthdr.csum_flags & CSUM_IP) - cflags |= TDC_IP_CSUM; - if (m->m_pkthdr.csum_flags & CSUM_TCP) - cflags |= TDC_TCP_CSUM; - if (m->m_pkthdr.csum_flags & CSUM_UDP) - cflags |= TDC_UDP_CSUM; + mss = 0; + if ((m->m_pkthdr.csum_flags & CSUM_TSO) != 0) { + cflags |= TDC_LS; + mss = (uint32_t)m->m_pkthdr.tso_segsz; + mss <<= 16; + } else { + if (m->m_pkthdr.csum_flags & CSUM_IP) + cflags |= TDC_IP_CSUM; + if (m->m_pkthdr.csum_flags & CSUM_TCP) + cflags |= TDC_TCP_CSUM; + if (m->m_pkthdr.csum_flags & CSUM_UDP) + cflags |= TDC_UDP_CSUM; + } for (i = 0; i < nsegs; i++) { desc = &sc->sge_ldata.sge_tx_ring[prod]; if (i == 0) { - desc->sge_sts_size = htole32(m->m_pkthdr.len); + desc->sge_sts_size = htole32(m->m_pkthdr.len | mss); desc->sge_cmdsts = 0; } else { desc->sge_sts_size = 0; @@ -1759,6 +1831,17 @@ sge_ioctl(struct ifnet *ifp, u_long comm if ((mask & IFCAP_VLAN_HWCSUM) != 0 && (ifp->if_capabilities & IFCAP_VLAN_HWCSUM) != 0) ifp->if_capenable ^= IFCAP_VLAN_HWCSUM; + if ((mask & IFCAP_TSO4) != 0 && + (ifp->if_capabilities & IFCAP_TSO4) != 0) { + ifp->if_capenable ^= IFCAP_TSO4; + if ((ifp->if_capenable & IFCAP_TSO4) != 0) + ifp->if_hwassist |= CSUM_TSO; + else + ifp->if_hwassist &= ~CSUM_TSO; + } + if ((mask & IFCAP_VLAN_HWTSO) != 0 && + (ifp->if_capabilities & IFCAP_VLAN_HWTSO) != 0) + ifp->if_capenable ^= IFCAP_VLAN_HWTSO; if ((mask & IFCAP_VLAN_HWTAGGING) != 0 && (ifp->if_capabilities & IFCAP_VLAN_HWTAGGING) != 0) { /* @@ -1766,6 +1849,9 @@ sge_ioctl(struct ifnet *ifp, u_long comm * tagging require interface reinitialization. */ ifp->if_capenable ^= IFCAP_VLAN_HWTAGGING; + if ((ifp->if_capenable & IFCAP_VLAN_HWTAGGING) == 0) + ifp->if_capenable &= + ~(IFCAP_VLAN_HWTSO | IFCAP_VLAN_HWCSUM); reinit = 1; } if (reinit > 0 && (ifp->if_drv_flags & IFF_DRV_RUNNING) != 0) { Modified: stable/7/sys/dev/sge/if_sgereg.h ============================================================================== --- stable/7/sys/dev/sge/if_sgereg.h Mon May 17 17:02:42 2010 (r208201) +++ stable/7/sys/dev/sge/if_sgereg.h Mon May 17 17:04:09 2010 (r208202) @@ -283,7 +283,9 @@ struct sge_desc { #define SGE_RX_RING_CNT 256 /* [8, 1024] */ #define SGE_TX_RING_CNT 256 /* [8, 8192] */ #define SGE_DESC_ALIGN 16 -#define SGE_MAXTXSEGS 16 +#define SGE_MAXTXSEGS 32 +#define SGE_TSO_MAXSIZE (65535 + sizeof(struct ether_vlan_header)) +#define SGE_TSO_MAXSEGSIZE 4096 #define SGE_RX_BUF_ALIGN sizeof(uint64_t) #define SGE_RX_RING_SZ (SGE_RX_RING_CNT * sizeof(struct sge_desc)) From owner-svn-src-all@FreeBSD.ORG Mon May 17 17:12:35 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 98AEE106566B; Mon, 17 May 2010 17:12:35 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 86AB38FC18; Mon, 17 May 2010 17:12:35 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HHCZLl086347; Mon, 17 May 2010 17:12:35 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HHCZrP086345; Mon, 17 May 2010 17:12:35 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201005171712.o4HHCZrP086345@svn.freebsd.org> From: Pyun YongHyeon Date: Mon, 17 May 2010 17:12:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208203 - stable/8/sys/dev/sge X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 17:12:35 -0000 Author: yongari Date: Mon May 17 17:12:35 2010 New Revision: 208203 URL: http://svn.freebsd.org/changeset/base/208203 Log: MFC r207852: SiS190 supports RX 10 bytes padding, CRC stripping as well as VLAN hardware tag insertion/stripping. Remove conditional code that disables these hardware features on SiS190. Also nuke RX fixup code which is no more required on strict-alignment architectures because SiS190 supports RX 10 bytes padding. Now all hardware features except jumbo frame and WOL are supported. Thanks to Masa Murayama who confirmed SiS190 also has the same hardware features of SiS191. I guess the only difference between SiS191 and SiS190 would be jumbo frame support. It will be implemented in near future. Modified: stable/8/sys/dev/sge/if_sge.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/dev/sge/if_sge.c ============================================================================== --- stable/8/sys/dev/sge/if_sge.c Mon May 17 17:04:09 2010 (r208202) +++ stable/8/sys/dev/sge/if_sge.c Mon May 17 17:12:35 2010 (r208203) @@ -117,10 +117,6 @@ static void sge_miibus_statchg(device_t) static int sge_newbuf(struct sge_softc *, int); static int sge_encap(struct sge_softc *, struct mbuf **); -#ifndef __NO_STRICT_ALIGNMENT -static __inline void - sge_fixup_rx(struct mbuf *); -#endif static __inline void sge_discard_rxbuf(struct sge_softc *, int); static void sge_rxeof(struct sge_softc *); @@ -644,10 +640,8 @@ sge_attach(device_t dev) ether_ifattach(ifp, eaddr); /* VLAN setup. */ - if ((sc->sge_flags & SGE_FLAG_SIS190) == 0) - ifp->if_capabilities |= IFCAP_VLAN_HWTAGGING | - IFCAP_VLAN_HWCSUM | IFCAP_VLAN_HWTSO; - ifp->if_capabilities |= IFCAP_VLAN_MTU; + ifp->if_capabilities |= IFCAP_VLAN_HWTAGGING | IFCAP_VLAN_HWCSUM | + IFCAP_VLAN_HWTSO | IFCAP_VLAN_MTU; ifp->if_capenable = ifp->if_capabilities; /* Tell the upper layer(s) we support long frames. */ ifp->if_data.ifi_hdrlen = sizeof(struct ether_vlan_header); @@ -1129,23 +1123,6 @@ sge_newbuf(struct sge_softc *sc, int pro return (0); } -#ifndef __NO_STRICT_ALIGNMENT -static __inline void -sge_fixup_rx(struct mbuf *m) -{ - int i; - uint16_t *src, *dst; - - src = mtod(m, uint16_t *); - dst = src - 3; - - for (i = 0; i < (m->m_len / sizeof(uint16_t) + 1); i++) - *dst++ = *src++; - - m->m_data -= (SGE_RX_BUF_ALIGN - ETHER_ALIGN); -} -#endif - static __inline void sge_discard_rxbuf(struct sge_softc *sc, int index) { @@ -1228,23 +1205,15 @@ sge_rxeof(struct sge_softc *sc) m->m_pkthdr.ether_vtag = rxinfo & RDC_VLAN_MASK; m->m_flags |= M_VLANTAG; } - if ((sc->sge_flags & SGE_FLAG_SIS190) == 0) { - /* - * Account for 10bytes auto padding which is used - * to align IP header on 32bit boundary. Also note, - * CRC bytes is automatically removed by the - * hardware. - */ - m->m_data += SGE_RX_PAD_BYTES; - m->m_pkthdr.len = m->m_len = SGE_RX_BYTES(rxstat) - - SGE_RX_PAD_BYTES; - } else { - m->m_pkthdr.len = m->m_len = SGE_RX_BYTES(rxstat) - - ETHER_CRC_LEN; -#ifndef __NO_STRICT_ALIGNMENT - sge_fixup_rx(m); -#endif - } + /* + * Account for 10bytes auto padding which is used + * to align IP header on 32bit boundary. Also note, + * CRC bytes is automatically removed by the + * hardware. + */ + m->m_data += SGE_RX_PAD_BYTES; + m->m_pkthdr.len = m->m_len = SGE_RX_BYTES(rxstat) - + SGE_RX_PAD_BYTES; m->m_pkthdr.rcvif = ifp; ifp->if_ipackets++; SGE_UNLOCK(sc); @@ -1688,18 +1657,13 @@ sge_init_locked(struct sge_softc *sc) CSR_WRITE_4(sc, RxWakeOnLan, 0); CSR_WRITE_4(sc, RxWakeOnLanData, 0); /* Allow receiving VLAN frames. */ - if ((sc->sge_flags & SGE_FLAG_SIS190) == 0) - CSR_WRITE_2(sc, RxMPSControl, - ETHER_MAX_LEN + ETHER_VLAN_ENCAP_LEN + SGE_RX_PAD_BYTES); - else - CSR_WRITE_2(sc, RxMPSControl, ETHER_MAX_LEN + ETHER_VLAN_ENCAP_LEN); + CSR_WRITE_2(sc, RxMPSControl, ETHER_MAX_LEN + ETHER_VLAN_ENCAP_LEN + + SGE_RX_PAD_BYTES); for (i = 0; i < ETHER_ADDR_LEN; i++) CSR_WRITE_1(sc, RxMacAddr + i, IF_LLADDR(ifp)[i]); /* Configure RX MAC. */ - rxfilt = 0; - if ((sc->sge_flags & SGE_FLAG_SIS190) == 0) - rxfilt |= RXMAC_STRIP_FCS | RXMAC_PAD_ENB; + rxfilt = RXMAC_STRIP_FCS | RXMAC_PAD_ENB; CSR_WRITE_2(sc, RxMacControl, rxfilt); sge_rxfilter(sc); sge_setvlan(sc); From owner-svn-src-all@FreeBSD.ORG Mon May 17 17:14:25 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B5EC9106566B; Mon, 17 May 2010 17:14:25 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A43EF8FC25; Mon, 17 May 2010 17:14:25 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HHEPcD086784; Mon, 17 May 2010 17:14:25 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HHEPd2086782; Mon, 17 May 2010 17:14:25 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201005171714.o4HHEPd2086782@svn.freebsd.org> From: Pyun YongHyeon Date: Mon, 17 May 2010 17:14:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208204 - stable/7/sys/dev/sge X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 17:14:25 -0000 Author: yongari Date: Mon May 17 17:14:25 2010 New Revision: 208204 URL: http://svn.freebsd.org/changeset/base/208204 Log: MFC r207852: SiS190 supports RX 10 bytes padding, CRC stripping as well as VLAN hardware tag insertion/stripping. Remove conditional code that disables these hardware features on SiS190. Also nuke RX fixup code which is no more required on strict-alignment architectures because SiS190 supports RX 10 bytes padding. Now all hardware features except jumbo frame and WOL are supported. Thanks to Masa Murayama who confirmed SiS190 also has the same hardware features of SiS191. I guess the only difference between SiS191 and SiS190 would be jumbo frame support. It will be implemented in near future. Modified: stable/7/sys/dev/sge/if_sge.c Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/sys/dev/sge/if_sge.c ============================================================================== --- stable/7/sys/dev/sge/if_sge.c Mon May 17 17:12:35 2010 (r208203) +++ stable/7/sys/dev/sge/if_sge.c Mon May 17 17:14:25 2010 (r208204) @@ -117,10 +117,6 @@ static void sge_miibus_statchg(device_t) static int sge_newbuf(struct sge_softc *, int); static int sge_encap(struct sge_softc *, struct mbuf **); -#ifndef __NO_STRICT_ALIGNMENT -static __inline void - sge_fixup_rx(struct mbuf *); -#endif static __inline void sge_discard_rxbuf(struct sge_softc *, int); static void sge_rxeof(struct sge_softc *); @@ -644,10 +640,8 @@ sge_attach(device_t dev) ether_ifattach(ifp, eaddr); /* VLAN setup. */ - if ((sc->sge_flags & SGE_FLAG_SIS190) == 0) - ifp->if_capabilities |= IFCAP_VLAN_HWTAGGING | - IFCAP_VLAN_HWCSUM | IFCAP_VLAN_HWTSO; - ifp->if_capabilities |= IFCAP_VLAN_MTU; + ifp->if_capabilities |= IFCAP_VLAN_HWTAGGING | IFCAP_VLAN_HWCSUM | + IFCAP_VLAN_HWTSO | IFCAP_VLAN_MTU; ifp->if_capenable = ifp->if_capabilities; /* Tell the upper layer(s) we support long frames. */ ifp->if_data.ifi_hdrlen = sizeof(struct ether_vlan_header); @@ -1129,23 +1123,6 @@ sge_newbuf(struct sge_softc *sc, int pro return (0); } -#ifndef __NO_STRICT_ALIGNMENT -static __inline void -sge_fixup_rx(struct mbuf *m) -{ - int i; - uint16_t *src, *dst; - - src = mtod(m, uint16_t *); - dst = src - 3; - - for (i = 0; i < (m->m_len / sizeof(uint16_t) + 1); i++) - *dst++ = *src++; - - m->m_data -= (SGE_RX_BUF_ALIGN - ETHER_ALIGN); -} -#endif - static __inline void sge_discard_rxbuf(struct sge_softc *sc, int index) { @@ -1228,23 +1205,15 @@ sge_rxeof(struct sge_softc *sc) m->m_pkthdr.ether_vtag = rxinfo & RDC_VLAN_MASK; m->m_flags |= M_VLANTAG; } - if ((sc->sge_flags & SGE_FLAG_SIS190) == 0) { - /* - * Account for 10bytes auto padding which is used - * to align IP header on 32bit boundary. Also note, - * CRC bytes is automatically removed by the - * hardware. - */ - m->m_data += SGE_RX_PAD_BYTES; - m->m_pkthdr.len = m->m_len = SGE_RX_BYTES(rxstat) - - SGE_RX_PAD_BYTES; - } else { - m->m_pkthdr.len = m->m_len = SGE_RX_BYTES(rxstat) - - ETHER_CRC_LEN; -#ifndef __NO_STRICT_ALIGNMENT - sge_fixup_rx(m); -#endif - } + /* + * Account for 10bytes auto padding which is used + * to align IP header on 32bit boundary. Also note, + * CRC bytes is automatically removed by the + * hardware. + */ + m->m_data += SGE_RX_PAD_BYTES; + m->m_pkthdr.len = m->m_len = SGE_RX_BYTES(rxstat) - + SGE_RX_PAD_BYTES; m->m_pkthdr.rcvif = ifp; ifp->if_ipackets++; SGE_UNLOCK(sc); @@ -1688,18 +1657,13 @@ sge_init_locked(struct sge_softc *sc) CSR_WRITE_4(sc, RxWakeOnLan, 0); CSR_WRITE_4(sc, RxWakeOnLanData, 0); /* Allow receiving VLAN frames. */ - if ((sc->sge_flags & SGE_FLAG_SIS190) == 0) - CSR_WRITE_2(sc, RxMPSControl, - ETHER_MAX_LEN + ETHER_VLAN_ENCAP_LEN + SGE_RX_PAD_BYTES); - else - CSR_WRITE_2(sc, RxMPSControl, ETHER_MAX_LEN + ETHER_VLAN_ENCAP_LEN); + CSR_WRITE_2(sc, RxMPSControl, ETHER_MAX_LEN + ETHER_VLAN_ENCAP_LEN + + SGE_RX_PAD_BYTES); for (i = 0; i < ETHER_ADDR_LEN; i++) CSR_WRITE_1(sc, RxMacAddr + i, IF_LLADDR(ifp)[i]); /* Configure RX MAC. */ - rxfilt = 0; - if ((sc->sge_flags & SGE_FLAG_SIS190) == 0) - rxfilt |= RXMAC_STRIP_FCS | RXMAC_PAD_ENB; + rxfilt = RXMAC_STRIP_FCS | RXMAC_PAD_ENB; CSR_WRITE_2(sc, RxMacControl, rxfilt); sge_rxfilter(sc); sge_setvlan(sc); From owner-svn-src-all@FreeBSD.ORG Mon May 17 17:16:13 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F2A03106566B; Mon, 17 May 2010 17:16:12 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E14138FC0C; Mon, 17 May 2010 17:16:12 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HHGCdU087240; Mon, 17 May 2010 17:16:12 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HHGCbP087238; Mon, 17 May 2010 17:16:12 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201005171716.o4HHGCbP087238@svn.freebsd.org> From: Pyun YongHyeon Date: Mon, 17 May 2010 17:16:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208205 - stable/8/share/man/man4 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 17:16:13 -0000 Author: yongari Date: Mon May 17 17:16:12 2010 New Revision: 208205 URL: http://svn.freebsd.org/changeset/base/208205 Log: MFC r207853: Now sge(4) supports TCP segmentation offload (TSO). Modified: stable/8/share/man/man4/sge.4 Directory Properties: stable/8/share/man/man4/ (props changed) Modified: stable/8/share/man/man4/sge.4 ============================================================================== --- stable/8/share/man/man4/sge.4 Mon May 17 17:14:25 2010 (r208204) +++ stable/8/share/man/man4/sge.4 Mon May 17 17:16:12 2010 (r208205) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 29, 2010 +.Dd May 10, 2010 .Dt SGE 4 .Os .Sh NAME @@ -54,9 +54,9 @@ controllers and SiS191 Fast/Gigabit Ethe All LOMs supported by the .Nm driver have TCP/UDP/IP checksum offload for transmit and receive, -hardware VLAN tag stripping/insertion features. -Due to lack of documentation more offloading features like TCP -segmentation offload (TSO), Wake On Lan (WOL), Jumbo frame and an +TCP segmentation offload (TSO), hardware VLAN tag stripping/insertion +features. +Due to lack of documentation Wake On Lan (WOL), Jumbo frame and an interrupt moderation mechanism are not supported yet. .Pp The From owner-svn-src-all@FreeBSD.ORG Mon May 17 17:16:49 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DF485106567E; Mon, 17 May 2010 17:16:49 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9FF3C8FC22; Mon, 17 May 2010 17:16:49 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HHGnfF087419; Mon, 17 May 2010 17:16:49 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HHGn7j087417; Mon, 17 May 2010 17:16:49 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201005171716.o4HHGn7j087417@svn.freebsd.org> From: Pyun YongHyeon Date: Mon, 17 May 2010 17:16:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208206 - stable/7/share/man/man4 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 17:16:50 -0000 Author: yongari Date: Mon May 17 17:16:49 2010 New Revision: 208206 URL: http://svn.freebsd.org/changeset/base/208206 Log: MFC r207853: Now sge(4) supports TCP segmentation offload (TSO). Modified: stable/7/share/man/man4/sge.4 Directory Properties: stable/7/share/man/man4/ (props changed) Modified: stable/7/share/man/man4/sge.4 ============================================================================== --- stable/7/share/man/man4/sge.4 Mon May 17 17:16:12 2010 (r208205) +++ stable/7/share/man/man4/sge.4 Mon May 17 17:16:49 2010 (r208206) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd April 29, 2010 +.Dd May 10, 2010 .Dt SGE 4 .Os .Sh NAME @@ -54,9 +54,9 @@ controllers and SiS191 Fast/Gigabit Ethe All LOMs supported by the .Nm driver have TCP/UDP/IP checksum offload for transmit and receive, -hardware VLAN tag stripping/insertion features. -Due to lack of documentation more offloading features like TCP -segmentation offload (TSO), Wake On Lan (WOL), Jumbo frame and an +TCP segmentation offload (TSO), hardware VLAN tag stripping/insertion +features. +Due to lack of documentation Wake On Lan (WOL), Jumbo frame and an interrupt moderation mechanism are not supported yet. .Pp The From owner-svn-src-all@FreeBSD.ORG Mon May 17 17:17:58 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3CE49106566B; Mon, 17 May 2010 17:17:58 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 224018FC16; Mon, 17 May 2010 17:17:58 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HHHwI3087730; Mon, 17 May 2010 17:17:58 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HHHwtN087728; Mon, 17 May 2010 17:17:58 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201005171717.o4HHHwtN087728@svn.freebsd.org> From: Pyun YongHyeon Date: Mon, 17 May 2010 17:17:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208207 - stable/8/share/man/man4 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 17:17:58 -0000 Author: yongari Date: Mon May 17 17:17:57 2010 New Revision: 208207 URL: http://svn.freebsd.org/changeset/base/208207 Log: MFC r207971: Document undocumented tunables and sysctl variables. While here use actual string to specify width as well as using Cm to set command argument. Modified: stable/8/share/man/man4/fxp.4 Directory Properties: stable/8/share/man/man4/ (props changed) Modified: stable/8/share/man/man4/fxp.4 ============================================================================== --- stable/8/share/man/man4/fxp.4 Mon May 17 17:16:49 2010 (r208206) +++ stable/8/share/man/man4/fxp.4 Mon May 17 17:17:57 2010 (r208207) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 15, 2008 +.Dd May 12, 2010 .Dt FXP 4 .Os .Sh NAME @@ -62,23 +62,25 @@ except i82557, i82259ER and early i82558 The .Nm driver supports the following media types: -.Pp -.Bl -tag -width xxxxxxxxxxxxxxxxxxxx -.It autoselect -Enable autoselection of the media type and options -.It 10baseT/UTP -Set 10Mbps operation -.It 100baseTX -Set 100Mbps (Fast Ethernet) operation +.Bl -tag -width "10baseT/UTP" +.It Cm autoselect +Enable autoselection of the media type and options. +The autoselected mode can be overridden by adding the media options to +.Xr rc.conf 5 . +.It Cm 10baseT/UTP +Set 10Mbps operation. +.It Cm 100baseTX +Set 100Mbps (Fast Ethernet) operation. .El .Pp The .Nm driver supports the following media options: -.Pp -.Bl -tag -width xxxxxxxxxxxxxxxxxxxx -.It full-duplex -Set full duplex operation +.Bl -tag -width "full-duplex" +.It Cm full-duplex +Force full duplex operation. +.It Cm half-duplex +Force half duplex operation. .El .Pp Note that 100baseTX media type is not available on the Pro/10. @@ -143,6 +145,43 @@ NEC PC-9821X-B06 (PC-98) .It Many on-board network interfaces on Intel motherboards .El +.Sh LOADER TUNABLES +Tunables can be set at the +.Xr loader 8 +prompt before booting the kernel or stored in +.Xr loader.conf 5 . +The following variables are available as both +.Xr loader 8 +tunables and +.Xr sysctl 8 +variables: +.Bl -tag -width "xxxxxx" +.It Va dev.fxp.%d.int_delay +Maximum amount of time, in microseconds, that an interrupt may +be delayed in an attempt to coalesce interrupts. +This is only effective if the Intel microcode is loaded. +The accepted range is 300 to 3000, the default is 1000. +.It Va dev.fxp.%d.bundle_max +Number of packets that will be bundled, before an interrupt is +generated. +This is only effective if the Intel microcode is loaded. +The accepted range is 1 to 65535, the default is 6. +.It Va dev.fxp.%d.noflow +Controls whether flow control should be used or not. +The default is 1 (no flow control). +.El +.Sh SYSCTL VARIABLES +The following variables are available as +.Xr sysctl 8 +variables. +.Bl -tag -width "xxxxxx" +.It Va dev.fxp.%d.rnr +This is a read-only variable and shows the number of events of +RNR (resource not ready). +.It Va dev.fxp.%d.stats +This is a read-only variable and displays useful MAC counters +maintained in the driver. +.El .Sh DIAGNOSTICS .Bl -diag .It "fxp%d: couldn't map memory" From owner-svn-src-all@FreeBSD.ORG Mon May 17 17:18:58 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 89741106564A; Mon, 17 May 2010 17:18:58 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6DF108FC08; Mon, 17 May 2010 17:18:58 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HHIwPa088011; Mon, 17 May 2010 17:18:58 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HHIwLq088009; Mon, 17 May 2010 17:18:58 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201005171718.o4HHIwLq088009@svn.freebsd.org> From: Pyun YongHyeon Date: Mon, 17 May 2010 17:18:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208208 - stable/7/share/man/man4 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 17:18:58 -0000 Author: yongari Date: Mon May 17 17:18:58 2010 New Revision: 208208 URL: http://svn.freebsd.org/changeset/base/208208 Log: MFC r207971: Document undocumented tunables and sysctl variables. While here use actual string to specify width as well as using Cm to set command argument. Modified: stable/7/share/man/man4/fxp.4 Directory Properties: stable/7/share/man/man4/ (props changed) Modified: stable/7/share/man/man4/fxp.4 ============================================================================== --- stable/7/share/man/man4/fxp.4 Mon May 17 17:17:57 2010 (r208207) +++ stable/7/share/man/man4/fxp.4 Mon May 17 17:18:58 2010 (r208208) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 15, 2008 +.Dd May 12, 2010 .Dt FXP 4 .Os .Sh NAME @@ -62,23 +62,25 @@ except i82557, i82259ER and early i82558 The .Nm driver supports the following media types: -.Pp -.Bl -tag -width xxxxxxxxxxxxxxxxxxxx -.It autoselect -Enable autoselection of the media type and options -.It 10baseT/UTP -Set 10Mbps operation -.It 100baseTX -Set 100Mbps (Fast Ethernet) operation +.Bl -tag -width "10baseT/UTP" +.It Cm autoselect +Enable autoselection of the media type and options. +The autoselected mode can be overridden by adding the media options to +.Xr rc.conf 5 . +.It Cm 10baseT/UTP +Set 10Mbps operation. +.It Cm 100baseTX +Set 100Mbps (Fast Ethernet) operation. .El .Pp The .Nm driver supports the following media options: -.Pp -.Bl -tag -width xxxxxxxxxxxxxxxxxxxx -.It full-duplex -Set full duplex operation +.Bl -tag -width "full-duplex" +.It Cm full-duplex +Force full duplex operation. +.It Cm half-duplex +Force half duplex operation. .El .Pp Note that 100baseTX media type is not available on the Pro/10. @@ -143,6 +145,43 @@ NEC PC-9821X-B06 (PC-98) .It Many on-board network interfaces on Intel motherboards .El +.Sh LOADER TUNABLES +Tunables can be set at the +.Xr loader 8 +prompt before booting the kernel or stored in +.Xr loader.conf 5 . +The following variables are available as both +.Xr loader 8 +tunables and +.Xr sysctl 8 +variables: +.Bl -tag -width "xxxxxx" +.It Va dev.fxp.%d.int_delay +Maximum amount of time, in microseconds, that an interrupt may +be delayed in an attempt to coalesce interrupts. +This is only effective if the Intel microcode is loaded. +The accepted range is 300 to 3000, the default is 1000. +.It Va dev.fxp.%d.bundle_max +Number of packets that will be bundled, before an interrupt is +generated. +This is only effective if the Intel microcode is loaded. +The accepted range is 1 to 65535, the default is 6. +.It Va dev.fxp.%d.noflow +Controls whether flow control should be used or not. +The default is 1 (no flow control). +.El +.Sh SYSCTL VARIABLES +The following variables are available as +.Xr sysctl 8 +variables. +.Bl -tag -width "xxxxxx" +.It Va dev.fxp.%d.rnr +This is a read-only variable and shows the number of events of +RNR (resource not ready). +.It Va dev.fxp.%d.stats +This is a read-only variable and displays useful MAC counters +maintained in the driver. +.El .Sh DIAGNOSTICS .Bl -diag .It "fxp%d: couldn't map memory" From owner-svn-src-all@FreeBSD.ORG Mon May 17 17:56:27 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D35BA106566C; Mon, 17 May 2010 17:56:27 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C171C8FC17; Mon, 17 May 2010 17:56:27 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HHuRKH096219; Mon, 17 May 2010 17:56:27 GMT (envelope-from trasz@svn.freebsd.org) Received: (from trasz@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HHuR85096217; Mon, 17 May 2010 17:56:27 GMT (envelope-from trasz@svn.freebsd.org) Message-Id: <201005171756.o4HHuR85096217@svn.freebsd.org> From: Edward Tomasz Napierala Date: Mon, 17 May 2010 17:56:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208209 - stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 17:56:28 -0000 Author: trasz Date: Mon May 17 17:56:27 2010 New Revision: 208209 URL: http://svn.freebsd.org/changeset/base/208209 Log: MFC r208030: Add missing check to prevent local users from panicing the kernel by trying to set malformed ACL. Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c ============================================================================== --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Mon May 17 17:18:58 2010 (r208208) +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Mon May 17 17:56:27 2010 (r208209) @@ -4936,6 +4936,10 @@ zfs_freebsd_setacl(ap) if (ap->a_aclp->acl_cnt * 2 + 6 > ACL_MAX_ENTRIES) return (ENOSPC); + error = acl_nfs4_check(ap->a_aclp, ap->a_vp->v_type == VDIR); + if (error != 0) + return (error); + vsecattr.vsa_mask = VSA_ACE; aclbsize = ap->a_aclp->acl_cnt * sizeof(ace_t); vsecattr.vsa_aclentp = kmem_alloc(aclbsize, KM_SLEEP); From owner-svn-src-all@FreeBSD.ORG Mon May 17 18:32:10 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 62999106564A; Mon, 17 May 2010 18:32:10 +0000 (UTC) (envelope-from matthew.fleming@isilon.com) Received: from seaxch09.isilon.com (seaxch09.isilon.com [74.85.160.25]) by mx1.freebsd.org (Postfix) with ESMTP id 3E3B48FC1C; Mon, 17 May 2010 18:32:09 +0000 (UTC) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Date: Mon, 17 May 2010 11:28:47 -0700 Message-ID: <06D5F9F6F655AD4C92E28B662F7F853E021D4D6C@seaxch09.desktop.isilon.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: svn commit: r208003 - in head/sys: kern sys Thread-Index: Acr13fOGz6Nv5xS2R+WpPsEqIM73KgAENasM References: <201005122124.o4CLOk3b027904@svn.freebsd.org> <20100516050651.GZ83316@deviant.kiev.zoral.com.ua> <06D5F9F6F655AD4C92E28B662F7F853E021D4D66@seaxch09.desktop.isilon.com> <20100517162806.GM83316@deviant.kiev.zoral.com.ua> From: "Matthew Fleming" To: "Kostik Belousov" Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, Zachary Loafman , src-committers@freebsd.org Subject: RE: svn commit: r208003 - in head/sys: kern sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 18:32:10 -0000 From: Kostik Belousov [mailto:kostikbel@gmail.com] > Essentially, my argument is that whatever you do in VOP_ADVLOCKPURGE, > can be and should be done in VOP_RECLAIM. This would also cover the = v_data > issue. I disagree about the "should". I believe that if BSD wants to allow = overriding lf_advlock(9) with VOP_ADVLOCK it should fully support the = overriding. Alternatively, the call to lf_purgelocks(9) should be = pushed down into each filesystem's VOP_RECLAIM for consistency. Thanks, matthew From owner-svn-src-all@FreeBSD.ORG Mon May 17 19:12:25 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AA3431065675; Mon, 17 May 2010 19:12:25 +0000 (UTC) (envelope-from marius@alchemy.franken.de) Received: from alchemy.franken.de (alchemy.franken.de [194.94.249.214]) by mx1.freebsd.org (Postfix) with ESMTP id 06C5D8FC14; Mon, 17 May 2010 19:12:24 +0000 (UTC) Received: from alchemy.franken.de (localhost [127.0.0.1]) by alchemy.franken.de (8.14.3/8.14.3/ALCHEMY.FRANKEN.DE) with ESMTP id o4HJCMdY039538; Mon, 17 May 2010 21:12:23 +0200 (CEST) (envelope-from marius@alchemy.franken.de) Received: (from marius@localhost) by alchemy.franken.de (8.14.3/8.14.3/Submit) id o4HJCMSW039537; Mon, 17 May 2010 21:12:22 +0200 (CEST) (envelope-from marius) Date: Mon, 17 May 2010 21:12:22 +0200 From: Marius Strobl To: Nathan Whitehorn Message-ID: <20100517191222.GB49967@alchemy.franken.de> References: <201005162201.o4GM1h8W027917@svn.freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201005162201.o4GM1h8W027917@svn.freebsd.org> User-Agent: Mutt/1.4.2.3i Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r208172 - in head/sys: dev/ofw powerpc/aim powerpc/ofw X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 19:12:25 -0000 On Sun, May 16, 2010 at 10:01:43PM +0000, Nathan Whitehorn wrote: > Author: nwhitehorn > Date: Sun May 16 22:01:43 2010 > New Revision: 208172 > URL: http://svn.freebsd.org/changeset/base/208172 > > Log: > Pull OF_quiesce() out of the MI Open Firmware layer and entirely into > PPC ofw_machdep.c, in recognition of its state as a machine specific hack. > Thanks! Marius From owner-svn-src-all@FreeBSD.ORG Mon May 17 19:13:50 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 43E8C1065674; Mon, 17 May 2010 19:13:50 +0000 (UTC) (envelope-from pjd@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 33BAE8FC1E; Mon, 17 May 2010 19:13:50 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HJDoJj013468; Mon, 17 May 2010 19:13:50 GMT (envelope-from pjd@svn.freebsd.org) Received: (from pjd@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HJDoSW013467; Mon, 17 May 2010 19:13:50 GMT (envelope-from pjd@svn.freebsd.org) Message-Id: <201005171913.o4HJDoSW013467@svn.freebsd.org> From: Pawel Jakub Dawidek Date: Mon, 17 May 2010 19:13:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208210 - head/usr.bin/wc X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 19:13:50 -0000 Author: pjd Date: Mon May 17 19:13:49 2010 New Revision: 208210 URL: http://svn.freebsd.org/changeset/base/208210 Log: Use better type for siginfo (volatile sig_atomic_t instead of int). Pointed out by: jh Modified: head/usr.bin/wc/wc.c Modified: head/usr.bin/wc/wc.c ============================================================================== --- head/usr.bin/wc/wc.c Mon May 17 17:56:27 2010 (r208209) +++ head/usr.bin/wc/wc.c Mon May 17 19:13:49 2010 (r208210) @@ -63,7 +63,8 @@ __FBSDID("$FreeBSD$"); #include uintmax_t tlinect, twordct, tcharct, tlongline; -int doline, doword, dochar, domulti, dolongline, siginfo; +int doline, doword, dochar, domulti, dolongline; +static volatile sig_atomic_t siginfo; static void show_cnt(const char *file, uintmax_t linect, uintmax_t wordct, uintmax_t charct, uintmax_t llct); From owner-svn-src-all@FreeBSD.ORG Mon May 17 19:36:56 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BC966106566B; Mon, 17 May 2010 19:36:56 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id AC7818FC0A; Mon, 17 May 2010 19:36:56 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HJauJJ018588; Mon, 17 May 2010 19:36:56 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HJauI8018586; Mon, 17 May 2010 19:36:56 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201005171936.o4HJauI8018586@svn.freebsd.org> From: John Baldwin Date: Mon, 17 May 2010 19:36:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208212 - head/sys/net X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 19:36:56 -0000 Author: jhb Date: Mon May 17 19:36:56 2010 New Revision: 208212 URL: http://svn.freebsd.org/changeset/base/208212 Log: Ignore failures from removing multicast addresses from the parent (trunk) interface when tearing down a vlan interface. If a trunk interface is detached, all of its multicast addresses are removed before the ifnet departure eventhandlers are invoked. This means that all of the multicast addresses are removed before the vlan interfaces are removed which causes the if_delmulti() calls in the vlan teardown to fail. In the VLAN_ARRAY case, this left vlan interfaces referencing a no longer valid parent interface. In the !VLAN_ARRAY case, the eventhandler gets stuck in an infinite loop retrying vlan_unconfig_locked() forever. In general the callers of vlan_unconfig_locked() do not expect nor handle failure, so I believe it is safer to ignore the errors and tear down as much of the vlan state as possible. Silence from: net@ MFC after: 4 days Modified: head/sys/net/if_vlan.c Modified: head/sys/net/if_vlan.c ============================================================================== --- head/sys/net/if_vlan.c Mon May 17 19:19:48 2010 (r208211) +++ head/sys/net/if_vlan.c Mon May 17 19:36:56 2010 (r208212) @@ -187,8 +187,8 @@ static int vlan_setflag(struct ifnet *if int (*func)(struct ifnet *, int)); static int vlan_setflags(struct ifnet *ifp, int status); static int vlan_setmulti(struct ifnet *ifp); -static int vlan_unconfig(struct ifnet *ifp); -static int vlan_unconfig_locked(struct ifnet *ifp); +static void vlan_unconfig(struct ifnet *ifp); +static void vlan_unconfig_locked(struct ifnet *ifp); static int vlan_config(struct ifvlan *ifv, struct ifnet *p, uint16_t tag); static void vlan_link_state(struct ifnet *ifp); static void vlan_capabilities(struct ifvlan *ifv); @@ -1128,25 +1128,22 @@ done: return (error); } -static int +static void vlan_unconfig(struct ifnet *ifp) { - int ret; VLAN_LOCK(); - ret = vlan_unconfig_locked(ifp); + vlan_unconfig_locked(ifp); VLAN_UNLOCK(); - return (ret); } -static int +static void vlan_unconfig_locked(struct ifnet *ifp) { struct ifvlantrunk *trunk; struct vlan_mc_entry *mc; struct ifvlan *ifv; struct ifnet *parent; - int error; VLAN_LOCK_ASSERT(); @@ -1175,9 +1172,15 @@ vlan_unconfig_locked(struct ifnet *ifp) while ((mc = SLIST_FIRST(&ifv->vlan_mc_listhead)) != NULL) { bcopy((char *)&mc->mc_addr, LLADDR(&sdl), ETHER_ADDR_LEN); - error = if_delmulti(parent, (struct sockaddr *)&sdl); - if (error) - return (error); + + /* + * This may fail if the parent interface is + * being detached. Regardless, we should do a + * best effort to free this interface as much + * as possible as all callers expect vlan + * destruction to succeed. + */ + (void)if_delmulti(parent, (struct sockaddr *)&sdl); SLIST_REMOVE_HEAD(&ifv->vlan_mc_listhead, mc_entries); free(mc, M_VLAN); } @@ -1223,8 +1226,6 @@ vlan_unconfig_locked(struct ifnet *ifp) */ if (parent != NULL) EVENTHANDLER_INVOKE(vlan_unconfig, parent, ifv->ifv_tag); - - return (0); } /* Handle a reference counted flag that should be set on the parent as well */ From owner-svn-src-all@FreeBSD.ORG Mon May 17 19:40:04 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B6D281065670; Mon, 17 May 2010 19:40:04 +0000 (UTC) (envelope-from rpaulo@lavabit.com) Received: from karen.lavabit.com (karen.lavabit.com [72.249.41.33]) by mx1.freebsd.org (Postfix) with ESMTP id 5717C8FC08; Mon, 17 May 2010 19:40:04 +0000 (UTC) Received: from e.earth.lavabit.com (e.earth.lavabit.com [192.168.111.14]) by karen.lavabit.com (Postfix) with ESMTP id 1528B18F5BB; Mon, 17 May 2010 14:07:33 -0500 (CDT) Received: from 10.0.10.3 (54.81.54.77.rev.vodafone.pt [77.54.81.54]) by lavabit.com with ESMTP id PEPZU9FDEU3Q; Mon, 17 May 2010 14:07:33 -0500 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=lavabit; d=lavabit.com; b=qFGP764o8RtlELW7d4DT7v1wsqbM/A35mso2pHaQ/GFeubJYhHxRoowzMLBICldSMp6RS0LFeePm1VS7LyDPxXW5m1WfUxzcUbZinBk3+mvf29rp3hJs5GWEgZyXMndhhrwZ0oagtuRR40bG2O+eggq+zrSEdFHo0rlT//1YEc0=; h=Subject:Mime-Version:Content-Type:From:In-Reply-To:Date:Cc:Content-Transfer-Encoding:Message-Id:References:To:X-Mailer; Mime-Version: 1.0 (Apple Message framework v1078) Content-Type: text/plain; charset=us-ascii From: Rui Paulo In-Reply-To: Date: Mon, 17 May 2010 20:07:29 +0100 Content-Transfer-Encoding: 7bit Message-Id: References: <201005161943.o4GJhnTo096839@svn.freebsd.org> To: Juli Mallett X-Mailer: Apple Mail (2.1078) Cc: svn-src-head@freebsd.org, Randall Stewart , svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r208165 - in head/sys: kern mips/conf mips/include mips/mips mips/rmi mips/rmi/dev/xlr X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 19:40:04 -0000 On 16 May 2010, at 20:54, Juli Mallett wrote: > On Sun, May 16, 2010 at 12:43, Randall Stewart wrote: >> Author: rrs >> Date: Sun May 16 19:43:48 2010 >> New Revision: 208165 >> URL: http://svn.freebsd.org/changeset/base/208165 >> >> Log: >> This pushes all of JC's patches that I have in place. I >> am now able to run 32 cores ok.. but I still will hang >> on buildworld with a NFS problem. I suspect I am missing >> a patch for the netlogic rge driver. >> >> JC check and see if I am missing anything except your >> core-mask changes > > This isn't a very good commit message. Commits communicate things > going forward. A follow-up E-Mail CCing JC would have been a good way > to chat with him about its completeness. More importantly, though, > there's just no description of the contents. This is particularly > frustrating as it's also not broken up into functional chunks very > well. Given the fact that there are MI changes and pan-MIPS changes > here it would be nice to see a little more care taken. The changes to > the MIPS MP code, for instance, I thought we had discussed and decided > were sub-par and easily made less invasive. I can't comment on the > RMI-specific stuff except to say that it's an unenumerated jumble of > VM, networking and SMP changes. I completely agree. Regards, -- Rui Paulo From owner-svn-src-all@FreeBSD.ORG Mon May 17 19:51:34 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 91A191065678; Mon, 17 May 2010 19:51:34 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 81D278FC12; Mon, 17 May 2010 19:51:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HJpYHM021868; Mon, 17 May 2010 19:51:34 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HJpYc6021866; Mon, 17 May 2010 19:51:34 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201005171951.o4HJpYc6021866@svn.freebsd.org> From: John Baldwin Date: Mon, 17 May 2010 19:51:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208213 - head/etc X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 19:51:34 -0000 Author: jhb Date: Mon May 17 19:51:34 2010 New Revision: 208213 URL: http://svn.freebsd.org/changeset/base/208213 Log: Prevent unloading a kld for a driver that has subinterfaces (vlan and/or wlan interfaces) from being automatically reloaded via devd shutdown event handlers. - Revert part of my previous changes to call ifn_stop on subinterfaces when an interface is detached. It is better to destroy the interfaces first so that an 'ifconfig foo0.blah down' doesn't result in ifconfig auto-loading if_foo.ko. The ifconfig command will not be invoked if foo0.blah is gone when ifn_stop() is called. Furthermore, it is not necessary to explicitly invoke ifn_stop() after the subinterface is destroyed as devd will already do that. - Pass -n to ifconfig when destroying interfaces so that destroying a cloned interface does not kldload any drivers. Reviewed by: dougb MFC after: 4 days Modified: head/etc/network.subr Modified: head/etc/network.subr ============================================================================== --- head/etc/network.subr Mon May 17 19:36:56 2010 (r208212) +++ head/etc/network.subr Mon May 17 19:51:34 2010 (r208213) @@ -917,7 +917,7 @@ clone_down() _list= for ifn in ${cloned_interfaces}; do - ifconfig ${ifn} destroy + ifconfig -n ${ifn} destroy if [ $? -eq 0 ]; then _list="${_list}${_prefix}${ifn}" [ -z "$_prefix" ] && _prefix=' ' @@ -1002,10 +1002,7 @@ childif_destroy() if ! ifexists $child; then continue fi - if autoif $child; then - ifn_stop $child - fi - ifconfig $child destroy && cfg=0 + ifconfig -n $child destroy && cfg=0 done child_vlans=`get_if_var $ifn vlans_IF` @@ -1016,10 +1013,7 @@ childif_destroy() if ! ifexists $child; then continue fi - if autoif $child; then - ifn_stop $child - fi - ifconfig $child destroy && cfg=0 + ifconfig -n $child destroy && cfg=0 done return ${cfg} From owner-svn-src-all@FreeBSD.ORG Mon May 17 20:06:18 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8A876106564A; Mon, 17 May 2010 20:06:18 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id 5CDD68FC08; Mon, 17 May 2010 20:06:18 +0000 (UTC) Received: from bigwig.baldwin.cx (66.111.2.69.static.nyinternet.net [66.111.2.69]) by cyrus.watson.org (Postfix) with ESMTPSA id 3F1C846B58; Mon, 17 May 2010 16:06:16 -0400 (EDT) Received: from jhbbsd.localnet (smtp.hudson-trading.com [209.249.190.9]) by bigwig.baldwin.cx (Postfix) with ESMTPA id 3F1B68A021; Mon, 17 May 2010 16:06:15 -0400 (EDT) From: John Baldwin To: src-committers@freebsd.org Date: Mon, 17 May 2010 15:47:40 -0400 User-Agent: KMail/1.12.1 (FreeBSD/7.3-CBSD-20100217; KDE/4.3.1; amd64; ; ) References: <201005171936.o4HJauI8018586@svn.freebsd.org> In-Reply-To: <201005171936.o4HJauI8018586@svn.freebsd.org> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <201005171547.40705.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0.1 (bigwig.baldwin.cx); Mon, 17 May 2010 16:06:15 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.95.1 at bigwig.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-2.6 required=4.2 tests=AWL,BAYES_00 autolearn=ham version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bigwig.baldwin.cx Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org Subject: Re: svn commit: r208212 - head/sys/net X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 20:06:18 -0000 On Monday 17 May 2010 3:36:56 pm John Baldwin wrote: > Author: jhb > Date: Mon May 17 19:36:56 2010 > New Revision: 208212 > URL: http://svn.freebsd.org/changeset/base/208212 > > Log: > Ignore failures from removing multicast addresses from the parent (trunk) > interface when tearing down a vlan interface. If a trunk interface is > detached, all of its multicast addresses are removed before the ifnet > departure eventhandlers are invoked. This means that all of the multicast > addresses are removed before the vlan interfaces are removed which causes > the if_delmulti() calls in the vlan teardown to fail. > > In the VLAN_ARRAY case, this left vlan interfaces referencing a no longer > valid parent interface. In the !VLAN_ARRAY case, the eventhandler gets > stuck in an infinite loop retrying vlan_unconfig_locked() forever. In > general the callers of vlan_unconfig_locked() do not expect nor handle > failure, so I believe it is safer to ignore the errors and tear down as > much of the vlan state as possible. The infinite loop is reproducible by doing something like: ifconfig cxgb0.100 create <.. configure cxgb0.100 ..> <.. listen for multicast on cxgb0.100 ..> kldunload if_cxgb.ko In 7 the infinite loop occurs under Giant which causes maximum fun as ptys for sshd need Giant still in 7. -- John Baldwin From owner-svn-src-all@FreeBSD.ORG Mon May 17 20:06:20 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 52C311065678; Mon, 17 May 2010 20:06:20 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id 251E58FC35; Mon, 17 May 2010 20:06:20 +0000 (UTC) Received: from bigwig.baldwin.cx (66.111.2.69.static.nyinternet.net [66.111.2.69]) by cyrus.watson.org (Postfix) with ESMTPSA id C611E46B7E; Mon, 17 May 2010 16:06:17 -0400 (EDT) Received: from jhbbsd.localnet (smtp.hudson-trading.com [209.249.190.9]) by bigwig.baldwin.cx (Postfix) with ESMTPA id E47428A025; Mon, 17 May 2010 16:06:16 -0400 (EDT) From: John Baldwin To: src-committers@freebsd.org Date: Mon, 17 May 2010 16:05:40 -0400 User-Agent: KMail/1.12.1 (FreeBSD/7.3-CBSD-20100217; KDE/4.3.1; amd64; ; ) References: <201005171951.o4HJpYc6021866@svn.freebsd.org> In-Reply-To: <201005171951.o4HJpYc6021866@svn.freebsd.org> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <201005171605.41009.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0.1 (bigwig.baldwin.cx); Mon, 17 May 2010 16:06:17 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.95.1 at bigwig.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-2.6 required=4.2 tests=AWL,BAYES_00 autolearn=ham version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bigwig.baldwin.cx Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org Subject: Re: svn commit: r208213 - head/etc X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 20:06:20 -0000 On Monday 17 May 2010 3:51:34 pm John Baldwin wrote: > Author: jhb > Date: Mon May 17 19:51:34 2010 > New Revision: 208213 > URL: http://svn.freebsd.org/changeset/base/208213 > > Log: > Prevent unloading a kld for a driver that has subinterfaces (vlan and/or > wlan interfaces) from being automatically reloaded via devd shutdown > event handlers. > - Revert part of my previous changes to call ifn_stop on subinterfaces > when an interface is detached. It is better to destroy the interfaces > first so that an 'ifconfig foo0.blah down' doesn't result in ifconfig > auto-loading if_foo.ko. The ifconfig command will not be invoked if > foo0.blah is gone when ifn_stop() is called. Furthermore, it is not > necessary to explicitly invoke ifn_stop() after the subinterface is > destroyed as devd will already do that. > - Pass -n to ifconfig when destroying interfaces so that destroying a > cloned interface does not kldload any drivers. Arguably, ifconfig's autoloading behavior is probably a bit broken. First, doing 'ifconfig foo0.blah ' probably shouldn't try to autoload if_foo.ko. It should try to trim off a string of digits at the end and then autoload the result instead of walking to find the first digit and then loading that. Second, 'ifconfig destroy' should probably imply -n and not autoload anything. An interface wouldn't exist to be destroyed unless its driver was already loaded. Adding -n in network.subr is the most expedient fix, but I think fixing ifconfig is a better long term solution. -- John Baldwin From owner-svn-src-all@FreeBSD.ORG Mon May 17 21:55:47 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CAC94106567A; Mon, 17 May 2010 21:55:47 +0000 (UTC) (envelope-from neelnatu@gmail.com) Received: from mail-pv0-f182.google.com (mail-pv0-f182.google.com [74.125.83.182]) by mx1.freebsd.org (Postfix) with ESMTP id 7F3718FC16; Mon, 17 May 2010 21:55:47 +0000 (UTC) Received: by pvh11 with SMTP id 11so2705650pvh.13 for ; Mon, 17 May 2010 14:55:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=nFIvdCPzEo1Fa18exaakf5ndtkLDY+MAknQmaN02ROU=; b=LSiUvb2WmCOfkGtA/PhpASGhV+ds8RJHoZQDWQjnF24hek32ZP4489dyHAnLDMc14N /MQtbLN2ZiKoHcySWJia38xQGFU3oQJhCD5vdLG8MV/cKoqDCC9wWsyPPpPdNi49TE2d 4uM61oLedlCya8N1qNklgNZs6S3iOy4A9UoiA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=N9VByb0oRTomcH31Bp6R/dLxXoMmAt1Yrq6p+8BYK2YUwV4i5FLYZV6Eopjo0KWxcF aCmtjzRCz6MtfS05ubchAm3UKFyi2yDYwCc+cCHORZcUFe0uOaEQuUrDrdaOEiCfc6UR 4SWaXQfbz/+1yC3in5XTiBnvEDKqgI/cr75Ow= MIME-Version: 1.0 Received: by 10.143.25.2 with SMTP id c2mr3981095wfj.147.1274133346363; Mon, 17 May 2010 14:55:46 -0700 (PDT) Received: by 10.142.172.9 with HTTP; Mon, 17 May 2010 14:55:46 -0700 (PDT) In-Reply-To: References: <201005161943.o4GJhnTo096839@svn.freebsd.org> Date: Mon, 17 May 2010 14:55:46 -0700 Message-ID: From: Neel Natu To: Juli Mallett Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: svn-src-head@freebsd.org, Randall Stewart , svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r208165 - in head/sys: kern mips/conf mips/include mips/mips mips/rmi mips/rmi/dev/xlr X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 21:55:47 -0000 Hi Randall, On Sun, May 16, 2010 at 12:54 PM, Juli Mallett wrote= : > On Sun, May 16, 2010 at 12:43, Randall Stewart wrote: >> Author: rrs >> Date: Sun May 16 19:43:48 2010 >> New Revision: 208165 >> URL: http://svn.freebsd.org/changeset/base/208165 >> >> Log: >> =A0This pushes all of JC's patches that I have in place. I >> =A0am now able to run 32 cores ok.. but I still will hang >> =A0on buildworld with a NFS problem. I suspect I am missing >> =A0a patch for the netlogic rge driver. >> >> =A0JC check and see if I am missing anything except your >> =A0core-mask changes > > This isn't a very good commit message. =A0Commits communicate things > going forward. =A0A follow-up E-Mail CCing JC would have been a good way > to chat with him about its completeness. =A0More importantly, though, > there's just no description of the contents. =A0This is particularly > frustrating as it's also not broken up into functional chunks very > well. =A0Given the fact that there are MI changes and pan-MIPS changes > here it would be nice to see a little more care taken. =A0The changes to > the MIPS MP code, for instance, I thought we had discussed and decided > were sub-par and easily made less invasive. =A0I can't comment on the > RMI-specific stuff except to say that it's an unenumerated jumble of > VM, networking and SMP changes. > I agree with Juli. This is especially true with respect to the changes to pmap.c. There needed to be a companion set of changes to exception.S to undo some of the changes to the TLB invalid handler that deal with recursive faults in the TLB miss handler. best Neel From owner-svn-src-all@FreeBSD.ORG Mon May 17 23:41:06 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 98D6F1065670; Mon, 17 May 2010 23:41:06 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 85D6F8FC0C; Mon, 17 May 2010 23:41:06 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HNf6h9073161; Mon, 17 May 2010 23:41:06 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HNf6po073159; Mon, 17 May 2010 23:41:06 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <201005172341.o4HNf6po073159@svn.freebsd.org> From: Andrew Thompson Date: Mon, 17 May 2010 23:41:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208214 - in stable/8/sys: contrib/dev/run modules/runfw X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 23:41:06 -0000 Author: thompsa Date: Mon May 17 23:41:06 2010 New Revision: 208214 URL: http://svn.freebsd.org/changeset/base/208214 Log: MFC r203148 Uuencode the rt2870 firmware into ascii like the other firmware blobs. Added: stable/8/sys/contrib/dev/run/rt2870.fw.uu - copied unchanged from r203148, head/sys/contrib/dev/run/rt2870.fw.uu Deleted: stable/8/sys/contrib/dev/run/run-rt2870 Modified: stable/8/sys/modules/runfw/Makefile Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Copied: stable/8/sys/contrib/dev/run/rt2870.fw.uu (from r203148, head/sys/contrib/dev/run/rt2870.fw.uu) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/sys/contrib/dev/run/rt2870.fw.uu Mon May 17 23:41:06 2010 (r208214, copy of r203148, head/sys/contrib/dev/run/rt2870.fw.uu) @@ -0,0 +1,225 @@ +# Copyright (c) 2007, Ralink Technology Corporation +# All rights reserved. +# +# Redistribution. Redistribution and use in binary form, without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions must reproduce the above copyright notice and the +# following disclaimer in the documentation and/or other materials +# provided with the distribution. +# * Neither the name of Ralink Technology Corporation nor the names of its +# suppliers may be used to endorse or promote products derived from this +# software without specific prior written permission. +# * No reverse engineering, decompilation, or disassembly of this software +# is permitted. +# +# Limited patent license. Ralink Technology Corporation grants a world-wide, +# royalty-free, non-exclusive license under patents it now or hereafter +# owns or controls to make, have made, use, import, offer to sell and +# sell ("Utilize") this software, but solely to the extent that any +# such patent is necessary to Utilize the software alone, or in +# combination with an operating system licensed under an approved Open +# Source license as listed by the Open Source Initiative at +# http://opensource.org/licenses. The patent license shall not apply to +# any other combinations which include this software. No hardware per +# se is licensed hereunder. +# +# DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND +# CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, +# BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +# DAMAGE. +begin 644 rt2870.fw +M____`A`H`A`R`A!X`A)G`A)H`A*'`A*,$A*((@(620(7'P(3=P(2C3`%!B`- +M`Q(7P2*0`8S@,.,;Y4PPX`1_0(`"?P"0$"_O\)`!C'0(\.20`:?PD`&,X##@ +M')`!@."T`A6CX+0!$)`!A."T@0F0`8QT`?`2#<@BD`04X"#G`P(29I!P$N#U +M5I`$!.`2"IT0MS$0X%`1!%$1#5(1#5,1#5013E41?G`1J7$1UW(2'7,2/H`` +M`!)F(`(#,`,=?0*O5A(+D9`$%'2`\.20`D7?57D'`0X/]T1R57^,;OQI!P$>#_=$@E5_C&[\;D_:]6$@N1D`04 +M=(#PY)!P$_#E5O1P`P(29@(27^5'9`=@"^5'9`A@!>5'M`D(D'`1X%0/]3KE +M1[0)".4ZM`,#Y/5&Y/VO5A(+D=($(I!P$.#^D'`1X/WM^.;U5_VO5A(+D9`$ +M%'2`\.20#][?6"CH/@]5?]KU82"Y&0 +M!!1T@/#DD'`3\.56]'`#`A)F`A)?D!`"X+1P'J/@M#`9D`4(X$0!\/V0!07@ +M5/OP1`3P[53^D`4(\.3U3O5/=3K_K5>O5A(+D9`$%'2`\.20!$`?`B(N53Y4=D!F`#`A-$@!OE2,14#_5#Y4K$5`_U +M0N5,Q%0/]5[E1V0&<&930P^`885)0X5+0H5-7N5'9`9P4H`;Y4G$5`_U0^5+ +MQ%0/]4+E3<14#_5>Y4=D!G`UY4-4#T00]4.`*^5'M`0&4U[[=4()Y4>T!09# +M7@1U0@GE1[0&$.5#5`]$,/5#@`;22X`"TDSD]27E0L14\/_E0U0/3_5?D'!$ +M\*/E7O"CY4KPH^5(\*/E3/"CY43PH^5"\*/E0_#28"+E1V`0),!P`Q(6*1(3 +MC,*OP@32KR+"KY`$%.!4#F`$TAB`".5.14\D_Y(8TJ^0!!3@HN22&70>\.5? +M5`_U+>4E5?5##_OS`1Y25P!74E#(`"%272;-)M@`_E +M7S#F!L)LTFV`!-)LPFWE1V0#<"$P2P;";-)M@!CE)7`#,$P1PDSE)7`%=24' +M@`(5)=)LTFWE1[0)%.5$(.,+Y3ID`F`%Y3JT`P3";-)MD'!&Y2WP(&D'Y5X@ +MX`*R:"!K!^5>(.$"LFH@;0?E7B#B`K)LD'!'Y2WP=2Y`(&D$HFB`)C!H!N5& +MHN*`'>5>(.($?P&``G\`Y494\/Z^\`1^`8`"?@#N;R3_DG.2!4_O#E0\14#Q1@%"3^8",D`V`#`A88D`(HX#!'#X`'D`(HX"!' +M!E3^\`(6&$0!\`(6&.5&,.($?P&``G\`D`(HX%3^3_`"%ACE1V0'8`_E1V0( +M8`GE1V0)8`,"%ACD]2>0`BG@5/SPY3H48"T48"X48#8D_&!?)/E@'R0.<&GE +M1A,35#]U\`.$K_`@1P1^`8`"?@#O;B3_@$6B1X!!Y48PX@/3@"?#@"3E1C#B +M#50XPY0P4`9^`'\!@`1^`'\`($<$?0&``GT`[VU.)/^2.*)'LY(Y@!GE1C#B +M`].``<.2.:)'LY(X@`>B1[.2.)(YD`(HX%3\12?PD'"4Z +M\"+DD`(I\#!'!*]%@`3E1?3_D`(H[_`BCU#262*/5-)8(N3U8L*OY5$48$84 +M8&(D`F`#`A<#TEEU50&0`J+@5'_PH^`@YR*0!#3@M`(;H^"T`A:CX+0"$7\@ +M$A8_D!`$X%3S\'51`8!SY5!P!75B`X!JD!(`X%0#50<`*`1I`"H^`@YCN0!#?@9")P,Y`!BG1^\)`!EO"0$@1T"O"0$RC@ +M5/#PH^!4\/"CX%3Z\)`$`>!4^?!U8@%U50+D]5&`">50<`5U8@/U4>5B8!7" +M`>3U4<)9K6*O0!(7C>5BM`,"T@/2KR+"KS`!$N20`9;P]5'"6<(!?0*O0!(7 +MC>52%&`)!'!,=5(!=54#D`0!X$0.\)`3*.!$#_"CX$0/\*/@1`7PD!($=`/P +MD`*BX$3`\)`0!.!$#/#D]5+U53`""\("?0&O01(7C8`"P@/DD`&6\-*O(N_T +M8"WD_G04+O6"Y#1P]8/@M/\9=!0N]8+D-'#U@^_P=!PN]8+D-'#U@^WP(@Z^ +M!-4B(B*0<"K@,.%-PJ^0<"C@D!`<\)!P*>"0$!WPD'`JX)`0'O"0$!S@]6*0 +M$![@(.'SD!``(29P(2:`(2AP(2C!(2B"("%DD"%Q\"$W<"$HTP!08@ +M#0,2%\$BD`&,X##C&^5,,.`$?T"``G\`D!`O[_"0`8QT"/#DD`&G\)`!C.`P +MX!R0`8#@M`(5H^"T`1"0`83@M($)D`&,=`'P$@W=(I`$%.`@YP,"$F:0!D"&`(X&0@8`,"$F9U3@-U3R`BD'`1X"3_DD!4#_4Z +MY4>T"0CE.K0#`^3U1N3]KU82"ZK2!"*0#][?CF]5?]KU82"ZJ0 +M!!1T@/#DD'`3\.56]'`#`A)F`A)?D'`0X/Z0WU@HZ#X/57_:]6$@NJ +MD`04=(#PY)!P$_#E5O1P`P(29@(27Y`0`N"TO5A(+JI`$%'2`\.200<"7@1`'P(B+E4W`:,&`)LDTP300% +M1L($Y4]%3F`(Y4\53W`"%4XB(L)"TR(BPDO"3.5$$@JV$J\`$T($$SX($QD0 +M$L,@$N-@$O2@```31(5(0X5*0H5,7N5'9`9@`P(31(`;Y4C$5`_U0^5*Q%0/ +M]4+E3,14#_5>Y4=D!G!F4T,/@&&%24.%2T*%35[E1V0&<%*`&^5)Q%0/]4/E +M2\14#_5"Y4W$5`_U7N5'9`9P->5#5`]$$/5#@"OE1[0$!E->^W5"">5'M`4& +M0UX$=4()Y4>T!A#E0U0/1##U0X`&TDN``M),Y/4EY4+$5/#_Y4-4#T_U7Y!P +M1/"CY5[PH^5*\*/E2/"CY4SPH^5$\*/E0O"CY4/PTF`BY4=@$"3`<`,2%BD2 +M$XS"K\($TJ\BPJ^0!!3@5`Y@!-(8@`CE3D5/)/^2&-*OD`04X*+DDAET'O#E +M7U0/]2WE)7`3,!@%Y5\@Y0LP&1GE7U0P_[\P$>4E<`5U)0R``A4ETFS2;8`/ +MY5\PY@;";-)M@`32;,)MY4=D`W`A,$L&PFS2;8`8Y25P`S!,$<),Y25P!74E +M!X`"%272;-)MY4>T"13E1"#C"^4Z9`)@!>4ZM`,$PFS2;9!P1N4M\"!I!^5> +M(.`"LF@@:P?E7B#A`K)J(&T'Y5X@X@*R;)!P1^4M\'4N0"!I!*)H@"8P:`;E +M1J+B@!WE7B#B!'\!@`)_`.5&5/#^OO`$?@&``GX`[F\D_Y)SDG(@:P2B:H`F +M,&H&Y4:BXH`=Y5X@X`1_`8`"?P#E1E3P_K[P!'X!@`)^`.YO)/^2=9)T(&T$ +MHFR`)C!L!N5&HN*`'>5>(.$$?P&``G\`Y494\/Z^\`1^`8`"?@#N;R3_DG&2 +M<)`0`."0$"_PD!`#X,.4,$`4HG&2=Z)PDG;E+A,35#_U+L)WTG:0$"_E+O#E +M1V0&<$R0`BG@5/[PY4/$5`\48!0D_F`C)`-@`P(6&)`"*.`P1P^`!Y`"*.`@ +M1P94_O`"%AA$`?`"%ACE1C#B!'\!@`)_`)`"*.!4_D_P`A88Y4=D!V`/Y4=D +M"&`)Y4=D"6`#`A88Y/4GD`(IX%3\\.4Z%&`M%&`N%&`V)/Q@7R3Y8!\D#G!I +MY483$U0_=?`#A*_P($<$?@&``GX`[VXD_X!%HD>`0>5&,.(#TX`GPX`DY48P +MX@U4.,.4,%`&?@!_`8`$?@!_`"!'!'T!@`)]`.]M3B3_DCBB1[.2.8`9Y48P +MX@/3@`'#DCFB1[.2.(`'HD>SDCB2.9`"*.!4_$4G\)!PG.4Z\*/E1_"0<$'E +M.O`BY)`"*?`P1P2O18`$Y47T_Y`"*._P(H]0TEDBCU326"+D]6+"K^51%&!& +M%&!B)`)@`P(7`])9=54!D`*BX%1_\*/@(.!$#O"0$RC@1`_PH^!$#_"CX$0%\)`2!'0# +M\)`"HN!$P/"0$`3@1`SPY/52]54P`@O"`GT!KT$2%XV``L(#Y)`!EO#2KR+O +M]&`MY/YT%"[U@N0TX"#A\Y`0'."0<"CPD!`=X)!P*?"0$![@D'`J\#!*!Y!P).!$`?#"!=*O +M(B(B```````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````` +M```````````````````````````````````````````````````````````" +"F\`` +` +end Modified: stable/8/sys/modules/runfw/Makefile ============================================================================== --- stable/8/sys/modules/runfw/Makefile Mon May 17 19:51:34 2010 (r208213) +++ stable/8/sys/modules/runfw/Makefile Mon May 17 23:41:06 2010 (r208214) @@ -1,8 +1,11 @@ # $FreeBSD$ -.PATH: ${.CURDIR}/../../contrib/dev/run - KMOD= runfw -FIRMWS= run-rt2870:runfw:1 +FIRMWS= runfw:runfw:1 + +CLEANFILES= runfw + +runfw: ${.CURDIR}/../../contrib/dev/run/rt2870.fw.uu + uudecode -p ${.CURDIR}/../../contrib/dev/run/rt2870.fw.uu > ${.TARGET} .include From owner-svn-src-all@FreeBSD.ORG Mon May 17 23:41:51 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 622EF1065677; Mon, 17 May 2010 23:41:51 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4FBCA8FC13; Mon, 17 May 2010 23:41:51 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HNfp45073367; Mon, 17 May 2010 23:41:51 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HNfp4p073366; Mon, 17 May 2010 23:41:51 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <201005172341.o4HNfp4p073366@svn.freebsd.org> From: Andrew Thompson Date: Mon, 17 May 2010 23:41:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208215 - in stable/8/sys: . amd64/include/xen cddl/contrib/opensolaris contrib/dev/acpica contrib/pf dev/xen/xenpci geom/sched X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 23:41:51 -0000 Author: thompsa Date: Mon May 17 23:41:51 2010 New Revision: 208215 URL: http://svn.freebsd.org/changeset/base/208215 Log: MFC r206544 The Quanta Q101 modem has a different type of cdrom driver disk, add the product id and use a standard scsi eject. Modified: Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) From owner-svn-src-all@FreeBSD.ORG Mon May 17 23:42:30 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 45BFB1065673; Mon, 17 May 2010 23:42:30 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 333F28FC0C; Mon, 17 May 2010 23:42:30 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HNgUaw073561; Mon, 17 May 2010 23:42:30 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HNgU03073560; Mon, 17 May 2010 23:42:30 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <201005172342.o4HNgU03073560@svn.freebsd.org> From: Andrew Thompson Date: Mon, 17 May 2010 23:42:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208216 - in stable/8/sys: . amd64/include/xen cddl/contrib/opensolaris contrib/dev/acpica contrib/pf dev/xen/xenpci geom/sched X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 23:42:30 -0000 Author: thompsa Date: Mon May 17 23:42:29 2010 New Revision: 208216 URL: http://svn.freebsd.org/changeset/base/208216 Log: MFC r206595 Eliminate duplicate comment Modified: Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) From owner-svn-src-all@FreeBSD.ORG Mon May 17 23:43:07 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 800A31065670; Mon, 17 May 2010 23:43:07 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6EC568FC15; Mon, 17 May 2010 23:43:07 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HNh7XT073744; Mon, 17 May 2010 23:43:07 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HNh7d9073742; Mon, 17 May 2010 23:43:07 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <201005172343.o4HNh7d9073742@svn.freebsd.org> From: Andrew Thompson Date: Mon, 17 May 2010 23:43:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208217 - stable/8/sys/dev/usb/input X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 23:43:07 -0000 Author: thompsa Date: Mon May 17 23:43:07 2010 New Revision: 208217 URL: http://svn.freebsd.org/changeset/base/208217 Log: MFC r206638 Use the UIPROTO_BOOT_KEYBOARD #define from usb.h rather than a local (almost identically named) local #define. Modified: stable/8/sys/dev/usb/input/ukbd.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/dev/usb/input/ukbd.c ============================================================================== --- stable/8/sys/dev/usb/input/ukbd.c Mon May 17 23:42:29 2010 (r208216) +++ stable/8/sys/dev/usb/input/ukbd.c Mon May 17 23:43:07 2010 (r208217) @@ -109,8 +109,6 @@ TUNABLE_INT("hw.usb.ukbd.debug", &ukbd_d TUNABLE_INT("hw.usb.ukbd.no_leds", &ukbd_no_leds); #endif -#define UPROTO_BOOT_KEYBOARD 1 - #define UKBD_EMULATE_ATSCANCODE 1 #define UKBD_DRIVER_NAME "ukbd" #define UKBD_NMOD 8 /* units */ @@ -777,7 +775,7 @@ ukbd_probe(device_t dev) return (ENXIO); if ((uaa->info.bInterfaceSubClass == UISUBCLASS_BOOT) && - (uaa->info.bInterfaceProtocol == UPROTO_BOOT_KEYBOARD)) { + (uaa->info.bInterfaceProtocol == UIPROTO_BOOT_KEYBOARD)) { if (usb_test_quirk(uaa, UQ_KBD_IGNORE)) return (ENXIO); else From owner-svn-src-all@FreeBSD.ORG Mon May 17 23:43:42 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 30BE61065678; Mon, 17 May 2010 23:43:42 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1F7358FC0A; Mon, 17 May 2010 23:43:42 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HNhgID073932; Mon, 17 May 2010 23:43:42 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HNhgoF073930; Mon, 17 May 2010 23:43:42 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <201005172343.o4HNhgoF073930@svn.freebsd.org> From: Andrew Thompson Date: Mon, 17 May 2010 23:43:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208218 - stable/8/sys/modules/usb/usb X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 23:43:42 -0000 Author: thompsa Date: Mon May 17 23:43:41 2010 New Revision: 208218 URL: http://svn.freebsd.org/changeset/base/208218 Log: MFC r207404 usb_controller.c requires opt_ddb.h Modified: stable/8/sys/modules/usb/usb/Makefile Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/modules/usb/usb/Makefile ============================================================================== --- stable/8/sys/modules/usb/usb/Makefile Mon May 17 23:43:07 2010 (r208217) +++ stable/8/sys/modules/usb/usb/Makefile Mon May 17 23:43:41 2010 (r208218) @@ -31,7 +31,7 @@ S= ${.CURDIR}/../../.. KMOD= usb SRCS= bus_if.h device_if.h usb_if.h usb_if.c vnode_if.h \ - opt_usb.h opt_bus.h \ + opt_usb.h opt_bus.h opt_ddb.h \ usbdevs.h usbdevs_data.h \ usb_busdma.c usb_controller.c usb_compat_linux.c usb_core.c usb_debug.c \ usb_dev.c usb_device.c usb_dynamic.c usb_error.c usb_generic.c \ From owner-svn-src-all@FreeBSD.ORG Mon May 17 23:44:18 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B150B1065675; Mon, 17 May 2010 23:44:18 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9FE748FC12; Mon, 17 May 2010 23:44:18 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HNiIOQ074138; Mon, 17 May 2010 23:44:18 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HNiIK3074135; Mon, 17 May 2010 23:44:18 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <201005172344.o4HNiIK3074135@svn.freebsd.org> From: Andrew Thompson Date: Mon, 17 May 2010 23:44:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208219 - in stable/8/sys/dev/usb: . quirk X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 23:44:18 -0000 Author: thompsa Date: Mon May 17 23:44:18 2010 New Revision: 208219 URL: http://svn.freebsd.org/changeset/base/208219 Log: MFC r208006 Add quirks for the Alcor SDCR_6362 Card Reader, Freecom HDD storage device and Samsung YP_U4 music player. PR: usb/145265, usb/146104 Modified: stable/8/sys/dev/usb/quirk/usb_quirk.c stable/8/sys/dev/usb/usbdevs Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/dev/usb/quirk/usb_quirk.c ============================================================================== --- stable/8/sys/dev/usb/quirk/usb_quirk.c Mon May 17 23:43:41 2010 (r208218) +++ stable/8/sys/dev/usb/quirk/usb_quirk.c Mon May 17 23:44:18 2010 (r208219) @@ -151,6 +151,8 @@ static struct usb_quirk_entry usb_quirks USB_QUIRK(AIPTEK2, SUNPLUS_TECH, 0x0000, 0xffff, UQ_MSC_NO_SYNC_CACHE), USB_QUIRK(ALCOR, SDCR_6335, 0x0000, 0xffff, UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_SYNC_CACHE), + USB_QUIRK(ALCOR, SDCR_6362, 0x0000, 0xffff, UQ_MSC_NO_TEST_UNIT_READY, + UQ_MSC_NO_SYNC_CACHE), USB_QUIRK(ALCOR, AU6390, 0x0000, 0xffff, UQ_MSC_NO_SYNC_CACHE), USB_QUIRK(ALCOR, UMCR_9361, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_GETMAXLUN), @@ -184,6 +186,7 @@ static struct usb_quirk_entry usb_quirks USB_QUIRK(FEIYA, 5IN1, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI), USB_QUIRK(FREECOM, DVD, 0x0000, 0xffff, UQ_MSC_FORCE_PROTO_SCSI), + USB_QUIRK(FREECOM, HDD, 0x0000, 0xffff, UQ_MSC_NO_SYNC_CACHE), USB_QUIRK(FUJIPHOTO, MASS0100, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI_I, UQ_MSC_FORCE_PROTO_ATAPI, UQ_MSC_NO_RS_CLEAR_UA), USB_QUIRK(GENESYS, GL641USB2IDE, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB, @@ -323,6 +326,7 @@ static struct usb_quirk_entry usb_quirks USB_QUIRK_VP(USB_VENDOR_SAMSUNG_TECHWIN, USB_PRODUCT_SAMSUNG_TECHWIN_DIGIMAX_410, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_INQUIRY), + USB_QUIRK(SAMSUNG, YP_U4, 0x0000, 0xffff, UQ_MSC_NO_SYNC_CACHE), USB_QUIRK(SANDISK, SDDR05A, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_CBI, UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_READ_CAP_OFFBY1, UQ_MSC_NO_GETMAXLUN), Modified: stable/8/sys/dev/usb/usbdevs ============================================================================== --- stable/8/sys/dev/usb/usbdevs Mon May 17 23:43:41 2010 (r208218) +++ stable/8/sys/dev/usb/usbdevs Mon May 17 23:44:18 2010 (r208219) @@ -880,6 +880,7 @@ product AKS USBHASP 0x0001 USB-HASP 0.0 product ALCOR2 KBD_HUB 0x2802 Kbd Hub product ALCOR SDCR_6335 0x6335 SD/MMC Card Reader +product ALCOR SDCR_6362 0x6362 SD/MMC Card Reader product ALCOR TRANSCEND 0x6387 Transcend JetFlash Drive product ALCOR MA_KBD_HUB 0x9213 MacAlly Kbd Hub product ALCOR AU9814 0x9215 AU9814 Hub @@ -1490,6 +1491,7 @@ product FOSSIL WRISTPDA 0x0002 Wrist PD /* Freecom products */ product FREECOM DVD 0xfc01 DVD drive +product FREECOM HDD 0xfc05 Classic SL Hard Drive /* Fujitsu Siemens Computers products */ product FSC E5400 0x1009 PrismGT USB 2.0 WLAN @@ -2598,6 +2600,8 @@ product SAGEM XG76NA 0x0062 XG-76NA /* Samsung products */ product SAMSUNG ML6060 0x3008 ML-6060 laser printer product SAMSUNG YP_U2 0x5050 YP-U2 MP3 Player +product SAMSUNG YP_U4 0x5092 YP-U4 MP3 Player + product SAMSUNG I500 0x6601 I500 Palm USB Phone product SAMSUNG2 RT2870_1 0x2018 RT2870 From owner-svn-src-all@FreeBSD.ORG Mon May 17 23:44:53 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 280CC1065670; Mon, 17 May 2010 23:44:53 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 16F3A8FC12; Mon, 17 May 2010 23:44:53 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HNiqQR074328; Mon, 17 May 2010 23:44:52 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HNiqu5074326; Mon, 17 May 2010 23:44:52 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <201005172344.o4HNiqu5074326@svn.freebsd.org> From: Andrew Thompson Date: Mon, 17 May 2010 23:44:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208220 - stable/8/sys/dev/usb X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 23:44:53 -0000 Author: thompsa Date: Mon May 17 23:44:52 2010 New Revision: 208220 URL: http://svn.freebsd.org/changeset/base/208220 Log: MFC r208007 Staticise usb_ref_device and usb_unref_device. Modified: stable/8/sys/dev/usb/usb_dev.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/dev/usb/usb_dev.c ============================================================================== --- stable/8/sys/dev/usb/usb_dev.c Mon May 17 23:44:18 2010 (r208219) +++ stable/8/sys/dev/usb/usb_dev.c Mon May 17 23:44:52 2010 (r208220) @@ -182,7 +182,7 @@ usb_loc_fill(struct usb_fs_privdata* pd, * 0: Success, refcount incremented on the given USB device. * Else: Failure. *------------------------------------------------------------------------*/ -usb_error_t +static usb_error_t usb_ref_device(struct usb_cdev_privdata *cpd, struct usb_cdev_refdata *crd, int need_uref) { @@ -327,7 +327,7 @@ usb_usb_ref_device(struct usb_cdev_privd * This function will release the reference count by one unit for the * given USB device. *------------------------------------------------------------------------*/ -void +static void usb_unref_device(struct usb_cdev_privdata *cpd, struct usb_cdev_refdata *crd) { From owner-svn-src-all@FreeBSD.ORG Mon May 17 23:45:32 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 323DB1065680; Mon, 17 May 2010 23:45:32 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 202E68FC13; Mon, 17 May 2010 23:45:32 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HNjWRr074530; Mon, 17 May 2010 23:45:32 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HNjW2r074524; Mon, 17 May 2010 23:45:32 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <201005172345.o4HNjW2r074524@svn.freebsd.org> From: Andrew Thompson Date: Mon, 17 May 2010 23:45:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208221 - stable/8/sys/dev/usb X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 23:45:32 -0000 Author: thompsa Date: Mon May 17 23:45:31 2010 New Revision: 208221 URL: http://svn.freebsd.org/changeset/base/208221 Log: MFC r208008 If a USB device is suspended and a USB set config request is issued when the USB enumeration lock is locked, then the USB stack fails to resume the device because locking the USB enumeration lock is part of the resume procedure. To solve this issue a new lock is introduced which only protects the suspend and resume callbacks, which can be dropped inside the usbd_do_request_flags() function, to allow suspend and resume during so-called enumeration operations. Modified: stable/8/sys/dev/usb/usb_device.c stable/8/sys/dev/usb/usb_device.h stable/8/sys/dev/usb/usb_generic.c stable/8/sys/dev/usb/usb_hub.c stable/8/sys/dev/usb/usb_request.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/dev/usb/usb_device.c ============================================================================== --- stable/8/sys/dev/usb/usb_device.c Mon May 17 23:44:52 2010 (r208220) +++ stable/8/sys/dev/usb/usb_device.c Mon May 17 23:45:31 2010 (r208221) @@ -1380,7 +1380,7 @@ usb_suspend_resume(struct usb_device *ud } DPRINTFN(4, "udev=%p do_suspend=%d\n", udev, do_suspend); - sx_assert(&udev->enum_sx, SA_LOCKED); + sx_assert(&udev->sr_sx, SA_LOCKED); USB_BUS_LOCK(udev->bus); /* filter the suspend events */ @@ -1495,6 +1495,7 @@ usb_alloc_device(device_t parent_dev, st /* initialise our SX-lock */ sx_init_flags(&udev->enum_sx, "USB config SX lock", SX_DUPOK); + sx_init_flags(&udev->sr_sx, "USB suspend and resume SX lock", SX_DUPOK); cv_init(&udev->ctrlreq_cv, "WCTRL"); cv_init(&udev->ref_cv, "UGONE"); @@ -2038,6 +2039,7 @@ usb_free_device(struct usb_device *udev, sx_destroy(&udev->ctrl_sx); sx_destroy(&udev->enum_sx); + sx_destroy(&udev->sr_sx); cv_destroy(&udev->ctrlreq_cv); cv_destroy(&udev->ref_cv); @@ -2188,12 +2190,12 @@ usbd_set_device_strings(struct usb_devic #ifdef USB_VERBOSE const struct usb_knowndev *kdp; #endif - uint8_t *temp_ptr; + char *temp_ptr; size_t temp_size; uint16_t vendor_id; uint16_t product_id; - temp_ptr = udev->bus->scratch[0].data; + temp_ptr = (char *)udev->bus->scratch[0].data; temp_size = sizeof(udev->bus->scratch[0].data); vendor_id = UGETW(udd->idVendor); @@ -2589,6 +2591,7 @@ void usbd_enum_lock(struct usb_device *udev) { sx_xlock(&udev->enum_sx); + sx_xlock(&udev->sr_sx); /* * NEWBUS LOCK NOTE: We should check if any parent SX locks * are locked before locking Giant. Else the lock can be @@ -2604,6 +2607,30 @@ usbd_enum_unlock(struct usb_device *udev { mtx_unlock(&Giant); sx_xunlock(&udev->enum_sx); + sx_xunlock(&udev->sr_sx); +} + +/* The following function locks suspend and resume. */ + +void +usbd_sr_lock(struct usb_device *udev) +{ + sx_xlock(&udev->sr_sx); + /* + * NEWBUS LOCK NOTE: We should check if any parent SX locks + * are locked before locking Giant. Else the lock can be + * locked multiple times. + */ + mtx_lock(&Giant); +} + +/* The following function unlocks suspend and resume. */ + +void +usbd_sr_unlock(struct usb_device *udev) +{ + mtx_unlock(&Giant); + sx_xunlock(&udev->sr_sx); } /* Modified: stable/8/sys/dev/usb/usb_device.h ============================================================================== --- stable/8/sys/dev/usb/usb_device.h Mon May 17 23:44:52 2010 (r208220) +++ stable/8/sys/dev/usb/usb_device.h Mon May 17 23:45:31 2010 (r208221) @@ -115,6 +115,7 @@ struct usb_device { * messages */ struct sx ctrl_sx; struct sx enum_sx; + struct sx sr_sx; struct mtx device_mtx; struct cv ctrlreq_cv; struct cv ref_cv; @@ -215,6 +216,8 @@ void usb_set_device_state(struct usb_dev enum usb_dev_state state); void usbd_enum_lock(struct usb_device *); void usbd_enum_unlock(struct usb_device *); +void usbd_sr_lock(struct usb_device *); +void usbd_sr_unlock(struct usb_device *); uint8_t usbd_enum_is_locked(struct usb_device *); #endif /* _USB_DEVICE_H_ */ Modified: stable/8/sys/dev/usb/usb_generic.c ============================================================================== --- stable/8/sys/dev/usb/usb_generic.c Mon May 17 23:44:52 2010 (r208220) +++ stable/8/sys/dev/usb/usb_generic.c Mon May 17 23:45:31 2010 (r208221) @@ -1735,14 +1735,34 @@ ugen_set_power_mode(struct usb_fifo *f, break; case USB_POWER_MODE_RESUME: - err = usbd_req_clear_port_feature(udev->parent_hub, - NULL, udev->port_no, UHF_PORT_SUSPEND); +#if USB_HAVE_POWERD + /* let USB-powerd handle resume */ + USB_BUS_LOCK(udev->bus); + udev->pwr_save.write_refs++; + udev->pwr_save.last_xfer_time = ticks; + USB_BUS_UNLOCK(udev->bus); + + /* set new power mode */ + usbd_set_power_mode(udev, USB_POWER_MODE_SAVE); + + /* wait for resume to complete */ + usb_pause_mtx(NULL, hz / 4); + + /* clear write reference */ + USB_BUS_LOCK(udev->bus); + udev->pwr_save.write_refs--; + USB_BUS_UNLOCK(udev->bus); +#endif mode = USB_POWER_MODE_SAVE; break; case USB_POWER_MODE_SUSPEND: - err = usbd_req_set_port_feature(udev->parent_hub, - NULL, udev->port_no, UHF_PORT_SUSPEND); +#if USB_HAVE_POWERD + /* let USB-powerd handle suspend */ + USB_BUS_LOCK(udev->bus); + udev->pwr_save.last_xfer_time = ticks - (256 * hz); + USB_BUS_UNLOCK(udev->bus); +#endif mode = USB_POWER_MODE_SAVE; break; Modified: stable/8/sys/dev/usb/usb_hub.c ============================================================================== --- stable/8/sys/dev/usb/usb_hub.c Mon May 17 23:44:52 2010 (r208220) +++ stable/8/sys/dev/usb/usb_hub.c Mon May 17 23:45:31 2010 (r208221) @@ -126,6 +126,7 @@ static usb_callback_t uhub_intr_callback static void usb_dev_resume_peer(struct usb_device *udev); static void usb_dev_suspend_peer(struct usb_device *udev); +static uint8_t usb_peer_should_wakeup(struct usb_device *udev); static const struct usb_config uhub_config[UHUB_N_TRANSFER] = { @@ -1706,8 +1707,8 @@ usbd_transfer_power_ref(struct usb_xfer udev->pwr_save.read_refs += val; if (xfer->flags_int.usb_mode == USB_MODE_HOST) { /* - * it is not allowed to suspend during a control - * transfer + * It is not allowed to suspend during a + * control transfer: */ udev->pwr_save.write_refs += val; } @@ -1717,19 +1718,21 @@ usbd_transfer_power_ref(struct usb_xfer udev->pwr_save.write_refs += val; } - if (udev->flags.self_suspended) - needs_explore = - (udev->pwr_save.write_refs != 0) || - ((udev->pwr_save.read_refs != 0) && - (usb_peer_can_wakeup(udev) == 0)); - else - needs_explore = 0; + if (val > 0) { + if (udev->flags.self_suspended) + needs_explore = usb_peer_should_wakeup(udev); + else + needs_explore = 0; - if (!(udev->bus->hw_power_state & power_mask[xfer_type])) { - DPRINTF("Adding type %u to power state\n", xfer_type); - udev->bus->hw_power_state |= power_mask[xfer_type]; - needs_hw_power = 1; + if (!(udev->bus->hw_power_state & power_mask[xfer_type])) { + DPRINTF("Adding type %u to power state\n", xfer_type); + udev->bus->hw_power_state |= power_mask[xfer_type]; + needs_hw_power = 1; + } else { + needs_hw_power = 0; + } } else { + needs_explore = 0; needs_hw_power = 0; } @@ -1748,6 +1751,22 @@ usbd_transfer_power_ref(struct usb_xfer #endif /*------------------------------------------------------------------------* + * usb_peer_should_wakeup + * + * This function returns non-zero if the current device should wake up. + *------------------------------------------------------------------------*/ +static uint8_t +usb_peer_should_wakeup(struct usb_device *udev) +{ + return ((udev->power_mode == USB_POWER_MODE_ON) || + (udev->pwr_save.type_refs[UE_ISOCHRONOUS] != 0) || + (udev->pwr_save.write_refs != 0) || + ((udev->pwr_save.read_refs != 0) && + (udev->flags.usb_mode == USB_MODE_HOST) && + (usb_peer_can_wakeup(udev) == 0))); +} + +/*------------------------------------------------------------------------* * usb_bus_powerd * * This function implements the USB power daemon and is called @@ -1763,7 +1782,6 @@ usb_bus_powerd(struct usb_bus *bus) usb_ticks_t mintime; usb_size_t type_refs[5]; uint8_t x; - uint8_t rem_wakeup; limit = usb_power_timeout; if (limit == 0) @@ -1788,30 +1806,23 @@ usb_bus_powerd(struct usb_bus *bus) if (udev == NULL) continue; - rem_wakeup = usb_peer_can_wakeup(udev); - temp = ticks - udev->pwr_save.last_xfer_time; - if ((udev->power_mode == USB_POWER_MODE_ON) || - (udev->pwr_save.type_refs[UE_ISOCHRONOUS] != 0) || - (udev->pwr_save.write_refs != 0) || - ((udev->pwr_save.read_refs != 0) && - (rem_wakeup == 0))) { - + if (usb_peer_should_wakeup(udev)) { /* check if we are suspended */ if (udev->flags.self_suspended != 0) { USB_BUS_UNLOCK(bus); usb_dev_resume_peer(udev); USB_BUS_LOCK(bus); } - } else if (temp >= limit) { - - /* check if we are not suspended */ - if (udev->flags.self_suspended == 0) { - USB_BUS_UNLOCK(bus); - usb_dev_suspend_peer(udev); - USB_BUS_LOCK(bus); - } + } else if ((temp >= limit) && + (udev->flags.usb_mode == USB_MODE_HOST) && + (udev->flags.self_suspended == 0)) { + /* try to do suspend */ + + USB_BUS_UNLOCK(bus); + usb_dev_suspend_peer(udev); + USB_BUS_LOCK(bus); } } @@ -1920,6 +1931,9 @@ usb_dev_resume_peer(struct usb_device *u /* resume parent hub first */ usb_dev_resume_peer(udev->parent_hub); + /* reduce chance of instant resume failure by waiting a little bit */ + usb_pause_mtx(NULL, USB_MS_TO_TICKS(20)); + /* resume current port (Valid in Host and Device Mode) */ err = usbd_req_clear_port_feature(udev->parent_hub, NULL, udev->port_no, UHF_PORT_SUSPEND); @@ -1958,12 +1972,12 @@ usb_dev_resume_peer(struct usb_device *u (bus->methods->set_hw_power) (bus); } - usbd_enum_lock(udev); + usbd_sr_lock(udev); /* notify all sub-devices about resume */ err = usb_suspend_resume(udev, 0); - usbd_enum_unlock(udev); + usbd_sr_unlock(udev); /* check if peer has wakeup capability */ if (usb_peer_can_wakeup(udev)) { @@ -2029,12 +2043,47 @@ repeat: } } - usbd_enum_lock(udev); + USB_BUS_LOCK(udev->bus); + /* + * Checking for suspend condition and setting suspended bit + * must be atomic! + */ + err = usb_peer_should_wakeup(udev); + if (err == 0) { + /* + * Set that this device is suspended. This variable + * must be set before calling USB controller suspend + * callbacks. + */ + udev->flags.self_suspended = 1; + } + USB_BUS_UNLOCK(udev->bus); + + if (err != 0) { + if (udev->flags.usb_mode == USB_MODE_DEVICE) { + /* resume parent HUB first */ + usb_dev_resume_peer(udev->parent_hub); + + /* reduce chance of instant resume failure by waiting a little bit */ + usb_pause_mtx(NULL, USB_MS_TO_TICKS(20)); + + /* resume current port (Valid in Host and Device Mode) */ + err = usbd_req_clear_port_feature(udev->parent_hub, + NULL, udev->port_no, UHF_PORT_SUSPEND); + + /* resume settle time */ + usb_pause_mtx(NULL, USB_MS_TO_TICKS(USB_PORT_RESUME_DELAY)); + } + DPRINTF("Suspend was cancelled!\n"); + return; + } + + usbd_sr_lock(udev); /* notify all sub-devices about suspend */ err = usb_suspend_resume(udev, 1); - usbd_enum_unlock(udev); + usbd_sr_unlock(udev); if (usb_peer_can_wakeup(udev)) { /* allow device to do remote wakeup */ @@ -2045,13 +2094,6 @@ repeat: "remote wakeup failed\n"); } } - USB_BUS_LOCK(udev->bus); - /* - * Set that this device is suspended. This variable must be set - * before calling USB controller suspend callbacks. - */ - udev->flags.self_suspended = 1; - USB_BUS_UNLOCK(udev->bus); if (udev->bus->methods->device_suspend != NULL) { usb_timeout_t temp; Modified: stable/8/sys/dev/usb/usb_request.c ============================================================================== --- stable/8/sys/dev/usb/usb_request.c Mon May 17 23:44:52 2010 (r208220) +++ stable/8/sys/dev/usb/usb_request.c Mon May 17 23:45:31 2010 (r208221) @@ -273,6 +273,7 @@ usbd_do_request_flags(struct usb_device usb_ticks_t max_ticks; uint16_t length; uint16_t temp; + uint8_t enum_locked; if (timeout < 50) { /* timeout is too small */ @@ -284,6 +285,8 @@ usbd_do_request_flags(struct usb_device } length = UGETW(req->wLength); + enum_locked = usbd_enum_is_locked(udev); + DPRINTFN(5, "udev=%p bmRequestType=0x%02x bRequest=0x%02x " "wValue=0x%02x%02x wIndex=0x%02x%02x wLength=0x%02x%02x\n", udev, req->bmRequestType, req->bRequest, @@ -308,12 +311,18 @@ usbd_do_request_flags(struct usb_device if (flags & USB_USER_DATA_PTR) return (USB_ERR_INVAL); #endif - if (mtx) { + if ((mtx != NULL) && (mtx != &Giant)) { mtx_unlock(mtx); - if (mtx != &Giant) { - mtx_assert(mtx, MA_NOTOWNED); - } + mtx_assert(mtx, MA_NOTOWNED); } + + /* + * We need to allow suspend and resume at this point, else the + * control transfer will timeout if the device is suspended! + */ + if (enum_locked) + usbd_sr_unlock(udev); + /* * Grab the default sx-lock so that serialisation * is achieved when multiple threads are involved: @@ -536,9 +545,12 @@ usbd_do_request_flags(struct usb_device done: sx_xunlock(&udev->ctrl_sx); - if (mtx) { + if (enum_locked) + usbd_sr_lock(udev); + + if ((mtx != NULL) && (mtx != &Giant)) mtx_lock(mtx); - } + return ((usb_error_t)err); } From owner-svn-src-all@FreeBSD.ORG Mon May 17 23:46:08 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C349C1065673; Mon, 17 May 2010 23:46:08 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 989FB8FC23; Mon, 17 May 2010 23:46:08 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HNk8q7074710; Mon, 17 May 2010 23:46:08 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HNk8FC074707; Mon, 17 May 2010 23:46:08 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <201005172346.o4HNk8FC074707@svn.freebsd.org> From: Andrew Thompson Date: Mon, 17 May 2010 23:46:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208222 - in stable/8/sys/dev/usb: . input X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 23:46:08 -0000 Author: thompsa Date: Mon May 17 23:46:08 2010 New Revision: 208222 URL: http://svn.freebsd.org/changeset/base/208222 Log: MFC r208009 Enable support for mouse panning wheels. Modified: stable/8/sys/dev/usb/input/ums.c stable/8/sys/dev/usb/usbhid.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/dev/usb/input/ums.c ============================================================================== --- stable/8/sys/dev/usb/input/ums.c Mon May 17 23:45:31 2010 (r208221) +++ stable/8/sys/dev/usb/input/ums.c Mon May 17 23:46:08 2010 (r208222) @@ -293,6 +293,12 @@ ums_intr_callback(struct usb_xfer *xfer, DPRINTFN(6, "x:%d y:%d z:%d t:%d w:%d buttons:0x%08x\n", dx, dy, dz, dt, dw, buttons); + /* translate T-axis into button presses until further */ + if (dt > 0) + buttons |= 1UL << 3; + else if (dt < 0) + buttons |= 1UL << 4; + sc->sc_status.button = buttons; sc->sc_status.dx += dx; sc->sc_status.dy += dy; @@ -461,6 +467,12 @@ ums_hid_parse(struct ums_softc *sc, devi if ((flags & MOUSE_FLAGS_MASK) == MOUSE_FLAGS) { info->sc_flags |= UMS_FLAG_T_AXIS; } + } else if (hid_locate(buf, len, HID_USAGE2(HUP_CONSUMER, + HUC_AC_PAN), hid_input, index, &info->sc_loc_t, + &flags, &info->sc_iid_t)) { + + if ((flags & MOUSE_FLAGS_MASK) == MOUSE_FLAGS) + info->sc_flags |= UMS_FLAG_T_AXIS; } /* figure out the number of buttons */ Modified: stable/8/sys/dev/usb/usbhid.h ============================================================================== --- stable/8/sys/dev/usb/usbhid.h Mon May 17 23:45:31 2010 (r208221) +++ stable/8/sys/dev/usb/usbhid.h Mon May 17 23:46:08 2010 (r208222) @@ -156,6 +156,9 @@ struct usb_hid_descriptor { #define HUD_ERASER 0x0045 #define HUD_TABLET_PICK 0x0046 +/* Usages, Consumer */ +#define HUC_AC_PAN 0x0238 + #define HID_USAGE2(p,u) (((p) << 16) | (u)) #define UHID_INPUT_REPORT 0x01 From owner-svn-src-all@FreeBSD.ORG Mon May 17 23:46:45 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7C7A21065675; Mon, 17 May 2010 23:46:45 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6B7878FC13; Mon, 17 May 2010 23:46:45 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HNkjqx074914; Mon, 17 May 2010 23:46:45 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HNkjRK074912; Mon, 17 May 2010 23:46:45 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <201005172346.o4HNkjRK074912@svn.freebsd.org> From: Andrew Thompson Date: Mon, 17 May 2010 23:46:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208223 - stable/8/sys/dev/usb X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 23:46:45 -0000 Author: thompsa Date: Mon May 17 23:46:45 2010 New Revision: 208223 URL: http://svn.freebsd.org/changeset/base/208223 Log: MFC r208010 Provide more information about the device location in the USB system. Modified: stable/8/sys/dev/usb/usb_hub.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/dev/usb/usb_hub.c ============================================================================== --- stable/8/sys/dev/usb/usb_hub.c Mon May 17 23:46:08 2010 (r208222) +++ stable/8/sys/dev/usb/usb_hub.c Mon May 17 23:46:45 2010 (r208223) @@ -1010,8 +1010,10 @@ uhub_child_location_string(device_t pare } goto done; } - snprintf(buf, buflen, "port=%u interface=%u", - res.portno, res.iface_index); + snprintf(buf, buflen, "bus=%u hubaddr=%u port=%u devaddr=%u interface=%u", + (res.udev->parent_hub != NULL) ? res.udev->parent_hub->device_index : 0, + res.portno, device_get_unit(res.udev->bus->bdev), + res.udev->device_index, res.iface_index); done: mtx_unlock(&Giant); From owner-svn-src-all@FreeBSD.ORG Mon May 17 23:47:24 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 937FC1065676; Mon, 17 May 2010 23:47:24 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8289E8FC14; Mon, 17 May 2010 23:47:24 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HNlOGF075138; Mon, 17 May 2010 23:47:24 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HNlOBd075136; Mon, 17 May 2010 23:47:24 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <201005172347.o4HNlOBd075136@svn.freebsd.org> From: Andrew Thompson Date: Mon, 17 May 2010 23:47:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208224 - stable/8/sys/dev/usb X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 23:47:24 -0000 Author: thompsa Date: Mon May 17 23:47:24 2010 New Revision: 208224 URL: http://svn.freebsd.org/changeset/base/208224 Log: MFC r208011 Add the ASUS MyPal A730W device id. Modified: stable/8/sys/dev/usb/usbdevs Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/dev/usb/usbdevs ============================================================================== --- stable/8/sys/dev/usb/usbdevs Mon May 17 23:46:45 2010 (r208223) +++ stable/8/sys/dev/usb/usbdevs Mon May 17 23:47:24 2010 (r208224) @@ -1014,6 +1014,7 @@ product ASUS RT2870_4 0x1760 RT2870 product ASUS RT2870_5 0x1761 RT2870 product ASUS USBN13 0x1784 USB-N13 product ASUS RT3070_1 0x1790 RT3070 +product ASUS A730W 0x4202 ASUS MyPal A730W product ASUS P535 0x420f ASUS P535 PDA product ASUS GMSC 0x422f ASUS Generic Mass Storage product ASUS RT2570 0x1706 RT2500USB Wireless Adapter From owner-svn-src-all@FreeBSD.ORG Mon May 17 23:48:03 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 77559106567B; Mon, 17 May 2010 23:48:03 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6602E8FC0C; Mon, 17 May 2010 23:48:03 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HNm3sL075317; Mon, 17 May 2010 23:48:03 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HNm3La075315; Mon, 17 May 2010 23:48:03 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <201005172348.o4HNm3La075315@svn.freebsd.org> From: Andrew Thompson Date: Mon, 17 May 2010 23:48:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208225 - stable/8/sys/dev/usb/controller X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 23:48:03 -0000 Author: thompsa Date: Mon May 17 23:48:03 2010 New Revision: 208225 URL: http://svn.freebsd.org/changeset/base/208225 Log: MFC r208013 Add missing ifdefs for usb power saving support. Modified: stable/8/sys/dev/usb/controller/usb_controller.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/dev/usb/controller/usb_controller.c ============================================================================== --- stable/8/sys/dev/usb/controller/usb_controller.c Mon May 17 23:47:24 2010 (r208224) +++ stable/8/sys/dev/usb/controller/usb_controller.c Mon May 17 23:48:03 2010 (r208225) @@ -234,11 +234,12 @@ usb_bus_explore(struct usb_proc_msg *pm) USB_BUS_UNLOCK(bus); +#if USB_HAVE_POWERD /* * First update the USB power state! */ usb_bus_powerd(bus); - +#endif /* Explore the Root USB HUB. */ (udev->hub->explore) (udev); USB_BUS_LOCK(bus); @@ -301,11 +302,13 @@ usb_power_wdog(void *arg) usb_proc_rewakeup(&bus->explore_proc); /* recover from DDB */ #endif +#if USB_HAVE_POWERD USB_BUS_UNLOCK(bus); usb_bus_power_update(bus); USB_BUS_LOCK(bus); +#endif } /*------------------------------------------------------------------------* From owner-svn-src-all@FreeBSD.ORG Mon May 17 23:48:52 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F339E1065676; Mon, 17 May 2010 23:48:51 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E1DC08FC0C; Mon, 17 May 2010 23:48:51 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HNmpXt075530; Mon, 17 May 2010 23:48:51 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HNmpvE075528; Mon, 17 May 2010 23:48:51 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <201005172348.o4HNmpvE075528@svn.freebsd.org> From: Andrew Thompson Date: Mon, 17 May 2010 23:48:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208226 - stable/8/sys/dev/usb/controller X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 23:48:52 -0000 Author: thompsa Date: Mon May 17 23:48:51 2010 New Revision: 208226 URL: http://svn.freebsd.org/changeset/base/208226 Log: MFC r208014 Back out r203140 which was causing problems when the first and the last microframe slot was not in the smask. The problem was that the EHCI driver was then thinking that the transfer was immediately complete in some cases. Which could lead to freeze-like situations, which can be recovered by unplugging the USB device. Modified: stable/8/sys/dev/usb/controller/ehci.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/dev/usb/controller/ehci.c ============================================================================== --- stable/8/sys/dev/usb/controller/ehci.c Mon May 17 23:48:03 2010 (r208225) +++ stable/8/sys/dev/usb/controller/ehci.c Mon May 17 23:48:51 2010 (r208226) @@ -1352,22 +1352,32 @@ ehci_check_transfer(struct usb_xfer *xfe } } else if (methods == &ehci_device_isoc_hs_methods) { ehci_itd_t *td; - uint8_t n = (xfer->nframes & 7); /* isochronous high speed transfer */ /* check last transfer */ td = xfer->td_transfer_last; usb_pc_cpu_invalidate(td->page_cache); - if (n == 0) - status = td->itd_status[7]; - else - status = td->itd_status[n-1]; + status = td->itd_status[0]; + status |= td->itd_status[1]; + status |= td->itd_status[2]; + status |= td->itd_status[3]; + status |= td->itd_status[4]; + status |= td->itd_status[5]; + status |= td->itd_status[6]; + status |= td->itd_status[7]; /* also check first transfer */ td = xfer->td_transfer_first; usb_pc_cpu_invalidate(td->page_cache); status |= td->itd_status[0]; + status |= td->itd_status[1]; + status |= td->itd_status[2]; + status |= td->itd_status[3]; + status |= td->itd_status[4]; + status |= td->itd_status[5]; + status |= td->itd_status[6]; + status |= td->itd_status[7]; /* if no transactions are active we continue */ if (!(status & htohc32(sc, EHCI_ITD_ACTIVE))) { @@ -2799,14 +2809,15 @@ ehci_device_isoc_hs_enter(struct usb_xfe uint8_t x; uint8_t td_no; uint8_t page_no; + uint8_t shift = usbd_xfer_get_fps_shift(xfer); #ifdef USB_DEBUG uint8_t once = 1; #endif - DPRINTFN(6, "xfer=%p next=%d nframes=%d\n", - xfer, xfer->endpoint->isoc_next, xfer->nframes); + DPRINTFN(6, "xfer=%p next=%d nframes=%d shift=%d\n", + xfer, xfer->endpoint->isoc_next, xfer->nframes, (int)shift); /* get the current frame index */ @@ -2820,7 +2831,7 @@ ehci_device_isoc_hs_enter(struct usb_xfe (EHCI_VIRTUAL_FRAMELIST_COUNT - 1); if ((xfer->endpoint->is_synced == 0) || - (buf_offset < ((xfer->nframes + 7) / 8))) { + (buf_offset < (((xfer->nframes << shift) + 7) / 8))) { /* * If there is data underflow or the pipe queue is empty we * schedule the transfer a few frames ahead of the current @@ -2844,7 +2855,7 @@ ehci_device_isoc_hs_enter(struct usb_xfe */ xfer->isoc_time_complete = usb_isoc_time_expand(&sc->sc_bus, nframes) + buf_offset + - ((xfer->nframes + 7) / 8); + (((xfer->nframes << shift) + 7) / 8); /* get the real number of frames */ From owner-svn-src-all@FreeBSD.ORG Mon May 17 23:49:32 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 32489106566C; Mon, 17 May 2010 23:49:32 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 211A08FC19; Mon, 17 May 2010 23:49:32 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HNnWMN075741; Mon, 17 May 2010 23:49:32 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HNnW4L075739; Mon, 17 May 2010 23:49:32 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <201005172349.o4HNnW4L075739@svn.freebsd.org> From: Andrew Thompson Date: Mon, 17 May 2010 23:49:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208227 - stable/8/sys/dev/usb/serial X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 23:49:32 -0000 Author: thompsa Date: Mon May 17 23:49:31 2010 New Revision: 208227 URL: http://svn.freebsd.org/changeset/base/208227 Log: MFC r208015 Increase the max ports to 12, 3G devices exist where the ppp endpoint is #9. Modified: stable/8/sys/dev/usb/serial/u3g.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/dev/usb/serial/u3g.c ============================================================================== --- stable/8/sys/dev/usb/serial/u3g.c Mon May 17 23:48:51 2010 (r208226) +++ stable/8/sys/dev/usb/serial/u3g.c Mon May 17 23:49:31 2010 (r208227) @@ -71,7 +71,7 @@ SYSCTL_INT(_hw_usb_u3g, OID_AUTO, debug, &u3g_debug, 0, "Debug level"); #endif -#define U3G_MAXPORTS 8 +#define U3G_MAXPORTS 12 #define U3G_CONFIG_INDEX 0 #define U3G_BSIZE 2048 From owner-svn-src-all@FreeBSD.ORG Mon May 17 23:50:10 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 86AE0106564A; Mon, 17 May 2010 23:50:10 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5BEF88FC22; Mon, 17 May 2010 23:50:10 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HNoAYF075953; Mon, 17 May 2010 23:50:10 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HNoAix075950; Mon, 17 May 2010 23:50:10 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <201005172350.o4HNoAix075950@svn.freebsd.org> From: Andrew Thompson Date: Mon, 17 May 2010 23:50:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208228 - in stable/8/sys/dev/usb: . serial X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 23:50:10 -0000 Author: thompsa Date: Mon May 17 23:50:10 2010 New Revision: 208228 URL: http://svn.freebsd.org/changeset/base/208228 Log: MFC r208016 Add new FTDI USB device ID. Modified: stable/8/sys/dev/usb/serial/uftdi.c stable/8/sys/dev/usb/usbdevs Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/dev/usb/serial/uftdi.c ============================================================================== --- stable/8/sys/dev/usb/serial/uftdi.c Mon May 17 23:49:31 2010 (r208227) +++ stable/8/sys/dev/usb/serial/uftdi.c Mon May 17 23:50:10 2010 (r208228) @@ -219,6 +219,7 @@ static struct usb_device_id uftdi_devs[] UFTDI_DEV(ATMEL, STK541, 8U232AM), UFTDI_DEV(DRESDENELEKTRONIK, SENSORTERMINALBOARD, 8U232AM), UFTDI_DEV(DRESDENELEKTRONIK, WIRELESSHANDHELDTERMINAL, 8U232AM), + UFTDI_DEV(FTDI, GAMMASCOUT, 8U232AM), UFTDI_DEV(FTDI, SERIAL_8U100AX, SIO), UFTDI_DEV(FTDI, SERIAL_2232C, 8U232AM), UFTDI_DEV(FTDI, SERIAL_2232D, 8U232AM), Modified: stable/8/sys/dev/usb/usbdevs ============================================================================== --- stable/8/sys/dev/usb/usbdevs Mon May 17 23:49:31 2010 (r208227) +++ stable/8/sys/dev/usb/usbdevs Mon May 17 23:50:10 2010 (r208228) @@ -1508,6 +1508,7 @@ product FTDI SERIAL_4232H 0x6011 FT4232H product FTDI TACTRIX_OPENPORT_13M 0xcc48 OpenPort 1.3 Mitsubishi product FTDI TACTRIX_OPENPORT_13S 0xcc49 OpenPort 1.3 Subaru product FTDI TACTRIX_OPENPORT_13U 0xcc4a OpenPort 1.3 Universal +product FTDI GAMMASCOUT 0xd678 Gamma-Scout product FTDI EISCOU 0xe888 Expert ISDN Control USB product FTDI UOPTBR 0xe889 USB-RS232 OptoBridge product FTDI EMCU2D 0xe88a Expert mouseCLOCK USB II From owner-svn-src-all@FreeBSD.ORG Mon May 17 23:50:47 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 088F61065680; Mon, 17 May 2010 23:50:47 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id EB8898FC25; Mon, 17 May 2010 23:50:46 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HNokvb076129; Mon, 17 May 2010 23:50:46 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HNoksn076127; Mon, 17 May 2010 23:50:46 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <201005172350.o4HNoksn076127@svn.freebsd.org> From: Andrew Thompson Date: Mon, 17 May 2010 23:50:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208229 - stable/8/sys/dev/usb/net X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 23:50:47 -0000 Author: thompsa Date: Mon May 17 23:50:46 2010 New Revision: 208229 URL: http://svn.freebsd.org/changeset/base/208229 Log: MFC r208017 Fix possibly wrong bit masking. Modified: stable/8/sys/dev/usb/net/uhso.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/dev/usb/net/uhso.c ============================================================================== --- stable/8/sys/dev/usb/net/uhso.c Mon May 17 23:50:10 2010 (r208228) +++ stable/8/sys/dev/usb/net/uhso.c Mon May 17 23:50:46 2010 (r208229) @@ -1339,7 +1339,7 @@ uhso_ucom_cfg_set_dtr(struct ucom_softc if (onoff) sc->sc_line |= UCDC_LINE_DTR; else - sc->sc_line &= UCDC_LINE_DTR; + sc->sc_line &= ~UCDC_LINE_DTR; uhso_bs_cfg(sc); } @@ -1355,7 +1355,7 @@ uhso_ucom_cfg_set_rts(struct ucom_softc if (onoff) sc->sc_line |= UCDC_LINE_RTS; else - sc->sc_line &= UCDC_LINE_DTR; + sc->sc_line &= ~UCDC_LINE_RTS; uhso_bs_cfg(sc); } From owner-svn-src-all@FreeBSD.ORG Mon May 17 23:51:20 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CC1BD1065687; Mon, 17 May 2010 23:51:20 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BA2628FC12; Mon, 17 May 2010 23:51:20 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HNpKJm076315; Mon, 17 May 2010 23:51:20 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HNpKjD076313; Mon, 17 May 2010 23:51:20 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <201005172351.o4HNpKjD076313@svn.freebsd.org> From: Andrew Thompson Date: Mon, 17 May 2010 23:51:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208230 - stable/8/sys/dev/usb X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 23:51:21 -0000 Author: thompsa Date: Mon May 17 23:51:20 2010 New Revision: 208230 URL: http://svn.freebsd.org/changeset/base/208230 Log: MFC r208018 Reduce diffs to p4. Add test code for delaying or failing usb control requests, disabled by default under ifdef USB_REQ_DEBUG. Modified: stable/8/sys/dev/usb/usb_request.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/dev/usb/usb_request.c ============================================================================== --- stable/8/sys/dev/usb/usb_request.c Mon May 17 23:50:46 2010 (r208229) +++ stable/8/sys/dev/usb/usb_request.c Mon May 17 23:51:20 2010 (r208230) @@ -71,15 +71,122 @@ #ifdef USB_DEBUG static int usb_pr_poll_delay = USB_PORT_RESET_DELAY; static int usb_pr_recovery_delay = USB_PORT_RESET_RECOVERY; -static int usb_ss_delay = 0; SYSCTL_INT(_hw_usb, OID_AUTO, pr_poll_delay, CTLFLAG_RW, &usb_pr_poll_delay, 0, "USB port reset poll delay in ms"); SYSCTL_INT(_hw_usb, OID_AUTO, pr_recovery_delay, CTLFLAG_RW, &usb_pr_recovery_delay, 0, "USB port reset recovery delay in ms"); -SYSCTL_INT(_hw_usb, OID_AUTO, ss_delay, CTLFLAG_RW, - &usb_ss_delay, 0, "USB status stage delay in ms"); -#endif + +#ifdef USB_REQ_DEBUG +/* The following structures are used in connection to fault injection. */ +struct usb_ctrl_debug { + int bus_index; /* target bus */ + int dev_index; /* target address */ + int ds_fail; /* fail data stage */ + int ss_fail; /* fail data stage */ + int ds_delay; /* data stage delay in ms */ + int ss_delay; /* status stage delay in ms */ + int bmRequestType_value; + int bRequest_value; +}; + +struct usb_ctrl_debug_bits { + uint16_t ds_delay; + uint16_t ss_delay; + uint8_t ds_fail:1; + uint8_t ss_fail:1; + uint8_t enabled:1; +}; + +/* The default is to disable fault injection. */ + +static struct usb_ctrl_debug usb_ctrl_debug = { + .bus_index = -1, + .dev_index = -1, + .bmRequestType_value = -1, + .bRequest_value = -1, +}; + +SYSCTL_INT(_hw_usb, OID_AUTO, ctrl_bus_fail, CTLFLAG_RW, + &usb_ctrl_debug.bus_index, 0, "USB controller index to fail"); +SYSCTL_INT(_hw_usb, OID_AUTO, ctrl_dev_fail, CTLFLAG_RW, + &usb_ctrl_debug.dev_index, 0, "USB device address to fail"); +SYSCTL_INT(_hw_usb, OID_AUTO, ctrl_ds_fail, CTLFLAG_RW, + &usb_ctrl_debug.ds_fail, 0, "USB fail data stage"); +SYSCTL_INT(_hw_usb, OID_AUTO, ctrl_ss_fail, CTLFLAG_RW, + &usb_ctrl_debug.ss_fail, 0, "USB fail status stage"); +SYSCTL_INT(_hw_usb, OID_AUTO, ctrl_ds_delay, CTLFLAG_RW, + &usb_ctrl_debug.ds_delay, 0, "USB data stage delay in ms"); +SYSCTL_INT(_hw_usb, OID_AUTO, ctrl_ss_delay, CTLFLAG_RW, + &usb_ctrl_debug.ss_delay, 0, "USB status stage delay in ms"); +SYSCTL_INT(_hw_usb, OID_AUTO, ctrl_rt_fail, CTLFLAG_RW, + &usb_ctrl_debug.bmRequestType_value, 0, "USB bmRequestType to fail"); +SYSCTL_INT(_hw_usb, OID_AUTO, ctrl_rv_fail, CTLFLAG_RW, + &usb_ctrl_debug.bRequest_value, 0, "USB bRequest to fail"); + +/*------------------------------------------------------------------------* + * usbd_get_debug_bits + * + * This function is only useful in USB host mode. + *------------------------------------------------------------------------*/ +static void +usbd_get_debug_bits(struct usb_device *udev, struct usb_device_request *req, + struct usb_ctrl_debug_bits *dbg) +{ + int temp; + + memset(dbg, 0, sizeof(*dbg)); + + /* Compute data stage delay */ + + temp = usb_ctrl_debug.ds_delay; + if (temp < 0) + temp = 0; + else if (temp > (16*1024)) + temp = (16*1024); + + dbg->ds_delay = temp; + + /* Compute status stage delay */ + + temp = usb_ctrl_debug.ss_delay; + if (temp < 0) + temp = 0; + else if (temp > (16*1024)) + temp = (16*1024); + + dbg->ss_delay = temp; + + /* Check if this control request should be failed */ + + if (usbd_get_bus_index(udev) != usb_ctrl_debug.bus_index) + return; + + if (usbd_get_device_index(udev) != usb_ctrl_debug.dev_index) + return; + + temp = usb_ctrl_debug.bmRequestType_value; + + if ((temp != req->bmRequestType) && (temp >= 0) && (temp <= 255)) + return; + + temp = usb_ctrl_debug.bRequest_value; + + if ((temp != req->bRequest) && (temp >= 0) && (temp <= 255)) + return; + + temp = usb_ctrl_debug.ds_fail; + if (temp) + dbg->ds_fail = 1; + + temp = usb_ctrl_debug.ss_fail; + if (temp) + dbg->ss_fail = 1; + + dbg->enabled = 1; +} +#endif /* USB_REQ_DEBUG */ +#endif /* USB_DEBUG */ /*------------------------------------------------------------------------* * usbd_do_request_callback @@ -264,6 +371,9 @@ usbd_do_request_flags(struct usb_device struct usb_device_request *req, void *data, uint16_t flags, uint16_t *actlen, usb_timeout_t timeout) { +#ifdef USB_REQ_DEBUG + struct usb_ctrl_debug_bits dbg; +#endif usb_handle_req_t *hr_func; struct usb_xfer *xfer; const void *desc; @@ -273,6 +383,7 @@ usbd_do_request_flags(struct usb_device usb_ticks_t max_ticks; uint16_t length; uint16_t temp; + uint16_t acttemp; uint8_t enum_locked; if (timeout < 50) { @@ -327,7 +438,6 @@ usbd_do_request_flags(struct usb_device * Grab the default sx-lock so that serialisation * is achieved when multiple threads are involved: */ - sx_xlock(&udev->ctrl_sx); hr_func = usbd_get_hr_func(udev); @@ -391,6 +501,15 @@ usbd_do_request_flags(struct usb_device err = USB_ERR_NOMEM; goto done; } + +#ifdef USB_REQ_DEBUG + /* Get debug bits */ + usbd_get_debug_bits(udev, req, &dbg); + + /* Check for fault injection */ + if (dbg.enabled) + flags |= USB_DELAY_STATUS_STAGE; +#endif USB_XFER_LOCK(xfer); if (flags & USB_DELAY_STATUS_STAGE) @@ -412,13 +531,32 @@ usbd_do_request_flags(struct usb_device usbd_copy_in(xfer->frbuffers, 0, req, sizeof(*req)); usbd_xfer_set_frame_len(xfer, 0, sizeof(*req)); - xfer->nframes = 2; while (1) { temp = length; - if (temp > xfer->max_data_length) { + if (temp > usbd_xfer_max_len(xfer)) { temp = usbd_xfer_max_len(xfer); } +#ifdef USB_REQ_DEBUG + if (xfer->flags.manual_status) { + if (usbd_xfer_frame_len(xfer, 0) != 0) { + /* Execute data stage separately */ + temp = 0; + } else if (temp > 0) { + if (dbg.ds_fail) { + err = USB_ERR_INVAL; + break; + } + if (dbg.ds_delay > 0) { + usb_pause_mtx( + xfer->xroot->xfer_mtx, + USB_MS_TO_TICKS(dbg.ds_delay)); + /* make sure we don't time out */ + start_ticks = ticks; + } + } + } +#endif usbd_xfer_set_frame_len(xfer, 1, temp); if (temp > 0) { @@ -438,21 +576,21 @@ usbd_do_request_flags(struct usb_device usbd_copy_in(xfer->frbuffers + 1, 0, data, temp); } - xfer->nframes = 2; + usbd_xfer_set_frames(xfer, 2); } else { - if (xfer->frlengths[0] == 0) { + if (usbd_xfer_frame_len(xfer, 0) == 0) { if (xfer->flags.manual_status) { -#ifdef USB_DEBUG - int temp; - - temp = usb_ss_delay; - if (temp > 5000) { - temp = 5000; +#ifdef USB_REQ_DEBUG + if (dbg.ss_fail) { + err = USB_ERR_INVAL; + break; } - if (temp > 0) { + if (dbg.ss_delay > 0) { usb_pause_mtx( xfer->xroot->xfer_mtx, - USB_MS_TO_TICKS(temp)); + USB_MS_TO_TICKS(dbg.ss_delay)); + /* make sure we don't time out */ + start_ticks = ticks; } #endif xfer->flags.manual_status = 0; @@ -460,7 +598,7 @@ usbd_do_request_flags(struct usb_device break; } } - xfer->nframes = 1; + usbd_xfer_set_frames(xfer, 1); } usbd_transfer_start(xfer); @@ -475,18 +613,19 @@ usbd_do_request_flags(struct usb_device if (err) { break; } - /* subtract length of SETUP packet, if any */ - if (xfer->aframes > 0) { - xfer->actlen -= xfer->frlengths[0]; + /* get actual length of DATA stage */ + + if (xfer->aframes < 2) { + acttemp = 0; } else { - xfer->actlen = 0; + acttemp = usbd_xfer_frame_len(xfer, 1); } /* check for short packet */ - if (temp > xfer->actlen) { - temp = xfer->actlen; + if (temp > acttemp) { + temp = acttemp; length = temp; } if (temp > 0) { From owner-svn-src-all@FreeBSD.ORG Mon May 17 23:51:58 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E3CFF1065701; Mon, 17 May 2010 23:51:57 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D07488FC25; Mon, 17 May 2010 23:51:57 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HNpv93076493; Mon, 17 May 2010 23:51:57 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HNpvGB076489; Mon, 17 May 2010 23:51:57 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <201005172351.o4HNpvGB076489@svn.freebsd.org> From: Andrew Thompson Date: Mon, 17 May 2010 23:51:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208231 - in stable/8/sys: contrib/dev/run dev/usb/wlan X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 23:51:58 -0000 Author: thompsa Date: Mon May 17 23:51:57 2010 New Revision: 208231 URL: http://svn.freebsd.org/changeset/base/208231 Log: MFC r208019 Sync run(4) driver from author's site. Modified: stable/8/sys/contrib/dev/run/rt2870.fw.uu stable/8/sys/dev/usb/wlan/if_run.c stable/8/sys/dev/usb/wlan/if_runreg.h stable/8/sys/dev/usb/wlan/if_runvar.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/contrib/dev/run/rt2870.fw.uu ============================================================================== --- stable/8/sys/contrib/dev/run/rt2870.fw.uu Mon May 17 23:51:20 2010 (r208230) +++ stable/8/sys/contrib/dev/run/rt2870.fw.uu Mon May 17 23:51:57 2010 (r208231) @@ -1,112 +1,108 @@ -# Copyright (c) 2007, Ralink Technology Corporation +# Copyright (c) 2007, Ralink Technology Corporation # All rights reserved. # -# Redistribution. Redistribution and use in binary form, without -# modification, are permitted provided that the following conditions are +# Redistribution. Redistribution and use in binary form, without +# modification, are permitted provided that the following conditions are # met: -# -# * Redistributions must reproduce the above copyright notice and the -# following disclaimer in the documentation and/or other materials -# provided with the distribution. +# +# * Redistributions must reproduce the above copyright notice and the +# following disclaimer in the documentation and/or other materials +# provided with the distribution. # * Neither the name of Ralink Technology Corporation nor the names of its # suppliers may be used to endorse or promote products derived from this -# software without specific prior written permission. -# * No reverse engineering, decompilation, or disassembly of this software +# software without specific prior written permission. +# * No reverse engineering, decompilation, or disassembly of this software # is permitted. -# -# Limited patent license. Ralink Technology Corporation grants a world-wide, -# royalty-free, non-exclusive license under patents it now or hereafter -# owns or controls to make, have made, use, import, offer to sell and -# sell ("Utilize") this software, but solely to the extent that any -# such patent is necessary to Utilize the software alone, or in -# combination with an operating system licensed under an approved Open -# Source license as listed by the Open Source Initiative at -# http://opensource.org/licenses. The patent license shall not apply to -# any other combinations which include this software. No hardware per +# +# Limited patent license. Ralink Technology Corporation grants a world-wide, +# royalty-free, non-exclusive license under patents it now or hereafter +# owns or controls to make, have made, use, import, offer to sell and +# sell ("Utilize") this software, but solely to the extent that any +# such patent is necessary to Utilize the software alone, or in +# combination with an operating system licensed under an approved Open +# Source license as listed by the Open Source Initiative at +# http://opensource.org/licenses. The patent license shall not apply to +# any other combinations which include this software. No hardware per # se is licensed hereunder. -# -# DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND -# CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, -# BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND -# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS -# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR -# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE -# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +# +# DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND +# CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, +# BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND +# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR +# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE +# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH # DAMAGE. -begin 644 rt2870.fw -M____`A`H`A`R`A!X`A)G`A)H`A*'`A*,$A*((@(620(7'P(3=P(2C3`%!B`- -M`Q(7P2*0`8S@,.,;Y4PPX`1_0(`"?P"0$"_O\)`!C'0(\.20`:?PD`&,X##@ -M')`!@."T`A6CX+0!$)`!A."T@0F0`8QT`?`2#<@BD`04X"#G`P(29I!P$N#U -M5I`$!.`2"IT0MS$0X%`1!%$1#5(1#5,1#5013E41?G`1J7$1UW(2'7,2/H`` -M`!)F(`(#,`,=?0*O5A(+D9`$%'2`\.20`D7?57D'`0X/]T1R57^,;OQI!P$>#_=$@E5_C&[\;D_:]6$@N1D`04 -M=(#PY)!P$_#E5O1P`P(29@(27^5'9`=@"^5'9`A@!>5'M`D(D'`1X%0/]3KE -M1[0)".4ZM`,#Y/5&Y/VO5A(+D=($(I!P$.#^D'`1X/WM^.;U5_VO5A(+D9`$ -M%'2`\.20#][?6"CH/@]5?]KU82"Y&0 -M!!1T@/#DD'`3\.56]'`#`A)F`A)?D!`"X+1P'J/@M#`9D`4(X$0!\/V0!07@ -M5/OP1`3P[53^D`4(\.3U3O5/=3K_K5>O5A(+D9`$%'2`\.20!$`?`B(N53Y4=D!F`#`A-$@!OE2,14#_5#Y4K$5`_U -M0N5,Q%0/]5[E1V0&<&930P^`885)0X5+0H5-7N5'9`9P4H`;Y4G$5`_U0^5+ -MQ%0/]4+E3<14#_5>Y4=D!G`UY4-4#T00]4.`*^5'M`0&4U[[=4()Y4>T!09# -M7@1U0@GE1[0&$.5#5`]$,/5#@`;22X`"TDSD]27E0L14\/_E0U0/3_5?D'!$ -M\*/E7O"CY4KPH^5(\*/E3/"CY43PH^5"\*/E0_#28"+E1V`0),!P`Q(6*1(3 -MC,*OP@32KR+"KY`$%.!4#F`$TAB`".5.14\D_Y(8TJ^0!!3@HN22&70>\.5? -M5`_U+>4E5?5##_OS`1Y25P!74E#(`"%272;-)M@`_E -M7S#F!L)LTFV`!-)LPFWE1V0#<"$P2P;";-)M@!CE)7`#,$P1PDSE)7`%=24' -M@`(5)=)LTFWE1[0)%.5$(.,+Y3ID`F`%Y3JT`P3";-)MD'!&Y2WP(&D'Y5X@ -MX`*R:"!K!^5>(.$"LFH@;0?E7B#B`K)LD'!'Y2WP=2Y`(&D$HFB`)C!H!N5& -MHN*`'>5>(.($?P&``G\`Y494\/Z^\`1^`8`"?@#N;R3_DG.2!4_O#E0\14#Q1@%"3^8",D`V`#`A88D`(HX#!'#X`'D`(HX"!' -M!E3^\`(6&$0!\`(6&.5&,.($?P&``G\`D`(HX%3^3_`"%ACE1V0'8`_E1V0( -M8`GE1V0)8`,"%ACD]2>0`BG@5/SPY3H48"T48"X48#8D_&!?)/E@'R0.<&GE -M1A,35#]U\`.$K_`@1P1^`8`"?@#O;B3_@$6B1X!!Y48PX@/3@"?#@"3E1C#B -M#50XPY0P4`9^`'\!@`1^`'\`($<$?0&``GT`[VU.)/^2.*)'LY(Y@!GE1C#B -M`].``<.2.:)'LY(X@`>B1[.2.)(YD`(HX%3\12?PD'"4Z -M\"+DD`(I\#!'!*]%@`3E1?3_D`(H[_`BCU#262*/5-)8(N3U8L*OY5$48$84 -M8&(D`F`#`A<#TEEU50&0`J+@5'_PH^`@YR*0!#3@M`(;H^"T`A:CX+0"$7\@ -M$A8_D!`$X%3S\'51`8!SY5!P!75B`X!JD!(`X%0#50<`*`1I`"H^`@YCN0!#?@9")P,Y`!BG1^\)`!EO"0$@1T"O"0$RC@ -M5/#PH^!4\/"CX%3Z\)`$`>!4^?!U8@%U50+D]5&`">50<`5U8@/U4>5B8!7" -M`>3U4<)9K6*O0!(7C>5BM`,"T@/2KR+"KS`!$N20`9;P]5'"6<(!?0*O0!(7 -MC>52%&`)!'!,=5(!=54#D`0!X$0.\)`3*.!$#_"CX$0/\*/@1`7PD!($=`/P -MD`*BX$3`\)`0!.!$#/#D]5+U53`""\("?0&O01(7C8`"P@/DD`&6\-*O(N_T -M8"WD_G04+O6"Y#1P]8/@M/\9=!0N]8+D-'#U@^_P=!PN]8+D-'#U@^WP(@Z^ -M!-4B(B*0<"K@,.%-PJ^0<"C@D!`<\)!P*>"0$!WPD'`JX)`0'O"0$!S@]6*0 -M$![@(.'SD!`"T"`9U3@%U3X20`D_Y)'(I`$!.`EX"1=]5>0T#`B0#T_Y!P$.!?_Y!P$>!5)T^0#_D'`9X/[O7I`"*?`P1P2O)X`$ +MY2?T_Y`"*._PY5;T<`,"$RD"$R*0#][?CF]5?]KU82"Y&0!!1T +M@/#DD'`3\.56]'`#`A,I`A,BD'`0X/Z0WU@HZ#X/57_:]6$@N1D`04 +M=(#PY)!P$_#E5O1P`P(3*0(3(I`0`.#U5Y`0`N#U6*/@]5GE6+1P'N59M#`9 +MD`4(X$0!\/V0!07@5/OP1`3P[53^D`4(\.3U3O5/=3K_=3S_K5>O5A(+D9`$ +M%'2`\.20!$`?`B +M(N53!5 +M)_^0D`(I\#!'!*\G@`3E)_3_D`(H[_#"%"+" +M2\),Y402"IT3I0`4,P04+P@4#Q`3N2`3V6`3ZJ```!0UA4A#A4I"A4Q>Y4=D +M!F`#`A0U@!OE2,14#_5#Y4K$5`_U0N5,Q%0/]5[E1V0&<&%30P^`7(5)0X5+ +M0H5-7N5'9`9P38`;Y4G$5`_U0^5+Q%0/]4+E3<14#_5>Y4=D!G`PY4-4#T00 +M]4.`)N5'9`1@!>5'M`4&0UX$=4()Y4>T!A#E0U0/1##U0X`&TDN``M),Y/4E +MY4+$5/#_Y4-4#T_U7])@(M(5Y4\.5?5`_U +M+>4E5?5##_OS`1Y25P!74E#(`"%272;-)M@`_E7S#F +M!L)LTFV`!-)LPFWE1V0#<"$P2P;";-)M@!CE)7`#,$P1PDSE)7`%=24'@`(5 +M)=)LTFWE1[0)%.5$(.,+Y3ID`F`%Y3JT`P3";-)MY4>T"A/E.K0!!L)LTFV` +M".4Z<`32;,)M(&D'Y5X@X`*R:"!K!^5>(.$"LFH@;0?E7B#B`K)L=2Y`(&D$ +MHFB`)C!H!N5&HN*`'>5>(.($?P&``G\`Y494\/Z^\`1^`8`"?@#N;R3_DG.2 +M5>(.$$?P&``G\`Y494\/Z^\`1^`8`"?@#N;R3_ +MDG&2<)`0`."0$"SPD!`#X,.4,$`4HG&2=Z)PDG;E+A,35#_U+L)WTG:0$"_E +M+O#E1V0&<#F0`BG@5/[PY4/$5`\48`PD_F`,)`-P$\(X@`_2.(`+Y48PX@/3 +M@`'#DC@P1P6O)P(7?N4G]/\"%W[E1V0'8`_E1V0(8`GE1V0)8`,"%OV0`BG@ +M5/SPY3H48"(48"448"TD_&!))/E@%"0.<%#E1A,35#]U\`.$Y?`D_X`ZTCG" +M.(`^Y48PX@/3@!W#@!KE1C#B#50XPY0P4`9^`'\!@`1^`'\`[D\D_Y(XPCF` +M$^5&,.(#TX`!PY(YPCB`!,(XPCDP1P2O)X`$Y2?T_P(7?N5'9`Q@!N5'9`MP +M>I`"*>!4_?#E.A1@(!1@(11@*R3\8$4D^6`2)`YP2N5&$Q-4/W7P`X3E\(`I +MTCF`.N5&,.(#TX`!PY(Y@"WE1C#B#50XPY0P4`9^`'\!@`1^`'\`[D\D_Y(Y +M@`_E1C#B`].``<.2.8`"PCDP1P2O)X`$Y2?T_Y`"*._P(N5'M`L0D`(IX%3K +M\.4G5.M%1?4G(N20`BGP,$<$KT6`!.5%]/^0`BCO\"*/4-)9(H]4TE@BY/5B +MPJ_E411@2!1@9B0"8`,"&-326755`9`"HN!4?_"CX"#G(Y`$-."T`ARCX+0" +M%Z/@M`(2?R`2%Z^0$`3@5//P=5$!`AC4Y5!P!G5B`P(8U)`2`.!4`W`2?R`2 +M%Z^0`J+@5+_P=5$"`AC4Y5!P`P(8SY`"H^`PY@,"&,N0!#?@9")@`P(8RY`! +MBG1^\)`!EO"0$@1T"O#E6+1R%>59M#40Y)`%`/"C=`CPHW0!\'0#\'\!$@TJ +MD!,HX)!P&O"0$RG@D'`;\)`3*.!4\/"CX%3P\.59M#44Y3ST8`:CX%3S@!20 +M$RK@5/OP@!3E//20$RI@".!4\D4\\(`$X%3Z\)`$`>!4_?!U8@%U50+D]5&` +M">50<`5U8@/U4>5B8!7"`>3U4<)9K6*O0!(9E.5BM`,"T@/2KR+"KS`!$N20 +M`9;P]5'"6<(!?0*O0!(9E.52%&`,!&`#`AF1=5(!=54#D`0!X$0.\)!P&N"0 +M$RCPD'`;X)`3*?#E//1@".4\1`&C\(`&D!,J=`7PD!($=`/PY5BT"0$!WPD'`JX)`0'O"0$!S@]6*0$![@(.'SD!``(29P(2:`(2AP(2C!(2B"("%DD"%Q\"$W<"$HTP!08@ -M#0,2%\$BD`&,X##C&^5,,.`$?T"``G\`D!`O[_"0`8QT"/#DD`&G\)`!C.`P -MX!R0`8#@M`(5H^"T`1"0`83@M($)D`&,=`'P$@W=(I`$%.`@YP,"$F:0!D"&`(X&0@8`,"$F9U3@-U3R`BD'`1X"3_DD!4#_4Z -MY4>T"0CE.K0#`^3U1N3]KU82"ZK2!"*0#][?CF]5?]KU82"ZJ0 -M!!1T@/#DD'`3\.56]'`#`A)F`A)?D'`0X/Z0WU@HZ#X/57_:]6$@NJ -MD`04=(#PY)!P$_#E5O1P`P(29@(27Y`0`N"TO5A(+JI`$%'2`\.200<"7@1`'P(B+E4W`:,&`)LDTP300% -M1L($Y4]%3F`(Y4\53W`"%4XB(L)"TR(BPDO"3.5$$@JV$J\`$T($$SX($QD0 -M$L,@$N-@$O2@```31(5(0X5*0H5,7N5'9`9@`P(31(`;Y4C$5`_U0^5*Q%0/ -M]4+E3,14#_5>Y4=D!G!F4T,/@&&%24.%2T*%35[E1V0&<%*`&^5)Q%0/]4/E -M2\14#_5"Y4W$5`_U7N5'9`9P->5#5`]$$/5#@"OE1[0$!E->^W5"">5'M`4& -M0UX$=4()Y4>T!A#E0U0/1##U0X`&TDN``M),Y/4EY4+$5/#_Y4-4#T_U7Y!P -M1/"CY5[PH^5*\*/E2/"CY4SPH^5$\*/E0O"CY4/PTF`BY4=@$"3`<`,2%BD2 -M$XS"K\($TJ\BPJ^0!!3@5`Y@!-(8@`CE3D5/)/^2&-*OD`04X*+DDAET'O#E -M7U0/]2WE)7`3,!@%Y5\@Y0LP&1GE7U0P_[\P$>4E<`5U)0R``A4ETFS2;8`/ -MY5\PY@;";-)M@`32;,)MY4=D`W`A,$L&PFS2;8`8Y25P`S!,$<),Y25P!74E -M!X`"%272;-)MY4>T"13E1"#C"^4Z9`)@!>4ZM`,$PFS2;9!P1N4M\"!I!^5> -M(.`"LF@@:P?E7B#A`K)J(&T'Y5X@X@*R;)!P1^4M\'4N0"!I!*)H@"8P:`;E -M1J+B@!WE7B#B!'\!@`)_`.5&5/#^OO`$?@&``GX`[F\D_Y)SDG(@:P2B:H`F -M,&H&Y4:BXH`=Y5X@X`1_`8`"?P#E1E3P_K[P!'X!@`)^`.YO)/^2=9)T(&T$ -MHFR`)C!L!N5&HN*`'>5>(.$$?P&``G\`Y494\/Z^\`1^`8`"?@#N;R3_DG&2 -M<)`0`."0$"_PD!`#X,.4,$`4HG&2=Z)PDG;E+A,35#_U+L)WTG:0$"_E+O#E -M1V0&<$R0`BG@5/[PY4/$5`\48!0D_F`C)`-@`P(6&)`"*.`P1P^`!Y`"*.`@ -M1P94_O`"%AA$`?`"%ACE1C#B!'\!@`)_`)`"*.!4_D_P`A88Y4=D!V`/Y4=D -M"&`)Y4=D"6`#`A88Y/4GD`(IX%3\\.4Z%&`M%&`N%&`V)/Q@7R3Y8!\D#G!I -MY483$U0_=?`#A*_P($<$?@&``GX`[VXD_X!%HD>`0>5&,.(#TX`GPX`DY48P -MX@U4.,.4,%`&?@!_`8`$?@!_`"!'!'T!@`)]`.]M3B3_DCBB1[.2.8`9Y48P -MX@/3@`'#DCFB1[.2.(`'HD>SDCB2.9`"*.!4_$4G\)!PG.4Z\*/E1_"0<$'E -M.O`BY)`"*?`P1P2O18`$Y47T_Y`"*._P(H]0TEDBCU326"+D]6+"K^51%&!& -M%&!B)`)@`P(7`])9=54!D`*BX%1_\*/@(.!$#O"0$RC@1`_PH^!$#_"CX$0%\)`2!'0# -M\)`"HN!$P/"0$`3@1`SPY/52]54P`@O"`GT!KT$2%XV``L(#Y)`!EO#2KR+O -M]&`MY/YT%"[U@N0TX"#A\Y`0'."0<"CPD!`=X)!P*?"0$![@D'`J\#!*!Y!P).!$`?#"!=*O -M(B(B```````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` @@ -187,6 +135,65 @@ M``````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` +M`````````````````````````````````````````````````````````!'" +M>O___P(0*`(0,@(0>`(3*@(3*P(32@(33Q(32R("%[D"&/`"%$@"$X,P!08@ +M#0,2&<@BD`&,X##C&^5,,.`$?T"``G\`D!`O[_"0`8QT"/#DD`&G\)`!C.`P +MX!R0`8#@M`(5H^"T`1"0`83@M($)D`&,=`'P$@W=(I`$%.`@YP,"$RF0#U/.20!D"&`$X+0@!G5.`W5/(.3U)R*0 +M`D7?57D'`0X/]T1R57^,;OQI!P$>#_=$@E5_C&[\;D +M_:]6$@NJD`04=(#PY)!P$_#E5O1P`P(3*0(3(N5'9`=@'>5'9`A@%^5'9`E@ +M$>5'9`I@"^5'9`M@!>5'M`P(D'`1X%0/]3KE1[0)".4ZM`,#Y/5&Y4>T"@CE +M.K0!`^3U1N3]KU82"ZK2!"*0"0 +M0`BG@_Y!P&>#^[UZ0`BGP,$<$KR>` +M!.4G]/^0`BCO\.56]'`#`A,I`A,BD'`0X/Z0WXYO57_:]6$@NJD`04 +M=(#PY)!P$_#E5O1P`P(3*0(3(I!P$.#^D'`1X/WM]8*.@^#U5_VO5A(+JI`$ +M%'2`\.200$`+@]5BCX/59Y5BTO5A(+JI`$%'2`\.200<"7@1`'P +M(B+E4W`:,&`)LDTP300%1L($Y4]%3F`(Y4\53W`"%4XB(L)"TR(P%#"0#_D'`9X/[O7I`"*?`P1P2O)X`$Y2?T_Y`"*._PPA0B +MPDO"3.5$$@JV$Z4`%#,$%"\(%`\0$[D@$]E@$^J@```4-85(0X5*0H5,7N5' +M9`9@`P(4-8`;Y4C$5`_U0^5*Q%0/]4+E3,14#_5>Y4=D!G!A4T,/@%R%24.% +M2T*%35[E1V0&<$V`&^5)Q%0/]4/E2\14#_5"Y4W$5`_U7N5'9`9P,.5#5`]$ +M$/5#@";E1V0$8`7E1[0%!D->!'5"">5'M`80Y4-4#T0P]4.`!M)+@`+23.3U +M)>5"Q%3P_^5#5`]/]5_28"+2%>5')/5@"R3+8`$$A1JPA7" +MK\($TJ\BPJ^0!!3@5`Y@!-(8@`CE3D5/)/^2&-*OD`04X*+DDAET'O#E7U0/ +M]2WE)7`3,!@%Y5\@Y0LP&1GE7U0P_[\P$>4E<`5U)0R``A4ETFS2;8`/Y5\P +MY@;";-)M@`32;,)MY4=D`W`A,$L&PFS2;8`8Y25P`S!,$<),Y25P!74E!X`" +M%272;-)MY4>T"13E1"#C"^4Z9`)@!>4ZM`,$PFS2;>5'M`H3Y3JT`0;";-)M +M@`CE.G`$TFS";2!I!^5>(.`"LF@@:P?E7B#A`K)J(&T'Y5X@X@*R;'4N0"!I +M!*)H@"8P:`;E1J+B@!WE7B#B!'\!@`)_`.5&5/#^OO`$?@&``GX`[F\D_Y)S +MDG(@:P2B:H`F,&H&Y4:BXH`=Y5X@X`1_`8`"?P#E1E3P_K[P!'X!@`)^`.YO +M)/^2=9)T(&T$HFR`)N5'9`IP(C!L!N5&HN.`%^4ZM`$&Y4:BXX`TY48@Y`,P +MY0/3@`'#@"8P;`;E1J+B@!WE7B#A!'\!@`)_`.5&5/#^OO`$?@&``GX`[F\D +M_Y)QDG"0$`#@D!`L\)`0`^##E#!`%*)QDG>B<))VY2X3$U0_]2["=])VD!`O +MY2[PY4=D!G`YD`(IX%3^\.5#Q%0/%&`,)/Y@#"0#`!.4G]/\"%W[E1V0,8`;E1V0+ +M<'J0`BG@5/WPY3H48"`48"$48"LD_&!%)/E@$B0.<$KE1A,35#]U\`.$Y?"` +M*=(Y@#KE1C#B`].``<.2.8`MY48PX@U4.,.4,%`&?@!_`8`$?@!_`.Y/)/^2 +M.8`/Y48PX@/3@`'#DCF``L(Y,$<$KR>`!.4G]/^0`BCO\"+E1[0+$)`"*>!4 +MZ_#E)U3K147U)R+DD`(I\#!'!*]%@`3E1?3_D`(H[_`BCU#262*/5-)8(N3U +M8L*OY5$48$@48&8D`F`#`AC4TEEU50&0`J+@5'_PH^`@YR.0!#3@M`(CX+0"$G\@$A>OD!`$X%3S\'51`0(8U.50<`9U8@,"&-20$@#@5`-P$G\@ +M$A>OD`*BX%2_\'51`@(8U.50<`,"&,^0`J/@,.8#`AC+D`0WX&0B8`,"&,N0 +M`8IT?O"0`9;PD!($=`KPY5BT!$#O"0X"#A\Y`0'."0<"CPD!`=X)!P +M*?"0$![@D'`J\#!*!Y!P).!$`?#"!=*O(B(B```````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` @@ -219,7 +226,7 @@ M``````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` -M```````````````````````````````````````````````````````````" -"F\`` +M```````````````````````````````````````````````````````````1 +"=X$` ` end Modified: stable/8/sys/dev/usb/wlan/if_run.c ============================================================================== --- stable/8/sys/dev/usb/wlan/if_run.c Mon May 17 23:51:20 2010 (r208230) +++ stable/8/sys/dev/usb/wlan/if_run.c Mon May 17 23:51:57 2010 (r208231) @@ -1,5 +1,3 @@ -/* $FreeBSD$ */ - /*- * Copyright (c) 2008,2010 Damien Bergamini * ported to FreeBSD by Akinori Furukoshi @@ -39,7 +37,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include #include @@ -74,7 +71,7 @@ __FBSDID("$FreeBSD$"); #define USB_DEBUG_VAR run_debug #include -#include "if_runreg.h" /* shared with ral(4) */ +#include "if_runreg.h" #include "if_runvar.h" #define nitems(_a) (sizeof((_a)) / sizeof((_a)[0])) @@ -93,6 +90,12 @@ SYSCTL_INT(_hw_usb_run, OID_AUTO, debug, #define IEEE80211_HAS_ADDR4(wh) \ (((wh)->i_fc[1] & IEEE80211_FC1_DIR_MASK) == IEEE80211_FC1_DIR_DSTODS) +/* + * Because of LOR in run_key_delete(), use atomic instead. + * '& RUN_CMDQ_MASQ' is to loop cmdq[]. + */ +#define RUN_CMDQ_GET(c) (atomic_fetchadd_32((c), 1) & RUN_CMDQ_MASQ) + static const struct usb_device_id run_devs[] = { { USB_VP(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_RT2770) }, { USB_VP(USB_VENDOR_ABOCOM, USB_PRODUCT_ABOCOM_RT2870) }, @@ -312,6 +315,7 @@ static struct ieee80211vap *run_vap_crea const uint8_t bssid[IEEE80211_ADDR_LEN], const uint8_t mac[IEEE80211_ADDR_LEN]); static void run_vap_delete(struct ieee80211vap *); +static void run_cmdq_cb(void *, int); static void run_setup_tx_list(struct run_softc *, struct run_endpoint_queue *); static void run_unsetup_tx_list(struct run_softc *, @@ -342,23 +346,24 @@ static struct ieee80211_node *run_node_a static int run_media_change(struct ifnet *); static int run_newstate(struct ieee80211vap *, enum ieee80211_state, int); static int run_wme_update(struct ieee80211com *); -static void run_wme_update_cb(void *, int); +static void run_wme_update_cb(void *); static void run_key_update_begin(struct ieee80211vap *); static void run_key_update_end(struct ieee80211vap *); -static int run_key_set(struct ieee80211vap *, const struct ieee80211_key *, +static void run_key_set_cb(void *); +static int run_key_set(struct ieee80211vap *, struct ieee80211_key *, const uint8_t mac[IEEE80211_ADDR_LEN]); -static int run_key_delete(struct ieee80211vap *, - const struct ieee80211_key *); -static void run_ratectl_start(struct run_softc *, struct ieee80211_node *); +static void run_key_delete_cb(void *); +static int run_key_delete(struct ieee80211vap *, struct ieee80211_key *); static void run_ratectl_to(void *); static void run_ratectl_cb(void *, int); +static void run_drain_fifo(void *); static void run_iter_func(void *, struct ieee80211_node *); +static void run_newassoc_cb(void *); static void run_newassoc(struct ieee80211_node *, int); static void run_rx_frame(struct run_softc *, struct mbuf *, uint32_t); static void run_tx_free(struct run_endpoint_queue *pq, struct run_tx_data *, int); -static void run_set_tx_desc(struct run_softc *, struct run_tx_data *, - uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t); +static void run_set_tx_desc(struct run_softc *, struct run_tx_data *); static int run_tx(struct run_softc *, struct mbuf *, struct ieee80211_node *); static int run_tx_mgt(struct run_softc *, struct mbuf *, @@ -382,11 +387,10 @@ static int run_set_chan(struct run_softc static void run_set_channel(struct ieee80211com *); static void run_scan_start(struct ieee80211com *); static void run_scan_end(struct ieee80211com *); -static uint8_t run_rate2mcs(uint8_t); static void run_update_beacon(struct ieee80211vap *, int); -static void run_update_beacon_locked(struct ieee80211vap *, int); +static void run_update_beacon_cb(void *); static void run_updateprot(struct ieee80211com *); -static void run_usb_timeout_cb(void *, int); +static void run_usb_timeout_cb(void *); static void run_reset_livelock(struct run_softc *); static void run_enable_tsf_sync(struct run_softc *); static void run_enable_mrr(struct run_softc *); @@ -396,6 +400,7 @@ static void run_set_leds(struct run_soft static void run_set_bssid(struct run_softc *, const uint8_t *); static void run_set_macaddr(struct run_softc *, const uint8_t *); static void run_updateslot(struct ifnet *); +static void run_update_mcast(struct ifnet *); static int8_t run_rssi2dbm(struct run_softc *, uint8_t, uint8_t); static void run_update_promisc_locked(struct ifnet *); static void run_update_promisc(struct ifnet *); @@ -411,7 +416,7 @@ static void run_stop(void *); static void run_delay(struct run_softc *, unsigned int); static const struct { - uint32_t reg; + uint16_t reg; uint32_t val; } rt2870_def_mac[] = { RT2870_DEF_MAC @@ -551,6 +556,7 @@ run_attach(device_t self) MTX_NETWORK_LOCK, MTX_DEF); iface_index = RT2860_IFACE_INDEX; + error = usbd_transfer_setup(uaa->device, &iface_index, sc->sc_xfer, run_config, RUN_N_XFER, sc, &sc->sc_mtx); if (error) { @@ -616,15 +622,15 @@ run_attach(device_t self) ic->ic_ifp = ifp; ic->ic_phytype = IEEE80211_T_OFDM; /* not only, but not used */ ic->ic_opmode = IEEE80211_M_STA; /* default to BSS mode */ -#if 0 - ic->ic_state = IEEE80211_S_INIT; -#endif + /* set device capabilities */ ic->ic_caps = IEEE80211_C_STA | /* station mode supported */ IEEE80211_C_MONITOR | /* monitor mode supported */ IEEE80211_C_IBSS | IEEE80211_C_HOSTAP | + IEEE80211_C_WDS | /* 4-address traffic works */ + IEEE80211_C_MBSS | IEEE80211_C_SHPREAMBLE | /* short preamble supported */ IEEE80211_C_SHSLOT | /* short slot time supported */ IEEE80211_C_WME | /* WME */ @@ -671,6 +677,7 @@ run_attach(device_t self) ic->ic_node_alloc = run_node_alloc; ic->ic_newassoc = run_newassoc; //ic->ic_updateslot = run_updateslot; + ic->ic_update_mcast = run_update_mcast; ic->ic_wme.wme_update = run_wme_update; ic->ic_raw_xmit = run_raw_xmit; ic->ic_update_promisc = run_update_promisc; @@ -684,6 +691,10 @@ run_attach(device_t self) &sc->sc_rxtap.wr_ihdr, sizeof(sc->sc_rxtap), RUN_RX_RADIOTAP_PRESENT); + TASK_INIT(&sc->cmdq_task, 0, run_cmdq_cb, sc); + TASK_INIT(&sc->ratectl_task, 0, run_ratectl_cb, sc); + callout_init((struct callout *)&sc->ratectl_ch, 1); + if (bootverbose) ieee80211_announce(ic); @@ -713,6 +724,10 @@ run_detach(device_t self) if (ifp) { ic = ifp->if_l2com; + /* drain tasks */ + usb_callout_drain(&sc->ratectl_ch); + ieee80211_draintask(ic, &sc->cmdq_task); + ieee80211_draintask(ic, &sc->ratectl_task); ieee80211_ifdetach(ic); if_free(ifp); } @@ -728,41 +743,92 @@ run_vap_create(struct ieee80211com *ic, const uint8_t bssid[IEEE80211_ADDR_LEN], const uint8_t mac[IEEE80211_ADDR_LEN]) { - struct run_softc *sc = ic->ic_ifp->if_softc; + struct ifnet *ifp = ic->ic_ifp; + struct run_softc *sc = ifp->if_softc; struct run_vap *rvp; struct ieee80211vap *vap; + int i; - if (!TAILQ_EMPTY(&ic->ic_vaps)) /* only one at a time */ + if(sc->rvp_cnt >= RUN_VAP_MAX){ + if_printf(ifp, "number of VAPs maxed out\n"); return NULL; - sc->sc_rvp = rvp = (struct run_vap *) malloc(sizeof(struct run_vap), + } + + switch (opmode) { + case IEEE80211_M_STA: + /* enable s/w bmiss handling for sta mode */ + flags |= IEEE80211_CLONE_NOBEACONS; + /* fall though */ + case IEEE80211_M_IBSS: + case IEEE80211_M_MONITOR: + case IEEE80211_M_HOSTAP: + case IEEE80211_M_MBSS: + /* other than WDS vaps, only one at a time */ + if (!TAILQ_EMPTY(&ic->ic_vaps)) + return NULL; + break; + case IEEE80211_M_WDS: + TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next){ + if(vap->iv_opmode != IEEE80211_M_HOSTAP) + continue; + /* WDS vap's always share the local mac address. */ + flags &= ~IEEE80211_CLONE_BSSID; + break; + } + if(vap == NULL){ + if_printf(ifp, "wds only supported in ap mode\n"); + return NULL; + } + break; + default: + if_printf(ifp, "unknown opmode %d\n", opmode); + return NULL; + } + + rvp = (struct run_vap *) malloc(sizeof(struct run_vap), M_80211_VAP, M_NOWAIT | M_ZERO); if (rvp == NULL) return NULL; vap = &rvp->vap; - /* enable s/w bmiss handling for sta mode */ - ieee80211_vap_setup(ic, vap, name, unit, opmode, - flags | IEEE80211_CLONE_NOBEACONS, bssid, mac); + ieee80211_vap_setup(ic, vap, name, unit, opmode, flags, bssid, mac); vap->iv_key_update_begin = run_key_update_begin; vap->iv_key_update_end = run_key_update_end; - vap->iv_key_delete = run_key_delete; - vap->iv_key_set = run_key_set; vap->iv_update_beacon = run_update_beacon; + vap->iv_max_aid = RT2870_WCID_MAX; + /* + * To delete the right key from h/w, we need wcid. + * Luckily, there is unused space in ieee80211_key{}, wk_pad, + * and matching wcid will be written into there. So, cast + * some spells to remove 'const' from ieee80211_key{} + */ + vap->iv_key_delete = (void *)run_key_delete; + vap->iv_key_set = (void *)run_key_set; /* override state transition machine */ rvp->newstate = vap->iv_newstate; vap->iv_newstate = run_newstate; - TASK_INIT(&rvp->ratectl_task, 0, run_ratectl_cb, rvp); - TASK_INIT(&sc->wme_task, 0, run_wme_update_cb, ic); - TASK_INIT(&sc->usb_timeout_task, 0, run_usb_timeout_cb, sc); - callout_init((struct callout *)&rvp->ratectl_ch, 1); ieee80211_ratectl_init(vap); ieee80211_ratectl_setinterval(vap, 1000 /* 1 sec */); /* complete setup */ ieee80211_vap_attach(vap, run_media_change, ieee80211_media_status); - ic->ic_opmode = opmode; + + /* make sure id is always unique */ + for(i = 0; i < RUN_VAP_MAX; i++){ + if((sc->rvp_bmap & 1 << i) == 0){ + sc->rvp_bmap |= 1 << i; + rvp->rvp_id = i; + break; + } + } + if(sc->rvp_cnt++ == 0) + ic->ic_opmode = opmode; + + DPRINTF("rvp_id=%d bmap=%x rvp_cnt=%d\n", + rvp->rvp_id, sc->rvp_bmap, sc->rvp_cnt); + return vap; } @@ -773,6 +839,7 @@ run_vap_delete(struct ieee80211vap *vap) struct ifnet *ifp; struct ieee80211com *ic; struct run_softc *sc; + uint8_t rvp_id; if(vap == NULL) return; @@ -783,19 +850,59 @@ run_vap_delete(struct ieee80211vap *vap) sc = ifp->if_softc; RUN_LOCK(sc); - sc->sc_rvp->ratectl_run = RUN_RATECTL_OFF; - RUN_UNLOCK(sc); - /* drain them all */ - usb_callout_drain(&sc->sc_rvp->ratectl_ch); - ieee80211_draintask(ic, &sc->sc_rvp->ratectl_task); - ieee80211_draintask(ic, &sc->wme_task); - ieee80211_draintask(ic, &sc->usb_timeout_task); + rvp_id = rvp->rvp_id; + sc->ratectl_run &= ~(1 << rvp_id); + sc->rvp_bmap &= ~(1 << rvp_id); + run_set_region_4(sc, RT2860_SKEY(rvp_id, 0), 0, 128); + run_set_region_4(sc, RT2860_BCN_BASE(rvp_id), 0, 512); + --sc->rvp_cnt; + + DPRINTF("vap=%p rvp_id=%d bmap=%x rvp_cnt=%d\n", + vap, rvp_id, sc->rvp_bmap, sc->rvp_cnt); + + RUN_UNLOCK(sc); ieee80211_ratectl_deinit(vap); ieee80211_vap_detach(vap); free(rvp, M_80211_VAP); - sc->sc_rvp = NULL; +} + +/* + * There are numbers of functions need to be called in context thread. + * Rather than creating taskqueue event for each of those functions, + * here is all-for-one taskqueue callback function. This function + * gurantees deferred functions are executed in the same order they + * were enqueued. + * '& RUN_CMDQ_MASQ' is to loop cmdq[]. + */ +static void +run_cmdq_cb(void *arg, int pending) +{ + struct run_softc *sc = arg; + uint8_t i; + + /* call cmdq[].func locked */ + RUN_LOCK(sc); + for(i = sc->cmdq_exec; sc->cmdq[i].func && pending; + i = sc->cmdq_exec, pending--){ + DPRINTFN(6, "cmdq_exec=%d pending=%d\n", i, pending); + if(sc->cmdq_run == RUN_CMDQ_GO){ + /* + * If arg0 is NULL, callback func needs more + * than one arg. So, pass ptr to cmdq struct. + */ + if(sc->cmdq[i].arg0) + sc->cmdq[i].func(sc->cmdq[i].arg0); + else + sc->cmdq[i].func(&sc->cmdq[i]); + } + sc->cmdq[i].arg0 = NULL; + sc->cmdq[i].func = NULL; + sc->cmdq_exec++; + sc->cmdq_exec &= RUN_CMDQ_MASQ; + } + RUN_UNLOCK(sc); } static void @@ -1415,6 +1522,7 @@ run_read_eeprom(struct run_softc *sc) DPRINTF("EEPROM RF rev=0x%02x chains=%dT%dR\n", sc->rf_rev, sc->ntxchains, sc->nrxchains); + /* check if RF supports automatic Tx access gain control */ run_srom_read(sc, RT2860_EEPROM_CONFIG, &val); DPRINTF("EEPROM CFG 0x%04x\n", val); /* check if driver should patch the DAC issue */ @@ -1489,10 +1597,10 @@ run_read_eeprom(struct run_softc *sc) for (ridx = 0; ridx < 5; ridx++) { uint32_t reg; - run_srom_read(sc, RT2860_EEPROM_RPWR + ridx, &val); - reg = (uint32_t)val << 16; - run_srom_read(sc, RT2860_EEPROM_RPWR + ridx + 1, &val); - reg |= val; + run_srom_read(sc, RT2860_EEPROM_RPWR + ridx * 2, &val); + reg = val; + run_srom_read(sc, RT2860_EEPROM_RPWR + ridx * 2 + 1, &val); + reg |= (uint32_t)val << 16; sc->txpow20mhz[ridx] = reg; sc->txpow40mhz_2ghz[ridx] = b4inc(reg, delta_2ghz); @@ -1575,19 +1683,21 @@ run_node_alloc(struct ieee80211vap *vap, static int run_media_change(struct ifnet *ifp) { + struct ieee80211vap *vap = ifp->if_softc; + struct ieee80211com *ic = vap->iv_ic; const struct ieee80211_txparam *tp; - struct run_softc *sc = ifp->if_softc; - struct ieee80211com *ic = sc->sc_ifp->if_l2com; - struct ieee80211vap *vap = &sc->sc_rvp->vap; + struct run_softc *sc = ic->ic_ifp->if_softc; + struct run_node *rn = (void *)vap->iv_bss; uint8_t rate, ridx; int error; RUN_LOCK(sc); error = ieee80211_media_change(ifp); - if (error != ENETRESET) + if (error != ENETRESET){ RUN_UNLOCK(sc); return error; + } tp = &vap->iv_txparms[ieee80211_chan2mode(ic->ic_curchan)]; if (tp->ucastrate != IEEE80211_FIXED_RATE_NONE) { @@ -1596,13 +1706,16 @@ run_media_change(struct ifnet *ifp) for (ridx = 0; ridx < RT2860_RIDX_MAX; ridx++) if (rt2860_rates[ridx].rate == rate) break; - sc->fixed_ridx = ridx; + rn->fix_ridx = ridx; + DPRINTF("rate=%d, fix_ridx=%d\n", rate, rn->fix_ridx); } +#if 0 if ((ifp->if_flags & IFF_UP) && (ifp->if_drv_flags & IFF_DRV_RUNNING)){ run_init_locked(sc); } +#endif RUN_UNLOCK(sc); @@ -1618,8 +1731,11 @@ run_newstate(struct ieee80211vap *vap, e struct run_vap *rvp = RUN_VAP(vap); enum ieee80211_state ostate; struct ieee80211_node *ni; + uint32_t sta[3]; uint32_t tmp; - uint8_t wcid; + uint8_t ratectl; + uint8_t restart_ratectl = 0; + uint8_t bid = 1 << rvp->rvp_id; ostate = vap->iv_state; DPRINTF("%s -> %s\n", @@ -1629,8 +1745,9 @@ run_newstate(struct ieee80211vap *vap, e IEEE80211_UNLOCK(ic); RUN_LOCK(sc); - sc->sc_rvp->ratectl_run = RUN_RATECTL_OFF; - usb_callout_stop(&rvp->ratectl_ch); + ratectl = sc->ratectl_run; /* remember current state */ + sc->ratectl_run = RUN_RATECTL_OFF; + usb_callout_stop(&sc->ratectl_ch); if (ostate == IEEE80211_S_RUN) { /* turn link LED off */ @@ -1639,8 +1756,16 @@ run_newstate(struct ieee80211vap *vap, e switch (nstate) { case IEEE80211_S_INIT: - if (ostate == IEEE80211_S_RUN) { - /* abort TSF synchronization */ + restart_ratectl = 1; + + if (ostate != IEEE80211_S_RUN) + break; + + ratectl &= ~bid; + sc->runbmap &= ~bid; + + /* abort TSF synchronization if there is no vap running */ + if(--sc->running == 0){ run_read(sc, RT2860_BCN_TIME_CFG, &tmp); run_write(sc, RT2860_BCN_TIME_CFG, tmp & ~(RT2860_BCN_TX_EN | RT2860_TSF_TIMER_EN | @@ -1648,8 +1773,42 @@ run_newstate(struct ieee80211vap *vap, e } break; + case IEEE80211_S_RUN: ni = vap->iv_bss; + if(!(sc->runbmap & bid)){ + if(sc->running++) + restart_ratectl = 1; + sc->runbmap |= bid; + } + + switch(vap->iv_opmode){ + case IEEE80211_M_HOSTAP: + case IEEE80211_M_MBSS: + sc->ap_running |= bid; + ic->ic_opmode = vap->iv_opmode; + run_update_beacon_cb(vap); + break; + case IEEE80211_M_IBSS: + sc->adhoc_running |= bid; + if(!sc->ap_running) + ic->ic_opmode = vap->iv_opmode; + run_update_beacon_cb(vap); + break; + case IEEE80211_M_STA: + sc->sta_running |= bid; + if(!sc->ap_running && !sc->adhoc_running) + ic->ic_opmode = vap->iv_opmode; + + /* read statistic counters (clear on read) */ + run_read_region_1(sc, RT2860_TX_STA_CNT0, + (uint8_t *)sta, sizeof sta); + + break; + default: + ic->ic_opmode = vap->iv_opmode; + break; + } if (vap->iv_opmode != IEEE80211_M_MONITOR) { run_updateslot(ic->ic_ifp); @@ -1658,31 +1817,17 @@ run_newstate(struct ieee80211vap *vap, e run_set_basicrates(sc); IEEE80211_ADDR_COPY(sc->sc_bssid, ni->ni_bssid); run_set_bssid(sc, ni->ni_bssid); - } - - if (vap->iv_opmode == IEEE80211_M_STA) { - /* add BSS entry to the WCID table */ - wcid = RUN_AID2WCID(ni->ni_associd); - run_write_region_1(sc, RT2860_WCID_ENTRY(wcid), - ni->ni_macaddr, IEEE80211_ADDR_LEN); - } - - if (vap->iv_opmode == IEEE80211_M_HOSTAP || - vap->iv_opmode == IEEE80211_M_IBSS) - run_update_beacon_locked(vap, 0); - - if (vap->iv_opmode != IEEE80211_M_MONITOR) { run_enable_tsf_sync(sc); - } /* else tsf */ - /* enable automatic rate adaptation */ - tp = &vap->iv_txparms[ieee80211_chan2mode(ic->ic_curchan)]; - if (tp->ucastrate == IEEE80211_FIXED_RATE_NONE) - run_ratectl_start(sc, ni); + /* enable automatic rate adaptation */ + tp = &vap->iv_txparms[ieee80211_chan2mode(ic->ic_curchan)]; + if (tp->ucastrate == IEEE80211_FIXED_RATE_NONE) + ratectl |= bid; + } /* turn link LED on */ run_set_leds(sc, RT2860_LED_RADIO | - (IEEE80211_IS_CHAN_2GHZ(vap->iv_bss->ni_chan) ? + (IEEE80211_IS_CHAN_2GHZ(ic->ic_curchan) ? RT2860_LED_LINK_2GHZ : RT2860_LED_LINK_5GHZ)); break; @@ -1691,34 +1836,26 @@ run_newstate(struct ieee80211vap *vap, e break; } + /* restart amrr for running VAPs */ + if((sc->ratectl_run = ratectl) && restart_ratectl) + usb_callout_reset(&sc->ratectl_ch, hz, run_ratectl_to, sc); + RUN_UNLOCK(sc); IEEE80211_LOCK(ic); return(rvp->newstate(vap, nstate, arg)); } -/* another taskqueue, so usbd_do_request() can go sleep */ -static int -run_wme_update(struct ieee80211com *ic) -{ - struct run_softc *sc = ic->ic_ifp->if_softc; - - ieee80211_runtask(ic, &sc->wme_task); - - /* return whatever, upper layer desn't care anyway */ - return 0; -} - /* ARGSUSED */ static void -run_wme_update_cb(void *arg, int pending) +run_wme_update_cb(void *arg) { struct ieee80211com *ic = arg; struct run_softc *sc = ic->ic_ifp->if_softc; struct ieee80211_wme_state *wmesp = &ic->ic_wme; int aci, error = 0; - RUN_LOCK(sc); + RUN_LOCK_ASSERT(sc, MA_OWNED); /* update MAC TX configuration registers */ for (aci = 0; aci < WME_NUM_AC; aci++) { @@ -1761,19 +1898,39 @@ err: if(error) DPRINTF("WME update failed\n"); - RUN_UNLOCK(sc); return; } +static int +run_wme_update(struct ieee80211com *ic) +{ + struct run_softc *sc = ic->ic_ifp->if_softc; + + /* sometime called wothout lock */ + if(mtx_owned(&ic->ic_comlock.mtx)){ + uint32_t i = RUN_CMDQ_GET(&sc->cmdq_store); + DPRINTF("cmdq_store=%d\n", i); + sc->cmdq[i].func = run_wme_update_cb; + sc->cmdq[i].arg0 = ic; + ieee80211_runtask(ic, &sc->cmdq_task); + return (0); + } + + RUN_LOCK(sc); + run_wme_update_cb(ic); + RUN_UNLOCK(sc); + + /* return whatever, upper layer desn't care anyway */ + return (0); +} + static void run_key_update_begin(struct ieee80211vap *vap) { /* - * Because run_key_delete() needs special attention - * on lock related operation, lock handling is being done - * differently in run_key_set and _delete. - * - * So, we don't use key_update_begin and _end. + * To avoid out-of-order events, both run_key_set() and + * _delete() are deferred and handled by run_cmdq_cb(). + * So, there is nothing we need to do here. */ } @@ -1783,37 +1940,31 @@ run_key_update_end(struct ieee80211vap * /* null */ } -/* - * return 0 on error - */ -static int -run_key_set(struct ieee80211vap *vap, const struct ieee80211_key *k, - const uint8_t mac[IEEE80211_ADDR_LEN]) +static void +run_key_set_cb(void *arg) { + struct run_cmdq *cmdq = arg; + struct ieee80211vap *vap = cmdq->arg1; + struct ieee80211_key *k = cmdq->k; struct ieee80211com *ic = vap->iv_ic; - struct ifnet *ifp = ic->ic_ifp; - struct run_softc *sc = ifp->if_softc; + struct run_softc *sc = ic->ic_ifp->if_softc; struct ieee80211_node *ni; uint32_t attr; uint16_t base, associd; uint8_t mode, wcid, txmic, rxmic, iv[8]; - int error = 0; - RUN_LOCK(sc); + RUN_LOCK_ASSERT(sc, MA_OWNED); if(vap->iv_opmode == IEEE80211_M_HOSTAP){ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Mon May 17 23:52:33 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 99FF9106566B; Mon, 17 May 2010 23:52:33 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 88F6E8FC0C; Mon, 17 May 2010 23:52:33 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HNqXaw076675; Mon, 17 May 2010 23:52:33 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HNqXiV076673; Mon, 17 May 2010 23:52:33 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <201005172352.o4HNqXiV076673@svn.freebsd.org> From: Andrew Thompson Date: Mon, 17 May 2010 23:52:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208232 - stable/8/sys/conf X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 23:52:33 -0000 Author: thompsa Date: Mon May 17 23:52:33 2010 New Revision: 208232 URL: http://svn.freebsd.org/changeset/base/208232 Log: MFC r208048 Allow the USB_REQ_DEBUG to be enabled in the kernel conf. Modified: stable/8/sys/conf/options Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/conf/options ============================================================================== --- stable/8/sys/conf/options Mon May 17 23:51:57 2010 (r208231) +++ stable/8/sys/conf/options Mon May 17 23:52:33 2010 (r208232) @@ -636,6 +636,7 @@ BUS_DEBUG opt_bus.h # options for USB support USB_DEBUG opt_usb.h +USB_REQ_DEBUG opt_usb.h USB_VERBOSE opt_usb.h USB_EHCI_BIG_ENDIAN_DESC opt_usb.h U3G_DEBUG opt_u3g.h From owner-svn-src-all@FreeBSD.ORG Mon May 17 23:55:24 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4150A106564A; Mon, 17 May 2010 23:55:24 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 166E78FC14; Mon, 17 May 2010 23:55:24 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HNtN2O077370; Mon, 17 May 2010 23:55:23 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HNtNc0077365; Mon, 17 May 2010 23:55:23 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <201005172355.o4HNtNc0077365@svn.freebsd.org> From: Andrew Thompson Date: Mon, 17 May 2010 23:55:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208233 - stable/8/lib/libusb X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 23:55:24 -0000 Author: thompsa Date: Mon May 17 23:55:23 2010 New Revision: 208233 URL: http://svn.freebsd.org/changeset/base/208233 Log: MFC r208020 Fix header file compliancy with libusb 1.0 from sourceforge. Modified: stable/8/lib/libusb/libusb.h stable/8/lib/libusb/libusb10.c stable/8/lib/libusb/libusb10_desc.c stable/8/lib/libusb/libusb10_io.c Directory Properties: stable/8/lib/libusb/ (props changed) stable/8/lib/libusb/usb.h (props changed) Modified: stable/8/lib/libusb/libusb.h ============================================================================== --- stable/8/lib/libusb/libusb.h Mon May 17 23:52:33 2010 (r208232) +++ stable/8/lib/libusb/libusb.h Mon May 17 23:55:23 2010 (r208233) @@ -185,7 +185,7 @@ enum libusb_debug_level { struct libusb_context; struct libusb_device; struct libusb_transfer; -struct libusb20_device; +struct libusb_device_handle; struct libusb_pollfd { int fd; @@ -194,7 +194,7 @@ struct libusb_pollfd { typedef struct libusb_context libusb_context; typedef struct libusb_device libusb_device; -typedef struct libusb20_device libusb_device_handle; +typedef struct libusb_device_handle libusb_device_handle; typedef struct libusb_pollfd libusb_pollfd; typedef void (*libusb_pollfd_added_cb) (int fd, short events, void *user_data); typedef void (*libusb_pollfd_removed_cb) (int fd, void *user_data); Modified: stable/8/lib/libusb/libusb10.c ============================================================================== --- stable/8/lib/libusb/libusb10.c Mon May 17 23:52:33 2010 (r208232) +++ stable/8/lib/libusb/libusb10.c Mon May 17 23:55:23 2010 (r208233) @@ -37,6 +37,8 @@ #include #include +#define libusb_device_handle libusb20_device + #include "libusb20.h" #include "libusb20_desc.h" #include "libusb20_int.h" Modified: stable/8/lib/libusb/libusb10_desc.c ============================================================================== --- stable/8/lib/libusb/libusb10_desc.c Mon May 17 23:52:33 2010 (r208232) +++ stable/8/lib/libusb/libusb10_desc.c Mon May 17 23:55:23 2010 (r208233) @@ -29,6 +29,8 @@ #include #include +#define libusb_device_handle libusb20_device + #include "libusb20.h" #include "libusb20_desc.h" #include "libusb20_int.h" Modified: stable/8/lib/libusb/libusb10_io.c ============================================================================== --- stable/8/lib/libusb/libusb10_io.c Mon May 17 23:52:33 2010 (r208232) +++ stable/8/lib/libusb/libusb10_io.c Mon May 17 23:55:23 2010 (r208233) @@ -34,6 +34,8 @@ #include #include +#define libusb_device_handle libusb20_device + #include "libusb20.h" #include "libusb20_desc.h" #include "libusb20_int.h" From owner-svn-src-all@FreeBSD.ORG Mon May 17 23:55:38 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A732B1065675; Mon, 17 May 2010 23:55:38 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 968678FC16; Mon, 17 May 2010 23:55:38 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HNtcUo077442; Mon, 17 May 2010 23:55:38 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HNtc90077440; Mon, 17 May 2010 23:55:38 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201005172355.o4HNtc90077440@svn.freebsd.org> From: Rick Macklem Date: Mon, 17 May 2010 23:55:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208234 - head/sys/fs/nfsclient X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 23:55:38 -0000 Author: rmacklem Date: Mon May 17 23:55:38 2010 New Revision: 208234 URL: http://svn.freebsd.org/changeset/base/208234 Log: Add a sanity check for a negative args.fhsize to the experimental NFS client. MFC after: 5 days Modified: head/sys/fs/nfsclient/nfs_clvfsops.c Modified: head/sys/fs/nfsclient/nfs_clvfsops.c ============================================================================== --- head/sys/fs/nfsclient/nfs_clvfsops.c Mon May 17 23:55:23 2010 (r208233) +++ head/sys/fs/nfsclient/nfs_clvfsops.c Mon May 17 23:55:38 2010 (r208234) @@ -951,7 +951,7 @@ nfs_mount(struct mount *mp) if (vfs_getopt(mp->mnt_optnew, "fh", (void **)&args.fh, &args.fhsize) == 0) { - if (args.fhsize > NFSX_FHMAX) { + if (args.fhsize < 0 || args.fhsize > NFSX_FHMAX) { vfs_mount_error(mp, "Bad file handle"); error = EINVAL; goto out; From owner-svn-src-all@FreeBSD.ORG Mon May 17 23:56:17 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5DF881065690; Mon, 17 May 2010 23:56:17 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4CE588FC25; Mon, 17 May 2010 23:56:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HNuH13077654; Mon, 17 May 2010 23:56:17 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HNuHIs077652; Mon, 17 May 2010 23:56:17 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <201005172356.o4HNuHIs077652@svn.freebsd.org> From: Andrew Thompson Date: Mon, 17 May 2010 23:56:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208235 - stable/8/lib/libusb X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 23:56:17 -0000 Author: thompsa Date: Mon May 17 23:56:17 2010 New Revision: 208235 URL: http://svn.freebsd.org/changeset/base/208235 Log: MFC r208021 Fix return values for usb_find_busses() and usb_find_devices(). We should try to return the actual number of busses and devices. Modified: stable/8/lib/libusb/libusb20_compat01.c Directory Properties: stable/8/lib/libusb/ (props changed) stable/8/lib/libusb/usb.h (props changed) Modified: stable/8/lib/libusb/libusb20_compat01.c ============================================================================== --- stable/8/lib/libusb/libusb20_compat01.c Mon May 17 23:55:38 2010 (r208234) +++ stable/8/lib/libusb/libusb20_compat01.c Mon May 17 23:56:17 2010 (r208235) @@ -820,7 +820,7 @@ int usb_find_busses(void) { usb_busses = &usb_global_bus; - return (0); + return (1); } int @@ -904,7 +904,7 @@ usb_find_devices(void) LIST_ADD(usb_global_bus.devices, udev); } - return (0); /* success */ + return (devnum - 1); /* success */ } struct usb_device * From owner-svn-src-all@FreeBSD.ORG Mon May 17 23:57:34 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A8E67106564A; Mon, 17 May 2010 23:57:34 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 97AA38FC15; Mon, 17 May 2010 23:57:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HNvYRl077966; Mon, 17 May 2010 23:57:34 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HNvYvY077964; Mon, 17 May 2010 23:57:34 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <201005172357.o4HNvYvY077964@svn.freebsd.org> From: Andrew Thompson Date: Mon, 17 May 2010 23:57:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208236 - stable/8/lib/libusbhid X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 23:57:34 -0000 Author: thompsa Date: Mon May 17 23:57:34 2010 New Revision: 208236 URL: http://svn.freebsd.org/changeset/base/208236 Log: MFC r208012 Support getting signed and unsigned HID data. Modified: stable/8/lib/libusbhid/data.c Directory Properties: stable/8/lib/libusbhid/ (props changed) Modified: stable/8/lib/libusbhid/data.c ============================================================================== --- stable/8/lib/libusbhid/data.c Mon May 17 23:56:17 2010 (r208235) +++ stable/8/lib/libusbhid/data.c Mon May 17 23:57:34 2010 (r208236) @@ -53,13 +53,17 @@ hid_get_data(const void *p, const hid_it data = 0; for (i = 0; i <= end; i++) data |= buf[offs + i] << (i*8); + + /* Correctly shift down data */ data >>= hpos % 8; - data &= (1 << hsize) - 1; - if (h->logical_minimum < 0) { - /* Need to sign extend */ - hsize = sizeof data * 8 - hsize; - data = (data << hsize) >> hsize; - } + hsize = 32 - hsize; + + /* Mask and sign extend in one */ + if ((h->logical_minimum < 0) || (h->logical_maximum < 0)) + data = (int32_t)((int32_t)data << hsize) >> hsize; + else + data = (uint32_t)((uint32_t)data << hsize) >> hsize; + return (data); } From owner-svn-src-all@FreeBSD.ORG Mon May 17 23:59:15 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3472F1065676; Mon, 17 May 2010 23:59:15 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 234468FC13; Mon, 17 May 2010 23:59:15 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4HNxFvv078377; Mon, 17 May 2010 23:59:15 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4HNxFDi078375; Mon, 17 May 2010 23:59:15 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <201005172359.o4HNxFDi078375@svn.freebsd.org> From: Andrew Thompson Date: Mon, 17 May 2010 23:59:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208237 - stable/8/lib/libusb X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 May 2010 23:59:15 -0000 Author: thompsa Date: Mon May 17 23:59:14 2010 New Revision: 208237 URL: http://svn.freebsd.org/changeset/base/208237 Log: MFC r203773 Within libusb 0.1 API, bus number is always faked to 0. Device numbers, however, are possitive and seem to be reverse sorted in the list. Conform device numbering and bring a result that is consistent with the libusb 0.1 API. It is now possible to distinguish a device based on its (bus, dev) numbers. Modified: stable/8/lib/libusb/libusb20_compat01.c Directory Properties: stable/8/lib/libusb/ (props changed) stable/8/lib/libusb/usb.h (props changed) Modified: stable/8/lib/libusb/libusb20_compat01.c ============================================================================== --- stable/8/lib/libusb/libusb20_compat01.c Mon May 17 23:57:34 2010 (r208236) +++ stable/8/lib/libusb/libusb20_compat01.c Mon May 17 23:59:14 2010 (r208237) @@ -829,6 +829,7 @@ usb_find_devices(void) struct libusb20_device *pdev; struct usb_device *udev; struct LIBUSB20_DEVICE_DESC_DECODED *ddesc; + int devnum; int err; /* cleanup after last device search */ @@ -855,6 +856,7 @@ usb_find_devices(void) } /* iterate all devices */ + devnum = 1; pdev = NULL; while ((pdev = libusb20_be_device_foreach(usb_backend, pdev))) { udev = malloc(sizeof(*udev)); @@ -891,6 +893,7 @@ usb_find_devices(void) /* truncate number of configurations */ udev->descriptor.bNumConfigurations = USB_MAXCONFIG; } + udev->devnum = devnum++; /* link together the two structures */ udev->dev = pdev; pdev->privLuData = udev; From owner-svn-src-all@FreeBSD.ORG Tue May 18 00:32:03 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3BD56106566B; Tue, 18 May 2010 00:32:03 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1FF9E8FC08; Tue, 18 May 2010 00:32:03 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4I0W2J6085906; Tue, 18 May 2010 00:32:02 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4I0W2i7085904; Tue, 18 May 2010 00:32:02 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201005180032.o4I0W2i7085904@svn.freebsd.org> From: Xin LI Date: Tue, 18 May 2010 00:32:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208238 - stable/8/sys/boot/forth X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 00:32:03 -0000 Author: delphij Date: Tue May 18 00:32:02 2010 New Revision: 208238 URL: http://svn.freebsd.org/changeset/base/208238 Log: MFC r207630 Remove if_ar, if_ray, if_sr, if_ppp, if_sl to reflect the current modules available, they were removed due to NEEDSGIANT. While I'm there, add if_et which was missed quite a while ago. Modified: stable/8/sys/boot/forth/loader.conf Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/boot/forth/loader.conf ============================================================================== --- stable/8/sys/boot/forth/loader.conf Mon May 17 23:59:14 2010 (r208237) +++ stable/8/sys/boot/forth/loader.conf Tue May 18 00:32:02 2010 (r208238) @@ -196,8 +196,6 @@ if_epair_load="NO" # Virtual b-t-b Ethe if_faith_load="NO" # IPv6-to-IPv4 TCP relay capturing interface if_gif_load="NO" # generic tunnel interface if_gre_load="NO" # encapsulating network device -if_ppp_load="NO" # Kernel ppp -if_sl_load="NO" # SLIP if_stf_load="NO" # 6to4 tunnel interface if_tap_load="NO" # Ethernet tunnel software network interface if_tun_load="NO" # Tunnel driver (user process ppp) @@ -216,7 +214,6 @@ if_age_load="NO" # Attansic/Atheros L1 if_alc_load="NO" # Atheros AR8131/AR8132 Ethernet if_ale_load="NO" # Atheros AR8121/AR8113/AR8114 Ethernet if_an_load="NO" # Aironet 4500/4800 802.11 wireless NICs -if_ar_load="NO" # Digi SYNC/570i if_ath_load="NO" # Atheros IEEE 802.11 wireless NICs if_aue_load="NO" # ADMtek AN986 Pegasus USB Ethernet if_awi_load="NO" # AMD PCnetMobile IEEE 802.11 wireless NICs @@ -236,6 +233,7 @@ if_ed_load="NO" # National Semiconduct if_em_load="NO" # Intel(R) PRO/1000 Gigabit Ethernet if_en_load="NO" # Midway-based ATM interfaces if_ep_load="NO" # 3Com Etherlink III (3c5x9) +if_et_load="NO" # Agere ET1310 10/100/Gigabit Ethernet if_ex_load="NO" # Intel EtherExpress Pro/10 Ethernet if_fe_load="NO" # Fujitsu MB86960A/MB86965A based Ethernet # adapters @@ -264,17 +262,15 @@ if_nve_load="NO" # NVIDIA nForce MCP Ne if_nxge_load="NO" # Neterion Xframe 10Gb Ethernet if_pcn_load="NO" # AMD PCnet PCI if_ral_load="NO" # Ralink Technology wireless -if_ray_load="NO" # Raytheon Raylink/Webgear Aviator PCCard if_re_load="NO" # RealTek 8139C+/8169/8169S/8110S if_rl_load="NO" # RealTek 8129/8139 if_rue_load="NO" # RealTek RTL8150 USB to Fast Ethernet if_sbni_load="NO" # Granch SBNI12 leased line adapters if_sf_load="NO" # Adaptec Duralink PCI (AIC-6915 "starfire") -if_sge_load="NO" # Silicon Integrated Systems SiS190/191 +if_sge_load="NO" # Silicon Integrated Systems SiS 190/191 if_sis_load="NO" # Silicon Integrated Systems SiS 900/7016 if_sk_load="NO" # SysKonnect SK-984x series PCI Gigabit Ethernet if_sn_load="NO" # SMC 91Cxx -if_sr_load="NO" # synchronous RISCom/N2 / WANic 400/405 if_ste_load="NO" # Sundance Technologies ST201 Fast Ethernet if_stge_load="NO" # Sundance/Tamarack TC9021 Gigabit Ethernet if_ti_load="NO" # Alteon Networks Tigon 1 and Tigon 2 From owner-svn-src-all@FreeBSD.ORG Tue May 18 00:37:33 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4D5FC106567B; Tue, 18 May 2010 00:37:33 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 227D18FC14; Tue, 18 May 2010 00:37:33 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4I0bXrN087170; Tue, 18 May 2010 00:37:33 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4I0bXQM087169; Tue, 18 May 2010 00:37:33 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201005180037.o4I0bXQM087169@svn.freebsd.org> From: Xin LI Date: Tue, 18 May 2010 00:37:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208239 - stable/8/lib X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 00:37:33 -0000 Author: delphij Date: Tue May 18 00:37:32 2010 New Revision: 208239 URL: http://svn.freebsd.org/changeset/base/208239 Log: Adjust svn:mergeinfo for revision 204546. This commit moves mergeinfo to lib/ and removes mergeinfo on individual file. Modified: Directory Properties: stable/8/lib/ (props changed) stable/8/lib/Makefile (props changed) From owner-svn-src-all@FreeBSD.ORG Tue May 18 00:46:16 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 85ED2106564A; Tue, 18 May 2010 00:46:16 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 742938FC0A; Tue, 18 May 2010 00:46:16 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4I0kG46089187; Tue, 18 May 2010 00:46:16 GMT (envelope-from mm@svn.freebsd.org) Received: (from mm@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4I0kGtd089185; Tue, 18 May 2010 00:46:16 GMT (envelope-from mm@svn.freebsd.org) Message-Id: <201005180046.o4I0kGtd089185@svn.freebsd.org> From: Martin Matuska Date: Tue, 18 May 2010 00:46:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208240 - stable/8/lib X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 00:46:16 -0000 Author: mm Date: Tue May 18 00:46:15 2010 New Revision: 208240 URL: http://svn.freebsd.org/changeset/base/208240 Log: MFC r204738, r205113 (imp): MFC r204738: Remove stale references to libkrb5. Rejigger the SUBDIR setting a smidge: we now set all the libraries that depend on something else, and then SUBDIR+= the rest. MFC r205113: Make this conform to the other top-level Makefile subdir listings with one file per line. Approved by: delphij (mentor) Modified: stable/8/lib/Makefile Directory Properties: stable/8/lib/ (props changed) Modified: stable/8/lib/Makefile ============================================================================== --- stable/8/lib/Makefile Tue May 18 00:37:32 2010 (r208239) +++ stable/8/lib/Makefile Tue May 18 00:46:15 2010 (r208240) @@ -9,8 +9,8 @@ # csu must be built before all shared libaries for ELF. # libc must be built before all other shared libraries. # libbsm must be built before ibauditd. -# libcom_err must be built before libkrb5 and libpam. -# libcrypt must be built before libkrb5 and libpam. +# libcom_err must be built before libpam. +# libcrypt must be built before libpam. # libkvm must be built before libdevstat. # msun must be built before libg++ and libstdc++. # libmd must be built before libatm, libopie, libradius, and libtacplus. @@ -26,21 +26,84 @@ # libgssapi must be built before librpcsec_gss # # Otherwise, the SUBDIR list should be in alphabetical order. +# +# Except it appears bind needs to be compiled last -SUBDIR= ${_csu} libc libbsm libauditd libcom_err libcrypt libelf libkvm msun \ +SUBDIR_ORDERED= ${_csu} \ + libc \ + libbsm \ + libauditd \ + libcom_err \ + libcrypt \ + libelf \ + libkvm \ + msun \ libmd \ - ncurses ${_libnetgraph} libradius librpcsvc libsbuf \ - libtacplus libutil ${_libypclnt} libalias libarchive ${_libatm} \ - libbegemot ${_libbluetooth} ${_libbsnmp} libbz2 \ - libcalendar libcam libcompat libdevinfo libdevstat libdisk \ - libdwarf libedit libexpat libfetch libftpio libgeom ${_libgpib} \ - ${_libgssapi} ${_librpcsec_gss} libipsec \ - ${_libipx} libjail libkiconv libmagic libmemstat ${_libmilter} \ - ${_libmp} ${_libncp} ${_libngatm} libopie libpam libpcap \ - ${_libpmc} libproc librt ${_libsdp} ${_libsm} ${_libsmb} \ + ncurses \ + ${_libnetgraph} \ + libradius \ + librpcsvc \ + libsbuf \ + libtacplus \ + libutil \ + ${_libypclnt} + +SUBDIR= ${SUBDIR_ORDERED} \ + libalias \ + libarchive \ + ${_libatm} \ + libbegemot \ + ${_libbluetooth} \ + ${_libbsnmp} \ + libbz2 \ + libcalendar \ + libcam \ + libcompat \ + libdevinfo \ + libdevstat \ + libdisk \ + libdwarf \ + libedit \ + libexpat \ + libfetch \ + libftpio \ + libgeom \ + ${_libgpib} \ + ${_libgssapi} \ + ${_librpcsec_gss} \ + libipsec \ + ${_libipx} \ + libjail \ + libkiconv \ + libmagic \ + libmemstat \ + ${_libmilter} \ + ${_libmp} \ + ${_libncp} \ + ${_libngatm} \ + libopie \ + libpam \ + libpcap \ + ${_libpmc} \ + libproc \ + librt \ + ${_libsdp} \ + ${_libsm} \ + ${_libsmb} \ ${_libsmdb} \ - ${_libsmutil} libstand ${_libtelnet} ${_libthr} libthread_db libufs \ - libugidfw ${_libusbhid} ${_libusb} ${_libvgl} libwrap liby libz \ + ${_libsmutil} \ + libstand \ + ${_libtelnet} \ + ${_libthr} \ + libthread_db \ + libufs \ + libugidfw \ + ${_libusbhid} \ + ${_libusb} \ + ${_libvgl} \ + libwrap \ + liby \ + libz \ ${_bind} .if exists(${.CURDIR}/csu/${MACHINE_ARCH}-elf) From owner-svn-src-all@FreeBSD.ORG Tue May 18 01:45:29 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F2D3D106566B; Tue, 18 May 2010 01:45:28 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E19C58FC0A; Tue, 18 May 2010 01:45:28 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4I1jSOi002280; Tue, 18 May 2010 01:45:28 GMT (envelope-from jeff@svn.freebsd.org) Received: (from jeff@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4I1jSph002278; Tue, 18 May 2010 01:45:28 GMT (envelope-from jeff@svn.freebsd.org) Message-Id: <201005180145.o4I1jSph002278@svn.freebsd.org> From: Jeff Roberson Date: Tue, 18 May 2010 01:45:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208241 - head/sbin/tunefs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 01:45:29 -0000 Author: jeff Date: Tue May 18 01:45:28 2010 New Revision: 208241 URL: http://svn.freebsd.org/changeset/base/208241 Log: - Round up the journal size to the block size so we don't confuse fsck. Reported by: Mikolaj Golub - Only require 256k of blocks per-cg when trying to allocate contiguous journal blocks. The storage may not actually be contiguous but is at least within one cg. - When disabling SUJ leave SU enabled and report this to the user. It is expected that users will upgrade SU filesystems to SUJ and want a similar downgrade path. Modified: head/sbin/tunefs/tunefs.c Modified: head/sbin/tunefs/tunefs.c ============================================================================== --- head/sbin/tunefs/tunefs.c Tue May 18 00:46:15 2010 (r208240) +++ head/sbin/tunefs/tunefs.c Tue May 18 01:45:28 2010 (r208241) @@ -358,10 +358,12 @@ main(int argc, char *argv[]) warnx("%s remains unchanged as disabled", name); } else { journal_clear(); - sblock.fs_flags &= ~(FS_DOSOFTDEP | FS_SUJ); + sblock.fs_flags &= ~FS_SUJ; sblock.fs_sujfree = 0; - warnx("%s cleared, " - "remove .sujournal to reclaim space", name); + warnx("%s cleared but soft updates still set.", + name); + + warnx("remove .sujournal to reclaim space"); } } } @@ -546,7 +548,7 @@ journal_balloc(void) * Try to minimize fragmentation by requiring a minimum * number of blocks present. */ - if (cgp->cg_cs.cs_nbfree > 128 * 1024 * 1024) + if (cgp->cg_cs.cs_nbfree > 256 * 1024) break; if (contig == 0 && cgp->cg_cs.cs_nbfree) break; @@ -906,6 +908,8 @@ journal_alloc(int64_t size) if (size / sblock.fs_fsize > sblock.fs_fpg) size = sblock.fs_fpg * sblock.fs_fsize; size = MAX(SUJ_MIN, size); + /* fsck does not support fragments in journal files. */ + size = roundup(size, sblock.fs_bsize); } resid = blocks = size / sblock.fs_bsize; if (sblock.fs_cstotal.cs_nbfree < blocks) { From owner-svn-src-all@FreeBSD.ORG Tue May 18 02:17:40 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B222F1065673; Tue, 18 May 2010 02:17:40 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A00E98FC18; Tue, 18 May 2010 02:17:40 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4I2Hee9009385; Tue, 18 May 2010 02:17:40 GMT (envelope-from dougb@svn.freebsd.org) Received: (from dougb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4I2He8g009383; Tue, 18 May 2010 02:17:40 GMT (envelope-from dougb@svn.freebsd.org) Message-Id: <201005180217.o4I2He8g009383@svn.freebsd.org> From: Doug Barton Date: Tue, 18 May 2010 02:17:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208242 - stable/8/usr.sbin/mergemaster X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 02:17:40 -0000 Author: dougb Date: Tue May 18 02:17:40 2010 New Revision: 208242 URL: http://svn.freebsd.org/changeset/base/208242 Log: MFC r208088: Hide the creation and population of the temproot Modified: stable/8/usr.sbin/mergemaster/mergemaster.sh Directory Properties: stable/8/usr.sbin/mergemaster/ (props changed) Modified: stable/8/usr.sbin/mergemaster/mergemaster.sh ============================================================================== --- stable/8/usr.sbin/mergemaster/mergemaster.sh Tue May 18 01:45:28 2010 (r208241) +++ stable/8/usr.sbin/mergemaster/mergemaster.sh Tue May 18 02:17:40 2010 (r208242) @@ -617,14 +617,14 @@ case "${RERUN}" in case "${DESTDIR}" in '') ;; *) - ${MM_MAKE} DESTDIR=${DESTDIR} distrib-dirs + ${MM_MAKE} DESTDIR=${DESTDIR} distrib-dirs >/dev/null ;; esac od=${TEMPROOT}/usr/obj - ${MM_MAKE} DESTDIR=${TEMPROOT} distrib-dirs && - MAKEOBJDIRPREFIX=$od ${MM_MAKE} _obj SUBDIR_OVERRIDE=etc && - MAKEOBJDIRPREFIX=$od ${MM_MAKE} everything SUBDIR_OVERRIDE=etc && - MAKEOBJDIRPREFIX=$od ${MM_MAKE} DESTDIR=${TEMPROOT} distribution;} || + ${MM_MAKE} DESTDIR=${TEMPROOT} distrib-dirs >/dev/null && + MAKEOBJDIRPREFIX=$od ${MM_MAKE} _obj SUBDIR_OVERRIDE=etc >/dev/null && + MAKEOBJDIRPREFIX=$od ${MM_MAKE} everything SUBDIR_OVERRIDE=etc >/dev/null && + MAKEOBJDIRPREFIX=$od ${MM_MAKE} DESTDIR=${TEMPROOT} distribution >/dev/null;} || { echo ''; echo " *** FATAL ERROR: Cannot 'cd' to ${SOURCEDIR} and install files to"; echo " the temproot environment"; From owner-svn-src-all@FreeBSD.ORG Tue May 18 02:18:28 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0EF4010656E0; Tue, 18 May 2010 02:18:28 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id F14148FC1F; Tue, 18 May 2010 02:18:27 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4I2IR9H009621; Tue, 18 May 2010 02:18:27 GMT (envelope-from dougb@svn.freebsd.org) Received: (from dougb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4I2IRlE009604; Tue, 18 May 2010 02:18:27 GMT (envelope-from dougb@svn.freebsd.org) Message-Id: <201005180218.o4I2IRlE009604@svn.freebsd.org> From: Doug Barton Date: Tue, 18 May 2010 02:18:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208243 - stable/7/usr.sbin/mergemaster X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 02:18:28 -0000 Author: dougb Date: Tue May 18 02:18:27 2010 New Revision: 208243 URL: http://svn.freebsd.org/changeset/base/208243 Log: MFC r208088: Hide the creation and population of the temproot Modified: stable/7/usr.sbin/mergemaster/mergemaster.sh Directory Properties: stable/7/usr.sbin/mergemaster/ (props changed) Modified: stable/7/usr.sbin/mergemaster/mergemaster.sh ============================================================================== --- stable/7/usr.sbin/mergemaster/mergemaster.sh Tue May 18 02:17:40 2010 (r208242) +++ stable/7/usr.sbin/mergemaster/mergemaster.sh Tue May 18 02:18:27 2010 (r208243) @@ -617,14 +617,14 @@ case "${RERUN}" in case "${DESTDIR}" in '') ;; *) - ${MM_MAKE} DESTDIR=${DESTDIR} distrib-dirs + ${MM_MAKE} DESTDIR=${DESTDIR} distrib-dirs >/dev/null ;; esac od=${TEMPROOT}/usr/obj - ${MM_MAKE} DESTDIR=${TEMPROOT} distrib-dirs && - MAKEOBJDIRPREFIX=$od ${MM_MAKE} _obj SUBDIR_OVERRIDE=etc && - MAKEOBJDIRPREFIX=$od ${MM_MAKE} everything SUBDIR_OVERRIDE=etc && - MAKEOBJDIRPREFIX=$od ${MM_MAKE} DESTDIR=${TEMPROOT} distribution;} || + ${MM_MAKE} DESTDIR=${TEMPROOT} distrib-dirs >/dev/null && + MAKEOBJDIRPREFIX=$od ${MM_MAKE} _obj SUBDIR_OVERRIDE=etc >/dev/null && + MAKEOBJDIRPREFIX=$od ${MM_MAKE} everything SUBDIR_OVERRIDE=etc >/dev/null && + MAKEOBJDIRPREFIX=$od ${MM_MAKE} DESTDIR=${TEMPROOT} distribution >/dev/null;} || { echo ''; echo " *** FATAL ERROR: Cannot 'cd' to ${SOURCEDIR} and install files to"; echo " the temproot environment"; From owner-svn-src-all@FreeBSD.ORG Tue May 18 02:22:09 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 380661065674; Tue, 18 May 2010 02:22:09 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2619C8FC1C; Tue, 18 May 2010 02:22:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4I2M9Rw010543; Tue, 18 May 2010 02:22:09 GMT (envelope-from dougb@svn.freebsd.org) Received: (from dougb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4I2M95P010541; Tue, 18 May 2010 02:22:09 GMT (envelope-from dougb@svn.freebsd.org) Message-Id: <201005180222.o4I2M95P010541@svn.freebsd.org> From: Doug Barton Date: Tue, 18 May 2010 02:22:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208244 - stable/8/usr.bin/calendar/calendars X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 02:22:09 -0000 Author: dougb Date: Tue May 18 02:22:08 2010 New Revision: 208244 URL: http://svn.freebsd.org/changeset/base/208244 Log: MFC r208089: Remove duplicate Modified: stable/8/usr.bin/calendar/calendars/calendar.history Directory Properties: stable/8/usr.bin/calendar/ (props changed) Modified: stable/8/usr.bin/calendar/calendars/calendar.history ============================================================================== --- stable/8/usr.bin/calendar/calendars/calendar.history Tue May 18 02:18:27 2010 (r208243) +++ stable/8/usr.bin/calendar/calendars/calendar.history Tue May 18 02:22:08 2010 (r208244) @@ -80,7 +80,6 @@ 03/15 Watts, Los Angeles, riots kill two, injure 25, 1966 03/15 Ides of March. Gaius Julius Caesar assassinated by senators, including adoptive son Marcus Junius Brutus Caepio, 44BC -03/16 First liquid-fuel-powered rocket flight, 1926 03/16 MyLai Massacre; 300 non-combatant villagers killed by US infantrymen 03/16 Robert Goddard launches first liquid-fueled rocket, Auburn MA, 1926 03/17 Vanguard I launched, 1958. Earth proved pear-shaped From owner-svn-src-all@FreeBSD.ORG Tue May 18 02:23:04 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 84A431065670; Tue, 18 May 2010 02:23:04 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 727E08FC0A; Tue, 18 May 2010 02:23:04 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4I2N4NI010804; Tue, 18 May 2010 02:23:04 GMT (envelope-from dougb@svn.freebsd.org) Received: (from dougb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4I2N4MK010802; Tue, 18 May 2010 02:23:04 GMT (envelope-from dougb@svn.freebsd.org) Message-Id: <201005180223.o4I2N4MK010802@svn.freebsd.org> From: Doug Barton Date: Tue, 18 May 2010 02:23:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208245 - stable/7/usr.bin/calendar/calendars X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 02:23:04 -0000 Author: dougb Date: Tue May 18 02:23:04 2010 New Revision: 208245 URL: http://svn.freebsd.org/changeset/base/208245 Log: MFC r208089: Remove duplicate Modified: stable/7/usr.bin/calendar/calendars/calendar.history Directory Properties: stable/7/usr.bin/calendar/ (props changed) Modified: stable/7/usr.bin/calendar/calendars/calendar.history ============================================================================== --- stable/7/usr.bin/calendar/calendars/calendar.history Tue May 18 02:22:08 2010 (r208244) +++ stable/7/usr.bin/calendar/calendars/calendar.history Tue May 18 02:23:04 2010 (r208245) @@ -80,7 +80,6 @@ 03/15 Watts, Los Angeles, riots kill two, injure 25, 1966 03/15 Ides of March. Gaius Julius Caesar assassinated by senators, including adoptive son Marcus Junius Brutus Caepio, 44BC -03/16 First liquid-fuel-powered rocket flight, 1926 03/16 MyLai Massacre; 300 non-combatant villagers killed by US infantrymen 03/16 Robert Goddard launches first liquid-fueled rocket, Auburn MA, 1926 03/17 Vanguard I launched, 1958. Earth proved pear-shaped From owner-svn-src-all@FreeBSD.ORG Tue May 18 02:30:46 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5D7941065678; Tue, 18 May 2010 02:30:46 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 31E888FC1C; Tue, 18 May 2010 02:30:46 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4I2UkDM012594; Tue, 18 May 2010 02:30:46 GMT (envelope-from dougb@svn.freebsd.org) Received: (from dougb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4I2Uk0X012593; Tue, 18 May 2010 02:30:46 GMT (envelope-from dougb@svn.freebsd.org) Message-Id: <201005180230.o4I2Uk0X012593@svn.freebsd.org> From: Doug Barton Date: Tue, 18 May 2010 02:30:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-6@freebsd.org X-SVN-Group: stable-6 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208246 - in stable/6/usr.bin/calendar: . calendars X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 02:30:46 -0000 Author: dougb Date: Tue May 18 02:30:45 2010 New Revision: 208246 URL: http://svn.freebsd.org/changeset/base/208246 Log: Pull mergeinfo from r193462 up to the proper directory Modified: Directory Properties: stable/6/usr.bin/calendar/ (props changed) stable/6/usr.bin/calendar/calendars/ (props changed) From owner-svn-src-all@FreeBSD.ORG Tue May 18 02:31:37 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C0B7C1065675; Tue, 18 May 2010 02:31:37 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id AEDF98FC1D; Tue, 18 May 2010 02:31:37 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4I2Vb4v012844; Tue, 18 May 2010 02:31:37 GMT (envelope-from dougb@svn.freebsd.org) Received: (from dougb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4I2VbmS012842; Tue, 18 May 2010 02:31:37 GMT (envelope-from dougb@svn.freebsd.org) Message-Id: <201005180231.o4I2VbmS012842@svn.freebsd.org> From: Doug Barton Date: Tue, 18 May 2010 02:31:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-6@freebsd.org X-SVN-Group: stable-6 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208247 - stable/6/usr.bin/calendar/calendars X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 02:31:37 -0000 Author: dougb Date: Tue May 18 02:31:37 2010 New Revision: 208247 URL: http://svn.freebsd.org/changeset/base/208247 Log: MFC r208089: Remove duplicate Modified: stable/6/usr.bin/calendar/calendars/calendar.history Directory Properties: stable/6/usr.bin/calendar/ (props changed) Modified: stable/6/usr.bin/calendar/calendars/calendar.history ============================================================================== --- stable/6/usr.bin/calendar/calendars/calendar.history Tue May 18 02:30:45 2010 (r208246) +++ stable/6/usr.bin/calendar/calendars/calendar.history Tue May 18 02:31:37 2010 (r208247) @@ -80,7 +80,6 @@ 03/15 Watts, Los Angeles, riots kill two, injure 25, 1966 03/15 Ides of March. Gaius Julius Caesar assassinated by senators, including adoptive son Marcus Junius Brutus Caepio, 44BC -03/16 First liquid-fuel-powered rocket flight, 1926 03/16 MyLai Massacre; 300 non-combatant villagers killed by US infantrymen 03/16 Robert Goddard launches first liquid-fueled rocket, Auburn MA, 1926 03/17 Vanguard I launched, 1958. Earth proved pear-shaped From owner-svn-src-all@FreeBSD.ORG Tue May 18 03:16:02 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BBA531065674; Tue, 18 May 2010 03:16:02 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A91BF8FC13; Tue, 18 May 2010 03:16:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4I3G2FF023033; Tue, 18 May 2010 03:16:02 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4I3G2nY023030; Tue, 18 May 2010 03:16:02 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <201005180316.o4I3G2nY023030@svn.freebsd.org> From: Andrew Thompson Date: Tue, 18 May 2010 03:16:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208248 - stable/8/lib/libusbhid X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 03:16:02 -0000 Author: thompsa Date: Tue May 18 03:16:02 2010 New Revision: 208248 URL: http://svn.freebsd.org/changeset/base/208248 Log: MFC r208023 Use fixed width integer types for parsing the binary hid data. Modified: stable/8/lib/libusbhid/data.c stable/8/lib/libusbhid/usbhid.h Directory Properties: stable/8/lib/libusbhid/ (props changed) Modified: stable/8/lib/libusbhid/data.c ============================================================================== --- stable/8/lib/libusbhid/data.c Tue May 18 02:31:37 2010 (r208247) +++ stable/8/lib/libusbhid/data.c Tue May 18 03:16:02 2010 (r208248) @@ -33,7 +33,7 @@ __FBSDID("$FreeBSD$"); #include #include "usbhid.h" -int +int32_t hid_get_data(const void *p, const hid_item_t *h) { const unsigned char *buf; @@ -68,12 +68,15 @@ hid_get_data(const void *p, const hid_it } void -hid_set_data(void *p, const hid_item_t *h, int data) +hid_set_data(void *p, const hid_item_t *h, int32_t data) { unsigned char *buf; unsigned int hpos; unsigned int hsize; - int i, end, offs, mask; + uint32_t mask; + int i; + int end; + int offs; buf = p; hpos = h->pos; /* bit position of data */ Modified: stable/8/lib/libusbhid/usbhid.h ============================================================================== --- stable/8/lib/libusbhid/usbhid.h Tue May 18 02:31:37 2010 (r208247) +++ stable/8/lib/libusbhid/usbhid.h Tue May 18 03:16:02 2010 (r208248) @@ -30,6 +30,7 @@ */ #include +#include typedef struct report_desc *report_desc_t; @@ -105,7 +106,7 @@ int hid_parse_usage_in_page(const char * int hid_parse_usage_page(const char *name); /* Extracting/insertion of data, data.c: */ -int hid_get_data(const void *p, const hid_item_t *h); -void hid_set_data(void *p, const hid_item_t *h, int data); +int32_t hid_get_data(const void *p, const hid_item_t *h); +void hid_set_data(void *p, const hid_item_t *h, int32_t data); __END_DECLS From owner-svn-src-all@FreeBSD.ORG Tue May 18 03:30:07 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6D61E1065672; Tue, 18 May 2010 03:30:07 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mail.cksoft.de (mail.cksoft.de [IPv6:2001:4068:10::3]) by mx1.freebsd.org (Postfix) with ESMTP id 294E08FC15; Tue, 18 May 2010 03:30:07 +0000 (UTC) Received: from localhost (amavis.fra.cksoft.de [192.168.74.71]) by mail.cksoft.de (Postfix) with ESMTP id 887EC41C667; Tue, 18 May 2010 05:30:06 +0200 (CEST) X-Virus-Scanned: amavisd-new at cksoft.de Received: from mail.cksoft.de ([192.168.74.103]) by localhost (amavis.fra.cksoft.de [192.168.74.71]) (amavisd-new, port 10024) with ESMTP id z7bs6qvGnq7W; Tue, 18 May 2010 05:30:05 +0200 (CEST) Received: by mail.cksoft.de (Postfix, from userid 66) id C164441C64C; Tue, 18 May 2010 05:30:05 +0200 (CEST) Received: from maildrop.int.zabbadoz.net (maildrop.int.zabbadoz.net [10.111.66.10]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.int.zabbadoz.net (Postfix) with ESMTP id 4654D4448EC; Tue, 18 May 2010 03:27:34 +0000 (UTC) Date: Tue, 18 May 2010 03:27:33 +0000 (UTC) From: "Bjoern A. Zeeb" X-X-Sender: bz@maildrop.int.zabbadoz.net To: Pyun YongHyeon In-Reply-To: <201005101714.o4AHEFuu015079@svn.freebsd.org> Message-ID: <20100518032628.S23815@maildrop.int.zabbadoz.net> References: <201005101714.o4AHEFuu015079@svn.freebsd.org> X-OpenPGP-Key: 0x14003F198FEFA3E77207EE8D2B58B8F83CCF1842 MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r207851 - head/sys/dev/sge X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 03:30:07 -0000 On Mon, 10 May 2010, Pyun YongHyeon wrote: > Author: yongari > Date: Mon May 10 17:14:14 2010 > New Revision: 207851 > URL: http://svn.freebsd.org/changeset/base/207851 > > Log: > Implement TSO and TSO over VLAN. Increase number of allowed > fragmentation of mbuf chain to 32 from 16 because TSO can send 64KB > sized packet which in turn requires long list of mbuf chain. Due to > lack of documentation, I'm not sure whether driver have to pull up > ethernet/IP/TCP header with options to make controller work but > driver have to parse TCP header to update pseudo TCP checksum > anyway. The controller expects pseudo TCP checksum computed by > upper stack and the checksum should follow the MS NDIS > specification to make TSO work. > > Tested by: xclin cs dot nctu dot edu dot tw > This brings in INET as a dependency for the driver and fails on my nooptions INET nooptions INET6 kernels (in_pseudo()). /bz -- Bjoern A. Zeeb (from 21) Micky Rosa: But as we've all said, this game is about the past and the future, and tonight we forget about the past. We just focus on the future. From owner-svn-src-all@FreeBSD.ORG Tue May 18 04:02:34 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B1C1C1065678; Tue, 18 May 2010 04:02:34 +0000 (UTC) (envelope-from rrs@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9F81F8FC14; Tue, 18 May 2010 04:02:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4I42Y97033212; Tue, 18 May 2010 04:02:34 GMT (envelope-from rrs@svn.freebsd.org) Received: (from rrs@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4I42Yew033206; Tue, 18 May 2010 04:02:34 GMT (envelope-from rrs@svn.freebsd.org) Message-Id: <201005180402.o4I42Yew033206@svn.freebsd.org> From: Randall Stewart Date: Tue, 18 May 2010 04:02:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208249 - in head/sys/mips: include mips rmi sibyte X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 04:02:34 -0000 Author: rrs Date: Tue May 18 04:02:34 2010 New Revision: 208249 URL: http://svn.freebsd.org/changeset/base/208249 Log: Adds JC's cleanup patches that fix it so we call an platform dependant topo function as well as clean up all the XLR specific ifdefs around smp platform init. Obtained from: JC Modified: head/sys/mips/include/hwfunc.h head/sys/mips/mips/mp_machdep.c head/sys/mips/mips/mpboot.S head/sys/mips/rmi/xlr_machdep.c head/sys/mips/sibyte/sb_machdep.c Modified: head/sys/mips/include/hwfunc.h ============================================================================== --- head/sys/mips/include/hwfunc.h Tue May 18 03:16:02 2010 (r208248) +++ head/sys/mips/include/hwfunc.h Tue May 18 04:02:34 2010 (r208249) @@ -93,5 +93,11 @@ extern int platform_processor_id(void); */ extern int platform_num_processors(void); +/* + * Return the topology of processors on this platform + */ +struct cpu_group *platform_smp_topo(void); + + #endif /* SMP */ #endif /* !_MACHINE_HWFUNC_H_ */ Modified: head/sys/mips/mips/mp_machdep.c ============================================================================== --- head/sys/mips/mips/mp_machdep.c Tue May 18 03:16:02 2010 (r208248) +++ head/sys/mips/mips/mp_machdep.c Tue May 18 04:02:34 2010 (r208249) @@ -196,8 +196,7 @@ cpu_mp_announce(void) struct cpu_group * cpu_topo(void) { - - return (smp_topo_none()); + return (platform_smp_topo()); } int @@ -238,10 +237,6 @@ cpu_mp_start(void) void smp_init_secondary(u_int32_t cpuid) { -#ifndef TARGET_XLR_XLS - int ipi_int_mask, clock_int_mask; -#endif - /* TLB */ Mips_SetWIRED(0); Mips_TLBFlush(num_tlbentries); @@ -294,17 +289,6 @@ smp_init_secondary(u_int32_t cpuid) while (smp_started == 0) ; /* nothing */ -#ifndef TARGET_XLR_XLS - /* - * Unmask the clock and ipi interrupts. - */ - clock_int_mask = hard_int_mask(5); - ipi_int_mask = hard_int_mask(platform_ipi_intrnum()); - set_intr_mask(ALL_INT_MASK & ~(ipi_int_mask | clock_int_mask)); -#else - platform_init_ap(cpuid); -#endif - /* * Bootstrap the compare register. */ Modified: head/sys/mips/mips/mpboot.S ============================================================================== --- head/sys/mips/mips/mpboot.S Tue May 18 03:16:02 2010 (r208248) +++ head/sys/mips/mips/mpboot.S Tue May 18 04:02:34 2010 (r208249) @@ -76,10 +76,8 @@ GLOBAL(mpentry) PTR_LA gp, _C_LABEL(_gp) -#ifndef TARGET_XLR_XLS jal platform_init_ap move a0, s0 -#endif jal smp_init_secondary move a0, s0 Modified: head/sys/mips/rmi/xlr_machdep.c ============================================================================== --- head/sys/mips/rmi/xlr_machdep.c Tue May 18 03:16:02 2010 (r208248) +++ head/sys/mips/rmi/xlr_machdep.c Tue May 18 04:02:34 2010 (r208249) @@ -534,6 +534,8 @@ void platform_init_ap(int processor_id) /* Setup interrupts for secondary CPUs here */ stat = mips_rd_status(); + KASSERT((stat & MIPS_SR_INT_IE) == 0, + ("Interrupts enabled in %s!", __func__)); stat |= MIPS_SR_COP_2_BIT | MIPS_SR_COP_0_BIT; mips_wr_status(stat); @@ -570,4 +572,11 @@ int platform_num_processors(void) { return fls(xlr_boot1_info.cpu_online_map); } + +struct cpu_group * +platform_smp_topo() +{ + return (smp_topo_2level(CG_SHARE_L2, platform_num_processors() / 4, + CG_SHARE_L1, 4, CG_FLAG_THREAD)); +} #endif Modified: head/sys/mips/sibyte/sb_machdep.c ============================================================================== --- head/sys/mips/sibyte/sb_machdep.c Tue May 18 03:16:02 2010 (r208248) +++ head/sys/mips/sibyte/sb_machdep.c Tue May 18 04:02:34 2010 (r208249) @@ -344,9 +344,16 @@ platform_ipi_intrnum(void) return (4); } +struct cpu_group * +platform_smp_topo(void) +{ + return (smp_topo_none()); +} + void platform_init_ap(int cpuid) { + int ipi_int_mask, clock_int_mask; KASSERT(cpuid == 1, ("AP has an invalid cpu id %d", cpuid)); @@ -356,6 +363,13 @@ platform_init_ap(int cpuid) kseg0_map_coherent(); sb_intr_init(cpuid); + + /* + * Unmask the clock and ipi interrupts. + */ + clock_int_mask = hard_int_mask(5); + ipi_int_mask = hard_int_mask(platform_ipi_intrnum()); + set_intr_mask(ALL_INT_MASK & ~(ipi_int_mask | clock_int_mask)); } int From owner-svn-src-all@FreeBSD.ORG Tue May 18 04:08:58 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A8C68106566B; Tue, 18 May 2010 04:08:58 +0000 (UTC) (envelope-from rrs@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7DC888FC16; Tue, 18 May 2010 04:08:58 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4I48wjK034645; Tue, 18 May 2010 04:08:58 GMT (envelope-from rrs@svn.freebsd.org) Received: (from rrs@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4I48weH034643; Tue, 18 May 2010 04:08:58 GMT (envelope-from rrs@svn.freebsd.org) Message-Id: <201005180408.o4I48weH034643@svn.freebsd.org> From: Randall Stewart Date: Tue, 18 May 2010 04:08:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208250 - head/sys/mips/rmi X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 04:08:58 -0000 Author: rrs Date: Tue May 18 04:08:58 2010 New Revision: 208250 URL: http://svn.freebsd.org/changeset/base/208250 Log: Adds the file I forgot to add... that handles the mpwait.S for RMI Approved by: JC Added: head/sys/mips/rmi/mpwait.S (contents, props changed) Added: head/sys/mips/rmi/mpwait.S ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/mips/rmi/mpwait.S Tue May 18 04:08:58 2010 (r208250) @@ -0,0 +1,68 @@ +/*- + * Copyright (c) 2010 RMI Technologies Ltd. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#include +#include +#include + +#include "assym.s" + + .text + .set noat + .set noreorder + +/* + * On XLR the slave processors and threads will be executing boot + * loader code on startup. We need to make them run our code before + * blowing away boot loader memory. + */ +LEAF(mpwait) + PTR_LA gp, _C_LABEL(_gp) + PTR_LA t1, _C_LABEL(xlr_ap_release) + mfc0 t2, $15, 1 + andi t2, 0x1f + sll t2, t2, 2 + add t1, t2 + +1: lw t0, 0(t1) + bnez t0, 2f + nop /* We should not busy wait in core0 threads */ + nop /* on bootup, this will slow the cpu0 thread */ + nop /* down - TODO - wait with IPI based wakeup */ + nop + nop + nop + nop + nop + j 1b + nop +2: + PTR_LA t1, _C_LABEL(mpentry) + jr t1 + nop +END(mpwait) From owner-svn-src-all@FreeBSD.ORG Tue May 18 04:20:36 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2AEFC106566C; Tue, 18 May 2010 04:20:36 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id F35598FC17; Tue, 18 May 2010 04:20:35 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4I4KZ7M037208; Tue, 18 May 2010 04:20:35 GMT (envelope-from bz@svn.freebsd.org) Received: (from bz@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4I4KZjE037205; Tue, 18 May 2010 04:20:35 GMT (envelope-from bz@svn.freebsd.org) Message-Id: <201005180420.o4I4KZjE037205@svn.freebsd.org> From: "Bjoern A. Zeeb" Date: Tue, 18 May 2010 04:20:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208251 - in stable/8/sys: kern net X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 04:20:36 -0000 Author: bz Date: Tue May 18 04:20:35 2010 New Revision: 208251 URL: http://svn.freebsd.org/changeset/base/208251 Log: MFC r208100: Fix an issue with the dynamic pcpu/vnet data allocators. We cannot expect that modspace is the last entry in the linker set and thus that modspace + possible extra space up to PAGE_SIZE would be contiguous. For the moment do not support more than *_MODMIN space and ignore the extra space. Discussed with: jeff, rwatson (briefly) Reviewed by: jeff Sponsored by: The FreeBSD Foundation Sponsored by: CK Software GmbH Modified: stable/8/sys/kern/subr_pcpu.c stable/8/sys/net/vnet.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/kern/subr_pcpu.c ============================================================================== --- stable/8/sys/kern/subr_pcpu.c Tue May 18 04:08:58 2010 (r208250) +++ stable/8/sys/kern/subr_pcpu.c Tue May 18 04:20:35 2010 (r208251) @@ -125,7 +125,7 @@ dpcpu_startup(void *dummy __unused) df = malloc(sizeof(*df), M_PCPU, M_WAITOK | M_ZERO); df->df_start = (uintptr_t)&DPCPU_NAME(modspace); - df->df_len = DPCPU_MODSIZE; + df->df_len = DPCPU_MODMIN; TAILQ_INSERT_HEAD(&dpcpu_head, df, df_link); sx_init(&dpcpu_lock, "dpcpu alloc lock"); } Modified: stable/8/sys/net/vnet.c ============================================================================== --- stable/8/sys/net/vnet.c Tue May 18 04:08:58 2010 (r208250) +++ stable/8/sys/net/vnet.c Tue May 18 04:20:35 2010 (r208251) @@ -357,7 +357,7 @@ vnet_data_startup(void *dummy __unused) df = malloc(sizeof(*df), M_VNET_DATA_FREE, M_WAITOK | M_ZERO); df->vnd_start = (uintptr_t)&VNET_NAME(modspace); - df->vnd_len = VNET_MODSIZE; + df->vnd_len = VNET_MODMIN; TAILQ_INSERT_HEAD(&vnet_data_free_head, df, vnd_link); sx_init(&vnet_data_free_lock, "vnet_data alloc lock"); } From owner-svn-src-all@FreeBSD.ORG Tue May 18 04:21:50 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7D323106564A; Tue, 18 May 2010 04:21:50 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6B4A98FC1A; Tue, 18 May 2010 04:21:50 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4I4Lolw037506; Tue, 18 May 2010 04:21:50 GMT (envelope-from bz@svn.freebsd.org) Received: (from bz@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4I4LoxN037504; Tue, 18 May 2010 04:21:50 GMT (envelope-from bz@svn.freebsd.org) Message-Id: <201005180421.o4I4LoxN037504@svn.freebsd.org> From: "Bjoern A. Zeeb" Date: Tue, 18 May 2010 04:21:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208252 - stable/8/sbin/ifconfig X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 04:21:50 -0000 Author: bz Date: Tue May 18 04:21:50 2010 New Revision: 208252 URL: http://svn.freebsd.org/changeset/base/208252 Log: MFC r208077: Document the 'short preamble' capability for 802.11bg. Reviewed by: sam Modified: stable/8/sbin/ifconfig/ifconfig.8 Directory Properties: stable/8/sbin/ifconfig/ (props changed) Modified: stable/8/sbin/ifconfig/ifconfig.8 ============================================================================== --- stable/8/sbin/ifconfig/ifconfig.8 Tue May 18 04:20:35 2010 (r208251) +++ stable/8/sbin/ifconfig/ifconfig.8 Tue May 18 04:21:50 2010 (r208252) @@ -28,7 +28,7 @@ .\" From: @(#)ifconfig.8 8.3 (Berkeley) 1/5/94 .\" $FreeBSD$ .\" -.Dd February 20, 2010 +.Dd May 14, 2010 .Dt IFCONFIG 8 .Os .Sh NAME @@ -1278,6 +1278,10 @@ Quality of Service (QoS). Indicates that the station is using QoS encapsulation for data frame. QoS encapsulation is enabled only when WME mode is enabled. +.It Li S +Short Preamble. +Indicates that the station is doing short preamble to optionally +improve throughput performance with 802.11g and 802.11b. .It Li T Transitional Security Network (TSN). Indicates that the station associated using TSN; see also @@ -1352,6 +1356,10 @@ Quality of Service (QoS). Indicates that the station is using QoS encapsulation for data frame. QoS encapsulation is enabled only when WME mode is enabled. +.It Li S +Short Preamble. +Indicates that the station is doing short preamble to optionally +improve throughput performance with 802.11g and 802.11b. .It Li T Transitional Security Network (TSN). Indicates that the station associated using TSN; see also From owner-svn-src-all@FreeBSD.ORG Tue May 18 05:12:55 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4FC4A106566C; Tue, 18 May 2010 05:12:55 +0000 (UTC) (envelope-from neel@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3E26C8FC0C; Tue, 18 May 2010 05:12:55 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4I5Ct1Z048758; Tue, 18 May 2010 05:12:55 GMT (envelope-from neel@svn.freebsd.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4I5CtwH048756; Tue, 18 May 2010 05:12:55 GMT (envelope-from neel@svn.freebsd.org) Message-Id: <201005180512.o4I5CtwH048756@svn.freebsd.org> From: Neel Natu Date: Tue, 18 May 2010 05:12:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208253 - head/sys/mips/sibyte X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 05:12:55 -0000 Author: neel Date: Tue May 18 05:12:54 2010 New Revision: 208253 URL: http://svn.freebsd.org/changeset/base/208253 Log: Fix Sibyte SMP kernel breakage caused by r208249. We need to include the header file that provides declaration of the smp_topo_none() function. Modified: head/sys/mips/sibyte/sb_machdep.c Modified: head/sys/mips/sibyte/sb_machdep.c ============================================================================== --- head/sys/mips/sibyte/sb_machdep.c Tue May 18 04:21:50 2010 (r208252) +++ head/sys/mips/sibyte/sb_machdep.c Tue May 18 05:12:54 2010 (r208253) @@ -76,6 +76,7 @@ __FBSDID("$FreeBSD$"); #include #ifdef SMP +#include #include #endif @@ -347,6 +348,7 @@ platform_ipi_intrnum(void) struct cpu_group * platform_smp_topo(void) { + return (smp_topo_none()); } From owner-svn-src-all@FreeBSD.ORG Tue May 18 05:18:21 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A1D161065673; Tue, 18 May 2010 05:18:21 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 902418FC1B; Tue, 18 May 2010 05:18:21 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4I5ILlZ049961; Tue, 18 May 2010 05:18:21 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4I5ILXU049959; Tue, 18 May 2010 05:18:21 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201005180518.o4I5ILXU049959@svn.freebsd.org> From: Rick Macklem Date: Tue, 18 May 2010 05:18:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208254 - head/sys/fs/nfsclient X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 05:18:21 -0000 Author: rmacklem Date: Tue May 18 05:18:21 2010 New Revision: 208254 URL: http://svn.freebsd.org/changeset/base/208254 Log: Allow the experimental NFSv4 client to use cached attributes when a write delegation is held. Also, add a missing mtx_unlock() call for the ACL debugging code. MFC after: 5 days Modified: head/sys/fs/nfsclient/nfs_clsubs.c Modified: head/sys/fs/nfsclient/nfs_clsubs.c ============================================================================== --- head/sys/fs/nfsclient/nfs_clsubs.c Tue May 18 05:12:54 2010 (r208253) +++ head/sys/fs/nfsclient/nfs_clsubs.c Tue May 18 05:18:21 2010 (r208254) @@ -188,11 +188,12 @@ ncl_getattrcache(struct vnode *vp, struc struct nfsnode *np; struct vattr *vap; struct nfsmount *nmp; - int timeo; + int timeo, mustflush; np = VTONFS(vp); vap = &np->n_vattr.na_vattr; nmp = VFSTONFS(vp->v_mount); + mustflush = nfscl_mustflush(vp); /* must be before mtx_lock() */ #ifdef NFS_ACDEBUG mtx_lock(&Giant); /* ncl_printf() */ #endif @@ -228,9 +229,13 @@ ncl_getattrcache(struct vnode *vp, struc (time_second - np->n_attrstamp), timeo); #endif - if ((time_second - np->n_attrstamp) >= timeo) { + if ((time_second - np->n_attrstamp) >= timeo && + mustflush != 0) { newnfsstats.attrcache_misses++; mtx_unlock(&np->n_mtx); +#ifdef NFS_ACDEBUG + mtx_unlock(&Giant); /* ncl_printf() */ +#endif return( ENOENT); } newnfsstats.attrcache_hits++; From owner-svn-src-all@FreeBSD.ORG Tue May 18 07:45:28 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3D44C1065670; Tue, 18 May 2010 07:45:28 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 299678FC15; Tue, 18 May 2010 07:45:28 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4I7jS7k082306; Tue, 18 May 2010 07:45:28 GMT (envelope-from mm@svn.freebsd.org) Received: (from mm@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4I7jSF5082301; Tue, 18 May 2010 07:45:28 GMT (envelope-from mm@svn.freebsd.org) Message-Id: <201005180745.o4I7jSF5082301@svn.freebsd.org> From: Martin Matuska Date: Tue, 18 May 2010 07:45:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208255 - in stable/8: cddl/contrib/opensolaris/cmd/zfs sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 07:45:28 -0000 Author: mm Date: Tue May 18 07:45:27 2010 New Revision: 208255 URL: http://svn.freebsd.org/changeset/base/208255 Log: MFC r207626, r207627: MFC r207626: Speed up ZFS list operation with objset prefetching. MFC r207627: Enable "zfs list" to list explicitly requested snapshots. OpenSolaris onnv revisions: 8415:8809e849f63e, 10474:0e96dd3b905a (partial) PR: kern/146297 Approved by: pjd, delphij (mentor) Obtained from: OpenSolaris (Bug ID 6386929, 6758338, 6755389, 6847118) Modified: stable/8/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Directory Properties: stable/8/cddl/contrib/opensolaris/ (props changed) stable/8/cddl/contrib/opensolaris/cmd/zdb/ (props changed) stable/8/cddl/contrib/opensolaris/cmd/zfs/ (props changed) stable/8/cddl/contrib/opensolaris/lib/libzfs/ (props changed) stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c ============================================================================== --- stable/8/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Tue May 18 05:18:21 2010 (r208254) +++ stable/8/cddl/contrib/opensolaris/cmd/zfs/zfs_main.c Tue May 18 07:45:27 2010 (r208255) @@ -1790,7 +1790,7 @@ zfs_do_list(int argc, char **argv) boolean_t scripted = B_FALSE; static char default_fields[] = "name,used,available,referenced,mountpoint"; - int types = ZFS_TYPE_FILESYSTEM | ZFS_TYPE_VOLUME; + int types = ZFS_TYPE_DATASET; boolean_t types_specified = B_FALSE; char *fields = NULL; list_cbdata_t cb = { 0 }; Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c ============================================================================== --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c Tue May 18 05:18:21 2010 (r208254) +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_objset.c Tue May 18 07:45:27 2010 (r208255) @@ -1213,6 +1213,39 @@ dmu_objset_find_spa(spa_t *spa, const ch return (err); } +/* ARGSUSED */ +int +dmu_objset_prefetch(char *name, void *arg) +{ + dsl_dataset_t *ds; + + if (dsl_dataset_hold(name, FTAG, &ds)) + return (0); + + if (!BP_IS_HOLE(&ds->ds_phys->ds_bp)) { + mutex_enter(&ds->ds_opening_lock); + if (!dsl_dataset_get_user_ptr(ds)) { + uint32_t aflags = ARC_NOWAIT | ARC_PREFETCH; + zbookmark_t zb; + + zb.zb_objset = ds->ds_object; + zb.zb_object = 0; + zb.zb_level = -1; + zb.zb_blkid = 0; + + (void) arc_read_nolock(NULL, dsl_dataset_get_spa(ds), + &ds->ds_phys->ds_bp, NULL, NULL, + ZIO_PRIORITY_ASYNC_READ, + ZIO_FLAG_CANFAIL | ZIO_FLAG_SPECULATIVE, + &aflags, &zb); + } + mutex_exit(&ds->ds_opening_lock); + } + + dsl_dataset_rele(ds, FTAG); + return (0); +} + void dmu_objset_set_user(objset_t *os, void *user_ptr) { Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h ============================================================================== --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h Tue May 18 05:18:21 2010 (r208254) +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_objset.h Tue May 18 07:45:27 2010 (r208255) @@ -26,8 +26,6 @@ #ifndef _SYS_DMU_OBJSET_H #define _SYS_DMU_OBJSET_H -#pragma ident "%Z%%M% %I% %E% SMI" - #include #include #include @@ -118,6 +116,7 @@ int dmu_objset_find(char *name, int func int flags); int dmu_objset_find_spa(spa_t *spa, const char *name, int func(spa_t *, uint64_t, const char *, void *), void *arg, int flags); +int dmu_objset_prefetch(char *name, void *arg); void dmu_objset_byteswap(void *buf, size_t size); int dmu_objset_evict_dbufs(objset_t *os); Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c ============================================================================== --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Tue May 18 05:18:21 2010 (r208254) +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Tue May 18 07:45:27 2010 (r208255) @@ -1349,6 +1349,14 @@ zfs_ioc_dataset_list_next(zfs_cmd_t *zc) (void) strlcat(zc->zc_name, "/", sizeof (zc->zc_name)); p = zc->zc_name + strlen(zc->zc_name); + if (zc->zc_cookie == 0) { + uint64_t cookie = 0; + int len = sizeof (zc->zc_name) - (p - zc->zc_name); + + while (dmu_dir_list_next(os, len, p, NULL, &cookie) == 0) + dmu_objset_prefetch(p, NULL); + } + do { error = dmu_dir_list_next(os, sizeof (zc->zc_name) - (p - zc->zc_name), p, @@ -1387,6 +1395,9 @@ zfs_ioc_snapshot_list_next(zfs_cmd_t *zc objset_t *os; int error; + if (zc->zc_cookie == 0) + dmu_objset_find(zc->zc_name, dmu_objset_prefetch, + NULL, DS_FIND_SNAPSHOTS); error = dmu_objset_open(zc->zc_name, DMU_OST_ANY, DS_MODE_USER | DS_MODE_READONLY, &os); if (error) From owner-svn-src-all@FreeBSD.ORG Tue May 18 08:55:24 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 47051106564A; Tue, 18 May 2010 08:55:24 +0000 (UTC) (envelope-from rdivacky@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 33D9F8FC0A; Tue, 18 May 2010 08:55:24 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4I8tO9o097840; Tue, 18 May 2010 08:55:24 GMT (envelope-from rdivacky@svn.freebsd.org) Received: (from rdivacky@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4I8tOcm097836; Tue, 18 May 2010 08:55:24 GMT (envelope-from rdivacky@svn.freebsd.org) Message-Id: <201005180855.o4I8tOcm097836@svn.freebsd.org> From: Roman Divacky Date: Tue, 18 May 2010 08:55:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208256 - in head/libexec/rtld-elf: . amd64 arm i386 powerpc sparc64 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 08:55:24 -0000 Author: rdivacky Date: Tue May 18 08:55:23 2010 New Revision: 208256 URL: http://svn.freebsd.org/changeset/base/208256 Log: Only use the cache after the early stage of loading. This is because calling mmap() etc. may use GOT which is not set up yet. Use calloc() instead of mmap() in cases where this was the case before (sparc64, powerpc, arm). Submitted by: Dimitry Andric (dimitry andric com) Reviewed by: kan Approved by: ed (mentor) Modified: head/libexec/rtld-elf/amd64/reloc.c head/libexec/rtld-elf/arm/reloc.c head/libexec/rtld-elf/i386/reloc.c head/libexec/rtld-elf/powerpc/reloc.c head/libexec/rtld-elf/rtld.c head/libexec/rtld-elf/sparc64/reloc.c Modified: head/libexec/rtld-elf/amd64/reloc.c ============================================================================== --- head/libexec/rtld-elf/amd64/reloc.c Tue May 18 07:45:27 2010 (r208255) +++ head/libexec/rtld-elf/amd64/reloc.c Tue May 18 08:55:23 2010 (r208256) @@ -118,15 +118,16 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry const Elf_Rela *relalim; const Elf_Rela *rela; SymCache *cache; - int bytes = obj->nchains * sizeof(SymCache); int r = -1; /* * The dynamic loader may be called from a thread, we have * limited amounts of stack available so we cannot use alloca(). */ - cache = mmap(NULL, bytes, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0); - if (cache == MAP_FAILED) + if (obj != obj_rtld) { + cache = calloc(obj->nchains, sizeof(SymCache)); + /* No need to check for NULL here */ + } else cache = NULL; relalim = (const Elf_Rela *) ((caddr_t) obj->rela + obj->relasize); @@ -322,8 +323,8 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry } r = 0; done: - if (cache) - munmap(cache, bytes); + if (cache != NULL) + free(cache); return(r); } Modified: head/libexec/rtld-elf/arm/reloc.c ============================================================================== --- head/libexec/rtld-elf/arm/reloc.c Tue May 18 07:45:27 2010 (r208255) +++ head/libexec/rtld-elf/arm/reloc.c Tue May 18 08:55:23 2010 (r208256) @@ -245,7 +245,6 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry const Elf_Rel *rellim; const Elf_Rel *rel; SymCache *cache; - int bytes = obj->nchains * sizeof(SymCache); int r = -1; /* The relocation for the dynamic loader has already been done. */ @@ -255,10 +254,9 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry * The dynamic loader may be called from a thread, we have * limited amounts of stack available so we cannot use alloca(). */ - cache = mmap(NULL, bytes, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0); - if (cache == MAP_FAILED) - cache = NULL; - + cache = calloc(obj->nchains, sizeof(SymCache)); + /* No need to check for NULL here */ + rellim = (const Elf_Rel *)((caddr_t)obj->rel + obj->relsize); for (rel = obj->rel; rel < rellim; rel++) { if (reloc_nonplt_object(obj, rel, cache) < 0) @@ -266,9 +264,8 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry } r = 0; done: - if (cache) { - munmap(cache, bytes); - } + if (cache != NULL) + free(cache); return (r); } Modified: head/libexec/rtld-elf/i386/reloc.c ============================================================================== --- head/libexec/rtld-elf/i386/reloc.c Tue May 18 07:45:27 2010 (r208255) +++ head/libexec/rtld-elf/i386/reloc.c Tue May 18 08:55:23 2010 (r208256) @@ -119,15 +119,16 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry const Elf_Rel *rellim; const Elf_Rel *rel; SymCache *cache; - int bytes = obj->nchains * sizeof(SymCache); int r = -1; /* * The dynamic loader may be called from a thread, we have * limited amounts of stack available so we cannot use alloca(). */ - cache = mmap(NULL, bytes, PROT_READ|PROT_WRITE, MAP_ANON, -1, 0); - if (cache == MAP_FAILED) + if (obj != obj_rtld) { + cache = calloc(obj->nchains, sizeof(SymCache)); + /* No need to check for NULL here */ + } else cache = NULL; rellim = (const Elf_Rel *) ((caddr_t) obj->rel + obj->relsize); @@ -273,8 +274,8 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry } r = 0; done: - if (cache) - munmap(cache, bytes); + if (cache != NULL) + free(cache); return(r); } Modified: head/libexec/rtld-elf/powerpc/reloc.c ============================================================================== --- head/libexec/rtld-elf/powerpc/reloc.c Tue May 18 07:45:27 2010 (r208255) +++ head/libexec/rtld-elf/powerpc/reloc.c Tue May 18 08:55:23 2010 (r208256) @@ -287,7 +287,6 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry const Elf_Rela *relalim; const Elf_Rela *rela; SymCache *cache; - int bytes = obj->nchains * sizeof(SymCache); int r = -1; /* @@ -295,10 +294,8 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry * limited amounts of stack available so we cannot use alloca(). */ if (obj != obj_rtld) { - cache = mmap(NULL, bytes, PROT_READ|PROT_WRITE, MAP_ANON, - -1, 0); - if (cache == MAP_FAILED) - cache = NULL; + cache = calloc(obj->nchains, sizeof(SymCache)); + /* No need to check for NULL here */ } else cache = NULL; @@ -314,9 +311,8 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry } r = 0; done: - if (cache) { - munmap(cache, bytes); - } + if (cache != NULL) + free(cache); return (r); } Modified: head/libexec/rtld-elf/rtld.c ============================================================================== --- head/libexec/rtld-elf/rtld.c Tue May 18 07:45:27 2010 (r208255) +++ head/libexec/rtld-elf/rtld.c Tue May 18 08:55:23 2010 (r208256) @@ -3311,6 +3311,10 @@ allocate_module_tls(int index) } p = malloc(obj->tlssize); + if (p == NULL) { + _rtld_error("Cannot allocate TLS block for index %d", index); + die(); + } memcpy(p, obj->tlsinit, obj->tlsinitsize); memset(p + obj->tlsinitsize, 0, obj->tlssize - obj->tlsinitsize); Modified: head/libexec/rtld-elf/sparc64/reloc.c ============================================================================== --- head/libexec/rtld-elf/sparc64/reloc.c Tue May 18 07:45:27 2010 (r208255) +++ head/libexec/rtld-elf/sparc64/reloc.c Tue May 18 08:55:23 2010 (r208256) @@ -254,7 +254,6 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry const Elf_Rela *relalim; const Elf_Rela *rela; SymCache *cache; - int bytes = obj->nchains * sizeof(SymCache); int r = -1; /* @@ -262,10 +261,8 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry * limited amounts of stack available so we cannot use alloca(). */ if (obj != obj_rtld) { - cache = mmap(NULL, bytes, PROT_READ|PROT_WRITE, MAP_ANON, - -1, 0); - if (cache == MAP_FAILED) - cache = NULL; + cache = calloc(obj->nchains, sizeof(SymCache)); + /* No need to check for NULL here */ } else cache = NULL; @@ -276,8 +273,8 @@ reloc_non_plt(Obj_Entry *obj, Obj_Entry } r = 0; done: - if (cache) - munmap(cache, bytes); + if (cache != NULL) + free(cache); return (r); } From owner-svn-src-all@FreeBSD.ORG Tue May 18 09:59:10 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5DDF3106564A; Tue, 18 May 2010 09:59:10 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4A7C28FC14; Tue, 18 May 2010 09:59:10 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4I9xA5N012278; Tue, 18 May 2010 09:59:10 GMT (envelope-from mm@svn.freebsd.org) Received: (from mm@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4I9xAsu012265; Tue, 18 May 2010 09:59:10 GMT (envelope-from mm@svn.freebsd.org) Message-Id: <201005180959.o4I9xAsu012265@svn.freebsd.org> From: Martin Matuska Date: Tue, 18 May 2010 09:59:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208258 - in stable/8: contrib/top etc/mtree lib lib/liblzma lib/libusb share/mk usr.bin usr.bin/less usr.bin/lzmainfo usr.bin/xz usr.bin/xzdec X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 09:59:10 -0000 Author: mm Date: Tue May 18 09:59:09 2010 New Revision: 208258 URL: http://svn.freebsd.org/changeset/base/208258 Log: MFC r207842, r207844, r208099: MFC r207842: Import of liblzma, xz, xzdec, lzmainfo from vendor branch Add support for xz and lzma to lesspipe.sh (xzless, lzless) MFC r207844: Add two public headers missing in r207842 Adjust CFLAGS for lzmainfo, xz, xzdec MFC r208099: Add versioned symbols to liblzma Use default SHLIB_MAJOR. Approved by: delphij (mentor) Added: - copied from r207842, head/contrib/xz/ - copied from r207842, head/lib/liblzma/ stable/8/lib/liblzma/Symbol.map - copied unchanged from r208099, head/lib/liblzma/Symbol.map stable/8/lib/liblzma/Versions.def - copied unchanged from r208099, head/lib/liblzma/Versions.def stable/8/usr.bin/lzmainfo/ - copied from r207842, head/usr.bin/lzmainfo/ stable/8/usr.bin/xz/ - copied from r207842, head/usr.bin/xz/ stable/8/usr.bin/xzdec/ - copied from r207842, head/usr.bin/xzdec/ Directory Properties: stable/8/contrib/xz/ (props changed) stable/8/lib/liblzma/ (props changed) Modified: stable/8/etc/mtree/BSD.include.dist stable/8/lib/Makefile stable/8/lib/liblzma/Makefile stable/8/share/mk/bsd.libnames.mk stable/8/usr.bin/Makefile stable/8/usr.bin/less/Makefile stable/8/usr.bin/less/lesspipe.sh stable/8/usr.bin/lzmainfo/Makefile stable/8/usr.bin/xz/Makefile stable/8/usr.bin/xzdec/Makefile Directory Properties: stable/8/contrib/ (props changed) stable/8/contrib/bind9/ (props changed) stable/8/contrib/bsnmp/ (props changed) stable/8/contrib/bzip2/ (props changed) stable/8/contrib/csup/ (props changed) stable/8/contrib/ee/ (props changed) stable/8/contrib/expat/ (props changed) stable/8/contrib/file/ (props changed) stable/8/contrib/gcc/ (props changed) stable/8/contrib/gdb/ (props changed) stable/8/contrib/gdtoa/ (props changed) stable/8/contrib/groff/ (props changed) stable/8/contrib/less/ (props changed) stable/8/contrib/libpcap/ (props changed) stable/8/contrib/ncurses/ (props changed) stable/8/contrib/netcat/ (props changed) stable/8/contrib/ntp/ (props changed) stable/8/contrib/one-true-awk/ (props changed) stable/8/contrib/openbsm/ (props changed) stable/8/contrib/openpam/ (props changed) stable/8/contrib/pf/ (props changed) stable/8/contrib/sendmail/ (props changed) stable/8/contrib/tcp_wrappers/ (props changed) stable/8/contrib/tcpdump/ (props changed) stable/8/contrib/tcsh/ (props changed) stable/8/contrib/telnet/ (props changed) stable/8/contrib/top/ (props changed) stable/8/contrib/top/install-sh (props changed) stable/8/contrib/traceroute/ (props changed) stable/8/contrib/wpa/ (props changed) stable/8/etc/ (props changed) stable/8/lib/ (props changed) stable/8/lib/bind/ (props changed) stable/8/lib/csu/ (props changed) stable/8/lib/libarchive/ (props changed) stable/8/lib/libbluetooth/ (props changed) stable/8/lib/libc/ (props changed) stable/8/lib/libc/stdtime/ (props changed) stable/8/lib/libc_r/ (props changed) stable/8/lib/libdevinfo/ (props changed) stable/8/lib/libdisk/ (props changed) stable/8/lib/libelf/ (props changed) stable/8/lib/libexpat/ (props changed) stable/8/lib/libfetch/ (props changed) stable/8/lib/libgpib/ (props changed) stable/8/lib/libgssapi/ (props changed) stable/8/lib/libjail/ (props changed) stable/8/lib/libkse/ (props changed) stable/8/lib/libkvm/ (props changed) stable/8/lib/libpam/ (props changed) stable/8/lib/libpmc/ (props changed) stable/8/lib/libradius/ (props changed) stable/8/lib/librpcsec_gss/ (props changed) stable/8/lib/libsm/ (props changed) stable/8/lib/libstand/ (props changed) stable/8/lib/libtacplus/ (props changed) stable/8/lib/libthr/ (props changed) stable/8/lib/libufs/ (props changed) stable/8/lib/libusb/ (props changed) stable/8/lib/libusb/usb.h (props changed) stable/8/lib/libusbhid/ (props changed) stable/8/lib/libutil/ (props changed) stable/8/lib/libz/ (props changed) stable/8/lib/libz/contrib/ (props changed) stable/8/lib/msun/ (props changed) stable/8/share/mk/ (props changed) stable/8/usr.bin/ (props changed) stable/8/usr.bin/awk/ (props changed) stable/8/usr.bin/biff/ (props changed) stable/8/usr.bin/calendar/ (props changed) stable/8/usr.bin/catman/ (props changed) stable/8/usr.bin/comm/ (props changed) stable/8/usr.bin/cpio/ (props changed) stable/8/usr.bin/csup/ (props changed) stable/8/usr.bin/fetch/ (props changed) stable/8/usr.bin/find/ (props changed) stable/8/usr.bin/finger/ (props changed) stable/8/usr.bin/fstat/ (props changed) stable/8/usr.bin/gcore/ (props changed) stable/8/usr.bin/gzip/ (props changed) stable/8/usr.bin/hexdump/ (props changed) stable/8/usr.bin/indent/ (props changed) stable/8/usr.bin/kdump/ (props changed) stable/8/usr.bin/locale/ (props changed) stable/8/usr.bin/look/ (props changed) stable/8/usr.bin/makewhatis/ (props changed) stable/8/usr.bin/minigzip/ (props changed) stable/8/usr.bin/netstat/ (props changed) stable/8/usr.bin/pathchk/ (props changed) stable/8/usr.bin/perror/ (props changed) stable/8/usr.bin/procstat/ (props changed) stable/8/usr.bin/script/ (props changed) stable/8/usr.bin/sockstat/ (props changed) stable/8/usr.bin/stat/ (props changed) stable/8/usr.bin/systat/ (props changed) stable/8/usr.bin/tftp/ (props changed) stable/8/usr.bin/touch/ (props changed) stable/8/usr.bin/truss/ (props changed) stable/8/usr.bin/unifdef/ (props changed) stable/8/usr.bin/uniq/ (props changed) stable/8/usr.bin/unzip/ (props changed) stable/8/usr.bin/vmstat/ (props changed) stable/8/usr.bin/w/ (props changed) stable/8/usr.bin/whois/ (props changed) stable/8/usr.bin/xlint/ (props changed) Modified: stable/8/etc/mtree/BSD.include.dist ============================================================================== --- stable/8/etc/mtree/BSD.include.dist Tue May 18 09:15:26 2010 (r208257) +++ stable/8/etc/mtree/BSD.include.dist Tue May 18 09:59:09 2010 (r208258) @@ -205,6 +205,8 @@ .. lwres .. + lzma + .. machine pc .. Modified: stable/8/lib/Makefile ============================================================================== --- stable/8/lib/Makefile Tue May 18 09:15:26 2010 (r208257) +++ stable/8/lib/Makefile Tue May 18 09:59:09 2010 (r208258) @@ -75,6 +75,7 @@ SUBDIR= ${SUBDIR_ORDERED} \ ${_libipx} \ libjail \ libkiconv \ + liblzma \ libmagic \ libmemstat \ ${_libmilter} \ Modified: stable/8/lib/liblzma/Makefile ============================================================================== --- head/lib/liblzma/Makefile Mon May 10 06:59:50 2010 (r207842) +++ stable/8/lib/liblzma/Makefile Tue May 18 09:59:09 2010 (r208258) @@ -1,7 +1,6 @@ # $FreeBSD$ -LIB= lzma -SHLIB_MAJOR= 0 +LIB= lzma LZMADIR= ${.CURDIR}/../../contrib/xz/src/liblzma .PATH: ${LZMADIR}/../common @@ -19,6 +18,8 @@ LZMAINCS+= base.h \ container.h \ delta.h \ filter.h \ + hardware.h \ + index.h \ index_hash.h \ lzma.h \ stream_flags.h \ @@ -120,6 +121,7 @@ SRCS+= simple_coder.c \ WARNS?= 3 CFLAGS+= -DHAVE_CONFIG_H \ + -DTUKLIB_SYMBOL_PREFIX=lzma_ \ -I${.CURDIR} \ -I${LZMADIR}/api \ -I${LZMADIR}/common \ @@ -132,4 +134,8 @@ CFLAGS+= -DHAVE_CONFIG_H \ -I${LZMADIR}/simple \ -I${LZMADIR}/../common +VERSION_DEF= ${.CURDIR}/Versions.def +SYMBOL_MAPS= ${.CURDIR}/Symbol.map +CFLAGS+= -DSYMBOL_VERSIONING + .include Copied: stable/8/lib/liblzma/Symbol.map (from r208099, head/lib/liblzma/Symbol.map) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/lib/liblzma/Symbol.map Tue May 18 09:59:09 2010 (r208258, copy of r208099, head/lib/liblzma/Symbol.map) @@ -0,0 +1,189 @@ +/* + * $FreeBSD$ + */ + +XZ_5.0 { + lzma_alone_decoder; + lzma_alone_encoder; + lzma_auto_decoder; + lzma_block_buffer_bound; + lzma_block_buffer_decode; + lzma_block_buffer_encode; + lzma_block_compressed_size; + lzma_block_decoder; + lzma_block_encoder; + lzma_block_header_decode; + lzma_block_header_encode; + lzma_block_header_size; + lzma_block_total_size; + lzma_block_unpadded_size; + lzma_check_is_supported; + lzma_check_size; + lzma_code; + lzma_crc32; + lzma_crc64; + lzma_easy_buffer_encode; + lzma_easy_decoder_memusage; + lzma_easy_encoder; + lzma_easy_encoder_memusage; + lzma_end; + lzma_filter_decoder_is_supported; + lzma_filter_encoder_is_supported; + lzma_filter_flags_decode; + lzma_filter_flags_encode; + lzma_filter_flags_size; + lzma_filters_copy; + lzma_filters_update; + lzma_get_check; + lzma_index_append; + lzma_index_block_count; + lzma_index_buffer_decode; + lzma_index_buffer_encode; + lzma_index_cat; + lzma_index_checks; + lzma_index_decoder; + lzma_index_dup; + lzma_index_encoder; + lzma_index_end; + lzma_index_file_size; + lzma_index_hash_append; + lzma_index_hash_decode; + lzma_index_hash_end; + lzma_index_hash_init; + lzma_index_hash_size; + lzma_index_init; + lzma_index_iter_init; + lzma_index_iter_locate; + lzma_index_iter_next; + lzma_index_iter_rewind; + lzma_index_memusage; + lzma_index_memused; + lzma_index_size; + lzma_index_stream_count; + lzma_index_stream_flags; + lzma_index_stream_padding; + lzma_index_stream_size; + lzma_index_total_size; + lzma_index_uncompressed_size; + lzma_lzma_preset; + lzma_memlimit_get; + lzma_memlimit_set; + lzma_memusage; + lzma_mf_is_supported; + lzma_mode_is_supported; + lzma_physmem; + lzma_properties_decode; + lzma_properties_encode; + lzma_properties_size; + lzma_raw_buffer_decode; + lzma_raw_buffer_encode; + lzma_raw_decoder; + lzma_raw_decoder_memusage; + lzma_raw_encoder; + lzma_raw_encoder_memusage; + lzma_stream_buffer_bound; + lzma_stream_buffer_decode; + lzma_stream_buffer_encode; + lzma_stream_decoder; + lzma_stream_encoder; + lzma_stream_flags_compare; + lzma_stream_footer_decode; + lzma_stream_footer_encode; + lzma_stream_header_decode; + lzma_stream_header_encode; + lzma_version_number; + lzma_version_string; + lzma_vli_decode; + lzma_vli_encode; + lzma_vli_size; +}; + +XZprivate_1.0 { + lzma_alloc; + lzma_alone_decoder_init; + lzma_block_decoder_init; + lzma_block_encoder_init; + lzma_bufcpy; + lzma_check_finish; + lzma_check_init; + lzma_check_update; + lzma_chunk_size; + lzma_delta_coder_init; + lzma_delta_coder_memusage; + lzma_delta_decoder_init; + lzma_delta_encoder_init; + lzma_delta_props_decode; + lzma_delta_props_encode; + lzma_easy_preset; + lzma_free; + lzma_index_encoder_init; + lzma_index_padding_size; + lzma_index_prealloc; + lzma_lz_decoder_init; + lzma_lz_decoder_memusage; + lzma_lz_decoder_uncompressed; + lzma_lz_encoder_init; + lzma_lz_encoder_memusage; + lzma_lzma2_decoder_init; + lzma_lzma2_decoder_memusage; + lzma_lzma2_encoder_init; + lzma_lzma2_encoder_memusage; + lzma_lzma2_props_decode; + lzma_lzma2_props_encode; + lzma_lzma_decoder_create; + lzma_lzma_decoder_init; + lzma_lzma_decoder_memusage; + lzma_lzma_decoder_memusage_nocheck; + lzma_lzma_encode; + lzma_lzma_encoder_create; + lzma_lzma_encoder_init; + lzma_lzma_encoder_memusage; + lzma_lzma_encoder_reset; + lzma_lzma_lclppb_decode; + lzma_lzma_lclppb_encode; + lzma_lzma_optimum_fast; + lzma_lzma_optimum_normal; + lzma_lzma_props_decode; + lzma_lzma_props_encode; + lzma_mf_bt2_find; + lzma_mf_bt2_skip; + lzma_mf_bt3_find; + lzma_mf_bt3_skip; + lzma_mf_bt4_find; + lzma_mf_bt4_skip; + lzma_mf_find; + lzma_mf_hc3_find; + lzma_mf_hc3_skip; + lzma_mf_hc4_find; + lzma_mf_hc4_skip; + lzma_next_end; + lzma_next_filter_init; + lzma_next_filter_update; + lzma_raw_coder_init; + lzma_raw_coder_memusage; + lzma_raw_decoder_init; + lzma_raw_encoder_init; + lzma_sha256_finish; + lzma_sha256_init; + lzma_sha256_update; + lzma_simple_arm_decoder_init; + lzma_simple_arm_encoder_init; + lzma_simple_armthumb_decoder_init; + lzma_simple_armthumb_encoder_init; + lzma_simple_coder_init; + lzma_simple_ia64_decoder_init; + lzma_simple_ia64_encoder_init; + lzma_simple_powerpc_decoder_init; + lzma_simple_powerpc_encoder_init; + lzma_simple_props_decode; + lzma_simple_props_encode; + lzma_simple_props_size; + lzma_simple_sparc_decoder_init; + lzma_simple_sparc_encoder_init; + lzma_simple_x86_decoder_init; + lzma_simple_x86_encoder_init; + lzma_stream_decoder_init; + lzma_stream_encoder_init; + lzma_strm_init; + lzma_tuklib_physmem; +}; Copied: stable/8/lib/liblzma/Versions.def (from r208099, head/lib/liblzma/Versions.def) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/lib/liblzma/Versions.def Tue May 18 09:59:09 2010 (r208258, copy of r208099, head/lib/liblzma/Versions.def) @@ -0,0 +1,9 @@ +# $FreeBSD$ + +XZ_5.0 { +}; + + +XZprivate_1.0 { +} XZ_5.0; + Modified: stable/8/share/mk/bsd.libnames.mk ============================================================================== --- stable/8/share/mk/bsd.libnames.mk Tue May 18 09:15:26 2010 (r208257) +++ stable/8/share/mk/bsd.libnames.mk Tue May 18 09:59:09 2010 (r208258) @@ -82,6 +82,7 @@ LIBLN?= "don't use LIBLN, use LIBL" .if ${MK_BIND} != "no" LIBLWRES?= ${DESTDIR}${LIBDIR}/liblwres.a .endif +LIBLZMA?= ${DESTDIR}${LIBDIR}/liblzma.a LIBM?= ${DESTDIR}${LIBDIR}/libm.a LIBMAGIC?= ${DESTDIR}${LIBDIR}/libmagic.a LIBMD?= ${DESTDIR}${LIBDIR}/libmd.a Modified: stable/8/usr.bin/Makefile ============================================================================== --- stable/8/usr.bin/Makefile Tue May 18 09:15:26 2010 (r208257) +++ stable/8/usr.bin/Makefile Tue May 18 09:59:09 2010 (r208258) @@ -114,6 +114,7 @@ SUBDIR= alias \ look \ lorder \ lsvfs \ + lzmainfo \ m4 \ ${_mail} \ ${_make} \ @@ -228,6 +229,8 @@ SUBDIR= alias \ xinstall \ ${_xlint} \ ${_xstr} \ + xz \ + xzdec \ ${_yacc} \ yes \ ${_ypcat} \ Modified: stable/8/usr.bin/less/Makefile ============================================================================== --- stable/8/usr.bin/less/Makefile Tue May 18 09:15:26 2010 (r208257) +++ stable/8/usr.bin/less/Makefile Tue May 18 09:59:09 2010 (r208258) @@ -11,7 +11,9 @@ SCRIPTSNAME_lesspipe.sh=lesspipe.sh DPADD= ${LIBTERMCAP} LDADD= -ltermcap LINKS= ${BINDIR}/less ${BINDIR}/more \ - ${BINDIR}/zless ${BINDIR}/bzless + ${BINDIR}/zless ${BINDIR}/bzless \ + ${BINDIR}/zless ${BINDIR}/xzless \ + ${BINDIR}/zless ${BINDIR}/lzless MLINKS= less.1 more.1 CLEANFILES= less.1 Modified: stable/8/usr.bin/less/lesspipe.sh ============================================================================== --- stable/8/usr.bin/less/lesspipe.sh Tue May 18 09:15:26 2010 (r208257) +++ stable/8/usr.bin/less/lesspipe.sh Tue May 18 09:59:09 2010 (r208258) @@ -13,4 +13,10 @@ case "$1" in *.bz2) exec bzip2 -d -c "$1" 2>/dev/null ;; + *.xz) + exec xz -d -c "$1" 2>/dev/null + ;; + *.lzma) + exec lzma -d -c "$1" 2>/dev/null + ;; esac Modified: stable/8/usr.bin/lzmainfo/Makefile ============================================================================== --- head/usr.bin/lzmainfo/Makefile Mon May 10 06:59:50 2010 (r207842) +++ stable/8/usr.bin/lzmainfo/Makefile Tue May 18 09:59:09 2010 (r208258) @@ -16,8 +16,7 @@ WARNS?= 3 CFLAGS+= -DHAVE_CONFIG_H \ -I${LZMALIBDIR} \ - -I${XZDIR}/common \ - -I${XZDIR}/liblzma/api + -I${XZDIR}/common DPADD= ${LIBLZMA} LDADD= -llzma Modified: stable/8/usr.bin/xz/Makefile ============================================================================== --- head/usr.bin/xz/Makefile Mon May 10 06:59:50 2010 (r207842) +++ stable/8/usr.bin/xz/Makefile Tue May 18 09:59:09 2010 (r208258) @@ -38,8 +38,7 @@ WARNS?= 3 CFLAGS+= -DHAVE_CONFIG_H \ -I${LZMALIBDIR} \ - -I${XZDIR}/common \ - -I${XZDIR}/liblzma/api + -I${XZDIR}/common DPADD= ${LIBLZMA} LDADD= -llzma Modified: stable/8/usr.bin/xzdec/Makefile ============================================================================== --- head/usr.bin/xzdec/Makefile Mon May 10 06:59:50 2010 (r207842) +++ stable/8/usr.bin/xzdec/Makefile Tue May 18 09:59:09 2010 (r208258) @@ -22,8 +22,7 @@ WARNS?= 3 CFLAGS+= -DHAVE_CONFIG_H \ -I${LZMALIBDIR} \ - -I${XZDIR}/common \ - -I${XZDIR}/liblzma/api + -I${XZDIR}/common DPADD= ${LIBLZMA} LDADD= -llzma From owner-svn-src-all@FreeBSD.ORG Tue May 18 10:02:46 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2431C1065672; Tue, 18 May 2010 10:02:46 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 136C48FC0A; Tue, 18 May 2010 10:02:46 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4IA2jFU013156; Tue, 18 May 2010 10:02:45 GMT (envelope-from mm@svn.freebsd.org) Received: (from mm@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4IA2j4m013154; Tue, 18 May 2010 10:02:45 GMT (envelope-from mm@svn.freebsd.org) Message-Id: <201005181002.o4IA2j4m013154@svn.freebsd.org> From: Martin Matuska Date: Tue, 18 May 2010 10:02:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208259 - stable/8/sys/sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 10:02:46 -0000 Author: mm Date: Tue May 18 10:02:45 2010 New Revision: 208259 URL: http://svn.freebsd.org/changeset/base/208259 Log: Bump __FreeBSD_version for liblzma addition. Approved by: delphij (mentor) Modified: stable/8/sys/sys/param.h Modified: stable/8/sys/sys/param.h ============================================================================== --- stable/8/sys/sys/param.h Tue May 18 09:59:09 2010 (r208258) +++ stable/8/sys/sys/param.h Tue May 18 10:02:45 2010 (r208259) @@ -58,7 +58,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 800504 /* Master, propagated to newvers */ +#define __FreeBSD_version 800505 /* Master, propagated to newvers */ #ifndef LOCORE #include From owner-svn-src-all@FreeBSD.ORG Tue May 18 10:24:23 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 75B861065674; Tue, 18 May 2010 10:24:23 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6310C8FC0A; Tue, 18 May 2010 10:24:23 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4IAONSD018196; Tue, 18 May 2010 10:24:23 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4IAONxH018158; Tue, 18 May 2010 10:24:23 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201005181024.o4IAONxH018158@svn.freebsd.org> From: Attilio Rao Date: Tue, 18 May 2010 10:24:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208261 - in stable/8/sys: arm/include ddb kern sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 10:24:23 -0000 Author: attilio Date: Tue May 18 10:24:23 2010 New Revision: 208261 URL: http://svn.freebsd.org/changeset/base/208261 Log: MFC r207922, r207925, r207929, r208052: - Change the db_printf return value in order to catch up with printf - Make witness_list_locks() and witness_display_spinlock() accept callbacks for printf-like functions in order to queue the output on the correct channel. Modified: stable/8/sys/arm/include/disassem.h stable/8/sys/ddb/db_output.c stable/8/sys/ddb/ddb.h stable/8/sys/kern/kern_mutex.c stable/8/sys/kern/subr_pcpu.c stable/8/sys/kern/subr_witness.c stable/8/sys/sys/lock.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/arm/include/disassem.h ============================================================================== --- stable/8/sys/arm/include/disassem.h Tue May 18 10:21:49 2010 (r208260) +++ stable/8/sys/arm/include/disassem.h Tue May 18 10:24:23 2010 (r208261) @@ -43,7 +43,7 @@ typedef struct { u_int (*di_readword)(u_int); void (*di_printaddr)(u_int); - void (*di_printf)(const char *, ...) __printflike(1, 2); + int (*di_printf)(const char *, ...) __printflike(1, 2); } disasm_interface_t; /* Prototypes for callable functions */ Modified: stable/8/sys/ddb/db_output.c ============================================================================== --- stable/8/sys/ddb/db_output.c Tue May 18 10:21:49 2010 (r208260) +++ stable/8/sys/ddb/db_output.c Tue May 18 10:24:23 2010 (r208261) @@ -316,7 +316,7 @@ db_print_position() /* * Printing */ -void +int db_printf(const char *fmt, ...) { #ifdef DDB_BUFR_SIZE @@ -324,6 +324,7 @@ db_printf(const char *fmt, ...) #endif struct dbputchar_arg dca; va_list listp; + int retval; #ifdef DDB_BUFR_SIZE dca.da_pbufr = bufr; @@ -336,13 +337,14 @@ db_printf(const char *fmt, ...) #endif va_start(listp, fmt); - kvprintf (fmt, db_putchar, &dca, db_radix, listp); + retval = kvprintf (fmt, db_putchar, &dca, db_radix, listp); va_end(listp); #ifdef DDB_BUFR_SIZE if (*dca.da_pbufr != '\0') db_puts(dca.da_pbufr); #endif + return (retval); } int db_indent; Modified: stable/8/sys/ddb/ddb.h ============================================================================== --- stable/8/sys/ddb/ddb.h Tue May 18 10:21:49 2010 (r208260) +++ stable/8/sys/ddb/ddb.h Tue May 18 10:24:23 2010 (r208261) @@ -200,7 +200,7 @@ int db_md_clr_watchpoint(db_expr_t addr void db_md_list_watchpoints(void); void db_print_loc_and_inst(db_addr_t loc); void db_print_thread(void); -void db_printf(const char *fmt, ...) __printflike(1, 2); +int db_printf(const char *fmt, ...) __printflike(1, 2); int db_read_bytes(vm_offset_t addr, size_t size, char *data); /* machine-dependent */ int db_readline(char *lstart, int lsize); Modified: stable/8/sys/kern/kern_mutex.c ============================================================================== --- stable/8/sys/kern/kern_mutex.c Tue May 18 10:21:49 2010 (r208260) +++ stable/8/sys/kern/kern_mutex.c Tue May 18 10:24:23 2010 (r208261) @@ -485,7 +485,7 @@ _mtx_lock_spin_failed(struct mtx *m) printf( "spin lock %p (%s) held by %p (tid %d) too long\n", m, m->lock_object.lo_name, td, td->td_tid); #ifdef WITNESS - witness_display_spinlock(&m->lock_object, td); + witness_display_spinlock(&m->lock_object, td, printf); #endif panic("spin lock held too long"); } Modified: stable/8/sys/kern/subr_pcpu.c ============================================================================== --- stable/8/sys/kern/subr_pcpu.c Tue May 18 10:21:49 2010 (r208260) +++ stable/8/sys/kern/subr_pcpu.c Tue May 18 10:24:23 2010 (r208261) @@ -363,7 +363,7 @@ show_pcpu(struct pcpu *pc) #ifdef WITNESS db_printf("spin locks held:\n"); - witness_list_locks(&pc->pc_spinlocks); + witness_list_locks(&pc->pc_spinlocks, db_printf); #endif } Modified: stable/8/sys/kern/subr_witness.c ============================================================================== --- stable/8/sys/kern/subr_witness.c Tue May 18 10:21:49 2010 (r208260) +++ stable/8/sys/kern/subr_witness.c Tue May 18 10:24:23 2010 (r208261) @@ -343,10 +343,10 @@ static int sysctl_debug_witness_fullgrap static void witness_add_fullgraph(struct sbuf *sb, struct witness *parent); #ifdef DDB static void witness_ddb_compute_levels(void); -static void witness_ddb_display(void(*)(const char *fmt, ...)); -static void witness_ddb_display_descendants(void(*)(const char *fmt, ...), +static void witness_ddb_display(int(*)(const char *fmt, ...)); +static void witness_ddb_display_descendants(int(*)(const char *fmt, ...), struct witness *, int indent); -static void witness_ddb_display_list(void(*prnt)(const char *fmt, ...), +static void witness_ddb_display_list(int(*prnt)(const char *fmt, ...), struct witness_list *list); static void witness_ddb_level_descendants(struct witness *parent, int l); static void witness_ddb_list(struct thread *td); @@ -367,7 +367,8 @@ static int witness_lock_order_check(stru static struct witness_lock_order_data *witness_lock_order_get( struct witness *parent, struct witness *child); -static void witness_list_lock(struct lock_instance *instance); +static void witness_list_lock(struct lock_instance *instance, + int (*prnt)(const char *fmt, ...)); static void witness_setflag(struct lock_object *lock, int flag, int set); #ifdef KDB @@ -905,7 +906,7 @@ witness_ddb_level_descendants(struct wit } static void -witness_ddb_display_descendants(void(*prnt)(const char *fmt, ...), +witness_ddb_display_descendants(int(*prnt)(const char *fmt, ...), struct witness *w, int indent) { int i; @@ -935,7 +936,7 @@ witness_ddb_display_descendants(void(*pr } static void -witness_ddb_display_list(void(*prnt)(const char *fmt, ...), +witness_ddb_display_list(int(*prnt)(const char *fmt, ...), struct witness_list *list) { struct witness *w; @@ -950,7 +951,7 @@ witness_ddb_display_list(void(*prnt)(con } static void -witness_ddb_display(void(*prnt)(const char *fmt, ...)) +witness_ddb_display(int(*prnt)(const char *fmt, ...)) { struct witness *w; @@ -1594,7 +1595,7 @@ witness_thread_exit(struct thread *td) printf("Thread %p exiting with the following locks held:\n", td); n++; - witness_list_lock(&lle->ll_children[i]); + witness_list_lock(&lle->ll_children[i], printf); } panic("Thread %p cannot exit while holding sleeplocks\n", td); @@ -1643,7 +1644,7 @@ witness_warn(int flags, struct lock_obje printf(" locks held:\n"); } n++; - witness_list_lock(lock1); + witness_list_lock(lock1, printf); } /* @@ -1674,7 +1675,7 @@ witness_warn(int flags, struct lock_obje if (flags & WARN_SLEEPOK) printf(" non-sleepable"); printf(" locks held:\n"); - n += witness_list_locks(&lock_list); + n += witness_list_locks(&lock_list, printf); } else sched_unpin(); if (flags & WARN_PANIC && n) @@ -2060,16 +2061,17 @@ find_instance(struct lock_list_entry *li } static void -witness_list_lock(struct lock_instance *instance) +witness_list_lock(struct lock_instance *instance, + int (*prnt)(const char *fmt, ...)) { struct lock_object *lock; lock = instance->li_lock; - printf("%s %s %s", (instance->li_flags & LI_EXCLUSIVE) != 0 ? + prnt("%s %s %s", (instance->li_flags & LI_EXCLUSIVE) != 0 ? "exclusive" : "shared", LOCK_CLASS(lock)->lc_name, lock->lo_name); if (lock->lo_witness->w_name != lock->lo_name) - printf(" (%s)", lock->lo_witness->w_name); - printf(" r = %d (%p) locked @ %s:%d\n", + prnt(" (%s)", lock->lo_witness->w_name); + prnt(" r = %d (%p) locked @ %s:%d\n", instance->li_flags & LI_RECURSEMASK, lock, instance->li_file, instance->li_line); } @@ -2098,7 +2100,8 @@ witness_proc_has_locks(struct proc *p) #endif int -witness_list_locks(struct lock_list_entry **lock_list) +witness_list_locks(struct lock_list_entry **lock_list, + int (*prnt)(const char *fmt, ...)) { struct lock_list_entry *lle; int i, nheld; @@ -2106,7 +2109,7 @@ witness_list_locks(struct lock_list_entr nheld = 0; for (lle = *lock_list; lle != NULL; lle = lle->ll_next) for (i = lle->ll_count - 1; i >= 0; i--) { - witness_list_lock(&lle->ll_children[i]); + witness_list_lock(&lle->ll_children[i], prnt); nheld++; } return (nheld); @@ -2120,7 +2123,8 @@ witness_list_locks(struct lock_list_entr * see when it was last acquired. */ void -witness_display_spinlock(struct lock_object *lock, struct thread *owner) +witness_display_spinlock(struct lock_object *lock, struct thread *owner, + int (*prnt)(const char *fmt, ...)) { struct lock_instance *instance; struct pcpu *pc; @@ -2130,7 +2134,7 @@ witness_display_spinlock(struct lock_obj pc = pcpu_find(owner->td_oncpu); instance = find_instance(pc->pc_spinlocks, lock); if (instance != NULL) - witness_list_lock(instance); + witness_list_lock(instance, prnt); } void @@ -2303,7 +2307,7 @@ witness_ddb_list(struct thread *td) if (witness_watch < 1) return; - witness_list_locks(&td->td_sleeplocks); + witness_list_locks(&td->td_sleeplocks, db_printf); /* * We only handle spinlocks if td == curthread. This is somewhat broken @@ -2319,7 +2323,7 @@ witness_ddb_list(struct thread *td) * handle threads on other CPU's for now. */ if (td == curthread && PCPU_GET(spinlocks) != NULL) - witness_list_locks(PCPU_PTR(spinlocks)); + witness_list_locks(PCPU_PTR(spinlocks), db_printf); } DB_SHOW_COMMAND(locks, db_witness_list) Modified: stable/8/sys/sys/lock.h ============================================================================== --- stable/8/sys/sys/lock.h Tue May 18 10:21:49 2010 (r208260) +++ stable/8/sys/sys/lock.h Tue May 18 10:24:23 2010 (r208261) @@ -197,7 +197,7 @@ extern struct lock_class lock_class_lock extern struct lock_class *lock_classes[]; void lock_init(struct lock_object *, struct lock_class *, - const char *, const char *, int); + const char *, const char *, int); void lock_destroy(struct lock_object *); void spinlock_enter(void); void spinlock_exit(void); @@ -205,17 +205,19 @@ void witness_init(struct lock_object *, void witness_destroy(struct lock_object *); int witness_defineorder(struct lock_object *, struct lock_object *); void witness_checkorder(struct lock_object *, int, const char *, int, - struct lock_object *); + struct lock_object *); void witness_lock(struct lock_object *, int, const char *, int); void witness_upgrade(struct lock_object *, int, const char *, int); void witness_downgrade(struct lock_object *, int, const char *, int); void witness_unlock(struct lock_object *, int, const char *, int); void witness_save(struct lock_object *, const char **, int *); void witness_restore(struct lock_object *, const char *, int); -int witness_list_locks(struct lock_list_entry **); +int witness_list_locks(struct lock_list_entry **, + int (*)(const char *, ...)); int witness_warn(int, struct lock_object *, const char *, ...); void witness_assert(struct lock_object *, int, const char *, int); -void witness_display_spinlock(struct lock_object *, struct thread *); +void witness_display_spinlock(struct lock_object *, struct thread *, + int (*)(const char *, ...)); int witness_line(struct lock_object *); void witness_norelease(struct lock_object *); void witness_releaseok(struct lock_object *); From owner-svn-src-all@FreeBSD.ORG Tue May 18 10:32:20 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7F1201065673; Tue, 18 May 2010 10:32:20 +0000 (UTC) (envelope-from kaiw@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6CC088FC0C; Tue, 18 May 2010 10:32:20 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4IAWKHt019979; Tue, 18 May 2010 10:32:20 GMT (envelope-from kaiw@svn.freebsd.org) Received: (from kaiw@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4IAWK50019971; Tue, 18 May 2010 10:32:20 GMT (envelope-from kaiw@svn.freebsd.org) Message-Id: <201005181032.o4IAWK50019971@svn.freebsd.org> From: Kai Wang Date: Tue, 18 May 2010 10:32:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208262 - in stable/8: lib/libusbhid usr.sbin/bluetooth/bthidd X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 10:32:20 -0000 Author: kaiw Date: Tue May 18 10:32:20 2010 New Revision: 208262 URL: http://svn.freebsd.org/changeset/base/208262 Log: MFC r205728 Merge improvements from kernel HID parser to the userland usbhid(3) parser. This merge does not change any API and should not break any native or thirdparty applications. Changes include: * Merge multiple report ID support and other improvements from kernel HID parser. * Ignore rid argument in hid_start_parser, parse all the report items since we now support multiple report ID. * Skip report ID byte in hid_get_data() and set report ID byte in hid_set_data(), if report ID is non-zero. * Reimplement hid_get_report_id: instead get report id from uhid device (which is always 0), try parsing the report descriptor and return the first report ID encountered. MFC r207812 hid_get_data() now expects that the hid data passed in always contains the report ID byte. Thus we should not skip the the report ID byte in hid_interrupt(). Also, if HUP_KEYBOARD usage is an array, do not try to modify the 'data' pointer, instead, increase the hid_item_t field 'pos' by 'report_size' before calling hid_get_data() during each iteration. Modified: stable/8/lib/libusbhid/data.c stable/8/lib/libusbhid/descr.c stable/8/lib/libusbhid/parse.c stable/8/lib/libusbhid/usage.c stable/8/lib/libusbhid/usbhid.h stable/8/lib/libusbhid/usbvar.h stable/8/usr.sbin/bluetooth/bthidd/hid.c Directory Properties: stable/8/lib/libusbhid/ (props changed) stable/8/usr.sbin/bluetooth/ (props changed) Modified: stable/8/lib/libusbhid/data.c ============================================================================== --- stable/8/lib/libusbhid/data.c Tue May 18 10:24:23 2010 (r208261) +++ stable/8/lib/libusbhid/data.c Tue May 18 10:32:20 2010 (r208262) @@ -29,6 +29,7 @@ #include __FBSDID("$FreeBSD$"); +#include #include #include #include "usbhid.h" @@ -36,18 +37,27 @@ __FBSDID("$FreeBSD$"); int32_t hid_get_data(const void *p, const hid_item_t *h) { - const unsigned char *buf; - unsigned int hpos; - unsigned int hsize; - int data; + const uint8_t *buf; + uint32_t hpos; + uint32_t hsize; + uint32_t data; int i, end, offs; buf = p; + + /* Skip report ID byte. */ + if (h->report_ID > 0) + buf++; + hpos = h->pos; /* bit position of data */ hsize = h->report_size; /* bit length of data */ + /* Range check and limit */ if (hsize == 0) return (0); + if (hsize > 32) + hsize = 32; + offs = hpos / 8; end = (hpos + hsize) / 8 - offs; data = 0; @@ -70,15 +80,20 @@ hid_get_data(const void *p, const hid_it void hid_set_data(void *p, const hid_item_t *h, int32_t data) { - unsigned char *buf; - unsigned int hpos; - unsigned int hsize; + uint8_t *buf; + uint32_t hpos; + uint32_t hsize; uint32_t mask; int i; int end; int offs; buf = p; + + /* Set report ID byte. */ + if (h->report_ID > 0) + *buf++ = h->report_ID & 0xff; + hpos = h->pos; /* bit position of data */ hsize = h->report_size; /* bit length of data */ @@ -97,5 +112,5 @@ hid_set_data(void *p, const hid_item_t * for (i = 0; i <= end; i++) buf[offs + i] = (buf[offs + i] & (mask >> (i*8))) | - ((data >> (i*8)) & 0xff); + ((data >> (i*8)) & 0xff); } Modified: stable/8/lib/libusbhid/descr.c ============================================================================== --- stable/8/lib/libusbhid/descr.c Tue May 18 10:24:23 2010 (r208261) +++ stable/8/lib/libusbhid/descr.c Tue May 18 10:32:20 2010 (r208262) @@ -38,7 +38,6 @@ __FBSDID("$FreeBSD$"); #include #include #include - #include #include "usbhid.h" @@ -59,9 +58,30 @@ hid_set_immed(int fd, int enable) int hid_get_report_id(int fd) { + report_desc_t rep; + hid_data_t d; + hid_item_t h; + int kindset; int temp = -1; int ret; + if ((rep = hid_get_report_desc(fd)) == NULL) + goto use_ioctl; + kindset = 1 << hid_input | 1 << hid_output | 1 << hid_feature; + for (d = hid_start_parse(rep, kindset, 0); hid_get_item(d, &h); ) { + /* Return the first report ID we met. */ + if (h.report_ID != 0) { + temp = h.report_ID; + break; + } + } + hid_end_parse(d); + hid_dispose_report_desc(rep); + + if (temp > 0) + return (temp); + +use_ioctl: ret = ioctl(fd, USB_GET_REPORT_ID, &temp); #ifdef HID_COMPAT7 if (ret < 0) Modified: stable/8/lib/libusbhid/parse.c ============================================================================== --- stable/8/lib/libusbhid/parse.c Tue May 18 10:24:23 2010 (r208261) +++ stable/8/lib/libusbhid/parse.c Tue May 18 10:32:20 2010 (r208262) @@ -40,42 +40,43 @@ __FBSDID("$FreeBSD$"); #include "usbhid.h" #include "usbvar.h" -#define MAXUSAGE 100 -struct hid_data { - u_char *start; - u_char *end; - u_char *p; - hid_item_t cur; - unsigned int usages[MAXUSAGE]; - int nusage; - int minset; - int logminsize; - int multi; - int multimax; - int kindset; - int reportid; - - /* - * The start of collection item has no report ID set, so save - * it until we know the ID. - */ - hid_item_t savedcoll; - u_char hassavedcoll; - /* - * Absolute data position (bits) for input/output/feature. - * Assumes that hid_input, hid_output and hid_feature have - * values 0, 1 and 2. - */ - unsigned int kindpos[3]; +#define MAXUSAGE 100 +#define MAXPUSH 4 +#define MAXID 64 + +struct hid_pos_data { + int32_t rid; + uint32_t pos; }; -static int min(int x, int y) { return x < y ? x : y; } - -static int hid_get_item_raw(hid_data_t s, hid_item_t *h); +struct hid_data { + const uint8_t *start; + const uint8_t *end; + const uint8_t *p; + struct hid_item cur[MAXPUSH]; + struct hid_pos_data last_pos[MAXID]; + int32_t usages_min[MAXUSAGE]; + int32_t usages_max[MAXUSAGE]; + int32_t usage_last; /* last seen usage */ + uint32_t loc_size; /* last seen size */ + uint32_t loc_count; /* last seen count */ + uint8_t kindset; /* we have 5 kinds so 8 bits are enough */ + uint8_t pushlevel; /* current pushlevel */ + uint8_t ncount; /* end usage item count */ + uint8_t icount; /* current usage item count */ + uint8_t nusage; /* end "usages_min/max" index */ + uint8_t iusage; /* current "usages_min/max" index */ + uint8_t ousage; /* current "usages_min/max" offset */ + uint8_t susage; /* usage set flags */ +}; +/*------------------------------------------------------------------------* + * hid_clear_local + *------------------------------------------------------------------------*/ static void hid_clear_local(hid_item_t *c) { + c->usage = 0; c->usage_minimum = 0; c->usage_maximum = 0; @@ -88,8 +89,61 @@ hid_clear_local(hid_item_t *c) c->set_delimiter = 0; } +static void +hid_switch_rid(struct hid_data *s, struct hid_item *c, int32_t next_rID) +{ + uint8_t i; + + /* check for same report ID - optimise */ + + if (c->report_ID == next_rID) + return; + + /* save current position for current rID */ + + if (c->report_ID == 0) { + i = 0; + } else { + for (i = 1; i != MAXID; i++) { + if (s->last_pos[i].rid == c->report_ID) + break; + if (s->last_pos[i].rid == 0) + break; + } + } + if (i != MAXID) { + s->last_pos[i].rid = c->report_ID; + s->last_pos[i].pos = c->pos; + } + + /* store next report ID */ + + c->report_ID = next_rID; + + /* lookup last position for next rID */ + + if (next_rID == 0) { + i = 0; + } else { + for (i = 1; i != MAXID; i++) { + if (s->last_pos[i].rid == next_rID) + break; + if (s->last_pos[i].rid == 0) + break; + } + } + if (i != MAXID) { + s->last_pos[i].rid = next_rID; + c->pos = s->last_pos[i].pos; + } else + c->pos = 0; /* Out of RID entries. */ +} + +/*------------------------------------------------------------------------* + * hid_start_parse + *------------------------------------------------------------------------*/ hid_data_t -hid_start_parse(report_desc_t d, int kindset, int id) +hid_start_parse(report_desc_t d, int kindset, int id __unused) { struct hid_data *s; @@ -98,213 +152,207 @@ hid_start_parse(report_desc_t d, int kin s->start = s->p = d->data; s->end = d->data + d->size; s->kindset = kindset; - s->reportid = id; - s->hassavedcoll = 0; return (s); } +/*------------------------------------------------------------------------* + * hid_end_parse + *------------------------------------------------------------------------*/ void hid_end_parse(hid_data_t s) { - while (s->cur.next) { - hid_item_t *hi = s->cur.next->next; - free(s->cur.next); - s->cur.next = hi; - } + + if (s == NULL) + return; + free(s); } -int -hid_get_item(hid_data_t s, hid_item_t *h) +/*------------------------------------------------------------------------* + * get byte from HID descriptor + *------------------------------------------------------------------------*/ +static uint8_t +hid_get_byte(struct hid_data *s, const uint16_t wSize) { - int r; + const uint8_t *ptr; + uint8_t retval; - for (;;) { - r = hid_get_item_raw(s, h); - if (r <= 0) - break; - if (h->report_ID == s->reportid || s->reportid == -1) - break; - } - return (r); -} + ptr = s->p; + + /* check if end is reached */ + if (ptr == s->end) + return (0); -#define REPORT_SAVED_COLL \ - do { \ - if (s->hassavedcoll) { \ - *h = s->savedcoll; \ - h->report_ID = c->report_ID; \ - s->hassavedcoll = 0; \ - return (1); \ - } \ - } while(/*LINTED*/ 0) + /* read out a byte */ + retval = *ptr; -static int -hid_get_item_raw(hid_data_t s, hid_item_t *h) + /* check if data pointer can be advanced by "wSize" bytes */ + if ((s->end - ptr) < wSize) + ptr = s->end; + else + ptr += wSize; + + /* update pointer */ + s->p = ptr; + + return (retval); +} + +/*------------------------------------------------------------------------* + * hid_get_item + *------------------------------------------------------------------------*/ +int +hid_get_item(hid_data_t s, hid_item_t *h) { hid_item_t *c; - unsigned int bTag = 0, bType = 0, bSize; - unsigned char *data; - int dval; - unsigned char *p; - hid_item_t *hi; - hid_item_t nc; - int i; - hid_kind_t retkind; + unsigned int bTag, bType, bSize; + uint32_t oldpos; + int32_t mask; + int32_t dval; - c = &s->cur; + if (s == NULL) + return (0); + + c = &s->cur[s->pushlevel]; top: - if (s->multimax) { - REPORT_SAVED_COLL; - if (c->logical_minimum >= c->logical_maximum) { - if (s->logminsize == 1) - c->logical_minimum =(int8_t)c->logical_minimum; - else if (s->logminsize == 2) - c->logical_minimum =(int16_t)c->logical_minimum; + /* check if there is an array of items */ + if (s->icount < s->ncount) { + /* get current usage */ + if (s->iusage < s->nusage) { + dval = s->usages_min[s->iusage] + s->ousage; + c->usage = dval; + s->usage_last = dval; + if (dval == s->usages_max[s->iusage]) { + s->iusage ++; + s->ousage = 0; + } else { + s->ousage ++; + } + } else { + /* Using last usage */ + dval = s->usage_last; } - if (s->multi < s->multimax) { - c->usage = s->usages[min(s->multi, s->nusage-1)]; - s->multi++; + s->icount ++; + /* + * Only copy HID item, increment position and return + * if correct kindset! + */ + if (s->kindset & (1 << c->kind)) { *h = *c; - /* - * 'multimax' is only non-zero if the current - * item kind is input/output/feature - */ - h->pos = s->kindpos[c->kind]; - s->kindpos[c->kind] += c->report_size; - h->next = 0; + c->pos += c->report_size * c->report_count; return (1); - } else { - c->report_count = s->multimax; - s->multimax = 0; - s->nusage = 0; - hid_clear_local(c); } } - for (;;) { - p = s->p; - if (p >= s->end) - return (0); - bSize = *p++; + /* reset state variables */ + s->icount = 0; + s->ncount = 0; + s->iusage = 0; + s->nusage = 0; + s->susage = 0; + s->ousage = 0; + hid_clear_local(c); + + /* get next item */ + while (s->p != s->end) { + + bSize = hid_get_byte(s, 1); if (bSize == 0xfe) { /* long item */ - bSize = *p++; - bSize |= *p++ << 8; - bTag = *p++; - data = p; - p += bSize; + bSize = hid_get_byte(s, 1); + bSize |= hid_get_byte(s, 1) << 8; + bTag = hid_get_byte(s, 1); + bType = 0xff; /* XXX what should it be */ } else { /* short item */ bTag = bSize >> 4; bType = (bSize >> 2) & 3; bSize &= 3; - if (bSize == 3) bSize = 4; - data = p; - p += bSize; + if (bSize == 3) + bSize = 4; } - s->p = p; - /* - * The spec is unclear if the data is signed or unsigned. - */ + switch(bSize) { case 0: dval = 0; + mask = 0; break; case 1: - dval = *data++; + dval = (int8_t)hid_get_byte(s, 1); + mask = 0xFF; break; case 2: - dval = *data++; - dval |= *data++ << 8; + dval = hid_get_byte(s, 1); + dval |= hid_get_byte(s, 1) << 8; + dval = (int16_t)dval; + mask = 0xFFFF; break; case 4: - dval = *data++; - dval |= *data++ << 8; - dval |= *data++ << 16; - dval |= *data++ << 24; + dval = hid_get_byte(s, 1); + dval |= hid_get_byte(s, 1) << 8; + dval |= hid_get_byte(s, 1) << 16; + dval |= hid_get_byte(s, 1) << 24; + mask = 0xFFFFFFFF; break; default: - return (-1); + dval = hid_get_byte(s, bSize); + continue; } switch (bType) { - case 0: /* Main */ + case 0: /* Main */ switch (bTag) { - case 8: /* Input */ - retkind = hid_input; - ret: - if (!(s->kindset & (1 << retkind))) { - /* Drop the items of this kind */ - s->nusage = 0; - continue; - } - c->kind = retkind; + case 8: /* Input */ + c->kind = hid_input; c->flags = dval; + ret: + c->report_count = s->loc_count; + c->report_size = s->loc_size; + if (c->flags & HIO_VARIABLE) { - s->multimax = c->report_count; - s->multi = 0; + /* range check usage count */ + if (c->report_count > 255) { + s->ncount = 255; + } else + s->ncount = c->report_count; + + /* + * The "top" loop will return + * one and one item: + */ c->report_count = 1; - if (s->minset) { - for (i = c->usage_minimum; - i <= c->usage_maximum; - i++) { - s->usages[s->nusage] = i; - if (s->nusage < MAXUSAGE-1) - s->nusage++; - } - c->usage_minimum = 0; - c->usage_maximum = 0; - s->minset = 0; - } - goto top; } else { - if (s->minset) - c->usage = c->usage_minimum; - *h = *c; - h->next = 0; - h->pos = s->kindpos[c->kind]; - s->kindpos[c->kind] += - c->report_size * c->report_count; - hid_clear_local(c); - s->minset = 0; - return (1); + s->ncount = 1; } - case 9: /* Output */ - retkind = hid_output; + goto top; + + case 9: /* Output */ + c->kind = hid_output; + c->flags = dval; goto ret; case 10: /* Collection */ c->kind = hid_collection; c->collection = dval; c->collevel++; - nc = *c; - hid_clear_local(c); - /*c->report_ID = NO_REPORT_ID;*/ - s->nusage = 0; - if (s->hassavedcoll) { - *h = s->savedcoll; - h->report_ID = nc.report_ID; - s->savedcoll = nc; - return (1); - } else { - s->hassavedcoll = 1; - s->savedcoll = nc; - } - break; + c->usage = s->usage_last; + *h = *c; + return (1); case 11: /* Feature */ - retkind = hid_feature; + c->kind = hid_feature; + c->flags = dval; goto ret; case 12: /* End collection */ - REPORT_SAVED_COLL; c->kind = hid_endcollection; + if (c->collevel == 0) { + /* Invalid end collection. */ + return (0); + } c->collevel--; *h = *c; - /*hid_clear_local(c);*/ - s->nusage = 0; return (1); default: - return (-2); + break; } break; @@ -315,13 +363,12 @@ hid_get_item_raw(hid_data_t s, hid_item_ break; case 1: c->logical_minimum = dval; - s->logminsize = bSize; break; case 2: c->logical_maximum = dval; break; case 3: - c->physical_maximum = dval; + c->physical_minimum = dval; break; case 4: c->physical_maximum = dval; @@ -333,45 +380,97 @@ hid_get_item_raw(hid_data_t s, hid_item_ c->unit = dval; break; case 7: - c->report_size = dval; + /* mask because value is unsigned */ + s->loc_size = dval & mask; break; case 8: - c->report_ID = dval; - s->kindpos[hid_input] = - s->kindpos[hid_output] = - s->kindpos[hid_feature] = 0; + hid_switch_rid(s, c, dval); break; case 9: - c->report_count = dval; + /* mask because value is unsigned */ + s->loc_count = dval & mask; break; - case 10: /* Push */ - hi = malloc(sizeof *hi); - *hi = s->cur; - c->next = hi; - break; - case 11: /* Pop */ - hi = c->next; - s->cur = *hi; - free(hi); + case 10: /* Push */ + s->pushlevel ++; + if (s->pushlevel < MAXPUSH) { + s->cur[s->pushlevel] = *c; + /* store size and count */ + c->report_size = s->loc_size; + c->report_count = s->loc_count; + /* update current item pointer */ + c = &s->cur[s->pushlevel]; + } + break; + case 11: /* Pop */ + s->pushlevel --; + if (s->pushlevel < MAXPUSH) { + /* preserve position */ + oldpos = c->pos; + c = &s->cur[s->pushlevel]; + /* restore size and count */ + s->loc_size = c->report_size; + s->loc_count = c->report_count; + /* set default item location */ + c->pos = oldpos; + c->report_size = 0; + c->report_count = 0; + } break; default: - return (-3); + break; } break; case 2: /* Local */ switch (bTag) { case 0: - c->usage = c->_usage_page | dval; - if (s->nusage < MAXUSAGE) - s->usages[s->nusage++] = c->usage; + if (bSize != 4) + dval = (dval & mask) | c->_usage_page; + + /* set last usage, in case of a collection */ + s->usage_last = dval; + + if (s->nusage < MAXUSAGE) { + s->usages_min[s->nusage] = dval; + s->usages_max[s->nusage] = dval; + s->nusage ++; + } /* else XXX */ + + /* clear any pending usage sets */ + s->susage = 0; break; case 1: - s->minset = 1; - c->usage_minimum = c->_usage_page | dval; - break; + s->susage |= 1; + + if (bSize != 4) + dval = (dval & mask) | c->_usage_page; + c->usage_minimum = dval; + + goto check_set; case 2: - c->usage_maximum = c->_usage_page | dval; + s->susage |= 2; + + if (bSize != 4) + dval = (dval & mask) | c->_usage_page; + c->usage_maximum = dval; + + check_set: + if (s->susage != 3) + break; + + /* sanity check */ + if ((s->nusage < MAXUSAGE) && + (c->usage_minimum <= c->usage_maximum)) { + /* add usage range */ + s->usages_min[s->nusage] = + c->usage_minimum; + s->usages_max[s->nusage] = + c->usage_maximum; + s->nusage ++; + } + /* else XXX */ + + s->susage = 0; break; case 3: c->designator_index = dval; @@ -395,40 +494,63 @@ hid_get_item_raw(hid_data_t s, hid_item_ c->set_delimiter = dval; break; default: - return (-4); + break; } break; default: - return (-5); + break; } } + return (0); } int hid_report_size(report_desc_t r, enum hid_kind k, int id) { struct hid_data *d; - hid_item_t h; - int size; + struct hid_item h; + uint32_t temp; + uint32_t hpos; + uint32_t lpos; + + hpos = 0; + lpos = 0xFFFFFFFF; memset(&h, 0, sizeof h); - size = 0; - for (d = hid_start_parse(r, 1<kindpos[k]; + /* compute minimum */ + if (lpos > h.pos) + lpos = h.pos; + /* compute end position */ + temp = h.pos + (h.report_size * h.report_count); + /* compute maximum */ + if (hpos < temp) + hpos = temp; } } hid_end_parse(d); - return ((size + 7) / 8); + + /* safety check - can happen in case of currupt descriptors */ + if (lpos > hpos) + temp = 0; + else + temp = hpos - lpos; + + if (id) + temp += 8; + + /* return length in bytes rounded up */ + return ((temp + 7) / 8); } int hid_locate(report_desc_t desc, unsigned int u, enum hid_kind k, hid_item_t *h, int id) { - hid_data_t d; + struct hid_data *d; - for (d = hid_start_parse(desc, 1<kind == k && !(h->flags & HIO_CONST) && h->usage == u) { hid_end_parse(d); return (1); Modified: stable/8/lib/libusbhid/usage.c ============================================================================== --- stable/8/lib/libusbhid/usage.c Tue May 18 10:24:23 2010 (r208261) +++ stable/8/lib/libusbhid/usage.c Tue May 18 10:32:20 2010 (r208262) @@ -29,6 +29,7 @@ #include __FBSDID("$FreeBSD$"); +#include #include #include #include Modified: stable/8/lib/libusbhid/usbhid.h ============================================================================== --- stable/8/lib/libusbhid/usbhid.h Tue May 18 10:24:23 2010 (r208261) +++ stable/8/lib/libusbhid/usbhid.h Tue May 18 10:32:20 2010 (r208262) @@ -29,7 +29,7 @@ * */ -#include +#include #include typedef struct report_desc *report_desc_t; @@ -37,45 +37,41 @@ typedef struct report_desc *report_desc_ typedef struct hid_data *hid_data_t; typedef enum hid_kind { - hid_input = 0, - hid_output = 1, - hid_feature = 2, - hid_collection, - hid_endcollection + hid_input, hid_output, hid_feature, hid_collection, hid_endcollection } hid_kind_t; typedef struct hid_item { /* Global */ - unsigned int _usage_page; - int logical_minimum; - int logical_maximum; - int physical_minimum; - int physical_maximum; - int unit_exponent; - int unit; - int report_size; - int report_ID; + uint32_t _usage_page; + int32_t logical_minimum; + int32_t logical_maximum; + int32_t physical_minimum; + int32_t physical_maximum; + int32_t unit_exponent; + int32_t unit; + int32_t report_size; + int32_t report_ID; #define NO_REPORT_ID 0 - int report_count; + int32_t report_count; /* Local */ - unsigned int usage; - int usage_minimum; - int usage_maximum; - int designator_index; - int designator_minimum; - int designator_maximum; - int string_index; - int string_minimum; - int string_maximum; - int set_delimiter; + uint32_t usage; + int32_t usage_minimum; + int32_t usage_maximum; + int32_t designator_index; + int32_t designator_minimum; + int32_t designator_maximum; + int32_t string_index; + int32_t string_minimum; + int32_t string_maximum; + int32_t set_delimiter; /* Misc */ - int collection; - int collevel; + int32_t collection; + int collevel; enum hid_kind kind; - unsigned int flags; - /* Absolute data position (bits) */ - unsigned int pos; - /* */ + uint32_t flags; + /* Location */ + uint32_t pos; + /* unused */ struct hid_item *next; } hid_item_t; @@ -96,7 +92,8 @@ hid_data_t hid_start_parse(report_desc_t void hid_end_parse(hid_data_t s); int hid_get_item(hid_data_t s, hid_item_t *h); int hid_report_size(report_desc_t d, enum hid_kind k, int id); -int hid_locate(report_desc_t d, unsigned int usage, enum hid_kind k, hid_item_t *h, int id); +int hid_locate(report_desc_t d, unsigned int usage, enum hid_kind k, + hid_item_t *h, int id); /* Conversion to/from usage names, usage.c: */ const char *hid_usage_page(int i); Modified: stable/8/lib/libusbhid/usbvar.h ============================================================================== --- stable/8/lib/libusbhid/usbvar.h Tue May 18 10:24:23 2010 (r208261) +++ stable/8/lib/libusbhid/usbvar.h Tue May 18 10:32:20 2010 (r208262) @@ -30,8 +30,8 @@ */ struct report_desc { - unsigned int size; - unsigned char data[1]; + uint32_t size; + uint8_t data[1]; }; /* internal backwards compatibility functions */ Modified: stable/8/usr.sbin/bluetooth/bthidd/hid.c ============================================================================== --- stable/8/usr.sbin/bluetooth/bthidd/hid.c Tue May 18 10:24:23 2010 (r208261) +++ stable/8/usr.sbin/bluetooth/bthidd/hid.c Tue May 18 10:32:20 2010 (r208262) @@ -130,7 +130,7 @@ hid_interrupt(bthid_session_p s, uint8_t hid_item_t h; int32_t report_id, usage, page, val, mouse_x, mouse_y, mouse_z, mouse_butt, - mevents, kevents; + mevents, kevents, i; assert(s != NULL); assert(s->srv != NULL); @@ -150,8 +150,8 @@ hid_interrupt(bthid_session_p s, uint8_t } report_id = data[1]; - data += 2; - len -= 2; + data ++; + len --; hid_device = get_hid_device(&s->bdaddr); assert(hid_device != NULL); @@ -202,17 +202,11 @@ hid_interrupt(bthid_session_p s, uint8_t if (val && val < kbd_maxkey()) bit_set(s->keys1, val); - data ++; - len --; - - len = min(len, h.report_size); - while (len > 0) { + for (i = 1; i < h.report_count; i++) { + h.pos += h.report_size; val = hid_get_data(data, &h); if (val && val < kbd_maxkey()) bit_set(s->keys1, val); - - data ++; - len --; } } break; From owner-svn-src-all@FreeBSD.ORG Tue May 18 14:11:39 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 79DCE106566C; Tue, 18 May 2010 14:11:39 +0000 (UTC) (envelope-from kientzle@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 67F818FC24; Tue, 18 May 2010 14:11:39 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4IEBdTG073798; Tue, 18 May 2010 14:11:39 GMT (envelope-from kientzle@svn.freebsd.org) Received: (from kientzle@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4IEBdWS073795; Tue, 18 May 2010 14:11:39 GMT (envelope-from kientzle@svn.freebsd.org) Message-Id: <201005181411.o4IEBdWS073795@svn.freebsd.org> From: Tim Kientzle Date: Tue, 18 May 2010 14:11:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208263 - head/lib/libarchive X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 14:11:39 -0000 Author: kientzle Date: Tue May 18 14:11:38 2010 New Revision: 208263 URL: http://svn.freebsd.org/changeset/base/208263 Log: Retry reads that fail with EINTR. This fixes a problem with bsdtar failing on SIGINT. Modified: head/lib/libarchive/archive_read_open_fd.c head/lib/libarchive/archive_read_open_filename.c Modified: head/lib/libarchive/archive_read_open_fd.c ============================================================================== --- head/lib/libarchive/archive_read_open_fd.c Tue May 18 10:32:20 2010 (r208262) +++ head/lib/libarchive/archive_read_open_fd.c Tue May 18 14:11:38 2010 (r208263) @@ -116,11 +116,15 @@ file_read(struct archive *a, void *clien ssize_t bytes_read; *buff = mine->buffer; - bytes_read = read(mine->fd, mine->buffer, mine->block_size); - if (bytes_read < 0) { - archive_set_error(a, errno, "Error reading fd %d", mine->fd); + for (;;) { + bytes_read = read(mine->fd, mine->buffer, mine->block_size); + if (bytes_read < 0) { + if (errno == EINTR) + continue; + archive_set_error(a, errno, "Error reading fd %d", mine->fd); + } + return (bytes_read); } - return (bytes_read); } #if ARCHIVE_API_VERSION < 2 Modified: head/lib/libarchive/archive_read_open_filename.c ============================================================================== --- head/lib/libarchive/archive_read_open_filename.c Tue May 18 10:32:20 2010 (r208262) +++ head/lib/libarchive/archive_read_open_filename.c Tue May 18 14:11:38 2010 (r208263) @@ -160,15 +160,19 @@ file_read(struct archive *a, void *clien ssize_t bytes_read; *buff = mine->buffer; - bytes_read = read(mine->fd, mine->buffer, mine->block_size); - if (bytes_read < 0) { - if (mine->filename[0] == '\0') - archive_set_error(a, errno, "Error reading stdin"); - else - archive_set_error(a, errno, "Error reading '%s'", - mine->filename); + for (;;) { + bytes_read = read(mine->fd, mine->buffer, mine->block_size); + if (bytes_read < 0) { + if (errno == EINTR) + continue; + else if (mine->filename[0] == '\0') + archive_set_error(a, errno, "Error reading stdin"); + else + archive_set_error(a, errno, "Error reading '%s'", + mine->filename); + } + return (bytes_read); } - return (bytes_read); } #if ARCHIVE_API_VERSION < 2 From owner-svn-src-all@FreeBSD.ORG Tue May 18 16:40:29 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CD5C8106566C; Tue, 18 May 2010 16:40:29 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A1DD38FC17; Tue, 18 May 2010 16:40:29 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4IGeTVY006766; Tue, 18 May 2010 16:40:29 GMT (envelope-from alc@svn.freebsd.org) Received: (from alc@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4IGeTrL006763; Tue, 18 May 2010 16:40:29 GMT (envelope-from alc@svn.freebsd.org) Message-Id: <201005181640.o4IGeTrL006763@svn.freebsd.org> From: Alan Cox Date: Tue, 18 May 2010 16:40:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208264 - in head/sys: kern vm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 16:40:29 -0000 Author: alc Date: Tue May 18 16:40:29 2010 New Revision: 208264 URL: http://svn.freebsd.org/changeset/base/208264 Log: The page queues lock is no longer required by vm_page_set_invalid(), so eliminate it. Assert that the object containing the page is locked in vm_page_test_dirty(). Perform some style clean up while I'm here. Reviewed by: kib Modified: head/sys/kern/vfs_bio.c head/sys/vm/vm_page.c Modified: head/sys/kern/vfs_bio.c ============================================================================== --- head/sys/kern/vfs_bio.c Tue May 18 14:11:38 2010 (r208263) +++ head/sys/kern/vfs_bio.c Tue May 18 16:40:29 2010 (r208264) @@ -1353,9 +1353,7 @@ brelse(struct buf *bp) (PAGE_SIZE - poffset) : resid; KASSERT(presid >= 0, ("brelse: extra page")); - vm_page_lock_queues(); vm_page_set_invalid(m, poffset, presid); - vm_page_unlock_queues(); if (had_bogus) printf("avoided corruption bug in bogus_page/brelse code\n"); } Modified: head/sys/vm/vm_page.c ============================================================================== --- head/sys/vm/vm_page.c Tue May 18 14:11:38 2010 (r208263) +++ head/sys/vm/vm_page.c Tue May 18 16:40:29 2010 (r208264) @@ -2160,10 +2160,13 @@ vm_page_set_invalid(vm_page_t m, int bas int bits; VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED); + KASSERT((m->oflags & VPO_BUSY) == 0, + ("vm_page_set_invalid: page %p is busy", m)); bits = vm_page_bits(base, size); - mtx_assert(&vm_page_queue_mtx, MA_OWNED); if (m->valid == VM_PAGE_BITS_ALL && bits != 0) pmap_remove_all(m); + KASSERT(!pmap_page_is_mapped(m), + ("vm_page_set_invalid: page %p is mapped", m)); m->valid &= ~bits; m->dirty &= ~bits; m->object->generation++; @@ -2241,9 +2244,10 @@ vm_page_is_valid(vm_page_t m, int base, void vm_page_test_dirty(vm_page_t m) { - if ((m->dirty != VM_PAGE_BITS_ALL) && pmap_is_modified(m)) { + + VM_OBJECT_LOCK_ASSERT(m->object, MA_OWNED); + if (m->dirty != VM_PAGE_BITS_ALL && pmap_is_modified(m)) vm_page_dirty(m); - } } int so_zerocp_fullpage = 0; From owner-svn-src-all@FreeBSD.ORG Tue May 18 17:01:07 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 75F9F106566B; Tue, 18 May 2010 17:01:07 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4BF738FC0C; Tue, 18 May 2010 17:01:07 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4IH17HH011430; Tue, 18 May 2010 17:01:07 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4IH17Ce011428; Tue, 18 May 2010 17:01:07 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <201005181701.o4IH17Ce011428@svn.freebsd.org> From: Rui Paulo Date: Tue, 18 May 2010 17:01:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208265 - head/sys/mips/rmi/dev/xlr X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 17:01:07 -0000 Author: rpaulo Date: Tue May 18 17:01:07 2010 New Revision: 208265 URL: http://svn.freebsd.org/changeset/base/208265 Log: Add a device description. Modified: head/sys/mips/rmi/dev/xlr/rge.c Modified: head/sys/mips/rmi/dev/xlr/rge.c ============================================================================== --- head/sys/mips/rmi/dev/xlr/rge.c Tue May 18 16:40:29 2010 (r208264) +++ head/sys/mips/rmi/dev/xlr/rge.c Tue May 18 17:01:07 2010 (r208265) @@ -1707,6 +1707,8 @@ static int rge_probe(dev) device_t dev; { + device_set_desc(dev, "RMI Gigabit Ethernet"); + /* Always return 0 */ return 0; } From owner-svn-src-all@FreeBSD.ORG Tue May 18 17:02:24 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D745E106566C; Tue, 18 May 2010 17:02:24 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C4B628FC20; Tue, 18 May 2010 17:02:24 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4IH2OmN011737; Tue, 18 May 2010 17:02:24 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4IH2Oeg011733; Tue, 18 May 2010 17:02:24 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201005181702.o4IH2Oeg011733@svn.freebsd.org> From: Marius Strobl Date: Tue, 18 May 2010 17:02:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208266 - stable/8/sys/sparc64/pci X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 17:02:25 -0000 Author: marius Date: Tue May 18 17:02:24 2010 New Revision: 208266 URL: http://svn.freebsd.org/changeset/base/208266 Log: MFC: r205254, r208097 - Add quirk handling for Sun Fire V1280. The firmware of these machines provides no ino-bitmap properties so forge them using the default set of controller interrupts and let schizo_setup_intr() take care of the children, hoping for non-fancy routing. - Enable DMA write parity error interrupts on Schizo with a working implementation. - Let schizo_pci_bus() only panic in case of fatal errors as the interrupt triggered by the error the firmware of Sun Fire V890 as well as 280R with version 7 Schizo caused may happen as late as using the HBA and not only prior to touching the PCI bus (in the former case the actual error still is fatal but we clear it before touching the PCI bus). While at it count and export non-fatal error interrupts via sysctl(9). - Remove unnecessary locking from schizo_ue(). Modified: stable/8/sys/sparc64/pci/schizo.c stable/8/sys/sparc64/pci/schizoreg.h stable/8/sys/sparc64/pci/schizovar.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/sparc64/pci/schizo.c ============================================================================== --- stable/8/sys/sparc64/pci/schizo.c Tue May 18 17:01:07 2010 (r208265) +++ stable/8/sys/sparc64/pci/schizo.c Tue May 18 17:02:24 2010 (r208266) @@ -52,6 +52,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -385,6 +386,21 @@ schizo_attach(device_t dev) SCHIZO_PCI_WRITE_8(sc, STX_PCI_DIAG, reg); /* + * Enable DMA write parity error interrupts of version >= 7 (i.e. + * revision >= 2.5) Schizo. + */ + if (mode == SCHIZO_MODE_SCZ && sc->sc_ver >= 7) { + reg = SCHIZO_PCI_READ_8(sc, SX_PCI_CFG_ICD); + reg |= SX_PCI_CFG_ICD_DMAW_PERR_IEN; +#ifdef SCHIZO_DEBUG + device_printf(dev, "PCI CFG/ICD 0x%016llx -> 0x%016llx\n", + (unsigned long long)SCHIZO_PCI_READ_8(sc, SX_PCI_CFG_ICD), + (unsigned long long)reg); +#endif + SCHIZO_PCI_WRITE_8(sc, SX_PCI_CFG_ICD, reg); + } + + /* * On Tomatillo clear the I/O prefetch lengths (workaround for a * Jalapeno bug). */ @@ -402,9 +418,22 @@ schizo_attach(device_t dev) */ i = OF_getprop(node, "ino-bitmap", (void *)prop_array, sizeof(prop_array)); - if (i == -1) - panic("%s: could not get ino-bitmap", __func__); - ino_bitmap = ((uint64_t)prop_array[1] << 32) | prop_array[0]; + if (i != -1) + ino_bitmap = ((uint64_t)prop_array[1] << 32) | prop_array[0]; + else { + /* + * If the ino-bitmap property is missing, just provide the + * default set of interrupts for this controller and let + * schizo_setup_intr() take care of child interrupts. + */ + if (sc->sc_half == 0) + ino_bitmap = (1ULL << STX_UE_INO) | + (1ULL << STX_CE_INO) | + (1ULL << STX_PCIERR_A_INO) | + (1ULL << STX_BUS_INO); + else + ino_bitmap = 1ULL << STX_PCIERR_B_INO; + } for (i = 0; i <= STX_MAX_INO; i++) { if ((ino_bitmap & (1ULL << i)) == 0) continue; @@ -684,6 +713,18 @@ schizo_attach(device_t dev) ofw_bus_setup_iinfo(node, &sc->sc_pci_iinfo, sizeof(ofw_pci_intr_t)); +#define SCHIZO_SYSCTL_ADD_UINT(name, arg, desc) \ + SYSCTL_ADD_UINT(device_get_sysctl_ctx(dev), \ + SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, \ + (name), CTLFLAG_RD, (arg), 0, (desc)) + + SCHIZO_SYSCTL_ADD_UINT("dma_ce", &sc->sc_stats_dma_ce, + "DMA correctable errors"); + SCHIZO_SYSCTL_ADD_UINT("pci_non_fatal", &sc->sc_stats_pci_non_fatal, + "PCI bus non-fatal errors"); + +#undef SCHIZO_SYSCTL_ADD_UINT + device_add_child(dev, "pci", -1); return (bus_generic_attach(dev)); } @@ -780,6 +821,11 @@ schizo_pci_bus(void *arg) struct schizo_softc *sc = arg; uint64_t afar, afsr, csr, iommu; uint32_t status; + u_int fatal; + + fatal = 0; + + mtx_lock_spin(sc->sc_mtx); afar = SCHIZO_PCI_READ_8(sc, STX_PCI_AFAR); afsr = SCHIZO_PCI_READ_8(sc, STX_PCI_AFSR); @@ -787,39 +833,51 @@ schizo_pci_bus(void *arg) iommu = SCHIZO_PCI_READ_8(sc, STX_PCI_IOMMU); status = PCIB_READ_CONFIG(sc->sc_dev, sc->sc_pci_secbus, STX_CS_DEVICE, STX_CS_FUNC, PCIR_STATUS, 2); - if ((csr & STX_PCI_CTRL_MMU_ERR) != 0) { - if ((iommu & TOM_PCI_IOMMU_ERR) == 0) - goto clear_error; - - /* These are non-fatal if target abort was signaled. */ - if ((status & PCIM_STATUS_STABORT) != 0 && - ((iommu & TOM_PCI_IOMMU_ERRMASK) == - TOM_PCI_IOMMU_INVALID_ERR || - (iommu & TOM_PCI_IOMMU_ERR_ILLTSBTBW) != 0 || - (iommu & TOM_PCI_IOMMU_ERR_BAD_VA) != 0)) { - SCHIZO_PCI_WRITE_8(sc, STX_PCI_IOMMU, iommu); - goto clear_error; - } - } - panic("%s: PCI bus %c error AFAR %#llx AFSR %#llx PCI CSR %#llx " - "IOMMU %#llx STATUS %#llx", device_get_nameunit(sc->sc_dev), - 'A' + sc->sc_half, (unsigned long long)afar, - (unsigned long long)afsr, (unsigned long long)csr, - (unsigned long long)iommu, (unsigned long long)status); + /* + * IOMMU errors are only fatal on Tomatillo and there also only if + * target abort was not signaled. + */ + if ((csr & STX_PCI_CTRL_MMU_ERR) != 0 && + (iommu & TOM_PCI_IOMMU_ERR) != 0 && + ((status & PCIM_STATUS_STABORT) == 0 || + ((iommu & TOM_PCI_IOMMU_ERRMASK) != TOM_PCI_IOMMU_INVALID_ERR && + (iommu & TOM_PCI_IOMMU_ERR_ILLTSBTBW) == 0 && + (iommu & TOM_PCI_IOMMU_ERR_BAD_VA) == 0))) + fatal = 1; + else if ((status & PCIM_STATUS_STABORT) != 0) + fatal = 1; + if ((status & (PCIM_STATUS_PERR | PCIM_STATUS_SERR | + PCIM_STATUS_RMABORT | PCIM_STATUS_RTABORT | + PCIM_STATUS_PERRREPORT)) != 0 || + (csr & (SCZ_PCI_CTRL_BUS_UNUS | TOM_PCI_CTRL_DTO_ERR | + STX_PCI_CTRL_TTO_ERR | STX_PCI_CTRL_RTRY_ERR | + SCZ_PCI_CTRL_SBH_ERR | STX_PCI_CTRL_SERR)) != 0 || + (afsr & (STX_PCI_AFSR_P_MA | STX_PCI_AFSR_P_TA | + STX_PCI_AFSR_P_RTRY | STX_PCI_AFSR_P_PERR | STX_PCI_AFSR_P_TTO | + STX_PCI_AFSR_P_UNUS)) != 0) + fatal = 1; + if (fatal == 0) + sc->sc_stats_pci_non_fatal++; + + device_printf(sc->sc_dev, "PCI bus %c error AFAR %#llx AFSR %#llx " + "PCI CSR %#llx IOMMU %#llx STATUS %#llx\n", 'A' + sc->sc_half, + (unsigned long long)afar, (unsigned long long)afsr, + (unsigned long long)csr, (unsigned long long)iommu, + (unsigned long long)status); - clear_error: - if (bootverbose) - device_printf(sc->sc_dev, - "PCI bus %c error AFAR %#llx AFSR %#llx PCI CSR %#llx " - "STATUS %#llx", 'A' + sc->sc_half, - (unsigned long long)afar, (unsigned long long)afsr, - (unsigned long long)csr, (unsigned long long)status); /* Clear the error bits that we caught. */ PCIB_WRITE_CONFIG(sc->sc_dev, sc->sc_pci_secbus, STX_CS_DEVICE, STX_CS_FUNC, PCIR_STATUS, status, 2); SCHIZO_PCI_WRITE_8(sc, STX_PCI_CTRL, csr); SCHIZO_PCI_WRITE_8(sc, STX_PCI_AFSR, afsr); + SCHIZO_PCI_WRITE_8(sc, STX_PCI_IOMMU, iommu); + + mtx_unlock_spin(sc->sc_mtx); + + if (fatal != 0) + panic("%s: fatal PCI bus error", + device_get_nameunit(sc->sc_dev)); return (FILTER_HANDLED); } @@ -830,13 +888,11 @@ schizo_ue(void *arg) uint64_t afar, afsr; int i; - mtx_lock_spin(sc->sc_mtx); afar = SCHIZO_CTRL_READ_8(sc, STX_CTRL_UE_AFAR); for (i = 0; i < 1000; i++) if (((afsr = SCHIZO_CTRL_READ_8(sc, STX_CTRL_UE_AFSR)) & STX_CTRL_CE_AFSR_ERRPNDG) == 0) break; - mtx_unlock_spin(sc->sc_mtx); panic("%s: uncorrectable DMA error AFAR %#llx AFSR %#llx", device_get_nameunit(sc->sc_dev), (unsigned long long)afar, (unsigned long long)afsr); @@ -851,17 +907,22 @@ schizo_ce(void *arg) int i; mtx_lock_spin(sc->sc_mtx); + afar = SCHIZO_CTRL_READ_8(sc, STX_CTRL_CE_AFAR); for (i = 0; i < 1000; i++) if (((afsr = SCHIZO_CTRL_READ_8(sc, STX_CTRL_UE_AFSR)) & STX_CTRL_CE_AFSR_ERRPNDG) == 0) break; + sc->sc_stats_dma_ce++; device_printf(sc->sc_dev, "correctable DMA error AFAR %#llx AFSR %#llx\n", (unsigned long long)afar, (unsigned long long)afsr); + /* Clear the error bits that we caught. */ SCHIZO_CTRL_WRITE_8(sc, STX_CTRL_UE_AFSR, afsr); + mtx_unlock_spin(sc->sc_mtx); + return (FILTER_HANDLED); } Modified: stable/8/sys/sparc64/pci/schizoreg.h ============================================================================== --- stable/8/sys/sparc64/pci/schizoreg.h Tue May 18 17:01:07 2010 (r208265) +++ stable/8/sys/sparc64/pci/schizoreg.h Tue May 18 17:02:24 2010 (r208266) @@ -42,6 +42,7 @@ #define STX_ICON 3 /* PCI configuration and status registers */ +#define SX_PCI_CFG_ICD 0x00110 #define STX_PCI_IOMMU 0x00200 #define STX_PCI_IOMMU_CTXFLUSH 0x00218 #define STX_PCI_IMAP_BASE 0x01000 @@ -67,6 +68,15 @@ #define STX_PCI_IOBIO_DIAG 0x0a808 #define STX_PCI_STRBUF_CTXMATCH 0x10000 +/* PCI configuration/idle check diagnostic registers */ +#define SX_PCI_CFG_ICD_PCI_2_0_COMPAT 0x0000000000008000ULL +#define SX_PCI_CFG_ICD_DMAW_PERR_IEN 0x0000000000004000ULL +#define SX_PCI_CFG_ICD_IFC_NOT_IDLE 0x0000000000000010ULL +#define SX_PCI_CFG_ICD_MDU_NOT_IDLE 0x0000000000000008ULL +#define SX_PCI_CFG_ICD_MMU_NOT_IDLE 0x0000000000000004ULL +#define SX_PCI_CFG_ICD_PBM_NOT_IDLE 0x0000000000000002ULL +#define SX_PCI_CFG_ICD_STC_NOT_IDLE 0x0000000000000001ULL + /* PCI IOMMU control registers */ #define TOM_PCI_IOMMU_ERR_BAD_VA 0x0000000010000000ULL #define TOM_PCI_IOMMU_ERR_ILLTSBTBW 0x0000000008000000ULL Modified: stable/8/sys/sparc64/pci/schizovar.h ============================================================================== --- stable/8/sys/sparc64/pci/schizovar.h Tue May 18 17:01:07 2010 (r208265) +++ stable/8/sys/sparc64/pci/schizovar.h Tue May 18 17:02:24 2010 (r208266) @@ -70,6 +70,9 @@ struct schizo_softc { bus_space_tag_t sc_pci_memt; bus_dma_tag_t sc_pci_dmat; + uint32_t sc_stats_dma_ce; + uint32_t sc_stats_pci_non_fatal; + uint8_t sc_pci_secbus; uint8_t sc_pci_subbus; From owner-svn-src-all@FreeBSD.ORG Tue May 18 17:02:35 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F2213106564A; Tue, 18 May 2010 17:02:35 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DFADF8FC14; Tue, 18 May 2010 17:02:35 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4IH2ZAn011839; Tue, 18 May 2010 17:02:35 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4IH2ZY4011835; Tue, 18 May 2010 17:02:35 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201005181702.o4IH2ZY4011835@svn.freebsd.org> From: Marius Strobl Date: Tue, 18 May 2010 17:02:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208267 - stable/7/sys/sparc64/pci X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 17:02:36 -0000 Author: marius Date: Tue May 18 17:02:35 2010 New Revision: 208267 URL: http://svn.freebsd.org/changeset/base/208267 Log: MFC: r205254, r208097 - Add quirk handling for Sun Fire V1280. The firmware of these machines provides no ino-bitmap properties so forge them using the default set of controller interrupts and let schizo_setup_intr() take care of the children, hoping for non-fancy routing. - Enable DMA write parity error interrupts on Schizo with a working implementation. - Let schizo_pci_bus() only panic in case of fatal errors as the interrupt triggered by the error the firmware of Sun Fire V890 as well as 280R with version 7 Schizo caused may happen as late as using the HBA and not only prior to touching the PCI bus (in the former case the actual error still is fatal but we clear it before touching the PCI bus). While at it count and export non-fatal error interrupts via sysctl(9). - Remove unnecessary locking from schizo_ue(). Modified: stable/7/sys/sparc64/pci/schizo.c stable/7/sys/sparc64/pci/schizoreg.h stable/7/sys/sparc64/pci/schizovar.h Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/sys/sparc64/pci/schizo.c ============================================================================== --- stable/7/sys/sparc64/pci/schizo.c Tue May 18 17:02:24 2010 (r208266) +++ stable/7/sys/sparc64/pci/schizo.c Tue May 18 17:02:35 2010 (r208267) @@ -52,6 +52,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -386,6 +387,21 @@ schizo_attach(device_t dev) SCHIZO_PCI_WRITE_8(sc, STX_PCI_DIAG, reg); /* + * Enable DMA write parity error interrupts of version >= 7 (i.e. + * revision >= 2.5) Schizo. + */ + if (mode == SCHIZO_MODE_SCZ && sc->sc_ver >= 7) { + reg = SCHIZO_PCI_READ_8(sc, SX_PCI_CFG_ICD); + reg |= SX_PCI_CFG_ICD_DMAW_PERR_IEN; +#ifdef SCHIZO_DEBUG + device_printf(dev, "PCI CFG/ICD 0x%016llx -> 0x%016llx\n", + (unsigned long long)SCHIZO_PCI_READ_8(sc, SX_PCI_CFG_ICD), + (unsigned long long)reg); +#endif + SCHIZO_PCI_WRITE_8(sc, SX_PCI_CFG_ICD, reg); + } + + /* * On Tomatillo clear the I/O prefetch lengths (workaround for a * Jalapeno bug). */ @@ -403,9 +419,22 @@ schizo_attach(device_t dev) */ i = OF_getprop(node, "ino-bitmap", (void *)prop_array, sizeof(prop_array)); - if (i == -1) - panic("%s: could not get ino-bitmap", __func__); - ino_bitmap = ((uint64_t)prop_array[1] << 32) | prop_array[0]; + if (i != -1) + ino_bitmap = ((uint64_t)prop_array[1] << 32) | prop_array[0]; + else { + /* + * If the ino-bitmap property is missing, just provide the + * default set of interrupts for this controller and let + * schizo_setup_intr() take care of child interrupts. + */ + if (sc->sc_half == 0) + ino_bitmap = (1ULL << STX_UE_INO) | + (1ULL << STX_CE_INO) | + (1ULL << STX_PCIERR_A_INO) | + (1ULL << STX_BUS_INO); + else + ino_bitmap = 1ULL << STX_PCIERR_B_INO; + } for (i = 0; i <= STX_MAX_INO; i++) { if ((ino_bitmap & (1ULL << i)) == 0) continue; @@ -685,6 +714,18 @@ schizo_attach(device_t dev) ofw_bus_setup_iinfo(node, &sc->sc_pci_iinfo, sizeof(ofw_pci_intr_t)); +#define SCHIZO_SYSCTL_ADD_UINT(name, arg, desc) \ + SYSCTL_ADD_UINT(device_get_sysctl_ctx(dev), \ + SYSCTL_CHILDREN(device_get_sysctl_tree(dev)), OID_AUTO, \ + (name), CTLFLAG_RD, (arg), 0, (desc)) + + SCHIZO_SYSCTL_ADD_UINT("dma_ce", &sc->sc_stats_dma_ce, + "DMA correctable errors"); + SCHIZO_SYSCTL_ADD_UINT("pci_non_fatal", &sc->sc_stats_pci_non_fatal, + "PCI bus non-fatal errors"); + +#undef SCHIZO_SYSCTL_ADD_UINT + device_add_child(dev, "pci", -1); return (bus_generic_attach(dev)); } @@ -781,6 +822,11 @@ schizo_pci_bus(void *arg) struct schizo_softc *sc = arg; uint64_t afar, afsr, csr, iommu; uint32_t status; + u_int fatal; + + fatal = 0; + + mtx_lock_spin(sc->sc_mtx); afar = SCHIZO_PCI_READ_8(sc, STX_PCI_AFAR); afsr = SCHIZO_PCI_READ_8(sc, STX_PCI_AFSR); @@ -788,39 +834,51 @@ schizo_pci_bus(void *arg) iommu = SCHIZO_PCI_READ_8(sc, STX_PCI_IOMMU); status = PCIB_READ_CONFIG(sc->sc_dev, sc->sc_pci_secbus, STX_CS_DEVICE, STX_CS_FUNC, PCIR_STATUS, 2); - if ((csr & STX_PCI_CTRL_MMU_ERR) != 0) { - if ((iommu & TOM_PCI_IOMMU_ERR) == 0) - goto clear_error; - - /* These are non-fatal if target abort was signaled. */ - if ((status & PCIM_STATUS_STABORT) != 0 && - ((iommu & TOM_PCI_IOMMU_ERRMASK) == - TOM_PCI_IOMMU_INVALID_ERR || - (iommu & TOM_PCI_IOMMU_ERR_ILLTSBTBW) != 0 || - (iommu & TOM_PCI_IOMMU_ERR_BAD_VA) != 0)) { - SCHIZO_PCI_WRITE_8(sc, STX_PCI_IOMMU, iommu); - goto clear_error; - } - } - panic("%s: PCI bus %c error AFAR %#llx AFSR %#llx PCI CSR %#llx " - "IOMMU %#llx STATUS %#llx", device_get_nameunit(sc->sc_dev), - 'A' + sc->sc_half, (unsigned long long)afar, - (unsigned long long)afsr, (unsigned long long)csr, - (unsigned long long)iommu, (unsigned long long)status); + /* + * IOMMU errors are only fatal on Tomatillo and there also only if + * target abort was not signaled. + */ + if ((csr & STX_PCI_CTRL_MMU_ERR) != 0 && + (iommu & TOM_PCI_IOMMU_ERR) != 0 && + ((status & PCIM_STATUS_STABORT) == 0 || + ((iommu & TOM_PCI_IOMMU_ERRMASK) != TOM_PCI_IOMMU_INVALID_ERR && + (iommu & TOM_PCI_IOMMU_ERR_ILLTSBTBW) == 0 && + (iommu & TOM_PCI_IOMMU_ERR_BAD_VA) == 0))) + fatal = 1; + else if ((status & PCIM_STATUS_STABORT) != 0) + fatal = 1; + if ((status & (PCIM_STATUS_PERR | PCIM_STATUS_SERR | + PCIM_STATUS_RMABORT | PCIM_STATUS_RTABORT | + PCIM_STATUS_PERRREPORT)) != 0 || + (csr & (SCZ_PCI_CTRL_BUS_UNUS | TOM_PCI_CTRL_DTO_ERR | + STX_PCI_CTRL_TTO_ERR | STX_PCI_CTRL_RTRY_ERR | + SCZ_PCI_CTRL_SBH_ERR | STX_PCI_CTRL_SERR)) != 0 || + (afsr & (STX_PCI_AFSR_P_MA | STX_PCI_AFSR_P_TA | + STX_PCI_AFSR_P_RTRY | STX_PCI_AFSR_P_PERR | STX_PCI_AFSR_P_TTO | + STX_PCI_AFSR_P_UNUS)) != 0) + fatal = 1; + if (fatal == 0) + sc->sc_stats_pci_non_fatal++; + + device_printf(sc->sc_dev, "PCI bus %c error AFAR %#llx AFSR %#llx " + "PCI CSR %#llx IOMMU %#llx STATUS %#llx\n", 'A' + sc->sc_half, + (unsigned long long)afar, (unsigned long long)afsr, + (unsigned long long)csr, (unsigned long long)iommu, + (unsigned long long)status); - clear_error: - if (bootverbose) - device_printf(sc->sc_dev, - "PCI bus %c error AFAR %#llx AFSR %#llx PCI CSR %#llx " - "STATUS %#llx", 'A' + sc->sc_half, - (unsigned long long)afar, (unsigned long long)afsr, - (unsigned long long)csr, (unsigned long long)status); /* Clear the error bits that we caught. */ PCIB_WRITE_CONFIG(sc->sc_dev, sc->sc_pci_secbus, STX_CS_DEVICE, STX_CS_FUNC, PCIR_STATUS, status, 2); SCHIZO_PCI_WRITE_8(sc, STX_PCI_CTRL, csr); SCHIZO_PCI_WRITE_8(sc, STX_PCI_AFSR, afsr); + SCHIZO_PCI_WRITE_8(sc, STX_PCI_IOMMU, iommu); + + mtx_unlock_spin(sc->sc_mtx); + + if (fatal != 0) + panic("%s: fatal PCI bus error", + device_get_nameunit(sc->sc_dev)); return (FILTER_HANDLED); } @@ -831,13 +889,11 @@ schizo_ue(void *arg) uint64_t afar, afsr; int i; - mtx_lock_spin(sc->sc_mtx); afar = SCHIZO_CTRL_READ_8(sc, STX_CTRL_UE_AFAR); for (i = 0; i < 1000; i++) if (((afsr = SCHIZO_CTRL_READ_8(sc, STX_CTRL_UE_AFSR)) & STX_CTRL_CE_AFSR_ERRPNDG) == 0) break; - mtx_unlock_spin(sc->sc_mtx); panic("%s: uncorrectable DMA error AFAR %#llx AFSR %#llx", device_get_nameunit(sc->sc_dev), (unsigned long long)afar, (unsigned long long)afsr); @@ -852,17 +908,22 @@ schizo_ce(void *arg) int i; mtx_lock_spin(sc->sc_mtx); + afar = SCHIZO_CTRL_READ_8(sc, STX_CTRL_CE_AFAR); for (i = 0; i < 1000; i++) if (((afsr = SCHIZO_CTRL_READ_8(sc, STX_CTRL_UE_AFSR)) & STX_CTRL_CE_AFSR_ERRPNDG) == 0) break; + sc->sc_stats_dma_ce++; device_printf(sc->sc_dev, "correctable DMA error AFAR %#llx AFSR %#llx\n", (unsigned long long)afar, (unsigned long long)afsr); + /* Clear the error bits that we caught. */ SCHIZO_CTRL_WRITE_8(sc, STX_CTRL_UE_AFSR, afsr); + mtx_unlock_spin(sc->sc_mtx); + return (FILTER_HANDLED); } Modified: stable/7/sys/sparc64/pci/schizoreg.h ============================================================================== --- stable/7/sys/sparc64/pci/schizoreg.h Tue May 18 17:02:24 2010 (r208266) +++ stable/7/sys/sparc64/pci/schizoreg.h Tue May 18 17:02:35 2010 (r208267) @@ -42,6 +42,7 @@ #define STX_ICON 3 /* PCI configuration and status registers */ +#define SX_PCI_CFG_ICD 0x00110 #define STX_PCI_IOMMU 0x00200 #define STX_PCI_IOMMU_CTXFLUSH 0x00218 #define STX_PCI_IMAP_BASE 0x01000 @@ -67,6 +68,15 @@ #define STX_PCI_IOBIO_DIAG 0x0a808 #define STX_PCI_STRBUF_CTXMATCH 0x10000 +/* PCI configuration/idle check diagnostic registers */ +#define SX_PCI_CFG_ICD_PCI_2_0_COMPAT 0x0000000000008000ULL +#define SX_PCI_CFG_ICD_DMAW_PERR_IEN 0x0000000000004000ULL +#define SX_PCI_CFG_ICD_IFC_NOT_IDLE 0x0000000000000010ULL +#define SX_PCI_CFG_ICD_MDU_NOT_IDLE 0x0000000000000008ULL +#define SX_PCI_CFG_ICD_MMU_NOT_IDLE 0x0000000000000004ULL +#define SX_PCI_CFG_ICD_PBM_NOT_IDLE 0x0000000000000002ULL +#define SX_PCI_CFG_ICD_STC_NOT_IDLE 0x0000000000000001ULL + /* PCI IOMMU control registers */ #define TOM_PCI_IOMMU_ERR_BAD_VA 0x0000000010000000ULL #define TOM_PCI_IOMMU_ERR_ILLTSBTBW 0x0000000008000000ULL Modified: stable/7/sys/sparc64/pci/schizovar.h ============================================================================== --- stable/7/sys/sparc64/pci/schizovar.h Tue May 18 17:02:24 2010 (r208266) +++ stable/7/sys/sparc64/pci/schizovar.h Tue May 18 17:02:35 2010 (r208267) @@ -70,6 +70,9 @@ struct schizo_softc { bus_space_tag_t sc_pci_memt; bus_dma_tag_t sc_pci_dmat; + uint32_t sc_stats_dma_ce; + uint32_t sc_stats_pci_non_fatal; + uint8_t sc_pci_secbus; uint8_t sc_pci_subbus; From owner-svn-src-all@FreeBSD.ORG Tue May 18 17:09:20 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B8751106566C; Tue, 18 May 2010 17:09:20 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A6ED88FC20; Tue, 18 May 2010 17:09:20 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4IH9KLN013395; Tue, 18 May 2010 17:09:20 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4IH9KnB013393; Tue, 18 May 2010 17:09:20 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201005181709.o4IH9KnB013393@svn.freebsd.org> From: Marius Strobl Date: Tue, 18 May 2010 17:09:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208268 - stable/8/sys/dev/e1000 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 17:09:20 -0000 Author: marius Date: Tue May 18 17:09:20 2010 New Revision: 208268 URL: http://svn.freebsd.org/changeset/base/208268 Log: MFC: r208117 Fix a mismerge in r206001 (MFC'ed to stable/8 in r206211). PR: 146614 Approved by: jfv (implicit) Modified: stable/8/sys/dev/e1000/if_em.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/dev/e1000/if_em.c ============================================================================== --- stable/8/sys/dev/e1000/if_em.c Tue May 18 17:02:35 2010 (r208267) +++ stable/8/sys/dev/e1000/if_em.c Tue May 18 17:09:20 2010 (r208268) @@ -705,6 +705,9 @@ em_detach(device_t dev) ether_poll_deregister(ifp); #endif + if (adapter->led_dev != NULL) + led_destroy(adapter->led_dev); + EM_CORE_LOCK(adapter); adapter->in_detach = 1; em_stop(adapter); @@ -774,9 +777,6 @@ em_resume(device_t dev) struct adapter *adapter = device_get_softc(dev); struct ifnet *ifp = adapter->ifp; - if (adapter->led_dev != NULL) - led_destroy(adapter->led_dev); - EM_CORE_LOCK(adapter); em_init_locked(adapter); em_init_manageability(adapter); From owner-svn-src-all@FreeBSD.ORG Tue May 18 17:09:22 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9F2871065676; Tue, 18 May 2010 17:09:22 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8DD478FC21; Tue, 18 May 2010 17:09:22 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4IH9Mwx013429; Tue, 18 May 2010 17:09:22 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4IH9MOk013427; Tue, 18 May 2010 17:09:22 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201005181709.o4IH9MOk013427@svn.freebsd.org> From: Marius Strobl Date: Tue, 18 May 2010 17:09:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208269 - stable/7/sys/dev/e1000 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 17:09:22 -0000 Author: marius Date: Tue May 18 17:09:22 2010 New Revision: 208269 URL: http://svn.freebsd.org/changeset/base/208269 Log: MFC: r208117 Fix a mismerge in r206001 (MFC'ed to stable/7 in r208105). PR: 146614 Approved by: jfv (implicit) Modified: stable/7/sys/dev/e1000/if_em.c Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/sys/dev/e1000/if_em.c ============================================================================== --- stable/7/sys/dev/e1000/if_em.c Tue May 18 17:09:20 2010 (r208268) +++ stable/7/sys/dev/e1000/if_em.c Tue May 18 17:09:22 2010 (r208269) @@ -705,6 +705,9 @@ em_detach(device_t dev) ether_poll_deregister(ifp); #endif + if (adapter->led_dev != NULL) + led_destroy(adapter->led_dev); + EM_CORE_LOCK(adapter); adapter->in_detach = 1; em_stop(adapter); @@ -774,9 +777,6 @@ em_resume(device_t dev) struct adapter *adapter = device_get_softc(dev); struct ifnet *ifp = adapter->ifp; - if (adapter->led_dev != NULL) - led_destroy(adapter->led_dev); - EM_CORE_LOCK(adapter); em_init_locked(adapter); em_init_manageability(adapter); From owner-svn-src-all@FreeBSD.ORG Tue May 18 17:14:25 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B8E7A106564A; Tue, 18 May 2010 17:14:25 +0000 (UTC) (envelope-from pyunyh@gmail.com) Received: from mail-pv0-f182.google.com (mail-pv0-f182.google.com [74.125.83.182]) by mx1.freebsd.org (Postfix) with ESMTP id 63F208FC1C; Tue, 18 May 2010 17:14:25 +0000 (UTC) Received: by pvg4 with SMTP id 4so6272pvg.13 for ; Tue, 18 May 2010 10:14:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:received:from:date:to:cc :subject:message-id:reply-to:references:mime-version:content-type :content-disposition:in-reply-to:user-agent; bh=3Bzl2nxt3xX5+p3fd1qRfoXsoHq3yyxPE3gduKi69fo=; b=EIDhs14WxT/ogBBJBKLfDzvFs3GFWksdPwfODtg4UrCtm47Oqz3E4+7Dsgt2Ketc9X cMpcra1dlx1Rc9AIfSC4CS24frirpi/P3UWjCopw+ptcf05T3fVEhJjBZM8zBT9OtsJH OXCsDdKY05iecTenQQ09e7omCbtKyM/KyJ0As= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:date:to:cc:subject:message-id:reply-to:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; b=Tiq9ls/COe6irq2h4+oSKZtyUebJfhgZJyLpgyxiAnbQurbZV3SeEYXI/2ZvFTEmBV xDHtye5PemE8GsjyXeCNt35DC6NyhHmj1+sbxmMDTUoTMdHQRFDDmkbnk3oewdFdo4fM OUtoDHWta2FYM35+n9c5sdMnGGTh76wR8q5wI= Received: by 10.141.187.15 with SMTP id o15mr5243722rvp.174.1274202864550; Tue, 18 May 2010 10:14:24 -0700 (PDT) Received: from pyunyh@gmail.com ([174.35.1.224]) by mx.google.com with ESMTPS id b12sm5325824rvn.22.2010.05.18.10.14.22 (version=TLSv1/SSLv3 cipher=RC4-MD5); Tue, 18 May 2010 10:14:22 -0700 (PDT) Received: by pyunyh@gmail.com (sSMTP sendmail emulation); Tue, 18 May 2010 10:13:15 -0700 From: Pyun YongHyeon Date: Tue, 18 May 2010 10:13:15 -0700 To: "Bjoern A. Zeeb" Message-ID: <20100518171315.GA5968@michelle.cdnetworks.com> References: <201005101714.o4AHEFuu015079@svn.freebsd.org> <20100518032628.S23815@maildrop.int.zabbadoz.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100518032628.S23815@maildrop.int.zabbadoz.net> User-Agent: Mutt/1.4.2.3i Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Pyun YongHyeon Subject: Re: svn commit: r207851 - head/sys/dev/sge X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: pyunyh@gmail.com List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 17:14:25 -0000 On Tue, May 18, 2010 at 03:27:33AM +0000, Bjoern A. Zeeb wrote: > On Mon, 10 May 2010, Pyun YongHyeon wrote: > > >Author: yongari > >Date: Mon May 10 17:14:14 2010 > >New Revision: 207851 > >URL: http://svn.freebsd.org/changeset/base/207851 > > > >Log: > > Implement TSO and TSO over VLAN. Increase number of allowed > > fragmentation of mbuf chain to 32 from 16 because TSO can send 64KB > > sized packet which in turn requires long list of mbuf chain. Due to > > lack of documentation, I'm not sure whether driver have to pull up > > ethernet/IP/TCP header with options to make controller work but > > driver have to parse TCP header to update pseudo TCP checksum > > anyway. The controller expects pseudo TCP checksum computed by > > upper stack and the checksum should follow the MS NDIS > > specification to make TSO work. > > > > Tested by: xclin cs dot nctu dot edu dot tw > > > This brings in INET as a dependency for the driver and fails on my > nooptions INET > nooptions INET6 > kernels (in_pseudo()). > AFAIK sge(4) is not the only driver that has INET dependency. I think we need IPv6 offloading framework(checksum offloading, TSO4 and TSO6) before removing INET dependency in various drivers. Most recent ethernet controllers support IPv6 offloading and FreeBSD still lacks these nice features. > /bz > > -- > Bjoern A. Zeeb (from 21) Micky Rosa: > But as we've all said, this game is about the past and the future, > and tonight we forget about the past. We just focus on the future. From owner-svn-src-all@FreeBSD.ORG Tue May 18 17:15:41 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 039D8106564A; Tue, 18 May 2010 17:15:41 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DC59D8FC08; Tue, 18 May 2010 17:15:40 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4IHFeow014981; Tue, 18 May 2010 17:15:40 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4IHFeG0014978; Tue, 18 May 2010 17:15:40 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201005181715.o4IHFeG0014978@svn.freebsd.org> From: Marius Strobl Date: Tue, 18 May 2010 17:15:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208270 - stable/8/share/man/man4 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 17:15:41 -0000 Author: marius Date: Tue May 18 17:15:40 2010 New Revision: 208270 URL: http://svn.freebsd.org/changeset/base/208270 Log: MFC: r208098 Document the led(4) interface to the identification LEDs. Modified: stable/8/share/man/man4/em.4 stable/8/share/man/man4/igb.4 Directory Properties: stable/8/share/man/man4/ (props changed) Modified: stable/8/share/man/man4/em.4 ============================================================================== --- stable/8/share/man/man4/em.4 Tue May 18 17:09:22 2010 (r208269) +++ stable/8/share/man/man4/em.4 Tue May 18 17:15:40 2010 (r208270) @@ -31,7 +31,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 6, 2008 +.Dd May 14, 2010 .Dt EM 4 .Os .Sh NAME @@ -62,6 +62,11 @@ The driver supports Transmit/Receive che and Jumbo Frames on all but 82542-based adapters. Furthermore it supports TCP segmentation offload (TSO) on all adapters but those based on the 82543, 82544 and 82547 controller chips. +The identification LEDs of the adapters supported by the +.Nm +driver can be controlled via the +.Xr led 4 +API for localization purposes. For further hardware information, see the .Pa README included with the driver. @@ -241,10 +246,25 @@ If an issue is identified with the relea with a supported adapter, email the specific information related to the issue to .Aq freebsdnic@mailbox.intel.com . +.Sh FILES +.Bl -tag -width /dev/led/em* +.It Pa /dev/led/em* +identification LED device nodes +.El +.Sh EXAMPLES +Make the identification LED of em0 blink: +.Pp +.Dl "echo f2 > /dev/led/em0" +.Pp +Turn the identification LED of em0 off again: +.Pp +.Dl "echo 0 > /dev/led/em0" +.Pp .Sh SEE ALSO .Xr altq 4 , .Xr arp 4 , .Xr igb 4 , +.Xr led 4 , .Xr netintro 4 , .Xr ng_ether 4 , .Xr polling 4 , Modified: stable/8/share/man/man4/igb.4 ============================================================================== --- stable/8/share/man/man4/igb.4 Tue May 18 17:09:22 2010 (r208269) +++ stable/8/share/man/man4/igb.4 Tue May 18 17:15:40 2010 (r208270) @@ -31,7 +31,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 6, 2008 +.Dd May 14, 2010 .Dt IGB 4 .Os .Sh NAME @@ -60,6 +60,11 @@ The driver supports Transmit/Receive che Frames. Furthermore it supports TCP segmentation offload (TSO) on all adapters. +The identification LEDs of the adapters supported by the +.Nm +driver can be controlled via the +.Xr led 4 +API for localization purposes. .Pp For questions related to hardware requirements, refer to the documentation supplied with your Intel PRO/1000 adapter. @@ -175,10 +180,25 @@ If an issue is identified with the relea with a supported adapter, email the specific information related to the issue to .Aq freebsdnic@mailbox.intel.com . +.Sh FILES +.Bl -tag -width /dev/led/igb* +.It Pa /dev/led/igb* +identification LED device nodes +.El +.Sh EXAMPLES +Make the identification LED of igb0 blink: +.Pp +.Dl "echo f2 > /dev/led/igb0" +.Pp +Turn the identification LED of igb0 off again: +.Pp +.Dl "echo 0 > /dev/led/igb0" +.Pp .Sh SEE ALSO .Xr altq 4 , .Xr arp 4 , .Xr em 4 , +.Xr led 4 , .Xr netintro 4 , .Xr ng_ether 4 , .Xr polling 4 , From owner-svn-src-all@FreeBSD.ORG Tue May 18 17:15:42 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2EC341065670; Tue, 18 May 2010 17:15:42 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 13BC38FC0C; Tue, 18 May 2010 17:15:42 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4IHFfUe015017; Tue, 18 May 2010 17:15:41 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4IHFfM4015014; Tue, 18 May 2010 17:15:41 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201005181715.o4IHFfM4015014@svn.freebsd.org> From: Marius Strobl Date: Tue, 18 May 2010 17:15:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208271 - stable/7/share/man/man4 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 17:15:42 -0000 Author: marius Date: Tue May 18 17:15:41 2010 New Revision: 208271 URL: http://svn.freebsd.org/changeset/base/208271 Log: MFC: r208098 Document the led(4) interface to the identification LEDs. Modified: stable/7/share/man/man4/em.4 stable/7/share/man/man4/igb.4 Directory Properties: stable/7/share/man/man4/ (props changed) Modified: stable/7/share/man/man4/em.4 ============================================================================== --- stable/7/share/man/man4/em.4 Tue May 18 17:15:40 2010 (r208270) +++ stable/7/share/man/man4/em.4 Tue May 18 17:15:41 2010 (r208271) @@ -31,7 +31,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 6, 2008 +.Dd May 14, 2010 .Dt EM 4 .Os .Sh NAME @@ -62,6 +62,11 @@ The driver supports Transmit/Receive che and Jumbo Frames on all but 82542-based adapters. Furthermore it supports TCP segmentation offload (TSO) on all adapters but those based on the 82543, 82544 and 82547 controller chips. +The identification LEDs of the adapters supported by the +.Nm +driver can be controlled via the +.Xr led 4 +API for localization purposes. For further hardware information, see the .Pa README included with the driver. @@ -241,9 +246,24 @@ If an issue is identified with the relea with a supported adapter, email the specific information related to the issue to .Aq freebsdnic@mailbox.intel.com . +.Sh FILES +.Bl -tag -width /dev/led/em* +.It Pa /dev/led/em* +identification LED device nodes +.El +.Sh EXAMPLES +Make the identification LED of em0 blink: +.Pp +.Dl "echo f2 > /dev/led/em0" +.Pp +Turn the identification LED of em0 off again: +.Pp +.Dl "echo 0 > /dev/led/em0" +.Pp .Sh SEE ALSO .Xr altq 4 , .Xr arp 4 , +.Xr led 4 , .Xr netintro 4 , .Xr ng_ether 4 , .Xr polling 4 , Modified: stable/7/share/man/man4/igb.4 ============================================================================== --- stable/7/share/man/man4/igb.4 Tue May 18 17:15:40 2010 (r208270) +++ stable/7/share/man/man4/igb.4 Tue May 18 17:15:41 2010 (r208271) @@ -31,7 +31,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 6, 2008 +.Dd May 14, 2010 .Dt IGB 4 .Os .Sh NAME @@ -60,6 +60,11 @@ The driver supports Transmit/Receive che Frames. Furthermore it supports TCP segmentation offload (TSO) on all adapters. +The identification LEDs of the adapters supported by the +.Nm +driver can be controlled via the +.Xr led 4 +API for localization purposes. .Pp For questions related to hardware requirements, refer to the documentation supplied with your Intel PRO/1000 adapter. @@ -175,10 +180,25 @@ If an issue is identified with the relea with a supported adapter, email the specific information related to the issue to .Aq freebsdnic@mailbox.intel.com . +.Sh FILES +.Bl -tag -width /dev/led/igb* +.It Pa /dev/led/igb* +identification LED device nodes +.El +.Sh EXAMPLES +Make the identification LED of igb0 blink: +.Pp +.Dl "echo f2 > /dev/led/igb0" +.Pp +Turn the identification LED of igb0 off again: +.Pp +.Dl "echo 0 > /dev/led/igb0" +.Pp .Sh SEE ALSO .Xr altq 4 , .Xr arp 4 , .Xr em 4 , +.Xr led 4 , .Xr netintro 4 , .Xr ng_ether 4 , .Xr polling 4 , From owner-svn-src-all@FreeBSD.ORG Tue May 18 17:43:54 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4D6BC1065675; Tue, 18 May 2010 17:43:54 +0000 (UTC) (envelope-from bschmidt@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3B9E08FC14; Tue, 18 May 2010 17:43:54 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4IHhrQv021498; Tue, 18 May 2010 17:43:53 GMT (envelope-from bschmidt@svn.freebsd.org) Received: (from bschmidt@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4IHhrqF021496; Tue, 18 May 2010 17:43:53 GMT (envelope-from bschmidt@svn.freebsd.org) Message-Id: <201005181743.o4IHhrqF021496@svn.freebsd.org> From: Bernhard Schmidt Date: Tue, 18 May 2010 17:43:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208272 - stable/8/sys/dev/ipw X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 17:43:54 -0000 Author: bschmidt Date: Tue May 18 17:43:53 2010 New Revision: 208272 URL: http://svn.freebsd.org/changeset/base/208272 Log: MFC r207926: Enable 5.5 and 11Mbit TX rates. Reviewed by: sam Approved by: rpaulo (mentor) Modified: stable/8/sys/dev/ipw/if_ipw.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/dev/ipw/if_ipw.c ============================================================================== --- stable/8/sys/dev/ipw/if_ipw.c Tue May 18 17:15:41 2010 (r208271) +++ stable/8/sys/dev/ipw/if_ipw.c Tue May 18 17:43:53 2010 (r208272) @@ -2505,19 +2505,19 @@ ipw_config(struct ipw_softc *sc) if (error != 0) return error; - data = htole32(0x3); /* 1, 2 */ + data = htole32(0xf); /* 1, 2, 5.5, 11 */ DPRINTF(("Setting basic tx rates to 0x%x\n", le32toh(data))); error = ipw_cmd(sc, IPW_CMD_SET_BASIC_TX_RATES, &data, sizeof data); if (error != 0) return error; - /* NB: use the same rate set */ + /* Use the same rate set */ DPRINTF(("Setting msdu tx rates to 0x%x\n", le32toh(data))); error = ipw_cmd(sc, IPW_CMD_SET_MSDU_TX_RATES, &data, sizeof data); if (error != 0) return error; - data = htole32(0xf); /* 1, 2, 5.5, 11 */ + /* Use the same rate set */ DPRINTF(("Setting tx rates to 0x%x\n", le32toh(data))); error = ipw_cmd(sc, IPW_CMD_SET_TX_RATES, &data, sizeof data); if (error != 0) From owner-svn-src-all@FreeBSD.ORG Tue May 18 18:10:56 2010 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7DDFD1065675; Tue, 18 May 2010 18:10:56 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id 22CEC8FC1C; Tue, 18 May 2010 18:10:56 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.14.3/8.14.1) with ESMTP id o4II7MaB025503; Tue, 18 May 2010 12:07:22 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Tue, 18 May 2010 12:07:48 -0600 (MDT) Message-Id: <20100518.120748.450985660133983957.imp@bsdimp.com> To: uqs@FreeBSD.org From: "M. Warner Losh" In-Reply-To: <201005141426.o4EEQu7B081269@svn.freebsd.org> References: <201005141426.o4EEQu7B081269@svn.freebsd.org> X-Mailer: Mew version 6.3 on Emacs 22.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r208075 - in head/usr.sbin/apmd: . contrib X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 18:10:56 -0000 : Modified: head/usr.sbin/apmd/apmd.c : - execl(_PATH_BSHELL, "sh", "-c", p->line, (char *)NULL); : + execl(_PATH_BSHELL, "sh", "-c", p->line, NULL); This looks like a regression to me. Since execl is varadic, you do need this cast... Warner From owner-svn-src-all@FreeBSD.ORG Tue May 18 18:14:13 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2DA801065673; Tue, 18 May 2010 18:14:13 +0000 (UTC) (envelope-from bcr@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1CBB58FC16; Tue, 18 May 2010 18:14:13 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4IIEC09028433; Tue, 18 May 2010 18:14:12 GMT (envelope-from bcr@svn.freebsd.org) Received: (from bcr@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4IIEC0k028431; Tue, 18 May 2010 18:14:12 GMT (envelope-from bcr@svn.freebsd.org) Message-Id: <201005181814.o4IIEC0k028431@svn.freebsd.org> From: Benedict Reuschling Date: Tue, 18 May 2010 18:14:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208273 - head/usr.sbin/ntp/doc X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 18:14:13 -0000 Author: bcr (doc committer) Date: Tue May 18 18:14:12 2010 New Revision: 208273 URL: http://svn.freebsd.org/changeset/base/208273 Log: Add a sentence to the man page explaining that the -d option can only be used when ntpd is compiled with DEBUG support. PR: docs/138206 Submitted by: Oliver Pinter (oliver dot pntr at gmail dot com) MFC after: 5 days Approved by: roberto Modified: head/usr.sbin/ntp/doc/ntpd.8 Modified: head/usr.sbin/ntp/doc/ntpd.8 ============================================================================== --- head/usr.sbin/ntp/doc/ntpd.8 Tue May 18 17:43:53 2010 (r208272) +++ head/usr.sbin/ntp/doc/ntpd.8 Tue May 18 18:14:12 2010 (r208273) @@ -1,7 +1,7 @@ .\" .\" $FreeBSD$ .\" -.Dd May 17, 2006 +.Dd May 18, 2010 .Dt NTPD 8 .Os .Sh NAME @@ -108,6 +108,9 @@ Specify the name and path of the configu Specify debugging mode. This option may occur more than once, with each occurrence indicating greater detail of display. +You need to compile +.Nm +with DEBUG in order to use this. .It Fl D Ar level Specify debugging level directly. .It Fl f Ar driftfile From owner-svn-src-all@FreeBSD.ORG Tue May 18 18:19:07 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 27F98106564A; Tue, 18 May 2010 18:19:07 +0000 (UTC) (envelope-from brucec@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 15BBA8FC1E; Tue, 18 May 2010 18:19:07 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4IIJ6Ts029606; Tue, 18 May 2010 18:19:06 GMT (envelope-from brucec@svn.freebsd.org) Received: (from brucec@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4IIJ6SI029603; Tue, 18 May 2010 18:19:06 GMT (envelope-from brucec@svn.freebsd.org) Message-Id: <201005181819.o4IIJ6SI029603@svn.freebsd.org> From: Bruce Cran Date: Tue, 18 May 2010 18:19:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208274 - stable/8/usr.sbin/sade X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 18:19:07 -0000 Author: brucec Date: Tue May 18 18:19:06 2010 New Revision: 208274 URL: http://svn.freebsd.org/changeset/base/208274 Log: MFC r207006: Remove the reference to DD mode, and replace "Wizard" mode with "Expert" mode. Also, make sure the "Q = Finish" text is visible. Reword the boot manager screen to try and avoid confusion, and make the order of the menu items match that in sysinstall. PR: bin/142916 Submitted by: Jeremy Chadwick Approved by: rrs (mentor) Modified: stable/8/usr.sbin/sade/disks.c stable/8/usr.sbin/sade/menus.c Directory Properties: stable/8/usr.sbin/sade/ (props changed) Modified: stable/8/usr.sbin/sade/disks.c ============================================================================== --- stable/8/usr.sbin/sade/disks.c Tue May 18 18:14:12 2010 (r208273) +++ stable/8/usr.sbin/sade/disks.c Tue May 18 18:19:06 2010 (r208274) @@ -202,10 +202,9 @@ static void print_command_summary(void) { mvprintw(14, 0, "The following commands are supported (in upper or lower case):"); - mvprintw(16, 0, "A = Use Entire Disk G = set Drive Geometry C = Create Slice F = `DD' mode"); - mvprintw(17, 0, "D = Delete Slice Z = Toggle Size Units S = Set Bootable | = Wizard m."); - mvprintw(18, 0, "T = Change Type U = Undo All Changes Q = Finish"); - mvprintw(18, 47, "W = Write Changes"); + mvprintw(16, 0, "A = Use Entire Disk G = set Drive Geometry C = Create Slice"); + mvprintw(17, 0, "D = Delete Slice Z = Toggle Size Units S = Set Bootable | = Expert m."); + mvprintw(18, 0, "T = Change Type U = Undo All Changes W = Write Changes Q = Finish"); mvprintw(21, 0, "Use F1 or ? to get more help, arrow keys to select."); move(0, 0); } Modified: stable/8/usr.sbin/sade/menus.c ============================================================================== --- stable/8/usr.sbin/sade/menus.c Tue May 18 18:14:12 2010 (r208273) +++ stable/8/usr.sbin/sade/menus.c Tue May 18 18:19:06 2010 (r208274) @@ -92,24 +92,23 @@ DMenu MenuIPLType = { DMenu MenuMBRType = { DMENU_NORMAL_TYPE | DMENU_SELECTION_RETURNS, "overwrite me", /* will be disk specific label */ - "FreeBSD comes with a boot selector that allows you to easily\n" + "FreeBSD comes with a boot manager that allows you to easily\n" "select between FreeBSD and any other operating systems on your machine\n" "at boot time. If you have more than one drive and want to boot\n" - "from the second one, the boot selector will also make it possible\n" + "from the second one, the boot manager will also make it possible\n" "to do so (limitations in the PC BIOS usually prevent this otherwise).\n" - "If you do not want a boot selector, or wish to replace an existing\n" - "one, select \"standard\". If you would prefer your Master Boot\n" - "Record to remain untouched then select \"None\".\n\n" - " NOTE: PC-DOS users will almost certainly require \"None\"!", - "Press F1 to read about drive setup", + "If you have other operating systems installed and would like a choice when\n" + "booting, choose \"BootMgr\". If you would prefer to keep your existing\n" + "boot manager, select \"None\".\n\n", + "", "drives", - { { "BootMgr", "Install the FreeBSD Boot Manager", - dmenuRadioCheck, dmenuSetValue, NULL, &BootMgr, 0, 0, 0, 0 }, - { "Standard", "Install a standard MBR (no boot manager)", + { { "Standard", "Install a standard MBR (non-interactive boot manager)", dmenuRadioCheck, dmenuSetValue, NULL, &BootMgr, '(', '*', ')', 1 }, - { "None", "Leave the Master Boot Record untouched", + { "BootMgr", "Install the FreeBSD boot manager", + dmenuRadioCheck, dmenuSetValue, NULL, &BootMgr, '(', '*', ')', 0 }, + { "None", "Do not install a boot manager", dmenuRadioCheck, dmenuSetValue, NULL, &BootMgr, '(', '*', ')', 2 }, - { NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0 } }, + { NULL, NULL, NULL, NULL, NULL, NULL, 0, 0, 0, 0 } } }; #endif /* PC98 */ #endif /* __i386__ */ From owner-svn-src-all@FreeBSD.ORG Tue May 18 18:20:12 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 274EA1065679; Tue, 18 May 2010 18:20:12 +0000 (UTC) (envelope-from brucec@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0BE208FC1B; Tue, 18 May 2010 18:20:12 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4IIKBHk029897; Tue, 18 May 2010 18:20:11 GMT (envelope-from brucec@svn.freebsd.org) Received: (from brucec@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4IIKBgD029894; Tue, 18 May 2010 18:20:11 GMT (envelope-from brucec@svn.freebsd.org) Message-Id: <201005181820.o4IIKBgD029894@svn.freebsd.org> From: Bruce Cran Date: Tue, 18 May 2010 18:20:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208275 - stable/8/usr.sbin/sysinstall X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 18:20:12 -0000 Author: brucec Date: Tue May 18 18:20:11 2010 New Revision: 208275 URL: http://svn.freebsd.org/changeset/base/208275 Log: MFC r207005: Make the "Q = Finish" text visible when running sysinstall as a normal application. Reword the boot manager screen to try and avoid confusion. Approved by: rrs (mentor) Modified: stable/8/usr.sbin/sysinstall/disks.c stable/8/usr.sbin/sysinstall/menus.c Directory Properties: stable/8/usr.sbin/sysinstall/ (props changed) Modified: stable/8/usr.sbin/sysinstall/disks.c ============================================================================== --- stable/8/usr.sbin/sysinstall/disks.c Tue May 18 18:19:06 2010 (r208274) +++ stable/8/usr.sbin/sysinstall/disks.c Tue May 18 18:20:11 2010 (r208275) @@ -207,9 +207,12 @@ print_command_summary(void) mvprintw(14, 0, "The following commands are supported (in upper or lower case):"); mvprintw(16, 0, "A = Use Entire Disk G = set Drive Geometry C = Create Slice"); mvprintw(17, 0, "D = Delete Slice Z = Toggle Size Units S = Set Bootable | = Expert m."); - mvprintw(18, 0, "T = Change Type U = Undo All Changes Q = Finish"); + mvprintw(18, 0, "T = Change Type U = Undo All Changes"); + if (!RunningAsInit) - mvprintw(18, 47, "W = Write Changes"); + mvprintw(18, 47, "W = Write Changes Q = Finish"); + else + mvprintw(18, 47, "Q = Finish"); mvprintw(21, 0, "Use F1 or ? to get more help, arrow keys to select."); move(0, 0); } Modified: stable/8/usr.sbin/sysinstall/menus.c ============================================================================== --- stable/8/usr.sbin/sysinstall/menus.c Tue May 18 18:19:06 2010 (r208274) +++ stable/8/usr.sbin/sysinstall/menus.c Tue May 18 18:20:11 2010 (r208275) @@ -1179,20 +1179,16 @@ DMenu MenuMBRType = { "at boot time. If you have more than one drive and want to boot\n" "from the second one, the boot manager will also make it possible\n" "to do so (limitations in the PC BIOS usually prevent this otherwise).\n" - "If you will only have FreeBSD on the machine the boot manager is\n" - "not needed and it slows down the boot while offering you the choice\n" - "of which operating system to boot. If you do not want a boot\n" - "manager, or wish to replace an existing one, select \"standard\".\n" - "If you would prefer your Master Boot Record remain untouched then\n" - "select \"None\".\n\n" - " NOTE: PC-DOS users will almost certainly require \"None\"!", - "Press F1 to read about drive setup", + "If you have other operating systems installed and would like a choice when\n" + "booting, choose \"BootMgr\". If you would prefer to keep your existing\n" + "boot manager, select \"None\".\n\n", + "", "drives", - { { "Standard", "Install a standard MBR (no boot manager)", + { { "Standard", "Install a standard MBR (non-interactive boot manager)", dmenuRadioCheck, dmenuSetValue, NULL, &BootMgr, '(', '*', ')', 1 }, { "BootMgr", "Install the FreeBSD Boot Manager", dmenuRadioCheck, dmenuSetValue, NULL, &BootMgr, '(', '*', ')', 0 }, - { "None", "Leave the Master Boot Record untouched", + { "None", "Do not install a boot manager", dmenuRadioCheck, dmenuSetValue, NULL, &BootMgr, '(', '*', ')', 2 }, { NULL } }, }; From owner-svn-src-all@FreeBSD.ORG Tue May 18 18:28:17 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 963821065672; Tue, 18 May 2010 18:28:17 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 853218FC18; Tue, 18 May 2010 18:28:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4IISHgn031758; Tue, 18 May 2010 18:28:17 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4IISHTn031756; Tue, 18 May 2010 18:28:17 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <201005181828.o4IISHTn031756@svn.freebsd.org> From: Jung-uk Kim Date: Tue, 18 May 2010 18:28:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208276 - head/sys/dev/fb X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 18:28:17 -0000 Author: jkim Date: Tue May 18 18:28:17 2010 New Revision: 208276 URL: http://svn.freebsd.org/changeset/base/208276 Log: Remove unnecessary pointer increment. A wrong pointer may be passed to free(9) and it can cause kernel panic when there are multiple graphics controllers in the system. Tested by: Brandon Gooch (jamesbrandongooch at gmail dot com) MFC after: 3 days Modified: head/sys/dev/fb/vesa.c Modified: head/sys/dev/fb/vesa.c ============================================================================== --- head/sys/dev/fb/vesa.c Tue May 18 18:20:11 2010 (r208275) +++ head/sys/dev/fb/vesa.c Tue May 18 18:28:17 2010 (r208276) @@ -240,10 +240,10 @@ vesa_bios_post(void) /* Find the matching PCI video controller. */ dc = devclass_find("vgapci"); if (dc != NULL && devclass_get_devices(dc, &devs, &count) == 0) { - for (dev = NULL, i = 0; dev == NULL && i < count; devs++, i++) - if (device_get_flags(*devs) != 0 && - x86bios_match_device(0xc0000, *devs)) { - dev = *devs; + for (i = 0; i < count; i++) + if (device_get_flags(devs[i]) != 0 && + x86bios_match_device(0xc0000, devs[i])) { + dev = devs[i]; is_pci = 1; break; } From owner-svn-src-all@FreeBSD.ORG Tue May 18 21:23:51 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E917D106566C; Tue, 18 May 2010 21:23:51 +0000 (UTC) (envelope-from raj@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D83728FC12; Tue, 18 May 2010 21:23:51 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4ILNpX1071617; Tue, 18 May 2010 21:23:51 GMT (envelope-from raj@svn.freebsd.org) Received: (from raj@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4ILNpdf071615; Tue, 18 May 2010 21:23:51 GMT (envelope-from raj@svn.freebsd.org) Message-Id: <201005182123.o4ILNpdf071615@svn.freebsd.org> From: Rafal Jaworowski Date: Tue, 18 May 2010 21:23:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208278 - head/sys/powerpc/include X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 21:23:52 -0000 Author: raj Date: Tue May 18 21:23:51 2010 New Revision: 208278 URL: http://svn.freebsd.org/changeset/base/208278 Log: Provide missing members for Book-E pmap (and fix build). Modified: head/sys/powerpc/include/pmap.h Modified: head/sys/powerpc/include/pmap.h ============================================================================== --- head/sys/powerpc/include/pmap.h Tue May 18 21:01:42 2010 (r208277) +++ head/sys/powerpc/include/pmap.h Tue May 18 21:23:51 2010 (r208278) @@ -125,6 +125,8 @@ struct pmap { struct mtx pm_mtx; /* pmap mutex */ tlbtid_t pm_tid[MAXCPU]; /* TID to identify this pmap entries in TLB */ u_int pm_active; /* active on cpus */ + uint32_t pm_gen_count; /* generation count (pmap lock dropped) */ + u_int pm_retries; int pm_refs; /* ref count */ struct pmap_statistics pm_stats; /* pmap statistics */ From owner-svn-src-all@FreeBSD.ORG Tue May 18 22:30:55 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D41DA106566B; Tue, 18 May 2010 22:30:55 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C390A8FC15; Tue, 18 May 2010 22:30:55 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4IMUtbm086581; Tue, 18 May 2010 22:30:55 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4IMUtjf086579; Tue, 18 May 2010 22:30:55 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <201005182230.o4IMUtjf086579@svn.freebsd.org> From: Jung-uk Kim Date: Tue, 18 May 2010 22:30:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208279 - head/sys/dev/fb X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 22:30:55 -0000 Author: jkim Date: Tue May 18 22:30:55 2010 New Revision: 208279 URL: http://svn.freebsd.org/changeset/base/208279 Log: Restore the previous VESA mode after BIOS POST, just in case. Modified: head/sys/dev/fb/vesa.c Modified: head/sys/dev/fb/vesa.c ============================================================================== --- head/sys/dev/fb/vesa.c Tue May 18 21:23:51 2010 (r208278) +++ head/sys/dev/fb/vesa.c Tue May 18 22:30:55 2010 (r208279) @@ -1443,6 +1443,7 @@ vesa_load_state(video_adapter_t *adp, vo /* Try BIOS POST to restore a sane state. */ (void)vesa_bios_post(); (void)int10_set_mode(adp->va_initial_bios_mode); + (void)vesa_set_mode(adp, adp->va_mode); return (vesa_bios_save_restore(STATE_LOAD, ((adp_state_t *)p)->regs, vesa_state_buf_size)); From owner-svn-src-all@FreeBSD.ORG Tue May 18 22:55:08 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 727F61065670; Tue, 18 May 2010 22:55:08 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mail.cksoft.de (mail.cksoft.de [IPv6:2001:4068:10::3]) by mx1.freebsd.org (Postfix) with ESMTP id 05AA08FC12; Tue, 18 May 2010 22:55:08 +0000 (UTC) Received: from localhost (amavis.fra.cksoft.de [192.168.74.71]) by mail.cksoft.de (Postfix) with ESMTP id 0508241C796; Wed, 19 May 2010 00:55:07 +0200 (CEST) X-Virus-Scanned: amavisd-new at cksoft.de Received: from mail.cksoft.de ([192.168.74.103]) by localhost (amavis.fra.cksoft.de [192.168.74.71]) (amavisd-new, port 10024) with ESMTP id ZJX+saodK586; Wed, 19 May 2010 00:55:06 +0200 (CEST) Received: by mail.cksoft.de (Postfix, from userid 66) id EFF2C41C795; Wed, 19 May 2010 00:55:05 +0200 (CEST) Received: from maildrop.int.zabbadoz.net (maildrop.int.zabbadoz.net [10.111.66.10]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.int.zabbadoz.net (Postfix) with ESMTP id C87D24448EC; Tue, 18 May 2010 22:53:27 +0000 (UTC) Date: Tue, 18 May 2010 22:53:27 +0000 (UTC) From: "Bjoern A. Zeeb" X-X-Sender: bz@maildrop.int.zabbadoz.net To: Pyun YongHyeon In-Reply-To: <20100518171315.GA5968@michelle.cdnetworks.com> Message-ID: <20100518224555.G23815@maildrop.int.zabbadoz.net> References: <201005101714.o4AHEFuu015079@svn.freebsd.org> <20100518032628.S23815@maildrop.int.zabbadoz.net> <20100518171315.GA5968@michelle.cdnetworks.com> X-OpenPGP-Key: 0x14003F198FEFA3E77207EE8D2B58B8F83CCF1842 MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Pyun YongHyeon Subject: Re: svn commit: r207851 - head/sys/dev/sge X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 22:55:08 -0000 On Tue, 18 May 2010, Pyun YongHyeon wrote: > On Tue, May 18, 2010 at 03:27:33AM +0000, Bjoern A. Zeeb wrote: >> On Mon, 10 May 2010, Pyun YongHyeon wrote: >> >>> Author: yongari >>> Date: Mon May 10 17:14:14 2010 >>> New Revision: 207851 >>> URL: http://svn.freebsd.org/changeset/base/207851 >>> >>> Log: >>> Implement TSO and TSO over VLAN. Increase number of allowed >>> fragmentation of mbuf chain to 32 from 16 because TSO can send 64KB >>> sized packet which in turn requires long list of mbuf chain. Due to >>> lack of documentation, I'm not sure whether driver have to pull up >>> ethernet/IP/TCP header with options to make controller work but >>> driver have to parse TCP header to update pseudo TCP checksum >>> anyway. The controller expects pseudo TCP checksum computed by >>> upper stack and the checksum should follow the MS NDIS >>> specification to make TSO work. >>> >>> Tested by: xclin cs dot nctu dot edu dot tw > >> >> This brings in INET as a dependency for the driver and fails on my >> nooptions INET >> nooptions INET6 >> kernels (in_pseudo()). >> > > AFAIK sge(4) is not the only driver that has INET dependency. I > think we need IPv6 offloading framework(checksum offloading, TSO4 There is no checksum on IPv6. > and TSO6) before removing INET dependency in various drivers. > Most recent ethernet controllers support IPv6 offloading and > FreeBSD still lacks these nice features. This is true, but we should (still) fix this and work on a better solution. You may remember that I tried to get this discussion started twice during the last 12 months. First time after I added the inet depency in sys/conf/files for all the other drivers that have the same problem(s). I will be very happy to chat with you and np@ and maybe tuexen@ for SCTP and Drew and Jack again to get this all sorted out. /bz -- Bjoern A. Zeeb (from 21) Micky Rosa: But as we've all said, this game is about the past and the future, and tonight we forget about the past. We just focus on the future. From owner-svn-src-all@FreeBSD.ORG Tue May 18 23:20:45 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 40AEA1065670; Tue, 18 May 2010 23:20:45 +0000 (UTC) (envelope-from pyunyh@gmail.com) Received: from mail-pz0-f181.google.com (mail-pz0-f181.google.com [209.85.222.181]) by mx1.freebsd.org (Postfix) with ESMTP id E62D68FC18; Tue, 18 May 2010 23:20:44 +0000 (UTC) Received: by pzk11 with SMTP id 11so4360869pzk.28 for ; Tue, 18 May 2010 16:20:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:received:from:date:to:cc :subject:message-id:reply-to:references:mime-version:content-type :content-disposition:in-reply-to:user-agent; bh=Nlena592uBNoEf6l6RE2XZNOGV59xHMiJHAq9gxn3Mo=; b=UlHeYxbWjwklZ3zo+b93GJgeluEhyDU2FD0k/DMz+NHWO62fdYwOnh5HRVtULdow1+ TTotmAb0E0fWBRqoNML+WTNJ1OgGaRJiBvj/Dr0aOIwAYf7xgp/MMo0DB9I3FTBC6vaH GAjoWCqE9MyzBCnPt+UcXmBD1hMFRpkv1F40o= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:date:to:cc:subject:message-id:reply-to:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; b=hvbZYyECmUflbgrl2l72bC3CnRI7iNjDUepxdF+kLcFKwYRZUM/tp4AR+vte/rTOcs QU9N3tEJjIJQnWmVsQj83gtVlYn+be954zYh63yVT6JEQLV0xYQpXSt6BBFafGqAOPwg k4RGpJXug+aDbvSMhX0Vh7A4nOV74hWngIpGY= Received: by 10.141.3.14 with SMTP id f14mr5649895rvi.98.1274224844339; Tue, 18 May 2010 16:20:44 -0700 (PDT) Received: from pyunyh@gmail.com ([174.35.1.224]) by mx.google.com with ESMTPS id h11sm5584960rvm.9.2010.05.18.16.20.43 (version=TLSv1/SSLv3 cipher=RC4-MD5); Tue, 18 May 2010 16:20:43 -0700 (PDT) Received: by pyunyh@gmail.com (sSMTP sendmail emulation); Tue, 18 May 2010 16:19:36 -0700 From: Pyun YongHyeon Date: Tue, 18 May 2010 16:19:36 -0700 To: "Bjoern A. Zeeb" Message-ID: <20100518231936.GH5968@michelle.cdnetworks.com> References: <201005101714.o4AHEFuu015079@svn.freebsd.org> <20100518032628.S23815@maildrop.int.zabbadoz.net> <20100518171315.GA5968@michelle.cdnetworks.com> <20100518224555.G23815@maildrop.int.zabbadoz.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100518224555.G23815@maildrop.int.zabbadoz.net> User-Agent: Mutt/1.4.2.3i Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Pyun YongHyeon Subject: Re: svn commit: r207851 - head/sys/dev/sge X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: pyunyh@gmail.com List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 23:20:45 -0000 On Tue, May 18, 2010 at 10:53:27PM +0000, Bjoern A. Zeeb wrote: > On Tue, 18 May 2010, Pyun YongHyeon wrote: > > >On Tue, May 18, 2010 at 03:27:33AM +0000, Bjoern A. Zeeb wrote: > >>On Mon, 10 May 2010, Pyun YongHyeon wrote: > >> > >>>Author: yongari > >>>Date: Mon May 10 17:14:14 2010 > >>>New Revision: 207851 > >>>URL: http://svn.freebsd.org/changeset/base/207851 > >>> > >>>Log: > >>>Implement TSO and TSO over VLAN. Increase number of allowed > >>>fragmentation of mbuf chain to 32 from 16 because TSO can send 64KB > >>>sized packet which in turn requires long list of mbuf chain. Due to > >>>lack of documentation, I'm not sure whether driver have to pull up > >>>ethernet/IP/TCP header with options to make controller work but > >>>driver have to parse TCP header to update pseudo TCP checksum > >>>anyway. The controller expects pseudo TCP checksum computed by > >>>upper stack and the checksum should follow the MS NDIS > >>>specification to make TSO work. > >>> > >>>Tested by: xclin cs dot nctu dot edu dot tw > > >> > >>This brings in INET as a dependency for the driver and fails on my > >> nooptions INET > >> nooptions INET6 > >>kernels (in_pseudo()). > >> > > > >AFAIK sge(4) is not the only driver that has INET dependency. I > >think we need IPv6 offloading framework(checksum offloading, TSO4 > > There is no checksum on IPv6. > Yes, but controllers that computes only partial checksum for received frames require parsing IPv4/IPv6 header to support checksum offloading. If we have good framework we can avoid duplicated code as well as INET/INET6 dependency. > >and TSO6) before removing INET dependency in various drivers. > >Most recent ethernet controllers support IPv6 offloading and > >FreeBSD still lacks these nice features. > > This is true, but we should (still) fix this and work on a better > solution. You may remember that I tried to get this discussion > started twice during the last 12 months. First time after I added > the inet depency in sys/conf/files for all the other drivers that > have the same problem(s). > > I will be very happy to chat with you and np@ and maybe tuexen@ for > SCTP and Drew and Jack again to get this all sorted out. > I'm also happy to go that direction. But it wouldn't be for 8.1-RELEASE, right? > /bz > > -- > Bjoern A. Zeeb (from 21) Micky Rosa: > But as we've all said, this game is about the past and the future, > and tonight we forget about the past. We just focus on the future. From owner-svn-src-all@FreeBSD.ORG Tue May 18 23:30:08 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DC7691065673; Tue, 18 May 2010 23:30:07 +0000 (UTC) (envelope-from bz@FreeBSD.org) Received: from mail.cksoft.de (mail.cksoft.de [IPv6:2001:4068:10::3]) by mx1.freebsd.org (Postfix) with ESMTP id 8B1638FC0C; Tue, 18 May 2010 23:30:07 +0000 (UTC) Received: from localhost (amavis.fra.cksoft.de [192.168.74.71]) by mail.cksoft.de (Postfix) with ESMTP id E5A6541C7A3; Wed, 19 May 2010 01:30:06 +0200 (CEST) X-Virus-Scanned: amavisd-new at cksoft.de Received: from mail.cksoft.de ([192.168.74.103]) by localhost (amavis.fra.cksoft.de [192.168.74.71]) (amavisd-new, port 10024) with ESMTP id 3gkwq2RUz3Xv; Wed, 19 May 2010 01:30:05 +0200 (CEST) Received: by mail.cksoft.de (Postfix, from userid 66) id BFC3341C798; Wed, 19 May 2010 01:30:05 +0200 (CEST) Received: from maildrop.int.zabbadoz.net (maildrop.int.zabbadoz.net [10.111.66.10]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.int.zabbadoz.net (Postfix) with ESMTP id 1E7E54448EC; Tue, 18 May 2010 23:28:03 +0000 (UTC) Date: Tue, 18 May 2010 23:28:03 +0000 (UTC) From: "Bjoern A. Zeeb" X-X-Sender: bz@maildrop.int.zabbadoz.net To: Pyun YongHyeon In-Reply-To: <20100518231936.GH5968@michelle.cdnetworks.com> Message-ID: <20100518232729.N23815@maildrop.int.zabbadoz.net> References: <201005101714.o4AHEFuu015079@svn.freebsd.org> <20100518032628.S23815@maildrop.int.zabbadoz.net> <20100518171315.GA5968@michelle.cdnetworks.com> <20100518224555.G23815@maildrop.int.zabbadoz.net> <20100518231936.GH5968@michelle.cdnetworks.com> X-OpenPGP-Key: 0x14003F198FEFA3E77207EE8D2B58B8F83CCF1842 MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Pyun YongHyeon Subject: Re: svn commit: r207851 - head/sys/dev/sge X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 May 2010 23:30:08 -0000 On Tue, 18 May 2010, Pyun YongHyeon wrote: > On Tue, May 18, 2010 at 10:53:27PM +0000, Bjoern A. Zeeb wrote: >> On Tue, 18 May 2010, Pyun YongHyeon wrote: >> >>> On Tue, May 18, 2010 at 03:27:33AM +0000, Bjoern A. Zeeb wrote: >>>> On Mon, 10 May 2010, Pyun YongHyeon wrote: >>>> >>>>> Author: yongari >>>>> Date: Mon May 10 17:14:14 2010 >>>>> New Revision: 207851 >>>>> URL: http://svn.freebsd.org/changeset/base/207851 >>>>> >>>>> Log: >>>>> Implement TSO and TSO over VLAN. Increase number of allowed >>>>> fragmentation of mbuf chain to 32 from 16 because TSO can send 64KB >>>>> sized packet which in turn requires long list of mbuf chain. Due to >>>>> lack of documentation, I'm not sure whether driver have to pull up >>>>> ethernet/IP/TCP header with options to make controller work but >>>>> driver have to parse TCP header to update pseudo TCP checksum >>>>> anyway. The controller expects pseudo TCP checksum computed by >>>>> upper stack and the checksum should follow the MS NDIS >>>>> specification to make TSO work. >>>>> >>>>> Tested by: xclin cs dot nctu dot edu dot tw > >>>> >>>> This brings in INET as a dependency for the driver and fails on my >>>> nooptions INET >>>> nooptions INET6 >>>> kernels (in_pseudo()). >>>> >>> >>> AFAIK sge(4) is not the only driver that has INET dependency. I >>> think we need IPv6 offloading framework(checksum offloading, TSO4 >> >> There is no checksum on IPv6. >> > > Yes, but controllers that computes only partial checksum for > received frames require parsing IPv4/IPv6 header to support > checksum offloading. If we have good framework we can avoid > duplicated code as well as INET/INET6 dependency. > >>> and TSO6) before removing INET dependency in various drivers. >>> Most recent ethernet controllers support IPv6 offloading and >>> FreeBSD still lacks these nice features. >> >> This is true, but we should (still) fix this and work on a better >> solution. You may remember that I tried to get this discussion >> started twice during the last 12 months. First time after I added >> the inet depency in sys/conf/files for all the other drivers that >> have the same problem(s). >> >> I will be very happy to chat with you and np@ and maybe tuexen@ for >> SCTP and Drew and Jack again to get this all sorted out. >> > > I'm also happy to go that direction. Great! > But it wouldn't be for 8.1-RELEASE, right? Right. -- Bjoern A. Zeeb (from 21) Micky Rosa: But as we've all said, this game is about the past and the future, and tonight we forget about the past. We just focus on the future. From owner-svn-src-all@FreeBSD.ORG Wed May 19 00:03:48 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DED511065673; Wed, 19 May 2010 00:03:48 +0000 (UTC) (envelope-from jfv@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CE40D8FC0C; Wed, 19 May 2010 00:03:48 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4J03mPl007374; Wed, 19 May 2010 00:03:48 GMT (envelope-from jfv@svn.freebsd.org) Received: (from jfv@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4J03mg8007371; Wed, 19 May 2010 00:03:48 GMT (envelope-from jfv@svn.freebsd.org) Message-Id: <201005190003.o4J03mg8007371@svn.freebsd.org> From: Jack F Vogel Date: Wed, 19 May 2010 00:03:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208282 - head/sys/dev/ixgbe X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 00:03:49 -0000 Author: jfv Date: Wed May 19 00:03:48 2010 New Revision: 208282 URL: http://svn.freebsd.org/changeset/base/208282 Log: A few changes: When not defining header split do not allocate mbufs, this can be a BIG savings in the mbuf memory pool. Also keep seperate dma maps for the header and payload pieces when doing header split. The basis of this code was a patch done a while ago by yongari, thank you :) A number of white space changes. MFC: in a few days Modified: head/sys/dev/ixgbe/ixgbe.c head/sys/dev/ixgbe/ixgbe.h Modified: head/sys/dev/ixgbe/ixgbe.c ============================================================================== --- head/sys/dev/ixgbe/ixgbe.c Tue May 18 23:20:42 2010 (r208281) +++ head/sys/dev/ixgbe/ixgbe.c Wed May 19 00:03:48 2010 (r208282) @@ -46,7 +46,7 @@ int ixgbe_display_debug_stat /********************************************************************* * Driver version *********************************************************************/ -char ixgbe_driver_version[] = "2.1.8"; +char ixgbe_driver_version[] = "2.2.0"; /********************************************************************* * PCI Device ID Table @@ -256,11 +256,11 @@ TUNABLE_INT("hw.ixgbe.enable_msix", &ixg /* * Header split has seemed to be beneficial in - * all circumstances tested, so its on by default + * most circumstances tested, so its on by default * however this variable will allow it to be disabled * for some debug purposes. */ -static bool ixgbe_header_split = TRUE; +static bool ixgbe_header_split = FALSE; TUNABLE_INT("hw.ixgbe.hdr_split", &ixgbe_header_split); /* @@ -406,39 +406,39 @@ ixgbe_attach(device_t dev) /* Keep track of optics */ pci_device_id = pci_get_device(dev); switch (pci_device_id) { - case IXGBE_DEV_ID_82598_CX4_DUAL_PORT : - case IXGBE_DEV_ID_82598EB_CX4 : + case IXGBE_DEV_ID_82598_CX4_DUAL_PORT: + case IXGBE_DEV_ID_82598EB_CX4: adapter->optics = IFM_10G_CX4; break; - case IXGBE_DEV_ID_82598 : - case IXGBE_DEV_ID_82598AF_DUAL_PORT : - case IXGBE_DEV_ID_82598AF_SINGLE_PORT : - case IXGBE_DEV_ID_82598_SR_DUAL_PORT_EM : - case IXGBE_DEV_ID_82598EB_SFP_LOM : - case IXGBE_DEV_ID_82598AT : + case IXGBE_DEV_ID_82598: + case IXGBE_DEV_ID_82598AF_DUAL_PORT: + case IXGBE_DEV_ID_82598AF_SINGLE_PORT: + case IXGBE_DEV_ID_82598_SR_DUAL_PORT_EM: + case IXGBE_DEV_ID_82598EB_SFP_LOM: + case IXGBE_DEV_ID_82598AT: adapter->optics = IFM_10G_SR; break; - case IXGBE_DEV_ID_82598AT2 : + case IXGBE_DEV_ID_82598AT2: adapter->optics = IFM_10G_T; break; - case IXGBE_DEV_ID_82598EB_XF_LR : + case IXGBE_DEV_ID_82598EB_XF_LR: adapter->optics = IFM_10G_LR; break; - case IXGBE_DEV_ID_82598_DA_DUAL_PORT : - adapter->optics = IFM_10G_TWINAX; - break; - case IXGBE_DEV_ID_82599_SFP : + case IXGBE_DEV_ID_82599_SFP: adapter->optics = IFM_10G_SR; ixgbe_num_segs = IXGBE_82599_SCATTER; break; - case IXGBE_DEV_ID_82599_KX4 : + case IXGBE_DEV_ID_82598_DA_DUAL_PORT : + adapter->optics = IFM_10G_TWINAX; + break; + case IXGBE_DEV_ID_82599_KX4: case IXGBE_DEV_ID_82599_KX4_MEZZ: - case IXGBE_DEV_ID_82599_CX4 : + case IXGBE_DEV_ID_82599_CX4: adapter->optics = IFM_10G_CX4; ixgbe_num_segs = IXGBE_82599_SCATTER; break; - case IXGBE_DEV_ID_82599_XAUI_LOM : - case IXGBE_DEV_ID_82599_COMBO_BACKPLANE : + case IXGBE_DEV_ID_82599_XAUI_LOM: + case IXGBE_DEV_ID_82599_COMBO_BACKPLANE: ixgbe_num_segs = IXGBE_82599_SCATTER; break; case IXGBE_DEV_ID_82599_T3_LOM: @@ -1134,11 +1134,19 @@ ixgbe_init_locked(struct adapter *adapte callout_reset(&adapter->timer, hz, ixgbe_local_timer, adapter); /* Set up MSI/X routing */ - if (ixgbe_enable_msix) + if (ixgbe_enable_msix) { ixgbe_configure_ivars(adapter); - else { /* Simple settings for Legacy/MSI */ + /* Set up auto-mask */ + if (hw->mac.type == ixgbe_mac_82598EB) + IXGBE_WRITE_REG(hw, IXGBE_EIAM, IXGBE_EICS_RTX_QUEUE); + else { + IXGBE_WRITE_REG(hw, IXGBE_EIAM_EX(0), 0xFFFFFFFF); + IXGBE_WRITE_REG(hw, IXGBE_EIAM_EX(1), 0xFFFFFFFF); + } + } else { /* Simple settings for Legacy/MSI */ ixgbe_set_ivar(adapter, 0, 0, 0); ixgbe_set_ivar(adapter, 0, 0, 1); + IXGBE_WRITE_REG(hw, IXGBE_EIAM, IXGBE_EICS_RTX_QUEUE); } #ifdef IXGBE_FDIR @@ -2198,13 +2206,14 @@ ixgbe_setup_msix(struct adapter *adapter /* Figure out a reasonable auto config value */ queues = (mp_ncpus > (msgs-1)) ? (msgs-1) : mp_ncpus; - if (ixgbe_num_queues == 0) - ixgbe_num_queues = queues; + if (ixgbe_num_queues != 0) + queues = ixgbe_num_queues; + /* ** Want one vector (RX/TX pair) per queue ** plus an additional for Link. */ - want = ixgbe_num_queues + 1; + want = queues + 1; if (msgs >= want) msgs = want; else { @@ -2217,7 +2226,7 @@ ixgbe_setup_msix(struct adapter *adapter if ((msgs) && pci_alloc_msix(dev, &msgs) == 0) { device_printf(adapter->dev, "Using MSIX interrupts with %d vectors\n", msgs); - adapter->num_queues = ixgbe_num_queues; + adapter->num_queues = queues; return (msgs); } msi: @@ -3340,72 +3349,62 @@ static void ixgbe_refresh_mbufs(struct rx_ring *rxr, int limit) { struct adapter *adapter = rxr->adapter; - bus_dma_segment_t seg[2]; + bus_dma_segment_t hseg[1]; + bus_dma_segment_t pseg[1]; struct ixgbe_rx_buf *rxbuf; struct mbuf *mh, *mp; - bus_dmamap_t map; int i, nsegs, error, cleaned; i = rxr->next_to_refresh; cleaned = -1; /* Signify no completions */ while (i != limit) { rxbuf = &rxr->rx_buffers[i]; - - if (rxbuf->m_head == NULL) { + if ((rxbuf->m_head == NULL) && (rxr->hdr_split)) { mh = m_gethdr(M_DONTWAIT, MT_DATA); if (mh == NULL) goto update; - } else /* reuse */ - mh = rxbuf->m_head; - - mh->m_len = MHLEN; - mh->m_flags |= M_PKTHDR; + mh->m_pkthdr.len = mh->m_len = MHLEN; + mh->m_len = MHLEN; + mh->m_flags |= M_PKTHDR; + m_adj(mh, ETHER_ALIGN); + /* Get the memory mapping */ + error = bus_dmamap_load_mbuf_sg(rxr->htag, + rxbuf->hmap, mh, hseg, &nsegs, BUS_DMA_NOWAIT); + if (error != 0) { + printf("GET BUF: dmamap load" + " failure - %d\n", error); + m_free(mh); + goto update; + } + rxbuf->m_head = mh; + bus_dmamap_sync(rxr->htag, rxbuf->hmap, + BUS_DMASYNC_PREREAD); + rxr->rx_base[i].read.hdr_addr = + htole64(hseg[0].ds_addr); + } if (rxbuf->m_pack == NULL) { mp = m_getjcl(M_DONTWAIT, MT_DATA, M_PKTHDR, adapter->rx_mbuf_sz); if (mp == NULL) goto update; - mp->m_len = adapter->rx_mbuf_sz; - mp->m_flags &= ~M_PKTHDR; - } else { /* reusing */ - mp = rxbuf->m_pack; - mp->m_len = adapter->rx_mbuf_sz; - mp->m_flags &= ~M_PKTHDR; - mp->m_next = NULL; - } - - /* - ** Need to create a chain for the following - ** dmamap call at this point. - */ - mh->m_next = mp; - mh->m_pkthdr.len = mh->m_len + mp->m_len; - - /* Get the memory mapping */ - error = bus_dmamap_load_mbuf_sg(rxr->rxtag, - rxr->spare_map, mh, seg, &nsegs, BUS_DMA_NOWAIT); - if (error != 0) { - printf("GET BUF: dmamap load failure - %d\n", error); - m_free(mh); - goto update; + mp->m_pkthdr.len = mp->m_len = adapter->rx_mbuf_sz; + /* Get the memory mapping */ + error = bus_dmamap_load_mbuf_sg(rxr->ptag, + rxbuf->pmap, mp, pseg, &nsegs, BUS_DMA_NOWAIT); + if (error != 0) { + printf("GET BUF: dmamap load" + " failure - %d\n", error); + m_free(mp); + goto update; + } + rxbuf->m_pack = mp; + bus_dmamap_sync(rxr->ptag, rxbuf->pmap, + BUS_DMASYNC_PREREAD); + rxr->rx_base[i].read.pkt_addr = + htole64(pseg[0].ds_addr); } - /* Unload old mapping and update buffer struct */ - if (rxbuf->m_head != NULL) - bus_dmamap_unload(rxr->rxtag, rxbuf->map); - map = rxbuf->map; - rxbuf->map = rxr->spare_map; - rxr->spare_map = map; - rxbuf->m_head = mh; - rxbuf->m_pack = mp; - bus_dmamap_sync(rxr->rxtag, - rxbuf->map, BUS_DMASYNC_PREREAD); - - /* Update descriptor */ - rxr->rx_base[i].read.hdr_addr = htole64(seg[0].ds_addr); - rxr->rx_base[i].read.pkt_addr = htole64(seg[1].ds_addr); - cleaned = i; /* Calculate next index */ if (++i == adapter->num_rx_desc) @@ -3415,12 +3414,11 @@ ixgbe_refresh_mbufs(struct rx_ring *rxr, } update: if (cleaned != -1) /* If we refreshed some, bump tail */ - IXGBE_WRITE_REG(&adapter->hw, IXGBE_RDT(rxr->me), cleaned); - + IXGBE_WRITE_REG(&adapter->hw, + IXGBE_RDT(rxr->me), cleaned); return; } - /********************************************************************* * * Allocate memory for rx_buffer structures. Since we use one @@ -3446,42 +3444,50 @@ ixgbe_allocate_receive_buffers(struct rx goto fail; } - /* - ** The tag is made to accomodate the largest buffer size - ** with packet split (hence the two segments, even though - ** it may not always use this. - */ if ((error = bus_dma_tag_create(bus_get_dma_tag(dev), /* parent */ 1, 0, /* alignment, bounds */ BUS_SPACE_MAXADDR, /* lowaddr */ BUS_SPACE_MAXADDR, /* highaddr */ NULL, NULL, /* filter, filterarg */ - MJUM16BYTES, /* maxsize */ - 2, /* nsegments */ - MJUMPAGESIZE, /* maxsegsize */ + MSIZE, /* maxsize */ + 1, /* nsegments */ + MSIZE, /* maxsegsize */ 0, /* flags */ NULL, /* lockfunc */ NULL, /* lockfuncarg */ - &rxr->rxtag))) { + &rxr->htag))) { device_printf(dev, "Unable to create RX DMA tag\n"); goto fail; } - /* Create the spare map (used by getbuf) */ - error = bus_dmamap_create(rxr->rxtag, BUS_DMA_NOWAIT, - &rxr->spare_map); - if (error) { - device_printf(dev, "%s: bus_dmamap_create failed: %d\n", - __func__, error); + if ((error = bus_dma_tag_create(bus_get_dma_tag(dev), /* parent */ + 1, 0, /* alignment, bounds */ + BUS_SPACE_MAXADDR, /* lowaddr */ + BUS_SPACE_MAXADDR, /* highaddr */ + NULL, NULL, /* filter, filterarg */ + MJUMPAGESIZE, /* maxsize */ + 1, /* nsegments */ + MJUMPAGESIZE, /* maxsegsize */ + 0, /* flags */ + NULL, /* lockfunc */ + NULL, /* lockfuncarg */ + &rxr->ptag))) { + device_printf(dev, "Unable to create RX DMA tag\n"); goto fail; } for (i = 0; i < adapter->num_rx_desc; i++, rxbuf++) { rxbuf = &rxr->rx_buffers[i]; - error = bus_dmamap_create(rxr->rxtag, - BUS_DMA_NOWAIT, &rxbuf->map); + error = bus_dmamap_create(rxr->htag, + BUS_DMA_NOWAIT, &rxbuf->hmap); + if (error) { + device_printf(dev, "Unable to create RX head map\n"); + goto fail; + } + error = bus_dmamap_create(rxr->ptag, + BUS_DMA_NOWAIT, &rxbuf->pmap); if (error) { - device_printf(dev, "Unable to create RX DMA map\n"); + device_printf(dev, "Unable to create RX pkt map\n"); goto fail; } } @@ -3550,6 +3556,36 @@ ixgbe_setup_hw_rsc(struct rx_ring *rxr) } +static void +ixgbe_free_receive_ring(struct rx_ring *rxr) +{ + struct adapter *adapter; + struct ixgbe_rx_buf *rxbuf; + int i; + + adapter = rxr->adapter; + for (i = 0; i < adapter->num_rx_desc; i++) { + rxbuf = &rxr->rx_buffers[i]; + if (rxbuf->m_head != NULL) { + bus_dmamap_sync(rxr->htag, rxbuf->hmap, + BUS_DMASYNC_POSTREAD); + bus_dmamap_unload(rxr->htag, rxbuf->hmap); + rxbuf->m_head->m_flags |= M_PKTHDR; + m_freem(rxbuf->m_head); + } + if (rxbuf->m_pack != NULL) { + bus_dmamap_sync(rxr->ptag, rxbuf->pmap, + BUS_DMASYNC_POSTREAD); + bus_dmamap_unload(rxr->ptag, rxbuf->pmap); + rxbuf->m_pack->m_flags |= M_PKTHDR; + m_freem(rxbuf->m_pack); + } + rxbuf->m_head = NULL; + rxbuf->m_pack = NULL; + } +} + + /********************************************************************* * * Initialize a receive ring and its buffers. @@ -3562,9 +3598,9 @@ ixgbe_setup_receive_ring(struct rx_ring struct ifnet *ifp; device_t dev; struct ixgbe_rx_buf *rxbuf; - bus_dma_segment_t seg[2]; + bus_dma_segment_t pseg[1], hseg[1]; struct lro_ctrl *lro = &rxr->lro; - int rsize, nsegs, error; + int rsize, nsegs, error = 0; adapter = rxr->adapter; ifp = adapter->ifp; @@ -3576,55 +3612,62 @@ ixgbe_setup_receive_ring(struct rx_ring sizeof(union ixgbe_adv_rx_desc), DBA_ALIGN); bzero((void *)rxr->rx_base, rsize); - /* - ** Free current RX buffer structs and their mbufs - */ - for (int i = 0; i < adapter->num_rx_desc; i++) { - rxbuf = &rxr->rx_buffers[i]; - if (rxbuf->m_head != NULL) { - bus_dmamap_sync(rxr->rxtag, rxbuf->map, - BUS_DMASYNC_POSTREAD); - bus_dmamap_unload(rxr->rxtag, rxbuf->map); - if (rxbuf->m_head) { - rxbuf->m_head->m_next = rxbuf->m_pack; - m_freem(rxbuf->m_head); - } - rxbuf->m_head = NULL; - rxbuf->m_pack = NULL; - } - } + /* Free current RX buffer structs and their mbufs */ + ixgbe_free_receive_ring(rxr); + + /* Configure header split? */ + if (ixgbe_header_split) + rxr->hdr_split = TRUE; /* Now replenish the mbufs */ for (int j = 0; j != adapter->num_rx_desc; ++j) { + struct mbuf *mh, *mp; rxbuf = &rxr->rx_buffers[j]; + /* + ** Dont allocate mbufs if not + ** doing header split, its wasteful + */ + if (rxr->hdr_split == FALSE) + goto skip_head; + + /* First the header */ rxbuf->m_head = m_gethdr(M_DONTWAIT, MT_DATA); if (rxbuf->m_head == NULL) - panic("RX ring hdr initialization failed!\n"); - rxbuf->m_head->m_len = MHLEN; - rxbuf->m_head->m_flags |= M_PKTHDR; - rxbuf->m_head->m_pkthdr.len = rxbuf->m_head->m_len; + goto fail; + m_adj(rxbuf->m_head, ETHER_ALIGN); + mh = rxbuf->m_head; + mh->m_len = mh->m_pkthdr.len = MHLEN; + mh->m_flags |= M_PKTHDR; + /* Get the memory mapping */ + error = bus_dmamap_load_mbuf_sg(rxr->htag, + rxbuf->hmap, rxbuf->m_head, hseg, + &nsegs, BUS_DMA_NOWAIT); + if (error != 0) /* Nothing elegant to do here */ + goto fail; + bus_dmamap_sync(rxr->htag, + rxbuf->hmap, BUS_DMASYNC_PREREAD); + /* Update descriptor */ + rxr->rx_base[j].read.hdr_addr = htole64(hseg[0].ds_addr); +skip_head: + /* Now the payload cluster */ rxbuf->m_pack = m_getjcl(M_DONTWAIT, MT_DATA, M_PKTHDR, adapter->rx_mbuf_sz); if (rxbuf->m_pack == NULL) - panic("RX ring pkt initialization failed!\n"); - rxbuf->m_pack->m_len = adapter->rx_mbuf_sz; - rxbuf->m_head->m_next = rxbuf->m_pack; - rxbuf->m_head->m_pkthdr.len += rxbuf->m_pack->m_len; - + goto fail; + mp = rxbuf->m_pack; + mp->m_pkthdr.len = mp->m_len = adapter->rx_mbuf_sz; /* Get the memory mapping */ - error = bus_dmamap_load_mbuf_sg(rxr->rxtag, - rxbuf->map, rxbuf->m_head, seg, + error = bus_dmamap_load_mbuf_sg(rxr->ptag, + rxbuf->pmap, mp, pseg, &nsegs, BUS_DMA_NOWAIT); if (error != 0) - panic("RX ring dma initialization failed!\n"); - bus_dmamap_sync(rxr->rxtag, - rxbuf->map, BUS_DMASYNC_PREREAD); - + goto fail; + bus_dmamap_sync(rxr->ptag, + rxbuf->pmap, BUS_DMASYNC_PREREAD); /* Update descriptor */ - rxr->rx_base[j].read.hdr_addr = htole64(seg[0].ds_addr); - rxr->rx_base[j].read.pkt_addr = htole64(seg[1].ds_addr); + rxr->rx_base[j].read.pkt_addr = htole64(pseg[0].ds_addr); } @@ -3632,10 +3675,8 @@ ixgbe_setup_receive_ring(struct rx_ring rxr->next_to_check = 0; rxr->next_to_refresh = 0; rxr->lro_enabled = FALSE; - - /* Use header split if configured */ - if (ixgbe_header_split) - rxr->hdr_split = TRUE; + rxr->rx_split_packets = 0; + rxr->rx_bytes = 0; bus_dmamap_sync(rxr->rxdma.dma_tag, rxr->rxdma.dma_map, BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); @@ -3651,8 +3692,10 @@ ixgbe_setup_receive_ring(struct rx_ring ixgbe_setup_hw_rsc(rxr); else if (ifp->if_capenable & IFCAP_LRO) { int err = tcp_lro_init(lro); - if (err) - panic("LRO Initialization failed!\n"); + if (err) { + device_printf(dev, "LRO Initialization failed!\n"); + goto fail; + } INIT_DEBUGOUT("RX Soft LRO Initialized\n"); rxr->lro_enabled = TRUE; lro->ifp = adapter->ifp; @@ -3660,6 +3703,11 @@ ixgbe_setup_receive_ring(struct rx_ring IXGBE_RX_UNLOCK(rxr); return (0); + +fail: + ixgbe_free_receive_ring(rxr); + IXGBE_RX_UNLOCK(rxr); + return (error); } /********************************************************************* @@ -3686,17 +3734,7 @@ fail: */ for (int i = 0; i < j; ++i) { rxr = &adapter->rx_rings[i]; - for (int n = 0; n < adapter->num_rx_desc; n++) { - struct ixgbe_rx_buf *rxbuf; - rxbuf = &rxr->rx_buffers[n]; - if (rxbuf->m_head != NULL) { - bus_dmamap_sync(rxr->rxtag, rxbuf->map, - BUS_DMASYNC_POSTREAD); - bus_dmamap_unload(rxr->rxtag, rxbuf->map); - m_freem(rxbuf->m_head); - rxbuf->m_head = NULL; - } - } + ixgbe_free_receive_ring(rxr); } return (ENOBUFS); @@ -3766,14 +3804,6 @@ ixgbe_initialize_receive_units(struct ad IXGBE_SRRCTL_BSIZEHDRSIZE_SHIFT) & IXGBE_SRRCTL_BSIZEHDR_MASK); srrctl |= IXGBE_SRRCTL_DESCTYPE_HDR_SPLIT_ALWAYS; - if (adapter->hw.mac.type == ixgbe_mac_82599EB) { - /* PSRTYPE must be initialized in 82599 */ - u32 psrtype = IXGBE_PSRTYPE_TCPHDR | - IXGBE_PSRTYPE_UDPHDR | - IXGBE_PSRTYPE_IPV4HDR | - IXGBE_PSRTYPE_IPV6HDR; - IXGBE_WRITE_REG(hw, IXGBE_PSRTYPE(0), psrtype); - } } else srrctl |= IXGBE_SRRCTL_DESCTYPE_ADV_ONEBUF; IXGBE_WRITE_REG(hw, IXGBE_SRRCTL(i), srrctl); @@ -3783,6 +3813,15 @@ ixgbe_initialize_receive_units(struct ad IXGBE_WRITE_REG(hw, IXGBE_RDT(i), 0); } + if (adapter->hw.mac.type == ixgbe_mac_82599EB) { + /* PSRTYPE must be initialized in 82599 */ + u32 psrtype = IXGBE_PSRTYPE_TCPHDR | + IXGBE_PSRTYPE_UDPHDR | + IXGBE_PSRTYPE_IPV4HDR | + IXGBE_PSRTYPE_IPV6HDR; + IXGBE_WRITE_REG(hw, IXGBE_PSRTYPE(0), psrtype); + } + rxcsum = IXGBE_READ_REG(hw, IXGBE_RXCSUM); /* Setup RSS */ @@ -3861,38 +3900,58 @@ ixgbe_free_receive_structures(struct ada * Free receive ring data structures * **********************************************************************/ -void +static void ixgbe_free_receive_buffers(struct rx_ring *rxr) { - struct adapter *adapter = NULL; - struct ixgbe_rx_buf *rxbuf = NULL; + struct adapter *adapter = rxr->adapter; + struct ixgbe_rx_buf *rxbuf; - INIT_DEBUGOUT("free_receive_buffers: begin"); - adapter = rxr->adapter; + INIT_DEBUGOUT("free_receive_structures: begin"); + + /* Cleanup any existing buffers */ if (rxr->rx_buffers != NULL) { - rxbuf = &rxr->rx_buffers[0]; for (int i = 0; i < adapter->num_rx_desc; i++) { - if (rxbuf->map != NULL) { - bus_dmamap_sync(rxr->rxtag, rxbuf->map, - BUS_DMASYNC_POSTREAD); - bus_dmamap_unload(rxr->rxtag, rxbuf->map); - bus_dmamap_destroy(rxr->rxtag, rxbuf->map); - } + rxbuf = &rxr->rx_buffers[i]; if (rxbuf->m_head != NULL) { + bus_dmamap_sync(rxr->htag, rxbuf->hmap, + BUS_DMASYNC_POSTREAD); + bus_dmamap_unload(rxr->htag, rxbuf->hmap); + rxbuf->m_head->m_flags |= M_PKTHDR; m_freem(rxbuf->m_head); } + if (rxbuf->m_pack != NULL) { + bus_dmamap_sync(rxr->ptag, rxbuf->pmap, + BUS_DMASYNC_POSTREAD); + bus_dmamap_unload(rxr->ptag, rxbuf->pmap); + rxbuf->m_pack->m_flags |= M_PKTHDR; + m_freem(rxbuf->m_pack); + } rxbuf->m_head = NULL; - ++rxbuf; + rxbuf->m_pack = NULL; + if (rxbuf->hmap != NULL) { + bus_dmamap_destroy(rxr->htag, rxbuf->hmap); + rxbuf->hmap = NULL; + } + if (rxbuf->pmap != NULL) { + bus_dmamap_destroy(rxr->ptag, rxbuf->pmap); + rxbuf->pmap = NULL; + } + } + if (rxr->rx_buffers != NULL) { + free(rxr->rx_buffers, M_DEVBUF); + rxr->rx_buffers = NULL; } } - if (rxr->rx_buffers != NULL) { - free(rxr->rx_buffers, M_DEVBUF); - rxr->rx_buffers = NULL; + + if (rxr->htag != NULL) { + bus_dma_tag_destroy(rxr->htag); + rxr->htag = NULL; } - if (rxr->rxtag != NULL) { - bus_dma_tag_destroy(rxr->rxtag); - rxr->rxtag = NULL; + if (rxr->ptag != NULL) { + bus_dma_tag_destroy(rxr->ptag); + rxr->ptag = NULL; } + return; } Modified: head/sys/dev/ixgbe/ixgbe.h ============================================================================== --- head/sys/dev/ixgbe/ixgbe.h Tue May 18 23:20:42 2010 (r208281) +++ head/sys/dev/ixgbe/ixgbe.h Wed May 19 00:03:48 2010 (r208282) @@ -238,7 +238,8 @@ struct ixgbe_rx_buf { struct mbuf *m_head; struct mbuf *m_pack; struct mbuf *fmp; - bus_dmamap_t map; + bus_dmamap_t hmap; + bus_dmamap_t pmap; }; /* @@ -323,8 +324,8 @@ struct rx_ring { u32 next_to_check; char mtx_name[16]; struct ixgbe_rx_buf *rx_buffers; - bus_dma_tag_t rxtag; - bus_dmamap_t spare_map; + bus_dma_tag_t htag; + bus_dma_tag_t ptag; u32 bytes; /* Used for AIM calc */ u32 packets; From owner-svn-src-all@FreeBSD.ORG Wed May 19 00:23:11 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2BA211065672; Wed, 19 May 2010 00:23:11 +0000 (UTC) (envelope-from marcel@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1B2D18FC13; Wed, 19 May 2010 00:23:11 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4J0NAK8011605; Wed, 19 May 2010 00:23:10 GMT (envelope-from marcel@svn.freebsd.org) Received: (from marcel@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4J0NABd011599; Wed, 19 May 2010 00:23:10 GMT (envelope-from marcel@svn.freebsd.org) Message-Id: <201005190023.o4J0NABd011599@svn.freebsd.org> From: Marcel Moolenaar Date: Wed, 19 May 2010 00:23:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208283 - head/sys/ia64/include X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 00:23:11 -0000 Author: marcel Date: Wed May 19 00:23:10 2010 New Revision: 208283 URL: http://svn.freebsd.org/changeset/base/208283 Log: Switch to C99 exact-width types. Modified: head/sys/ia64/include/ia64_cpu.h head/sys/ia64/include/pmap.h head/sys/ia64/include/runq.h head/sys/ia64/include/sal.h head/sys/ia64/include/vmparam.h Modified: head/sys/ia64/include/ia64_cpu.h ============================================================================== --- head/sys/ia64/include/ia64_cpu.h Wed May 19 00:03:48 2010 (r208282) +++ head/sys/ia64/include/ia64_cpu.h Wed May 19 00:23:10 2010 (r208283) @@ -192,13 +192,13 @@ ia64_mf_a(void) * Flush Cache. */ static __inline void -ia64_fc(u_int64_t va) +ia64_fc(uint64_t va) { __asm __volatile("fc %0" :: "r"(va)); } static __inline void -ia64_fc_i(u_int64_t va) +ia64_fc_i(uint64_t va) { __asm __volatile("fc.i %0" :: "r"(va)); } @@ -215,10 +215,10 @@ ia64_sync_i(void) /* * Calculate address in VHPT for va. */ -static __inline u_int64_t -ia64_thash(u_int64_t va) +static __inline uint64_t +ia64_thash(uint64_t va) { - u_int64_t result; + uint64_t result; __asm __volatile("thash %0=%1" : "=r" (result) : "r" (va)); return result; } @@ -226,10 +226,10 @@ ia64_thash(u_int64_t va) /* * Calculate VHPT tag for va. */ -static __inline u_int64_t -ia64_ttag(u_int64_t va) +static __inline uint64_t +ia64_ttag(uint64_t va) { - u_int64_t result; + uint64_t result; __asm __volatile("ttag %0=%1" : "=r" (result) : "r" (va)); return result; } @@ -237,10 +237,10 @@ ia64_ttag(u_int64_t va) /* * Convert virtual address to physical. */ -static __inline u_int64_t -ia64_tpa(u_int64_t va) +static __inline uint64_t +ia64_tpa(uint64_t va) { - u_int64_t result; + uint64_t result; __asm __volatile("tpa %0=%1" : "=r" (result) : "r" (va)); return result; } @@ -249,7 +249,7 @@ ia64_tpa(u_int64_t va) * Generate a ptc.e instruction. */ static __inline void -ia64_ptc_e(u_int64_t v) +ia64_ptc_e(uint64_t v) { __asm __volatile("ptc.e %0;; srlz.i;;" :: "r"(v)); } @@ -258,7 +258,7 @@ ia64_ptc_e(u_int64_t v) * Generate a ptc.g instruction. */ static __inline void -ia64_ptc_g(u_int64_t va, u_int64_t log2size) +ia64_ptc_g(uint64_t va, uint64_t log2size) { __asm __volatile("ptc.g %0,%1;; srlz.i;;" :: "r"(va), "r"(log2size)); } @@ -267,7 +267,7 @@ ia64_ptc_g(u_int64_t va, u_int64_t log2s * Generate a ptc.ga instruction. */ static __inline void -ia64_ptc_ga(u_int64_t va, u_int64_t log2size) +ia64_ptc_ga(uint64_t va, uint64_t log2size) { __asm __volatile("ptc.ga %0,%1;; srlz.i;;" :: "r"(va), "r"(log2size)); } @@ -276,7 +276,7 @@ ia64_ptc_ga(u_int64_t va, u_int64_t log2 * Generate a ptc.l instruction. */ static __inline void -ia64_ptc_l(u_int64_t va, u_int64_t log2size) +ia64_ptc_l(uint64_t va, uint64_t log2size) { __asm __volatile("ptc.l %0,%1;; srlz.i;;" :: "r"(va), "r"(log2size)); } @@ -352,10 +352,10 @@ ia64_st8(uint64_t *p, uint64_t v) /* * Read the value of psr. */ -static __inline u_int64_t +static __inline uint64_t ia64_get_psr(void) { - u_int64_t result; + uint64_t result; __asm __volatile("mov %0=psr;;" : "=r" (result)); return result; } @@ -366,16 +366,16 @@ ia64_get_psr(void) #define IA64_AR(name) \ \ -static __inline u_int64_t \ +static __inline uint64_t \ ia64_get_##name(void) \ { \ - u_int64_t result; \ + uint64_t result; \ __asm __volatile("mov %0=ar." #name : "=r" (result)); \ return result; \ } \ \ static __inline void \ -ia64_set_##name(u_int64_t v) \ +ia64_set_##name(uint64_t v) \ { \ __asm __volatile("mov ar." #name "=%0;;" :: "r" (v)); \ } @@ -422,16 +422,16 @@ IA64_AR(ec) #define IA64_CR(name) \ \ -static __inline u_int64_t \ +static __inline uint64_t \ ia64_get_##name(void) \ { \ - u_int64_t result; \ + uint64_t result; \ __asm __volatile("mov %0=cr." #name : "=r" (result)); \ return result; \ } \ \ static __inline void \ -ia64_set_##name(u_int64_t v) \ +ia64_set_##name(uint64_t v) \ { \ __asm __volatile("mov cr." #name "=%0;;" :: "r" (v)); \ } @@ -472,7 +472,7 @@ IA64_CR(lrr1) * Write a region register. */ static __inline void -ia64_set_rr(u_int64_t rrbase, u_int64_t v) +ia64_set_rr(uint64_t rrbase, uint64_t v) { __asm __volatile("mov rr[%0]=%1" :: "r"(rrbase), "r"(v) : "memory"); @@ -481,10 +481,10 @@ ia64_set_rr(u_int64_t rrbase, u_int64_t /* * Read a CPUID register. */ -static __inline u_int64_t +static __inline uint64_t ia64_get_cpuid(int i) { - u_int64_t result; + uint64_t result; __asm __volatile("mov %0=cpuid[%1]" : "=r" (result) : "r"(i)); return result; Modified: head/sys/ia64/include/pmap.h ============================================================================== --- head/sys/ia64/include/pmap.h Wed May 19 00:03:48 2010 (r208282) +++ head/sys/ia64/include/pmap.h Wed May 19 00:23:10 2010 (r208283) @@ -75,7 +75,7 @@ struct md_page { struct pmap { struct mtx pm_mtx; TAILQ_HEAD(,pv_entry) pm_pvlist; /* list of mappings in pmap */ - u_int32_t pm_rid[5]; /* base RID for pmap */ + uint32_t pm_rid[5]; /* base RID for pmap */ struct pmap_statistics pm_stats; /* pmap statistics */ uint32_t pm_gen_count; /* generation count (pmap lock dropped) */ u_int pm_retries; Modified: head/sys/ia64/include/runq.h ============================================================================== --- head/sys/ia64/include/runq.h Wed May 19 00:03:48 2010 (r208282) +++ head/sys/ia64/include/runq.h Wed May 19 00:23:10 2010 (r208283) @@ -41,12 +41,12 @@ /* * Type of run queue status word. */ -typedef u_int64_t rqb_word_t; +typedef uint64_t rqb_word_t; -static __inline u_int64_t -__popcnt(u_int64_t bits) +static __inline uint64_t +__popcnt(uint64_t bits) { - u_int64_t result; + uint64_t result; __asm __volatile("popcnt %0=%1" : "=r" (result) : "r" (bits)); return result; Modified: head/sys/ia64/include/sal.h ============================================================================== --- head/sys/ia64/include/sal.h Wed May 19 00:03:48 2010 (r208282) +++ head/sys/ia64/include/sal.h Wed May 19 00:23:10 2010 (r208283) @@ -32,68 +32,68 @@ struct sal_system_table { char sal_signature[4]; #define SAL_SIGNATURE "SST_" - u_int32_t sal_length; - u_int8_t sal_rev[2]; - u_int16_t sal_entry_count; - u_int8_t sal_checksum; - u_int8_t sal_reserved1[7]; - u_int8_t sal_a_version[2]; - u_int8_t sal_b_version[2]; + uint32_t sal_length; + uint8_t sal_rev[2]; + uint16_t sal_entry_count; + uint8_t sal_checksum; + uint8_t sal_reserved1[7]; + uint8_t sal_a_version[2]; + uint8_t sal_b_version[2]; char sal_oem_id[32]; char sal_product_id[32]; - u_int8_t sal_reserved2[8]; + uint8_t sal_reserved2[8]; }; struct sal_entrypoint_descriptor { - u_int8_t sale_type; /* == 0 */ - u_int8_t sale_reserved1[7]; - u_int64_t sale_pal_proc; - u_int64_t sale_sal_proc; - u_int64_t sale_sal_gp; - u_int8_t sale_reserved2[16]; + uint8_t sale_type; /* == 0 */ + uint8_t sale_reserved1[7]; + uint64_t sale_pal_proc; + uint64_t sale_sal_proc; + uint64_t sale_sal_gp; + uint8_t sale_reserved2[16]; }; struct sal_memory_descriptor { - u_int8_t sale_type; /* == 1 */ - u_int8_t sale_need_virtual; - u_int8_t sale_current_attribute; - u_int8_t sale_access_rights; - u_int8_t sale_supported_attributes; - u_int8_t sale_reserved1; - u_int8_t sale_memory_type[2]; - u_int64_t sale_physical_address; - u_int32_t sale_length; - u_int8_t sale_reserved2[12]; + uint8_t sale_type; /* == 1 */ + uint8_t sale_need_virtual; + uint8_t sale_current_attribute; + uint8_t sale_access_rights; + uint8_t sale_supported_attributes; + uint8_t sale_reserved1; + uint8_t sale_memory_type[2]; + uint64_t sale_physical_address; + uint32_t sale_length; + uint8_t sale_reserved2[12]; }; struct sal_platform_descriptor { - u_int8_t sale_type; /* == 2 */ - u_int8_t sale_features; - u_int8_t sale_reserved[14]; + uint8_t sale_type; /* == 2 */ + uint8_t sale_features; + uint8_t sale_reserved[14]; }; struct sal_tr_descriptor { - u_int8_t sale_type; /* == 3 */ - u_int8_t sale_register_type; - u_int8_t sale_register_number; - u_int8_t sale_reserved1[5]; - u_int64_t sale_virtual_address; - u_int64_t sale_page_size; - u_int8_t sale_reserved2[8]; + uint8_t sale_type; /* == 3 */ + uint8_t sale_register_type; + uint8_t sale_register_number; + uint8_t sale_reserved1[5]; + uint64_t sale_virtual_address; + uint64_t sale_page_size; + uint8_t sale_reserved2[8]; }; struct sal_ptc_cache_descriptor { - u_int8_t sale_type; /* == 4 */ - u_int8_t sale_reserved[3]; - u_int32_t sale_domains; - u_int64_t sale_address; + uint8_t sale_type; /* == 4 */ + uint8_t sale_reserved[3]; + uint32_t sale_domains; + uint64_t sale_address; }; struct sal_ap_wakeup_descriptor { - u_int8_t sale_type; /* == 5 */ - u_int8_t sale_mechanism; - u_int8_t sale_reserved[6]; - u_int64_t sale_vector; + uint8_t sale_type; /* == 5 */ + uint8_t sale_mechanism; + uint8_t sale_reserved[6]; + uint64_t sale_vector; }; /* @@ -128,12 +128,11 @@ struct sal_ap_wakeup_descriptor { struct ia64_sal_result { int64_t sal_status; - u_int64_t sal_result[3]; + uint64_t sal_result[3]; }; -typedef struct ia64_sal_result sal_entry_t - (u_int64_t, u_int64_t, u_int64_t, u_int64_t, - u_int64_t, u_int64_t, u_int64_t, u_int64_t); +typedef struct ia64_sal_result sal_entry_t(uint64_t, uint64_t, uint64_t, + uint64_t, uint64_t, uint64_t, uint64_t, uint64_t); extern sal_entry_t *ia64_sal_entry; Modified: head/sys/ia64/include/vmparam.h ============================================================================== --- head/sys/ia64/include/vmparam.h Wed May 19 00:03:48 2010 (r208282) +++ head/sys/ia64/include/vmparam.h Wed May 19 00:23:10 2010 (r208283) @@ -129,7 +129,7 @@ /* * Manipulating region bits of an address. */ -#define IA64_RR_BASE(n) (((u_int64_t) (n)) << 61) +#define IA64_RR_BASE(n) (((uint64_t) (n)) << 61) #define IA64_RR_MASK(x) ((x) & ((1L << 61) - 1)) #define IA64_PHYS_TO_RR7(x) ((x) | IA64_RR_BASE(7)) From owner-svn-src-all@FreeBSD.ORG Wed May 19 00:35:47 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D539D1065678; Wed, 19 May 2010 00:35:47 +0000 (UTC) (envelope-from alfred@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C5C038FC16; Wed, 19 May 2010 00:35:47 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4J0Zlxh014394; Wed, 19 May 2010 00:35:47 GMT (envelope-from alfred@svn.freebsd.org) Received: (from alfred@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4J0Zl8F014392; Wed, 19 May 2010 00:35:47 GMT (envelope-from alfred@svn.freebsd.org) Message-Id: <201005190035.o4J0Zl8F014392@svn.freebsd.org> From: Alfred Perlstein Date: Wed, 19 May 2010 00:35:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208284 - head/sys/netinet6 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 00:35:47 -0000 Author: alfred Date: Wed May 19 00:35:47 2010 New Revision: 208284 URL: http://svn.freebsd.org/changeset/base/208284 Log: Fix our version of IPv6 address representation. We do not respect rules 3 and 4 in the required list: 1. omit leading zeros 2. "::" used to their maximum extent whenever possible 3. "::" used where shortens address the most 4. "::" used in the former part in case of a tie breaker 5. do not shorten one 16 bit 0 field 6. use lower case http://tools.ietf.org/html/draft-ietf-6man-text-addr-representation-04.html Submitted by: Kalluru Abhiram @ Juniper Networks Obtained from: Juniper Networks Reviewed by: hrs, dougb Modified: head/sys/netinet6/in6.c Modified: head/sys/netinet6/in6.c ============================================================================== --- head/sys/netinet6/in6.c Wed May 19 00:23:10 2010 (r208283) +++ head/sys/netinet6/in6.c Wed May 19 00:35:47 2010 (r208284) @@ -1898,7 +1898,7 @@ static char digits[] = "0123456789abcdef char * ip6_sprintf(char *ip6buf, const struct in6_addr *addr) { - int i; + int i, cnt = 0, maxcnt = 0, idx = 0, index = 0; char *cp; const u_int16_t *a = (const u_int16_t *)addr; const u_int8_t *d; @@ -1907,6 +1907,23 @@ ip6_sprintf(char *ip6buf, const struct i cp = ip6buf; for (i = 0; i < 8; i++) { + if (*(a + i) == 0) { + cnt++; + if (cnt == 1) + idx = i; + } + else if (maxcnt < cnt) { + maxcnt = cnt; + index = idx; + cnt = 0; + } + } + if (maxcnt < cnt) { + maxcnt = cnt; + index = idx; + } + + for (i = 0; i < 8; i++) { if (dcolon == 1) { if (*a == 0) { if (i == 7) @@ -1917,7 +1934,7 @@ ip6_sprintf(char *ip6buf, const struct i dcolon = 2; } if (*a == 0) { - if (dcolon == 0 && *(a + 1) == 0) { + if (dcolon == 0 && *(a + 1) == 0 && i == index) { if (i == 0) *cp++ = ':'; *cp++ = ':'; From owner-svn-src-all@FreeBSD.ORG Wed May 19 01:37:47 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6B1161065672; Wed, 19 May 2010 01:37:47 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5BB108FC18; Wed, 19 May 2010 01:37:47 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4J1blXX027915; Wed, 19 May 2010 01:37:47 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4J1blDg027913; Wed, 19 May 2010 01:37:47 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201005190137.o4J1blDg027913@svn.freebsd.org> From: Nathan Whitehorn Date: Wed, 19 May 2010 01:37:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208285 - head/sys/powerpc/powermac X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 01:37:47 -0000 Author: nwhitehorn Date: Wed May 19 01:37:47 2010 New Revision: 208285 URL: http://svn.freebsd.org/changeset/base/208285 Log: Correct a typo. Pointy hat to: me Modified: head/sys/powerpc/powermac/cpcht.c Modified: head/sys/powerpc/powermac/cpcht.c ============================================================================== --- head/sys/powerpc/powermac/cpcht.c Wed May 19 00:35:47 2010 (r208284) +++ head/sys/powerpc/powermac/cpcht.c Wed May 19 01:37:47 2010 (r208285) @@ -622,7 +622,7 @@ struct openpic_cpcht_softc { static driver_t openpic_cpcht_driver = { "htpic", openpic_cpcht_methods, - sizeof(struct openpic_softc), + sizeof(struct openpic_cpcht_softc), }; DRIVER_MODULE(openpic, unin, openpic_cpcht_driver, openpic_devclass, 0, 0); From owner-svn-src-all@FreeBSD.ORG Wed May 19 04:00:44 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 54ACD1065672; Wed, 19 May 2010 04:00:44 +0000 (UTC) (envelope-from rrs@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 439908FC12; Wed, 19 May 2010 04:00:44 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4J40iOm059685; Wed, 19 May 2010 04:00:44 GMT (envelope-from rrs@svn.freebsd.org) Received: (from rrs@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4J40iaw059683; Wed, 19 May 2010 04:00:44 GMT (envelope-from rrs@svn.freebsd.org) Message-Id: <201005190400.o4J40iaw059683@svn.freebsd.org> From: Randall Stewart Date: Wed, 19 May 2010 04:00:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-svnadmin@freebsd.org X-SVN-Group: svnadmin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208286 - svnadmin/conf X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 04:00:44 -0000 Author: rrs Date: Wed May 19 04:00:42 2010 New Revision: 208286 URL: http://svn.freebsd.org/changeset/base/208286 Log: 1) jchandra - Jachandran C 2) JC will be working on mips specializing on RMI/Netlogic XLR/XLS and XLP Approved by: Core Modified: svnadmin/conf/mentors Modified: svnadmin/conf/mentors ============================================================================== --- svnadmin/conf/mentors Wed May 19 01:37:47 2010 (r208285) +++ svnadmin/conf/mentors Wed May 19 04:00:42 2010 (r208286) @@ -17,6 +17,7 @@ cbzimmer sam dchagin kib eri mlaier Co-mentor: thompsa gabor delphij +jchandra rrs jinmei gnn mm delphij nork imp From owner-svn-src-all@FreeBSD.ORG Wed May 19 06:18:02 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5B6D31065679; Wed, 19 May 2010 06:18:02 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 482FA8FC1F; Wed, 19 May 2010 06:18:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4J6I2jT089758; Wed, 19 May 2010 06:18:02 GMT (envelope-from jeff@svn.freebsd.org) Received: (from jeff@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4J6I24C089755; Wed, 19 May 2010 06:18:02 GMT (envelope-from jeff@svn.freebsd.org) Message-Id: <201005190618.o4J6I24C089755@svn.freebsd.org> From: Jeff Roberson Date: Wed, 19 May 2010 06:18:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208287 - head/sys/ufs/ffs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 06:18:02 -0000 Author: jeff Date: Wed May 19 06:18:01 2010 New Revision: 208287 URL: http://svn.freebsd.org/changeset/base/208287 Log: - Don't immediately re-run softdepflush if we didn't make any progress on the last iteration. This can lead to a deadlock when we have worklist items that cannot be immediately satisfied. Reported by: uqs, Dimitry Andric - Remove some unnecessary debugging code and place some other under SUJ_DEBUG. - Examine the journal state in softdep_slowdown(). - Re-format some comments so I may more easily add flag descriptions. Modified: head/sys/ufs/ffs/ffs_softdep.c head/sys/ufs/ffs/softdep.h Modified: head/sys/ufs/ffs/ffs_softdep.c ============================================================================== --- head/sys/ufs/ffs/ffs_softdep.c Wed May 19 04:00:42 2010 (r208286) +++ head/sys/ufs/ffs/ffs_softdep.c Wed May 19 06:18:01 2010 (r208287) @@ -51,7 +51,6 @@ __FBSDID("$FreeBSD$"); #ifndef DEBUG #define DEBUG #endif -#define SUJ_DEBUG #include #include @@ -1200,6 +1199,7 @@ softdep_flush(void) struct ufsmount *ump; struct thread *td; int remaining; + int progress; int vfslocked; td = curthread; @@ -1224,7 +1224,7 @@ softdep_flush(void) } FREE_LOCK(&lk); VFS_UNLOCK_GIANT(vfslocked); - remaining = 0; + remaining = progress = 0; mtx_lock(&mountlist_mtx); for (mp = TAILQ_FIRST(&mountlist); mp != NULL; mp = nmp) { nmp = TAILQ_NEXT(mp, mnt_list); @@ -1233,7 +1233,7 @@ softdep_flush(void) if (vfs_busy(mp, MBF_NOWAIT | MBF_MNTLSTLOCK)) continue; vfslocked = VFS_LOCK_GIANT(mp); - softdep_process_worklist(mp, 0); + progress += softdep_process_worklist(mp, 0); ump = VFSTOUFS(mp); remaining += ump->softdep_on_worklist - ump->softdep_on_worklist_inprogress; @@ -1243,7 +1243,7 @@ softdep_flush(void) vfs_unbusy(mp); } mtx_unlock(&mountlist_mtx); - if (remaining) + if (remaining && progress) continue; ACQUIRE_LOCK(&lk); if (!req_pending) @@ -1449,7 +1449,7 @@ process_worklist_item(mp, flags) struct mount *mp; int flags; { - struct worklist *wk, *wkXXX; + struct worklist *wk; struct ufsmount *ump; struct vnode *vp; int matchcnt = 0; @@ -1472,11 +1472,8 @@ process_worklist_item(mp, flags) vp = NULL; ump = VFSTOUFS(mp); LIST_FOREACH(wk, &ump->softdep_workitem_pending, wk_list) { - if (wk->wk_state & INPROGRESS) { - wkXXX = wk; + if (wk->wk_state & INPROGRESS) continue; - } - wkXXX = wk; /* Record the last valid wk pointer. */ if ((flags & LK_NOWAIT) == 0 || wk->wk_type != D_DIRREM) break; wk->wk_state |= INPROGRESS; @@ -2364,7 +2361,7 @@ remove_from_journal(wk) mtx_assert(&lk, MA_OWNED); ump = VFSTOUFS(wk->wk_mp); -#ifdef DEBUG /* XXX Expensive, temporary. */ +#ifdef SUJ_DEBUG { struct worklist *wkn; @@ -2401,16 +2398,15 @@ journal_space(ump, thresh) struct jblocks *jblocks; int avail; + jblocks = ump->softdep_jblocks; + if (jblocks == NULL) + return (1); /* * We use a tighter restriction here to prevent request_cleanup() * running in threads from running into locks we currently hold. */ if (num_inodedep > (max_softdeps / 10) * 9) return (0); - - jblocks = ump->softdep_jblocks; - if (jblocks == NULL) - return (1); if (thresh) thresh = jblocks->jb_min; else @@ -2727,7 +2723,7 @@ softdep_process_journal(mp, flags) break; printf("softdep: Out of journal space!\n"); softdep_speedup(); - msleep(jblocks, &lk, PRIBIO, "jblocks", 1); + msleep(jblocks, &lk, PRIBIO, "jblocks", hz); } FREE_LOCK(&lk); jseg = malloc(sizeof(*jseg), M_JSEG, M_SOFTDEP_FLAGS); @@ -10870,18 +10866,29 @@ int softdep_slowdown(vp) struct vnode *vp; { + struct ufsmount *ump; + int jlow; int max_softdeps_hard; ACQUIRE_LOCK(&lk); + jlow = 0; + /* + * Check for journal space if needed. + */ + if (DOINGSUJ(vp)) { + ump = VFSTOUFS(vp->v_mount); + if (journal_space(ump, 0) == 0) + jlow = 1; + } max_softdeps_hard = max_softdeps * 11 / 10; if (num_dirrem < max_softdeps_hard / 2 && num_inodedep < max_softdeps_hard && VFSTOUFS(vp->v_mount)->um_numindirdeps < maxindirdeps && - num_freeblkdep < max_softdeps_hard) { + num_freeblkdep < max_softdeps_hard && jlow == 0) { FREE_LOCK(&lk); return (0); } - if (VFSTOUFS(vp->v_mount)->um_numindirdeps >= maxindirdeps) + if (VFSTOUFS(vp->v_mount)->um_numindirdeps >= maxindirdeps || jlow) softdep_speedup(); stat_sync_limit_hit += 1; FREE_LOCK(&lk); Modified: head/sys/ufs/ffs/softdep.h ============================================================================== --- head/sys/ufs/ffs/softdep.h Wed May 19 04:00:42 2010 (r208286) +++ head/sys/ufs/ffs/softdep.h Wed May 19 06:18:01 2010 (r208287) @@ -46,51 +46,65 @@ * copy of the data. A particular data dependency is eliminated when * it is ALLCOMPLETE: that is ATTACHED, DEPCOMPLETE, and COMPLETE. * - * ATTACHED means that the data is not currently being written to - * disk. UNDONE means that the data has been rolled back to a safe + * The ATTACHED flag means that the data is not currently being written + * to disk. + * + * The UNDONE flag means that the data has been rolled back to a safe * state for writing to the disk. When the I/O completes, the data is * restored to its current form and the state reverts to ATTACHED. * The data must be locked throughout the rollback, I/O, and roll * forward so that the rolled back information is never visible to - * user processes. The COMPLETE flag indicates that the item has been - * written. For example, a dependency that requires that an inode be - * written will be marked COMPLETE after the inode has been written - * to disk. The DEPCOMPLETE flag indicates the completion of any other + * user processes. + * + * The COMPLETE flag indicates that the item has been written. For example, + * a dependency that requires that an inode be written will be marked + * COMPLETE after the inode has been written to disk. + * + * The DEPCOMPLETE flag indicates the completion of any other * dependencies such as the writing of a cylinder group map has been * completed. A dependency structure may be freed only when both it * and its dependencies have completed and any rollbacks that are in * progress have finished as indicated by the set of ALLCOMPLETE flags - * all being set. The two MKDIR flags indicate additional dependencies - * that must be done when creating a new directory. MKDIR_BODY is - * cleared when the directory data block containing the "." and ".." - * entries has been written. MKDIR_PARENT is cleared when the parent - * inode with the increased link count for ".." has been written. When - * both MKDIR flags have been cleared, the DEPCOMPLETE flag is set to - * indicate that the directory dependencies have been completed. The - * writing of the directory inode itself sets the COMPLETE flag which - * then allows the directory entry for the new directory to be written - * to disk. The RMDIR flag marks a dirrem structure as representing - * the removal of a directory rather than a file. When the removal - * dependencies are completed, additional work needs to be done - * (truncation of the "." and ".." entries, an additional decrement - * of the associated inode, and a decrement of the parent inode). The - * DIRCHG flag marks a diradd structure as representing the changing + * all being set. + * + * The two MKDIR flags indicate additional dependencies that must be done + * when creating a new directory. MKDIR_BODY is cleared when the directory + * data block containing the "." and ".." entries has been written. + * MKDIR_PARENT is cleared when the parent inode with the increased link + * count for ".." has been written. When both MKDIR flags have been + * cleared, the DEPCOMPLETE flag is set to indicate that the directory + * dependencies have been completed. The writing of the directory inode + * itself sets the COMPLETE flag which then allows the directory entry for + * the new directory to be written to disk. The RMDIR flag marks a dirrem + * structure as representing the removal of a directory rather than a + * file. When the removal dependencies are completed, additional work needs + * to be done* (an additional decrement of the associated inode, and a + * decrement of the parent inode). + * + * The DIRCHG flag marks a diradd structure as representing the changing * of an existing entry rather than the addition of a new one. When * the update is complete the dirrem associated with the inode for * the old name must be added to the worklist to do the necessary - * reference count decrement. The GOINGAWAY flag indicates that the - * data structure is frozen from further change until its dependencies - * have been completed and its resources freed after which it will be - * discarded. The IOSTARTED flag prevents multiple calls to the I/O - * start routine from doing multiple rollbacks. The SPACECOUNTED flag - * says that the files space has been accounted to the pending free - * space count. The NEWBLOCK flag marks pagedep structures that have - * just been allocated, so must be claimed by the inode before all - * dependencies are complete. The INPROGRESS flag marks worklist - * structures that are still on the worklist, but are being considered - * for action by some process. The UFS1FMT flag indicates that the - * inode being processed is a ufs1 format. The EXTDATA flag indicates - * that the allocdirect describes an extended-attributes dependency. + * reference count decrement. + * + * The GOINGAWAY flag indicates that the data structure is frozen from + * further change until its dependencies have been completed and its + * resources freed after which it will be discarded. + * + * The IOSTARTED flag prevents multiple calls to the I/O start routine from + * doing multiple rollbacks. + * + * The NEWBLOCK flag marks pagedep structures that have just been allocated, + * so must be claimed by the inode before all dependencies are complete. + * + * The INPROGRESS flag marks worklist structures that are still on the + * worklist, but are being considered for action by some process. + * + * The UFS1FMT flag indicates that the inode being processed is a ufs1 format. + * + * The EXTDATA flag indicates that the allocdirect describes an + * extended-attributes dependency. + * * The ONWORKLIST flag shows whether the structure is currently linked * onto a worklist. */ From owner-svn-src-all@FreeBSD.ORG Wed May 19 06:49:52 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D5A721065691; Wed, 19 May 2010 06:49:52 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id BDCBB8FC1C; Wed, 19 May 2010 06:49:52 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4J6nqA4096777; Wed, 19 May 2010 06:49:52 GMT (envelope-from mm@svn.freebsd.org) Received: (from mm@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4J6nqlg096762; Wed, 19 May 2010 06:49:52 GMT (envelope-from mm@svn.freebsd.org) Message-Id: <201005190649.o4J6nqlg096762@svn.freebsd.org> From: Martin Matuska Date: Wed, 19 May 2010 06:49:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208288 - in stable/8: cddl/contrib/opensolaris/cmd/zpool cddl/contrib/opensolaris/cmd/ztest cddl/contrib/opensolaris/lib/libzfs/common sys/cddl/contrib/opensolaris/uts/common/fs/zfs sy... X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 06:49:53 -0000 Author: mm Date: Wed May 19 06:49:52 2010 New Revision: 208288 URL: http://svn.freebsd.org/changeset/base/208288 Log: MFC r207670, r208130, r208131: MFC r207670: Introduce hardforce export option (-F) for "zpool export". When exporting with this flag, zpool.cache remains untouched. OpenSolaris onnv revision: 8211:32722be6ad3b MFC r208130: Fix perfomance problem with ZFS prefetch caching [1] Add statistics for ZFS prefetch (sysctl kstat.zfs.misc.zfetchstats) OpenSolaris onnv revision: 10474:0e96dd3b905a (partial) MFC r208131: Fix deadlock between zfs_dirent_lock and zfs_rmdir OpenSolaris onnv revision: 11321:506b7043a14c Reported by: jhell@dataix.net (private e-mail) [1] Approved by: pjd, delphij (mentor) Obtained from: OpenSolaris (Bug ID: 6775357, 6859997, 6868951, 6847615) Modified: stable/8/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c stable/8/cddl/contrib/opensolaris/cmd/ztest/ztest.c stable/8/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h stable/8/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_zfetch.h stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_dir.h stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Directory Properties: stable/8/cddl/contrib/opensolaris/ (props changed) stable/8/cddl/contrib/opensolaris/cmd/zdb/ (props changed) stable/8/cddl/contrib/opensolaris/cmd/zfs/ (props changed) stable/8/cddl/contrib/opensolaris/lib/libzfs/ (props changed) stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c ============================================================================== --- stable/8/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Wed May 19 06:18:01 2010 (r208287) +++ stable/8/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Wed May 19 06:49:52 2010 (r208288) @@ -879,17 +879,21 @@ int zpool_do_export(int argc, char **argv) { boolean_t force = B_FALSE; + boolean_t hardforce = B_FALSE; int c; zpool_handle_t *zhp; int ret; int i; /* check options */ - while ((c = getopt(argc, argv, "f")) != -1) { + while ((c = getopt(argc, argv, "fF")) != -1) { switch (c) { case 'f': force = B_TRUE; break; + case 'F': + hardforce = B_TRUE; + break; case '?': (void) fprintf(stderr, gettext("invalid option '%c'\n"), optopt); @@ -919,8 +923,12 @@ zpool_do_export(int argc, char **argv) continue; } - if (zpool_export(zhp, force) != 0) + if (hardforce) { + if (zpool_export_force(zhp) != 0) + ret = 1; + } else if (zpool_export(zhp, force) != 0) { ret = 1; + } zpool_close(zhp); } Modified: stable/8/cddl/contrib/opensolaris/cmd/ztest/ztest.c ============================================================================== --- stable/8/cddl/contrib/opensolaris/cmd/ztest/ztest.c Wed May 19 06:18:01 2010 (r208287) +++ stable/8/cddl/contrib/opensolaris/cmd/ztest/ztest.c Wed May 19 06:49:52 2010 (r208288) @@ -3145,7 +3145,7 @@ ztest_spa_import_export(char *oldname, c /* * Export it. */ - error = spa_export(oldname, &config, B_FALSE); + error = spa_export(oldname, &config, B_FALSE, B_FALSE); if (error) fatal(0, "spa_export('%s') = %d", oldname, error); Modified: stable/8/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h ============================================================================== --- stable/8/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h Wed May 19 06:18:01 2010 (r208287) +++ stable/8/cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h Wed May 19 06:49:52 2010 (r208288) @@ -289,6 +289,7 @@ extern int zpool_get_errlog(zpool_handle * Import and export functions */ extern int zpool_export(zpool_handle_t *, boolean_t); +extern int zpool_export_force(zpool_handle_t *); extern int zpool_import(libzfs_handle_t *, nvlist_t *, const char *, char *altroot); extern int zpool_import_props(libzfs_handle_t *, nvlist_t *, const char *, Modified: stable/8/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c ============================================================================== --- stable/8/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c Wed May 19 06:18:01 2010 (r208287) +++ stable/8/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c Wed May 19 06:49:52 2010 (r208288) @@ -1096,7 +1096,7 @@ zpool_add(zpool_handle_t *zhp, nvlist_t * mounted datasets in the pool. */ int -zpool_export(zpool_handle_t *zhp, boolean_t force) +zpool_export_common(zpool_handle_t *zhp, boolean_t force, boolean_t hardforce) { zfs_cmd_t zc = { 0 }; char msg[1024]; @@ -1109,6 +1109,7 @@ zpool_export(zpool_handle_t *zhp, boolea (void) strlcpy(zc.zc_name, zhp->zpool_name, sizeof (zc.zc_name)); zc.zc_cookie = force; + zc.zc_guid = hardforce; if (zfs_ioctl(zhp->zpool_hdl, ZFS_IOC_POOL_EXPORT, &zc) != 0) { switch (errno) { @@ -1129,6 +1130,18 @@ zpool_export(zpool_handle_t *zhp, boolea return (0); } +int +zpool_export(zpool_handle_t *zhp, boolean_t force) +{ + return (zpool_export_common(zhp, force, B_FALSE)); +} + +int +zpool_export_force(zpool_handle_t *zhp) +{ + return (zpool_export_common(zhp, B_TRUE, B_TRUE)); +} + /* * zpool_import() is a contracted interface. Should be kept the same * if possible. Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c ============================================================================== --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c Wed May 19 06:18:01 2010 (r208287) +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c Wed May 19 06:49:52 2010 (r208288) @@ -1192,6 +1192,7 @@ dmu_init(void) { dbuf_init(); dnode_init(); + zfetch_init(); arc_init(); l2arc_init(); } @@ -1200,6 +1201,7 @@ void dmu_fini(void) { arc_fini(); + zfetch_fini(); dnode_fini(); dbuf_fini(); l2arc_fini(); Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c ============================================================================== --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c Wed May 19 06:18:01 2010 (r208287) +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_zfetch.c Wed May 19 06:49:52 2010 (r208288) @@ -19,18 +19,17 @@ * CDDL HEADER END */ /* - * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ -#pragma ident "%Z%%M% %I% %E% SMI" - #include #include #include #include #include #include +#include /* * I'm against tune-ables, but these should probably exist as tweakable globals @@ -77,6 +76,41 @@ static zstream_t *dmu_zfetch_stream_recl static void dmu_zfetch_stream_remove(zfetch_t *, zstream_t *); static int dmu_zfetch_streams_equal(zstream_t *, zstream_t *); +typedef struct zfetch_stats { + kstat_named_t zfetchstat_hits; + kstat_named_t zfetchstat_misses; + kstat_named_t zfetchstat_colinear_hits; + kstat_named_t zfetchstat_colinear_misses; + kstat_named_t zfetchstat_stride_hits; + kstat_named_t zfetchstat_stride_misses; + kstat_named_t zfetchstat_reclaim_successes; + kstat_named_t zfetchstat_reclaim_failures; + kstat_named_t zfetchstat_stream_resets; + kstat_named_t zfetchstat_stream_noresets; + kstat_named_t zfetchstat_bogus_streams; +} zfetch_stats_t; + +static zfetch_stats_t zfetch_stats = { + { "hits", KSTAT_DATA_UINT64 }, + { "misses", KSTAT_DATA_UINT64 }, + { "colinear_hits", KSTAT_DATA_UINT64 }, + { "colinear_misses", KSTAT_DATA_UINT64 }, + { "stride_hits", KSTAT_DATA_UINT64 }, + { "stride_misses", KSTAT_DATA_UINT64 }, + { "reclaim_successes", KSTAT_DATA_UINT64 }, + { "reclaim_failures", KSTAT_DATA_UINT64 }, + { "streams_resets", KSTAT_DATA_UINT64 }, + { "streams_noresets", KSTAT_DATA_UINT64 }, + { "bogus_streams", KSTAT_DATA_UINT64 }, +}; + +#define ZFETCHSTAT_INCR(stat, val) \ + atomic_add_64(&zfetch_stats.stat.value.ui64, (val)); + +#define ZFETCHSTAT_BUMP(stat) ZFETCHSTAT_INCR(stat, 1); + +kstat_t *zfetch_ksp; + /* * Given a zfetch structure and a zstream structure, determine whether the * blocks to be read are part of a co-linear pair of existing prefetch @@ -213,6 +247,29 @@ dmu_zfetch_dofetch(zfetch_t *zf, zstream zs->zst_last = LBOLT; } +void +zfetch_init(void) +{ + + zfetch_ksp = kstat_create("zfs", 0, "zfetchstats", "misc", + KSTAT_TYPE_NAMED, sizeof (zfetch_stats) / sizeof (kstat_named_t), + KSTAT_FLAG_VIRTUAL); + + if (zfetch_ksp != NULL) { + zfetch_ksp->ks_data = &zfetch_stats; + kstat_install(zfetch_ksp); + } +} + +void +zfetch_fini(void) +{ + if (zfetch_ksp != NULL) { + kstat_delete(zfetch_ksp); + zfetch_ksp = NULL; + } +} + /* * This takes a pointer to a zfetch structure and a dnode. It performs the * necessary setup for the zfetch structure, grokking data from the @@ -283,7 +340,7 @@ dmu_zfetch_fetchsz(dnode_t *dn, uint64_t } /* - * given a zfetch and a zsearch structure, see if there is an associated zstream + * given a zfetch and a zstream structure, see if there is an associated zstream * for this block read. If so, it starts a prefetch for the stream it * located and returns true, otherwise it returns false */ @@ -315,6 +372,7 @@ top: */ if (zs->zst_len == 0) { /* bogus stream */ + ZFETCHSTAT_BUMP(zfetchstat_bogus_streams); continue; } @@ -324,9 +382,14 @@ top: */ if (zh->zst_offset >= zs->zst_offset && zh->zst_offset < zs->zst_offset + zs->zst_len) { - /* already fetched */ - rc = 1; - goto out; + if (prefetched) { + /* already fetched */ + ZFETCHSTAT_BUMP(zfetchstat_stride_hits); + rc = 1; + goto out; + } else { + ZFETCHSTAT_BUMP(zfetchstat_stride_misses); + } } /* @@ -439,6 +502,7 @@ top: if (reset) { zstream_t *remove = zs; + ZFETCHSTAT_BUMP(zfetchstat_stream_resets); rc = 0; mutex_exit(&zs->zst_lock); rw_exit(&zf->zf_rwlock); @@ -457,6 +521,7 @@ top: } } } else { + ZFETCHSTAT_BUMP(zfetchstat_stream_noresets); rc = 1; dmu_zfetch_dofetch(zf, zs); mutex_exit(&zs->zst_lock); @@ -513,13 +578,12 @@ dmu_zfetch_stream_insert(zfetch_t *zf, z zs_next = list_next(&zf->zf_stream, zs_walk); if (dmu_zfetch_streams_equal(zs_walk, zs)) { - return (0); + return (0); } } list_insert_head(&zf->zf_stream, zs); zf->zf_stream_cnt++; - return (1); } @@ -623,8 +687,15 @@ dmu_zfetch(zfetch_t *zf, uint64_t offset P2ALIGN(offset, blksz)) >> blkshft; fetched = dmu_zfetch_find(zf, &zst, prefetched); - if (!fetched) { - fetched = dmu_zfetch_colinear(zf, &zst); + if (fetched) { + ZFETCHSTAT_BUMP(zfetchstat_hits); + } else { + ZFETCHSTAT_BUMP(zfetchstat_misses); + if (fetched = dmu_zfetch_colinear(zf, &zst)) { + ZFETCHSTAT_BUMP(zfetchstat_colinear_hits); + } else { + ZFETCHSTAT_BUMP(zfetchstat_colinear_misses); + } } if (!fetched) { @@ -634,11 +705,14 @@ dmu_zfetch(zfetch_t *zf, uint64_t offset * we still couldn't find a stream, drop the lock, and allocate * one if possible. Otherwise, give up and go home. */ - if (newstream == NULL) { + if (newstream) { + ZFETCHSTAT_BUMP(zfetchstat_reclaim_successes); + } else { uint64_t maxblocks; uint32_t max_streams; uint32_t cur_streams; + ZFETCHSTAT_BUMP(zfetchstat_reclaim_failures); cur_streams = zf->zf_stream_cnt; maxblocks = zf->zf_dnode->dn_maxblkid; @@ -651,7 +725,6 @@ dmu_zfetch(zfetch_t *zf, uint64_t offset if (cur_streams >= max_streams) { return; } - newstream = kmem_zalloc(sizeof (zstream_t), KM_SLEEP); } Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c ============================================================================== --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c Wed May 19 06:18:01 2010 (r208287) +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c Wed May 19 06:49:52 2010 (r208288) @@ -2564,11 +2564,12 @@ spa_tryimport(nvlist_t *tryconfig) * The act of destroying or exporting a pool is very simple. We make sure there * is no more pending I/O and any references to the pool are gone. Then, we * update the pool state and sync all the labels to disk, removing the - * configuration from the cache afterwards. + * configuration from the cache afterwards. If the 'hardforce' flag is set, then + * we don't sync the labels or remove the configuration cache. */ static int spa_export_common(char *pool, int new_state, nvlist_t **oldconfig, - boolean_t force) + boolean_t force, boolean_t hardforce) { spa_t *spa; @@ -2636,7 +2637,7 @@ spa_export_common(char *pool, int new_st * so mark them all dirty. spa_unload() will do the * final sync that pushes these changes out. */ - if (new_state != POOL_STATE_UNINITIALIZED) { + if (new_state != POOL_STATE_UNINITIALIZED && !hardforce) { spa_config_enter(spa, SCL_ALL, FTAG, RW_WRITER); spa->spa_state = new_state; spa->spa_final_txg = spa_last_synced_txg(spa) + 1; @@ -2656,7 +2657,8 @@ spa_export_common(char *pool, int new_st VERIFY(nvlist_dup(spa->spa_config, oldconfig, 0) == 0); if (new_state != POOL_STATE_UNINITIALIZED) { - spa_config_sync(spa, B_TRUE, B_TRUE); + if (!hardforce) + spa_config_sync(spa, B_TRUE, B_TRUE); spa_remove(spa); } mutex_exit(&spa_namespace_lock); @@ -2670,16 +2672,19 @@ spa_export_common(char *pool, int new_st int spa_destroy(char *pool) { - return (spa_export_common(pool, POOL_STATE_DESTROYED, NULL, B_FALSE)); + return (spa_export_common(pool, POOL_STATE_DESTROYED, NULL, + B_FALSE, B_FALSE)); } /* * Export a storage pool. */ int -spa_export(char *pool, nvlist_t **oldconfig, boolean_t force) +spa_export(char *pool, nvlist_t **oldconfig, boolean_t force, + boolean_t hardforce) { - return (spa_export_common(pool, POOL_STATE_EXPORTED, oldconfig, force)); + return (spa_export_common(pool, POOL_STATE_EXPORTED, oldconfig, + force, hardforce)); } /* @@ -2690,7 +2695,7 @@ int spa_reset(char *pool) { return (spa_export_common(pool, POOL_STATE_UNINITIALIZED, NULL, - B_FALSE)); + B_FALSE, B_FALSE)); } /* Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_zfetch.h ============================================================================== --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_zfetch.h Wed May 19 06:18:01 2010 (r208287) +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_zfetch.h Wed May 19 06:49:52 2010 (r208288) @@ -19,15 +19,13 @@ * CDDL HEADER END */ /* - * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #ifndef _DFETCH_H #define _DFETCH_H -#pragma ident "%Z%%M% %I% %E% SMI" - #include #ifdef __cplusplus @@ -63,6 +61,9 @@ typedef struct zfetch { uint64_t zf_alloc_fail; /* # of failed attempts to alloc strm */ } zfetch_t; +void zfetch_init(void); +void zfetch_fini(void); + void dmu_zfetch_init(zfetch_t *, struct dnode *); void dmu_zfetch_rele(zfetch_t *); void dmu_zfetch(zfetch_t *, uint64_t, uint64_t, int); Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h ============================================================================== --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h Wed May 19 06:18:01 2010 (r208287) +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h Wed May 19 06:49:52 2010 (r208288) @@ -333,7 +333,8 @@ extern int spa_import(const char *pool, extern int spa_import_faulted(const char *, nvlist_t *, nvlist_t *); extern nvlist_t *spa_tryimport(nvlist_t *tryconfig); extern int spa_destroy(char *pool); -extern int spa_export(char *pool, nvlist_t **oldconfig, boolean_t force); +extern int spa_export(char *pool, nvlist_t **oldconfig, boolean_t force, + boolean_t hardforce); extern int spa_reset(char *pool); extern void spa_async_request(spa_t *spa, int flag); extern void spa_async_unrequest(spa_t *spa, int flag); Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_dir.h ============================================================================== --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_dir.h Wed May 19 06:18:01 2010 (r208287) +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_dir.h Wed May 19 06:49:52 2010 (r208288) @@ -44,6 +44,7 @@ extern "C" { #define ZRENAMING 0x0010 /* znode is being renamed */ #define ZCILOOK 0x0020 /* case-insensitive lookup requested */ #define ZCIEXACT 0x0040 /* c-i requires c-s match (rename) */ +#define ZHAVELOCK 0x0080 /* z_name_lock is already held */ /* mknode flags */ #define IS_ROOT_NODE 0x01 /* create a root node */ Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h ============================================================================== --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h Wed May 19 06:18:01 2010 (r208287) +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h Wed May 19 06:49:52 2010 (r208288) @@ -174,6 +174,7 @@ typedef struct znode_phys { typedef struct zfs_dirlock { char *dl_name; /* directory entry being locked */ uint32_t dl_sharecnt; /* 0 if exclusive, > 0 if shared */ + uint8_t dl_namelock; /* 1 if z_name_lock is NOT held */ uint16_t dl_namesize; /* set if dl_name was allocated */ kcondvar_t dl_cv; /* wait for entry to be unlocked */ struct znode *dl_dzp; /* directory znode */ Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c ============================================================================== --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c Wed May 19 06:18:01 2010 (r208287) +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c Wed May 19 06:49:52 2010 (r208288) @@ -114,6 +114,8 @@ zfs_match_find(zfsvfs_t *zfsvfs, znode_t * ZCIEXACT: On a purely case-insensitive file system, * this lookup should be case-sensitive. * ZRENAMING: we are locking for renaming, force narrow locks + * ZHAVELOCK: Don't grab the z_name_lock for this call. The + * current thread already holds it. * * Output arguments: * zpp - pointer to the znode for the entry (NULL if there isn't one) @@ -208,13 +210,20 @@ zfs_dirent_lock(zfs_dirlock_t **dlpp, zn /* * Wait until there are no locks on this name. + * + * Don't grab the the lock if it is already held. However, cannot + * have both ZSHARED and ZHAVELOCK together. */ - rw_enter(&dzp->z_name_lock, RW_READER); + ASSERT(!(flag & ZSHARED) || !(flag & ZHAVELOCK)); + if (!(flag & ZHAVELOCK)) + rw_enter(&dzp->z_name_lock, RW_READER); + mutex_enter(&dzp->z_lock); for (;;) { if (dzp->z_unlinked) { mutex_exit(&dzp->z_lock); - rw_exit(&dzp->z_name_lock); + if (!(flag & ZHAVELOCK)) + rw_exit(&dzp->z_name_lock); return (ENOENT); } for (dl = dzp->z_dirlocks; dl != NULL; dl = dl->dl_next) { @@ -224,7 +233,8 @@ zfs_dirent_lock(zfs_dirlock_t **dlpp, zn } if (error != 0) { mutex_exit(&dzp->z_lock); - rw_exit(&dzp->z_name_lock); + if (!(flag & ZHAVELOCK)) + rw_exit(&dzp->z_name_lock); return (ENOENT); } if (dl == NULL) { @@ -235,6 +245,7 @@ zfs_dirent_lock(zfs_dirlock_t **dlpp, zn cv_init(&dl->dl_cv, NULL, CV_DEFAULT, NULL); dl->dl_name = name; dl->dl_sharecnt = 0; + dl->dl_namelock = 0; dl->dl_namesize = 0; dl->dl_dzp = dzp; dl->dl_next = dzp->z_dirlocks; @@ -246,6 +257,12 @@ zfs_dirent_lock(zfs_dirlock_t **dlpp, zn cv_wait(&dl->dl_cv, &dzp->z_lock); } + /* + * If the z_name_lock was NOT held for this dirlock record it. + */ + if (flag & ZHAVELOCK) + dl->dl_namelock = 1; + if ((flag & ZSHARED) && ++dl->dl_sharecnt > 1 && dl->dl_namesize == 0) { /* * We're the second shared reference to dl. Make a copy of @@ -325,7 +342,10 @@ zfs_dirent_unlock(zfs_dirlock_t *dl) zfs_dirlock_t **prev_dl, *cur_dl; mutex_enter(&dzp->z_lock); - rw_exit(&dzp->z_name_lock); + + if (!dl->dl_namelock) + rw_exit(&dzp->z_name_lock); + if (dl->dl_sharecnt > 1) { dl->dl_sharecnt--; mutex_exit(&dzp->z_lock); Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c ============================================================================== --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Wed May 19 06:18:01 2010 (r208287) +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Wed May 19 06:49:52 2010 (r208288) @@ -882,9 +882,10 @@ zfs_ioc_pool_export(zfs_cmd_t *zc) { int error; boolean_t force = (boolean_t)zc->zc_cookie; + boolean_t hardforce = (boolean_t)zc->zc_guid; zfs_log_history(zc); - error = spa_export(zc->zc_name, NULL, force); + error = spa_export(zc->zc_name, NULL, force, hardforce); return (error); } Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c ============================================================================== --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Wed May 19 06:18:01 2010 (r208287) +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Wed May 19 06:49:52 2010 (r208288) @@ -3208,6 +3208,15 @@ top: } } + /* + * If the source and destination directories are the same, we should + * grab the z_name_lock of that directory only once. + */ + if (sdzp == tdzp) { + zflg |= ZHAVELOCK; + rw_enter(&sdzp->z_name_lock, RW_READER); + } + if (cmp < 0) { serr = zfs_dirent_lock(&sdl, sdzp, snm, &szp, ZEXISTS | zflg, NULL, NULL); @@ -3230,6 +3239,10 @@ top: if (tzp) VN_RELE(ZTOV(tzp)); } + + if (sdzp == tdzp) + rw_exit(&sdzp->z_name_lock); + if (strcmp(snm, ".") == 0 || strcmp(snm, "..") == 0) serr = EINVAL; ZFS_EXIT(zfsvfs); @@ -3238,6 +3251,10 @@ top: if (terr) { zfs_dirent_unlock(sdl); VN_RELE(ZTOV(szp)); + + if (sdzp == tdzp) + rw_exit(&sdzp->z_name_lock); + if (strcmp(tnm, "..") == 0) terr = EINVAL; ZFS_EXIT(zfsvfs); @@ -3320,6 +3337,10 @@ top: zfs_rename_unlock(&zl); zfs_dirent_unlock(sdl); zfs_dirent_unlock(tdl); + + if (sdzp == tdzp) + rw_exit(&sdzp->z_name_lock); + VN_RELE(ZTOV(szp)); if (tzp) VN_RELE(ZTOV(tzp)); @@ -3367,6 +3388,9 @@ out: zfs_dirent_unlock(sdl); zfs_dirent_unlock(tdl); + if (sdzp == tdzp) + rw_exit(&sdzp->z_name_lock); + VN_RELE(ZTOV(szp)); if (tzp) VN_RELE(ZTOV(tzp)); From owner-svn-src-all@FreeBSD.ORG Wed May 19 08:52:52 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3973C1065672; Wed, 19 May 2010 08:52:52 +0000 (UTC) (envelope-from uqs@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 278358FC08; Wed, 19 May 2010 08:52:52 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4J8qpr2023948; Wed, 19 May 2010 08:52:51 GMT (envelope-from uqs@svn.freebsd.org) Received: (from uqs@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4J8qpob023944; Wed, 19 May 2010 08:52:51 GMT (envelope-from uqs@svn.freebsd.org) Message-Id: <201005190852.o4J8qpob023944@svn.freebsd.org> From: Ulrich Spoerlein Date: Wed, 19 May 2010 08:52:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208289 - head/usr.sbin/apmd X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 08:52:52 -0000 Author: uqs Date: Wed May 19 08:52:51 2010 New Revision: 208289 URL: http://svn.freebsd.org/changeset/base/208289 Log: - Fix terminating argument to execl(3), sizeof(NULL) != sizeof(char *) might be true on some systems [1] - Rewrite gotos to use return directly - Some spelling fixes - Reduce unneeded/non-standard Makefile settings Requested by: bde, imp [1] Explanation provided by: bde [1] Reviewed by: imp Modified: head/usr.sbin/apmd/Makefile head/usr.sbin/apmd/README head/usr.sbin/apmd/apmd.c Modified: head/usr.sbin/apmd/Makefile ============================================================================== --- head/usr.sbin/apmd/Makefile Wed May 19 06:49:52 2010 (r208288) +++ head/usr.sbin/apmd/Makefile Wed May 19 08:52:51 2010 (r208289) @@ -10,12 +10,7 @@ WARNS?= 3 DPADD= ${LIBL} LDADD= -ll -YFLAGS+=-v -CFLAGS+=-I. -I${.CURDIR} #-DYY_STACK_USED -# for debug: -#CFLAGS+= -g -DDEBUG - -CLEANFILES= y.output +CFLAGS+= -I${.CURDIR} test: ./apmd -d -f etc/apmd.conf -n Modified: head/usr.sbin/apmd/README ============================================================================== --- head/usr.sbin/apmd/README Wed May 19 06:49:52 2010 (r208288) +++ head/usr.sbin/apmd/README Wed May 19 08:52:51 2010 (r208289) @@ -92,7 +92,7 @@ apm_event SUSPENDREQ { exec "zzz"; } -Will cause apmd to recieve the APM event SUSPENDREQ (which may be +Will cause apmd to receive the APM event SUSPENDREQ (which may be posted by an LCD close), run the sync command 3 times and wait for a while, then execute zzz (apm -z) to put the system in the suspend state. @@ -130,7 +130,7 @@ Other events will not be sent to apmd. 4.3 command line syntax ----------------------- -In the example above, the three lines begining with `exec' are commands +In the example above, the three lines beginning with `exec' are commands for the event. Each line should be terminated with a semicolon. The command list for the event should be enclosed by `{' and `}'. apmd(8) uses /bin/sh for double-quotation enclosed command execution, just as Modified: head/usr.sbin/apmd/apmd.c ============================================================================== --- head/usr.sbin/apmd/apmd.c Wed May 19 06:49:52 2010 (r208288) +++ head/usr.sbin/apmd/apmd.c Wed May 19 08:52:51 2010 (r208289) @@ -115,13 +115,13 @@ event_cmd_exec_act(void *this) switch ((pid = fork())) { case -1: warn("cannot fork"); - goto out; + break; case 0: /* child process */ signal(SIGHUP, SIG_DFL); signal(SIGCHLD, SIG_DFL); signal(SIGTERM, SIG_DFL); - execl(_PATH_BSHELL, "sh", "-c", p->line, NULL); + execl(_PATH_BSHELL, "sh", "-c", p->line, (char *)NULL); _exit(127); default: /* parent process */ @@ -130,7 +130,6 @@ event_cmd_exec_act(void *this) } while (pid == -1 && errno == EINTR); break; } - out: return status; } void @@ -165,19 +164,17 @@ struct event_cmd_op event_cmd_exec_ops = }; /* - * reject commad + * reject command */ int event_cmd_reject_act(void *this __unused) { - int rc = -1; + int rc = 0; if (ioctl(apmctl_fd, APMIO_REJECTLASTREQ, NULL)) { syslog(LOG_NOTICE, "fail to reject\n"); - goto out; + rc = -1; } - rc = 0; - out: return rc; } struct event_cmd_op event_cmd_reject_ops = { @@ -466,7 +463,7 @@ wait_child(void) int proc_signal(int fd) { - int rc = -1; + int rc = 0; int sig; while (read(fd, &sig, sizeof sig) == sizeof sig) { @@ -479,7 +476,7 @@ proc_signal(int fd) case SIGTERM: syslog(LOG_NOTICE, "going down on signal %d", sig); rc = -1; - goto out; + return rc; case SIGCHLD: wait_child(); break; @@ -488,8 +485,6 @@ proc_signal(int fd) break; } } - rc = 0; - out: return rc; } void @@ -630,14 +625,12 @@ event_loop(void) if (FD_ISSET(signal_fd[0], &rfds)) { if (proc_signal(signal_fd[0]) < 0) - goto out; + return; } if (FD_ISSET(apmctl_fd, &rfds)) proc_apmevent(apmctl_fd); } -out: - return; } int From owner-svn-src-all@FreeBSD.ORG Wed May 19 08:52:59 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D2D2C10657B1; Wed, 19 May 2010 08:52:59 +0000 (UTC) (envelope-from uqs@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C112B8FC26; Wed, 19 May 2010 08:52:59 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4J8qxnG024016; Wed, 19 May 2010 08:52:59 GMT (envelope-from uqs@svn.freebsd.org) Received: (from uqs@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4J8qxIK024014; Wed, 19 May 2010 08:52:59 GMT (envelope-from uqs@svn.freebsd.org) Message-Id: <201005190852.o4J8qxIK024014@svn.freebsd.org> From: Ulrich Spoerlein Date: Wed, 19 May 2010 08:52:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208290 - head/usr.sbin/apm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 08:52:59 -0000 Author: uqs Date: Wed May 19 08:52:59 2010 New Revision: 208290 URL: http://svn.freebsd.org/changeset/base/208290 Log: Garbage collect unused variable, missed in r200840 Found by: clang static analyzer Modified: head/usr.sbin/apm/apm.c Modified: head/usr.sbin/apm/apm.c ============================================================================== --- head/usr.sbin/apm/apm.c Wed May 19 08:52:51 2010 (r208289) +++ head/usr.sbin/apm/apm.c Wed May 19 08:52:59 2010 (r208290) @@ -384,17 +384,12 @@ main(int argc, char *argv[]) int dosleep = 0, all_info = 1, apm_status = 0, batt_status = 0; int display = -1, batt_life = 0, ac_status = 0, standby = 0; int batt_time = 0, delta = 0, enable = -1, haltcpu = -1; - char *cmdname; int bioscall_available = 0; size_t cmos_wall_len = sizeof(cmos_wall); if (sysctlbyname("machdep.wall_cmos_clock", &cmos_wall, &cmos_wall_len, NULL, 0) == -1) err(1, "sysctlbyname(machdep.wall_cmos_clock)"); - if ((cmdname = strrchr(argv[0], '/')) != NULL) - cmdname++; - else - cmdname = argv[0]; while ((c = getopt(argc, argv, "abe:h:lRr:stzd:Z")) != -1) { switch (c) { From owner-svn-src-all@FreeBSD.ORG Wed May 19 08:57:54 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7DF821065678; Wed, 19 May 2010 08:57:54 +0000 (UTC) (envelope-from uqs@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 67F9F8FC24; Wed, 19 May 2010 08:57:54 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4J8vshW025193; Wed, 19 May 2010 08:57:54 GMT (envelope-from uqs@svn.freebsd.org) Received: (from uqs@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4J8vrXk025135; Wed, 19 May 2010 08:57:53 GMT (envelope-from uqs@svn.freebsd.org) Message-Id: <201005190857.o4J8vrXk025135@svn.freebsd.org> From: Ulrich Spoerlein Date: Wed, 19 May 2010 08:57:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208291 - in head: lib/libarchive lib/libc/gen lib/libftpio lib/librpcsec_gss sbin/mount_hpfs share/man/man4 share/man/man4/man4.powerpc share/man/man9 tools/tools/ether_reflect usr.bin... X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 08:57:54 -0000 Author: uqs Date: Wed May 19 08:57:53 2010 New Revision: 208291 URL: http://svn.freebsd.org/changeset/base/208291 Log: mdoc: consistently spell our email addresses Reviewed by: ru Modified: head/lib/libarchive/archive_read_disk.3 head/lib/libc/gen/isgreater.3 head/lib/libc/gen/sem_timedwait.3 head/lib/libc/gen/setproctitle.3 head/lib/libc/gen/tcgetsid.3 head/lib/libftpio/ftpio.3 head/lib/librpcsec_gss/rpc_gss_get_error.3 head/lib/librpcsec_gss/rpc_gss_get_mech_info.3 head/lib/librpcsec_gss/rpc_gss_get_mechanisms.3 head/lib/librpcsec_gss/rpc_gss_get_principal_name.3 head/lib/librpcsec_gss/rpc_gss_get_versions.3 head/lib/librpcsec_gss/rpc_gss_getcred.3 head/lib/librpcsec_gss/rpc_gss_is_installed.3 head/lib/librpcsec_gss/rpc_gss_max_data_length.3 head/lib/librpcsec_gss/rpc_gss_mech_to_oid.3 head/lib/librpcsec_gss/rpc_gss_oid_to_mech.3 head/lib/librpcsec_gss/rpc_gss_qop_to_num.3 head/lib/librpcsec_gss/rpc_gss_seccreate.3 head/lib/librpcsec_gss/rpc_gss_set_callback.3 head/lib/librpcsec_gss/rpc_gss_set_defaults.3 head/lib/librpcsec_gss/rpc_gss_set_svc_name.3 head/lib/librpcsec_gss/rpc_gss_svc_max_data_length.3 head/lib/librpcsec_gss/rpcsec_gss.3 head/sbin/mount_hpfs/mount_hpfs.8 head/share/man/man4/ksyms.4 head/share/man/man4/malo.4 head/share/man/man4/man4.powerpc/bm.4 head/share/man/man4/md.4 head/share/man/man4/ng_ccatm.4 head/share/man/man4/smp.4 head/share/man/man4/snd_emu10kx.4 head/share/man/man4/tx.4 head/share/man/man4/u3g.4 head/share/man/man4/uath.4 head/share/man/man4/usb.4 head/share/man/man4/usb2_template.4 head/share/man/man9/cr_seeothergids.9 head/share/man/man9/cr_seeotheruids.9 head/share/man/man9/p_candebug.9 head/share/man/man9/p_cansee.9 head/share/man/man9/prison_check.9 head/share/man/man9/usbdi.9 head/share/man/man9/watchdog.9 head/tools/tools/ether_reflect/ether_reflect.1 head/usr.bin/csup/cpasswd.1 head/usr.bin/csup/csup.1 head/usr.bin/mkuzip/mkuzip.8 head/usr.sbin/bsnmpd/modules/snmp_hostres/snmp_hostres.3 head/usr.sbin/bsnmpd/modules/snmp_netgraph/snmp_netgraph.3 head/usr.sbin/clear_locks/clear_locks.8 head/usr.sbin/gssd/gssd.8 head/usr.sbin/jail/jail.8 head/usr.sbin/mixer/mixer.8 head/usr.sbin/mptable/mptable.1 head/usr.sbin/nscd/nscd.8 head/usr.sbin/nscd/nscd.conf.5 head/usr.sbin/snapinfo/snapinfo.8 Modified: head/lib/libarchive/archive_read_disk.3 ============================================================================== --- head/lib/libarchive/archive_read_disk.3 Wed May 19 08:52:59 2010 (r208290) +++ head/lib/libarchive/archive_read_disk.3 Wed May 19 08:57:53 2010 (r208291) @@ -276,7 +276,7 @@ and first appeared in The .Nm libarchive library was written by -.An Tim Kientzle Aq kientzle@freebsd.org . +.An Tim Kientzle Aq kientzle@FreeBSD.org . .Sh BUGS The .Dq standard Modified: head/lib/libc/gen/isgreater.3 ============================================================================== --- head/lib/libc/gen/isgreater.3 Wed May 19 08:52:59 2010 (r208290) +++ head/lib/libc/gen/isgreater.3 Wed May 19 08:57:53 2010 (r208291) @@ -1,4 +1,4 @@ -.\" Copyright (c) 2003 David Schultz +.\" Copyright (c) 2003 David Schultz .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without Modified: head/lib/libc/gen/sem_timedwait.3 ============================================================================== --- head/lib/libc/gen/sem_timedwait.3 Wed May 19 08:52:59 2010 (r208290) +++ head/lib/libc/gen/sem_timedwait.3 Wed May 19 08:57:53 2010 (r208291) @@ -1,4 +1,4 @@ -.\" Copyright (c) 2008, David Xu +.\" Copyright (c) 2008, David Xu .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without Modified: head/lib/libc/gen/setproctitle.3 ============================================================================== --- head/lib/libc/gen/setproctitle.3 Wed May 19 08:52:59 2010 (r208290) +++ head/lib/libc/gen/setproctitle.3 Wed May 19 08:57:53 2010 (r208291) @@ -1,4 +1,4 @@ -.\" Copyright (c) 1995 Peter Wemm +.\" Copyright (c) 1995 Peter Wemm .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without Modified: head/lib/libc/gen/tcgetsid.3 ============================================================================== --- head/lib/libc/gen/tcgetsid.3 Wed May 19 08:52:59 2010 (r208290) +++ head/lib/libc/gen/tcgetsid.3 Wed May 19 08:57:53 2010 (r208291) @@ -1,4 +1,4 @@ -.\" Copyright (c) 2008 David Xu +.\" Copyright (c) 2008 David Xu .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without Modified: head/lib/libftpio/ftpio.3 ============================================================================== --- head/lib/libftpio/ftpio.3 Wed May 19 08:52:59 2010 (r208290) +++ head/lib/libftpio/ftpio.3 Wed May 19 08:57:53 2010 (r208291) @@ -1,4 +1,4 @@ -.\" Copyright (c) 1996 Jordan Hubbard (jkh@FreeBSD.org) +.\" Copyright (c) 1996 Jordan Hubbard .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without Modified: head/lib/librpcsec_gss/rpc_gss_get_error.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_get_error.3 Wed May 19 08:52:59 2010 (r208290) +++ head/lib/librpcsec_gss/rpc_gss_get_error.3 Wed May 19 08:57:53 2010 (r208291) @@ -1,6 +1,6 @@ .\" Copyright (c) 2008 Isilon Inc http://www.isilon.com/ .\" Authors: Doug Rabson -.\" Developed with Red Inc: Alfred Perlstein +.\" Developed with Red Inc: Alfred Perlstein .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/lib/librpcsec_gss/rpc_gss_get_mech_info.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_get_mech_info.3 Wed May 19 08:52:59 2010 (r208290) +++ head/lib/librpcsec_gss/rpc_gss_get_mech_info.3 Wed May 19 08:57:53 2010 (r208291) @@ -1,6 +1,6 @@ .\" Copyright (c) 2008 Isilon Inc http://www.isilon.com/ .\" Authors: Doug Rabson -.\" Developed with Red Inc: Alfred Perlstein +.\" Developed with Red Inc: Alfred Perlstein .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/lib/librpcsec_gss/rpc_gss_get_mechanisms.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_get_mechanisms.3 Wed May 19 08:52:59 2010 (r208290) +++ head/lib/librpcsec_gss/rpc_gss_get_mechanisms.3 Wed May 19 08:57:53 2010 (r208291) @@ -1,6 +1,6 @@ .\" Copyright (c) 2008 Isilon Inc http://www.isilon.com/ .\" Authors: Doug Rabson -.\" Developed with Red Inc: Alfred Perlstein +.\" Developed with Red Inc: Alfred Perlstein .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/lib/librpcsec_gss/rpc_gss_get_principal_name.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_get_principal_name.3 Wed May 19 08:52:59 2010 (r208290) +++ head/lib/librpcsec_gss/rpc_gss_get_principal_name.3 Wed May 19 08:57:53 2010 (r208291) @@ -1,6 +1,6 @@ .\" Copyright (c) 2008 Isilon Inc http://www.isilon.com/ .\" Authors: Doug Rabson -.\" Developed with Red Inc: Alfred Perlstein +.\" Developed with Red Inc: Alfred Perlstein .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/lib/librpcsec_gss/rpc_gss_get_versions.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_get_versions.3 Wed May 19 08:52:59 2010 (r208290) +++ head/lib/librpcsec_gss/rpc_gss_get_versions.3 Wed May 19 08:57:53 2010 (r208291) @@ -1,6 +1,6 @@ .\" Copyright (c) 2008 Isilon Inc http://www.isilon.com/ .\" Authors: Doug Rabson -.\" Developed with Red Inc: Alfred Perlstein +.\" Developed with Red Inc: Alfred Perlstein .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/lib/librpcsec_gss/rpc_gss_getcred.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_getcred.3 Wed May 19 08:52:59 2010 (r208290) +++ head/lib/librpcsec_gss/rpc_gss_getcred.3 Wed May 19 08:57:53 2010 (r208291) @@ -1,6 +1,6 @@ .\" Copyright (c) 2008 Isilon Inc http://www.isilon.com/ .\" Authors: Doug Rabson -.\" Developed with Red Inc: Alfred Perlstein +.\" Developed with Red Inc: Alfred Perlstein .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/lib/librpcsec_gss/rpc_gss_is_installed.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_is_installed.3 Wed May 19 08:52:59 2010 (r208290) +++ head/lib/librpcsec_gss/rpc_gss_is_installed.3 Wed May 19 08:57:53 2010 (r208291) @@ -1,6 +1,6 @@ .\" Copyright (c) 2008 Isilon Inc http://www.isilon.com/ .\" Authors: Doug Rabson -.\" Developed with Red Inc: Alfred Perlstein +.\" Developed with Red Inc: Alfred Perlstein .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/lib/librpcsec_gss/rpc_gss_max_data_length.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_max_data_length.3 Wed May 19 08:52:59 2010 (r208290) +++ head/lib/librpcsec_gss/rpc_gss_max_data_length.3 Wed May 19 08:57:53 2010 (r208291) @@ -1,6 +1,6 @@ .\" Copyright (c) 2008 Isilon Inc http://www.isilon.com/ .\" Authors: Doug Rabson -.\" Developed with Red Inc: Alfred Perlstein +.\" Developed with Red Inc: Alfred Perlstein .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/lib/librpcsec_gss/rpc_gss_mech_to_oid.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_mech_to_oid.3 Wed May 19 08:52:59 2010 (r208290) +++ head/lib/librpcsec_gss/rpc_gss_mech_to_oid.3 Wed May 19 08:57:53 2010 (r208291) @@ -1,6 +1,6 @@ .\" Copyright (c) 2008 Isilon Inc http://www.isilon.com/ .\" Authors: Doug Rabson -.\" Developed with Red Inc: Alfred Perlstein +.\" Developed with Red Inc: Alfred Perlstein .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/lib/librpcsec_gss/rpc_gss_oid_to_mech.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_oid_to_mech.3 Wed May 19 08:52:59 2010 (r208290) +++ head/lib/librpcsec_gss/rpc_gss_oid_to_mech.3 Wed May 19 08:57:53 2010 (r208291) @@ -1,6 +1,6 @@ .\" Copyright (c) 2008 Isilon Inc http://www.isilon.com/ .\" Authors: Doug Rabson -.\" Developed with Red Inc: Alfred Perlstein +.\" Developed with Red Inc: Alfred Perlstein .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/lib/librpcsec_gss/rpc_gss_qop_to_num.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_qop_to_num.3 Wed May 19 08:52:59 2010 (r208290) +++ head/lib/librpcsec_gss/rpc_gss_qop_to_num.3 Wed May 19 08:57:53 2010 (r208291) @@ -1,6 +1,6 @@ .\" Copyright (c) 2008 Isilon Inc http://www.isilon.com/ .\" Authors: Doug Rabson -.\" Developed with Red Inc: Alfred Perlstein +.\" Developed with Red Inc: Alfred Perlstein .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/lib/librpcsec_gss/rpc_gss_seccreate.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_seccreate.3 Wed May 19 08:52:59 2010 (r208290) +++ head/lib/librpcsec_gss/rpc_gss_seccreate.3 Wed May 19 08:57:53 2010 (r208291) @@ -1,6 +1,6 @@ .\" Copyright (c) 2008 Isilon Inc http://www.isilon.com/ .\" Authors: Doug Rabson -.\" Developed with Red Inc: Alfred Perlstein +.\" Developed with Red Inc: Alfred Perlstein .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/lib/librpcsec_gss/rpc_gss_set_callback.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_set_callback.3 Wed May 19 08:52:59 2010 (r208290) +++ head/lib/librpcsec_gss/rpc_gss_set_callback.3 Wed May 19 08:57:53 2010 (r208291) @@ -1,6 +1,6 @@ .\" Copyright (c) 2008 Isilon Inc http://www.isilon.com/ .\" Authors: Doug Rabson -.\" Developed with Red Inc: Alfred Perlstein +.\" Developed with Red Inc: Alfred Perlstein .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/lib/librpcsec_gss/rpc_gss_set_defaults.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_set_defaults.3 Wed May 19 08:52:59 2010 (r208290) +++ head/lib/librpcsec_gss/rpc_gss_set_defaults.3 Wed May 19 08:57:53 2010 (r208291) @@ -1,6 +1,6 @@ .\" Copyright (c) 2008 Isilon Inc http://www.isilon.com/ .\" Authors: Doug Rabson -.\" Developed with Red Inc: Alfred Perlstein +.\" Developed with Red Inc: Alfred Perlstein .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/lib/librpcsec_gss/rpc_gss_set_svc_name.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_set_svc_name.3 Wed May 19 08:52:59 2010 (r208290) +++ head/lib/librpcsec_gss/rpc_gss_set_svc_name.3 Wed May 19 08:57:53 2010 (r208291) @@ -1,6 +1,6 @@ .\" Copyright (c) 2008 Isilon Inc http://www.isilon.com/ .\" Authors: Doug Rabson -.\" Developed with Red Inc: Alfred Perlstein +.\" Developed with Red Inc: Alfred Perlstein .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/lib/librpcsec_gss/rpc_gss_svc_max_data_length.3 ============================================================================== --- head/lib/librpcsec_gss/rpc_gss_svc_max_data_length.3 Wed May 19 08:52:59 2010 (r208290) +++ head/lib/librpcsec_gss/rpc_gss_svc_max_data_length.3 Wed May 19 08:57:53 2010 (r208291) @@ -1,6 +1,6 @@ .\" Copyright (c) 2008 Isilon Inc http://www.isilon.com/ .\" Authors: Doug Rabson -.\" Developed with Red Inc: Alfred Perlstein +.\" Developed with Red Inc: Alfred Perlstein .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/lib/librpcsec_gss/rpcsec_gss.3 ============================================================================== --- head/lib/librpcsec_gss/rpcsec_gss.3 Wed May 19 08:52:59 2010 (r208290) +++ head/lib/librpcsec_gss/rpcsec_gss.3 Wed May 19 08:57:53 2010 (r208291) @@ -1,6 +1,6 @@ .\" Copyright (c) 2008 Isilon Inc http://www.isilon.com/ .\" Authors: Doug Rabson -.\" Developed with Red Inc: Alfred Perlstein +.\" Developed with Red Inc: Alfred Perlstein .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/sbin/mount_hpfs/mount_hpfs.8 ============================================================================== --- head/sbin/mount_hpfs/mount_hpfs.8 Wed May 19 08:52:59 2010 (r208290) +++ head/sbin/mount_hpfs/mount_hpfs.8 Wed May 19 08:57:53 2010 (r208291) @@ -1,6 +1,6 @@ .\" .\" Copyright (c) 1993,1994 Christopher G. Demetriou -.\" Copyright (c) 1999 Semen Ustimenko (semenu@FreeBSD.org) +.\" Copyright (c) 1999 Semen Ustimenko .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without Modified: head/share/man/man4/ksyms.4 ============================================================================== --- head/share/man/man4/ksyms.4 Wed May 19 08:52:59 2010 (r208290) +++ head/share/man/man4/ksyms.4 Wed May 19 08:57:53 2010 (r208291) @@ -1,4 +1,4 @@ -.\" Copyright (c) 2008-2009 Stacey Son +.\" Copyright (c) 2008-2009 Stacey Son .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -135,7 +135,7 @@ The .Nm driver was written by .An Stacey Son -.Aq sson@freebsd.org . +.Aq sson@FreeBSD.org . .Sh BUGS Because files can be dynamically linked into the kernel at any time the symbol information can vary. When you open the Modified: head/share/man/man4/malo.4 ============================================================================== --- head/share/man/man4/malo.4 Wed May 19 08:52:59 2010 (r208290) +++ head/share/man/man4/malo.4 Wed May 19 08:57:53 2010 (r208291) @@ -1,5 +1,5 @@ .\"- -.\" Copyright (c) 2008 Weongyo Jeong +.\" Copyright (c) 2008 Weongyo Jeong .\" All rights reserved. .\"" .\" Redistribution and use in source and binary forms, with or without Modified: head/share/man/man4/man4.powerpc/bm.4 ============================================================================== --- head/share/man/man4/man4.powerpc/bm.4 Wed May 19 08:52:59 2010 (r208290) +++ head/share/man/man4/man4.powerpc/bm.4 Wed May 19 08:57:53 2010 (r208291) @@ -83,7 +83,7 @@ The .Nm driver was written by .An Nathan Whitehorn -.Aq nwhitehorn@freebsd.org +.Aq nwhitehorn@FreeBSD.org based on work by .An Peter Grehan -.Aq grehan@freebsd.org . +.Aq grehan@FreeBSD.org . Modified: head/share/man/man4/md.4 ============================================================================== --- head/share/man/man4/md.4 Wed May 19 08:52:59 2010 (r208290) +++ head/share/man/man4/md.4 Wed May 19 08:57:53 2010 (r208291) @@ -1,6 +1,6 @@ .\" ---------------------------------------------------------------------------- .\" "THE BEER-WARE LICENSE" (Revision 42): -.\" wrote this file. As long as you retain this notice you +.\" wrote this file. As long as you retain this notice you .\" can do whatever you want with this stuff. If we meet some day, and you think .\" this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp .\" ---------------------------------------------------------------------------- Modified: head/share/man/man4/ng_ccatm.4 ============================================================================== --- head/share/man/man4/ng_ccatm.4 Wed May 19 08:52:59 2010 (r208290) +++ head/share/man/man4/ng_ccatm.4 Wed May 19 08:57:53 2010 (r208291) @@ -6,7 +6,7 @@ .\" Hartmut Brandt. .\" All rights reserved. .\" -.\" Author: Harti Brandt +.\" Author: Harti Brandt .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/share/man/man4/smp.4 ============================================================================== --- head/share/man/man4/smp.4 Wed May 19 08:52:59 2010 (r208290) +++ head/share/man/man4/smp.4 Wed May 19 08:57:53 2010 (r208291) @@ -1,5 +1,5 @@ .\" Copyright (c) 1997 -.\" Steve Passe . All rights reserved. +.\" Steve Passe . All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/share/man/man4/snd_emu10kx.4 ============================================================================== --- head/share/man/man4/snd_emu10kx.4 Wed May 19 08:52:59 2010 (r208290) +++ head/share/man/man4/snd_emu10kx.4 Wed May 19 08:57:53 2010 (r208291) @@ -276,11 +276,11 @@ device driver first appeared in The PCM part of the driver is based on the .Xr snd_emu10k1 4 SB Live!\& driver by -.An "Cameron Grant" Aq cg@freebsd.org . +.An Cameron Grant Aq cg@FreeBSD.org . The MIDI interface is based on the .Xr snd_emu10k1 4 MIDI interface code by -.An "Mathew Kanner" Aq matk@freebsd.org . +.An Mathew Kanner Aq matk@FreeBSD.org . The .Nm device driver and this manual page were written by Modified: head/share/man/man4/tx.4 ============================================================================== --- head/share/man/man4/tx.4 Wed May 19 08:52:59 2010 (r208290) +++ head/share/man/man4/tx.4 Wed May 19 08:57:53 2010 (r208291) @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 1998-2001 Semen Ustimenko (semenu@FreeBSD.org) +.\" Copyright (c) 1998-2001 Semen Ustimenko .\" .\" All rights reserved. .\" Modified: head/share/man/man4/u3g.4 ============================================================================== --- head/share/man/man4/u3g.4 Wed May 19 08:52:59 2010 (r208290) +++ head/share/man/man4/u3g.4 Wed May 19 08:57:53 2010 (r208291) @@ -121,5 +121,5 @@ The driver was written by .An Andrea Guzzo Aq aguzzo@anywi.com and -.An Nick Hibma Aq n_hibma@freebsd.org . +.An Nick Hibma Aq n_hibma@FreeBSD.org . Hardware for testing was provided by AnyWi Technologies, Leiden, NL. Modified: head/share/man/man4/uath.4 ============================================================================== --- head/share/man/man4/uath.4 Wed May 19 08:52:59 2010 (r208290) +++ head/share/man/man4/uath.4 Wed May 19 08:57:53 2010 (r208291) @@ -177,9 +177,9 @@ driver first appeared in The .Nm driver was written by -.An Weongyo Jeong Aq weongyo@freebsd.org +.An Weongyo Jeong Aq weongyo@FreeBSD.org and -.An Sam Leffler Aq sam@freebsd.org . +.An Sam Leffler Aq sam@FreeBSD.org . It is distantly related to a driver written by .An Damien Bergamini Aq damien@openbsd.org . .Sh CAVEATS Modified: head/share/man/man4/usb.4 ============================================================================== --- head/share/man/man4/usb.4 Wed May 19 08:52:59 2010 (r208290) +++ head/share/man/man4/usb.4 Wed May 19 08:57:53 2010 (r208291) @@ -176,4 +176,4 @@ module has been inspired by the NetBSD U Lennart Augustsson. The .Nm module was written by -.An Hans Petter Selasky Aq hselasky@freebsd.org . +.An Hans Petter Selasky Aq hselasky@FreeBSD.org . Modified: head/share/man/man4/usb2_template.4 ============================================================================== --- head/share/man/man4/usb2_template.4 Wed May 19 08:52:59 2010 (r208290) +++ head/share/man/man4/usb2_template.4 Wed May 19 08:57:53 2010 (r208291) @@ -81,4 +81,4 @@ module complies with the USB 2.0 standar The .Nm module was written by -.An Hans Petter Selasky Aq hselasky@freebsd.org . +.An Hans Petter Selasky Aq hselasky@FreeBSD.org . Modified: head/share/man/man9/cr_seeothergids.9 ============================================================================== --- head/share/man/man9/cr_seeothergids.9 Wed May 19 08:52:59 2010 (r208290) +++ head/share/man/man9/cr_seeothergids.9 Wed May 19 08:57:53 2010 (r208291) @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 2003 Joseph Koshy +.\" Copyright (c) 2003 Joseph Koshy .\" .\" All rights reserved. .\" Modified: head/share/man/man9/cr_seeotheruids.9 ============================================================================== --- head/share/man/man9/cr_seeotheruids.9 Wed May 19 08:52:59 2010 (r208290) +++ head/share/man/man9/cr_seeotheruids.9 Wed May 19 08:57:53 2010 (r208291) @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 2003 Joseph Koshy +.\" Copyright (c) 2003 Joseph Koshy .\" .\" All rights reserved. .\" Modified: head/share/man/man9/p_candebug.9 ============================================================================== --- head/share/man/man9/p_candebug.9 Wed May 19 08:52:59 2010 (r208290) +++ head/share/man/man9/p_candebug.9 Wed May 19 08:57:53 2010 (r208291) @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 2003 Joseph Koshy +.\" Copyright (c) 2003 Joseph Koshy .\" .\" All rights reserved. .\" Modified: head/share/man/man9/p_cansee.9 ============================================================================== --- head/share/man/man9/p_cansee.9 Wed May 19 08:52:59 2010 (r208290) +++ head/share/man/man9/p_cansee.9 Wed May 19 08:57:53 2010 (r208291) @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 2003 Joseph Koshy +.\" Copyright (c) 2003 Joseph Koshy .\" Copyright (c) 2006 Ceri Davies .\" .\" All rights reserved. Modified: head/share/man/man9/prison_check.9 ============================================================================== --- head/share/man/man9/prison_check.9 Wed May 19 08:52:59 2010 (r208290) +++ head/share/man/man9/prison_check.9 Wed May 19 08:57:53 2010 (r208291) @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 2003 Joseph Koshy +.\" Copyright (c) 2003 Joseph Koshy .\" .\" All rights reserved. .\" Modified: head/share/man/man9/usbdi.9 ============================================================================== --- head/share/man/man9/usbdi.9 Wed May 19 08:52:59 2010 (r208290) +++ head/share/man/man9/usbdi.9 Wed May 19 08:57:53 2010 (r208291) @@ -634,4 +634,4 @@ module has been inspired by the NetBSD U Lennart Augustsson. The .Nm usb module was written by -.An Hans Petter Selasky Aq hselasky@freebsd.org . +.An Hans Petter Selasky Aq hselasky@FreeBSD.org . Modified: head/share/man/man9/watchdog.9 ============================================================================== --- head/share/man/man9/watchdog.9 Wed May 19 08:52:59 2010 (r208290) +++ head/share/man/man9/watchdog.9 Wed May 19 08:57:53 2010 (r208291) @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 2004 Poul-Henning Kamp .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without Modified: head/tools/tools/ether_reflect/ether_reflect.1 ============================================================================== --- head/tools/tools/ether_reflect/ether_reflect.1 Wed May 19 08:52:59 2010 (r208290) +++ head/tools/tools/ether_reflect/ether_reflect.1 Wed May 19 08:57:53 2010 (r208291) @@ -105,4 +105,4 @@ This manual page was written by .An George V. Neville-Neil Aq gnn@FreeBSD.org . .Sh BUGS -Should be reported to the author or to net@freebsd.org. +Should be reported to the author or to net@FreeBSD.org. Modified: head/usr.bin/csup/cpasswd.1 ============================================================================== --- head/usr.bin/csup/cpasswd.1 Wed May 19 08:52:59 2010 (r208290) +++ head/usr.bin/csup/cpasswd.1 Wed May 19 08:57:53 2010 (r208291) @@ -50,7 +50,7 @@ and a server name. is the name the client uses to gain access to the server. By convention, e-mail addresses are used for all client names, e.g., -.Ql BillyJoe@FreeBSD.ORG . +.Ql BillyJoe@FreeBSD.org . Client names are case-insensitive. .Pp .Ar ServerName Modified: head/usr.bin/csup/csup.1 ============================================================================== --- head/usr.bin/csup/csup.1 Wed May 19 08:52:59 2010 (r208290) +++ head/usr.bin/csup/csup.1 Wed May 19 08:57:53 2010 (r208291) @@ -845,7 +845,7 @@ case-insensitive. .Ar ClientName is the name the client uses to gain access to the server. By convention, e-mail addresses are used for all client names, e.g., -.Ql BillyJoe@FreeBSD.ORG . +.Ql BillyJoe@FreeBSD.org . Client names are case-insensitive. .Pp .Ar Password Modified: head/usr.bin/mkuzip/mkuzip.8 ============================================================================== --- head/usr.bin/mkuzip/mkuzip.8 Wed May 19 08:52:59 2010 (r208290) +++ head/usr.bin/mkuzip/mkuzip.8 Wed May 19 08:57:53 2010 (r208291) @@ -1,6 +1,6 @@ .\" ---------------------------------------------------------------------------- .\" "THE BEER-WARE LICENSE" (Revision 42): -.\" wrote this file. As long as you retain this notice you +.\" wrote this file. As long as you retain this notice you .\" can do whatever you want with this stuff. If we meet some day, and you think .\" this stuff is worth it, you can buy me a beer in return. Maxim Sobolev .\" ---------------------------------------------------------------------------- Modified: head/usr.sbin/bsnmpd/modules/snmp_hostres/snmp_hostres.3 ============================================================================== --- head/usr.sbin/bsnmpd/modules/snmp_hostres/snmp_hostres.3 Wed May 19 08:52:59 2010 (r208290) +++ head/usr.sbin/bsnmpd/modules/snmp_hostres/snmp_hostres.3 Wed May 19 08:57:53 2010 (r208291) @@ -3,7 +3,7 @@ .\" The FreeBSD Project. .\" All rights reserved. .\" -.\" Author: Harti Brandt +.\" Author: Harti Brandt .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/usr.sbin/bsnmpd/modules/snmp_netgraph/snmp_netgraph.3 ============================================================================== --- head/usr.sbin/bsnmpd/modules/snmp_netgraph/snmp_netgraph.3 Wed May 19 08:52:59 2010 (r208290) +++ head/usr.sbin/bsnmpd/modules/snmp_netgraph/snmp_netgraph.3 Wed May 19 08:57:53 2010 (r208291) @@ -3,7 +3,7 @@ .\" Fraunhofer Institute for Open Communication Systems (FhG Fokus). .\" All rights reserved. .\" -.\" Author: Harti Brandt +.\" Author: Harti Brandt .\" .\" Redistribution of this software and documentation and use in source and .\" binary forms, with or without modification, are permitted provided that @@ -433,4 +433,4 @@ This is the MIB that is implemented by t .Xr gensnmptree 1 , .Xr snmpmod 3 .Sh AUTHORS -.An Hartmut Brandt Aq harti@freebsd.org +.An Hartmut Brandt Aq harti@FreeBSD.org Modified: head/usr.sbin/clear_locks/clear_locks.8 ============================================================================== --- head/usr.sbin/clear_locks/clear_locks.8 Wed May 19 08:52:59 2010 (r208290) +++ head/usr.sbin/clear_locks/clear_locks.8 Wed May 19 08:57:53 2010 (r208291) @@ -1,6 +1,6 @@ .\" Copyright (c) 2008 Isilon Inc http://www.isilon.com/ .\" Authors: Doug Rabson -.\" Developed with Red Inc: Alfred Perlstein +.\" Developed with Red Inc: Alfred Perlstein .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/usr.sbin/gssd/gssd.8 ============================================================================== --- head/usr.sbin/gssd/gssd.8 Wed May 19 08:52:59 2010 (r208290) +++ head/usr.sbin/gssd/gssd.8 Wed May 19 08:57:53 2010 (r208291) @@ -1,6 +1,6 @@ .\" Copyright (c) 2008 Isilon Inc http://www.isilon.com/ .\" Authors: Doug Rabson -.\" Developed with Red Inc: Alfred Perlstein +.\" Developed with Red Inc: Alfred Perlstein .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/usr.sbin/jail/jail.8 ============================================================================== --- head/usr.sbin/jail/jail.8 Wed May 19 08:52:59 2010 (r208290) +++ head/usr.sbin/jail/jail.8 Wed May 19 08:57:53 2010 (r208291) @@ -27,7 +27,7 @@ .\" .\" ---------------------------------------------------------------------------- .\" "THE BEER-WARE LICENSE" (Revision 42): -.\" wrote this file. As long as you retain this notice you +.\" wrote this file. As long as you retain this notice you .\" can do whatever you want with this stuff. If we meet some day, and you think .\" this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp .\" ---------------------------------------------------------------------------- Modified: head/usr.sbin/mixer/mixer.8 ============================================================================== --- head/usr.sbin/mixer/mixer.8 Wed May 19 08:52:59 2010 (r208290) +++ head/usr.sbin/mixer/mixer.8 Wed May 19 08:57:53 2010 (r208291) @@ -1,5 +1,5 @@ .\" Copyright (c) 1997 -.\" Mike Pritchard . All rights reserved. +.\" Mike Pritchard . All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/usr.sbin/mptable/mptable.1 ============================================================================== --- head/usr.sbin/mptable/mptable.1 Wed May 19 08:52:59 2010 (r208290) +++ head/usr.sbin/mptable/mptable.1 Wed May 19 08:57:53 2010 (r208291) @@ -1,5 +1,5 @@ .\" Copyright (c) 1996 -.\" Steve Passe . All rights reserved. +.\" Steve Passe . All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions Modified: head/usr.sbin/nscd/nscd.8 ============================================================================== --- head/usr.sbin/nscd/nscd.8 Wed May 19 08:52:59 2010 (r208290) +++ head/usr.sbin/nscd/nscd.8 Wed May 19 08:57:53 2010 (r208291) @@ -159,7 +159,7 @@ The default configuration file. .Xr nscd.conf 5 , .Xr nsswitch.conf 5 .Sh AUTHORS -.An Michael Bushkov Aq bushman@freebsd.org +.An Michael Bushkov Aq bushman@FreeBSD.org .Sh BUGS Please send bug reports and suggestions to -.Aq bushman@freebsd.org . +.Aq bushman@FreeBSD.org . Modified: head/usr.sbin/nscd/nscd.conf.5 ============================================================================== --- head/usr.sbin/nscd/nscd.conf.5 Wed May 19 08:52:59 2010 (r208290) +++ head/usr.sbin/nscd/nscd.conf.5 Wed May 19 08:57:53 2010 (r208291) @@ -142,7 +142,7 @@ symbol at the beginning of the line for .Xr nscd 8 .Sh AUTHORS .An Michael Bushkov -.Aq bushman@freebsd.org +.Aq bushman@FreeBSD.org .Sh BUGS Please send bug reports and suggestions to -.Aq bushman@freebsd.org . +.Aq bushman@FreeBSD.org . Modified: head/usr.sbin/snapinfo/snapinfo.8 ============================================================================== --- head/usr.sbin/snapinfo/snapinfo.8 Wed May 19 08:52:59 2010 (r208290) +++ head/usr.sbin/snapinfo/snapinfo.8 Wed May 19 08:57:53 2010 (r208291) @@ -1,5 +1,5 @@ .\" -.\" Copyright (c) 2005 Mark Santcroos +.\" Copyright (c) 2005 Mark Santcroos .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without From owner-svn-src-all@FreeBSD.ORG Wed May 19 09:30:42 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4C24B1065676; Wed, 19 May 2010 09:30:42 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3A56C8FC08; Wed, 19 May 2010 09:30:42 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4J9UgMI032366; Wed, 19 May 2010 09:30:42 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4J9Ug33032365; Wed, 19 May 2010 09:30:42 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201005190930.o4J9Ug33032365@svn.freebsd.org> From: Konstantin Belousov Date: Wed, 19 May 2010 09:30:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208292 - stable/8/sys/amd64/amd64 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 09:30:42 -0000 Author: kib Date: Wed May 19 09:30:41 2010 New Revision: 208292 URL: http://svn.freebsd.org/changeset/base/208292 Log: MFC r207957: Remove unneeded overrides of the segment registers. Modified: stable/8/sys/amd64/amd64/trap.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/amd64/amd64/trap.c ============================================================================== --- stable/8/sys/amd64/amd64/trap.c Wed May 19 08:57:53 2010 (r208291) +++ stable/8/sys/amd64/amd64/trap.c Wed May 19 09:30:41 2010 (r208292) @@ -485,22 +485,18 @@ trap(struct trapframe *frame) } if (frame->tf_rip == (long)ld_ds) { frame->tf_rip = (long)ds_load_fault; - frame->tf_ds = _udatasel; goto out; } if (frame->tf_rip == (long)ld_es) { frame->tf_rip = (long)es_load_fault; - frame->tf_es = _udatasel; goto out; } if (frame->tf_rip == (long)ld_fs) { frame->tf_rip = (long)fs_load_fault; - frame->tf_fs = _ufssel; goto out; } if (frame->tf_rip == (long)ld_gs) { frame->tf_rip = (long)gs_load_fault; - frame->tf_gs = _ugssel; goto out; } if (frame->tf_rip == (long)ld_gsbase) { From owner-svn-src-all@FreeBSD.ORG Wed May 19 09:32:11 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 93A1C106564A; Wed, 19 May 2010 09:32:11 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6991C8FC18; Wed, 19 May 2010 09:32:11 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4J9WBKo032722; Wed, 19 May 2010 09:32:11 GMT (envelope-from avg@svn.freebsd.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4J9WBx0032720; Wed, 19 May 2010 09:32:11 GMT (envelope-from avg@svn.freebsd.org) Message-Id: <201005190932.o4J9WBx0032720@svn.freebsd.org> From: Andriy Gapon Date: Wed, 19 May 2010 09:32:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208293 - head/sys/ufs/ffs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 09:32:11 -0000 Author: avg Date: Wed May 19 09:32:11 2010 New Revision: 208293 URL: http://svn.freebsd.org/changeset/base/208293 Log: ffs_mount: accept and drop userland-only options that can be passed from loader(8) In r193192 loader(8) has grown an ability to pass root mount options from fstab via vfs.root.mountfrom.options. Unfortunately, some options that can be present in fstab are for userland only and lead to root mounting failure when seen by kernel. Rather than teaching loader about FFS-specific options that should be filtered out, ffs_mount recognizes those options as valid, but ignores and deletes[1] them. [1] is suggested by jh. PR: kern/141050 Reported by: many Reviewed by: jh, bde MFC after: 4 days Modified: head/sys/ufs/ffs/ffs_vfsops.c Modified: head/sys/ufs/ffs/ffs_vfsops.c ============================================================================== --- head/sys/ufs/ffs/ffs_vfsops.c Wed May 19 09:30:41 2010 (r208292) +++ head/sys/ufs/ffs/ffs_vfsops.c Wed May 19 09:32:11 2010 (r208293) @@ -124,10 +124,16 @@ static struct buf_ops ffs_ops = { #endif }; +/* + * Note that userquota and groupquota options are not currently used + * by UFS/FFS code and generally mount(8) does not pass those options + * from userland, but they can be passed by loader(8) via + * vfs.root.mountfrom.options. + */ static const char *ffs_opts[] = { "acls", "async", "noatime", "noclusterr", - "noclusterw", "noexec", "export", "force", "from", "multilabel", - "nfsv4acls", "snapshot", "nosuid", "suiddir", "nosymfollow", "sync", - "union", NULL }; + "noclusterw", "noexec", "export", "force", "from", "groupquota", + "multilabel", "nfsv4acls", "snapshot", "nosuid", "suiddir", "nosymfollow", + "sync", "union", "userquota", NULL }; static int ffs_mount(struct mount *mp) @@ -157,6 +163,9 @@ ffs_mount(struct mount *mp) UMA_ALIGN_PTR, 0); } + vfs_deleteopt(mp->mnt_optnew, "groupquota"); + vfs_deleteopt(mp->mnt_optnew, "userquota"); + fspec = vfs_getopts(mp->mnt_optnew, "from", &error); if (error) return (error); From owner-svn-src-all@FreeBSD.ORG Wed May 19 09:32:59 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8A7E7106566C; Wed, 19 May 2010 09:32:59 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5FB818FC14; Wed, 19 May 2010 09:32:59 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4J9Wxkf032954; Wed, 19 May 2010 09:32:59 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4J9WxCg032951; Wed, 19 May 2010 09:32:59 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201005190932.o4J9WxCg032951@svn.freebsd.org> From: Konstantin Belousov Date: Wed, 19 May 2010 09:32:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208294 - stable/8/sys/amd64/amd64 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 09:32:59 -0000 Author: kib Date: Wed May 19 09:32:59 2010 New Revision: 208294 URL: http://svn.freebsd.org/changeset/base/208294 Log: MFC r207958: Route all returns from the interrupts and faults through the doreti_iret labeled iretq instruction. MFC r208026: Do not use .extern. Modified: stable/8/sys/amd64/amd64/apic_vector.S stable/8/sys/amd64/amd64/exception.S Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/amd64/amd64/apic_vector.S ============================================================================== --- stable/8/sys/amd64/amd64/apic_vector.S Wed May 19 09:32:11 2010 (r208293) +++ stable/8/sys/amd64/amd64/apic_vector.S Wed May 19 09:32:59 2010 (r208294) @@ -81,7 +81,7 @@ IDTVEC(spuriousint) /* No EOI cycle used here */ - iretq + jmp doreti_iret ISR_VEC(1, apic_isr1) ISR_VEC(2, apic_isr2) @@ -135,7 +135,7 @@ IDTVEC(invltlb) incl smp_tlb_wait popq %rax - iretq + jmp doreti_iret /* * Single page TLB shootdown @@ -155,7 +155,7 @@ IDTVEC(invlpg) incl smp_tlb_wait popq %rax - iretq + jmp doreti_iret /* * Page range TLB shootdown. @@ -181,7 +181,7 @@ IDTVEC(invlrng) popq %rdx popq %rax - iretq + jmp doreti_iret /* * Invalidate cache. @@ -200,7 +200,7 @@ IDTVEC(invlcache) incl smp_tlb_wait popq %rax - iretq + jmp doreti_iret /* * Handler for IPIs sent via the per-cpu IPI bitmap. @@ -247,7 +247,7 @@ IDTVEC(cpususpend) call cpususpend_handler POP_FRAME - iretq + jmp doreti_iret /* * Executed by a CPU when it receives a RENDEZVOUS IPI from another CPU. Modified: stable/8/sys/amd64/amd64/exception.S ============================================================================== --- stable/8/sys/amd64/amd64/exception.S Wed May 19 09:32:11 2010 (r208293) +++ stable/8/sys/amd64/amd64/exception.S Wed May 19 09:32:59 2010 (r208294) @@ -553,7 +553,7 @@ nmi_restoreregs: movq TF_R14(%rsp),%r14 movq TF_R15(%rsp),%r15 addq $TF_RIP,%rsp - iretq + jmp doreti_iret ENTRY(fork_trampoline) movq %r12,%rdi /* function */ From owner-svn-src-all@FreeBSD.ORG Wed May 19 10:15:37 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B63441065670; Wed, 19 May 2010 10:15:37 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8B5F38FC15; Wed, 19 May 2010 10:15:37 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4JAFbuX042350; Wed, 19 May 2010 10:15:37 GMT (envelope-from avg@svn.freebsd.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4JAFb8s042348; Wed, 19 May 2010 10:15:37 GMT (envelope-from avg@svn.freebsd.org) Message-Id: <201005191015.o4JAFb8s042348@svn.freebsd.org> From: Andriy Gapon Date: Wed, 19 May 2010 10:15:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208295 - stable/8/sys/kern X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 10:15:37 -0000 Author: avg Date: Wed May 19 10:15:37 2010 New Revision: 208295 URL: http://svn.freebsd.org/changeset/base/208295 Log: MFC r207359,207362: kern_ntptime: abstract time error check into a function Modified: stable/8/sys/kern/kern_ntptime.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/kern/kern_ntptime.c ============================================================================== --- stable/8/sys/kern/kern_ntptime.c Wed May 19 09:32:59 2010 (r208294) +++ stable/8/sys/kern/kern_ntptime.c Wed May 19 10:15:37 2010 (r208295) @@ -198,22 +198,11 @@ static long pps_errcnt; /* calibration static void ntp_init(void); static void hardupdate(long offset); static void ntp_gettime1(struct ntptimeval *ntvp); +static int ntp_is_time_error(void); -static void -ntp_gettime1(struct ntptimeval *ntvp) +static int +ntp_is_time_error(void) { - struct timespec atv; /* nanosecond time */ - - GIANT_REQUIRED; - - nanotime(&atv); - ntvp->time.tv_sec = atv.tv_sec; - ntvp->time.tv_nsec = atv.tv_nsec; - ntvp->maxerror = time_maxerror; - ntvp->esterror = time_esterror; - ntvp->tai = time_tai; - ntvp->time_state = time_state; - /* * Status word error decode. If any of these conditions occur, * an error is returned, instead of the status word. Most @@ -243,6 +232,27 @@ ntp_gettime1(struct ntptimeval *ntvp) */ (time_status & STA_PPSFREQ && time_status & (STA_PPSWANDER | STA_PPSERROR))) + return (1); + + return (0); +} + +static void +ntp_gettime1(struct ntptimeval *ntvp) +{ + struct timespec atv; /* nanosecond time */ + + GIANT_REQUIRED; + + nanotime(&atv); + ntvp->time.tv_sec = atv.tv_sec; + ntvp->time.tv_nsec = atv.tv_nsec; + ntvp->maxerror = time_maxerror; + ntvp->esterror = time_esterror; + ntvp->tai = time_tai; + ntvp->time_state = time_state; + + if (ntp_is_time_error()) ntvp->time_state = TIME_ERROR; } @@ -442,21 +452,11 @@ ntp_adjtime(struct thread *td, struct nt if (error) goto done2; - /* - * Status word error decode. See comments in - * ntp_gettime() routine. - */ - if ((time_status & (STA_UNSYNC | STA_CLOCKERR)) || - (time_status & (STA_PPSFREQ | STA_PPSTIME) && - !(time_status & STA_PPSSIGNAL)) || - (time_status & STA_PPSTIME && - time_status & STA_PPSJITTER) || - (time_status & STA_PPSFREQ && - time_status & (STA_PPSWANDER | STA_PPSERROR))) { + if (ntp_is_time_error()) td->td_retval[0] = TIME_ERROR; - } else { + else td->td_retval[0] = time_state; - } + done2: mtx_unlock(&Giant); return (error); From owner-svn-src-all@FreeBSD.ORG Wed May 19 10:29:37 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BB4501065670; Wed, 19 May 2010 10:29:37 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id AA2478FC27; Wed, 19 May 2010 10:29:37 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4JATb84046556; Wed, 19 May 2010 10:29:37 GMT (envelope-from avg@svn.freebsd.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4JATbqO046554; Wed, 19 May 2010 10:29:37 GMT (envelope-from avg@svn.freebsd.org) Message-Id: <201005191029.o4JATbqO046554@svn.freebsd.org> From: Andriy Gapon Date: Wed, 19 May 2010 10:29:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208296 - stable/7/sys/kern X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 10:29:37 -0000 Author: avg Date: Wed May 19 10:29:37 2010 New Revision: 208296 URL: http://svn.freebsd.org/changeset/base/208296 Log: MFC r207359,207362: kern_ntptime: abstract time error check into a function Modified: stable/7/sys/kern/kern_ntptime.c Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/sys/kern/kern_ntptime.c ============================================================================== --- stable/7/sys/kern/kern_ntptime.c Wed May 19 10:15:37 2010 (r208295) +++ stable/7/sys/kern/kern_ntptime.c Wed May 19 10:29:37 2010 (r208296) @@ -198,22 +198,11 @@ static long pps_errcnt; /* calibration static void ntp_init(void); static void hardupdate(long offset); static void ntp_gettime1(struct ntptimeval *ntvp); +static int ntp_is_time_error(void); -static void -ntp_gettime1(struct ntptimeval *ntvp) +static int +ntp_is_time_error(void) { - struct timespec atv; /* nanosecond time */ - - GIANT_REQUIRED; - - nanotime(&atv); - ntvp->time.tv_sec = atv.tv_sec; - ntvp->time.tv_nsec = atv.tv_nsec; - ntvp->maxerror = time_maxerror; - ntvp->esterror = time_esterror; - ntvp->tai = time_tai; - ntvp->time_state = time_state; - /* * Status word error decode. If any of these conditions occur, * an error is returned, instead of the status word. Most @@ -243,6 +232,27 @@ ntp_gettime1(struct ntptimeval *ntvp) */ (time_status & STA_PPSFREQ && time_status & (STA_PPSWANDER | STA_PPSERROR))) + return (1); + + return (0); +} + +static void +ntp_gettime1(struct ntptimeval *ntvp) +{ + struct timespec atv; /* nanosecond time */ + + GIANT_REQUIRED; + + nanotime(&atv); + ntvp->time.tv_sec = atv.tv_sec; + ntvp->time.tv_nsec = atv.tv_nsec; + ntvp->maxerror = time_maxerror; + ntvp->esterror = time_esterror; + ntvp->tai = time_tai; + ntvp->time_state = time_state; + + if (ntp_is_time_error()) ntvp->time_state = TIME_ERROR; } @@ -442,21 +452,11 @@ ntp_adjtime(struct thread *td, struct nt if (error) goto done2; - /* - * Status word error decode. See comments in - * ntp_gettime() routine. - */ - if ((time_status & (STA_UNSYNC | STA_CLOCKERR)) || - (time_status & (STA_PPSFREQ | STA_PPSTIME) && - !(time_status & STA_PPSSIGNAL)) || - (time_status & STA_PPSTIME && - time_status & STA_PPSJITTER) || - (time_status & STA_PPSFREQ && - time_status & (STA_PPSWANDER | STA_PPSERROR))) { + if (ntp_is_time_error()) td->td_retval[0] = TIME_ERROR; - } else { + else td->td_retval[0] = time_state; - } + done2: mtx_unlock(&Giant); return (error); From owner-svn-src-all@FreeBSD.ORG Wed May 19 10:34:17 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7E82C106566B; Wed, 19 May 2010 10:34:17 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 53CDD8FC12; Wed, 19 May 2010 10:34:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4JAYFfO047699; Wed, 19 May 2010 10:34:15 GMT (envelope-from avg@svn.freebsd.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4JAYFT0047697; Wed, 19 May 2010 10:34:15 GMT (envelope-from avg@svn.freebsd.org) Message-Id: <201005191034.o4JAYFT0047697@svn.freebsd.org> From: Andriy Gapon Date: Wed, 19 May 2010 10:34:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208297 - stable/8/sys/kern X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 10:34:17 -0000 Author: avg Date: Wed May 19 10:34:15 2010 New Revision: 208297 URL: http://svn.freebsd.org/changeset/base/208297 Log: MFC r207360: periodically save system time to hardware time-of-day clock Modified: stable/8/sys/kern/kern_ntptime.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/kern/kern_ntptime.c ============================================================================== --- stable/8/sys/kern/kern_ntptime.c Wed May 19 10:29:37 2010 (r208296) +++ stable/8/sys/kern/kern_ntptime.c Wed May 19 10:34:15 2010 (r208297) @@ -38,6 +38,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -972,3 +973,67 @@ kern_adjtime(struct thread *td, struct t return (0); } +static struct callout resettodr_callout; +static int resettodr_period = 1800; + +static void +periodic_resettodr(void *arg __unused) +{ + + if (!ntp_is_time_error()) { + mtx_lock(&Giant); + resettodr(); + mtx_unlock(&Giant); + } + if (resettodr_period > 0) + callout_schedule(&resettodr_callout, resettodr_period * hz); +} + +static void +shutdown_resettodr(void *arg __unused, int howto __unused) +{ + + callout_drain(&resettodr_callout); + if (resettodr_period > 0 && !ntp_is_time_error()) { + mtx_lock(&Giant); + resettodr(); + mtx_unlock(&Giant); + } +} + +static int +sysctl_resettodr_period(SYSCTL_HANDLER_ARGS) +{ + int error; + + error = sysctl_handle_int(oidp, oidp->oid_arg1, oidp->oid_arg2, req); + if (error || !req->newptr) + return (error); + if (resettodr_period == 0) + callout_stop(&resettodr_callout); + else + callout_reset(&resettodr_callout, resettodr_period * hz, + periodic_resettodr, NULL); + return (0); +} + +SYSCTL_PROC(_machdep, OID_AUTO, rtc_save_period, CTLTYPE_INT|CTLFLAG_RW, + &resettodr_period, 1800, sysctl_resettodr_period, "I", + "Save system time to RTC with this period (in seconds)"); +TUNABLE_INT("machdep.rtc_save_period", &resettodr_period); + +static void +start_periodic_resettodr(void *arg __unused) +{ + + EVENTHANDLER_REGISTER(shutdown_pre_sync, shutdown_resettodr, NULL, + SHUTDOWN_PRI_FIRST); + callout_init(&resettodr_callout, 1); + if (resettodr_period == 0) + return; + callout_reset(&resettodr_callout, resettodr_period * hz, + periodic_resettodr, NULL); +} + +SYSINIT(periodic_resettodr, SI_SUB_RUN_SCHEDULER, SI_ORDER_ANY - 1, + start_periodic_resettodr, NULL); From owner-svn-src-all@FreeBSD.ORG Wed May 19 10:35:55 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 986F6106564A; Wed, 19 May 2010 10:35:55 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6E06B8FC08; Wed, 19 May 2010 10:35:55 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4JAZt8U048111; Wed, 19 May 2010 10:35:55 GMT (envelope-from avg@svn.freebsd.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4JAZtoO048109; Wed, 19 May 2010 10:35:55 GMT (envelope-from avg@svn.freebsd.org) Message-Id: <201005191035.o4JAZtoO048109@svn.freebsd.org> From: Andriy Gapon Date: Wed, 19 May 2010 10:35:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208298 - stable/7/sys/kern X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 10:35:55 -0000 Author: avg Date: Wed May 19 10:35:53 2010 New Revision: 208298 URL: http://svn.freebsd.org/changeset/base/208298 Log: MFC r207360: periodically save system time to hardware time-of-day clock Modified: stable/7/sys/kern/kern_ntptime.c Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/sys/kern/kern_ntptime.c ============================================================================== --- stable/7/sys/kern/kern_ntptime.c Wed May 19 10:34:15 2010 (r208297) +++ stable/7/sys/kern/kern_ntptime.c Wed May 19 10:35:53 2010 (r208298) @@ -38,6 +38,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -972,3 +973,67 @@ kern_adjtime(struct thread *td, struct t return (0); } +static struct callout resettodr_callout; +static int resettodr_period = 1800; + +static void +periodic_resettodr(void *arg __unused) +{ + + if (!ntp_is_time_error()) { + mtx_lock(&Giant); + resettodr(); + mtx_unlock(&Giant); + } + if (resettodr_period > 0) + callout_schedule(&resettodr_callout, resettodr_period * hz); +} + +static void +shutdown_resettodr(void *arg __unused, int howto __unused) +{ + + callout_drain(&resettodr_callout); + if (resettodr_period > 0 && !ntp_is_time_error()) { + mtx_lock(&Giant); + resettodr(); + mtx_unlock(&Giant); + } +} + +static int +sysctl_resettodr_period(SYSCTL_HANDLER_ARGS) +{ + int error; + + error = sysctl_handle_int(oidp, oidp->oid_arg1, oidp->oid_arg2, req); + if (error || !req->newptr) + return (error); + if (resettodr_period == 0) + callout_stop(&resettodr_callout); + else + callout_reset(&resettodr_callout, resettodr_period * hz, + periodic_resettodr, NULL); + return (0); +} + +SYSCTL_PROC(_machdep, OID_AUTO, rtc_save_period, CTLTYPE_INT|CTLFLAG_RW, + &resettodr_period, 1800, sysctl_resettodr_period, "I", + "Save system time to RTC with this period (in seconds)"); +TUNABLE_INT("machdep.rtc_save_period", &resettodr_period); + +static void +start_periodic_resettodr(void *arg __unused) +{ + + EVENTHANDLER_REGISTER(shutdown_pre_sync, shutdown_resettodr, NULL, + SHUTDOWN_PRI_FIRST); + callout_init(&resettodr_callout, 1); + if (resettodr_period == 0) + return; + callout_reset(&resettodr_callout, resettodr_period * hz, + periodic_resettodr, NULL); +} + +SYSINIT(periodic_resettodr, SI_SUB_RUN_SCHEDULER, SI_ORDER_ANY - 1, + start_periodic_resettodr, NULL); From owner-svn-src-all@FreeBSD.ORG Wed May 19 14:50:07 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A37D7106566C; Wed, 19 May 2010 14:50:07 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9057F8FC14; Wed, 19 May 2010 14:50:07 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4JEo7Oa004105; Wed, 19 May 2010 14:50:07 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4JEo7mK004095; Wed, 19 May 2010 14:50:07 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201005191450.o4JEo7mK004095@svn.freebsd.org> From: Alexander Motin Date: Wed, 19 May 2010 14:50:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208299 - in stable/8: share/man/man4 sys/arm/mv sys/conf sys/dev/mvs sys/modules sys/modules/mvs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 14:50:07 -0000 Author: mav Date: Wed May 19 14:50:07 2010 New Revision: 208299 URL: http://svn.freebsd.org/changeset/base/208299 Log: MFC r207536, r207696, r208183: Import mvs(4) - Marvell 88SX50XX/88SX60XX/88SX70XX/SoC SATA controllers driver for CAM ATA subsystem. This driver supports same hardware as atamarvell, ataadaptec and atamvsata drivers from ata(4), but provides many additional features, such as NCQ, PMP, etc. Added: stable/8/share/man/man4/mvs.4 - copied unchanged from r207536, head/share/man/man4/mvs.4 stable/8/sys/dev/mvs/ - copied from r207536, head/sys/dev/mvs/ stable/8/sys/modules/mvs/ - copied from r207536, head/sys/modules/mvs/ Modified: stable/8/share/man/man4/Makefile stable/8/sys/arm/mv/files.mv stable/8/sys/conf/NOTES stable/8/sys/conf/files stable/8/sys/conf/kmod.mk stable/8/sys/dev/mvs/mvs.c stable/8/sys/modules/Makefile stable/8/sys/modules/mvs/Makefile Directory Properties: stable/8/share/man/man4/ (props changed) stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/share/man/man4/Makefile ============================================================================== --- stable/8/share/man/man4/Makefile Wed May 19 10:35:53 2010 (r208298) +++ stable/8/share/man/man4/Makefile Wed May 19 14:50:07 2010 (r208299) @@ -218,6 +218,7 @@ MAN= aac.4 \ msk.4 \ mtio.4 \ multicast.4 \ + mvs.4 \ mwl.4 \ mwlfw.4 \ mxge.4 \ Copied: stable/8/share/man/man4/mvs.4 (from r207536, head/share/man/man4/mvs.4) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/share/man/man4/mvs.4 Wed May 19 14:50:07 2010 (r208299, copy of r207536, head/share/man/man4/mvs.4) @@ -0,0 +1,176 @@ +.\" Copyright (c) 2009 Alexander Motin +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. The name of the author may not be used to endorse or promote products +.\" derived from this software without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd April 27, 2010 +.Dt MVS 4 +.Os +.Sh NAME +.Nm mvs +.Nd Marvell Serial ATA Host Controller driver +.Sh SYNOPSIS +To compile this driver into the kernel, +place the following lines in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd "device pci" +.Cd "device scbus" +.Cd "device mvs" +.Ed +.Pp +Alternatively, to load the driver as a +module at boot time, place the following line in +.Xr loader.conf 5 : +.Bd -literal -offset indent +mvs_load="YES" +.Ed +.Pp +The following tunables are settable from the +.Xr loader 8 : +.Bl -ohang +.It Va hint.mvs. Ns Ar X Ns Va .msi +controls Message Signaled Interrupts (MSI) usage by the specified controller. +.It Va hint.mvs. Ns Ar X Ns Va .ccc +controls Command Completion Coalescing (CCC) usage by the specified controller. +Non-zero value enables CCC and defines maximum time (in us), request can wait +for interrupt. +CCC reduces number of context switches on systems with many parallel requests, +but it can decrease disk performance on some workloads due to additional +command latency. +.It Va hint.mvs. Ns Ar X Ns Va .cccc +defines number of completed commands for CCC, which trigger interrupt without +waiting for specified coalescing timeout. +.It Va hint.mvs. Ns Ar X Ns Va .pm_level +controls SATA interface Power Management for the specified channel, +allowing some power to be saved at the cost of additional command +latency. +Possible values: +.Bl -tag -compact +.It 0 +interface Power Management is disabled (default); +.It 1 +device is allowed to initiate PM state change, host is passive; +.It 4 +driver initiates PARTIAL PM state transition 1ms after port becomes idle; +.It 5 +driver initiates SLUMBER PM state transition 125ms after port becomes idle. +.El +.Pp +Note that interface Power Management is not compatible with +device presence detection. +A manual bus reset is needed on device hot-plug. +.It Va hint.mvs. Ns Ar X Ns Va .sata_rev +setting to nonzero value limits maximum SATA revision (speed). +Values 1, 2 and 3 are respectively 1.5, 3 and 6Gbps. +.El +.Sh DESCRIPTION +This driver provides the +.Xr CAM 4 +subsystem with native access to the +.Tn SATA +ports of several generations (Gen-I/II/IIe) of Marvell SATA controllers. +Each SATA port found is represented to CAM as a separate bus with one +target, or, if HBA supports Port Multipliers (Gen-II/IIe), 16 targets. +Most of the bus-management details are handled by the SATA-specific +transport of CAM. +Connected ATA disks are handled by the ATA protocol disk peripheral driver +.Xr ada 4 . +ATAPI devices are handled by the SCSI protocol peripheral drivers +.Xr cd 4 , +.Xr da 4 , +.Xr sa 4 , +etc. +.Pp +Driver features include support for Serial ATA and ATAPI devices, +Port Multipliers (including FIS-based switching, when supported), +hardware command queues (up to 31 command per port), +Native Command Queuing, SATA interface Power Management, device hot-plug +and Message Signaled Interrupts. +.Pp +Same hardware is also supported by atamarvell and ataadaptec drivers from +.Xr ata 4 +subsystem. +If both drivers are loaded at the same time, this one will be +given precedence as the more functional of the two. +.Sh HARDWARE +The +.Nm +driver supports the following controllers: +.Bl -tag -compact +.It Gen-I (SATA 1.5Gbps): +.Bl -bullet -compact +.It +88SX5040 +.It +88SX5041 +.It +88SX5080 +.It +88SX5081 +.El +.It Gen-II (SATA 3Gbps, NCQ, PMP): +.Bl -bullet -compact +.It +88SX6040 +.It +88SX6041 (including Adaptec 1420SA) +.It +88SX6080 +.It +88SX6081 +.El +.It Gen-IIe (SATA 3Gbps, NCQ, PMP with FBS): +.Bl -bullet -compact +.It +88SX6042 +.It +88SX7042 (including Adaptec 1430SA) +.It +88F5182 SoC +.It +88F6281 SoC +.It +MV78100 SoC +.El +.El +Note, that this hardware supports command queueing and FIS-based switching +only for ATA DMA commands. ATAPI and non-DMA ATA commands executed one by one +for each port. +.Pp +.Sh SEE ALSO +.Xr ada 4 , +.Xr ata 4 , +.Xr cam 4 , +.Xr cd 4 , +.Xr da 4 , +.Xr sa 4 +.Sh HISTORY +The +.Nm +driver first appeared in +.Fx 9.0 . +.Sh AUTHORS +.An Alexander Motin Aq mav@FreeBSD.org . Modified: stable/8/sys/arm/mv/files.mv ============================================================================== --- stable/8/sys/arm/mv/files.mv Wed May 19 10:35:53 2010 (r208298) +++ stable/8/sys/arm/mv/files.mv Wed May 19 14:50:07 2010 (r208299) @@ -30,6 +30,7 @@ arm/mv/timer.c standard arm/mv/twsi.c optional iicbus dev/mge/if_mge.c optional mge +dev/mvs/mvs_soc.c optional mvs dev/uart/uart_bus_mbus.c optional uart dev/uart/uart_cpu_mv.c optional uart dev/uart/uart_dev_ns8250.c optional uart Modified: stable/8/sys/conf/NOTES ============================================================================== --- stable/8/sys/conf/NOTES Wed May 19 10:35:53 2010 (r208298) +++ stable/8/sys/conf/NOTES Wed May 19 14:50:07 2010 (r208299) @@ -1651,12 +1651,14 @@ device twe # 3ware ATA RAID # Serial ATA host controllers: # # ahci: Advanced Host Controller Interface (AHCI) compatible +# mvs: Marvell 88SX50XX/88SX60XX/88SX70XX/SoC controllers # siis: SiliconImage SiI3124/SiI3132/SiI3531 controllers # # These drivers are part of cam(4) subsystem. They supersede less featured # ata(4) subsystem drivers, supporting same hardware. device ahci +device mvs device siis # Modified: stable/8/sys/conf/files ============================================================================== --- stable/8/sys/conf/files Wed May 19 10:35:53 2010 (r208298) +++ stable/8/sys/conf/files Wed May 19 14:50:07 2010 (r208299) @@ -1279,6 +1279,9 @@ dev/mpt/mpt_pci.c optional mpt pci dev/mpt/mpt_raid.c optional mpt dev/mpt/mpt_user.c optional mpt dev/msk/if_msk.c optional msk inet +dev/mvs/mvs.c optional mvs +dev/mvs/mvs_if.m optional mvs +dev/mvs/mvs_pci.c optional mvs pci dev/mwl/if_mwl.c optional mwl dev/mwl/if_mwl_pci.c optional mwl pci dev/mwl/mwlhal.c optional mwl Modified: stable/8/sys/conf/kmod.mk ============================================================================== --- stable/8/sys/conf/kmod.mk Wed May 19 10:35:53 2010 (r208298) +++ stable/8/sys/conf/kmod.mk Wed May 19 14:50:07 2010 (r208299) @@ -324,7 +324,7 @@ MFILES?= dev/acpica/acpi_if.m dev/acpi_s dev/agp/agp_if.m dev/ata/ata_if.m dev/eisa/eisa_if.m \ dev/iicbus/iicbb_if.m dev/iicbus/iicbus_if.m \ dev/mmc/mmcbr_if.m dev/mmc/mmcbus_if.m \ - dev/mii/miibus_if.m dev/ofw/ofw_bus_if.m \ + dev/mii/miibus_if.m dev/mvs/mvs_if.m dev/ofw/ofw_bus_if.m \ dev/pccard/card_if.m dev/pccard/power_if.m dev/pci/pci_if.m \ dev/pci/pcib_if.m dev/ppbus/ppbus_if.m dev/smbus/smbus_if.m \ dev/sound/pcm/ac97_if.m dev/sound/pcm/channel_if.m \ Modified: stable/8/sys/dev/mvs/mvs.c ============================================================================== --- head/sys/dev/mvs/mvs.c Sun May 2 19:28:30 2010 (r207536) +++ stable/8/sys/dev/mvs/mvs.c Wed May 19 14:50:07 2010 (r208299) @@ -2168,6 +2168,6 @@ mvspoll(struct cam_sim *sim) arg.arg = ch->dev; arg.cause = 2; /* XXX */ - mvs_ch_intr(arg.arg); + mvs_ch_intr(&arg); } Modified: stable/8/sys/modules/Makefile ============================================================================== --- stable/8/sys/modules/Makefile Wed May 19 10:35:53 2010 (r208298) +++ stable/8/sys/modules/Makefile Wed May 19 14:50:07 2010 (r208299) @@ -186,6 +186,7 @@ SUBDIR= ${_3dfx} \ msdosfs_iconv \ ${_mse} \ msk \ + mvs \ mwl \ mxge \ my \ Modified: stable/8/sys/modules/mvs/Makefile ============================================================================== --- head/sys/modules/mvs/Makefile Sun May 2 19:28:30 2010 (r207536) +++ stable/8/sys/modules/mvs/Makefile Wed May 19 14:50:07 2010 (r208299) @@ -3,7 +3,7 @@ .PATH: ${.CURDIR}/../../dev/mvs KMOD= mvs -SRCS= mvs.c mvs_pci.c mvs.h mvs_if.h device_if.h bus_if.h pci_if.h opt_cam.h +SRCS= mvs.c mvs_pci.c mvs.h mvs_if.c mvs_if.h device_if.h bus_if.h pci_if.h opt_cam.h MFILES= kern/bus_if.m kern/device_if.m dev/pci/pci_if.m dev/mvs/mvs_if.m From owner-svn-src-all@FreeBSD.ORG Wed May 19 15:06:09 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 70D17106566C; Wed, 19 May 2010 15:06:09 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 60B6F8FC17; Wed, 19 May 2010 15:06:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4JF698M007710; Wed, 19 May 2010 15:06:09 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4JF69SL007708; Wed, 19 May 2010 15:06:09 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201005191506.o4JF69SL007708@svn.freebsd.org> From: Attilio Rao Date: Wed, 19 May 2010 15:06:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208300 - head/sys/netgraph X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 15:06:09 -0000 Author: attilio Date: Wed May 19 15:06:09 2010 New Revision: 208300 URL: http://svn.freebsd.org/changeset/base/208300 Log: Fix a race between ngs_rcvmsg() and soclose() which closes the control socket while it is still in use. priv->ctlsock is checked at the top of the function but without any lock held, which means the control socket state may certainly change. Add a similar protection to ngs_shutdown() even if a race is unlikely to be experienced there. Sponsored by: Sandvine Incorporated Obtained from: Nima Misaghian @ Sandvine Incorporated MFC after: 10 days Modified: head/sys/netgraph/ng_socket.c Modified: head/sys/netgraph/ng_socket.c ============================================================================== --- head/sys/netgraph/ng_socket.c Wed May 19 14:50:07 2010 (r208299) +++ head/sys/netgraph/ng_socket.c Wed May 19 15:06:09 2010 (r208300) @@ -855,7 +855,7 @@ static int ngs_rcvmsg(node_p node, item_p item, hook_p lasthook) { struct ngsock *const priv = NG_NODE_PRIVATE(node); - struct ngpcb *const pcbp = priv->ctlsock; + struct ngpcb *pcbp; struct socket *so; struct sockaddr_ng addr; struct ng_mesg *msg; @@ -868,15 +868,27 @@ ngs_rcvmsg(node_p node, item_p item, hoo NG_FREE_ITEM(item); /* + * Grab priv->mtx here to prevent destroying of control socket + * after checking that priv->ctlsock is not NULL. + */ + mtx_lock(&priv->mtx); + pcbp = priv->ctlsock; + + /* * Only allow mesgs to be passed if we have the control socket. * Data sockets can only support the generic messages. */ if (pcbp == NULL) { + mtx_unlock(&priv->mtx); TRAP_ERROR; NG_FREE_MSG(msg); return (EINVAL); } so = pcbp->ng_socket; + SOCKBUF_LOCK(&so->so_rcv); + + /* As long as the race is handled, priv->mtx may be unlocked now. */ + mtx_unlock(&priv->mtx); #ifdef TRACE_MESSAGES printf("[%x]:---------->[socket]: c=<%d>cmd=%x(%s) f=%x #%d\n", @@ -899,6 +911,8 @@ ngs_rcvmsg(node_p node, item_p item, hoo default: error = EINVAL; /* unknown command */ } + SOCKBUF_UNLOCK(&so->so_rcv); + /* Free the message and return. */ NG_FREE_MSG(msg); return (error); @@ -911,6 +925,7 @@ ngs_rcvmsg(node_p node, item_p item, hoo addrlen = snprintf((char *)&addr.sg_data, sizeof(addr.sg_data), "[%x]:", retaddr); if (addrlen < 0 || addrlen > sizeof(addr.sg_data)) { + SOCKBUF_UNLOCK(&so->so_rcv); printf("%s: snprintf([%x]) failed - %d\n", __func__, retaddr, addrlen); NG_FREE_MSG(msg); @@ -928,17 +943,20 @@ ngs_rcvmsg(node_p node, item_p item, hoo NG_FREE_MSG(msg); if (m == NULL) { + SOCKBUF_UNLOCK(&so->so_rcv); TRAP_ERROR; return (ENOBUFS); } /* Send it up to the socket. */ - if (sbappendaddr(&so->so_rcv, (struct sockaddr *)&addr, m, NULL) == 0) { + if (sbappendaddr_locked(&so->so_rcv, (struct sockaddr *)&addr, m, + NULL) == 0) { + SOCKBUF_UNLOCK(&so->so_rcv); TRAP_ERROR; m_freem(m); return (ENOBUFS); } - sorwakeup(so); + sorwakeup_locked(so); return (error); } @@ -1020,8 +1038,11 @@ static int ngs_shutdown(node_p node) { struct ngsock *const priv = NG_NODE_PRIVATE(node); - struct ngpcb *const dpcbp = priv->datasock; - struct ngpcb *const pcbp = priv->ctlsock; + struct ngpcb *dpcbp, *pcbp; + + mtx_lock(&priv->mtx); + dpcbp = priv->datasock; + pcbp = priv->ctlsock; if (dpcbp != NULL) soisdisconnected(dpcbp->ng_socket); @@ -1029,7 +1050,6 @@ ngs_shutdown(node_p node) if (pcbp != NULL) soisdisconnected(pcbp->ng_socket); - mtx_lock(&priv->mtx); priv->node = NULL; NG_NODE_SET_PRIVATE(node, NULL); ng_socket_free_priv(priv); From owner-svn-src-all@FreeBSD.ORG Wed May 19 15:50:17 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9FF751065676; Wed, 19 May 2010 15:50:17 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8E3E08FC21; Wed, 19 May 2010 15:50:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4JFoH8d017494; Wed, 19 May 2010 15:50:17 GMT (envelope-from avg@svn.freebsd.org) Received: (from avg@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4JFoHU4017492; Wed, 19 May 2010 15:50:17 GMT (envelope-from avg@svn.freebsd.org) Message-Id: <201005191550.o4JFoHU4017492@svn.freebsd.org> From: Andriy Gapon Date: Wed, 19 May 2010 15:50:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208301 - stable/7/sys/kern X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 15:50:17 -0000 Author: avg Date: Wed May 19 15:50:17 2010 New Revision: 208301 URL: http://svn.freebsd.org/changeset/base/208301 Log: kern_ntptime: fix two problems with r208298 (MFC of r207360) This is a direct commit to fix previous improperly done MFC. - sys/clock.h include is needed for resettodr() - there is no callout_schedule in 7, so callout_reset has to be used Modified: stable/7/sys/kern/kern_ntptime.c Modified: stable/7/sys/kern/kern_ntptime.c ============================================================================== --- stable/7/sys/kern/kern_ntptime.c Wed May 19 15:06:09 2010 (r208300) +++ stable/7/sys/kern/kern_ntptime.c Wed May 19 15:50:17 2010 (r208301) @@ -38,6 +38,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -986,7 +987,8 @@ periodic_resettodr(void *arg __unused) mtx_unlock(&Giant); } if (resettodr_period > 0) - callout_schedule(&resettodr_callout, resettodr_period * hz); + callout_reset(&resettodr_callout, resettodr_period * hz, + periodic_resettodr, NULL); } static void From owner-svn-src-all@FreeBSD.ORG Wed May 19 19:03:20 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4F8CB1065672; Wed, 19 May 2010 19:03:20 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3EE9D8FC1C; Wed, 19 May 2010 19:03:20 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4JJ3KTG060321; Wed, 19 May 2010 19:03:20 GMT (envelope-from dougb@svn.freebsd.org) Received: (from dougb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4JJ3KCO060309; Wed, 19 May 2010 19:03:20 GMT (envelope-from dougb@svn.freebsd.org) Message-Id: <201005191903.o4JJ3KCO060309@svn.freebsd.org> From: Doug Barton Date: Wed, 19 May 2010 19:03:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208307 - head/etc/rc.d X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 19:03:20 -0000 Author: dougb Date: Wed May 19 19:03:19 2010 New Revision: 208307 URL: http://svn.freebsd.org/changeset/base/208307 Log: This change does the following for the scripts that run up through FILESYSTEMS (the default early_late_divider): 1. Move sysctl to run first 2. Move as many BEFOREs to REQUIREs as possible. 3. Minor effect, move hostid_save from right before mdconfig to right after. A lot of the early scripts make use of sysctl one way or another so running this first makes a lot of sense given that system-critical values are often placed in sysctl.conf. My original purpose for working on this was that while doing some debugging on other stuff I noticed that the order of execution was different in the first pass through the early scripts and the second. In practice that doesn't matter because the scripts are not executed the second time. However this _can_ result in problems if the difference in the rcorder moves a script from the late section to the early section in the second pass (which would mean the script would not get executed). So, I wanted to make the order of execution of the scripts in the early section more deterministic. In the course of debugging the ordering problems I noticed that moving the BEFOREs to REQUIREs prevented the changes in order from the first pass to the second pass without having to make any substantial changes. (Of course it's no secret that I think BEFORE should be avoided as much as possible, but this is a good example of why.) Reviewed by: silence on freebsd-rc@ MFC after: 8.1-RELEASE Modified: head/etc/rc.d/SERVERS head/etc/rc.d/ddb head/etc/rc.d/dumpon head/etc/rc.d/hostid head/etc/rc.d/hostid_save head/etc/rc.d/initrandom head/etc/rc.d/mdconfig head/etc/rc.d/mountcritlocal head/etc/rc.d/savecore head/etc/rc.d/sysctl head/etc/rc.d/zvol Modified: head/etc/rc.d/SERVERS ============================================================================== --- head/etc/rc.d/SERVERS Wed May 19 17:31:36 2010 (r208306) +++ head/etc/rc.d/SERVERS Wed May 19 19:03:19 2010 (r208307) @@ -4,7 +4,7 @@ # # PROVIDE: SERVERS -# REQUIRE: mountcritremote abi ldconfig +# REQUIRE: mountcritremote abi ldconfig savecore # This is a dummy dependency, for early-start servers relying on # some basic configuration. Modified: head/etc/rc.d/ddb ============================================================================== --- head/etc/rc.d/ddb Wed May 19 17:31:36 2010 (r208306) +++ head/etc/rc.d/ddb Wed May 19 19:03:19 2010 (r208307) @@ -5,7 +5,7 @@ # PROVIDE: ddb # REQUIRE: dumpon -# BEFORE: disks savecore initrandom +# BEFORE: disks # KEYWORD: nojail . /etc/rc.subr Modified: head/etc/rc.d/dumpon ============================================================================== --- head/etc/rc.d/dumpon Wed May 19 17:31:36 2010 (r208306) +++ head/etc/rc.d/dumpon Wed May 19 19:03:19 2010 (r208307) @@ -4,7 +4,8 @@ # # PROVIDE: dumpon -# BEFORE: disks savecore initrandom +# REQUIRE: zvol +# BEFORE: disks # KEYWORD: nojail . /etc/rc.subr Modified: head/etc/rc.d/hostid ============================================================================== --- head/etc/rc.d/hostid Wed May 19 17:31:36 2010 (r208306) +++ head/etc/rc.d/hostid Wed May 19 19:03:19 2010 (r208307) @@ -28,7 +28,7 @@ # # PROVIDE: hostid -# BEFORE: fsck +# REQUIRE: sysctl # KEYWORD: nojail . /etc/rc.subr Modified: head/etc/rc.d/hostid_save ============================================================================== --- head/etc/rc.d/hostid_save Wed May 19 17:31:36 2010 (r208306) +++ head/etc/rc.d/hostid_save Wed May 19 19:03:19 2010 (r208307) @@ -5,7 +5,6 @@ # PROVIDE: hostid_save # REQUIRE: root -# BEFORE: mountcritlocal # KEYWORD: nojail . /etc/rc.subr Modified: head/etc/rc.d/initrandom ============================================================================== --- head/etc/rc.d/initrandom Wed May 19 17:31:36 2010 (r208306) +++ head/etc/rc.d/initrandom Wed May 19 19:03:19 2010 (r208307) @@ -4,6 +4,7 @@ # # PROVIDE: initrandom +# REQUIRE: dumpon ddb # BEFORE: disks # KEYWORD: nojail Modified: head/etc/rc.d/mdconfig ============================================================================== --- head/etc/rc.d/mdconfig Wed May 19 17:31:36 2010 (r208306) +++ head/etc/rc.d/mdconfig Wed May 19 19:03:19 2010 (r208307) @@ -28,8 +28,7 @@ # # PROVIDE: mdconfig -# REQUIRE: localswap -# BEFORE: mountcritlocal +# REQUIRE: localswap root . /etc/rc.subr Modified: head/etc/rc.d/mountcritlocal ============================================================================== --- head/etc/rc.d/mountcritlocal Wed May 19 17:31:36 2010 (r208306) +++ head/etc/rc.d/mountcritlocal Wed May 19 19:03:19 2010 (r208307) @@ -4,7 +4,7 @@ # # PROVIDE: mountcritlocal -# REQUIRE: root +# REQUIRE: root hostid_save mdconfig # KEYWORD: nojail . /etc/rc.subr Modified: head/etc/rc.d/savecore ============================================================================== --- head/etc/rc.d/savecore Wed May 19 17:31:36 2010 (r208306) +++ head/etc/rc.d/savecore Wed May 19 19:03:19 2010 (r208307) @@ -4,8 +4,7 @@ # # PROVIDE: savecore -# REQUIRE: syslogd -# BEFORE: SERVERS +# REQUIRE: dumpon ddb syslogd # KEYWORD: nojail . /etc/rc.subr Modified: head/etc/rc.d/sysctl ============================================================================== --- head/etc/rc.d/sysctl Wed May 19 17:31:36 2010 (r208306) +++ head/etc/rc.d/sysctl Wed May 19 19:03:19 2010 (r208307) @@ -4,8 +4,6 @@ # # PROVIDE: sysctl -# REQUIRE: root -# BEFORE: FILESYSTEMS . /etc/rc.subr Modified: head/etc/rc.d/zvol ============================================================================== --- head/etc/rc.d/zvol Wed May 19 17:31:36 2010 (r208306) +++ head/etc/rc.d/zvol Wed May 19 19:03:19 2010 (r208307) @@ -5,7 +5,6 @@ # PROVIDE: zvol # REQUIRE: hostid -# BEFORE: fsck # KEYWORD: nojail . /etc/rc.subr From owner-svn-src-all@FreeBSD.ORG Wed May 19 19:43:50 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3A4E6106566B; Wed, 19 May 2010 19:43:50 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2A3F18FC16; Wed, 19 May 2010 19:43:50 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4JJhn0O069618; Wed, 19 May 2010 19:43:49 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4JJhnYT069616; Wed, 19 May 2010 19:43:49 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201005191943.o4JJhnYT069616@svn.freebsd.org> From: John Baldwin Date: Wed, 19 May 2010 19:43:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208308 - stable/8/sys/dev/ciss X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 19:43:50 -0000 Author: jhb Date: Wed May 19 19:43:49 2010 New Revision: 208308 URL: http://svn.freebsd.org/changeset/base/208308 Log: MFC 207335: Initialize the callout structure earlier in attach before calling any routines that can fail since ciss_free() always tries to stop and drain the callout. Modified: stable/8/sys/dev/ciss/ciss.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/dev/ciss/ciss.c ============================================================================== --- stable/8/sys/dev/ciss/ciss.c Wed May 19 19:03:19 2010 (r208307) +++ stable/8/sys/dev/ciss/ciss.c Wed May 19 19:43:49 2010 (r208308) @@ -417,6 +417,7 @@ ciss_attach(device_t dev) sc = device_get_softc(dev); sc->ciss_dev = dev; mtx_init(&sc->ciss_mtx, "cissmtx", NULL, MTX_DEF); + callout_init_mtx(&sc->ciss_periodic, &sc->ciss_mtx, 0); /* * Do PCI-specific init. @@ -429,7 +430,6 @@ ciss_attach(device_t dev) */ ciss_initq_free(sc); ciss_initq_notify(sc); - callout_init_mtx(&sc->ciss_periodic, &sc->ciss_mtx, 0); /* * Initalize device sysctls. From owner-svn-src-all@FreeBSD.ORG Wed May 19 19:44:01 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DB081106564A; Wed, 19 May 2010 19:44:00 +0000 (UTC) (envelope-from gallatin@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CAADC8FC1C; Wed, 19 May 2010 19:44:00 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4JJi0v9069684; Wed, 19 May 2010 19:44:00 GMT (envelope-from gallatin@svn.freebsd.org) Received: (from gallatin@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4JJi06Q069679; Wed, 19 May 2010 19:44:00 GMT (envelope-from gallatin@svn.freebsd.org) Message-Id: <201005191944.o4JJi06Q069679@svn.freebsd.org> From: Andrew Gallatin Date: Wed, 19 May 2010 19:44:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208309 - head/sys/dev/mxge X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 19:44:01 -0000 Author: gallatin Date: Wed May 19 19:44:00 2010 New Revision: 208309 URL: http://svn.freebsd.org/changeset/base/208309 Log: Update mxge firmware to latest available from Myricom. Modified: head/sys/dev/mxge/eth_z8e.h head/sys/dev/mxge/ethp_z8e.h head/sys/dev/mxge/rss_eth_z8e.h head/sys/dev/mxge/rss_ethp_z8e.h Modified: head/sys/dev/mxge/eth_z8e.h ============================================================================== --- head/sys/dev/mxge/eth_z8e.h Wed May 19 19:43:49 2010 (r208308) +++ head/sys/dev/mxge/eth_z8e.h Wed May 19 19:44:00 2010 (r208309) @@ -1,6 +1,6 @@ /******************************************************************************* -Copyright (c) 2006-2009, Myricom Inc. +Copyright (c) 2006-2010, Myricom Inc. All rights reserved. Redistribution and use in source and binary forms, with or without @@ -28,7255 +28,7287 @@ POSSIBILITY OF SUCH DAMAGE. $FreeBSD$ ***************************************************************************/ -static unsigned int eth_z8e_uncompressed_length = 366788 ; -static unsigned int eth_z8e_length = 115959 ; -static unsigned char eth_z8e[115959 + 1] = - "\x78\x9c\xec\xbd\x7f\x7c\x54\xd5\xb5\x37\xbc\x32\x19\x60\x12\x23" - "\x13\x31\xd2\x29\xa5\x3a\x5a\xb4\xd1\x0b\x12\x15\x5b\xb4\xa0\x51" - "\xc0\x82\x0d\x10\x15\x6d\x54\x34\xa0\x81\x06\x8d\x18\x21\xc0\x00" - "\x21\x33\x0c\x70\x9d\x44\x7e\x44\x8d\x18\x21\x90\x44\x62\x9b\xdb" - "\x52\x4d\x2c\x2a\xd8\x50\x63\x49\xef\x43\xef\x85\x0c\xb7\x2f\xbe" - "\x6f\x6e\x5f\xbc\x1d\xd2\x88\x29\x4f\x80\x91\x0c\x64\x48\x66\xce" - "\x7e\xbf\x6b\xef\x73\x92\x99\x61\x82\x72\x7b\x3f\xcf\xfb\x4f\xf9" - "\x7c\xc2\x9c\xb3\x7f\xac\xbd\xf6\xda\x6b\xad\xbd\xf6\xde\x6b\xaf" - "\x43\xf4\x77\xfc\x33\x7d\xe4\xf8\x7b\xaa\xff\xe3\xdf\x3f\xfe\xfd" - "\xe3\xdf\x3f\xfe\xfd\xe3\xdf\x3f\xfe\xfd\xe3\xdf\xff\x3f\xff\xce" - "\x9a\xcc\xf4\xfb\x72\xa2\x1e\xb7\xc5\xe6\xa3\x0b\xf6\x37\x5f\x17" - "\x21\x24\x27\xf8\xc8\x62\xe3\x5f\xfd\x8f\x5e\x43\xba\xa9\x9c\x2c" - "\x37\xa4\x52\xca\x94\x1d\x44\x15\x23\x45\xd7\xeb\x5b\x85\x7f\xdd" - "\x56\xd1\x35\xf5\x1d\xa2\x96\x31\x44\xaf\x8f\x14\x01\xc0\x99\xeb" - "\xa3\xa7\x2b\x18\xce\x3a\xbc\x73\xfe\xfa\x91\xc2\x8f\xf4\x22\x1f" - "\xe5\xa6\x70\xfa\xda\x91\x80\x95\x46\xe4\xde\x2a\x82\x11\x70\x2d" - "\x5c\x9f\x61\x4e\xbd\x5e\xe2\x53\x17\x03\x87\x61\xec\x05\x8c\xf5" - "\x97\x80\x91\x62\xe0\x15\x30\x51\x02\xc3\xeb\x76\x93\x2d\xe0\x6e" - "\xbe\x06\x75\x03\xe8\x53\x3a\xd7\xdd\x82\x32\xc2\x4d\x89\x2d\x8e" - "\x10\xd9\x6f\xa0\x84\x13\x94\x5c\x8b\x5f\x13\x7e\xdf\xe0\xfe\xae" - "\x53\xf5\xc6\x30\x0c\xd4\x4d\xe8\x71\x27\x65\xf4\xd7\x05\x6c\x7b" - "\x09\x99\x51\x76\x51\xc0\xd4\x6c\x52\x65\x53\x93\xf4\xb2\x26\x94" - "\x9d\x6b\x94\x55\x79\xa6\x19\x7a\xde\x15\xc8\x73\x44\xe7\x99\x5f" - "\xd3\xf3\x52\x90\x57\x11\x83\x9f\xd9\xdb\x1b\xa2\x13\x94\xb4\x1b" - "\xb8\xd8\x0f\x60\x54\xb8\x8e\x5e\xfe\x2a\x94\x6f\x89\x86\x45\xa4" - "\xe7\x8d\x40\x9e\x2f\x3a\xef\x77\x19\x7a\xde\xb7\x90\x17\x8a\xce" - "\x4b\x30\xea\xd9\x7a\xdc\xc9\xb6\x38\xfd\xe4\xf6\x13\x54\xdb\xdc" - "\x87\xe4\x49\x28\xe3\xe2\x32\x73\xec\x2e\xe2\xb1\xe2\xbc\x03\x35" - "\xfd\xed\x73\x99\x79\x06\x1c\x1f\xea\x47\xd0\x14\xb4\x4c\x2e\x36" - "\xea\x4f\xb5\x33\x0c\x92\x34\x64\x38\x3e\x4a\x9a\xce\x70\xf8\x1d" - "\xcf\xa3\xb9\xdf\xfa\xb3\x9d\xfb\x17\x39\xe6\x44\x66\x80\x1d\x62" - "\x21\x1a\x8a\xbf\x61\x16\x83\x07\x96\xda\x84\xe6\xfc\x36\x99\x45" - "\x59\x4d\xa6\xe6\x16\xe4\x75\x04\xc9\x3e\x8a\x9c\xed\x74\x85\x0d" - "\xf8\xd1\xe6\x55\x64\x71\x16\x8a\xa0\xd7\xd1\x45\xad\xfe\x2e\x72" - "\xfa\x45\xa7\x37\x74\x8e\x4a\xce\x91\xc5\x1b\x3a\x45\x25\x2f\x91" - "\xad\xa5\xf8\x0b\x8a\xc7\x5f\x9a\x49\x90\x73\x34\xd7\xed\xa0\xd6" - "\xaa\x0e\x72\x56\x45\xd7\x75\x7e\x97\x6c\x87\xf1\x8e\xb1\xb3\x32" - "\x1e\x2d\xf6\x10\x85\x92\x6b\x32\x8b\xdf\x22\xb3\xf3\x7a\x32\x1d" - "\xce\x6b\x36\x70\xf1\x31\x2e\xeb\x4f\x92\x65\xd7\x42\xf0\xd0\x49" - "\xc6\xb7\x3e\xf3\xbd\x55\x41\xd3\x01\x5b\x16\x1d\xb0\x1d\xa3\x16" - "\xdb\x64\x6a\x71\x4c\xa5\xcd\x27\x29\xe5\x40\x70\x12\xb5\x98\x1f" - "\x80\x8c\x4d\x25\x6f\x17\x9e\xed\x61\x94\x09\x90\x7d\x39\x81\x3f" - "\xae\x38\x52\xf1\x1c\x59\x7c\x0a\x26\xe8\x7b\xc5\xb1\x4f\x8b\x88" - "\x98\xbe\xfc\x1e\xaf\x1f\x4b\xbf\x4d\x36\xe0\xd7\x09\x5c\xee\x6a" - "\xa7\x94\x6b\xc6\xd8\x28\x03\x38\x0f\xf3\x56\x86\xc8\x5c\x4c\x49" - "\x83\xc8\x56\x9a\xe6\x96\x32\xde\xb5\x73\xab\xe8\x64\x1e\xed\x5e" - "\x9d\x03\x39\x4d\xc9\x42\xdb\x5d\xdc\xde\x66\xc8\xba\xb3\x96\xcc" - "\xdd\x2b\x72\x12\xaa\xb7\x8a\x0e\xe4\xe5\x1b\x79\xe0\xa7\x0e\xe4" - "\x77\x8e\x4f\xa3\x54\x6f\x28\x93\x3e\xe9\xed\x34\x33\x8c\xe1\x01" - "\x4a\x60\x78\x56\x07\x25\xa2\x3f\x43\x80\xcf\x5d\xd5\x48\xff\x1e" - "\xca\xa1\x7e\xbd\x8f\x5e\x9d\xc7\xf5\xc5\xb7\x9e\x0c\x68\xdf\x7a" - "\xf2\x9c\xf6\xe6\x93\xdd\xe2\xcd\x27\xcf\x86\xdf\x7c\xf2\x2b\xe7" - "\x4a\xb2\x84\xbf\xf5\xa4\xbf\xb5\x50\x8e\x41\x6a\x6b\x21\xc6\x20" - "\x4c\x96\x35\xa7\x28\xf5\xe9\x97\x30\xf6\xa1\xcf\x69\xcd\x22\xb2" - "\x69\x49\x3f\x0f\x7a\x43\x9f\xd1\xd3\xc5\x24\xb4\xa4\x5f\x58\xe2" - "\xf5\xaf\x3b\xb9\xde\xa5\x64\xc8\x82\x3e\x5d\x69\xf7\x99\xaa\x27" - "\x72\xbb\xfe\xa4\x06\x17\xfe\xd6\xe3\xcf\x83\xbf\x8d\x22\xb9\x7e" - "\x23\x68\xe5\x1c\xbe\x36\x81\x76\xf6\x12\x8d\xd7\x28\xe1\x24\x5d" - "\x39\x09\xf8\xa7\x0e\x42\xb7\xd1\x5a\xd9\x6f\xe7\x7d\xdf\x45\x25" - "\x3d\x3d\xf9\xc4\xba\x89\xf5\x12\xeb\x29\xb4\xe3\x41\x3b\x0e\x29" - "\x8b\x5b\x45\x40\x24\xff\x76\x1e\xd2\x3b\x03\xab\xf3\x13\xfc\xab" - "\xf3\x4d\xdd\xc9\xbf\x7d\x16\x65\x76\xa3\x4c\x83\x4e\xc3\x4e\x86" - "\x05\x99\xf0\x5f\x19\xa2\x44\xc0\x2c\xfc\xe8\x7c\x9b\x79\xc7\x56" - "\x71\x0c\xe5\x8e\xf6\xc3\x02\x6c\xc0\x01\xfd\xaf\xec\x34\xd2\x40" - "\xeb\x8e\x4d\x28\xc7\xf5\xbd\xc1\x4c\xd6\xdf\x3e\x6f\x41\x27\x59" - "\x43\x94\x2c\xfa\x54\x7b\x28\xd3\xc9\x7a\xf6\xca\x20\x0d\xed\x71" - "\x53\x36\xc3\xe6\x7a\xde\xae\x4e\x42\xbd\x67\x85\x33\x1f\xfa\x8d" - "\x66\xf5\x88\xfc\x04\xe8\xf4\x8e\x03\xa8\xaf\xda\x1e\x9e\x6d\xe0" - "\xc8\x6d\xf0\x58\x4b\x3c\xc1\x0f\x07\x0a\x82\x74\x65\x25\x25\xa2" - "\xde\x23\x0c\x8f\x61\x81\x0f\x7c\xe8\xeb\xb3\x07\x0a\xfc\xa4\x89" - "\x28\x98\x3e\x1d\x5e\x4d\x14\x3c\xa4\x0b\xc0\x63\xfe\x6b\x41\x9d" - "\x2b\x6b\x24\xbc\x87\x3f\xd2\x18\x5e\x90\xcc\x76\x89\xef\x63\x0c" - "\xa3\x87\x75\x0c\x60\x36\x2f\xbf\x9f\xba\xc8\x6a\xf1\x3b\xf3\x13" - "\x5b\x8b\x89\xb8\xfe\x7b\x25\x9d\x43\x44\x77\x4e\x22\xf3\x1c\xe7" - "\x7b\x43\x67\x51\x66\xf8\xdf\x44\x77\x7e\xe2\x95\x5d\x64\x66\x9c" - "\x51\xdf\xc1\x78\x46\x8e\xe5\xc3\xd3\x1e\x9b\x4c\x8f\x4d\x9d\x31" - "\x75\x32\xcd\xbc\x6f\xca\x64\xca\xb8\x6b\x5c\xc6\x1d\x3f\x9c\x78" - "\x07\x65\xff\xf4\xe1\xc9\x94\x3d\x6b\x32\x3d\x82\xbf\xec\x47\xa6" - "\x3d\x3c\x75\xda\x23\x93\x29\xe7\x81\x19\x78\x9b\x32\xf9\xb6\x8c" - "\x1f\x8f\xcb\x9e\x32\x63\x1a\x3d\x34\xe7\xf6\x8c\xdb\x6f\xa7\xfb" - "\xa6\x65\xdd\x96\x91\xa1\xff\xde\x96\xc1\x45\x9e\x98\x38\xed\x91" - "\x71\xd9\x4b\x5e\x2c\x7a\x71\xdc\xac\x19\x53\x62\xe6\xd9\xf4\xf0" - "\x79\x8d\xe9\x1b\x10\x67\xa6\x93\x06\x7d\xb1\x13\xe3\x8e\xbf\xae" - "\xe6\x92\x76\xc8\x7d\xea\x7f\xec\xe4\xf1\x92\x7a\xd5\xca\x73\x95" - "\xb9\xc7\x6d\x6d\x03\xdd\xfc\x4c\x37\xcc\x67\x28\x73\xcd\x39\xe4" - "\xdd\xac\xcf\x1b\x43\x90\x1f\x8c\xce\xbf\xea\x10\xf2\xc7\xb7\xda" - "\x89\xbc\xf8\x03\xad\x03\xd0\x7f\xa0\xa9\x9f\xba\x9d\x39\x43\xc0" - "\xd3\x09\x68\xa3\x03\xf2\x78\xa4\xc7\x9d\x3a\x21\x42\xce\x3b\x30" - "\x26\x47\xec\xab\x28\xf1\x34\xa5\x5e\xd9\x5a\x94\x49\x3c\x36\xde" - "\x22\x1d\xc6\xb9\x7e\x18\xc9\x12\x06\xc6\x1b\x70\x8e\xea\x70\x8a" - "\x23\x74\x82\x8f\xe1\x6c\x46\x9e\x0e\xeb\xa1\x56\xe8\x06\xe8\xee" - "\x07\x35\x67\x3a\x89\xe4\x9a\xe9\x5a\x5f\xba\x9c\x0f\x50\x6f\x8f" - "\xc1\xcb\x28\x1f\x68\x29\x44\xb9\x5d\xd3\x13\x30\xf6\x09\x98\xa7" - "\xd0\x17\x6b\x33\x78\x3a\xa0\x95\x35\x94\x8b\x9e\x1c\x52\x69\x57" - "\x01\x06\xde\xcb\x1a\x5e\x15\x4e\xa4\xad\x92\x69\x09\x9c\x86\x71" - "\x4e\x64\x79\x14\xab\x65\x7a\x22\xd2\x97\x01\xbf\xb6\x30\xd7\x3f" - "\x23\xeb\x0f\x43\xda\xa3\x28\xfb\xaa\x96\xdc\xf0\x1a\xf8\x86\xd3" - "\x60\x23\x8c\x4c\x03\xbc\xd7\x35\x91\x43\xc2\x12\xca\xc1\x73\x45" - "\xf3\xaa\x2e\x3a\x51\x48\x26\x1f\xf2\x34\x27\x60\xf6\xf5\xb7\x3f" - "\x86\xeb\xa2\x2d\x73\x4f\x5f\x3e\xe6\xb7\xab\xd2\x79\x2e\x0c\x33" - "\x3e\x67\xfa\xcb\xa4\x71\x9b\x2c\xd3\x18\x8b\x09\x18\xa7\xa4\x1e" - "\xf7\x55\x35\x31\xe3\xb4\x17\x70\x5e\x05\xdd\xdb\x00\x23\x55\xeb" - "\xce\xe7\x7e\xbd\x0a\xb8\x26\x1d\xae\x01\x23\xa0\xf8\xe0\x2a\x5f" - "\x0c\x1f\xfc\x27\x60\x4f\x1e\xc8\x1f\x41\x31\xf9\xfb\x91\x7f\xbf" - "\x9e\x0f\xd9\x1a\x61\x8f\xce\x1f\x31\x09\xf9\x0f\xa0\xfd\x00\x64" - "\x27\xd1\x47\xa9\x75\x3b\xd9\xf6\x1b\x28\x9f\x1d\x53\xbe\x00\xe5" - "\x1f\xc4\xd8\x06\x58\xaf\x73\xf9\x6a\x9d\x57\x51\xde\x82\xf2\xae" - "\x98\xf6\x77\xa0\xfc\x23\x11\xf8\xc5\xf4\xff\xea\x7c\xe4\xe7\x30" - "\x6f\xe1\x37\x0f\x65\x86\xb1\xbc\xb2\xae\x38\x50\xc0\xb6\xe2\x88" - "\x23\x31\xed\x33\x2d\x9f\xd7\x0c\x1a\x75\x33\x8d\x52\xeb\x74\x3b" - "\xe4\x98\xc2\xe1\x6a\x73\x4c\x1b\x63\x50\x67\x29\xf8\xe7\x55\x83" - "\x37\xe2\xd4\x99\x18\x53\x27\x47\xf2\x96\x6a\x47\x1f\x63\x55\x47" - "\xd7\x43\x91\x30\xb8\x6f\xb0\x8d\xae\x2e\x8e\xe9\x7b\x0e\xda\x5d" - "\xbd\x49\xc9\xf9\x15\xe0\x89\xdb\x91\x36\x03\x30\xdf\x60\x3e\x62" - "\x5e\xf7\xfa\x83\xd0\x93\xd3\x53\xd4\x7c\x7f\xf5\xe7\xd6\x62\xe2" - "\xe7\x71\xfc\xcc\xb0\x45\x5f\x96\x2e\x03\x57\x7f\x8e\x5f\x4e\x6f" - "\xe1\x74\x96\x3d\xd1\xf7\x13\x4d\xc1\x4c\x4b\x80\x8c\x9a\xf0\x1e" - "\xd6\xdb\xb8\x0f\xef\x09\xc0\xff\x35\xe8\x60\xf0\xec\x74\xe6\xc7" - "\x09\x48\xbf\x4b\xcf\xbf\x8d\xcb\xe3\xf9\x36\xfd\x99\xf9\xf6\x35" - "\x9d\x6f\x21\x07\xd7\xdc\x2c\xdb\x96\xb2\xa0\xea\x6b\x8a\xef\xa7" - "\x20\xef\x1a\xfc\xce\xc0\x2f\xe3\xf5\x10\xda\xfe\xdc\x79\x8e\x6c" - "\xce\x30\x6c\x0e\xf5\xfe\x47\xfc\x3e\x8c\xdf\x0f\xf0\xfb\x08\x7e" - "\x6b\x59\x6e\xfd\x2b\xf2\x29\x86\x67\xba\x34\x25\xab\xc3\xd4\x18" - "\xa6\x95\xeb\xf2\xa3\xe4\xf7\xcc\x40\x9a\x50\x69\x26\x45\x73\x3d" - "\xad\x6f\x3a\xb7\x9f\x0d\xf8\x05\xdc\xbe\x2e\xf7\x43\xd4\x38\xa9" - "\x32\x9a\xaa\x67\x56\xe3\xad\xa7\xa9\x72\x09\x91\x6d\xe2\x37\xb3" - "\x24\x20\x04\x7e\xc7\x32\x5d\x7d\x74\x4d\x06\x68\x62\xc6\x3b\xeb" - "\x3e\x93\x2c\x2f\xe1\x5e\x5d\x15\x31\xde\xb0\xc5\xaf\x29\x88\x1e" - "\xef\xd4\x3a\xa6\x19\x8f\xb7\x81\x2f\xe3\x0e\x7e\xe6\x39\x6d\xa8" - "\xc1\x33\xe0\xed\x2e\xe8\xc7\x40\x62\x31\xf3\xdd\x35\x0d\x3e\xfa" - "\x65\xb9\xb4\x83\xca\x1a\xb6\x72\x7e\x00\x7a\x86\x79\x23\xb1\x90" - "\xe5\xe5\x9a\x23\x46\xbe\xcc\x4b\xfa\xad\x8f\xe1\x27\x16\xc8\xbc" - "\x2e\x1f\xd8\xc5\xc8\x63\xdc\x58\x8e\x13\x8b\x38\x6f\xa4\x65\x00" - "\x6e\x4d\xbe\x0e\x37\x91\xed\x07\xb6\x03\x30\x1f\x77\xa2\xcc\x58" - "\x1f\x5d\x99\x33\xd8\x9a\x4b\x78\x6a\x72\xc6\x11\x99\x6e\x71\xd1" - "\x10\x6f\xe8\x28\xcd\x0e\x89\xf0\x38\x17\x25\x79\x43\xbb\x09\x0c" - "\x72\x95\x37\x74\x8c\x6e\x21\xba\xde\x1b\xaa\xc0\x7c\x5b\xc7\xf9" - "\x9f\xa4\x53\x42\x02\x7e\x9d\x37\xb9\x4c\x09\xde\xd0\x7a\x1a\xe3" - "\x32\xe3\xb7\x80\x1e\x18\x22\x7a\xbc\xa1\x2c\x94\xcb\xa3\xd9\x61" - "\x71\x66\xea\x10\xf1\x97\xdc\x30\xa5\x66\x6d\x10\x4e\x6f\x08\xb6" - "\x6f\xe8\x10\xd2\x35\x31\x3b\x7c\x01\x7f\x3d\x42\xf3\xd4\xe4\xcf" - "\x0e\x9f\x11\x53\x36\x7c\x82\xf7\xbf\x08\x61\x22\xe1\x0d\x4d\xa2" - "\xd6\x40\x00\xe5\x9c\x42\x94\xd6\xe4\x3c\x7d\xce\x44\x7d\x98\x3b" - "\xb5\xd2\x9a\x7c\xf4\xd1\xd1\x87\xfe\x61\x5e\x59\xd1\xb7\x1a\xbf" - "\x65\x35\xcb\xe5\xbb\xa7\xc6\x23\x2c\x35\x8e\x5b\xb1\x90\xe0\x3e" - "\x78\x43\x1d\x94\x0b\x53\x78\xf6\x4a\xbf\x60\xfc\x87\xaf\xe5\x75" - "\xc4\x24\x82\xee\xb3\xce\x5e\xe9\x14\xc8\xb3\x88\xa4\x1a\x87\x37" - "\xd4\x45\x68\xc3\x03\x78\x1b\x24\x3c\x4f\x4d\x3d\xca\xfa\xb9\x5c" - "\x24\x1c\x86\xc1\x65\x67\x87\xc9\x8a\xf2\xf5\x7d\x49\x35\x95\xf8" - "\xdb\x8b\xbf\x4e\xd4\xed\x15\xee\xb4\x4f\x05\xe6\x39\xe1\xa9\xb5" - "\x88\xe4\x5a\x5b\x0f\xec\x76\x49\xcb\x30\x0d\x13\xa5\xb5\x18\x7f" - "\x9a\x0a\xde\x02\xbe\xb5\x13\x25\xbe\x65\xb5\x3f\xec\x91\xfd\xa8" - "\xfd\x81\xea\x47\xed\x9d\x9c\xde\x8d\x39\x1e\xcf\x39\xdd\x2a\xef" - "\xa7\xa8\x37\x47\xd6\xf3\xd4\xe6\x08\x4b\x6d\x7e\x10\x32\x03\xba" - "\xba\x98\x8e\xa0\xab\x8b\x69\x09\xf8\x39\x5e\xc7\x46\x12\x49\xb5" - "\xf9\x7d\x49\xb5\x0e\xd4\x2f\xeb\x93\x73\x6f\x6d\x65\x8f\x82\xfd" - "\x26\xe0\xcc\x05\x5f\x26\x02\x46\x25\x60\xd5\xf7\xb9\xed\x34\x7b" - "\xa5\x08\xce\x0e\xad\x0d\xe5\xae\xa4\xc4\xb1\xe4\x02\xbe\xfb\x41" - "\xa3\x3c\xf4\xb3\x05\xbf\x53\x91\x4f\x57\xa3\xad\x4f\x00\xb7\x92" - "\xdb\x43\x3b\xf5\x80\xf9\x0e\x60\xe5\x31\x4e\x17\xdc\x94\x8a\xf7" - "\xbd\x17\x14\x7e\x6d\x9a\xa7\x36\xa8\x59\x6a\x3b\x0d\x1e\x62\xfe" - "\x51\x74\xab\xa0\x59\x01\x11\xf2\x86\x76\x10\x78\x2c\xb5\x35\x70" - "\x8c\xf3\x61\xeb\xef\xc6\x38\x33\x4f\xad\xc7\x6f\x1d\x31\xff\xb4" - "\x16\x2e\xe3\xb2\x9f\x30\x0f\xcd\x2a\x0c\xac\x1d\x47\x85\x09\x78" - "\x77\xe6\x86\x2c\xf4\x74\xa1\xd9\x15\xf6\xd4\x1e\x6c\x2d\xe4\x71" - "\x39\x8a\x3a\x5c\xaf\x80\xac\x09\xb0\x77\x13\x44\xc8\xea\xf0\x9b" - "\xaf\xcc\x77\x8a\xd6\x40\x16\xca\x16\x12\xf7\x87\xf9\x88\xcb\xcf" - "\xec\x12\xbe\xb0\xe5\x6d\x07\xf7\x4d\x0c\x77\xd1\xe1\xae\x3b\x89" - "\xd7\x1c\x87\xbb\xea\x98\x4f\x35\x61\x79\x7b\x3a\x78\xb4\x6f\x66" - "\x97\x6b\xc8\xd3\xe7\x28\x01\x69\xe1\xc3\xf9\xbb\x91\xdf\x82\x72" - "\x87\x24\xdf\xce\x3a\x17\xb2\x86\x2c\xb5\x7b\x43\x9e\xb7\x73\x66" - "\x9d\xeb\x13\x87\xf3\x2b\xe8\xa9\x2e\x17\x68\xb5\x9b\x66\x9e\x0a" - "\x25\xb6\x16\xe6\xa1\x4c\x0f\xd2\xeb\x24\xff\xcf\x3c\xd5\x2d\x66" - "\xbd\x24\xce\xcc\x3a\xf7\x17\x31\x33\x5f\x7c\x92\xeb\xa0\xe1\x57" - "\xac\x15\x1a\xcb\xc5\xa1\x8e\xdd\x74\xc5\x31\x1f\xb1\x4c\x64\xcd" - "\xd7\xc4\xcc\x53\x67\xc4\xd3\x2f\x31\x6d\x26\xd1\xe1\x7c\xc8\x8f" - "\xa3\x82\xe9\xdd\x76\x38\xbf\x09\xed\x4f\x05\x5c\xa7\xf0\x3a\x76" - "\xa0\x6c\xb3\xf5\xa9\x53\xa9\x74\xa8\xa3\x82\x42\x49\xb5\x7b\xc3" - "\xa5\xb5\x07\xb5\xa4\xda\x4e\xad\xb4\x36\x28\x92\xde\x9e\x1e\x2a" - "\x7d\x3b\x27\x9c\xf4\x36\x78\xe0\xed\x83\x18\xa7\x24\x1e\xf3\x5e" - "\xac\xc1\xf1\xfe\xaf\xbd\x3c\xfe\x9e\xb7\xdb\xd0\xd7\x20\xf4\x9d" - "\x50\xbc\xff\x76\x1b\xaf\xa3\x51\x37\xd8\x97\xf4\x76\x27\xca\x05" - "\x95\x7c\xed\xb2\x30\x5f\xca\xf9\xa6\x6c\xd7\x30\xcc\x0f\x89\x7d" - "\x49\xbb\x6c\xf8\x4b\xc7\xdf\x44\xa4\x79\x00\xff\x2a\xc9\x53\x9e" - "\x5d\x1e\x71\x4f\x39\x6c\xc7\x73\xcc\x93\x4e\x91\xb4\xab\x7e\x76" - "\x78\xa2\x13\x74\x84\xac\xec\xf2\x68\xa5\xbb\x2a\x01\xef\x60\x50" - "\xf2\xff\xae\xff\xc5\xf0\xfb\x56\xa7\xf3\x1a\xdb\x8c\xfc\x36\x51" - "\x56\xf7\x60\x0f\xf3\xab\xa5\x6e\xba\x66\xa9\xab\x17\x9e\xba\x9c" - "\x9f\x6c\x10\xfe\xb0\xa7\xce\xa1\x79\xea\xf2\x43\x43\x61\x97\x3a" - "\x9a\x88\x75\x54\xe8\x77\x02\x74\xf8\x03\x68\x52\x27\x79\xc0\xeb" - "\x80\x1c\xac\x1c\xe5\x3a\xdc\x05\x7e\x28\xfc\xb5\xd4\x4f\xad\x81" - "\xa3\x92\xae\x22\xa9\x6e\x3a\xf3\x15\x8f\xf1\xd3\x85\xe4\x12\xa5" - "\x75\x39\x5a\x69\x5d\x7e\xb8\x14\x70\x93\xd0\x4e\xf2\xcf\x4f\x06" - "\xa5\xcc\xfe\x1c\x3c\xdb\x84\x3a\x7f\x20\xc5\xe7\x3f\xef\x1c\x4c" - "\x4f\xb2\xbe\x62\x1d\x35\x3b\x14\x64\xbe\xf9\x92\x75\x9b\xd2\x55" - "\x94\x6b\xe8\x2a\xd6\x53\x6c\xeb\xb3\xae\xd2\x74\x5d\xa5\xe9\xba" - "\x4a\xbe\x5b\xa0\x6f\x3c\x35\x0e\xd6\x49\xb3\x1d\x4a\xd7\xcc\x0e" - "\x67\x08\xf0\x47\x0a\x60\x38\xd4\x78\xa0\x4c\x59\xcd\x06\x59\x5e" - "\xd2\xa9\xa6\x5e\x83\xce\xc1\xdf\x5e\x4d\xe9\x9c\xa0\xae\x73\x4c" - "\x86\xce\x09\x63\xfe\x82\x5c\x69\xf1\x74\x8e\xa6\xeb\x9c\xb0\x50" - "\x3a\x47\xd3\x75\x0e\xa7\x87\x75\x9d\x13\x8e\xa3\x73\x20\xd3\xdc" - "\xdf\x44\x5d\xd7\xb8\x58\xd7\x70\x7f\xc1\x6f\xf9\x9a\xd2\x35\x1e" - "\xd8\xf9\x26\xd6\x35\x61\xd4\xd1\x0c\x5d\xd3\x23\xeb\xd7\xb3\xbe" - "\xe9\xfb\x67\x82\x0e\xb5\x13\xeb\x19\xa9\x53\x42\xd7\x87\x58\xa7" - "\x80\x7e\xf7\xc6\xea\x14\xc0\xdb\x8b\xe7\x54\x5d\x57\x75\x5a\xd7" - "\x8a\x10\x74\xca\xc1\xd9\x8e\x00\xc6\xfa\x73\xac\x75\xa1\xbb\x1d" - "\x45\x2e\xaf\x23\x44\xd0\x05\x41\xd1\xea\x22\xe0\x08\x1e\x0e\x43" - "\x5f\x10\x41\x36\xa7\x87\x20\xe7\xe0\xf3\x9c\xd6\xc2\xcf\x28\x0c" - "\x79\x9d\xd9\xd5\xed\x7d\x3a\x90\x9e\x3a\xf3\x94\xf0\x83\x3e\xbe" - "\xa7\x0b\x5d\xd0\x31\xe9\xfe\xc3\x5d\xfb\x29\xab\x43\x68\x59\xf3" - "\x7c\x76\xc8\x41\xce\xcc\x45\xcd\xd6\xa7\x5f\x4a\x85\xac\x89\x66" - "\xe8\xc6\xff\x6b\xe6\xa9\x54\xeb\xdc\x0e\xba\x36\x6b\xbe\xd0\xc2" - "\x90\x35\xf4\xf7\x20\xfa\xdd\x06\xdc\x3b\x21\x77\x41\xc8\xda\xf4" - "\x50\x8c\xac\x89\xe4\xb7\xff\x15\xcf\x76\x45\xbf\xb7\x83\x90\xb5" - "\x36\x4d\xce\x69\x1d\x72\x7d\x85\x76\xe4\xde\x13\xe4\xad\x4d\x2b" - "\x55\xf2\xa6\x09\x25\x6f\x1a\xd3\xcf\xa4\xcb\x1b\xc6\x02\x72\x63" - "\xc3\x5f\x3a\xfe\xe2\xcb\x5b\x61\x8c\xbc\xbd\xa4\xcb\x5b\x92\x92" - "\x37\x8c\x6b\x62\x78\xb5\x92\x39\x6e\x83\xd7\x61\xfd\x32\x97\x5c" - "\x37\x5d\xb0\xed\x28\xf9\x47\xca\x1d\xe6\x97\x3a\x07\x64\x2e\x1f" - "\x32\x07\x78\xc2\xcf\xfa\x13\xfc\xf9\x5f\x3c\xe7\xcd\x2a\x14\xff" - "\x95\x1b\x1e\xe5\x82\x4c\x39\xa0\xd3\xfe\x02\x7d\xfa\x5f\x4f\x07" - "\xa8\x06\x32\x35\x1d\xb2\x94\x03\x99\xca\x87\x6c\xb1\x4c\x75\x86" - "\x57\x33\xcc\x9f\x77\xf6\xc3\x90\x73\x66\xb4\x4c\xa9\x9d\xeb\xf8" - "\xfb\x7f\x3d\xee\x6b\xa1\x19\x3f\x6c\x62\x7b\x05\xcf\x9d\x3e\xfa" - "\xa8\x5c\x7f\x0e\xf8\x68\xfb\x46\x69\xeb\x40\x16\x0b\x4b\xe8\x9a" - "\x93\x74\x5d\x3d\xf8\x9e\xf0\x9c\x82\xe7\xdd\xb3\x6f\xfe\x04\x36" - "\xc5\x97\x1e\xb4\xdd\xc3\xf2\x28\xdc\x13\xb0\xb6\xa0\x4c\xf0\xa3" - "\x45\xf4\xa4\xa7\x88\xe4\xc6\x6b\x45\x9f\x8d\xf7\x98\xac\x78\x1f" - "\x0e\x1a\x8c\xc1\xef\x88\x1d\xe7\x29\x0d\x7f\xb6\x1d\x6e\xcd\xc5" - "\xf6\x15\x9e\x33\xc4\x0a\x5b\xf2\xe6\xe5\x34\xd6\x1a\x20\x4b\xb5" - "\x5b\xcb\xb1\xae\x4d\xe5\xbd\x96\x34\x7e\x16\xee\xea\x86\xea\xf3" - "\x64\x66\x3b\x52\x4b\x42\x7b\x0e\xab\x10\x4b\xd3\xa9\x7a\x09\xf4" - "\x84\x9b\x6c\xd5\x6e\xd1\x10\xee\x61\x3a\xd4\xe4\x18\xb8\x30\x6e" - "\xc0\xf3\xbb\xc0\xb3\xe9\xd1\x95\x99\xf4\x07\x07\xc5\xdd\xa3\xec" - "\x71\x5f\xd7\xdf\xff\x41\xf2\x43\x06\x4d\xe2\xe7\xdb\x47\x1b\x74" - "\x1a\x64\x3f\xcb\xcc\xf3\x75\x78\xb9\xf0\x6f\x79\x8e\x98\x16\x36" - "\x67\x48\xfc\x15\x74\x74\x95\x84\xe9\xbb\xb3\x57\x5e\x27\xbc\x5d" - "\xa2\xd9\xeb\x38\x45\xd5\xc8\x2f\x29\x16\x9a\x96\xd4\x08\xde\x6d" - "\x08\x75\x2f\x17\xa1\x1d\xd2\xee\xb5\xbb\x7c\x74\xb7\x5d\x8d\x45" - "\x6d\x9b\x5c\xd7\x59\x1a\x42\x80\x75\x15\xc3\x3a\x8c\xfa\xe1\xd2" - "\x46\xd8\xa7\xf6\x7a\x1f\xb5\xc8\x33\x03\xc8\x73\x5b\xe1\x2a\xfa" - "\xce\x49\xb2\xfb\xa4\x6d\xef\x69\x4c\x63\xbd\x80\xb4\x54\xa4\x75" - "\x89\xd2\x46\x1b\xca\x63\x7d\xdc\xe0\x53\xb6\xae\xbd\xcb\x28\x87" - "\xe7\x66\x7e\x8e\xe2\x21\x79\xaa\x41\x18\x2f\xfb\xc0\x61\x48\x82" - "\xce\x56\xc6\xbf\x54\xfc\x65\xc6\xcf\x1e\xd0\xeb\x6f\xe7\xc0\xee" - "\x22\xe7\x1a\x1a\x8d\xf1\x01\x7e\xd7\xcf\x77\x3a\xc4\x09\xe1\xb6" - "\x07\x77\xad\x0a\x62\x5d\x70\x7d\x81\x8f\x5e\xee\x18\xdc\x7e\x86" - "\xdd\x73\x5e\x74\x6e\x59\xde\x4f\xcb\xe3\xb3\x57\x6a\x82\x9f\x59" - "\x2f\x55\x23\x9d\xe9\x06\x38\x7b\x0c\x9a\x0d\x3e\x2e\x8d\xa9\x6a" - "\x1d\x78\x43\x9a\x70\x0b\x6a\xbe\x96\xcf\x0f\x6e\xb8\x46\xd1\xe1" - "\xed\xce\x6e\xe8\x13\xde\x1f\xad\x06\xbd\x97\xda\x44\xb0\xc7\x7d" - "\x03\xec\xff\x5b\xca\xf5\xbd\x98\x80\x37\x34\x8d\x75\x4c\xdc\xf9" - "\x8b\xcf\x67\x06\xe0\x7f\x6f\x42\xeb\x68\xe8\x23\xa9\xa3\x9a\xc6" - "\x94\x28\xbc\x83\x0c\xb7\xb9\xe4\x2c\x75\x20\x7f\x69\x40\x74\x0a" - "\x4f\x93\x8d\xd7\x1a\xcd\xcb\x7b\x39\xed\x4e\xf0\xb6\x68\x5e\xc2" - "\x38\x7d\xef\xce\xe6\x6b\x7b\xe9\x04\xd6\x79\x58\xe3\xf9\xd5\xbe" - "\xcc\xf7\xec\x07\x8a\x48\xdf\xeb\xb9\xa1\xc6\x47\x63\x73\x0c\xbc" - "\xd8\xde\x00\x7d\x99\xd6\x6d\x6c\x77\xf0\x9e\xfb\xd2\x62\x11\x64" - "\xfb\x03\x65\x0f\x19\x7d\xe0\xfe\xe9\xfd\xf2\x45\xf6\x0b\x38\xf8" - "\xb1\x66\x96\x34\x58\xba\x92\x2c\x76\x45\x6b\x0b\xf7\x97\xfb\xc2" - "\x7d\x96\x7d\x91\xba\x16\x73\x45\xe8\x4e\xac\xc1\x64\x3a\x60\x7d" - "\x0f\xeb\x9f\x5b\x02\x8a\xa7\x6e\xa8\x89\xe5\xa3\xfe\x71\xb4\xd4" - "\xd6\x3b\x2f\xd0\xb5\x4e\x4d\xb4\x03\xe6\x3e\xd0\x29\x91\x7f\x35" - "\xb6\xb9\x83\xcc\xbf\x1f\xfa\x78\x6e\xf6\x16\x9f\x63\x5b\x9b\xcb" - "\x5e\x8d\xb2\x1d\x28\xf3\x2f\x7a\xd9\x7f\x51\xe7\x2d\xf2\x77\x18" - "\xff\x62\x3e\x7b\x07\x78\x34\xfb\xe5\xbc\xff\x5b\x9f\xf1\x2e\xf0" - "\x8e\x5f\x87\x28\xfd\xd0\x17\x1f\x97\xba\x7a\x9e\xd7\xc2\xe7\x45" - "\x17\xda\xf9\x16\xf3\x94\x73\x25\x7d\x1b\x7c\x79\xbc\x64\x0d\x5d" - "\xcd\xfc\x24\x92\x1a\x47\x2b\xba\x8f\x49\x11\x6e\xd8\xa1\xd0\xaa" - "\x85\xcb\xe9\x3b\x90\xa3\xb4\x93\x34\xe6\xfa\xdc\x62\x3b\x70\x25" - "\xda\x72\x9a\x48\xea\xa0\xa4\x46\x9b\x37\xf4\x05\x55\x9f\xe6\xfd" - "\x96\x31\x99\x06\x2f\xe2\x39\xeb\x52\xfa\x02\xf3\x4d\xba\xda\x2f" - "\x18\xb3\x8f\xf7\xd7\xdb\x69\x4c\x1d\xf7\x17\x7f\x09\x48\x7b\x43" - "\x9c\x17\x73\x85\x9c\xdb\x76\xd9\x7c\x34\xe6\x08\x7e\xd3\xe5\x9f" - "\x9b\xe6\xe9\xef\x36\x94\x5b\x2f\xce\x6b\x5c\x26\x1d\x69\x55\xc2" - "\x9d\xc0\x32\xd1\x84\xb6\x0f\xfa\x68\xf2\x44\x35\x36\x63\x2a\x18" - "\xd6\x20\x38\xd8\x30\xb6\xc4\xbc\x79\x82\x6e\xbc\xcd\x5e\x92\x00" - "\x3c\x6e\x1c\x22\xe5\x02\xb0\xaa\x4d\x4a\x6f\x6b\xc0\x75\xa7\x5b" - "\xcb\x87\x8e\xce\xd7\xca\xf6\x65\xca\x67\x3d\x4f\xe8\xf3\x69\x7c" - "\xf8\x4d\x63\x9a\x47\x31\x8f\xdf\xb8\x51\xc1\x69\xb2\x35\x8f\x3a" - "\xc9\xef\x9b\xf8\x3d\x60\xf9\x38\xd3\x5b\x99\x89\xf6\x4f\x72\xbb" - "\x1b\xd5\x3e\xc0\x8d\x9b\xba\xd1\x46\x8f\xfb\xc6\x8d\x3e\x1a\x97" - "\xa7\xce\x1a\x3e\xce\x1c\x44\xf6\x52\x59\x76\x58\xe6\x94\x4c\x7f" - "\x7f\xe6\xe1\x1a\x96\xbf\x5d\x96\x6e\xcb\xae\x74\x5d\x6f\xf0\xde" - "\x4a\x4a\x3b\x7d\x3f\xeb\xb0\x4d\xf2\xb7\x49\x98\x6e\xec\x7a\x57" - "\xf3\x9b\xf8\x3c\x48\xa9\xaf\xef\x67\x5d\xfc\x77\x13\x14\xe0\x4d" - "\x19\xf8\x9b\xa4\xbf\x4f\xc7\xdf\x5c\xfc\xed\xc6\xfb\x24\x49\xbb" - "\xed\x79\x09\x3e\xe4\x75\xc3\x7e\xe7\x77\x1f\xdd\x94\x2e\xb6\x8f" - "\x31\x09\x8b\x7a\xae\xfe\x36\xef\x25\xdc\x34\x07\x63\x70\x4c\x8d" - "\x05\xc3\xa1\x04\xe0\xc6\x74\x17\xce\x4a\x11\x6c\x29\x09\x00\xef" - "\x9b\xd6\xb7\x54\x06\xc8\x7e\x13\xf7\xff\x26\x0f\xf7\x29\x00\xfa" - "\xf3\xef\xd2\x4a\xe1\x3f\x50\x15\x22\x3e\x97\x02\x2c\xc8\xff\xcf" - "\xa6\xaa\x7d\x89\xa6\x4c\x86\xa7\xf3\x84\x30\xfa\xaf\x74\xda\xc7" - "\x99\x3c\x96\x80\xf5\x19\xfa\x6e\x3d\x4d\xdf\xbf\x46\x24\xef\xcb" - "\x3c\x90\x4f\xb4\x03\x7a\x04\x73\x8d\xdc\x2f\x87\x5e\x62\x98\x98" - "\xff\x6f\x9c\x64\x9c\xa3\x6c\x42\xfe\x66\xe4\x61\xee\xf1\x1f\xce" - "\x0f\x12\xc3\x0a\x73\xff\x50\x7f\xbf\xe6\x37\x63\xae\xc6\x98\x7f" - "\x9c\x59\x52\x08\x3d\xd3\xaf\xb7\x6e\x6a\x5a\x73\x4a\x04\x8d\xfe" - "\xf1\x59\x65\x8f\xfb\xfb\xe0\xff\x45\xf3\x06\xe5\xff\x7e\x9c\xd3" - "\x17\x1d\x18\xa3\xc6\x4c\x03\x5d\xa2\xc7\x2c\x3d\x5f\x8d\xd7\xf7" - "\xab\xa2\xc7\x2b\x1d\x3d\xf9\x7e\x07\xfe\x42\x78\x4e\x51\xef\x91" - "\x7f\xdf\x3f\x12\xf1\x0e\xee\x48\x9f\x03\x7c\x30\xff\x8f\xc9\x51" - "\xe3\xc0\xe9\xe8\x07\xf3\xc8\x57\x64\xe1\xfd\x39\x3e\xa7\xe4\x74" - "\xe6\x67\x4e\xd7\x60\xcf\xa0\x3f\x7e\xe4\xa7\xb2\xac\x6e\xd1\x28" - "\x2a\xdf\xbb\x1e\x3c\xb7\xaa\x97\xf1\xbf\x4f\xee\x29\xae\xf5\x78" - "\x98\x4f\x51\x27\x60\x0d\x79\x60\x57\xa6\x67\x19\x74\x45\xbd\x09" - "\x9c\xcf\x3c\x89\xf4\x3c\xd0\xa5\x46\x9e\x43\x62\xed\x17\xdf\xd6" - "\x48\xf7\xf4\xdb\x64\x96\x5d\x1e\xd6\x47\x5d\x74\x73\x05\x74\x16" - "\xc6\x76\xdf\x44\x35\xd7\xdc\xfc\x06\xbf\x43\x57\x1e\xc7\x73\xf9" - "\x61\xe8\xa4\xde\xb2\x06\x57\x9f\x89\x86\xf5\x9a\x28\x33\x54\xf6" - "\xe5\xee\x50\x72\xfd\x46\x6f\xe7\x1e\x6a\x0d\xbd\x4f\xf6\xe7\x24" - "\x8c\x52\x2f\x7a\xee\x5c\x29\xc2\xef\xf5\xd6\x9b\xbd\xa1\x33\xcd" - "\x98\x9b\xaf\x3b\x49\x37\x4b\x7a\xbc\xd2\x8e\x59\xff\x69\x09\x5b" - "\xa7\xcf\x97\x9e\xcd\x0b\x45\x68\xf3\x09\x11\x80\x7d\x97\xbc\xa9" - "\x97\xc6\x6e\x5b\x45\x19\x55\xbd\x34\x66\x67\x2f\xa5\x8b\x2f\xd3" - "\x4d\x55\xb0\xdb\x9e\x3e\x97\x4a\xd0\x09\x39\xc3\x0b\xc9\xb2\x73" - "\x15\x49\x1e\x09\x97\xc2\x7e\x0b\xc1\x7e\x3b\x93\xce\xba\xb1\xdf" - "\x7e\xeb\x93\xb6\x71\xe3\x7a\xc5\x47\x8d\xeb\xaf\xcc\xa7\x84\x94" - "\x79\x94\x0a\xfc\x9c\xa7\x29\xfd\x8f\x29\x1d\xb0\x1d\xd1\x67\x9f" - "\xde\x5f\xd0\xee\x98\x35\x9f\x86\xc9\xbe\x42\x5f\x8b\xd2\x7d\x13" - "\x07\x9d\x87\x4d\xcc\x53\x01\x96\x1b\xee\xc3\x71\x3e\x2b\xdd\x33" - "\x2a\x68\x5e\x5a\x25\x82\x9c\x5e\x74\xbd\x08\x22\xfd\x20\xb7\xdd" - "\x80\xf4\x1e\xf7\xcd\x7e\x9f\xa9\x6a\xee\x60\x3c\x8a\x75\x92\xae" - "\x57\x6e\x79\x49\x98\x5c\xcc\xa3\x07\xd7\x84\x60\x7f\x9f\x66\x99" - "\xbd\xa5\x70\x76\x81\x08\xd9\x17\xf3\xb9\xf5\x2d\xf3\xf8\x4c\x9d" - "\xcf\xd2\xde\x85\x6d\xf3\x75\xe7\xe8\x3c\x5f\xf0\x7a\xc1\x5a\x00" - "\x98\x65\xbb\x0e\x0a\xac\xd3\xbf\xa9\x1d\xcf\xbe\x1c\xaf\x4b\xbf" - "\x91\x5b\x76\xfb\xe8\x27\x66\xc6\x9d\xcf\x4c\x59\x77\xc2\xde\xba" - "\x1a\x78\x75\x06\x40\x07\xe4\x63\xfe\xff\x71\x9b\x7e\xee\x29\xfd" - "\x51\x90\x86\xf9\x7f\xc6\x68\x4e\x2b\xba\x9e\x6c\x45\x76\x31\x98" - "\x4d\x63\x96\x3e\x22\x26\xfa\x56\x8f\xfb\x9f\xd2\x0c\x38\x98\xa7" - "\x7e\xd9\x6d\x7a\xf4\x51\xa4\xa5\x1b\x70\x50\xe6\x1a\xbc\x4f\xec" - "\x2f\xa3\xea\x4c\x8f\xa8\xf3\x68\xb7\xe9\x96\x5f\x22\x6d\x6e\x4c" - "\x9d\x82\x98\x3a\xc5\x11\x75\x5c\x7a\x3b\xe5\x31\x75\x6a\x62\xea" - "\x34\xc4\xc1\xad\x25\xa6\xce\xd1\x98\x3a\x1d\x71\x70\x0b\x46\xd7" - "\x19\x6b\x89\xae\x33\xd6\x16\x41\x4b\xf6\xd7\xc8\x40\xda\xd8\x98" - "\x3a\x93\x62\xea\x64\x19\xef\x83\xf9\xe4\x2c\xdd\x41\x36\xf0\x66" - "\x27\x8f\xe7\xeb\x18\x9f\xee\x37\x9f\xef\xd1\xeb\x7a\x2e\xee\xd7" - "\xd8\xaa\x98\xf6\x76\xc7\xb4\xd7\x74\x71\xbf\xc6\x1e\x89\xa9\xe3" - "\x8b\xa9\xe3\x8f\xa8\x53\xa3\xda\x19\x67\x8e\xae\x33\x2e\x2d\xba" - "\xce\xb8\x31\x17\xf3\xd5\xb8\x89\x31\x75\xa6\xc7\xd4\xc9\xf9\x1a" - "\x5a\xf0\x3c\xae\x7c\xa7\x46\xb2\xad\x7c\x3f\x6c\x84\x71\x9f\xb2" - "\x4f\xc0\x16\xb4\xb1\xab\x37\x38\x84\xcf\x3f\x78\xbe\x3a\xe0\x08" - "\x62\x6e\x19\x87\xf5\xcf\x1d\x76\x63\xce\x62\x7f\x09\x96\x69\x65" - "\x63\x8f\xf3\x0c\x66\x8b\x72\x3b\x86\x2f\x15\xb7\x75\x60\x34\xcf" - "\x53\xe3\x02\xfd\x36\xb1\xf2\x2f\x22\x05\xe7\xd6\x19\x0c\x87\xdb" - "\xaf\x56\x7e\x18\x09\x6c\x93\x1f\x70\x70\x9d\x5b\xd3\x23\xec\x68" - "\x6e\x3f\xb0\x67\x55\xd0\x1c\x8d\xc7\xad\x96\x4b\xe0\x91\x02\xdb" - "\xc8\xd2\x5a\x45\xc4\x67\xcc\x87\xab\x60\x03\xc1\xee\x67\xdc\xda" - "\xe9\xd6\x72\x69\x93\x2d\xee\x25\x7e\xf6\x16\xdf\x2d\xcf\xa0\x95" - "\x4d\x7a\xeb\xc1\x16\xb4\xcf\xb6\x7b\x4b\xe1\x59\xea\x96\xf3\x2f" - "\xdb\x6e\xb7\x9e\x3b\x50\xec\x67\xbc\x9a\x0d\xff\x0c\x1f\xdd\x1a" - "\x90\xb6\x86\xa7\x49\x9e\x8f\xf3\x99\xd1\x81\xc0\x44\x2e\x03\xfe" - "\x1f\x77\xc8\xe8\x2f\xe6\x7a\xf0\xc0\xad\x55\x97\xa2\x99\x1a\xc3" - "\xf1\xa3\xa3\x79\x72\x08\x78\x65\x7c\x46\xf4\xb8\x8f\xcf\x8c\x1e" - "\xf7\xf1\xd9\xd1\x3c\x69\x02\x4f\x8e\xcf\x8b\xa9\x53\x14\x53\x67" - "\x7d\x44\x9d\x72\xbd\x9d\xca\x98\x3a\xf5\x31\x75\xf6\x46\xbc\xa3" - "\x8f\xe3\x0f\xf6\xaf\x7d\xa4\xef\xcf\xf8\xb6\x88\x77\x53\x85\xd4" - "\x9f\xe3\xbb\x8c\x34\xde\x43\xda\xb9\x55\xf9\x9e\x28\x78\x19\x96" - "\x18\x79\x47\xf9\x8c\xd1\xd1\x38\x64\x8c\x8d\xc6\x21\xa3\x5f\xfe" - "\xb7\xa8\xb5\xdb\xef\x4f\xd0\x6d\x69\x92\x87\x20\x23\x98\xb3\x67" - "\xf3\x3b\x60\x55\xa2\x3c\xe8\x90\x51\x10\x03\xaf\x38\x06\xde\xc6" - "\x88\xf7\x54\xbc\x57\x45\xf4\x21\x35\xd1\x26\xfd\xf8\x60\xbf\x65" - "\xec\x31\xd2\x79\x4d\x09\x7c\x3b\x9d\x72\xae\xc9\x64\x9f\xaa\x11" - "\xed\x94\x51\xcb\xeb\x4f\x1d\x66\xa4\xfc\x93\xde\xaf\x40\x34\x1e" - "\xb7\x99\xa3\xf1\xb8\x2d\x2d\xa2\x5f\x01\xeb\x5a\x7a\xc8\x1a\x7a" - "\xf8\x71\xb6\x7d\xd8\x17\x4e\xfa\x36\xad\x81\xcd\x76\x8e\x52\xd9" - "\xa7\xec\x44\x11\x25\x7a\x1d\x9d\x58\xcb\x35\xba\x06\xe5\xa7\xe4" - "\xa6\x54\xdd\x2f\xcf\x0e\xf8\x45\x06\x3f\x6a\x65\x4d\xa9\x5a\xe9" - "\xde\xb1\x48\x83\xfe\x1b\x4f\xca\xce\xfd\xc8\x21\x9c\x39\x95\xa0" - "\x27\xd6\x45\xb7\x2f\xd3\xd7\x11\x63\xd8\x37\x0a\xba\xa7\x13\x73" - "\x7c\x8a\x3a\x1b\xbf\xad\x29\x82\xaf\x03\xf6\x55\xf7\x8a\x76\xba" - "\x7d\x2d\xdb\x00\x2c\xa3\xec\x63\x75\x20\xe4\x27\x5e\x7b\x7b\x43" - "\x27\xa5\xed\x86\x7c\x97\x5e\x37\x18\x51\xd7\xaf\xaf\x8d\x79\x1e" - "\x35\x8f\x0f\x91\xf9\x40\xc0\x4f\x80\x93\xa6\xec\xbd\xdb\xd7\x1e" - "\x80\xbc\xf6\xb8\x6f\x1f\x6b\xd4\xe1\x75\x34\xd7\xb1\x16\x91\xf9" - "\xd6\x62\x32\x37\xaf\x6a\x97\xb0\xf5\xb1\xef\x84\x2d\xdd\xe5\x2d" - "\xee\x24\x6f\xa0\x8d\xf7\xba\xcc\xca\x4f\xe5\x76\x57\x62\x90\x2c" - "\xdd\xa5\x4d\xb0\x2b\x6f\x77\x85\x4b\x9b\x78\xbd\x64\xf7\xd1\x6d" - "\x75\xac\x6f\x22\x69\x37\x6d\x5a\xf6\xc3\xb3\x67\x8e\xfb\xe9\xc3" - "\x33\xe6\x4c\xbb\xdb\x3e\x67\xd1\x0b\x0b\xf2\xc6\xbd\xb8\xac\xc8" - "\xbe\x62\xc9\xa2\xa2\x45\x8b\x7f\x66\xcf\x70\xdc\xe8\xb0\xcf\x2f" - "\x52\xbf\xe9\x05\xf3\x97\x16\x4d\xe6\xc7\xb1\xf6\xc2\x25\x0b\x96" - "\xcb\xc7\x9b\x93\x29\x1a\xc8\xa2\xa2\x05\x4b\xec\x37\xe6\x8d\xb5" - "\x3f\x30\x7f\x51\xc1\xb2\x25\x0b\xe2\xc2\xba\xdb\xbe\x64\xc1\x92" - "\x05\xf3\xf3\xec\x93\xed\x19\x0c\x39\x12\x5c\xc4\x78\x66\x18\xf3" - "\x18\xcf\x5f\x5b\xdc\xe2\x88\x3e\x9f\xf9\x14\xff\xdc\x31\xe7\xe2" - "\xb9\xec\x8e\xfc\x68\x9e\xbb\xc3\x11\xcd\x73\x77\x78\x2e\x9e\xcb" - "\xee\x88\x99\xff\xee\x88\x99\xff\xee\x68\xba\x78\x2e\xbb\x23\x66" - "\xfe\xbb\x23\x66\xfe\xbb\xa3\x7f\xfe\x03\x2f\xf9\xd6\x49\xbd\x30" - "\x21\x66\xfe\x9b\x10\x33\xff\x4d\x18\x13\xf3\x3e\x21\xe2\xfd\x6a" - "\xbc\x4f\x8d\x9c\x1f\xf1\x3e\xc7\x90\xcf\x01\xfd\x32\x21\xdf\x28" - "\xc3\xba\x1e\xba\xb9\x43\x2f\xeb\x8a\x28\xdb\xa9\x97\xad\xe8\x97" - "\x3f\x3e\xfb\x46\xba\x5a\xaf\x4f\xb8\xc0\x3a\x9d\xfd\xd0\x78\x6e" - "\x82\x7c\x5c\x77\x9a\x26\xbc\xc4\xb0\x98\x87\xd9\x2f\x51\xbc\xf9" - "\x64\x4f\xf5\x08\xb2\x70\x9d\xea\xd7\xc8\x2c\xdc\xb7\x6f\xc4\x2f" - "\x21\x2d\x05\x7f\xd0\x29\x13\x60\xff\xee\x18\xab\xe6\x8b\x3b\x33" - "\xa5\xcd\x8f\x3a\x0a\xfe\x9d\x72\x5d\x03\x38\x36\xd4\xb1\x6c\x51" - "\x73\x71\x07\x9e\x53\x98\xa7\x51\xdf\x2c\x4c\xb7\xff\x07\x7e\x09" - "\x69\xa9\xf8\x4b\xeb\x71\xdf\x99\x69\xc0\xe3\x33\xf2\x78\xf2\x1f" - "\x6b\xe7\xf6\xaf\x07\x4d\x64\xdd\xe2\xd6\xda\xbc\x1a\xdb\xd6\x77" - "\x16\xa9\xbd\x85\x86\x1a\xe1\xfe\x24\xa7\x1a\xe9\xf1\xd7\x49\x77" - "\xc2\xfe\xbb\x33\x5f\xed\xb7\xdc\x89\xf1\xff\x49\x85\xda\x3b\x6d" - "\xa8\x81\xbe\xed\x3d\x41\x3f\x78\x14\xbf\x7d\xf8\xbd\xcb\x80\xdf" - "\x2c\xd7\xdb\x77\x1e\x15\xee\x84\x47\x18\x6e\x4c\x7a\x17\xf4\x5b" - "\xaf\x35\xe4\xca\xb9\x38\xef\x07\x58\xc3\x24\x3e\x1c\x27\xdd\x0e" - "\x9b\xa1\xd7\x47\x3f\x98\xc3\xf8\x46\xa4\x4f\x14\xee\xe1\x73\xb8" - "\xbc\x8f\xdb\x43\x9d\xc1\x6c\x6d\xc3\xef\x54\xf9\x89\xff\x60\x7d" - "\x4c\x3f\x2e\x9c\xa0\x1f\x26\xa8\x7e\xfc\xf0\xa9\x98\xb6\xab\xe2" - "\xf7\xe3\x07\x7b\xd0\x8f\x0b\x83\xf4\xe3\x88\xa4\xad\x09\x7d\x31" - "\x5d\x94\xc7\xf6\xcf\x05\x49\xf7\xa8\xf4\x1f\x9a\x75\x5b\x28\x80" - "\x75\x58\x2a\xf2\x64\xdd\x47\x8a\x07\xc6\x4d\x2f\x37\xd6\x5a\x49" - "\xd9\x17\xb7\xf9\xc3\xa9\xc2\x3d\xec\x11\x1f\xfd\xb0\x58\xc2\x19" - "\x48\x9f\xab\x70\x01\x9d\x4c\x4c\x27\xf4\x07\xf5\x06\x1b\x6f\x63" - "\x5d\xa2\xf6\x42\x7e\x08\xf9\xff\xc1\x3c\x63\x2f\x73\x69\xb1\xf0" - "\x1b\x74\x44\xde\xc1\x98\xbc\x60\x44\x5e\x47\x54\xde\x9a\xfe\xf4" - "\x90\x91\xfe\xcd\xc6\x69\xe2\xd8\x98\x71\xc2\xf8\x4c\xdc\x1f\xdd" - "\xef\x89\x93\x54\xff\x30\x46\x17\xd1\x7a\x62\x0e\xc6\xa8\x2f\xfe" - "\x18\x4d\x2c\x8a\xcf\x6b\x13\xe5\x3e\x9a\x18\x41\xf1\xe0\xd5\x63" - "\xec\xfa\x24\x0f\xea\xe3\x74\xf1\xf8\x4c\x3c\x64\x8c\xcf\x37\xeb" - "\xe3\x5d\xa9\x31\x7d\x0c\x9f\xa0\xbb\x36\xa9\xbe\xde\xf5\x79\x34" - "\xec\xbb\xd2\xe3\xf3\xe2\x5d\x99\xe8\x67\x38\x7e\x3f\xef\x9a\x3b" - "\x38\x2f\xde\xe5\x40\x7f\xc2\x17\xf3\xe2\x5d\xca\x87\x49\xe7\xc1" - "\x98\xbc\xdd\xc2\x1d\xb7\x9d\x16\x67\x88\xed\xdc\xbb\xf8\x2c\xc5" - "\x16\x91\x7e\x2c\x9a\xff\xd0\x07\xae\xc7\xf4\x0b\x29\x3d\xcb\xe3" - "\x70\xc2\x4e\xa6\xaf\xe3\xc9\x1e\xf7\xdd\x93\x62\x68\x75\xe6\x04" - "\xdd\xbd\xbf\xdb\x94\x50\xa7\xe8\xf5\xa3\xb5\xd1\x38\xdd\x9d\x13" - "\x9f\x5e\x77\x17\x82\x5e\x67\xe2\xd3\xeb\xee\x8d\x83\xd3\xeb\x6e" - "\x1e\xff\x33\x17\xd3\xeb\xee\xe6\x48\x7a\xc1\xd6\x95\xfd\xfb\x9e" - "\x0d\xbc\xd1\x97\x2b\xaa\xb9\xaf\x61\x4a\xb5\x82\x57\x54\x9d\x2e" - "\xae\x13\xb0\x06\x15\x9f\xc0\x86\xb4\x9c\xa6\xbb\x8f\x19\xf2\x3f" - "\xbc\x92\x86\x89\xbe\x27\xd9\xa7\x28\x81\xeb\x79\x1d\x67\x9a\xbd" - "\xa1\x0c\xe2\xf5\x47\x74\xbb\x3f\x9a\x18\x5f\x17\xfc\x28\x1b\x34" - "\x7d\x2d\x4e\x7a\xbe\xf2\x27\xfb\x51\x4d\xb4\x8e\xf8\x91\x2b\x7a" - "\x8c\x40\x37\xd4\xa3\x81\x3b\x38\x97\xfc\xbb\xf4\x98\xfd\xc8\x7f" - "\xf1\x98\x4d\x7a\x55\x8d\xd7\xa4\x97\xa2\xf1\x9b\x64\x89\x3f\x5e" - "\x93\xec\x83\x8f\xd7\xa4\x49\x83\x8f\xd7\xa4\x1c\x1e\x2f\x1f\x4d" - "\x2a\x8f\x9e\x37\x26\x15\x46\xf7\x77\x92\x94\x61\x61\x1a\x7a\x35" - "\xbf\x7f\xd3\x7e\x1b\x7f\xac\xe3\x78\xac\xaa\x4b\x08\xbc\x9c\x70" - "\x3d\xe3\x78\xb9\x30\x06\x85\x0d\x1a\x96\xaf\x8a\x7f\xde\xca\x6b" - "\xdc\xd6\x4a\x22\x3e\x47\xb6\x5f\xcb\xb6\xfb\xe4\x05\x9a\x89\xda" - "\xf0\x6c\x3a\x41\xf7\xde\xa6\x99\x4c\xc5\x7c\xe6\x29\x7d\xb7\xe5" - "\x1e\xc2\xe4\xe2\xc8\xb1\xe0\xb3\x4f\x5e\x9b\x6e\x56\x6b\xa7\xbf" - "\x9c\xa0\x7b\x86\xa8\x71\xb9\xf7\xaa\x68\x3a\x4e\xae\x89\x3f\x2e" - "\x93\xf7\x62\x5c\xfe\x12\x7f\x5c\x26\x1f\x1d\x7c\x5c\x26\xfb\x31" - "\x2e\x7f\xb9\x58\x8e\xee\xb1\xe8\x72\xb4\x8e\xeb\xd8\x17\xf3\x7a" - "\xfc\x9e\x95\x5c\x06\xcf\x90\x91\x7b\xe6\x73\xfe\xb8\x2e\x43\x8e" - "\x64\x9d\x49\x80\x25\xdb\xd7\xcb\x4c\xd4\x61\x44\xc2\x9d\x67\xed" - "\x8a\x27\x27\xf7\xf0\x1d\xf2\x84\x5b\x0b\xc9\x02\x1a\xe6\xec\x60" - "\x18\x4b\x88\x00\xe3\x30\x97\xe3\x74\xac\xf0\x23\xe4\xe4\x9e\x7a" - "\xa3\x1c\xeb\x3a\xbd\x6c\x8d\xe8\xc9\xe7\x9d\x80\xd8\x36\xf5\xfe" - "\x0f\x93\xf3\x08\x97\xe7\x72\x31\x65\x82\x4a\x1e\xef\x9d\x14\x2d" - "\x8f\xf7\xa6\x46\xf3\xe7\x64\x49\x27\x0d\x7a\x0e\xcf\x79\xc0\xe1" - "\x1b\xf3\xd7\xa5\x65\xf3\xde\x8d\x31\xb2\x09\x1e\xc8\x1c\xa7\x78" - "\x20\xf3\xca\x68\x5c\xef\xad\x8b\xcf\x03\xf7\x36\x0d\xce\x03\xf7" - "\xb6\x0d\xce\x03\xf7\x06\x98\x07\x7c\x94\x39\x36\x5a\x36\x33\x53" - "\xa2\xfb\x8e\x76\xa5\x6c\xd2\x55\x97\x23\x9b\xb0\x85\xae\x1e\x4c" - "\x0e\x59\xa6\xd8\x87\xa4\xba\xd7\x38\xeb\xf8\x46\x34\xb3\x40\xae" - "\x18\xbf\x66\xde\x53\x82\x8e\x9f\xc8\x34\xdc\x29\xef\x06\x66\x1e" - "\x8d\xa4\xe3\x66\x75\x7f\xcd\x79\x82\xee\x7b\x9c\xcf\x95\x15\x3d" - "\xef\xbf\x3e\xba\xff\x99\x81\xf8\xf4\xbc\x2f\x05\xf4\x74\xc6\xa7" - "\xe7\x7d\xe9\x83\xd3\xf3\xbe\xa9\x7c\x37\xe8\x62\x99\xba\x6f\xae" - "\x7d\xb9\xb4\x51\x64\x9d\xd3\x74\xdf\x07\xdf\x6c\x7e\xba\xaf\x22" - "\x7a\x7e\xba\xaf\xf8\xf2\xe7\xa7\xfb\xda\xe2\xcf\x4f\xf7\xf9\xe3" - "\xcf\x4f\xf7\x5b\x94\x3c\xdc\x9f\x19\x2d\x0f\xf7\xdb\xa3\x79\x22" - "\x33\xf0\x3f\x37\x3f\xdd\x5f\x1e\x23\x03\x5b\x4e\xd0\x94\xab\x60" - "\x53\xb8\xd4\xb8\x4d\xf9\x2c\x06\xc7\xdd\xf1\xc7\xed\xfe\x16\x8c" - "\xdb\x96\xf8\xe3\x76\xbf\x6f\xf0\x71\xbb\x3f\x84\x71\xdb\x72\xf1" - "\xb8\x4d\x49\xbb\x7c\x9b\x62\xca\xf4\xe8\x31\x9b\x92\x71\xf9\x63" - "\x36\x65\x63\xfc\x31\x9b\x52\x17\x7f\xcc\xa6\x34\xa9\x31\x9b\x12" - "\x88\x1e\xb3\x29\x47\xa3\xc7\x0c\x74\xfb\x3b\xc7\x0c\xe3\x53\xa7" - "\xfc\x13\xa6\x3e\x8a\x75\xfb\xb0\x1e\xf7\xd4\x2c\x1f\x4d\x4b\x53" - "\x6b\xeb\x69\x6a\xee\x50\x63\xf8\x1e\xca\x64\x5e\x3c\x0f\x4c\xcd" - "\xd7\xd3\x7e\x7a\xf1\x38\x4c\x5d\x0f\x1d\xdd\xd5\x52\x2c\xcf\xb6" - "\xd4\x18\x32\xcd\x51\xae\x79\x15\x9f\x4f\x4d\x95\xfe\xeb\x18\x63" - "\xe1\x0d\x86\x88\xf5\x3a\xca\x07\x18\x0e\xdf\x89\x8c\x81\x75\xe4" - "\x72\xe6\xf8\xc1\x7d\x6a\x1a\xea\x9a\x4b\x6e\x07\xbc\x69\x5f\x28" - "\x5e\x9d\x16\x6b\xff\x56\x23\x6f\x9f\xe2\xd3\x1f\x6f\x88\xc6\x61" - "\xda\x9c\xf8\x7c\x3a\xad\x00\x7d\xa8\x8e\xcf\xa7\xd3\x3c\x83\xf3" - "\xe9\x34\x8c\x3f\x55\x47\xac\x7d\x46\x3c\x1d\xf2\xc5\xac\x7d\xa6" - "\x1d\xb4\x06\x14\xef\x48\x9b\xa8\xb4\xa1\x0e\x38\xc7\xda\x7f\x18" - "\x9b\x07\x5e\xd0\x71\x5e\x10\x5d\xff\x81\x41\xec\xbf\x07\xd8\xfe" - "\x7b\x2f\x3e\xce\x0f\x5c\xc2\xfe\x7b\x80\xed\xbf\xf7\x2e\x96\xad" - "\x07\x74\xfb\x2f\xde\x1a\xef\x81\x8d\xf1\xc7\xff\x81\x98\xf1\xa7" - "\x9c\x22\xac\x87\x65\xfd\xe8\x72\x87\x22\xcb\xb1\x6f\x12\x97\x65" - "\x1e\x89\x53\x36\x18\x0b\x33\x7e\xb9\x1f\xdb\x2f\xe2\x3d\xf6\xa5" - "\x8a\xcb\x7b\x3f\xce\x52\xf2\xf8\xe3\xba\x68\x79\xfc\x71\x5e\xb4" - "\x3c\x3e\x10\x33\x76\x3f\x5e\x1f\x9d\x0f\xfe\xf9\x1f\xd3\xb1\x3f" - "\x0e\xc4\xf0\xc0\x27\x27\x68\xfa\x4b\x8a\x07\xa6\xff\x31\x1a\x8f" - "\xe9\x29\xf1\x79\x60\xfa\x18\xf4\xff\x93\xf8\x3c\x30\x3d\x73\x70" - "\x1e\x98\xce\x3e\x3e\x9f\x44\xf2\xed\x23\xc5\x99\xc3\x62\xca\xb8" - "\xe2\xeb\xbc\xe9\x95\xf1\xf7\x08\xa6\x37\x28\x1a\x4f\xef\x8c\xa6" - "\xf1\xf4\x83\xd1\x34\x44\x5f\xfe\x7e\x1a\xf6\xc7\x26\xe8\x71\xcf" - "\x88\x95\x7f\xef\x09\x9a\xa1\xcb\xff\x83\x8d\xd1\x38\xce\x98\xa3" - "\x70\x89\xb7\x2f\x32\x83\xd7\xbf\xde\xf8\xb4\x9c\xb1\x31\x7e\x9f" - "\x67\xd4\x61\x0e\xf2\x6a\x17\xc9\xd2\x8c\x26\xa4\x3f\xc2\xfb\xa1" - "\xbc\x1f\xb2\x13\xe9\x8f\x84\xc8\x22\xe7\xab\xfe\x79\x69\x86\x8f" - "\x7d\x51\x98\xfe\xcc\xbf\xd6\xd1\x94\xcd\x73\x10\xe3\x95\x5b\x2c" - "\xfd\x16\xac\xeb\x99\xd7\x6f\x60\x5e\x7f\x50\xda\x7f\x7c\xce\xc2" - "\x7e\x84\x56\x07\x65\x7b\x03\x21\x32\xf8\x9d\xcb\x47\xc3\x7e\x70" - "\x12\xcb\x05\x97\x37\xca\xaa\x7d\x33\x57\x0c\x7f\x3f\x98\x17\x7f" - "\x8c\x1f\x2c\x1e\x9c\x77\x1e\xac\x54\xe3\xfc\xe0\xa1\xe8\x71\x7e" - "\xb0\x41\x73\x0f\x9f\xc3\x7d\xf5\x81\xce\x97\x33\xc6\x45\x76\xe1" - "\x1f\x54\xdf\xaf\x7b\xb2\xad\xb0\x84\xae\x3d\x49\x3f\x99\x20\xdb" - "\x33\x89\xa0\x75\x6d\x02\xb5\x48\x1d\xf0\x93\x52\x89\x27\xca\xe4" - "\x86\xc8\x24\xd6\x3d\xdf\xc6\x79\xd5\x6e\x11\x44\xb9\x23\x7c\x26" - "\xc0\x77\x8a\xc1\x0b\x57\xb7\xd3\x4f\x66\x46\xd5\x37\x13\x79\x15" - "\x0c\x4f\xb5\x94\xc7\x9f\xac\x37\xf6\x74\xd7\xe3\x3d\xfe\xbe\xef" - "\x4f\xea\x0d\xdf\x07\xe5\x33\xf6\x93\x41\xcf\x2f\x19\x27\xbe\x37" - "\xc3\x38\x5d\x5a\x0f\xfc\x24\x64\xf0\xaf\xf2\xb5\xcc\x4a\x19\xf0" - "\xe5\xcb\xb2\x21\xaf\xf9\x12\x7b\x83\x11\x72\x90\x35\x35\x12\x8e" - "\x8a\xcf\x91\x95\x63\xf8\xe3\xe1\x39\xef\x6b\x60\xe9\xf8\x64\x6d" - "\x8c\xc1\xa7\x0a\x76\x4a\x91\x0e\xa3\xfe\x52\x30\x78\xcc\x15\xcf" - "\x32\x3f\x64\x35\x5f\x6a\xcf\x2f\xd1\x46\xd9\xaf\x5f\xc4\x5b\x59" - "\xd2\x5e\x62\x18\x97\xc6\x71\x66\x46\xd4\xda\x42\x9e\xdd\xf3\xd9" - "\xd6\xcc\xb0\x92\xfb\x99\x31\x7b\x84\x33\xb3\xa4\x3f\x95\x2e\xf7" - "\x4f\x87\x62\xe5\x60\x66\x81\x31\x47\xc7\xa4\xaf\x37\xe4\x1e\xeb" - "\x5a\x86\x1b\xb3\xcf\x3a\xb3\x4e\xc9\xc2\xcc\x90\x96\x14\xb9\x5e" - "\x9b\x29\xed\x3f\x63\xbf\x14\xf9\x75\x31\xf5\x62\xf6\xff\x66\x66" - "\x89\xc1\xf7\xe9\x53\x30\xbe\x01\x3e\xdb\x52\x31\x0a\x66\x8d\x8d" - "\xd9\xaf\xf0\x6f\x96\x77\xd0\xff\x0c\xb8\xb3\x74\xbd\x37\xbb\x36" - "\xba\xbd\x59\x59\xce\x53\x97\xea\xff\xac\x41\xfa\x3f\x6b\xa0\xff" - "\x8b\x25\xdc\x98\xbd\xc4\x59\xb2\xff\xe1\x8b\xf4\xdf\xac\x26\xe8" - "\x2f\x83\x6e\xb0\xb9\x67\x5f\x63\xd8\xea\xbc\x7f\x30\xb8\xad\x3e" - "\x6b\x60\xff\x4f\xd6\x9b\x35\xb0\xff\xe7\x8f\x67\xab\xfb\x48\x9e" - "\xad\x46\xb5\x3d\x7b\xa2\xb5\x2a\x5e\x5f\x66\x0f\xb2\xff\x37\x5b" - "\xdf\xff\x9b\xdd\x1c\xad\xcf\x66\xbb\xa2\xc7\x70\x56\xcc\x18\xce" - "\xae\x89\x1e\xc3\x59\x59\xff\xdd\x79\x0d\xef\x94\x98\x98\x68\x4a" - "\x4c\x30\x25\x24\x22\x1b\x5d\xa4\x61\x89\xe6\xc4\x21\xf8\x1b\xaa" - "\xff\x0e\x33\x25\x9a\xcc\xf8\x1b\xa2\xff\x0e\x8d\x79\x1f\xc6\x75" - "\xf1\x67\xd6\x7f\x87\xc4\xbc\x0f\xfd\x9a\xfc\x61\x7a\xbb\x46\xfb" - "\xe6\x98\xf7\x21\x5f\x93\x3f\xf4\xef\xac\x4f\x17\xbd\x47\xfb\xa1" - "\xcd\x58\xbc\x7c\x7e\xc1\xa2\x3c\x79\x5e\xbc\xc0\x3e\xff\xd9\x67" - "\x17\x2c\x5d\x6a\x2f\x7a\xd1\x7e\xff\x7d\x0f\xdf\x7e\xb7\x5d\x1d" - "\x3b\x17\x4c\xbe\x31\x2f\x99\x66\xae\x58\xc2\x19\x33\x1f\x99\x91" - "\x63\xcf\xbe\xff\xbe\xe8\x4c\x03\x8c\x3c\x5e\xbe\x14\x94\x08\xf9" - "\xcb\x2c\x1d\x49\xb4\x71\xa4\xd4\x3d\x1d\xec\xe7\xab\xf6\x3c\x1e" - "\xbb\xea\x10\xb8\x5f\xf4\x3a\x45\xf3\x0d\x7c\xa6\xff\xd0\x1f\xb8" - "\x13\xe3\x6a\x5c\x54\xb8\x90\xef\xaf\x3c\x74\x5c\xfc\xce\x4f\xf6" - "\x07\xc9\xd4\x4e\x4f\x5e\xdf\x32\x1d\x65\xf1\xee\xed\x08\x91\xdd" - "\x49\x96\x13\xf4\xe8\xa7\xc8\x4b\x10\xf7\x68\x48\x0b\xe8\xbe\xd0" - "\x73\xfe\x43\xa6\xfd\xce\x65\x94\xb3\x9e\xa0\x87\x37\x88\xdf\x09" - "\xf9\xce\xf7\x84\x54\xb9\x87\x1f\xd7\xdc\x0f\xd9\x58\x37\x54\xbd" - "\x46\xe6\x9d\xaf\x11\xbd\x35\x82\x2c\x6f\x8d\xe4\x58\x1d\x0f\x67" - "\x19\x67\xa1\xa5\x78\xf7\xd1\x93\x76\x6e\x9b\xcb\x6a\xa6\x87\xee" - "\x97\xe5\x47\x44\x95\x2f\x1e\x38\x8b\x7d\x38\xcb\x84\x72\xb3\xbf" - "\x20\x6b\x30\xb9\xde\xe5\x2d\x76\x91\x35\x2c\xbe\xba\x75\x3a\x25" - "\xb4\xc2\x12\x5e\x19\x12\xa1\xe6\x25\x27\xb9\xfd\x3f\x5a\x57\x8a" - "\xaf\xbc\xd0\xd6\x33\xbb\x9c\x62\xf3\x29\x32\x43\xae\x13\x9a\x97" - "\xb0\x9f\xc2\xc3\x0d\x3b\x2f\x90\x19\x34\x18\x7d\x92\x1e\xf1\x15" - "\xcf\x14\x61\xe7\x4c\x32\xff\x9b\x83\x7d\x0e\x1b\xaf\xdd\xfc\x27" - "\x32\xff\xaa\xd7\x65\xea\x15\x36\x2a\x2e\x12\x9d\x82\x63\xf8\x04" - "\x44\x90\xfd\xfc\x0f\xcd\x0b\x73\x99\xe1\x3d\x4e\x1b\xb5\x16\x05" - "\x68\xcd\x31\x11\xf4\xfc\x49\xdd\x0f\x38\xdc\x15\x60\x1f\x46\xcb" - "\x9a\x99\x94\x78\x22\x87\x4c\x87\xf3\x2b\xc9\x3b\x37\x40\xc5\xc7" - "\x44\xe7\xa1\x79\x5f\x50\x6b\x7e\x03\xe5\xb6\x91\xe9\x50\xc7\xe7" - "\x24\xe3\xd0\x94\x7d\x59\x53\x72\x8e\x6c\x6b\x16\x71\xda\x39\x5a" - "\xb5\x86\xae\x5c\xf5\x19\x59\xbd\x9d\x6d\x68\xe7\x14\x3d\x71\x94" - "\x12\x00\xcf\xb4\xfa\x73\xb2\xad\x7e\x9c\x7d\x7d\x33\xa9\xaa\x84" - "\x6c\xc2\x99\x9e\xd2\xeb\x4c\x4f\xed\x15\xe9\x23\x7a\x9c\xe9\x69" - "\xad\x85\x28\xdf\xb1\x9f\x86\xb7\x51\xda\xef\x4e\xb6\x99\x2a\xcf" - "\xd2\x68\xfb\x2c\x1e\xff\x47\x8e\x55\x9d\x45\xf9\xb2\xfd\xd9\x1a" - "\xea\x46\xd6\x09\x25\xed\xcf\xf7\xe6\x04\x49\x03\xac\xca\x5e\x1a" - "\x5d\xd5\x4b\x36\xad\x74\x7f\x36\xd3\xa2\xaf\xac\xc1\x05\x5d\x38" - "\xec\xbd\x67\xf6\x9a\xbd\x87\xba\xe8\x70\xa0\x97\x5a\xe9\xcf\xe4" - "\x75\x7c\xd9\xfc\xab\x67\xf6\x0e\xd1\xc0\xfc\xcd\xab\x3a\x00\x5f" - "\xf1\x8c\xf3\x30\xdf\x57\x76\xd1\x96\x12\x4a\x29\x5c\x45\xc3\x4e" - "\x22\x5d\xad\xe9\x77\x79\xbc\xa1\x2f\x9b\x57\x49\x3f\xdc\x27\xed" - "\x25\x87\x29\xb1\x35\x50\xc9\xfe\x9e\xa6\x70\xf2\x97\x35\xde\xc0" - "\x11\xf2\x16\xfe\xa5\x59\xb3\x7c\xe9\xd9\xa8\x91\xe5\xd7\xe7\x8f" - "\x98\xbc\xe6\xf3\xe4\xcd\x09\xd0\x27\x68\x5b\x94\x7d\xc9\x7b\x0f" - "\x99\xad\x81\x20\xdf\x73\xca\x10\xdd\xb6\xe4\x2d\x4b\x68\xec\xce" - "\xb3\x34\x66\xc7\x59\x4a\x17\x3d\xe9\x26\xf6\xad\xe5\xfb\xa9\x3b" - "\xf0\x9b\xd2\x41\x16\xf4\x57\xf9\x61\x27\xe9\x3e\xb6\x7d\xe9\x54" - "\xdd\x3b\xe0\x63\xdb\xdb\x3d\xe0\x63\x0b\x5e\xca\x66\x3f\xdb\x76" - "\x7a\xd8\xc2\xfc\xbc\xe5\x34\x99\xd7\x9d\x26\xba\xd5\x65\x22\xfb" - "\x33\x7c\xaf\xe2\xd1\x0f\xbc\x79\xa7\xe4\x73\x3b\x3d\x5a\x80\xdf" - "\x14\xfc\x25\x20\x5d\xee\x67\x77\xe8\x7c\x8b\x34\x13\xd2\x1e\xc5" - "\x6f\x22\x7e\x67\x3a\xab\x84\x1f\x6d\xb4\x75\x9b\x28\x99\xf9\x57" - "\xf7\xe7\x6d\xeb\x71\x3f\x0a\xfb\xe7\xb9\x02\x83\x8f\x95\x4e\x7f" - "\x38\xfb\x93\x13\xa7\x38\x2e\x94\x5f\xe2\xd3\x97\x9f\xc0\x31\xa2" - "\xf4\x74\xc6\xe1\xd7\xdc\x2e\xda\x2f\xc7\xaf\x15\x7f\x2c\x97\x63" - "\x8c\xba\xdd\x7d\xf9\xdc\xe6\x3b\x48\x17\x46\x3a\xfa\x6b\xe6\xbc" - "\xdf\x9c\x38\x65\x52\x65\xd2\x4d\x80\x19\xd4\xe1\x43\xd6\x1f\x0a" - "\xb0\x4c\x77\x9b\xac\xe2\x40\xde\x04\xaa\x1a\x29\x8e\xec\xd8\x2a" - "\x5a\x94\xac\x3d\x8a\xb6\x9f\x37\xe2\xe8\xb4\x6c\x44\xde\x01\xac" - "\x62\x99\x2e\x2d\xf3\xd8\x7f\xec\x31\x8e\x1b\x35\x26\xb2\x0f\xc2" - "\x3d\x9b\xef\xf7\x5a\xdf\x2d\x69\x1e\x22\x4c\xd9\xc1\x56\x5f\x17" - "\xfd\xaa\xb7\x73\x88\xf3\x8f\x64\xf2\x86\xda\x69\x7c\x1a\xd9\xd8" - "\xfe\xab\xde\x2a\x7c\xf8\xed\x64\x7f\x4e\xf0\xc9\x77\x4f\xd2\x63" - "\x8f\xfe\x53\x1a\xa5\xfd\xbb\x83\x74\x7d\xf4\xd8\x0b\x03\xfa\xe8" - "\x89\x73\x87\x3b\xf6\x46\xe8\xa2\x27\xde\xb9\x58\x17\x3d\x5e\xab" - "\x74\x91\x08\x29\xdd\x13\xf6\xe9\xe9\x9b\x62\xd2\x75\xbf\x90\xc7" - "\x5f\x8a\x49\x0f\xea\xe9\x4f\xc5\xa4\xfb\x55\x7a\xce\x0e\x43\xd7" - "\xb5\x32\x1e\x2b\x58\xd7\xe5\xac\x65\x5d\xd7\x9a\xa7\xeb\x3a\xe9" - "\x63\x98\xb3\x40\xbc\xed\x22\xbe\xb3\x84\xe7\xc9\x8c\xbf\xf8\x1d" - "\x19\xb8\x27\x9d\xa0\x9f\x86\x39\xad\xfc\xcf\x64\xc6\x9f\xd4\x73" - "\xc2\xfd\x50\x2e\xeb\x39\xd6\x71\xec\x77\xb2\x7d\xa4\x68\xdb\xbe" - "\x55\x1c\xad\xda\x2a\x0e\xf5\xb8\x7f\x5a\x60\xe8\xbb\x57\x90\xb6" - "\x11\x69\xaf\x20\x9f\xf5\x1e\xd3\xe4\x70\xce\x5e\x8e\xe3\xd0\x01" - "\x1e\x1b\x6d\x4d\xa0\xc2\xcd\xe0\x79\xbe\x5f\xb8\x1e\xf4\xf5\x16" - "\xf1\xbd\xd5\x30\xc9\x78\x4a\xa6\x0c\xe8\xa8\x0e\x96\xb7\x91\xeb" - "\x20\x5f\x5e\xc7\x17\x54\x12\x10\x27\xf9\x9e\x1d\xe3\x90\xbb\xf2" - "\x41\x8e\x11\x94\xd0\x02\xeb\x82\xfd\xc0\xd9\x5f\x05\x7a\xd7\x5c" - "\x0e\x9c\x54\x8c\x94\x9f\x62\xfd\x5f\xad\xdf\x63\x7a\xd2\xce\xf1" - "\xc7\xda\xe9\xa7\x13\xb1\xbe\x0b\x72\xdf\xac\x61\x17\xf1\xbd\x17" - "\xc8\x28\xaf\xf1\xf2\xb7\xe3\xaf\xdc\xb8\xfb\xc2\xb1\xe8\x50\xc6" - "\xdb\x16\x24\xc6\xd9\x47\x3f\x5d\x7f\xb8\x78\x2f\xd7\x4f\x67\xda" - "\x08\xb7\xd3\x80\x91\x20\xef\xce\xb8\xc9\xc2\x77\x67\x7c\x94\x23" - "\x63\x08\x8a\xe4\x06\xd7\xe1\xb9\x7e\x62\x3d\xef\xed\x04\x8c\xe2" - "\x76\x05\x03\xb0\x04\xf4\x7e\x54\x9e\x0e\xff\xca\x35\xe2\xab\x76" - "\x7a\x2c\xc0\xe3\xc5\xf7\x20\xf9\x7c\x0d\x74\x49\x61\xdf\x78\x65" - "\x7b\xfe\x74\x4d\xf5\x9f\x89\xf4\xbb\x9c\xe0\xb7\x9f\x16\xf3\x3d" - "\x25\xbe\xbf\x29\xef\x6e\x9a\x26\x90\x58\x91\x9e\xd2\x7f\x7f\xf3" - "\xff\xc0\xdd\x4d\xd0\xdf\xb6\xd3\x24\x1a\x80\x7f\x31\xdf\xdf\x04" - "\xfe\xc7\x98\x0f\xf5\x3e\xb9\xde\x78\x82\x69\xfe\x58\x0b\xa7\x61" - "\xad\x78\xd0\x18\x7f\xee\x2f\xf7\x05\x79\xf5\xca\x26\x14\x47\x7c" - "\xf4\xb8\x8b\xf3\x91\x56\xc1\xe5\xc7\x43\x8f\x79\xf3\xc2\xf4\xde" - "\x89\xb0\x69\xcb\x2a\x32\x2b\x9d\xf6\xc4\x5b\x5c\x5f\xe9\xb4\x27" - "\xb2\x07\x74\xda\x13\xd3\x94\x4e\x53\x34\x56\x3a\xed\x89\xbb\x94" - "\x4e\x7b\xe2\x36\x79\x0e\x06\x9d\xc6\x79\xac\xd7\x0c\x9d\xb6\x63" - "\xa4\x38\xc8\xba\xa3\xc7\xfd\x84\xdd\xd0\x6d\x9b\x90\xc6\xba\x83" - "\x71\x54\x7a\x2a\xc7\x21\xfe\xdf\x74\x52\x7e\x06\xfc\x9c\xcf\xf7" - "\x15\x3a\xf5\x67\x8c\xcb\x13\xaf\x2a\x1d\xf7\x44\xd1\x80\x8e\x7b" - "\x3c\x38\x50\x97\x75\xdc\x13\xa5\x4a\xc7\xa9\xf4\xea\x27\x58\xc7" - "\xe5\x38\x98\x06\x3a\x7c\x13\xef\xd9\xe9\xe5\x99\x8e\xae\x48\x1d" - "\x17\x2d\x5f\x4f\x1c\x32\x74\x1c\xeb\x36\xbc\xc3\x06\x49\x3e\x28" - "\xe5\x0d\xe5\x2a\x40\x73\x43\xee\x78\x0c\xb8\xcf\x1c\x67\x8c\xe9" - "\x36\xe5\x14\x0d\xd3\xef\x0a\xe9\xfd\x7e\xd2\x66\xf8\x3a\xfa\xe8" - "\x09\x7b\x3c\xbb\xd9\xb0\xd3\xc0\x8f\xd7\x85\x39\x4e\x87\x0b\x73" - "\x69\xa5\x70\xb5\x86\x8e\xd2\xd3\x45\x64\xd2\x12\x9f\x3f\xce\x63" - "\x8b\x75\xc6\x50\xfe\x65\xdd\x83\x39\xf4\xa9\xdc\x00\x0d\xc5\xda" - "\xfc\xf8\x16\x13\xf2\x1c\xf4\xa3\x88\xbc\x95\xdc\x4e\x44\xbd\x71" - "\x11\x79\x32\x1e\xe5\xb8\xd3\x1c\x63\xee\xc9\xcc\xc1\xd6\xfe\x97" - "\x89\xcb\xdf\x06\xc7\x65\xee\x90\xc1\x71\x99\x2b\xed\x80\x71\x5d" - "\x94\x80\xb5\xd9\x55\xa7\xe9\x49\xb9\x1f\x23\xe3\xde\xac\x8b\xd7" - "\xce\xdc\x87\xf4\xfc\x21\x11\xf9\x91\x6d\xbd\x14\xa7\x7e\x64\x7b" - "\xaf\x7e\x0d\xfc\xc6\xaf\x81\xff\x1f\x5f\x03\xff\x2b\xd6\x81\xa0" - "\x9d\x55\x33\x45\x97\xbb\x35\x24\x65\xf0\x20\xdf\xd7\x3b\x49\x4f" - "\x7d\x5b\xdf\xf3\x39\xee\xbc\x5e\xae\x05\xe5\xbd\xad\xcd\xc8\xe7" - "\x7b\xf9\xac\x9f\xa7\x62\x04\xd5\x19\x75\x7f\x9d\x99\xb1\xb8\x0d" - "\x0f\x19\xb8\xc9\xfc\x17\x62\x71\x43\xfe\xb8\x88\xfc\x4d\x03\xe3" - "\xfe\xd4\x25\xfd\xeb\xbd\x95\x24\x63\x70\x1e\xc0\xf2\x05\x73\x32" - "\xc7\xfd\xd3\xf7\x67\x9e\xea\x80\x9e\xcf\x88\xf0\xdb\xed\x82\x6e" - "\xbf\x8e\xe3\x2f\xb0\xed\xbb\x45\xad\x87\xbf\x85\xf9\x64\x04\xdf" - "\xd7\xe1\xbb\x3b\xb9\xe1\x6c\xd3\x81\x62\x96\xa1\xa7\xed\x46\xdd" - "\xc1\xf6\x81\xb8\x5d\xbd\x4d\xf6\x81\x0d\xa0\xce\x1c\xa3\x0e\xc3" - "\x66\x3f\x4a\xcc\x03\xd7\xc9\x3b\xaf\xa1\x2e\xd6\xbb\xdf\x82\x9d" - "\x3c\x42\xb5\x33\x8f\xf4\x76\x3c\xa8\x33\xe8\x5d\xf5\x4b\xf7\xef" - "\xe9\x96\xcb\xef\x1f\xe9\xfd\xcb\xa5\xaf\xe9\xdf\x25\xda\xcd\x9d" - "\x74\xf9\xed\xa6\x1a\xed\x3a\x2e\x9f\xae\xb9\xbb\xbf\x39\x5d\x33" - "\x74\xba\xe6\xfa\xbe\x86\xae\x71\xda\x99\x97\xf6\xcd\xdb\xb1\xeb" - "\xed\xcc\x9b\x1e\xaf\x1d\x92\xff\x06\xbd\xd7\x65\x31\x62\x60\x72" - "\x3c\x58\x15\xef\x6e\x5e\x79\x64\xac\x5f\x15\x27\x76\x5e\x9d\x11" - "\xeb\x57\x8f\x45\x8b\xb9\x65\xde\xa7\xb9\x35\x6c\x8f\x08\xcd\x47" - "\xf3\x5a\x38\xbe\xea\xd4\x35\xea\xce\xb8\x5e\xa7\xed\x52\x31\x86" - "\x39\xce\x96\x10\x39\x74\xa0\x52\xfa\x03\x60\x1e\x9a\x7f\x15\xdf" - "\x0f\x50\xe7\x99\xf3\x47\x2b\x99\x9c\x3f\x1a\xb0\xf3\x07\x87\xd1" - "\x94\x59\x57\x92\x31\x64\x30\x9f\x7f\xd4\x9f\xeb\xa3\x17\xe6\x70" - "\xfd\x70\xd9\xc7\xd9\xe2\x8c\x4d\x8f\xf3\xf7\xec\xbe\x88\x38\x84" - "\x98\xbb\x9f\xf9\x9b\x7e\x37\x01\x34\x70\x81\x96\xf3\x2b\x0c\x1a" - "\x18\xe9\x48\xab\x37\x68\x00\x7b\x25\xc5\x5b\x13\xe2\xbb\x43\x01" - "\x75\x4f\x7c\xfe\x61\x51\xda\x94\xa1\x60\x3f\xa3\xce\x19\x92\x3f" - "\xce\x0e\xac\xb6\x99\x8c\xfa\x63\xec\xce\x0b\xcc\xc3\xfe\xa4\xa6" - "\x0c\xc0\x0a\x18\xf0\x05\xe3\x25\x06\xca\x55\x4b\xbf\xa4\x67\x30" - "\xfe\xb9\x2a\xbe\x23\xda\x90\xb8\x9b\x28\x51\x03\xfe\xe8\x83\xc9" - "\x5b\x18\x60\x3b\xb5\x2b\x8c\xfe\xb3\xae\xdb\xb3\xd8\x67\xe6\x32" - "\xd2\x76\x38\x93\x6e\x52\x31\x14\x9f\x79\x41\x3b\xc3\x31\x71\x24" - "\x5e\x29\xe8\xf3\x5e\xc6\xc9\x87\x5f\xff\xea\x74\x9a\x7d\x8e\x74" - "\x5a\x3c\xf3\xa8\x86\x74\x6d\xe9\x00\x0e\x3b\xe5\x1d\x8f\x67\x2a" - "\x0d\x1c\x34\x6e\xbf\xc7\x66\x82\x2d\xc6\xed\x76\xca\xbb\x96\x68" - "\x7b\x3c\xc7\xb4\xe3\xd8\x18\x2b\xd2\x89\x71\x40\x9d\x43\x06\xbd" - "\xf5\x3a\x46\x1b\xc5\x9a\x6c\x5b\xd1\x46\xd1\xf9\x00\xec\xc1\x67" - "\x42\x17\xd3\xf9\xd9\xd4\x08\x3a\x27\x32\x5f\xf1\x1e\x0b\xf0\xff" - "\x35\xd3\x9b\xcf\x35\xec\xcb\xd9\xae\x7a\xf6\xbe\x03\x01\xe9\x77" - "\x92\xc2\x70\x35\xd0\x9f\x61\x00\xee\x15\x8a\xc6\xcf\xe6\xf4\xd3" - "\x18\x6d\x0b\x8c\xc5\x3a\x75\x27\x85\x7d\xdf\xa1\x3b\x9e\x75\xf4" - "\xb7\xc3\xb8\x3a\x6d\x26\x4d\xd8\x38\x66\xa6\x9f\x71\x2d\xb2\x8b" - "\x20\xdb\x95\xd2\x8f\x09\x7d\xdd\x53\xd2\x66\x86\x6d\x69\x92\x6d" - "\x75\xa7\xb3\x7d\x6f\x91\xcf\x68\x6b\x10\xfe\x7e\x95\xe3\x52\x1a" - "\xfd\x42\x5f\x2c\xcc\x5b\xc0\x1d\xf6\x5f\xde\x7e\xc9\x2f\xcb\x79" - "\x9c\xf2\x6a\x39\xcd\x28\x87\xf7\x65\x5c\xce\x78\x47\x1e\xf8\x2b" - "\xef\x4e\xf4\x2b\x99\xf1\xf4\x3b\x65\xec\x17\xf4\x39\xaf\x8d\x61" - "\xf4\xb8\xf3\x32\xa3\xfa\xd9\x97\x63\x36\xf8\x8e\xcf\x88\x5a\xec" - "\x41\xa9\x3b\x15\x6d\xf3\x0a\x0c\x99\xe4\xfa\x4a\xc6\xf2\x5c\x91" - "\xbc\x18\x70\x0e\xf0\x41\xd1\xf5\x64\x31\xdb\x39\x96\x66\xde\x3c" - "\x15\x07\x3c\x6f\x77\xec\x78\x71\x1e\xc7\x9d\xd4\x69\xc8\xf2\x94" - "\xda\x4e\x79\x35\xdc\x37\xf0\x5a\xe0\x52\xf3\x25\xc7\x84\xe4\x58" - "\x9e\xaf\x2b\x39\x02\x5d\x16\x7e\xfb\x75\x75\xbf\x27\xa0\xe2\x2b" - "\x2e\xf8\xae\x30\xd5\xca\xf1\x62\xbf\x3c\x19\x47\x43\xde\xfd\x5e" - "\xc0\x3e\x6e\x62\x78\x61\xad\xbc\x67\xa6\xfb\xec\xf9\x5b\x0a\x43" - "\x32\x0e\x9f\xb3\x88\xef\xc2\x86\x78\x4d\x26\x7d\xd2\x0e\x14\x85" - "\xe8\x91\x20\xd3\x76\x41\x01\xdf\x71\x0f\x48\x5a\x2c\x70\x18\xf7" - "\xda\x39\xce\x24\xc7\x29\x1d\x1f\xa2\x44\xb6\x29\xec\x4e\x8e\x49" - "\xb0\x30\x9b\x6d\x12\x45\x53\xf0\xbd\x49\x1c\x51\xbc\xbc\xe0\x53" - "\xbe\xc7\xae\xce\x97\xda\xc1\xdf\x89\x5f\xb6\xd3\x82\xff\x54\xfb" - "\x32\x86\xac\x2d\x7c\x88\xcf\x98\x7c\x3a\x0c\xb4\x85\xf9\x7f\xfe" - "\xd4\x8b\xe5\x62\xc1\xa7\xc6\x1a\x83\xef\xc5\xa9\xf3\xaa\x01\x78" - "\x3e\x5a\x20\xf7\xa5\x07\x74\xd3\xef\x01\x6b\x61\xc6\xc5\x32\xb3" - "\x70\xaa\xc1\xcb\x85\x37\xf0\xdd\xea\x05\x16\x6e\x7f\x30\x9d\x29" - "\x9c\x8f\xf3\x38\x59\x4e\xd8\x29\xf1\xeb\xee\x4b\x0c\x9c\x7f\x2d" - "\xac\x37\xfa\x60\xd0\x44\xf5\xe1\x67\x09\xdd\xc9\x0d\xf5\x03\x7d" - "\xff\x99\xf2\x37\x1b\xc8\xbf\x2b\x82\x36\xfc\x3e\x51\xf1\xdd\x42" - "\xac\x29\x9e\x6d\x51\xbc\xa8\xd2\x44\x72\xd3\x1d\x1c\x03\x56\xe1" - "\xb8\x88\x0c\x7e\xef\x71\xff\x6c\x8c\x8f\xce\x1c\x52\xe7\x50\x3f" - "\x43\xff\x17\xba\x54\xbd\x85\x87\x18\x97\xb8\xfd\x8c\xc6\xb1\x81" - "\xe7\x58\x15\xeb\xe0\x67\x8d\x8c\xaf\xfd\x26\x1e\xe3\x9f\xad\xe1" - "\x76\x65\xdc\x83\xbe\xfc\x21\x81\xbe\x74\xea\xee\xcb\x87\xfc\xa4" - "\x9b\xd0\x0e\xf4\xdf\xe9\x7a\xbd\xcd\x3a\x03\x57\xc6\x0d\xb6\xa2" - "\xa5\x47\x2c\x8a\x4f\x5f\x6e\x57\xc6\x63\xca\x1f\x86\x3f\x0b\xfe" - "\x86\x7e\xd3\xf9\x18\x76\x6d\xa7\xbf\xf4\x23\x9b\xb6\x5c\x1c\xe4" - "\xf8\x5f\x58\x17\x74\x6e\x01\xff\x0e\x5f\xdb\x4c\xc3\x03\x4f\x99" - "\x72\x57\x52\x26\xd6\xb6\x24\xce\x8b\x89\x3b\x35\xfc\x2e\x17\x13" - "\x38\xee\x35\xde\x33\xf4\xf7\xb1\xfc\xde\xbd\x5c\xcc\xed\x71\xe7" - "\xe7\x18\x67\x77\x2a\x66\x4d\x7e\x7e\x7f\x9c\x9f\xc4\x27\xf9\x9e" - "\x0f\xc7\x84\xd2\x44\xe2\xf3\x9d\xdc\x6e\x2e\xcf\x1d\x68\x0f\xe5" - "\x30\xff\xcf\x93\x31\x72\xfc\x89\xb7\x8c\xc0\x5f\xfc\x38\x1b\xa8" - "\xc3\x78\x75\x27\x7d\x64\x33\x70\x1d\x1e\xc8\x34\x7d\x43\xdc\x02" - "\x06\x6e\x48\x3f\xb8\x45\xa5\x87\x38\x46\x21\xfb\x20\xf6\xb8\x17" - "\xa5\x19\xb8\x1a\x38\x70\x7b\x7c\xaf\x52\x24\x37\xec\xe5\x98\x30" - "\xdc\x9e\x7f\x75\x3e\x97\xcd\x34\xf0\xfd\xa6\xbc\x5c\x52\x25\x04" - "\xcf\x2d\x7c\x9e\x64\x1f\x45\xd4\x1a\x60\x9d\xb2\xa8\xe2\x40\x55" - "\x80\xe3\x7f\x7e\x8c\x36\xf6\x75\x8b\x7c\xd2\xfa\xf2\xe3\x8e\x31" - "\xd7\x41\xf9\x23\x52\x3f\x94\x35\xec\xd3\xc4\x74\x8e\x01\xfc\x31" - "\xc7\x5d\x85\xad\x09\xb9\x5d\x14\x6a\x29\xee\xe4\xbb\x90\xd0\x39" - "\x8b\x38\x4e\xe8\x5e\xb6\x35\xb0\x4e\xe1\xf8\x15\x89\xac\x9b\x9a" - "\x97\x4f\x60\x18\x61\xb3\x83\xcc\x2d\x8e\x6f\x16\x4f\xdf\x47\xcf" - "\x4d\x50\xb2\xf3\xdc\x04\x63\x9e\xc5\x73\x66\xf4\xb9\xf4\x73\xe9" - "\xb1\x3a\xf7\x99\x17\x5f\x2c\xca\x5d\xb2\x80\x7f\xd2\x6f\x5c\x76" - "\x73\x72\xe4\xda\x99\xf5\xb0\x8a\x63\xf0\x5c\x0e\xef\x53\xbd\x3e" - "\xc2\x38\x67\x7d\xae\xd2\xd8\x2b\xd3\xfd\xb9\xef\x65\x9b\x9a\x6d" - "\x4f\xe4\xed\xf9\xb4\x98\x45\x87\x12\x8e\x5b\xc8\x14\xdb\xde\xc2" - "\xf9\x45\xf3\x0b\xee\xe6\x13\x95\xe4\x78\xed\x1c\x8c\x6e\xe7\x79" - "\xea\x6f\x47\xe9\xc1\x80\x89\xcb\x95\xf6\x66\x8a\xa4\x76\x9f\xba" - "\x4b\xfb\xfc\x18\x63\x0f\x64\x10\x3f\xb8\x60\xb8\x6c\x7f\x39\x8f" - "\x8b\x73\x0d\x99\x7e\xb3\xaa\xcd\xc4\x36\x4a\x09\x9e\x79\x6d\x28" - "\xed\x22\x3d\x9e\xd0\xef\xce\xb6\x61\x9e\x79\xde\x21\x4a\x1b\xa0" - "\x7f\x9e\x2f\x1c\x6c\x7e\x8a\xf4\x21\x60\x9f\xb3\x0e\x7a\xbe\x7c" - "\xd0\xf3\x7e\xcf\xc7\xf3\x94\x9e\x79\xfe\x8b\x16\x1b\xf1\xb8\xbf" - "\xdc\x4e\xcf\x1f\x37\xdb\x30\x97\x8c\xa2\x5f\xe0\xf9\x0b\xae\xcb" - "\x79\x51\xe3\xfc\xdd\x53\x35\x66\x70\x21\xb8\x31\x41\xa8\x7f\x64" - "\xd6\x1f\x12\xf1\x67\x12\x09\xf2\x34\x2c\x11\x14\x1e\x36\xd4\x4c" - "\xd6\xe1\x29\x96\xeb\xae\x1d\x6d\xbb\xf7\x9e\x49\x13\x9d\x25\xc5" - "\x90\xde\x50\xd0\x2a\x22\xe3\x5f\xb5\x7b\x1e\xbd\xd9\x45\xd2\x1f" - "\xa2\xb4\xdd\x13\x0f\xd7\x4d\x6e\x51\xc8\x77\x8f\xb5\xe4\x0b\x0d" - "\xce\x65\x64\x7a\xaf\xd7\x67\xe2\x18\xec\x6c\x83\x70\x8c\xfe\x76" - "\x2a\x78\xe9\x13\xa4\xa1\xff\x0e\xe1\xb9\xd0\xa0\xce\x3b\x0b\x1a" - "\xb5\xb2\x0b\x0d\x03\xf0\xcd\xc4\xf0\x9d\x6f\x91\xa9\xae\xa4\xd3" - "\xe4\x35\xdf\x43\x5e\x7b\x80\x3e\xc1\x73\x5c\x5a\xa2\x4d\xc1\x71" - "\x5f\x01\xa3\xda\xad\x79\x9c\x17\xc8\xa4\xdf\x1f\x34\x9d\xa6\x82" - "\xbf\x35\x0c\x52\x8f\xef\xeb\x76\x27\x7f\xf8\x5f\x3d\xee\x17\x30" - "\xfe\x99\x75\xfa\x9c\x07\xdd\xfc\x02\xf8\xff\x79\x39\xdf\x21\xff" - "\xf3\x6e\x19\xf3\xf7\x85\xe9\x46\x99\xf8\xf3\x1e\xef\xa9\x8a\x66" - "\x1e\x57\x71\xfe\x6f\x9d\x7c\x37\x61\x10\x3f\x86\x61\x5e\xc7\xed" - "\x7c\x8e\x34\x64\x78\x90\x52\x9c\xe7\x44\x5f\xd8\x4d\x69\x60\x77" - "\x53\x18\x6b\xcb\xd0\x79\x91\x73\xb8\xeb\xac\x8c\x4d\xc9\xfa\xe3" - "\xdd\x85\xbf\x37\x79\x83\x67\x9a\xbd\xeb\x35\x6a\x85\xfd\xe1\xad" - "\x3a\xd3\xac\x62\x58\x86\xe9\x30\xfd\x99\x0e\x3b\xfe\x1f\x97\xdc" - "\x0b\xaa\x12\x2e\xa6\x73\xdf\x79\x31\xc7\x6b\xfe\xbf\x89\xbf\x21" - "\xc2\xba\x10\x74\xb7\x9f\xa6\xc5\x57\xfd\x0e\x70\xde\xfb\x2f\xc0" - "\x92\x31\xaf\x26\xd3\x27\x78\xee\x71\x2f\x1e\x6d\xe8\xc9\xb8\xb1" - "\x42\x12\x9a\x37\x59\x1d\x4f\x99\x34\xe8\x5c\x8e\x4d\x06\x5d\x3b" - "\x81\xfb\x85\xf7\x0c\x7e\xc7\xef\x58\xfe\xb5\xae\x6d\xde\x61\x0d" - "\x3d\xc5\x3a\x38\x87\xf5\x2b\xd2\xe7\x54\x9f\x97\x3a\x39\x5b\x7f" - "\xcf\xd2\xdf\xa7\xeb\xef\x53\xf5\xf7\x4c\xfd\x7d\x12\xbf\x2b\xdd" - "\xbd\xb8\xa1\x7f\x5e\x31\x0d\x3b\x82\xf7\x66\x63\x2c\x80\xcf\x95" - "\x56\xc7\x1a\x39\x07\xe8\x78\x4c\xd0\xf1\xca\xd0\xdf\x0d\x7c\xbe" - "\x6b\x0d\xad\xf9\x1f\xc2\xe7\xc5\xcc\x68\x7c\x5e\xcc\x8e\xc0\x87" - "\xac\x8e\xcc\x6f\x82\x4f\xaa\x95\x63\xdd\xff\x1d\xf8\x30\x2e\x9c" - "\x86\xf6\x8f\xc4\xe0\xe3\x33\xf0\x89\xcb\x6f\xcb\x45\x27\xcf\x7f" - "\x4b\xbf\x2d\x63\xf4\x0e\xe3\xb9\xad\xba\xd7\x88\x33\x57\x38\xfa" - "\x52\x71\xe6\x20\x0b\x36\x94\x41\xff\x5f\xec\xd2\xe7\xf9\x26\x65" - "\x0f\x16\xce\x31\x7c\x7f\xd0\xd7\xfa\x2d\xaa\xaf\xbb\xd7\x73\xac" - "\xb5\x95\xf4\x1d\xa7\x43\x74\x62\x7d\xf3\xd7\x16\xbb\x3f\x4a\x06" - "\x0a\x8a\x96\x2e\x7d\xe1\x6e\x7b\xc1\xfc\xc5\x0b\xec\x37\xe6\xd9" - "\x97\xe6\x2f\x5a\x58\xb4\x20\xfa\x3c\x3c\x55\xff\xee\x88\xf4\xf3" - "\x67\x9b\x9b\x65\x80\xf9\x9f\xf5\xb6\xf2\xcd\x7c\xe9\x1a\xe1\x2e" - "\x74\xb1\xae\xdf\xf9\x1a\x99\xf9\x0c\x06\xf8\x74\x18\x3a\x5e\xc5" - "\xd6\xa7\x04\xd6\xf1\x48\x87\x0d\xf7\x42\x71\x44\x3a\xca\xbe\x94" - "\x6a\xa4\x31\x7c\x5d\x37\x0d\x6b\xa7\xc2\x46\x6e\x33\x2e\x0d\xcf" - "\x8b\x1a\xcc\xaf\x09\x58\x6f\xf1\xda\x57\x70\xdc\x24\xbe\x3f\x87" - "\x7a\x02\xf8\xc8\x33\x45\xfe\xb6\x8d\xb2\xed\x05\xe3\xb8\x0c\x75" - "\xea\x90\x66\xde\x8c\xb2\x58\x2f\x74\x72\x3d\xa4\x6f\xe2\x38\x06" - "\x48\xb7\xe8\xf1\xa0\x38\xad\x96\xe3\x0c\x20\x2d\x35\x22\xed\x03" - "\x8e\x61\x8e\x34\xbb\x0e\xef\x0f\x4c\x67\xbc\x67\xea\x7b\x0a\x5c" - "\xe6\x3f\xf5\x76\xa3\x62\x12\xf0\x47\x28\x6e\xbf\x35\xc3\x3e\xe7" - "\x91\x1f\x4c\xbe\xe7\xd9\x17\x17\x2f\x4c\x26\x49\xf6\x74\x4c\x97" - "\x19\xb7\x3b\x6e\xbe\xdb\x5e\xb8\x60\xc1\x12\xfb\x8a\x05\x8b\x8b" - "\xec\xf3\x57\xcc\x5f\x99\x4c\x0b\x5f\x5c\xf2\x2c\xdf\x92\xe7\x61" - "\x59\x9a\xfb\xec\xc2\x9f\xb1\xd3\x82\x2a\x9d\x1c\x35\x8f\xcf\x61" - "\xdd\xa6\xc7\x95\x38\xb8\x85\x6d\x8d\xa4\xdf\xa6\xe3\x99\xe3\x2d" - "\xd9\xf0\xdb\x82\xbf\x26\xfc\xed\xc5\xdf\x51\xfc\x1d\x39\x49\x2b" - "\xf8\xdb\x01\x7b\x7a\xdc\x4b\xd6\x1b\xf6\xc4\x00\x0f\x2d\xa9\x34" - "\x78\x08\xf3\xff\x1e\x35\xbf\x2d\x39\xd8\x1a\x92\xf2\xd3\xcf\x53" - "\x5b\xce\x0f\xf0\x14\xc7\x8b\x6c\x65\x9f\x9c\xe5\xc8\x07\x0f\xf3" - "\x3a\x1d\x34\x4f\x62\xba\x9d\xa0\x65\xfb\xab\xb7\x8a\x43\x1c\xeb" - "\x04\xbf\x2d\xe0\x97\x43\x2a\xbe\xc8\xd2\xa9\x28\x77\x3d\xda\x68" - "\x52\x6d\xe8\xef\x23\xc5\x41\xde\xc7\x68\xd7\xdf\xd5\x9a\x7f\xd9" - "\xa3\xfc\xcc\xbf\xfa\x59\x98\x95\xfd\x1b\xd5\xda\xd1\xc8\x5b\x7a" - "\x4a\x6f\xa3\x19\xb4\x70\xed\x74\x4b\x9b\x5b\xae\xb1\x78\x0f\xcd" - "\x9a\x70\xaf\x00\x3e\x67\xb4\xc4\x27\x55\xfc\x42\x57\x2f\x74\xc4" - "\x1d\x77\x78\x1d\xb2\x7c\x02\xef\xb1\xcd\x2a\x14\x1a\xc7\x94\xd6" - "\x12\x9f\x6f\xe3\x7a\xc2\xf2\xdb\x74\x6d\xf3\x95\x99\xca\x16\xe0" - "\xb8\x71\x4b\x0f\xea\x30\x83\x4c\xdb\x93\xb4\x64\xa5\x5a\xaf\xad" - "\xd0\xbf\x37\xb0\xf4\xa8\xe1\x2b\x07\x19\x4d\xc7\x7b\x87\xa1\x03" - "\x7c\xb4\xb4\x41\xf7\x6b\x6a\x56\xfd\x2f\x1a\xad\xbf\xef\xd5\x71" - "\x4c\xe0\x58\x16\xc0\xff\x08\x8f\x1d\xd6\xbe\x7b\xf1\x7c\x14\xf4" - "\x39\xa4\xe8\x53\x24\x6d\x40\xd8\x35\x9c\x7f\x94\xbf\xd9\x81\xbc" - "\xa3\x2a\x4e\xc4\xd2\x39\xdc\xe7\x01\xdf\xc7\xaa\x4c\xe0\xfa\x28" - "\x9f\x19\x42\x96\xf6\x7a\xcf\xb3\x7c\x2e\xcd\x06\xbc\x06\x43\xef" - "\xb0\x9e\xc9\x0d\x43\x4e\xa5\xdd\x5d\xb4\xd1\xd0\x37\x03\x7c\x50" - "\x54\x13\x4f\x97\xc4\x1b\x77\x7d\x6c\x92\x84\xfb\xa5\x0e\xe0\xd4" - "\x20\xc7\x80\xe3\x69\x9e\xef\xb7\xef\xfb\x94\x8e\x2c\x0a\xf4\xaf" - "\x45\x74\x3c\x38\x4e\xb7\x8f\x71\xeb\x95\xe7\xb8\xba\xde\x58\x36" - "\xda\xd0\x1b\x06\x1c\x6b\x82\xd0\xac\x0e\xfc\xe7\x69\xac\xe4\x3d" - "\x64\x9e\x2f\xa5\x3d\x02\x38\xc3\xcf\xa9\x3b\x4c\x5a\x69\x23\x78" - "\xb7\xe8\x28\x74\x8c\x59\xda\x9c\xee\x97\x7a\x06\x74\xd1\xb2\xc2" - "\x48\x98\xc2\xd2\x58\xc9\x70\x59\x1f\xb1\x4d\x92\x1b\x36\x73\x1c" - "\x91\x4a\x7d\x7e\x81\x0e\x5e\x56\x63\xe0\x0a\x1a\x1e\x34\xf0\xd5" - "\xbf\x95\x74\xd0\x47\xcb\x80\x7b\x1f\xfb\xf2\xb6\xa8\xf1\x5c\x21" - "\xf5\x0d\xf2\x76\xa3\xee\x31\x1f\xbd\x94\xa1\xcb\xd0\x21\xd4\xdf" - "\x7d\xa0\x64\x2a\xca\x2c\x0b\xea\xfe\xa8\x47\x30\xbe\x47\x07\x78" - "\x7f\xc9\xa9\x88\xfd\x80\xa3\x6a\x0c\xef\x71\xb5\xd3\xf2\x89\x11" - "\xe9\xfa\xd8\x1e\xc8\x46\xfa\x29\xb5\xb6\x6e\xcc\x51\xf5\x97\x2b" - "\xdf\x5d\x1d\x47\xd6\x05\x7c\xdf\x8a\x65\x5c\xd2\x5e\x8e\xf1\xf2" - "\x42\x63\xbe\x00\xac\x3d\x92\xe6\x23\x45\x13\xd3\x49\xc5\x6b\x58" - "\x32\x52\xd1\x69\x79\x65\x14\xed\x79\xde\x44\x3b\x4c\xa7\xe1\x6b" - "\x85\x36\x3c\x90\x20\x72\x57\x9a\x89\xe5\x85\x65\x9c\xcf\x5e\xc0" - "\x1f\xd2\xae\x52\x74\x5b\xde\x66\xd0\xcd\x18\x3b\xa6\x93\x8f\x96" - "\x4f\x67\xda\x46\xf7\x71\xd8\x91\x76\xa3\xef\xa0\x29\xef\x07\xe3" - "\xbd\x4b\x97\x8b\x43\xcd\xa3\xd8\x17\x60\xc9\x57\x07\xcc\x3f\xa0" - "\x03\x8e\x09\xa4\x68\xbb\x62\xa2\x8f\x0a\x2b\x23\xd6\x0d\x07\x99" - "\xbe\x2c\x2b\xc0\xb3\x42\x8f\x9d\x74\x50\xf9\xa3\x2c\xe1\x98\xb4" - "\x15\x52\x96\x97\xcb\x18\x17\x1c\x77\xf5\x08\xd3\x88\xf5\x22\xcb" - "\x12\xcb\x00\xcb\x93\xa2\xd1\x8a\x8a\x08\x1a\xb5\x30\x7d\x74\x3a" - "\xed\x89\xd1\xe5\x0b\xec\x05\x93\x95\x2e\xb6\xa7\xdf\x98\x37\x5e" - "\x06\x2a\xb1\x3f\x30\xe5\x6e\x7b\xf6\xe4\x1b\x1d\xf9\x63\x67\xa9" - "\x9f\x29\xd9\x59\xfc\x9b\x1c\xbd\xee\xb2\xa3\x9d\x50\xf4\xda\x6d" - "\x8d\x47\xe9\x0f\x47\x9a\x2f\x61\xa8\x8c\x1b\xc8\x71\x43\xb7\x2c" - "\x26\x0a\x03\xef\xcd\x27\x31\xa6\x96\xc6\x09\x1c\xa7\x76\x36\xd6" - "\x8c\xb3\xce\x89\x0b\xd5\xc8\xdb\x89\xf4\xe1\x85\x1c\xeb\xfe\x2f" - "\x42\x4b\x6a\x9c\xc0\x6b\x7b\x51\x5a\x1b\xf4\x27\xb5\x7b\xf0\x97" - "\xed\x4f\xfa\xd0\x3f\xed\x66\xa7\x00\xdc\x02\xa3\x5f\xbc\x07\x00" - "\x3a\x4d\x98\xed\x10\x61\xa6\x51\xae\x83\xe3\x49\x03\x76\x22\xef" - "\x01\x38\xd0\xff\x82\x23\x6a\x7d\xe9\x00\xff\x2f\x99\xa0\xeb\xb2" - "\x6c\xbc\x73\xfc\x8b\x6c\x39\xae\x6e\x9b\x8c\x43\xad\xad\xbb\xe5" - "\x61\xac\x07\xb2\x0d\x98\x80\x35\x54\x3f\xc7\x96\xf0\xbe\xa9\x5f" - "\xa4\x56\xf6\xfe\x58\x6b\x82\x8a\xeb\x07\x19\x77\x55\x9b\xb4\x9c" - "\x7e\xbf\x07\xe4\x0d\x5f\x9b\xca\x7e\x11\x39\xe0\x3d\x17\x97\x31" - "\xf2\xb6\xb8\x35\xdf\x16\x93\x16\xc4\x38\xa6\x2a\xfb\xb9\x8b\xf5" - "\x27\xd6\x96\x2b\xfb\xf7\xff\xe5\x7c\x68\x22\x97\x5a\xcf\xac\x94" - "\xfb\x3e\x67\xdd\x66\x82\xce\xee\xba\x21\x4d\xae\x51\x82\x9a\x3b" - "\x81\x94\x2f\xea\xca\x87\x0c\x1d\xcb\xe7\x49\xd6\xb5\xc2\xcf\x7b" - "\x89\xd6\x90\xf0\xcb\x98\xe9\x3c\x77\xd0\x49\xf2\x16\xf7\xb8\x38" - "\x56\xab\xb4\x81\xd0\xae\x9a\x37\xc2\x6a\xde\x40\xfb\xfe\xc4\x5b" - "\xe6\x61\x7e\x48\x38\x49\x2b\xed\x8c\x3f\xd3\x86\xf7\xab\x35\xd0" - "\xca\xcb\xf3\x24\xd3\x27\xf9\x37\xbb\xd9\xa7\x81\xfb\x6a\x0d\xa1" - "\xcf\x91\xfd\x32\x69\xbe\xcd\x6e\xf4\xcb\x84\x7e\x39\x4e\xb1\xcc" - "\x04\xd9\xd7\x04\xf2\x36\x52\xc6\x23\x96\xeb\xe7\x55\x99\x91\x7d" - "\x64\xfd\xaf\xfa\xb0\x6a\x7e\xbc\x3e\x0a\x13\xf7\x91\x69\xb0\xea" - "\x4e\x5d\xde\x24\x9e\xac\x3f\xba\x68\x65\x60\xf8\x5a\xf6\xf1\x68" - "\x9c\x00\xfd\x36\x85\xc7\x10\xf3\x67\x39\xe3\x19\x6f\xbc\x18\x9e" - "\x82\xb5\x1a\x36\xb4\x6b\x1e\x70\x39\x14\x9f\xde\xab\x4e\x5d\x9a" - "\xde\xab\x3e\xe5\xfa\x8c\x07\xfb\xbc\x58\x43\x58\xac\x83\x6f\xb1" - "\x5e\xf3\xc4\x6b\x77\xf8\xda\x1a\xc6\x2b\x6e\x9e\x60\x79\xd1\x75" - "\x10\xf8\x50\x40\x4e\x04\xeb\xa4\x1e\xf7\xea\xfe\xfd\x2f\x6b\x82" - "\x3d\x51\xea\x07\x93\x28\x8f\x07\xc3\xba\xb6\x9c\x7d\x4c\xa6\xa0" - "\xfd\xb8\xf9\x1a\x7f\x87\xc1\xd3\x68\xd7\xd6\xfd\xd3\x0d\xd6\x04" - "\xba\xd7\x9f\xf8\x4f\xc9\x56\x47\x68\x0c\xd3\x10\x30\x1d\x90\xe3" - "\x65\xbc\x4e\x55\x7b\x17\xab\x61\xff\x6f\x94\xeb\x52\x7f\x52\xa3" - "\x5d\xc5\x0a\x5b\x8d\xf9\xef\xf5\xfe\x3d\xdc\x1e\x77\xb1\xd9\x47" - "\x1d\xa3\x95\x5c\x7e\x67\x9b\x28\xfb\xb0\x49\x73\x5b\x85\x7d\x95" - "\x15\x76\x64\xf1\x0e\x4d\x70\x5c\xfe\x0f\x9b\x06\xf8\x44\xf9\xbf" - "\x18\x7c\x82\xfa\x53\xe3\xf3\x40\xf1\x82\x4b\xf3\x40\xb1\xdc\x9b" - "\x65\xba\xab\xb5\x4a\xf1\x46\xc3\x4e\x11\xeb\xbe\xb3\xcd\x5e\x22" - "\xdb\xb7\xab\xb6\x99\x26\x99\x7c\x2e\x91\x05\xba\xb8\x50\x76\xaf" - "\xa1\x07\x98\x5f\xac\x61\xfe\x66\x01\x49\x9e\x46\x1e\xec\x9f\xc2" - "\x74\xb5\x5f\xfa\x91\x43\x7e\x77\xcf\xbd\xa2\xc1\xef\xcc\xdf\xce" - "\xfe\xaa\x81\xa4\xc6\x2a\x94\x09\xfa\xe8\x13\x19\x93\x14\x73\x70" - "\x05\x60\x54\x56\x8c\xc0\x1c\xad\xfc\xb6\x52\x58\xa6\x39\xc6\x0f" - "\xcb\x35\xd2\xd2\x80\x37\xc7\xfb\xc1\x7a\x67\x4d\x46\xff\xbc\xe4" - "\xce\x84\xae\x10\xd2\x4f\x07\xf3\xd2\xe8\x6e\xd0\xee\x0d\x93\x56" - "\x7f\x7e\xbc\x8d\xb8\xcf\xe7\xd7\x8d\xaa\x7f\xf9\x56\x32\xff\xab" - "\xed\x19\x2a\xbc\x9d\xd2\xd6\xfe\xc0\x4c\xff\x7b\x22\x99\x98\x0e" - "\x3e\x5a\x93\xa9\x68\xb7\xc6\x65\x8c\x8f\x8f\x56\xcb\x7d\x51\xde" - "\x6b\x9c\x1d\x12\x17\xd4\x7e\xe8\x1a\xe8\xbf\xe7\x6c\x2a\xdf\x71" - "\xd1\xf9\x3f\xdb\xf3\xf6\x45\x4b\xed\x79\x2f\xae\x58\x7c\xfd\xf5" - "\x51\x6b\x25\xb3\xbc\xc3\xe2\x5e\xb3\x47\xcd\xa7\x6b\x3a\x0d\xbc" - "\xd9\x2e\xc1\x3b\xfa\xbf\xe2\xa2\x7d\xcb\xac\x5c\xdd\x4d\x39\x37" - "\x83\x06\x9e\x6f\xa3\xac\xdb\x22\x5e\xef\xa0\xac\xdb\xef\xc8\x7d" - "\x78\xc1\xfc\xbc\x95\x11\xa9\x77\x46\xee\xeb\x6d\xd9\x86\xb6\x13" - "\x47\xdd\x0f\x5d\x91\x30\x6b\x35\xcf\x2d\x25\x9f\x97\x84\xc4\x97" - "\xd0\xd7\x13\x21\x63\xb9\x87\x8b\x42\x74\x18\xba\x4c\x7c\x87\x75" - "\xf8\x30\x75\x37\x0f\xf6\x14\x78\xcb\x8a\xbe\xfb\x61\xd7\x9d\xe3" - "\xfd\x99\x13\xe4\x4c\x68\xad\xe4\x98\xbc\x1f\x06\x95\x8d\x51\xd2" - "\x84\xf4\xab\xf0\xfb\x05\x7e\x87\xe2\xf7\x6f\xf6\xc5\x58\xf7\xb0" - "\x2f\xf4\x72\xf6\x85\x2e\x91\xbe\x1e\xb7\x06\x5c\x74\xeb\x12\xb6" - "\xd9\x4b\x8a\xd8\x06\xf1\x91\x93\xbf\x8b\x47\x5c\x16\x69\xfb\xed" - "\xcf\x51\x06\xff\x0a\x79\x86\x54\xd2\x24\x4a\x3f\x0c\x8a\xed\x39" - "\xfc\x8d\xab\x31\x68\xf3\xfa\xc4\x84\xe3\x94\x68\x1b\xd6\xd3\xe3" - "\x76\xb2\xff\xd3\x51\xa6\xd3\x60\xdf\xd0\x64\x3a\xc7\xda\x87\x03" - "\xb6\x61\x19\x49\xfb\x56\xb7\xe7\x76\xca\x79\xc1\x59\x14\x61\xd3" - "\xf1\x99\x60\xb2\xb2\x4f\x44\x58\xd9\xa7\xce\x0a\x43\x0e\xf0\x5c" - "\x63\xf0\x69\x54\x7c\xb4\xc5\x45\x0b\x96\x2c\xc8\xb3\xdf\xb8\x34" - "\x99\x22\xa2\xa3\xe5\x2f\x58\x6c\x5f\xb2\xe0\xa5\x65\x0b\x96\xca" - "\xc8\x66\x9c\x1b\x35\xe7\xa7\x89\xe4\x0f\xc6\x1a\xf7\x76\xec\xa3" - "\x98\xbe\xae\x21\x1c\x53\x4b\x94\x7d\xc0\xb6\x4b\x97\x5a\x6f\x5c" - "\x38\x18\xbd\xde\x58\x5b\xa9\xec\xbc\x0f\x3b\xd5\x5a\x67\xed\x38" - "\x7e\x6f\x27\x57\xc3\x40\xfc\x6e\xd7\x7c\xd0\xd2\xa4\xe8\x66\xf1" - "\xf5\xb8\x5d\x39\x06\xdd\x7c\xb4\xd6\xa7\xdb\x52\x5d\x52\x7f\x60" - "\x8e\x85\xfe\x8b\x9a\x5f\xd5\xb7\x33\x5d\xac\x7f\x13\xe5\x7e\x6f" - "\xd2\x87\x1c\x03\xc3\xc4\x30\xd1\x9e\x0f\xe3\xd3\x09\xbd\xc9\xfa" - "\xcd\x63\xc0\x43\x9b\xd3\xb9\x3d\x7d\x1d\xf4\xad\x93\xb4\xd6\x2e" - "\xf5\xa3\xe7\xc3\x2e\xd6\x29\x7c\x76\xaa\x95\x02\x8e\x3c\xcb\x5b" - "\xeb\x63\x1b\x53\xc6\x90\x07\x2c\xde\xa7\x85\x9e\x0b\xf1\x77\x56" - "\x39\x4d\xc5\xf6\x72\xee\xe6\xbd\x61\xb4\xd5\xd1\xe3\x5e\x6b\x1b" - "\xf0\x4d\x5f\xeb\x63\xbb\x93\xe1\xfa\xc8\x75\x8c\xe1\xa9\xd8\x65" - "\x6b\x27\x81\x77\xa6\x0e\xd8\x4f\x6b\x5d\x11\xeb\x32\xc6\x47\xe2" - "\x19\x00\x2e\x32\x4e\xa6\xf2\x1d\x94\xfd\x66\xfd\x59\xa1\xf7\xdd" - "\xe8\x0f\xe0\x41\xff\x39\x33\x8c\xb3\x67\x9f\xde\x6f\xc6\x8f\x71" - "\x8f\xc4\x59\xc7\x77\x2f\xe3\x8b\x7a\x2d\x11\xb2\xcd\xfb\x32\x43" - "\x90\xd6\x36\xe0\x93\xec\xb2\xc7\xea\x8d\x17\x17\xdb\x0b\x16\x2d" - "\x7e\x3e\x77\xc5\xfc\xe7\x17\xe4\x2e\x2b\x1c\x6b\x5f\xb6\xf8\x99" - "\x82\x17\x9f\x7d\x9e\xb9\x66\x69\xd1\xb2\x67\x9f\xb7\xb3\x66\xc9" - "\x9d\x9a\x95\x95\x7b\xff\xa3\x8f\x3c\x9e\x4c\xf7\xcf\x47\x1a\x56" - "\xfe\x59\x19\x63\x55\xd6\xc3\xd3\xa6\x3c\x96\x3b\x65\xf6\xa3\xb3" - "\xe6\xc8\x4b\x0b\xfd\xf9\x53\x17\xc7\x2f\x10\xc5\x87\xa9\xe0\xa5" - "\x0e\x8c\xef\x90\x76\xda\x30\x57\xc5\xbb\x76\x6f\x8c\x8e\x77\xed" - "\xc6\x5a\xd6\xdd\x8c\xbf\x63\x44\xeb\x53\xf1\x87\x75\xea\x86\x6c" - "\xc5\x5f\x49\x33\x7a\xdc\xee\xbd\x03\xfc\xb5\x41\xc6\x54\x62\x5f" - "\x0e\xb5\x3f\xeb\x86\xfe\x77\xb6\x45\xe6\x0d\xac\x27\xdd\xfe\xfe" - "\xf5\x64\xbf\x4e\x59\x37\xda\x58\x5b\x22\xcd\x8f\x75\x65\x12\xaf" - "\x2b\xd5\x7e\xd2\x86\xa7\x24\x4f\x0d\x2a\xdf\x16\x32\xd6\x95\x2c" - "\xdb\x7c\x56\xac\xd6\x1f\xeb\x72\x22\x65\x5c\xc6\x58\xd4\x65\x9c" - "\xeb\xc9\xfd\x3b\xcb\x85\x3d\xbc\xa7\x0d\xfb\xb8\x03\xb6\x02\xe6" - "\xaf\x1e\x21\x92\x2e\xe8\x7b\x1d\xeb\x2a\x79\x8f\x9b\xed\x66\x9d" - "\x9f\x86\x9f\xa4\x75\x9f\x09\xf7\xda\x2e\xb5\xa6\x74\x7f\x97\xf5" - "\xba\x58\x37\xea\xfe\xd9\x61\x19\x8f\x0e\x3a\x7d\xdd\xa1\x01\x9e" - "\xdd\x30\x97\x79\x61\x60\x2d\xbb\x2e\x4a\xff\x77\xcb\x6f\x35\xae" - "\x0b\x19\xf7\xf5\x8b\xae\x27\x93\xf9\xfa\x72\xaa\x30\x09\xcc\x47" - "\xeb\x76\x73\x1b\x4c\x4f\x1f\xb9\x0f\xa2\xac\x79\x80\x7e\xeb\x33" - "\xfa\xe9\xa7\xef\xb3\x18\x7b\x2c\x0a\xef\x0d\x4f\x0d\x46\xab\xf8" - "\x74\x5a\xef\xfa\x5a\x3a\xb9\x69\x08\xcb\xa4\x41\xaf\x8b\x69\xb5" - "\xbe\xe5\x62\x5a\x6d\xb8\x26\x82\x56\x93\x2f\xa6\xd5\xfa\x60\xc4" - "\xb9\x8f\xbe\x8f\xb2\xe1\x29\xa6\x19\xf3\x18\xfa\xbd\x1b\x7c\xb6" - "\x6e\x80\x7e\x1b\xd2\x2f\xa6\xdf\x86\x49\xf1\xe9\xb7\xbe\xed\x86" - "\x68\x38\xa5\xf1\xe6\x8d\xe1\x6b\x4d\xfa\x7d\x9e\x0d\x8d\x2d\xa3" - "\xe5\x9a\x34\xf8\xba\x49\xcb\x7f\xdd\x8d\x3f\xfc\xf2\x3a\x62\xc0" - "\x16\x17\x3a\xaf\x6e\x68\x68\xc1\x9a\x97\xf7\x95\x2e\x31\x17\x1d" - "\x33\xf6\x3c\xf0\xdc\xc6\x6b\xe7\xd9\xe1\x7b\x05\xa7\x33\x3d\xf9" - "\x5b\x51\xe0\xf7\x36\x65\x97\xfe\x33\xf5\xef\xb9\xdc\x34\x83\x12" - "\xd7\x92\xfd\x40\xd5\xed\x9c\x6e\x03\x0f\x49\xdf\x27\xf9\x2d\xd5" - "\x41\x60\xe6\x86\x33\x69\x10\xb8\xfd\xfc\x3f\xd8\x9d\xd6\x18\x7d" - "\x94\x3f\x7f\x71\xde\x8b\x0b\x17\x7e\xbd\x2a\x8a\xf4\x1f\x2b\x77" - "\x6b\xfc\x3d\xa3\xa1\x3d\xeb\x9e\x5b\x85\x36\xd9\xfe\xb7\xa8\x79" - "\xf3\x9f\xa1\xff\x7e\xd6\xa4\x6c\xc9\x27\x3b\xd5\x3d\xde\x97\x27" - "\x44\xe8\x67\xf0\xc8\xcb\x99\xc2\xfd\xcf\xc5\x03\x63\xfc\x72\xca" - "\xc5\x63\xfc\xb2\x3d\xfe\x18\xbf\x3c\x55\x5b\xce\xf7\x2a\x5e\xc6" - "\xfa\x67\xb1\xb4\x35\xf9\x9d\xcf\xcb\xb1\x66\xee\xc4\x7a\xb9\x6b" - "\xf6\xca\xe6\x7b\x73\x57\x26\xb0\x3f\xb8\xfc\x76\x46\xe8\xbc\xe8" - "\xe0\x33\x6b\x3e\x1f\xe3\x6f\x67\xf0\x37\x73\xf8\x1b\xaa\xb2\x0c" - "\x9e\xb7\x9c\x20\xb9\x76\x44\xbe\xbd\xfa\x84\xfc\xc6\x2f\x6c\x85" - "\x97\x6b\x0c\xdb\xda\x8a\xe9\x8d\xef\x17\x6f\x56\xe3\xd1\xc6\x63" - "\xc1\xed\xe5\xae\x6c\x56\x6d\x9c\xe7\xef\x63\x91\x55\xd9\x10\x2f" - "\xb7\x5d\x72\xef\x3e\xa9\xbd\x70\xd0\x98\xf2\x6e\xd7\xb0\xd7\x55" - "\xec\x69\xf6\x69\xf4\x1b\x3e\x75\xec\x5f\xd7\xe3\xf6\x64\xc4\xfa" - "\xe7\x29\x1f\x13\xcf\x74\xc3\xb7\x07\xcf\x73\xfa\xd7\x03\xfc\xbd" - "\x15\xac\xe3\xec\x25\x6b\x87\x9e\x26\xcf\x35\xd5\x83\xec\xa1\x1b" - "\xf7\x89\x75\x1f\xb8\x61\x80\x51\xd9\xef\x17\x84\x77\xd6\x17\x03" - "\xbe\x7d\x9e\x3d\x86\x6f\x98\xf4\x07\xc4\xdc\xcb\xdf\x74\x39\x41" - "\x9e\xcf\xe4\x37\x64\x6e\xe0\xfd\x6f\x4f\xa0\x45\xfa\x25\x7a\x7c" - "\x91\xb8\xe8\x78\xd4\xf2\x1e\x2d\xe7\x47\xe2\xe2\x98\xbf\x6c\xd1" - "\x78\xc7\xc2\x45\xf6\x67\xf3\x17\x15\xe6\x2e\x92\x31\x60\x65\x78" - "\xd9\xa2\x95\x85\x7c\x22\x71\x73\x72\xcc\x1c\xa6\xfb\x10\xf6\xfb" - "\x4a\x49\x3f\xc2\xd2\xc7\x41\x0f\x93\xf2\x23\x2c\xcb\x52\xf3\x7a" - "\x69\xde\xc5\x3e\x33\xa5\xfd\xfe\x5f\xe0\xab\xd4\x0a\x15\x7b\x5e" - "\xf7\xb3\x61\xbe\x2b\xad\x8c\x53\x67\x77\xbf\xcf\x18\xfb\x2e\xf5" - "\xe5\xc8\xfb\x1e\x32\x4e\xf8\x6b\x3c\x6e\xa5\xe4\x75\x4c\xe3\x58" - "\xa7\x3a\x3f\x97\x1e\x33\xf8\xd9\xf0\x37\x64\x58\x7c\xdf\x64\x7c" - "\x30\xd2\xd7\xa8\xec\x3e\xcc\x79\xb6\xfe\x7e\xac\x36\x11\xe3\x1e" - "\x30\x35\x03\x8f\x32\x7b\x2c\x1e\xc0\xef\x7a\xa4\x4f\x1c\xf0\xe5" - "\x32\xfa\x59\x96\x85\xe7\x8b\x6c\xd5\xfb\xa6\x65\xc1\x28\x5d\xba" - "\xa0\x28\x99\xa6\xcc\x2f\x28\x60\xb9\x9e\xbf\xa0\x60\xd9\x92\x17" *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Wed May 19 19:45:17 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9B10C1065670; Wed, 19 May 2010 19:45:17 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8B5CA8FC0A; Wed, 19 May 2010 19:45:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4JJjHet070018; Wed, 19 May 2010 19:45:17 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4JJjH8L070016; Wed, 19 May 2010 19:45:17 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201005191945.o4JJjH8L070016@svn.freebsd.org> From: John Baldwin Date: Wed, 19 May 2010 19:45:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208310 - stable/7/sys/dev/ciss X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 19:45:17 -0000 Author: jhb Date: Wed May 19 19:45:17 2010 New Revision: 208310 URL: http://svn.freebsd.org/changeset/base/208310 Log: MFC 200637,207335: - Don't panic due to unlocking an unowned mutex if we fail during attach. - Initialize the callout structure earlier in attach before calling any routines that can fail since ciss_free() always tries to stop and drain the callout. Modified: stable/7/sys/dev/ciss/ciss.c Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/sys/dev/ciss/ciss.c ============================================================================== --- stable/7/sys/dev/ciss/ciss.c Wed May 19 19:44:00 2010 (r208309) +++ stable/7/sys/dev/ciss/ciss.c Wed May 19 19:45:17 2010 (r208310) @@ -394,6 +394,8 @@ ciss_attach(device_t dev) sc = device_get_softc(dev); sc->ciss_dev = dev; + mtx_init(&sc->ciss_mtx, "cissmtx", NULL, MTX_DEF); + callout_init_mtx(&sc->ciss_periodic, &sc->ciss_mtx, 0); /* * Work out adapter type. @@ -428,8 +430,6 @@ ciss_attach(device_t dev) ciss_initq_busy(sc); ciss_initq_complete(sc); ciss_initq_notify(sc); - mtx_init(&sc->ciss_mtx, "cissmtx", NULL, MTX_DEF); - callout_init_mtx(&sc->ciss_periodic, &sc->ciss_mtx, 0); /* * Initalize device sysctls. @@ -494,8 +494,11 @@ ciss_attach(device_t dev) error = 0; out: - if (error != 0) + if (error != 0) { + /* ciss_free() expects the mutex to be held */ + mtx_lock(&sc->ciss_mtx); ciss_free(sc); + } return(error); } From owner-svn-src-all@FreeBSD.ORG Wed May 19 19:52:42 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 35F9C106566B; Wed, 19 May 2010 19:52:42 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0D55E8FC15; Wed, 19 May 2010 19:52:42 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4JJqf6O071721; Wed, 19 May 2010 19:52:41 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4JJqfSL071718; Wed, 19 May 2010 19:52:41 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201005191952.o4JJqfSL071718@svn.freebsd.org> From: John Baldwin Date: Wed, 19 May 2010 19:52:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208311 - in head/sys: amd64/include i386/include X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 19:52:42 -0000 Author: jhb Date: Wed May 19 19:52:41 2010 New Revision: 208311 URL: http://svn.freebsd.org/changeset/base/208311 Log: Add constants for the optional EOI suppression support in local APICs and EOI registers in I/O APICs. Modified: head/sys/amd64/include/apicreg.h head/sys/i386/include/apicreg.h Modified: head/sys/amd64/include/apicreg.h ============================================================================== --- head/sys/amd64/include/apicreg.h Wed May 19 19:45:17 2010 (r208310) +++ head/sys/amd64/include/apicreg.h Wed May 19 19:52:41 2010 (r208311) @@ -234,6 +234,7 @@ typedef struct IOAPIC ioapic_t; #define APIC_VER_VERSION 0x000000ff #define APIC_VER_MAXLVT 0x00ff0000 #define MAXLVTSHIFT 16 +#define APIC_VER_EOI_SUPPRESSION 0x01000000 /* fields in LDR */ #define APIC_LDR_RESERVED 0x00ffffff @@ -254,6 +255,7 @@ typedef struct IOAPIC ioapic_t; #define APIC_SVR_FOCUS 0x00000200 # define APIC_SVR_FEN 0x00000000 # define APIC_SVR_FDIS 0x00000200 +#define APIC_SVR_EOI_SUPPRESSION 0x00001000 /* fields in TPR */ #define APIC_TPR_PRIO 0x000000ff @@ -364,6 +366,7 @@ typedef struct IOAPIC ioapic_t; /* window register offset */ #define IOAPIC_WINDOW 0x10 +#define IOAPIC_EOIR 0x40 /* indexes into IO APIC */ #define IOAPIC_ID 0x00 Modified: head/sys/i386/include/apicreg.h ============================================================================== --- head/sys/i386/include/apicreg.h Wed May 19 19:45:17 2010 (r208310) +++ head/sys/i386/include/apicreg.h Wed May 19 19:52:41 2010 (r208311) @@ -234,6 +234,7 @@ typedef struct IOAPIC ioapic_t; #define APIC_VER_VERSION 0x000000ff #define APIC_VER_MAXLVT 0x00ff0000 #define MAXLVTSHIFT 16 +#define APIC_VER_EOI_SUPPRESSION 0x01000000 /* fields in LDR */ #define APIC_LDR_RESERVED 0x00ffffff @@ -254,6 +255,7 @@ typedef struct IOAPIC ioapic_t; #define APIC_SVR_FOCUS 0x00000200 # define APIC_SVR_FEN 0x00000000 # define APIC_SVR_FDIS 0x00000200 +#define APIC_SVR_EOI_SUPPRESSION 0x00001000 /* fields in TPR */ #define APIC_TPR_PRIO 0x000000ff @@ -364,6 +366,7 @@ typedef struct IOAPIC ioapic_t; /* window register offset */ #define IOAPIC_WINDOW 0x10 +#define IOAPIC_EOIR 0x40 /* indexes into IO APIC */ #define IOAPIC_ID 0x00 From owner-svn-src-all@FreeBSD.ORG Wed May 19 20:00:15 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 72BA91065675; Wed, 19 May 2010 20:00:15 +0000 (UTC) (envelope-from gallatin@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 635EA8FC1B; Wed, 19 May 2010 20:00:15 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4JK0Fgi073444; Wed, 19 May 2010 20:00:15 GMT (envelope-from gallatin@svn.freebsd.org) Received: (from gallatin@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4JK0FkM073442; Wed, 19 May 2010 20:00:15 GMT (envelope-from gallatin@svn.freebsd.org) Message-Id: <201005192000.o4JK0FkM073442@svn.freebsd.org> From: Andrew Gallatin Date: Wed, 19 May 2010 20:00:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208312 - head/sys/dev/mxge X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 20:00:15 -0000 Author: gallatin Date: Wed May 19 20:00:15 2010 New Revision: 208312 URL: http://svn.freebsd.org/changeset/base/208312 Log: Correctly identify some twinax cables, which report a media type of 1. Modified: head/sys/dev/mxge/if_mxge.c Modified: head/sys/dev/mxge/if_mxge.c ============================================================================== --- head/sys/dev/mxge/if_mxge.c Wed May 19 19:52:41 2010 (r208311) +++ head/sys/dev/mxge/if_mxge.c Wed May 19 20:00:15 2010 (r208312) @@ -2778,7 +2778,8 @@ static struct mxge_media_type mxge_sfp_m {0, (1 << 7), "Reserved"}, {IFM_10G_LRM, (1 << 6), "10GBASE-LRM"}, {IFM_10G_LR, (1 << 5), "10GBASE-LR"}, - {IFM_10G_SR, (1 << 4), "10GBASE-SR"} + {IFM_10G_SR, (1 << 4), "10GBASE-SR"}, + {IFM_10G_TWINAX,(1 << 0), "10GBASE-Twinax"} }; static void From owner-svn-src-all@FreeBSD.ORG Wed May 19 20:53:21 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D571D106566C; Wed, 19 May 2010 20:53:21 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8FF028FC0A; Wed, 19 May 2010 20:53:21 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4JKrL0K085284; Wed, 19 May 2010 20:53:21 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4JKrLAK085281; Wed, 19 May 2010 20:53:21 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201005192053.o4JKrLAK085281@svn.freebsd.org> From: Jilles Tjoelker Date: Wed, 19 May 2010 20:53:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208313 - stable/8/etc X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 20:53:21 -0000 Author: jilles Date: Wed May 19 20:53:21 2010 New Revision: 208313 URL: http://svn.freebsd.org/changeset/base/208313 Log: MFC r208116: Change the commented msgs examples in profile/csh.login from -f to -q. Starting something that wants input on login seems strange and can be dangerous. In some configurations, causing output can be bad, but it is not as dangerous. I do not expect this msgs invocation to be uncommented often. PR: conf/96015 Modified: stable/8/etc/csh.login stable/8/etc/profile Directory Properties: stable/8/etc/ (props changed) Modified: stable/8/etc/csh.login ============================================================================== --- stable/8/etc/csh.login Wed May 19 20:00:15 2010 (r208312) +++ stable/8/etc/csh.login Wed May 19 20:53:21 2010 (r208313) @@ -9,7 +9,7 @@ # login.conf(5) and in particular the charset and lang options. # For full locales list check /usr/share/locale/* # -# Read system messages -# msgs -f +# Check system messages +# msgs -q # Allow terminal messages # mesg y Modified: stable/8/etc/profile ============================================================================== --- stable/8/etc/profile Wed May 19 20:00:15 2010 (r208312) +++ stable/8/etc/profile Wed May 19 20:53:21 2010 (r208313) @@ -12,7 +12,7 @@ # You should also read the setlocale(3) man page for information # on how to achieve more precise control of locale settings. # -# Read system messages -# msgs -f +# Check system messages +# msgs -q # Allow terminal messages # mesg y From owner-svn-src-all@FreeBSD.ORG Wed May 19 20:56:19 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0873F106566B; Wed, 19 May 2010 20:56:19 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D37DB8FC14; Wed, 19 May 2010 20:56:18 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4JKuIaM085965; Wed, 19 May 2010 20:56:18 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4JKuIOo085963; Wed, 19 May 2010 20:56:18 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201005192056.o4JKuIOo085963@svn.freebsd.org> From: Pyun YongHyeon Date: Wed, 19 May 2010 20:56:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208314 - stable/8/sys/dev/fxp X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 20:56:19 -0000 Author: yongari Date: Wed May 19 20:56:18 2010 New Revision: 208314 URL: http://svn.freebsd.org/changeset/base/208314 Log: MFC r208081,208083: r208081: Controller updates RFA via DMA so driver needs synchronization. Add missing BUS_DMASYNC_POSTWRITE and BUS_DMASYNC_PREREAD. r208083: Dont' allow dma map load deferring. fxp(4) is not able to handle EINPROGRESS. Modified: stable/8/sys/dev/fxp/if_fxp.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/dev/fxp/if_fxp.c ============================================================================== --- stable/8/sys/dev/fxp/if_fxp.c Wed May 19 20:53:21 2010 (r208313) +++ stable/8/sys/dev/fxp/if_fxp.c Wed May 19 20:56:18 2010 (r208314) @@ -1899,7 +1899,7 @@ fxp_intr_body(struct fxp_softc *sc, stru rfa = (struct fxp_rfa *)(m->m_ext.ext_buf + RFA_ALIGNMENT_FUDGE); bus_dmamap_sync(sc->fxp_rxmtag, rxp->rx_map, - BUS_DMASYNC_POSTREAD); + BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); #ifdef DEVICE_POLLING /* loop at most count times if count >=0 */ if (count >= 0 && count-- == 0) { @@ -2623,7 +2623,7 @@ fxp_new_rfabuf(struct fxp_softc *sc, str /* Map the RFA into DMA memory. */ error = bus_dmamap_load(sc->fxp_rxmtag, sc->spare_map, rfa, MCLBYTES - RFA_ALIGNMENT_FUDGE, fxp_dma_map_addr, - &rxp->rx_addr, 0); + &rxp->rx_addr, BUS_DMA_NOWAIT); if (error) { m_freem(m); return (error); @@ -2659,7 +2659,7 @@ fxp_add_rfabuf(struct fxp_softc *sc, str le32enc(&p_rfa->link_addr, rxp->rx_addr); p_rfa->rfa_control = 0; bus_dmamap_sync(sc->fxp_rxmtag, p_rx->rx_map, - BUS_DMASYNC_PREWRITE); + BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); } else { rxp->rx_next = NULL; sc->fxp_desc.rx_head = rxp; From owner-svn-src-all@FreeBSD.ORG Wed May 19 21:02:02 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5EBC21065674; Wed, 19 May 2010 21:02:02 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4F17C8FC1E; Wed, 19 May 2010 21:02:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4JL22oA087285; Wed, 19 May 2010 21:02:02 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4JL22RL087283; Wed, 19 May 2010 21:02:02 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201005192102.o4JL22RL087283@svn.freebsd.org> From: Pyun YongHyeon Date: Wed, 19 May 2010 21:02:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208315 - stable/7/sys/dev/fxp X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 21:02:02 -0000 Author: yongari Date: Wed May 19 21:02:02 2010 New Revision: 208315 URL: http://svn.freebsd.org/changeset/base/208315 Log: MFC r208081,208083: r208081: Controller updates RFA via DMA so driver needs synchronization. Add missing BUS_DMASYNC_POSTWRITE and BUS_DMASYNC_PREREAD. r208083: Dont' allow dma map load deferring. fxp(4) is not able to handle EINPROGRESS. Modified: stable/7/sys/dev/fxp/if_fxp.c Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/sys/dev/fxp/if_fxp.c ============================================================================== --- stable/7/sys/dev/fxp/if_fxp.c Wed May 19 20:56:18 2010 (r208314) +++ stable/7/sys/dev/fxp/if_fxp.c Wed May 19 21:02:02 2010 (r208315) @@ -1895,7 +1895,7 @@ fxp_intr_body(struct fxp_softc *sc, stru rfa = (struct fxp_rfa *)(m->m_ext.ext_buf + RFA_ALIGNMENT_FUDGE); bus_dmamap_sync(sc->fxp_rxmtag, rxp->rx_map, - BUS_DMASYNC_POSTREAD); + BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE); #ifdef DEVICE_POLLING /* loop at most count times if count >=0 */ if (count >= 0 && count-- == 0) { @@ -2617,7 +2617,7 @@ fxp_new_rfabuf(struct fxp_softc *sc, str /* Map the RFA into DMA memory. */ error = bus_dmamap_load(sc->fxp_rxmtag, sc->spare_map, rfa, MCLBYTES - RFA_ALIGNMENT_FUDGE, fxp_dma_map_addr, - &rxp->rx_addr, 0); + &rxp->rx_addr, BUS_DMA_NOWAIT); if (error) { m_freem(m); return (error); @@ -2653,7 +2653,7 @@ fxp_add_rfabuf(struct fxp_softc *sc, str le32enc(&p_rfa->link_addr, rxp->rx_addr); p_rfa->rfa_control = 0; bus_dmamap_sync(sc->fxp_rxmtag, p_rx->rx_map, - BUS_DMASYNC_PREWRITE); + BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); } else { rxp->rx_next = NULL; sc->fxp_desc.rx_head = rxp; From owner-svn-src-all@FreeBSD.ORG Wed May 19 21:08:39 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5A490106564A; Wed, 19 May 2010 21:08:39 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 314EF8FC14; Wed, 19 May 2010 21:08:39 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4JL8dP9088759; Wed, 19 May 2010 21:08:39 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4JL8dZ4088757; Wed, 19 May 2010 21:08:39 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201005192108.o4JL8dZ4088757@svn.freebsd.org> From: Pyun YongHyeon Date: Wed, 19 May 2010 21:08:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208316 - stable/8/sys/dev/fxp X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 21:08:39 -0000 Author: yongari Date: Wed May 19 21:08:38 2010 New Revision: 208316 URL: http://svn.freebsd.org/changeset/base/208316 Log: MFC r208084: If controller received bad frames make sure to update newly added RFA. Also drop frames that have either CRC error or alignment error. Normally bad frames are not received at all. But controllers running in promiscuous mode will receive bad frames. 82557 will also receive bad frames to receive VLAN oversized frames. While I'm here mark RNR condition if driver happen to see RNR in RFA status and restart RU to receive frames again. Because driver checks all received frames in RX loop, RNR condition could be set in the middle of RX processing. Just relying on RNR interrupt was not enough. This change fixes "Memory modified after free" issue when fxp(4) is running as a member of if_bridge(4). Tested by: Larry Baird gta dot com> Modified: stable/8/sys/dev/fxp/if_fxp.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/dev/fxp/if_fxp.c ============================================================================== --- stable/8/sys/dev/fxp/if_fxp.c Wed May 19 21:02:02 2010 (r208315) +++ stable/8/sys/dev/fxp/if_fxp.c Wed May 19 21:08:38 2010 (r208316) @@ -1916,6 +1916,8 @@ fxp_intr_body(struct fxp_softc *sc, stru if ((status & FXP_RFA_STATUS_C) == 0) break; + if ((status & FXP_RFA_STATUS_RNR) != 0) + rnr++; /* * Advance head forward. */ @@ -1942,9 +1944,12 @@ fxp_intr_body(struct fxp_softc *sc, stru total_len -= 2; } if (total_len < sizeof(struct ether_header) || - total_len > MCLBYTES - RFA_ALIGNMENT_FUDGE - - sc->rfa_size || status & FXP_RFA_STATUS_CRC) { + total_len > (MCLBYTES - RFA_ALIGNMENT_FUDGE - + sc->rfa_size) || + status & (FXP_RFA_STATUS_CRC | + FXP_RFA_STATUS_ALIGN)) { m_freem(m); + fxp_add_rfabuf(sc, rxp); continue; } From owner-svn-src-all@FreeBSD.ORG Wed May 19 21:12:11 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 617281065670; Wed, 19 May 2010 21:12:11 +0000 (UTC) (envelope-from yongari@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 386A08FC0C; Wed, 19 May 2010 21:12:11 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4JLCB7h089602; Wed, 19 May 2010 21:12:11 GMT (envelope-from yongari@svn.freebsd.org) Received: (from yongari@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4JLCBeI089600; Wed, 19 May 2010 21:12:11 GMT (envelope-from yongari@svn.freebsd.org) Message-Id: <201005192112.o4JLCBeI089600@svn.freebsd.org> From: Pyun YongHyeon Date: Wed, 19 May 2010 21:12:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208317 - stable/7/sys/dev/fxp X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 21:12:11 -0000 Author: yongari Date: Wed May 19 21:12:10 2010 New Revision: 208317 URL: http://svn.freebsd.org/changeset/base/208317 Log: MFC r208084: If controller received bad frames make sure to update newly added RFA. Also drop frames that have either CRC error or alignment error. Normally bad frames are not received at all. But controllers running in promiscuous mode will receive bad frames. 82557 will also receive bad frames to receive VLAN oversized frames. While I'm here mark RNR condition if driver happen to see RNR in RFA status and restart RU to receive frames again. Because driver checks all received frames in RX loop, RNR condition could be set in the middle of RX processing. Just relying on RNR interrupt was not enough. This change fixes "Memory modified after free" issue when fxp(4) is running as a member of if_bridge(4). Tested by: Larry Baird gta dot com> Modified: stable/7/sys/dev/fxp/if_fxp.c Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/sys/dev/fxp/if_fxp.c ============================================================================== --- stable/7/sys/dev/fxp/if_fxp.c Wed May 19 21:08:38 2010 (r208316) +++ stable/7/sys/dev/fxp/if_fxp.c Wed May 19 21:12:10 2010 (r208317) @@ -1912,6 +1912,8 @@ fxp_intr_body(struct fxp_softc *sc, stru if ((status & FXP_RFA_STATUS_C) == 0) break; + if ((status & FXP_RFA_STATUS_RNR) != 0) + rnr++; /* * Advance head forward. */ @@ -1938,9 +1940,12 @@ fxp_intr_body(struct fxp_softc *sc, stru total_len -= 2; } if (total_len < sizeof(struct ether_header) || - total_len > MCLBYTES - RFA_ALIGNMENT_FUDGE - - sc->rfa_size || status & FXP_RFA_STATUS_CRC) { + total_len > (MCLBYTES - RFA_ALIGNMENT_FUDGE - + sc->rfa_size) || + status & (FXP_RFA_STATUS_CRC | + FXP_RFA_STATUS_ALIGN)) { m_freem(m); + fxp_add_rfabuf(sc, rxp); continue; } From owner-svn-src-all@FreeBSD.ORG Wed May 19 22:03:46 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 741E01065670; Wed, 19 May 2010 22:03:46 +0000 (UTC) (envelope-from gordon@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6425B8FC0A; Wed, 19 May 2010 22:03:46 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4JM3kk6001526; Wed, 19 May 2010 22:03:46 GMT (envelope-from gordon@svn.freebsd.org) Received: (from gordon@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4JM3kUV001525; Wed, 19 May 2010 22:03:46 GMT (envelope-from gordon@svn.freebsd.org) Message-Id: <201005192203.o4JM3kUV001525@svn.freebsd.org> From: Gordon Tetlow Date: Wed, 19 May 2010 22:03:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208318 - stable/8/lib/libc/gen X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 22:03:46 -0000 Author: gordon Date: Wed May 19 22:03:45 2010 New Revision: 208318 URL: http://svn.freebsd.org/changeset/base/208318 Log: MFC r207981: Fix a bug due to a type conversion from 64 to 32 bits. The side effect of this type conversion is the high bits which were used to indicate if a special character was a literal or special were dropped. As a result, all special character were treated as special, even if they were supposed to be literals. Approved by: mentor (wes@) Modified: stable/8/lib/libc/gen/glob.c Directory Properties: stable/8/lib/libc/ (props changed) stable/8/lib/libc/stdtime/ (props changed) Modified: stable/8/lib/libc/gen/glob.c ============================================================================== --- stable/8/lib/libc/gen/glob.c Wed May 19 21:12:10 2010 (r208317) +++ stable/8/lib/libc/gen/glob.c Wed May 19 22:03:45 2010 (r208318) @@ -433,9 +433,9 @@ static int glob0(const Char *pattern, glob_t *pglob, size_t *limit) { const Char *qpatnext; - int c, err; + int err; size_t oldpathc; - Char *bufnext, patbuf[MAXPATHLEN]; + Char *bufnext, c, patbuf[MAXPATHLEN]; qpatnext = globtilde(pattern, patbuf, MAXPATHLEN, pglob); oldpathc = pglob->gl_pathc; From owner-svn-src-all@FreeBSD.ORG Wed May 19 22:36:47 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 69BA2106566B; Wed, 19 May 2010 22:36:47 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 58E8B8FC19; Wed, 19 May 2010 22:36:47 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4JMal43008821; Wed, 19 May 2010 22:36:47 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4JMal3b008816; Wed, 19 May 2010 22:36:47 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201005192236.o4JMal3b008816@svn.freebsd.org> From: Attilio Rao Date: Wed, 19 May 2010 22:36:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-6@freebsd.org X-SVN-Group: stable-6 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208319 - in stable/6/sys: kern sys vm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 22:36:47 -0000 Author: attilio Date: Wed May 19 22:36:46 2010 New Revision: 208319 URL: http://svn.freebsd.org/changeset/base/208319 Log: MFC: r206264 When OOM searches for a process to kill, ignore the processes already killed by OOM. When killed process waits for a page allocation, try to satisfy the request as fast as possible. Sponsored by: Sandvine Incorporated Modified: stable/6/sys/kern/kern_sig.c stable/6/sys/sys/proc.h stable/6/sys/vm/vm_fault.c stable/6/sys/vm/vm_pageout.c Directory Properties: stable/6/sys/ (props changed) stable/6/sys/contrib/pf/ (props changed) stable/6/sys/dev/cxgb/ (props changed) Modified: stable/6/sys/kern/kern_sig.c ============================================================================== --- stable/6/sys/kern/kern_sig.c Wed May 19 22:03:45 2010 (r208318) +++ stable/6/sys/kern/kern_sig.c Wed May 19 22:36:46 2010 (r208319) @@ -2408,6 +2408,7 @@ killproc(p, why) p, p->p_pid, p->p_comm); log(LOG_ERR, "pid %d (%s), uid %d, was killed: %s\n", p->p_pid, p->p_comm, p->p_ucred ? p->p_ucred->cr_uid : -1, why); + p->p_flag |= P_WKILLED; psignal(p, SIGKILL); } Modified: stable/6/sys/sys/proc.h ============================================================================== --- stable/6/sys/sys/proc.h Wed May 19 22:03:45 2010 (r208318) +++ stable/6/sys/sys/proc.h Wed May 19 22:36:46 2010 (r208319) @@ -654,11 +654,13 @@ struct proc { #define P_HWPMC 0x800000 /* Process is using HWPMCs */ #define P_JAILED 0x1000000 /* Process is in jail. */ +#define P_WKILLED 0x2000000 /* Killed, go to kernel/user boundary ASAP. */ #define P_INEXEC 0x4000000 /* Process is in execve(). */ #define P_STATCHILD 0x8000000 /* Child process stopped or exited. */ #define P_STOPPED (P_STOPPED_SIG|P_STOPPED_SINGLE|P_STOPPED_TRACE) #define P_SHOULDSTOP(p) ((p)->p_flag & P_STOPPED) +#define P_KILLED(p) ((p)->p_flag & P_WKILLED) /* These flags are kept in p_sflag and are protected with sched_lock. */ #define PS_INMEM 0x00001 /* Loaded into memory. */ Modified: stable/6/sys/vm/vm_fault.c ============================================================================== --- stable/6/sys/vm/vm_fault.c Wed May 19 22:03:45 2010 (r208318) +++ stable/6/sys/vm/vm_fault.c Wed May 19 22:36:46 2010 (r208319) @@ -218,7 +218,7 @@ vm_fault(vm_map_t map, vm_offset_t vaddr vm_object_t next_object; vm_page_t marray[VM_FAULT_READ]; int hardfault; - int faultcount; + int faultcount, alloc_req; struct faultstate fs; hardfault = 0; @@ -449,11 +449,21 @@ RetryFault:; /* * Allocate a new page for this object/offset pair. + * + * Unlocked read of the p_flag is harmless. At + * worst, the P_KILLED might be not observed + * there, and allocation can fail, causing + * restart and new reading of the p_flag. */ fs.m = NULL; - if (!vm_page_count_severe()) { + if (!vm_page_count_severe() || P_KILLED(curproc)) { + alloc_req = P_KILLED(curproc) ? + VM_ALLOC_SYSTEM : VM_ALLOC_NORMAL; + if (fs.vp == NULL && + fs.object->backing_object == NULL) + alloc_req |= VM_ALLOC_ZERO; fs.m = vm_page_alloc(fs.object, fs.pindex, - (fs.vp || fs.object->backing_object)? VM_ALLOC_NORMAL: VM_ALLOC_ZERO); + alloc_req); } if (fs.m == NULL) { unlock_and_deallocate(&fs); @@ -478,7 +488,8 @@ readrest: int ahead, behind; u_char behavior = vm_map_entry_behavior(fs.entry); - if (behavior == MAP_ENTRY_BEHAV_RANDOM) { + if (behavior == MAP_ENTRY_BEHAV_RANDOM || + P_KILLED(curproc)) { ahead = 0; behind = 0; } else { Modified: stable/6/sys/vm/vm_pageout.c ============================================================================== --- stable/6/sys/vm/vm_pageout.c Wed May 19 22:03:45 2010 (r208318) +++ stable/6/sys/vm/vm_pageout.c Wed May 19 22:36:46 2010 (r208319) @@ -1276,10 +1276,10 @@ vm_pageout_oom(int shortage) if (PROC_TRYLOCK(p) == 0) continue; /* - * If this is a system or protected process, skip it. + * If this is a system, protected or killed process, skip it. */ if ((p->p_flag & (P_INEXEC | P_PROTECTED | P_SYSTEM)) || - (p->p_pid == 1) || + (p->p_pid == 1) || P_KILLED(p) || ((p->p_pid < 48) && (swap_pager_avail != 0))) { PROC_UNLOCK(p); continue; From owner-svn-src-all@FreeBSD.ORG Wed May 19 23:56:28 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A499B1065675; Wed, 19 May 2010 23:56:28 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 926208FC15; Wed, 19 May 2010 23:56:28 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4JNuRux026464; Wed, 19 May 2010 23:56:27 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4JNuRNu026456; Wed, 19 May 2010 23:56:27 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <201005192356.o4JNuRNu026456@svn.freebsd.org> From: Jung-uk Kim Date: Wed, 19 May 2010 23:56:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208320 - in head: etc etc/periodic/weekly gnu/usr.bin share/man share/mk usr.bin usr.sbin X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 May 2010 23:56:28 -0000 Author: jkim Date: Wed May 19 23:56:26 2010 New Revision: 208320 URL: http://svn.freebsd.org/changeset/base/208320 Log: Add a new build option, MAN_UTILS. This option lets you control building utilities and related support files for manual pages, which were previously controlled by MAN. For POLA, the default depends on MAN, i.e., WITHOUT_MAN implies WITHOUT_MAN_UTILS and WITH_MAN implies WITH_MAN_UTILS. This patch is slightly improved by me from: PR: misc/145212 Modified: head/etc/Makefile head/etc/periodic/weekly/Makefile head/gnu/usr.bin/Makefile head/share/man/Makefile head/share/mk/bsd.own.mk head/usr.bin/Makefile head/usr.sbin/Makefile Modified: head/etc/Makefile ============================================================================== --- head/etc/Makefile Wed May 19 22:36:46 2010 (r208319) +++ head/etc/Makefile Wed May 19 23:56:26 2010 (r208320) @@ -64,7 +64,7 @@ BIN1+= hosts.lpd printcap BIN1+= ${.CURDIR}/../usr.bin/mail/misc/mail.rc .endif -.if ${MK_MAN} != "no" +.if ${MK_MAN_UTILS} != "no" BIN1+= ${.CURDIR}/../gnu/usr.bin/man/manpath/manpath.config .endif Modified: head/etc/periodic/weekly/Makefile ============================================================================== --- head/etc/periodic/weekly/Makefile Wed May 19 22:36:46 2010 (r208319) +++ head/etc/periodic/weekly/Makefile Wed May 19 23:56:26 2010 (r208320) @@ -11,7 +11,7 @@ FILES= 340.noid \ FILES+= 310.locate .endif -.if ${MK_MAN} != "no" +.if ${MK_MAN_UTILS} != "no" FILES+= 320.whatis 330.catman .endif Modified: head/gnu/usr.bin/Makefile ============================================================================== --- head/gnu/usr.bin/Makefile Wed May 19 22:36:46 2010 (r208319) +++ head/gnu/usr.bin/Makefile Wed May 19 23:56:26 2010 (r208320) @@ -39,7 +39,7 @@ _grep= grep _texinfo= texinfo .endif -.if ${MK_MAN} != "no" +.if ${MK_MAN_UTILS} != "no" _man= man .endif Modified: head/share/man/Makefile ============================================================================== --- head/share/man/Makefile Wed May 19 22:36:46 2010 (r208319) +++ head/share/man/Makefile Wed May 19 23:56:26 2010 (r208320) @@ -9,10 +9,12 @@ SUBDIR= man1 man3 man4 man5 man6 man7 ma MAKEWHATIS?= makewhatis makedb: +.if ${MK_MAN_UTILS} != "no" ${MAKEWHATIS} ${DESTDIR}${BINDIR}/man .if ${MK_OPENSSL} != "no" ${MAKEWHATIS} ${DESTDIR}${BINDIR}/openssl/man .endif +.endif .include "${.CURDIR}/../Makefile.inc" .include Modified: head/share/mk/bsd.own.mk ============================================================================== --- head/share/mk/bsd.own.mk Wed May 19 22:36:46 2010 (r208319) +++ head/share/mk/bsd.own.mk Wed May 19 23:56:26 2010 (r208320) @@ -524,7 +524,8 @@ MK_${var}_SUPPORT:= yes # MK_* options whose default value depends on another option. # .for vv in \ - GSSAPI/KERBEROS + GSSAPI/KERBEROS \ + MAN_UTILS/MAN .if defined(WITH_${vv:H}) && defined(WITHOUT_${vv:H}) .error WITH_${vv:H} and WITHOUT_${vv:H} can't both be set. .endif Modified: head/usr.bin/Makefile ============================================================================== --- head/usr.bin/Makefile Wed May 19 22:36:46 2010 (r208319) +++ head/usr.bin/Makefile Wed May 19 23:56:26 2010 (r208320) @@ -120,7 +120,7 @@ SUBDIR= alias \ m4 \ ${_mail} \ ${_make} \ - makewhatis \ + ${_makewhatis} \ mesg \ minigzip \ ministat \ @@ -256,7 +256,7 @@ _at= at _atm= atm .endif -.if ${MK_MAN} != "no" +.if ${MK_MAN_UTILS} != "no" _catman= catman .endif @@ -309,6 +309,10 @@ _msgs= msgs _make= make .endif +.if ${MK_MAN_UTILS} != "no" +_makewhatis= makewhatis +.endif + .if ${MK_NETCAT} != "no" _nc= nc .endif Modified: head/usr.sbin/Makefile ============================================================================== --- head/usr.sbin/Makefile Wed May 19 22:36:46 2010 (r208319) +++ head/usr.sbin/Makefile Wed May 19 23:56:26 2010 (r208320) @@ -90,7 +90,7 @@ SUBDIR= ${_ac} \ mailwrapper \ makefs \ ${_makemap} \ - manctl \ + ${_manctl} \ memcontrol \ mergemaster \ mfiutil \ @@ -322,6 +322,10 @@ _nscd= nscd _lpr= lpr .endif +.if ${MK_MAN_UTILS} != "no" +_manctl= manctl +.endif + .if ${MK_NETGRAPH} != "no" _flowctl= flowctl _lmcconfig= lmcconfig From owner-svn-src-all@FreeBSD.ORG Thu May 20 00:05:33 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C3C8D1065674; Thu, 20 May 2010 00:05:33 +0000 (UTC) (envelope-from thompsa@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A81448FC08; Thu, 20 May 2010 00:05:33 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4K05XTc028541; Thu, 20 May 2010 00:05:33 GMT (envelope-from thompsa@svn.freebsd.org) Received: (from thompsa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4K05XqB028538; Thu, 20 May 2010 00:05:33 GMT (envelope-from thompsa@svn.freebsd.org) Message-Id: <201005200005.o4K05XqB028538@svn.freebsd.org> From: Andrew Thompson Date: Thu, 20 May 2010 00:05:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208321 - stable/8/sys/dev/usb X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 00:05:34 -0000 Author: thompsa Date: Thu May 20 00:05:33 2010 New Revision: 208321 URL: http://svn.freebsd.org/changeset/base/208321 Log: MFC r208012 Support getting signed and unsigned HID data. Submitted by: Alex Deiter Modified: stable/8/sys/dev/usb/usb_hid.c stable/8/sys/dev/usb/usbhid.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/dev/usb/usb_hid.c ============================================================================== --- stable/8/sys/dev/usb/usb_hid.c Wed May 19 23:56:26 2010 (r208320) +++ stable/8/sys/dev/usb/usb_hid.c Thu May 20 00:05:33 2010 (r208321) @@ -653,8 +653,9 @@ hid_locate(const void *desc, usb_size_t /*------------------------------------------------------------------------* * hid_get_data *------------------------------------------------------------------------*/ -uint32_t -hid_get_data(const uint8_t *buf, usb_size_t len, struct hid_location *loc) +static uint32_t +hid_get_data_sub(const uint8_t *buf, usb_size_t len, struct hid_location *loc, + int is_signed) { uint32_t hpos = loc->pos; uint32_t hsize = loc->size; @@ -683,16 +684,31 @@ hid_get_data(const uint8_t *buf, usb_siz /* Correctly shift down data */ data = (data >> (hpos % 8)); + n = 32 - hsize; /* Mask and sign extend in one */ - n = 32 - hsize; - data = ((int32_t)data << n) >> n; + if (is_signed != 0) + data = (int32_t)((int32_t)data << n) >> n; + else + data = (uint32_t)((uint32_t)data << n) >> n; DPRINTFN(11, "hid_get_data: loc %d/%d = %lu\n", loc->pos, loc->size, (long)data); return (data); } +int32_t +hid_get_data(const uint8_t *buf, usb_size_t len, struct hid_location *loc) +{ + return (hid_get_data_sub(buf, len, loc, 1)); +} + +uint32_t +hid_get_data_unsigned(const uint8_t *buf, usb_size_t len, struct hid_location *loc) +{ + return (hid_get_data_sub(buf, len, loc, 0)); +} + /*------------------------------------------------------------------------* * hid_is_collection *------------------------------------------------------------------------*/ Modified: stable/8/sys/dev/usb/usbhid.h ============================================================================== --- stable/8/sys/dev/usb/usbhid.h Wed May 19 23:56:26 2010 (r208320) +++ stable/8/sys/dev/usb/usbhid.h Thu May 20 00:05:33 2010 (r208321) @@ -229,7 +229,9 @@ int hid_report_size(const void *buf, usb int hid_locate(const void *desc, usb_size_t size, uint32_t usage, enum hid_kind kind, uint8_t index, struct hid_location *loc, uint32_t *flags, uint8_t *id); -uint32_t hid_get_data(const uint8_t *buf, usb_size_t len, +int32_t hid_get_data(const uint8_t *buf, usb_size_t len, + struct hid_location *loc); +uint32_t hid_get_data_unsigned(const uint8_t *buf, usb_size_t len, struct hid_location *loc); int hid_is_collection(const void *desc, usb_size_t size, uint32_t usage); struct usb_hid_descriptor *hid_get_descriptor_from_usb( From owner-svn-src-all@FreeBSD.ORG Thu May 20 00:07:21 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E862F106564A; Thu, 20 May 2010 00:07:21 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D7ADA8FC14; Thu, 20 May 2010 00:07:21 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4K07LCD028965; Thu, 20 May 2010 00:07:21 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4K07LI8028963; Thu, 20 May 2010 00:07:21 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <201005200007.o4K07LI8028963@svn.freebsd.org> From: Jung-uk Kim Date: Thu, 20 May 2010 00:07:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208322 - head/tools/build/options X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 00:07:22 -0000 Author: jkim Date: Thu May 20 00:07:21 2010 New Revision: 208322 URL: http://svn.freebsd.org/changeset/base/208322 Log: Add an option file for WITHOUT_MAN_UTILS to regenerate src.conf(5). Added: head/tools/build/options/WITHOUT_MAN_UTILS (contents, props changed) Added: head/tools/build/options/WITHOUT_MAN_UTILS ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/tools/build/options/WITHOUT_MAN_UTILS Thu May 20 00:07:21 2010 (r208322) @@ -0,0 +1,9 @@ +.\" $FreeBSD$ +Set to not build utilities for manual pages, +.Xr apropos 1 , +.Xr catman 1 , +.Xr makewhatis 1 , +.Xr man 1 , +.Xr whatis 1 , +.Xr manctl 8 , +and related support files. From owner-svn-src-all@FreeBSD.ORG Thu May 20 00:10:11 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BA9F9106566C; Thu, 20 May 2010 00:10:11 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id AA2A78FC1B; Thu, 20 May 2010 00:10:11 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4K0AB3f029618; Thu, 20 May 2010 00:10:11 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4K0ABNi029616; Thu, 20 May 2010 00:10:11 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <201005200010.o4K0ABNi029616@svn.freebsd.org> From: Jung-uk Kim Date: Thu, 20 May 2010 00:10:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208323 - head/share/man/man5 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 00:10:11 -0000 Author: jkim Date: Thu May 20 00:10:11 2010 New Revision: 208323 URL: http://svn.freebsd.org/changeset/base/208323 Log: Regen for r208321. Modified: head/share/man/man5/src.conf.5 Modified: head/share/man/man5/src.conf.5 ============================================================================== --- head/share/man/man5/src.conf.5 Thu May 20 00:07:21 2010 (r208322) +++ head/share/man/man5/src.conf.5 Thu May 20 00:10:11 2010 (r208323) @@ -1,7 +1,7 @@ .\" DO NOT EDIT-- this file is automatically generated. .\" from FreeBSD: head/tools/build/options/makeman 188848 2009-02-20 11:09:55Z mtm .\" $FreeBSD$ -.Dd March 26, 2010 +.Dd May 19, 2010 .Dt SRC.CONF 5 .Os .Sh NAME @@ -556,6 +556,24 @@ and related support files. .It Va WITHOUT_MAN .\" from FreeBSD: head/tools/build/options/WITHOUT_MAN 156932 2006-03-21 07:50:50Z ru Set to not build manual pages. +When set, it also enforces the following options: +.Pp +.Bl -item -compact +.It +.Va WITHOUT_MAN_UTILS +(can be overridden with +.Va WITH_MAN_UTILS ) +.El +.It Va WITHOUT_MAN_UTILS +.\" from FreeBSD: head/tools/build/options/WITHOUT_MAN_UTILS 208322 2010-05-20 00:07:21Z jkim +Set to not build utilities for manual pages, +.Xr apropos 1 , +.Xr catman 1 , +.Xr makewhatis 1 , +.Xr man 1 , +.Xr whatis 1 , +.Xr manctl 8 , +and related support files. .It Va WITHOUT_NCP .\" from FreeBSD: head/tools/build/options/WITHOUT_NCP 156932 2006-03-21 07:50:50Z ru Set to not build programs, libraries, and kernel modules From owner-svn-src-all@FreeBSD.ORG Thu May 20 00:13:02 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3EC981065674; Thu, 20 May 2010 00:13:02 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2E52B8FC08; Thu, 20 May 2010 00:13:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4K0D12B030286; Thu, 20 May 2010 00:13:01 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4K0D1Jo030284; Thu, 20 May 2010 00:13:01 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <201005200013.o4K0D1Jo030284@svn.freebsd.org> From: Jung-uk Kim Date: Thu, 20 May 2010 00:13:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208324 - head X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 00:13:02 -0000 Author: jkim Date: Thu May 20 00:13:01 2010 New Revision: 208324 URL: http://svn.freebsd.org/changeset/base/208324 Log: Remove makewhatis(1) from bootstrap tools. We no longer support source upgrades from versions prior to 6.0 on head. Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Thu May 20 00:10:11 2010 (r208323) +++ head/Makefile.inc1 Thu May 20 00:13:01 2010 (r208324) @@ -969,7 +969,6 @@ bootstrap-tools: ${_groff} \ ${_ar} \ usr.bin/lorder \ - usr.bin/makewhatis \ ${_mklocale} \ usr.bin/rpcgen \ ${_sed} \ From owner-svn-src-all@FreeBSD.ORG Thu May 20 00:20:41 2010 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from [127.0.0.1] (unknown [IPv6:2001:4f8:fff6::28]) by hub.freebsd.org (Postfix) with ESMTP id EC2451065672; Thu, 20 May 2010 00:20:40 +0000 (UTC) (envelope-from jkim@FreeBSD.org) From: Jung-uk Kim To: src-committers@FreeBSD.org Date: Wed, 19 May 2010 20:20:30 -0400 User-Agent: KMail/1.6.2 References: <201005200010.o4K0ABNi029616@svn.freebsd.org> In-Reply-To: <201005200010.o4K0ABNi029616@svn.freebsd.org> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201005192020.32270.jkim@FreeBSD.org> Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org Subject: Re: svn commit: r208323 - head/share/man/man5 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 00:20:41 -0000 On Wednesday 19 May 2010 08:10 pm, Jung-uk Kim wrote: > Author: jkim > Date: Thu May 20 00:10:11 2010 > New Revision: 208323 > URL: http://svn.freebsd.org/changeset/base/208323 > > Log: > Regen for r208321. > > Modified: > head/share/man/man5/src.conf.5 Sorry, it's actually regen for r208322. thompsa@ beat me. :-) Jung-uk Kim From owner-svn-src-all@FreeBSD.ORG Thu May 20 00:31:09 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 61572106566C; Thu, 20 May 2010 00:31:09 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4FE028FC15; Thu, 20 May 2010 00:31:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4K0V9sd034275; Thu, 20 May 2010 00:31:09 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4K0V9EV034273; Thu, 20 May 2010 00:31:09 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201005200031.o4K0V9EV034273@svn.freebsd.org> From: Xin LI Date: Thu, 20 May 2010 00:31:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208325 - stable/8/usr.bin/rpcgen X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 00:31:09 -0000 Author: delphij Date: Thu May 20 00:31:09 2010 New Revision: 208325 URL: http://svn.freebsd.org/changeset/base/208325 Log: MFC r207733: Plug memory leak. Modified: stable/8/usr.bin/rpcgen/rpc_cout.c Directory Properties: stable/8/usr.bin/rpcgen/ (props changed) Modified: stable/8/usr.bin/rpcgen/rpc_cout.c ============================================================================== --- stable/8/usr.bin/rpcgen/rpc_cout.c Thu May 20 00:13:01 2010 (r208324) +++ stable/8/usr.bin/rpcgen/rpc_cout.c Thu May 20 00:31:09 2010 (r208325) @@ -489,6 +489,7 @@ inline_struct(definition *def, int flag) } size = 0; i = 0; + free(sizestr); sizestr = NULL; print_stat(indent + 1, &dl->decl); } From owner-svn-src-all@FreeBSD.ORG Thu May 20 00:31:52 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EF5C01065677; Thu, 20 May 2010 00:31:51 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DE0218FC21; Thu, 20 May 2010 00:31:51 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4K0VpZL034487; Thu, 20 May 2010 00:31:51 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4K0Vprx034485; Thu, 20 May 2010 00:31:51 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201005200031.o4K0Vprx034485@svn.freebsd.org> From: Xin LI Date: Thu, 20 May 2010 00:31:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208326 - stable/7/usr.bin/rpcgen X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 00:31:52 -0000 Author: delphij Date: Thu May 20 00:31:51 2010 New Revision: 208326 URL: http://svn.freebsd.org/changeset/base/208326 Log: MFC r207733: Plug memory leak. Modified: stable/7/usr.bin/rpcgen/rpc_cout.c Directory Properties: stable/7/usr.bin/rpcgen/ (props changed) Modified: stable/7/usr.bin/rpcgen/rpc_cout.c ============================================================================== --- stable/7/usr.bin/rpcgen/rpc_cout.c Thu May 20 00:31:09 2010 (r208325) +++ stable/7/usr.bin/rpcgen/rpc_cout.c Thu May 20 00:31:51 2010 (r208326) @@ -489,6 +489,7 @@ inline_struct(definition *def, int flag) } size = 0; i = 0; + free(sizestr); sizestr = NULL; print_stat(indent + 1, &dl->decl); } From owner-svn-src-all@FreeBSD.ORG Thu May 20 05:03:03 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 161EB1065670; Thu, 20 May 2010 05:03:03 +0000 (UTC) (envelope-from maxim@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 059828FC17; Thu, 20 May 2010 05:03:03 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4K532hp093970; Thu, 20 May 2010 05:03:02 GMT (envelope-from maxim@svn.freebsd.org) Received: (from maxim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4K532oV093968; Thu, 20 May 2010 05:03:02 GMT (envelope-from maxim@svn.freebsd.org) Message-Id: <201005200503.o4K532oV093968@svn.freebsd.org> From: Maxim Konovalov Date: Thu, 20 May 2010 05:03:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208327 - head/share/misc X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 05:03:03 -0000 Author: maxim Date: Thu May 20 05:03:02 2010 New Revision: 208327 URL: http://svn.freebsd.org/changeset/base/208327 Log: o OpenBSD 4.7 added. Modified: head/share/misc/bsd-family-tree Modified: head/share/misc/bsd-family-tree ============================================================================== --- head/share/misc/bsd-family-tree Thu May 20 00:31:51 2010 (r208326) +++ head/share/misc/bsd-family-tree Thu May 20 05:03:02 2010 (r208327) @@ -236,6 +236,7 @@ FreeBSD 5.2 | | | 8.0 | | | | | | | FreeBSD | | | | | V 7.3 | | | | + | | | OpenBSD 4.7 | | | | | | FreeBSD 9 -current | NetBSD -current OpenBSD -current | | | | | | @@ -512,6 +513,7 @@ DragonFly 2.4.0 2009-09-16 [DFB] OpenBSD 4.6 2009-10-18 [OBD] FreeBSD 8.0 2009-11-26 [FBD] FreeBSD 7.3 2010-03-23 [FBD] +OpenBSD 4.7 2010-05-19 [OBD] Bibliography ------------------------ From owner-svn-src-all@FreeBSD.ORG Thu May 20 05:29:23 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E2A511065673; Thu, 20 May 2010 05:29:23 +0000 (UTC) (envelope-from pluknet@gmail.com) Received: from mail-gx0-f226.google.com (mail-gx0-f226.google.com [209.85.217.226]) by mx1.freebsd.org (Postfix) with ESMTP id 5FE068FC15; Thu, 20 May 2010 05:29:22 +0000 (UTC) Received: by gxk26 with SMTP id 26so3512568gxk.13 for ; Wed, 19 May 2010 22:29:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=rfvO/8MOuh1rsL9Zm8HR5qrvHVugo8FTTyE565p2sDA=; b=pPydAQFDXLTYl3PdlrnaxdlzsYjI/sNvBC53SdTUy1SQjNQW7Xexb0OQU3hs56q2sp o3m93qX1s7pXpVgTpQz0PC9oR82ySG0uTDKqeEsdKrAHYeLf2M1lNrsUsJ0qr2o09KYa nZb1Qe5Xua+zoA1TaixTqtcE3mLa6DKMbu1Bo= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=TyqJ5UyLN9cSQ+2aHDAuQzop6QiLanScof2mmgdmkqpQ2gDot2pBa15iEoVdNj57MS tyG+c934yRUgRNp+KpJJWZQXM+L8mP0yIV4VJBMDpziJ1/XwEKRjxoWf3ja8DhNxH68U GPLhgT8EnTpwle/xCTCDSOPo1oaVH1LcjKBV4= MIME-Version: 1.0 Received: by 10.100.246.23 with SMTP id t23mr10913106anh.167.1274333362017; Wed, 19 May 2010 22:29:22 -0700 (PDT) Received: by 10.100.208.9 with HTTP; Wed, 19 May 2010 22:29:21 -0700 (PDT) In-Reply-To: <201005192236.o4JMal3b008816@svn.freebsd.org> References: <201005192236.o4JMal3b008816@svn.freebsd.org> Date: Thu, 20 May 2010 09:29:21 +0400 Message-ID: From: pluknet To: Attilio Rao Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: svn-src-stable@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, svn-src-stable-6@freebsd.org Subject: Re: svn commit: r208319 - in stable/6/sys: kern sys vm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 05:29:24 -0000 On 20 May 2010 02:36, Attilio Rao wrote: > Author: attilio > Date: Wed May 19 22:36:46 2010 > New Revision: 208319 > URL: http://svn.freebsd.org/changeset/base/208319 > > Log: > =A0MFC: r206264 > =A0When OOM searches for a process to kill, ignore the processes already > =A0killed by OOM. When killed process waits for a page allocation, try to > =A0satisfy the request as fast as possible. > > =A0Sponsored by: Sandvine Incorporated > Great, thank you! --=20 wbr, pluknet From owner-svn-src-all@FreeBSD.ORG Thu May 20 05:38:09 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 46FBC106566B; Thu, 20 May 2010 05:38:09 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 00B088FC13; Thu, 20 May 2010 05:38:09 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4K5c8Kh001857; Thu, 20 May 2010 05:38:08 GMT (envelope-from dougb@svn.freebsd.org) Received: (from dougb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4K5c8qj001852; Thu, 20 May 2010 05:38:08 GMT (envelope-from dougb@svn.freebsd.org) Message-Id: <201005200538.o4K5c8qj001852@svn.freebsd.org> From: Doug Barton Date: Thu, 20 May 2010 05:38:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208328 - in vendor/bind9/dist: . lib/dns X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 05:38:09 -0000 Author: dougb Date: Thu May 20 05:38:08 2010 New Revision: 208328 URL: http://svn.freebsd.org/changeset/base/208328 Log: Vendor import of BIND 9.6.2-P2 Modified: vendor/bind9/dist/CHANGES vendor/bind9/dist/lib/dns/api vendor/bind9/dist/lib/dns/validator.c vendor/bind9/dist/version Modified: vendor/bind9/dist/CHANGES ============================================================================== --- vendor/bind9/dist/CHANGES Thu May 20 05:03:02 2010 (r208327) +++ vendor/bind9/dist/CHANGES Thu May 20 05:38:08 2010 (r208328) @@ -1,3 +1,8 @@ + --- 9.6.2-P2 released --- + +2876. [bug] Named could return SERVFAIL for negative responses + from unsigned zones. [RT #21131] + --- 9.6.2-P1 released --- 2852. [bug] Handle broken DNSSEC trust chains better. [RT #15619] Modified: vendor/bind9/dist/lib/dns/api ============================================================================== --- vendor/bind9/dist/lib/dns/api Thu May 20 05:03:02 2010 (r208327) +++ vendor/bind9/dist/lib/dns/api Thu May 20 05:38:08 2010 (r208328) @@ -1,3 +1,3 @@ LIBINTERFACE = 56 -LIBREVISION = 0 +LIBREVISION = 1 LIBAGE = 1 Modified: vendor/bind9/dist/lib/dns/validator.c ============================================================================== --- vendor/bind9/dist/lib/dns/validator.c Thu May 20 05:03:02 2010 (r208327) +++ vendor/bind9/dist/lib/dns/validator.c Thu May 20 05:38:08 2010 (r208328) @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: validator.c,v 1.164.12.11.8.2 2010/02/25 10:57:12 tbox Exp $ */ +/* $Id: validator.c,v 1.164.12.11.8.3 2010/04/21 04:29:01 marka Exp $ */ #include @@ -2961,7 +2961,7 @@ nsecvalidate(dns_validator_t *val, isc_b } findnsec3proofs(val); - if (val->authcount == val->authfail) + if (val->authfail != 0 && val->authcount == val->authfail) return (DNS_R_BROKENCHAIN); validator_log(val, ISC_LOG_DEBUG(3), "nonexistence proof(s) not found"); Modified: vendor/bind9/dist/version ============================================================================== --- vendor/bind9/dist/version Thu May 20 05:03:02 2010 (r208327) +++ vendor/bind9/dist/version Thu May 20 05:38:08 2010 (r208328) @@ -1,4 +1,4 @@ -# $Id: version,v 1.43.12.8.2.3 2010/03/04 00:08:28 marka Exp $ +# $Id: version,v 1.43.12.8.2.4 2010/05/10 02:07:03 marka Exp $ # # This file must follow /bin/sh rules. It is imported directly via # configure. @@ -7,4 +7,4 @@ MAJORVER=9 MINORVER=6 PATCHVER=2 RELEASETYPE=-P -RELEASEVER=1 +RELEASEVER=2 From owner-svn-src-all@FreeBSD.ORG Thu May 20 05:38:54 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D0E0F1065676; Thu, 20 May 2010 05:38:54 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A7C0F8FC14; Thu, 20 May 2010 05:38:54 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4K5csiP002060; Thu, 20 May 2010 05:38:54 GMT (envelope-from dougb@svn.freebsd.org) Received: (from dougb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4K5csdk002059; Thu, 20 May 2010 05:38:54 GMT (envelope-from dougb@svn.freebsd.org) Message-Id: <201005200538.o4K5csdk002059@svn.freebsd.org> From: Doug Barton Date: Thu, 20 May 2010 05:38:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208329 - vendor/bind9/9.6.2-P2 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 05:38:54 -0000 Author: dougb Date: Thu May 20 05:38:54 2010 New Revision: 208329 URL: http://svn.freebsd.org/changeset/base/208329 Log: Tag the 9.6.2-P2 release Added: vendor/bind9/9.6.2-P2/ - copied from r208328, vendor/bind9/dist/ From owner-svn-src-all@FreeBSD.ORG Thu May 20 05:53:29 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6B7E31065675; Thu, 20 May 2010 05:53:29 +0000 (UTC) (envelope-from pluknet@gmail.com) Received: from mail-gw0-f54.google.com (mail-gw0-f54.google.com [74.125.83.54]) by mx1.freebsd.org (Postfix) with ESMTP id D9C338FC08; Thu, 20 May 2010 05:53:28 +0000 (UTC) Received: by gwb11 with SMTP id 11so2570854gwb.13 for ; Wed, 19 May 2010 22:53:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=Iqz4GobDR+G8QnokdPWXYWaBzJ+7xx3ZaY7IaJVlHfY=; b=iPs2upS3QT/uDKjYhC5AMRV9QVXrjx4KAPxGBXj91kUF9/KW8GT8TT505SeW7vixD3 Zn/SjoUZpPbOpujcpguQFmM6FxgMBSXs+qeCBdQ/l3sYSNUvubAiXU6JY+36r3bVz7R8 0k6DYQIe8X53BwS4E/R63zVaPzfNamtbEb7ko= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=uicGQTvr/88MukkUeS+Q7yCZgWoY1G15erPyKWjeicYZv4xCY/B5iRmcO+AgCC17tq dK9CSxzVmeK50m+GtvcwPN75XZ0GW45AcfVLDvdRIELLdlsbpnHEc7DcBgmeoK34UJBc DSaOnDOvJ8VeeYy11diZzBswtLgZSA3tRwbJ4= MIME-Version: 1.0 Received: by 10.101.29.16 with SMTP id g16mr11853952anj.245.1274334807381; Wed, 19 May 2010 22:53:27 -0700 (PDT) Received: by 10.100.208.9 with HTTP; Wed, 19 May 2010 22:53:27 -0700 (PDT) In-Reply-To: <201005200503.o4K532oV093968@svn.freebsd.org> References: <201005200503.o4K532oV093968@svn.freebsd.org> Date: Thu, 20 May 2010 09:53:27 +0400 Message-ID: From: pluknet To: Maxim Konovalov Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r208327 - head/share/misc X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 05:53:29 -0000 On 20 May 2010 09:03, Maxim Konovalov wrote: > Author: maxim > Date: Thu May 20 05:03:02 2010 > New Revision: 208327 > URL: http://svn.freebsd.org/changeset/base/208327 > > Log: > =A0o OpenBSD 4.7 added. > > Modified: > =A0head/share/misc/bsd-family-tree Matthew's 2.6.0 technically tagged on 2010-03-28. http://gitweb.dragonflybsd.org/dragonfly.git/tag/4f39cf4b1fe60d4fbec4b908fa= fb7f075fd3d866 Would you like to add this as well? Index: share/misc/bsd-family-tree =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- share/misc/bsd-family-tree (revision 208329) +++ share/misc/bsd-family-tree (working copy) @@ -235,7 +235,7 @@ *--FreeBSD | | | | | | 8.0 | | | | | | | FreeBSD | | | | - | V 7.3 | | | | + | V 7.3 | | | DragonFly = 2.6.0 | | | OpenBSD 4.7 | | | | | | FreeBSD 9 -current | NetBSD -current OpenBSD -current | @@ -513,6 +513,7 @@ OpenBSD 4.6 2009-10-18 [OBD] FreeBSD 8.0 2009-11-26 [FBD] FreeBSD 7.3 2010-03-23 [FBD] +DragonFly 2.6.0 2010-03-28 [DFB] OpenBSD 4.7 2010-05-19 [OBD] Bibliography --=20 wbr, pluknet From owner-svn-src-all@FreeBSD.ORG Thu May 20 06:05:41 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4439A1065676; Thu, 20 May 2010 06:05:41 +0000 (UTC) (envelope-from mckusick@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1AF578FC13; Thu, 20 May 2010 06:05:41 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4K65ecM007941; Thu, 20 May 2010 06:05:40 GMT (envelope-from mckusick@svn.freebsd.org) Received: (from mckusick@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4K65etb007938; Thu, 20 May 2010 06:05:40 GMT (envelope-from mckusick@svn.freebsd.org) Message-Id: <201005200605.o4K65etb007938@svn.freebsd.org> From: Kirk McKusick Date: Thu, 20 May 2010 06:05:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208330 - head/sbin/fsck_ffs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 06:05:41 -0000 Author: mckusick Date: Thu May 20 06:05:40 2010 New Revision: 208330 URL: http://svn.freebsd.org/changeset/base/208330 Log: Add support to background fsck to delete zero-length directories. Modified: head/sbin/fsck_ffs/pass2.c head/sbin/fsck_ffs/pass4.c Modified: head/sbin/fsck_ffs/pass2.c ============================================================================== --- head/sbin/fsck_ffs/pass2.c Thu May 20 05:38:54 2010 (r208329) +++ head/sbin/fsck_ffs/pass2.c Thu May 20 06:05:40 2010 (r208330) @@ -274,6 +274,7 @@ static int pass2check(struct inodesc *idesc) { struct direct *dirp = idesc->id_dirp; + char dirname[MAXPATHLEN + 1]; struct inoinfo *inp; int n, entrysize, ret = 0; union dinode *dp; @@ -436,9 +437,37 @@ again: errmsg = "DUP/BAD"; else if (!preen && !usedsoftdep) errmsg = "ZERO LENGTH DIRECTORY"; - else { + else if (cursnapshot == 0) { n = 1; break; + } else { + getpathname(dirname, idesc->id_number, + dirp->d_ino); + pwarn("ZERO LENGTH DIRECTORY %s I=%d", + dirname, dirp->d_ino); + /* + * We need to: + * setcwd(idesc->id_parent); + * rmdir(dirp->d_name); + */ + cmd.value = idesc->id_number; + if (sysctlbyname("vfs.ffs.setcwd", 0, 0, + &cmd, sizeof cmd) == -1) { + /* kernel lacks support */ + printf(" (IGNORED)\n"); + n = 1; + break; + } + if (rmdir(dirp->d_name) == -1) { + printf(" (REMOVAL FAILED: %s)\n", + strerror(errno)); + n = 1; + break; + } + /* ".." reference to parent is removed */ + inoinfo(idesc->id_number)->ino_linkcnt--; + printf(" (REMOVED)\n"); + break; } fileerror(idesc->id_number, dirp->d_ino, errmsg); if ((n = reply("REMOVE")) == 1) Modified: head/sbin/fsck_ffs/pass4.c ============================================================================== --- head/sbin/fsck_ffs/pass4.c Thu May 20 05:38:54 2010 (r208329) +++ head/sbin/fsck_ffs/pass4.c Thu May 20 06:05:40 2010 (r208330) @@ -97,6 +97,9 @@ pass4(void) break; case DCLEAR: + /* if on snapshot, already cleared */ + if (cursnapshot != 0) + break; dp = ginode(inumber); if (DIP(dp, di_size) == 0) { clri(&idesc, "ZERO LENGTH", 1); From owner-svn-src-all@FreeBSD.ORG Thu May 20 06:16:13 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BE84D1065674; Thu, 20 May 2010 06:16:13 +0000 (UTC) (envelope-from phk@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id AEDBB8FC08; Thu, 20 May 2010 06:16:13 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4K6GDFD010284; Thu, 20 May 2010 06:16:13 GMT (envelope-from phk@svn.freebsd.org) Received: (from phk@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4K6GDN8010282; Thu, 20 May 2010 06:16:13 GMT (envelope-from phk@svn.freebsd.org) Message-Id: <201005200616.o4K6GDN8010282@svn.freebsd.org> From: Poul-Henning Kamp Date: Thu, 20 May 2010 06:16:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208331 - head/sys/sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 06:16:13 -0000 Author: phk Date: Thu May 20 06:16:13 2010 New Revision: 208331 URL: http://svn.freebsd.org/changeset/base/208331 Log: Fix some way-past-brucification complaints from FlexeLint. Modified: head/sys/sys/endian.h Modified: head/sys/sys/endian.h ============================================================================== --- head/sys/sys/endian.h Thu May 20 06:05:40 2010 (r208330) +++ head/sys/sys/endian.h Thu May 20 06:16:13 2010 (r208331) @@ -33,6 +33,11 @@ #include #include +#ifndef _UINT8_T_DECLARED +typedef __uint8_t uint8_t; +#define _UINT8_T_DECLARED +#endif + #ifndef _UINT16_T_DECLARED typedef __uint16_t uint16_t; #define _UINT16_T_DECLARED @@ -94,7 +99,7 @@ typedef __uint64_t uint64_t; static __inline uint16_t be16dec(const void *pp) { - unsigned char const *p = (unsigned char const *)pp; + uint8_t const *p = (uint8_t const *)pp; return ((p[0] << 8) | p[1]); } @@ -102,15 +107,15 @@ be16dec(const void *pp) static __inline uint32_t be32dec(const void *pp) { - unsigned char const *p = (unsigned char const *)pp; + uint8_t const *p = (uint8_t const *)pp; - return ((p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3]); + return (((unsigned)p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3]); } static __inline uint64_t be64dec(const void *pp) { - unsigned char const *p = (unsigned char const *)pp; + uint8_t const *p = (uint8_t const *)pp; return (((uint64_t)be32dec(p) << 32) | be32dec(p + 4)); } @@ -118,7 +123,7 @@ be64dec(const void *pp) static __inline uint16_t le16dec(const void *pp) { - unsigned char const *p = (unsigned char const *)pp; + uint8_t const *p = (uint8_t const *)pp; return ((p[1] << 8) | p[0]); } @@ -126,15 +131,15 @@ le16dec(const void *pp) static __inline uint32_t le32dec(const void *pp) { - unsigned char const *p = (unsigned char const *)pp; + uint8_t const *p = (uint8_t const *)pp; - return ((p[3] << 24) | (p[2] << 16) | (p[1] << 8) | p[0]); + return (((unsigned)p[3] << 24) | (p[2] << 16) | (p[1] << 8) | p[0]); } static __inline uint64_t le64dec(const void *pp) { - unsigned char const *p = (unsigned char const *)pp; + uint8_t const *p = (uint8_t const *)pp; return (((uint64_t)le32dec(p + 4) << 32) | le32dec(p)); } @@ -142,7 +147,7 @@ le64dec(const void *pp) static __inline void be16enc(void *pp, uint16_t u) { - unsigned char *p = (unsigned char *)pp; + uint8_t *p = (uint8_t *)pp; p[0] = (u >> 8) & 0xff; p[1] = u & 0xff; @@ -151,7 +156,7 @@ be16enc(void *pp, uint16_t u) static __inline void be32enc(void *pp, uint32_t u) { - unsigned char *p = (unsigned char *)pp; + uint8_t *p = (uint8_t *)pp; p[0] = (u >> 24) & 0xff; p[1] = (u >> 16) & 0xff; @@ -162,16 +167,16 @@ be32enc(void *pp, uint32_t u) static __inline void be64enc(void *pp, uint64_t u) { - unsigned char *p = (unsigned char *)pp; + uint8_t *p = (uint8_t *)pp; - be32enc(p, u >> 32); - be32enc(p + 4, u & 0xffffffff); + be32enc(p, (uint32_t)(u >> 32)); + be32enc(p + 4, (uint32_t)(u & 0xffffffffU)); } static __inline void le16enc(void *pp, uint16_t u) { - unsigned char *p = (unsigned char *)pp; + uint8_t *p = (uint8_t *)pp; p[0] = u & 0xff; p[1] = (u >> 8) & 0xff; @@ -180,7 +185,7 @@ le16enc(void *pp, uint16_t u) static __inline void le32enc(void *pp, uint32_t u) { - unsigned char *p = (unsigned char *)pp; + uint8_t *p = (uint8_t *)pp; p[0] = u & 0xff; p[1] = (u >> 8) & 0xff; @@ -191,10 +196,10 @@ le32enc(void *pp, uint32_t u) static __inline void le64enc(void *pp, uint64_t u) { - unsigned char *p = (unsigned char *)pp; + uint8_t *p = (uint8_t *)pp; - le32enc(p, u & 0xffffffff); - le32enc(p + 4, u >> 32); + le32enc(p, (uint32_t)(u & 0xffffffffU)); + le32enc(p + 4, (uint32_t)(u >> 32)); } #endif /* _SYS_ENDIAN_H_ */ From owner-svn-src-all@FreeBSD.ORG Thu May 20 06:18:03 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 836061065673; Thu, 20 May 2010 06:18:03 +0000 (UTC) (envelope-from phk@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 72C948FC14; Thu, 20 May 2010 06:18:03 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4K6I3uQ010716; Thu, 20 May 2010 06:18:03 GMT (envelope-from phk@svn.freebsd.org) Received: (from phk@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4K6I3G3010713; Thu, 20 May 2010 06:18:03 GMT (envelope-from phk@svn.freebsd.org) Message-Id: <201005200618.o4K6I3G3010713@svn.freebsd.org> From: Poul-Henning Kamp Date: Thu, 20 May 2010 06:18:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208332 - in head/sys: amd64/include i386/include X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 06:18:03 -0000 Author: phk Date: Thu May 20 06:18:03 2010 New Revision: 208332 URL: http://svn.freebsd.org/changeset/base/208332 Log: Rename an argument from "exp" to "expect" since the former makes FlexeLint uneasy, in case anybody think it might be exp(3) in libm. This also makes it consistent with other archs. Modified: head/sys/amd64/include/atomic.h head/sys/i386/include/atomic.h Modified: head/sys/amd64/include/atomic.h ============================================================================== --- head/sys/amd64/include/atomic.h Thu May 20 06:16:13 2010 (r208331) +++ head/sys/amd64/include/atomic.h Thu May 20 06:18:03 2010 (r208332) @@ -76,8 +76,8 @@ void atomic_##NAME##_##TYPE(volatile u_##TYPE *p, u_##TYPE v); \ void atomic_##NAME##_barr_##TYPE(volatile u_##TYPE *p, u_##TYPE v) -int atomic_cmpset_int(volatile u_int *dst, u_int exp, u_int src); -int atomic_cmpset_long(volatile u_long *dst, u_long exp, u_long src); +int atomic_cmpset_int(volatile u_int *dst, u_int expect, u_int src); +int atomic_cmpset_long(volatile u_long *dst, u_long expect, u_long src); u_int atomic_fetchadd_int(volatile u_int *p, u_int v); u_long atomic_fetchadd_long(volatile u_long *p, u_long v); @@ -124,13 +124,13 @@ struct __hack /* * Atomic compare and set, used by the mutex functions * - * if (*dst == exp) *dst = src (all 32 bit words) + * if (*dst == expect) *dst = src (all 32 bit words) * * Returns 0 on failure, non-zero on success */ static __inline int -atomic_cmpset_int(volatile u_int *dst, u_int exp, u_int src) +atomic_cmpset_int(volatile u_int *dst, u_int expect, u_int src) { u_char res; @@ -143,7 +143,7 @@ atomic_cmpset_int(volatile u_int *dst, u : "=a" (res), /* 0 */ "=m" (*dst) /* 1 */ : "r" (src), /* 2 */ - "a" (exp), /* 3 */ + "a" (expect), /* 3 */ "m" (*dst) /* 4 */ : "memory"); @@ -151,7 +151,7 @@ atomic_cmpset_int(volatile u_int *dst, u } static __inline int -atomic_cmpset_long(volatile u_long *dst, u_long exp, u_long src) +atomic_cmpset_long(volatile u_long *dst, u_long expect, u_long src) { u_char res; @@ -164,7 +164,7 @@ atomic_cmpset_long(volatile u_long *dst, : "=a" (res), /* 0 */ "=m" (*dst) /* 1 */ : "r" (src), /* 2 */ - "a" (exp), /* 3 */ + "a" (expect), /* 3 */ "m" (*dst) /* 4 */ : "memory"); Modified: head/sys/i386/include/atomic.h ============================================================================== --- head/sys/i386/include/atomic.h Thu May 20 06:16:13 2010 (r208331) +++ head/sys/i386/include/atomic.h Thu May 20 06:18:03 2010 (r208332) @@ -76,7 +76,7 @@ void atomic_##NAME##_##TYPE(volatile u_##TYPE *p, u_##TYPE v); \ void atomic_##NAME##_barr_##TYPE(volatile u_##TYPE *p, u_##TYPE v) -int atomic_cmpset_int(volatile u_int *dst, u_int exp, u_int src); +int atomic_cmpset_int(volatile u_int *dst, u_int expect, u_int src); u_int atomic_fetchadd_int(volatile u_int *p, u_int v); #define ATOMIC_STORE_LOAD(TYPE, LOP, SOP) \ @@ -122,7 +122,7 @@ struct __hack /* * Atomic compare and set, used by the mutex functions * - * if (*dst == exp) *dst = src (all 32 bit words) + * if (*dst == expect) *dst = src (all 32 bit words) * * Returns 0 on failure, non-zero on success */ @@ -130,7 +130,7 @@ struct __hack #ifdef CPU_DISABLE_CMPXCHG static __inline int -atomic_cmpset_int(volatile u_int *dst, u_int exp, u_int src) +atomic_cmpset_int(volatile u_int *dst, u_int expect, u_int src) { u_char res; @@ -147,7 +147,7 @@ atomic_cmpset_int(volatile u_int *dst, u : "=q" (res), /* 0 */ "=m" (*dst) /* 1 */ : "r" (src), /* 2 */ - "r" (exp), /* 3 */ + "r" (expect), /* 3 */ "m" (*dst) /* 4 */ : "memory"); @@ -157,7 +157,7 @@ atomic_cmpset_int(volatile u_int *dst, u #else /* !CPU_DISABLE_CMPXCHG */ static __inline int -atomic_cmpset_int(volatile u_int *dst, u_int exp, u_int src) +atomic_cmpset_int(volatile u_int *dst, u_int expect, u_int src) { u_char res; @@ -170,7 +170,7 @@ atomic_cmpset_int(volatile u_int *dst, u : "=a" (res), /* 0 */ "=m" (*dst) /* 1 */ : "r" (src), /* 2 */ - "a" (exp), /* 3 */ + "a" (expect), /* 3 */ "m" (*dst) /* 4 */ : "memory"); @@ -292,10 +292,10 @@ ATOMIC_STORE_LOAD(long, "cmpxchgl %0,%1" #ifndef WANT_FUNCTIONS static __inline int -atomic_cmpset_long(volatile u_long *dst, u_long exp, u_long src) +atomic_cmpset_long(volatile u_long *dst, u_long expect, u_long src) { - return (atomic_cmpset_int((volatile u_int *)dst, (u_int)exp, + return (atomic_cmpset_int((volatile u_int *)dst, (u_int)expect, (u_int)src)); } From owner-svn-src-all@FreeBSD.ORG Thu May 20 06:51:02 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5DFE1106564A; Thu, 20 May 2010 06:51:02 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 35C498FC14; Thu, 20 May 2010 06:51:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4K6p2To018120; Thu, 20 May 2010 06:51:02 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4K6p2tB018118; Thu, 20 May 2010 06:51:02 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <201005200651.o4K6p2tB018118@svn.freebsd.org> From: Jung-uk Kim Date: Thu, 20 May 2010 06:51:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208333 - head X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 06:51:02 -0000 Author: jkim Date: Thu May 20 06:51:01 2010 New Revision: 208333 URL: http://svn.freebsd.org/changeset/base/208333 Log: Revert r208324. We still need it for installworld as $PATH is overriden. Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Thu May 20 06:18:03 2010 (r208332) +++ head/Makefile.inc1 Thu May 20 06:51:01 2010 (r208333) @@ -969,6 +969,7 @@ bootstrap-tools: ${_groff} \ ${_ar} \ usr.bin/lorder \ + usr.bin/makewhatis \ ${_mklocale} \ usr.bin/rpcgen \ ${_sed} \ From owner-svn-src-all@FreeBSD.ORG Thu May 20 06:51:48 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 77BCF1065673; Thu, 20 May 2010 06:51:48 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 63B108FC1D; Thu, 20 May 2010 06:51:48 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4K6pmgu018357; Thu, 20 May 2010 06:51:48 GMT (envelope-from mm@svn.freebsd.org) Received: (from mm@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4K6pmax018346; Thu, 20 May 2010 06:51:48 GMT (envelope-from mm@svn.freebsd.org) Message-Id: <201005200651.o4K6pmax018346@svn.freebsd.org> From: Martin Matuska Date: Thu, 20 May 2010 06:51:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208334 - in stable/8: cddl/contrib/opensolaris/cmd/zdb cddl/contrib/opensolaris/cmd/ztest cddl/contrib/opensolaris/lib/libzpool/common cddl/contrib/opensolaris/lib/libzpool/common/sys ... X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 06:51:48 -0000 Author: mm Date: Thu May 20 06:51:48 2010 New Revision: 208334 URL: http://svn.freebsd.org/changeset/base/208334 Log: MFC r208047: Import OpenSolaris revision 7837:001de5627df3 It includes the following changes: - parallel reads in traversal code (Bug ID 6333409) - faster traversal for zfs send (Bug ID 6418042) - traversal code cleanup (Bug ID 6725675) - fix for two scrub related bugs (Bug ID 6729696, 6730101) - fix assertion in dbuf_verify (Bug ID 6752226) - fix panic during zfs send with i/o errors (Bug ID 6577985) - replace P2CROSS with P2BOUNDARY (Bug ID 6725680) List of OpenSolaris Bug IDs: 6333409, 6418042, 6757112, 6725668, 6725675, 6725680, 6725698, 6729696, 6730101, 6752226, 6577985, 6755042 Approved by: pjd, delphij (mentor) Obtained from: OpenSolaris (multiple Bug IDs) Modified: stable/8/cddl/contrib/opensolaris/cmd/zdb/zdb.c stable/8/cddl/contrib/opensolaris/cmd/ztest/ztest.c stable/8/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c stable/8/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h stable/8/cddl/contrib/opensolaris/lib/libzpool/common/taskq.c stable/8/sys/cddl/boot/zfs/zfsimpl.h stable/8/sys/cddl/compat/opensolaris/sys/sysmacros.h stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scrub.c stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dmu_traverse.h stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa.h stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/spa_impl.h stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/txg_impl.h stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_cache.c stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c Directory Properties: stable/8/cddl/contrib/opensolaris/ (props changed) stable/8/cddl/contrib/opensolaris/cmd/zdb/ (props changed) stable/8/cddl/contrib/opensolaris/cmd/zfs/ (props changed) stable/8/cddl/contrib/opensolaris/lib/libzfs/ (props changed) stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/cddl/contrib/opensolaris/cmd/zdb/zdb.c ============================================================================== --- stable/8/cddl/contrib/opensolaris/cmd/zdb/zdb.c Thu May 20 06:51:01 2010 (r208333) +++ stable/8/cddl/contrib/opensolaris/cmd/zdb/zdb.c Thu May 20 06:51:48 2010 (r208334) @@ -50,6 +50,7 @@ #include #include #include +#include #undef ZFS_MAXNAMELEN #undef verify #include @@ -62,8 +63,6 @@ typedef void object_viewer_t(objset_t *, extern void dump_intent_log(zilog_t *); uint64_t *zopt_object = NULL; int zopt_objects = 0; -int zdb_advance = ADVANCE_PRE; -zbookmark_t zdb_noread = { 0, 0, ZB_NO_LEVEL, 0 }; libzfs_handle_t *g_zfs; boolean_t zdb_sig_user_data = B_TRUE; int zdb_sig_cksumalg = ZIO_CHECKSUM_SHA256; @@ -88,8 +87,8 @@ static void usage(void) { (void) fprintf(stderr, - "Usage: %s [-udibcsvL] [-U cachefile_path] [-O order] " - "[-B os:obj:level:blkid] [-S user:cksumalg] " + "Usage: %s [-udibcsv] [-U cachefile_path] " + "[-S user:cksumalg] " "dataset [object...]\n" " %s -C [pool]\n" " %s -l dev\n" @@ -109,13 +108,8 @@ usage(void) "dump blkptr signatures\n"); (void) fprintf(stderr, " -v verbose (applies to all others)\n"); (void) fprintf(stderr, " -l dump label contents\n"); - (void) fprintf(stderr, " -L live pool (allows some errors)\n"); - (void) fprintf(stderr, " -O [!] " - "visitation order\n"); (void) fprintf(stderr, " -U cachefile_path -- use alternate " "cachefile\n"); - (void) fprintf(stderr, " -B objset:object:level:blkid -- " - "simulate bad block\n"); (void) fprintf(stderr, " -R read and display block from a " "device\n"); (void) fprintf(stderr, " -e Pool is exported/destroyed/" @@ -138,7 +132,7 @@ fatal(const char *fmt, ...) va_end(ap); (void) fprintf(stderr, "\n"); - exit(1); + abort(); } static void @@ -571,7 +565,7 @@ dump_dnode(objset_t *os, uint64_t object } static uint64_t -blkid2offset(dnode_phys_t *dnp, int level, uint64_t blkid) +blkid2offset(const dnode_phys_t *dnp, int level, uint64_t blkid) { if (level < 0) return (blkid); @@ -602,115 +596,104 @@ sprintf_blkptr_compact(char *blkbuf, blk (u_longlong_t)bp->blk_birth); } -/* ARGSUSED */ -static int -zdb_indirect_cb(traverse_blk_cache_t *bc, spa_t *spa, void *a) +static void +print_indirect(blkptr_t *bp, const zbookmark_t *zb, + const dnode_phys_t *dnp) { - zbookmark_t *zb = &bc->bc_bookmark; - blkptr_t *bp = &bc->bc_blkptr; - void *data = bc->bc_data; - dnode_phys_t *dnp = bc->bc_dnode; - char blkbuf[BP_SPRINTF_LEN + 80]; + char blkbuf[BP_SPRINTF_LEN]; int l; - if (bc->bc_errno) { - (void) sprintf(blkbuf, - "Error %d reading <%llu, %llu, %lld, %llu>: ", - bc->bc_errno, - (u_longlong_t)zb->zb_objset, - (u_longlong_t)zb->zb_object, - (u_longlong_t)zb->zb_level, - (u_longlong_t)zb->zb_blkid); - goto out; - } - - if (zb->zb_level == -1) { - ASSERT3U(BP_GET_TYPE(bp), ==, DMU_OT_OBJSET); - ASSERT3U(BP_GET_LEVEL(bp), ==, 0); - } else { - ASSERT3U(BP_GET_TYPE(bp), ==, dnp->dn_type); - ASSERT3U(BP_GET_LEVEL(bp), ==, zb->zb_level); - } - - if (zb->zb_level > 0) { - uint64_t fill = 0; - blkptr_t *bpx, *bpend; - - for (bpx = data, bpend = bpx + BP_GET_LSIZE(bp) / sizeof (*bpx); - bpx < bpend; bpx++) { - if (bpx->blk_birth != 0) { - fill += bpx->blk_fill; - } else { - ASSERT(bpx->blk_fill == 0); - } - } - ASSERT3U(fill, ==, bp->blk_fill); - } + ASSERT3U(BP_GET_TYPE(bp), ==, dnp->dn_type); + ASSERT3U(BP_GET_LEVEL(bp), ==, zb->zb_level); - if (zb->zb_level == 0 && dnp->dn_type == DMU_OT_DNODE) { - uint64_t fill = 0; - dnode_phys_t *dnx, *dnend; - - for (dnx = data, dnend = dnx + (BP_GET_LSIZE(bp)>>DNODE_SHIFT); - dnx < dnend; dnx++) { - if (dnx->dn_type != DMU_OT_NONE) - fill++; - } - ASSERT3U(fill, ==, bp->blk_fill); - } - - (void) sprintf(blkbuf, "%16llx ", + (void) printf("%16llx ", (u_longlong_t)blkid2offset(dnp, zb->zb_level, zb->zb_blkid)); ASSERT(zb->zb_level >= 0); for (l = dnp->dn_nlevels - 1; l >= -1; l--) { if (l == zb->zb_level) { - (void) sprintf(blkbuf + strlen(blkbuf), "L%llx", - (u_longlong_t)zb->zb_level); + (void) printf("L%llx", (u_longlong_t)zb->zb_level); } else { - (void) sprintf(blkbuf + strlen(blkbuf), " "); + (void) printf(" "); } } -out: - if (bp->blk_birth == 0) { - (void) sprintf(blkbuf + strlen(blkbuf), ""); - (void) printf("%s\n", blkbuf); - } else { - sprintf_blkptr_compact(blkbuf + strlen(blkbuf), bp, - dump_opt['d'] > 5 ? 1 : 0); - (void) printf("%s\n", blkbuf); + sprintf_blkptr_compact(blkbuf, bp, dump_opt['d'] > 5 ? 1 : 0); + (void) printf("%s\n", blkbuf); +} + +#define SET_BOOKMARK(zb, objset, object, level, blkid) \ +{ \ + (zb)->zb_objset = objset; \ + (zb)->zb_object = object; \ + (zb)->zb_level = level; \ + (zb)->zb_blkid = blkid; \ +} + +static int +visit_indirect(spa_t *spa, const dnode_phys_t *dnp, + blkptr_t *bp, const zbookmark_t *zb) +{ + int err; + + if (bp->blk_birth == 0) + return (0); + + print_indirect(bp, zb, dnp); + + if (BP_GET_LEVEL(bp) > 0) { + uint32_t flags = ARC_WAIT; + int i; + blkptr_t *cbp; + int epb = BP_GET_LSIZE(bp) >> SPA_BLKPTRSHIFT; + arc_buf_t *buf; + uint64_t fill = 0; + + err = arc_read_nolock(NULL, spa, bp, arc_getbuf_func, &buf, + ZIO_PRIORITY_ASYNC_READ, ZIO_FLAG_CANFAIL, &flags, zb); + if (err) + return (err); + + /* recursively visit blocks below this */ + cbp = buf->b_data; + for (i = 0; i < epb; i++, cbp++) { + zbookmark_t czb; + + SET_BOOKMARK(&czb, zb->zb_objset, zb->zb_object, + zb->zb_level - 1, + zb->zb_blkid * epb + i); + err = visit_indirect(spa, dnp, cbp, &czb); + if (err) + break; + fill += cbp->blk_fill; + } + ASSERT3U(fill, ==, bp->blk_fill); + (void) arc_buf_remove_ref(buf, &buf); } - return (bc->bc_errno ? ERESTART : 0); + return (err); } /*ARGSUSED*/ static void -dump_indirect(objset_t *os, uint64_t object, void *data, size_t size) +dump_indirect(dnode_t *dn) { - traverse_handle_t *th; - uint64_t objset = dmu_objset_id(os); - int advance = zdb_advance; + dnode_phys_t *dnp = dn->dn_phys; + int j; + zbookmark_t czb; (void) printf("Indirect blocks:\n"); - if (object == 0) - advance |= ADVANCE_DATA; - - th = traverse_init(dmu_objset_spa(os), zdb_indirect_cb, NULL, advance, - ZIO_FLAG_CANFAIL); - th->th_noread = zdb_noread; - - traverse_add_dnode(th, 0, -1ULL, objset, object); - - while (traverse_more(th) == EAGAIN) - continue; + SET_BOOKMARK(&czb, dmu_objset_id(&dn->dn_objset->os), + dn->dn_object, dnp->dn_nlevels - 1, 0); + for (j = 0; j < dnp->dn_nblkptr; j++) { + czb.zb_blkid = j; + (void) visit_indirect(dmu_objset_spa(&dn->dn_objset->os), dnp, + &dnp->dn_blkptr[j], &czb); + } (void) printf("\n"); - - traverse_fini(th); } /*ARGSUSED*/ @@ -1093,7 +1076,7 @@ dump_object(objset_t *os, uint64_t objec } if (verbosity >= 5) - dump_indirect(os, object, NULL, 0); + dump_indirect(dn); if (verbosity >= 5) { /* @@ -1458,18 +1441,17 @@ typedef struct zdb_blkstats { #define DMU_OT_DEFERRED DMU_OT_NONE #define DMU_OT_TOTAL DMU_OT_NUMTYPES -#define ZB_TOTAL ZB_MAXLEVEL +#define ZB_TOTAL DN_MAX_LEVELS typedef struct zdb_cb { zdb_blkstats_t zcb_type[ZB_TOTAL + 1][DMU_OT_TOTAL + 1]; uint64_t zcb_errors[256]; - traverse_blk_cache_t *zcb_cache; int zcb_readfails; int zcb_haderrors; } zdb_cb_t; static void -zdb_count_block(spa_t *spa, zdb_cb_t *zcb, blkptr_t *bp, int type) +zdb_count_block(spa_t *spa, zdb_cb_t *zcb, blkptr_t *bp, dmu_object_type_t type) { for (int i = 0; i < 4; i++) { int l = (i < 2) ? BP_GET_LEVEL(bp) : ZB_TOTAL; @@ -1485,7 +1467,7 @@ zdb_count_block(spa_t *spa, zdb_cb_t *zc if (dump_opt['S']) { boolean_t print_sig; - print_sig = !zdb_sig_user_data || (BP_GET_LEVEL(bp) == 0 && + print_sig = !zdb_sig_user_data || (BP_GET_LEVEL(bp) == 0 && BP_GET_TYPE(bp) == DMU_OT_PLAIN_FILE_CONTENTS); if (BP_GET_CHECKSUM(bp) < zdb_sig_cksumalg) @@ -1507,56 +1489,55 @@ zdb_count_block(spa_t *spa, zdb_cb_t *zc } } - if (!dump_opt['L']) - VERIFY(zio_wait(zio_claim(NULL, spa, spa_first_txg(spa), bp, - NULL, NULL, ZIO_FLAG_MUSTSUCCEED)) == 0); + VERIFY(zio_wait(zio_claim(NULL, spa, spa_first_txg(spa), bp, + NULL, NULL, ZIO_FLAG_MUSTSUCCEED)) == 0); } static int -zdb_blkptr_cb(traverse_blk_cache_t *bc, spa_t *spa, void *arg) +zdb_blkptr_cb(spa_t *spa, blkptr_t *bp, const zbookmark_t *zb, + const dnode_phys_t *dnp, void *arg) { - zbookmark_t *zb = &bc->bc_bookmark; zdb_cb_t *zcb = arg; - blkptr_t *bp = &bc->bc_blkptr; - dmu_object_type_t type = BP_GET_TYPE(bp); char blkbuf[BP_SPRINTF_LEN]; - int error = 0; - ASSERT(!BP_IS_HOLE(bp)); + if (bp == NULL) + return (0); - zdb_count_block(spa, zcb, bp, type); + zdb_count_block(spa, zcb, bp, BP_GET_TYPE(bp)); - if (bc->bc_errno) { - if (zcb->zcb_readfails++ < 10 && dump_opt['L']) { - uberblock_t ub; - vdev_uberblock_load(NULL, spa->spa_root_vdev, &ub); - if (ub.ub_txg != 0) - spa->spa_ubsync = ub; - error = EAGAIN; - } else { + if (dump_opt['c'] || dump_opt['S']) { + int ioerr, size; + void *data; + + size = BP_GET_LSIZE(bp); + data = malloc(size); + ioerr = zio_wait(zio_read(NULL, spa, bp, data, size, + NULL, NULL, ZIO_PRIORITY_ASYNC_READ, + ZIO_FLAG_CANFAIL | ZIO_FLAG_SCRUB, zb)); + free(data); + + /* We expect io errors on intent log */ + if (ioerr && BP_GET_TYPE(bp) != DMU_OT_INTENT_LOG) { zcb->zcb_haderrors = 1; - zcb->zcb_errors[bc->bc_errno]++; - error = ERESTART; - } + zcb->zcb_errors[ioerr]++; - if (dump_opt['b'] >= 3 || (dump_opt['b'] >= 2 && bc->bc_errno)) - sprintf_blkptr(blkbuf, BP_SPRINTF_LEN, bp); - else - blkbuf[0] = '\0'; + if (dump_opt['b'] >= 2) + sprintf_blkptr(blkbuf, BP_SPRINTF_LEN, bp); + else + blkbuf[0] = '\0'; - if (!dump_opt['S']) { - (void) printf("zdb_blkptr_cb: Got error %d reading " - "<%llu, %llu, %lld, %llx> %s -- %s\n", - bc->bc_errno, - (u_longlong_t)zb->zb_objset, - (u_longlong_t)zb->zb_object, - (u_longlong_t)zb->zb_level, - (u_longlong_t)zb->zb_blkid, - blkbuf, - error == EAGAIN ? "retrying" : "skipping"); + if (!dump_opt['S']) { + (void) printf("zdb_blkptr_cb: " + "Got error %d reading " + "<%llu, %llu, %lld, %llx> %s -- skipping\n", + ioerr, + (u_longlong_t)zb->zb_objset, + (u_longlong_t)zb->zb_object, + (u_longlong_t)zb->zb_level, + (u_longlong_t)zb->zb_blkid, + blkbuf); + } } - - return (error); } zcb->zcb_readfails = 0; @@ -1566,8 +1547,8 @@ zdb_blkptr_cb(traverse_blk_cache_t *bc, (void) printf("objset %llu object %llu offset 0x%llx %s\n", (u_longlong_t)zb->zb_objset, (u_longlong_t)zb->zb_object, - (u_longlong_t)blkid2offset(bc->bc_dnode, - zb->zb_level, zb->zb_blkid), blkbuf); + (u_longlong_t)blkid2offset(dnp, zb->zb_level, zb->zb_blkid), + blkbuf); } return (0); @@ -1576,22 +1557,12 @@ zdb_blkptr_cb(traverse_blk_cache_t *bc, static int dump_block_stats(spa_t *spa) { - traverse_handle_t *th; zdb_cb_t zcb = { 0 }; - traverse_blk_cache_t dummy_cache = { 0 }; zdb_blkstats_t *zb, *tzb; uint64_t alloc, space, logalloc; vdev_t *rvd = spa->spa_root_vdev; int leaks = 0; - int advance = zdb_advance; - int c, e, flags; - - zcb.zcb_cache = &dummy_cache; - - if (dump_opt['c'] || dump_opt['S']) - advance |= ADVANCE_DATA; - - advance |= ADVANCE_PRUNE | ADVANCE_ZIL; + int c, e; if (!dump_opt['S']) { (void) printf("\nTraversing all blocks to %sverify" @@ -1607,8 +1578,7 @@ dump_block_stats(spa_t *spa) * it's not part of any space map) is a double allocation, * reference to a freed block, or an unclaimed log block. */ - if (!dump_opt['L']) - zdb_leak_init(spa); + zdb_leak_init(spa); /* * If there's a deferred-free bplist, process that first. @@ -1634,22 +1604,7 @@ dump_block_stats(spa_t *spa) bplist_close(bpl); } - /* - * Now traverse the pool. If we're reading all data to verify - * checksums, do a scrubbing read so that we validate all copies. - */ - flags = ZIO_FLAG_CANFAIL; - if (advance & ADVANCE_DATA) - flags |= ZIO_FLAG_SCRUB; - th = traverse_init(spa, zdb_blkptr_cb, &zcb, advance, flags); - th->th_noread = zdb_noread; - - traverse_add_pool(th, 0, spa_first_txg(spa) + TXG_CONCURRENT_STATES); - - while (traverse_more(th) == EAGAIN) - continue; - - traverse_fini(th); + zcb.zcb_haderrors |= traverse_pool(spa, zdb_blkptr_cb, &zcb); if (zcb.zcb_haderrors && !dump_opt['S']) { (void) printf("\nError counts:\n\n"); @@ -1665,8 +1620,7 @@ dump_block_stats(spa_t *spa) /* * Report any leaked segments. */ - if (!dump_opt['L']) - zdb_leak_fini(spa); + zdb_leak_fini(spa); /* * If we're interested in printing out the blkptr signatures, @@ -1676,10 +1630,6 @@ dump_block_stats(spa_t *spa) if (dump_opt['S']) return (zcb.zcb_haderrors ? 3 : 0); - if (dump_opt['L']) - (void) printf("\n\n *** Live pool traversal; " - "block counts are only approximate ***\n\n"); - alloc = spa_get_alloc(spa); space = spa_get_space(spa); @@ -2285,7 +2235,6 @@ main(int argc, char **argv) int dump_all = 1; int verbose = 0; int error; - int flag, set; int exported = 0; char *vdev_dir = NULL; @@ -2294,7 +2243,7 @@ main(int argc, char **argv) dprintf_setup(&argc, argv); - while ((c = getopt(argc, argv, "udibcsvCLO:B:S:U:lRep:")) != -1) { + while ((c = getopt(argc, argv, "udibcsvCS:U:lRep:")) != -1) { switch (c) { case 'u': case 'd': @@ -2308,49 +2257,6 @@ main(int argc, char **argv) dump_opt[c]++; dump_all = 0; break; - case 'L': - dump_opt[c]++; - break; - case 'O': - endstr = optarg; - if (endstr[0] == '!') { - endstr++; - set = 0; - } else { - set = 1; - } - if (strcmp(endstr, "post") == 0) { - flag = ADVANCE_PRE; - set = !set; - } else if (strcmp(endstr, "pre") == 0) { - flag = ADVANCE_PRE; - } else if (strcmp(endstr, "prune") == 0) { - flag = ADVANCE_PRUNE; - } else if (strcmp(endstr, "data") == 0) { - flag = ADVANCE_DATA; - } else if (strcmp(endstr, "holes") == 0) { - flag = ADVANCE_HOLES; - } else { - usage(); - } - if (set) - zdb_advance |= flag; - else - zdb_advance &= ~flag; - break; - case 'B': - endstr = optarg - 1; - zdb_noread.zb_objset = strtoull(endstr + 1, &endstr, 0); - zdb_noread.zb_object = strtoull(endstr + 1, &endstr, 0); - zdb_noread.zb_level = strtol(endstr + 1, &endstr, 0); - zdb_noread.zb_blkid = strtoull(endstr + 1, &endstr, 16); - (void) printf("simulating bad block " - "<%llu, %llu, %lld, %llx>\n", - (u_longlong_t)zdb_noread.zb_objset, - (u_longlong_t)zdb_noread.zb_object, - (u_longlong_t)zdb_noread.zb_level, - (u_longlong_t)zdb_noread.zb_blkid); - break; case 'v': verbose++; break; @@ -2387,21 +2293,17 @@ main(int argc, char **argv) } } - if (vdev_dir != NULL && exported == 0) - (void) fatal("-p option requires use of -e\n"); + if (vdev_dir != NULL && exported == 0) { + (void) fprintf(stderr, "-p option requires use of -e\n"); + usage(); + } kernel_init(FREAD); g_zfs = libzfs_init(); ASSERT(g_zfs != NULL); - /* - * Disable vdev caching. If we don't do this, live pool traversal - * won't make progress because it will never see disk updates. - */ - zfs_vdev_cache_size = 0; - for (c = 0; c < 256; c++) { - if (dump_all && c != 'L' && c != 'l' && c != 'R') + if (dump_all && c != 'l' && c != 'R') dump_opt[c] = 1; if (dump_opt[c]) dump_opt[c] += verbose; Modified: stable/8/cddl/contrib/opensolaris/cmd/ztest/ztest.c ============================================================================== --- stable/8/cddl/contrib/opensolaris/cmd/ztest/ztest.c Thu May 20 06:51:01 2010 (r208333) +++ stable/8/cddl/contrib/opensolaris/cmd/ztest/ztest.c Thu May 20 06:51:48 2010 (r208334) @@ -77,7 +77,6 @@ #include #include #include -#include #include #include #include @@ -151,7 +150,6 @@ typedef struct ztest_args { hrtime_t za_start; hrtime_t za_stop; hrtime_t za_kill; - traverse_handle_t *za_th; /* * Thread-local variables can go here to aid debugging. */ @@ -206,7 +204,6 @@ ztest_info_t ztest_info[] = { { ztest_dmu_object_alloc_free, 1, &zopt_always }, { ztest_zap, 30, &zopt_always }, { ztest_zap_parallel, 100, &zopt_always }, - { ztest_traverse, 1, &zopt_often }, { ztest_dsl_prop_get_set, 1, &zopt_sometimes }, { ztest_dmu_objset_create_destroy, 1, &zopt_sometimes }, { ztest_dmu_snapshot_create_destroy, 1, &zopt_sometimes }, @@ -1447,152 +1444,6 @@ ztest_dmu_snapshot_create_destroy(ztest_ (void) rw_unlock(&ztest_shared->zs_name_lock); } -#define ZTEST_TRAVERSE_BLOCKS 1000 - -static int -ztest_blk_cb(traverse_blk_cache_t *bc, spa_t *spa, void *arg) -{ - ztest_args_t *za = arg; - zbookmark_t *zb = &bc->bc_bookmark; - blkptr_t *bp = &bc->bc_blkptr; - dnode_phys_t *dnp = bc->bc_dnode; - traverse_handle_t *th = za->za_th; - uint64_t size = BP_GET_LSIZE(bp); - - /* - * Level -1 indicates the objset_phys_t or something in its intent log. - */ - if (zb->zb_level == -1) { - if (BP_GET_TYPE(bp) == DMU_OT_OBJSET) { - ASSERT3U(zb->zb_object, ==, 0); - ASSERT3U(zb->zb_blkid, ==, 0); - ASSERT3U(size, ==, sizeof (objset_phys_t)); - za->za_zil_seq = 0; - } else if (BP_GET_TYPE(bp) == DMU_OT_INTENT_LOG) { - ASSERT3U(zb->zb_object, ==, 0); - ASSERT3U(zb->zb_blkid, >, za->za_zil_seq); - za->za_zil_seq = zb->zb_blkid; - } else { - ASSERT3U(zb->zb_object, !=, 0); /* lr_write_t */ - } - - return (0); - } - - ASSERT(dnp != NULL); - - if (bc->bc_errno) - return (ERESTART); - - /* - * Once in a while, abort the traverse. We only do this to odd - * instance numbers to ensure that even ones can run to completion. - */ - if ((za->za_instance & 1) && ztest_random(10000) == 0) - return (EINTR); - - if (bp->blk_birth == 0) { - ASSERT(th->th_advance & ADVANCE_HOLES); - return (0); - } - - if (zb->zb_level == 0 && !(th->th_advance & ADVANCE_DATA) && - bc == &th->th_cache[ZB_DN_CACHE][0]) { - ASSERT(bc->bc_data == NULL); - return (0); - } - - ASSERT(bc->bc_data != NULL); - - /* - * This is an expensive question, so don't ask it too often. - */ - if (((za->za_random ^ th->th_callbacks) & 0xff) == 0) { - void *xbuf = umem_alloc(size, UMEM_NOFAIL); - if (arc_tryread(spa, bp, xbuf) == 0) { - ASSERT(bcmp(bc->bc_data, xbuf, size) == 0); - } - umem_free(xbuf, size); - } - - if (zb->zb_level > 0) { - ASSERT3U(size, ==, 1ULL << dnp->dn_indblkshift); - return (0); - } - - ASSERT(zb->zb_level == 0); - ASSERT3U(size, ==, dnp->dn_datablkszsec << DEV_BSHIFT); - - return (0); -} - -/* - * Verify that live pool traversal works. - */ -void -ztest_traverse(ztest_args_t *za) -{ - spa_t *spa = za->za_spa; - traverse_handle_t *th = za->za_th; - int rc, advance; - uint64_t cbstart, cblimit; - - if (th == NULL) { - advance = 0; - - if (ztest_random(2) == 0) - advance |= ADVANCE_PRE; - - if (ztest_random(2) == 0) - advance |= ADVANCE_PRUNE; - - if (ztest_random(2) == 0) - advance |= ADVANCE_DATA; - - if (ztest_random(2) == 0) - advance |= ADVANCE_HOLES; - - if (ztest_random(2) == 0) - advance |= ADVANCE_ZIL; - - th = za->za_th = traverse_init(spa, ztest_blk_cb, za, advance, - ZIO_FLAG_CANFAIL); - - traverse_add_pool(th, 0, -1ULL); - } - - advance = th->th_advance; - cbstart = th->th_callbacks; - cblimit = cbstart + ((advance & ADVANCE_DATA) ? 100 : 1000); - - while ((rc = traverse_more(th)) == EAGAIN && th->th_callbacks < cblimit) - continue; - - if (zopt_verbose >= 5) - (void) printf("traverse %s%s%s%s %llu blocks to " - "<%llu, %llu, %lld, %llx>%s\n", - (advance & ADVANCE_PRE) ? "pre" : "post", - (advance & ADVANCE_PRUNE) ? "|prune" : "", - (advance & ADVANCE_DATA) ? "|data" : "", - (advance & ADVANCE_HOLES) ? "|holes" : "", - (u_longlong_t)(th->th_callbacks - cbstart), - (u_longlong_t)th->th_lastcb.zb_objset, - (u_longlong_t)th->th_lastcb.zb_object, - (u_longlong_t)th->th_lastcb.zb_level, - (u_longlong_t)th->th_lastcb.zb_blkid, - rc == 0 ? " [done]" : - rc == EINTR ? " [aborted]" : - rc == EAGAIN ? "" : - strerror(rc)); - - if (rc != EAGAIN) { - if (rc != 0 && rc != EINTR) - fatal(0, "traverse_more(%p) = %d", th, rc); - traverse_fini(th); - za->za_th = NULL; - } -} - /* * Verify dsl_dataset_promote handles EBUSY */ @@ -3067,12 +2918,12 @@ ztest_verify_blocks(char *pool) isa = strdup(isa); /* LINTED */ (void) sprintf(bin, - "/usr/sbin%.*s/zdb -bc%s%s -U /tmp/zpool.cache -O %s %s", + "/usr/sbin%.*s/zdb -bc%s%s -U /tmp/zpool.cache %s", isalen, isa, zopt_verbose >= 3 ? "s" : "", zopt_verbose >= 4 ? "v" : "", - ztest_random(2) == 0 ? "pre" : "post", pool); + pool); free(isa); if (zopt_verbose >= 5) @@ -3438,8 +3289,6 @@ ztest_run(char *pool) while (--t >= 0) { VERIFY(thr_join(za[t].za_thread, NULL, NULL) == 0); - if (za[t].za_th) - traverse_fini(za[t].za_th); if (t < zopt_datasets) { zil_close(za[t].za_zilog); dmu_objset_close(za[t].za_os); Modified: stable/8/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c ============================================================================== --- stable/8/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c Thu May 20 06:51:01 2010 (r208333) +++ stable/8/cddl/contrib/opensolaris/lib/libzpool/common/kernel.c Thu May 20 06:51:48 2010 (r208334) @@ -23,8 +23,6 @@ * Use is subject to license terms. */ -#pragma ident "%Z%%M% %I% %E% SMI" - #include #include #include @@ -842,6 +840,8 @@ kernel_init(int mode) VERIFY((random_fd = open("/dev/random", O_RDONLY)) != -1); VERIFY((urandom_fd = open("/dev/urandom", O_RDONLY)) != -1); + system_taskq_init(); + spa_init(mode); } Modified: stable/8/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h ============================================================================== --- stable/8/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h Thu May 20 06:51:01 2010 (r208333) +++ stable/8/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h Thu May 20 06:51:48 2010 (r208334) @@ -334,11 +334,14 @@ typedef void (task_func_t)(void *); #define TQ_NOSLEEP KM_NOSLEEP /* cannot block for memory; may fail */ #define TQ_NOQUEUE 0x02 /* Do not enqueue if can't dispatch */ +extern taskq_t *system_taskq; + extern taskq_t *taskq_create(const char *, int, pri_t, int, int, uint_t); extern taskqid_t taskq_dispatch(taskq_t *, task_func_t, void *, uint_t); extern void taskq_destroy(taskq_t *); extern void taskq_wait(taskq_t *); extern int taskq_member(taskq_t *, void *); +extern void system_taskq_init(void); #define XVA_MAPSIZE 3 #define XVA_MAGIC 0x78766174 Modified: stable/8/cddl/contrib/opensolaris/lib/libzpool/common/taskq.c ============================================================================== --- stable/8/cddl/contrib/opensolaris/lib/libzpool/common/taskq.c Thu May 20 06:51:01 2010 (r208333) +++ stable/8/cddl/contrib/opensolaris/lib/libzpool/common/taskq.c Thu May 20 06:51:48 2010 (r208334) @@ -19,15 +19,14 @@ * CDDL HEADER END */ /* - * Copyright 2007 Sun Microsystems, Inc. All rights reserved. + * Copyright 2008 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ -#pragma ident "%Z%%M% %I% %E% SMI" - #include int taskq_now; +taskq_t *system_taskq; typedef struct task { struct task *task_next; @@ -253,3 +252,10 @@ taskq_member(taskq_t *tq, void *t) return (0); } + +void +system_taskq_init(void) +{ + system_taskq = taskq_create("system_taskq", 64, minclsyspri, 4, 512, + TASKQ_DYNAMIC | TASKQ_PREPOPULATE); +} Modified: stable/8/sys/cddl/boot/zfs/zfsimpl.h ============================================================================== --- stable/8/sys/cddl/boot/zfs/zfsimpl.h Thu May 20 06:51:01 2010 (r208333) +++ stable/8/sys/cddl/boot/zfs/zfsimpl.h Thu May 20 06:51:48 2010 (r208334) @@ -66,7 +66,7 @@ #define P2ROUNDUP(x, align) (-(-(x) & -(align))) #define P2END(x, align) (-(~(x) & -(align))) #define P2PHASEUP(x, align, phase) ((phase) - (((phase) - (x)) & -(align))) -#define P2CROSS(x, y, align) (((x) ^ (y)) > (align) - 1) +#define P2BOUNDARY(off, len, align) (((off) ^ ((off) + (len) - 1)) > (align) - 1) /* * General-purpose 32-bit and 64-bit bitfield encodings. Modified: stable/8/sys/cddl/compat/opensolaris/sys/sysmacros.h ============================================================================== --- stable/8/sys/cddl/compat/opensolaris/sys/sysmacros.h Thu May 20 06:51:01 2010 (r208333) +++ stable/8/sys/cddl/compat/opensolaris/sys/sysmacros.h Thu May 20 06:51:48 2010 (r208334) @@ -43,6 +43,10 @@ extern "C" { #define ABS(a) ((a) < 0 ? -(a) : (a)) #endif +#ifndef SIGNOF +#define SIGNOF(a) ((a) < 0 ? -1 : (a) > 0) +#endif + /* * Macro for checking power of 2 address alignment. */ @@ -63,7 +67,7 @@ extern "C" { #define P2ROUNDUP(x, align) (-(-(x) & -(align))) #define P2END(x, align) (-(~(x) & -(align))) #define P2PHASEUP(x, align, phase) ((phase) - (((phase) - (x)) & -(align))) -#define P2CROSS(x, y, align) (((x) ^ (y)) > (align) - 1) +#define P2BOUNDARY(off, len, align) (((off) ^ ((off) + (len) - 1)) > (align) - 1) /* * Determine whether two numbers have the same high-order bit. */ Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c ============================================================================== --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c Thu May 20 06:51:01 2010 (r208333) +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c Thu May 20 06:51:48 2010 (r208334) @@ -308,20 +308,18 @@ dbuf_verify(dmu_buf_impl_t *db) ASSERT3U(db->db.db_offset, ==, db->db_blkid * db->db.db_size); } - if (db->db_level == 0) { - /* we can be momentarily larger in dnode_set_blksz() */ - if (db->db_blkid != DB_BONUS_BLKID && dn) { - ASSERT3U(db->db.db_size, >=, dn->dn_datablksz); - } - if (db->db.db_object == DMU_META_DNODE_OBJECT) { - dbuf_dirty_record_t *dr = db->db_data_pending; - /* - * it should only be modified in syncing - * context, so make sure we only have - * one copy of the data. - */ - ASSERT(dr == NULL || dr->dt.dl.dr_data == db->db_buf); - } + /* + * We can't assert that db_size matches dn_datablksz because it + * can be momentarily different when another thread is doing + * dnode_set_blksz(). + */ + if (db->db_level == 0 && db->db.db_object == DMU_META_DNODE_OBJECT) { + dbuf_dirty_record_t *dr = db->db_data_pending; + /* + * It should only be modified in syncing context, so + * make sure we only have one copy of the data. + */ + ASSERT(dr == NULL || dr->dt.dl.dr_data == db->db_buf); } /* verify db->db_blkptr */ Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c ============================================================================== --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c Thu May 20 06:51:01 2010 (r208333) +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_send.c Thu May 20 06:51:48 2010 (r208334) @@ -23,8 +23,6 @@ * Use is subject to license terms. */ -#pragma ident "%Z%%M% %I% %E% SMI" - #include #include #include @@ -172,66 +170,59 @@ dump_dnode(struct backuparg *ba, uint64_ (level) * (dnp->dn_indblkshift - SPA_BLKPTRSHIFT))) static int -backup_cb(traverse_blk_cache_t *bc, spa_t *spa, void *arg) +backup_cb(spa_t *spa, blkptr_t *bp, const zbookmark_t *zb, + const dnode_phys_t *dnp, void *arg) { struct backuparg *ba = arg; - uint64_t object = bc->bc_bookmark.zb_object; - int level = bc->bc_bookmark.zb_level; - uint64_t blkid = bc->bc_bookmark.zb_blkid; - blkptr_t *bp = bc->bc_blkptr.blk_birth ? &bc->bc_blkptr : NULL; dmu_object_type_t type = bp ? BP_GET_TYPE(bp) : DMU_OT_NONE; - void *data = bc->bc_data; int err = 0; if (issig(JUSTLOOKING) && issig(FORREAL)) return (EINTR); - ASSERT(data || bp == NULL); - - if (bp == NULL && object == 0) { - uint64_t span = BP_SPAN(bc->bc_dnode, level); - uint64_t dnobj = (blkid * span) >> DNODE_SHIFT; + if (bp == NULL && zb->zb_object == 0) { + uint64_t span = BP_SPAN(dnp, zb->zb_level); + uint64_t dnobj = (zb->zb_blkid * span) >> DNODE_SHIFT; err = dump_freeobjects(ba, dnobj, span >> DNODE_SHIFT); } else if (bp == NULL) { - uint64_t span = BP_SPAN(bc->bc_dnode, level); - err = dump_free(ba, object, blkid * span, span); - } else if (data && level == 0 && type == DMU_OT_DNODE) { - dnode_phys_t *blk = data; + uint64_t span = BP_SPAN(dnp, zb->zb_level); + err = dump_free(ba, zb->zb_object, zb->zb_blkid * span, span); + } else if (zb->zb_level > 0 || type == DMU_OT_OBJSET) { + return (0); + } else if (type == DMU_OT_DNODE) { + dnode_phys_t *blk; int i; int blksz = BP_GET_LSIZE(bp); + uint32_t aflags = ARC_WAIT; + arc_buf_t *abuf; + if (arc_read_nolock(NULL, spa, bp, + arc_getbuf_func, &abuf, ZIO_PRIORITY_ASYNC_READ, + ZIO_FLAG_CANFAIL, &aflags, zb) != 0) + return (EIO); + + blk = abuf->b_data; for (i = 0; i < blksz >> DNODE_SHIFT; i++) { - uint64_t dnobj = - (blkid << (DNODE_BLOCK_SHIFT - DNODE_SHIFT)) + i; + uint64_t dnobj = (zb->zb_blkid << + (DNODE_BLOCK_SHIFT - DNODE_SHIFT)) + i; err = dump_dnode(ba, dnobj, blk+i); if (err) break; } - } else if (level == 0 && - type != DMU_OT_DNODE && type != DMU_OT_OBJSET) { + (void) arc_buf_remove_ref(abuf, &abuf); + } else { /* it's a level-0 block of a regular object */ + uint32_t aflags = ARC_WAIT; + arc_buf_t *abuf; int blksz = BP_GET_LSIZE(bp); - if (data == NULL) { - uint32_t aflags = ARC_WAIT; - arc_buf_t *abuf; - zbookmark_t zb; - - zb.zb_objset = ba->os->os->os_dsl_dataset->ds_object; - zb.zb_object = object; - zb.zb_level = level; - zb.zb_blkid = blkid; - (void) arc_read_nolock(NULL, spa, bp, - arc_getbuf_func, &abuf, ZIO_PRIORITY_ASYNC_READ, - ZIO_FLAG_MUSTSUCCEED, &aflags, &zb); - - if (abuf) { - err = dump_data(ba, type, object, blkid * blksz, - blksz, abuf->b_data); - (void) arc_buf_remove_ref(abuf, &abuf); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Thu May 20 08:03:08 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F12871065672; Thu, 20 May 2010 08:03:08 +0000 (UTC) (envelope-from maxim@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C716E8FC15; Thu, 20 May 2010 08:03:08 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4K838DC033966; Thu, 20 May 2010 08:03:08 GMT (envelope-from maxim@svn.freebsd.org) Received: (from maxim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4K8381Q033965; Thu, 20 May 2010 08:03:08 GMT (envelope-from maxim@svn.freebsd.org) Message-Id: <201005200803.o4K8381Q033965@svn.freebsd.org> From: Maxim Konovalov Date: Thu, 20 May 2010 08:03:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208335 - stable/8/sbin/ping6 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 08:03:09 -0000 Author: maxim Date: Thu May 20 08:03:08 2010 New Revision: 208335 URL: http://svn.freebsd.org/changeset/base/208335 Log: MFC r206889: add do-not-fragment option support to ping6(8). Modified: stable/8/sbin/ping6/ping6.8 stable/8/sbin/ping6/ping6.c Directory Properties: stable/8/sbin/ping6/ (props changed) Modified: stable/8/sbin/ping6/ping6.8 ============================================================================== --- stable/8/sbin/ping6/ping6.8 Thu May 20 06:51:48 2010 (r208334) +++ stable/8/sbin/ping6/ping6.8 Thu May 20 08:03:08 2010 (r208335) @@ -29,7 +29,7 @@ .\" .\" $FreeBSD$ .\" -.Dd August 27, 2008 +.Dd April 20, 2010 .Dt PING6 8 .Os .Sh NAME @@ -40,9 +40,9 @@ packets to network hosts .Sh SYNOPSIS .Nm .\" without ipsec, or new ipsec -.Op Fl dfHmnNoqrRtvwW +.Op Fl DdfHmnNoqrRtvwW .\" old ipsec -.\" .Op Fl AdEfmnNqRtvwW +.\" .Op Fl ADdEfmnNqRtvwW .Bk -words .Op Fl a Ar addrtype .Ek @@ -141,6 +141,8 @@ Stop after sending .Ar count .Tn ECHO_RESPONSE packets. +.It Fl D +Disable IPv6 fragmentation. .It Fl d Set the .Dv SO_DEBUG Modified: stable/8/sbin/ping6/ping6.c ============================================================================== --- stable/8/sbin/ping6/ping6.c Thu May 20 06:51:48 2010 (r208334) +++ stable/8/sbin/ping6/ping6.c Thu May 20 08:03:08 2010 (r208335) @@ -191,6 +191,7 @@ struct tv32 { #define F_ONCE 0x200000 #define F_AUDIBLE 0x400000 #define F_MISSED 0x800000 +#define F_DONTFRAG 0x1000000 #define F_NOUSERDATA (F_NODEADDR | F_FQDN | F_FQDNOLD | F_SUPTYPES) u_int options; @@ -349,7 +350,7 @@ main(argc, argv) #endif /*IPSEC_POLICY_IPSEC*/ #endif while ((ch = getopt(argc, argv, - "a:b:c:dfHg:h:I:i:l:mnNop:qrRS:s:tvwW" ADDOPTS)) != -1) { + "a:b:c:DdfHg:h:I:i:l:mnNop:qrRS:s:tvwW" ADDOPTS)) != -1) { #undef ADDOPTS switch (ch) { case 'a': @@ -415,6 +416,9 @@ main(argc, argv) errx(1, "illegal number of packets -- %s", optarg); break; + case 'D': + options |= F_DONTFRAG; + break; case 'd': options |= F_SO_DEBUG; break; @@ -742,7 +746,11 @@ main(argc, argv) for (i = 0; i < sizeof(nonce); i += sizeof(u_int32_t)) *((u_int32_t *)&nonce[i]) = arc4random(); #endif - + optval = 1; + if (options & F_DONTFRAG) + if (setsockopt(s, IPPROTO_IPV6, IPV6_DONTFRAG, + &optval, sizeof(optval)) == -1) + err(1, "IPV6_DONTFRAG"); hold = 1; if (options & F_SO_DEBUG) @@ -2780,7 +2788,7 @@ usage() "A" #endif "usage: ping6 [-" - "d" + "Dd" #if defined(IPSEC) && !defined(IPSEC_POLICY_IPSEC) "E" #endif From owner-svn-src-all@FreeBSD.ORG Thu May 20 08:07:25 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EA427106566C; Thu, 20 May 2010 08:07:25 +0000 (UTC) (envelope-from maxim@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A41068FC1B; Thu, 20 May 2010 08:07:25 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4K87Piw034943; Thu, 20 May 2010 08:07:25 GMT (envelope-from maxim@svn.freebsd.org) Received: (from maxim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4K87PRe034941; Thu, 20 May 2010 08:07:25 GMT (envelope-from maxim@svn.freebsd.org) Message-Id: <201005200807.o4K87PRe034941@svn.freebsd.org> From: Maxim Konovalov Date: Thu, 20 May 2010 08:07:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208336 - head/share/misc X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 08:07:26 -0000 Author: maxim Date: Thu May 20 08:07:25 2010 New Revision: 208336 URL: http://svn.freebsd.org/changeset/base/208336 Log: o DragonFly 2.6.0 added. Submitted by: pluknet Modified: head/share/misc/bsd-family-tree Modified: head/share/misc/bsd-family-tree ============================================================================== --- head/share/misc/bsd-family-tree Thu May 20 08:03:08 2010 (r208335) +++ head/share/misc/bsd-family-tree Thu May 20 08:07:25 2010 (r208336) @@ -235,7 +235,7 @@ FreeBSD 5.2 | | *--FreeBSD | | | | | | 8.0 | | | | | | | FreeBSD | | | | - | V 7.3 | | | | + | V 7.3 | | | DragonFly 2.6.0 | | | OpenBSD 4.7 | | | | | | FreeBSD 9 -current | NetBSD -current OpenBSD -current | @@ -513,6 +513,7 @@ DragonFly 2.4.0 2009-09-16 [DFB] OpenBSD 4.6 2009-10-18 [OBD] FreeBSD 8.0 2009-11-26 [FBD] FreeBSD 7.3 2010-03-23 [FBD] +DragonFly 2.6.0 2010-03-28 [DFB] OpenBSD 4.7 2010-05-19 [OBD] Bibliography From owner-svn-src-all@FreeBSD.ORG Thu May 20 08:07:46 2010 Return-Path: Delivered-To: svn-src-all@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4F3FE10657A2; Thu, 20 May 2010 08:07:46 +0000 (UTC) (envelope-from maxim.konovalov@gmail.com) Received: from mp2.macomnet.net (cl-2958.ham-01.de.sixxs.net [IPv6:2001:6f8:900:b8d::2]) by mx1.freebsd.org (Postfix) with ESMTP id B51EC8FC1D; Thu, 20 May 2010 08:07:45 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by mp2.macomnet.net (8.14.3/8.14.3) with ESMTP id o4K87hHq074247; Thu, 20 May 2010 12:07:43 +0400 (MSD) (envelope-from maxim.konovalov@gmail.com) Date: Thu, 20 May 2010 12:07:43 +0400 (MSD) From: Maxim Konovalov To: pluknet In-Reply-To: Message-ID: <20100520120720.R13435@mp2.macomnet.net> References: <201005200503.o4K532oV093968@svn.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=KOI8-R Content-Transfer-Encoding: 8BIT Cc: svn-src-head@FreeBSD.ORG, svn-src-all@FreeBSD.ORG, src-committers@FreeBSD.ORG Subject: Re: svn commit: r208327 - head/share/misc X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 08:07:46 -0000 On Thu, 20 May 2010, 09:53+0400, pluknet wrote: > On 20 May 2010 09:03, Maxim Konovalov wrote: > > Author: maxim > > Date: Thu May 20 05:03:02 2010 > > New Revision: 208327 > > URL: http://svn.freebsd.org/changeset/base/208327 > > > > Log: > > šo OpenBSD 4.7 added. > > > > Modified: > > šhead/share/misc/bsd-family-tree > > Matthew's 2.6.0 technically tagged on 2010-03-28. > http://gitweb.dragonflybsd.org/dragonfly.git/tag/4f39cf4b1fe60d4fbec4b908fafb7f075fd3d866 > Would you like to add this as well? > Added. Thanks! -- Maxim Konovalov From owner-svn-src-all@FreeBSD.ORG Thu May 20 08:15:06 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C89F4106564A; Thu, 20 May 2010 08:15:06 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9F6AF8FC1E; Thu, 20 May 2010 08:15:06 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4K8F6TC036662; Thu, 20 May 2010 08:15:06 GMT (envelope-from dougb@svn.freebsd.org) Received: (from dougb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4K8F6FT036656; Thu, 20 May 2010 08:15:06 GMT (envelope-from dougb@svn.freebsd.org) Message-Id: <201005200815.o4K8F6FT036656@svn.freebsd.org> From: Doug Barton Date: Thu, 20 May 2010 08:15:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208337 - in head/contrib/bind9: . lib/dns X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 08:15:06 -0000 Author: dougb Date: Thu May 20 08:15:06 2010 New Revision: 208337 URL: http://svn.freebsd.org/changeset/base/208337 Log: Upgrade to 9.6.2-P2, which addresses the following; Named could return SERVFAIL for negative responses from unsigned zones. Modified: head/contrib/bind9/CHANGES head/contrib/bind9/lib/dns/api head/contrib/bind9/lib/dns/validator.c head/contrib/bind9/version Directory Properties: head/contrib/bind9/ (props changed) Modified: head/contrib/bind9/CHANGES ============================================================================== --- head/contrib/bind9/CHANGES Thu May 20 08:07:25 2010 (r208336) +++ head/contrib/bind9/CHANGES Thu May 20 08:15:06 2010 (r208337) @@ -1,3 +1,8 @@ + --- 9.6.2-P2 released --- + +2876. [bug] Named could return SERVFAIL for negative responses + from unsigned zones. [RT #21131] + --- 9.6.2-P1 released --- 2852. [bug] Handle broken DNSSEC trust chains better. [RT #15619] Modified: head/contrib/bind9/lib/dns/api ============================================================================== --- head/contrib/bind9/lib/dns/api Thu May 20 08:07:25 2010 (r208336) +++ head/contrib/bind9/lib/dns/api Thu May 20 08:15:06 2010 (r208337) @@ -1,3 +1,3 @@ LIBINTERFACE = 56 -LIBREVISION = 0 +LIBREVISION = 1 LIBAGE = 1 Modified: head/contrib/bind9/lib/dns/validator.c ============================================================================== --- head/contrib/bind9/lib/dns/validator.c Thu May 20 08:07:25 2010 (r208336) +++ head/contrib/bind9/lib/dns/validator.c Thu May 20 08:15:06 2010 (r208337) @@ -15,7 +15,7 @@ * PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: validator.c,v 1.164.12.11.8.2 2010/02/25 10:57:12 tbox Exp $ */ +/* $Id: validator.c,v 1.164.12.11.8.3 2010/04/21 04:29:01 marka Exp $ */ #include @@ -2961,7 +2961,7 @@ nsecvalidate(dns_validator_t *val, isc_b } findnsec3proofs(val); - if (val->authcount == val->authfail) + if (val->authfail != 0 && val->authcount == val->authfail) return (DNS_R_BROKENCHAIN); validator_log(val, ISC_LOG_DEBUG(3), "nonexistence proof(s) not found"); Modified: head/contrib/bind9/version ============================================================================== --- head/contrib/bind9/version Thu May 20 08:07:25 2010 (r208336) +++ head/contrib/bind9/version Thu May 20 08:15:06 2010 (r208337) @@ -1,4 +1,4 @@ -# $Id: version,v 1.43.12.8.2.3 2010/03/04 00:08:28 marka Exp $ +# $Id: version,v 1.43.12.8.2.4 2010/05/10 02:07:03 marka Exp $ # # This file must follow /bin/sh rules. It is imported directly via # configure. @@ -7,4 +7,4 @@ MAJORVER=9 MINORVER=6 PATCHVER=2 RELEASETYPE=-P -RELEASEVER=1 +RELEASEVER=2 From owner-svn-src-all@FreeBSD.ORG Thu May 20 08:43:29 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EF24D1065672; Thu, 20 May 2010 08:43:29 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DE9278FC21; Thu, 20 May 2010 08:43:29 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4K8hTuD042991; Thu, 20 May 2010 08:43:29 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4K8hTD3042989; Thu, 20 May 2010 08:43:29 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201005200843.o4K8hTD3042989@svn.freebsd.org> From: Marius Strobl Date: Thu, 20 May 2010 08:43:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208338 - stable/8/sys/modules/cas X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 08:43:30 -0000 Author: marius Date: Thu May 20 08:43:29 2010 New Revision: 208338 URL: http://svn.freebsd.org/changeset/base/208338 Log: MFC: r208143 Add the ofw_bus_if.h dependency introduced with r207585 (MFC'ed to stable/8 in r208086). Modified: stable/8/sys/modules/cas/Makefile Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/modules/cas/Makefile ============================================================================== --- stable/8/sys/modules/cas/Makefile Thu May 20 08:15:06 2010 (r208337) +++ stable/8/sys/modules/cas/Makefile Thu May 20 08:43:29 2010 (r208338) @@ -3,6 +3,10 @@ .PATH: ${.CURDIR}/../../dev/cas KMOD= if_cas -SRCS= bus_if.h device_if.h if_cas.c miibus_if.h pci_if.h +SRCS= bus_if.h device_if.h if_cas.c miibus_if.h pci_if.h ${ofw_bus_if} + +.if ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "sparc64" +ofw_bus_if= ofw_bus_if.h +.endif .include From owner-svn-src-all@FreeBSD.ORG Thu May 20 08:43:31 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8CC8E1065674; Thu, 20 May 2010 08:43:31 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7C5108FC0C; Thu, 20 May 2010 08:43:31 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4K8hVPs043051; Thu, 20 May 2010 08:43:31 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4K8hV42043049; Thu, 20 May 2010 08:43:31 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201005200843.o4K8hV42043049@svn.freebsd.org> From: Marius Strobl Date: Thu, 20 May 2010 08:43:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208339 - stable/7/sys/modules/cas X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 08:43:31 -0000 Author: marius Date: Thu May 20 08:43:31 2010 New Revision: 208339 URL: http://svn.freebsd.org/changeset/base/208339 Log: MFC: r208143 Add the ofw_bus_if.h dependency introduced with r207585 (MFC'ed to stable/7 in r208087). Modified: stable/7/sys/modules/cas/Makefile Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/sys/modules/cas/Makefile ============================================================================== --- stable/7/sys/modules/cas/Makefile Thu May 20 08:43:29 2010 (r208338) +++ stable/7/sys/modules/cas/Makefile Thu May 20 08:43:31 2010 (r208339) @@ -3,6 +3,10 @@ .PATH: ${.CURDIR}/../../dev/cas KMOD= if_cas -SRCS= bus_if.h device_if.h if_cas.c miibus_if.h pci_if.h +SRCS= bus_if.h device_if.h if_cas.c miibus_if.h pci_if.h ${ofw_bus_if} + +.if ${MACHINE_ARCH} == "powerpc" || ${MACHINE_ARCH} == "sparc64" +ofw_bus_if= ofw_bus_if.h +.endif .include From owner-svn-src-all@FreeBSD.ORG Thu May 20 08:51:01 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7A1EF106566B; Thu, 20 May 2010 08:51:01 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6AA1B8FC15; Thu, 20 May 2010 08:51:01 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4K8p1Za044741; Thu, 20 May 2010 08:51:01 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4K8p1rj044739; Thu, 20 May 2010 08:51:01 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201005200851.o4K8p1rj044739@svn.freebsd.org> From: Konstantin Belousov Date: Thu, 20 May 2010 08:51:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208340 - head/sys/vm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 08:51:01 -0000 Author: kib Date: Thu May 20 08:51:01 2010 New Revision: 208340 URL: http://svn.freebsd.org/changeset/base/208340 Log: When waiting for the busy page, do not unlock the object unless unlock cannot be avoided. Reviewed by: alc MFC after: 1 week Modified: head/sys/vm/vm_fault.c Modified: head/sys/vm/vm_fault.c ============================================================================== --- head/sys/vm/vm_fault.c Thu May 20 08:43:31 2010 (r208339) +++ head/sys/vm/vm_fault.c Thu May 20 08:51:01 2010 (r208340) @@ -340,9 +340,13 @@ RetryFault:; vm_page_flag_set(fs.m, PG_REFERENCED); vm_page_unlock_queues(); vm_page_unlock(fs.m); - VM_OBJECT_UNLOCK(fs.object); if (fs.object != fs.first_object) { - VM_OBJECT_LOCK(fs.first_object); + if (!VM_OBJECT_TRYLOCK( + fs.first_object)) { + VM_OBJECT_UNLOCK(fs.object); + VM_OBJECT_LOCK(fs.first_object); + VM_OBJECT_LOCK(fs.object); + } vm_page_lock(fs.first_m); vm_page_free(fs.first_m); vm_page_unlock(fs.first_m); @@ -351,7 +355,6 @@ RetryFault:; fs.first_m = NULL; } unlock_map(&fs); - VM_OBJECT_LOCK(fs.object); if (fs.m == vm_page_lookup(fs.object, fs.pindex)) { vm_page_sleep_if_busy(fs.m, TRUE, From owner-svn-src-all@FreeBSD.ORG Thu May 20 08:56:50 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 61AA71065678; Thu, 20 May 2010 08:56:50 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 516ED8FC17; Thu, 20 May 2010 08:56:50 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4K8uocw046072; Thu, 20 May 2010 08:56:50 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4K8uo19046070; Thu, 20 May 2010 08:56:50 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201005200856.o4K8uo19046070@svn.freebsd.org> From: Marius Strobl Date: Thu, 20 May 2010 08:56:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208341 - head/lib/libmagic X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 08:56:50 -0000 Author: marius Date: Thu May 20 08:56:50 2010 New Revision: 208341 URL: http://svn.freebsd.org/changeset/base/208341 Log: Update to a config.h created by a file 5.03 configure script. This causes file.1 to contain the correct version number and SIZEOF_LONG_LONG to be defined as appropriate, which is crucial for 64-bit big-endian ELF files to be handled correctly on big-endian systems. PR: 146387 Reviewed by: delphij MFC after: 3 days Modified: head/lib/libmagic/config.h Modified: head/lib/libmagic/config.h ============================================================================== --- head/lib/libmagic/config.h Thu May 20 08:51:01 2010 (r208340) +++ head/lib/libmagic/config.h Thu May 20 08:56:50 2010 (r208341) @@ -1,18 +1,18 @@ /* $FreeBSD$ */ /* config.h. Generated from config.h.in by configure. */ -/* config.h.in. Generated from configure.in by autoheader. */ +/* config.h.in. Generated from configure.ac by autoheader. */ -/* Use the builtin ELF recognition code */ +/* Define in built-in ELF support is used */ #define BUILTIN_ELF 1 -/* Recognize ELF core files */ +/* Define for ELF core file support */ #define ELFCORE 1 /* Define to 1 if you have the `asprintf' function. */ #define HAVE_ASPRINTF 1 -/* */ +/* HAVE_DAYLIGHT */ /* #undef HAVE_DAYLIGHT */ /* Define to 1 if you have the header file. */ @@ -51,9 +51,6 @@ /* Define to 1 if you have the header file. */ #define HAVE_LOCALE_H 1 -/* */ -#define HAVE_LONG_LONG 1 - /* Define to 1 if you have the `mbrtowc' function. */ #define HAVE_MBRTOWC 1 @@ -69,9 +66,6 @@ /* Define to 1 if you have the `mmap' function. */ #define HAVE_MMAP 1 -/* Define to 1 if you have the `snprintf' function. */ -#define HAVE_SNPRINTF 1 - /* Define to 1 if you have the header file. */ #define HAVE_STDINT_H 1 @@ -102,13 +96,12 @@ /* Define to 1 if you have the `strtoul' function. */ #define HAVE_STRTOUL 1 +/* HAVE_STRUCT_OPTION */ +#define HAVE_STRUCT_OPTION 1 + /* Define to 1 if `st_rdev' is member of `struct stat'. */ #define HAVE_STRUCT_STAT_ST_RDEV 1 -/* Define to 1 if your `struct stat' has `st_rdev'. Deprecated, use - `HAVE_STRUCT_STAT_ST_RDEV' instead. */ -#define HAVE_ST_RDEV 1 - /* Define to 1 if `tm_gmtoff' is member of `struct tm'. */ #define HAVE_STRUCT_TM_TM_GMTOFF 1 @@ -133,7 +126,7 @@ /* Define to 1 if you have that is POSIX.1 compatible. */ #define HAVE_SYS_WAIT_H 1 -/* */ +/* HAVE_TM_ISDST */ #define HAVE_TM_ISDST 1 /* HAVE_TM_ZONE */ @@ -169,9 +162,6 @@ /* Define to 1 if you have the `vasprintf' function. */ #define HAVE_VASPRINTF 1 -/* Define to 1 if you have the `vsnprintf' function. */ -#define HAVE_VSNPRINTF 1 - /* Define to 1 if you have the header file. */ #define HAVE_WCHAR_H 1 @@ -199,34 +189,22 @@ #define PACKAGE "file" /* Define to the address where bug reports for this package should be sent. */ -#define PACKAGE_BUGREPORT "" +#define PACKAGE_BUGREPORT "christos@astron.com" /* Define to the full name of this package. */ -#define PACKAGE_NAME "" +#define PACKAGE_NAME "file" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "" +#define PACKAGE_STRING "file 5.03" /* Define to the one symbol short name of this package. */ -#define PACKAGE_TARNAME "" +#define PACKAGE_TARNAME "file" /* Define to the version of this package. */ -#define PACKAGE_VERSION VERSION - -/* */ -#define SIZEOF_INT64_T 8 +#define PACKAGE_VERSION "5.03" -/* */ -#define SIZEOF_UINT16_T 2 - -/* */ -#define SIZEOF_UINT32_T 4 - -/* */ -#define SIZEOF_UINT64_T 8 - -/* */ -#define SIZEOF_UINT8_T 1 +/* The size of `long long', as computed by sizeof. */ +#define SIZEOF_LONG_LONG 8 /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 @@ -235,7 +213,7 @@ /* #undef TM_IN_SYS_TIME */ /* Version number of package */ -#define VERSION "5.00" +#define VERSION "5.03" /* Number of bits in a file offset, on hosts where this is settable. */ /* #undef _FILE_OFFSET_BITS */ @@ -247,8 +225,49 @@ #endif #endif +/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */ +/* #undef _LARGEFILE_SOURCE */ + /* Define for large files, on AIX-style hosts. */ /* #undef _LARGE_FILES */ /* Define to empty if `const' does not conform to ANSI C. */ /* #undef const */ + +/* Define to a type if does not define. */ +/* #undef mbstate_t */ + +/* Define to `long int' if does not define. */ +/* #undef off_t */ + +/* Define to `unsigned int' if does not define. */ +/* #undef size_t */ + + +#ifndef HAVE_UINT8_T +typedef unsigned char uint8_t; +#endif +#ifndef HAVE_UINT16_T +typedef unsigned short uint16_t; +#endif +#ifndef HAVE_UINT32_T +typedef unsigned int uint32_t; +#endif +#ifndef HAVE_INT32_T +typedef int int32_t; +#endif +#ifndef HAVE_UINT64_T +#if SIZEOF_LONG_LONG == 8 +typedef unsigned long long uint64_t; +#else +typedef unsigned long uint64_t; +#endif +#endif +#ifndef HAVE_INT64_T +#if SIZEOF_LONG_LONG == 8 +typedef long long int64_t; +#else +typedef long int64_t; +#endif +#endif + From owner-svn-src-all@FreeBSD.ORG Thu May 20 09:00:11 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D20BF106567A; Thu, 20 May 2010 09:00:11 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C289E8FC14; Thu, 20 May 2010 09:00:11 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4K90BQE046860; Thu, 20 May 2010 09:00:11 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4K90BjN046858; Thu, 20 May 2010 09:00:11 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201005200900.o4K90BjN046858@svn.freebsd.org> From: Marius Strobl Date: Thu, 20 May 2010 09:00:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208342 - head/lib/libmagic X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 09:00:11 -0000 Author: marius Date: Thu May 20 09:00:11 2010 New Revision: 208342 URL: http://svn.freebsd.org/changeset/base/208342 Log: With r208341 in place WARNS can be increased. Modified: head/lib/libmagic/Makefile Modified: head/lib/libmagic/Makefile ============================================================================== --- head/lib/libmagic/Makefile Thu May 20 08:56:50 2010 (r208341) +++ head/lib/libmagic/Makefile Thu May 20 09:00:11 2010 (r208342) @@ -20,7 +20,7 @@ MAGICPATH?= /usr/share/misc CFLAGS+= -DMAGIC='"${MAGICPATH}/magic"' -DHAVE_CONFIG_H CFLAGS+= -I${.CURDIR} -I${CONTRDIR} -WARNS?= 1 +WARNS?= 3 CLEANFILES+= magic magic.mgc From owner-svn-src-all@FreeBSD.ORG Thu May 20 09:35:31 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 982251065688; Thu, 20 May 2010 09:35:31 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 856138FC21; Thu, 20 May 2010 09:35:31 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4K9ZVvp054659; Thu, 20 May 2010 09:35:31 GMT (envelope-from mm@svn.freebsd.org) Received: (from mm@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4K9ZVlY054653; Thu, 20 May 2010 09:35:31 GMT (envelope-from mm@svn.freebsd.org) Message-Id: <201005200935.o4K9ZVlY054653@svn.freebsd.org> From: Martin Matuska Date: Thu, 20 May 2010 09:35:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208343 - stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 09:35:31 -0000 Author: mm Date: Thu May 20 09:35:31 2010 New Revision: 208343 URL: http://svn.freebsd.org/changeset/base/208343 Log: MFC r208050: Fix ZIL-related panic on zfs rollback. OpenSolaris onnv-revision: 8746:e1d96ca6808c Approved by: pjd, delphij (mentor) Obtained from: OpenSolaris (Bug ID 6796377) Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scrub.c stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c ============================================================================== --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c Thu May 20 09:00:11 2010 (r208342) +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c Thu May 20 09:35:31 2010 (r208343) @@ -1915,7 +1915,6 @@ dbuf_sync_leaf(dbuf_dirty_record_t *dr, dnode_t *dn = db->db_dnode; objset_impl_t *os = dn->dn_objset; uint64_t txg = tx->tx_txg; - int blksz; ASSERT(dmu_tx_is_syncing(tx)); @@ -2025,23 +2024,24 @@ dbuf_sync_leaf(dbuf_dirty_record_t *dr, return; } - blksz = arc_buf_size(*datap); - - if (dn->dn_object != DMU_META_DNODE_OBJECT) { + if (dn->dn_object != DMU_META_DNODE_OBJECT && + refcount_count(&db->db_holds) > 1 && + *datap == db->db_buf) { /* - * If this buffer is currently "in use" (i.e., there are - * active holds and db_data still references it), then make - * a copy before we start the write so that any modifications - * from the open txg will not leak into this write. + * If this buffer is currently "in use" (i.e., there + * are active holds and db_data still references it), + * then make a copy before we start the write so that + * any modifications from the open txg will not leak + * into this write. * - * NOTE: this copy does not need to be made for objects only - * modified in the syncing context (e.g. DNONE_DNODE blocks). + * NOTE: this copy does not need to be made for + * objects only modified in the syncing context (e.g. + * DNONE_DNODE blocks). */ - if (refcount_count(&db->db_holds) > 1 && *datap == db->db_buf) { - arc_buf_contents_t type = DBUF_GET_BUFC_TYPE(db); - *datap = arc_buf_alloc(os->os_spa, blksz, db, type); - bcopy(db->db.db_data, (*datap)->b_data, blksz); - } + int blksz = arc_buf_size(*datap); + arc_buf_contents_t type = DBUF_GET_BUFC_TYPE(db); + *datap = arc_buf_alloc(os->os_spa, blksz, db, type); + bcopy(db->db.db_data, (*datap)->b_data, blksz); } ASSERT(*datap != NULL); Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c ============================================================================== --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c Thu May 20 09:00:11 2010 (r208342) +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c Thu May 20 09:35:31 2010 (r208343) @@ -19,7 +19,7 @@ * CDDL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -226,10 +226,6 @@ traverse_visitbp(struct traverse_data *t return (err); osp = buf->b_data; - /* - * traverse_zil is just here for zdb's leak checking. - * For other consumers, there will be no ZIL blocks. - */ traverse_zil(td, &osp->os_zil_header); for (j = 0; j < osp->os_meta_dnode.dn_nblkptr; j++) { Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c ============================================================================== --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c Thu May 20 09:00:11 2010 (r208342) +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c Thu May 20 09:35:31 2010 (r208343) @@ -1171,8 +1171,18 @@ kill_blkptr(spa_t *spa, blkptr_t *bp, co if (bp == NULL) return (0); - ASSERT3U(bp->blk_birth, >, ka->ds->ds_phys->ds_prev_snap_txg); - (void) dsl_dataset_block_kill(ka->ds, bp, ka->zio, ka->tx); + if ((zb->zb_level == -1ULL && zb->zb_blkid != 0) || + (zb->zb_object != 0 && dnp == NULL)) { + /* + * It's a block in the intent log. It has no + * accounting, so just free it. + */ + VERIFY3U(0, ==, dsl_free(ka->zio, ka->tx->tx_pool, + ka->tx->tx_txg, bp, NULL, NULL, ARC_NOWAIT)); + } else { + ASSERT3U(bp->blk_birth, >, ka->ds->ds_phys->ds_prev_snap_txg); + (void) dsl_dataset_block_kill(ka->ds, bp, ka->zio, ka->tx); + } return (0); } @@ -1216,13 +1226,7 @@ dsl_dataset_rollback_sync(void *arg1, vo dmu_buf_will_dirty(ds->ds_dbuf, tx); - /* - * Before the roll back destroy the zil. - */ if (ds->ds_user_ptr != NULL) { - zil_rollback_destroy( - ((objset_impl_t *)ds->ds_user_ptr)->os_zil, tx); - /* * We need to make sure that the objset_impl_t is reopened after * we do the rollback, otherwise it will have the wrong @@ -1255,7 +1259,10 @@ dsl_dataset_rollback_sync(void *arg1, vo ds->ds_phys->ds_deadlist_obj)); { - /* Free blkptrs that we gave birth to */ + /* + * Free blkptrs that we gave birth to - this covers + * claimed but not played log blocks too. + */ zio_t *zio; struct killarg ka; Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scrub.c ============================================================================== --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scrub.c Thu May 20 09:00:11 2010 (r208342) +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_scrub.c Thu May 20 09:35:31 2010 (r208343) @@ -344,6 +344,12 @@ traverse_zil_block(zilog_t *zilog, blkpt if (bp->blk_birth <= dp->dp_scrub_min_txg) return; + /* + * One block ("stumpy") can be allocated a long time ago; we + * want to visit that one because it has been allocated + * (on-disk) even if it hasn't been claimed (even though for + * plain scrub there's nothing to do to it). + */ if (claim_txg == 0 && bp->blk_birth >= spa_first_txg(dp->dp_spa)) return; @@ -369,6 +375,11 @@ traverse_zil_record(zilog_t *zilog, lr_t if (bp->blk_birth <= dp->dp_scrub_min_txg) return; + /* + * birth can be < claim_txg if this record's txg is + * already txg sync'ed (but this log block contains + * other records that are not synced) + */ if (claim_txg == 0 || bp->blk_birth < claim_txg) return; Modified: stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c ============================================================================== --- stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c Thu May 20 09:00:11 2010 (r208342) +++ stable/8/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c Thu May 20 09:35:31 2010 (r208343) @@ -19,7 +19,7 @@ * CDDL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -478,37 +478,6 @@ zil_destroy(zilog_t *zilog, boolean_t ke } /* - * zil_rollback_destroy() is only called by the rollback code. - * We already have a syncing tx. Rollback has exclusive access to the - * dataset, so we don't have to worry about concurrent zil access. - * The actual freeing of any log blocks occurs in zil_sync() later in - * this txg syncing phase. - */ -void -zil_rollback_destroy(zilog_t *zilog, dmu_tx_t *tx) -{ - const zil_header_t *zh = zilog->zl_header; - uint64_t txg; - - if (BP_IS_HOLE(&zh->zh_log)) - return; - - txg = dmu_tx_get_txg(tx); - ASSERT3U(zilog->zl_destroy_txg, <, txg); - zilog->zl_destroy_txg = txg; - zilog->zl_keep_first = B_FALSE; - - /* - * Ensure there's no outstanding ZIL IO. No lwbs or just the - * unused one that allocated in advance is ok. - */ - ASSERT(zilog->zl_lwb_list.list_head.list_next == - zilog->zl_lwb_list.list_head.list_prev); - (void) zil_parse(zilog, zil_free_log_block, zil_free_log_record, - tx, zh->zh_claim_txg); -} - -/* * return true if the initial log block is not valid */ static boolean_t From owner-svn-src-all@FreeBSD.ORG Thu May 20 09:38:15 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6F1141065677; Thu, 20 May 2010 09:38:15 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5D7F38FC15; Thu, 20 May 2010 09:38:15 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4K9cFF0055291; Thu, 20 May 2010 09:38:15 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4K9cFTF055286; Thu, 20 May 2010 09:38:15 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201005200938.o4K9cFTF055286@svn.freebsd.org> From: Konstantin Belousov Date: Thu, 20 May 2010 09:38:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208344 - in stable/8/sys: fs/devfs kern sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 09:38:15 -0000 Author: kib Date: Thu May 20 09:38:15 2010 New Revision: 208344 URL: http://svn.freebsd.org/changeset/base/208344 Log: MFC r207729: Add MAKEDEV_NOWAIT flag for make_dev_credf(9). Modified: stable/8/sys/fs/devfs/devfs_devs.c stable/8/sys/fs/devfs/devfs_int.h stable/8/sys/kern/kern_conf.c stable/8/sys/sys/conf.h Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/fs/devfs/devfs_devs.c ============================================================================== --- stable/8/sys/fs/devfs/devfs_devs.c Thu May 20 09:35:31 2010 (r208343) +++ stable/8/sys/fs/devfs/devfs_devs.c Thu May 20 09:38:15 2010 (r208344) @@ -112,17 +112,21 @@ SYSCTL_INT(_debug_sizeof, OID_AUTO, cdev 0, sizeof(struct cdev_priv), "sizeof(struct cdev_priv)"); struct cdev * -devfs_alloc(void) +devfs_alloc(int flags) { struct cdev_priv *cdp; struct cdev *cdev; struct timespec ts; - cdp = malloc(sizeof *cdp, M_CDEVP, M_USE_RESERVE | M_ZERO | M_WAITOK); + cdp = malloc(sizeof *cdp, M_CDEVP, M_USE_RESERVE | M_ZERO | + ((flags & MAKEDEV_NOWAIT) ? M_NOWAIT : M_WAITOK)); + if (cdp == NULL) + return (NULL); cdp->cdp_dirents = &cdp->cdp_dirent0; cdp->cdp_dirent0 = NULL; cdp->cdp_maxdirent = 0; + cdp->cdp_inode = 0; cdev = &cdp->cdp_c; @@ -130,6 +134,7 @@ devfs_alloc(void) LIST_INIT(&cdev->si_children); vfs_timestamp(&ts); cdev->si_atime = cdev->si_mtime = cdev->si_ctime = ts; + cdev->si_cred = NULL; return (cdev); } Modified: stable/8/sys/fs/devfs/devfs_int.h ============================================================================== --- stable/8/sys/fs/devfs/devfs_int.h Thu May 20 09:35:31 2010 (r208343) +++ stable/8/sys/fs/devfs/devfs_int.h Thu May 20 09:38:15 2010 (r208344) @@ -70,7 +70,7 @@ struct cdev_priv { #define cdev2priv(c) member2struct(cdev_priv, cdp_c, c) -struct cdev *devfs_alloc(void); +struct cdev *devfs_alloc(int); void devfs_free(struct cdev *); void devfs_create(struct cdev *dev); void devfs_destroy(struct cdev *dev); Modified: stable/8/sys/kern/kern_conf.c ============================================================================== --- stable/8/sys/kern/kern_conf.c Thu May 20 09:35:31 2010 (r208343) +++ stable/8/sys/kern/kern_conf.c Thu May 20 09:38:15 2010 (r208344) @@ -508,7 +508,7 @@ giant_mmap_single(struct cdev *dev, vm_o } static void -notify(struct cdev *dev, const char *ev) +notify(struct cdev *dev, const char *ev, int flags) { static const char prefix[] = "cdev="; char *data; @@ -517,7 +517,8 @@ notify(struct cdev *dev, const char *ev) if (cold) return; namelen = strlen(dev->si_name); - data = malloc(namelen + sizeof(prefix), M_TEMP, M_NOWAIT); + data = malloc(namelen + sizeof(prefix), M_TEMP, + (flags & MAKEDEV_NOWAIT) ? M_NOWAIT : M_WAITOK); if (data == NULL) return; memcpy(data, prefix, sizeof(prefix) - 1); @@ -527,17 +528,17 @@ notify(struct cdev *dev, const char *ev) } static void -notify_create(struct cdev *dev) +notify_create(struct cdev *dev, int flags) { - notify(dev, "CREATE"); + notify(dev, "CREATE", flags); } static void notify_destroy(struct cdev *dev) { - notify(dev, "DESTROY"); + notify(dev, "DESTROY", MAKEDEV_WAITOK); } static struct cdev * @@ -575,24 +576,27 @@ fini_cdevsw(struct cdevsw *devsw) devsw->d_flags &= ~D_INIT; } -static void -prep_cdevsw(struct cdevsw *devsw) +static int +prep_cdevsw(struct cdevsw *devsw, int flags) { struct cdevsw *dsw2; mtx_assert(&devmtx, MA_OWNED); if (devsw->d_flags & D_INIT) - return; + return (1); if (devsw->d_flags & D_NEEDGIANT) { dev_unlock(); - dsw2 = malloc(sizeof *dsw2, M_DEVT, M_WAITOK); + dsw2 = malloc(sizeof *dsw2, M_DEVT, + (flags & MAKEDEV_NOWAIT) ? M_NOWAIT : M_WAITOK); dev_lock(); + if (dsw2 == NULL && !(devsw->d_flags & D_INIT)) + return (0); } else dsw2 = NULL; if (devsw->d_flags & D_INIT) { if (dsw2 != NULL) cdevsw_free_devlocked(dsw2); - return; + return (1); } if (devsw->d_version != D_VERSION_01 && @@ -653,6 +657,7 @@ prep_cdevsw(struct cdevsw *devsw) if (dsw2 != NULL) cdevsw_free_devlocked(dsw2); + return (1); } static struct cdev * @@ -663,9 +668,15 @@ make_dev_credv(int flags, struct cdevsw struct cdev *dev; int i; - dev = devfs_alloc(); + dev = devfs_alloc(flags); + if (dev == NULL) + return (NULL); dev_lock(); - prep_cdevsw(devsw); + if (!prep_cdevsw(devsw, flags)) { + dev_unlock(); + devfs_free(dev); + return (NULL); + } dev = newdev(devsw, unit, dev); if (flags & MAKEDEV_REF) dev_refl(dev); @@ -692,8 +703,6 @@ make_dev_credv(int flags, struct cdevsw dev->si_flags |= SI_NAMED; if (cr != NULL) dev->si_cred = crhold(cr); - else - dev->si_cred = NULL; dev->si_uid = uid; dev->si_gid = gid; dev->si_mode = mode; @@ -702,7 +711,7 @@ make_dev_credv(int flags, struct cdevsw clean_unrhdrl(devfs_inos); dev_unlock_and_free(); - notify_create(dev); + notify_create(dev, flags); return (dev); } @@ -777,7 +786,7 @@ make_dev_alias(struct cdev *pdev, const int i; KASSERT(pdev != NULL, ("NULL pdev")); - dev = devfs_alloc(); + dev = devfs_alloc(MAKEDEV_WAITOK); dev_lock(); dev->si_flags |= SI_ALIAS; dev->si_flags |= SI_NAMED; @@ -794,7 +803,7 @@ make_dev_alias(struct cdev *pdev, const clean_unrhdrl(devfs_inos); dev_unlock(); - notify_create(dev); + notify_create(dev, MAKEDEV_WAITOK); return (dev); } @@ -979,9 +988,9 @@ clone_create(struct clonedevs **cdp, str * the end of the list. */ unit = *up; - ndev = devfs_alloc(); + ndev = devfs_alloc(MAKEDEV_WAITOK); dev_lock(); - prep_cdevsw(csw); + prep_cdevsw(csw, MAKEDEV_WAITOK); low = extra; de = dl = NULL; cd = *cdp; Modified: stable/8/sys/sys/conf.h ============================================================================== --- stable/8/sys/sys/conf.h Thu May 20 09:35:31 2010 (r208343) +++ stable/8/sys/sys/conf.h Thu May 20 09:38:15 2010 (r208344) @@ -271,8 +271,10 @@ struct cdev *make_dev(struct cdevsw *_de struct cdev *make_dev_cred(struct cdevsw *_devsw, int _unit, struct ucred *_cr, uid_t _uid, gid_t _gid, int _perms, const char *_fmt, ...) __printflike(7, 8); -#define MAKEDEV_REF 0x1 -#define MAKEDEV_WHTOUT 0x2 +#define MAKEDEV_REF 0x1 +#define MAKEDEV_WHTOUT 0x2 +#define MAKEDEV_NOWAIT 0x4 +#define MAKEDEV_WAITOK 0x8 struct cdev *make_dev_credf(int _flags, struct cdevsw *_devsw, int _unit, struct ucred *_cr, uid_t _uid, gid_t _gid, int _mode, From owner-svn-src-all@FreeBSD.ORG Thu May 20 09:39:01 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B62BC1065677; Thu, 20 May 2010 09:39:01 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A5C388FC08; Thu, 20 May 2010 09:39:01 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4K9d1bF055503; Thu, 20 May 2010 09:39:01 GMT (envelope-from mm@svn.freebsd.org) Received: (from mm@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4K9d1n4055500; Thu, 20 May 2010 09:39:01 GMT (envelope-from mm@svn.freebsd.org) Message-Id: <201005200939.o4K9d1n4055500@svn.freebsd.org> From: Martin Matuska Date: Thu, 20 May 2010 09:39:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208345 - in stable/8: . rescue/rescue X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 09:39:01 -0000 Author: mm Date: Thu May 20 09:39:01 2010 New Revision: 208345 URL: http://svn.freebsd.org/changeset/base/208345 Log: Add xz to rescue. Approved by: delphij (mentor) Modified: stable/8/Makefile.inc1 stable/8/rescue/rescue/Makefile Modified: stable/8/Makefile.inc1 ============================================================================== --- stable/8/Makefile.inc1 Thu May 20 09:38:15 2010 (r208344) +++ stable/8/Makefile.inc1 Thu May 20 09:39:01 2010 (r208345) @@ -1094,7 +1094,7 @@ _prebuild_libs= ${_kerberos5_lib_libasn1 lib/libbz2 lib/libcom_err lib/libcrypt \ lib/libexpat \ ${_lib_libgssapi} ${_lib_libipx} \ - lib/libkiconv lib/libkvm lib/libmd \ + lib/libkiconv lib/libkvm lib/liblzma lib/libmd \ lib/ncurses/ncurses lib/ncurses/ncursesw \ lib/libopie lib/libpam ${_lib_libthr} \ lib/libradius lib/libsbuf lib/libtacplus \ Modified: stable/8/rescue/rescue/Makefile ============================================================================== --- stable/8/rescue/rescue/Makefile Thu May 20 09:38:15 2010 (r208344) +++ stable/8/rescue/rescue/Makefile Thu May 20 09:39:01 2010 (r208345) @@ -208,6 +208,10 @@ CRUNCH_PROGS_usr.bin+= bzip2 CRUNCH_ALIAS_bzip2= bunzip2 bzcat CRUNCH_LIBS+= -lbz2 +CRUNCH_PROGS_usr.bin+= xz +CRUNCH_ALIAS_xz= unxz lzma unlzma xzcat lzcat +CRUNCH_LIBS+= -llzma + CRUNCH_PROGS_usr.bin+= tar CRUNCH_LIBS+= -larchive -lmd .if ${MK_OPENSSL} != "no" From owner-svn-src-all@FreeBSD.ORG Thu May 20 09:41:13 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E10831065674; Thu, 20 May 2010 09:41:13 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D07A98FC0A; Thu, 20 May 2010 09:41:13 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4K9fD5Y056041; Thu, 20 May 2010 09:41:13 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4K9fDlc056039; Thu, 20 May 2010 09:41:13 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201005200941.o4K9fDlc056039@svn.freebsd.org> From: Konstantin Belousov Date: Thu, 20 May 2010 09:41:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208346 - stable/8/share/man/man9 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 09:41:14 -0000 Author: kib Date: Thu May 20 09:41:13 2010 New Revision: 208346 URL: http://svn.freebsd.org/changeset/base/208346 Log: MFC r207730: Document MAKEDEV_NOWAIT flag for make_dev_credf(9). Modified: stable/8/share/man/man9/make_dev.9 Directory Properties: stable/8/share/man/man9/ (props changed) Modified: stable/8/share/man/man9/make_dev.9 ============================================================================== --- stable/8/share/man/man9/make_dev.9 Thu May 20 09:39:01 2010 (r208345) +++ stable/8/share/man/man9/make_dev.9 Thu May 20 09:41:13 2010 (r208346) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 28, 2008 +.Dd May 6, 2010 .Os .Dt MAKE_DEV 9 .Sh NAME @@ -133,9 +133,18 @@ The following values are currently accep .Pp .Bd -literal -offset indent -compact MAKEDEV_REF reference the created device +MAKEDEV_NOWAIT do not sleep, may return NULL +MAKEDEV_WAITOK allow the function to sleep to satisfy malloc .Ed .Pp The +.Dv MAKEDEV_WAITOK +flag is assumed if none of +.Dv MAKEDEV_WAITOK , +.Dv MAKEDEV_NOWAIT +is specified. +.Pp +The .Xr dev_clone 9 event handler shall specify .Dv MAKEDEV_REF From owner-svn-src-all@FreeBSD.ORG Thu May 20 10:51:22 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D3E54106564A; Thu, 20 May 2010 10:51:22 +0000 (UTC) (envelope-from osa@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C27908FC0A; Thu, 20 May 2010 10:51:22 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4KApMfI073008; Thu, 20 May 2010 10:51:22 GMT (envelope-from osa@svn.freebsd.org) Received: (from osa@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4KApMkP073007; Thu, 20 May 2010 10:51:22 GMT (envelope-from osa@svn.freebsd.org) Message-Id: <201005201051.o4KApMkP073007@svn.freebsd.org> From: "Sergey A. Osokin" Date: Thu, 20 May 2010 10:51:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208347 - head/usr.bin/calendar/calendars/ru_RU.KOI8-R X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 10:51:23 -0000 Author: osa (ports committer) Date: Thu May 20 10:51:22 2010 New Revision: 208347 URL: http://svn.freebsd.org/changeset/base/208347 Log: Add new memory days for Russian Federation. Fix date and description. Obtained from: http://pda.lenta.ru/news/2010/05/19/baptism/ http://www.garant.ru/doc/busref/spr_prazdn/ Thanks to: maxim Modified: head/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.common (contents, props changed) Modified: head/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.common ============================================================================== --- head/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.common Thu May 20 09:41:13 2010 (r208346) +++ head/usr.bin/calendar/calendars/ru_RU.KOI8-R/calendar.common Thu May 20 10:51:22 2010 (r208347) @@ -18,6 +18,7 @@ LANG=ru_RU.KOI8-R 10 ÆÅ× äÅÎØ ÄÉÐÌÏÍÁÔÉÞÅÓËÏÇÏ ÒÁÂÏÔÎÉËÁ 1 ÍÁÒ ÷ÓÅÍÉÒÎÙÊ ÄÅÎØ ÇÒÁÖÄÁÎÓËÏÊ ÏÂÏÒÏÎÙ 03/SunSecond äÅÎØ ÒÁÂÏÔÎÉËÏ× ÇÅÏÄÅÚÉÉ É ËÁÒÔÏÇÒÁÆÉÉ +11 ÍÁÒ äÅÎØ ÒÁÂÏÔÎÉËÁ ÏÒÇÁÎÏ× ÎÁÒËÏËÏÎÔÒÏÌÑ 18 ÍÁÒ äÅÎØ ÎÁÌÏÇÏ×ÏÊ ÐÏÌÉÃÉÉ 03/SunThird äÅÎØ ÒÁÂÏÔÎÉËÏ× ÔÏÒÇÏ×ÌÉ, ÂÙÔÏ×ÏÇÏ ÏÂÓÌÕÖÉ×ÁÎÉÑ ÎÁÓÅÌÅÎÉÑ É ÖÉÌÉÝÎÏ-ËÏÍÍÕÎÁÌØÎÏÇÏ ÈÏÚÑÊÓÔ×Á 27 ÍÁÒ íÅÖÄÕÎÁÒÏÄÎÙÊ ÄÅÎØ ÔÅÁÔÒÁ @@ -33,22 +34,28 @@ LANG=ru_RU.KOI8-R 17 ÍÁÊ íÅÖÄÕÎÁÒÏÄÎÙÊ ÄÅÎØ ÔÅÌÅËÏÍÍÕÎÉËÁÃÉÊ 18 ÍÁÊ íÅÖÄÕÎÁÒÏÄÎÙÊ ÄÅÎØ ÍÕÚÅÅ× 24 ÍÁÊ äÅÎØ ÓÌÁ×ÑÎÓËÏÊ ÐÉÓØÍÅÎÎÏÓÔÉ É ËÕÌØÔÕÒÙ +26 ÍÁÊ äÅÎØ ÒÏÓÓÉÊÓËÏÇÏ ÐÒÅÄÐÒÉÎÉÍÁÔÅÌØÓÔ×Á 27 ÍÁÊ ïÂÝÅÒÏÓÓÉÊÓËÉÊ ÄÅÎØ ÂÉÂÌÉÏÔÅË 28 ÍÁÊ äÅÎØ ÐÏÇÒÁÎÉÞÎÉËÁ +30 ÍÁÊ äÅÎØ ÐÏÖÁÒÎÏÊ ÏÈÒÁÎÙ +31 ÍÁÊ äÅÎØ òÏÓÓÉÊÓËÏÊ áÄ×ÏËÁÔÕÒÙ 05/SunLast äÅÎØ ÈÉÍÉËÁ 1 ÉÀÎ äÅÎØ ÚÁÝÉÔÙ ÄÅÔÅÊ + 5 ÉÀÎ äÅÎØ ÜËÏÌÏÇÁ 6 ÉÀÎ ðÕÛËÉÎÓËÉÊ ÄÅÎØ 8 ÉÀÎ äÅÎØ ÓÏÃÉÁÌØÎÏÇÏ ÒÁÂÏÔÎÉËÁ 06/SunSecond äÅÎØ ÒÁÂÏÔÎÉËÏ× ÌÅÇËÏÊ ÐÒÏÍÙÛÌÅÎÎÏÓÔÉ 06/SunThird äÅÎØ ÍÅÄÉÃÉÎÓËÏÇÏ ÒÁÂÏÔÎÉËÁ 22 ÉÀÎ äÅÎØ ÐÁÍÑÔÉ É ÓËÏÒÂÉ (îÁÞÁÌÏ ÷ÅÌÉËÏÊ ïÔÅÞÅÓÔ×ÅÎÎÏÊ ÷ÏÊÎÙ, 1941 ÇÏÄ) 27 ÉÀÎ äÅÎØ ÍÏÌÏÄÅÖÉ +29 ÉÀÎ äÅÎØ ÐÁÒÔÉÚÁÎ É ÐÏÄÐÏÌØÝÉËÏ× 06/SatLast äÅÎØ ÉÚÏÂÒÅÔÁÔÅÌÑ É ÒÁÃÉÏÎÁÌÉÚÁÔÏÒÁ 07/SunFirst äÅÎØ ÒÁÂÏÔÎÉËÏ× ÍÏÒÓËÏÇÏ É ÒÅÞÎÏÇÏ ÆÌÏÔÁ 07/SunSecond äÅÎØ ÒÙÂÁËÁ 07/SunSecond äÅÎØ ÒÏÓÓÉÊÓËÏÊ ÐÏÞÔÙ 07/SunThird äÅÎØ ÍÅÔÁÌÌÕÒÇÁ 07/SunLast äÅÎØ ÷ÏÅÎÎÏ-íÏÒÓËÏÇÏ æÌÏÔÁ +28 ÉÀÌ äÅÎØ ËÒÅÝÅÎÉÑ òÕÓÉ 6 Á×Ç äÅÎØ ÖÅÌÅÚÎÏÄÏÒÏÖÎÙÈ ×ÏÊÓË 08/SunFirst äÅÎØ ÖÅÌÅÚÎÏÄÏÒÏÖÎÉËÁ 12 Á×Ç äÅÎØ ×ÏÅÎÎÏ-×ÏÚÄÕÛÎÙÈ ÓÉÌ @@ -59,12 +66,16 @@ LANG=ru_RU.KOI8-R 08/SunLast äÅÎØ ÛÁÈÔÅÒÁ 1 ÓÅÎ äÅÎØ ÚÎÁÎÉÊ 2 ÓÅÎ äÅÎØ ÒÏÓÓÉÊÓËÏÊ Ç×ÁÒÄÉÉ + 3 ÓÅÎ äÅÎØ ÓÏÌÉÄÁÒÎÏÓÔÉ × ÂÏÒØÂÅ Ó ÔÅÒÒÏÒÉÚÍÏÍ + 4 ÓÅÎ äÅÎØ ÓÐÅÃÉÁÌÉÓÔÁ ÐÏ ÑÄÅÒÎÏÍÕ ÏÂÅÓÐÅÞÅÎÉÀ 09/SunFirst äÅÎØ ÒÁÂÏÔÎÉËÏ× ÎÅÆÔÑÎÏÊ É ÇÁÚÏ×ÏÊ ÐÒÏÍÙÛÌÅÎÎÏÓÔÉ 09/SunSecond äÅÎØ ÔÁÎËÉÓÔÁ 09/SunThird äÅÎØ ÒÁÂÏÔÎÉËÏ× ÌÅÓÁ +28 ÓÅÎ äÅÎØ ÒÁÂÏÔÎÉËÁ ÁÔÏÍÎÏÊ ÐÒÏÍÙÛÌÅÎÎÏÓÔÉ 09/SunLast äÅÎØ ÍÁÛÉÎÏÓÔÒÏÉÔÅÌÑ 1 ÏËÔ äÅÎØ ÐÏÖÉÌÙÈ ÌÀÄÅÊ - 4 ÏËÔ äÅÎØ ×ÏÅÎÎÏ-ËÏÓÍÉÞÅÓËÉÈ ÓÉÌ + 1 ÏËÔ äÅÎØ ÓÕÈÏÐÕÔÎÙÈ ×ÏÊÓË + 4 ÏËÔ äÅÎØ ËÏÓÍÉÞÅÓËÉÈ ×ÏÊÓË 5 ÏËÔ äÅÎØ ÕÞÉÔÅÌÑ 14 ÏËÔ íÅÖÄÕÎÁÒÏÄÎÙÊ ÄÅÎØ ÓÔÁÎÄÁÒÔÉÚÁÃÉÉ 10/SunSecond äÅÎØ ÒÁÂÏÔÎÉËÏ× ÓÅÌØÓËÏÇÏ ÈÏÚÑÊÓÔ×Á É ÐÅÒÅÒÁÂÁÔÙ×ÁÀÝÅÊ ÐÒÏÍÙÛÌÅÎÎÏÓÔÉ @@ -73,15 +84,19 @@ LANG=ru_RU.KOI8-R 25 ÏËÔ äÅÎØ ÔÁÍÏÖÅÎÎÉËÁ 30 ÏËÔ äÅÎØ ÐÁÍÑÔÉ ÖÅÒÔ× ÐÏÌÉÔÉÞÅÓËÉÈ ÒÅÐÒÅÓÓÉÊ 10/SunLast äÅÎØ ÒÁÂÏÔÎÉËÏ× Á×ÔÏÍÏÂÉÌØÎÏÇÏ ÔÒÁÎÓÐÏÒÔÁ + 7 ÎÏÑ äÅÎØ ÏËÔÑÂÒØÓËÏÊ ÒÅ×ÏÌÀÃÉÉ 1917 ÇÏÄÁ 9 ÎÏÑ ÷ÓÅÍÉÒÎÙÊ ÄÅÎØ ËÁÞÅÓÔ×Á 10 ÎÏÑ äÅÎØ ÍÉÌÉÃÉÉ 16 ÎÏÑ äÅÎØ ÍÏÒÓËÏÊ ÐÅÈÏÔÙ 17 ÎÏÑ íÅÖÄÕÎÁÒÏÄÎÙÊ ÄÅÎØ ÓÔÕÄÅÎÔÏ× -11/SunThird äÅÎØ ÒÁËÅÔÎÙÈ ×ÏÊÓË É ÁÒÔÉÌÌÅÒÉÉ +19 ÎÏÑ äÅÎØ ÒÁËÅÔÎÙÈ ×ÏÊÓË É ÁÒÔÉÌÌÅÒÉÉ 21 ÎÏÑ äÅÎØ ÒÁÂÏÔÎÉËÏ× ÎÁÌÏÇÏ×ÙÈ ÏÒÇÁÎÏ× 26 ÎÏÑ ÷ÓÅÍÉÒÎÙÊ ÄÅÎØ ÉÎÆÏÒÍÁÃÉÉ 11/SunLast äÅÎØ ÍÁÔÅÒÉ 1 ÄÅË ÷ÓÅÍÉÒÎÙÊ ÄÅÎØ ÂÏÒØÂÙ ÓÏ óðéäÏÍ + 3 ÄÅË äÅÎØ ÀÒÉÓÔÁ + 9 ÄÅË äÅÎØ çÅÒÏÅ× ïÔÅÞÅÓÔ×Á +12 ÄÅË äÅÎØ ëÏÎÓÔÉÔÕÃÉÉ 17 ÄÅË äÅÎØ ÒÁËÅÔÎÙÈ ×ÏÊÓË ÓÔÒÁÔÅÇÉÞÅÓËÏÇÏ ÎÁÚÎÁÞÅÎÉÑ 20 ÄÅË äÅÎØ ÒÁÂÏÔÎÉËÁ ÏÒÇÁÎÏ× ÂÅÚÏÐÁÓÎÏÓÔÉ 22 ÄÅË äÅÎØ ÜÎÅÒÇÅÔÉËÁ From owner-svn-src-all@FreeBSD.ORG Thu May 20 12:44:06 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C6D191065672; Thu, 20 May 2010 12:44:06 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B3A828FC17; Thu, 20 May 2010 12:44:06 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4KCi62Y097694; Thu, 20 May 2010 12:44:06 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4KCi6SF097693; Thu, 20 May 2010 12:44:06 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201005201244.o4KCi6SF097693@svn.freebsd.org> From: Marius Strobl Date: Thu, 20 May 2010 12:44:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208348 - in head/sys/cam: ata scsi X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 12:44:06 -0000 Author: marius Date: Thu May 20 12:44:06 2010 New Revision: 208348 URL: http://svn.freebsd.org/changeset/base/208348 Log: Remove unnecessary headers which were inherited from cam_xpt.c without reason. Reviewed by: mav MFC after: 3 days Modified: head/sys/cam/ata/ata_xpt.c head/sys/cam/scsi/scsi_xpt.c Modified: head/sys/cam/ata/ata_xpt.c ============================================================================== --- head/sys/cam/ata/ata_xpt.c Thu May 20 10:51:22 2010 (r208347) +++ head/sys/cam/ata/ata_xpt.c Thu May 20 12:44:06 2010 (r208348) @@ -44,10 +44,6 @@ __FBSDID("$FreeBSD$"); #include #include -#ifdef PC98 -#include /* geometry translation */ -#endif - #include #include #include Modified: head/sys/cam/scsi/scsi_xpt.c ============================================================================== --- head/sys/cam/scsi/scsi_xpt.c Thu May 20 10:51:22 2010 (r208347) +++ head/sys/cam/scsi/scsi_xpt.c Thu May 20 12:44:06 2010 (r208348) @@ -47,10 +47,6 @@ __FBSDID("$FreeBSD$"); #include #include -#ifdef PC98 -#include /* geometry translation */ -#endif - #include #include #include From owner-svn-src-all@FreeBSD.ORG Thu May 20 12:46:19 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A3A83106564A; Thu, 20 May 2010 12:46:19 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9028A8FC21; Thu, 20 May 2010 12:46:19 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4KCkJGb098235; Thu, 20 May 2010 12:46:19 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4KCkJe8098227; Thu, 20 May 2010 12:46:19 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201005201246.o4KCkJe8098227@svn.freebsd.org> From: Marius Strobl Date: Thu, 20 May 2010 12:46:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208349 - in head/sys: cam/ata conf dev/ata pc98/include pc98/pc98 sparc64/include sparc64/sparc64 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 12:46:19 -0000 Author: marius Date: Thu May 20 12:46:19 2010 New Revision: 208349 URL: http://svn.freebsd.org/changeset/base/208349 Log: Change ad_firmware_geom_adjust() to operate on a struct disk * only and hook it up to ada(4) also. While at it, rename *ad_firmware_geom_adjust() to *ata_disk_firmware_geom_adjust() etc now that these are no longer limited to ad(4). Reviewed by: mav MFC after: 3 days Modified: head/sys/cam/ata/ata_da.c head/sys/conf/files.sparc64 head/sys/dev/ata/ata-disk.c head/sys/pc98/include/md_var.h head/sys/pc98/pc98/pc98_machdep.c head/sys/sparc64/include/md_var.h head/sys/sparc64/sparc64/ata_machdep.c Modified: head/sys/cam/ata/ata_da.c ============================================================================== --- head/sys/cam/ata/ata_da.c Thu May 20 12:44:06 2010 (r208348) +++ head/sys/cam/ata/ata_da.c Thu May 20 12:46:19 2010 (r208349) @@ -58,6 +58,8 @@ __FBSDID("$FreeBSD$"); #include +#include /* geometry translation */ + #ifdef _KERNEL #define ATA_MAX_28BIT_LBA 268435455UL @@ -178,6 +180,13 @@ static void adashutdown(void *arg, int #define ADA_DEFAULT_SEND_ORDERED 1 #endif +/* + * Most platforms map firmware geometry to actual, but some don't. If + * not overridden, default to nothing. + */ +#ifndef ata_disk_firmware_geom_adjust +#define ata_disk_firmware_geom_adjust(disk) +#endif static int ada_retry_count = ADA_DEFAULT_RETRY; static int ada_default_timeout = ADA_DEFAULT_TIMEOUT; @@ -737,9 +746,9 @@ adaregister(struct cam_periph *periph, v ata_logical_sector_offset(&cgd->ident_data)) % softc->disk->d_stripesize; } - /* XXX: these are not actually "firmware" values, so they may be wrong */ softc->disk->d_fwsectors = softc->params.secs_per_track; softc->disk->d_fwheads = softc->params.heads; + ata_disk_firmware_geom_adjust(softc->disk); disk_create(softc->disk, DISK_VERSION); mtx_lock(periph->sim->mtx); Modified: head/sys/conf/files.sparc64 ============================================================================== --- head/sys/conf/files.sparc64 Thu May 20 12:44:06 2010 (r208348) +++ head/sys/conf/files.sparc64 Thu May 20 12:46:19 2010 (r208349) @@ -84,7 +84,7 @@ sparc64/pci/schizo.c optional pci sparc64/sbus/dma_sbus.c optional sbus sparc64/sbus/sbus.c optional sbus sparc64/sbus/lsi64854.c optional sbus -sparc64/sparc64/ata_machdep.c optional atadisk +sparc64/sparc64/ata_machdep.c optional ada | atadisk | da sparc64/sparc64/autoconf.c standard sparc64/sparc64/bus_machdep.c standard sparc64/sparc64/cache.c standard Modified: head/sys/dev/ata/ata-disk.c ============================================================================== --- head/sys/dev/ata/ata-disk.c Thu May 20 12:44:06 2010 (r208348) +++ head/sys/dev/ata/ata-disk.c Thu May 20 12:46:19 2010 (r208349) @@ -67,8 +67,8 @@ static dumper_t ad_dump; * Most platforms map firmware geom to actual, but some don't. If * not overridden, default to nothing. */ -#ifndef ad_firmware_geom_adjust -#define ad_firmware_geom_adjust(dev, disk) +#ifndef ata_disk_firmware_geom_adjust +#define ata_disk_firmware_geom_adjust(disk) #endif /* local vars */ @@ -142,9 +142,9 @@ ad_attach(device_t dev) adp->disk->d_flags |= DISKFLAG_CANDELETE; strlcpy(adp->disk->d_ident, atadev->param.serial, sizeof(adp->disk->d_ident)); + ata_disk_firmware_geom_adjust(adp->disk); disk_create(adp->disk, DISK_VERSION); device_add_child(dev, "subdisk", device_get_unit(dev)); - ad_firmware_geom_adjust(dev, adp->disk); bus_generic_attach(dev); callout_init(&atadev->spindown_timer, 1); Modified: head/sys/pc98/include/md_var.h ============================================================================== --- head/sys/pc98/include/md_var.h Thu May 20 12:44:06 2010 (r208348) +++ head/sys/pc98/include/md_var.h Thu May 20 12:46:19 2010 (r208349) @@ -41,13 +41,11 @@ extern int need_post_dma_flush; /* * The ad driver maps the IDE disk's actual geometry to the firmware's * notion of geometry. However, PC98 machines need to do something - * different sometimes, so override the hook so we can do so. We have to - * have a knowledge that a device_t is a struct device * here to avoid - * including too many things from this file. + * different sometimes, so override the hook so we can do so. */ struct disk; -struct device; -void pc98_ad_firmware_geom_adjust(struct device *, struct disk *); -#define ad_firmware_geom_adjust(dev, dsk) pc98_ad_firmware_geom_adjust(dev, dsk) +void pc98_ata_disk_firmware_geom_adjust(struct disk *); +#define ata_disk_firmware_geom_adjust(disk) \ + pc98_ata_disk_firmware_geom_adjust(disk) #endif /* !_PC98_INCLUDE_MD_VAR_H_ */ Modified: head/sys/pc98/pc98/pc98_machdep.c ============================================================================== --- head/sys/pc98/pc98/pc98_machdep.c Thu May 20 12:44:06 2010 (r208348) +++ head/sys/pc98/pc98/pc98_machdep.c Thu May 20 12:46:19 2010 (r208349) @@ -211,7 +211,7 @@ scsi_da_bios_params(struct ccb_calc_geom /* IDE BIOS compatible mode. */ static void -pc98_ad_geom_adjust_idebios(struct disk *disk) +pc98_ata_disk_geom_adjust_idebios(struct disk *disk) { if (disk->d_mediasize < MEDIASIZE_4_3G) { @@ -236,7 +236,7 @@ pc98_ad_geom_adjust_idebios(struct disk /* SCSI BIOS compatible mode. */ static void -pc98_ad_geom_adjust_scsibios(struct disk *disk) +pc98_ata_disk_geom_adjust_scsibios(struct disk *disk) { if (disk->d_mediasize < MEDIASIZE_8G) { @@ -261,13 +261,13 @@ pc98_ad_geom_adjust_scsibios(struct disk /* Compatible with the revision 1.28. */ static void -pc98_ad_geom_adjust_cyl16bit(struct disk *disk) +pc98_ata_disk_geom_adjust_cyl16bit(struct disk *disk) { off_t totsec = disk->d_mediasize / disk->d_sectorsize; off_t cyl = totsec / disk->d_fwsectors / disk->d_fwheads; - + /* - * It is impossible to have more than 65535 cylendars, so if + * It is impossible to have more than 65535 cylinders, so if * we have more then try to adjust. This is lame, but it is * only POC. */ @@ -289,7 +289,7 @@ pc98_ad_geom_adjust_cyl16bit(struct disk } void -pc98_ad_firmware_geom_adjust(device_t dev, struct disk *disk) +pc98_ata_disk_firmware_geom_adjust(struct disk *disk) { u_int oldsectors, oldheads; @@ -298,13 +298,13 @@ pc98_ad_firmware_geom_adjust(device_t de switch (ad_geom_method) { case AD_GEOM_ADJUST_COMPATIDE: - pc98_ad_geom_adjust_idebios(disk); + pc98_ata_disk_geom_adjust_idebios(disk); break; case AD_GEOM_ADJUST_COMPATSCSI: - pc98_ad_geom_adjust_scsibios(disk); + pc98_ata_disk_geom_adjust_scsibios(disk); break; case AD_GEOM_ADJUST_COMPATCYL16: - pc98_ad_geom_adjust_cyl16bit(disk); + pc98_ata_disk_geom_adjust_cyl16bit(disk); break; default: /* Do nothing. */ @@ -313,9 +313,9 @@ pc98_ad_firmware_geom_adjust(device_t de if (bootverbose && (oldsectors != disk->d_fwsectors || oldheads != disk->d_fwheads)) - device_printf(dev, - "geometry adjusted from [%dH/%dS] to [%dH/%dS]\n", + printf( + "%s%d: geometry adjusted from [%dH/%dS] to [%dH/%dS]\n", + disk->d_name, disk->d_unit, oldheads, oldsectors, disk->d_fwheads, disk->d_fwsectors); - } Modified: head/sys/sparc64/include/md_var.h ============================================================================== --- head/sys/sparc64/include/md_var.h Thu May 20 12:44:06 2010 (r208348) +++ head/sys/sparc64/include/md_var.h Thu May 20 12:46:19 2010 (r208349) @@ -66,13 +66,10 @@ extern cpu_block_zero_t *cpu_block_zero; * Given that the Sun disk label only uses 16-bit fields for cylinders, * heads and sectors we might need to adjust the geometry of large IDE * disks. - * We have to have a knowledge that a device_t is a struct device * here - * to avoid including too many things from this file. */ struct disk; -struct device; -void sparc64_ad_firmware_geom_adjust(struct device *dev, struct disk *disk); -#define ad_firmware_geom_adjust(dev, dsk) \ - sparc64_ad_firmware_geom_adjust(dev, dsk) +void sparc64_ata_disk_firmware_geom_adjust(struct disk *disk); +#define ata_disk_firmware_geom_adjust(disk) \ + sparc64_ata_disk_firmware_geom_adjust(disk) #endif /* !_MACHINE_MD_VAR_H_ */ Modified: head/sys/sparc64/sparc64/ata_machdep.c ============================================================================== --- head/sys/sparc64/sparc64/ata_machdep.c Thu May 20 12:44:06 2010 (r208348) +++ head/sys/sparc64/sparc64/ata_machdep.c Thu May 20 12:46:19 2010 (r208349) @@ -32,7 +32,7 @@ __FBSDID("$FreeBSD$"); #include void -sparc64_ad_firmware_geom_adjust(device_t dev, struct disk *disk) +sparc64_ata_disk_firmware_geom_adjust(struct disk *disk) { /* From owner-svn-src-all@FreeBSD.ORG Thu May 20 13:16:42 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 98AA7106564A; Thu, 20 May 2010 13:16:42 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 873BA8FC19; Thu, 20 May 2010 13:16:42 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4KDGgdO005097; Thu, 20 May 2010 13:16:42 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4KDGgGs005095; Thu, 20 May 2010 13:16:42 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201005201316.o4KDGgGs005095@svn.freebsd.org> From: John Baldwin Date: Thu, 20 May 2010 13:16:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208350 - head/sys/dev/puc X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 13:16:42 -0000 Author: jhb Date: Thu May 20 13:16:42 2010 New Revision: 208350 URL: http://svn.freebsd.org/changeset/base/208350 Log: Add support for the Perle Speed4 LE. Submitted by: Douglas K. Rand rand of meridian-enviro com MFC after: 3 days Modified: head/sys/dev/puc/pucdata.c Modified: head/sys/dev/puc/pucdata.c ============================================================================== --- head/sys/dev/puc/pucdata.c Thu May 20 12:46:19 2010 (r208349) +++ head/sys/dev/puc/pucdata.c Thu May 20 13:16:42 2010 (r208350) @@ -661,6 +661,18 @@ const struct puc_cfg puc_pci_devices[] = PUC_PORT_8S, 0x18, 0, 8, }, + /* + * Perle boards use Oxford Semiconductor chips, but they store the + * Oxford Semiconductor device ID as a subvendor device ID and use + * their own device IDs. + */ + + { 0x155f, 0x0331, 0xffff, 0, + "Perle Speed4 LE", + DEFAULT_RCLK * 8, + PUC_PORT_4S, 0x10, 0, 8, + }, + { 0x14d2, 0x8010, 0xffff, 0, "VScom PCI-100L", DEFAULT_RCLK * 8, From owner-svn-src-all@FreeBSD.ORG Thu May 20 16:21:19 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C5BEF1065675; Thu, 20 May 2010 16:21:19 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9B4898FC08; Thu, 20 May 2010 16:21:19 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4KGLJIn045609; Thu, 20 May 2010 16:21:19 GMT (envelope-from alc@svn.freebsd.org) Received: (from alc@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4KGLJ71045607; Thu, 20 May 2010 16:21:19 GMT (envelope-from alc@svn.freebsd.org) Message-Id: <201005201621.o4KGLJ71045607@svn.freebsd.org> From: Alan Cox Date: Thu, 20 May 2010 16:21:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208352 - stable/8/sys/vm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 16:21:19 -0000 Author: alc Date: Thu May 20 16:21:19 2010 New Revision: 208352 URL: http://svn.freebsd.org/changeset/base/208352 Log: MFC r207306 Change vm_object_madvise() so that it checks whether the page is invalid or unmanaged before acquiring the page queues lock. Neither of these tests require that lock. Moreover, a better way of testing if the page is unmanaged is to test the type of vm object. This avoids a pointless vm_page_lookup(). Modified: stable/8/sys/vm/vm_object.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/vm/vm_object.c ============================================================================== --- stable/8/sys/vm/vm_object.c Thu May 20 15:45:04 2010 (r208351) +++ stable/8/sys/vm/vm_object.c Thu May 20 16:21:19 2010 (r208352) @@ -1162,7 +1162,8 @@ shadowlookup: (tobject->flags & OBJ_ONEMAPPING) == 0) { goto unlock_tobject; } - } + } else if (tobject->type == OBJT_PHYS) + goto unlock_tobject; m = vm_page_lookup(tobject, tpindex); if (m == NULL && advise == MADV_WILLNEED) { /* @@ -1189,18 +1190,13 @@ shadowlookup: VM_OBJECT_UNLOCK(tobject); tobject = backing_object; goto shadowlookup; - } + } else if (m->valid != VM_PAGE_BITS_ALL) + goto unlock_tobject; /* - * If the page is busy or not in a normal active state, - * we skip it. If the page is not managed there are no - * page queues to mess with. Things can break if we mess - * with pages in any of the below states. + * If the page is not in a normal state, skip it. */ vm_page_lock_queues(); - if (m->hold_count || - m->wire_count || - (m->flags & PG_UNMANAGED) || - m->valid != VM_PAGE_BITS_ALL) { + if (m->hold_count != 0 || m->wire_count != 0) { vm_page_unlock_queues(); goto unlock_tobject; } From owner-svn-src-all@FreeBSD.ORG Thu May 20 16:24:12 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DD215106566B; Thu, 20 May 2010 16:24:12 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CCB638FC16; Thu, 20 May 2010 16:24:12 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4KGOCY3046280; Thu, 20 May 2010 16:24:12 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4KGOCgf046278; Thu, 20 May 2010 16:24:12 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <201005201624.o4KGOCgf046278@svn.freebsd.org> From: Jung-uk Kim Date: Thu, 20 May 2010 16:24:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208353 - head X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 16:24:13 -0000 Author: jkim Date: Thu May 20 16:24:12 2010 New Revision: 208353 URL: http://svn.freebsd.org/changeset/base/208353 Log: We do not have to build makewhatis as a bootstrap tool when it is disabled by WITHOUT_MAN_UTILS. Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Thu May 20 16:21:19 2010 (r208352) +++ head/Makefile.inc1 Thu May 20 16:24:12 2010 (r208353) @@ -961,6 +961,10 @@ _dtrace_tools= cddl/usr.bin/sgsmsg cddl/ lib/libdwarf cddl/usr.bin/ctfconvert cddl/usr.bin/ctfmerge .endif +.if ${MK_MAN_UTILS} != "no" +_makewhatis= usr.bin/makewhatis +.endif + bootstrap-tools: .for _tool in \ ${_dtrace_tools} \ @@ -969,7 +973,7 @@ bootstrap-tools: ${_groff} \ ${_ar} \ usr.bin/lorder \ - usr.bin/makewhatis \ + ${_makewhatis} \ ${_mklocale} \ usr.bin/rpcgen \ ${_sed} \ From owner-svn-src-all@FreeBSD.ORG Thu May 20 16:55:33 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A4F46106566C; Thu, 20 May 2010 16:55:33 +0000 (UTC) (envelope-from rrs@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7B36A8FC24; Thu, 20 May 2010 16:55:33 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4KGtXRS053195; Thu, 20 May 2010 16:55:33 GMT (envelope-from rrs@svn.freebsd.org) Received: (from rrs@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4KGtXme053194; Thu, 20 May 2010 16:55:33 GMT (envelope-from rrs@svn.freebsd.org) Message-Id: <201005201655.o4KGtXme053194@svn.freebsd.org> From: Randall Stewart Date: Thu, 20 May 2010 16:55:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-svnadmin@freebsd.org X-SVN-Group: svnadmin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208354 - svnadmin/conf X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 16:55:33 -0000 Author: rrs Date: Thu May 20 16:55:32 2010 New Revision: 208354 URL: http://svn.freebsd.org/changeset/base/208354 Log: Missed this somehow when I committed the mentor file :-( - JC (C. Jaychandran) - Will be working on mips (RMI/netlogic) Approved by: core Modified: svnadmin/conf/access Modified: svnadmin/conf/access ============================================================================== --- svnadmin/conf/access Thu May 20 16:24:12 2010 (r208353) +++ svnadmin/conf/access Thu May 20 16:55:32 2010 (r208354) @@ -102,6 +102,7 @@ ivoras iwasaki jamie jasone +jchandra jeff jfv jh From owner-svn-src-all@FreeBSD.ORG Thu May 20 17:30:55 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6FEA21065676; Thu, 20 May 2010 17:30:55 +0000 (UTC) (envelope-from jchandra@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5F8FF8FC1B; Thu, 20 May 2010 17:30:55 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4KHUtEu061295; Thu, 20 May 2010 17:30:55 GMT (envelope-from jchandra@svn.freebsd.org) Received: (from jchandra@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4KHUtBG061293; Thu, 20 May 2010 17:30:55 GMT (envelope-from jchandra@svn.freebsd.org) Message-Id: <201005201730.o4KHUtBG061293@svn.freebsd.org> From: "Jayachandran C." Date: Thu, 20 May 2010 17:30:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208355 - head/share/misc X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 17:30:55 -0000 Author: jchandra Date: Thu May 20 17:30:55 2010 New Revision: 208355 URL: http://svn.freebsd.org/changeset/base/208355 Log: Add jchandra, with rrs as mentor Approved by: rrs (mentor) Modified: head/share/misc/committers-src.dot Modified: head/share/misc/committers-src.dot ============================================================================== --- head/share/misc/committers-src.dot Thu May 20 16:55:32 2010 (r208354) +++ head/share/misc/committers-src.dot Thu May 20 17:30:55 2010 (r208355) @@ -114,6 +114,7 @@ jayanth [label="Jayanth Vijayaraghavan\n jh [label="Jaakko Heinonen\njh@FreeBSD.org\n2009/10/02"] jilles [label="Jilles Tjoelker\njilles@FreeBSD.org\n2009/05/22"] jinmei [label="JINMEI Tatuya\njinmei@FreeBSD.org\n2007/03/17"] +jchandra [label="Jayachandran C.\njchandra@FreeBSD.org\n2010/05/19"] jdp [label="John Polstra\njdp@FreeBSD.org\n????/??/??"] jhb [label="John Baldwin\njhb@FreeBSD.org\n1999/08/23"] jkh [label="Jordan K. Hubbard\njkh@FreeBSD.org\n1993/06/12"] @@ -423,6 +424,7 @@ rpaulo -> avg rpaulo -> bschmidt rrs -> brucec +rrs -> jchandra rrs -> tuexen ru -> ceri From owner-svn-src-all@FreeBSD.ORG Thu May 20 18:22:45 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A0C46106566C; Thu, 20 May 2010 18:22:45 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 90BAC8FC14; Thu, 20 May 2010 18:22:45 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4KIMjA6073042; Thu, 20 May 2010 18:22:45 GMT (envelope-from np@svn.freebsd.org) Received: (from np@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4KIMj3W073040; Thu, 20 May 2010 18:22:45 GMT (envelope-from np@svn.freebsd.org) Message-Id: <201005201822.o4KIMj3W073040@svn.freebsd.org> From: Navdeep Parhar Date: Thu, 20 May 2010 18:22:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208356 - head/sys/dev/cxgb X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 18:22:45 -0000 Author: np Date: Thu May 20 18:22:45 2010 New Revision: 208356 URL: http://svn.freebsd.org/changeset/base/208356 Log: Remove invalid assertion. Holding the adapter lock while changing the LRO settings is sufficient. PR: kern/146759 MFC after: 3 days Modified: head/sys/dev/cxgb/cxgb_main.c Modified: head/sys/dev/cxgb/cxgb_main.c ============================================================================== --- head/sys/dev/cxgb/cxgb_main.c Thu May 20 17:30:55 2010 (r208355) +++ head/sys/dev/cxgb/cxgb_main.c Thu May 20 18:22:45 2010 (r208356) @@ -1979,7 +1979,6 @@ cxgb_set_lro(struct port_info *p, int en struct adapter *adp = p->adapter; struct sge_qset *q; - PORT_LOCK_ASSERT_OWNED(p); for (i = 0; i < p->nqsets; i++) { q = &adp->sge.qs[p->first_qset + i]; q->lro.enabled = (enabled != 0); From owner-svn-src-all@FreeBSD.ORG Thu May 20 18:39:33 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 61B5A1065674; Thu, 20 May 2010 18:39:33 +0000 (UTC) (envelope-from wxs@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 51ADF8FC0C; Thu, 20 May 2010 18:39:33 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4KIdXvB076725; Thu, 20 May 2010 18:39:33 GMT (envelope-from wxs@svn.freebsd.org) Received: (from wxs@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4KIdX8u076723; Thu, 20 May 2010 18:39:33 GMT (envelope-from wxs@svn.freebsd.org) Message-Id: <201005201839.o4KIdX8u076723@svn.freebsd.org> From: Wesley Shields Date: Thu, 20 May 2010 18:39:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208357 - head/share/man/man8 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 18:39:33 -0000 Author: wxs (ports committer) Date: Thu May 20 18:39:33 2010 New Revision: 208357 URL: http://svn.freebsd.org/changeset/base/208357 Log: Document NANO_ARCH which is no longer hard coded as of r205980. Approved by: imp@ Modified: head/share/man/man8/nanobsd.8 Modified: head/share/man/man8/nanobsd.8 ============================================================================== --- head/share/man/man8/nanobsd.8 Thu May 20 18:22:45 2010 (r208356) +++ head/share/man/man8/nanobsd.8 Thu May 20 18:39:33 2010 (r208357) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 16, 2009 +.Dd May 20, 2010 .Dt NANOBSD 8 .Os .Sh NAME @@ -203,6 +203,9 @@ Build name (used to construct the workin Path to the source tree used to build the image. .It Va NANO_KERNEL Name of the kernel configuration file used to build the kernel. +.It Va NANO_ARCH +Machine processor architecture to build. Defaults to output of +.Cm uname -p . .It Va NANO_BOOT0CFG Controls the options passed to .Xr boot0cfg 8 ; From owner-svn-src-all@FreeBSD.ORG Thu May 20 18:45:08 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 36D5E106572A; Thu, 20 May 2010 18:45:08 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0BB8A8FC23; Thu, 20 May 2010 18:45:08 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4KIj7Ze077995; Thu, 20 May 2010 18:45:07 GMT (envelope-from trasz@svn.freebsd.org) Received: (from trasz@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4KIj7kx077993; Thu, 20 May 2010 18:45:07 GMT (envelope-from trasz@svn.freebsd.org) Message-Id: <201005201845.o4KIj7kx077993@svn.freebsd.org> From: Edward Tomasz Napierala Date: Thu, 20 May 2010 18:45:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208358 - stable/8/lib/libc/posix1e X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 18:45:08 -0000 Author: trasz Date: Thu May 20 18:45:07 2010 New Revision: 208358 URL: http://svn.freebsd.org/changeset/base/208358 Log: MFC r208033: Make it possible to actually use NFSv4 permission bits with acl_set_perm(3) and acl_delete_perm(3). It went undetected, because neither setfacl(1) nor Samba use this routines. D'oh. Modified: stable/8/lib/libc/posix1e/acl_perm.c Directory Properties: stable/8/lib/libc/ (props changed) stable/8/lib/libc/stdtime/ (props changed) Modified: stable/8/lib/libc/posix1e/acl_perm.c ============================================================================== --- stable/8/lib/libc/posix1e/acl_perm.c Thu May 20 18:39:33 2010 (r208357) +++ stable/8/lib/libc/posix1e/acl_perm.c Thu May 20 18:45:07 2010 (r208358) @@ -35,6 +35,20 @@ __FBSDID("$FreeBSD$"); #include #include +static int +_perm_is_invalid(acl_perm_t perm) +{ + + /* Check if more than a single bit is set. */ + if ((perm & -perm) == perm && + (perm & (ACL_POSIX1E_BITS | ACL_NFS4_PERM_BITS)) == perm) + return (0); + + errno = EINVAL; + + return (1); +} + /* * acl_add_perm() (23.4.1): add the permission contained in perm to the * permission set permset_d @@ -43,18 +57,17 @@ int acl_add_perm(acl_permset_t permset_d, acl_perm_t perm) { - if (permset_d) { - switch(perm) { - case ACL_READ: - case ACL_WRITE: - case ACL_EXECUTE: - *permset_d |= perm; - return (0); - } + if (permset_d == NULL) { + errno = EINVAL; + return (-1); } - errno = EINVAL; - return (-1); + if (_perm_is_invalid(perm)) + return (-1); + + *permset_d |= perm; + + return (0); } /* @@ -83,16 +96,15 @@ int acl_delete_perm(acl_permset_t permset_d, acl_perm_t perm) { - if (permset_d) { - switch(perm) { - case ACL_READ: - case ACL_WRITE: - case ACL_EXECUTE: - *permset_d &= ~(perm & ACL_PERM_BITS); - return (0); - } + if (permset_d == NULL) { + errno = EINVAL; + return (-1); } - errno = EINVAL; - return (-1); + if (_perm_is_invalid(perm)) + return (-1); + + *permset_d &= ~perm; + + return (0); } From owner-svn-src-all@FreeBSD.ORG Thu May 20 18:46:11 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BA4951065673; Thu, 20 May 2010 18:46:11 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A95028FC2A; Thu, 20 May 2010 18:46:11 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4KIkBeO078275; Thu, 20 May 2010 18:46:11 GMT (envelope-from trasz@svn.freebsd.org) Received: (from trasz@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4KIkB0t078273; Thu, 20 May 2010 18:46:11 GMT (envelope-from trasz@svn.freebsd.org) Message-Id: <201005201846.o4KIkB0t078273@svn.freebsd.org> From: Edward Tomasz Napierala Date: Thu, 20 May 2010 18:46:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208359 - stable/8/lib/libc/posix1e X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 18:46:11 -0000 Author: trasz Date: Thu May 20 18:46:11 2010 New Revision: 208359 URL: http://svn.freebsd.org/changeset/base/208359 Log: MFC r208034: Make branding less intrusive - in acl_set(3), in case ACL brand is ACL_BRAND_UNKNOWN, do what the programmer says instead of failing. Modified: stable/8/lib/libc/posix1e/acl_branding.c Directory Properties: stable/8/lib/libc/ (props changed) stable/8/lib/libc/stdtime/ (props changed) Modified: stable/8/lib/libc/posix1e/acl_branding.c ============================================================================== --- stable/8/lib/libc/posix1e/acl_branding.c Thu May 20 18:45:07 2010 (r208358) +++ stable/8/lib/libc/posix1e/acl_branding.c Thu May 20 18:46:11 2010 (r208359) @@ -129,6 +129,9 @@ _acl_type_not_valid_for_acl(const acl_t if (type == ACL_TYPE_ACCESS || type == ACL_TYPE_DEFAULT) return (0); break; + + case ACL_BRAND_UNKNOWN: + return (0); } return (-1); From owner-svn-src-all@FreeBSD.ORG Thu May 20 18:47:34 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 88F361065670; Thu, 20 May 2010 18:47:34 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 783A08FC0C; Thu, 20 May 2010 18:47:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4KIlYZX078649; Thu, 20 May 2010 18:47:34 GMT (envelope-from trasz@svn.freebsd.org) Received: (from trasz@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4KIlYHe078647; Thu, 20 May 2010 18:47:34 GMT (envelope-from trasz@svn.freebsd.org) Message-Id: <201005201847.o4KIlYHe078647@svn.freebsd.org> From: Edward Tomasz Napierala Date: Thu, 20 May 2010 18:47:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208360 - stable/8/bin/setfacl X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 18:47:34 -0000 Author: trasz Date: Thu May 20 18:47:34 2010 New Revision: 208360 URL: http://svn.freebsd.org/changeset/base/208360 Log: MFC r208035: Update authors and history. Modified: stable/8/bin/setfacl/setfacl.1 Directory Properties: stable/8/bin/setfacl/ (props changed) Modified: stable/8/bin/setfacl/setfacl.1 ============================================================================== --- stable/8/bin/setfacl/setfacl.1 Thu May 20 18:46:11 2010 (r208359) +++ stable/8/bin/setfacl/setfacl.1 Thu May 20 18:47:34 2010 (r208360) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd September 5, 2009 +.Dd May 13, 2010 .Dt SETFACL 1 .Os .Sh NAME @@ -453,8 +453,13 @@ as part of the .Tn TrustedBSD Project and introduced in .Fx 5.0 . +NFSv4 ACL support was introduced in +.Fx 8.1 . .Sh AUTHORS +.An -nosplit The .Nm utility was written by .An Chris D. Faulhaber Aq jedgar@fxp.org . +NFSv4 ACL support was implemented by +.An Edward Tomasz Napierala Aq trasz@FreeBSD.org . From owner-svn-src-all@FreeBSD.ORG Thu May 20 19:45:11 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9835C1065673; Thu, 20 May 2010 19:45:11 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 839D38FC1B; Thu, 20 May 2010 19:45:11 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4KJjBaj091470; Thu, 20 May 2010 19:45:11 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4KJjBNm091467; Thu, 20 May 2010 19:45:11 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201005201945.o4KJjBNm091467@svn.freebsd.org> From: Xin LI Date: Thu, 20 May 2010 19:45:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208361 - in stable/7: contrib/cpio contrib/cpio/doc contrib/cpio/lib contrib/cpio/src gnu/usr.bin/cpio X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 19:45:11 -0000 Author: delphij Date: Thu May 20 19:45:11 2010 New Revision: 208361 URL: http://svn.freebsd.org/changeset/base/208361 Log: MFC r180407 (peter): Merge gnu cpio 2.6 -> 2.8 changes. Added: stable/7/contrib/cpio/doc/version.texi - copied unchanged from r180407, head/contrib/cpio/doc/version.texi stable/7/contrib/cpio/lib/argp-pin.c - copied unchanged from r180407, head/contrib/cpio/lib/argp-pin.c stable/7/contrib/cpio/lib/fatal.c - copied unchanged from r180407, head/contrib/cpio/lib/fatal.c stable/7/contrib/cpio/lib/hash.c - copied unchanged from r180407, head/contrib/cpio/lib/hash.c stable/7/contrib/cpio/lib/hash.h - copied unchanged from r180407, head/contrib/cpio/lib/hash.h stable/7/contrib/cpio/lib/intprops.h - copied unchanged from r180407, head/contrib/cpio/lib/intprops.h stable/7/contrib/cpio/lib/inttostr.c - copied unchanged from r180407, head/contrib/cpio/lib/inttostr.c stable/7/contrib/cpio/lib/inttostr.h - copied unchanged from r180407, head/contrib/cpio/lib/inttostr.h stable/7/contrib/cpio/lib/paxerror.c - copied unchanged from r180407, head/contrib/cpio/lib/paxerror.c stable/7/contrib/cpio/lib/paxexit.c - copied unchanged from r180407, head/contrib/cpio/lib/paxexit.c stable/7/contrib/cpio/lib/paxlib.h - copied unchanged from r180407, head/contrib/cpio/lib/paxlib.h stable/7/contrib/cpio/lib/paxnames.c - copied unchanged from r180407, head/contrib/cpio/lib/paxnames.c stable/7/contrib/cpio/lib/quote.c - copied unchanged from r180407, head/contrib/cpio/lib/quote.c stable/7/contrib/cpio/lib/quote.h - copied unchanged from r180407, head/contrib/cpio/lib/quote.h stable/7/contrib/cpio/lib/quotearg.c - copied unchanged from r180407, head/contrib/cpio/lib/quotearg.c stable/7/contrib/cpio/lib/quotearg.h - copied unchanged from r180407, head/contrib/cpio/lib/quotearg.h stable/7/contrib/cpio/lib/rmt-command.h - copied unchanged from r180407, head/contrib/cpio/lib/rmt-command.h stable/7/contrib/cpio/lib/system-ioctl.h - copied unchanged from r180407, head/contrib/cpio/lib/system-ioctl.h stable/7/contrib/cpio/lib/umaxtostr.c - copied unchanged from r180407, head/contrib/cpio/lib/umaxtostr.c stable/7/contrib/cpio/lib/utimens.c - copied unchanged from r180407, head/contrib/cpio/lib/utimens.c stable/7/contrib/cpio/lib/utimens.h - copied unchanged from r180407, head/contrib/cpio/lib/utimens.h stable/7/contrib/cpio/lib/xstrndup.c - copied unchanged from r180407, head/contrib/cpio/lib/xstrndup.c stable/7/contrib/cpio/lib/xstrndup.h - copied unchanged from r180407, head/contrib/cpio/lib/xstrndup.h Deleted: stable/7/contrib/cpio/lib/exit.h stable/7/contrib/cpio/lib/localedir.h stable/7/contrib/cpio/lib/mempcpy.h stable/7/contrib/cpio/lib/strcase.h stable/7/contrib/cpio/lib/strchrnul.h stable/7/contrib/cpio/lib/strndup.h Modified: stable/7/contrib/cpio/ABOUT-NLS stable/7/contrib/cpio/COPYING stable/7/contrib/cpio/ChangeLog stable/7/contrib/cpio/INSTALL stable/7/contrib/cpio/NEWS stable/7/contrib/cpio/THANKS stable/7/contrib/cpio/TODO stable/7/contrib/cpio/doc/cpio.texi stable/7/contrib/cpio/lib/alloca_.h stable/7/contrib/cpio/lib/argp-ba.c stable/7/contrib/cpio/lib/argp-eexst.c stable/7/contrib/cpio/lib/argp-fmtstream.c stable/7/contrib/cpio/lib/argp-fmtstream.h stable/7/contrib/cpio/lib/argp-fs-xinl.c stable/7/contrib/cpio/lib/argp-help.c stable/7/contrib/cpio/lib/argp-namefrob.h stable/7/contrib/cpio/lib/argp-parse.c stable/7/contrib/cpio/lib/argp-pv.c stable/7/contrib/cpio/lib/argp-pvh.c stable/7/contrib/cpio/lib/argp-xinl.c stable/7/contrib/cpio/lib/argp.h stable/7/contrib/cpio/lib/basename.c stable/7/contrib/cpio/lib/dirname.c stable/7/contrib/cpio/lib/dirname.h stable/7/contrib/cpio/lib/error.c stable/7/contrib/cpio/lib/error.h stable/7/contrib/cpio/lib/exitfail.c stable/7/contrib/cpio/lib/exitfail.h stable/7/contrib/cpio/lib/full-write.c stable/7/contrib/cpio/lib/full-write.h stable/7/contrib/cpio/lib/getopt.c stable/7/contrib/cpio/lib/getopt1.c stable/7/contrib/cpio/lib/getopt_.h stable/7/contrib/cpio/lib/getopt_int.h stable/7/contrib/cpio/lib/gettext.h stable/7/contrib/cpio/lib/mempcpy.c stable/7/contrib/cpio/lib/rmt.h stable/7/contrib/cpio/lib/rtapelib.c stable/7/contrib/cpio/lib/safe-read.c stable/7/contrib/cpio/lib/safe-read.h stable/7/contrib/cpio/lib/safe-write.c stable/7/contrib/cpio/lib/safe-write.h stable/7/contrib/cpio/lib/savedir.c stable/7/contrib/cpio/lib/savedir.h stable/7/contrib/cpio/lib/strchrnul.c stable/7/contrib/cpio/lib/stripslash.c stable/7/contrib/cpio/lib/strndup.c stable/7/contrib/cpio/lib/strnlen.c stable/7/contrib/cpio/lib/system.h stable/7/contrib/cpio/lib/unlocked-io.h stable/7/contrib/cpio/lib/xalloc-die.c stable/7/contrib/cpio/lib/xalloc.h stable/7/contrib/cpio/lib/xmalloc.c stable/7/contrib/cpio/src/copyin.c stable/7/contrib/cpio/src/copyout.c stable/7/contrib/cpio/src/copypass.c stable/7/contrib/cpio/src/cpio.h stable/7/contrib/cpio/src/cpiohdr.h stable/7/contrib/cpio/src/defer.c stable/7/contrib/cpio/src/defer.h stable/7/contrib/cpio/src/dstring.c stable/7/contrib/cpio/src/dstring.h stable/7/contrib/cpio/src/extern.h stable/7/contrib/cpio/src/filemode.c stable/7/contrib/cpio/src/filetypes.h stable/7/contrib/cpio/src/global.c stable/7/contrib/cpio/src/idcache.c stable/7/contrib/cpio/src/main.c stable/7/contrib/cpio/src/makepath.c stable/7/contrib/cpio/src/tar.c stable/7/contrib/cpio/src/tar.h stable/7/contrib/cpio/src/tarhdr.h stable/7/contrib/cpio/src/userspec.c stable/7/contrib/cpio/src/util.c stable/7/gnu/usr.bin/cpio/Makefile stable/7/gnu/usr.bin/cpio/config.h Directory Properties: stable/7/contrib/cpio/ (props changed) stable/7/gnu/usr.bin/cpio/ (props changed) Modified: stable/7/contrib/cpio/ABOUT-NLS ============================================================================== --- stable/7/contrib/cpio/ABOUT-NLS Thu May 20 18:47:34 2010 (r208360) +++ stable/7/contrib/cpio/ABOUT-NLS Thu May 20 19:45:11 2010 (r208361) @@ -1,10 +1,11 @@ -Notes on the Free Translation Project -************************************* +1 Notes on the Free Translation Project +*************************************** Free software is going international! The Free Translation Project is a way to get maintainers of free software, translators, and users all -together, so that will gradually become able to speak many languages. -A few packages already provide translations for their messages. +together, so that free software will gradually become able to speak many +languages. A few packages already provide translations for their +messages. If you found this `ABOUT-NLS' file inside a distribution, you may assume that the distributed package does use GNU `gettext' internally, @@ -15,15 +16,15 @@ this package with messages translated. Installers will find here some useful hints. These notes also explain how users should proceed for getting the programs to use the available translations. They tell how people wanting to contribute and -work at translations should contact the appropriate team. +work on translations can contact the appropriate team. When reporting bugs in the `intl/' directory or bugs which may be related to internationalization, you should tell about the version of `gettext' which is used. The information can be found in the `intl/VERSION' file, in internationalized packages. -Quick configuration advice -========================== +1.1 Quick configuration advice +============================== If you want to exploit the full power of internationalization, you should configure it using @@ -45,8 +46,8 @@ to change to GNU `gettext' as soon as po you have installed a recent copy of the GNU gettext package with the included `libintl'. -INSTALL Matters -=============== +1.2 INSTALL Matters +=================== Some packages are "localizable" when properly installed; the programs they contain can be made to speak your own native language. Most such @@ -55,27 +56,27 @@ internationalization, predating GNU `get By default, this package will be installed to allow translation of messages. It will automatically detect whether the system already -provides the GNU `gettext' functions. If not, the GNU `gettext' own -library will be used. This library is wholly contained within this -package, usually in the `intl/' subdirectory, so prior installation of -the GNU `gettext' package is _not_ required. Installers may use -special options at configuration time for changing the default -behaviour. The commands: +provides the GNU `gettext' functions. If not, the included GNU +`gettext' library will be used. This library is wholly contained +within this package, usually in the `intl/' subdirectory, so prior +installation of the GNU `gettext' package is _not_ required. +Installers may use special options at configuration time for changing +the default behaviour. The commands: ./configure --with-included-gettext ./configure --disable-nls -will respectively bypass any pre-existing `gettext' to use the +will, respectively, bypass any pre-existing `gettext' to use the internationalizing routines provided within this package, or else, _totally_ disable translation of messages. When you already have GNU `gettext' installed on your system and run configure without an option for your new package, `configure' will probably detect the previously built and installed `libintl.a' file and -will decide to use this. This might be not what is desirable. You -should use the more recent version of the GNU `gettext' library. I.e. -if the file `intl/VERSION' shows that the library which comes with this -package is more recent, you should use +will decide to use this. This might not be desirable. You should use +the more recent version of the GNU `gettext' library. I.e. if the file +`intl/VERSION' shows that the library which comes with this package is +more recent, you should use ./configure --with-included-gettext @@ -86,7 +87,7 @@ and therefore it will not be used. The emulation of `gettext' on top of `catgets' could not provide all the extensions of the GNU `gettext' library. - Internationalized packages have usually many `po/LL.po' files, where + Internationalized packages usually have many `po/LL.po' files, where LL gives an ISO 639 two-letter code identifying the language. Unless translations have been forbidden at `configure' time by using the `--disable-nls' switch, all available translations are installed @@ -95,8 +96,8 @@ may be set, prior to configuration, to l `LINGUAS' should then contain a space separated list of two-letter codes, stating which languages are allowed. -Using This Package -================== +1.3 Using This Package +====================== As a user, if your language has been installed for this package, you only have to set the `LANG' environment variable to the appropriate @@ -117,8 +118,8 @@ country code serves to distinguish the d language and `CC' denoting the country, is the one use on systems based on GNU libc. On other systems, some variations of this scheme are used, such as `LL' or `LL_CC.ENCODING'. You can get the list of -locales supported by your system for your country by running the command -`locale -a | grep '^LL''. +locales supported by your system for your language by running the +command `locale -a | grep '^LL''. Not all programs have translations for all languages. By default, an English message is shown in place of a nonexistent translation. If you @@ -131,14 +132,21 @@ system libraries. For example, some Swe read translations in German than English for when Swedish is not available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. + Special advice for Norwegian users: The language code for Norwegian +bokma*l changed from `no' to `nb' recently (in 2003). During the +transition period, while some message catalogs for this language are +installed under `nb' and some older ones under `no', it's recommended +for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and +older translations are used. + In the `LANGUAGE' environment variable, but not in the `LANG' environment variable, `LL_CC' combinations can be abbreviated as `LL' to denote the language's main dialect. For example, `de' is equivalent to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' (Portuguese as spoken in Portugal) in this context. -Translating Teams -================= +1.4 Translating Teams +===================== For the Free Translation Project to be a success, we need interested people who like their own language and write it well, and who are also @@ -164,509 +172,897 @@ get started, please write to `translatio coordinator for all translator teams. The English team is special. It works at improving and uniformizing -the terminology in use. Proven linguistic skill are praised more than -programming skill, here. +the terminology in use. Proven linguistic skills are praised more than +programming skills, here. -Available Packages -================== +1.5 Available Packages +====================== Languages are not equally supported in all packages. The following -matrix shows the current state of internationalization, as of November -2003. The matrix shows, in regard of each package, for which languages +matrix shows the current state of internationalization, as of October +2006. The matrix shows, in regard of each package, for which languages PO files have been submitted to translation coordination, with a translation percentage of at least 50%. - Ready PO files am az be bg ca cs da de el en en_GB eo es - +-------------------------------------------+ - a2ps | [] [] [] [] | - aegis | () | - ant-phone | () | - anubis | | - ap-utils | | - bash | [] [] [] [] | - batchelor | | - bfd | [] [] | - binutils | [] [] | - bison | [] [] [] | - bluez-pin | [] [] | - clisp | [] [] [] | - clisp | | - coreutils | [] [] [] [] | - cpio | [] [] [] | - darkstat | [] () [] | - diffutils | [] [] [] [] [] [] [] | - e2fsprogs | [] [] | - enscript | [] [] [] [] | - error | [] [] [] [] [] | - fetchmail | [] () [] [] [] [] | - fileutils | [] [] [] | - findutils | [] [] [] [] [] [] [] | - flex | [] [] [] [] | - fslint | | - gas | [] | - gawk | [] [] [] [] | - gbiff | [] | - gcal | [] | - gcc | [] [] | - gettext | [] [] [] [] [] | - gettext-examples | [] [] [] | - gettext-runtime | [] [] [] [] [] | - gettext-tools | [] [] [] | - gimp-print | [] [] [] [] [] | - gliv | | - glunarclock | [] [] [] | - gnubiff | [] | - gnucash | [] () [] [] | - gnucash-glossary | [] () [] | - gnupg | [] () [] [] [] [] | - gpe-aerial | [] | - gpe-beam | [] [] | - gpe-calendar | [] [] | - gpe-clock | [] [] | - gpe-conf | [] [] | - gpe-contacts | [] [] | - gpe-edit | [] | - gpe-go | [] | - gpe-login | [] [] | - gpe-ownerinfo | [] [] | - gpe-sketchbook | [] [] | - gpe-su | [] [] | - gpe-taskmanager | [] [] | - gpe-timesheet | [] | - gpe-today | [] [] | - gpe-todo | [] [] | - gphoto2 | [] [] [] [] | - gprof | [] [] [] | - gpsdrive | () () () | - gramadoir | [] | - grep | [] [] [] [] [] [] | - gretl | [] | - gtick | () | - hello | [] [] [] [] [] [] | - id-utils | [] [] | - indent | [] [] [] [] | - jpilot | [] [] [] | - jtag | | - jwhois | [] | - kbd | [] [] [] [] [] | - latrine | () | - ld | [] [] | - libc | [] [] [] [] [] [] | - libgpewidget | [] [] | - libiconv | [] [] [] [] [] | - lifelines | [] () | - lilypond | [] | - lingoteach | | - lingoteach_lessons | () () | - lynx | [] [] [] [] | - m4 | [] [] [] [] | - mailutils | [] [] | - make | [] [] [] | - man-db | [] () [] [] () | - minicom | [] [] [] | - mysecretdiary | [] [] [] | - nano | [] () [] [] [] | - nano_1_0 | [] () [] [] [] | - opcodes | [] | - parted | [] [] [] [] [] | - ptx | [] [] [] [] [] | - python | | - radius | | - recode | [] [] [] [] [] [] [] | - screem | | - scrollkeeper | [] [] [] [] [] [] | - sed | [] [] [] [] [] | - sh-utils | [] [] [] | - shared-mime-info | | - sharutils | [] [] [] [] [] [] | - sketch | [] () [] | - soundtracker | [] [] [] | - sp | [] | - tar | [] [] [] [] | - texinfo | [] [] [] | - textutils | [] [] [] [] | - tin | () () | - tuxpaint | [] [] [] [] [] [] [] | - util-linux | [] [] [] [] [] | - vorbis-tools | [] [] [] [] | - wastesedge | () | - wdiff | [] [] [] [] | - wget | [] [] [] [] [] [] | - xchat | [] [] [] [] | - xfree86_xkb_xml | [] | - xpad | [] | - +-------------------------------------------+ - am az be bg ca cs da de el en en_GB eo es - 0 1 8 3 37 37 54 73 15 1 5 12 62 - - et fa fi fr ga gl he hr hu id is it ja - +----------------------------------------+ - a2ps | [] [] [] () | - aegis | | - ant-phone | | - anubis | [] | - ap-utils | [] | - bash | [] [] | - batchelor | [] | - bfd | [] | - binutils | [] [] | - bison | [] [] [] [] | - bluez-pin | [] [] [] [] [] | - clisp | [] | - clisp | | - coreutils | [] [] [] [] [] [] | - cpio | [] [] [] | - darkstat | () [] [] [] | - diffutils | [] [] [] [] [] [] [] | - e2fsprogs | | - enscript | [] [] | - error | [] [] [] [] | - fetchmail | [] | - fileutils | [] [] [] [] [] [] | - findutils | [] [] [] [] [] [] [] [] [] [] | - flex | [] [] | - fslint | | - gas | [] | - gawk | [] [] [] | - gbiff | | - gcal | [] | - gcc | [] | - gettext | [] [] | - gettext-examples | [] [] | - gettext-runtime | [] [] [] [] | - gettext-tools | [] [] | - gimp-print | [] [] | - gliv | () | - glunarclock | [] [] [] [] [] | - gnubiff | | - gnucash | () [] | - gnucash-glossary | [] | - gnupg | [] [] [] [] [] [] [] | - gpe-aerial | [] | - gpe-beam | [] | - gpe-calendar | [] [] [] | - gpe-clock | [] | - gpe-conf | [] | - gpe-contacts | [] [] | - gpe-edit | [] [] | - gpe-go | [] | - gpe-login | [] [] | - gpe-ownerinfo | [] [] [] | - gpe-sketchbook | [] | - gpe-su | [] | - gpe-taskmanager | [] | - gpe-timesheet | [] [] [] | - gpe-today | [] [] | - gpe-todo | [] [] | - gphoto2 | [] [] [] | - gprof | [] [] | - gpsdrive | () [] () () | - gramadoir | [] | - grep | [] [] [] [] [] [] [] [] [] [] [] | - gretl | [] | - gtick | [] [] | - hello | [] [] [] [] [] [] [] [] [] [] [] [] | - id-utils | [] [] [] [] | - indent | [] [] [] [] [] [] [] [] [] | - jpilot | [] () | - jtag | | - jwhois | [] [] [] [] | - kbd | [] | - latrine | | - ld | [] | - libc | [] [] [] [] [] | - libgpewidget | [] [] [] [] | - libiconv | [] [] [] [] [] [] [] [] [] | - lifelines | () | - lilypond | [] | - lingoteach | [] [] | - lingoteach_lessons | | - lynx | [] [] [] [] | - m4 | [] [] [] [] | - mailutils | | - make | [] [] [] [] [] | - man-db | () () | - minicom | [] [] [] [] | - mysecretdiary | [] [] | - nano | [] [] [] [] | - nano_1_0 | [] [] [] [] | - opcodes | [] | - parted | [] [] [] | - ptx | [] [] [] [] [] [] [] | - python | | - radius | | - recode | [] [] [] [] [] [] | - screem | | - scrollkeeper | [] | - sed | [] [] [] [] [] [] [] [] [] | - sh-utils | [] [] [] [] [] [] [] | - shared-mime-info | [] | - sharutils | [] [] [] [] [] | - sketch | [] | - soundtracker | [] [] [] [] | - sp | [] () | - tar | [] [] [] [] [] [] [] [] [] | - texinfo | [] [] [] [] | - textutils | [] [] [] [] [] | - tin | [] () | - tuxpaint | [] [] [] [] [] [] [] [] | - util-linux | [] [] [] [] () [] | - vorbis-tools | [] | - wastesedge | () | - wdiff | [] [] [] [] [] [] | - wget | [] [] [] [] [] [] [] | - xchat | [] [] [] | - xfree86_xkb_xml | | - xpad | [] | - +----------------------------------------+ - et fa fi fr ga gl he hr hu id is it ja - 21 1 24 84 24 24 8 10 38 31 1 22 33 - - ko lg lt lv ms nb nl nn no pl pt pt_BR ro - +-------------------------------------------+ - a2ps | () [] [] () () [] [] | - aegis | () () | - ant-phone | [] [] | - anubis | [] [] [] [] [] | - ap-utils | [] () [] | - bash | [] [] | - batchelor | [] | - bfd | [] | - binutils | | - bison | [] [] [] [] | - bluez-pin | [] [] [] | - clisp | [] | - clisp | | - coreutils | [] | - cpio | [] [] [] [] [] | - darkstat | [] [] [] [] | - diffutils | [] [] [] [] | - e2fsprogs | [] | - enscript | [] [] [] | - error | [] [] [] | - fetchmail | [] [] () | - fileutils | [] | - findutils | [] [] [] [] [] | - flex | [] [] [] [] | - fslint | [] [] | - gas | | - gawk | [] [] [] | - gbiff | [] [] | - gcal | | - gcc | | - gettext | [] [] [] | - gettext-examples | [] [] | - gettext-runtime | [] [] [] | - gettext-tools | [] [] [] | - gimp-print | [] | - gliv | [] [] [] | - glunarclock | [] [] [] | - gnubiff | | - gnucash | [] [] () | - gnucash-glossary | [] [] | - gnupg | [] | - gpe-aerial | [] [] [] | - gpe-beam | [] [] [] | - gpe-calendar | [] [] [] | - gpe-clock | [] [] [] | - gpe-conf | [] [] [] | - gpe-contacts | [] [] [] | - gpe-edit | [] [] [] | - gpe-go | [] [] | - gpe-login | [] [] [] | - gpe-ownerinfo | [] [] [] | - gpe-sketchbook | [] [] [] | - gpe-su | [] [] [] | - gpe-taskmanager | [] [] [] | - gpe-timesheet | [] [] [] | - gpe-today | [] [] [] | - gpe-todo | [] [] [] | - gphoto2 | [] | - gprof | [] [] | - gpsdrive | () () () [] | - gramadoir | [] | - grep | [] [] [] [] | - gretl | | - gtick | [] [] | - hello | [] [] [] [] [] [] [] [] [] [] | - id-utils | [] [] [] | - indent | [] [] [] | - jpilot | () () | - jtag | | - jwhois | [] [] [] [] | - kbd | [] [] [] | - latrine | [] | - ld | | - libc | [] [] [] [] [] | - libgpewidget | [] [] [] | - libiconv | [] [] [] [] | - lifelines | | - lilypond | | - lingoteach | | - lingoteach_lessons | | - lynx | [] [] | - m4 | [] [] [] [] | - mailutils | [] | - make | [] [] [] [] | - man-db | [] | - minicom | [] [] [] | - mysecretdiary | [] [] [] | - nano | [] [] [] [] | - nano_1_0 | [] [] [] [] [] | - opcodes | [] [] | - parted | [] [] [] [] | - ptx | [] [] [] [] [] [] [] | - python | | - radius | [] | - recode | [] [] [] | - screem | | - scrollkeeper | [] [] [] [] | - sed | [] [] [] | - sh-utils | [] | - shared-mime-info | [] | - sharutils | [] | - sketch | [] [] | - soundtracker | | - sp | | - tar | [] [] [] [] [] [] | - texinfo | [] [] [] | - textutils | [] [] | - tin | | - tuxpaint | [] [] [] [] [] [] [] [] [] | - util-linux | [] [] | - vorbis-tools | [] [] | - wastesedge | | - wdiff | [] [] [] [] | - wget | [] [] | - xchat | [] [] | - xfree86_xkb_xml | [] | - xpad | [] [] | - +-------------------------------------------+ - ko lg lt lv ms nb nl nn no pl pt pt_BR ro - 11 0 1 2 12 10 60 4 4 38 23 34 74 - - ru sk sl sr sv ta tr uk vi wa zh_CN zh_TW - +-------------------------------------------+ - a2ps | [] [] [] [] [] | 16 - aegis | () | 0 - ant-phone | | 2 - anubis | [] [] [] | 9 - ap-utils | () | 3 - bash | [] | 9 - batchelor | | 2 - bfd | [] [] | 6 - binutils | [] [] [] | 7 - bison | [] [] [] | 14 - bluez-pin | [] [] [] | 13 - clisp | | 5 - clisp | | 0 - coreutils | [] [] [] [] [] | 16 - cpio | [] [] [] | 14 - darkstat | [] [] [] () () | 12 - diffutils | [] [] [] [] | 22 - e2fsprogs | [] [] | 5 - enscript | [] [] [] | 12 - error | [] [] [] | 15 - fetchmail | [] [] [] | 11 - fileutils | [] [] [] [] [] [] | 16 - findutils | [] [] [] [] [] [] [] | 29 - flex | [] [] [] | 13 - fslint | | 2 - gas | [] | 3 - gawk | [] [] | 12 - gbiff | | 3 - gcal | [] [] | 4 - gcc | [] | 4 - gettext | [] [] [] [] [] [] | 16 - gettext-examples | [] [] | 9 - gettext-runtime | [] [] [] [] [] [] [] [] [] | 21 - gettext-tools | [] [] [] [] [] [] | 14 - gimp-print | [] [] | 10 - gliv | | 3 - glunarclock | [] [] [] [] | 15 - gnubiff | | 1 - gnucash | [] [] [] | 9 - gnucash-glossary | [] [] [] | 8 - gnupg | [] [] [] [] | 17 - gpe-aerial | [] [] | 7 - gpe-beam | [] [] | 8 - gpe-calendar | [] [] [] [] [] | 13 - gpe-clock | [] [] [] | 9 - gpe-conf | [] [] [] | 9 - gpe-contacts | [] [] [] [] | 11 - gpe-edit | [] [] [] [] [] | 11 - gpe-go | [] | 5 - gpe-login | [] [] [] [] [] | 12 - gpe-ownerinfo | [] [] [] [] | 12 - gpe-sketchbook | [] [] [] | 9 - gpe-su | [] [] [] | 9 - gpe-taskmanager | [] [] [] | 9 - gpe-timesheet | [] [] [] [] | 11 - gpe-today | [] [] [] [] [] | 12 - gpe-todo | [] [] [] [] [] | 12 - gphoto2 | [] [] [] | 11 - gprof | [] [] | 9 - gpsdrive | [] [] | 4 - gramadoir | | 3 - grep | [] [] [] [] [] | 26 - gretl | | 2 - gtick | [] | 5 - hello | [] [] [] [] [] | 33 - id-utils | [] [] [] | 12 - indent | [] [] [] [] [] | 21 - jpilot | [] [] [] [] [] | 9 - jtag | [] | 1 - jwhois | () () [] [] | 11 - kbd | [] [] | 11 - latrine | | 1 - ld | [] [] | 5 - libc | [] [] [] [] | 20 - libgpewidget | [] [] [] | 12 - libiconv | [] [] [] [] [] [] [] [] [] | 27 - lifelines | [] | 2 - lilypond | [] | 3 - lingoteach | | 2 - lingoteach_lessons | () | 0 - lynx | [] [] [] [] | 14 - m4 | [] [] [] | 15 - mailutils | [] | 4 - make | [] [] [] [] | 16 - man-db | [] | 5 - minicom | [] | 11 - mysecretdiary | [] [] | 10 - nano | [] [] [] [] [] | 17 - nano_1_0 | [] [] [] [] | 17 - opcodes | [] [] | 6 - parted | [] [] [] | 15 - ptx | [] [] [] | 22 - python | | 0 - radius | [] | 2 - recode | [] [] [] [] | 20 - screem | [] [] | 2 - scrollkeeper | [] [] [] [] | 15 - sed | [] [] [] [] [] [] | 23 - sh-utils | [] [] [] | 14 - shared-mime-info | [] [] | 4 - sharutils | [] [] [] [] [] | 17 - sketch | [] | 6 - soundtracker | [] [] | 9 - sp | [] | 3 - tar | [] [] [] [] [] | 24 - texinfo | [] [] [] [] | 14 - textutils | [] [] [] [] [] | 16 - tin | | 1 - tuxpaint | [] [] [] [] [] | 29 - util-linux | [] [] [] | 15 - vorbis-tools | [] | 8 - wastesedge | | 0 - wdiff | [] [] [] [] | 18 - wget | [] [] [] [] [] [] [] [] | 23 - xchat | [] [] [] [] [] | 14 - xfree86_xkb_xml | [] [] [] [] | 6 - xpad | | 4 - +-------------------------------------------+ - 51 teams ru sk sl sr sv ta tr uk vi wa zh_CN zh_TW - 117 domains 58 41 16 16 78 0 53 12 1 10 21 22 1230 + Ready PO files af am ar az be bg bs ca cs cy da de el en en_GB eo + +----------------------------------------------------+ + GNUnet | [] | + a2ps | [] [] [] [] [] | + aegis | () | + ant-phone | () | + anubis | [] | + ap-utils | | + aspell | [] [] [] [] [] | + bash | [] [] [] | + batchelor | [] | + bfd | | + bibshelf | [] | + binutils | [] | + bison | [] [] | + bison-runtime | | + bluez-pin | [] [] [] [] [] | + cflow | [] | + clisp | [] [] | + console-tools | [] [] | + coreutils | [] [] [] | + cpio | | + cpplib | [] [] [] | + cryptonit | [] | + darkstat | [] () [] | + dialog | [] [] [] [] [] [] | + diffutils | [] [] [] [] [] [] | + doodle | [] | + e2fsprogs | [] [] | + enscript | [] [] [] [] | + error | [] [] [] [] | + fetchmail | [] [] () [] | + fileutils | [] [] | + findutils | [] [] [] | + flex | [] [] [] | + fslint | [] | + gas | | + gawk | [] [] [] | + gbiff | [] | + gcal | [] | + gcc | [] | + gettext-examples | [] [] [] [] [] | + gettext-runtime | [] [] [] [] [] | + gettext-tools | [] [] | + gimp-print | [] [] [] [] | + gip | [] | + gliv | [] | + glunarclock | [] | + gmult | [] [] | + gnubiff | () | + gnucash | () () [] | + gnucash-glossary | [] () | + gnuedu | | + gnulib | [] [] [] [] [] [] | + gnunet-gtk | | + gnutls | | + gpe-aerial | [] [] | + gpe-beam | [] [] | + gpe-calendar | | + gpe-clock | [] [] | + gpe-conf | [] [] | + gpe-contacts | | + gpe-edit | [] | + gpe-filemanager | | + gpe-go | [] | + gpe-login | [] [] | + gpe-ownerinfo | [] [] | + gpe-package | | + gpe-sketchbook | [] [] | + gpe-su | [] [] | + gpe-taskmanager | [] [] | + gpe-timesheet | [] | + gpe-today | [] [] | + gpe-todo | | + gphoto2 | [] [] [] [] | + gprof | [] [] | + gpsdrive | () () | + gramadoir | [] [] | + grep | [] [] [] [] [] [] | + gretl | | + gsasl | | + gss | | + gst-plugins | [] [] [] [] | + gst-plugins-base | [] [] [] | + gst-plugins-good | [] [] [] [] [] [] [] | + gstreamer | [] [] [] [] [] [] [] | + gtick | () | + gtkam | [] [] [] | + gtkorphan | [] [] | + gtkspell | [] [] [] [] | + gutenprint | [] | + hello | [] [] [] [] [] | + id-utils | [] [] | + impost | | + indent | [] [] [] | + iso_3166 | [] [] | + iso_3166_2 | | + iso_4217 | [] | + iso_639 | [] [] | + jpilot | [] | + jtag | | + jwhois | | + kbd | [] [] [] [] | + keytouch | | + keytouch-editor | | + keytouch-keyboa... | | + latrine | () | + ld | [] | + leafpad | [] [] [] [] [] | + libc | [] [] [] [] [] | + libexif | [] | + libextractor | [] | + libgpewidget | [] [] [] | + libgpg-error | [] | + libgphoto2 | [] [] | + libgphoto2_port | [] [] | + libgsasl | | + libiconv | [] [] | + libidn | [] [] | + lifelines | [] () | + lilypond | [] | + lingoteach | | + lynx | [] [] [] [] | + m4 | [] [] [] [] | + mailutils | [] | + make | [] [] | + man-db | [] () [] [] | + minicom | [] [] [] | + mysecretdiary | [] [] | + nano | [] [] [] | + nano_1_0 | [] () [] [] | + opcodes | [] | + parted | | + pilot-qof | [] | + psmisc | [] | + pwdutils | | + python | | + qof | | + radius | [] | + recode | [] [] [] [] [] [] | + rpm | [] [] | + screem | | + scrollkeeper | [] [] [] [] [] [] [] [] | + sed | [] [] [] | + sh-utils | [] [] | + shared-mime-info | [] [] [] [] | + sharutils | [] [] [] [] [] [] | + shishi | | + silky | | + skencil | [] () | + sketch | [] () | + solfege | | + soundtracker | [] [] | + sp | [] | + stardict | [] | + system-tools-ba... | [] [] [] [] [] [] [] [] [] | + tar | [] | + texinfo | [] [] [] | + textutils | [] [] [] | + tin | () () | + tp-robot | [] | + tuxpaint | [] [] [] [] [] | + unicode-han-tra... | | + unicode-transla... | | + util-linux | [] [] [] [] | + vorbis-tools | [] [] [] [] | + wastesedge | () | + wdiff | [] [] [] [] | + wget | [] [] | + xchat | [] [] [] [] [] [] | + xkeyboard-config | | + xpad | [] [] | + +----------------------------------------------------+ + af am ar az be bg bs ca cs cy da de el en en_GB eo + 10 0 1 2 9 22 1 42 41 2 60 95 16 1 17 16 + + es et eu fa fi fr ga gl gu he hi hr hu id is it + +--------------------------------------------------+ + GNUnet | | + a2ps | [] [] [] () | + aegis | | + ant-phone | [] | + anubis | [] | + ap-utils | [] [] | + aspell | [] [] [] | + bash | [] [] [] | + batchelor | [] [] | + bfd | [] | + bibshelf | [] [] [] | + binutils | [] [] [] | + bison | [] [] [] [] [] [] | + bison-runtime | [] [] [] [] [] | + bluez-pin | [] [] [] [] [] | + cflow | [] | + clisp | [] [] | + console-tools | | + coreutils | [] [] [] [] [] [] | + cpio | [] [] [] | + cpplib | [] [] | + cryptonit | [] | + darkstat | [] () [] [] [] | + dialog | [] [] [] [] [] [] [] [] | + diffutils | [] [] [] [] [] [] [] [] [] | + doodle | [] [] | + e2fsprogs | [] [] [] | + enscript | [] [] [] | + error | [] [] [] [] [] | + fetchmail | [] | + fileutils | [] [] [] [] [] [] | + findutils | [] [] [] [] | + flex | [] [] [] | + fslint | [] | + gas | [] [] | + gawk | [] [] [] [] | + gbiff | [] | + gcal | [] [] | + gcc | [] | + gettext-examples | [] [] [] [] [] [] | + gettext-runtime | [] [] [] [] [] [] | + gettext-tools | [] [] [] | + gimp-print | [] [] | + gip | [] [] [] | + gliv | () | + glunarclock | [] [] [] | + gmult | [] [] [] | + gnubiff | () () | + gnucash | () () () | + gnucash-glossary | [] [] | + gnuedu | [] | + gnulib | [] [] [] [] [] [] [] [] | + gnunet-gtk | | + gnutls | | + gpe-aerial | [] [] | + gpe-beam | [] [] | + gpe-calendar | | + gpe-clock | [] [] [] [] | + gpe-conf | [] | + gpe-contacts | [] [] | + gpe-edit | [] [] [] [] | + gpe-filemanager | [] | + gpe-go | [] [] [] | + gpe-login | [] [] [] | + gpe-ownerinfo | [] [] [] [] [] | + gpe-package | [] | + gpe-sketchbook | [] [] | + gpe-su | [] [] [] [] | + gpe-taskmanager | [] [] [] | + gpe-timesheet | [] [] [] [] | + gpe-today | [] [] [] [] | + gpe-todo | [] | + gphoto2 | [] [] [] [] [] | + gprof | [] [] [] [] | + gpsdrive | () () [] () | + gramadoir | [] [] | + grep | [] [] [] [] [] [] [] [] [] [] [] [] | + gretl | [] [] [] | + gsasl | [] [] | + gss | [] | + gst-plugins | [] [] [] | + gst-plugins-base | [] [] | + gst-plugins-good | [] [] [] | + gstreamer | [] [] [] | + gtick | [] | + gtkam | [] [] [] [] | + gtkorphan | [] [] | + gtkspell | [] [] [] [] [] [] | + gutenprint | [] | + hello | [] [] [] [] [] [] [] [] [] [] [] [] [] | + id-utils | [] [] [] [] [] | + impost | [] [] | + indent | [] [] [] [] [] [] [] [] [] [] | + iso_3166 | [] [] [] | + iso_3166_2 | [] | + iso_4217 | [] [] [] [] | + iso_639 | [] [] [] [] [] | + jpilot | [] [] | + jtag | [] | + jwhois | [] [] [] [] [] | + kbd | [] [] | + keytouch | [] | + keytouch-editor | [] | + keytouch-keyboa... | [] | + latrine | [] [] [] | + ld | [] [] | + leafpad | [] [] [] [] [] [] | + libc | [] [] [] [] [] | + libexif | [] | + libextractor | [] | + libgpewidget | [] [] [] [] [] | + libgpg-error | | + libgphoto2 | [] [] [] | + libgphoto2_port | [] [] | + libgsasl | [] [] | + libiconv | [] [] | + libidn | [] [] | + lifelines | () | + lilypond | [] | + lingoteach | [] [] [] | + lynx | [] [] [] | + m4 | [] [] [] [] | + mailutils | [] [] | + make | [] [] [] [] [] [] [] [] | + man-db | () | + minicom | [] [] [] [] | + mysecretdiary | [] [] [] | + nano | [] [] [] [] [] [] | + nano_1_0 | [] [] [] [] [] | + opcodes | [] [] [] [] | + parted | [] [] [] [] | + pilot-qof | | + psmisc | [] [] [] | + pwdutils | | + python | | + qof | [] | + radius | [] [] | + recode | [] [] [] [] [] [] [] [] | + rpm | [] [] | + screem | | + scrollkeeper | [] [] [] | + sed | [] [] [] [] [] | + sh-utils | [] [] [] [] [] [] [] | + shared-mime-info | [] [] [] [] [] [] | + sharutils | [] [] [] [] [] [] [] [] | + shishi | | + silky | [] | + skencil | [] [] | + sketch | [] [] | + solfege | [] | + soundtracker | [] [] [] | + sp | [] | + stardict | [] | + system-tools-ba... | [] [] [] [] [] [] [] [] | + tar | [] [] [] [] [] [] [] | + texinfo | [] [] | + textutils | [] [] [] [] [] | + tin | [] () | + tp-robot | [] [] [] [] | + tuxpaint | [] [] | + unicode-han-tra... | | + unicode-transla... | [] [] | + util-linux | [] [] [] [] [] [] [] | + vorbis-tools | [] [] | + wastesedge | () | + wdiff | [] [] [] [] [] [] [] [] | + wget | [] [] [] [] [] [] [] [] | *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Thu May 20 20:01:55 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1256C106564A; Thu, 20 May 2010 20:01:55 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 029298FC0C; Thu, 20 May 2010 20:01:55 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4KK1sMg095210; Thu, 20 May 2010 20:01:54 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4KK1sPZ095208; Thu, 20 May 2010 20:01:54 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201005202001.o4KK1sPZ095208@svn.freebsd.org> From: John Baldwin Date: Thu, 20 May 2010 20:01:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208362 - head/sys/dev/e1000 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 20:01:55 -0000 Author: jhb Date: Thu May 20 20:01:54 2010 New Revision: 208362 URL: http://svn.freebsd.org/changeset/base/208362 Log: Restore part of 200671 which was lost in previous driver changes: - Add interrupt descriptions when using mulitple MSI-X interrupts. Modified: head/sys/dev/e1000/if_igb.c Modified: head/sys/dev/e1000/if_igb.c ============================================================================== --- head/sys/dev/e1000/if_igb.c Thu May 20 19:45:11 2010 (r208361) +++ head/sys/dev/e1000/if_igb.c Thu May 20 20:01:54 2010 (r208362) @@ -2194,6 +2194,7 @@ igb_allocate_msix(struct adapter *adapte device_printf(dev, "Failed to register Queue handler"); return (error); } + bus_describe_intr(dev, que->res, que->tag, "que %d", i); que->msix = vector; if (adapter->hw.mac.type == e1000_82575) que->eims = E1000_EICR_TX_QUEUE0 << i; @@ -2229,6 +2230,7 @@ igb_allocate_msix(struct adapter *adapte device_printf(dev, "Failed to register Link handler"); return (error); } + bus_describe_intr(dev, adapter->res, adapter->tag, "link"); adapter->linkvec = vector; /* Make tasklet for deferred handling */ From owner-svn-src-all@FreeBSD.ORG Thu May 20 20:15:57 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 270BC1065673; Thu, 20 May 2010 20:15:57 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 170C88FC0C; Thu, 20 May 2010 20:15:57 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4KKFupF098300; Thu, 20 May 2010 20:15:56 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4KKFudb098298; Thu, 20 May 2010 20:15:56 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <201005202015.o4KKFudb098298@svn.freebsd.org> From: Jung-uk Kim Date: Thu, 20 May 2010 20:15:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208363 - head X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 20:15:57 -0000 Author: jkim Date: Thu May 20 20:15:56 2010 New Revision: 208363 URL: http://svn.freebsd.org/changeset/base/208363 Log: Revert r208353. It did not work as I expected because WITHOUT_MAN is set for bootstrap-tools target and WITHOUT_MAN_UTILS was implied by default. Pointy hat: jkim Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Thu May 20 20:01:54 2010 (r208362) +++ head/Makefile.inc1 Thu May 20 20:15:56 2010 (r208363) @@ -961,10 +961,6 @@ _dtrace_tools= cddl/usr.bin/sgsmsg cddl/ lib/libdwarf cddl/usr.bin/ctfconvert cddl/usr.bin/ctfmerge .endif -.if ${MK_MAN_UTILS} != "no" -_makewhatis= usr.bin/makewhatis -.endif - bootstrap-tools: .for _tool in \ ${_dtrace_tools} \ @@ -973,7 +969,7 @@ bootstrap-tools: ${_groff} \ ${_ar} \ usr.bin/lorder \ - ${_makewhatis} \ + usr.bin/makewhatis \ ${_mklocale} \ usr.bin/rpcgen \ ${_sed} \ From owner-svn-src-all@FreeBSD.ORG Thu May 20 21:07:58 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7C00C1065673; Thu, 20 May 2010 21:07:58 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 60F178FC0C; Thu, 20 May 2010 21:07:58 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4KL7w5Y009947; Thu, 20 May 2010 21:07:58 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4KL7wtH009945; Thu, 20 May 2010 21:07:58 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201005202107.o4KL7wtH009945@svn.freebsd.org> From: Nathan Whitehorn Date: Thu, 20 May 2010 21:07:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208364 - head/sys/powerpc/aim X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 21:07:58 -0000 Author: nwhitehorn Date: Thu May 20 21:07:58 2010 New Revision: 208364 URL: http://svn.freebsd.org/changeset/base/208364 Log: Fix a long-standing bug in the PowerPC OFW call function on SMP machines where running ofwdump could cause hangs by forcing all secondary CPUs into a busy wait with interrupts off during the call. Following section 8.4 of the Open Firmware PowerPC processor binding, the firmware is free to overwrite the system interrupt handlers during OF calls, restoring the OS handlers on exit. On single CPU systems, this process is invisible to the operating system. On multiple CPU systems, taking any exception on a secondary CPU while an OF call is in progress ends with that exception vectored into OF, resulting in a slow movement of the entire system into firmware context and a machine hang. MFC after: 3 days Modified: head/sys/powerpc/aim/ofw_machdep.c Modified: head/sys/powerpc/aim/ofw_machdep.c ============================================================================== --- head/sys/powerpc/aim/ofw_machdep.c Thu May 20 20:15:56 2010 (r208363) +++ head/sys/powerpc/aim/ofw_machdep.c Thu May 20 21:07:58 2010 (r208364) @@ -41,6 +41,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -348,17 +349,18 @@ ofw_quiesce(void) } static int -openfirmware(void *args) +openfirmware_core(void *args) { long oldmsr; int result; u_int srsave[16]; u_int i; - if (pmap_bootstrapped && ofw_real_mode) - args = (void *)pmap_kextract((vm_offset_t)args); - - mtx_lock(&ofw_mutex); + /* + * NOTE: This MUST be called with the OF mutex held. Because the CPU + * holding the lock is not necessarily the CPU running this function, + * we can't put an assert here. + */ __asm __volatile( "\t" "sync\n\t" @@ -412,6 +414,63 @@ openfirmware(void *args) : : "r" (oldmsr) ); + return (result); +} + +#ifdef SMP +struct ofw_rv_args { + void *args; + int retval; + volatile int in_progress; +}; + +static void +ofw_rendezvous_dispatch(void *xargs) +{ + struct ofw_rv_args *rv_args = xargs; + + /* NOTE: Interrupts are disabled here */ + + if (PCPU_GET(cpuid) == 0) { + /* + * Execute all OF calls on CPU 0 + */ + rv_args->retval = openfirmware_core(rv_args->args); + rv_args->in_progress = 0; + } else { + /* + * Spin with interrupts off on other CPUs while OF has + * control of the machine. + */ + while (rv_args->in_progress) + cpu_spinwait(); + } +} +#endif + +static int +openfirmware(void *args) +{ + int result; + #ifdef SMP + struct ofw_rv_args rv_args; + #endif + + if (pmap_bootstrapped && ofw_real_mode) + args = (void *)pmap_kextract((vm_offset_t)args); + + mtx_lock(&ofw_mutex); + + #ifdef SMP + rv_args.args = args; + rv_args.in_progress = 1; + smp_rendezvous(smp_no_rendevous_barrier, ofw_rendezvous_dispatch, + smp_no_rendevous_barrier, &rv_args); + result = rv_args.retval; + #else + result = openfirmware_core(args); + #endif + mtx_unlock(&ofw_mutex); return (result); From owner-svn-src-all@FreeBSD.ORG Thu May 20 21:14:48 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 448ED106564A; Thu, 20 May 2010 21:14:48 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from argol.doit.wisc.edu (argol.doit.wisc.edu [144.92.197.212]) by mx1.freebsd.org (Postfix) with ESMTP id 0D3D58FC17; Thu, 20 May 2010 21:14:47 +0000 (UTC) MIME-version: 1.0 Content-transfer-encoding: 7BIT Content-type: text/plain; CHARSET=US-ASCII; format=flowed Received: from avs-daemon.smtpauth3.wiscmail.wisc.edu by smtpauth3.wiscmail.wisc.edu (Sun Java(tm) System Messaging Server 7u2-7.05 32bit (built Jul 30 2009)) id <0L2Q00F12LO06K00@smtpauth3.wiscmail.wisc.edu>; Thu, 20 May 2010 16:14:24 -0500 (CDT) Received: from comporellon.tachypleus.net ([unknown] [76.210.60.242]) by smtpauth3.wiscmail.wisc.edu (Sun Java(tm) System Messaging Server 7u2-7.05 32bit (built Jul 30 2009)) with ESMTPSA id <0L2Q00CMNLNQOE30@smtpauth3.wiscmail.wisc.edu>; Thu, 20 May 2010 16:14:15 -0500 (CDT) Date: Thu, 20 May 2010 16:14:13 -0500 From: Nathan Whitehorn In-reply-to: <201005202107.o4KL7wtH009945@svn.freebsd.org> To: Nathan Whitehorn Message-id: <4BF5A625.8020209@freebsd.org> X-Spam-Report: AuthenticatedSender=yes, SenderIP=76.210.60.242 X-Spam-PmxInfo: Server=avs-11, Version=5.5.9.395186, Antispam-Engine: 2.7.2.376379, Antispam-Data: 2010.5.20.210315, SenderIP=76.210.60.242 References: <201005202107.o4KL7wtH009945@svn.freebsd.org> User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.9.1.9) Gecko/20100407 Thunderbird/3.0.4 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r208364 - head/sys/powerpc/aim X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 21:14:48 -0000 On 05/20/10 16:07, Nathan Whitehorn wrote: > Author: nwhitehorn > Date: Thu May 20 21:07:58 2010 > New Revision: 208364 > URL: http://svn.freebsd.org/changeset/base/208364 > > Log: > Fix a long-standing bug in the PowerPC OFW call function on SMP machines > where running ofwdump could cause hangs by forcing all secondary CPUs > into a busy wait with interrupts off during the call. > In retrospect, this was poorly phrased. A non-ambiguous version: By forcing all secondary CPUs into a busy wait with interrupts off during Open Firmware calls, fix a long-standing bug in the PowerPC OFW call function on SMP machines where running ofwdump could cause the machine to hang. -Nathan From owner-svn-src-all@FreeBSD.ORG Thu May 20 22:12:36 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DB1D41065673; Thu, 20 May 2010 22:12:36 +0000 (UTC) (envelope-from nork@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C94658FC14; Thu, 20 May 2010 22:12:36 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4KMCaZs024270; Thu, 20 May 2010 22:12:36 GMT (envelope-from nork@svn.freebsd.org) Received: (from nork@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4KMCa74024268; Thu, 20 May 2010 22:12:36 GMT (envelope-from nork@svn.freebsd.org) Message-Id: <201005202212.o4KMCa74024268@svn.freebsd.org> From: Norikatsu Shigemura Date: Thu, 20 May 2010 22:12:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208365 - stable/8/usr.sbin/mergemaster X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 22:12:37 -0000 Author: nork Date: Thu May 20 22:12:36 2010 New Revision: 208365 URL: http://svn.freebsd.org/changeset/base/208365 Log: MFC r207612: Add support run services_mkdb(8). Approved by: dougb, imp (mentor) Reviewed by: ume Modified: stable/8/usr.sbin/mergemaster/mergemaster.sh Directory Properties: stable/8/usr.sbin/mergemaster/ (props changed) Modified: stable/8/usr.sbin/mergemaster/mergemaster.sh ============================================================================== --- stable/8/usr.sbin/mergemaster/mergemaster.sh Thu May 20 21:07:58 2010 (r208364) +++ stable/8/usr.sbin/mergemaster/mergemaster.sh Thu May 20 22:12:36 2010 (r208365) @@ -851,6 +851,9 @@ mm_install () { /etc/login.conf) NEED_CAP_MKDB=yes ;; + /etc/services) + NEED_SERVICES_MKDB=yes + ;; /etc/master.passwd) do_install_and_rm 600 "${1}" "${DESTDIR}${INSTALL_DIR}" NEED_PWD_MKDB=yes @@ -1280,6 +1283,17 @@ case "${NEED_CAP_MKDB}" in ;; esac +case "${NEED_SERVICES_MKDB}" in +'') ;; +*) + echo '' + echo "*** You installed a services file, so make sure that you run" + echo " '/usr/sbin/services_mkdb -q -o ${DESTDIR}/var/db/services.db ${DESTDIR}/etc/services'" + echo " to rebuild your services database" + run_it_now "/usr/sbin/services_mkdb -q -o ${DESTDIR}/var/db/services.db ${DESTDIR}/etc/services" + ;; +esac + case "${NEED_PWD_MKDB}" in '') ;; *) From owner-svn-src-all@FreeBSD.ORG Thu May 20 23:06:53 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9A1BC106566B; Thu, 20 May 2010 23:06:53 +0000 (UTC) (envelope-from gordon@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 886038FC0C; Thu, 20 May 2010 23:06:53 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4KN6raE036233; Thu, 20 May 2010 23:06:53 GMT (envelope-from gordon@svn.freebsd.org) Received: (from gordon@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4KN6rTt036231; Thu, 20 May 2010 23:06:53 GMT (envelope-from gordon@svn.freebsd.org) Message-Id: <201005202306.o4KN6rTt036231@svn.freebsd.org> From: Gordon Tetlow Date: Thu, 20 May 2010 23:06:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208366 - stable/7/lib/libc/gen X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 May 2010 23:06:53 -0000 Author: gordon Date: Thu May 20 23:06:53 2010 New Revision: 208366 URL: http://svn.freebsd.org/changeset/base/208366 Log: MFC r207981: Fix a bug due to a type conversion from 64 to 32 bits. The side effect of this type conversion is the high bits which were used to indicate if a special character was a literal or special were dropped. As a result, all special character were treated as special, even if they were supposed to be literals. Approved by: mentor (wes@) Modified: stable/7/lib/libc/gen/glob.c Directory Properties: stable/7/lib/libc/ (props changed) stable/7/lib/libc/stdtime/ (props changed) Modified: stable/7/lib/libc/gen/glob.c ============================================================================== --- stable/7/lib/libc/gen/glob.c Thu May 20 22:12:36 2010 (r208365) +++ stable/7/lib/libc/gen/glob.c Thu May 20 23:06:53 2010 (r208366) @@ -433,9 +433,9 @@ static int glob0(const Char *pattern, glob_t *pglob, size_t *limit) { const Char *qpatnext; - int c, err; + int err; size_t oldpathc; - Char *bufnext, patbuf[MAXPATHLEN]; + Char *bufnext, c, patbuf[MAXPATHLEN]; qpatnext = globtilde(pattern, patbuf, MAXPATHLEN, pglob); oldpathc = pglob->gl_pathc; From owner-svn-src-all@FreeBSD.ORG Fri May 21 04:47:23 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 560D71065672; Fri, 21 May 2010 04:47:23 +0000 (UTC) (envelope-from ken@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 44B6C8FC22; Fri, 21 May 2010 04:47:23 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4L4lN28011181; Fri, 21 May 2010 04:47:23 GMT (envelope-from ken@svn.freebsd.org) Received: (from ken@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4L4lN5M011179; Fri, 21 May 2010 04:47:23 GMT (envelope-from ken@svn.freebsd.org) Message-Id: <201005210447.o4L4lN5M011179@svn.freebsd.org> From: "Kenneth D. Merry" Date: Fri, 21 May 2010 04:47:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208367 - stable/8/sys/netinet X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 04:47:23 -0000 Author: ken Date: Fri May 21 04:47:22 2010 New Revision: 208367 URL: http://svn.freebsd.org/changeset/base/208367 Log: MFC r206844: Don't clear other flags (e.g. CSUM_TCP) when setting CSUM_TSO. This was causing TSO to break for the Xen netfront driver. Reviewed by: gibbs, rwatson Modified: stable/8/sys/netinet/tcp_output.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/netinet/tcp_output.c ============================================================================== --- stable/8/sys/netinet/tcp_output.c Thu May 20 23:06:53 2010 (r208366) +++ stable/8/sys/netinet/tcp_output.c Fri May 21 04:47:22 2010 (r208367) @@ -1051,7 +1051,7 @@ send: * XXX: Fixme: This is currently not the case for IPv6. */ if (tso) { - m->m_pkthdr.csum_flags = CSUM_TSO; + m->m_pkthdr.csum_flags |= CSUM_TSO; m->m_pkthdr.tso_segsz = tp->t_maxopd - optlen; } From owner-svn-src-all@FreeBSD.ORG Fri May 21 04:48:40 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7AE1C1065672; Fri, 21 May 2010 04:48:40 +0000 (UTC) (envelope-from ken@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 69C0C8FC14; Fri, 21 May 2010 04:48:40 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4L4meuF011511; Fri, 21 May 2010 04:48:40 GMT (envelope-from ken@svn.freebsd.org) Received: (from ken@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4L4meog011509; Fri, 21 May 2010 04:48:40 GMT (envelope-from ken@svn.freebsd.org) Message-Id: <201005210448.o4L4meog011509@svn.freebsd.org> From: "Kenneth D. Merry" Date: Fri, 21 May 2010 04:48:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208368 - stable/7/sys/netinet X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 04:48:40 -0000 Author: ken Date: Fri May 21 04:48:40 2010 New Revision: 208368 URL: http://svn.freebsd.org/changeset/base/208368 Log: MFC r206844: Don't clear other flags (e.g. CSUM_TCP) when setting CSUM_TSO. This was causing TSO to break for the Xen netfront driver. Reviewed by: gibbs, rwatson Modified: stable/7/sys/netinet/tcp_output.c Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/sys/netinet/tcp_output.c ============================================================================== --- stable/7/sys/netinet/tcp_output.c Fri May 21 04:47:22 2010 (r208367) +++ stable/7/sys/netinet/tcp_output.c Fri May 21 04:48:40 2010 (r208368) @@ -995,7 +995,7 @@ send: * XXX: Fixme: This is currently not the case for IPv6. */ if (tso) { - m->m_pkthdr.csum_flags = CSUM_TSO; + m->m_pkthdr.csum_flags |= CSUM_TSO; m->m_pkthdr.tso_segsz = tp->t_maxopd - optlen; } From owner-svn-src-all@FreeBSD.ORG Fri May 21 05:34:19 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B00811065676; Fri, 21 May 2010 05:34:19 +0000 (UTC) (envelope-from jchandra@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9DBB78FC1B; Fri, 21 May 2010 05:34:19 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4L5YJB5021630; Fri, 21 May 2010 05:34:19 GMT (envelope-from jchandra@svn.freebsd.org) Received: (from jchandra@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4L5YJ6U021625; Fri, 21 May 2010 05:34:19 GMT (envelope-from jchandra@svn.freebsd.org) Message-Id: <201005210534.o4L5YJ6U021625@svn.freebsd.org> From: "Jayachandran C." Date: Fri, 21 May 2010 05:34:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208369 - in head/sys/mips/rmi: . dev/xlr X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 05:34:19 -0000 Author: jchandra Date: Fri May 21 05:34:19 2010 New Revision: 208369 URL: http://svn.freebsd.org/changeset/base/208369 Log: Changes to boot on a subset of threads on an XLR/XLS core. - Adds re-partitioning TLB per core for enabled threads. - Adds hardware thread id to cpuid mapping - updates rge driver packet distribution and message ring handling threads to be started based on hardware thread id. - remove unused early debugging code to set control registers. - coding style fixes Approved by: rrs (mentor) Modified: head/sys/mips/rmi/dev/xlr/rge.c head/sys/mips/rmi/on_chip.c head/sys/mips/rmi/xlr_machdep.c head/sys/mips/rmi/xlrconfig.h Modified: head/sys/mips/rmi/dev/xlr/rge.c ============================================================================== --- head/sys/mips/rmi/dev/xlr/rge.c Fri May 21 04:48:40 2010 (r208368) +++ head/sys/mips/rmi/dev/xlr/rge.c Fri May 21 05:34:19 2010 (r208369) @@ -126,7 +126,7 @@ int mac_debug = 1; do {\ if (mac_debug) {\ printf("[%s@%d|%s]: cpu_%d: " fmt, \ - __FILE__, __LINE__, __FUNCTION__, PCPU_GET(cpuid), ##args);\ + __FILE__, __LINE__, __FUNCTION__, xlr_cpu_id(), ##args);\ }\ } while(0); @@ -404,7 +404,7 @@ init_p2d_allocation(void) uint32_t cpumask; int cpu; - cpumask = PCPU_GET(cpumask) | PCPU_GET(other_cpus); + cpumask = xlr_hw_thread_mask; for (i = 0; i < 32; i++) { if (cpumask & (1 << i)) { @@ -966,7 +966,7 @@ rmi_xlr_config_pde(struct driver_data *p /* uint32_t desc_pack_ctrl = 0; */ uint32_t cpumask; - cpumask = PCPU_GET(cpumask); + cpumask = 0x1; #ifdef SMP /* * rge may be called before SMP start in a BOOTP/NFSROOT @@ -974,7 +974,7 @@ rmi_xlr_config_pde(struct driver_data *p * the SMP is started. */ if (smp_started) - cpumask |= PCPU_GET(other_cpus); + cpumask = xlr_hw_thread_mask; #endif for (i = 0; i < MAXCPU; i++) { @@ -1453,7 +1453,7 @@ mac_xmit(struct mbuf *m, struct rge_soft int stid = priv->txbucket; uint32_t tx_cycles = 0; unsigned long mflags = 0; - int vcpu = PCPU_GET(cpuid); + int vcpu = xlr_cpu_id(); int rv; tx_cycles = mips_rd_count(); Modified: head/sys/mips/rmi/on_chip.c ============================================================================== --- head/sys/mips/rmi/on_chip.c Fri May 21 04:48:40 2010 (r208368) +++ head/sys/mips/rmi/on_chip.c Fri May 21 05:34:19 2010 (r208369) @@ -78,6 +78,7 @@ struct msgring_ithread { u_int i_pending; u_int i_flags; int i_cpu; + int i_core; }; struct msgring_ithread *msgring_ithreads[MAXCPU]; @@ -254,13 +255,13 @@ disable_msgring_int(void *arg) static int msgring_process_fast_intr(void *arg) { - int cpu = PCPU_GET(cpuid); + int core = xlr_core_id(); volatile struct msgring_ithread *it; struct thread *td; /* wakeup an appropriate intr_thread for processing this interrupt */ - it = (volatile struct msgring_ithread *)msgring_ithreads[cpu]; - KASSERT(it != NULL, ("No interrupt thread on cpu %d", cpu)); + it = (volatile struct msgring_ithread *)msgring_ithreads[core]; + KASSERT(it != NULL, ("No interrupt thread on cpu %d", core)); td = it->i_thread; /* @@ -293,10 +294,11 @@ msgring_process(void *arg) /* First bind this thread to the right CPU */ thread_lock(td); + sched_bind(td, ithd->i_cpu); thread_unlock(td); - atomic_store_rel_ptr((volatile uintptr_t *)&msgring_ithreads[ithd->i_cpu], + atomic_store_rel_ptr((volatile uintptr_t *)&msgring_ithreads[ithd->i_core], (uintptr_t)arg); enable_msgring_int(NULL); @@ -327,7 +329,7 @@ msgring_process(void *arg) } static void -create_msgring_thread(int cpu) +create_msgring_thread(int core, int cpu) { struct msgring_ithread *ithd; struct thread *td; @@ -348,12 +350,13 @@ create_msgring_thread(int cpu) ithd->i_thread = td; ithd->i_pending = 0; ithd->i_cpu = cpu; + ithd->i_core = core; thread_lock(td); sched_class(td, PRI_ITHD); sched_add(td, SRQ_INTR); thread_unlock(td); - CTR2(KTR_INTR, "%s: created %s", __func__, ithd_name[cpu]); + CTR2(KTR_INTR, "%s: created %s", __func__, ithd_name[core]); } int @@ -376,7 +379,7 @@ register_msgring_handler(int major, mtx_unlock_spin(&msgrng_lock); if (xlr_test_and_set(&msgring_int_enabled)) { - create_msgring_thread(0); + create_msgring_thread(0, 0); cpu_establish_hardintr("msgring", (driver_filter_t *) msgring_process_fast_intr, NULL, NULL, IRQ_MSGRING, INTR_TYPE_NET | INTR_FAST, &cookie); @@ -429,13 +432,15 @@ on_chip_init(void) static void start_msgring_threads(void *arg) { - uint32_t cpu_mask; - int cpu; + int core, cpu; - cpu_mask = PCPU_GET(cpumask) | PCPU_GET(other_cpus); - for (cpu = 4; cpu < MAXCPU; cpu += 4) - if (cpu_mask & (1<> (4 * core)) & 0xf) { + /* start one thread for an enabled core */ + cpu = xlr_hwtid_to_cpuid[4 * core]; + create_msgring_thread(core, cpu); + } + } } SYSINIT(start_msgring_threads, SI_SUB_SMP, SI_ORDER_MIDDLE, start_msgring_threads, NULL); Modified: head/sys/mips/rmi/xlr_machdep.c ============================================================================== --- head/sys/mips/rmi/xlr_machdep.c Fri May 21 04:48:40 2010 (r208368) +++ head/sys/mips/rmi/xlr_machdep.c Fri May 21 05:34:19 2010 (r208369) @@ -75,13 +75,7 @@ __FBSDID("$FreeBSD$"); #include #include -#ifdef XLR_PERFMON -#include -#endif - void mpwait(void); -void enable_msgring_int(void *arg); - unsigned long xlr_io_base = (unsigned long)(DEFAULT_XLR_IO_BASE); /* 4KB static data aread to keep a copy of the bootload env until @@ -100,164 +94,140 @@ uint64_t cpu_mask_info; uint32_t xlr_online_cpumask; uint32_t xlr_core_cpu_mask = 0x1; /* Core 0 thread 0 is always there */ -void -platform_reset(void) -{ - /* FIXME : use proper define */ - u_int32_t *mmio = (u_int32_t *) 0xbef18000; - - printf("Rebooting the system now\n"); - mmio[8] = 0x1; -} +int xlr_shtlb_enabled; +int xlr_ncores; +int xlr_threads_per_core; +uint32_t xlr_hw_thread_mask; +int xlr_cpuid_to_hwtid[MAXCPU]; +int xlr_hwtid_to_cpuid[MAXCPU]; -int xlr_asid_pcpu = 256; /* This the default */ -int xlr_shtlb_enabled = 0; - -/* This function sets up the number of tlb entries available - to the kernel based on the number of threads brought up. - The ASID range also gets divided similarly. - THE NUMBER OF THREADS BROUGHT UP IN EACH CORE MUST BE THE SAME -NOTE: This function will mark all 64TLB entries as available -to the threads brought up in the core. If kernel is brought with say mask -0x33333333, no TLBs will be available to the threads in each core. -*/ static void -setup_tlb_resource(void) +xlr_setup_mmu_split(void) { int mmu_setup; - int value = 0; - uint32_t cpu_map = xlr_boot1_info.cpu_online_map; - uint32_t thr_mask = cpu_map >> (xlr_core_id() << 2); - uint8_t core0 = xlr_boot1_info.cpu_online_map & 0xf; - uint8_t core_thr_mask; - int i = 0, count = 0; + int val = 0; - /* If CPU0 did not enable shared TLB, other cores need to follow */ - if ((xlr_core_id() != 0) && (xlr_shtlb_enabled == 0)) - return; - /* First check if each core is brought up with the same mask */ - for (i = 1; i < 8; i++) { - core_thr_mask = cpu_map >> (i << 2); - core_thr_mask &= 0xf; - if (core_thr_mask && core_thr_mask != core0) { - printf - ("Each core must be brought with same cpu mask\n"); - printf("Cannot enabled shared TLB. "); - printf("Falling back to split TLB mode\n"); - return; - } - } + if (xlr_threads_per_core == 4 && xlr_shtlb_enabled == 0) + return; /* no change from boot setup */ - xlr_shtlb_enabled = 1; - for (i = 0; i < 4; i++) - if (thr_mask & (1 << i)) - count++; - switch (count) { - case 1: - xlr_asid_pcpu = 256; - break; - case 2: - xlr_asid_pcpu = 128; - value = 0x2; - break; - default: - xlr_asid_pcpu = 64; - value = 0x3; - break; + switch (xlr_threads_per_core) { + case 1: + val = 0; break; + case 2: + val = 2; break; + case 4: + val = 3; break; } - + mmu_setup = read_32bit_phnx_ctrl_reg(4, 0); mmu_setup = mmu_setup & ~0x06; - mmu_setup |= (value << 1); + mmu_setup |= (val << 1); /* turn on global mode */ -#ifndef SMP - mmu_setup |= 0x01; -#endif - write_32bit_phnx_ctrl_reg(4, 0, mmu_setup); + if (xlr_shtlb_enabled) + mmu_setup |= 0x01; + write_32bit_phnx_ctrl_reg(4, 0, mmu_setup); } - -/* - * Platform specific register setup for CPUs - * XLR has control registers accessible with MFCR/MTCR instructions, this - * code initialized them from the environment variable xlr.cr of form: - * xlr.cr=reg:val[,reg:val]*, all values in hex. - * To enable shared TLB option use xlr.shtlb=1 - */ -void -platform_cpu_init() +static void +xlr_parse_mmu_options(void) { - char *hw_env; - char *start, *end; - uint32_t reg, val; - int thr_id = xlr_thr_id(); +#ifdef notyet + char *hw_env, *start, *end; +#endif + uint32_t cpu_map; + uint8_t core0_thr_mask, core_thr_mask; + int i, j, k; + + /* First check for the shared TLB setup */ + xlr_shtlb_enabled = 0; +#ifdef notyet + /* + * We don't support sharing TLB per core - TODO + */ + xlr_shtlb_enabled = 0; + if ((hw_env = getenv("xlr.shtlb")) != NULL) { + start = hw_env; + tmp = strtoul(start, &end, 0); + if (start != end) + xlr_shtlb_enabled = (tmp != 0); + else + printf("Bad value for xlr.shtlb [%s]\n", hw_env); + freeenv(hw_env); + } +#endif + /* + * XLR supports splitting the 64 TLB entries across one, two or four + * threads (split mode). XLR also allows the 64 TLB entries to be shared + * across all threads in the core using a global flag (shared TLB mode). + * We will support 1/2/4 threads in split mode or shared mode. + * + */ + xlr_ncores = 1; + cpu_map = xlr_boot1_info.cpu_online_map; + core0_thr_mask = cpu_map & 0xf; + switch (core0_thr_mask) { + case 1: + xlr_threads_per_core = 1; break; + case 3: + xlr_threads_per_core = 2; break; + case 0xf: + xlr_threads_per_core = 4; break; + default: + goto unsupp; + } -/* - * XXX: SMP now need different wired mappings for threads - * we cannot share TLBs. - */ - if (thr_id == 0) { - if ((hw_env = getenv("xlr.shtlb")) != NULL) { - start = hw_env; - reg = strtoul(start, &end, 16); - if (start != end && reg != 0) - setup_tlb_resource(); - } else { - /* By default TLB entries are shared in a core */ - setup_tlb_resource(); + /* Verify other cores CPU masks */ + for (i = 1; i < XLR_MAX_CORES; i++) { + core_thr_mask = (cpu_map >> (i*4)) & 0xf; + if (core_thr_mask) { + if (core_thr_mask != core0_thr_mask) + goto unsupp; + xlr_ncores++; } } - if ((hw_env = getenv("xlr.cr")) == NULL) - return; - start = hw_env; - while (*start != '\0') { - reg = strtoul(start, &end, 16); - if (start == end) { - printf("Invalid value in xlr.cr %s, cannot read a hex value at %d\n", - hw_env, start - hw_env); - goto err_return; - } - if (*end != ':') { - printf("Invalid format in xlr.cr %s, ':' expected at pos %d\n", - hw_env, end - hw_env); - goto err_return; - } - start = end + 1;/* step over ':' */ - val = strtoul(start, &end, 16); - if (start == end) { - printf("Invalid value in xlr.cr %s, cannot read a hex value at pos %d\n", - hw_env, start - hw_env); - goto err_return; + /* setup hardware processor id to cpu id mapping */ + xlr_hw_thread_mask = xlr_boot1_info.cpu_online_map; + for (i = 0; i< MAXCPU; i++) + xlr_cpuid_to_hwtid[i] = + xlr_hwtid_to_cpuid [i] = -1; + for (i = 0, k = 0; i < XLR_MAX_CORES; i++) { + if (((cpu_map >> (i*4)) & 0xf) == 0) + continue; + for (j = 0; j < xlr_threads_per_core; j++) { + xlr_cpuid_to_hwtid[k] = i*4 + j; + xlr_hwtid_to_cpuid[i*4 + j] = k; + k++; } - if (*end != ',' && *end != '\0') { - printf("Invalid format in xlr.cr %s, ',' expected at pos %d\n", - hw_env, end - hw_env); - goto err_return; - } - xlr_mtcr(reg, val); - if (*end == ',') - start = end + 1; /* skip over ',' */ - else - start = end; } - freeenv(hw_env); + + /* setup for the startup core */ + xlr_setup_mmu_split(); return; -err_return: - panic("Invalid xlr.cr setting!"); +unsupp: + printf("ERROR : Unsupported CPU mask [use 1,2 or 4 threads per core].\n" + "\tcore0 thread mask [%lx], boot cpu mask [%lx]\n" + "\tUsing default, 16 TLB entries per CPU, split mode\n", + (u_long)core0_thr_mask, (u_long)cpu_map); + panic("Invalid CPU mask - halting.\n"); return; } - static void xlr_set_boot_flags(void) { char *p; - for (p = getenv("boot_flags"); p && *p != '\0'; p++) { + p = getenv("bootflags"); + if (p == NULL) + p = getenv("boot_flags"); /* old style */ + if (p == NULL) + return; + + for (; p && *p != '\0'; p++) { switch (*p) { case 'd': case 'D': @@ -283,9 +253,7 @@ xlr_set_boot_flags(void) } } - if (p) - freeenv(p); - + freeenv(p); return; } extern uint32_t _end; @@ -307,7 +275,6 @@ mips_init(void) } #endif mips_proc0_init(); - write_c0_register32(MIPS_COP_0_OSSCRATCH, 7, pcpup->pc_curthread); mutex_init(); } @@ -325,11 +292,6 @@ platform_start(__register_t a0 __unused, void (*wakeup) (void *, void *, unsigned int); #endif - /* XXX no zeroing of BSS? */ - - /* Initialize pcpu stuff */ - mips_pcpu0_init(); - /* XXX FIXME the code below is not 64 bit clean */ /* Save boot loader and other stuff from scratch regs */ xlr_boot1_info = *(struct boot1_info *)read_c0_register32(MIPS_COP_0_OSSCRATCH, 0); @@ -343,6 +305,9 @@ platform_start(__register_t a0 __unused, /* TODO: Verify the magic number here */ /* FIXMELATER: xlr_boot1_info.magic_number */ + /* Initialize pcpu stuff */ + mips_pcpu0_init(); + /* initialize console so that we have printf */ boothowto |= (RB_SERIAL | RB_MULTIPLE); /* Use multiple consoles */ @@ -378,6 +343,7 @@ platform_start(__register_t a0 __unused, } xlr_set_boot_flags(); + xlr_parse_mmu_options(); /* get physical memory info from boot loader */ boot_map = (struct xlr_boot1_mem_map *) @@ -437,9 +403,6 @@ platform_start(__register_t a0 __unused, phys_avail[j] = phys_avail[j + 1] = 0; realmem = physmem = btoc(physsz); - /* Store pcpu in scratch 5 */ - write_c0_register32(MIPS_COP_0_OSSCRATCH, 5, pcpup); - /* Set up hz, among others. */ mips_init(); @@ -452,7 +415,7 @@ platform_start(__register_t a0 __unused, for (i = 4; i < MAXCPU; i += 4) { if ((tmp & (0xf << i)) && !(tmp & (0x1 << i))) { /* - * Oopps.. thread 0 is not available. Disable whole + * Oops.. thread 0 is not available. Disable whole * core */ tmp = tmp & ~(0xf << i); @@ -463,15 +426,6 @@ platform_start(__register_t a0 __unused, xlr_boot1_info.cpu_online_map = tmp; /* Wakeup Other cpus, and put them in bsd park code. */ - for (i = 1, j = 1; i < 32; i++) { - /* Allocate stack for all other cpus from fbsd kseg0 memory. */ - if ((1U << i) & xlr_boot1_info.cpu_online_map) { - if ((i & 0x3) == 0) /* store thread0 of each core */ - xlr_core_cpu_mask |= (1 << j); - j++; - } - } - wakeup = ((void (*) (void *, void *, unsigned int)) (unsigned long)(xlr_boot1_info.wakeup)); printf("Waking up CPUs 0x%llx.\n", xlr_boot1_info.cpu_online_map & ~(0x1U)); @@ -492,13 +446,16 @@ platform_start(__register_t a0 __unused, printf("Platform specific startup now completes\n"); } +void +platform_cpu_init() +{ +} + void platform_identify(void) { printf("Board [%d:%d], processor 0x%08x\n", (int)xlr_boot1_info.board_major_version, (int)xlr_boot1_info.board_minor_version, mips_rd_prid()); - - } /* @@ -511,6 +468,15 @@ platform_trap_enter(void) } void +platform_reset(void) +{ + xlr_reg_t *mmio = xlr_io_mmio(XLR_IO_GPIO_OFFSET); + + /* write 1 to GPIO software reset register */ + xlr_write_reg(mmio, 8, 1); +} + +void platform_trap_exit(void) { } @@ -518,20 +484,31 @@ platform_trap_exit(void) #ifdef SMP int xlr_ap_release[MAXCPU]; -int platform_start_ap(int cpuid) +int +platform_start_ap(int cpuid) { - /* - * other cpus are enabled by the boot loader and they will be - * already looping in mpwait, release them - */ - atomic_store_rel_int(&xlr_ap_release[cpuid], 1); - return 0; + int hwid = xlr_cpuid_to_hwtid[cpuid]; + + if (xlr_boot1_info.cpu_online_map & (1< Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 40222106566B; Fri, 21 May 2010 08:50:35 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 15AC88FC19; Fri, 21 May 2010 08:50:35 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4L8oYEE064624; Fri, 21 May 2010 08:50:34 GMT (envelope-from mm@svn.freebsd.org) Received: (from mm@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4L8oYLD064621; Fri, 21 May 2010 08:50:34 GMT (envelope-from mm@svn.freebsd.org) Message-Id: <201005210850.o4L8oYLD064621@svn.freebsd.org> From: Martin Matuska Date: Fri, 21 May 2010 08:50:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208370 - in head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 08:50:35 -0000 Author: mm Date: Fri May 21 08:50:34 2010 New Revision: 208370 URL: http://svn.freebsd.org/changeset/base/208370 Log: Fix: vdev_reopen() can lead to failed allocations OpenSolaris onnv-revision: 7980:589f37f25048 Approved by: pjd, delphij (mentor) Obtained from: OpenSolaris (Bug ID 6764914) MFC after: 3 days Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c Fri May 21 05:34:19 2010 (r208369) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/metaslab.c Fri May 21 08:50:34 2010 (r208370) @@ -781,7 +781,7 @@ top: /* * Don't allocate from faulted devices. */ - if (!vdev_writeable(vd)) + if (!vdev_allocatable(vd)) goto next; /* * Avoid writing single-copy data to a failing vdev Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h Fri May 21 05:34:19 2010 (r208369) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h Fri May 21 08:50:34 2010 (r208370) @@ -85,6 +85,7 @@ extern void vdev_clear(spa_t *spa, vdev_ extern boolean_t vdev_is_dead(vdev_t *vd); extern boolean_t vdev_readable(vdev_t *vd); extern boolean_t vdev_writeable(vdev_t *vd); +extern boolean_t vdev_allocatable(vdev_t *vd); extern boolean_t vdev_accessible(vdev_t *vd, zio_t *zio); extern void vdev_cache_init(vdev_t *vd); Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c Fri May 21 05:34:19 2010 (r208369) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev.c Fri May 21 08:50:34 2010 (r208370) @@ -1861,6 +1861,19 @@ vdev_writeable(vdev_t *vd) } boolean_t +vdev_allocatable(vdev_t *vd) +{ + /* + * We currently allow allocations from vdevs which maybe in the + * process of reopening (i.e. VDEV_STATE_CLOSED). If the device + * fails to reopen then we'll catch it later when we're holding + * the proper locks. + */ + return (!(vdev_is_dead(vd) && vd->vdev_state != VDEV_STATE_CLOSED) && + !vd->vdev_cant_write); +} + +boolean_t vdev_accessible(vdev_t *vd, zio_t *zio) { ASSERT(zio->io_vd == vd); From owner-svn-src-all@FreeBSD.ORG Fri May 21 08:55:18 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7BC371065672; Fri, 21 May 2010 08:55:18 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6AD5E8FC18; Fri, 21 May 2010 08:55:18 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4L8tIs6065717; Fri, 21 May 2010 08:55:18 GMT (envelope-from mm@svn.freebsd.org) Received: (from mm@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4L8tIRt065714; Fri, 21 May 2010 08:55:18 GMT (envelope-from mm@svn.freebsd.org) Message-Id: <201005210855.o4L8tIRt065714@svn.freebsd.org> From: Martin Matuska Date: Fri, 21 May 2010 08:55:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208371 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 08:55:18 -0000 Author: mm Date: Fri May 21 08:55:18 2010 New Revision: 208371 URL: http://svn.freebsd.org/changeset/base/208371 Log: Fix stack overflow in zfs send. OpenSolaris onnv-revision: 8012:8ea30813950f Approved by: pjd, delphij (mentor) Obtained from: OpenSolaris (Bug ID 6765626) MFC after: 3 days Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c Fri May 21 08:50:34 2010 (r208370) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_traverse.c Fri May 21 08:55:18 2010 (r208371) @@ -134,6 +134,7 @@ static int traverse_visitbp(struct traverse_data *td, const dnode_phys_t *dnp, arc_buf_t *pbuf, blkptr_t *bp, const zbookmark_t *zb) { + zbookmark_t czb; int err = 0; arc_buf_t *buf = NULL; struct prefetch_data *pd = td->td_pfd; @@ -179,8 +180,6 @@ traverse_visitbp(struct traverse_data *t /* recursively visitbp() blocks below this */ cbp = buf->b_data; for (i = 0; i < epb; i++, cbp++) { - zbookmark_t czb; - SET_BOOKMARK(&czb, zb->zb_objset, zb->zb_object, zb->zb_level - 1, zb->zb_blkid * epb + i); @@ -203,8 +202,6 @@ traverse_visitbp(struct traverse_data *t dnp = buf->b_data; for (i = 0; i < epb && err == 0; i++, dnp++) { for (j = 0; j < dnp->dn_nblkptr; j++) { - zbookmark_t czb; - SET_BOOKMARK(&czb, zb->zb_objset, zb->zb_blkid * epb + i, dnp->dn_nlevels - 1, j); @@ -229,8 +226,6 @@ traverse_visitbp(struct traverse_data *t traverse_zil(td, &osp->os_zil_header); for (j = 0; j < osp->os_meta_dnode.dn_nblkptr; j++) { - zbookmark_t czb; - SET_BOOKMARK(&czb, zb->zb_objset, 0, osp->os_meta_dnode.dn_nlevels - 1, j); err = traverse_visitbp(td, &osp->os_meta_dnode, buf, Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Fri May 21 08:50:34 2010 (r208370) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c Fri May 21 08:55:18 2010 (r208371) @@ -2367,9 +2367,10 @@ zfs_ioc_rollback(zfs_cmd_t *zc) } if (zfsvfs != NULL) { - char osname[MAXNAMELEN]; + char *osname; int mode; + osname = kmem_alloc(MAXNAMELEN, KM_SLEEP); error = zfs_suspend_fs(zfsvfs, osname, &mode); if (error == 0) { int resume_err; @@ -2381,6 +2382,7 @@ zfs_ioc_rollback(zfs_cmd_t *zc) } else { dmu_objset_close(os); } + kmem_free(osname, MAXNAMELEN); VFS_RELE(zfsvfs->z_vfs); } else { error = dmu_objset_rollback(os); @@ -2552,10 +2554,11 @@ zfs_ioc_recv(zfs_cmd_t *zc) error = dmu_recv_stream(&drc, fp, &off); if (error == 0 && zfsvfs) { - char osname[MAXNAMELEN]; + char *osname; int mode; /* online recv */ + osname = kmem_alloc(MAXNAMELEN, KM_SLEEP); error = zfs_suspend_fs(zfsvfs, osname, &mode); if (error == 0) { int resume_err; @@ -2566,6 +2569,7 @@ zfs_ioc_recv(zfs_cmd_t *zc) } else { dmu_recv_abort_cleanup(&drc); } + kmem_free(osname, MAXNAMELEN); } else if (error == 0) { error = dmu_recv_end(&drc); } @@ -2616,16 +2620,18 @@ zfs_ioc_send(zfs_cmd_t *zc) return (error); if (zc->zc_value[0] != '\0') { - char buf[MAXPATHLEN]; + char *buf; char *cp; - (void) strncpy(buf, zc->zc_name, sizeof (buf)); + buf = kmem_alloc(MAXPATHLEN, KM_SLEEP); + (void) strncpy(buf, zc->zc_name, MAXPATHLEN); cp = strchr(buf, '@'); if (cp) *(cp+1) = 0; - (void) strlcat(buf, zc->zc_value, sizeof (buf)); + (void) strlcat(buf, zc->zc_value, MAXPATHLEN); error = dmu_objset_open(buf, DMU_OST_ANY, DS_MODE_USER | DS_MODE_READONLY, &fromsnap); + kmem_free(buf, MAXPATHLEN); if (error) { dmu_objset_close(tosnap); return (error); From owner-svn-src-all@FreeBSD.ORG Fri May 21 09:35:28 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6814F1065719; Fri, 21 May 2010 09:35:28 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5639C8FC14; Fri, 21 May 2010 09:35:28 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4L9ZSBw074680; Fri, 21 May 2010 09:35:28 GMT (envelope-from mm@svn.freebsd.org) Received: (from mm@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4L9ZSIu074676; Fri, 21 May 2010 09:35:28 GMT (envelope-from mm@svn.freebsd.org) Message-Id: <201005210935.o4L9ZSIu074676@svn.freebsd.org> From: Martin Matuska Date: Fri, 21 May 2010 09:35:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208372 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 09:35:28 -0000 Author: mm Date: Fri May 21 09:35:28 2010 New Revision: 208372 URL: http://svn.freebsd.org/changeset/base/208372 Log: Reorder some already introduced locking variables. OpenSolaris onnv revision: 8214:d7abf7c1f1c1 Approved by: pjd, delphij (mentor) Obtained from: OpenSolaris (Bug ID 6747934) MFC after: 3 days Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c Fri May 21 08:55:18 2010 (r208371) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c Fri May 21 09:35:28 2010 (r208372) @@ -53,10 +53,11 @@ dnode_cons(void *arg, void *unused, int dnode_t *dn = arg; bzero(dn, sizeof (dnode_t)); - cv_init(&dn->dn_notxholds, NULL, CV_DEFAULT, NULL); rw_init(&dn->dn_struct_rwlock, NULL, RW_DEFAULT, NULL); mutex_init(&dn->dn_mtx, NULL, MUTEX_DEFAULT, NULL); mutex_init(&dn->dn_dbufs_mtx, NULL, MUTEX_DEFAULT, NULL); + cv_init(&dn->dn_notxholds, NULL, CV_DEFAULT, NULL); + refcount_create(&dn->dn_holds); refcount_create(&dn->dn_tx_holds); @@ -82,10 +83,10 @@ dnode_dest(void *arg, void *unused) int i; dnode_t *dn = arg; - cv_destroy(&dn->dn_notxholds); rw_destroy(&dn->dn_struct_rwlock); mutex_destroy(&dn->dn_mtx); mutex_destroy(&dn->dn_dbufs_mtx); + cv_destroy(&dn->dn_notxholds); refcount_destroy(&dn->dn_holds); refcount_destroy(&dn->dn_tx_holds); Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c Fri May 21 08:55:18 2010 (r208371) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/space_map.c Fri May 21 09:35:28 2010 (r208372) @@ -23,8 +23,6 @@ * Use is subject to license terms. */ -#pragma ident "%Z%%M% %I% %E% SMI" - #include #include #include @@ -61,6 +59,7 @@ space_map_create(space_map_t *sm, uint64 bzero(sm, sizeof (*sm)); cv_init(&sm->sm_load_cv, NULL, CV_DEFAULT, NULL); + avl_create(&sm->sm_root, space_map_seg_compare, sizeof (space_seg_t), offsetof(struct space_seg, ss_node)); Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c Fri May 21 08:55:18 2010 (r208371) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/txg.c Fri May 21 09:35:28 2010 (r208372) @@ -79,6 +79,7 @@ txg_init(dsl_pool_t *dp, uint64_t txg) rw_init(&tx->tx_suspend, NULL, RW_DEFAULT, NULL); mutex_init(&tx->tx_sync_lock, NULL, MUTEX_DEFAULT, NULL); + cv_init(&tx->tx_sync_more_cv, NULL, CV_DEFAULT, NULL); cv_init(&tx->tx_sync_done_cv, NULL, CV_DEFAULT, NULL); cv_init(&tx->tx_quiesce_more_cv, NULL, CV_DEFAULT, NULL); @@ -99,14 +100,15 @@ txg_fini(dsl_pool_t *dp) ASSERT(tx->tx_threads == 0); - cv_destroy(&tx->tx_exit_cv); - cv_destroy(&tx->tx_quiesce_done_cv); - cv_destroy(&tx->tx_quiesce_more_cv); - cv_destroy(&tx->tx_sync_done_cv); - cv_destroy(&tx->tx_sync_more_cv); rw_destroy(&tx->tx_suspend); mutex_destroy(&tx->tx_sync_lock); + cv_destroy(&tx->tx_sync_more_cv); + cv_destroy(&tx->tx_sync_done_cv); + cv_destroy(&tx->tx_quiesce_more_cv); + cv_destroy(&tx->tx_quiesce_done_cv); + cv_destroy(&tx->tx_exit_cv); + for (c = 0; c < max_ncpus; c++) { int i; From owner-svn-src-all@FreeBSD.ORG Fri May 21 09:52:49 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A0C441065672; Fri, 21 May 2010 09:52:49 +0000 (UTC) (envelope-from mm@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8E8DF8FC1A; Fri, 21 May 2010 09:52:49 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4L9qnbM078473; Fri, 21 May 2010 09:52:49 GMT (envelope-from mm@svn.freebsd.org) Received: (from mm@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4L9qnXe078468; Fri, 21 May 2010 09:52:49 GMT (envelope-from mm@svn.freebsd.org) Message-Id: <201005210952.o4L9qnXe078468@svn.freebsd.org> From: Martin Matuska Date: Fri, 21 May 2010 09:52:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208373 - in head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 09:52:49 -0000 Author: mm Date: Fri May 21 09:52:49 2010 New Revision: 208373 URL: http://svn.freebsd.org/changeset/base/208373 Log: Update L2ARC code and fix several bugs. - improve ARC memory consumption (Bug ID 6488341) - ARC/L2ARC metadata accounting (Bug ID 6748019) - L2ARC turbo warmup (Bud ID 6748023) - kstats for ARC content (Bug ID 6748023) - kstats for evicted bytes from ARC by L2ARC state (Bud ID 6871680) - fix panic on i386 systems (Bug ID 6821260) OpenSolaris onnv revisions: 8582:df9361868dbe, 8628:97dcded6e556, 9215:7c4584f76b47, 9274:a10f8bd993c1, 10357:29060492b29d OpenSolaris Bug IDs: 6748019, 6748023, 6748030, 6488341, 6798268, 6821260, 6790261, 6871680 Approved by: pjd, delphij (mentor) Obtained from: OpenSlaris (multiple bug IDs) MFC after: 3 days Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/arc.h Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c Fri May 21 09:35:28 2010 (r208372) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c Fri May 21 09:52:49 2010 (r208373) @@ -19,7 +19,7 @@ * CDDL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -152,14 +152,20 @@ typedef enum arc_reclaim_strategy { /* number of seconds before growing cache again */ static int arc_grow_retry = 60; +/* shift of arc_c for calculating both min and max arc_p */ +static int arc_p_min_shift = 4; + +/* log2(fraction of arc to reclaim) */ +static int arc_shrink_shift = 5; + /* * minimum lifespan of a prefetch block in clock ticks * (initialized in arc_init()) */ static int arc_min_prefetch_lifespan; -extern int zfs_prefetch_disable; static int arc_dead; +extern int zfs_prefetch_disable; /* * The arc has filled available memory and has now warmed up. @@ -173,6 +179,9 @@ uint64_t zfs_arc_max; uint64_t zfs_arc_min; uint64_t zfs_arc_meta_limit = 0; int zfs_mdcomp_disable = 0; +int zfs_arc_grow_retry = 0; +int zfs_arc_shrink_shift = 0; +int zfs_arc_p_min_shift = 0; TUNABLE_QUAD("vfs.zfs.arc_max", &zfs_arc_max); TUNABLE_QUAD("vfs.zfs.arc_min", &zfs_arc_min); @@ -277,6 +286,9 @@ typedef struct arc_stats { kstat_named_t arcstat_recycle_miss; kstat_named_t arcstat_mutex_miss; kstat_named_t arcstat_evict_skip; + kstat_named_t arcstat_evict_l2_cached; + kstat_named_t arcstat_evict_l2_eligible; + kstat_named_t arcstat_evict_l2_ineligible; kstat_named_t arcstat_hash_elements; kstat_named_t arcstat_hash_elements_max; kstat_named_t arcstat_hash_collisions; @@ -288,10 +300,14 @@ typedef struct arc_stats { kstat_named_t arcstat_c_max; kstat_named_t arcstat_size; kstat_named_t arcstat_hdr_size; + kstat_named_t arcstat_data_size; + kstat_named_t arcstat_other_size; kstat_named_t arcstat_l2_hits; kstat_named_t arcstat_l2_misses; kstat_named_t arcstat_l2_feeds; kstat_named_t arcstat_l2_rw_clash; + kstat_named_t arcstat_l2_read_bytes; + kstat_named_t arcstat_l2_write_bytes; kstat_named_t arcstat_l2_writes_sent; kstat_named_t arcstat_l2_writes_done; kstat_named_t arcstat_l2_writes_error; @@ -341,6 +357,9 @@ static arc_stats_t arc_stats = { { "recycle_miss", KSTAT_DATA_UINT64 }, { "mutex_miss", KSTAT_DATA_UINT64 }, { "evict_skip", KSTAT_DATA_UINT64 }, + { "evict_l2_cached", KSTAT_DATA_UINT64 }, + { "evict_l2_eligible", KSTAT_DATA_UINT64 }, + { "evict_l2_ineligible", KSTAT_DATA_UINT64 }, { "hash_elements", KSTAT_DATA_UINT64 }, { "hash_elements_max", KSTAT_DATA_UINT64 }, { "hash_collisions", KSTAT_DATA_UINT64 }, @@ -352,10 +371,14 @@ static arc_stats_t arc_stats = { { "c_max", KSTAT_DATA_UINT64 }, { "size", KSTAT_DATA_UINT64 }, { "hdr_size", KSTAT_DATA_UINT64 }, + { "data_size", KSTAT_DATA_UINT64 }, + { "other_size", KSTAT_DATA_UINT64 }, { "l2_hits", KSTAT_DATA_UINT64 }, { "l2_misses", KSTAT_DATA_UINT64 }, { "l2_feeds", KSTAT_DATA_UINT64 }, { "l2_rw_clash", KSTAT_DATA_UINT64 }, + { "l2_read_bytes", KSTAT_DATA_UINT64 }, + { "l2_write_bytes", KSTAT_DATA_UINT64 }, { "l2_writes_sent", KSTAT_DATA_UINT64 }, { "l2_writes_done", KSTAT_DATA_UINT64 }, { "l2_writes_error", KSTAT_DATA_UINT64 }, @@ -519,6 +542,8 @@ static void arc_access(arc_buf_hdr_t *bu static int arc_evict_needed(arc_buf_contents_t type); static void arc_evict_ghost(arc_state_t *state, spa_t *spa, int64_t bytes); +static boolean_t l2arc_write_eligible(spa_t *spa, arc_buf_hdr_t *ab); + #define GHOST_STATE(state) \ ((state) == arc_mru_ghost || (state) == arc_mfu_ghost || \ (state) == arc_l2c_only) @@ -546,6 +571,7 @@ static void arc_evict_ghost(arc_state_t #define HDR_IN_HASH_TABLE(hdr) ((hdr)->b_flags & ARC_IN_HASH_TABLE) #define HDR_IO_IN_PROGRESS(hdr) ((hdr)->b_flags & ARC_IO_IN_PROGRESS) #define HDR_IO_ERROR(hdr) ((hdr)->b_flags & ARC_IO_ERROR) +#define HDR_PREFETCH(hdr) ((hdr)->b_flags & ARC_PREFETCH) #define HDR_FREED_IN_READ(hdr) ((hdr)->b_flags & ARC_FREED_IN_READ) #define HDR_BUF_AVAILABLE(hdr) ((hdr)->b_flags & ARC_BUF_AVAILABLE) #define HDR_FREE_IN_PROGRESS(hdr) ((hdr)->b_flags & ARC_FREE_IN_PROGRESS) @@ -603,10 +629,10 @@ extern kmem_cache_t *zio_data_buf_cache[ * Level 2 ARC */ -#define L2ARC_WRITE_SIZE (64 * 1024 * 1024) /* initial write max */ -#define L2ARC_HEADROOM 128 /* num of writes */ -#define L2ARC_FEED_SECS 1 /* caching interval */ -#define L2ARC_FEED_SECS_SHIFT 1 /* caching interval shift */ +#define L2ARC_WRITE_SIZE (8 * 1024 * 1024) /* initial write max */ +#define L2ARC_HEADROOM 2 /* num of writes */ +#define L2ARC_FEED_SECS 1 /* caching interval secs */ +#define L2ARC_FEED_MIN_MS 200 /* min caching interval ms */ #define l2arc_writes_sent ARCSTAT(arcstat_l2_writes_sent) #define l2arc_writes_done ARCSTAT(arcstat_l2_writes_done) @@ -618,9 +644,10 @@ uint64_t l2arc_write_max = L2ARC_WRITE_S uint64_t l2arc_write_boost = L2ARC_WRITE_SIZE; /* extra write during warmup */ uint64_t l2arc_headroom = L2ARC_HEADROOM; /* number of dev writes */ uint64_t l2arc_feed_secs = L2ARC_FEED_SECS; /* interval seconds */ -uint64_t l2arc_feed_secs_shift = L2ARC_FEED_SECS_SHIFT; /* interval seconds shift */ +uint64_t l2arc_feed_min_ms = L2ARC_FEED_MIN_MS; /* min interval milliseconds */ boolean_t l2arc_noprefetch = B_FALSE; /* don't cache prefetch bufs */ - +boolean_t l2arc_feed_again = B_TRUE; /* turbo warmup */ +boolean_t l2arc_norw = B_TRUE; /* no reads during writes */ SYSCTL_QUAD(_vfs_zfs, OID_AUTO, l2arc_write_max, CTLFLAG_RW, &l2arc_write_max, 0, "max write size"); @@ -630,12 +657,15 @@ SYSCTL_QUAD(_vfs_zfs, OID_AUTO, l2arc_he &l2arc_headroom, 0, "number of dev writes"); SYSCTL_QUAD(_vfs_zfs, OID_AUTO, l2arc_feed_secs, CTLFLAG_RW, &l2arc_feed_secs, 0, "interval seconds"); -SYSCTL_QUAD(_vfs_zfs, OID_AUTO, l2arc_feed_secs_shift, CTLFLAG_RW, - &l2arc_feed_secs_shift, 0, "power of 2 division of feed seconds"); +SYSCTL_QUAD(_vfs_zfs, OID_AUTO, l2arc_feed_min_ms, CTLFLAG_RW, + &l2arc_feed_min_ms, 0, "min interval milliseconds"); SYSCTL_INT(_vfs_zfs, OID_AUTO, l2arc_noprefetch, CTLFLAG_RW, &l2arc_noprefetch, 0, "don't cache prefetch bufs"); - +SYSCTL_INT(_vfs_zfs, OID_AUTO, l2arc_feed_again, CTLFLAG_RW, + &l2arc_feed_again, 0, "turbo warmup"); +SYSCTL_INT(_vfs_zfs, OID_AUTO, l2arc_norw, CTLFLAG_RW, + &l2arc_norw, 0, "no reads during writes"); SYSCTL_QUAD(_vfs_zfs, OID_AUTO, anon_size, CTLFLAG_RD, &ARC_anon.arcs_size, 0, "size of anonymous state"); @@ -692,6 +722,7 @@ typedef struct l2arc_dev { uint64_t l2ad_end; /* last addr on device */ uint64_t l2ad_evict; /* last addr eviction reached */ boolean_t l2ad_first; /* first sweep through */ + boolean_t l2ad_writing; /* currently writing */ list_t *l2ad_buflist; /* buffer list */ list_node_t l2ad_node; /* device list node */ } l2arc_dev_t; @@ -722,7 +753,7 @@ typedef struct l2arc_write_callback { struct l2arc_buf_hdr { /* protected by arc_buf_hdr mutex */ l2arc_dev_t *b_dev; /* L2ARC device */ - daddr_t b_daddr; /* disk address, offset byte */ + uint64_t b_daddr; /* disk address, offset byte */ }; typedef struct l2arc_data_free { @@ -890,8 +921,8 @@ hdr_cons(void *vbuf, void *unused, int k refcount_create(&buf->b_refcnt); cv_init(&buf->b_cv, NULL, CV_DEFAULT, NULL); mutex_init(&buf->b_freeze_lock, NULL, MUTEX_DEFAULT, NULL); + arc_space_consume(sizeof (arc_buf_hdr_t), ARC_SPACE_HDRS); - ARCSTAT_INCR(arcstat_hdr_size, HDR_SIZE); return (0); } @@ -903,6 +934,8 @@ buf_cons(void *vbuf, void *unused, int k bzero(buf, sizeof (arc_buf_t)); rw_init(&buf->b_lock, NULL, RW_DEFAULT, NULL); + arc_space_consume(sizeof (arc_buf_t), ARC_SPACE_HDRS); + return (0); } @@ -919,8 +952,7 @@ hdr_dest(void *vbuf, void *unused) refcount_destroy(&buf->b_refcnt); cv_destroy(&buf->b_cv); mutex_destroy(&buf->b_freeze_lock); - - ARCSTAT_INCR(arcstat_hdr_size, -HDR_SIZE); + arc_space_return(sizeof (arc_buf_hdr_t), ARC_SPACE_HDRS); } /* ARGSUSED */ @@ -930,6 +962,7 @@ buf_dest(void *vbuf, void *unused) arc_buf_t *buf = vbuf; rw_destroy(&buf->b_lock); + arc_space_return(sizeof (arc_buf_t), ARC_SPACE_HDRS); } /* @@ -1245,15 +1278,49 @@ arc_change_state(arc_state_t *new_state, } void -arc_space_consume(uint64_t space) +arc_space_consume(uint64_t space, arc_space_type_t type) { + ASSERT(type >= 0 && type < ARC_SPACE_NUMTYPES); + + switch (type) { + case ARC_SPACE_DATA: + ARCSTAT_INCR(arcstat_data_size, space); + break; + case ARC_SPACE_OTHER: + ARCSTAT_INCR(arcstat_other_size, space); + break; + case ARC_SPACE_HDRS: + ARCSTAT_INCR(arcstat_hdr_size, space); + break; + case ARC_SPACE_L2HDRS: + ARCSTAT_INCR(arcstat_l2_hdr_size, space); + break; + } + atomic_add_64(&arc_meta_used, space); atomic_add_64(&arc_size, space); } void -arc_space_return(uint64_t space) +arc_space_return(uint64_t space, arc_space_type_t type) { + ASSERT(type >= 0 && type < ARC_SPACE_NUMTYPES); + + switch (type) { + case ARC_SPACE_DATA: + ARCSTAT_INCR(arcstat_data_size, -space); + break; + case ARC_SPACE_OTHER: + ARCSTAT_INCR(arcstat_other_size, -space); + break; + case ARC_SPACE_HDRS: + ARCSTAT_INCR(arcstat_hdr_size, -space); + break; + case ARC_SPACE_L2HDRS: + ARCSTAT_INCR(arcstat_l2_hdr_size, -space); + break; + } + ASSERT(arc_meta_used >= space); if (arc_meta_max < arc_meta_used) arc_meta_max = arc_meta_used; @@ -1353,6 +1420,7 @@ arc_buf_add_ref(arc_buf_t *buf, void* ta ASSERT(hdr->b_state == arc_mru || hdr->b_state == arc_mfu); add_reference(hdr, hash_lock, tag); + DTRACE_PROBE1(arc__hit, arc_buf_hdr_t *, hdr); arc_access(hdr, hash_lock); mutex_exit(hash_lock); ARCSTAT_BUMP(arcstat_hits); @@ -1400,11 +1468,12 @@ arc_buf_destroy(arc_buf_t *buf, boolean_ if (type == ARC_BUFC_METADATA) { arc_buf_data_free(buf->b_hdr, zio_buf_free, buf->b_data, size); - arc_space_return(size); + arc_space_return(size, ARC_SPACE_DATA); } else { ASSERT(type == ARC_BUFC_DATA); arc_buf_data_free(buf->b_hdr, zio_data_buf_free, buf->b_data, size); + ARCSTAT_INCR(arcstat_data_size, -size); atomic_add_64(&arc_size, -size); } } @@ -1699,6 +1768,21 @@ evict_start: buf->b_data == stolen, TRUE); } } + + if (ab->b_l2hdr) { + ARCSTAT_INCR(arcstat_evict_l2_cached, + ab->b_size); + } else { + if (l2arc_write_eligible(ab->b_spa, ab)) { + ARCSTAT_INCR(arcstat_evict_l2_eligible, + ab->b_size); + } else { + ARCSTAT_INCR( + arcstat_evict_l2_ineligible, + ab->b_size); + } + } + if (ab->b_datacnt == 0) { arc_change_state(evicted_state, ab, hash_lock); ASSERT(HDR_IN_HASH_TABLE(ab)); @@ -1871,61 +1955,63 @@ evict_start: static void arc_adjust(void) { - int64_t top_sz, mru_over, arc_over, todelete; + int64_t adjustment, delta; - top_sz = arc_anon->arcs_size + arc_mru->arcs_size + arc_meta_used; + /* + * Adjust MRU size + */ + + adjustment = MIN(arc_size - arc_c, + arc_anon->arcs_size + arc_mru->arcs_size + arc_meta_used - arc_p); - if (top_sz > arc_p && arc_mru->arcs_lsize[ARC_BUFC_DATA] > 0) { - int64_t toevict = - MIN(arc_mru->arcs_lsize[ARC_BUFC_DATA], top_sz - arc_p); - (void) arc_evict(arc_mru, NULL, toevict, FALSE, ARC_BUFC_DATA); - top_sz = arc_anon->arcs_size + arc_mru->arcs_size; + if (adjustment > 0 && arc_mru->arcs_lsize[ARC_BUFC_DATA] > 0) { + delta = MIN(arc_mru->arcs_lsize[ARC_BUFC_DATA], adjustment); + (void) arc_evict(arc_mru, NULL, delta, FALSE, ARC_BUFC_DATA); + adjustment -= delta; } - if (top_sz > arc_p && arc_mru->arcs_lsize[ARC_BUFC_METADATA] > 0) { - int64_t toevict = - MIN(arc_mru->arcs_lsize[ARC_BUFC_METADATA], top_sz - arc_p); - (void) arc_evict(arc_mru, NULL, toevict, FALSE, + if (adjustment > 0 && arc_mru->arcs_lsize[ARC_BUFC_METADATA] > 0) { + delta = MIN(arc_mru->arcs_lsize[ARC_BUFC_METADATA], adjustment); + (void) arc_evict(arc_mru, NULL, delta, FALSE, ARC_BUFC_METADATA); - top_sz = arc_anon->arcs_size + arc_mru->arcs_size; } - mru_over = top_sz + arc_mru_ghost->arcs_size - arc_c; + /* + * Adjust MFU size + */ - if (mru_over > 0) { - if (arc_mru_ghost->arcs_size > 0) { - todelete = MIN(arc_mru_ghost->arcs_size, mru_over); - arc_evict_ghost(arc_mru_ghost, NULL, todelete); - } + adjustment = arc_size - arc_c; + + if (adjustment > 0 && arc_mfu->arcs_lsize[ARC_BUFC_DATA] > 0) { + delta = MIN(adjustment, arc_mfu->arcs_lsize[ARC_BUFC_DATA]); + (void) arc_evict(arc_mfu, NULL, delta, FALSE, ARC_BUFC_DATA); + adjustment -= delta; } - if ((arc_over = arc_size - arc_c) > 0) { - int64_t tbl_over; + if (adjustment > 0 && arc_mfu->arcs_lsize[ARC_BUFC_METADATA] > 0) { + int64_t delta = MIN(adjustment, + arc_mfu->arcs_lsize[ARC_BUFC_METADATA]); + (void) arc_evict(arc_mfu, NULL, delta, FALSE, + ARC_BUFC_METADATA); + } - if (arc_mfu->arcs_lsize[ARC_BUFC_DATA] > 0) { - int64_t toevict = - MIN(arc_mfu->arcs_lsize[ARC_BUFC_DATA], arc_over); - (void) arc_evict(arc_mfu, NULL, toevict, FALSE, - ARC_BUFC_DATA); - arc_over = arc_size - arc_c; - } - - if (arc_over > 0 && - arc_mfu->arcs_lsize[ARC_BUFC_METADATA] > 0) { - int64_t toevict = - MIN(arc_mfu->arcs_lsize[ARC_BUFC_METADATA], - arc_over); - (void) arc_evict(arc_mfu, NULL, toevict, FALSE, - ARC_BUFC_METADATA); - } + /* + * Adjust ghost lists + */ - tbl_over = arc_size + arc_mru_ghost->arcs_size + - arc_mfu_ghost->arcs_size - arc_c * 2; + adjustment = arc_mru->arcs_size + arc_mru_ghost->arcs_size - arc_c; - if (tbl_over > 0 && arc_mfu_ghost->arcs_size > 0) { - todelete = MIN(arc_mfu_ghost->arcs_size, tbl_over); - arc_evict_ghost(arc_mfu_ghost, NULL, todelete); - } + if (adjustment > 0 && arc_mru_ghost->arcs_size > 0) { + delta = MIN(arc_mru_ghost->arcs_size, adjustment); + arc_evict_ghost(arc_mru_ghost, NULL, delta); + } + + adjustment = + arc_mru_ghost->arcs_size + arc_mfu_ghost->arcs_size - arc_c; + + if (adjustment > 0 && arc_mfu_ghost->arcs_size > 0) { + delta = MIN(arc_mfu_ghost->arcs_size, adjustment); + arc_evict_ghost(arc_mfu_ghost, NULL, delta); } } @@ -1999,8 +2085,6 @@ arc_flush(spa_t *spa) ASSERT(spa || arc_eviction_list == NULL); } -int arc_shrink_shift = 5; /* log2(fraction of arc to reclaim) */ - void arc_shrink(void) { @@ -2237,6 +2321,7 @@ static void arc_adapt(int bytes, arc_state_t *state) { int mult; + uint64_t arc_p_min = (arc_c >> arc_p_min_shift); if (state == arc_l2c_only) return; @@ -2254,12 +2339,15 @@ arc_adapt(int bytes, arc_state_t *state) mult = ((arc_mru_ghost->arcs_size >= arc_mfu_ghost->arcs_size) ? 1 : (arc_mfu_ghost->arcs_size/arc_mru_ghost->arcs_size)); - arc_p = MIN(arc_c, arc_p + bytes * mult); + arc_p = MIN(arc_c - arc_p_min, arc_p + bytes * mult); } else if (state == arc_mfu_ghost) { + uint64_t delta; + mult = ((arc_mfu_ghost->arcs_size >= arc_mru_ghost->arcs_size) ? 1 : (arc_mru_ghost->arcs_size/arc_mfu_ghost->arcs_size)); - arc_p = MAX(0, (int64_t)arc_p - bytes * mult); + delta = MIN(bytes * mult, arc_p); + arc_p = MAX(arc_p_min, arc_p - delta); } ASSERT((int64_t)arc_p >= 0); @@ -2359,10 +2447,11 @@ arc_get_data_buf(arc_buf_t *buf) if (!arc_evict_needed(type)) { if (type == ARC_BUFC_METADATA) { buf->b_data = zio_buf_alloc(size); - arc_space_consume(size); + arc_space_consume(size, ARC_SPACE_DATA); } else { ASSERT(type == ARC_BUFC_DATA); buf->b_data = zio_data_buf_alloc(size); + ARCSTAT_INCR(arcstat_data_size, size); atomic_add_64(&arc_size, size); } goto out; @@ -2379,21 +2468,22 @@ arc_get_data_buf(arc_buf_t *buf) if (state == arc_mru || state == arc_anon) { uint64_t mru_used = arc_anon->arcs_size + arc_mru->arcs_size; - state = (arc_mfu->arcs_lsize[type] > 0 && + state = (arc_mfu->arcs_lsize[type] >= size && arc_p > mru_used) ? arc_mfu : arc_mru; } else { /* MFU cases */ uint64_t mfu_space = arc_c - arc_p; - state = (arc_mru->arcs_lsize[type] > 0 && + state = (arc_mru->arcs_lsize[type] >= size && mfu_space > arc_mfu->arcs_size) ? arc_mru : arc_mfu; } if ((buf->b_data = arc_evict(state, NULL, size, TRUE, type)) == NULL) { if (type == ARC_BUFC_METADATA) { buf->b_data = zio_buf_alloc(size); - arc_space_consume(size); + arc_space_consume(size, ARC_SPACE_DATA); } else { ASSERT(type == ARC_BUFC_DATA); buf->b_data = zio_data_buf_alloc(size); + ARCSTAT_INCR(arcstat_data_size, size); atomic_add_64(&arc_size, size); } ARCSTAT_BUMP(arcstat_recycle_miss); @@ -2816,7 +2906,8 @@ top: uint64_t size = BP_GET_LSIZE(bp); arc_callback_t *acb; vdev_t *vd = NULL; - daddr_t addr; + uint64_t addr; + boolean_t devw = B_FALSE; if (hdr == NULL) { /* this block is not in the cache */ @@ -2895,6 +2986,7 @@ top: if (HDR_L2CACHE(hdr) && hdr->b_l2hdr != NULL && (vd = hdr->b_l2hdr->b_dev->l2ad_vdev) != NULL) { + devw = hdr->b_l2hdr->b_dev->l2ad_writing; addr = hdr->b_l2hdr->b_daddr; /* * Lock out device removal. @@ -2914,7 +3006,7 @@ top: demand, prefetch, hdr->b_type != ARC_BUFC_METADATA, data, metadata, misses); - if (vd != NULL) { + if (vd != NULL && l2arc_ndev != 0 && !(l2arc_norw && devw)) { /* * Read from the L2ARC if the following are true: * 1. The L2ARC vdev was previously cached. @@ -2922,9 +3014,11 @@ top: * 3. This buffer isn't currently writing to the L2ARC. * 4. The L2ARC entry wasn't evicted, which may * also have invalidated the vdev. + * 5. This isn't prefetch and l2arc_noprefetch is set. */ if (hdr->b_l2hdr != NULL && - !HDR_L2_WRITING(hdr) && !HDR_L2_EVICTED(hdr)) { + !HDR_L2_WRITING(hdr) && !HDR_L2_EVICTED(hdr) && + !(l2arc_noprefetch && HDR_PREFETCH(hdr))) { l2arc_read_callback_t *cb; DTRACE_PROBE1(l2arc__hit, arc_buf_hdr_t *, hdr); @@ -2950,6 +3044,7 @@ top: ZIO_FLAG_DONT_RETRY, B_FALSE); DTRACE_PROBE2(l2arc__read, vdev_t *, vd, zio_t *, rzio); + ARCSTAT_INCR(arcstat_l2_read_bytes, size); if (*arc_flags & ARC_NOWAIT) { zio_nowait(rzio); @@ -2969,6 +3064,14 @@ top: ARCSTAT_BUMP(arcstat_l2_rw_clash); spa_config_exit(spa, SCL_L2ARC, vd); } + } else { + if (vd != NULL) + spa_config_exit(spa, SCL_L2ARC, vd); + if (l2arc_ndev != 0) { + DTRACE_PROBE1(l2arc__miss, + arc_buf_hdr_t *, hdr); + ARCSTAT_BUMP(arcstat_l2_misses); + } } rzio = zio_read(pio, spa, bp, buf->b_data, size, @@ -3125,6 +3228,7 @@ arc_release(arc_buf_t *buf, void *tag) kmutex_t *hash_lock; l2arc_buf_hdr_t *l2hdr; uint64_t buf_size; + boolean_t released = B_FALSE; rw_enter(&buf->b_lock, RW_WRITER); hdr = buf->b_hdr; @@ -3140,12 +3244,12 @@ arc_release(arc_buf_t *buf, void *tag) ASSERT(buf->b_efunc == NULL); arc_buf_thaw(buf); rw_exit(&buf->b_lock); - return; + released = B_TRUE; + } else { + hash_lock = HDR_LOCK(hdr); + mutex_enter(hash_lock); } - hash_lock = HDR_LOCK(hdr); - mutex_enter(hash_lock); - l2hdr = hdr->b_l2hdr; if (l2hdr) { mutex_enter(&l2arc_buflist_mtx); @@ -3153,6 +3257,9 @@ arc_release(arc_buf_t *buf, void *tag) buf_size = hdr->b_size; } + if (released) + goto out; + /* * Do we have more than one buf? */ @@ -3220,6 +3327,7 @@ arc_release(arc_buf_t *buf, void *tag) buf->b_efunc = NULL; buf->b_private = NULL; +out: if (l2hdr) { list_remove(l2hdr->b_dev->l2ad_buflist, hdr); kmem_free(l2hdr, sizeof (l2arc_buf_hdr_t)); @@ -3697,6 +3805,15 @@ arc_init(void) if (arc_c_min < arc_meta_limit / 2 && zfs_arc_min == 0) arc_c_min = arc_meta_limit / 2; + if (zfs_arc_grow_retry > 0) + arc_grow_retry = zfs_arc_grow_retry; + + if (zfs_arc_shrink_shift > 0) + arc_shrink_shift = zfs_arc_shrink_shift; + + if (zfs_arc_p_min_shift > 0) + arc_p_min_shift = zfs_arc_p_min_shift; + /* if kmem_flags are set, lets try to use less memory */ if (kmem_debugging()) arc_c = arc_c / 2; @@ -3987,8 +4104,82 @@ arc_fini(void) * * Tunables may be removed or added as future performance improvements are * integrated, and also may become zpool properties. + * + * There are three key functions that control how the L2ARC warms up: + * + * l2arc_write_eligible() check if a buffer is eligible to cache + * l2arc_write_size() calculate how much to write + * l2arc_write_interval() calculate sleep delay between writes + * + * These three functions determine what to write, how much, and how quickly + * to send writes. */ +static boolean_t +l2arc_write_eligible(spa_t *spa, arc_buf_hdr_t *ab) +{ + /* + * A buffer is *not* eligible for the L2ARC if it: + * 1. belongs to a different spa. + * 2. is already cached on the L2ARC. + * 3. has an I/O in progress (it may be an incomplete read). + * 4. is flagged not eligible (zfs property). + */ + if (ab->b_spa != spa) { + ARCSTAT_BUMP(arcstat_l2_write_spa_mismatch); + return (B_FALSE); + } + if (ab->b_l2hdr != NULL) { + ARCSTAT_BUMP(arcstat_l2_write_in_l2); + return (B_FALSE); + } + if (HDR_IO_IN_PROGRESS(ab)) { + ARCSTAT_BUMP(arcstat_l2_write_hdr_io_in_progress); + return (B_FALSE); + } + if (!HDR_L2CACHE(ab)) { + ARCSTAT_BUMP(arcstat_l2_write_not_cacheable); + return (B_FALSE); + } + + return (B_TRUE); +} + +static uint64_t +l2arc_write_size(l2arc_dev_t *dev) +{ + uint64_t size; + + size = dev->l2ad_write; + + if (arc_warm == B_FALSE) + size += dev->l2ad_boost; + + return (size); + +} + +static clock_t +l2arc_write_interval(clock_t began, uint64_t wanted, uint64_t wrote) +{ + clock_t interval, next; + + /* + * If the ARC lists are busy, increase our write rate; if the + * lists are stale, idle back. This is achieved by checking + * how much we previously wrote - if it was more than half of + * what we wanted, schedule the next write much sooner. + */ + if (l2arc_feed_again && wrote > (wanted / 2)) + interval = (hz * l2arc_feed_min_ms) / 1000; + else + interval = hz * l2arc_feed_secs; + + next = MAX(LBOLT, MIN(LBOLT + interval, began + interval)); + + return (next); +} + static void l2arc_hdr_stat_add(void) { @@ -4410,7 +4601,7 @@ top: * An ARC_L2_WRITING flag is set so that the L2ARC buffers are not valid * for reading until they have completed writing. */ -static void +static uint64_t l2arc_write_buffers(spa_t *spa, l2arc_dev_t *dev, uint64_t target_sz) { arc_buf_hdr_t *ab, *ab_prev, *head; @@ -4473,15 +4664,6 @@ l2arc_write_buffers(spa_t *spa, l2arc_de continue; } - if (ab->b_l2hdr != NULL) { - /* - * Already in L2ARC. - */ - mutex_exit(hash_lock); - ARCSTAT_BUMP(arcstat_l2_write_in_l2); - continue; - } - passed_sz += ab->b_size; if (passed_sz > headroom) { /* @@ -4492,22 +4674,11 @@ l2arc_write_buffers(spa_t *spa, l2arc_de break; } - if (ab->b_spa != spa) { + if (!l2arc_write_eligible(spa, ab)) { mutex_exit(hash_lock); - ARCSTAT_BUMP(arcstat_l2_write_spa_mismatch); continue; } - if (HDR_IO_IN_PROGRESS(ab)) { - mutex_exit(hash_lock); - ARCSTAT_BUMP(arcstat_l2_write_hdr_io_in_progress); - continue; - } - if (!HDR_L2CACHE(ab)) { - mutex_exit(hash_lock); - ARCSTAT_BUMP(arcstat_l2_write_not_cacheable); - continue; - } if ((write_sz + ab->b_size) > target_sz) { full = B_TRUE; mutex_exit(hash_lock); @@ -4515,12 +4686,6 @@ l2arc_write_buffers(spa_t *spa, l2arc_de break; } - if (ab->b_buf == NULL) { - DTRACE_PROBE1(l2arc__buf__null, void *, ab); - mutex_exit(hash_lock); - continue; - } - if (pio == NULL) { /* * Insert a dummy header on the buflist so @@ -4589,11 +4754,12 @@ l2arc_write_buffers(spa_t *spa, l2arc_de if (pio == NULL) { ASSERT3U(write_sz, ==, 0); kmem_cache_free(hdr_cache, head); - return; + return (0); } ASSERT3U(write_sz, <=, target_sz); ARCSTAT_BUMP(arcstat_l2_writes_sent); + ARCSTAT_INCR(arcstat_l2_write_bytes, write_sz); ARCSTAT_INCR(arcstat_l2_size, write_sz); spa_l2cache_space_update(dev->l2ad_vdev, 0, write_sz); @@ -4609,7 +4775,11 @@ l2arc_write_buffers(spa_t *spa, l2arc_de dev->l2ad_first = B_FALSE; } + dev->l2ad_writing = B_TRUE; (void) zio_wait(pio); + dev->l2ad_writing = B_FALSE; + + return (write_sz); } /* @@ -4622,20 +4792,19 @@ l2arc_feed_thread(void *dummy __unused) callb_cpr_t cpr; l2arc_dev_t *dev; spa_t *spa; - uint64_t size; + uint64_t size, wrote; + clock_t begin, next = LBOLT; CALLB_CPR_INIT(&cpr, &l2arc_feed_thr_lock, callb_generic_cpr, FTAG); mutex_enter(&l2arc_feed_thr_lock); while (l2arc_thread_exit == 0) { - /* - * Pause for l2arc_feed_secs seconds between writes. - */ CALLB_CPR_SAFE_BEGIN(&cpr); (void) cv_timedwait(&l2arc_feed_thr_cv, &l2arc_feed_thr_lock, - hz * l2arc_feed_secs >> l2arc_feed_secs_shift); + next - LBOLT); CALLB_CPR_SAFE_END(&cpr, &l2arc_feed_thr_lock); + next = LBOLT + hz; /* * Quick check for L2ARC devices. @@ -4646,6 +4815,7 @@ l2arc_feed_thread(void *dummy __unused) continue; } mutex_exit(&l2arc_dev_mtx); + begin = LBOLT; /* * This selects the next l2arc device to write to, and in @@ -4674,9 +4844,7 @@ l2arc_feed_thread(void *dummy __unused) ARCSTAT_BUMP(arcstat_l2_feeds); - size = dev->l2ad_write; - if (arc_warm == B_FALSE) - size += dev->l2ad_boost; + size = l2arc_write_size(dev); /* * Evict L2ARC buffers that will be overwritten. @@ -4686,7 +4854,12 @@ l2arc_feed_thread(void *dummy __unused) /* * Write ARC buffers. */ - l2arc_write_buffers(spa, dev, size); + wrote = l2arc_write_buffers(spa, dev, size); + + /* + * Calculate interval between writes. + */ + next = l2arc_write_interval(begin, size, wrote); spa_config_exit(spa, SCL_L2ARC, dev); } @@ -4736,6 +4909,7 @@ l2arc_add_vdev(spa_t *spa, vdev_t *vd, u adddev->l2ad_hand = adddev->l2ad_start; adddev->l2ad_evict = adddev->l2ad_start; adddev->l2ad_first = B_TRUE; + adddev->l2ad_writing = B_FALSE; ASSERT3U(adddev->l2ad_write, >, 0); /* Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c Fri May 21 09:35:28 2010 (r208372) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c Fri May 21 09:52:49 2010 (r208373) @@ -19,7 +19,7 @@ * CDDL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -466,7 +466,7 @@ dbuf_read_impl(dmu_buf_impl_t *db, zio_t ASSERT3U(bonuslen, <=, db->db.db_size); db->db.db_data = zio_buf_alloc(DN_MAX_BONUSLEN); - arc_space_consume(DN_MAX_BONUSLEN); + arc_space_consume(DN_MAX_BONUSLEN, ARC_SPACE_OTHER); if (bonuslen < DN_MAX_BONUSLEN) bzero(db->db.db_data, DN_MAX_BONUSLEN); if (bonuslen) @@ -657,7 +657,7 @@ dbuf_fix_old_data(dmu_buf_impl_t *db, ui if (db->db_blkid == DB_BONUS_BLKID) { /* Note that the data bufs here are zio_bufs */ dr->dt.dl.dr_data = zio_buf_alloc(DN_MAX_BONUSLEN); - arc_space_consume(DN_MAX_BONUSLEN); + arc_space_consume(DN_MAX_BONUSLEN, ARC_SPACE_OTHER); bcopy(db->db.db_data, dr->dt.dl.dr_data, DN_MAX_BONUSLEN); } else if (refcount_count(&db->db_holds) > db->db_dirtycnt) { int size = db->db.db_size; @@ -1314,7 +1314,7 @@ dbuf_clear(dmu_buf_impl_t *db) ASSERT(db->db.db_data != NULL); if (db->db_blkid == DB_BONUS_BLKID) { zio_buf_free(db->db.db_data, DN_MAX_BONUSLEN); - arc_space_return(DN_MAX_BONUSLEN); + arc_space_return(DN_MAX_BONUSLEN, ARC_SPACE_OTHER); } db->db.db_data = NULL; db->db_state = DB_UNCACHED; @@ -1436,7 +1436,7 @@ dbuf_create(dnode_t *dn, uint8_t level, db->db.db_offset = DB_BONUS_BLKID; db->db_state = DB_UNCACHED; /* the bonus dbuf is not placed in the hash table */ - arc_space_consume(sizeof (dmu_buf_impl_t)); + arc_space_consume(sizeof (dmu_buf_impl_t), ARC_SPACE_OTHER); return (db); } else { int blocksize = @@ -1463,7 +1463,7 @@ dbuf_create(dnode_t *dn, uint8_t level, list_insert_head(&dn->dn_dbufs, db); db->db_state = DB_UNCACHED; mutex_exit(&dn->dn_dbufs_mtx); - arc_space_consume(sizeof (dmu_buf_impl_t)); + arc_space_consume(sizeof (dmu_buf_impl_t), ARC_SPACE_OTHER); if (parent && parent != dn->dn_dbuf) dbuf_add_ref(parent, db); @@ -1532,7 +1532,7 @@ dbuf_destroy(dmu_buf_impl_t *db) ASSERT(db->db_data_pending == NULL); kmem_cache_free(dbuf_cache, db); - arc_space_return(sizeof (dmu_buf_impl_t)); + arc_space_return(sizeof (dmu_buf_impl_t), ARC_SPACE_OTHER); } void @@ -1951,7 +1951,7 @@ dbuf_sync_leaf(dbuf_dirty_record_t *dr, bcopy(*datap, DN_BONUS(dn->dn_phys), dn->dn_phys->dn_bonuslen); if (*datap != db->db.db_data) { zio_buf_free(*datap, DN_MAX_BONUSLEN); - arc_space_return(DN_MAX_BONUSLEN); + arc_space_return(DN_MAX_BONUSLEN, ARC_SPACE_OTHER); } db->db_data_pending = NULL; drp = &db->db_last_dirty; Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c Fri May 21 09:35:28 2010 (r208372) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dnode.c Fri May 21 09:52:49 2010 (r208373) @@ -19,7 +19,7 @@ * CDDL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -301,7 +301,7 @@ dnode_create(objset_impl_t *os, dnode_ph list_insert_head(&os->os_dnodes, dn); mutex_exit(&os->os_lock); - arc_space_consume(sizeof (dnode_t)); + arc_space_consume(sizeof (dnode_t), ARC_SPACE_OTHER); return (dn); } @@ -336,7 +336,7 @@ dnode_destroy(dnode_t *dn) dn->dn_bonus = NULL; } kmem_cache_free(dnode_cache, dn); - arc_space_return(sizeof (dnode_t)); + arc_space_return(sizeof (dnode_t), ARC_SPACE_OTHER); } void Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/arc.h ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/arc.h Fri May 21 09:35:28 2010 (r208372) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/arc.h Fri May 21 09:52:49 2010 (r208373) @@ -19,7 +19,7 @@ * CDDL HEADER END */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -68,8 +68,19 @@ typedef enum arc_buf_contents { #define ARC_CACHED (1 << 4) /* I/O was already in cache */ #define ARC_L2CACHE (1 << 5) /* cache in L2ARC */ -void arc_space_consume(uint64_t space); -void arc_space_return(uint64_t space); +/* + * The following breakdows of arc_size exist for kstat only. + */ +typedef enum arc_space_type { + ARC_SPACE_DATA, + ARC_SPACE_HDRS, + ARC_SPACE_L2HDRS, + ARC_SPACE_OTHER, + ARC_SPACE_NUMTYPES +} arc_space_type_t; + +void arc_space_consume(uint64_t space, arc_space_type_t type); +void arc_space_return(uint64_t space, arc_space_type_t type); void *arc_data_buf_alloc(uint64_t space); void arc_data_buf_free(void *buf, uint64_t space); arc_buf_t *arc_buf_alloc(spa_t *spa, int size, void *tag, From owner-svn-src-all@FreeBSD.ORG Fri May 21 10:36:30 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 758FA1065674; Fri, 21 May 2010 10:36:30 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 653148FC0A; Fri, 21 May 2010 10:36:30 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LAaUD5090351; Fri, 21 May 2010 10:36:30 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LAaUXV090349; Fri, 21 May 2010 10:36:30 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201005211036.o4LAaUXV090349@svn.freebsd.org> From: Konstantin Belousov Date: Fri, 21 May 2010 10:36:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208374 - head/sys/kern X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 10:36:30 -0000 Author: kib Date: Fri May 21 10:36:29 2010 New Revision: 208374 URL: http://svn.freebsd.org/changeset/base/208374 Log: Remove PIOLLHUP from the flags used to test for to set exceptfsd fd_set bits in select(2). It seems that historical behaviour is to not reporting exception on EOF, and several applications are broken. Reported by: Yoshihiko Sarumaru Discussed with: bde PR: ports/140934 MFC after: 2 weeks Modified: head/sys/kern/sys_generic.c Modified: head/sys/kern/sys_generic.c ============================================================================== --- head/sys/kern/sys_generic.c Fri May 21 09:52:49 2010 (r208373) +++ head/sys/kern/sys_generic.c Fri May 21 10:36:29 2010 (r208374) @@ -996,7 +996,7 @@ done: static int select_flags[3] = { POLLRDNORM | POLLHUP | POLLERR, POLLWRNORM | POLLHUP | POLLERR, - POLLRDBAND | POLLHUP | POLLERR + POLLRDBAND | POLLERR }; /* From owner-svn-src-all@FreeBSD.ORG Fri May 21 13:29:28 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EE8B81065672; Fri, 21 May 2010 13:29:28 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DDC918FC14; Fri, 21 May 2010 13:29:28 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LDTS4W028649; Fri, 21 May 2010 13:29:28 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LDTSuL028647; Fri, 21 May 2010 13:29:28 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201005211329.o4LDTSuL028647@svn.freebsd.org> From: Alexander Motin Date: Fri, 21 May 2010 13:29:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208375 - in head/sys/dev: ahci ata X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 13:29:29 -0000 Author: mav Date: Fri May 21 13:29:28 2010 New Revision: 208375 URL: http://svn.freebsd.org/changeset/base/208375 Log: Improve suspend/resume support. Make sure controller is idle on suspend and reset it on resume. Modified: head/sys/dev/ahci/ahci.c head/sys/dev/ata/ata-all.c Modified: head/sys/dev/ahci/ahci.c ============================================================================== --- head/sys/dev/ahci/ahci.c Fri May 21 10:36:29 2010 (r208374) +++ head/sys/dev/ahci/ahci.c Fri May 21 13:29:28 2010 (r208375) @@ -60,6 +60,8 @@ static void ahci_intr(void *data); static void ahci_intr_one(void *data); static int ahci_suspend(device_t dev); static int ahci_resume(device_t dev); +static int ahci_ch_init(device_t dev); +static int ahci_ch_deinit(device_t dev); static int ahci_ch_suspend(device_t dev); static int ahci_ch_resume(device_t dev); static void ahci_ch_pm(void *arg); @@ -877,7 +879,7 @@ ahci_ch_attach(device_t dev) return (ENXIO); ahci_dmainit(dev); ahci_slotsalloc(dev); - ahci_ch_resume(dev); + ahci_ch_init(dev); mtx_lock(&ch->mtx); rid = ATA_IRQ_RID; if (!(ch->r_irq = bus_alloc_resource_any(dev, SYS_RES_IRQ, @@ -969,7 +971,7 @@ ahci_ch_detach(device_t dev) bus_teardown_intr(dev, ch->r_irq, ch->ih); bus_release_resource(dev, SYS_RES_IRQ, ATA_IRQ_RID, ch->r_irq); - ahci_ch_suspend(dev); + ahci_ch_deinit(dev); ahci_slotsfree(dev); ahci_dmafini(dev); @@ -979,7 +981,32 @@ ahci_ch_detach(device_t dev) } static int -ahci_ch_suspend(device_t dev) +ahci_ch_init(device_t dev) +{ + struct ahci_channel *ch = device_get_softc(dev); + uint64_t work; + + /* Disable port interrupts */ + ATA_OUTL(ch->r_mem, AHCI_P_IE, 0); + /* Setup work areas */ + work = ch->dma.work_bus + AHCI_CL_OFFSET; + ATA_OUTL(ch->r_mem, AHCI_P_CLB, work & 0xffffffff); + ATA_OUTL(ch->r_mem, AHCI_P_CLBU, work >> 32); + work = ch->dma.rfis_bus; + ATA_OUTL(ch->r_mem, AHCI_P_FB, work & 0xffffffff); + ATA_OUTL(ch->r_mem, AHCI_P_FBU, work >> 32); + /* Activate the channel and power/spin up device */ + ATA_OUTL(ch->r_mem, AHCI_P_CMD, + (AHCI_P_CMD_ACTIVE | AHCI_P_CMD_POD | AHCI_P_CMD_SUD | + ((ch->pm_level == 2 || ch->pm_level == 3) ? AHCI_P_CMD_ALPE : 0) | + ((ch->pm_level > 2) ? AHCI_P_CMD_ASP : 0 ))); + ahci_start_fr(dev); + ahci_start(dev, 1); + return (0); +} + +static int +ahci_ch_deinit(device_t dev) { struct ahci_channel *ch = device_get_softc(dev); @@ -1000,27 +1027,29 @@ ahci_ch_suspend(device_t dev) } static int +ahci_ch_suspend(device_t dev) +{ + struct ahci_channel *ch = device_get_softc(dev); + + mtx_lock(&ch->mtx); + xpt_freeze_simq(ch->sim, 1); + while (ch->oslots) + msleep(ch, &ch->mtx, PRIBIO, "ahcisusp", hz/100); + ahci_ch_deinit(dev); + mtx_unlock(&ch->mtx); + return (0); +} + +static int ahci_ch_resume(device_t dev) { struct ahci_channel *ch = device_get_softc(dev); - uint64_t work; - /* Disable port interrupts */ - ATA_OUTL(ch->r_mem, AHCI_P_IE, 0); - /* Setup work areas */ - work = ch->dma.work_bus + AHCI_CL_OFFSET; - ATA_OUTL(ch->r_mem, AHCI_P_CLB, work & 0xffffffff); - ATA_OUTL(ch->r_mem, AHCI_P_CLBU, work >> 32); - work = ch->dma.rfis_bus; - ATA_OUTL(ch->r_mem, AHCI_P_FB, work & 0xffffffff); - ATA_OUTL(ch->r_mem, AHCI_P_FBU, work >> 32); - /* Activate the channel and power/spin up device */ - ATA_OUTL(ch->r_mem, AHCI_P_CMD, - (AHCI_P_CMD_ACTIVE | AHCI_P_CMD_POD | AHCI_P_CMD_SUD | - ((ch->pm_level == 2 || ch->pm_level == 3) ? AHCI_P_CMD_ALPE : 0) | - ((ch->pm_level > 2) ? AHCI_P_CMD_ASP : 0 ))); - ahci_start_fr(dev); - ahci_start(dev, 1); + mtx_lock(&ch->mtx); + ahci_ch_init(dev); + ahci_reset(dev); + xpt_release_simq(ch->sim, TRUE); + mtx_unlock(&ch->mtx); return (0); } Modified: head/sys/dev/ata/ata-all.c ============================================================================== --- head/sys/dev/ata/ata-all.c Fri May 21 10:36:29 2010 (r208374) +++ head/sys/dev/ata/ata-all.c Fri May 21 13:29:28 2010 (r208375) @@ -432,7 +432,13 @@ ata_suspend(device_t dev) if (!dev || !(ch = device_get_softc(dev))) return ENXIO; -#ifndef ATA_CAM +#ifdef ATA_CAM + mtx_lock(&ch->state_mtx); + xpt_freeze_simq(ch->sim, 1); + while (ch->state != ATA_IDLE) + msleep(ch, &ch->state_mtx, PRIBIO, "atasusp", hz/100); + mtx_unlock(&ch->state_mtx); +#else /* wait for the channel to be IDLE or detached before suspending */ while (ch->r_irq) { mtx_lock(&ch->state_mtx); @@ -452,16 +458,21 @@ ata_suspend(device_t dev) int ata_resume(device_t dev) { + struct ata_channel *ch; int error; /* check for valid device */ - if (!dev || !device_get_softc(dev)) + if (!dev || !(ch = device_get_softc(dev))) return ENXIO; +#ifdef ATA_CAM + mtx_lock(&ch->state_mtx); + error = ata_reinit(dev); + xpt_release_simq(ch->sim, TRUE); + mtx_unlock(&ch->state_mtx); +#else /* reinit the devices, we dont know what mode/state they are in */ error = ata_reinit(dev); - -#ifndef ATA_CAM /* kick off requests on the queue */ ata_start(dev); #endif From owner-svn-src-all@FreeBSD.ORG Fri May 21 15:57:25 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D8C50106564A; Fri, 21 May 2010 15:57:24 +0000 (UTC) (envelope-from gallatin@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C7FD48FC1A; Fri, 21 May 2010 15:57:24 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LFvOeE061497; Fri, 21 May 2010 15:57:24 GMT (envelope-from gallatin@svn.freebsd.org) Received: (from gallatin@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LFvO3t061495; Fri, 21 May 2010 15:57:24 GMT (envelope-from gallatin@svn.freebsd.org) Message-Id: <201005211557.o4LFvO3t061495@svn.freebsd.org> From: Andrew Gallatin Date: Fri, 21 May 2010 15:57:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208379 - head/sys/dev/mxge X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 15:57:25 -0000 Author: gallatin Date: Fri May 21 15:57:24 2010 New Revision: 208379 URL: http://svn.freebsd.org/changeset/base/208379 Log: Add interrupt descriptions for mxge's msi-x vectors Modified: head/sys/dev/mxge/if_mxge.c Modified: head/sys/dev/mxge/if_mxge.c ============================================================================== --- head/sys/dev/mxge/if_mxge.c Fri May 21 15:49:56 2010 (r208378) +++ head/sys/dev/mxge/if_mxge.c Fri May 21 15:57:24 2010 (r208379) @@ -4476,6 +4476,8 @@ mxge_add_msix_irqs(mxge_softc_t *sc) "message %d\n", i); goto abort_with_intr; } + bus_describe_intr(sc->dev, sc->msix_irq_res[i], + sc->msix_ih[i], "s%d", i); } if (mxge_verbose) { From owner-svn-src-all@FreeBSD.ORG Fri May 21 15:59:24 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A3F39106566C; Fri, 21 May 2010 15:59:24 +0000 (UTC) (envelope-from yanefbsd@gmail.com) Received: from mail-qy0-f188.google.com (mail-qy0-f188.google.com [209.85.221.188]) by mx1.freebsd.org (Postfix) with ESMTP id 193498FC13; Fri, 21 May 2010 15:59:23 +0000 (UTC) Received: by qyk26 with SMTP id 26so2007942qyk.28 for ; Fri, 21 May 2010 08:59:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:cc:content-type :content-transfer-encoding; bh=6+ED4pEdOHN8J0NNpAqAQpjM8sSIyHQVRuAN9vz6k9E=; b=cmtUD0DgU6igRPzckHkdlaLWXTxvb5H2r9IO9/TYDMTRnbnQXJmqRr+BFZBHERDnm/ 5l/5/BxsmZ+Kii6zt3zJeiqeaY37hr6aL/vSyQSdBMmgoh8R+aYMCN1agiSIbh3yadpR qN5bWlk5WmoQH1/f4Yg5oLEKTXWboNShn61rU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; b=kJhgxvlmCghHEv9Ehj8GKpO738j6LP4ToPu+AnqA8cF8aCb/jOqHpjMrVmt0KiPw4p C0Q+CPxoOXooUROqZYu3+3Rh7Tyo0B70Xj5si4Kjvo0QnuFBkY1GuguoriPNCSIrW2VL 7Z6KudOjKDMp8Wot9s0sFhE0V2hSOt4GU21yk= MIME-Version: 1.0 Received: by 10.224.69.16 with SMTP id x16mr1329934qai.0.1274457563249; Fri, 21 May 2010 08:59:23 -0700 (PDT) Received: by 10.229.190.83 with HTTP; Fri, 21 May 2010 08:59:23 -0700 (PDT) In-Reply-To: <201005211329.o4LDTSuL028647@svn.freebsd.org> References: <201005211329.o4LDTSuL028647@svn.freebsd.org> Date: Fri, 21 May 2010 08:59:23 -0700 Message-ID: From: Garrett Cooper To: Alexander Motin Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r208375 - in head/sys/dev: ahci ata X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 15:59:24 -0000 On Fri, May 21, 2010 at 6:29 AM, Alexander Motin wrote: > Author: mav > Date: Fri May 21 13:29:28 2010 > New Revision: 208375 > URL: http://svn.freebsd.org/changeset/base/208375 > > Log: > =A0Improve suspend/resume support. Make sure controller is idle on suspen= d > =A0and reset it on resume. Awesome -- this may fix part of the acpi(4) suspend issue on my laptop (a Lenovo T61p) as it currently auto-reboots with 8-STABLE based sources on amd64. Thanks! -Garrett From owner-svn-src-all@FreeBSD.ORG Fri May 21 16:01:57 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B3C59106567B; Fri, 21 May 2010 16:01:57 +0000 (UTC) (envelope-from stefanf@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 888DD8FC20; Fri, 21 May 2010 16:01:57 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LG1vYN062600; Fri, 21 May 2010 16:01:57 GMT (envelope-from stefanf@svn.freebsd.org) Received: (from stefanf@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LG1vB6062597; Fri, 21 May 2010 16:01:57 GMT (envelope-from stefanf@svn.freebsd.org) Message-Id: <201005211601.o4LG1vB6062597@svn.freebsd.org> From: Stefan Farfeleder Date: Fri, 21 May 2010 16:01:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208380 - stable/8/tools/regression/bin/sh/builtins X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 16:01:57 -0000 Author: stefanf Date: Fri May 21 16:01:57 2010 New Revision: 208380 URL: http://svn.freebsd.org/changeset/base/208380 Log: Merge r199628 and r199632: Tests for the cd command. Added: stable/8/tools/regression/bin/sh/builtins/cd2.0 - copied unchanged from r199632, head/tools/regression/bin/sh/builtins/cd2.0 Modified: stable/8/tools/regression/bin/sh/builtins/cd1.0 Directory Properties: stable/8/tools/regression/bin/sh/ (props changed) Modified: stable/8/tools/regression/bin/sh/builtins/cd1.0 ============================================================================== --- stable/8/tools/regression/bin/sh/builtins/cd1.0 Fri May 21 15:57:24 2010 (r208379) +++ stable/8/tools/regression/bin/sh/builtins/cd1.0 Fri May 21 16:01:57 2010 (r208380) @@ -1,17 +1,27 @@ # $FreeBSD$ set -e -PDIR=${TMPDIR:-/tmp} -cd ${PDIR} -TMPDIR=$(mktemp -d sh-test.XXXXXX) -chmod 0 ${TMPDIR} +P=${TMPDIR:-/tmp} +cd $P +T=$(mktemp -d sh-test.XXXXXX) -cd -L ${TMPDIR} 2>/dev/null && exit 1 -[ "${PWD}" = "${PDIR}" ] -[ "$(pwd)" = "${PDIR}" ] -cd -P ${TMPDIR} 2>/dev/null && exit 1 -[ "${PWD}" = "${PDIR}" ] -[ "$(pwd)" = "${PDIR}" ] +chmod 0 $T +cd -L $T 2>/dev/null && exit 1 +[ "$PWD" = "$P" ] +[ "$(pwd)" = "$P" ] +cd -P $T 2>/dev/null && exit 1 +[ "$PWD" = "$P" ] +[ "$(pwd)" = "$P" ] -chmod 755 ${TMPDIR} -rmdir ${TMPDIR} +chmod 755 $T +cd $T +mkdir -p 1/2/3 +ln -s 1/2 link1 +ln -s 2/3 1/link2 +(cd -L 1/../1 && [ "$(pwd -L)" = "$P/$T/1" ]) +(cd -L link1 && [ "$(pwd -L)" = "$P/$T/link1" ]) +(cd -L link1 && [ "$(pwd -P)" = "$P/$T/1/2" ]) +(cd -P link1 && [ "$(pwd -L)" = "$P/$T/1/2" ]) +(cd -P link1 && [ "$(pwd -P)" = "$P/$T/1/2" ]) + +rm -rf ${P}/${T} Copied: stable/8/tools/regression/bin/sh/builtins/cd2.0 (from r199632, head/tools/regression/bin/sh/builtins/cd2.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/bin/sh/builtins/cd2.0 Fri May 21 16:01:57 2010 (r208380, copy of r199632, head/tools/regression/bin/sh/builtins/cd2.0) @@ -0,0 +1,15 @@ +# $FreeBSD$ +set -e + +T=$(mktemp -d ${TMPDIR:-/tmp}/sh-test.XXXXXX) +cd $T +D=$T +for i in 0 1 2 3 4 5 6 7 8 9; do + for j in 0 1 2 3 4 5 6 7 8 9; do + mkdir veryverylongdirectoryname + cd veryverylongdirectoryname + D=$D/veryverylongdirectoryname + done +done +[ $(pwd | wc -c) -eq $((${#D} + 1)) ] # +\n +rm -rf ${T} From owner-svn-src-all@FreeBSD.ORG Fri May 21 16:03:57 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D76E2106566B; Fri, 21 May 2010 16:03:57 +0000 (UTC) (envelope-from jh@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id ACA398FC0C; Fri, 21 May 2010 16:03:57 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LG3vHx063073; Fri, 21 May 2010 16:03:57 GMT (envelope-from jh@svn.freebsd.org) Received: (from jh@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LG3v4p063070; Fri, 21 May 2010 16:03:57 GMT (envelope-from jh@svn.freebsd.org) Message-Id: <201005211603.o4LG3v4p063070@svn.freebsd.org> From: Jaakko Heinonen Date: Fri, 21 May 2010 16:03:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208381 - stable/7/usr.bin/systat X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 16:03:58 -0000 Author: jh Date: Fri May 21 16:03:57 2010 New Revision: 208381 URL: http://svn.freebsd.org/changeset/base/208381 Log: MFC r197956: - Catch SIGHUP to perform cleanup before exiting. - Exit if getch() returns with an error other than EINTR. Otherwise systat(1) may get stuck in an infinite loop if it doesn't receive SIGHUP when terminal closes. - Remove attempt to clear stdio error indicators. getch() doesn't use stdio, making it useless. - Remove unneeded masking of getch() return value. PR: bin/107171 Modified: stable/7/usr.bin/systat/keyboard.c stable/7/usr.bin/systat/main.c Directory Properties: stable/7/usr.bin/systat/ (props changed) Modified: stable/7/usr.bin/systat/keyboard.c ============================================================================== --- stable/7/usr.bin/systat/keyboard.c Fri May 21 16:01:57 2010 (r208380) +++ stable/7/usr.bin/systat/keyboard.c Fri May 21 16:03:57 2010 (r208381) @@ -39,8 +39,10 @@ __FBSDID("$FreeBSD$"); static const char sccsid[] = "@(#)keyboard.c 8.1 (Berkeley) 6/6/93"; #endif +#include #include #include +#include #include #include "systat.h" @@ -57,10 +59,11 @@ keyboard() move(CMDLINE, 0); do { refresh(); - ch = getch() & 0177; - if (ch == 0177 && ferror(stdin)) { - clearerr(stdin); - continue; + ch = getch(); + if (ch == ERR) { + if (errno == EINTR) + continue; + exit(1); } if (ch >= 'A' && ch <= 'Z') ch += 'a' - 'A'; Modified: stable/7/usr.bin/systat/main.c ============================================================================== --- stable/7/usr.bin/systat/main.c Fri May 21 16:01:57 2010 (r208380) +++ stable/7/usr.bin/systat/main.c Fri May 21 16:03:57 2010 (r208381) @@ -133,6 +133,7 @@ main(int argc, char **argv) exit(1); } } + signal(SIGHUP, die); signal(SIGINT, die); signal(SIGQUIT, die); signal(SIGTERM, die); From owner-svn-src-all@FreeBSD.ORG Fri May 21 16:07:20 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DA606106564A; Fri, 21 May 2010 16:07:20 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id AFDC68FC08; Fri, 21 May 2010 16:07:20 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LG7K7g063871; Fri, 21 May 2010 16:07:20 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LG7KxO063869; Fri, 21 May 2010 16:07:20 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201005211607.o4LG7KxO063869@svn.freebsd.org> From: John Baldwin Date: Fri, 21 May 2010 16:07:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208382 - stable/8/sys/net X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 16:07:21 -0000 Author: jhb Date: Fri May 21 16:07:20 2010 New Revision: 208382 URL: http://svn.freebsd.org/changeset/base/208382 Log: MFC 208212: Ignore failures from removing multicast addresses from the parent (trunk) interface when tearing down a vlan interface. Modified: stable/8/sys/net/if_vlan.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/net/if_vlan.c ============================================================================== --- stable/8/sys/net/if_vlan.c Fri May 21 16:03:57 2010 (r208381) +++ stable/8/sys/net/if_vlan.c Fri May 21 16:07:20 2010 (r208382) @@ -186,8 +186,8 @@ static int vlan_setflag(struct ifnet *if int (*func)(struct ifnet *, int)); static int vlan_setflags(struct ifnet *ifp, int status); static int vlan_setmulti(struct ifnet *ifp); -static int vlan_unconfig(struct ifnet *ifp); -static int vlan_unconfig_locked(struct ifnet *ifp); +static void vlan_unconfig(struct ifnet *ifp); +static void vlan_unconfig_locked(struct ifnet *ifp); static int vlan_config(struct ifvlan *ifv, struct ifnet *p, uint16_t tag); static void vlan_link_state(struct ifnet *ifp, int link); static void vlan_capabilities(struct ifvlan *ifv); @@ -1081,25 +1081,22 @@ done: return (error); } -static int +static void vlan_unconfig(struct ifnet *ifp) { - int ret; VLAN_LOCK(); - ret = vlan_unconfig_locked(ifp); + vlan_unconfig_locked(ifp); VLAN_UNLOCK(); - return (ret); } -static int +static void vlan_unconfig_locked(struct ifnet *ifp) { struct ifvlantrunk *trunk; struct vlan_mc_entry *mc; struct ifvlan *ifv; struct ifnet *parent; - int error; VLAN_LOCK_ASSERT(); @@ -1128,9 +1125,15 @@ vlan_unconfig_locked(struct ifnet *ifp) while ((mc = SLIST_FIRST(&ifv->vlan_mc_listhead)) != NULL) { bcopy((char *)&mc->mc_addr, LLADDR(&sdl), ETHER_ADDR_LEN); - error = if_delmulti(parent, (struct sockaddr *)&sdl); - if (error) - return (error); + + /* + * This may fail if the parent interface is + * being detached. Regardless, we should do a + * best effort to free this interface as much + * as possible as all callers expect vlan + * destruction to succeed. + */ + (void)if_delmulti(parent, (struct sockaddr *)&sdl); SLIST_REMOVE_HEAD(&ifv->vlan_mc_listhead, mc_entries); free(mc, M_VLAN); } @@ -1176,8 +1179,6 @@ vlan_unconfig_locked(struct ifnet *ifp) */ if (parent != NULL) EVENTHANDLER_INVOKE(vlan_unconfig, parent, ifv->ifv_tag); - - return (0); } /* Handle a reference counted flag that should be set on the parent as well */ From owner-svn-src-all@FreeBSD.ORG Fri May 21 16:07:42 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 454E61065679; Fri, 21 May 2010 16:07:42 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 1AEA68FC1D; Fri, 21 May 2010 16:07:42 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LG7fnK064002; Fri, 21 May 2010 16:07:42 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LG7f6R064000; Fri, 21 May 2010 16:07:41 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201005211607.o4LG7f6R064000@svn.freebsd.org> From: John Baldwin Date: Fri, 21 May 2010 16:07:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208383 - stable/7/sys/net X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 16:07:42 -0000 Author: jhb Date: Fri May 21 16:07:41 2010 New Revision: 208383 URL: http://svn.freebsd.org/changeset/base/208383 Log: MFC 208212: Ignore failures from removing multicast addresses from the parent (trunk) interface when tearing down a vlan interface. Modified: stable/7/sys/net/if_vlan.c Directory Properties: stable/7/sys/ (props changed) stable/7/sys/cddl/contrib/opensolaris/ (props changed) stable/7/sys/contrib/dev/acpica/ (props changed) stable/7/sys/contrib/pf/ (props changed) Modified: stable/7/sys/net/if_vlan.c ============================================================================== --- stable/7/sys/net/if_vlan.c Fri May 21 16:07:20 2010 (r208382) +++ stable/7/sys/net/if_vlan.c Fri May 21 16:07:41 2010 (r208383) @@ -185,8 +185,8 @@ static int vlan_setflag(struct ifnet *if int (*func)(struct ifnet *, int)); static int vlan_setflags(struct ifnet *ifp, int status); static int vlan_setmulti(struct ifnet *ifp); -static int vlan_unconfig(struct ifnet *ifp); -static int vlan_unconfig_locked(struct ifnet *ifp); +static void vlan_unconfig(struct ifnet *ifp); +static void vlan_unconfig_locked(struct ifnet *ifp); static int vlan_config(struct ifvlan *ifv, struct ifnet *p, uint16_t tag); static void vlan_link_state(struct ifnet *ifp, int link); static void vlan_capabilities(struct ifvlan *ifv); @@ -1077,25 +1077,22 @@ done: return (error); } -static int +static void vlan_unconfig(struct ifnet *ifp) { - int ret; VLAN_LOCK(); - ret = vlan_unconfig_locked(ifp); + vlan_unconfig_locked(ifp); VLAN_UNLOCK(); - return (ret); } -static int +static void vlan_unconfig_locked(struct ifnet *ifp) { struct ifvlantrunk *trunk; struct vlan_mc_entry *mc; struct ifvlan *ifv; struct ifnet *parent; - int error; VLAN_LOCK_ASSERT(); @@ -1124,9 +1121,15 @@ vlan_unconfig_locked(struct ifnet *ifp) while ((mc = SLIST_FIRST(&ifv->vlan_mc_listhead)) != NULL) { bcopy((char *)&mc->mc_addr, LLADDR(&sdl), ETHER_ADDR_LEN); - error = if_delmulti(parent, (struct sockaddr *)&sdl); - if (error) - return (error); + + /* + * This may fail if the parent interface is + * being detached. Regardless, we should do a + * best effort to free this interface as much + * as possible as all callers expect vlan + * destruction to succeed. + */ + (void)if_delmulti(parent, (struct sockaddr *)&sdl); SLIST_REMOVE_HEAD(&ifv->vlan_mc_listhead, mc_entries); free(mc, M_VLAN); } @@ -1172,8 +1175,6 @@ vlan_unconfig_locked(struct ifnet *ifp) */ if (parent != NULL) EVENTHANDLER_INVOKE(vlan_unconfig, parent, ifv->ifv_tag); - - return (0); } /* Handle a reference counted flag that should be set on the parent as well */ From owner-svn-src-all@FreeBSD.ORG Fri May 21 16:17:10 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6C20C1065673; Fri, 21 May 2010 16:17:10 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5AF3C8FC23; Fri, 21 May 2010 16:17:10 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LGH8Dw066153; Fri, 21 May 2010 16:17:08 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LGH8fK066151; Fri, 21 May 2010 16:17:08 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201005211617.o4LGH8fK066151@svn.freebsd.org> From: John Baldwin Date: Fri, 21 May 2010 16:17:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208384 - stable/8/etc X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 16:17:10 -0000 Author: jhb Date: Fri May 21 16:17:08 2010 New Revision: 208384 URL: http://svn.freebsd.org/changeset/base/208384 Log: MFC 208213: Prevent unloading a kld for a driver that has subinterfaces (vlan and/or wlan interfaces) from being automatically reloaded via devd shutdown event handlers. - Revert part of my previous changes to call ifn_stop on subinterfaces when an interface is detached. It is better to destroy the interfaces first so that an 'ifconfig foo0.blah down' doesn't result in ifconfig auto-loading if_foo.ko. The ifconfig command will not be invoked if foo0.blah is gone when ifn_stop() is called. Furthermore, it is not necessary to explicitly invoke ifn_stop() after the subinterface is destroyed as devd will already do that. - Pass -n to ifconfig when destroying interfaces so that destroying a cloned interface does not kldload any drivers. Modified: stable/8/etc/network.subr Directory Properties: stable/8/etc/ (props changed) Modified: stable/8/etc/network.subr ============================================================================== --- stable/8/etc/network.subr Fri May 21 16:07:41 2010 (r208383) +++ stable/8/etc/network.subr Fri May 21 16:17:08 2010 (r208384) @@ -516,7 +516,7 @@ clone_down() _prefix= _list= for ifn in ${cloned_interfaces}; do - ifconfig ${ifn} destroy + ifconfig -n ${ifn} destroy if [ $? -eq 0 ]; then _list="${_list}${_prefix}${ifn}" [ -z "$_prefix" ] && _prefix=' ' @@ -599,10 +599,7 @@ childif_destroy() if ! ifexists $child; then continue fi - if autoif $child; then - ifn_stop $child - fi - ifconfig $child destroy && cfg=0 + ifconfig -n $child destroy && cfg=0 done child_vlans=`get_if_var $ifn vlans_IF` @@ -613,10 +610,7 @@ childif_destroy() if ! ifexists $child; then continue fi - if autoif $child; then - ifn_stop $child - fi - ifconfig $child destroy && cfg=0 + ifconfig -n $child destroy && cfg=0 done return ${cfg} From owner-svn-src-all@FreeBSD.ORG Fri May 21 16:17:46 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9DE9E1065670; Fri, 21 May 2010 16:17:46 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8CCF58FC1E; Fri, 21 May 2010 16:17:46 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LGHkok066317; Fri, 21 May 2010 16:17:46 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LGHkNK066315; Fri, 21 May 2010 16:17:46 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201005211617.o4LGHkNK066315@svn.freebsd.org> From: John Baldwin Date: Fri, 21 May 2010 16:17:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208385 - stable/7/etc X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 16:17:46 -0000 Author: jhb Date: Fri May 21 16:17:46 2010 New Revision: 208385 URL: http://svn.freebsd.org/changeset/base/208385 Log: MFC 208213: Prevent unloading a kld for a driver that has subinterfaces (vlan interfaces) from being automatically reloaded via devd shutdown event handlers. - Revert part of my previous changes to call ifn_stop on subinterfaces when an interface is detached. It is better to destroy the interfaces first so that an 'ifconfig foo0.blah down' doesn't result in ifconfig auto-loading if_foo.ko. The ifconfig command will not be invoked if foo0.blah is gone when ifn_stop() is called. Furthermore, it is not necessary to explicitly invoke ifn_stop() after the subinterface is destroyed as devd will already do that. - Pass -n to ifconfig when destroying interfaces so that destroying a cloned interface does not kldload any drivers. Modified: stable/7/etc/network.subr Directory Properties: stable/7/etc/ (props changed) Modified: stable/7/etc/network.subr ============================================================================== --- stable/7/etc/network.subr Fri May 21 16:17:08 2010 (r208384) +++ stable/7/etc/network.subr Fri May 21 16:17:46 2010 (r208385) @@ -485,7 +485,7 @@ clone_down() _prefix= _list= for ifn in ${cloned_interfaces}; do - ifconfig ${ifn} destroy + ifconfig -n ${ifn} destroy if [ $? -eq 0 ]; then _list="${_list}${_prefix}${ifn}" [ -z "$_prefix" ] && _prefix=' ' @@ -549,10 +549,7 @@ childif_destroy() if ! ifexists $child; then continue fi - if autoif $child; then - ifn_stop $child - fi - ifconfig $child destroy && cfg=0 + ifconfig -n $child destroy && cfg=0 done return ${cfg} From owner-svn-src-all@FreeBSD.ORG Fri May 21 16:25:17 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 33BD21065672; Fri, 21 May 2010 16:25:17 +0000 (UTC) (envelope-from stefanf@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 080A98FC14; Fri, 21 May 2010 16:25:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LGPGAq068037; Fri, 21 May 2010 16:25:16 GMT (envelope-from stefanf@svn.freebsd.org) Received: (from stefanf@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LGPGlJ068034; Fri, 21 May 2010 16:25:16 GMT (envelope-from stefanf@svn.freebsd.org) Message-Id: <201005211625.o4LGPGlJ068034@svn.freebsd.org> From: Stefan Farfeleder Date: Fri, 21 May 2010 16:25:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208386 - stable/7/tools/regression/bin/sh/builtins X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 16:25:17 -0000 Author: stefanf Date: Fri May 21 16:25:16 2010 New Revision: 208386 URL: http://svn.freebsd.org/changeset/base/208386 Log: Merge r199628 and r199632: Tests for the cd command. Added: stable/7/tools/regression/bin/sh/builtins/cd1.0 - copied, changed from r176522, head/tools/regression/bin/sh/builtins/cd1.0 stable/7/tools/regression/bin/sh/builtins/cd2.0 - copied unchanged from r199632, head/tools/regression/bin/sh/builtins/cd2.0 Modified: Directory Properties: stable/7/tools/regression/bin/sh/ (props changed) Copied and modified: stable/7/tools/regression/bin/sh/builtins/cd1.0 (from r176522, head/tools/regression/bin/sh/builtins/cd1.0) ============================================================================== --- head/tools/regression/bin/sh/builtins/cd1.0 Sun Feb 24 16:52:02 2008 (r176522, copy source) +++ stable/7/tools/regression/bin/sh/builtins/cd1.0 Fri May 21 16:25:16 2010 (r208386) @@ -1,17 +1,27 @@ # $FreeBSD$ set -e -PDIR=${TMPDIR:-/tmp} -cd ${PDIR} -TMPDIR=$(mktemp -d sh-test.XXXXXX) -chmod 0 ${TMPDIR} +P=${TMPDIR:-/tmp} +cd $P +T=$(mktemp -d sh-test.XXXXXX) -cd -L ${TMPDIR} 2>/dev/null && exit 1 -[ "${PWD}" = "${PDIR}" ] -[ "$(pwd)" = "${PDIR}" ] -cd -P ${TMPDIR} 2>/dev/null && exit 1 -[ "${PWD}" = "${PDIR}" ] -[ "$(pwd)" = "${PDIR}" ] +chmod 0 $T +cd -L $T 2>/dev/null && exit 1 +[ "$PWD" = "$P" ] +[ "$(pwd)" = "$P" ] +cd -P $T 2>/dev/null && exit 1 +[ "$PWD" = "$P" ] +[ "$(pwd)" = "$P" ] -chmod 755 ${TMPDIR} -rmdir ${TMPDIR} +chmod 755 $T +cd $T +mkdir -p 1/2/3 +ln -s 1/2 link1 +ln -s 2/3 1/link2 +(cd -L 1/../1 && [ "$(pwd -L)" = "$P/$T/1" ]) +(cd -L link1 && [ "$(pwd -L)" = "$P/$T/link1" ]) +(cd -L link1 && [ "$(pwd -P)" = "$P/$T/1/2" ]) +(cd -P link1 && [ "$(pwd -L)" = "$P/$T/1/2" ]) +(cd -P link1 && [ "$(pwd -P)" = "$P/$T/1/2" ]) + +rm -rf ${P}/${T} Copied: stable/7/tools/regression/bin/sh/builtins/cd2.0 (from r199632, head/tools/regression/bin/sh/builtins/cd2.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/7/tools/regression/bin/sh/builtins/cd2.0 Fri May 21 16:25:16 2010 (r208386, copy of r199632, head/tools/regression/bin/sh/builtins/cd2.0) @@ -0,0 +1,15 @@ +# $FreeBSD$ +set -e + +T=$(mktemp -d ${TMPDIR:-/tmp}/sh-test.XXXXXX) +cd $T +D=$T +for i in 0 1 2 3 4 5 6 7 8 9; do + for j in 0 1 2 3 4 5 6 7 8 9; do + mkdir veryverylongdirectoryname + cd veryverylongdirectoryname + D=$D/veryverylongdirectoryname + done +done +[ $(pwd | wc -c) -eq $((${#D} + 1)) ] # +\n +rm -rf ${T} From owner-svn-src-all@FreeBSD.ORG Fri May 21 16:32:15 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 95C731065670; Fri, 21 May 2010 16:32:15 +0000 (UTC) (envelope-from stefanf@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7ADC38FC1A; Fri, 21 May 2010 16:32:15 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LGWFsM069597; Fri, 21 May 2010 16:32:15 GMT (envelope-from stefanf@svn.freebsd.org) Received: (from stefanf@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LGWFh6069592; Fri, 21 May 2010 16:32:15 GMT (envelope-from stefanf@svn.freebsd.org) Message-Id: <201005211632.o4LGWFh6069592@svn.freebsd.org> From: Stefan Farfeleder Date: Fri, 21 May 2010 16:32:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208387 - in stable/7/tools/regression/bin/sh: builtins set-e X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 16:32:15 -0000 Author: stefanf Date: Fri May 21 16:32:14 2010 New Revision: 208387 URL: http://svn.freebsd.org/changeset/base/208387 Log: Merge r193178 and r194897: Tests for the eval command. Added: stable/7/tools/regression/bin/sh/builtins/eval1.0 - copied unchanged from r193178, head/tools/regression/bin/sh/builtins/eval1.0 stable/7/tools/regression/bin/sh/builtins/eval2.0 - copied unchanged from r194897, head/tools/regression/bin/sh/builtins/eval2.0 stable/7/tools/regression/bin/sh/set-e/eval1.0 - copied unchanged from r193178, head/tools/regression/bin/sh/set-e/eval1.0 stable/7/tools/regression/bin/sh/set-e/eval2.1 - copied unchanged from r193178, head/tools/regression/bin/sh/set-e/eval2.1 Modified: stable/7/tools/regression/bin/sh/set-e/not2.0 Directory Properties: stable/7/tools/regression/bin/sh/ (props changed) Copied: stable/7/tools/regression/bin/sh/builtins/eval1.0 (from r193178, head/tools/regression/bin/sh/builtins/eval1.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/7/tools/regression/bin/sh/builtins/eval1.0 Fri May 21 16:32:14 2010 (r208387, copy of r193178, head/tools/regression/bin/sh/builtins/eval1.0) @@ -0,0 +1,9 @@ +# $FreeBSD$ +set -e + +eval +eval "" "" +eval "true" +! eval "false + +" Copied: stable/7/tools/regression/bin/sh/builtins/eval2.0 (from r194897, head/tools/regression/bin/sh/builtins/eval2.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/7/tools/regression/bin/sh/builtins/eval2.0 Fri May 21 16:32:14 2010 (r208387, copy of r194897, head/tools/regression/bin/sh/builtins/eval2.0) @@ -0,0 +1,7 @@ +# $FreeBSD$ + +eval ' +false + +' && exit 1 +exit 0 Copied: stable/7/tools/regression/bin/sh/set-e/eval1.0 (from r193178, head/tools/regression/bin/sh/set-e/eval1.0) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/7/tools/regression/bin/sh/set-e/eval1.0 Fri May 21 16:32:14 2010 (r208387, copy of r193178, head/tools/regression/bin/sh/set-e/eval1.0) @@ -0,0 +1,3 @@ +# $FreeBSD$ +set -e +eval false || true Copied: stable/7/tools/regression/bin/sh/set-e/eval2.1 (from r193178, head/tools/regression/bin/sh/set-e/eval2.1) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/7/tools/regression/bin/sh/set-e/eval2.1 Fri May 21 16:32:14 2010 (r208387, copy of r193178, head/tools/regression/bin/sh/set-e/eval2.1) @@ -0,0 +1,4 @@ +# $FreeBSD$ +set -e +eval false +exit 0 Modified: stable/7/tools/regression/bin/sh/set-e/not2.0 ============================================================================== --- stable/7/tools/regression/bin/sh/set-e/not2.0 Fri May 21 16:25:16 2010 (r208386) +++ stable/7/tools/regression/bin/sh/set-e/not2.0 Fri May 21 16:32:14 2010 (r208387) @@ -1,3 +1,4 @@ # $FreeBSD$ set -e ! false +! eval false From owner-svn-src-all@FreeBSD.ORG Fri May 21 16:58:53 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 17F621065670; Fri, 21 May 2010 16:58:53 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E1B878FC18; Fri, 21 May 2010 16:58:52 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LGwqQJ075493; Fri, 21 May 2010 16:58:52 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LGwqDQ075491; Fri, 21 May 2010 16:58:52 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201005211658.o4LGwqDQ075491@svn.freebsd.org> From: John Baldwin Date: Fri, 21 May 2010 16:58:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208388 - head/sys/boot/i386/zfsboot X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 16:58:53 -0000 Author: jhb Date: Fri May 21 16:58:52 2010 New Revision: 208388 URL: http://svn.freebsd.org/changeset/base/208388 Log: - Set 'dmadat' earlier so that we properly setup the heap if we fail to locate a high memory area for the heap using the SMAP. - Read the number of hard drive devices from the BIOS instead of hardcoding a limit of 128. Some BIOSes duplicate disk devices once you get beyond the maximum drive number. MFC after: 1 month Modified: head/sys/boot/i386/zfsboot/zfsboot.c Modified: head/sys/boot/i386/zfsboot/zfsboot.c ============================================================================== --- head/sys/boot/i386/zfsboot/zfsboot.c Fri May 21 16:32:14 2010 (r208387) +++ head/sys/boot/i386/zfsboot/zfsboot.c Fri May 21 16:58:52 2010 (r208388) @@ -94,6 +94,7 @@ __FBSDID("$FreeBSD$"); #define V86_CY(x) ((x) & 1) #define V86_ZR(x) ((x) & 0x40) +#define BIOS_NUMDRIVES 0x475 #define DRV_HARD 0x80 #define DRV_MASK 0x7f @@ -467,6 +468,7 @@ getstr(void) static inline void putc(int c) { + v86.ctl = 0; v86.addr = 0x10; v86.eax = 0xe00 | (c & 0xff); v86.ebx = 0x7; @@ -617,6 +619,8 @@ main(void) off_t off; struct dsk *dsk; + dmadat = (void *)(roundup2(__base + (int32_t)&_end, 0x10000) - __base); + bios_getmem(); if (high_heap_size > 0) { @@ -627,9 +631,6 @@ main(void) heap_end = (char *) PTOV(bios_basemem); } - dmadat = (void *)(roundup2(__base + (int32_t)&_end, 0x10000) - __base); - v86.ctl = V86_FLAGS; - dsk = malloc(sizeof(struct dsk)); dsk->drive = *(uint8_t *)PTOV(ARGS); dsk->type = dsk->drive & DRV_HARD ? TYPE_AD : TYPE_FD; @@ -666,7 +667,7 @@ main(void) * will find any other available pools and it may fill in missing * vdevs for the boot pool. */ - for (i = 0; i < 128; i++) { + for (i = 0; i < *(unsigned char *)PTOV(BIOS_NUMDRIVES); i++) { if ((i | DRV_HARD) == *(uint8_t *)PTOV(ARGS)) continue; @@ -1157,6 +1158,7 @@ getc(int fn) * when no such key is pressed in reality. As far as I can tell, * this only happens shortly after a reboot. */ + v86.ctl = V86_FLAGS; v86.addr = 0x16; v86.eax = fn << 8; v86int(); From owner-svn-src-all@FreeBSD.ORG Fri May 21 17:10:53 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 914A51065677; Fri, 21 May 2010 17:10:53 +0000 (UTC) (envelope-from sbruno@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7F8938FC1E; Fri, 21 May 2010 17:10:53 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LHArlb078172; Fri, 21 May 2010 17:10:53 GMT (envelope-from sbruno@svn.freebsd.org) Received: (from sbruno@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LHArGI078167; Fri, 21 May 2010 17:10:53 GMT (envelope-from sbruno@svn.freebsd.org) Message-Id: <201005211710.o4LHArGI078167@svn.freebsd.org> From: Sean Bruno Date: Fri, 21 May 2010 17:10:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208389 - in head: usr.bin/vmstat usr.sbin/iostat X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 17:10:53 -0000 Author: sbruno Date: Fri May 21 17:10:52 2010 New Revision: 208389 URL: http://svn.freebsd.org/changeset/base/208389 Log: Allow sub-second interval timings for iostat and vmstat. e.g. vmstat -w.5 iostat -w.5 Reviewed by: jhb Approved by: scottl (mentor) Obtained from: Yahoo Inc. MFC after: 2 weeks Modified: head/usr.bin/vmstat/vmstat.8 head/usr.bin/vmstat/vmstat.c head/usr.sbin/iostat/iostat.8 head/usr.sbin/iostat/iostat.c Modified: head/usr.bin/vmstat/vmstat.8 ============================================================================== --- head/usr.bin/vmstat/vmstat.8 Fri May 21 16:58:52 2010 (r208388) +++ head/usr.bin/vmstat/vmstat.8 Fri May 21 17:10:52 2010 (r208389) @@ -209,6 +209,9 @@ seconds between each display. If no repeat .Ar wait interval is specified, the default is 1 second. +The +.Nm +command will accept and honor a non-integer number of seconds. .It Fl z Report on memory used by the kernel zone allocator, .Xr uma 9 , Modified: head/usr.bin/vmstat/vmstat.c ============================================================================== --- head/usr.bin/vmstat/vmstat.c Fri May 21 16:58:52 2010 (r208388) +++ head/usr.bin/vmstat/vmstat.c Fri May 21 17:10:52 2010 (r208389) @@ -57,6 +57,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -181,6 +182,7 @@ main(int argc, char *argv[]) { int c, todo; unsigned int interval; + float f; int reps; char *memf, *nlistf; char errbuf[_POSIX2_LINE_MAX]; @@ -243,7 +245,9 @@ main(int argc, char *argv[]) #endif break; case 'w': - interval = atoi(optarg); + /* Convert to milliseconds. */ + f = atof(optarg); + interval = f * 1000; break; case 'z': todo |= ZMEMSTAT; @@ -298,7 +302,8 @@ main(int argc, char *argv[]) #define BACKWARD_COMPATIBILITY #ifdef BACKWARD_COMPATIBILITY if (*argv) { - interval = atoi(*argv); + f = atof(*argv); + interval = f * 1000; if (*++argv) reps = atoi(*argv); } @@ -308,7 +313,7 @@ main(int argc, char *argv[]) if (!reps) reps = -1; } else if (reps) - interval = 1; + interval = 1 * 1000; if (todo & FORKSTAT) doforkst(); @@ -652,9 +657,11 @@ dovmstat(unsigned int interval, int reps size_t size; int ncpus, maxid; u_long cpumask; + int rate_adj; uptime = getuptime(); halfuptime = uptime / 2; + rate_adj = 1; /* * If the user stops the program (control-Z) and then resumes it, @@ -766,7 +773,7 @@ dovmstat(unsigned int interval, int reps (void)printf("%2d %1d %1d", total.t_rq - 1, total.t_dw + total.t_pw, total.t_sw); #define vmstat_pgtok(a) ((a) * (sum.v_page_size >> 10)) -#define rate(x) (((x) + halfuptime) / uptime) /* round */ +#define rate(x) (((x) * rate_adj + halfuptime) / uptime) /* round */ if (hflag) { printf(" "); prthuman(total.t_avm * (u_int64_t)sum.v_page_size, 7); @@ -806,15 +813,16 @@ dovmstat(unsigned int interval, int reps break; osum = sum; uptime = interval; + rate_adj = 1000; /* * We round upward to avoid losing low-frequency events - * (i.e., >= 1 per interval but < 1 per second). + * (i.e., >= 1 per interval but < 1 per millisecond). */ if (interval != 1) halfuptime = (uptime + 1) / 2; else halfuptime = 0; - (void)sleep(interval); + (void)usleep(interval * 1000); } } Modified: head/usr.sbin/iostat/iostat.8 ============================================================================== --- head/usr.sbin/iostat/iostat.8 Fri May 21 16:58:52 2010 (r208388) +++ head/usr.sbin/iostat/iostat.8 Fri May 21 17:10:52 2010 (r208389) @@ -239,6 +239,9 @@ seconds between each display. If no repeat .Ar count is specified, the default is infinity. +The +.Nm +command will accept and honor a non-integer number of seconds. .It Fl x Show extended disk statistics. Each disk is displayed on a line of its own with all available statistics. Modified: head/usr.sbin/iostat/iostat.c ============================================================================== --- head/usr.sbin/iostat/iostat.c Fri May 21 16:58:52 2010 (r208388) +++ head/usr.sbin/iostat/iostat.c Fri May 21 17:10:52 2010 (r208389) @@ -184,6 +184,7 @@ main(int argc, char **argv) long select_generation; char **specified_devices; devstat_select_mode select_mode; + float f; int havelast = 0; matches = NULL; @@ -239,9 +240,10 @@ main(int argc, char **argv) break; case 'w': wflag++; - waittime = atoi(optarg); + f = atof(optarg); + waittime = f * 1000; if (waittime < 1) - errx(1, "wait time is < 1"); + errx(1, "wait time is < 1ms"); break; case 'x': xflag++; @@ -378,12 +380,13 @@ main(int argc, char **argv) * Look for the traditional wait time and count arguments. */ if (*argv) { - waittime = atoi(*argv); + f = atof(*argv); + waittime = f * 1000; /* Let the user know he goofed, but keep going anyway */ if (wflag != 0) warnx("discarding previous wait interval, using" - " %d instead", waittime); + " %g instead", waittime / 1000.0); wflag++; if (*++argv) { @@ -401,7 +404,7 @@ main(int argc, char **argv) * to an interval of 1 second. */ if ((wflag == 0) && (cflag > 0)) - waittime = 1; + waittime = 1 * 1000; /* * If the user specified a wait time, but not a count, we want to @@ -602,7 +605,7 @@ main(int argc, char **argv) if (count >= 0 && --count <= 0) break; - sleep(waittime); + usleep(waittime * 1000); havelast = 1; } From owner-svn-src-all@FreeBSD.ORG Fri May 21 17:14:37 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 429D11065672; Fri, 21 May 2010 17:14:37 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 3193E8FC23; Fri, 21 May 2010 17:14:37 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LHEaH4079037; Fri, 21 May 2010 17:14:36 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LHEakp079034; Fri, 21 May 2010 17:14:36 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201005211714.o4LHEakp079034@svn.freebsd.org> From: John Baldwin Date: Fri, 21 May 2010 17:14:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208390 - in head/sys: kern sys X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 17:14:37 -0000 Author: jhb Date: Fri May 21 17:14:36 2010 New Revision: 208390 URL: http://svn.freebsd.org/changeset/base/208390 Log: Allow a const char * to be passed as the process name to kproc_kthread_add() without generating a warning. MFC after: 1 month Modified: head/sys/kern/kern_kthread.c head/sys/sys/kthread.h Modified: head/sys/kern/kern_kthread.c ============================================================================== --- head/sys/kern/kern_kthread.c Fri May 21 17:10:52 2010 (r208389) +++ head/sys/kern/kern_kthread.c Fri May 21 17:14:36 2010 (r208390) @@ -418,7 +418,7 @@ kthread_suspend_check() int kproc_kthread_add(void (*func)(void *), void *arg, struct proc **procptr, struct thread **tdptr, - int flags, int pages, char * procname, const char *fmt, ...) + int flags, int pages, const char *procname, const char *fmt, ...) { int error; va_list ap; Modified: head/sys/sys/kthread.h ============================================================================== --- head/sys/sys/kthread.h Fri May 21 17:10:52 2010 (r208389) +++ head/sys/sys/kthread.h Fri May 21 17:14:36 2010 (r208390) @@ -63,7 +63,7 @@ int kproc_kthread_add(void (*)(void struct proc **, struct thread **, int flags, int pages, - char * procname, const char *, ...) __printflike(8, 9); + const char *procname, const char *, ...) __printflike(8, 9); int kthread_add(void (*)(void *), void *, struct proc *, struct thread **, From owner-svn-src-all@FreeBSD.ORG Fri May 21 17:15:56 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EDB59106566C; Fri, 21 May 2010 17:15:56 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DD6A98FC14; Fri, 21 May 2010 17:15:56 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LHFuHZ079388; Fri, 21 May 2010 17:15:56 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LHFuP5079385; Fri, 21 May 2010 17:15:56 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201005211715.o4LHFuP5079385@svn.freebsd.org> From: John Baldwin Date: Fri, 21 May 2010 17:15:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208391 - head/sys/kern X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 17:15:57 -0000 Author: jhb Date: Fri May 21 17:15:56 2010 New Revision: 208391 URL: http://svn.freebsd.org/changeset/base/208391 Log: Assert that the thread passed to sched_bind() and sched_unbind() is curthread as those routines are only supported for curthread currently. MFC after: 1 month Modified: head/sys/kern/sched_4bsd.c head/sys/kern/sched_ule.c Modified: head/sys/kern/sched_4bsd.c ============================================================================== --- head/sys/kern/sched_4bsd.c Fri May 21 17:14:36 2010 (r208390) +++ head/sys/kern/sched_4bsd.c Fri May 21 17:15:56 2010 (r208391) @@ -1462,9 +1462,8 @@ sched_bind(struct thread *td, int cpu) { struct td_sched *ts; - THREAD_LOCK_ASSERT(td, MA_OWNED); - KASSERT(TD_IS_RUNNING(td), - ("sched_bind: cannot bind non-running thread")); + THREAD_LOCK_ASSERT(td, MA_OWNED|MA_NOTRECURSED); + KASSERT(td == curthread, ("sched_bind: can only bind curthread")); ts = td->td_sched; @@ -1482,6 +1481,7 @@ void sched_unbind(struct thread* td) { THREAD_LOCK_ASSERT(td, MA_OWNED); + KASSERT(td == curthread, ("sched_unbind: can only bind curthread")); td->td_flags &= ~TDF_BOUND; } Modified: head/sys/kern/sched_ule.c ============================================================================== --- head/sys/kern/sched_ule.c Fri May 21 17:14:36 2010 (r208390) +++ head/sys/kern/sched_ule.c Fri May 21 17:15:56 2010 (r208391) @@ -2427,6 +2427,7 @@ sched_bind(struct thread *td, int cpu) struct td_sched *ts; THREAD_LOCK_ASSERT(td, MA_OWNED|MA_NOTRECURSED); + KASSERT(td == curthread, ("sched_bind: can only bind curthread")); ts = td->td_sched; if (ts->ts_flags & TSF_BOUND) sched_unbind(td); @@ -2448,6 +2449,7 @@ sched_unbind(struct thread *td) struct td_sched *ts; THREAD_LOCK_ASSERT(td, MA_OWNED); + KASSERT(td == curthread, ("sched_unbind: can only bind curthread")); ts = td->td_sched; if ((ts->ts_flags & TSF_BOUND) == 0) return; From owner-svn-src-all@FreeBSD.ORG Fri May 21 17:17:56 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9DF0B1065679; Fri, 21 May 2010 17:17:56 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8C8168FC0A; Fri, 21 May 2010 17:17:56 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LHHurB079885; Fri, 21 May 2010 17:17:56 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LHHunx079880; Fri, 21 May 2010 17:17:56 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201005211717.o4LHHunx079880@svn.freebsd.org> From: John Baldwin Date: Fri, 21 May 2010 17:17:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208392 - in head/sys: amd64/amd64 ia64/ia64 kern mips/mips X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 17:17:56 -0000 Author: jhb Date: Fri May 21 17:17:56 2010 New Revision: 208392 URL: http://svn.freebsd.org/changeset/base/208392 Log: - Adjust the whitespace for the lines that output fields in 'show pcpu' in DDB so that all the fields line up. - Print out the tid of the per-CPU idlethread instead of the pid since the idle process is now shared across all idle threads. MFC after: 1 month Modified: head/sys/amd64/amd64/db_interface.c head/sys/ia64/ia64/db_machdep.c head/sys/kern/subr_pcpu.c head/sys/mips/mips/db_trace.c Modified: head/sys/amd64/amd64/db_interface.c ============================================================================== --- head/sys/amd64/amd64/db_interface.c Fri May 21 17:15:56 2010 (r208391) +++ head/sys/amd64/amd64/db_interface.c Fri May 21 17:17:56 2010 (r208392) @@ -139,11 +139,11 @@ void db_show_mdpcpu(struct pcpu *pc) { - db_printf("curpmap = %p\n", pc->pc_curpmap); - db_printf("tssp = %p\n", pc->pc_tssp); - db_printf("commontssp = %p\n", pc->pc_commontssp); - db_printf("rsp0 = 0x%lx\n", pc->pc_rsp0); - db_printf("gs32p = %p\n", pc->pc_gs32p); - db_printf("ldt = %p\n", pc->pc_ldt); - db_printf("tss = %p\n", pc->pc_tss); + db_printf("curpmap = %p\n", pc->pc_curpmap); + db_printf("tssp = %p\n", pc->pc_tssp); + db_printf("commontssp = %p\n", pc->pc_commontssp); + db_printf("rsp0 = 0x%lx\n", pc->pc_rsp0); + db_printf("gs32p = %p\n", pc->pc_gs32p); + db_printf("ldt = %p\n", pc->pc_ldt); + db_printf("tss = %p\n", pc->pc_tss); } Modified: head/sys/ia64/ia64/db_machdep.c ============================================================================== --- head/sys/ia64/ia64/db_machdep.c Fri May 21 17:15:56 2010 (r208391) +++ head/sys/ia64/ia64/db_machdep.c Fri May 21 17:17:56 2010 (r208392) @@ -579,11 +579,11 @@ db_show_mdpcpu(struct pcpu *pc) { struct pcpu_md *md = &pc->pc_md; - db_printf("MD: vhpt = %#lx\n", md->vhpt); - db_printf("MD: lid = %#lx\n", md->lid); - db_printf("MD: clock = %#lx/%#lx\n", md->clock, md->clockadj); - db_printf("MD: stats = %p\n", &md->stats); - db_printf("MD: pmap = %p\n", md->current_pmap); + db_printf("MD: vhpt = %#lx\n", md->vhpt); + db_printf("MD: lid = %#lx\n", md->lid); + db_printf("MD: clock = %#lx/%#lx\n", md->clock, md->clockadj); + db_printf("MD: stats = %p\n", &md->stats); + db_printf("MD: pmap = %p\n", md->current_pmap); } void Modified: head/sys/kern/subr_pcpu.c ============================================================================== --- head/sys/kern/subr_pcpu.c Fri May 21 17:15:56 2010 (r208391) +++ head/sys/kern/subr_pcpu.c Fri May 21 17:17:56 2010 (r208392) @@ -332,7 +332,7 @@ show_pcpu(struct pcpu *pc) struct thread *td; db_printf("cpuid = %d\n", pc->pc_cpuid); - db_printf("dynamic pcpu = %p\n", (void *)pc->pc_dynamic); + db_printf("dynamic pcpu = %p\n", (void *)pc->pc_dynamic); db_printf("curthread = "); td = pc->pc_curthread; if (td != NULL) @@ -351,12 +351,11 @@ show_pcpu(struct pcpu *pc) db_printf("idlethread = "); td = pc->pc_idlethread; if (td != NULL) - db_printf("%p: pid %d \"%s\"\n", td, td->td_proc->p_pid, - td->td_name); + db_printf("%p: tid %d \"%s\"\n", td, td->td_tid, td->td_name); else db_printf("none\n"); db_show_mdpcpu(pc); - + #ifdef VIMAGE db_printf("curvnet = %p\n", pc->pc_curthread->td_vnet); #endif Modified: head/sys/mips/mips/db_trace.c ============================================================================== --- head/sys/mips/mips/db_trace.c Fri May 21 17:15:56 2010 (r208391) +++ head/sys/mips/mips/db_trace.c Fri May 21 17:17:56 2010 (r208392) @@ -432,8 +432,8 @@ void db_show_mdpcpu(struct pcpu *pc) { - db_printf("ipis = 0x%x\n", pc->pc_pending_ipis); + db_printf("ipis = 0x%x\n", pc->pc_pending_ipis); db_printf("next ASID = %d\n", pc->pc_next_asid); - db_printf("GENID = %d\n", pc->pc_asid_generation); + db_printf("GENID = %d\n", pc->pc_asid_generation); return; } From owner-svn-src-all@FreeBSD.ORG Fri May 21 17:26:17 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 02253106564A; Fri, 21 May 2010 17:26:17 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E4F078FC15; Fri, 21 May 2010 17:26:16 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LHQGco081730; Fri, 21 May 2010 17:26:16 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LHQGMn081729; Fri, 21 May 2010 17:26:16 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201005211726.o4LHQGMn081729@svn.freebsd.org> From: Alexander Motin Date: Fri, 21 May 2010 17:26:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208393 - in head/sys/dev: mvs siis X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 17:26:17 -0000 Author: mav Date: Fri May 21 17:26:16 2010 New Revision: 208393 URL: http://svn.freebsd.org/changeset/base/208393 Log: Improve suspend/resume support. Make sure controller is idle on suspend and reset it on resume. Modified: head/sys/dev/mvs/mvs.c head/sys/dev/siis/siis.c Modified: head/sys/dev/mvs/mvs.c ============================================================================== --- head/sys/dev/mvs/mvs.c Fri May 21 17:17:56 2010 (r208392) +++ head/sys/dev/mvs/mvs.c Fri May 21 17:26:16 2010 (r208393) @@ -51,6 +51,8 @@ __FBSDID("$FreeBSD$"); #include /* local prototypes */ +static int mvs_ch_init(device_t dev); +static int mvs_ch_deinit(device_t dev); static int mvs_ch_suspend(device_t dev); static int mvs_ch_resume(device_t dev); static void mvs_dmainit(device_t dev); @@ -133,7 +135,7 @@ mvs_ch_attach(device_t dev) return (ENXIO); mvs_dmainit(dev); mvs_slotsalloc(dev); - mvs_ch_resume(dev); + mvs_ch_init(dev); mtx_lock(&ch->mtx); rid = ATA_IRQ_RID; if (!(ch->r_irq = bus_alloc_resource_any(dev, SYS_RES_IRQ, @@ -215,7 +217,7 @@ mvs_ch_detach(device_t dev) bus_teardown_intr(dev, ch->r_irq, ch->ih); bus_release_resource(dev, SYS_RES_IRQ, ATA_IRQ_RID, ch->r_irq); - mvs_ch_suspend(dev); + mvs_ch_deinit(dev); mvs_slotsfree(dev); mvs_dmafini(dev); @@ -225,19 +227,7 @@ mvs_ch_detach(device_t dev) } static int -mvs_ch_suspend(device_t dev) -{ - struct mvs_channel *ch = device_get_softc(dev); - - /* Stop EDMA */ - mvs_set_edma_mode(dev, MVS_EDMA_OFF); - /* Disable port interrupts. */ - ATA_OUTL(ch->r_mem, EDMA_IEM, 0); - return (0); -} - -static int -mvs_ch_resume(device_t dev) +mvs_ch_init(device_t dev) { struct mvs_channel *ch = device_get_softc(dev); uint32_t reg; @@ -264,6 +254,45 @@ mvs_ch_resume(device_t dev) return (0); } +static int +mvs_ch_deinit(device_t dev) +{ + struct mvs_channel *ch = device_get_softc(dev); + + /* Stop EDMA */ + mvs_set_edma_mode(dev, MVS_EDMA_OFF); + /* Disable port interrupts. */ + ATA_OUTL(ch->r_mem, EDMA_IEM, 0); + return (0); +} + +static int +mvs_ch_suspend(device_t dev) +{ + struct mvs_channel *ch = device_get_softc(dev); + + mtx_lock(&ch->mtx); + xpt_freeze_simq(ch->sim, 1); + while (ch->oslots) + msleep(ch, &ch->mtx, PRIBIO, "mvssusp", hz/100); + mvs_ch_deinit(dev); + mtx_unlock(&ch->mtx); + return (0); +} + +static int +mvs_ch_resume(device_t dev) +{ + struct mvs_channel *ch = device_get_softc(dev); + + mtx_lock(&ch->mtx); + mvs_ch_init(dev); + mvs_reset(dev); + xpt_release_simq(ch->sim, TRUE); + mtx_unlock(&ch->mtx); + return (0); +} + struct mvs_dc_cb_args { bus_addr_t maddr; int error; Modified: head/sys/dev/siis/siis.c ============================================================================== --- head/sys/dev/siis/siis.c Fri May 21 17:17:56 2010 (r208392) +++ head/sys/dev/siis/siis.c Fri May 21 17:26:16 2010 (r208393) @@ -59,6 +59,8 @@ static int siis_setup_interrupt(device_t static void siis_intr(void *data); static int siis_suspend(device_t dev); static int siis_resume(device_t dev); +static int siis_ch_init(device_t dev); +static int siis_ch_deinit(device_t dev); static int siis_ch_suspend(device_t dev); static int siis_ch_resume(device_t dev); static void siis_ch_intr_locked(void *data); @@ -458,7 +460,7 @@ siis_ch_attach(device_t dev) return (ENXIO); siis_dmainit(dev); siis_slotsalloc(dev); - siis_ch_resume(dev); + siis_ch_init(dev); mtx_lock(&ch->mtx); rid = ATA_IRQ_RID; if (!(ch->r_irq = bus_alloc_resource_any(dev, SYS_RES_IRQ, @@ -528,7 +530,7 @@ siis_ch_detach(device_t dev) bus_teardown_intr(dev, ch->r_irq, ch->ih); bus_release_resource(dev, SYS_RES_IRQ, ATA_IRQ_RID, ch->r_irq); - siis_ch_suspend(dev); + siis_ch_deinit(dev); siis_slotsfree(dev); siis_dmafini(dev); @@ -538,7 +540,24 @@ siis_ch_detach(device_t dev) } static int -siis_ch_suspend(device_t dev) +siis_ch_init(device_t dev) +{ + struct siis_channel *ch = device_get_softc(dev); + + /* Get port out of reset state. */ + ATA_OUTL(ch->r_mem, SIIS_P_CTLCLR, SIIS_P_CTL_PORT_RESET); + ATA_OUTL(ch->r_mem, SIIS_P_CTLCLR, SIIS_P_CTL_32BIT); + if (ch->pm_present) + ATA_OUTL(ch->r_mem, SIIS_P_CTLSET, SIIS_P_CTL_PME); + else + ATA_OUTL(ch->r_mem, SIIS_P_CTLCLR, SIIS_P_CTL_PME); + /* Enable port interrupts */ + ATA_OUTL(ch->r_mem, SIIS_P_IESET, SIIS_P_IX_ENABLED); + return (0); +} + +static int +siis_ch_deinit(device_t dev) { struct siis_channel *ch = device_get_softc(dev); @@ -548,19 +567,29 @@ siis_ch_suspend(device_t dev) } static int +siis_ch_suspend(device_t dev) +{ + struct siis_channel *ch = device_get_softc(dev); + + mtx_lock(&ch->mtx); + xpt_freeze_simq(ch->sim, 1); + while (ch->oslots) + msleep(ch, &ch->mtx, PRIBIO, "siissusp", hz/100); + siis_ch_deinit(dev); + mtx_unlock(&ch->mtx); + return (0); +} + +static int siis_ch_resume(device_t dev) { struct siis_channel *ch = device_get_softc(dev); - /* Get port out of reset state. */ - ATA_OUTL(ch->r_mem, SIIS_P_CTLCLR, SIIS_P_CTL_PORT_RESET); - ATA_OUTL(ch->r_mem, SIIS_P_CTLCLR, SIIS_P_CTL_32BIT); - if (ch->pm_present) - ATA_OUTL(ch->r_mem, SIIS_P_CTLSET, SIIS_P_CTL_PME); - else - ATA_OUTL(ch->r_mem, SIIS_P_CTLCLR, SIIS_P_CTL_PME); - /* Enable port interrupts */ - ATA_OUTL(ch->r_mem, SIIS_P_IESET, SIIS_P_IX_ENABLED); + mtx_lock(&ch->mtx); + siis_ch_init(dev); + siis_reset(dev); + xpt_release_simq(ch->sim, TRUE); + mtx_unlock(&ch->mtx); return (0); } From owner-svn-src-all@FreeBSD.ORG Fri May 21 18:03:35 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 604361065673; Fri, 21 May 2010 18:03:35 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from cyrus.watson.org (cyrus.watson.org [65.122.17.42]) by mx1.freebsd.org (Postfix) with ESMTP id 30FC08FC16; Fri, 21 May 2010 18:03:35 +0000 (UTC) Received: from bigwig.baldwin.cx (66.111.2.69.static.nyinternet.net [66.111.2.69]) by cyrus.watson.org (Postfix) with ESMTPSA id BF95A46B1A; Fri, 21 May 2010 14:03:34 -0400 (EDT) Received: from jhbbsd.localnet (smtp.hudson-trading.com [209.249.190.9]) by bigwig.baldwin.cx (Postfix) with ESMTPA id CC7F08A01F; Fri, 21 May 2010 14:03:33 -0400 (EDT) From: John Baldwin To: Sean Bruno Date: Fri, 21 May 2010 13:54:09 -0400 User-Agent: KMail/1.12.1 (FreeBSD/7.3-CBSD-20100217; KDE/4.3.1; amd64; ; ) References: <201005211710.o4LHArGI078167@svn.freebsd.org> In-Reply-To: <201005211710.o4LHArGI078167@svn.freebsd.org> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <201005211354.09044.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.0.1 (bigwig.baldwin.cx); Fri, 21 May 2010 14:03:33 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.95.1 at bigwig.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-2.4 required=4.2 tests=AWL,BAYES_00 autolearn=ham version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bigwig.baldwin.cx Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r208389 - in head: usr.bin/vmstat usr.sbin/iostat X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 18:03:35 -0000 On Friday 21 May 2010 1:10:53 pm Sean Bruno wrote: > Author: sbruno > Date: Fri May 21 17:10:52 2010 > New Revision: 208389 > URL: http://svn.freebsd.org/changeset/base/208389 > > Log: > Allow sub-second interval timings for iostat and vmstat. > e.g. > vmstat -w.5 > iostat -w.5 It should perhaps be noted that the intervals are only at a granularity of a millisecond, and of course it is subject to the frequency of clock interrupts via 'hz'. -- John Baldwin From owner-svn-src-all@FreeBSD.ORG Fri May 21 19:08:24 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F1136106564A; Fri, 21 May 2010 19:08:24 +0000 (UTC) (envelope-from jchandra@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id DF73C8FC14; Fri, 21 May 2010 19:08:24 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LJ8Odf008589; Fri, 21 May 2010 19:08:24 GMT (envelope-from jchandra@svn.freebsd.org) Received: (from jchandra@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LJ8OFh008587; Fri, 21 May 2010 19:08:24 GMT (envelope-from jchandra@svn.freebsd.org) Message-Id: <201005211908.o4LJ8OFh008587@svn.freebsd.org> From: "Jayachandran C." Date: Fri, 21 May 2010 19:08:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208394 - head/share/misc X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 19:08:25 -0000 Author: jchandra Date: Fri May 21 19:08:24 2010 New Revision: 208394 URL: http://svn.freebsd.org/changeset/base/208394 Log: Fixup order of entries (including mine), reported by yar@freebsd.org Approved by: rrs (mentor) Modified: head/share/misc/committers-src.dot Modified: head/share/misc/committers-src.dot ============================================================================== --- head/share/misc/committers-src.dot Fri May 21 17:26:16 2010 (r208393) +++ head/share/misc/committers-src.dot Fri May 21 19:08:24 2010 (r208394) @@ -111,12 +111,12 @@ ivoras [label="Ivan Voras\nivoras@FreeBS jake [label="Jake Burkholder\njake@FreeBSD.org\n2000/05/16"] jamie [label="Jamie Gritton\njamie@FreeBSD.org\n2009/01/28"] jayanth [label="Jayanth Vijayaraghavan\njayanth@FreeBSD.org\n2000/05/08"] -jh [label="Jaakko Heinonen\njh@FreeBSD.org\n2009/10/02"] -jilles [label="Jilles Tjoelker\njilles@FreeBSD.org\n2009/05/22"] -jinmei [label="JINMEI Tatuya\njinmei@FreeBSD.org\n2007/03/17"] jchandra [label="Jayachandran C.\njchandra@FreeBSD.org\n2010/05/19"] jdp [label="John Polstra\njdp@FreeBSD.org\n????/??/??"] +jh [label="Jaakko Heinonen\njh@FreeBSD.org\n2009/10/02"] jhb [label="John Baldwin\njhb@FreeBSD.org\n1999/08/23"] +jilles [label="Jilles Tjoelker\njilles@FreeBSD.org\n2009/05/22"] +jinmei [label="JINMEI Tatuya\njinmei@FreeBSD.org\n2007/03/17"] jkh [label="Jordan K. Hubbard\njkh@FreeBSD.org\n1993/06/12"] jkim [label="Jung-uk Kim\njkim@FreeBSD.org\n2005/07/06"] jkoshy [label="A. Joseph Koshy\njkoshy@FreeBSD.org\n1998/05/13"] From owner-svn-src-all@FreeBSD.ORG Fri May 21 19:09:42 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A3F52106566B; Fri, 21 May 2010 19:09:42 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8DF798FC08; Fri, 21 May 2010 19:09:42 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LJ9gxg009067; Fri, 21 May 2010 19:09:42 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LJ9gwr009016; Fri, 21 May 2010 19:09:42 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201005211909.o4LJ9gwr009016@svn.freebsd.org> From: Marius Strobl Date: Fri, 21 May 2010 19:09:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208395 - in stable/8/tools/regression/usr.bin/sed: . regress.multitest.out X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 19:09:42 -0000 Author: marius Date: Fri May 21 19:09:41 2010 New Revision: 208395 URL: http://svn.freebsd.org/changeset/base/208395 Log: MFC: r197352 The transition to Subversion allows us to rename files without repo-copy hacks. Remove the test-number prefix from the name of the output files, so that new test cases can be easily added. Added: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.1 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.1 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.10 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.10 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.11 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.11 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.12 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.12 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.13 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.13 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.14 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.14 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.15 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.15 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.16 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.16 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.17 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.17 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.18 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.18 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.2 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.2 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.3 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.3 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.4 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.4 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.4.1 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.4.1 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.5 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.5 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.6 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.6 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.7 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.7 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.8 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.8 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.9 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.9 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.1 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.1 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.10 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.10 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.11 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.11 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.12 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.12 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.13 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.13 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.14 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.14 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.15 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.15 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.16 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.16 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.17 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.17 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.18 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.18 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.19 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.19 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.2 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.2 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.20 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.20 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.21 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.21 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.22 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.22 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.3 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.3 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.4 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.4 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.5 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.5 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.6 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.6 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.7 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.7 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.8 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.8 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.9 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.9 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/3.1 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/3.1 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/3.2 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/3.2 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/3.3 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/3.3 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/3.4 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/3.4 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/4.1 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/4.1 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/4.2 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/4.2 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/4.3 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/4.3 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/4.4 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/4.4 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/4.5 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/4.5 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/4.6 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/4.6 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/4.7 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/4.7 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/4.8 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/4.8 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/5.1 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/5.1 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/5.2 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/5.2 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/5.3 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/5.3 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/5.4 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/5.4 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/5.5 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/5.5 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/5.6 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/5.6 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/5.7 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/5.7 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/5.8 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/5.8 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/6.1 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/6.1 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/6.2 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/6.2 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/6.3 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/6.3 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/6.4 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/6.4 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/6.5 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/6.5 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/6.6 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/6.6 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/7.1 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/7.1 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/7.2 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/7.2 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/7.3 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/7.3 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/7.4 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/7.4 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/7.5 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/7.5 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/7.6 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/7.6 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/7.7 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/7.7 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/7.8 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/7.8 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.1 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/8.1 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.10 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/8.10 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.11 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/8.11 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.12 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/8.12 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.13 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/8.13 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.14 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/8.14 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.15 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/8.15 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.16 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/8.16 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.17 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/8.17 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.2 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/8.2 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.3 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/8.3 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.4 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/8.4 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.5 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/8.5 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.6 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/8.6 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.7 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/8.7 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.8 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/8.8 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.9 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/8.9 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.1 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.1 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.10 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.10 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.11 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.11 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.12 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.12 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.13 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.13 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.14 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.14 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.15 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.15 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.16 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.16 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.17 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.17 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.18 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.18 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.19 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.19 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.2 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.2 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.20 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.20 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.21 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.21 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.22 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.22 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.23 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.23 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.24 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.24 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.25 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.25 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.26 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.26 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.27 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.27 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.28 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.28 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.29 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.29 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.3 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.3 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.30 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.30 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.31 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.31 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.4 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.4 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.5 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.5 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.6 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.6 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.7 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.7 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.8 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.8 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.9 - copied unchanged from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/9.9 Deleted: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/100_9.10 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/101_9.11 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/102_9.12 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/103_9.13 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/104_9.14 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/105_9.15 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/106_9.16 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/107_9.17 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/108_9.18 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/109_9.19 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/10_1.9 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/110_9.20 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/111_9.21 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/112_9.22 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/113_9.23 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/114_9.24 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/115_9.25 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/116_9.26 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/117_9.27 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/118_9.28 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/119_9.29 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/11_1.10 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/120_9.30 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/121_9.31 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/12_1.11 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/13_1.12 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/14_1.13 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/15_1.14 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/16_1.15 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/17_1.16 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/18_1.17 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/19_1.18 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1_1.1 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/20_2.1 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/21_2.2 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/22_2.3 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/23_2.4 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/24_2.5 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/25_2.6 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/26_2.7 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/27_2.8 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/28_2.9 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/29_2.10 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2_1.2 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/30_2.11 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/31_2.12 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/32_2.13 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/33_2.14 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/34_2.15 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/35_2.16 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/36_2.17 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/37_2.18 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/38_2.19 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/39_2.20 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/3_1.3 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/40_2.21 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/40_3.1 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/41_2.22 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/41_3.2 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/42_3.3 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/43_3.4 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/44_4.1 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/45_4.2 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/46_4.3 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/47_4.4 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/48_4.5 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/49_4.6 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/4_1.4 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/50_4.7 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/51_4.8 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/52_5.1 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/53_5.2 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/54_5.3 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/55_5.4 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/56_5.5 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/57_5.6 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/58_5.7 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/59_5.8 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/5_1.4.1 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/60_6.1 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/61_6.2 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/62_6.3 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/63_6.4 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/64_6.5 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/65_6.6 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/66_7.1 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/67_7.2 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/68_7.3 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/69_7.4 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/6_1.5 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/70_7.5 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/71_7.6 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/72_7.7 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/73_7.8 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/74_8.1 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/75_8.2 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/76_8.3 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/77_8.4 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/78_8.5 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/79_8.6 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/7_1.6 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/80_8.7 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/81_8.8 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/82_8.9 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/83_8.10 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/84_8.11 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/85_8.12 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/86_8.13 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/87_8.14 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/88_8.15 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/89_8.16 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8_1.7 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/90_8.17 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/91_9.1 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/92_9.2 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/93_9.3 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/94_9.4 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/95_9.5 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/96_9.6 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/97_9.7 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/98_9.8 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/99_9.9 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9_1.8 Modified: stable/8/tools/regression/usr.bin/sed/multitest.t Directory Properties: stable/8/tools/regression/usr.bin/sed/ (props changed) Modified: stable/8/tools/regression/usr.bin/sed/multitest.t ============================================================================== --- stable/8/tools/regression/usr.bin/sed/multitest.t Fri May 21 19:08:24 2010 (r208394) +++ stable/8/tools/regression/usr.bin/sed/multitest.t Fri May 21 19:09:41 2010 (r208395) @@ -37,11 +37,9 @@ # # The directory regress.test.out contains the expected test results # -# These are the regression tests created during the development of the -# BSD sed. The reference file naming scheme used in this script can't -# handle gracefully the insertion of new tests between existing ones. -# Therefore, either use the new m4-based regress.t framework, or add -# tests after the last existing test. +# These are the regression tests mostly created during the development +# of the BSD sed. Each test should have a unique mark name, which is +# used for naming the corresponding file in regress.multitest.out. main() { @@ -88,11 +86,11 @@ result() else TODO='' fi - if ! [ -r $REGRESS/${MARK}_${TESTNAME} ] ; then - echo "Seeding $REGRESS/${MARK}_${TESTNAME} with current result" 1>&2 - cp current.out $REGRESS/${MARK}_${TESTNAME} + if ! [ -r $REGRESS/${TESTNAME} ] ; then + echo "Seeding $REGRESS/${TESTNAME} with current result" 1>&2 + cp current.out $REGRESS/${TESTNAME} fi - if diff -c $REGRESS/${MARK}_${TESTNAME} current.out ; then + if diff -c $REGRESS/${TESTNAME} current.out ; then echo "ok $MARK $TESTNAME # $TODO$COMMENT" else echo "not ok $MARK $TESTNAME # $TODO$COMMENT" Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.1 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.1) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.1 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.1) @@ -0,0 +1,28 @@ +e1_l1_1 +e1_l1_1 +e1_l1_2 +e1_l1_2 +e1_l1_3 +e1_l1_3 +e1_l1_4 +e1_l1_4 +e1_l1_5 +e1_l1_5 +e1_l1_6 +e1_l1_6 +e1_l1_7 +e1_l1_7 +e1_l1_8 +e1_l1_8 +e1_l1_9 +e1_l1_9 +e1_l1_10 +e1_l1_10 +e1_l1_11 +e1_l1_11 +e1_l1_12 +e1_l1_12 +e1_l1_13 +e1_l1_13 +e1_l1_14 +e1_l1_14 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.10 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.10) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.10 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.10) @@ -0,0 +1,14 @@ +s1_l1_1 +s1_l1_2 +s1_l1_3 +s1_l1_4 +s1_l1_5 +s1_l1_6 +s1_l1_7 +s1_l1_8 +s1_l1_9 +s1_l1_10 +s1_l1_11 +s1_l1_12 +s1_l1_13 +s1_l1_14 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.11 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.11) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.11 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.11) @@ -0,0 +1,14 @@ +e1_l1_1 +e1_l1_2 +e1_l1_3 +e1_l1_4 +e1_l1_5 +e1_l1_6 +e1_l1_7 +e1_l1_8 +e1_l1_9 +e1_l1_10 +e1_l1_11 +e1_l1_12 +e1_l1_13 +e1_l1_14 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.12 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.12) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.12 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.12) @@ -0,0 +1,14 @@ +e1_l1_1 +e1_l1_2 +e1_l1_3 +e1_l1_4 +e1_l1_5 +e1_l1_6 +e1_l1_7 +e1_l1_8 +e1_l1_9 +e1_l1_10 +e1_l1_11 +e1_l1_12 +e1_l1_13 +e1_l1_14 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.13 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.13) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.13 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.13) @@ -0,0 +1,42 @@ +e1_l1_1 +e2_e1_l1_1 +e2_e1_l1_1 +e1_l1_2 +e2_e1_l1_2 +e2_e1_l1_2 +e1_l1_3 +e2_e1_l1_3 +e2_e1_l1_3 +e1_l1_4 +e2_e1_l1_4 +e2_e1_l1_4 +e1_l1_5 +e2_e1_l1_5 +e2_e1_l1_5 +e1_l1_6 +e2_e1_l1_6 +e2_e1_l1_6 +e1_l1_7 +e2_e1_l1_7 +e2_e1_l1_7 +e1_l1_8 +e2_e1_l1_8 +e2_e1_l1_8 +e1_l1_9 +e2_e1_l1_9 +e2_e1_l1_9 +e1_l1_10 +e2_e1_l1_10 +e2_e1_l1_10 +e1_l1_11 +e2_e1_l1_11 +e2_e1_l1_11 +e1_l1_12 +e2_e1_l1_12 +e2_e1_l1_12 +e1_l1_13 +e2_e1_l1_13 +e2_e1_l1_13 +e1_l1_14 +e2_e1_l1_14 +e2_e1_l1_14 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.14 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.14) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.14 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.14) @@ -0,0 +1,42 @@ +s1_l1_1 +s2_s1_l1_1 +s2_s1_l1_1 +s1_l1_2 +s2_s1_l1_2 +s2_s1_l1_2 +s1_l1_3 +s2_s1_l1_3 +s2_s1_l1_3 +s1_l1_4 +s2_s1_l1_4 +s2_s1_l1_4 +s1_l1_5 +s2_s1_l1_5 +s2_s1_l1_5 +s1_l1_6 +s2_s1_l1_6 +s2_s1_l1_6 +s1_l1_7 +s2_s1_l1_7 +s2_s1_l1_7 +s1_l1_8 +s2_s1_l1_8 +s2_s1_l1_8 +s1_l1_9 +s2_s1_l1_9 +s2_s1_l1_9 +s1_l1_10 +s2_s1_l1_10 +s2_s1_l1_10 +s1_l1_11 +s2_s1_l1_11 +s2_s1_l1_11 +s1_l1_12 +s2_s1_l1_12 +s2_s1_l1_12 +s1_l1_13 +s2_s1_l1_13 +s2_s1_l1_13 +s1_l1_14 +s2_s1_l1_14 +s2_s1_l1_14 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.15 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.15) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.15 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.15) @@ -0,0 +1,42 @@ +e1_l1_1 +s1_e1_l1_1 +s1_e1_l1_1 +e1_l1_2 +s1_e1_l1_2 +s1_e1_l1_2 +e1_l1_3 +s1_e1_l1_3 +s1_e1_l1_3 +e1_l1_4 +s1_e1_l1_4 +s1_e1_l1_4 +e1_l1_5 +s1_e1_l1_5 +s1_e1_l1_5 +e1_l1_6 +s1_e1_l1_6 +s1_e1_l1_6 +e1_l1_7 +s1_e1_l1_7 +s1_e1_l1_7 +e1_l1_8 +s1_e1_l1_8 +s1_e1_l1_8 +e1_l1_9 +s1_e1_l1_9 +s1_e1_l1_9 +e1_l1_10 +s1_e1_l1_10 +s1_e1_l1_10 +e1_l1_11 +s1_e1_l1_11 +s1_e1_l1_11 +e1_l1_12 +s1_e1_l1_12 +s1_e1_l1_12 +e1_l1_13 +s1_e1_l1_13 +s1_e1_l1_13 +e1_l1_14 +s1_e1_l1_14 +s1_e1_l1_14 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.16 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.16) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.16 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.16) @@ -0,0 +1,56 @@ +e1_l1_1 +e1_l1_1 +e1_l1_2 +e1_l1_2 +e1_l1_3 +e1_l1_3 +e1_l1_4 +e1_l1_4 +e1_l1_5 +e1_l1_5 +e1_l1_6 +e1_l1_6 +e1_l1_7 +e1_l1_7 +e1_l1_8 +e1_l1_8 +e1_l1_9 +e1_l1_9 +e1_l1_10 +e1_l1_10 +e1_l1_11 +e1_l1_11 +e1_l1_12 +e1_l1_12 +e1_l1_13 +e1_l1_13 +e1_l1_14 +e1_l1_14 +e1_l1_1 +e1_l1_1 +e1_l1_2 +e1_l1_2 +e1_l1_3 +e1_l1_3 +e1_l1_4 +e1_l1_4 +e1_l1_5 +e1_l1_5 +e1_l1_6 +e1_l1_6 +e1_l1_7 +e1_l1_7 +e1_l1_8 +e1_l1_8 +e1_l1_9 +e1_l1_9 +e1_l1_10 +e1_l1_10 +e1_l1_11 +e1_l1_11 +e1_l1_12 +e1_l1_12 +e1_l1_13 +e1_l1_13 +e1_l1_14 +e1_l1_14 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.17 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.17) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.17 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.17) @@ -0,0 +1,28 @@ +l1_1 +l1_1 +l1_2 +l1_2 +l1_3 +l1_3 +l1_4 +l1_4 +l1_5 +l1_5 +l1_6 +l1_6 +l1_7 +l1_7 +l1_8 +l1_8 +l1_9 +l1_9 +l1_10 +l1_10 +l1_11 +l1_11 +l1_12 +l1_12 +l1_13 +l1_13 +l1_14 +l1_14 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.18 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.18) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.18 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.18) @@ -0,0 +1,14 @@ +l1_1 +l1_2 +l1_3 +l1_4 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_11 +l1_12 +l1_13 +l1_14 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.2 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.2) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.2 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.2) @@ -0,0 +1,14 @@ +e1_l1_1 +e1_l1_2 +e1_l1_3 +e1_l1_4 +e1_l1_5 +e1_l1_6 +e1_l1_7 +e1_l1_8 +e1_l1_9 +e1_l1_10 +e1_l1_11 +e1_l1_12 +e1_l1_13 +e1_l1_14 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.3 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.3) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.3 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.3) @@ -0,0 +1,28 @@ +e1_l1_1 +e1_l1_1 +e1_l1_2 +e1_l1_2 +e1_l1_3 +e1_l1_3 +e1_l1_4 +e1_l1_4 +e1_l1_5 +e1_l1_5 +e1_l1_6 +e1_l1_6 +e1_l1_7 +e1_l1_7 +e1_l1_8 +e1_l1_8 +e1_l1_9 +e1_l1_9 +e1_l1_10 +e1_l1_10 +e1_l1_11 +e1_l1_11 +e1_l1_12 +e1_l1_12 +e1_l1_13 +e1_l1_13 +e1_l1_14 +e1_l1_14 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.4 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.4) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.4 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.4) @@ -0,0 +1,14 @@ +e1_l1_1 +e1_l1_2 +e1_l1_3 +e1_l1_4 +e1_l1_5 +e1_l1_6 +e1_l1_7 +e1_l1_8 +e1_l1_9 +e1_l1_10 +e1_l1_11 +e1_l1_12 +e1_l1_13 +e1_l1_14 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.4.1 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.4.1) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.4.1 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.4.1) @@ -0,0 +1,14 @@ +l1_1 +l1_2 +l1_3 +l1_4 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_11 +l1_12 +l1_13 +l1_14 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.5 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.5) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.5 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.5) @@ -0,0 +1,28 @@ +s1_l1_1 +s1_l1_1 +s1_l1_2 +s1_l1_2 +s1_l1_3 +s1_l1_3 +s1_l1_4 +s1_l1_4 +s1_l1_5 +s1_l1_5 +s1_l1_6 +s1_l1_6 +s1_l1_7 +s1_l1_7 +s1_l1_8 +s1_l1_8 +s1_l1_9 +s1_l1_9 +s1_l1_10 +s1_l1_10 +s1_l1_11 +s1_l1_11 +s1_l1_12 +s1_l1_12 +s1_l1_13 +s1_l1_13 +s1_l1_14 +s1_l1_14 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.6 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.6) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.6 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.6) @@ -0,0 +1,28 @@ +s1_l1_1 +s1_l1_1 +s1_l1_2 +s1_l1_2 +s1_l1_3 +s1_l1_3 +s1_l1_4 +s1_l1_4 +s1_l1_5 +s1_l1_5 +s1_l1_6 +s1_l1_6 +s1_l1_7 +s1_l1_7 +s1_l1_8 +s1_l1_8 +s1_l1_9 +s1_l1_9 +s1_l1_10 +s1_l1_10 +s1_l1_11 +s1_l1_11 +s1_l1_12 +s1_l1_12 +s1_l1_13 +s1_l1_13 +s1_l1_14 +s1_l1_14 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.7 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.7) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.7 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.7) @@ -0,0 +1,28 @@ +e1_l1_1 +e1_l1_1 +e1_l1_2 +e1_l1_2 +e1_l1_3 +e1_l1_3 +e1_l1_4 +e1_l1_4 +e1_l1_5 +e1_l1_5 +e1_l1_6 +e1_l1_6 +e1_l1_7 +e1_l1_7 +e1_l1_8 +e1_l1_8 +e1_l1_9 +e1_l1_9 +e1_l1_10 +e1_l1_10 +e1_l1_11 +e1_l1_11 +e1_l1_12 +e1_l1_12 +e1_l1_13 +e1_l1_13 +e1_l1_14 +e1_l1_14 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.8 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.8) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.8 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.8) @@ -0,0 +1,28 @@ +e1_l1_1 +e1_l1_1 +e1_l1_2 +e1_l1_2 +e1_l1_3 +e1_l1_3 +e1_l1_4 +e1_l1_4 +e1_l1_5 +e1_l1_5 +e1_l1_6 +e1_l1_6 +e1_l1_7 +e1_l1_7 +e1_l1_8 +e1_l1_8 +e1_l1_9 +e1_l1_9 +e1_l1_10 +e1_l1_10 +e1_l1_11 +e1_l1_11 +e1_l1_12 +e1_l1_12 +e1_l1_13 +e1_l1_13 +e1_l1_14 +e1_l1_14 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.9 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.9) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.9 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/1.9) @@ -0,0 +1,14 @@ +s1_l1_1 +s1_l1_2 +s1_l1_3 +s1_l1_4 +s1_l1_5 +s1_l1_6 +s1_l1_7 +s1_l1_8 +s1_l1_9 +s1_l1_10 +s1_l1_11 +s1_l1_12 +s1_l1_13 +s1_l1_14 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.1 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.1) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.1 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.1) @@ -0,0 +1 @@ +l1_4 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.10 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.10) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.10 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.10) @@ -0,0 +1 @@ +l1_7 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.11 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.11) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.11 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.11) @@ -0,0 +1 @@ +l1_7 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.12 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.12) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.12 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.12) @@ -0,0 +1,4 @@ +l1_1 +l1_2 +l1_3 +l1_4 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.13 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.13) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.13 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.13) @@ -0,0 +1,23 @@ +l1_1 +l1_2 +l1_3 +l1_4 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_11 +l1_12 +l1_13 +l1_14 +l2_1 +l2_2 +l2_3 +l2_4 +l2_5 +l2_6 +l2_7 +l2_8 +l2_9 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.14 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.14) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.14 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.14) @@ -0,0 +1,23 @@ +l1_1 +l1_2 +l1_3 +l1_4 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_11 +l1_12 +l1_13 +l1_14 +l2_1 +l2_2 +l2_3 +l2_4 +l2_5 +l2_6 +l2_7 +l2_8 +l2_9 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.15 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.15) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.15 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.15) @@ -0,0 +1,20 @@ +l1_4 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_11 +l1_12 +l1_13 +l1_14 +l2_1 +l2_2 +l2_3 +l2_4 +l2_5 +l2_6 +l2_7 +l2_8 +l2_9 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.16 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.16) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.16 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.16) @@ -0,0 +1,17 @@ +l1_4 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_11 +l1_12 +l1_13 +l1_14 +l2_1 +l2_2 +l2_3 +l2_4 +l2_5 +l2_6 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.17 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.17) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.17 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.17) @@ -0,0 +1,17 @@ +l1_4 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_14 +l2_1 +l2_2 +l2_3 +l2_4 +l2_5 +l2_6 +l2_7 +l2_8 +l2_9 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.18 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.18) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.18 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.18) @@ -0,0 +1,7 @@ +l2_3 +l2_4 +l2_5 +l2_6 +l2_7 +l2_8 +l2_9 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.19 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.19) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.19 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.19) @@ -0,0 +1 @@ +l1_12 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.2 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.2) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.2 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.2) @@ -0,0 +1 @@ +l2_6 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.20 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.20) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.20 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.20) @@ -0,0 +1 @@ +l1_7 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.21 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.21) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.21 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.21) @@ -0,0 +1,5 @@ +l1_13 +l1_14 +l2_1 +l2_2 +l2_3 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.22 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.22) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.22 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.22) @@ -0,0 +1,3 @@ +l1_6 +l1_7 +l1_8 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.3 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.3) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.3 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.3) @@ -0,0 +1 @@ +l1_14 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.4 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.4) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.4 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.4) @@ -0,0 +1 @@ +l2_9 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.5 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.5) ============================================================================== Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.6 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.6) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.6 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.6) @@ -0,0 +1 @@ +l2_9 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.7 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.7) ============================================================================== Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.8 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.8) ============================================================================== Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.9 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.9) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.9 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/2.9) @@ -0,0 +1 @@ +l1_7 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/3.1 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/3.1) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/3.1 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/3.1) @@ -0,0 +1,14 @@ +l1_1 +l1_2 +l1_3 +^l1T4$ +^l1T5$ +^l1T6$ +^l1T7$ +^l1T8$ +^l1T9$ +^l1T10$ +^l1T11$ +^l1T12$ +l1_13 +l1_14 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/3.2 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/3.2) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/3.2 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/3.2) @@ -0,0 +1,14 @@ +l1_1 +l1_2 +l1_3 +^l1_4 +^l1_5 +^l1_6$ +^l1_7$ +^l1T8$ +^l1_9$ +^l1_10$ +^l1_11 +^l1_12 +l1_13 +l1_14 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/3.3 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/3.3) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/3.3 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/3.3) @@ -0,0 +1,14 @@ +^l1T1$ +^l1T2$ +^l1T3$ +l1_4 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_11 +l1_12 +^l1T13$ +^l1T14$ Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/3.4 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/3.4) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/3.4 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/3.4) @@ -0,0 +1,14 @@ +^l1_1 +^l1_2 +^l1_3 +l1_4 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_11 +l1_12 +^l1_13 +^l1_14 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/4.1 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/4.1) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/4.1 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/4.1) @@ -0,0 +1,47 @@ +before_il1_1 +after_ibefore_il1_1 +before_il1_2 +after_ibefore_il1_2 +before_il1_3 +after_ibefore_il1_3 +before_il1_4 +after_ibefore_il1_4 +before_il1_5 +after_ibefore_il1_5 +before_il1_6 +after_ibefore_il1_6 +before_il1_7 +after_ibefore_il1_7 +before_il1_8 +after_ibefore_il1_8 +before_il1_9 +after_ibefore_il1_9 +before_il1_10 +after_ibefore_il1_10 +before_il1_11 +after_ibefore_il1_11 +before_il1_12 +after_ibefore_il1_12 +before_il1_13 +after_ibefore_il1_13 +before_il1_14 +after_ibefore_il1_14 +before_il2_1 +after_ibefore_il2_1 +before_il2_2 +after_ibefore_il2_2 +before_il2_3 +after_ibefore_il2_3 +before_il2_4 +after_ibefore_il2_4 +before_il2_5 +after_ibefore_il2_5 +before_il2_6 +inserted +after_ibefore_il2_6 +before_il2_7 +after_ibefore_il2_7 +before_il2_8 +after_ibefore_il2_8 +before_il2_9 +after_ibefore_il2_9 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/4.2 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/4.2) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/4.2 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/4.2) @@ -0,0 +1,54 @@ +before_al1_1 +after_abefore_al1_1 +before_al1_2 +after_abefore_al1_2 +before_al1_3 +after_abefore_al1_3 +before_al1_4 +after_abefore_al1_4 +before_a5-12l1_5 +after_abefore_a5-12l1_5 +appended +before_a5-12l1_6 +after_abefore_a5-12l1_6 +appended +before_a5-12l1_7 +after_abefore_a5-12l1_7 +appended +before_a5-12l1_8 +after_abefore_a5-12l1_8 +appended +before_a5-12l1_9 +after_abefore_a5-12l1_9 +appended +before_a5-12l1_10 +after_abefore_a5-12l1_10 +appended +before_a5-12l1_11 +after_abefore_a5-12l1_11 +appended +before_a5-12l1_12 +after_abefore_a5-12l1_12 +appended +before_al1_13 +after_abefore_al1_13 +before_al1_14 +after_abefore_al1_14 +before_al2_1 +after_abefore_al2_1 +before_al2_2 +after_abefore_al2_2 +before_al2_3 +after_abefore_al2_3 +before_al2_4 +after_abefore_al2_4 +before_al2_5 +after_abefore_al2_5 +before_al2_6 +after_abefore_al2_6 +before_al2_7 +after_abefore_al2_7 +before_al2_8 +after_abefore_al2_8 +before_al2_9 +after_abefore_al2_9 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/4.3 (from r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/4.3) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/4.3 Fri May 21 19:09:41 2010 (r208395, copy of r197352, head/tools/regression/usr.bin/sed/regress.multitest.out/4.3) @@ -0,0 +1,56 @@ +^l1_1 +^l1_1$ +appended +^l1_2 +^l1_2$ +appended +^l1_3 +^l1_3$ +appended +^l1_4 +^l1_4$ +appended +^l1_5 +^l1_5$ +appended +^l1_6 +^l1_6$ +appended +^l1_7 +^l1_7$ +appended +^l1_8 +appended +^l1_8 +l1_9$ +^l1_10 +appended +^l1_10 +l1_11$ +^l1_12 +^l1_12$ +appended +^l1_13 +^l1_13$ +appended +^l1_14 +^l1_14$ +appended +^l2_1 +^l2_1$ +^l2_2 +^l2_2$ +^l2_3 +^l2_3$ +^l2_4 +^l2_4$ +^l2_5 +^l2_5$ +^l2_6 +^l2_6$ +^l2_7 +^l2_7$ +^l2_8 +^l2_8$ +^l2_9 +^l2_9$ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Fri May 21 19:17:32 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 684BE1065674; Fri, 21 May 2010 19:17:32 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 539478FC18; Fri, 21 May 2010 19:17:32 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LJHWAv011442; Fri, 21 May 2010 19:17:32 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LJHVRZ011441; Fri, 21 May 2010 19:17:31 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201005211917.o4LJHVRZ011441@svn.freebsd.org> From: Marius Strobl Date: Fri, 21 May 2010 19:17:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208396 - stable/8/tools/regression/usr.bin/sed/regress.multitest.out X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 19:17:32 -0000 Author: marius Date: Fri May 21 19:17:31 2010 New Revision: 208396 URL: http://svn.freebsd.org/changeset/base/208396 Log: MFC: r197509 Wipe out mergeinfo. Modified: Directory Properties: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/ (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.1 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.10 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.11 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.12 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.13 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.14 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.15 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.16 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.17 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.18 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.2 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.3 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.4 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.4.1 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.5 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.6 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.7 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.8 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/1.9 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.1 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.10 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.11 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.12 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.13 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.14 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.15 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.16 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.17 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.18 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.19 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.2 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.20 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.21 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.22 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.3 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.4 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.5 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.6 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.7 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.8 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/2.9 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/3.1 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/3.2 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/3.3 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/3.4 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/4.1 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/4.2 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/4.3 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/4.4 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/4.5 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/4.6 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/4.7 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/4.8 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/5.1 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/5.2 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/5.3 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/5.4 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/5.5 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/5.6 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/5.7 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/5.8 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/6.1 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/6.2 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/6.3 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/6.4 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/6.5 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/6.6 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/7.1 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/7.2 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/7.3 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/7.4 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/7.5 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/7.6 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/7.7 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/7.8 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.1 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.10 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.11 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.12 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.13 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.14 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.15 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.16 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.17 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.2 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.3 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.4 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.5 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.6 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.7 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.8 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.9 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.1 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.10 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.11 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.12 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.13 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.14 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.15 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.16 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.17 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.18 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.19 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.2 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.20 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.21 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.22 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.23 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.24 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.25 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.26 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.27 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.28 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.29 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.3 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.30 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.31 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.4 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.5 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.6 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.7 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.8 (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/9.9 (props changed) From owner-svn-src-all@FreeBSD.ORG Fri May 21 19:21:48 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 297701065670; Fri, 21 May 2010 19:21:48 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 16C308FC1B; Fri, 21 May 2010 19:21:48 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LJLlfn012730; Fri, 21 May 2010 19:21:47 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LJLlS0012727; Fri, 21 May 2010 19:21:47 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201005211921.o4LJLlS0012727@svn.freebsd.org> From: Marius Strobl Date: Fri, 21 May 2010 19:21:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208397 - in stable/8: tools/regression/usr.bin/sed usr.bin/sed X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 19:21:48 -0000 Author: marius Date: Fri May 21 19:21:47 2010 New Revision: 208397 URL: http://svn.freebsd.org/changeset/base/208397 Log: MFC: r197356 Allow [ to be used as a delimiter. Pointed by: Marius Strobl Obtained from: Apple Modified: stable/8/tools/regression/usr.bin/sed/multitest.t stable/8/usr.bin/sed/compile.c Directory Properties: stable/8/tools/regression/usr.bin/sed/ (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/ (props changed) stable/8/usr.bin/sed/ (props changed) Modified: stable/8/tools/regression/usr.bin/sed/multitest.t ============================================================================== --- stable/8/tools/regression/usr.bin/sed/multitest.t Fri May 21 19:17:31 2010 (r208396) +++ stable/8/tools/regression/usr.bin/sed/multitest.t Fri May 21 19:21:47 2010 (r208397) @@ -432,6 +432,15 @@ u2/g' lines1 # POSIX does not say that this should work, # but it does for GNU, BSD, and SunOS mark '8.17' ; $SED -e 's/[/]/Q/' lines1 + + COMMENT='[ as an s delimiter and its escapes' + mark '8.18' ; $SED -e 's[_[X[' lines1 + # This is a matter of interpretation + # POSIX 1003.1, 2004 says "Within the BRE and the replacement, + # the BRE delimiter itself can be used as a *literal* character + # if it is preceded by a backslash + mark '8.19' ; sed 's/l/[/' lines1 | $SED -e 's[\[.[X[' + mark '8.20' ; sed 's/l/[/' lines1 | $SED -e 's[\[.[X\[[' } test_error() Modified: stable/8/usr.bin/sed/compile.c ============================================================================== --- stable/8/usr.bin/sed/compile.c Fri May 21 19:17:31 2010 (r208396) +++ stable/8/usr.bin/sed/compile.c Fri May 21 19:21:47 2010 (r208397) @@ -387,7 +387,7 @@ compile_delimited(char *p, char *d) errx(1, "%lu: %s: newline can not be used as a string delimiter", linenum, fname); while (*p) { - if (*p == '[') { + if (*p == '[' && *p != c) { if ((d = compile_ccl(&p, d)) == NULL) errx(1, "%lu: %s: unbalanced brackets ([])", linenum, fname); continue; From owner-svn-src-all@FreeBSD.ORG Fri May 21 19:22:51 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0CFCD106566B; Fri, 21 May 2010 19:22:51 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id EF4138FC1D; Fri, 21 May 2010 19:22:50 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LJMotv013099; Fri, 21 May 2010 19:22:50 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LJMoIm013097; Fri, 21 May 2010 19:22:50 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201005211922.o4LJMoIm013097@svn.freebsd.org> From: Marius Strobl Date: Fri, 21 May 2010 19:22:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208398 - stable/8/tools/regression/usr.bin/sed X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 19:22:51 -0000 Author: marius Date: Fri May 21 19:22:50 2010 New Revision: 208398 URL: http://svn.freebsd.org/changeset/base/208398 Log: MFC: r197357 Describe how other systems treat this case. Modified: stable/8/tools/regression/usr.bin/sed/multitest.t Directory Properties: stable/8/tools/regression/usr.bin/sed/ (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/ (props changed) Modified: stable/8/tools/regression/usr.bin/sed/multitest.t ============================================================================== --- stable/8/tools/regression/usr.bin/sed/multitest.t Fri May 21 19:21:47 2010 (r208397) +++ stable/8/tools/regression/usr.bin/sed/multitest.t Fri May 21 19:22:50 2010 (r208398) @@ -438,7 +438,11 @@ u2/g' lines1 # This is a matter of interpretation # POSIX 1003.1, 2004 says "Within the BRE and the replacement, # the BRE delimiter itself can be used as a *literal* character - # if it is preceded by a backslash + # if it is preceded by a backslash" + # SunOS 5.1 /usr/bin/sed and Mac OS X follow the literal POSIX + # interpretation. + # GNU sed version 4.1.5 treats \[ as the beginning of a character + # set specification (both with --posix and without). mark '8.19' ; sed 's/l/[/' lines1 | $SED -e 's[\[.[X[' mark '8.20' ; sed 's/l/[/' lines1 | $SED -e 's[\[.[X\[[' } From owner-svn-src-all@FreeBSD.ORG Fri May 21 19:33:40 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C3E4D1065670; Fri, 21 May 2010 19:33:40 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 98B338FC13; Fri, 21 May 2010 19:33:40 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LJXe7t016054; Fri, 21 May 2010 19:33:40 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LJXeOh016053; Fri, 21 May 2010 19:33:40 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201005211933.o4LJXeOh016053@svn.freebsd.org> From: Marius Strobl Date: Fri, 21 May 2010 19:33:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208399 - stable/8/tools/regression/usr.bin/sed X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 19:33:40 -0000 Author: marius Date: Fri May 21 19:33:40 2010 New Revision: 208399 URL: http://svn.freebsd.org/changeset/base/208399 Log: Try to move the mergeinfo up one directory to the level of the Makefile. Modified: Directory Properties: stable/8/tools/regression/usr.bin/sed/ (props changed) From owner-svn-src-all@FreeBSD.ORG Fri May 21 19:35:14 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CE83F1065678; Fri, 21 May 2010 19:35:14 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A1CF88FC1B; Fri, 21 May 2010 19:35:14 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LJZEft016472; Fri, 21 May 2010 19:35:14 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LJZEDn016469; Fri, 21 May 2010 19:35:14 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201005211935.o4LJZEDn016469@svn.freebsd.org> From: Marius Strobl Date: Fri, 21 May 2010 19:35:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208400 - stable/8/tools/regression/usr.bin/sed/regress.multitest.out X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 19:35:15 -0000 Author: marius Date: Fri May 21 19:35:14 2010 New Revision: 208400 URL: http://svn.freebsd.org/changeset/base/208400 Log: MFC: r197360 Add correct test results. Added: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.18 - copied unchanged from r197360, head/tools/regression/usr.bin/sed/regress.multitest.out/8.18 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.19 - copied unchanged from r197360, head/tools/regression/usr.bin/sed/regress.multitest.out/8.19 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.20 - copied unchanged from r197360, head/tools/regression/usr.bin/sed/regress.multitest.out/8.20 Modified: Directory Properties: stable/8/tools/regression/usr.bin/sed/ (props changed) stable/8/tools/regression/usr.bin/sed/regress.multitest.out/ (props changed) Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.18 (from r197360, head/tools/regression/usr.bin/sed/regress.multitest.out/8.18) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.18 Fri May 21 19:35:14 2010 (r208400, copy of r197360, head/tools/regression/usr.bin/sed/regress.multitest.out/8.18) @@ -0,0 +1,14 @@ +l1X1 +l1X2 +l1X3 +l1X4 +l1X5 +l1X6 +l1X7 +l1X8 +l1X9 +l1X10 +l1X11 +l1X12 +l1X13 +l1X14 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.19 (from r197360, head/tools/regression/usr.bin/sed/regress.multitest.out/8.19) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.19 Fri May 21 19:35:14 2010 (r208400, copy of r197360, head/tools/regression/usr.bin/sed/regress.multitest.out/8.19) @@ -0,0 +1,14 @@ +X_1 +X_2 +X_3 +X_4 +X_5 +X_6 +X_7 +X_8 +X_9 +X_10 +X_11 +X_12 +X_13 +X_14 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.20 (from r197360, head/tools/regression/usr.bin/sed/regress.multitest.out/8.20) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.20 Fri May 21 19:35:14 2010 (r208400, copy of r197360, head/tools/regression/usr.bin/sed/regress.multitest.out/8.20) @@ -0,0 +1,14 @@ +X[_1 +X[_2 +X[_3 +X[_4 +X[_5 +X[_6 +X[_7 +X[_8 +X[_9 +X[_10 +X[_11 +X[_12 +X[_13 +X[_14 From owner-svn-src-all@FreeBSD.ORG Fri May 21 19:40:27 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D1D9B106566B; Fri, 21 May 2010 19:40:27 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id A61468FC19; Fri, 21 May 2010 19:40:27 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LJeRZt017649; Fri, 21 May 2010 19:40:27 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LJeR7u017648; Fri, 21 May 2010 19:40:27 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201005211940.o4LJeR7u017648@svn.freebsd.org> From: Marius Strobl Date: Fri, 21 May 2010 19:40:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208401 - stable/8/tools/regression/usr.bin/sed/regress.multitest.out X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 19:40:27 -0000 Author: marius Date: Fri May 21 19:40:27 2010 New Revision: 208401 URL: http://svn.freebsd.org/changeset/base/208401 Log: Manually remove the mergeinfo from this directory, r208399 hasn't work as expected for some reason. Modified: Directory Properties: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/ (props changed) From owner-svn-src-all@FreeBSD.ORG Fri May 21 19:44:23 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 64FC71065678; Fri, 21 May 2010 19:44:23 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 516D98FC1A; Fri, 21 May 2010 19:44:23 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LJiNJr018605; Fri, 21 May 2010 19:44:23 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LJiNhX018603; Fri, 21 May 2010 19:44:23 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201005211944.o4LJiNhX018603@svn.freebsd.org> From: Marius Strobl Date: Fri, 21 May 2010 19:44:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208402 - in stable/8: tools/regression/usr.bin/sed tools/regression/usr.bin/sed/regress.multitest.out usr.bin/sed X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 19:44:23 -0000 Author: marius Date: Fri May 21 19:44:23 2010 New Revision: 208402 URL: http://svn.freebsd.org/changeset/base/208402 Log: MFC: r197361 Follow POSIX (IEEE Std 1003.1, 2004 Edition) in the implementation of the y (translate) command. "If a backslash character is immediately followed by a backslash character in string1 or string2, the two backslash characters shall be counted as a single literal backslash character" Pointed by: Marius Strobl Obtained from: Mac OS X Added: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.21 - copied unchanged from r197361, head/tools/regression/usr.bin/sed/regress.multitest.out/8.21 Modified: stable/8/tools/regression/usr.bin/sed/multitest.t stable/8/usr.bin/sed/compile.c Directory Properties: stable/8/tools/regression/usr.bin/sed/ (props changed) stable/8/usr.bin/sed/ (props changed) Modified: stable/8/tools/regression/usr.bin/sed/multitest.t ============================================================================== --- stable/8/tools/regression/usr.bin/sed/multitest.t Fri May 21 19:40:27 2010 (r208401) +++ stable/8/tools/regression/usr.bin/sed/multitest.t Fri May 21 19:44:23 2010 (r208402) @@ -445,6 +445,10 @@ u2/g' lines1 # set specification (both with --posix and without). mark '8.19' ; sed 's/l/[/' lines1 | $SED -e 's[\[.[X[' mark '8.20' ; sed 's/l/[/' lines1 | $SED -e 's[\[.[X\[[' + COMMENT='\ in y command' + mark '8.21' + echo 'a\b(c' | + $SED 'y%ABCDEFGHIJKLMNOPQRSTUVWXYZ, /\\()"%abcdefghijklmnopqrstuvwxyz,------%' } test_error() Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.21 (from r197361, head/tools/regression/usr.bin/sed/regress.multitest.out/8.21) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.21 Fri May 21 19:44:23 2010 (r208402, copy of r197361, head/tools/regression/usr.bin/sed/regress.multitest.out/8.21) @@ -0,0 +1 @@ +a-b-c Modified: stable/8/usr.bin/sed/compile.c ============================================================================== --- stable/8/usr.bin/sed/compile.c Fri May 21 19:40:27 2010 (r208401) +++ stable/8/usr.bin/sed/compile.c Fri May 21 19:44:23 2010 (r208402) @@ -66,7 +66,7 @@ static struct labhash { static char *compile_addr(char *, struct s_addr *); static char *compile_ccl(char **, char *); -static char *compile_delimited(char *, char *); +static char *compile_delimited(char *, char *, int); static char *compile_flags(char *, struct s_subst *); static regex_t *compile_re(char *, int); static char *compile_subst(char *, struct s_subst *); @@ -320,7 +320,7 @@ nonsel: /* Now parse the command */ linenum, fname); if ((cmd->u.s = calloc(1, sizeof(struct s_subst))) == NULL) err(1, "malloc"); - p = compile_delimited(p, re); + p = compile_delimited(p, re, 0); if (p == NULL) errx(1, "%lu: %s: unterminated substitute pattern", linenum, fname); @@ -373,7 +373,7 @@ nonsel: /* Now parse the command */ * with the processed string. */ static char * -compile_delimited(char *p, char *d) +compile_delimited(char *p, char *d, int is_tr) { char c; @@ -399,9 +399,12 @@ compile_delimited(char *p, char *d) *d++ = '\n'; p += 2; continue; - } else if (*p == '\\' && p[1] == '\\') - *d++ = *p++; - else if (*p == c) { + } else if (*p == '\\' && p[1] == '\\') { + if (is_tr) + p++; + else + *d++ = *p++; + } else if (*p == c) { *d = '\0'; return (p + 1); } @@ -654,11 +657,11 @@ compile_tr(char *p, struct s_tr **py) errx(1, "%lu: %s: transform pattern can not be delimited by newline or backslash", linenum, fname); - p = compile_delimited(p, old); + p = compile_delimited(p, old, 1); if (p == NULL) errx(1, "%lu: %s: unterminated transform source string", linenum, fname); - p = compile_delimited(p - 1, new); + p = compile_delimited(p - 1, new, 1); if (p == NULL) errx(1, "%lu: %s: unterminated transform target string", linenum, fname); @@ -781,7 +784,7 @@ compile_addr(char *p, struct s_addr *a) ++p; /* FALLTHROUGH */ case '/': /* Context address */ - p = compile_delimited(p, re); + p = compile_delimited(p, re, 0); if (p == NULL) errx(1, "%lu: %s: unterminated regular expression", linenum, fname); /* Check for case insensitive regexp flag */ From owner-svn-src-all@FreeBSD.ORG Fri May 21 19:45:55 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4FA4A1065675; Fri, 21 May 2010 19:45:55 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 340C68FC16; Fri, 21 May 2010 19:45:55 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LJjtJH018996; Fri, 21 May 2010 19:45:55 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LJjt8T018991; Fri, 21 May 2010 19:45:55 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201005211945.o4LJjt8T018991@svn.freebsd.org> From: Marius Strobl Date: Fri, 21 May 2010 19:45:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208403 - in stable/8: tools/regression/usr.bin/sed tools/regression/usr.bin/sed/regress.multitest.out usr.bin/sed X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 19:45:55 -0000 Author: marius Date: Fri May 21 19:45:54 2010 New Revision: 208403 URL: http://svn.freebsd.org/changeset/base/208403 Log: MFC: r197362 IEEE Std 1003.1, 2004 Edition states: "The escape sequence '\n' shall match a embedded in the pattern space." It is unclear whether this also applies to a \n embedded in a character class. Disable the existing handling of \n in a character class following Mac OS X, GNU sed version 4.1.5 with --posix, and SunOS 5.10 /usr/bin/sed. Pointed by: Marius Strobl Obtained from: Mac OS X Added: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.22 - copied unchanged from r197362, head/tools/regression/usr.bin/sed/regress.multitest.out/8.22 stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.23 - copied unchanged from r197362, head/tools/regression/usr.bin/sed/regress.multitest.out/8.23 Modified: stable/8/tools/regression/usr.bin/sed/multitest.t stable/8/usr.bin/sed/compile.c Directory Properties: stable/8/tools/regression/usr.bin/sed/ (props changed) stable/8/usr.bin/sed/ (props changed) Modified: stable/8/tools/regression/usr.bin/sed/multitest.t ============================================================================== --- stable/8/tools/regression/usr.bin/sed/multitest.t Fri May 21 19:44:23 2010 (r208402) +++ stable/8/tools/regression/usr.bin/sed/multitest.t Fri May 21 19:45:54 2010 (r208403) @@ -449,6 +449,9 @@ u2/g' lines1 mark '8.21' echo 'a\b(c' | $SED 'y%ABCDEFGHIJKLMNOPQRSTUVWXYZ, /\\()"%abcdefghijklmnopqrstuvwxyz,------%' + COMMENT='\n in a character class and a BRE' + mark '8.22' ; (echo 1; echo 2) | $SED -n '1{;N;s/[\n]/X/;p;}' + mark '8.23' ; (echo 1; echo 2) | $SED -n '1{;N;s/\n/X/;p;}' } test_error() Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.22 (from r197362, head/tools/regression/usr.bin/sed/regress.multitest.out/8.22) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.22 Fri May 21 19:45:54 2010 (r208403, copy of r197362, head/tools/regression/usr.bin/sed/regress.multitest.out/8.22) @@ -0,0 +1,2 @@ +1 +2 Copied: stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.23 (from r197362, head/tools/regression/usr.bin/sed/regress.multitest.out/8.23) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/sed/regress.multitest.out/8.23 Fri May 21 19:45:54 2010 (r208403, copy of r197362, head/tools/regression/usr.bin/sed/regress.multitest.out/8.23) @@ -0,0 +1 @@ +1X2 Modified: stable/8/usr.bin/sed/compile.c ============================================================================== --- stable/8/usr.bin/sed/compile.c Fri May 21 19:44:23 2010 (r208402) +++ stable/8/usr.bin/sed/compile.c Fri May 21 19:45:54 2010 (r208403) @@ -432,8 +432,7 @@ compile_ccl(char **sp, char *t) for (c = *s; (*t = *s) != ']' || c != d; s++, t++) if ((c = *s) == '\0') return NULL; - } else if (*s == '\\' && s[1] == 'n') - *t = '\n', s++; + } return (*s == ']') ? *sp = ++s, ++t : NULL; } From owner-svn-src-all@FreeBSD.ORG Fri May 21 19:47:53 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 37A201065676; Fri, 21 May 2010 19:47:53 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 25D178FC1A; Fri, 21 May 2010 19:47:53 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LJlrLR019500; Fri, 21 May 2010 19:47:53 GMT (envelope-from marius@svn.freebsd.org) Received: (from marius@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LJlrob019498; Fri, 21 May 2010 19:47:53 GMT (envelope-from marius@svn.freebsd.org) Message-Id: <201005211947.o4LJlrob019498@svn.freebsd.org> From: Marius Strobl Date: Fri, 21 May 2010 19:47:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208404 - stable/8/tools/regression/usr.bin/sed X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 19:47:53 -0000 Author: marius Date: Fri May 21 19:47:52 2010 New Revision: 208404 URL: http://svn.freebsd.org/changeset/base/208404 Log: MFC: r201490 There are actually 129 tests here. Modified: stable/8/tools/regression/usr.bin/sed/multitest.t Directory Properties: stable/8/tools/regression/usr.bin/sed/ (props changed) Modified: stable/8/tools/regression/usr.bin/sed/multitest.t ============================================================================== --- stable/8/tools/regression/usr.bin/sed/multitest.t Fri May 21 19:45:54 2010 (r208403) +++ stable/8/tools/regression/usr.bin/sed/multitest.t Fri May 21 19:47:52 2010 (r208404) @@ -50,7 +50,7 @@ main() awk 'END { for (i = 1; i < 15; i++) print "l1_" i}' lines1 awk 'END { for (i = 1; i < 10; i++) print "l2_" i}' lines2 - echo "1..121" + echo "1..129" exec 4>&1 5>&2 tests From owner-svn-src-all@FreeBSD.ORG Fri May 21 20:46:03 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8A7FB106564A; Fri, 21 May 2010 20:46:02 +0000 (UTC) (envelope-from nwhitehorn@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 78F278FC12; Fri, 21 May 2010 20:46:02 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LKk2Ww032259; Fri, 21 May 2010 20:46:02 GMT (envelope-from nwhitehorn@svn.freebsd.org) Received: (from nwhitehorn@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LKk2Sc032257; Fri, 21 May 2010 20:46:02 GMT (envelope-from nwhitehorn@svn.freebsd.org) Message-Id: <201005212046.o4LKk2Sc032257@svn.freebsd.org> From: Nathan Whitehorn Date: Fri, 21 May 2010 20:46:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208405 - head/sys/powerpc/aim X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 20:46:03 -0000 Author: nwhitehorn Date: Fri May 21 20:46:01 2010 New Revision: 208405 URL: http://svn.freebsd.org/changeset/base/208405 Log: Now that single-threaded access to firmware is enforced by IPI_RENDEZVOUS, the ofw mutex is irrelevant. Modified: head/sys/powerpc/aim/ofw_machdep.c Modified: head/sys/powerpc/aim/ofw_machdep.c ============================================================================== --- head/sys/powerpc/aim/ofw_machdep.c Fri May 21 19:47:52 2010 (r208404) +++ head/sys/powerpc/aim/ofw_machdep.c Fri May 21 20:46:01 2010 (r208405) @@ -64,8 +64,6 @@ __FBSDID("$FreeBSD$"); static struct mem_region OFmem[OFMEM_REGIONS + 1], OFavail[OFMEM_REGIONS + 3]; static struct mem_region OFfree[OFMEM_REGIONS + 3]; -static struct mtx ofw_mutex; - struct mem_region64 { vm_offset_t mr_start_hi; vm_offset_t mr_start_lo; @@ -285,8 +283,6 @@ OF_bootstrap() { boolean_t status = FALSE; - mtx_init(&ofw_mutex, "open firmware", NULL, MTX_DEF); - if (ofwcall != NULL) { if (ofw_real_mode) status = OF_install(OFW_STD_REAL, 0); @@ -356,12 +352,6 @@ openfirmware_core(void *args) u_int srsave[16]; u_int i; - /* - * NOTE: This MUST be called with the OF mutex held. Because the CPU - * holding the lock is not necessarily the CPU running this function, - * we can't put an assert here. - */ - __asm __volatile( "\t" "sync\n\t" "mfmsr %0\n\t" @@ -459,8 +449,6 @@ openfirmware(void *args) if (pmap_bootstrapped && ofw_real_mode) args = (void *)pmap_kextract((vm_offset_t)args); - mtx_lock(&ofw_mutex); - #ifdef SMP rv_args.args = args; rv_args.in_progress = 1; @@ -471,8 +459,6 @@ openfirmware(void *args) result = openfirmware_core(args); #endif - mtx_unlock(&ofw_mutex); - return (result); } From owner-svn-src-all@FreeBSD.ORG Fri May 21 21:07:19 2010 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C06BA106564A; Fri, 21 May 2010 21:07:19 +0000 (UTC) (envelope-from seanbru@yahoo-inc.com) Received: from mrout3.yahoo.com (mrout3.yahoo.com [216.145.54.173]) by mx1.freebsd.org (Postfix) with ESMTP id A43D48FC0A; Fri, 21 May 2010 21:07:19 +0000 (UTC) Received: from [127.0.0.1] (proxy10.corp.re1.yahoo.com [69.147.105.206]) by mrout3.yahoo.com (8.13.6/8.13.6/y.out) with ESMTP id o4LKuUZP003597; Fri, 21 May 2010 13:56:31 -0700 (PDT) DomainKey-Signature: a=rsa-sha1; s=serpent; d=yahoo-inc.com; c=nofws; q=dns; h=subject:from:to:cc:in-reply-to:references:content-type:date: message-id:mime-version:x-mailer:content-transfer-encoding; b=WFBwn9mHrm77WQ9v86er2t2DLJl1L4J4z3Xtm26FXMdWJEox92+QfYq8B1ZtBDtt From: Sean Bruno To: John Baldwin In-Reply-To: <201005211354.09044.jhb@freebsd.org> References: <201005211710.o4LHArGI078167@svn.freebsd.org> <201005211354.09044.jhb@freebsd.org> Content-Type: text/plain; charset="UTF-8" Date: Fri, 21 May 2010 13:56:30 -0700 Message-ID: <1274475390.2574.4.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 (2.28.3-1.fc12) Content-Transfer-Encoding: 7bit Cc: "svn-src-head@FreeBSD.org" , Sean Bruno , "src-committers@FreeBSD.org" , "svn-src-all@FreeBSD.org" Subject: Re: svn commit: r208389 - in head: usr.bin/vmstat usr.sbin/iostat X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 21:07:19 -0000 On Fri, 2010-05-21 at 10:54 -0700, John Baldwin wrote: > On Friday 21 May 2010 1:10:53 pm Sean Bruno wrote: > > Author: sbruno > > Date: Fri May 21 17:10:52 2010 > > New Revision: 208389 > > URL: http://svn.freebsd.org/changeset/base/208389 > > > > Log: > > Allow sub-second interval timings for iostat and vmstat. > > e.g. > > vmstat -w.5 > > iostat -w.5 > > It should perhaps be noted that the intervals are only at a granularity of a > millisecond, and of course it is subject to the frequency of clock interrupts > via 'hz'. > I'll update the comments in the man page to indicate this information today. sean From owner-svn-src-all@FreeBSD.ORG Fri May 21 23:08:54 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 435861065672; Fri, 21 May 2010 23:08:54 +0000 (UTC) (envelope-from randi@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 31C078FC20; Fri, 21 May 2010 23:08:54 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4LN8sNo063835; Fri, 21 May 2010 23:08:54 GMT (envelope-from randi@svn.freebsd.org) Received: (from randi@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4LN8sRF063833; Fri, 21 May 2010 23:08:54 GMT (envelope-from randi@svn.freebsd.org) Message-Id: <201005212308.o4LN8sRF063833@svn.freebsd.org> From: Randi Harper Date: Fri, 21 May 2010 23:08:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208406 - stable/8/usr.sbin/sysinstall X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 21 May 2010 23:08:54 -0000 Author: randi Date: Fri May 21 23:08:53 2010 New Revision: 208406 URL: http://svn.freebsd.org/changeset/base/208406 Log: MFC r198317,206995: Introduce 'netDev=ANY' support for scripted (install.cfg) installs, which results in the first ethernet interface with physical link being selected. Approved by: cperciva (mentor) Modified: stable/8/usr.sbin/sysinstall/tcpip.c Directory Properties: stable/8/usr.sbin/sysinstall/ (props changed) Modified: stable/8/usr.sbin/sysinstall/tcpip.c ============================================================================== --- stable/8/usr.sbin/sysinstall/tcpip.c Fri May 21 20:46:01 2010 (r208405) +++ stable/8/usr.sbin/sysinstall/tcpip.c Fri May 21 23:08:53 2010 (r208406) @@ -40,10 +40,17 @@ #include "sysinstall.h" #include #include +#include #include +#include + #include +#include +#include + #include #include +#include /* The help file for the TCP/IP setup screen */ #define TCP_HELPFILE "tcp" @@ -636,6 +643,53 @@ netHook(dialogMenuItem *self) return devs ? DITEM_LEAVE_MENU : DITEM_FAILURE; } +static char * +tcpDeviceScan(void) +{ + int s; + struct ifmediareq ifmr; + struct ifaddrs *ifap, *ifa; + struct if_data *ifd; + char *network_dev; + + if ((s = socket(AF_LOCAL, SOCK_DGRAM, 0)) < 0) + return (NULL); + + if (getifaddrs(&ifap) < 0) + return (NULL); + + for (ifa = ifap; ifa != NULL; ifa = ifa->ifa_next) { + memset(&ifmr, 0, sizeof(ifmr)); + strlcpy(ifmr.ifm_name, ifa->ifa_name, sizeof(ifmr.ifm_name)); + + if (ioctl(s, SIOCGIFMEDIA, (caddr_t)&ifmr) < 0) + continue; /* some devices don't support this */ + + if ((ifmr.ifm_status & IFM_AVALID) == 0) + continue; /* not active */ + + if (IFM_TYPE(ifmr.ifm_active) != IFM_ETHER) + continue; /* not an ethernet device */ + + if (ifmr.ifm_status & IFM_ACTIVE) { + network_dev = strdup(ifa->ifa_name); + freeifaddrs(ifap); + + if (!variable_get(VAR_NONINTERACTIVE)) + msgConfirm("Using interface %s", network_dev); + + msgDebug("tcpDeviceScan found %s", network_dev); + return (network_dev); + } + } + + close(s); + + freeifaddrs(ifap); + + return (NULL); +} + /* Get a network device */ Device * tcpDeviceSelect(void) @@ -647,27 +701,38 @@ tcpDeviceSelect(void) rval = NULL; - if (variable_get(VAR_NONINTERACTIVE) && variable_get(VAR_NETWORK_DEVICE)) { + if (variable_get(VAR_NETWORK_DEVICE)) { network_dev = variable_get(VAR_NETWORK_DEVICE); + /* + * netDev can be set to several types of values. + * If netDev is set to ANY, scan all network devices + * looking for a valid link, and go with the first + * device found. netDev can also be specified as a + * comma delimited list, with each network device + * tried in order. netDev can also be set to a single + * network device. + */ + if (!strcmp(network_dev, "ANY")) + network_dev = strdup(tcpDeviceScan()); + while ((dev = strsep(&network_dev, ",")) != NULL) { devs = deviceFind(dev, DEVICE_TYPE_NETWORK); cnt = deviceCount(devs); + if (cnt) { - if (DITEM_STATUS(tcpOpenDialog(devs[0]) == DITEM_SUCCESS)) - return(devs[0]); + if (DITEM_STATUS(tcpOpenDialog(devs[0])) == DITEM_SUCCESS) + return (devs[0]); } } - } - devs = deviceFind(variable_get(VAR_NETWORK_DEVICE), DEVICE_TYPE_NETWORK); - cnt = deviceCount(devs); + if (!variable_get(VAR_NONINTERACTIVE)) + msgConfirm("No network devices available!"); - if (!cnt) { - msgConfirm("No network devices available!"); - return NULL; + return (NULL); } - else if ((!RunningAsInit) && (variable_check("NETWORK_CONFIGURED=NO") != TRUE)) { + + if ((!RunningAsInit) && (variable_check("NETWORK_CONFIGURED=NO") != TRUE)) { if (!msgYesNo("Running multi-user, assume that the network is already configured?")) return devs[0]; } From owner-svn-src-all@FreeBSD.ORG Sat May 22 00:43:15 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0E3E8106564A; Sat, 22 May 2010 00:43:15 +0000 (UTC) (envelope-from randi@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id F1D558FC08; Sat, 22 May 2010 00:43:14 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4M0hEtQ090346; Sat, 22 May 2010 00:43:14 GMT (envelope-from randi@svn.freebsd.org) Received: (from randi@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4M0hELT090344; Sat, 22 May 2010 00:43:14 GMT (envelope-from randi@svn.freebsd.org) Message-Id: <201005220043.o4M0hELT090344@svn.freebsd.org> From: Randi Harper Date: Sat, 22 May 2010 00:43:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208407 - head/usr.sbin/sysinstall X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2010 00:43:15 -0000 Author: randi Date: Sat May 22 00:43:14 2010 New Revision: 208407 URL: http://svn.freebsd.org/changeset/base/208407 Log: Flush all routes before adding the default route in order to allow sysinstall to cleanly re-initialize the network. PR: bin/145553 Submitted by: gcooper Approved by: cperciva (mentor) MFC after: 3 days Modified: head/usr.sbin/sysinstall/network.c Modified: head/usr.sbin/sysinstall/network.c ============================================================================== --- head/usr.sbin/sysinstall/network.c Fri May 21 23:08:53 2010 (r208406) +++ head/usr.sbin/sysinstall/network.c Sat May 22 00:43:14 2010 (r208407) @@ -141,12 +141,22 @@ mediaInitNetwork(Device *dev) } rp = variable_get(VAR_GATEWAY); if (!rp || *rp == '0') { - msgConfirm("No gateway has been set. You may be unable to access hosts\n" + msgConfirm("No gateway has been set. You will be unable to access hosts\n" "not on your local network"); } else { + /* + * Explicitly flush all routes to get back to a known sane + * state. We don't need to check this exit code because if + * anything fails it will show up in the route add below. + */ + system("route -n flush"); msgDebug("Adding default route to %s.\n", rp); - vsystem("route -n add default %s", rp); + if (vsystem("route -n add default %s", rp) != 0) { + msgConfirm("Failed to add a default route; please check " + "your network configuration"); + return FALSE; + } } } else { msgDebug("A DHCP interface. Should already be up.\n"); From owner-svn-src-all@FreeBSD.ORG Sat May 22 01:01:59 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C09AA106564A; Sat, 22 May 2010 01:01:59 +0000 (UTC) (envelope-from rmacklem@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id AF1A58FC1F; Sat, 22 May 2010 01:01:59 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4M11xmW095914; Sat, 22 May 2010 01:01:59 GMT (envelope-from rmacklem@svn.freebsd.org) Received: (from rmacklem@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4M11xKW095912; Sat, 22 May 2010 01:01:59 GMT (envelope-from rmacklem@svn.freebsd.org) Message-Id: <201005220101.o4M11xKW095912@svn.freebsd.org> From: Rick Macklem Date: Sat, 22 May 2010 01:01:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208408 - stable/8/sys/fs/nfsclient X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2010 01:01:59 -0000 Author: rmacklem Date: Sat May 22 01:01:59 2010 New Revision: 208408 URL: http://svn.freebsd.org/changeset/base/208408 Log: MFC: r208234 Add a sanity check for a negative args.fhsize to the experimental NFS client. Modified: stable/8/sys/fs/nfsclient/nfs_clvfsops.c Directory Properties: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/geom/sched/ (props changed) Modified: stable/8/sys/fs/nfsclient/nfs_clvfsops.c ============================================================================== --- stable/8/sys/fs/nfsclient/nfs_clvfsops.c Sat May 22 00:43:14 2010 (r208407) +++ stable/8/sys/fs/nfsclient/nfs_clvfsops.c Sat May 22 01:01:59 2010 (r208408) @@ -951,7 +951,7 @@ nfs_mount(struct mount *mp) if (vfs_getopt(mp->mnt_optnew, "fh", (void **)&args.fh, &args.fhsize) == 0) { - if (args.fhsize > NFSX_FHMAX) { + if (args.fhsize < 0 || args.fhsize > NFSX_FHMAX) { vfs_mount_error(mp, "Bad file handle"); error = EINVAL; goto out; From owner-svn-src-all@FreeBSD.ORG Sat May 22 03:19:30 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E2552106564A; Sat, 22 May 2010 03:19:30 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9BF708FC08; Sat, 22 May 2010 03:19:30 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4M3JU8m030760; Sat, 22 May 2010 03:19:30 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4M3JUGY030758; Sat, 22 May 2010 03:19:30 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201005220319.o4M3JUGY030758@svn.freebsd.org> From: Alexander Motin Date: Sat, 22 May 2010 03:19:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208409 - head/sys/dev/pci X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2010 03:19:31 -0000 Author: mav Date: Sat May 22 03:19:30 2010 New Revision: 208409 URL: http://svn.freebsd.org/changeset/base/208409 Log: Honor hw.pci.do_power_nodriver on resume. Power-down devices without driver attached. Modified: head/sys/dev/pci/pci.c Modified: head/sys/dev/pci/pci.c ============================================================================== --- head/sys/dev/pci/pci.c Sat May 22 01:01:59 2010 (r208408) +++ head/sys/dev/pci/pci.c Sat May 22 03:19:30 2010 (r208409) @@ -2988,6 +2988,8 @@ pci_resume(device_t dev) /* Now the device is powered up, restore its config space. */ pci_cfg_restore(child, dinfo); + if (!device_is_attached(child)) + pci_cfg_save(child, dinfo, 1); } free(devlist, M_TEMP); return (bus_generic_resume(dev)); From owner-svn-src-all@FreeBSD.ORG Sat May 22 07:32:48 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6AF45106566C; Sat, 22 May 2010 07:32:48 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 22D9B8FC12; Sat, 22 May 2010 07:32:48 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4M7WlF6086190; Sat, 22 May 2010 07:32:47 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4M7WlVa086183; Sat, 22 May 2010 07:32:47 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201005220732.o4M7WlVa086183@svn.freebsd.org> From: Alexander Motin Date: Sat, 22 May 2010 07:32:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208410 - in head/sys/dev: ahci ata mvs siis X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2010 07:32:48 -0000 Author: mav Date: Sat May 22 07:32:47 2010 New Revision: 208410 URL: http://svn.freebsd.org/changeset/base/208410 Log: Report ATA/SATA channel number to NewBus at location string. Modified: head/sys/dev/ahci/ahci.c head/sys/dev/ata/ata-pci.c head/sys/dev/ata/ata-pci.h head/sys/dev/mvs/mvs_pci.c head/sys/dev/mvs/mvs_soc.c head/sys/dev/siis/siis.c Modified: head/sys/dev/ahci/ahci.c ============================================================================== --- head/sys/dev/ahci/ahci.c Sat May 22 03:19:30 2010 (r208409) +++ head/sys/dev/ahci/ahci.c Sat May 22 07:32:47 2010 (r208410) @@ -778,6 +778,16 @@ ahci_print_child(device_t dev, device_t return (retval); } +static int +ahci_child_location_str(device_t dev, device_t child, char *buf, + size_t buflen) +{ + + snprintf(buf, buflen, "channel=%d", + (int)(intptr_t)device_get_ivars(child)); + return (0); +} + devclass_t ahci_devclass; static device_method_t ahci_methods[] = { DEVMETHOD(device_probe, ahci_probe), @@ -790,6 +800,7 @@ static device_method_t ahci_methods[] = DEVMETHOD(bus_release_resource, ahci_release_resource), DEVMETHOD(bus_setup_intr, ahci_setup_intr), DEVMETHOD(bus_teardown_intr,ahci_teardown_intr), + DEVMETHOD(bus_child_location_str, ahci_child_location_str), { 0, 0 } }; static driver_t ahci_driver = { @@ -809,6 +820,7 @@ static device_method_t ahci_ata_methods[ DEVMETHOD(bus_release_resource, ahci_release_resource), DEVMETHOD(bus_setup_intr, ahci_setup_intr), DEVMETHOD(bus_teardown_intr,ahci_teardown_intr), + DEVMETHOD(bus_child_location_str, ahci_child_location_str), { 0, 0 } }; static driver_t ahci_ata_driver = { Modified: head/sys/dev/ata/ata-pci.c ============================================================================== --- head/sys/dev/ata/ata-pci.c Sat May 22 03:19:30 2010 (r208409) +++ head/sys/dev/ata/ata-pci.c Sat May 22 07:32:47 2010 (r208410) @@ -544,6 +544,16 @@ ata_pci_dmafini(device_t dev) ata_dmafini(dev); } +int +ata_pci_child_location_str(device_t dev, device_t child, char *buf, + size_t buflen) +{ + + snprintf(buf, buflen, "channel=%d", + (int)(intptr_t)device_get_ivars(child)); + return (0); +} + static device_method_t ata_pci_methods[] = { /* device interface */ DEVMETHOD(device_probe, ata_pci_probe), @@ -564,6 +574,7 @@ static device_method_t ata_pci_methods[] DEVMETHOD(bus_teardown_intr, ata_pci_teardown_intr), DEVMETHOD(pci_read_config, ata_pci_read_config), DEVMETHOD(pci_write_config, ata_pci_write_config), + DEVMETHOD(bus_child_location_str, ata_pci_child_location_str), { 0, 0 } }; Modified: head/sys/dev/ata/ata-pci.h ============================================================================== --- head/sys/dev/ata/ata-pci.h Sat May 22 03:19:30 2010 (r208409) +++ head/sys/dev/ata/ata-pci.h Sat May 22 07:32:47 2010 (r208410) @@ -502,6 +502,8 @@ int ata_pci_write_ivar(device_t dev, dev uint32_t ata_pci_read_config(device_t dev, device_t child, int reg, int width); void ata_pci_write_config(device_t dev, device_t child, int reg, uint32_t val, int width); +int ata_pci_child_location_str(device_t dev, device_t child, char *buf, + size_t buflen); struct resource * ata_pci_alloc_resource(device_t dev, device_t child, int type, int *rid, u_long start, u_long end, u_long count, u_int flags); int ata_pci_release_resource(device_t dev, device_t child, int type, int rid, struct resource *r); int ata_pci_setup_intr(device_t dev, device_t child, struct resource *irq, int flags, driver_filter_t *filter, driver_intr_t *function, void *argument, void **cookiep); @@ -550,6 +552,7 @@ static device_method_t __CONCAT(dname,_m DEVMETHOD(bus_teardown_intr, ata_pci_teardown_intr), \ DEVMETHOD(pci_read_config, ata_pci_read_config), \ DEVMETHOD(pci_write_config, ata_pci_write_config), \ + DEVMETHOD(bus_child_location_str, ata_pci_child_location_str), \ { 0, 0 } \ }; \ static driver_t __CONCAT(dname,_driver) = { \ Modified: head/sys/dev/mvs/mvs_pci.c ============================================================================== --- head/sys/dev/mvs/mvs_pci.c Sat May 22 03:19:30 2010 (r208409) +++ head/sys/dev/mvs/mvs_pci.c Sat May 22 07:32:47 2010 (r208410) @@ -482,6 +482,16 @@ mvs_print_child(device_t dev, device_t c return (retval); } +static int +mvs_child_location_str(device_t dev, device_t child, char *buf, + size_t buflen) +{ + + snprintf(buf, buflen, "channel=%d", + (int)(intptr_t)device_get_ivars(child)); + return (0); +} + static device_method_t mvs_methods[] = { DEVMETHOD(device_probe, mvs_probe), DEVMETHOD(device_attach, mvs_attach), @@ -493,6 +503,7 @@ static device_method_t mvs_methods[] = { DEVMETHOD(bus_release_resource, mvs_release_resource), DEVMETHOD(bus_setup_intr, mvs_setup_intr), DEVMETHOD(bus_teardown_intr,mvs_teardown_intr), + DEVMETHOD(bus_child_location_str, mvs_child_location_str), DEVMETHOD(mvs_edma, mvs_edma), { 0, 0 } }; Modified: head/sys/dev/mvs/mvs_soc.c ============================================================================== --- head/sys/dev/mvs/mvs_soc.c Sat May 22 03:19:30 2010 (r208409) +++ head/sys/dev/mvs/mvs_soc.c Sat May 22 07:32:47 2010 (r208410) @@ -413,6 +413,16 @@ mvs_print_child(device_t dev, device_t c return (retval); } +static int +mvs_child_location_str(device_t dev, device_t child, char *buf, + size_t buflen) +{ + + snprintf(buf, buflen, "channel=%d", + (int)(intptr_t)device_get_ivars(child)); + return (0); +} + static device_method_t mvs_methods[] = { DEVMETHOD(device_probe, mvs_probe), DEVMETHOD(device_attach, mvs_attach), @@ -425,6 +435,7 @@ static device_method_t mvs_methods[] = { DEVMETHOD(bus_setup_intr, mvs_setup_intr), DEVMETHOD(bus_teardown_intr,mvs_teardown_intr), DEVMETHOD(mvs_edma, mvs_edma), + DEVMETHOD(bus_child_location_str, mvs_child_location_str), { 0, 0 } }; static driver_t mvs_driver = { Modified: head/sys/dev/siis/siis.c ============================================================================== --- head/sys/dev/siis/siis.c Sat May 22 03:19:30 2010 (r208409) +++ head/sys/dev/siis/siis.c Sat May 22 07:32:47 2010 (r208410) @@ -398,6 +398,16 @@ siis_print_child(device_t dev, device_t return (retval); } +static int +siis_child_location_str(device_t dev, device_t child, char *buf, + size_t buflen) +{ + + snprintf(buf, buflen, "channel=%d", + (int)(intptr_t)device_get_ivars(child)); + return (0); +} + devclass_t siis_devclass; static device_method_t siis_methods[] = { DEVMETHOD(device_probe, siis_probe), @@ -410,6 +420,7 @@ static device_method_t siis_methods[] = DEVMETHOD(bus_release_resource, siis_release_resource), DEVMETHOD(bus_setup_intr, siis_setup_intr), DEVMETHOD(bus_teardown_intr,siis_teardown_intr), + DEVMETHOD(bus_child_location_str, siis_child_location_str), { 0, 0 } }; static driver_t siis_driver = { From owner-svn-src-all@FreeBSD.ORG Sat May 22 07:35:17 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A906B1065670; Sat, 22 May 2010 07:35:17 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 97F2B8FC1C; Sat, 22 May 2010 07:35:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4M7ZHw8086794; Sat, 22 May 2010 07:35:17 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4M7ZHwk086790; Sat, 22 May 2010 07:35:17 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <201005220735.o4M7ZHwk086790@svn.freebsd.org> From: Jung-uk Kim Date: Sat, 22 May 2010 07:35:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208411 - in head/sys: dev/syscons isa X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2010 07:35:17 -0000 Author: jkim Date: Sat May 22 07:35:17 2010 New Revision: 208411 URL: http://svn.freebsd.org/changeset/base/208411 Log: Suspend screen updates when the video controller is powered down. Modified: head/sys/dev/syscons/syscons.c head/sys/dev/syscons/syscons.h head/sys/isa/syscons_isa.c Modified: head/sys/dev/syscons/syscons.c ============================================================================== --- head/sys/dev/syscons/syscons.c Sat May 22 07:32:47 2010 (r208410) +++ head/sys/dev/syscons/syscons.c Sat May 22 07:35:17 2010 (r208411) @@ -1692,7 +1692,7 @@ sccnupdate(scr_stat *scp) { /* this is a cut-down version of scrn_timer()... */ - if (scp->sc->font_loading_in_progress) + if (scp->sc->suspend_in_progress || scp->sc->font_loading_in_progress) return; if (debugger > 0 || panicstr || shutdown_in_progress) { @@ -1742,7 +1742,7 @@ scrn_timer(void *arg) return; /* don't do anything when we are performing some I/O operations */ - if (sc->font_loading_in_progress) { + if (sc->suspend_in_progress || sc->font_loading_in_progress) { if (again) timeout(scrn_timer, sc, hz / 10); return; Modified: head/sys/dev/syscons/syscons.h ============================================================================== --- head/sys/dev/syscons/syscons.h Sat May 22 07:32:47 2010 (r208410) +++ head/sys/dev/syscons/syscons.h Sat May 22 07:35:17 2010 (r208411) @@ -230,6 +230,7 @@ typedef struct sc_softc { char switch_in_progress; char write_in_progress; char blink_in_progress; + char suspend_in_progress; struct mtx video_mtx; long scrn_time_stamp; Modified: head/sys/isa/syscons_isa.c ============================================================================== --- head/sys/isa/syscons_isa.c Sat May 22 07:32:47 2010 (r208410) +++ head/sys/isa/syscons_isa.c Sat May 22 07:35:17 2010 (r208411) @@ -114,21 +114,21 @@ scsuspend(device_t dev) sc = &main_softc; - if (sc->cur_scp == NULL) + if (sc->cur_scp == NULL || sc->suspend_in_progress) return (0); - sc_cur_scr = sc->cur_scp->index; - - if (sc_no_suspend_vtswitch) - return (0); + if (!sc_no_suspend_vtswitch) { + sc_cur_scr = sc->cur_scp->index; + do { + sc_switch_scr(sc, 0); + if (!sc->switch_in_progress) { + break; + } + pause("scsuspend", hz); + } while (retry--); + } - do { - sc_switch_scr(sc, 0); - if (!sc->switch_in_progress) { - break; - } - pause("scsuspend", hz); - } while (retry--); + sc->suspend_in_progress = TRUE; return (0); } @@ -138,11 +138,15 @@ scresume(device_t dev) { sc_softc_t *sc; - if (sc_no_suspend_vtswitch) + sc = &main_softc; + + if (!sc->suspend_in_progress) return (0); - sc = &main_softc; - sc_switch_scr(sc, sc_cur_scr); + sc->suspend_in_progress = FALSE; + + if (!sc_no_suspend_vtswitch) + sc_switch_scr(sc, sc_cur_scr); return (0); } @@ -303,3 +307,70 @@ static driver_t sc_driver = { }; DRIVER_MODULE(sc, isa, sc_driver, sc_devclass, 0, 0); + +static devclass_t scpm_devclass; + +static void +scpm_identify(driver_t *driver, device_t parent) +{ + + device_add_child(parent, "scpm", 0); +} + +static int +scpm_probe(device_t dev) +{ + + device_set_desc(dev, SC_DRIVER_NAME " suspend/resume"); + device_quiet(dev); + + return (BUS_PROBE_DEFAULT); +} + +static int +scpm_attach(device_t dev) +{ + + bus_generic_probe(dev); + bus_generic_attach(dev); + + return (0); +} + +static int +scpm_suspend(device_t dev) +{ + int error; + + error = bus_generic_suspend(dev); + if (error != 0) + return (error); + + return (scsuspend(dev)); +} + +static int +scpm_resume(device_t dev) +{ + + scresume(dev); + + return (bus_generic_resume(dev)); +} + +static device_method_t scpm_methods[] = { + DEVMETHOD(device_identify, scpm_identify), + DEVMETHOD(device_probe, scpm_probe), + DEVMETHOD(device_attach, scpm_attach), + DEVMETHOD(device_suspend, scpm_suspend), + DEVMETHOD(device_resume, scpm_resume), + { 0, 0 } +}; + +static driver_t scpm_driver = { + "scpm", + scpm_methods, + 0 +}; + +DRIVER_MODULE(scpm, vgapm, scpm_driver, scpm_devclass, 0, 0); From owner-svn-src-all@FreeBSD.ORG Sat May 22 07:38:29 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6D3FA1065673; Sat, 22 May 2010 07:38:29 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5CB4C8FC14; Sat, 22 May 2010 07:38:29 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4M7cTBS087505; Sat, 22 May 2010 07:38:29 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4M7cTE5087503; Sat, 22 May 2010 07:38:29 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <201005220738.o4M7cTE5087503@svn.freebsd.org> From: Jung-uk Kim Date: Sat, 22 May 2010 07:38:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208412 - head/sys/isa X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2010 07:38:29 -0000 Author: jkim Date: Sat May 22 07:38:29 2010 New Revision: 208412 URL: http://svn.freebsd.org/changeset/base/208412 Log: Fix style(9) nits. Modified: head/sys/isa/syscons_isa.c Modified: head/sys/isa/syscons_isa.c ============================================================================== --- head/sys/isa/syscons_isa.c Sat May 22 07:35:17 2010 (r208411) +++ head/sys/isa/syscons_isa.c Sat May 22 07:38:29 2010 (r208412) @@ -68,7 +68,7 @@ __FBSDID("$FreeBSD$"); static devclass_t sc_devclass; -static sc_softc_t main_softc; +static sc_softc_t main_softc; #ifdef SC_NO_SUSPEND_VTYSWITCH static int sc_no_suspend_vtswitch = 1; #else @@ -76,26 +76,28 @@ static int sc_no_suspend_vtswitch = 0; #endif static int sc_cur_scr; -TUNABLE_INT("hw.syscons.sc_no_suspend_vtswitch", (int *)&sc_no_suspend_vtswitch); +TUNABLE_INT("hw.syscons.sc_no_suspend_vtswitch", &sc_no_suspend_vtswitch); SYSCTL_DECL(_hw_syscons); SYSCTL_INT(_hw_syscons, OID_AUTO, sc_no_suspend_vtswitch, CTLFLAG_RW, &sc_no_suspend_vtswitch, 0, "Disable VT switch before suspend."); static void -scidentify (driver_t *driver, device_t parent) +scidentify(driver_t *driver, device_t parent) { + BUS_ADD_CHILD(parent, ISA_ORDER_SPECULATIVE, "sc", 0); } static int scprobe(device_t dev) { + /* No pnp support */ if (isa_get_vendorid(dev)) return (ENXIO); device_set_desc(dev, "System console"); - return sc_probe_unit(device_get_unit(dev), device_get_flags(dev)); + return (sc_probe_unit(device_get_unit(dev), device_get_flags(dev))); } static int @@ -154,7 +156,8 @@ scresume(device_t dev) int sc_max_unit(void) { - return devclass_get_maxunit(sc_devclass); + + return (devclass_get_maxunit(sc_devclass)); } sc_softc_t @@ -163,46 +166,46 @@ sc_softc_t sc_softc_t *sc; if (unit < 0) - return NULL; - if (flags & SC_KERNEL_CONSOLE) { + return (NULL); + if ((flags & SC_KERNEL_CONSOLE) != 0) { /* FIXME: clear if it is wired to another unit! */ sc = &main_softc; } else { - sc = (sc_softc_t *)device_get_softc(devclass_get_device(sc_devclass, unit)); + sc = device_get_softc(devclass_get_device(sc_devclass, unit)); if (sc == NULL) - return NULL; + return (NULL); } sc->unit = unit; - if (!(sc->flags & SC_INIT_DONE)) { + if ((sc->flags & SC_INIT_DONE) == 0) { sc->keyboard = -1; sc->adapter = -1; sc->cursor_char = SC_CURSOR_CHAR; sc->mouse_char = SC_MOUSE_CHAR; } - return sc; + return (sc); } sc_softc_t *sc_find_softc(struct video_adapter *adp, struct keyboard *kbd) { sc_softc_t *sc; - int units; int i; + int units; sc = &main_softc; - if (((adp == NULL) || (adp == sc->adp)) - && ((kbd == NULL) || (kbd == sc->kbd))) - return sc; + if ((adp == NULL || adp == sc->adp) && + (kbd == NULL || kbd == sc->kbd)) + return (sc); units = devclass_get_maxunit(sc_devclass); for (i = 0; i < units; ++i) { - sc = (sc_softc_t *)device_get_softc(devclass_get_device(sc_devclass, i)); + sc = device_get_softc(devclass_get_device(sc_devclass, i)); if (sc == NULL) continue; - if (((adp == NULL) || (adp == sc->adp)) - && ((kbd == NULL) || (kbd == sc->kbd))) - return sc; + if ((adp == NULL || adp == sc->adp) && + (kbd == NULL || kbd == sc->kbd)) + return (sc); } - return NULL; + return (NULL); } int @@ -220,7 +223,7 @@ sc_get_cons_priority(int *unit, int *fla if (arch_i386_is_xbox) { *unit = 0; *flags = SC_KERNEL_CONSOLE; - return CN_INTERNAL; + return (CN_INTERNAL); } #endif @@ -249,24 +252,24 @@ sc_get_cons_priority(int *unit, int *fla *flags = 0; } #if 0 - return ((*flags & SC_KERNEL_CONSOLE) ? CN_INTERNAL : CN_NORMAL); + return ((*flags & SC_KERNEL_CONSOLE) != 0 ? CN_INTERNAL : CN_NORMAL); #endif - return CN_INTERNAL; + return (CN_INTERNAL); } void sc_get_bios_values(bios_values_t *values) { #if defined(__i386__) || defined(__amd64__) - u_int8_t shift; + uint8_t shift; - values->cursor_start = *(u_int8_t *)BIOS_PADDRTOVADDR(0x461); - values->cursor_end = *(u_int8_t *)BIOS_PADDRTOVADDR(0x460); - shift = *(u_int8_t *)BIOS_PADDRTOVADDR(0x417); - values->shift_state = ((shift & BIOS_CLKED) ? CLKED : 0) - | ((shift & BIOS_NLKED) ? NLKED : 0) - | ((shift & BIOS_SLKED) ? SLKED : 0) - | ((shift & BIOS_ALKED) ? ALKED : 0); + values->cursor_start = *(uint8_t *)BIOS_PADDRTOVADDR(0x461); + values->cursor_end = *(uint8_t *)BIOS_PADDRTOVADDR(0x460); + shift = *(uint8_t *)BIOS_PADDRTOVADDR(0x417); + values->shift_state = ((shift & BIOS_CLKED) != 0 ? CLKED : 0) | + ((shift & BIOS_NLKED) != 0 ? NLKED : 0) | + ((shift & BIOS_SLKED) != 0 ? SLKED : 0) | + ((shift & BIOS_ALKED) != 0 ? ALKED : 0); #else values->cursor_start = 0; values->cursor_end = 32; @@ -278,17 +281,17 @@ sc_get_bios_values(bios_values_t *values int sc_tone(int herz) { + #if defined(HAS_TIMER_SPKR) if (herz) { if (timer_spkr_acquire()) - return EBUSY; + return (EBUSY); timer_spkr_setfreq(herz); - } else { + } else timer_spkr_release(); - } #endif - return 0; + return (0); } static device_method_t sc_methods[] = { From owner-svn-src-all@FreeBSD.ORG Sat May 22 07:44:34 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 23C851065672; Sat, 22 May 2010 07:44:34 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 130E68FC08; Sat, 22 May 2010 07:44:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4M7iX5q088868; Sat, 22 May 2010 07:44:33 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4M7iXVW088866; Sat, 22 May 2010 07:44:33 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <201005220744.o4M7iXVW088866@svn.freebsd.org> From: Jung-uk Kim Date: Sat, 22 May 2010 07:44:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208413 - head/sys/isa X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2010 07:44:34 -0000 Author: jkim Date: Sat May 22 07:44:33 2010 New Revision: 208413 URL: http://svn.freebsd.org/changeset/base/208413 Log: Fix more style(9) nits that I missed in the previous commit. Modified: head/sys/isa/syscons_isa.c Modified: head/sys/isa/syscons_isa.c ============================================================================== --- head/sys/isa/syscons_isa.c Sat May 22 07:38:29 2010 (r208412) +++ head/sys/isa/syscons_isa.c Sat May 22 07:44:33 2010 (r208413) @@ -79,7 +79,7 @@ static int sc_cur_scr; TUNABLE_INT("hw.syscons.sc_no_suspend_vtswitch", &sc_no_suspend_vtswitch); SYSCTL_DECL(_hw_syscons); SYSCTL_INT(_hw_syscons, OID_AUTO, sc_no_suspend_vtswitch, CTLFLAG_RW, - &sc_no_suspend_vtswitch, 0, "Disable VT switch before suspend."); + &sc_no_suspend_vtswitch, 0, "Disable VT switch before suspend."); static void scidentify(driver_t *driver, device_t parent) @@ -123,9 +123,8 @@ scsuspend(device_t dev) sc_cur_scr = sc->cur_scp->index; do { sc_switch_scr(sc, 0); - if (!sc->switch_in_progress) { + if (!sc->switch_in_progress) break; - } pause("scsuspend", hz); } while (retry--); } @@ -212,7 +211,7 @@ int sc_get_cons_priority(int *unit, int *flags) { const char *at; - int u, f; + int f, u; #ifdef XBOX /* @@ -348,7 +347,7 @@ scpm_suspend(device_t dev) error = bus_generic_suspend(dev); if (error != 0) return (error); - + return (scsuspend(dev)); } From owner-svn-src-all@FreeBSD.ORG Sat May 22 07:52:24 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 293171065674; Sat, 22 May 2010 07:52:24 +0000 (UTC) (envelope-from swell.k@gmail.com) Received: from mail-bw0-f54.google.com (mail-bw0-f54.google.com [209.85.214.54]) by mx1.freebsd.org (Postfix) with ESMTP id 1E5088FC26; Sat, 22 May 2010 07:52:22 +0000 (UTC) Received: by bwz2 with SMTP id 2so323895bwz.13 for ; Sat, 22 May 2010 00:52:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:subject:references :date:in-reply-to:message-id:user-agent:mime-version:content-type; bh=2Qtt9xV9vy244+ypShHBAv+DdTxTsFn3Bu5K0SSwL0Y=; b=IKRcgVVdVjxBlxYKv66+loBxYaLVB8RqW5CyYONsu/DzzgwDLO1ICE5LesbP0LRi+P vqbYNZYsLLvgl9hc+G28mnKTyDhQoQzS25QwHLdvNAqVt0ceSIytjzxRZp9qkx6bcTDc pAYRLbp2Kcf5nnym1ZhMWzXlfHSp4HRXpU81A= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; b=TMp1pdG5rhu1b99fy1VEVQJVgxAaHNUDJojxytnskRLuW3nqSOvoydss1yuG0xb/cD nmw0e46bSvxKUoyxGF6XH0l4XGtIpXu3Cq3XDpP5ub8wKmzvu77vAfi7b/vw6aEkWFy4 CImB8pSdzcW18+3/8kDROCkc3rA5eXkvSfctA= Received: by 10.204.30.195 with SMTP id v3mr513409bkc.3.1274514741722; Sat, 22 May 2010 00:52:21 -0700 (PDT) Received: from localhost (95-25-188-72.broadband.corbina.ru [95.25.188.72]) by mx.google.com with ESMTPS id d5sm8305765bkd.1.2010.05.22.00.52.20 (version=SSLv3 cipher=RC4-MD5); Sat, 22 May 2010 00:52:20 -0700 (PDT) From: Anonymous To: Tim Kientzle References: <201005081628.o48GSM9s067363__30886.3841965378$1273336146$gmane$org@svn.freebsd.org> <86aas3oc8b.fsf@gmail.com> <4BF059FF.8050002__30617.9139217877$1274042897$gmane$org@freebsd.org> <861vdaakkf.fsf@gmail.com> Date: Sat, 22 May 2010 11:52:18 +0400 In-Reply-To: <861vdaakkf.fsf@gmail.com> (Anonymous's message of "Mon, 17 May 2010 14:28:48 +0400") Message-ID: <86mxvsxtjh.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r207790 - head/usr.bin/tar X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2010 07:52:24 -0000 Anonymous writes: > Tim Kientzle writes: > >> Please try the attached patch and let me know if it fixes it for you... >> >> Cheers, >> >> Tim > [...] > > It fixes the issue. Thanks. I'm afraid not. Similar issue affects `tar cf - blah | tar xf -'. It's a little bit harder to reproduce. Caught after using pkg_add(1). # pkg_add gtk-2.20.1_1.tbz load: 0.21 cmd: bsdtar 3351 [running] 0.06r 0.02u 0.00s 1% 6348k In: 307200 bytes, compression 76%; Out: 161 files, 1316787 bytes Current: include/gtk-2.0/gtk/gtklabel.h (8627 bytes) load: 0.16 cmd: bsdtar 3354 [tx->tx_quiesce_done_cv)] 4.08r 0.00u 0.14s 1% 2712k In: 544 files, 36359168 bytes; Out: 36352000 bytes, compression 0% Current: share/locale/hi/LC_MESSAGES/gtk20-properties.mo (131072/234342 bytes) load: 0.16 cmd: bsdtar 3354 [tx->tx_quiesce_done_cv)] 4.86r 0.00u 0.14s 1% 2712k tar: Write error In: 36341760 bytes, compression 0%; Out: 544 files, 36341760 bytes Current: share/locale/hi/LC_MESSAGES/gtk20-properties.mo (234342 bytes) share/locale/hi/LC_MESSAGES/gtk20-properties.mo: Truncated tar archive tar: Error exit delayed from previous errors. pkg_add: leave_playpen: can't chdir back to '' zsh: exit 2 sudo -E pkg_add gtk-x11-2.20.1_1.tbz Workaround is the same - svn diff -c207790 | patch -R -- I don't remember svn revision (newvers.sh doesn't work here). But it was after you committed that patch. $ uname -vm FreeBSD 9.0-CURRENT #0: Fri May 21 15:32:05 UTC 2010 ...:.../PHOENIX amd64 From owner-svn-src-all@FreeBSD.ORG Sat May 22 08:30:48 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 12AF2106567E; Sat, 22 May 2010 08:30:48 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D45B48FC19; Sat, 22 May 2010 08:30:47 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4M8Ulsq098953; Sat, 22 May 2010 08:30:47 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4M8Ulsw098948; Sat, 22 May 2010 08:30:47 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201005220830.o4M8Ulsw098948@svn.freebsd.org> From: Alexander Motin Date: Sat, 22 May 2010 08:30:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208414 - in head/sys/dev: ahci mvs siis X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2010 08:30:48 -0000 Author: mav Date: Sat May 22 08:30:47 2010 New Revision: 208414 URL: http://svn.freebsd.org/changeset/base/208414 Log: Fill rman range start/end values. It makes devinfo output more readable. Modified: head/sys/dev/ahci/ahci.c head/sys/dev/mvs/mvs_pci.c head/sys/dev/mvs/mvs_soc.c head/sys/dev/siis/siis.c Modified: head/sys/dev/ahci/ahci.c ============================================================================== --- head/sys/dev/ahci/ahci.c Sat May 22 07:44:33 2010 (r208413) +++ head/sys/dev/ahci/ahci.c Sat May 22 08:30:47 2010 (r208414) @@ -330,6 +330,8 @@ ahci_attach(device_t dev) &ctlr->r_rid, RF_ACTIVE))) return ENXIO; /* Setup our own memory management for channels. */ + ctlr->sc_iomem.rm_start = rman_get_start(ctlr->r_mem); + ctlr->sc_iomem.rm_end = rman_get_end(ctlr->r_mem); ctlr->sc_iomem.rm_type = RMAN_ARRAY; ctlr->sc_iomem.rm_descr = "I/O memory addresses"; if ((error = rman_init(&ctlr->sc_iomem)) != 0) { Modified: head/sys/dev/mvs/mvs_pci.c ============================================================================== --- head/sys/dev/mvs/mvs_pci.c Sat May 22 07:44:33 2010 (r208413) +++ head/sys/dev/mvs/mvs_pci.c Sat May 22 08:30:47 2010 (r208414) @@ -139,6 +139,8 @@ mvs_attach(device_t dev) &ctlr->r_rid, RF_ACTIVE))) return ENXIO; /* Setup our own memory management for channels. */ + ctlr->sc_iomem.rm_start = rman_get_start(ctlr->r_mem); + ctlr->sc_iomem.rm_end = rman_get_end(ctlr->r_mem); ctlr->sc_iomem.rm_type = RMAN_ARRAY; ctlr->sc_iomem.rm_descr = "I/O memory addresses"; if ((error = rman_init(&ctlr->sc_iomem)) != 0) { Modified: head/sys/dev/mvs/mvs_soc.c ============================================================================== --- head/sys/dev/mvs/mvs_soc.c Sat May 22 07:44:33 2010 (r208413) +++ head/sys/dev/mvs/mvs_soc.c Sat May 22 08:30:47 2010 (r208414) @@ -131,6 +131,8 @@ mvs_attach(device_t dev) &ctlr->r_rid, RF_ACTIVE))) return ENXIO; /* Setup our own memory management for channels. */ + ctlr->sc_iomem.rm_start = rman_get_start(ctlr->r_mem); + ctlr->sc_iomem.rm_end = rman_get_end(ctlr->r_mem); ctlr->sc_iomem.rm_type = RMAN_ARRAY; ctlr->sc_iomem.rm_descr = "I/O memory addresses"; if ((error = rman_init(&ctlr->sc_iomem)) != 0) { Modified: head/sys/dev/siis/siis.c ============================================================================== --- head/sys/dev/siis/siis.c Sat May 22 07:44:33 2010 (r208413) +++ head/sys/dev/siis/siis.c Sat May 22 08:30:47 2010 (r208414) @@ -152,6 +152,8 @@ siis_attach(device_t dev) &ctlr->r_rid, RF_ACTIVE))) return (ENXIO); /* Setup our own memory management for channels. */ + ctlr->sc_iomem.rm_start = rman_get_start(ctlr->r_mem); + ctlr->sc_iomem.rm_end = rman_get_end(ctlr->r_mem); ctlr->sc_iomem.rm_type = RMAN_ARRAY; ctlr->sc_iomem.rm_descr = "I/O memory addresses"; if ((error = rman_init(&ctlr->sc_iomem)) != 0) { From owner-svn-src-all@FreeBSD.ORG Sat May 22 16:30:33 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8163C106566C; Sat, 22 May 2010 16:30:33 +0000 (UTC) (envelope-from maxim@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 713458FC14; Sat, 22 May 2010 16:30:33 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4MGUX8k009052; Sat, 22 May 2010 16:30:33 GMT (envelope-from maxim@svn.freebsd.org) Received: (from maxim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4MGUXL8009050; Sat, 22 May 2010 16:30:33 GMT (envelope-from maxim@svn.freebsd.org) Message-Id: <201005221630.o4MGUXL8009050@svn.freebsd.org> From: Maxim Konovalov Date: Sat, 22 May 2010 16:30:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208417 - head/share/mk X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2010 16:30:33 -0000 Author: maxim Date: Sat May 22 16:30:33 2010 New Revision: 208417 URL: http://svn.freebsd.org/changeset/base/208417 Log: o Grammar. PR: conf/146827 Submitted by: chris petrik Modified: head/share/mk/bsd.README Modified: head/share/mk/bsd.README ============================================================================== --- head/share/mk/bsd.README Sat May 22 15:13:41 2010 (r208416) +++ head/share/mk/bsd.README Sat May 22 16:30:33 2010 (r208417) @@ -91,12 +91,12 @@ the command "make b" will echo "bar". T way the V7 make behaved. It's fairly difficult to make the BSD .mk files work when you're building -multiple programs in a single directory. It's a lot easier split up the -programs than to deal with the problem. Most of the agony comes from making -the "obj" directory stuff work right, not because we switch to a new version -of make. So, don't get mad at us, figure out a better way to handle multiple -architectures so we can quit using the symbolic link stuff. (Imake doesn't -count.) +multiple programs in a single directory. It's a lot easier to split up +the programs than to deal with the problem. Most of the agony comes from +making the "obj" directory stuff work right, not because we switch to a new +version of make. So, don't get mad at us, figure out a better way to handle +multiple architectures so we can quit using the symbolic link stuff. +(Imake doesn't count.) The file .depend in the source directory is expected to contain dependencies for the source files. This file is read automatically by make after reading From owner-svn-src-all@FreeBSD.ORG Sat May 22 17:17:58 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E32761065670; Sat, 22 May 2010 17:17:58 +0000 (UTC) (envelope-from kientzle@freebsd.org) Received: from monday.kientzle.com (kientzle.com [66.166.149.50]) by mx1.freebsd.org (Postfix) with ESMTP id 1F2A58FC15; Sat, 22 May 2010 17:17:57 +0000 (UTC) Received: (from root@localhost) by monday.kientzle.com (8.14.3/8.14.3) id o4MHIE6o071173; Sat, 22 May 2010 17:18:14 GMT (envelope-from kientzle@freebsd.org) Received: from horton.x.kientzle.com (fw2.kientzle.com [10.123.1.2]) by kientzle.com with SMTP id 3p6epe3bbius3m4n9wi7citdea; Sat, 22 May 2010 17:18:13 +0000 (UTC) (envelope-from kientzle@freebsd.org) Message-ID: <4BF811C2.4050901@freebsd.org> Date: Sat, 22 May 2010 10:17:54 -0700 From: Tim Kientzle User-Agent: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.8.1.23) Gecko/20100314 SeaMonkey/1.1.18 MIME-Version: 1.0 To: Anonymous References: <201005081628.o48GSM9s067363__30886.3841965378$1273336146$gmane$org@svn.freebsd.org> <86aas3oc8b.fsf@gmail.com> <4BF059FF.8050002__30617.9139217877$1274042897$gmane$org@freebsd.org> <861vdaakkf.fsf@gmail.com> <86mxvsxtjh.fsf@gmail.com> In-Reply-To: <86mxvsxtjh.fsf@gmail.com> Content-Type: multipart/mixed; boundary="------------080204080707060602010606" Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r207790 - head/usr.bin/tar X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2010 17:17:59 -0000 This is a multi-part message in MIME format. --------------080204080707060602010606 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Ah, yes. I did forget to add an EINTR check to the write side. Attached patch should fix "tar cf" Thanks for your careful testing... Anonymous wrote: > Anonymous writes: > >> Tim Kientzle writes: >> >>> Please try the attached patch and let me know if it fixes it for you... >>> >>> Cheers, >>> >>> Tim >> [...] >> >> It fixes the issue. Thanks. > > I'm afraid not. Similar issue affects `tar cf - blah | tar xf -'. > It's a little bit harder to reproduce. Caught after using pkg_add(1). > > # pkg_add gtk-2.20.1_1.tbz > load: 0.21 cmd: bsdtar 3351 [running] 0.06r 0.02u 0.00s 1% 6348k > In: 307200 bytes, compression 76%; Out: 161 files, 1316787 bytes > Current: include/gtk-2.0/gtk/gtklabel.h (8627 bytes) > load: 0.16 cmd: bsdtar 3354 [tx->tx_quiesce_done_cv)] 4.08r 0.00u 0.14s 1% 2712k > In: 544 files, 36359168 bytes; Out: 36352000 bytes, compression 0% > Current: share/locale/hi/LC_MESSAGES/gtk20-properties.mo (131072/234342 bytes) > load: 0.16 cmd: bsdtar 3354 [tx->tx_quiesce_done_cv)] 4.86r 0.00u 0.14s 1% 2712k > tar: Write error > In: 36341760 bytes, compression 0%; Out: 544 files, 36341760 bytes > Current: share/locale/hi/LC_MESSAGES/gtk20-properties.mo (234342 bytes) > share/locale/hi/LC_MESSAGES/gtk20-properties.mo: Truncated tar archive > tar: Error exit delayed from previous errors. > pkg_add: leave_playpen: can't chdir back to '' > zsh: exit 2 sudo -E pkg_add gtk-x11-2.20.1_1.tbz > > Workaround is the same - svn diff -c207790 | patch -R > > -- > I don't remember svn revision (newvers.sh doesn't work here). But it was > after you committed that patch. > > $ uname -vm > FreeBSD 9.0-CURRENT #0: Fri May 21 15:32:05 UTC 2010 ...:.../PHOENIX amd64 > > --------------080204080707060602010606 Content-Type: text/x-patch; name="libarchive_write_handle_eintr.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="libarchive_write_handle_eintr.patch" Index: archive_write_open_fd.c =================================================================== --- archive_write_open_fd.c (revision 2413) +++ archive_write_open_fd.c (working copy) @@ -51,7 +51,6 @@ #include "archive.h" struct write_fd_data { - off_t offset; int fd; }; @@ -122,12 +121,16 @@ ssize_t bytesWritten; mine = (struct write_fd_data *)client_data; - bytesWritten = write(mine->fd, buff, length); - if (bytesWritten <= 0) { - archive_set_error(a, errno, "Write error"); - return (-1); + for (;;) { + bytesWritten = write(mine->fd, buff, length); + if (bytesWritten <= 0) { + if (errno == EINTR) + continue; + archive_set_error(a, errno, "Write error"); + return (-1); + } + return (bytesWritten); } - return (bytesWritten); } static int Index: archive_write_open_file.c =================================================================== --- archive_write_open_file.c (revision 2413) +++ archive_write_open_file.c (working copy) @@ -86,12 +86,16 @@ size_t bytesWritten; mine = client_data; - bytesWritten = fwrite(buff, 1, length, mine->f); - if (bytesWritten < length) { - archive_set_error(a, errno, "Write error"); - return (-1); + for (;;) { + bytesWritten = fwrite(buff, 1, length, mine->f); + if (bytesWritten <= 0) { + if (errno == EINTR) + continue; + archive_set_error(a, errno, "Write error"); + return (-1); + } + return (bytesWritten); } - return (bytesWritten); } static int Index: archive_write_open_filename.c =================================================================== --- archive_write_open_filename.c (revision 2413) +++ archive_write_open_filename.c (working copy) @@ -142,12 +142,16 @@ ssize_t bytesWritten; mine = (struct write_file_data *)client_data; - bytesWritten = write(mine->fd, buff, length); - if (bytesWritten <= 0) { - archive_set_error(a, errno, "Write error"); - return (-1); + for (;;) { + bytesWritten = write(mine->fd, buff, length); + if (bytesWritten <= 0) { + if (errno == EINTR) + continue; + archive_set_error(a, errno, "Write error"); + return (-1); + } + return (bytesWritten); } - return (bytesWritten); } static int Index: archive_write.c =================================================================== --- archive_write.c (revision 2413) +++ archive_write.c (working copy) @@ -361,11 +361,20 @@ remaining -= to_copy; /* ... if it's full, write it out. */ if (state->avail == 0) { - bytes_written = (a->client_writer)(&a->archive, - a->client_data, state->buffer, state->buffer_size); - if (bytes_written <= 0) - return (ARCHIVE_FATAL); - /* XXX TODO: if bytes_written < state->buffer_size */ + char *p = state->buffer; + size_t remaining = state->buffer_size; + while (remaining > 0) { + bytes_written = (a->client_writer)(&a->archive, + a->client_data, p, remaining); + if (bytes_written <= 0) + return (ARCHIVE_FATAL); + if (bytes_remaining > remaining) { + archive_set_error(a, -1, "write overrun"); + return (ARCHIVE_FATAL); + } + p += bytes_written; + remaining -= bytes_written; + } state->next = state->buffer; state->avail = state->buffer_size; } --------------080204080707060602010606-- From owner-svn-src-all@FreeBSD.ORG Sat May 22 18:40:56 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E116C106566B; Sat, 22 May 2010 18:40:55 +0000 (UTC) (envelope-from simon@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id CA7868FC1B; Sat, 22 May 2010 18:40:55 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4MIetLX037794; Sat, 22 May 2010 18:40:55 GMT (envelope-from simon@svn.freebsd.org) Received: (from simon@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4MIetjM037784; Sat, 22 May 2010 18:40:55 GMT (envelope-from simon@svn.freebsd.org) Message-Id: <201005221840.o4MIetjM037784@svn.freebsd.org> From: "Simon L. Nielsen" Date: Sat, 22 May 2010 18:40:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208419 - in stable/8: crypto/openssl crypto/openssl/apps crypto/openssl/crypto crypto/openssl/crypto/aes crypto/openssl/crypto/aes/asm crypto/openssl/crypto/asn1 crypto/openssl/crypto/... X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2010 18:40:56 -0000 Author: simon Date: Sat May 22 18:40:54 2010 New Revision: 208419 URL: http://svn.freebsd.org/changeset/base/208419 Log: Merge OpenSSL 0.9.8n from head into stable/8. Approved by: re (kib) Added: stable/8/crypto/openssl/engines/alpha.opt - copied unchanged from r208415, head/crypto/openssl/engines/alpha.opt stable/8/crypto/openssl/engines/ia64.opt - copied unchanged from r208415, head/crypto/openssl/engines/ia64.opt stable/8/crypto/openssl/ssl/t1_reneg.c - copied unchanged from r208415, head/crypto/openssl/ssl/t1_reneg.c Deleted: stable/8/crypto/openssl/apps/genpkey.c stable/8/crypto/openssl/apps/pkey.c stable/8/crypto/openssl/apps/pkeyparam.c stable/8/crypto/openssl/apps/pkeyutl.c stable/8/crypto/openssl/apps/ts.c stable/8/crypto/openssl/apps/tsget stable/8/crypto/openssl/crypto/aes/aes_x86core.c stable/8/crypto/openssl/crypto/aes/asm/aes-armv4.pl stable/8/crypto/openssl/crypto/aes/asm/aes-ppc.pl stable/8/crypto/openssl/crypto/aes/asm/aes-s390x.pl stable/8/crypto/openssl/crypto/aes/asm/aes-sparcv9.pl stable/8/crypto/openssl/crypto/asn1/ameth_lib.c stable/8/crypto/openssl/crypto/asn1/asn1_locl.h stable/8/crypto/openssl/crypto/asn1/bio_asn1.c stable/8/crypto/openssl/crypto/asn1/bio_ndef.c stable/8/crypto/openssl/crypto/asn1/x_nx509.c stable/8/crypto/openssl/crypto/bn/asm/alpha-mont.pl stable/8/crypto/openssl/crypto/bn/asm/armv4-mont.pl stable/8/crypto/openssl/crypto/bn/asm/mips3-mont.pl stable/8/crypto/openssl/crypto/bn/asm/ppc-mont.pl stable/8/crypto/openssl/crypto/bn/asm/ppc64-mont.pl stable/8/crypto/openssl/crypto/bn/asm/s390x-mont.pl stable/8/crypto/openssl/crypto/bn/asm/s390x.S stable/8/crypto/openssl/crypto/bn/asm/sparcv9-mont.pl stable/8/crypto/openssl/crypto/bn/asm/sparcv9a-mont.pl stable/8/crypto/openssl/crypto/bn/asm/via-mont.pl stable/8/crypto/openssl/crypto/bn/asm/x86-mont.pl stable/8/crypto/openssl/crypto/camellia/asm/ stable/8/crypto/openssl/crypto/ppccpuid.pl stable/8/crypto/openssl/crypto/s390xcpuid.S stable/8/crypto/openssl/crypto/sparcv9cap.c stable/8/crypto/openssl/engines/axp.opt Modified: stable/8/crypto/openssl/CHANGES stable/8/crypto/openssl/Configure stable/8/crypto/openssl/FAQ stable/8/crypto/openssl/Makefile stable/8/crypto/openssl/Makefile.org stable/8/crypto/openssl/NEWS stable/8/crypto/openssl/README stable/8/crypto/openssl/apps/CA.sh stable/8/crypto/openssl/apps/Makefile stable/8/crypto/openssl/apps/apps.c stable/8/crypto/openssl/apps/ca.c stable/8/crypto/openssl/apps/dsa.c stable/8/crypto/openssl/apps/dsaparam.c stable/8/crypto/openssl/apps/enc.c stable/8/crypto/openssl/apps/gendsa.c stable/8/crypto/openssl/apps/genrsa.c stable/8/crypto/openssl/apps/openssl.c stable/8/crypto/openssl/apps/pkcs12.c stable/8/crypto/openssl/apps/req.c stable/8/crypto/openssl/apps/s_apps.h stable/8/crypto/openssl/apps/s_cb.c stable/8/crypto/openssl/apps/s_client.c stable/8/crypto/openssl/apps/s_server.c stable/8/crypto/openssl/apps/s_socket.c stable/8/crypto/openssl/apps/speed.c stable/8/crypto/openssl/apps/x509.c stable/8/crypto/openssl/config stable/8/crypto/openssl/crypto/aes/aes_cfb.c stable/8/crypto/openssl/crypto/aes/asm/aes-x86_64.pl stable/8/crypto/openssl/crypto/asn1/a_mbstr.c stable/8/crypto/openssl/crypto/asn1/a_object.c stable/8/crypto/openssl/crypto/asn1/asn1.h stable/8/crypto/openssl/crypto/asn1/asn1_err.c stable/8/crypto/openssl/crypto/asn1/asn1_gen.c stable/8/crypto/openssl/crypto/asn1/asn1_par.c stable/8/crypto/openssl/crypto/asn1/t_x509.c stable/8/crypto/openssl/crypto/bio/bio.h stable/8/crypto/openssl/crypto/bio/bss_dgram.c stable/8/crypto/openssl/crypto/bio/bss_file.c stable/8/crypto/openssl/crypto/bn/asm/ppc.pl stable/8/crypto/openssl/crypto/bn/asm/x86_64-gcc.c stable/8/crypto/openssl/crypto/bn/bn_div.c stable/8/crypto/openssl/crypto/bn/bn_exp.c stable/8/crypto/openssl/crypto/bn/bn_gf2m.c stable/8/crypto/openssl/crypto/bn/bn_mul.c stable/8/crypto/openssl/crypto/bn/bntest.c stable/8/crypto/openssl/crypto/camellia/Makefile stable/8/crypto/openssl/crypto/cast/c_cfb64.c stable/8/crypto/openssl/crypto/cast/c_ecb.c stable/8/crypto/openssl/crypto/cast/c_enc.c stable/8/crypto/openssl/crypto/cast/c_ofb64.c stable/8/crypto/openssl/crypto/cast/cast.h stable/8/crypto/openssl/crypto/cms/cms_ess.c stable/8/crypto/openssl/crypto/cms/cms_lib.c stable/8/crypto/openssl/crypto/comp/c_zlib.c stable/8/crypto/openssl/crypto/cryptlib.c stable/8/crypto/openssl/crypto/dsa/Makefile stable/8/crypto/openssl/crypto/dsa/dsa_asn1.c stable/8/crypto/openssl/crypto/dsa/dsa_lib.c stable/8/crypto/openssl/crypto/dso/dso_dlfcn.c stable/8/crypto/openssl/crypto/ec/ec2_smpl.c stable/8/crypto/openssl/crypto/ecdsa/Makefile stable/8/crypto/openssl/crypto/ecdsa/ecs_ossl.c stable/8/crypto/openssl/crypto/ecdsa/ecs_sign.c stable/8/crypto/openssl/crypto/engine/Makefile stable/8/crypto/openssl/crypto/engine/eng_all.c stable/8/crypto/openssl/crypto/engine/eng_cnf.c stable/8/crypto/openssl/crypto/engine/eng_cryptodev.c stable/8/crypto/openssl/crypto/engine/eng_ctrl.c stable/8/crypto/openssl/crypto/engine/eng_err.c stable/8/crypto/openssl/crypto/engine/eng_table.c stable/8/crypto/openssl/crypto/engine/engine.h stable/8/crypto/openssl/crypto/err/Makefile stable/8/crypto/openssl/crypto/err/err_all.c stable/8/crypto/openssl/crypto/evp/c_allc.c stable/8/crypto/openssl/crypto/evp/c_alld.c stable/8/crypto/openssl/crypto/evp/digest.c stable/8/crypto/openssl/crypto/evp/evp_lib.c stable/8/crypto/openssl/crypto/evp/evp_locl.h stable/8/crypto/openssl/crypto/evp/names.c stable/8/crypto/openssl/crypto/lhash/lhash.c stable/8/crypto/openssl/crypto/md32_common.h stable/8/crypto/openssl/crypto/md5/asm/md5-x86_64.pl stable/8/crypto/openssl/crypto/o_init.c stable/8/crypto/openssl/crypto/o_str.c stable/8/crypto/openssl/crypto/objects/obj_dat.c stable/8/crypto/openssl/crypto/objects/obj_dat.h stable/8/crypto/openssl/crypto/objects/obj_mac.h stable/8/crypto/openssl/crypto/objects/obj_mac.num stable/8/crypto/openssl/crypto/objects/objects.txt stable/8/crypto/openssl/crypto/ocsp/ocsp_prn.c stable/8/crypto/openssl/crypto/opensslv.h stable/8/crypto/openssl/crypto/pem/pem_seal.c stable/8/crypto/openssl/crypto/perlasm/x86_64-xlate.pl stable/8/crypto/openssl/crypto/pkcs12/p12_attr.c stable/8/crypto/openssl/crypto/pkcs12/p12_key.c stable/8/crypto/openssl/crypto/pkcs12/p12_utl.c stable/8/crypto/openssl/crypto/pkcs12/pkcs12.h stable/8/crypto/openssl/crypto/pkcs7/pk7_mime.c stable/8/crypto/openssl/crypto/rand/rand_win.c stable/8/crypto/openssl/crypto/rand/randfile.c stable/8/crypto/openssl/crypto/rsa/rsa.h stable/8/crypto/openssl/crypto/rsa/rsa_eay.c stable/8/crypto/openssl/crypto/rsa/rsa_eng.c stable/8/crypto/openssl/crypto/rsa/rsa_oaep.c stable/8/crypto/openssl/crypto/rsa/rsa_pss.c stable/8/crypto/openssl/crypto/rsa/rsa_sign.c stable/8/crypto/openssl/crypto/sha/sha512.c stable/8/crypto/openssl/crypto/stack/safestack.h stable/8/crypto/openssl/crypto/symhacks.h stable/8/crypto/openssl/crypto/ui/ui_openssl.c stable/8/crypto/openssl/crypto/x509/by_dir.c stable/8/crypto/openssl/crypto/x509/x509.h stable/8/crypto/openssl/crypto/x509/x509_lu.c stable/8/crypto/openssl/crypto/x509/x509_vfy.c stable/8/crypto/openssl/crypto/x509/x509_vfy.h stable/8/crypto/openssl/crypto/x509/x509_vpm.c stable/8/crypto/openssl/crypto/x509v3/pcy_tree.c stable/8/crypto/openssl/crypto/x509v3/v3_alt.c stable/8/crypto/openssl/crypto/x509v3/v3_ocsp.c stable/8/crypto/openssl/demos/x509/mkcert.c stable/8/crypto/openssl/demos/x509/mkreq.c stable/8/crypto/openssl/doc/apps/enc.pod stable/8/crypto/openssl/doc/apps/verify.pod stable/8/crypto/openssl/doc/crypto/ASN1_generate_nconf.pod stable/8/crypto/openssl/doc/crypto/EVP_DigestInit.pod stable/8/crypto/openssl/doc/crypto/PKCS12_parse.pod stable/8/crypto/openssl/doc/crypto/bn_internal.pod stable/8/crypto/openssl/doc/crypto/d2i_X509.pod stable/8/crypto/openssl/doc/crypto/d2i_X509_CRL.pod stable/8/crypto/openssl/doc/crypto/d2i_X509_REQ.pod stable/8/crypto/openssl/doc/crypto/hmac.pod stable/8/crypto/openssl/doc/crypto/pem.pod stable/8/crypto/openssl/doc/ssl/SSL_CIPHER_get_name.pod stable/8/crypto/openssl/doc/ssl/SSL_CTX_set_options.pod stable/8/crypto/openssl/engines/Makefile stable/8/crypto/openssl/engines/e_capi.c stable/8/crypto/openssl/engines/e_capi_err.c stable/8/crypto/openssl/engines/e_capi_err.h stable/8/crypto/openssl/engines/e_chil.c stable/8/crypto/openssl/engines/e_ubsec.c stable/8/crypto/openssl/fips/Makefile stable/8/crypto/openssl/fips/aes/fips_aesavs.c stable/8/crypto/openssl/fips/des/fips_desmovs.c stable/8/crypto/openssl/fips/dsa/fips_dsa_key.c stable/8/crypto/openssl/fips/dsa/fips_dsa_sign.c stable/8/crypto/openssl/fips/dsa/fips_dsatest.c stable/8/crypto/openssl/fips/dsa/fips_dssvs.c stable/8/crypto/openssl/fips/fips_locl.h stable/8/crypto/openssl/fips/fips_test_suite.c stable/8/crypto/openssl/fips/fips_utl.h stable/8/crypto/openssl/fips/fipsalgtest.pl stable/8/crypto/openssl/fips/fipsld stable/8/crypto/openssl/fips/hmac/fips_hmac.c stable/8/crypto/openssl/fips/hmac/fips_hmac_selftest.c stable/8/crypto/openssl/fips/rand/fips_rand.c stable/8/crypto/openssl/fips/rand/fips_rngvs.c stable/8/crypto/openssl/fips/rsa/fips_rsagtest.c stable/8/crypto/openssl/fips/rsa/fips_rsastest.c stable/8/crypto/openssl/fips/rsa/fips_rsavtest.c stable/8/crypto/openssl/fips/sha/Makefile stable/8/crypto/openssl/fips/sha/fips_sha1_selftest.c stable/8/crypto/openssl/openssl.spec stable/8/crypto/openssl/ssl/Makefile stable/8/crypto/openssl/ssl/d1_both.c stable/8/crypto/openssl/ssl/d1_clnt.c stable/8/crypto/openssl/ssl/d1_enc.c stable/8/crypto/openssl/ssl/d1_lib.c stable/8/crypto/openssl/ssl/d1_pkt.c stable/8/crypto/openssl/ssl/d1_srvr.c stable/8/crypto/openssl/ssl/dtls1.h stable/8/crypto/openssl/ssl/kssl.c stable/8/crypto/openssl/ssl/s23_clnt.c stable/8/crypto/openssl/ssl/s23_srvr.c stable/8/crypto/openssl/ssl/s2_srvr.c stable/8/crypto/openssl/ssl/s3_both.c stable/8/crypto/openssl/ssl/s3_clnt.c stable/8/crypto/openssl/ssl/s3_lib.c stable/8/crypto/openssl/ssl/s3_pkt.c stable/8/crypto/openssl/ssl/s3_srvr.c stable/8/crypto/openssl/ssl/ssl.h stable/8/crypto/openssl/ssl/ssl3.h stable/8/crypto/openssl/ssl/ssl_algs.c stable/8/crypto/openssl/ssl/ssl_asn1.c stable/8/crypto/openssl/ssl/ssl_cert.c stable/8/crypto/openssl/ssl/ssl_ciph.c stable/8/crypto/openssl/ssl/ssl_err.c stable/8/crypto/openssl/ssl/ssl_lib.c stable/8/crypto/openssl/ssl/ssl_locl.h stable/8/crypto/openssl/ssl/ssl_rsa.c stable/8/crypto/openssl/ssl/ssl_sess.c stable/8/crypto/openssl/ssl/ssl_stat.c stable/8/crypto/openssl/ssl/ssl_txt.c stable/8/crypto/openssl/ssl/t1_enc.c stable/8/crypto/openssl/ssl/t1_lib.c stable/8/crypto/openssl/ssl/tls1.h stable/8/crypto/openssl/test/Makefile stable/8/crypto/openssl/test/cms-test.pl stable/8/crypto/openssl/util/domd stable/8/crypto/openssl/util/libeay.num stable/8/crypto/openssl/util/mk1mf.pl stable/8/crypto/openssl/util/mkdef.pl stable/8/crypto/openssl/util/mkerr.pl stable/8/crypto/openssl/util/pl/Mingw32.pl stable/8/crypto/openssl/util/pl/VC-32.pl stable/8/crypto/openssl/util/pod2man.pl stable/8/crypto/openssl/util/shlib_wrap.sh stable/8/secure/lib/libcrypto/Makefile.inc stable/8/secure/lib/libcrypto/Makefile.man stable/8/secure/lib/libcrypto/man/ASN1_OBJECT_new.3 stable/8/secure/lib/libcrypto/man/ASN1_STRING_length.3 stable/8/secure/lib/libcrypto/man/ASN1_STRING_new.3 stable/8/secure/lib/libcrypto/man/ASN1_STRING_print_ex.3 stable/8/secure/lib/libcrypto/man/ASN1_generate_nconf.3 stable/8/secure/lib/libcrypto/man/BIO_ctrl.3 stable/8/secure/lib/libcrypto/man/BIO_f_base64.3 stable/8/secure/lib/libcrypto/man/BIO_f_buffer.3 stable/8/secure/lib/libcrypto/man/BIO_f_cipher.3 stable/8/secure/lib/libcrypto/man/BIO_f_md.3 stable/8/secure/lib/libcrypto/man/BIO_f_null.3 stable/8/secure/lib/libcrypto/man/BIO_f_ssl.3 stable/8/secure/lib/libcrypto/man/BIO_find_type.3 stable/8/secure/lib/libcrypto/man/BIO_new.3 stable/8/secure/lib/libcrypto/man/BIO_push.3 stable/8/secure/lib/libcrypto/man/BIO_read.3 stable/8/secure/lib/libcrypto/man/BIO_s_accept.3 stable/8/secure/lib/libcrypto/man/BIO_s_bio.3 stable/8/secure/lib/libcrypto/man/BIO_s_connect.3 stable/8/secure/lib/libcrypto/man/BIO_s_fd.3 stable/8/secure/lib/libcrypto/man/BIO_s_file.3 stable/8/secure/lib/libcrypto/man/BIO_s_mem.3 stable/8/secure/lib/libcrypto/man/BIO_s_null.3 stable/8/secure/lib/libcrypto/man/BIO_s_socket.3 stable/8/secure/lib/libcrypto/man/BIO_set_callback.3 stable/8/secure/lib/libcrypto/man/BIO_should_retry.3 stable/8/secure/lib/libcrypto/man/BN_BLINDING_new.3 stable/8/secure/lib/libcrypto/man/BN_CTX_new.3 stable/8/secure/lib/libcrypto/man/BN_CTX_start.3 stable/8/secure/lib/libcrypto/man/BN_add.3 stable/8/secure/lib/libcrypto/man/BN_add_word.3 stable/8/secure/lib/libcrypto/man/BN_bn2bin.3 stable/8/secure/lib/libcrypto/man/BN_cmp.3 stable/8/secure/lib/libcrypto/man/BN_copy.3 stable/8/secure/lib/libcrypto/man/BN_generate_prime.3 stable/8/secure/lib/libcrypto/man/BN_mod_inverse.3 stable/8/secure/lib/libcrypto/man/BN_mod_mul_montgomery.3 stable/8/secure/lib/libcrypto/man/BN_mod_mul_reciprocal.3 stable/8/secure/lib/libcrypto/man/BN_new.3 stable/8/secure/lib/libcrypto/man/BN_num_bytes.3 stable/8/secure/lib/libcrypto/man/BN_rand.3 stable/8/secure/lib/libcrypto/man/BN_set_bit.3 stable/8/secure/lib/libcrypto/man/BN_swap.3 stable/8/secure/lib/libcrypto/man/BN_zero.3 stable/8/secure/lib/libcrypto/man/CONF_modules_free.3 stable/8/secure/lib/libcrypto/man/CONF_modules_load_file.3 stable/8/secure/lib/libcrypto/man/CRYPTO_set_ex_data.3 stable/8/secure/lib/libcrypto/man/DH_generate_key.3 stable/8/secure/lib/libcrypto/man/DH_generate_parameters.3 stable/8/secure/lib/libcrypto/man/DH_get_ex_new_index.3 stable/8/secure/lib/libcrypto/man/DH_new.3 stable/8/secure/lib/libcrypto/man/DH_set_method.3 stable/8/secure/lib/libcrypto/man/DH_size.3 stable/8/secure/lib/libcrypto/man/DSA_SIG_new.3 stable/8/secure/lib/libcrypto/man/DSA_do_sign.3 stable/8/secure/lib/libcrypto/man/DSA_dup_DH.3 stable/8/secure/lib/libcrypto/man/DSA_generate_key.3 stable/8/secure/lib/libcrypto/man/DSA_generate_parameters.3 stable/8/secure/lib/libcrypto/man/DSA_get_ex_new_index.3 stable/8/secure/lib/libcrypto/man/DSA_new.3 stable/8/secure/lib/libcrypto/man/DSA_set_method.3 stable/8/secure/lib/libcrypto/man/DSA_sign.3 stable/8/secure/lib/libcrypto/man/DSA_size.3 stable/8/secure/lib/libcrypto/man/ERR_GET_LIB.3 stable/8/secure/lib/libcrypto/man/ERR_clear_error.3 stable/8/secure/lib/libcrypto/man/ERR_error_string.3 stable/8/secure/lib/libcrypto/man/ERR_get_error.3 stable/8/secure/lib/libcrypto/man/ERR_load_crypto_strings.3 stable/8/secure/lib/libcrypto/man/ERR_load_strings.3 stable/8/secure/lib/libcrypto/man/ERR_print_errors.3 stable/8/secure/lib/libcrypto/man/ERR_put_error.3 stable/8/secure/lib/libcrypto/man/ERR_remove_state.3 stable/8/secure/lib/libcrypto/man/ERR_set_mark.3 stable/8/secure/lib/libcrypto/man/EVP_BytesToKey.3 stable/8/secure/lib/libcrypto/man/EVP_DigestInit.3 stable/8/secure/lib/libcrypto/man/EVP_EncryptInit.3 stable/8/secure/lib/libcrypto/man/EVP_OpenInit.3 stable/8/secure/lib/libcrypto/man/EVP_PKEY_new.3 stable/8/secure/lib/libcrypto/man/EVP_PKEY_set1_RSA.3 stable/8/secure/lib/libcrypto/man/EVP_SealInit.3 stable/8/secure/lib/libcrypto/man/EVP_SignInit.3 stable/8/secure/lib/libcrypto/man/EVP_VerifyInit.3 stable/8/secure/lib/libcrypto/man/OBJ_nid2obj.3 stable/8/secure/lib/libcrypto/man/OPENSSL_Applink.3 stable/8/secure/lib/libcrypto/man/OPENSSL_VERSION_NUMBER.3 stable/8/secure/lib/libcrypto/man/OPENSSL_config.3 stable/8/secure/lib/libcrypto/man/OPENSSL_ia32cap.3 stable/8/secure/lib/libcrypto/man/OPENSSL_load_builtin_modules.3 stable/8/secure/lib/libcrypto/man/OpenSSL_add_all_algorithms.3 stable/8/secure/lib/libcrypto/man/PKCS12_create.3 stable/8/secure/lib/libcrypto/man/PKCS12_parse.3 stable/8/secure/lib/libcrypto/man/PKCS7_decrypt.3 stable/8/secure/lib/libcrypto/man/PKCS7_encrypt.3 stable/8/secure/lib/libcrypto/man/PKCS7_sign.3 stable/8/secure/lib/libcrypto/man/PKCS7_verify.3 stable/8/secure/lib/libcrypto/man/RAND_add.3 stable/8/secure/lib/libcrypto/man/RAND_bytes.3 stable/8/secure/lib/libcrypto/man/RAND_cleanup.3 stable/8/secure/lib/libcrypto/man/RAND_egd.3 stable/8/secure/lib/libcrypto/man/RAND_load_file.3 stable/8/secure/lib/libcrypto/man/RAND_set_rand_method.3 stable/8/secure/lib/libcrypto/man/RSA_blinding_on.3 stable/8/secure/lib/libcrypto/man/RSA_check_key.3 stable/8/secure/lib/libcrypto/man/RSA_generate_key.3 stable/8/secure/lib/libcrypto/man/RSA_get_ex_new_index.3 stable/8/secure/lib/libcrypto/man/RSA_new.3 stable/8/secure/lib/libcrypto/man/RSA_padding_add_PKCS1_type_1.3 stable/8/secure/lib/libcrypto/man/RSA_print.3 stable/8/secure/lib/libcrypto/man/RSA_private_encrypt.3 stable/8/secure/lib/libcrypto/man/RSA_public_encrypt.3 stable/8/secure/lib/libcrypto/man/RSA_set_method.3 stable/8/secure/lib/libcrypto/man/RSA_sign.3 stable/8/secure/lib/libcrypto/man/RSA_sign_ASN1_OCTET_STRING.3 stable/8/secure/lib/libcrypto/man/RSA_size.3 stable/8/secure/lib/libcrypto/man/SMIME_read_PKCS7.3 stable/8/secure/lib/libcrypto/man/SMIME_write_PKCS7.3 stable/8/secure/lib/libcrypto/man/X509_NAME_ENTRY_get_object.3 stable/8/secure/lib/libcrypto/man/X509_NAME_add_entry_by_txt.3 stable/8/secure/lib/libcrypto/man/X509_NAME_get_index_by_NID.3 stable/8/secure/lib/libcrypto/man/X509_NAME_print_ex.3 stable/8/secure/lib/libcrypto/man/X509_new.3 stable/8/secure/lib/libcrypto/man/bio.3 stable/8/secure/lib/libcrypto/man/blowfish.3 stable/8/secure/lib/libcrypto/man/bn.3 stable/8/secure/lib/libcrypto/man/bn_internal.3 stable/8/secure/lib/libcrypto/man/buffer.3 stable/8/secure/lib/libcrypto/man/crypto.3 stable/8/secure/lib/libcrypto/man/d2i_ASN1_OBJECT.3 stable/8/secure/lib/libcrypto/man/d2i_DHparams.3 stable/8/secure/lib/libcrypto/man/d2i_DSAPublicKey.3 stable/8/secure/lib/libcrypto/man/d2i_PKCS8PrivateKey.3 stable/8/secure/lib/libcrypto/man/d2i_RSAPublicKey.3 stable/8/secure/lib/libcrypto/man/d2i_X509.3 stable/8/secure/lib/libcrypto/man/d2i_X509_ALGOR.3 stable/8/secure/lib/libcrypto/man/d2i_X509_CRL.3 stable/8/secure/lib/libcrypto/man/d2i_X509_NAME.3 stable/8/secure/lib/libcrypto/man/d2i_X509_REQ.3 stable/8/secure/lib/libcrypto/man/d2i_X509_SIG.3 stable/8/secure/lib/libcrypto/man/des.3 stable/8/secure/lib/libcrypto/man/dh.3 stable/8/secure/lib/libcrypto/man/dsa.3 stable/8/secure/lib/libcrypto/man/ecdsa.3 stable/8/secure/lib/libcrypto/man/engine.3 stable/8/secure/lib/libcrypto/man/err.3 stable/8/secure/lib/libcrypto/man/evp.3 stable/8/secure/lib/libcrypto/man/hmac.3 stable/8/secure/lib/libcrypto/man/lh_stats.3 stable/8/secure/lib/libcrypto/man/lhash.3 stable/8/secure/lib/libcrypto/man/md5.3 stable/8/secure/lib/libcrypto/man/mdc2.3 stable/8/secure/lib/libcrypto/man/pem.3 stable/8/secure/lib/libcrypto/man/rand.3 stable/8/secure/lib/libcrypto/man/rc4.3 stable/8/secure/lib/libcrypto/man/ripemd.3 stable/8/secure/lib/libcrypto/man/rsa.3 stable/8/secure/lib/libcrypto/man/sha.3 stable/8/secure/lib/libcrypto/man/threads.3 stable/8/secure/lib/libcrypto/man/ui.3 stable/8/secure/lib/libcrypto/man/ui_compat.3 stable/8/secure/lib/libcrypto/man/x509.3 stable/8/secure/lib/libssl/Makefile stable/8/secure/lib/libssl/Makefile.man stable/8/secure/lib/libssl/man/SSL_CIPHER_get_name.3 stable/8/secure/lib/libssl/man/SSL_COMP_add_compression_method.3 stable/8/secure/lib/libssl/man/SSL_CTX_add_extra_chain_cert.3 stable/8/secure/lib/libssl/man/SSL_CTX_add_session.3 stable/8/secure/lib/libssl/man/SSL_CTX_ctrl.3 stable/8/secure/lib/libssl/man/SSL_CTX_flush_sessions.3 stable/8/secure/lib/libssl/man/SSL_CTX_free.3 stable/8/secure/lib/libssl/man/SSL_CTX_get_ex_new_index.3 stable/8/secure/lib/libssl/man/SSL_CTX_get_verify_mode.3 stable/8/secure/lib/libssl/man/SSL_CTX_load_verify_locations.3 stable/8/secure/lib/libssl/man/SSL_CTX_new.3 stable/8/secure/lib/libssl/man/SSL_CTX_sess_number.3 stable/8/secure/lib/libssl/man/SSL_CTX_sess_set_cache_size.3 stable/8/secure/lib/libssl/man/SSL_CTX_sess_set_get_cb.3 stable/8/secure/lib/libssl/man/SSL_CTX_sessions.3 stable/8/secure/lib/libssl/man/SSL_CTX_set_cert_store.3 stable/8/secure/lib/libssl/man/SSL_CTX_set_cert_verify_callback.3 stable/8/secure/lib/libssl/man/SSL_CTX_set_cipher_list.3 stable/8/secure/lib/libssl/man/SSL_CTX_set_client_CA_list.3 stable/8/secure/lib/libssl/man/SSL_CTX_set_client_cert_cb.3 stable/8/secure/lib/libssl/man/SSL_CTX_set_default_passwd_cb.3 stable/8/secure/lib/libssl/man/SSL_CTX_set_generate_session_id.3 stable/8/secure/lib/libssl/man/SSL_CTX_set_info_callback.3 stable/8/secure/lib/libssl/man/SSL_CTX_set_max_cert_list.3 stable/8/secure/lib/libssl/man/SSL_CTX_set_mode.3 stable/8/secure/lib/libssl/man/SSL_CTX_set_msg_callback.3 stable/8/secure/lib/libssl/man/SSL_CTX_set_options.3 stable/8/secure/lib/libssl/man/SSL_CTX_set_quiet_shutdown.3 stable/8/secure/lib/libssl/man/SSL_CTX_set_session_cache_mode.3 stable/8/secure/lib/libssl/man/SSL_CTX_set_session_id_context.3 stable/8/secure/lib/libssl/man/SSL_CTX_set_ssl_version.3 stable/8/secure/lib/libssl/man/SSL_CTX_set_timeout.3 stable/8/secure/lib/libssl/man/SSL_CTX_set_tmp_dh_callback.3 stable/8/secure/lib/libssl/man/SSL_CTX_set_tmp_rsa_callback.3 stable/8/secure/lib/libssl/man/SSL_CTX_set_verify.3 stable/8/secure/lib/libssl/man/SSL_CTX_use_certificate.3 stable/8/secure/lib/libssl/man/SSL_SESSION_free.3 stable/8/secure/lib/libssl/man/SSL_SESSION_get_ex_new_index.3 stable/8/secure/lib/libssl/man/SSL_SESSION_get_time.3 stable/8/secure/lib/libssl/man/SSL_accept.3 stable/8/secure/lib/libssl/man/SSL_alert_type_string.3 stable/8/secure/lib/libssl/man/SSL_clear.3 stable/8/secure/lib/libssl/man/SSL_connect.3 stable/8/secure/lib/libssl/man/SSL_do_handshake.3 stable/8/secure/lib/libssl/man/SSL_free.3 stable/8/secure/lib/libssl/man/SSL_get_SSL_CTX.3 stable/8/secure/lib/libssl/man/SSL_get_ciphers.3 stable/8/secure/lib/libssl/man/SSL_get_client_CA_list.3 stable/8/secure/lib/libssl/man/SSL_get_current_cipher.3 stable/8/secure/lib/libssl/man/SSL_get_default_timeout.3 stable/8/secure/lib/libssl/man/SSL_get_error.3 stable/8/secure/lib/libssl/man/SSL_get_ex_data_X509_STORE_CTX_idx.3 stable/8/secure/lib/libssl/man/SSL_get_ex_new_index.3 stable/8/secure/lib/libssl/man/SSL_get_fd.3 stable/8/secure/lib/libssl/man/SSL_get_peer_cert_chain.3 stable/8/secure/lib/libssl/man/SSL_get_peer_certificate.3 stable/8/secure/lib/libssl/man/SSL_get_rbio.3 stable/8/secure/lib/libssl/man/SSL_get_session.3 stable/8/secure/lib/libssl/man/SSL_get_verify_result.3 stable/8/secure/lib/libssl/man/SSL_get_version.3 stable/8/secure/lib/libssl/man/SSL_library_init.3 stable/8/secure/lib/libssl/man/SSL_load_client_CA_file.3 stable/8/secure/lib/libssl/man/SSL_new.3 stable/8/secure/lib/libssl/man/SSL_pending.3 stable/8/secure/lib/libssl/man/SSL_read.3 stable/8/secure/lib/libssl/man/SSL_rstate_string.3 stable/8/secure/lib/libssl/man/SSL_session_reused.3 stable/8/secure/lib/libssl/man/SSL_set_bio.3 stable/8/secure/lib/libssl/man/SSL_set_connect_state.3 stable/8/secure/lib/libssl/man/SSL_set_fd.3 stable/8/secure/lib/libssl/man/SSL_set_session.3 stable/8/secure/lib/libssl/man/SSL_set_shutdown.3 stable/8/secure/lib/libssl/man/SSL_set_verify_result.3 stable/8/secure/lib/libssl/man/SSL_shutdown.3 stable/8/secure/lib/libssl/man/SSL_state_string.3 stable/8/secure/lib/libssl/man/SSL_want.3 stable/8/secure/lib/libssl/man/SSL_write.3 stable/8/secure/lib/libssl/man/d2i_SSL_SESSION.3 stable/8/secure/lib/libssl/man/ssl.3 stable/8/secure/usr.bin/openssl/man/CA.pl.1 stable/8/secure/usr.bin/openssl/man/asn1parse.1 stable/8/secure/usr.bin/openssl/man/ca.1 stable/8/secure/usr.bin/openssl/man/ciphers.1 stable/8/secure/usr.bin/openssl/man/crl.1 stable/8/secure/usr.bin/openssl/man/crl2pkcs7.1 stable/8/secure/usr.bin/openssl/man/dgst.1 stable/8/secure/usr.bin/openssl/man/dhparam.1 stable/8/secure/usr.bin/openssl/man/dsa.1 stable/8/secure/usr.bin/openssl/man/dsaparam.1 stable/8/secure/usr.bin/openssl/man/ec.1 stable/8/secure/usr.bin/openssl/man/ecparam.1 stable/8/secure/usr.bin/openssl/man/enc.1 stable/8/secure/usr.bin/openssl/man/errstr.1 stable/8/secure/usr.bin/openssl/man/gendsa.1 stable/8/secure/usr.bin/openssl/man/genrsa.1 stable/8/secure/usr.bin/openssl/man/nseq.1 stable/8/secure/usr.bin/openssl/man/ocsp.1 stable/8/secure/usr.bin/openssl/man/openssl.1 stable/8/secure/usr.bin/openssl/man/passwd.1 stable/8/secure/usr.bin/openssl/man/pkcs12.1 stable/8/secure/usr.bin/openssl/man/pkcs7.1 stable/8/secure/usr.bin/openssl/man/pkcs8.1 stable/8/secure/usr.bin/openssl/man/rand.1 stable/8/secure/usr.bin/openssl/man/req.1 stable/8/secure/usr.bin/openssl/man/rsa.1 stable/8/secure/usr.bin/openssl/man/rsautl.1 stable/8/secure/usr.bin/openssl/man/s_client.1 stable/8/secure/usr.bin/openssl/man/s_server.1 stable/8/secure/usr.bin/openssl/man/s_time.1 stable/8/secure/usr.bin/openssl/man/sess_id.1 stable/8/secure/usr.bin/openssl/man/smime.1 stable/8/secure/usr.bin/openssl/man/speed.1 stable/8/secure/usr.bin/openssl/man/spkac.1 stable/8/secure/usr.bin/openssl/man/verify.1 stable/8/secure/usr.bin/openssl/man/version.1 stable/8/secure/usr.bin/openssl/man/x509.1 stable/8/secure/usr.bin/openssl/man/x509v3_config.1 Directory Properties: stable/8/crypto/openssl/ (props changed) stable/8/secure/lib/libcrypto/ (props changed) stable/8/secure/lib/libssl/ (props changed) stable/8/secure/usr.bin/openssl/ (props changed) Modified: stable/8/crypto/openssl/CHANGES ============================================================================== --- stable/8/crypto/openssl/CHANGES Sat May 22 16:55:35 2010 (r208418) +++ stable/8/crypto/openssl/CHANGES Sat May 22 18:40:54 2010 (r208419) @@ -2,6 +2,191 @@ OpenSSL CHANGES _______________ + Changes between 0.9.8m and 0.9.8n [24 Mar 2010] + + *) When rejecting SSL/TLS records due to an incorrect version number, never + update s->server with a new major version number. As of + - OpenSSL 0.9.8m if 'short' is a 16-bit type, + - OpenSSL 0.9.8f if 'short' is longer than 16 bits, + the previous behavior could result in a read attempt at NULL when + receiving specific incorrect SSL/TLS records once record payload + protection is active. (CVE-2010-0740) + [Bodo Moeller, Adam Langley ] + + *) Fix for CVE-2010-0433 where some kerberos enabled versions of OpenSSL + could be crashed if the relevant tables were not present (e.g. chrooted). + [Tomas Hoger ] + + Changes between 0.9.8l and 0.9.8m [25 Feb 2010] + + *) Always check bn_wexpend() return values for failure. (CVE-2009-3245) + [Martin Olsson, Neel Mehta] + + *) Fix X509_STORE locking: Every 'objs' access requires a lock (to + accommodate for stack sorting, always a write lock!). + [Bodo Moeller] + + *) On some versions of WIN32 Heap32Next is very slow. This can cause + excessive delays in the RAND_poll(): over a minute. As a workaround + include a time check in the inner Heap32Next loop too. + [Steve Henson] + + *) The code that handled flushing of data in SSL/TLS originally used the + BIO_CTRL_INFO ctrl to see if any data was pending first. This caused + the problem outlined in PR#1949. The fix suggested there however can + trigger problems with buggy BIO_CTRL_WPENDING (e.g. some versions + of Apache). So instead simplify the code to flush unconditionally. + This should be fine since flushing with no data to flush is a no op. + [Steve Henson] + + *) Handle TLS versions 2.0 and later properly and correctly use the + highest version of TLS/SSL supported. Although TLS >= 2.0 is some way + off ancient servers have a habit of sticking around for a while... + [Steve Henson] + + *) Modify compression code so it frees up structures without using the + ex_data callbacks. This works around a problem where some applications + call CRYPTO_cleanup_all_ex_data() before application exit (e.g. when + restarting) then use compression (e.g. SSL with compression) later. + This results in significant per-connection memory leaks and + has caused some security issues including CVE-2008-1678 and + CVE-2009-4355. + [Steve Henson] + + *) Constify crypto/cast (i.e., ): a CAST_KEY doesn't + change when encrypting or decrypting. + [Bodo Moeller] + + *) Add option SSL_OP_LEGACY_SERVER_CONNECT which will allow clients to + connect and renegotiate with servers which do not support RI. + Until RI is more widely deployed this option is enabled by default. + [Steve Henson] + + *) Add "missing" ssl ctrls to clear options and mode. + [Steve Henson] + + *) If client attempts to renegotiate and doesn't support RI respond with + a no_renegotiation alert as required by RFC5746. Some renegotiating + TLS clients will continue a connection gracefully when they receive + the alert. Unfortunately OpenSSL mishandled this alert and would hang + waiting for a server hello which it will never receive. Now we treat a + received no_renegotiation alert as a fatal error. This is because + applications requesting a renegotiation might well expect it to succeed + and would have no code in place to handle the server denying it so the + only safe thing to do is to terminate the connection. + [Steve Henson] + + *) Add ctrl macro SSL_get_secure_renegotiation_support() which returns 1 if + peer supports secure renegotiation and 0 otherwise. Print out peer + renegotiation support in s_client/s_server. + [Steve Henson] + + *) Replace the highly broken and deprecated SPKAC certification method with + the updated NID creation version. This should correctly handle UTF8. + [Steve Henson] + + *) Implement RFC5746. Re-enable renegotiation but require the extension + as needed. Unfortunately, SSL3_FLAGS_ALLOW_UNSAFE_LEGACY_RENEGOTIATION + turns out to be a bad idea. It has been replaced by + SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION which can be set with + SSL_CTX_set_options(). This is really not recommended unless you + know what you are doing. + [Eric Rescorla , Ben Laurie, Steve Henson] + + *) Fixes to stateless session resumption handling. Use initial_ctx when + issuing and attempting to decrypt tickets in case it has changed during + servername handling. Use a non-zero length session ID when attempting + stateless session resumption: this makes it possible to determine if + a resumption has occurred immediately after receiving server hello + (several places in OpenSSL subtly assume this) instead of later in + the handshake. + [Steve Henson] + + *) The functions ENGINE_ctrl(), OPENSSL_isservice(), + CMS_get1_RecipientRequest() and RAND_bytes() can return <=0 on error + fixes for a few places where the return code is not checked + correctly. + [Julia Lawall ] + + *) Add --strict-warnings option to Configure script to include devteam + warnings in other configurations. + [Steve Henson] + + *) Add support for --libdir option and LIBDIR variable in makefiles. This + makes it possible to install openssl libraries in locations which + have names other than "lib", for example "/usr/lib64" which some + systems need. + [Steve Henson, based on patch from Jeremy Utley] + + *) Don't allow the use of leading 0x80 in OIDs. This is a violation of + X690 8.9.12 and can produce some misleading textual output of OIDs. + [Steve Henson, reported by Dan Kaminsky] + + *) Delete MD2 from algorithm tables. This follows the recommendation in + several standards that it is not used in new applications due to + several cryptographic weaknesses. For binary compatibility reasons + the MD2 API is still compiled in by default. + [Steve Henson] + + *) Add compression id to {d2i,i2d}_SSL_SESSION so it is correctly saved + and restored. + [Steve Henson] + + *) Rename uni2asc and asc2uni functions to OPENSSL_uni2asc and + OPENSSL_asc2uni conditionally on Netware platforms to avoid a name + clash. + [Guenter ] + + *) Fix the server certificate chain building code to use X509_verify_cert(), + it used to have an ad-hoc builder which was unable to cope with anything + other than a simple chain. + [David Woodhouse , Steve Henson] + + *) Don't check self signed certificate signatures in X509_verify_cert() + by default (a flag can override this): it just wastes time without + adding any security. As a useful side effect self signed root CAs + with non-FIPS digests are now usable in FIPS mode. + [Steve Henson] + + *) In dtls1_process_out_of_seq_message() the check if the current message + is already buffered was missing. For every new message was memory + allocated, allowing an attacker to perform an denial of service attack + with sending out of seq handshake messages until there is no memory + left. Additionally every future messege was buffered, even if the + sequence number made no sense and would be part of another handshake. + So only messages with sequence numbers less than 10 in advance will be + buffered. (CVE-2009-1378) + [Robin Seggelmann, discovered by Daniel Mentz] + + *) Records are buffered if they arrive with a future epoch to be + processed after finishing the corresponding handshake. There is + currently no limitation to this buffer allowing an attacker to perform + a DOS attack with sending records with future epochs until there is no + memory left. This patch adds the pqueue_size() function to detemine + the size of a buffer and limits the record buffer to 100 entries. + (CVE-2009-1377) + [Robin Seggelmann, discovered by Daniel Mentz] + + *) Keep a copy of frag->msg_header.frag_len so it can be used after the + parent structure is freed. (CVE-2009-1379) + [Daniel Mentz] + + *) Handle non-blocking I/O properly in SSL_shutdown() call. + [Darryl Miles ] + + *) Add 2.5.4.* OIDs + [Ilya O. ] + + Changes between 0.9.8k and 0.9.8l [5 Nov 2009] + + *) Disable renegotiation completely - this fixes a severe security + problem (CVE-2009-3555) at the cost of breaking all + renegotiation. Renegotiation can be re-enabled by setting + SSL3_FLAGS_ALLOW_UNSAFE_LEGACY_RENEGOTIATION in s3->flags at + run-time. This is really not recommended unless you know what + you're doing. + [Ben Laurie] + Changes between 0.9.8j and 0.9.8k [25 Mar 2009] *) Don't set val to NULL when freeing up structures, it is freed up by @@ -86,6 +271,10 @@ Changes between 0.9.8h and 0.9.8i [15 Sep 2008] + *) Fix NULL pointer dereference if a DTLS server received + ChangeCipherSpec as first record (CVE-2009-1386). + [PR #1679] + *) Fix a state transitition in s3_srvr.c and d1_srvr.c (was using SSL3_ST_CW_CLNT_HELLO_B, should be ..._ST_SW_SRVR_...). [Nagendra Modadugu] @@ -1489,19 +1678,6 @@ differing sizes. [Richard Levitte] - Changes between 0.9.7m and 0.9.7n [xx XXX xxxx] - - *) In the SSL/TLS server implementation, be strict about session ID - context matching (which matters if an application uses a single - external cache for different purposes). Previously, - out-of-context reuse was forbidden only if SSL_VERIFY_PEER was - set. This did ensure strict client verification, but meant that, - with applications using a single external cache for quite - different requirements, clients could circumvent ciphersuite - restrictions for a given session ID context by starting a session - in a different context. - [Bodo Moeller] - Changes between 0.9.7l and 0.9.7m [23 Feb 2007] *) Cleanse PEM buffers before freeing them since they may contain Modified: stable/8/crypto/openssl/Configure ============================================================================== --- stable/8/crypto/openssl/Configure Sat May 22 16:55:35 2010 (r208418) +++ stable/8/crypto/openssl/Configure Sat May 22 18:40:54 2010 (r208419) @@ -106,6 +106,8 @@ my $usage="Usage: Configure [no- my $gcc_devteam_warn = "-Wall -pedantic -DPEDANTIC -Wno-long-long -Wsign-compare -Wmissing-prototypes -Wshadow -Wformat -Werror -DCRYPTO_MDEBUG_ALL -DCRYPTO_MDEBUG_ABORT -DREF_CHECK -DOPENSSL_NO_DEPRECATED"; +my $strict_warnings = 0; + my $x86_gcc_des="DES_PTR DES_RISC1 DES_UNROLL"; # MD2_CHAR slags pentium pros @@ -159,14 +161,15 @@ my %table=( "debug-ben", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown):::::bn86-elf.o co86-elf.o", "debug-ben-openbsd","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::", "debug-ben-openbsd-debug","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DPEDANTIC -DDEBUG_SAFESTACK -DOPENSSL_OPENBSD_DEV_CRYPTO -DOPENSSL_NO_ASM -g3 -O2 -pedantic -Wall -Wshadow -Werror -pipe::(unknown)::::", -"debug-ben-debug", "gcc:$gcc_devteam_warn -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DDEBUG_SAFESTACK -g3 -O2 -pipe::(unknown)::::::", +"debug-ben-debug", "gcc:$gcc_devteam_warn -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -ggdb3 -O2 -pipe::(unknown)::::::", +"debug-ben-debug-noopt", "gcc:$gcc_devteam_warn -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -ggdb3 -pipe::(unknown)::::::", "debug-ben-strict", "gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DCONST_STRICT -O2 -Wall -Wshadow -Werror -Wpointer-arith -Wcast-qual -Wwrite-strings -pipe::(unknown)::::::", "debug-rse","cc:-DTERMIOS -DL_ENDIAN -pipe -O -g -ggdb3 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}", "debug-bodo", "gcc:-DL_ENDIAN -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBIO_PAIR_DEBUG -DPEDANTIC -g -march=i486 -pedantic -Wshadow -Wall -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}", "debug-ulf", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DBN_DEBUG_RAND -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations:::CYGWIN32:::${no_asm}:win32:cygwin-shared:::.dll", -"debug-steve64", "gcc:$gcc_devteam_warn -m64 -DL_ENDIAN -DTERMIO -DCONF_DEBUG -DDEBUG_SAFESTACK -g -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"debug-steve64", "gcc:$gcc_devteam_warn -m64 -DL_ENDIAN -DTERMIO -DCONF_DEBUG -DDEBUG_SAFESTACK -g -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", "debug-steve32", "gcc:$gcc_devteam_warn -m32 -DL_ENDIAN -DCONF_DEBUG -DDEBUG_SAFESTACK -g -pipe::-D_REENTRANT::-rdynamic -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC:-m32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -"debug-steve-opt", "gcc:$gcc_devteam_warn -m64 -O3 -DL_ENDIAN -DTERMIO -DCONF_DEBUG -DDEBUG_SAFESTACK -g -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"debug-steve-opt", "gcc:$gcc_devteam_warn -m64 -O3 -DL_ENDIAN -DTERMIO -DCONF_DEBUG -DDEBUG_SAFESTACK -g -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", "debug-steve", "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -m32 -g -pedantic -Wno-long-long -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared", "debug-steve-linux-pseudo64", "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DOPENSSL_NO_ASM -g -mcpu=i486 -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:SIXTY_FOUR_BIT:${no_asm}:dlfcn:linux-shared", "debug-levitte-linux-elf","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", @@ -178,6 +181,9 @@ my %table=( "debug-linux-ppro","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentiumpro -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn", "debug-linux-elf","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -march=i486 -Wall::-D_REENTRANT::-lefence -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", "debug-linux-elf-noefence","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -march=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"debug-linux-generic32","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DTERMIO -g -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"debug-linux-generic64","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DTERMIO -g -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"debug-linux-x86_64","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -m64 -DL_ENDIAN -DTERMIO -g -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", "dist", "cc:-O::(unknown)::::::", # Basic configs that should work on any (32 and less bit) box @@ -203,11 +209,11 @@ my %table=( # actually recommend to consider using gcc shared build even with vendor # compiler:-) # -"solaris64-x86_64-gcc","gcc:-m64 -O3 -Wall -DL_ENDIAN -DMD32_REG_T=int::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:solaris-shared:-fPIC:-m64 -shared -static-libgcc:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"solaris64-x86_64-gcc","gcc:-m64 -O3 -Wall -DL_ENDIAN -DMD32_REG_T=int::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:solaris-shared:-fPIC:-m64 -shared -static-libgcc:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", #### Solaris x86 with Sun C setups "solaris-x86-cc","cc:-fast -O -Xa::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-KPIC:-G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -"solaris64-x86_64-cc","cc:-fast -xarch=amd64 -xstrconst -Xa -DL_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:solaris-shared:-KPIC:-xarch=amd64 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"solaris64-x86_64-cc","cc:-fast -xarch=amd64 -xstrconst -Xa -DL_ENDIAN::-D_REENTRANT::-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:solaris-shared:-KPIC:-xarch=amd64 -G -dy -z text:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", #### SPARC Solaris with GNU C setups "solaris-sparcv7-gcc","gcc:-O3 -fomit-frame-pointer -Wall -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:solaris-shared:-fPIC:-shared:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", @@ -337,7 +343,7 @@ my %table=( "linux-ia64", "gcc:-DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", "linux-ia64-ecc","ecc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", "linux-ia64-icc","icc:-DL_ENDIAN -DTERMIO -O2 -Wall -no_cpprt::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", -"linux-x86_64", "gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"linux-x86_64", "gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", #### SPARC Linux setups # Ray Miller has patiently # assisted with debugging of following two configs. @@ -390,7 +396,8 @@ my %table=( # QNX "qnx4", "cc:-DL_ENDIAN -DTERMIO::(unknown):::${x86_gcc_des} ${x86_gcc_opts}:", -"qnx6", "cc:-DL_ENDIAN -DTERMIOS::(unknown)::-lsocket:${x86_gcc_des} ${x86_gcc_opts}:", +"QNX6", "gcc:-DTERMIOS::::-lsocket::${no_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", +"QNX6-i386", "gcc:-DL_ENDIAN -DTERMIOS -O2 -Wall::::-lsocket:${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", #### SCO/Caldera targets. # @@ -520,7 +527,7 @@ my %table=( "darwin64-ppc-cc","cc:-arch ppc64 -O3 -DB_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::osx_ppc64.o::::::::::dlfcn:darwin-shared:-fPIC -fno-common:-arch ppc64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", "darwin-i386-cc","cc:-arch i386 -O3 -fomit-frame-pointer -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", "debug-darwin-i386-cc","cc:-arch i386 -g3 -DL_ENDIAN::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-arch i386 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", -"darwin64-x86_64-cc","cc:-arch x86_64 -O3 -fomit-frame-pointer -DL_ENDIAN -DMD32_REG_T=int -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", +"darwin64-x86_64-cc","cc:-arch x86_64 -O3 -fomit-frame-pointer -DL_ENDIAN -DMD32_REG_T=int -Wall::-D_REENTRANT:MACOSX:-Wl,-search_paths_first%:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${no_asm}:dlfcn:darwin-shared:-fPIC -fno-common:-arch x86_64 -dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", "debug-darwin-ppc-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DB_ENDIAN -g -Wall -O::-D_REENTRANT:MACOSX::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::osx_ppc32.o::::::::::dlfcn:darwin-shared:-fPIC -fno-common:-dynamiclib:.\$(SHLIB_MAJOR).\$(SHLIB_MINOR).dylib", ##### A/UX @@ -581,9 +588,11 @@ my $idx_ranlib = $idx++; my $idx_arflags = $idx++; my $prefix=""; +my $libdir=""; my $openssldir=""; my $exe_ext=""; -my $install_prefix=""; +my $install_prefix= "$ENV{'INSTALL_PREFIX'}"; +my $cross_compile_prefix=""; my $fipslibdir="/usr/local/ssl/fips-1.0/lib/"; my $nofipscanistercheck=0; my $fipsdso=0; @@ -747,6 +756,10 @@ PROCESS_ARGS: { exit(&test_sanity()); } + elsif (/^--strict-warnings/) + { + $strict_warnings = 1; + } elsif (/^reconfigure/ || /^reconf/) { if (open(IN,"<$Makefile")) @@ -816,6 +829,10 @@ PROCESS_ARGS: { $prefix=$1; } + elsif (/^--libdir=(.*)$/) + { + $libdir=$1; + } elsif (/^--openssldir=(.*)$/) { $openssldir=$1; @@ -979,7 +996,8 @@ my $shared_target = $fields[$idx_shared_ my $shared_cflag = $fields[$idx_shared_cflag]; my $shared_ldflag = $fields[$idx_shared_ldflag]; my $shared_extension = $fields[$idx_shared_extension]; -my $ranlib = $fields[$idx_ranlib]; +my $ranlib = $ENV{'RANLIB'} || $fields[$idx_ranlib]; +my $ar = $ENV{'AR'} || "ar"; my $arflags = $fields[$idx_arflags]; if ($fips) @@ -1079,9 +1097,14 @@ if ($openssldir eq "" and $prefix eq "") } $prefix=$openssldir if $prefix eq ""; +$libdir="lib" if $libdir eq ""; + $default_ranlib= &which("ranlib") or $default_ranlib="true"; $perl=$ENV{'PERL'} or $perl=&which("perl5") or $perl=&which("perl") or $perl="perl"; +my $make = $ENV{'MAKE'} || "make"; + +$cross_compile_prefix=$ENV{'CROSS_COMPILE'} if $cross_compile_prefix eq ""; chop $openssldir if $openssldir =~ /\/$/; chop $prefix if $prefix =~ /.\/$/; @@ -1434,6 +1457,16 @@ if ($shlib_version_number =~ /(^[0-9]*)\ $shlib_minor=$2; } +if ($strict_warnings) + { + my $wopt; + die "ERROR --strict-warnings requires gcc" unless ($cc =~ /gcc$/); + foreach $wopt (split /\s+/, $gcc_devteam_warn) + { + $cflags .= " $wopt" unless ($cflags =~ /$wopt/) + } + } + open(IN,'$Makefile.new") || die "unable to create $Makefile.new:$!\n"; @@ -1463,11 +1496,22 @@ while () s/^SHLIB_EXT=.*/SHLIB_EXT=$shared_extension/; s/^INSTALLTOP=.*$/INSTALLTOP=$prefix/; s/^OPENSSLDIR=.*$/OPENSSLDIR=$openssldir/; + s/^LIBDIR=.*$/LIBDIR=$libdir/; s/^INSTALL_PREFIX=.*$/INSTALL_PREFIX=$install_prefix/; s/^PLATFORM=.*$/PLATFORM=$target/; s/^OPTIONS=.*$/OPTIONS=$options/; s/^CONFIGURE_ARGS=.*$/CONFIGURE_ARGS=$argvstring/; - s/^CC=.*$/CC= $cc/; + if ($cross_compile_prefix) + { + s/^CC=.*$/CROSS_COMPILE= $cross_compile_prefix\nCC= \$\(CROSS_COMPILE\)$cc/; + s/^AR=\s*/AR= \$\(CROSS_COMPILE\)/; + s/^RANLIB=\s*/RANLIB= \$\(CROSS_COMPILE\)/; + } + else { + s/^CC=.*$/CC= $cc/; + s/^AR=\s*ar/AR= $ar/; + s/^RANLIB=.*/RANLIB= $ranlib/; + } s/^MAKEDEPPROG=.*$/MAKEDEPPROG= $cc/ if $cc eq "gcc"; s/^CFLAG=.*$/CFLAG= $cflags/; s/^DEPFLAG=.*$/DEPFLAG=$depflags/; @@ -1486,7 +1530,6 @@ while () s/^SHA1_ASM_OBJ=.*$/SHA1_ASM_OBJ= $sha1_obj/; s/^RMD160_ASM_OBJ=.*$/RMD160_ASM_OBJ= $rmd160_obj/; s/^PROCESSOR=.*/PROCESSOR= $processor/; - s/^RANLIB=.*/RANLIB= $ranlib/; s/^ARFLAGS=.*/ARFLAGS= $arflags/; s/^PERL=.*/PERL= $perl/; s/^KRB5_INCLUDES=.*/KRB5_INCLUDES=$withargs{"krb5-include"}/; @@ -1643,9 +1686,20 @@ print OUT "#define OPENSSL_CPUID_OBJ\n\n while () { if (/^#define\s+OPENSSLDIR/) - { print OUT "#define OPENSSLDIR \"$openssldir\"\n"; } + { + my $foo = $openssldir; + $foo =~ s/\\/\\\\/g; + print OUT "#define OPENSSLDIR \"$foo\"\n"; + } elsif (/^#define\s+ENGINESDIR/) - { print OUT "#define ENGINESDIR \"$prefix/lib/engines\"\n"; } + { + # $foo is to become "$prefix/lib$multilib/engines"; + # as Makefile.org and engines/Makefile are adapted for + # $multilib suffix. + my $foo = "$prefix/lib/engines"; + $foo =~ s/\\/\\\\/g; + print OUT "#define ENGINESDIR \"$foo\"\n"; + } elsif (/^#((define)|(undef))\s+OPENSSL_EXPORT_VAR_AS_FUNCTION/) { printf OUT "#undef OPENSSL_EXPORT_VAR_AS_FUNCTION\n" if $export_var_as_fn; @@ -1750,7 +1804,7 @@ if($IsMK1MF) { EOF close(OUT); } else { - my $make_command = "make PERL=\'$perl\'"; + my $make_command = "$make PERL=\'$perl\'"; my $make_targets = ""; $make_targets .= " links" if $symlink; $make_targets .= " depend" if $depflags ne $default_depflags && $make_depend; Modified: stable/8/crypto/openssl/FAQ ============================================================================== --- stable/8/crypto/openssl/FAQ Sat May 22 16:55:35 2010 (r208418) +++ stable/8/crypto/openssl/FAQ Sat May 22 18:40:54 2010 (r208419) @@ -78,7 +78,7 @@ OpenSSL - Frequently Asked Questions * Which is the current version of OpenSSL? The current version is available from . -OpenSSL 0.9.8k was released on Mar 25th, 2009. +OpenSSL 0.9.8n was released on Mar 24th, 2010. In addition to the current stable release, you can also access daily snapshots of the OpenSSL development version at Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4F6CC106564A; Sat, 22 May 2010 20:05:31 +0000 (UTC) (envelope-from uqs@spoerlein.net) Received: from acme.spoerlein.net (acme.spoerlein.net [IPv6:2001:470:9a47::1]) by mx1.freebsd.org (Postfix) with ESMTP id BEF1C8FC1A; Sat, 22 May 2010 20:05:30 +0000 (UTC) Received: from acme.spoerlein.net (localhost.spoerlein.net [IPv6:::1]) by acme.spoerlein.net (8.14.4/8.14.4) with ESMTP id o4MK5SHv058819 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 22 May 2010 22:05:29 +0200 (CEST) (envelope-from uqs@spoerlein.net) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=spoerlein.net; s=dkim200908; t=1274558729; bh=BsTHET8EIN/mWVt5avNpEa2oiQzkKdhWqvek0OIHdww=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:In-Reply-To; b=jRUu3geneKyVMhdAYTduLsD1H9nIygHfUY07TpY2YiKoeRjCpEUvKrSqxdWzgMoCh asB3CIR+Uvg0jLD6hvivGUIPys2fhwPQGWbo+ssu/zJNWSZg9eIPvQBg+3YY3FKmk3 /fIwHwzarGf6Qhs9nLEYnIj19TWtSfjrSG/6Ytig= Received: (from uqs@localhost) by acme.spoerlein.net (8.14.4/8.14.4/Submit) id o4MK5ScL058818; Sat, 22 May 2010 22:05:28 +0200 (CEST) (envelope-from uqs@spoerlein.net) Date: Sat, 22 May 2010 22:05:28 +0200 From: Ulrich =?utf-8?B?U3DDtnJsZWlu?= To: Maxim Konovalov Message-ID: <20100522200528.GR88504@acme.spoerlein.net> Mail-Followup-To: Ulrich =?utf-8?B?U3DDtnJsZWlu?= , Maxim Konovalov , src-committers@FreeBSD.org, svn-src-all@FreeBSD.org, svn-src-head@FreeBSD.org References: <201005221630.o4MGUXL8009050@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201005221630.o4MGUXL8009050@svn.freebsd.org> User-Agent: Mutt/1.5.20 (2009-06-14) Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: svn commit: r208417 - head/share/mk X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2010 20:05:31 -0000 On Sat, 22.05.2010 at 16:30:33 +0000, Maxim Konovalov wrote: > Author: maxim > Date: Sat May 22 16:30:33 2010 > New Revision: 208417 > URL: http://svn.freebsd.org/changeset/base/208417 > > Log: > o Grammar. > > PR: conf/146827 > Submitted by: chris petrik > > Modified: > head/share/mk/bsd.README > > Modified: head/share/mk/bsd.README > ============================================================================== > --- head/share/mk/bsd.README Sat May 22 15:13:41 2010 (r208416) > +++ head/share/mk/bsd.README Sat May 22 16:30:33 2010 (r208417) > @@ -91,12 +91,12 @@ the command "make b" will echo "bar". T > way the V7 make behaved. > > It's fairly difficult to make the BSD .mk files work when you're building > -multiple programs in a single directory. It's a lot easier split up the > -programs than to deal with the problem. Most of the agony comes from making > -the "obj" directory stuff work right, not because we switch to a new version > -of make. So, don't get mad at us, figure out a better way to handle multiple > -architectures so we can quit using the symbolic link stuff. (Imake doesn't > -count.) > +multiple programs in a single directory. It's a lot easier to split up > +the programs than to deal with the problem. Most of the agony comes from > +making the "obj" directory stuff work right, not because we switch to a new > +version of make. So, don't get mad at us, figure out a better way to handle > +multiple architectures so we can quit using the symbolic link stuff. > +(Imake doesn't count.) I don't quite get, why the paragraph had to be re-wrapped (making it worse). But what's more annoying is, that you introduced whitespace at end-of-line. Too bad 'svn diff' doesn't highligh this nicely as other SCMs do :( Uli From owner-svn-src-all@FreeBSD.ORG Sat May 22 20:19:13 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 52F13106564A; Sat, 22 May 2010 20:19:13 +0000 (UTC) (envelope-from maxim@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4271E8FC08; Sat, 22 May 2010 20:19:13 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4MKJDla059302; Sat, 22 May 2010 20:19:13 GMT (envelope-from maxim@svn.freebsd.org) Received: (from maxim@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4MKJDYH059300; Sat, 22 May 2010 20:19:13 GMT (envelope-from maxim@svn.freebsd.org) Message-Id: <201005222019.o4MKJDYH059300@svn.freebsd.org> From: Maxim Konovalov Date: Sat, 22 May 2010 20:19:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208420 - head/share/mk X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2010 20:19:13 -0000 Author: maxim Date: Sat May 22 20:19:12 2010 New Revision: 208420 URL: http://svn.freebsd.org/changeset/base/208420 Log: o Remove EoL w/spaces introduced in the last commit. Spotted by: uqs Modified: head/share/mk/bsd.README Modified: head/share/mk/bsd.README ============================================================================== --- head/share/mk/bsd.README Sat May 22 18:40:54 2010 (r208419) +++ head/share/mk/bsd.README Sat May 22 20:19:12 2010 (r208420) @@ -91,11 +91,11 @@ the command "make b" will echo "bar". T way the V7 make behaved. It's fairly difficult to make the BSD .mk files work when you're building -multiple programs in a single directory. It's a lot easier to split up -the programs than to deal with the problem. Most of the agony comes from -making the "obj" directory stuff work right, not because we switch to a new -version of make. So, don't get mad at us, figure out a better way to handle -multiple architectures so we can quit using the symbolic link stuff. +multiple programs in a single directory. It's a lot easier to split up +the programs than to deal with the problem. Most of the agony comes from +making the "obj" directory stuff work right, not because we switch to a new +version of make. So, don't get mad at us, figure out a better way to handle +multiple architectures so we can quit using the symbolic link stuff. (Imake doesn't count.) The file .depend in the source directory is expected to contain dependencies From owner-svn-src-all@FreeBSD.ORG Sat May 22 20:24:59 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A640B1065673; Sat, 22 May 2010 20:24:59 +0000 (UTC) (envelope-from swell.k@gmail.com) Received: from fg-out-1718.google.com (fg-out-1718.google.com [72.14.220.153]) by mx1.freebsd.org (Postfix) with ESMTP id AA4358FC08; Sat, 22 May 2010 20:24:58 +0000 (UTC) Received: by fg-out-1718.google.com with SMTP id l26so1170178fgb.13 for ; Sat, 22 May 2010 13:24:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:from:to:cc:subject:references :date:in-reply-to:message-id:user-agent:mime-version:content-type; bh=3sc2Y9W5CVTcr0R46Y4un0lFQ8t+tlLyijSRtGW+mM8=; b=a1Z3fTjOs0CZehxxqkszaxJMhJA65wHxiaNnOB7Qe+y3Xzkcn+vQk0vihgu15tjoEB 4BgEAIKlacqwk6K21OFvVNjk+F5g7kzPSySa8HcgftGOPxuyOG/GlCUCzXmqinS2ejds M3DH559P3/2zTq03D6WlpOzH1rMzEcv3l86+I= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; b=XNQ8leq6nF7V+Z/t+6UuB6Lu9iC8IZXrcrz7JRebXJHnB4Adjyu8O1W4o0FEwA5EqT G134NAVdPsryYQy3YMd0t2g5lg4tlXLGhJSGFmDPzV83LpUeSqjQbAZ4z5lLrhutMK5r LjWSLcH7h1k/KkvvgLacgYeFdnnpHpiWNDLpY= Received: by 10.87.50.37 with SMTP id c37mr5820011fgk.68.1274559894898; Sat, 22 May 2010 13:24:54 -0700 (PDT) Received: from localhost (95-25-188-72.broadband.corbina.ru [95.25.188.72]) by mx.google.com with ESMTPS id 3sm1705526fge.20.2010.05.22.13.24.54 (version=SSLv3 cipher=RC4-MD5); Sat, 22 May 2010 13:24:54 -0700 (PDT) From: Anonymous To: Tim Kientzle References: <201005081628.o48GSM9s067363__30886.3841965378$1273336146$gmane$org@svn.freebsd.org> <86aas3oc8b.fsf@gmail.com> <4BF059FF.8050002__30617.9139217877$1274042897$gmane$org@freebsd.org> <861vdaakkf.fsf@gmail.com> <86mxvsxtjh.fsf@gmail.com> <4BF811C2.4050901@freebsd.org> Date: Sun, 23 May 2010 00:24:35 +0400 In-Reply-To: <4BF811C2.4050901@freebsd.org> (Tim Kientzle's message of "Sat, 22 May 2010 10:17:54 -0700") Message-ID: <868w7bd6rg.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r207790 - head/usr.bin/tar X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2010 20:24:59 -0000 Tim Kientzle writes: > Ah, yes. I did forget to add an EINTR check to the write side. > > Attached patch should fix "tar cf" > > Thanks for your careful testing... > [...] > Index: archive_write.c > =================================================================== > --- archive_write.c (revision 2413) > +++ archive_write.c (working copy) > @@ -361,11 +361,20 @@ > remaining -= to_copy; > /* ... if it's full, write it out. */ > if (state->avail == 0) { > - bytes_written = (a->client_writer)(&a->archive, > - a->client_data, state->buffer, state->buffer_size); > - if (bytes_written <= 0) > - return (ARCHIVE_FATAL); > - /* XXX TODO: if bytes_written < state->buffer_size */ > + char *p = state->buffer; > + size_t remaining = state->buffer_size; > + while (remaining > 0) { > + bytes_written = (a->client_writer)(&a->archive, > + a->client_data, p, remaining); > + if (bytes_written <= 0) > + return (ARCHIVE_FATAL); > + if (bytes_remaining > remaining) { > + archive_set_error(a, -1, "write overrun"); > + return (ARCHIVE_FATAL); > + } > + p += bytes_written; > + remaining -= bytes_written; > + } > state->next = state->buffer; > state->avail = state->buffer_size; > } This hunk doesn't apply against archive_write.c@r201099. It depends on r1936 from googlecode that wasn't merged to /head. I compiled without the above hunk and I no longer able to reproduce the issue. Thanks. From owner-svn-src-all@FreeBSD.ORG Sat May 22 21:38:57 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5FB7C106566B; Sat, 22 May 2010 21:38:57 +0000 (UTC) (envelope-from neel@FreeBSD.org) Received: from svn.freebsd.org (unknown [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4F24C8FC1C; Sat, 22 May 2010 21:38:57 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o4MLcvLF076786; Sat, 22 May 2010 21:38:57 GMT (envelope-from neel@svn.freebsd.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o4MLcvkk076784; Sat, 22 May 2010 21:38:57 GMT (envelope-from neel@svn.freebsd.org) Message-Id: <201005222138.o4MLcvkk076784@svn.freebsd.org> From: Neel Natu Date: Sat, 22 May 2010 21:38:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r208422 - head/sys/mips/mips X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 May 2010 21:38:57 -0000 Author: neel Date: Sat May 22 21:38:57 2010 New Revision: 208422 URL: http://svn.freebsd.org/changeset/base/208422 Log: - Use ptpgzone zone to allocate page table pages irrespective of the amount of memory on a platform. Tested on the Sibyte with 256MB and 1GB memory configurations. - Replace vtophys() with MIPS_KSEG0_TO_PHYS() to convert a page table page's virtual address to physical. We can safely do this because page table pages are allocated out of KSEG0. - Add an assertion to verify that when a page table page is freed it contains all zeroes. We can now use it after allocation without zeroing it. Modified: head/sys/mips/mips/pmap.c Modified: head/sys/mips/mips/pmap.c ============================================================================== --- head/sys/mips/mips/pmap.c Sat May 22 21:34:14 2010 (r208421) +++ head/sys/mips/mips/pmap.c Sat May 22 21:38:57 2010 (r208422) @@ -110,10 +110,6 @@ __FBSDID("$FreeBSD$"); #define PMAP_SHPGPERPROC 200 #endif -#if defined(TARGET_XLR_XLS) -#define HIGHMEM_SUPPORT -#endif - #if !defined(PMAP_DIAGNOSTIC) #define PMAP_INLINE __inline #else @@ -197,10 +193,9 @@ static void pmap_invalidate_all_action(v static void pmap_update_page_action(void *arg); #endif -#ifdef HIGHMEM_SUPPORT -static void * pmap_ptpgzone_allocf(uma_zone_t, int, u_int8_t*, int); +static void pmap_ptpgzone_dtor(void *mem, int size, void *arg); +static void *pmap_ptpgzone_allocf(uma_zone_t, int, u_int8_t *, int); static uma_zone_t ptpgzone; -#endif struct local_sysmaps { struct mtx lock; @@ -542,11 +537,9 @@ pmap_init(void) pv_entry_high_water = 9 * (pv_entry_max / 10); uma_zone_set_obj(pvzone, &pvzone_obj, pv_entry_max); -#ifdef HIGHMEM_SUPPORT - ptpgzone = uma_zcreate("PT ENTRY", PAGE_SIZE, NULL, - NULL, NULL, NULL, PAGE_SIZE-1, UMA_ZONE_NOFREE); + ptpgzone = uma_zcreate("PT ENTRY", PAGE_SIZE, NULL, pmap_ptpgzone_dtor, + NULL, NULL, PAGE_SIZE - 1, UMA_ZONE_NOFREE | UMA_ZONE_ZINIT); uma_zone_set_allocf(ptpgzone, pmap_ptpgzone_allocf); -#endif } /*************************************************** @@ -880,21 +873,10 @@ pmap_qremove(vm_offset_t va, int count) static int _pmap_unwire_pte_hold(pmap_t pmap, vm_page_t m) { - vm_offset_t pteva; /* * unmap the page table page */ - pteva = (vm_offset_t)pmap->pm_segtab[m->pindex]; - if (pteva >= VM_MIN_KERNEL_ADDRESS) { - pmap_kremove(pteva); - kmem_free(kernel_map, pteva, PAGE_SIZE); - } else { - KASSERT(MIPS_IS_KSEG0_ADDR(pteva), - ("_pmap_unwire_pte_hold: 0x%0lx is not in kseg0", - (long)pteva)); - } - pmap->pm_segtab[m->pindex] = 0; --pmap->pm_stats.resident_count; @@ -939,7 +921,7 @@ pmap_unuse_pt(pmap_t pmap, vm_offset_t v mpte = pmap->pm_ptphint; } else { pteva = *pmap_pde(pmap, va); - mpte = PHYS_TO_VM_PAGE(vtophys(pteva)); + mpte = PHYS_TO_VM_PAGE(MIPS_KSEG0_TO_PHYS(pteva)); pmap->pm_ptphint = mpte; } } @@ -964,12 +946,27 @@ pmap_pinit0(pmap_t pmap) bzero(&pmap->pm_stats, sizeof pmap->pm_stats); } -#ifdef HIGHMEM_SUPPORT +static void +pmap_ptpgzone_dtor(void *mem, int size, void *arg) +{ +#ifdef INVARIANTS + static char zeropage[PAGE_SIZE]; + + KASSERT(size == PAGE_SIZE, + ("pmap_ptpgzone_dtor: invalid size %d", size)); + KASSERT(bcmp(mem, zeropage, PAGE_SIZE) == 0, + ("pmap_ptpgzone_dtor: freeing a non-zeroed page")); +#endif +} + static void * pmap_ptpgzone_allocf(uma_zone_t zone, int bytes, u_int8_t *flags, int wait) { vm_page_t m; vm_paddr_t paddr; + + KASSERT(bytes == PAGE_SIZE, + ("pmap_ptpgzone_allocf: invalid allocation size %d", bytes)); *flags = UMA_SLAB_PRIV; m = vm_phys_alloc_contig(1, 0, MIPS_KSEG0_LARGEST_PHYS, @@ -1006,8 +1003,6 @@ pmap_alloc_pte_page(pmap_t pmap, unsigne paddr = MIPS_KSEG0_TO_PHYS(va); m = PHYS_TO_VM_PAGE(paddr); - if ((m->flags & PG_ZERO) == 0) - bzero(va, PAGE_SIZE); m->pindex = index; m->valid = VM_PAGE_BITS_ALL; m->wire_count = 1; @@ -1026,55 +1021,6 @@ pmap_release_pte_page(vm_page_t m) va = (void *)MIPS_PHYS_TO_KSEG0(paddr); uma_zfree(ptpgzone, va); } -#else -static vm_page_t -pmap_alloc_pte_page(pmap_t pmap, unsigned int index, int wait, vm_offset_t *vap) -{ - vm_offset_t va; - vm_page_t m; - int locked, req; - - locked = mtx_owned(&pmap->pm_mtx); - req = VM_ALLOC_WIRED | VM_ALLOC_NOOBJ; - if (wait & M_WAITOK) - req |= VM_ALLOC_NORMAL; - else - req |= VM_ALLOC_INTERRUPT; - - m = vm_page_alloc(NULL, index, req); - if (m == NULL) { - if (wait & M_WAITOK) { - if (locked) { - mtx_assert(&vm_page_queue_mtx, MA_OWNED); - PMAP_UNLOCK(pmap); - vm_page_unlock_queues(); - } - VM_WAIT; - if (locked) { - vm_page_lock_queues(); - PMAP_LOCK(pmap); - } - } - return NULL; - } - - va = MIPS_PHYS_TO_KSEG0(VM_PAGE_TO_PHYS(m)); - if ((m->flags & PG_ZERO) == 0) - bzero((void *)va, PAGE_SIZE); - else - vm_page_flag_clear(m, PG_ZERO); - - m->valid = VM_PAGE_BITS_ALL; - *vap = (vm_offset_t)va; - return (m); -} - -static void -pmap_release_pte_page(vm_page_t m) -{ - vm_page_free(m); -} -#endif /* * Initialize a preallocated and zeroed pmap structure, @@ -1178,7 +1124,7 @@ retry: (pmap->pm_ptphint->pindex == ptepindex)) { m = pmap->pm_ptphint; } else { - m = PHYS_TO_VM_PAGE(vtophys(pteva)); + m = PHYS_TO_VM_PAGE(MIPS_KSEG0_TO_PHYS(pteva)); pmap->pm_ptphint = m; } m->wire_count++; @@ -1226,10 +1172,7 @@ pmap_release(pmap_t pmap) pmap->pm_stats.resident_count)); ptdva = (vm_offset_t)pmap->pm_segtab; - ptdpg = PHYS_TO_VM_PAGE(vtophys(ptdva)); - - KASSERT(MIPS_IS_KSEG0_ADDR(ptdva), - ("pmap_release: 0x%0lx is not in kseg0", (long)ptdva)); + ptdpg = PHYS_TO_VM_PAGE(MIPS_KSEG0_TO_PHYS(ptdva)); ptdpg->wire_count--; atomic_subtract_int(&cnt.v_wire_count, 1); @@ -2023,7 +1966,8 @@ pmap_enter_quick_locked(pmap_t pmap, vm_ (pmap->pm_ptphint->pindex == ptepindex)) { mpte = pmap->pm_ptphint; } else { - mpte = PHYS_TO_VM_PAGE(vtophys(pteva)); + mpte = PHYS_TO_VM_PAGE( + MIPS_KSEG0_TO_PHYS(pteva)); pmap->pm_ptphint = mpte; } mpte->wire_count++;