From owner-svn-src-all@FreeBSD.ORG Sun Oct 13 00:08:08 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 49230AFD; Sun, 13 Oct 2013 00:08:08 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mho-02-ewr.mailhop.org (mho-02-ewr.mailhop.org [204.13.248.72]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 1A6D0278F; Sun, 13 Oct 2013 00:08:07 +0000 (UTC) Received: from c-24-8-230-52.hsd1.co.comcast.net ([24.8.230.52] helo=damnhippie.dyndns.org) by mho-02-ewr.mailhop.org with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1VV9E0-0005F2-Jt; Sun, 13 Oct 2013 00:08:00 +0000 Received: from [172.22.42.240] (revolution.hippie.lan [172.22.42.240]) by damnhippie.dyndns.org (8.14.3/8.14.3) with ESMTP id r9D07wEr023851; Sat, 12 Oct 2013 18:07:58 -0600 (MDT) (envelope-from ian@FreeBSD.org) X-Mail-Handler: Dyn Standard SMTP by Dyn X-Originating-IP: 24.8.230.52 X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/sendlabs/outbound_abuse.html for abuse reporting information) X-MHO-User: U2FsdGVkX18g6uhFlMrU7a/+DJp1z4D7 Subject: Re: svn commit: r256377 - in head: problems on ARM BEAGLEBONE From: Ian Lepore To: Mark Murray In-Reply-To: <201310121257.r9CCvvjO006546@svn.freebsd.org> References: <201310121257.r9CCvvjO006546@svn.freebsd.org> Content-Type: text/plain; charset="us-ascii" Date: Sat, 12 Oct 2013 18:07:58 -0600 Message-ID: <1381622878.42859.25.camel@revolution.hippie.lan> Mime-Version: 1.0 X-Mailer: Evolution 2.32.1 FreeBSD GNOME Team Port Content-Transfer-Encoding: 7bit Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org, freebsd-arm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 13 Oct 2013 00:08:08 -0000 On Sat, 2013-10-12 at 12:57 +0000, Mark Murray wrote: > Author: markm > Date: Sat Oct 12 12:57:57 2013 > New Revision: 256377 > URL: http://svnweb.freebsd.org/changeset/base/256377 > > Log: > Merge from project branch. Uninteresting commits are trimmed. > > [snip] > *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** I rebuilt my beaglebone sandbox today after syncing to the latest -current and this happened: FreeBSD 11.0-CURRENT #4 r256393: Sat Oct 12 17:05:43 MDT 2013 ilepore@revolution.hippie.lan:/local/build/staging/freebsd/bb/obj/arm.armv6/local/build/staging/freebsd/bb/src/sys/BB arm ... random device not loaded; using insecure entropy Falling back to random adaptor random: initialized ... Setting hostid: 0xdcf01d1d. Entropy harvesting:sysctl: unknown oid 'kern.random.sys.harvest.interrupt': No such file or directory interruptssysctl: unknown oid 'kern.random.sys.harvest.ethernet': No such file or directory ethernetsysctl: unknown oid 'kern.random.sys.harvest.point_to_point': No such file or directory point_to_pointsysctl: unknown oid 'kern.random.sys.harvest.swi': No such file or directory swi. Starting file system checks: mount_nfs: can't update /var/db/mounttab for 172.22.42.240:/bb Mounting local file systems:. Writing entropy file:random: dummy device blocking on read. If you remove "device random" from the config then it says only "random device not loaded; using insecure entropy" early in boot, and it doesn't block during rc processing. What's being used in that case, arc4random()? It looks like the cause of the problem is that both the dummy and the yarrow generators register, dummy first, and so it gets chosen even though yarrow is available. -- Ian From owner-svn-src-all@FreeBSD.ORG Sun Oct 13 00:09:48 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 2F73DC78; Sun, 13 Oct 2013 00:09:48 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mail0.glenbarber.us (mail0.glenbarber.us [IPv6:2607:fc50:1:2300:1001:1001:1001:face]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id DB4BB27A3; Sun, 13 Oct 2013 00:09:47 +0000 (UTC) Received: from glenbarber.us (c-71-224-221-174.hsd1.nj.comcast.net [71.224.221.174]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: gjb) by mail0.glenbarber.us (Postfix) with ESMTPSA id CA42CA393; Sun, 13 Oct 2013 00:09:43 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.8.3 mail0.glenbarber.us CA42CA393 Authentication-Results: mail0.glenbarber.us; dkim=none reason="no signature"; dkim-adsp=none Date: Sat, 12 Oct 2013 20:09:42 -0400 From: Glen Barber To: Ian Lepore Subject: Re: svn commit: r256377 - in head: problems on ARM BEAGLEBONE Message-ID: <20131013000942.GA44375@glenbarber.us> References: <201310121257.r9CCvvjO006546@svn.freebsd.org> <1381622878.42859.25.camel@revolution.hippie.lan> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="Mfj4UzsZ9EA9tSs4" Content-Disposition: inline In-Reply-To: <1381622878.42859.25.camel@revolution.hippie.lan> X-Operating-System: FreeBSD 10.0-ALPHA4 amd64 User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org, Mark Murray , freebsd-arm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 13 Oct 2013 00:09:48 -0000 --Mfj4UzsZ9EA9tSs4 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, Oct 12, 2013 at 06:07:58PM -0600, Ian Lepore wrote: > On Sat, 2013-10-12 at 12:57 +0000, Mark Murray wrote: > > Author: markm > > Date: Sat Oct 12 12:57:57 2013 > > New Revision: 256377 > > URL: http://svnweb.freebsd.org/changeset/base/256377 > >=20 > > Log: > > Merge from project branch. Uninteresting commits are trimmed. > > =20 > > [snip] > > *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** >=20 > I rebuilt my beaglebone sandbox today after syncing to the latest > -current and this happened: >=20 >=20 > FreeBSD 11.0-CURRENT #4 r256393: Sat Oct 12 17:05:43 MDT 2013 > ilepore@revolution.hippie.lan:/local/build/staging/freebsd/bb/obj/arm.ar= mv6/local/build/staging/freebsd/bb/src/sys/BB arm > ... > random device not loaded; using insecure entropy > Falling back to random adaptor > random: initialized > ... > Setting hostid: 0xdcf01d1d. > Entropy harvesting:sysctl: unknown oid 'kern.random.sys.harvest.interrup= t': No such file or directory > interruptssysctl: unknown oid 'kern.random.sys.harvest.ethernet': No su= ch file or directory > ethernetsysctl: unknown oid 'kern.random.sys.harvest.point_to_point': N= o such file or directory > point_to_pointsysctl: unknown oid 'kern.random.sys.harvest.swi': No suc= h file or directory > swi. > Starting file system checks: > mount_nfs: can't update /var/db/mounttab for 172.22.42.240:/bb > Mounting local file systems:. > Writing entropy file:random: dummy device blocking on read. >=20 >=20 > If you remove "device random" from the config then it says only "random > device not loaded; using insecure entropy" early in boot, and it doesn't > block during rc processing. What's being used in that case, > arc4random()? >=20 > It looks like the cause of the problem is that both the dummy and the > yarrow generators register, dummy first, and so it gets chosen even > though yarrow is available. >=20 >=20 This is being fixed right now, please standby for the relevant commits to hit the tree. Glen --Mfj4UzsZ9EA9tSs4 Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (FreeBSD) iQIcBAEBCAAGBQJSWeTGAAoJELls3eqvi17QdZkP/jflvlqKlssQyHTucus4NI24 Q8xWlqmrWHfKXo7mYrVhtCswsn+QA1iM7NuEPbkMoAmDK3jo2DXl5W4jBRsBZm3T mmTRhLpYrgN/JRx5zeED8WGyjHo77/XD6j77L7zC/mPnaiZ21fOoRU3x3RnUrCYV s7imHjS1iF+CgpWgL06iKq4jrPqbTvjr//AiR+t5+00IdB+PvxfylCJlc5drWrgw LMiYalkE1hAd4SxsNNLwbpPN7dug7F9AAM1MQZmXO3eSv2OE1iH8RvqABWCYD0gx uUmvI9i+HPqkvMtc4T/SKjNkqDkdsLUIRfjXYFnN7JwtyTSimOMI23l0rosBb+k/ c7H/HDWK5Et1VWTKUPYLyPVwT5LwO18068c9j7Svc2tWFGhTEADT1j+8GjKB0FJd mBAvZRVvJaVrCMIvLQiYimACPjPICT8XjEvL62kD+Vc0M/pWYUZRPdr17/ZK4Z7m eS6FcL8p/v6HxM9LOnhVvZwNLY1QyFiS2HWm+pEkmjbqwVIzJnChhhPfSEze7ZVt +xbiR0IMCRmLQaSplZjorba/nnL/txMFX0+cyz1glHH91IgXaJZarTxd6boTgZf6 uR/5/65IZQ9i4LiAZ1Bi7KlvwwAMcmriD5Djonfh+IrnUhhJ/xl967Xz0ieH8M19 EsgfMZh6AajnjtJ9mwao =PaTb -----END PGP SIGNATURE----- --Mfj4UzsZ9EA9tSs4-- From owner-svn-src-all@FreeBSD.ORG Sun Oct 13 00:10:49 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 4E27FDF1; Sun, 13 Oct 2013 00:10:49 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 3B8E127D3; Sun, 13 Oct 2013 00:10:49 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9D0Anf3059801; Sun, 13 Oct 2013 00:10:49 GMT (envelope-from markm@svn.freebsd.org) Received: (from markm@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9D0Ampp059797; Sun, 13 Oct 2013 00:10:48 GMT (envelope-from markm@svn.freebsd.org) Message-Id: <201310130010.r9D0Ampp059797@svn.freebsd.org> From: Mark Murray Date: Sun, 13 Oct 2013 00:10:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256412 - head/sys/dev/random X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 13 Oct 2013 00:10:49 -0000 Author: markm Date: Sun Oct 13 00:10:48 2013 New Revision: 256412 URL: http://svnweb.freebsd.org/changeset/base/256412 Log: There is an issue (not seen in our testing) where "yarrow" and "dummy" switch priorities, and the users are left with no usable /dev/random. The fix assigns priories to these and gives the users what they want. The override tuneable has a stupid name (blame me!) and this fixes it to be something that 'sysctl kern.random' emits and is the right thing to set. Approved by: re (gjb) Approved by: secteam (cperciva) Modified: head/sys/dev/random/dummy_rng.c head/sys/dev/random/random_adaptors.c head/sys/dev/random/randomdev.h head/sys/dev/random/randomdev_soft.c Directory Properties: head/sys/ (props changed) Modified: head/sys/dev/random/dummy_rng.c ============================================================================== --- head/sys/dev/random/dummy_rng.c Sat Oct 12 23:51:00 2013 (r256411) +++ head/sys/dev/random/dummy_rng.c Sun Oct 13 00:10:48 2013 (r256412) @@ -102,6 +102,7 @@ struct random_adaptor dummy_random = { .read = (random_read_func_t *)random_null_func, .reseed = (random_reseed_func_t *)random_null_func, .seeded = 0, /* This device can never be seeded */ + .priority = 1, /* Bottom priority, so goes to last position */ }; static int Modified: head/sys/dev/random/random_adaptors.c ============================================================================== --- head/sys/dev/random/random_adaptors.c Sat Oct 12 23:51:00 2013 (r256411) +++ head/sys/dev/random/random_adaptors.c Sun Oct 13 00:10:48 2013 (r256412) @@ -104,12 +104,13 @@ void random_adaptor_choose(struct random_adaptor **adaptor) { char rngs[128], *token, *cp; - struct random_adaptors *rpp; + struct random_adaptors *rppi, *ramax; + unsigned primax; KASSERT(adaptor != NULL, ("pre-conditions failed")); *adaptor = NULL; - if (TUNABLE_STR_FETCH("rngs_want", rngs, sizeof(rngs))) { + if (TUNABLE_STR_FETCH("kern.random.active_adaptor", rngs, sizeof(rngs))) { cp = rngs; while ((token = strsep(&cp, ",")) != NULL) @@ -120,16 +121,23 @@ random_adaptor_choose(struct random_adap " skipping\n", token); } + primax = 0U; if (*adaptor == NULL) { /* - * Fallback to the first thing that's on the list of - * available RNGs. + * Fall back to the highest priority item on the available + * RNG list. */ sx_slock(&adaptors_lock); - rpp = LIST_FIRST(&adaptors); - if (rpp != NULL) - *adaptor = rpp->rsp; + ramax = NULL; + LIST_FOREACH(rppi, &adaptors, entries) { + if (rppi->rsp->priority >= primax) { + ramax = rppi; + primax = rppi->rsp->priority; + } + } + if (ramax != NULL) + *adaptor = ramax->rsp; sx_sunlock(&adaptors_lock); Modified: head/sys/dev/random/randomdev.h ============================================================================== --- head/sys/dev/random/randomdev.h Sat Oct 12 23:51:00 2013 (r256411) +++ head/sys/dev/random/randomdev.h Sun Oct 13 00:10:48 2013 (r256412) @@ -44,6 +44,7 @@ struct random_adaptor { struct selinfo rsel; const char *ident; int seeded; + unsigned priority; random_init_func_t *init; random_deinit_func_t *deinit; random_block_func_t *block; Modified: head/sys/dev/random/randomdev_soft.c ============================================================================== --- head/sys/dev/random/randomdev_soft.c Sat Oct 12 23:51:00 2013 (r256411) +++ head/sys/dev/random/randomdev_soft.c Sun Oct 13 00:10:48 2013 (r256412) @@ -84,6 +84,7 @@ static struct random_adaptor random_cont .poll = randomdev_poll, .reseed = randomdev_flush_reseed, .seeded = 0, /* This will be seeded during entropy processing */ + .priority = 90, /* High priority, so top of the list. Fortuna may still win. */ }; #define RANDOM_MODULE_NAME yarrow #define RANDOM_CSPRNG_NAME "yarrow" @@ -99,6 +100,7 @@ static struct random_adaptor random_cont .poll = randomdev_poll, .reseed = randomdev_flush_reseed, .seeded = 0, /* This will be excplicitly seeded at startup when secured */ + .priority = 100, /* High priority, so top of the list. Beat Yarrow. */ }; #define RANDOM_MODULE_NAME fortuna #define RANDOM_CSPRNG_NAME "fortuna" From owner-svn-src-all@FreeBSD.ORG Sun Oct 13 00:13:58 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 396D37C; Sun, 13 Oct 2013 00:13:58 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 2602227E3; Sun, 13 Oct 2013 00:13:58 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9D0DwDQ060771; Sun, 13 Oct 2013 00:13:58 GMT (envelope-from markm@svn.freebsd.org) Received: (from markm@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9D0DvpN060763; Sun, 13 Oct 2013 00:13:57 GMT (envelope-from markm@svn.freebsd.org) Message-Id: <201310130013.r9D0DvpN060763@svn.freebsd.org> From: Mark Murray Date: Sun, 13 Oct 2013 00:13:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r256414 - stable/10/sys/dev/random X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 13 Oct 2013 00:13:58 -0000 Author: markm Date: Sun Oct 13 00:13:57 2013 New Revision: 256414 URL: http://svnweb.freebsd.org/changeset/base/256414 Log: MFC: There is an issue (not seen in our testing) where "yarrow" and "dummy" switch priorities, and the users are left with no usable /dev/random. The fix assigns priories to these and gives the users what they want. The override tuneable has a stupid name (blame me!) and this fixes it to be something that 'sysctl kern.random' emits and is the right thing to set. Approved by: re (gjb) Approved by: secteam (cperciva) Modified: stable/10/sys/dev/random/dummy_rng.c stable/10/sys/dev/random/random_adaptors.c stable/10/sys/dev/random/randomdev.h stable/10/sys/dev/random/randomdev_soft.c Modified: stable/10/sys/dev/random/dummy_rng.c ============================================================================== --- stable/10/sys/dev/random/dummy_rng.c Sun Oct 13 00:13:29 2013 (r256413) +++ stable/10/sys/dev/random/dummy_rng.c Sun Oct 13 00:13:57 2013 (r256414) @@ -102,6 +102,7 @@ struct random_adaptor dummy_random = { .read = (random_read_func_t *)random_null_func, .reseed = (random_reseed_func_t *)random_null_func, .seeded = 0, /* This device can never be seeded */ + .priority = 1, /* Bottom priority, so goes to last position */ }; static int Modified: stable/10/sys/dev/random/random_adaptors.c ============================================================================== --- stable/10/sys/dev/random/random_adaptors.c Sun Oct 13 00:13:29 2013 (r256413) +++ stable/10/sys/dev/random/random_adaptors.c Sun Oct 13 00:13:57 2013 (r256414) @@ -104,12 +104,13 @@ void random_adaptor_choose(struct random_adaptor **adaptor) { char rngs[128], *token, *cp; - struct random_adaptors *rpp; + struct random_adaptors *rppi, *ramax; + unsigned primax; KASSERT(adaptor != NULL, ("pre-conditions failed")); *adaptor = NULL; - if (TUNABLE_STR_FETCH("rngs_want", rngs, sizeof(rngs))) { + if (TUNABLE_STR_FETCH("kern.random.active_adaptor", rngs, sizeof(rngs))) { cp = rngs; while ((token = strsep(&cp, ",")) != NULL) @@ -120,16 +121,23 @@ random_adaptor_choose(struct random_adap " skipping\n", token); } + primax = 0U; if (*adaptor == NULL) { /* - * Fallback to the first thing that's on the list of - * available RNGs. + * Fall back to the highest priority item on the available + * RNG list. */ sx_slock(&adaptors_lock); - rpp = LIST_FIRST(&adaptors); - if (rpp != NULL) - *adaptor = rpp->rsp; + ramax = NULL; + LIST_FOREACH(rppi, &adaptors, entries) { + if (rppi->rsp->priority >= primax) { + ramax = rppi; + primax = rppi->rsp->priority; + } + } + if (ramax != NULL) + *adaptor = ramax->rsp; sx_sunlock(&adaptors_lock); Modified: stable/10/sys/dev/random/randomdev.h ============================================================================== --- stable/10/sys/dev/random/randomdev.h Sun Oct 13 00:13:29 2013 (r256413) +++ stable/10/sys/dev/random/randomdev.h Sun Oct 13 00:13:57 2013 (r256414) @@ -44,6 +44,7 @@ struct random_adaptor { struct selinfo rsel; const char *ident; int seeded; + unsigned priority; random_init_func_t *init; random_deinit_func_t *deinit; random_block_func_t *block; Modified: stable/10/sys/dev/random/randomdev_soft.c ============================================================================== --- stable/10/sys/dev/random/randomdev_soft.c Sun Oct 13 00:13:29 2013 (r256413) +++ stable/10/sys/dev/random/randomdev_soft.c Sun Oct 13 00:13:57 2013 (r256414) @@ -84,6 +84,7 @@ static struct random_adaptor random_cont .poll = randomdev_poll, .reseed = randomdev_flush_reseed, .seeded = 0, /* This will be seeded during entropy processing */ + .priority = 90, /* High priority, so top of the list. Fortuna may still win. */ }; #define RANDOM_MODULE_NAME yarrow #define RANDOM_CSPRNG_NAME "yarrow" @@ -99,6 +100,7 @@ static struct random_adaptor random_cont .poll = randomdev_poll, .reseed = randomdev_flush_reseed, .seeded = 0, /* This will be excplicitly seeded at startup when secured */ + .priority = 100, /* High priority, so top of the list. Beat Yarrow. */ }; #define RANDOM_MODULE_NAME fortuna #define RANDOM_CSPRNG_NAME "fortuna" From owner-svn-src-all@FreeBSD.ORG Sun Oct 13 00:24:45 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 8555A787; Sun, 13 Oct 2013 00:24:45 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 58AE6283F; Sun, 13 Oct 2013 00:24:45 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9D0OjZw066894; Sun, 13 Oct 2013 00:24:45 GMT (envelope-from gjb@svn.freebsd.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9D0OjS9066892; Sun, 13 Oct 2013 00:24:45 GMT (envelope-from gjb@svn.freebsd.org) Message-Id: <201310130024.r9D0OjS9066892@svn.freebsd.org> From: Glen Barber Date: Sun, 13 Oct 2013 00:24:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r256420 - stable/10/sys/conf X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 13 Oct 2013 00:24:45 -0000 Author: gjb Date: Sun Oct 13 00:24:44 2013 New Revision: 256420 URL: http://svnweb.freebsd.org/changeset/base/256420 Log: Forced commit to mark the real -BETA1 point. Approved by: re (implicit) Modified: stable/10/sys/conf/newvers.sh Modified: stable/10/sys/conf/newvers.sh ============================================================================== From owner-svn-src-all@FreeBSD.ORG Sun Oct 13 00:29:24 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 2AE65A69; Sun, 13 Oct 2013 00:29:24 +0000 (UTC) (envelope-from mark@grondar.org) Received: from gromit.grondar.org (grandfather.grondar.org [IPv6:2a01:348:0:15:5d59:5c20:0:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E2356284A; Sun, 13 Oct 2013 00:29:23 +0000 (UTC) Received: from graveyard.grondar.org ([88.96.155.33] helo=gronkulator.grondar.org) by gromit.grondar.org with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.80.1 (FreeBSD)) (envelope-from ) id 1VV9Ye-000Jep-QV; Sun, 13 Oct 2013 01:29:22 +0100 Subject: Re: svn commit: r256377 - in head: problems on ARM BEAGLEBONE Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\)) Content-Type: multipart/signed; boundary="Apple-Mail=_F0183960-5CC4-41EC-8DD7-4B7FF90BFA80"; protocol="application/pgp-signature"; micalg=pgp-sha512 From: Mark R V Murray In-Reply-To: <1381622878.42859.25.camel@revolution.hippie.lan> Date: Sun, 13 Oct 2013 01:29:19 +0100 Message-Id: <502DD016-BBAD-419B-88CD-A6C2B378EEA2@grondar.org> References: <201310121257.r9CCvvjO006546@svn.freebsd.org> <1381622878.42859.25.camel@revolution.hippie.lan> To: Ian Lepore X-Mailer: Apple Mail (2.1510) X-SA-Score: -2.2 Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" , freebsd-arm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 13 Oct 2013 00:29:24 -0000 --Apple-Mail=_F0183960-5CC4-41EC-8DD7-4B7FF90BFA80 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii On 13 Oct 2013, at 01:07, Ian Lepore wrote: > It looks like the cause of the problem is that both the dummy and the > yarrow generators register, dummy first, and so it gets chosen even > though yarrow is available. Correct diagnosis! This is now fixed; sorry for the hassle. M -- Mark R V Murray --Apple-Mail=_F0183960-5CC4-41EC-8DD7-4B7FF90BFA80 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.20 (Darwin) Comment: GPGTools - http://gpgtools.org iQCVAwUBUlnpX958vKOKE6LNAQpl3QP+MUSepYziDppV/SxElggNLJofc/rWOU6a 2daM7BqmbqXC7JY+UihnmLW/64pktyaB3E2INEdCCM7mw9yuleYODaFk9krAbMOc vYlN1x9sx0m8KWOxnPfIXrEKpjLCcduaK41fptuYb08B8KgFRSa7Cr8Qkw6iKPff pvIBB+/6jJk= =+cMu -----END PGP SIGNATURE----- --Apple-Mail=_F0183960-5CC4-41EC-8DD7-4B7FF90BFA80-- From owner-svn-src-all@FreeBSD.ORG Sun Oct 13 00:55:24 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 49F38D2D; Sun, 13 Oct 2013 00:55:24 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mho-01-ewr.mailhop.org (mho-03-ewr.mailhop.org [204.13.248.66]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 1B8A62923; Sun, 13 Oct 2013 00:55:23 +0000 (UTC) Received: from c-24-8-230-52.hsd1.co.comcast.net ([24.8.230.52] helo=damnhippie.dyndns.org) by mho-01-ewr.mailhop.org with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1VV9xk-0003Fc-NY; Sun, 13 Oct 2013 00:55:16 +0000 Received: from [172.22.42.240] (revolution.hippie.lan [172.22.42.240]) by damnhippie.dyndns.org (8.14.3/8.14.3) with ESMTP id r9D0tDOI023915; Sat, 12 Oct 2013 18:55:13 -0600 (MDT) (envelope-from ian@FreeBSD.org) X-Mail-Handler: Dyn Standard SMTP by Dyn X-Originating-IP: 24.8.230.52 X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/sendlabs/outbound_abuse.html for abuse reporting information) X-MHO-User: U2FsdGVkX19rbPwhiIvmG2Kwh4j+s36K Subject: Re: svn commit: r256377 - in head: problems on ARM BEAGLEBONE From: Ian Lepore To: Mark R V Murray In-Reply-To: <502DD016-BBAD-419B-88CD-A6C2B378EEA2@grondar.org> References: <201310121257.r9CCvvjO006546@svn.freebsd.org> <1381622878.42859.25.camel@revolution.hippie.lan> <502DD016-BBAD-419B-88CD-A6C2B378EEA2@grondar.org> Content-Type: text/plain; charset="us-ascii" Date: Sat, 12 Oct 2013 18:55:13 -0600 Message-ID: <1381625713.42859.26.camel@revolution.hippie.lan> Mime-Version: 1.0 X-Mailer: Evolution 2.32.1 FreeBSD GNOME Team Port Content-Transfer-Encoding: 7bit Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" , freebsd-arm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 13 Oct 2013 00:55:24 -0000 On Sun, 2013-10-13 at 01:29 +0100, Mark R V Murray wrote: > On 13 Oct 2013, at 01:07, Ian Lepore wrote: > > It looks like the cause of the problem is that both the dummy and the > > yarrow generators register, dummy first, and so it gets chosen even > > though yarrow is available. > > Correct diagnosis! > > This is now fixed; sorry for the hassle. > > M Yep, I just updated and rebuilt, it's all better now, thanks! -- Ian From owner-svn-src-all@FreeBSD.ORG Sun Oct 13 02:34:21 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 1A839AE3; Sun, 13 Oct 2013 02:34:21 +0000 (UTC) (envelope-from gibbs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E1DA02C31; Sun, 13 Oct 2013 02:34:20 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9D2YKQi034281; Sun, 13 Oct 2013 02:34:20 GMT (envelope-from gibbs@svn.freebsd.org) Received: (from gibbs@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9D2YKs2034280; Sun, 13 Oct 2013 02:34:20 GMT (envelope-from gibbs@svn.freebsd.org) Message-Id: <201310130234.r9D2YKs2034280@svn.freebsd.org> From: "Justin T. Gibbs" Date: Sun, 13 Oct 2013 02:34:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256423 - head/sys/dev/xen/blkfront X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 13 Oct 2013 02:34:21 -0000 Author: gibbs Date: Sun Oct 13 02:34:20 2013 New Revision: 256423 URL: http://svnweb.freebsd.org/changeset/base/256423 Log: Allow FreeBSD to be booted from CDROM media on XenServer 6.2 and prior releases. Submitted by: Roger Pau Monné Sponsored by: Citrix Systems R&D Reviewed by: gibbs Approved by: re (gjb) sys/dev/xen/blkfront/blkfront.c: On XenServer versions up to an including 6.2, paravirtualized CDROM support is broken. When running in an HVM domain, ignore paravirtualized instances of CDROM media, and instead rely on native drivers attaching to emulated hardware. This functions correctly on all currently known Xen based platforms. Modified: head/sys/dev/xen/blkfront/blkfront.c Modified: head/sys/dev/xen/blkfront/blkfront.c ============================================================================== --- head/sys/dev/xen/blkfront/blkfront.c Sun Oct 13 00:29:14 2013 (r256422) +++ head/sys/dev/xen/blkfront/blkfront.c Sun Oct 13 02:34:20 2013 (r256423) @@ -1381,14 +1381,42 @@ xbd_closing(device_t dev) static int xbd_probe(device_t dev) { + if (strcmp(xenbus_get_type(dev), "vbd") != 0) + return (ENXIO); - if (!strcmp(xenbus_get_type(dev), "vbd")) { - device_set_desc(dev, "Virtual Block Device"); - device_quiet(dev); - return (0); + if (xen_hvm_domain()) { + int error; + char *type; + + /* + * When running in an HVM domain, IDE disk emulation is + * disabled early in boot so that native drivers will + * not see emulated hardware. However, CDROM device + * emulation cannot be disabled. + * + * Through use of FreeBSD's vm_guest and xen_hvm_domain() + * APIs, we could modify the native CDROM driver to fail its + * probe when running under Xen. Unfortunatlely, the PV + * CDROM support in XenServer (up through at least version + * 6.2) isn't functional, so we instead rely on the emulated + * CDROM instance, and fail to attach the PV one here in + * the blkfront driver. + */ + error = xs_read(XST_NIL, xenbus_get_node(dev), + "device-type", NULL, (void **) &type); + if (error) + return (ENXIO); + + if (strncmp(type, "cdrom", 5) == 0) { + free(type, M_XENSTORE); + return (ENXIO); + } + free(type, M_XENSTORE); } - return (ENXIO); + device_set_desc(dev, "Virtual Block Device"); + device_quiet(dev); + return (0); } /* From owner-svn-src-all@FreeBSD.ORG Sun Oct 13 02:41:31 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 76B13D4F; Sun, 13 Oct 2013 02:41:31 +0000 (UTC) (envelope-from gibbs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 54F032C77; Sun, 13 Oct 2013 02:41:31 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9D2fVFR038239; Sun, 13 Oct 2013 02:41:31 GMT (envelope-from gibbs@svn.freebsd.org) Received: (from gibbs@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9D2fUS7038233; Sun, 13 Oct 2013 02:41:30 GMT (envelope-from gibbs@svn.freebsd.org) Message-Id: <201310130241.r9D2fUS7038233@svn.freebsd.org> From: "Justin T. Gibbs" Date: Sun, 13 Oct 2013 02:41:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256425 - in head/sys: dev/hyperv/stordisengage dev/hyperv/vmbus sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 13 Oct 2013 02:41:31 -0000 Author: gibbs Date: Sun Oct 13 02:41:30 2013 New Revision: 256425 URL: http://svnweb.freebsd.org/changeset/base/256425 Log: Centralize the detection logic for the Hyper-V hypervisor. Submitted by: Roger Pau Monné Sponsored by: Citrix Systems R&D Reviewed by: gibbs, grehan Approved by: re (gjb) sys/sys/systm.h: * Add a new VM_GUEST type, VM_GUEST_HV (HyperV guest). sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c: sys/dev/hyperv/vmbus/hv_hv.c: sys/dev/hyperv/stordisengage/hv_ata_pci_disengage.c: * Set vm_guest to VM_GUEST_HV and use that on other HyperV related devices instead of cloning the cpuid hypervisor check. * Cleanup the vmbus_identify function. Modified: head/sys/dev/hyperv/stordisengage/hv_ata_pci_disengage.c head/sys/dev/hyperv/vmbus/hv_hv.c head/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c head/sys/sys/systm.h Modified: head/sys/dev/hyperv/stordisengage/hv_ata_pci_disengage.c ============================================================================== --- head/sys/dev/hyperv/stordisengage/hv_ata_pci_disengage.c Sun Oct 13 02:35:19 2013 (r256424) +++ head/sys/dev/hyperv/stordisengage/hv_ata_pci_disengage.c Sun Oct 13 02:41:30 2013 (r256425) @@ -75,17 +75,11 @@ __FBSDID("$FreeBSD$"); #include #include -#define HV_X64_MSR_GUEST_OS_ID 0x40000000 -#define HV_X64_CPUID_MIN 0x40000005 -#define HV_X64_CPUID_MAX 0x4000ffff - /* prototypes */ static int hv_ata_pci_probe(device_t dev); static int hv_ata_pci_attach(device_t dev); static int hv_ata_pci_detach(device_t dev); -static int hv_check_for_hyper_v(void); - /* * generic PCI ATA device probe */ @@ -100,7 +94,7 @@ hv_ata_pci_probe(device_t dev) /* * Don't probe if not running in a Hyper-V environment */ - if (!hv_check_for_hyper_v()) + if (vm_guest != VM_GUEST_HV) return (ENXIO); if (device_get_unit(parent) != 0 || device_get_ivars(dev) != 0) @@ -139,33 +133,6 @@ hv_ata_pci_detach(device_t dev) return (0); } -/** -* Detect Hyper-V and enable fast IDE -* via enlighted storage driver -*/ -static int -hv_check_for_hyper_v(void) -{ - u_int regs[4]; - int hyper_v_detected; - - hyper_v_detected = 0; - do_cpuid(1, regs); - if (regs[2] & 0x80000000) { - /* - * if(a hypervisor is detected) - * make sure this really is Hyper-V - */ - do_cpuid(HV_X64_MSR_GUEST_OS_ID, regs); - hyper_v_detected = - regs[0] >= HV_X64_CPUID_MIN && - regs[0] <= HV_X64_CPUID_MAX && - !memcmp("Microsoft Hv", ®s[1], 12); - } - - return (hyper_v_detected); -} - static device_method_t hv_ata_pci_methods[] = { /* device interface */ DEVMETHOD(device_probe, hv_ata_pci_probe), Modified: head/sys/dev/hyperv/vmbus/hv_hv.c ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_hv.c Sun Oct 13 02:35:19 2013 (r256424) +++ head/sys/dev/hyperv/vmbus/hv_hv.c Sun Oct 13 02:41:30 2013 (r256425) @@ -218,7 +218,7 @@ hv_vmbus_init(void) 0, sizeof(hv_vmbus_handle) * MAXCPU); - if (!hv_vmbus_query_hypervisor_presence()) + if (vm_guest != VM_GUEST_HV) goto cleanup; max_leaf = hv_vmbus_get_hypervisor_version(); Modified: head/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c ============================================================================== --- head/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c Sun Oct 13 02:35:19 2013 (r256424) +++ head/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c Sun Oct 13 02:41:30 2013 (r256425) @@ -295,11 +295,15 @@ hv_vmbus_child_device_unregister(struct return(ret); } -static void vmbus_identify(driver_t *driver, device_t parent) { +static void +vmbus_identify(driver_t *driver, device_t parent) +{ + if (!hv_vmbus_query_hypervisor_presence()) + return; + + vm_guest = VM_GUEST_HV; + BUS_ADD_CHILD(parent, 0, "vmbus", 0); - if (device_find_child(parent, "vmbus", 0) == NULL) { - BUS_ADD_CHILD(parent, 0, "vmbus", 0); - } } static int @@ -307,9 +311,6 @@ vmbus_probe(device_t dev) { if(bootverbose) device_printf(dev, "VMBUS: probe\n"); - if (!hv_vmbus_query_hypervisor_presence()) - return (ENXIO); - device_set_desc(dev, "Vmbus Devices"); return (0); @@ -491,10 +492,13 @@ vmbus_attach(device_t dev) static void vmbus_init(void) { + if (vm_guest != VM_GUEST_HV) + return; + /* * If the system has already booted and thread - * scheduling is possible indicated by the global - * cold set to zero, we just call the driver + * scheduling is possible, as indicated by the + * global cold set to zero, we just call the driver * initialization directly. */ if (!cold) Modified: head/sys/sys/systm.h ============================================================================== --- head/sys/sys/systm.h Sun Oct 13 02:35:19 2013 (r256424) +++ head/sys/sys/systm.h Sun Oct 13 02:41:30 2013 (r256425) @@ -71,7 +71,7 @@ extern int vm_guest; /* Running as virt * and/or add to the VM_GUEST_VM type if specific VM functionality is * ever implemented (e.g. vendor-specific paravirtualization features). */ -enum VM_GUEST { VM_GUEST_NO = 0, VM_GUEST_VM, VM_GUEST_XEN }; +enum VM_GUEST { VM_GUEST_NO = 0, VM_GUEST_VM, VM_GUEST_XEN, VM_GUEST_HV }; #if defined(WITNESS) || defined(INVARIANTS) void kassert_panic(const char *fmt, ...) __printflike(1, 2); From owner-svn-src-all@FreeBSD.ORG Sun Oct 13 07:41:16 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 07A3E723; Sun, 13 Oct 2013 07:41:16 +0000 (UTC) (envelope-from nwhitehorn@anacreon.physics.wisc.edu) Received: from anacreon.physics.wisc.edu (unknown [IPv6:2607:f388:101c:0:216:cbff:fe39:3fae]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id CF1B12742; Sun, 13 Oct 2013 07:41:14 +0000 (UTC) Received: from anacreon.physics.wisc.edu (localhost [127.0.0.1]) by anacreon.physics.wisc.edu (8.14.7/8.14.7) with ESMTP id r9D7fB4m033822; Sun, 13 Oct 2013 02:41:11 -0500 (CDT) (envelope-from nwhitehorn@anacreon.physics.wisc.edu) Received: from localhost (nwhitehorn@localhost) by anacreon.physics.wisc.edu (8.14.7/8.14.7/Submit) with ESMTP id r9D7fA9l033819; Sun, 13 Oct 2013 02:41:10 -0500 (CDT) (envelope-from nwhitehorn@anacreon.physics.wisc.edu) Date: Sun, 13 Oct 2013 02:41:10 -0500 (CDT) From: Nathan Whitehorn To: Devin Teske Subject: Re: svn commit: r256343 - in head/usr.sbin/bsdinstall: . scripts In-Reply-To: <13CA24D6AB415D428143D44749F57D720FC5BB95@LTCFISWMSGMB21.FNFIS.com> Message-ID: References: <201310112041.r9BKfZeT002056@svn.freebsd.org> <5258F9B3.7030101@freebsd.org> <13CA24D6AB415D428143D44749F57D720FC5BB95@LTCFISWMSGMB21.FNFIS.com> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) 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" , Nathan Whitehorn , "Teske, Devin" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 13 Oct 2013 07:41:16 -0000 On Sat, 12 Oct 2013, Teske, Devin wrote: > > On Oct 12, 2013, at 12:26 AM, Nathan Whitehorn wrote: > >> On 10/11/13 22:41, Devin Teske wrote: >>> Author: dteske >>> Date: Fri Oct 11 20:41:35 2013 >>> New Revision: 256343 >>> URL: https://urldefense.proofpoint.com/v1/url?u=http://svnweb.freebsd.org/changeset/base/256343&k=%2FbkpAUdJWZuiTILCq%2FFnQg%3D%3D%0A&r=Mrjs6vR4%2Faj2Ns9%2FssHJjg%3D%3D%0A&m=LDzuPpXPP4D5BzfISZjw%2BXitYn4aKVzfXzcrmMNFo2U%3D%0A&s=3d0963d9c497f7bad0918888032ca62844580612dc48ab3a8a6768fe640c365b >>> >>> Log: >>> Add zfsboot module as an option for automatic configuration. Default is >>> to run interactively but it can be scripted too (optinally completely >>> non-interactive). Currently supports GELI and all ZFS vdev types. Also >>> performs validation on selections/settings providing error messages if >>> necessary, explaining (in plain language) what the issue is. Currently >>> the auto partitioning of naked disks only supports GPT and MBR (VTOC8 >>> pending for sparc64), so is only available for i386/amd64 install. >>> >>> Submitted by: Allan Jude , myself >>> Reviewed by: Allan Jude >>> Approved by: re (glebius) >> >> Hi Devin -- >> >> As was discussed on the mailing list, this patch still has some issues >> that need to be resolved, > > Can you kindly provide links? I'm crawling through the mailing lists and > not finding anything for the October, (current, stable, sysinstall, ... ?? others?) > > Do I need to be looking back in September? I wouldn't think so, because that > bit wasn't even in our development tree until October 1st: This was discussion on freebsd-current from yesterday and the day before. > http://druidbsd.cvs.sf.net/viewvc/druidbsd/bsdinstall_zfs/usr.sbin%3A%3Absdconfig%3A%3Ashare%3A%3Adevice.subr.patch?revision=1.1&view=markup > > So there couldn't have been any discussion on it before then. So I'm just not > able to find the mailing lists where all the action is that they're discussing it. > Would be nice to find where the action is, so I could participate. > > >> for example the use of camcontrol >> unconditionally even when the disks may not be CAM > > Allan Adds: > 9.2 should have all disks listed in camcontrol, so it shouldn't be an issue No it shouldn't. Not all disks are interfaced to CAM. MFI comes to mind, nvme, VM block devices, SD cards. There are many other examples. Just because you don't have them does not justify a phenomenological approach here. > And: > I think the only systems without cam based disks are old 8.x - we're only targeting 10 anyway. Not true at all. > I tend to agree with those statements. > > >> and destruction of >> existing sub-partitioning for MBR disks. > > I think we both (Allan and I) actually responded directly to you on this one. > > We have code that handles that. It's in there. To me, yes, but I was wrong in my initial comment as pointed out by some others. In particular, you need to run gpart -F destroy recursively on the disk instead of just on the root node. There were several other issues and bugs mentioned in people's cursory review of the patch. I never dreamed you would then just commit it. I really really don't want to have to subject installer changes to explicit approval requirements, but *please* request review of non-trivial changes before commits, especially to the disk partitioning code, and especially again before insta-MFCing them to a stable branch right before a release. It is much, much better than having to do this after the fact as we are doing now. -Nathan From owner-svn-src-all@FreeBSD.ORG Sun Oct 13 07:48:36 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 9D0E9998; Sun, 13 Oct 2013 07:48:36 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id F09972779; Sun, 13 Oct 2013 07:48:35 +0000 (UTC) Received: from tom.home (kostik@localhost [127.0.0.1]) by kib.kiev.ua (8.14.7/8.14.7) with ESMTP id r9D7mPB2001383; Sun, 13 Oct 2013 10:48:25 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.8.3 kib.kiev.ua r9D7mPB2001383 Received: (from kostik@localhost) by tom.home (8.14.7/8.14.7/Submit) id r9D7mPmb001382; Sun, 13 Oct 2013 10:48:25 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Sun, 13 Oct 2013 10:48:25 +0300 From: Konstantin Belousov To: Mark Murray Subject: Re: svn commit: r256377 - in head: etc/defaults etc/rc.d share/examples/kld/random_adaptor share/man/man4 sys/boot/forth sys/conf sys/dev/glxsb sys/dev/hifn sys/dev/random sys/dev/rndtest sys/dev/safe ... Message-ID: <20131013074825.GO41229@kib.kiev.ua> References: <201310121257.r9CCvvjO006546@svn.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="yWdTKN1+pzw7+L0w" Content-Disposition: inline In-Reply-To: <201310121257.r9CCvvjO006546@svn.freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on tom.home Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 13 Oct 2013 07:48:36 -0000 --yWdTKN1+pzw7+L0w Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, Oct 12, 2013 at 12:57:57PM +0000, Mark Murray wrote: > Author: markm > Date: Sat Oct 12 12:57:57 2013 > New Revision: 256377 > URL: http://svnweb.freebsd.org/changeset/base/256377 >=20 > Log: > Merge from project branch. Uninteresting commits are trimmed. > =20 > Refactor of /dev/random device. Main points include: The random.ko is broken. On boot, I get link_elf_obj: symbol live_entropy_source_deregister undefined KLD file random.ko - could not finalize loading There are several files from dev/random which are listed as 'optional random' in conf/files but are not added to the SRCS in modules/random/Makefile. I do not know the intent of splitting the dev/random into the module and non-optional part of the kernel, so cannot provide the patch. Please fix. --yWdTKN1+pzw7+L0w Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (FreeBSD) iQIcBAEBAgAGBQJSWlBIAAoJEJDCuSvBvK1B7J0QAIiCKm3H0Pw9F0hU9P3m65zQ IU9oEg5dOyVL5tzOZCEEWsepPGWnnLtm2ODdpQvtO5JhIynyL4ntKTAEIfjU2lWG d+yWR/CSvnAsF3lHfmA7UjjnzBOrydJXUPQbY5g7fmNkq6STn4EsFwc1uAi+PiiP PPUAoOU0fAezIJ3WXTmbpt/1zdpU2RSeaWIzw1WT5hYoNUtjUpnfe5eUdrwUJutJ F4eeaA+3zH+uBJeIqNI+pQ0LcO+RDv9IFGhAd5Q3WGKeiAQoRS5l0ClDOv1g0U1J HP9/5Nzp6Sr3gnUjY0wI46P0d5fFvSzsmXBhnvXrN88aKpOzPMEf2IFudr8FXeZe Q6vLv4Q9y5/uWhbmZnZzzCeOM6jS61bSXG5dfB9fl11gLKGsLmAvR+8p6FJJIvsr j6yYQAkFcXogjvWwvlqoiabrBw1cAhC2DiOD7CC4XGUplL6peHOsvBMU3fI3dlqn kPOnLoCFmxlBajInT+76ZIIO3tamC+TCF2d5vXVSp4XzZJVoIYUJAiU0/hWMKQaX LUEP+RtcduTvutqd69MuRgeWRNWa5Wxrnfn+zo9IYZIi53sRdqQPPw6VhicKnD/5 +DiBhSpPAKttW/IpL9oKxOHN1HphtxZ8fEAnTb8TJlbSbvREM7t8eG6MSqJnEL4N Nxo5mdRuOMXdIpkyouHE =/oV7 -----END PGP SIGNATURE----- --yWdTKN1+pzw7+L0w-- From owner-svn-src-all@FreeBSD.ORG Sun Oct 13 08:14:35 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 2F471BB4 for ; Sun, 13 Oct 2013 08:14:35 +0000 (UTC) (envelope-from nwhitehorn@anacreon.physics.wisc.edu) Received: from anacreon.physics.wisc.edu (unknown [IPv6:2607:f388:101c:0:216:cbff:fe39:3fae]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 02F9F2851 for ; Sun, 13 Oct 2013 08:14:34 +0000 (UTC) Received: from anacreon.physics.wisc.edu (localhost [127.0.0.1]) by anacreon.physics.wisc.edu (8.14.7/8.14.7) with ESMTP id r9D8EXWM034030; Sun, 13 Oct 2013 03:14:33 -0500 (CDT) (envelope-from nwhitehorn@anacreon.physics.wisc.edu) Received: from localhost (nwhitehorn@localhost) by anacreon.physics.wisc.edu (8.14.7/8.14.7/Submit) with ESMTP id r9D8EW5X034027; Sun, 13 Oct 2013 03:14:32 -0500 (CDT) (envelope-from nwhitehorn@anacreon.physics.wisc.edu) Date: Sun, 13 Oct 2013 03:14:32 -0500 (CDT) From: Nathan Whitehorn To: Devin Teske Subject: Re: svn commit: r256343 - in head/usr.sbin/bsdinstall: . scripts In-Reply-To: <13CA24D6AB415D428143D44749F57D720FC5B8F1@LTCFISWMSGMB21.FNFIS.com> Message-ID: References: <201310112041.r9BKfZeT002056@svn.freebsd.org> <5258F9B3.7030101@freebsd.org> <13CA24D6AB415D428143D44749F57D720FC5B547@LTCFISWMSGMB21.FNFIS.com> <86txgmr0oh.fsf@nine.des.no> <13CA24D6AB415D428143D44749F57D720FC5B8F1@LTCFISWMSGMB21.FNFIS.com> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "Teske, Devin" , Nathan Whitehorn , "svn-src-head@freebsd.org" , =?ISO-8859-15?Q?Dag-Erling_Sm=F8rgrav?= X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 13 Oct 2013 08:14:35 -0000 On Sat, 12 Oct 2013, Teske, Devin wrote: > > On Oct 12, 2013, at 8:03 AM, Dag-Erling Sm?rgrav wrote: > >> "Teske, Devin" writes: >>> The code to replace the use of camcontrol is a a *very* complex parsing >>> of the geom XML configuration data stashed in sysctl. jmg@ started the >>> ball rolling on that. >> >> You realize there is a text version as well? >> >>> Yes. Which has been discussed at-length, you didn't need to put a >>> sandbag on my back (publicly no less; thanks for that). >> >> Umm, I think Nathan was pretty civil. You're the one who's turning this >> into a catfight. >> > > Reflecting upon the thread to see if you're _right_... > > 1. He stated there were still some issues. [definitely civil] > 2. "I am surprised you committed it especially to stable/10, > before those issues were resolved." [civil? or inflammatory?] > 3. "I'm also not sure if people can review their own patches." [misunderstanding] > 4. "Installer regressions are very easy to introduce and very problematic > when created." [statements like that invariably lead people to believe he views > the commit as a regression -- I explained in a follow-up that it is not a regression] > 5. "Real review for installer changes is thus especially important this late in the > release cycle." [I read this invariably as he views that the commit did not go > through "Real review", but again... there is no regression and it's purely value- > add] > 6. "Do you have any plans to fix these issues in the very near future?" [definitely civil] > > What got me ralled up was #'s 2, 4, and 5. Hi Devin -- I'm sorry you felt I was attacking you. I was, as I said, very glad to see someone work on ZFS support in the installer. The patch seems to have only minor issues, most of which were identified earlier. You will note that I am asking you to fix them, but not for a backout, and for you (and everyone else) to ask for review for future non-trivial installer patches, just as you would for changes to any discrete unit of the operating system. With respect to the patch itself, there are a few other architectural things that need to be fixed: the man page needs updating, you did not update the part of the installer that does unattended installations, etc. The end comment was not to say that this patch *is* a regression -- it clearly isn't since it adds a new feature and doesn't touch existing ones -- but a general comment that the installer is sensitive to them. Unlike most parts of the system, it is run only rarely (developers updating their systems from SVN don't reinstall them from media) and is simultaneously the first thing and, until recently, the *only* thing, new users see when they first download FreeBSD. So bugs can easily not be found but, when they are found, totally cripple all other features of the operating system since it can't be installed for anything else to even be used. Similar things can be true for things that are not quite regressions (new features that don't work as advertised, typos in menus) since the chance we notice them is very low while the chance new users do is high. This is why the review requirements, and testing times, for installer changes are typically quite high. This is especially true in the run-up to a release. -Nathan From owner-svn-src-all@FreeBSD.ORG Sun Oct 13 09:00:07 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 7FF84F41; Sun, 13 Oct 2013 09:00:07 +0000 (UTC) (envelope-from mark@grondar.org) Received: from gromit.grondar.org (grandfather.grondar.org [IPv6:2a01:348:0:15:5d59:5c20:0:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 4444529A6; Sun, 13 Oct 2013 09:00:07 +0000 (UTC) Received: from graveyard.grondar.org ([88.96.155.33] helo=gronkulator.grondar.org) by gromit.grondar.org with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.80.1 (FreeBSD)) (envelope-from ) id 1VVHWs-000KAC-8T; Sun, 13 Oct 2013 10:00:04 +0100 Subject: Re: svn commit: r256377 - in head: etc/defaults etc/rc.d share/examples/kld/random_adaptor share/man/man4 sys/boot/forth sys/conf sys/dev/glxsb sys/dev/hifn sys/dev/random sys/dev/rndtest sys/dev/safe ... Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\)) Content-Type: multipart/signed; boundary="Apple-Mail=_E195744E-3C58-4047-A590-5E908DC96C36"; protocol="application/pgp-signature"; micalg=pgp-sha512 From: Mark R V Murray In-Reply-To: <20131013074825.GO41229@kib.kiev.ua> Date: Sun, 13 Oct 2013 09:59:58 +0100 Message-Id: References: <201310121257.r9CCvvjO006546@svn.freebsd.org> <20131013074825.GO41229@kib.kiev.ua> To: Konstantin Belousov X-Mailer: Apple Mail (2.1510) X-SA-Score: -2.2 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Mark Murray X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 13 Oct 2013 09:00:07 -0000 --Apple-Mail=_E195744E-3C58-4047-A590-5E908DC96C36 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii On 13 Oct 2013, at 08:48, Konstantin Belousov wrote: > On Sat, Oct 12, 2013 at 12:57:57PM +0000, Mark Murray wrote: >> Author: markm >> Date: Sat Oct 12 12:57:57 2013 >> New Revision: 256377 >> URL: http://svnweb.freebsd.org/changeset/base/256377 >> >> Log: >> Merge from project branch. Uninteresting commits are trimmed. >> >> Refactor of /dev/random device. Main points include: > > The random.ko is broken. On boot, I get > link_elf_obj: symbol live_entropy_source_deregister undefined > KLD file random.ko - could not finalize loading > > There are several files from dev/random which are listed as > 'optional random' in conf/files but are not added to the SRCS in > modules/random/Makefile. I do not know the intent of splitting the > dev/random into the module and non-optional part of the kernel, so > cannot provide the patch. Ah - I know what is going on here. Fix coming, thanks! M -- Mark R V Murray --Apple-Mail=_E195744E-3C58-4047-A590-5E908DC96C36 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.20 (Darwin) Comment: GPGTools - http://gpgtools.org iQCVAwUBUlphDt58vKOKE6LNAQoHlQP8CPohY9vgxre2ot1ugYFQ6W7mz0bJbgbl GacjNXG6PV8lZKDSDF5iKvrgeKuWes93H+7oCv/vOAOMmrl6Gv3N3YEdqKxS48Wf K9kjNTq7v6B63FZK2wS14AQhfDcRRYaPvz9qNoJlJKyBa+G91CN0W+lhWWKmgjpW AMNUS5SDEok= =C0nL -----END PGP SIGNATURE----- --Apple-Mail=_E195744E-3C58-4047-A590-5E908DC96C36-- From owner-svn-src-all@FreeBSD.ORG Sun Oct 13 09:50:21 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 7500A5D1; Sun, 13 Oct 2013 09:50:21 +0000 (UTC) (envelope-from mark@grondar.org) Received: from gromit.grondar.org (grandfather.grondar.org [IPv6:2a01:348:0:15:5d59:5c20:0:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 391522B52; Sun, 13 Oct 2013 09:50:21 +0000 (UTC) Received: from graveyard.grondar.org ([88.96.155.33] helo=gronkulator.grondar.org) by gromit.grondar.org with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.80.1 (FreeBSD)) (envelope-from ) id 1VVIJW-000KD3-6u; Sun, 13 Oct 2013 10:50:19 +0100 Subject: Re: svn commit: r256377 - in head: etc/defaults etc/rc.d share/examples/kld/random_adaptor share/man/man4 sys/boot/forth sys/conf sys/dev/glxsb sys/dev/hifn sys/dev/random sys/dev/rndtest sys/dev/safe ... Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\)) Content-Type: multipart/signed; boundary="Apple-Mail=_17F46C5F-3696-4698-A195-29B6F82D0ACD"; protocol="application/pgp-signature"; micalg=pgp-sha512 From: Mark R V Murray In-Reply-To: <20131013074825.GO41229@kib.kiev.ua> Date: Sun, 13 Oct 2013 10:50:17 +0100 Message-Id: <3B77143C-7D82-4E62-9974-BC2C6846893F@grondar.org> References: <201310121257.r9CCvvjO006546@svn.freebsd.org> <20131013074825.GO41229@kib.kiev.ua> To: Konstantin Belousov X-Mailer: Apple Mail (2.1510) X-SA-Score: -2.2 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Mark Murray X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 13 Oct 2013 09:50:21 -0000 --Apple-Mail=_17F46C5F-3696-4698-A195-29B6F82D0ACD Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii On 13 Oct 2013, at 08:48, Konstantin Belousov wrote: > On Sat, Oct 12, 2013 at 12:57:57PM +0000, Mark Murray wrote: >> Author: markm >> Date: Sat Oct 12 12:57:57 2013 >> New Revision: 256377 >> URL: http://svnweb.freebsd.org/changeset/base/256377 >> >> Log: >> Merge from project branch. Uninteresting commits are trimmed. >> >> Refactor of /dev/random device. Main points include: > > The random.ko is broken. On boot, I get > link_elf_obj: symbol live_entropy_source_deregister undefined > KLD file random.ko - could not finalize loading > > There are several files from dev/random which are listed as > 'optional random' in conf/files but are not added to the SRCS in > modules/random/Makefile. I do not know the intent of splitting the > dev/random into the module and non-optional part of the kernel, so > cannot provide the patch. > > Please fix. Here's the fix: Index: sys/modules/random/Makefile =================================================================== --- sys/modules/random/Makefile (revision 256427) +++ sys/modules/random/Makefile (working copy) @@ -10,7 +10,8 @@ SRCS+= nehemiah.c SRCS+= ivy.c .endif -SRCS+= randomdev_soft.c yarrow.c hash.c +SRCS+= randomdev_soft.c random_harvestq.c live_entropy_sources.c +SRCS+= yarrow.c hash.c rwfile.c SRCS+= rijndael-alg-fst.c rijndael-api-fst.c sha2.c SRCS+= bus_if.h device_if.h vnode_if.h opt_cpu.h opt_random.h M -- Mark R V Murray --Apple-Mail=_17F46C5F-3696-4698-A195-29B6F82D0ACD Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.20 (Darwin) Comment: GPGTools - http://gpgtools.org iQCVAwUBUlps2d58vKOKE6LNAQqrxgP/Qcg3u09jSqOd1uUHh9gU3Yi8wU0aSjmY nZ/6kuzvGRHvMg5mozZwp59dWe38GTorMp91Yh9TjPwdVFKY80W3naT6AMXmGY5Z ojntyXYjPobgWVsIYLm3UC1n8XayjUjMjVITpgOMsvlpss9aw19iqAY2v72l52bQ 7nuMh2fdY+k= =pdg8 -----END PGP SIGNATURE----- --Apple-Mail=_17F46C5F-3696-4698-A195-29B6F82D0ACD-- From owner-svn-src-all@FreeBSD.ORG Sun Oct 13 15:14:13 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 84AD27CE; Sun, 13 Oct 2013 15:14:13 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id DC3A72774; Sun, 13 Oct 2013 15:14:12 +0000 (UTC) Received: from tom.home (kostik@localhost [127.0.0.1]) by kib.kiev.ua (8.14.7/8.14.7) with ESMTP id r9DFDxtj098941; Sun, 13 Oct 2013 18:13:59 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.8.3 kib.kiev.ua r9DFDxtj098941 Received: (from kostik@localhost) by tom.home (8.14.7/8.14.7/Submit) id r9DFDxHA098940; Sun, 13 Oct 2013 18:13:59 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Sun, 13 Oct 2013 18:13:59 +0300 From: Konstantin Belousov To: Mark R V Murray Subject: Re: svn commit: r256377 - in head: etc/defaults etc/rc.d share/examples/kld/random_adaptor share/man/man4 sys/boot/forth sys/conf sys/dev/glxsb sys/dev/hifn sys/dev/random sys/dev/rndtest sys/dev/safe ... Message-ID: <20131013151359.GR41229@kib.kiev.ua> References: <201310121257.r9CCvvjO006546@svn.freebsd.org> <20131013074825.GO41229@kib.kiev.ua> <3B77143C-7D82-4E62-9974-BC2C6846893F@grondar.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="7SOjPJ0BYkVZ7T67" Content-Disposition: inline In-Reply-To: <3B77143C-7D82-4E62-9974-BC2C6846893F@grondar.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on tom.home Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Mark Murray X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 13 Oct 2013 15:14:13 -0000 --7SOjPJ0BYkVZ7T67 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, Oct 13, 2013 at 10:50:17AM +0100, Mark R V Murray wrote: >=20 > On 13 Oct 2013, at 08:48, Konstantin Belousov wrote: >=20 > > On Sat, Oct 12, 2013 at 12:57:57PM +0000, Mark Murray wrote: > >> Author: markm > >> Date: Sat Oct 12 12:57:57 2013 > >> New Revision: 256377 > >> URL: http://svnweb.freebsd.org/changeset/base/256377 > >>=20 > >> Log: > >> Merge from project branch. Uninteresting commits are trimmed. > >>=20 > >> Refactor of /dev/random device. Main points include: > >=20 > > The random.ko is broken. On boot, I get > > link_elf_obj: symbol live_entropy_source_deregister undefined > > KLD file random.ko - could not finalize loading > >=20 > > There are several files from dev/random which are listed as > > 'optional random' in conf/files but are not added to the SRCS in > > modules/random/Makefile. I do not know the intent of splitting the > > dev/random into the module and non-optional part of the kernel, so > > cannot provide the patch. > >=20 > > Please fix. >=20 > Here's the fix: >=20 > Index: sys/modules/random/Makefile > =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 > --- sys/modules/random/Makefile (revision 256427) > +++ sys/modules/random/Makefile (working copy) > @@ -10,7 +10,8 @@ > SRCS+=3D nehemiah.c > SRCS+=3D ivy.c > .endif > -SRCS+=3D randomdev_soft.c yarrow.c hash.c > +SRCS+=3D randomdev_soft.c random_harvestq.c live_entropy_sources.c > +SRCS+=3D yarrow.c hash.c rwfile.c > SRCS+=3D rijndael-alg-fst.c rijndael-api-fst.c sha2.c > SRCS+=3D bus_if.h device_if.h vnode_if.h opt_cpu.h opt_random.h >=20 Surely this works, thank you. The rwfile.c content probably should be taken under the #ifdef RANDOM_RWFILE. But I do not see much use for the randomdev_read_file() and randomdev_write_file() functions. It would be better to directly code the VFS calls in the random_harvestq_cache(). For one thing, it would eliminate unneccessary close and open of the entropy file. --7SOjPJ0BYkVZ7T67 Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (FreeBSD) iQIcBAEBAgAGBQJSWri2AAoJEJDCuSvBvK1BWdUQAIrY/2ShiYQ78YH8ChtsDnSc Dz21UdZ2MnqKHrdu9LIeyUiPsRQRdOSI+TQAj8jEgTN9gDIodqQaPmqd3J+KpwH0 DNgfeIrbTRuvF3aEvDc8NAN9VUtOL69iqNF6iJlRV1gtShb6Zl0txp8Vd9D4I8+g 979gwFuv0s6hCa3goIfQjwniOU3spDFbPPEeadU2WvzvvPr4bbOZBysTRGbVrZcv YzpR4nn8zWijkwGNW5PeeGXM3PvQg1hXYrAghJZKc7HpeQlFGKLijOQXISkv78XN b6s3RXC4nxqDeHcoy6amXkJtVyuu+Id5fMEjws3Tl87M2dB5WJn1C7lIFl3g4k7g FI9hQXnjTWBzDgi5Cv7KF3LFKqoZQLcPB/armguiM8rxgIpB2ahJzDYcHY26Xbm7 zdj2bZsymz0jS6B8IvoD98OQ7B5AT/Pu87xzm5lFDJS66QM3O8bDF4RxtqoSEkcG K1SI0tI+Xxc/YbyPTANTIqyEve610x0t71g158dEI4iFxzMwc+eZ8BHE1t0y7AWV Lf35l/UOg/jbVkdv4dFGjvqnSq3IPCxid/cOm3N+GNJXC/lbR01AZZJcVdcyczz7 YbEB/Rv4snEcZydA/UftVkJc6dY2jnQHIfG/M5ROJC03deLIDS+GrM/meX6/b7nK InrdjUT4mTQdMrnMbKho =4RN0 -----END PGP SIGNATURE----- --7SOjPJ0BYkVZ7T67-- From owner-svn-src-all@FreeBSD.ORG Sun Oct 13 15:18:26 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 3BC0492F; Sun, 13 Oct 2013 15:18:26 +0000 (UTC) (envelope-from mark@grondar.org) Received: from gromit.grondar.org (grandfather.grondar.org [IPv6:2a01:348:0:15:5d59:5c20:0:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id F23F4278C; Sun, 13 Oct 2013 15:18:25 +0000 (UTC) Received: from graveyard.grondar.org ([88.96.155.33] helo=gronkulator.grondar.org) by gromit.grondar.org with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.80.1 (FreeBSD)) (envelope-from ) id 1VVNR1-000KUV-0F; Sun, 13 Oct 2013 16:18:24 +0100 Subject: Re: svn commit: r256377 - in head: etc/defaults etc/rc.d share/examples/kld/random_adaptor share/man/man4 sys/boot/forth sys/conf sys/dev/glxsb sys/dev/hifn sys/dev/random sys/dev/rndtest sys/dev/safe ... Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\)) Content-Type: multipart/signed; boundary="Apple-Mail=_12CC3E7C-9487-46CC-8C67-9C690235F253"; protocol="application/pgp-signature"; micalg=pgp-sha512 From: Mark R V Murray In-Reply-To: <20131013151359.GR41229@kib.kiev.ua> Date: Sun, 13 Oct 2013 16:18:22 +0100 Message-Id: <812C1C64-75B0-4FE9-8FCD-B25A484448C6@grondar.org> References: <201310121257.r9CCvvjO006546@svn.freebsd.org> <20131013074825.GO41229@kib.kiev.ua> <3B77143C-7D82-4E62-9974-BC2C6846893F@grondar.org> <20131013151359.GR41229@kib.kiev.ua> To: Konstantin Belousov X-Mailer: Apple Mail (2.1510) X-SA-Score: -2.2 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Mark Murray X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 13 Oct 2013 15:18:26 -0000 --Apple-Mail=_12CC3E7C-9487-46CC-8C67-9C690235F253 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii On 13 Oct 2013, at 16:13, Konstantin Belousov wrote: > Surely this works, thank you. The rwfile.c content probably should be > taken under the #ifdef RANDOM_RWFILE. OK - thanks for the feedback! > But I do not see much use for the randomdev_read_file() and > randomdev_write_file() functions. It would be better to directly code > the VFS calls in the random_harvestq_cache(). For one thing, it would > eliminate unneccessary close and open of the entropy file. There is some uncertainty about the future of that code, so I want to keep it that way for now. Writing files from the kernel is making so@ very uncomfortable, and there is too much scope for error there. We'll settle it down properly in 11.*. M -- Mark R V Murray --Apple-Mail=_12CC3E7C-9487-46CC-8C67-9C690235F253 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.20 (Darwin) Comment: GPGTools - http://gpgtools.org iQCVAwUBUlq5vt58vKOKE6LNAQomJQQAo8/Uc/cgHY5UY8V9KyZhlFrO5p6VMsbI 37TszhBH72SzjQHQC0tkbS1ekCXWwkqxjMTrOqgdayrF3PGJIan8kKKZ+h96KV0k jVeBqVpX8R+BhaG7Af1SjhXQDIBRdjl0+LTG07VCkcPEJKxXCl5UXtzKW76WFWWf +B0tUYaRBHc= =Gn/+ -----END PGP SIGNATURE----- --Apple-Mail=_12CC3E7C-9487-46CC-8C67-9C690235F253-- From owner-svn-src-all@FreeBSD.ORG Sun Oct 13 15:39:26 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 4E26AFD1; Sun, 13 Oct 2013 15:39:26 +0000 (UTC) (envelope-from Devin.Teske@fisglobal.com) Received: from mx1.fisglobal.com (mx1.fisglobal.com [199.200.24.190]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 1429C2869; Sun, 13 Oct 2013 15:39:25 +0000 (UTC) Received: from smtp.fisglobal.com ([10.132.206.31]) by ltcfislmsgpa07.fnfis.com (8.14.5/8.14.5) with ESMTP id r9DFdGsC032595 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Sun, 13 Oct 2013 10:39:17 -0500 Received: from LTCFISWMSGMB21.FNFIS.com ([169.254.1.103]) by LTCFISWMSGHT03.FNFIS.com ([10.132.206.31]) with mapi id 14.02.0309.002; Sun, 13 Oct 2013 10:39:15 -0500 From: "Teske, Devin" To: Nathan Whitehorn Subject: Re: svn commit: r256343 - in head/usr.sbin/bsdinstall: . scripts Thread-Topic: svn commit: r256343 - in head/usr.sbin/bsdinstall: . scripts Thread-Index: AQHOx2PjW1uGCLtcyE2zUcTOTrV8Ig== Date: Sun, 13 Oct 2013 15:39:14 +0000 Message-ID: <13CA24D6AB415D428143D44749F57D720FC60628@LTCFISWMSGMB21.FNFIS.com> References: <201310112041.r9BKfZeT002056@svn.freebsd.org> <5258F9B3.7030101@freebsd.org> <13CA24D6AB415D428143D44749F57D720FC5BB95@LTCFISWMSGMB21.FNFIS.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.132.253.121] Content-Type: text/plain; charset="us-ascii" Content-ID: <8996B5DA6EB54F46B8A5469BBA345EBD@fisglobal.com> Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.10.8794, 1.0.431, 0.0.0000 definitions=2013-10-13_01:2013-10-11,2013-10-13,1970-01-01 signatures=0 Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "Teske, Devin" , Nathan Whitehorn , "svn-src-head@freebsd.org" , Devin Teske X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: Devin Teske List-Id: "SVN commit messages 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, 13 Oct 2013 15:39:26 -0000 On Oct 13, 2013, at 12:41 AM, Nathan Whitehorn wrote: >=20 >=20 > On Sat, 12 Oct 2013, Teske, Devin wrote: >=20 >>=20 >> On Oct 12, 2013, at 12:26 AM, Nathan Whitehorn wrote: >>=20 >>> On 10/11/13 22:41, Devin Teske wrote: >>>> Author: dteske >>>> Date: Fri Oct 11 20:41:35 2013 >>>> New Revision: 256343 >>>> URL: https://urldefense.proofpoint.com/v1/url?u=3Dhttp://svnweb.freebs= d.org/changeset/base/256343&k=3D%2FbkpAUdJWZuiTILCq%2FFnQg%3D%3D%0A&r=3DMrj= s6vR4%2Faj2Ns9%2FssHJjg%3D%3D%0A&m=3DLDzuPpXPP4D5BzfISZjw%2BXitYn4aKVzfXzcr= mMNFo2U%3D%0A&s=3D3d0963d9c497f7bad0918888032ca62844580612dc48ab3a8a6768fe6= 40c365b >>>>=20 >>>> Log: >>>> Add zfsboot module as an option for automatic configuration. Default is >>>> to run interactively but it can be scripted too (optinally completely >>>> non-interactive). Currently supports GELI and all ZFS vdev types. Also >>>> performs validation on selections/settings providing error messages if >>>> necessary, explaining (in plain language) what the issue is. Currently >>>> the auto partitioning of naked disks only supports GPT and MBR (VTOC8 >>>> pending for sparc64), so is only available for i386/amd64 install. >>>>=20 >>>> Submitted by: Allan Jude , myself >>>> Reviewed by: Allan Jude >>>> Approved by: re (glebius) >>>=20 >>> Hi Devin -- >>>=20 >>> As was discussed on the mailing list, this patch still has some issues >>> that need to be resolved, >>=20 >> Can you kindly provide links? I'm crawling through the mailing lists and >> not finding anything for the October, (current, stable, sysinstall, ... = ?? others?) >>=20 >> Do I need to be looking back in September? I wouldn't think so, because = that >> bit wasn't even in our development tree until October 1st: >=20 > This was discussion on freebsd-current from yesterday and the day before. >=20 Links or it didn't happen. HINT: I just (for the the third time on this topic) crawled the following: http://lists.freebsd.org/pipermail/freebsd-current/2013-October/thread.html Please help me find what you're talking about. >> https://urldefense.proofpoint.com/v1/url?u=3Dhttp://druidbsd.cvs.sf.net/= viewvc/druidbsd/bsdinstall_zfs/usr.sbin%253A%253Absdconfig%253A%253Ashare%2= 53A%253Adevice.subr.patch?revision%3D1.1%26view%3Dmarkup&k=3D%2FbkpAUdJWZui= TILCq%2FFnQg%3D%3D%0A&r=3DLTzUWWrRnz2iN3PtHDubWRSAh9itVJ%2BMUcNBCQ4tyeo%3D%= 0A&m=3Daas9lyFMptmk4eQ3C74XXVkRHbiN19EOClxMMjoCuhE%3D%0A&s=3D9d21b812e49d92= 1455e998bde7c538318c3bfcc8759c1d0b61eede553b203865 >>=20 >> So there couldn't have been any discussion on it before then. So I'm jus= t not >> able to find the mailing lists where all the action is that they're disc= ussing it. >> Would be nice to find where the action is, so I could participate. >>=20 >>=20 >>> for example the use of camcontrol >>> unconditionally even when the disks may not be CAM >>=20 >> Allan Adds: >> 9.2 should have all disks listed in camcontrol, so it shouldn't be an is= sue >=20 > No it shouldn't. Not all disks are interfaced to CAM. MFI comes to mind, = nvme, VM block devices, SD cards. There are many other examples. OK... duly noted. Much thanks for dispelling that myth. > Just because you don't have them does not justify a phenomenological appr= oach here. >=20 Need I remind you... we don't *list* the disks from camcontrol... we just u= se it as a perfunctory value-add by stealing disk descriptions from it if/when it is describing a = disk. I would hardly call that phenomenological (rather, more of a multi-pass car= tesian ontological approach). >> And: >> I think the only systems without cam based disks are old 8.x - we're onl= y targeting 10 anyway. >=20 > Not true at all. >=20 Thanks. >> I tend to agree with those statements. >>=20 >>=20 >>> and destruction of >>> existing sub-partitioning for MBR disks. >>=20 >> I think we both (Allan and I) actually responded directly to you on this= one. >>=20 >> We have code that handles that. It's in there. >=20 > To me, yes, but I was wrong in my initial comment as pointed out by some = others. In particular, you need to run gpart -F destroy recursively on the = disk instead of just on the root node. There were several other issues and = bugs mentioned in people's cursory review of the patch. Where? by whom? and when? We've already established that it wasn't in the mailing lists (or at least = not in -current as you claim). > I never dreamed you would then just commit it. >=20 A great mentor of mine once said... "Practice makes Perfect? NO! Unattainable. [pause] Practice makes *improvem= ent*." Perfection versus Improvement. I would be hard-pressed to accept any argument that a regression has occurr= ed. > I really really don't want to have to subject installer changes to explic= it approval requirements, Threats won't help your cause. Civility is key. > but *please* request review of non-trivial changes before commits, especi= ally to the disk partitioning code, Didn't touch your disk partitioning code. I have zero plans to. You can keep it (I'll just replace it in-whole when I= have something better). > and especially again before insta-MFCing them to a stable branch right be= fore a release. Gleb gave me insta-MFC approval. > It is much, much better than having to do this after the fact as > we are doing now. What we are doing doesn't need to be done (period). --=20 Devin _____________ The information contained in this message is proprietary and/or confidentia= l. If you are not the intended recipient, please: (i) delete the message an= d all copies; (ii) do not disclose, distribute or use the message in any ma= nner; and (iii) notify the sender immediately. In addition, please be aware= that any message addressed to our domain is subject to archiving and revie= w by persons other than the intended recipient. Thank you. From owner-svn-src-all@FreeBSD.ORG Sun Oct 13 15:49:50 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 9369C38A; Sun, 13 Oct 2013 15:49:50 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 8113528B3; Sun, 13 Oct 2013 15:49:50 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9DFnoAa041477; Sun, 13 Oct 2013 15:49:50 GMT (envelope-from gjb@svn.freebsd.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9DFnoiU041476; Sun, 13 Oct 2013 15:49:50 GMT (envelope-from gjb@svn.freebsd.org) Message-Id: <201310131549.r9DFnoiU041476@svn.freebsd.org> From: Glen Barber Date: Sun, 13 Oct 2013 15:49:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256430 - head/release X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 13 Oct 2013 15:49:50 -0000 Author: gjb Date: Sun Oct 13 15:49:50 2013 New Revision: 256430 URL: http://svnweb.freebsd.org/changeset/base/256430 Log: Reduce disc1.iso image size by installing the userland with the WITHOUT_PROFILE=1 option set, trimming 56MB from the image. Approved by: re (glebius) MFC after: 1 week Sponsored by: The FreeBSD Foundation Modified: head/release/Makefile Modified: head/release/Makefile ============================================================================== --- head/release/Makefile Sun Oct 13 13:47:49 2013 (r256429) +++ head/release/Makefile Sun Oct 13 15:49:50 2013 (r256430) @@ -122,7 +122,8 @@ system: packagesystem # Install system mkdir -p release cd ${WORLDDIR} && ${IMAKE} installkernel installworld distribution \ - DESTDIR=${.OBJDIR}/release WITHOUT_RESCUE=1 WITHOUT_KERNEL_SYMBOLS=1 + DESTDIR=${.OBJDIR}/release WITHOUT_RESCUE=1 WITHOUT_KERNEL_SYMBOLS=1 \ + WITHOUT_PROFILE=1 # Copy distfiles mkdir -p release/usr/freebsd-dist cp *.txz MANIFEST release/usr/freebsd-dist From owner-svn-src-all@FreeBSD.ORG Sun Oct 13 16:09:52 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 8CEACC93; Sun, 13 Oct 2013 16:09:52 +0000 (UTC) (envelope-from Devin.Teske@fisglobal.com) Received: from mx1.fisglobal.com (mx1.fisglobal.com [199.200.24.190]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 4FC4429B0; Sun, 13 Oct 2013 16:09:52 +0000 (UTC) Received: from smtp.fisglobal.com ([10.132.206.17]) by ltcfislmsgpa03.fnfis.com (8.14.5/8.14.5) with ESMTP id r9DG9hGV007483 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Sun, 13 Oct 2013 11:09:43 -0500 Received: from LTCFISWMSGMB21.FNFIS.com ([169.254.1.103]) by LTCFISWMSGHT06.FNFIS.com ([10.132.206.17]) with mapi id 14.02.0309.002; Sun, 13 Oct 2013 11:09:41 -0500 From: "Teske, Devin" To: Nathan Whitehorn Subject: Re: svn commit: r256343 - in head/usr.sbin/bsdinstall: . scripts Thread-Topic: svn commit: r256343 - in head/usr.sbin/bsdinstall: . scripts Thread-Index: AQHOx1fhW1uGCLtcyE2zUcTOTrV8Ig== Date: Sun, 13 Oct 2013 16:09:40 +0000 Message-ID: <13CA24D6AB415D428143D44749F57D720FC60911@LTCFISWMSGMB21.FNFIS.com> References: <201310112041.r9BKfZeT002056@svn.freebsd.org> <5258F9B3.7030101@freebsd.org> <13CA24D6AB415D428143D44749F57D720FC5B547@LTCFISWMSGMB21.FNFIS.com> <86txgmr0oh.fsf@nine.des.no> <13CA24D6AB415D428143D44749F57D720FC5B8F1@LTCFISWMSGMB21.FNFIS.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.132.253.121] Content-Type: text/plain; charset="iso-8859-1" Content-ID: <82664CCC7CBF14479D83239C69842F22@fisglobal.com> Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.10.8794, 1.0.431, 0.0.0000 definitions=2013-10-13_01:2013-10-11,2013-10-13,1970-01-01 signatures=0 Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "Teske, Devin" , Nathan Whitehorn , "svn-src-head@freebsd.org" , =?iso-8859-1?Q?Dag-Erling_Sm=F8rgrav?= , Devin Teske X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: Devin Teske List-Id: "SVN commit messages 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, 13 Oct 2013 16:09:52 -0000 On Oct 13, 2013, at 1:14 AM, Nathan Whitehorn wrote: >=20 >=20 > On Sat, 12 Oct 2013, Teske, Devin wrote: >=20 >>=20 >> On Oct 12, 2013, at 8:03 AM, Dag-Erling Sm?rgrav wrote: >>=20 >>> "Teske, Devin" writes: >>>> The code to replace the use of camcontrol is a a *very* complex parsing >>>> of the geom XML configuration data stashed in sysctl. jmg@ started the >>>> ball rolling on that. >>>=20 >>> You realize there is a text version as well? >>>=20 >>>> Yes. Which has been discussed at-length, you didn't need to put a >>>> sandbag on my back (publicly no less; thanks for that). >>>=20 >>> Umm, I think Nathan was pretty civil. You're the one who's turning this >>> into a catfight. >>>=20 >>=20 >> Reflecting upon the thread to see if you're _right_... >>=20 >> 1. He stated there were still some issues. [definitely civil] >> 2. "I am surprised you committed it especially to stable/10, >> before those issues were resolved." [civil? or inflammatory?] >> 3. "I'm also not sure if people can review their own patches." [misunder= standing] >> 4. "Installer regressions are very easy to introduce and very problematic >> when created." [statements like that invariably lead people to believe h= e views >> the commit as a regression -- I explained in a follow-up that it is not = a regression] >> 5. "Real review for installer changes is thus especially important this = late in the >> release cycle." [I read this invariably as he views that the commit did = not go >> through "Real review", but again... there is no regression and it's pure= ly value- >> add] >> 6. "Do you have any plans to fix these issues in the very near future?" = [definitely civil] >>=20 >> What got me ralled up was #'s 2, 4, and 5. >=20 > Hi Devin -- >=20 > I'm sorry you felt I was attacking you. It is what it is. > I was, as I said, very glad to see someone work on ZFS support in the ins= taller. The patch seems to have only minor issues, most of which were ident= ified earlier. You will note that I am asking you to fix them, but not for = a backout, and for you (and > everyone else) to ask for review for future non-trivial installer patches, > just as you would for changes to any discrete unit of the operating syste= m. Asking is the first step. You flat out attacked, imho. I looked out over my castle walls and saw/see you at the gate in full armor= . I'm not going to let someone like that inside my courtyard. > With respect to the patch itself, there are a few other architectural thi= ngs > that need to be fixed: the man page needs updating, Yes indeed, it does. > you did not update the > part of the installer that does unattended installations, etc. >=20 Ought to be addressed for 10.0-BETA2 ... indeed I cannot disagree. So that I don't forget, I'll put them here: Need to document: ZFSBOOT_POOL_NAME=3Dzroot ZFSBOOT_BEROOT_NAME=3Dbootenv ZFSBOOT_BOOTFS_NAME=3Ddefault ZFSBOOT_VDEV_TYPE=3Dstripe ZFSBOOT_GNOP_4K_FORCE_ALIGN=3D1 ZFSBOOT_GELI_ENCRYPTION=3D ZFSBOOT_GELI_POOL_NAME=3Dbootpool ZFSBOOT_GELI_BOOT_SIZE=3D2g ZFSBOOT_GELI_KEY_FILE=3D/boot/encryption.key ZFSBOOT_DISKS=3D ZFSBOOT_PARTITION_SCHEME=3DGPT ZFSBOOT_SWAP_SIZE=3D2g Notice how all the variables specific to the `zfsboot' script start with Z= FSBOOT_ As well as these two (they are not necessarily specific to the zfsboot scri= pt): nonInteractive=3D1 zfsInteractive=3D1 > The end comment was not to say that this patch *is* a regression -- it cl= early isn't since it adds a new feature and doesn't touch existing ones -- = but a general comment that the installer is sensitive to them. I've been working on the FreeBSD installer since 2005. How long have you been working on it? (full disclosure: that's not a back-handed comment... I really want to know= ... I get the *distinct* impression that you think I'm some junior-level appren= tice on the matter considering the amount of times you have felt the need to tell me "the installer is sensitive" -- you may have had your commit bit longer,= but that hardly means that you've put more work into the problem; the elitist attitude needs to go) > Unlike most parts of the system, it is run only rarely (developers updati= ng their systems from SVN don't reinstall them from media) and is simultane= ously the first thing and, until recently, the *only* thing, new users see = when they first download FreeBSD. You think I don't know this? > So bugs can easily not be found but, when they are found, totally cripple= all other features of the operating system since it can't be installed for= anything else to even be used. Please don't make me take the gloves off. > Similar things can be true for things that are not quite regressions (new= features that don't work as advertised, typos in menus) since the chance w= e notice them is very low while the chance new users do is high. >=20 Who anointed you king of the installer world? In my mind, the corporate enterprise is *still* putting bounties out on the= bugs you introduced by regressing us from sysinstall to bsdinstall. I for one can't believe you= introduced bsdinstall in the state that it was in and further can't believe that it's still in th= e state that it is in for 10.0. It's egregious, but perhaps worse is that you're standing in the way of pro= gress. > This is why the review requirements, and testing times, for installer cha= nges are typically quite high. This is especially true in the run-up to a r= elease. Again with rhetorhic... you imply it wasn't reviewed nor tested. I think you're angry because you weren't part of the process. --=20 Devin _____________ The information contained in this message is proprietary and/or confidentia= l. If you are not the intended recipient, please: (i) delete the message an= d all copies; (ii) do not disclose, distribute or use the message in any ma= nner; and (iii) notify the sender immediately. In addition, please be aware= that any message addressed to our domain is subject to archiving and revie= w by persons other than the intended recipient. Thank you. From owner-svn-src-all@FreeBSD.ORG Sun Oct 13 16:16:33 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id BDA6D2E2; Sun, 13 Oct 2013 16:16:33 +0000 (UTC) (envelope-from Devin.Teske@fisglobal.com) Received: from mx1.fisglobal.com (mx1.fisglobal.com [199.200.24.190]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 818A52A3C; Sun, 13 Oct 2013 16:16:33 +0000 (UTC) Received: from smtp.fisglobal.com ([10.132.206.17]) by ltcfislmsgpa05.fnfis.com (8.14.5/8.14.5) with ESMTP id r9DGGPq8029992 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Sun, 13 Oct 2013 11:16:25 -0500 Received: from LTCFISWMSGMB21.FNFIS.com ([169.254.1.103]) by LTCFISWMSGHT06.FNFIS.com ([10.132.206.17]) with mapi id 14.02.0309.002; Sun, 13 Oct 2013 11:16:24 -0500 From: "Teske, Devin" To: Devin Teske Subject: Re: svn commit: r256343 - in head/usr.sbin/bsdinstall: . scripts Thread-Topic: svn commit: r256343 - in head/usr.sbin/bsdinstall: . scripts Thread-Index: AQHOx1fhW1uGCLtcyE2zUcTOTrV8IpnzJECA Date: Sun, 13 Oct 2013 16:16:23 +0000 Message-ID: <13CA24D6AB415D428143D44749F57D720FC609A3@LTCFISWMSGMB21.FNFIS.com> References: <201310112041.r9BKfZeT002056@svn.freebsd.org> <5258F9B3.7030101@freebsd.org> <13CA24D6AB415D428143D44749F57D720FC5B547@LTCFISWMSGMB21.FNFIS.com> <86txgmr0oh.fsf@nine.des.no> <13CA24D6AB415D428143D44749F57D720FC5B8F1@LTCFISWMSGMB21.FNFIS.com> <13CA24D6AB415D428143D44749F57D720FC60911@LTCFISWMSGMB21.FNFIS.com> In-Reply-To: <13CA24D6AB415D428143D44749F57D720FC60911@LTCFISWMSGMB21.FNFIS.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.132.253.121] Content-Type: text/plain; charset="iso-8859-1" Content-ID: <1D924528CE432749A1E34CB68D0C0A0F@fisglobal.com> Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.10.8794, 1.0.431, 0.0.0000 definitions=2013-10-13_01:2013-10-11,2013-10-13,1970-01-01 signatures=0 Cc: "src-committers@freebsd.org" , Nathan Whitehorn , "svn-src-all@freebsd.org" , "Teske, Devin" , Nathan Whitehorn , "svn-src-head@freebsd.org" , =?iso-8859-1?Q?Dag-Erling_Sm=F8rgrav?= X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: Devin Teske List-Id: "SVN commit messages 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, 13 Oct 2013 16:16:33 -0000 On Oct 13, 2013, at 9:09 AM, Teske, Devin wrote: >=20 > On Oct 13, 2013, at 1:14 AM, Nathan Whitehorn wrote: >=20 > [snip] >=20 >> you did not update the >> part of the installer that does unattended installations, etc. >>=20 >=20 > Ought to be addressed for 10.0-BETA2 ... indeed I cannot disagree. >=20 > So that I don't forget, I'll put them here: >=20 > Need to document: >=20 > ZFSBOOT_POOL_NAME=3Dzroot > ZFSBOOT_BEROOT_NAME=3Dbootenv > ZFSBOOT_BOOTFS_NAME=3Ddefault > ZFSBOOT_VDEV_TYPE=3Dstripe > ZFSBOOT_GNOP_4K_FORCE_ALIGN=3D1 > ZFSBOOT_GELI_ENCRYPTION=3D > ZFSBOOT_GELI_POOL_NAME=3Dbootpool > ZFSBOOT_GELI_BOOT_SIZE=3D2g > ZFSBOOT_GELI_KEY_FILE=3D/boot/encryption.key > ZFSBOOT_DISKS=3D > ZFSBOOT_PARTITION_SCHEME=3DGPT > ZFSBOOT_SWAP_SIZE=3D2g >=20 Heh, forgot the most important one... ZFSBOOT_DATASETS A multiline variable whose contents describe each dataset to create and with what options. > Notice how all the variables specific to the `zfsboot' script start with= ZFSBOOT_ >=20 > As well as these two (they are not necessarily specific to the zfsboot sc= ript): >=20 > nonInteractive=3D1 > zfsInteractive=3D1 >=20 --=20 Devin _____________ The information contained in this message is proprietary and/or confidentia= l. If you are not the intended recipient, please: (i) delete the message an= d all copies; (ii) do not disclose, distribute or use the message in any ma= nner; and (iii) notify the sender immediately. In addition, please be aware= that any message addressed to our domain is subject to archiving and revie= w by persons other than the intended recipient. Thank you. From owner-svn-src-all@FreeBSD.ORG Sun Oct 13 16:18:44 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 13B87427; Sun, 13 Oct 2013 16:18:44 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from mho-01-ewr.mailhop.org (mho-03-ewr.mailhop.org [204.13.248.66]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D6B992A48; Sun, 13 Oct 2013 16:18:43 +0000 (UTC) Received: from c-24-8-230-52.hsd1.co.comcast.net ([24.8.230.52] helo=damnhippie.dyndns.org) by mho-01-ewr.mailhop.org with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.72) (envelope-from ) id 1VVONO-0008FQ-6S; Sun, 13 Oct 2013 16:18:42 +0000 Received: from [172.22.42.240] (revolution.hippie.lan [172.22.42.240]) by damnhippie.dyndns.org (8.14.3/8.14.3) with ESMTP id r9DGIdLk024622; Sun, 13 Oct 2013 10:18:39 -0600 (MDT) (envelope-from ian@FreeBSD.org) X-Mail-Handler: Dyn Standard SMTP by Dyn X-Originating-IP: 24.8.230.52 X-Report-Abuse-To: abuse@dyndns.com (see http://www.dyndns.com/services/sendlabs/outbound_abuse.html for abuse reporting information) X-MHO-User: U2FsdGVkX19iRUu+GslKjGknRaULi0dp Subject: Re: svn commit: r256377 - in head: etc/defaults etc/rc.d share/examples/kld/random_adaptor share/man/man4 sys/boot/forth sys/conf sys/dev/glxsb sys/dev/hifn sys/dev/random sys/dev/rndtest sys/dev/safe ... From: Ian Lepore To: Mark R V Murray In-Reply-To: <812C1C64-75B0-4FE9-8FCD-B25A484448C6@grondar.org> References: <201310121257.r9CCvvjO006546@svn.freebsd.org> <20131013074825.GO41229@kib.kiev.ua> <3B77143C-7D82-4E62-9974-BC2C6846893F@grondar.org> <20131013151359.GR41229@kib.kiev.ua> <812C1C64-75B0-4FE9-8FCD-B25A484448C6@grondar.org> Content-Type: text/plain; charset="us-ascii" Date: Sun, 13 Oct 2013 10:18:39 -0600 Message-ID: <1381681119.42859.33.camel@revolution.hippie.lan> Mime-Version: 1.0 X-Mailer: Evolution 2.32.1 FreeBSD GNOME Team Port Content-Transfer-Encoding: 7bit Cc: Konstantin Belousov , svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org, Mark Murray X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 13 Oct 2013 16:18:44 -0000 On Sun, 2013-10-13 at 16:18 +0100, Mark R V Murray wrote: > On 13 Oct 2013, at 16:13, Konstantin Belousov wrote: > > Surely this works, thank you. The rwfile.c content probably should be > > taken under the #ifdef RANDOM_RWFILE. > > OK - thanks for the feedback! > > > But I do not see much use for the randomdev_read_file() and > > randomdev_write_file() functions. It would be better to directly code > > the VFS calls in the random_harvestq_cache(). For one thing, it would > > eliminate unneccessary close and open of the entropy file. > > There is some uncertainty about the future of that code, so I want > to keep it that way for now. Writing files from the kernel is making so@ > very uncomfortable, and there is too much scope for error there. > Indeed, it makes me nervous too, as a heavy user of readonly root filesystems. If writing this file is so critical that it has to be done by the kernel, then what happens when it fails? Right now it prints an error and continues -- if it is not so critical that failure means panic, then why is the kernel doing it at all? Why is the file even in the root filesystem? /var/db seems to be the right place for a transient file needed by the system. Speaking of errors, that might include things like the current code calling vn_close() with the FREAD flag on a file open for writing. -- Ian > We'll settle it down properly in 11.*. > > M From owner-svn-src-all@FreeBSD.ORG Sun Oct 13 17:03:14 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 49E604A2; Sun, 13 Oct 2013 17:03:14 +0000 (UTC) (envelope-from mark@grondar.org) Received: from gromit.grondar.org (grandfather.grondar.org [IPv6:2a01:348:0:15:5d59:5c20:0:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 0A7452C86; Sun, 13 Oct 2013 17:03:14 +0000 (UTC) Received: from graveyard.grondar.org ([88.96.155.33] helo=gronkulator.grondar.org) by gromit.grondar.org with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.80.1 (FreeBSD)) (envelope-from ) id 1VVP4Q-000Pd7-UD; Sun, 13 Oct 2013 18:03:12 +0100 Subject: Re: svn commit: r256377 - in head: etc/defaults etc/rc.d share/examples/kld/random_adaptor share/man/man4 sys/boot/forth sys/conf sys/dev/glxsb sys/dev/hifn sys/dev/random sys/dev/rndtest sys/dev/safe ... Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\)) Content-Type: multipart/signed; boundary="Apple-Mail=_87756473-C158-4388-B9D7-DFD088119C78"; protocol="application/pgp-signature"; micalg=pgp-sha512 From: Mark R V Murray In-Reply-To: <1381681119.42859.33.camel@revolution.hippie.lan> Date: Sun, 13 Oct 2013 18:03:09 +0100 Message-Id: <6E7CF22B-B83B-4F31-955D-DC64441FAC8D@grondar.org> References: <201310121257.r9CCvvjO006546@svn.freebsd.org> <20131013074825.GO41229@kib.kiev.ua> <3B77143C-7D82-4E62-9974-BC2C6846893F@grondar.org> <20131013151359.GR41229@kib.kiev.ua> <812C1C64-75B0-4FE9-8FCD-B25A484448C6@grondar.org> <1381681119.42859.33.camel@revolution.hippie.lan> To: Ian Lepore X-Mailer: Apple Mail (2.1510) X-SA-Score: -2.2 Cc: Konstantin Belousov , "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 13 Oct 2013 17:03:14 -0000 --Apple-Mail=_87756473-C158-4388-B9D7-DFD088119C78 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii On 13 Oct 2013, at 17:18, Ian Lepore wrote: > On Sun, 2013-10-13 at 16:18 +0100, Mark R V Murray wrote: >> On 13 Oct 2013, at 16:13, Konstantin Belousov wrote: >>> Surely this works, thank you. The rwfile.c content probably should be >>> taken under the #ifdef RANDOM_RWFILE. >> >> OK - thanks for the feedback! >> >>> But I do not see much use for the randomdev_read_file() and >>> randomdev_write_file() functions. It would be better to directly code >>> the VFS calls in the random_harvestq_cache(). For one thing, it would >>> eliminate unneccessary close and open of the entropy file. >> >> There is some uncertainty about the future of that code, so I want >> to keep it that way for now. Writing files from the kernel is making so@ >> very uncomfortable, and there is too much scope for error there. >> > > Indeed, it makes me nervous too, as a heavy user of readonly root > filesystems. If writing this file is so critical that it has to be done > by the kernel, then what happens when it fails? Right now it prints an > error and continues -- if it is not so critical that failure means > panic, then why is the kernel doing it at all? Good points all. The intent is not to win the arms-race outright, but to win the common-case battles as convincingly as possible. That said, its not looking good for the process, but I still want to give it a decent look before/if yanking it. > Why is the file even in the root filesystem? /var/db seems to be the > right place for a transient file needed by the system. Because that appears to be the best place to put first-boot entropy from sysinstall/bsdinstall. /var/db/entropy/... will also be used if possible; watch this space. > Speaking of errors, that might include things like the current code > calling vn_close() with the FREAD flag on a file open for writing. Thanks :-( :-) M -- Mark R V Murray --Apple-Mail=_87756473-C158-4388-B9D7-DFD088119C78 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.20 (Darwin) Comment: GPGTools - http://gpgtools.org iQCVAwUBUlrSTd58vKOKE6LNAQpvzQP+I3nvSu7JThCmaWGYqnWh/dE0O8QFGrAL 3jMMuuNVeKIF4kRy6c2HiFLC6u64XEi40pbjVT20zNCFa0lTV+RP578ZgMl6tef5 Cnfn3X6h49Rqlsfaz3g+rFtVLDBjcNMICk8UAMN5uQBsAfXDjs1IkMCYhmQeeMXF lLqCE6iAUOU= =ais7 -----END PGP SIGNATURE----- --Apple-Mail=_87756473-C158-4388-B9D7-DFD088119C78-- From owner-svn-src-all@FreeBSD.ORG Sun Oct 13 18:08:31 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 50CAADB9; Sun, 13 Oct 2013 18:08:31 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-qa0-x231.google.com (mail-qa0-x231.google.com [IPv6:2607:f8b0:400d:c00::231]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id CB7352FB1; Sun, 13 Oct 2013 18:08:30 +0000 (UTC) Received: by mail-qa0-f49.google.com with SMTP id i13so1926002qae.1 for ; Sun, 13 Oct 2013 11:08:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=lnK0LsSUfg4NK1RKB/QG+4NYiTGbZARxyyuxmrnKbNo=; b=GAbRNnoyGetChKAth35Aj5UX7NSRzhEpl2u00/EE5xEgfj97RfQMMU19g9gMCU2oKe c1r4M1RpMR/2yj/P2g3lQ+hRrjViUd5X7Smwe6AExVkS7MM40G6DzLjXBbGfWNsVUlXL A1VluESk1ZXwyq0VvuBLr8i4BqgTuLCHHbWTHa0aS4S9E6q5Y/pjM/lC4AsiwYYIZEU3 In4A/Xijr+HT7cGXGfGnT7ZKvyEHE4AMbjGJnNPMpCAt9AvkjaMrUFZRfuW3q59Uvp7l EbvO34I2ESvMkgVQTffcwHSRk+f+QEL3R7zIUqPvrGeFQ8qgr/BE/kMNncdI6DZzF8sA wtCQ== MIME-Version: 1.0 X-Received: by 10.224.23.66 with SMTP id q2mr2525347qab.100.1381687709923; Sun, 13 Oct 2013 11:08:29 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.224.207.66 with HTTP; Sun, 13 Oct 2013 11:08:29 -0700 (PDT) In-Reply-To: <6E7CF22B-B83B-4F31-955D-DC64441FAC8D@grondar.org> References: <201310121257.r9CCvvjO006546@svn.freebsd.org> <20131013074825.GO41229@kib.kiev.ua> <3B77143C-7D82-4E62-9974-BC2C6846893F@grondar.org> <20131013151359.GR41229@kib.kiev.ua> <812C1C64-75B0-4FE9-8FCD-B25A484448C6@grondar.org> <1381681119.42859.33.camel@revolution.hippie.lan> <6E7CF22B-B83B-4F31-955D-DC64441FAC8D@grondar.org> Date: Sun, 13 Oct 2013 11:08:29 -0700 X-Google-Sender-Auth: 7WjZcc1n6TEw1VijfIDVnGgchOg Message-ID: Subject: Re: svn commit: r256377 - in head: etc/defaults etc/rc.d share/examples/kld/random_adaptor share/man/man4 sys/boot/forth sys/conf sys/dev/glxsb sys/dev/hifn sys/dev/random sys/dev/rndtest sys/dev/safe ... From: Adrian Chadd To: Mark R V Murray Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: Konstantin Belousov , "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" , Ian Lepore X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 13 Oct 2013 18:08:31 -0000 Hi Mark, Can we make the VFS random seeding stuff a compile time option, so we can disable it for the embedded platforms where we'll never use it? Thanks, -adrian On 13 October 2013 10:03, Mark R V Murray wrote: > > On 13 Oct 2013, at 17:18, Ian Lepore wrote: > > > On Sun, 2013-10-13 at 16:18 +0100, Mark R V Murray wrote: > >> On 13 Oct 2013, at 16:13, Konstantin Belousov > wrote: > >>> Surely this works, thank you. The rwfile.c content probably should be > >>> taken under the #ifdef RANDOM_RWFILE. > >> > >> OK - thanks for the feedback! > >> > >>> But I do not see much use for the randomdev_read_file() and > >>> randomdev_write_file() functions. It would be better to directly code > >>> the VFS calls in the random_harvestq_cache(). For one thing, it would > >>> eliminate unneccessary close and open of the entropy file. > >> > >> There is some uncertainty about the future of that code, so I want > >> to keep it that way for now. Writing files from the kernel is making so@ > >> very uncomfortable, and there is too much scope for error there. > >> > > > > Indeed, it makes me nervous too, as a heavy user of readonly root > > filesystems. If writing this file is so critical that it has to be done > > by the kernel, then what happens when it fails? Right now it prints an > > error and continues -- if it is not so critical that failure means > > panic, then why is the kernel doing it at all? > > Good points all. The intent is not to win the arms-race outright, but to > win the common-case battles as convincingly as possible. That said, its > not looking good for the process, but I still want to give it a decent > look before/if yanking it. > > > Why is the file even in the root filesystem? /var/db seems to be the > > right place for a transient file needed by the system. > > Because that appears to be the best place to put first-boot entropy from > sysinstall/bsdinstall. /var/db/entropy/... will also be used if possible; > watch this space. > > > Speaking of errors, that might include things like the current code > > calling vn_close() with the FREAD flag on a file open for writing. > > > Thanks :-( :-) > > M > -- > Mark R V Murray > > From owner-svn-src-all@FreeBSD.ORG Sun Oct 13 18:29:23 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C616C195; Sun, 13 Oct 2013 18:29:23 +0000 (UTC) (envelope-from mark@grondar.org) Received: from gromit.grondar.org (grandfather.grondar.org [IPv6:2a01:348:0:15:5d59:5c20:0:2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 8674920CF; Sun, 13 Oct 2013 18:29:23 +0000 (UTC) Received: from graveyard.grondar.org ([88.96.155.33] helo=gronkulator.grondar.org) by gromit.grondar.org with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.80.1 (FreeBSD)) (envelope-from ) id 1VVQPo-0009Bv-J1; Sun, 13 Oct 2013 19:29:22 +0100 Subject: Re: svn commit: r256377 - in head: etc/defaults etc/rc.d share/examples/kld/random_adaptor share/man/man4 sys/boot/forth sys/conf sys/dev/glxsb sys/dev/hifn sys/dev/random sys/dev/rndtest sys/dev/safe ... Mime-Version: 1.0 (Mac OS X Mail 6.6 \(1510\)) Content-Type: multipart/signed; boundary="Apple-Mail=_D89A9892-8836-4B57-88B6-132C150ECCAA"; protocol="application/pgp-signature"; micalg=pgp-sha512 From: Mark R V Murray In-Reply-To: Date: Sun, 13 Oct 2013 19:29:19 +0100 Message-Id: <7457C9D8-E10E-48A4-8705-05269F876FC0@grondar.org> References: <201310121257.r9CCvvjO006546@svn.freebsd.org> <20131013074825.GO41229@kib.kiev.ua> <3B77143C-7D82-4E62-9974-BC2C6846893F@grondar.org> <20131013151359.GR41229@kib.kiev.ua> <812C1C64-75B0-4FE9-8FCD-B25A484448C6@grondar.org> <1381681119.42859.33.camel@revolution.hippie.lan> <6E7CF22B-B83B-4F31-955D-DC64441FAC8D@grondar.org> To: Adrian Chadd X-Mailer: Apple Mail (2.1510) X-SA-Score: -2.2 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 13 Oct 2013 18:29:23 -0000 --Apple-Mail=_D89A9892-8836-4B57-88B6-132C150ECCAA Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=iso-8859-1 On 13 Oct 2013, at 19:08, Adrian Chadd wrote: > Hi Mark, >=20 > Can we make the VFS random seeding stuff a compile time option, so we = can disable it for the embedded platforms where we'll never use it? Like 'options RANDOM_RWFILE'? M --=20 Mark R V Murray --Apple-Mail=_D89A9892-8836-4B57-88B6-132C150ECCAA Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.20 (Darwin) Comment: GPGTools - http://gpgtools.org iQCVAwUBUlrmf958vKOKE6LNAQqFCAQAoo745f18vORNE/UEwL4vNvys6JmzAYfQ KFPFgoTF3C1+TxdndpO6p6ni5C6uExOQox9yfXwy1hJrojZFcwIsQhS3fqsUA/tS N0R2kyo3GaxMQBw67hiXALHmPuk9ZLnj3cS07qRGeYHjVsCjxLMz1+pRWDRgDbdo mh3vAFH/hvo= =qQfw -----END PGP SIGNATURE----- --Apple-Mail=_D89A9892-8836-4B57-88B6-132C150ECCAA-- From owner-svn-src-all@FreeBSD.ORG Sun Oct 13 18:40:44 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 190464E6; Sun, 13 Oct 2013 18:40:44 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-qe0-x22e.google.com (mail-qe0-x22e.google.com [IPv6:2607:f8b0:400d:c02::22e]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A5D922155; Sun, 13 Oct 2013 18:40:43 +0000 (UTC) Received: by mail-qe0-f46.google.com with SMTP id s14so3368001qeb.5 for ; Sun, 13 Oct 2013 11:40:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=vhsTiuBm6Ukx4Gd3+DlPBxwaSKjmTAMVkSUDsydR1gc=; b=cR+oHQG+y0L/ezS81MMwJXh544EmAEckCV2Q2D2o/nonn707N8jAYvVprTiJPamFx4 QVrZodP1fvYPckUvrQ3nV6uwASu9lS6JMOCveBlVXgEScflV7V0KlKfteF876SadqTb+ sKhPGKn4+AmVgy4cJVRlAKs+/81JzWhuz2vrJfs8yAteQvz0eBk82ofp0P10htoXTtsj zwHO62RZAurE4NJik6y6kDicCLCMCvDqygalzmCxkddN1jgRD6fKXOoad9Hkg0spNavV ScX0hPofszjGPlkJh1ATLsS3bo9wopuA3X4kgM1FRiadSVURqgCmSw+8Bqzu1nIzozKj tj9A== MIME-Version: 1.0 X-Received: by 10.224.147.84 with SMTP id k20mr2556409qav.99.1381689642781; Sun, 13 Oct 2013 11:40:42 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.224.207.66 with HTTP; Sun, 13 Oct 2013 11:40:42 -0700 (PDT) In-Reply-To: <7457C9D8-E10E-48A4-8705-05269F876FC0@grondar.org> References: <201310121257.r9CCvvjO006546@svn.freebsd.org> <20131013074825.GO41229@kib.kiev.ua> <3B77143C-7D82-4E62-9974-BC2C6846893F@grondar.org> <20131013151359.GR41229@kib.kiev.ua> <812C1C64-75B0-4FE9-8FCD-B25A484448C6@grondar.org> <1381681119.42859.33.camel@revolution.hippie.lan> <6E7CF22B-B83B-4F31-955D-DC64441FAC8D@grondar.org> <7457C9D8-E10E-48A4-8705-05269F876FC0@grondar.org> Date: Sun, 13 Oct 2013 11:40:42 -0700 X-Google-Sender-Auth: uOuSJ-oMJVWr0Yo_ONrp7ELWtwQ Message-ID: Subject: Re: svn commit: r256377 - in head: etc/defaults etc/rc.d share/examples/kld/random_adaptor share/man/man4 sys/boot/forth sys/conf sys/dev/glxsb sys/dev/hifn sys/dev/random sys/dev/rndtest sys/dev/safe ... From: Adrian Chadd To: Mark R V Murray Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 13 Oct 2013 18:40:44 -0000 On 13 October 2013 11:29, Mark R V Murray wrote: > > On 13 Oct 2013, at 19:08, Adrian Chadd wrote: > > > Hi Mark, > > > > Can we make the VFS random seeding stuff a compile time option, so we > can disable it for the embedded platforms where we'll never use it? > > Like 'options RANDOM_RWFILE'? > Ah, i didn't realise this was going to be an option moving forward. Cool. I thought it was just a temporary option that would go away when the code is done. thanks! -a From owner-svn-src-all@FreeBSD.ORG Mon Oct 14 05:44:16 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id D66E1463; Mon, 14 Oct 2013 05:44:16 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id C29C22BAA; Mon, 14 Oct 2013 05:44:16 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9E5iG3o075778; Mon, 14 Oct 2013 05:44:16 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9E5iGM5075777; Mon, 14 Oct 2013 05:44:16 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201310140544.r9E5iGM5075777@svn.freebsd.org> From: Konstantin Belousov Date: Mon, 14 Oct 2013 05:44:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r256435 - stable/9/sys/sys X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 14 Oct 2013 05:44:16 -0000 Author: kib Date: Mon Oct 14 05:44:16 2013 New Revision: 256435 URL: http://svnweb.freebsd.org/changeset/base/256435 Log: MFC r256100: Add the definition of DF_1_INTERPOSE flag. Modified: stable/9/sys/sys/elf_common.h Directory Properties: stable/9/sys/ (props changed) stable/9/sys/sys/ (props changed) Modified: stable/9/sys/sys/elf_common.h ============================================================================== --- stable/9/sys/sys/elf_common.h Mon Oct 14 00:56:38 2013 (r256434) +++ stable/9/sys/sys/elf_common.h Mon Oct 14 05:44:16 2013 (r256435) @@ -478,6 +478,7 @@ typedef struct { #define DF_1_LOADFLTR 0x00000010 /* Immediate loading of filtees */ #define DF_1_NOOPEN 0x00000040 /* Do not allow loading on dlopen() */ #define DF_1_ORIGIN 0x00000080 /* Process $ORIGIN */ +#define DF_1_INTERPOSE 0x00000400 /* Interpose all objects but main */ #define DF_1_NODEFLIB 0x00000800 /* Do not search default paths */ /* Values for n_type. Used in core files. */ From owner-svn-src-all@FreeBSD.ORG Mon Oct 14 05:49:21 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id B919F5D4; Mon, 14 Oct 2013 05:49:21 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A63A52BD0; Mon, 14 Oct 2013 05:49:21 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9E5nLeA076969; Mon, 14 Oct 2013 05:49:21 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9E5nLgO076967; Mon, 14 Oct 2013 05:49:21 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201310140549.r9E5nLgO076967@svn.freebsd.org> From: Konstantin Belousov Date: Mon, 14 Oct 2013 05:49:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r256436 - stable/9/libexec/rtld-elf X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 14 Oct 2013 05:49:21 -0000 Author: kib Date: Mon Oct 14 05:49:20 2013 New Revision: 256436 URL: http://svnweb.freebsd.org/changeset/base/256436 Log: MFC r256101: Implement support for the interpose dso flag. Modified: stable/9/libexec/rtld-elf/rtld.c stable/9/libexec/rtld-elf/rtld.h Directory Properties: stable/9/libexec/rtld-elf/ (props changed) Modified: stable/9/libexec/rtld-elf/rtld.c ============================================================================== --- stable/9/libexec/rtld-elf/rtld.c Mon Oct 14 05:44:16 2013 (r256435) +++ stable/9/libexec/rtld-elf/rtld.c Mon Oct 14 05:49:20 2013 (r256436) @@ -116,6 +116,7 @@ static Objlist_Entry *objlist_find(Objli static void objlist_init(Objlist *); static void objlist_push_head(Objlist *, Obj_Entry *); static void objlist_push_tail(Objlist *, Obj_Entry *); +static void objlist_put_after(Objlist *, Obj_Entry *, Obj_Entry *); static void objlist_remove(Objlist *, Obj_Entry *); static void *path_enumerate(const char *, path_enum_proc, void *); static int relocate_object_dag(Obj_Entry *root, bool bind_now, @@ -323,6 +324,7 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_ Objlist_Entry *entry; Obj_Entry *obj; Obj_Entry **preload_tail; + Obj_Entry *last_interposer; Objlist initlist; RtldLockState lockstate; char *library_path_rpath; @@ -537,8 +539,14 @@ _rtld(Elf_Addr *sp, func_ptr_type *exit_ die(); /* Make a list of all objects loaded at startup. */ + last_interposer = obj_main; for (obj = obj_list; obj != NULL; obj = obj->next) { - objlist_push_tail(&list_main, obj); + if (obj->z_interpose && obj != obj_main) { + objlist_put_after(&list_main, last_interposer, obj); + last_interposer = obj; + } else { + objlist_push_tail(&list_main, obj); + } obj->refcount++; } @@ -1132,6 +1140,8 @@ digest_dynamic1(Obj_Entry *obj, int earl obj->z_nodelete = true; if (dynp->d_un.d_val & DF_1_LOADFLTR) obj->z_loadfltr = true; + if (dynp->d_un.d_val & DF_1_INTERPOSE) + obj->z_interpose = true; if (dynp->d_un.d_val & DF_1_NODEFLIB) obj->z_nodeflib = true; break; @@ -1980,6 +1990,7 @@ static int load_preload_objects(void) { char *p = ld_preload; + Obj_Entry *obj; static const char delim[] = " \t:;"; if (p == NULL) @@ -1992,8 +2003,10 @@ load_preload_objects(void) savech = p[len]; p[len] = '\0'; - if (load_object(p, -1, NULL, 0) == NULL) + obj = load_object(p, -1, NULL, 0); + if (obj == NULL) return -1; /* XXX - cleanup */ + obj->z_interpose = true; p[len] = savech; p += len; p += strspn(p, delim); @@ -2382,6 +2395,23 @@ objlist_push_tail(Objlist *list, Obj_Ent } static void +objlist_put_after(Objlist *list, Obj_Entry *listobj, Obj_Entry *obj) +{ + Objlist_Entry *elm, *listelm; + + STAILQ_FOREACH(listelm, list, link) { + if (listelm->obj == listobj) + break; + } + elm = NEW(Objlist_Entry); + elm->obj = obj; + if (listelm != NULL) + STAILQ_INSERT_AFTER(list, listelm, elm, link); + else + STAILQ_INSERT_TAIL(list, elm, link); +} + +static void objlist_remove(Objlist *list, Obj_Entry *obj) { Objlist_Entry *elm; Modified: stable/9/libexec/rtld-elf/rtld.h ============================================================================== --- stable/9/libexec/rtld-elf/rtld.h Mon Oct 14 05:44:16 2013 (r256435) +++ stable/9/libexec/rtld-elf/rtld.h Mon Oct 14 05:49:20 2013 (r256436) @@ -259,6 +259,7 @@ typedef struct Struct_Obj_Entry { bool z_nodelete : 1; /* Do not unload the object and dependencies */ bool z_noopen : 1; /* Do not load on dlopen */ bool z_loadfltr : 1; /* Immediately load filtees */ + bool z_interpose : 1; /* Interpose all objects but main */ bool z_nodeflib : 1; /* Don't search default library path */ bool ref_nodel : 1; /* Refcount increased to prevent dlclose */ bool init_scanned: 1; /* Object is already on init list. */ From owner-svn-src-all@FreeBSD.ORG Mon Oct 14 05:56:16 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 6EFD4931; Mon, 14 Oct 2013 05:56:16 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 59EEC2C1B; Mon, 14 Oct 2013 05:56:16 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9E5uGVA080920; Mon, 14 Oct 2013 05:56:16 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9E5uGJa080919; Mon, 14 Oct 2013 05:56:16 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201310140556.r9E5uGJa080919@svn.freebsd.org> From: Konstantin Belousov Date: Mon, 14 Oct 2013 05:56:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r256437 - stable/9/sys/dev/isci X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 14 Oct 2013 05:56:16 -0000 Author: kib Date: Mon Oct 14 05:56:15 2013 New Revision: 256437 URL: http://svnweb.freebsd.org/changeset/base/256437 Log: MFC r256125: Make isci(4) loadable. Modified: stable/9/sys/dev/isci/isci.c Directory Properties: stable/9/sys/ (props changed) stable/9/sys/dev/ (props changed) Modified: stable/9/sys/dev/isci/isci.c ============================================================================== --- stable/9/sys/dev/isci/isci.c Mon Oct 14 05:49:20 2013 (r256436) +++ stable/9/sys/dev/isci/isci.c Mon Oct 14 05:56:15 2013 (r256437) @@ -81,6 +81,7 @@ static driver_t isci_pci_driver = { }; DRIVER_MODULE(isci, pci, isci_pci_driver, isci_devclass, 0, 0); +MODULE_DEPEND(isci, cam, 1, 1, 1); static struct _pcsid { From owner-svn-src-all@FreeBSD.ORG Mon Oct 14 06:42:32 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 154D6E3D; Mon, 14 Oct 2013 06:42:32 +0000 (UTC) (envelope-from nwhitehorn@freebsd.org) Received: from anacreon.physics.wisc.edu (unknown [IPv6:2607:f388:101c:0:216:cbff:fe39:3fae]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id C3D342DDE; Mon, 14 Oct 2013 06:42:31 +0000 (UTC) Received: from anacreon.physics.wisc.edu (localhost [127.0.0.1]) by anacreon.physics.wisc.edu (8.14.7/8.14.7) with ESMTP id r9E6gStW044141; Mon, 14 Oct 2013 01:42:28 -0500 (CDT) (envelope-from nwhitehorn@freebsd.org) Received: from localhost (nwhitehorn@localhost) by anacreon.physics.wisc.edu (8.14.7/8.14.7/Submit) with ESMTP id r9E6gSE0044138; Mon, 14 Oct 2013 01:42:28 -0500 (CDT) (envelope-from nwhitehorn@freebsd.org) X-Authentication-Warning: anacreon.physics.wisc.edu: nwhitehorn owned process doing -bs Date: Mon, 14 Oct 2013 01:42:28 -0500 (CDT) From: Nathan Whitehorn X-X-Sender: nwhitehorn@anacreon.physics.wisc.edu To: Devin Teske Subject: Re: svn commit: r256343 - in head/usr.sbin/bsdinstall: . scripts In-Reply-To: <13CA24D6AB415D428143D44749F57D720FC60628@LTCFISWMSGMB21.FNFIS.com> Message-ID: References: <201310112041.r9BKfZeT002056@svn.freebsd.org> <5258F9B3.7030101@freebsd.org> <13CA24D6AB415D428143D44749F57D720FC5BB95@LTCFISWMSGMB21.FNFIS.com> <13CA24D6AB415D428143D44749F57D720FC60628@LTCFISWMSGMB21.FNFIS.com> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed Cc: Nathan Whitehorn , "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" , "Teske, Devin" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 14 Oct 2013 06:42:32 -0000 Devin, In this thread, I have made the following requests: 1. I suggested that camcontrol is not the right place to get disk ident strings, since not all disks are CAM, and suggested an alternative. 2. I pointed out a possible bug related to MBR setup and suggested a solution. 3. I asked you to update the man page to reflect the new features, as well as update a few other scripts to allow them to use your ZFS code. 4. I requested a somewhat longer testing period and additional review for future significant installer changes like this in the run-up to a release and tried to explain my rationale. 5. I suggested that the "Submitted by" and "Reviewed by" should probably not be the same person. I also thanked you for the patch, which adds a sorely-missed feature to the installer. I do not believe that any of these minor requests were unreasonable. Certainly, I do not see that they merit the vitriol that follows here. Since it doesn't seem to help with anything, I won't send any more mail on this. The one thing I have done is to ask re@ to ensure that, following the usual conventions, all non-trivial patches to the installer proposed for merge to stable/10 be reviewed and have a reasonable testing period in HEAD or on mailing lists before being MFC'ed for the remainder of the 10.0 release process. -Nathan On Sun, 13 Oct 2013, Teske, Devin wrote: > > On Oct 13, 2013, at 12:41 AM, Nathan Whitehorn wrote: > >> >> >> On Sat, 12 Oct 2013, Teske, Devin wrote: >> >>> >>> On Oct 12, 2013, at 12:26 AM, Nathan Whitehorn wrote: >>> >>>> On 10/11/13 22:41, Devin Teske wrote: >>>>> Author: dteske >>>>> Date: Fri Oct 11 20:41:35 2013 >>>>> New Revision: 256343 >>>>> URL: https://urldefense.proofpoint.com/v1/url?u=http://svnweb.freebsd.org/changeset/base/256343&k=%2FbkpAUdJWZuiTILCq%2FFnQg%3D%3D%0A&r=Mrjs6vR4%2Faj2Ns9%2FssHJjg%3D%3D%0A&m=LDzuPpXPP4D5BzfISZjw%2BXitYn4aKVzfXzcrmMNFo2U%3D%0A&s=3d0963d9c497f7bad0918888032ca62844580612dc48ab3a8a6768fe640c365b >>>>> >>>>> Log: >>>>> Add zfsboot module as an option for automatic configuration. Default is >>>>> to run interactively but it can be scripted too (optinally completely >>>>> non-interactive). Currently supports GELI and all ZFS vdev types. Also >>>>> performs validation on selections/settings providing error messages if >>>>> necessary, explaining (in plain language) what the issue is. Currently >>>>> the auto partitioning of naked disks only supports GPT and MBR (VTOC8 >>>>> pending for sparc64), so is only available for i386/amd64 install. >>>>> >>>>> Submitted by: Allan Jude , myself >>>>> Reviewed by: Allan Jude >>>>> Approved by: re (glebius) >>>> >>>> Hi Devin -- >>>> >>>> As was discussed on the mailing list, this patch still has some issues >>>> that need to be resolved, >>> >>> Can you kindly provide links? I'm crawling through the mailing lists and >>> not finding anything for the October, (current, stable, sysinstall, ... ?? others?) >>> >>> Do I need to be looking back in September? I wouldn't think so, because that >>> bit wasn't even in our development tree until October 1st: >> >> This was discussion on freebsd-current from yesterday and the day before. >> > > Links or it didn't happen. > > HINT: I just (for the the third time on this topic) crawled the following: > http://lists.freebsd.org/pipermail/freebsd-current/2013-October/thread.html > > Please help me find what you're talking about. > > > > >>> https://urldefense.proofpoint.com/v1/url?u=http://druidbsd.cvs.sf.net/viewvc/druidbsd/bsdinstall_zfs/usr.sbin%253A%253Absdconfig%253A%253Ashare%253A%253Adevice.subr.patch?revision%3D1.1%26view%3Dmarkup&k=%2FbkpAUdJWZuiTILCq%2FFnQg%3D%3D%0A&r=LTzUWWrRnz2iN3PtHDubWRSAh9itVJ%2BMUcNBCQ4tyeo%3D%0A&m=aas9lyFMptmk4eQ3C74XXVkRHbiN19EOClxMMjoCuhE%3D%0A&s=9d21b812e49d921455e998bde7c538318c3bfcc8759c1d0b61eede553b203865 >>> >>> So there couldn't have been any discussion on it before then. So I'm just not >>> able to find the mailing lists where all the action is that they're discussing it. >>> Would be nice to find where the action is, so I could participate. >>> >>> >>>> for example the use of camcontrol >>>> unconditionally even when the disks may not be CAM >>> >>> Allan Adds: >>> 9.2 should have all disks listed in camcontrol, so it shouldn't be an issue >> >> No it shouldn't. Not all disks are interfaced to CAM. MFI comes to mind, nvme, VM block devices, SD cards. There are many other examples. > > OK... duly noted. Much thanks for dispelling that myth. > > > >> Just because you don't have them does not justify a phenomenological approach here. >> > > Need I remind you... we don't *list* the disks from camcontrol... we just use it as a perfunctory > value-add by stealing disk descriptions from it if/when it is describing a disk. > > I would hardly call that phenomenological (rather, more of a multi-pass cartesian ontological > approach). > > > > >>> And: >>> I think the only systems without cam based disks are old 8.x - we're only targeting 10 anyway. >> >> Not true at all. >> > > Thanks. > > > > >>> I tend to agree with those statements. >>> >>> >>>> and destruction of >>>> existing sub-partitioning for MBR disks. >>> >>> I think we both (Allan and I) actually responded directly to you on this one. >>> >>> We have code that handles that. It's in there. >> >> To me, yes, but I was wrong in my initial comment as pointed out by some others. In particular, you need to run gpart -F destroy recursively on the disk instead of just on the root node. There were several other issues and bugs mentioned in people's cursory review of the patch. > > Where? by whom? and when? > > We've already established that it wasn't in the mailing lists (or at least not in -current as you claim). > > > >> I never dreamed you would then just commit it. >> > > A great mentor of mine once said... > > "Practice makes Perfect? NO! Unattainable. [pause] Practice makes *improvement*." > > Perfection versus Improvement. > > I would be hard-pressed to accept any argument that a regression has occurred. > > > >> I really really don't want to have to subject installer changes to explicit approval requirements, > > Threats won't help your cause. Civility is key. > > >> but *please* request review of non-trivial changes before commits, especially to the disk partitioning code, > > Didn't touch your disk partitioning code. > > I have zero plans to. You can keep it (I'll just replace it in-whole when I have something better). > > > >> and especially again before insta-MFCing them to a stable branch right before a release. > > Gleb gave me insta-MFC approval. > > >> It is much, much better than having to do this after the fact as >> we are doing now. > > What we are doing doesn't need to be done (period). > -- > Devin > > _____________ > The information contained in this message is proprietary and/or confidential. If you are not the intended recipient, please: (i) delete the message and all copies; (ii) do not disclose, distribute or use the message in any manner; and (iii) notify the sender immediately. In addition, please be aware that any message addressed to our domain is subject to archiving and review by persons other than the intended recipient. Thank you. > > From owner-svn-src-all@FreeBSD.ORG Mon Oct 14 09:35:06 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 7E957942; Mon, 14 Oct 2013 09:35:06 +0000 (UTC) (envelope-from des@des.no) Received: from smtp.des.no (smtp.des.no [194.63.250.102]) by mx1.freebsd.org (Postfix) with ESMTP id 394002768; Mon, 14 Oct 2013 09:35:06 +0000 (UTC) Received: from nine.des.no (smtp.des.no [194.63.250.102]) by smtp-int.des.no (Postfix) with ESMTP id 5E3B366B6; Mon, 14 Oct 2013 09:35:05 +0000 (UTC) Received: by nine.des.no (Postfix, from userid 1001) id BCD0CB89; Mon, 14 Oct 2013 11:34:56 +0200 (CEST) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: Ian Lepore Subject: Re: svn commit: r256377 - in head: etc/defaults etc/rc.d share/examples/kld/random_adaptor share/man/man4 sys/boot/forth sys/conf sys/dev/glxsb sys/dev/hifn sys/dev/random sys/dev/rndtest sys/dev/safe ... References: <201310121257.r9CCvvjO006546@svn.freebsd.org> <20131013074825.GO41229@kib.kiev.ua> <3B77143C-7D82-4E62-9974-BC2C6846893F@grondar.org> <20131013151359.GR41229@kib.kiev.ua> <812C1C64-75B0-4FE9-8FCD-B25A484448C6@grondar.org> <1381681119.42859.33.camel@revolution.hippie.lan> Date: Mon, 14 Oct 2013 11:34:56 +0200 In-Reply-To: <1381681119.42859.33.camel@revolution.hippie.lan> (Ian Lepore's message of "Sun, 13 Oct 2013 10:18:39 -0600") Message-ID: <86ppr8xkjj.fsf@nine.des.no> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (berkeley-unix) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Cc: src-committers@FreeBSD.org, svn-src-all@FreeBSD.org, svn-src-head@FreeBSD.org, Mark R V Murray , Konstantin Belousov , Mark Murray X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 14 Oct 2013 09:35:06 -0000 Ian Lepore writes: > Why is the file even in the root filesystem? /var/db seems to be the > right place for a transient file needed by the system. We've had both /entropy and /var/db/entropy for years. The former is created by /etc/rc.d/random during shutdown (and as of a few days ago by the installer), while the latter is maintained by a cron job. The only thing that's new here is that Mark added code to read /entropy from the kernel so we can get it as early as possible. I was uncomfortable with it - especially the part that *writes* it from the kernel - so we hid it behind an off-by-default option until we can figure out what we really want to do about it. DES --=20 Dag-Erling Sm=C3=B8rgrav - des@des.no From owner-svn-src-all@FreeBSD.ORG Mon Oct 14 11:05:14 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 0B23F1A0; Mon, 14 Oct 2013 11:05:14 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id ECF612BF7; Mon, 14 Oct 2013 11:05:13 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9EB5DWP040371; Mon, 14 Oct 2013 11:05:13 GMT (envelope-from hrs@svn.freebsd.org) Received: (from hrs@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9EB5DVu040370; Mon, 14 Oct 2013 11:05:13 GMT (envelope-from hrs@svn.freebsd.org) Message-Id: <201310141105.r9EB5DVu040370@svn.freebsd.org> From: Hiroki Sato Date: Mon, 14 Oct 2013 11:05:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256440 - head/etc/rc.d X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 14 Oct 2013 11:05:14 -0000 Author: hrs Date: Mon Oct 14 11:05:13 2013 New Revision: 256440 URL: http://svnweb.freebsd.org/changeset/base/256440 Log: - Normalize jailname. "example.com" is converted to "example_com". - Fix a bug that some $jail_{jname}_foo variables did not work. - Fix a bug which prevented $jail_devfs_ruleset from working[1]. - Move $jail_parameters to the last of the configuraiton lines[1]. Reported by: Jase Thew[1] Approved by: re (glebius) Modified: head/etc/rc.d/jail Modified: head/etc/rc.d/jail ============================================================================== --- head/etc/rc.d/jail Mon Oct 14 09:28:46 2013 (r256439) +++ head/etc/rc.d/jail Mon Oct 14 11:05:13 2013 (r256440) @@ -94,7 +94,7 @@ extract_var() # parse_options() { - local _j + local _j _p _j=$1 _confwarn=0 @@ -166,7 +166,7 @@ parse_options() jail_handle_ips_option $_ip $_interface alias=0 while : ; do - eval _x=\"\$jail_${_jail}_ip_multi${alias}\" + eval _x=\"\$jail_${_j}_ip_multi${alias}\" [ -z "$_x" ] && break jail_handle_ips_option $_x $_interface @@ -208,6 +208,7 @@ parse_options() eval : \${jail_${_j}_devfs_enable:=${jail_devfs_enable:-NO}} if checkyesno jail_${_j}_devfs_enable; then echo " mount.devfs;" + eval _ruleset=\${jail_${_j}_devfs_ruleset:-${jail_devfs_ruleset}} case $_ruleset in "") ;; [0-9]*) echo " devfs_ruleset = \"$_ruleset\";" ;; @@ -217,7 +218,7 @@ parse_options() # mount(8) only accepts an integer. # This should accept a ruleset name. ;; - *) warn "devfs_ruleset must be integer." ;; + *) warn "devfs_ruleset must be an integer." ;; esac if [ -r $_fstab ]; then echo " mount.fstab = \"$_fstab\";" @@ -234,8 +235,6 @@ parse_options() "\"procfs ${_rootdir%/}/proc procfs rw 0 0\";" fi - echo " ${_parameters};" - eval : \${jail_${_j}_mount_enable:=${jail_mount_enable:-NO}} if checkyesno jail_${_j}_mount_enable; then echo " allow.mount;" >> $_conf @@ -243,6 +242,9 @@ parse_options() extract_var $_j set_hostname_allow allow.set_hostname YN NO extract_var $_j sysvipc_allow allow.sysvipc YN NO + for _p in $_parameters; do + echo " ${_p%\;};" + done echo "}" ) >> $_conf @@ -376,26 +378,32 @@ jail_handle_ips_option() jail_config() { + local _j + case $1 in _ALL) return ;; esac - for _jail in $@; do - if parse_options $_jail; then - echo "$_jail: parameters are in $_conf." + for _j in $@; do + _j=$(echo $_j | tr /. _) + if parse_options $_j; then + echo "$_j: parameters are in $_conf." fi done } jail_console() { + local _j + # One argument that is not _ALL. case $#:$1 in 1:_ALL) err 3 "Specify a jail name." ;; 1:*) ;; *) err 3 "Specify a jail name." ;; esac - eval _cmd=\${jail_$1_consolecmd:-$jail_consolecmd} - $jail_jexec $1 $_cmd + _j=$(echo $1 | tr /. _) + eval _cmd=\${jail_${_j}_consolecmd:-$jail_consolecmd} + $jail_jexec $_j $_cmd } jail_status() @@ -406,6 +414,8 @@ jail_status() jail_start() { + local _j + if [ $# = 0 ]; then return fi @@ -422,21 +432,22 @@ jail_start() ;; esac _tmp=`mktemp -t jail` || exit 3 - for _jail in $@; do - parse_options $_jail || continue + for _j in $@; do + _j=$(echo $_j | tr /. _) + parse_options $_j || continue eval rc_flags=\${jail_${_j}_flags:-$jail_flags} eval command=\${jail_${_j}_program:-$jail_program} if checkyesno jail_parallel_start; then - command_args="-i -f $_conf -c $_jail &" + command_args="-i -f $_conf -c $_j &" else - command_args="-i -f $_conf -c $_jail" + command_args="-i -f $_conf -c $_j" fi if $command $rc_flags $command_args \ >> $_tmp 2>&1 Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id F0F66A5F; Mon, 14 Oct 2013 13:54:23 +0000 (UTC) (envelope-from pluknet@gmail.com) Received: from mail-wg0-x22f.google.com (mail-wg0-x22f.google.com [IPv6:2a00:1450:400c:c00::22f]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 2433629D6; Mon, 14 Oct 2013 13:54:23 +0000 (UTC) Received: by mail-wg0-f47.google.com with SMTP id c11so2404243wgh.14 for ; Mon, 14 Oct 2013 06:54:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=uVzHOTovk9P6AaHCaauxbISjvXQjM82frFksUJf6CPo=; b=Ut6M4MTGJA4E0cUSV4NtuJTvZDvr4EdEgMZWFOj/3jcUhR2CZxnAVm/2SEwv3G1LnV /JKSjTD5V/yvS36HMZK8tsAN5Udhwo+wGYpK6MvygtlgPytZ8tTdlHubMnPEpMs+D7ai vIxvGfUjeytyspKhfGz4bj2NOn7O6b0GMwe20xIM6ue+DR0MqkPaY5+DTOAO/aAHPjJf 2Ic1I7WX6w0B3VhArmC1UUkgw71/+RBZXRQ8JUoG9aBmNqaoYi/o3btdXVPqbfTi203j AQ0kSkiyp3ECxF+XW1PupUfwGBtVc3D1CEzj3vAK8FoJlJ1O5+aLZV/CuppHbkQZZknf TYPA== MIME-Version: 1.0 X-Received: by 10.180.206.42 with SMTP id ll10mr14850982wic.50.1381758861515; Mon, 14 Oct 2013 06:54:21 -0700 (PDT) Sender: pluknet@gmail.com Received: by 10.216.62.69 with HTTP; Mon, 14 Oct 2013 06:54:21 -0700 (PDT) In-Reply-To: <201303082033.r28KXpKK057468@svn.freebsd.org> References: <201303082033.r28KXpKK057468@svn.freebsd.org> Date: Mon, 14 Oct 2013 17:54:21 +0400 X-Google-Sender-Auth: SDWjGNQopA0Iyn9vSBCag37AfQk Message-ID: Subject: Re: svn commit: r248070 - head/sys/net From: Sergey Kandaurov To: "Alexander V. Chernikov" Content-Type: text/plain; charset=ISO-8859-1 Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 14 Oct 2013 13:54:24 -0000 On 9 March 2013 00:33, Alexander V. Chernikov wrote: > Author: melifaro > Date: Fri Mar 8 20:33:50 2013 > New Revision: 248070 > URL: http://svnweb.freebsd.org/changeset/base/248070 > > Log: > Fix long-standing issue with interface routes being unprotected: > Use RTM_PINNED flag to mark route as immutable. > Forbid deleting immutable routes without special rtrequest1_fib() flag. > Adding interface address with prefix already in route table is handled > by atomically deleting old prefix and adding interface one. > > Discussed with: andre, eri > MFC after: 3 weeks [...] > Modified: head/sys/net/route.h > ============================================================================== > --- head/sys/net/route.h Fri Mar 8 20:23:55 2013 (r248069) > +++ head/sys/net/route.h Fri Mar 8 20:33:50 2013 (r248070) > @@ -176,7 +176,7 @@ struct ortentry { > /* 0x20000 unused, was RTF_WASCLONED */ > #define RTF_PROTO3 0x40000 /* protocol specific routing flag */ > /* 0x80000 unused */ > -#define RTF_PINNED 0x100000 /* future use */ > +#define RTF_PINNED 0x100000 /* route is immutable */ > #define RTF_LOCAL 0x200000 /* route represents a local address */ > #define RTF_BROADCAST 0x400000 /* route represents a bcast address */ > #define RTF_MULTICAST 0x800000 /* route represents a mcast address */ man rtentry(9) still references it as "Reserved for future use". Probably this simple change should suffice: Index: share/man/man9/rtentry.9 =================================================================== --- share/man/man9/rtentry.9 (revision 256125) +++ share/man/man9/rtentry.9 (working copy) @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 11, 2008 +.Dd October 14, 2013 .Dt RTENTRY 9 .Os .Sh NAME @@ -154,8 +154,7 @@ .It Dv RTF_PRCLONING This flag is obsolete and simply ignored by facility. .It Dv RTF_PINNED -(Reserved for future use to indicate routes which are not to be -modified by a routing protocol.) +Indicates that this route is immutable to a routing protocol. .It Dv RTF_LOCAL Indicates that the destination of this route is an address configured as belonging to this system. -- wbr, pluknet From owner-svn-src-all@FreeBSD.ORG Mon Oct 14 14:41:44 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id CC82EADC; Mon, 14 Oct 2013 14:41:44 +0000 (UTC) (envelope-from jase@FreeBSD.org) Received: from smtp.btshosting.co.uk (mx-2.btshosting.co.uk [IPv6:2a01:4f8:121:2403:2::]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 8B9AF2D27; Mon, 14 Oct 2013 14:41:44 +0000 (UTC) Received: from [192.168.1.65] (unknown [94.4.78.78]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by svr06-mx.btshosting.co.uk (Postfix) with ESMTPSA id C0C59848D2; Mon, 14 Oct 2013 14:41:42 +0000 (UTC) Message-ID: <525C029A.4090708@FreeBSD.org> Date: Mon, 14 Oct 2013 15:41:30 +0100 From: Jase Thew Organization: The FreeBSD Project User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.0.1 MIME-Version: 1.0 To: Hiroki Sato , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r256440 - head/etc/rc.d References: <201310141105.r9EB5DVu040370@svn.freebsd.org> In-Reply-To: <201310141105.r9EB5DVu040370@svn.freebsd.org> X-Enigmail-Version: 1.5.2 OpenPGP: id=3F9B9617; url=pool.sks-keyservers.net Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="GpMloU2B0J1Gh8qrjCR5LeC1bShRMK05J" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 14 Oct 2013 14:41:44 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --GpMloU2B0J1Gh8qrjCR5LeC1bShRMK05J Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On 14/10/2013 12:05, Hiroki Sato wrote: > Author: hrs > Date: Mon Oct 14 11:05:13 2013 > New Revision: 256440 > URL: http://svnweb.freebsd.org/changeset/base/256440 >=20 > Log: > - Normalize jailname. "example.com" is converted to "example_com". > - Fix a bug that some $jail_{jname}_foo variables did not work. > - Fix a bug which prevented $jail_devfs_ruleset from working[1]. > - Move $jail_parameters to the last of the configuraiton lines[1]. > =20 > Reported by: Jase Thew[1] > Approved by: re (glebius) >=20 Thanks! --=20 Jase Thew jase@FreeBSD.org FreeBSD Ports Committer --GpMloU2B0J1Gh8qrjCR5LeC1bShRMK05J Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.21 (MingW32) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQJ8BAEBCgBmBQJSXAKhXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRGNzY3ODIxQkE1MTQ4MjNFQ0RGNUM3QkRE NEU2NUM4QkZGMUMzODI5AAoJENTmXIv/HDgpHYsQAMYCJsa/bwurvpbVM073Cp6/ JFjB6gSXW8uIQX6shsqwYAqRpBEZQE9R7AEEWUYOlm6wTPTe1mkx/JtghvW6rMRE Sp9SOJphDTYoQM7cKAIkl5eARUg8QXS+P1+6ACssUQfAZTf23+/ueItbpaX1Fr3J luAbKT31SkNunMFIFdxCSphbFW+HYo1EvHqfyPyRj2+8HjMpugYwy3KebIaCvHpK Eq/Hm4/jGk8tmdA4MBJLmkAREQKv/42AAzE159sUlPCMC+Hf4/PoCHJHjjQmI7CV ODqtY/VTgcuIrnpRwAcidJHLpOU+chzoL7CRJliUYLGSfxkdgqQtQ2NktdaN0CEW NldjGJULB1lhl/+xPzrGQGYl8L1wv68bJdtmBHfgL2E8mNSbC5WEIF/ZrZSjVwwa RYVHOT0k35o6KVrsC5gcU7h/2JqC9Ld0cmkgEMdsWlCdbMOvmH4iAna51wgAsHt1 bQUym1WUIyd+ve7JpJLgTGaO+IZMDp+9vhwlRti8sxBKcgnfU5DFGA7dNI/PCn9S FjktfIfGz4Lx1s4iT3SAEVwfa5KrDjqhCiFZjBGJrKsI7/0v/Ea0J7brRKzzjMbv uCIDOqJ9IDpKAD+sQhCBoKosngerkuh6JBM0nSwv9Qrtk8YEO+vJdnwHjzbJbqBH i7QuvvCG0YtX1aMoY8t2 =hmr/ -----END PGP SIGNATURE----- --GpMloU2B0J1Gh8qrjCR5LeC1bShRMK05J-- From owner-svn-src-all@FreeBSD.ORG Mon Oct 14 15:06:49 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 715CFD8; Mon, 14 Oct 2013 15:06:49 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 4F1FE2EAE; Mon, 14 Oct 2013 15:06:49 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9EF6nFE066499; Mon, 14 Oct 2013 15:06:49 GMT (envelope-from dim@svn.freebsd.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9EF6mnv066489; Mon, 14 Oct 2013 15:06:48 GMT (envelope-from dim@svn.freebsd.org) Message-Id: <201310141506.r9EF6mnv066489@svn.freebsd.org> From: Dimitry Andric Date: Mon, 14 Oct 2013 15:06:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r256443 - in stable/9: contrib/binutils/gas/config contrib/binutils/opcodes sys/amd64/amd64 X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 14 Oct 2013 15:06:49 -0000 Author: dim Date: Mon Oct 14 15:06:47 2013 New Revision: 256443 URL: http://svnweb.freebsd.org/changeset/base/256443 Log: MFC r247012 (by jmg): add support for AES and PCLMULQDQ instructions to binutils... Thanks to Mike Belopuhov for the pointer to the OpenBSD patch, though OpenBSD's gcc is very different that it only helped w/ where to modify, not how... Thanks to jhb for some early reviews... Reviewed by: imp, kib MFC r247117 (by jmg): reorder so all the flags are together and make the PCLMUL flag unique.. This fixes the problem on amd64 miscompiling mpboot.s causing boot issues... We are still using gas for a few files in the kernel... Submitted by: kib MFC r255192 (by jhb): Add support for the 'invpcid' instruction to binutils and DDB's disassembler on amd64. MFC r256112: Add support for assembling and disassembling Intel Random Number Generator extensions (e.g. the 'rdrand' mnemonic) to our copy of binutils. Obtained from: OpenBSD, via pfg Modified: stable/9/contrib/binutils/gas/config/tc-i386.c stable/9/contrib/binutils/opcodes/i386-dis.c stable/9/contrib/binutils/opcodes/i386-opc.h stable/9/contrib/binutils/opcodes/i386-opc.tbl stable/9/contrib/binutils/opcodes/i386-tbl.h stable/9/sys/amd64/amd64/db_disasm.c Directory Properties: stable/9/contrib/binutils/ (props changed) stable/9/sys/ (props changed) Modified: stable/9/contrib/binutils/gas/config/tc-i386.c ============================================================================== --- stable/9/contrib/binutils/gas/config/tc-i386.c Mon Oct 14 12:11:19 2013 (r256442) +++ stable/9/contrib/binutils/gas/config/tc-i386.c Mon Oct 14 15:06:47 2013 (r256443) @@ -3981,7 +3981,7 @@ output_insn (void) SSE4 instructions have 3 bytes. We may use one more higher byte to specify a prefix the instruction requires. Exclude instructions which are in both SSE4 and ABM. */ - if ((i.tm.cpu_flags & (CpuSSSE3 | CpuSSE4)) != 0 + if ((i.tm.cpu_flags & (CpuSSSE3 | CpuSSE4 | CpuAES | CpuPCLMUL)) != 0 && (i.tm.cpu_flags & CpuABM) == 0) { if (i.tm.base_opcode & 0xff000000) @@ -3990,7 +3990,8 @@ output_insn (void) goto check_prefix; } } - else if (i.tm.base_opcode == 0x660f3880 || i.tm.base_opcode == 0x660f3881) + else if (i.tm.base_opcode == 0x660f3880 || i.tm.base_opcode == 0x660f3881 + || i.tm.base_opcode == 0x660f3882) { /* invept and invvpid are 3 byte instructions with a mandatory prefix. */ @@ -4033,14 +4034,15 @@ output_insn (void) } else { - if ((i.tm.cpu_flags & (CpuSSSE3 | CpuSSE4)) != 0 + if ((i.tm.cpu_flags & (CpuSSSE3 | CpuSSE4 | CpuAES | CpuPCLMUL)) != 0 && (i.tm.cpu_flags & CpuABM) == 0) { p = frag_more (3); *p++ = (i.tm.base_opcode >> 16) & 0xff; } else if (i.tm.base_opcode == 0x660f3880 || - i.tm.base_opcode == 0x660f3881) + i.tm.base_opcode == 0x660f3881 || + i.tm.base_opcode == 0x660f3882) { p = frag_more (3); *p++ = (i.tm.base_opcode >> 16) & 0xff; Modified: stable/9/contrib/binutils/opcodes/i386-dis.c ============================================================================== --- stable/9/contrib/binutils/opcodes/i386-dis.c Mon Oct 14 12:11:19 2013 (r256442) +++ stable/9/contrib/binutils/opcodes/i386-dis.c Mon Oct 14 15:06:47 2013 (r256443) @@ -543,6 +543,14 @@ fetch_data (struct disassemble_info *inf #define PREGRP97 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 97 } } #define PREGRP98 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 98 } } #define PREGRP99 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 99 } } +#define PREGRP100 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 100 } } +#define PREGRP101 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 101 } } +#define PREGRP102 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 102 } } +#define PREGRP103 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 103 } } +#define PREGRP104 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 104 } } +#define PREGRP105 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 105 } } +#define PREGRP106 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 106 } } +#define PREGRP107 NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 107 } } #define X86_64_0 NULL, { { NULL, X86_64_SPECIAL }, { NULL, 0 } } @@ -1319,7 +1327,7 @@ static const unsigned char threebyte_0x3 /* a0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* af */ /* b0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* bf */ /* c0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* cf */ - /* d0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* df */ + /* d0 */ 0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1, /* df */ /* e0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* ef */ /* f0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* ff */ /* ------------------------------- */ @@ -1382,7 +1390,7 @@ static const unsigned char threebyte_0x3 /* 10 */ 0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0, /* 1f */ /* 20 */ 1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 2f */ /* 30 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 3f */ - /* 40 */ 1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 4f */ + /* 40 */ 1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0, /* 4f */ /* 50 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 5f */ /* 60 */ 1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0, /* 6f */ /* 70 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* 7f */ @@ -1391,7 +1399,7 @@ static const unsigned char threebyte_0x3 /* a0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* af */ /* b0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* bf */ /* c0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* cf */ - /* d0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* df */ + /* d0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, /* df */ /* e0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* ef */ /* f0 */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* ff */ /* ------------------------------- */ @@ -2605,6 +2613,70 @@ static const struct dis386 prefix_user_t { "invvpid",{ Gm, Mo } }, { "(bad)", { XX } }, }, + + /* PREGRP100 */ + { + { "(bad)", { XX } }, + { "(bad)", { XX } }, + { "aesimc", { XM, EXx } }, + { "(bad)", { XX } }, + }, + + /* PREGRP101 */ + { + { "(bad)", { XX } }, + { "(bad)", { XX } }, + { "aesenc",{ XM, EXx } }, + { "(bad)", { XX } }, + }, + + /* PREGRP102 */ + { + { "(bad)", { XX } }, + { "(bad)", { XX } }, + { "aesenclast", { XM, EXx } }, + { "(bad)", { XX } }, + }, + + /* PREGRP103 */ + { + { "(bad)", { XX } }, + { "(bad)", { XX } }, + { "aesdec", { XM, EXx } }, + { "(bad)", { XX } }, + }, + + /* PREGRP104 */ + { + { "(bad)", { XX } }, + { "(bad)", { XX } }, + { "aesdeclast", { XM, EXx } }, + { "(bad)", { XX } }, + }, + + /* PREGRP105 */ + { + { "(bad)", { XX } }, + { "(bad)", { XX } }, + { "aeskeygenassist", { XM, EXx, Ib } }, + { "(bad)", { XX } }, + }, + + /* PREGRP106 */ + { + { "(bad)", { XX } }, + { "(bad)", { XX } }, + { "pclmulqdq", { XM, EXx, Ib } }, + { "(bad)", { XX } }, + }, + + /* PREGRP107 */ + { + { "(bad)", { XX } }, + { "(bad)", { XX } }, + { "invpcid",{ Gm, Mo } }, + { "(bad)", { XX } }, + }, }; static const struct dis386 x86_64_table[][2] = { @@ -2776,7 +2848,7 @@ static const struct dis386 three_byte_ta /* 80 */ { PREGRP98 }, { PREGRP99 }, - { "(bad)", { XX } }, + { PREGRP107 }, { "(bad)", { XX } }, { "(bad)", { XX } }, { "(bad)", { XX } }, @@ -2876,11 +2948,11 @@ static const struct dis386 three_byte_ta { "(bad)", { XX } }, { "(bad)", { XX } }, { "(bad)", { XX } }, - { "(bad)", { XX } }, - { "(bad)", { XX } }, - { "(bad)", { XX } }, - { "(bad)", { XX } }, - { "(bad)", { XX } }, + { PREGRP100 }, + { PREGRP101 }, + { PREGRP102 }, + { PREGRP103 }, + { PREGRP104 }, /* e0 */ { "(bad)", { XX } }, { "(bad)", { XX } }, @@ -2997,7 +3069,7 @@ static const struct dis386 three_byte_ta { PREGRP84 }, { PREGRP85 }, { "(bad)", { XX } }, - { "(bad)", { XX } }, + { PREGRP106 }, { "(bad)", { XX } }, { "(bad)", { XX } }, { "(bad)", { XX } }, @@ -3171,7 +3243,7 @@ static const struct dis386 three_byte_ta { "(bad)", { XX } }, { "(bad)", { XX } }, { "(bad)", { XX } }, - { "(bad)", { XX } }, + { PREGRP105 }, /* e0 */ { "(bad)", { XX } }, { "(bad)", { XX } }, @@ -6366,14 +6438,22 @@ VMX_Fixup (int extrachar ATTRIBUTE_UNUSE static void OP_VMX (int bytemode, int sizeflag) { - used_prefixes |= (prefixes & (PREFIX_DATA | PREFIX_REPZ)); - if (prefixes & PREFIX_DATA) - strcpy (obuf, "vmclear"); - else if (prefixes & PREFIX_REPZ) - strcpy (obuf, "vmxon"); + if (modrm.mod == 3) + { + strcpy (obuf, "rdrand"); + OP_E (v_mode, sizeflag); + } else - strcpy (obuf, "vmptrld"); - OP_E (bytemode, sizeflag); + { + used_prefixes |= (prefixes & (PREFIX_DATA | PREFIX_REPZ)); + if (prefixes & PREFIX_DATA) + strcpy (obuf, "vmclear"); + else if (prefixes & PREFIX_REPZ) + strcpy (obuf, "vmxon"); + else + strcpy (obuf, "vmptrld"); + OP_E (bytemode, sizeflag); + } } static void Modified: stable/9/contrib/binutils/opcodes/i386-opc.h ============================================================================== --- stable/9/contrib/binutils/opcodes/i386-opc.h Mon Oct 14 12:11:19 2013 (r256442) +++ stable/9/contrib/binutils/opcodes/i386-opc.h Mon Oct 14 15:06:47 2013 (r256443) @@ -72,19 +72,23 @@ typedef struct template #define CpuSSE4_1 0x400000 /* SSE4.1 Instructions required */ #define CpuSSE4_2 0x800000 /* SSE4.2 Instructions required */ #define CpuXSAVE 0x1000000 /* XSAVE Instructions required */ - -/* SSE4.1/4.2 Instructions required */ -#define CpuSSE4 (CpuSSE4_1|CpuSSE4_2) +#define CpuAES 0x2000000 /* AES Instructions required */ /* These flags are set by gas depending on the flag_code. */ #define Cpu64 0x4000000 /* 64bit support required */ #define CpuNo64 0x8000000 /* Not supported in the 64bit mode */ +#define CpuPCLMUL 0x10000000 /* Carry-less Multiplication extensions */ +#define CpuRdRnd 0x20000000 /* Intel Random Number Generator extensions */ + +/* SSE4.1/4.2 Instructions required */ +#define CpuSSE4 (CpuSSE4_1|CpuSSE4_2) + /* The default value for unknown CPUs - enable all features to avoid problems. */ #define CpuUnknownFlags (Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686 \ |CpuP4|CpuSledgehammer|CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3|CpuVMX \ |Cpu3dnow|Cpu3dnowA|CpuK6|CpuPadLock|CpuSVME|CpuSSSE3|CpuSSE4_1 \ - |CpuSSE4_2|CpuABM|CpuSSE4a|CpuXSAVE) + |CpuSSE4_2|CpuABM|CpuSSE4a|CpuXSAVE|CpuAES|CpuPCLMUL|CpuRdRnd) /* the bits in opcode_modifier are used to generate the final opcode from the base_opcode. These bits also are used to detect alternate forms of @@ -126,6 +130,8 @@ typedef struct template #define Rex64 0x10000000 /* instruction require Rex64 prefix. */ #define Ugh 0x20000000 /* deprecated fp insn, gets a warning */ +#define NoSuf (No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf) + /* operand_types[i] describes the type of operand i. This is made by OR'ing together all of the possible type masks. (e.g. 'operand_types[i] = Reg|Imm' specifies that operand i can be Modified: stable/9/contrib/binutils/opcodes/i386-opc.tbl ============================================================================== --- stable/9/contrib/binutils/opcodes/i386-opc.tbl Mon Oct 14 12:11:19 2013 (r256442) +++ stable/9/contrib/binutils/opcodes/i386-opc.tbl Mon Oct 14 15:06:47 2013 (r256443) @@ -1498,3 +1498,25 @@ xsetbv, 0, 0xf01, 0xd1, CpuXSAVE, No_bSu xsave, 1, 0xfae, 0x4, CpuXSAVE, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf, { BaseIndex|Disp8|Disp16|Disp32|Disp32S } xsaveopt, 1, 0xfae, 0x6, CpuXSAVE, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf, { BaseIndex|Disp8|Disp16|Disp32|Disp32S } xrstor, 1, 0xfae, 0x5, CpuXSAVE, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf, { BaseIndex|Disp8|Disp16|Disp32|Disp32S } + +// INVPCID +invpcid, 2, 0x660f3882, None, CpuNo64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64, { BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg32 } +invpcid, 2, 0x660f3882, None, Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64, { BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg64 } + +// Intel AES extensions +aesdec, 2, 0x660f38de, None, CpuAES, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf, { RegXMM|LLongMem, RegXMM } +aesdeclast, 2, 0x660f38df, None, CpuAES, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf, { RegXMM|LLongMem, RegXMM } +aesenc, 2, 0x660f38dc, None, CpuAES, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf, { RegXMM|LLongMem, RegXMM } +aesenclast, 2, 0x660f38dd, None, CpuAES, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf, { RegXMM|LLongMem, RegXMM } +aesimc, 2, 0x660f38db, None, CpuAES, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf, { RegXMM|LLongMem, RegXMM } +aeskeygenassist, 3, 0x660f3adf, None, CpuAES, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf, { Imm8, RegXMM|LLongMem, RegXMM } + +// Intel Carry-less Multiplication extensions +pclmulqdq, 3, 0x660f3a44, None, CpuPCLMUL, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf, { Imm8, RegXMM|LLongMem, RegXMM } +pclmullqlqdq, 2, 0x660f3a44, 0x0, CpuPCLMUL, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt, { RegXMM|LLongMem, RegXMM } +pclmulhqlqdq, 2, 0x660f3a44, 0x1, CpuPCLMUL, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt, { RegXMM|LLongMem, RegXMM } +pclmullqhqdq, 2, 0x660f3a44, 0x10, CpuPCLMUL, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt, { RegXMM|LLongMem, RegXMM } +pclmulhqhqdq, 2, 0x660f3a44, 0x11, CpuPCLMUL, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt, { RegXMM|LLongMem, RegXMM } + +// Intel Random Number Generator extensions +rdrand, 1, 0x0fc7, 0x6, CpuRdRnd, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf, { Reg16|Reg32|Reg64 } Modified: stable/9/contrib/binutils/opcodes/i386-tbl.h ============================================================================== --- stable/9/contrib/binutils/opcodes/i386-tbl.h Mon Oct 14 12:11:19 2013 (r256442) +++ stable/9/contrib/binutils/opcodes/i386-tbl.h Mon Oct 14 15:06:47 2013 (r256443) @@ -3641,6 +3641,14 @@ const template i386_optab[] = Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64, { BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg64 } }, + { "invpcid", 2, 0x660f3882, None, CpuNo64, + Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64, + { BaseIndex|Disp8|Disp16|Disp32|Disp32S, + Reg32 } }, + { "invpcid", 2, 0x660f3882, None, Cpu64, + Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64, + { BaseIndex|Disp8|Disp16|Disp32|Disp32S, + Reg64 } }, { "vmcall", 0, 0xf01, 0xc1, CpuVMX, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt, { 0 } }, @@ -4319,6 +4327,59 @@ const template i386_optab[] = { "xrstor", 1, 0xfae, 0x5, CpuXSAVE, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf, { BaseIndex|Disp8|Disp16|Disp32|Disp32S } }, + /* Intel AES extensions */ + {"aesdec", 2, 0x660f38de, None, CpuAES, + Modrm|IgnoreSize|NoSuf, + { RegXMM|LLongMem, + RegXMM } }, + {"aesdeclast", 2, 0x660f38df, None, CpuAES, + Modrm|IgnoreSize|NoSuf, + { RegXMM|LLongMem, + RegXMM } }, + {"aesenc", 2, 0x660f38dc, None, CpuAES, + Modrm|IgnoreSize|NoSuf, + { RegXMM|LLongMem, + RegXMM } }, + {"aesenclast", 2, 0x660f38dd, None, CpuAES, + Modrm|IgnoreSize|NoSuf, + { RegXMM|LLongMem, + RegXMM } }, + {"aesimc", 2, 0x660f38db, None, CpuAES, + Modrm|IgnoreSize|NoSuf, + { RegXMM|LLongMem, + RegXMM } }, + {"aeskeygenassist", 3, 0x660f3adf, None, CpuAES, + Modrm|IgnoreSize|NoSuf, + { Imm8, RegXMM|LLongMem, + RegXMM } }, + + /* Intel Carry-less Multiplication extensions */ + {"pclmulqdq", 3, 0x660f3a44, None, CpuPCLMUL, + Modrm|IgnoreSize|NoSuf, + { Imm8, RegXMM|LLongMem, + RegXMM } }, + {"pclmullqlqdq", 2, 0x660f3a44, 0x0, CpuPCLMUL, + Modrm|IgnoreSize|NoSuf|ImmExt, + { RegXMM|LLongMem, + RegXMM } }, + {"pclmulhqlqdq", 2, 0x660f3a44, 0x1, CpuPCLMUL, + Modrm|IgnoreSize|NoSuf|ImmExt, + { RegXMM|LLongMem, + RegXMM } }, + {"pclmullqhqdq", 2, 0x660f3a44, 0x10, CpuPCLMUL, + Modrm|IgnoreSize|NoSuf|ImmExt, + { RegXMM|LLongMem, + RegXMM } }, + {"pclmulhqhqdq", 2, 0x660f3a44, 0x11, CpuPCLMUL, + Modrm|IgnoreSize|NoSuf|ImmExt, + { RegXMM|LLongMem, + RegXMM } }, + + /* Intel Random Number Generator extensions */ + {"rdrand", 1, 0x0fc7, 0x6, CpuRdRnd, + Modrm|NoSuf, + { Reg16|Reg32|Reg64 } }, + { NULL, 0, 0, 0, 0, 0, { 0 } } }; Modified: stable/9/sys/amd64/amd64/db_disasm.c ============================================================================== --- stable/9/sys/amd64/amd64/db_disasm.c Mon Oct 14 12:11:19 2013 (r256442) +++ stable/9/sys/amd64/amd64/db_disasm.c Mon Oct 14 15:06:47 2013 (r256443) @@ -127,7 +127,7 @@ struct finst { static const struct inst db_inst_0f388x[] = { /*80*/ { "", TRUE, SDEP, op2(E, Rq), "invept" }, /*81*/ { "", TRUE, SDEP, op2(E, Rq), "invvpid" }, -/*82*/ { "", FALSE, NONE, 0, 0 }, +/*82*/ { "", TRUE, SDEP, op2(E, Rq), "invpcid" }, /*83*/ { "", FALSE, NONE, 0, 0 }, /*84*/ { "", FALSE, NONE, 0, 0 }, /*85*/ { "", FALSE, NONE, 0, 0 }, From owner-svn-src-all@FreeBSD.ORG Mon Oct 14 17:43:23 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 37CF031E; Mon, 14 Oct 2013 17:43:23 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 247272A2E; Mon, 14 Oct 2013 17:43:23 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9EHhMXd047694; Mon, 14 Oct 2013 17:43:22 GMT (envelope-from markm@svn.freebsd.org) Received: (from markm@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9EHhM8n047693; Mon, 14 Oct 2013 17:43:22 GMT (envelope-from markm@svn.freebsd.org) Message-Id: <201310141743.r9EHhM8n047693@svn.freebsd.org> From: Mark Murray Date: Mon, 14 Oct 2013 17:43:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256446 - head/sys/modules/random X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 14 Oct 2013 17:43:23 -0000 Author: markm Date: Mon Oct 14 17:43:22 2013 New Revision: 256446 URL: http://svnweb.freebsd.org/changeset/base/256446 Log: Add needed files to the KLD random.ko. Approved by: re (kib) Modified: head/sys/modules/random/Makefile Modified: head/sys/modules/random/Makefile ============================================================================== --- head/sys/modules/random/Makefile Mon Oct 14 16:19:52 2013 (r256445) +++ head/sys/modules/random/Makefile Mon Oct 14 17:43:22 2013 (r256446) @@ -11,6 +11,7 @@ SRCS+= nehemiah.c SRCS+= ivy.c .endif SRCS+= randomdev_soft.c yarrow.c hash.c +SRCS+= random_harvestq.c live_entropy_sources.c rwfile.c SRCS+= rijndael-alg-fst.c rijndael-api-fst.c sha2.c SRCS+= bus_if.h device_if.h vnode_if.h opt_cpu.h opt_random.h From owner-svn-src-all@FreeBSD.ORG Mon Oct 14 17:58:49 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id DAF0CBE9; Mon, 14 Oct 2013 17:58:49 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id C857D2B2C; Mon, 14 Oct 2013 17:58:49 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9EHwnca055643; Mon, 14 Oct 2013 17:58:49 GMT (envelope-from gjb@svn.freebsd.org) Received: (from gjb@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9EHwn60055641; Mon, 14 Oct 2013 17:58:49 GMT (envelope-from gjb@svn.freebsd.org) Message-Id: <201310141758.r9EHwn60055641@svn.freebsd.org> From: Glen Barber Date: Mon, 14 Oct 2013 17:58:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-svnadmin@freebsd.org Subject: svn commit: r256447 - svnadmin/conf X-SVN-Group: svnadmin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 14 Oct 2013 17:58:49 -0000 Author: gjb Date: Mon Oct 14 17:58:49 2013 New Revision: 256447 URL: http://svnweb.freebsd.org/changeset/base/256447 Log: head/ no longer requires re@ approval, now that stable/10 is branched and 10.0-BETA1 is out. Approved by: re (implicit) Modified: svnadmin/conf/approvers Modified: svnadmin/conf/approvers ============================================================================== --- svnadmin/conf/approvers Mon Oct 14 17:43:22 2013 (r256446) +++ svnadmin/conf/approvers Mon Oct 14 17:58:49 2013 (r256447) @@ -16,7 +16,7 @@ # # $FreeBSD$ # -^head/ re +#^head/ re ^stable/10/ re #^stable/9/ re #^stable/8/ re From owner-svn-src-all@FreeBSD.ORG Mon Oct 14 18:17:10 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 93C916E; Mon, 14 Oct 2013 18:17:10 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 80F8B2C4C; Mon, 14 Oct 2013 18:17:10 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9EIHAIj068948; Mon, 14 Oct 2013 18:17:10 GMT (envelope-from pfg@svn.freebsd.org) Received: (from pfg@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9EIHAGV068947; Mon, 14 Oct 2013 18:17:10 GMT (envelope-from pfg@svn.freebsd.org) Message-Id: <201310141817.r9EIHAGV068947@svn.freebsd.org> From: "Pedro F. Giffuni" Date: Mon, 14 Oct 2013 18:17:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256448 - head/sys/ufs/ufs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 14 Oct 2013 18:17:10 -0000 Author: pfg Date: Mon Oct 14 18:17:09 2013 New Revision: 256448 URL: http://svnweb.freebsd.org/changeset/base/256448 Log: Make di_blocks unsigned in UFS1 as is the case already for UFS2. Most of the code between UFS1 and UFS2 is shared so this change is pretty safe. Not only this makes UFS1 and 2 consistent but it also matches what NetBSD and MacOS X have for some years now. Reviewed by: mckusick MFC after: 1 month Modified: head/sys/ufs/ufs/dinode.h Modified: head/sys/ufs/ufs/dinode.h ============================================================================== --- head/sys/ufs/ufs/dinode.h Mon Oct 14 17:58:49 2013 (r256447) +++ head/sys/ufs/ufs/dinode.h Mon Oct 14 18:17:09 2013 (r256448) @@ -179,7 +179,7 @@ struct ufs1_dinode { ufs1_daddr_t di_db[NDADDR]; /* 40: Direct disk blocks. */ ufs1_daddr_t di_ib[NIADDR]; /* 88: Indirect disk blocks. */ u_int32_t di_flags; /* 100: Status flags (chflags). */ - int32_t di_blocks; /* 104: Blocks actually held. */ + u_int32_t di_blocks; /* 104: Blocks actually held. */ u_int32_t di_gen; /* 108: Generation number. */ u_int32_t di_uid; /* 112: File owner. */ u_int32_t di_gid; /* 116: File group. */ From owner-svn-src-all@FreeBSD.ORG Mon Oct 14 18:24:31 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 6FD4E251; Mon, 14 Oct 2013 18:24:31 +0000 (UTC) (envelope-from markm@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 5D1782CB9; Mon, 14 Oct 2013 18:24:31 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9EIOVft073183; Mon, 14 Oct 2013 18:24:31 GMT (envelope-from markm@svn.freebsd.org) Received: (from markm@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9EIOVWF073182; Mon, 14 Oct 2013 18:24:31 GMT (envelope-from markm@svn.freebsd.org) Message-Id: <201310141824.r9EIOVWF073182@svn.freebsd.org> From: Mark Murray Date: Mon, 14 Oct 2013 18:24:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r256449 - stable/10/sys/modules/random X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 14 Oct 2013 18:24:31 -0000 Author: markm Date: Mon Oct 14 18:24:30 2013 New Revision: 256449 URL: http://svnweb.freebsd.org/changeset/base/256449 Log: MFC: Add extra files to the KLD random.ko module to allow it to load. Approved by: re (kib) Modified: stable/10/sys/modules/random/Makefile Directory Properties: stable/10/sys/ (props changed) Modified: stable/10/sys/modules/random/Makefile ============================================================================== --- stable/10/sys/modules/random/Makefile Mon Oct 14 18:17:09 2013 (r256448) +++ stable/10/sys/modules/random/Makefile Mon Oct 14 18:24:30 2013 (r256449) @@ -11,6 +11,7 @@ SRCS+= nehemiah.c SRCS+= ivy.c .endif SRCS+= randomdev_soft.c yarrow.c hash.c +SRCS+= random_harvestq.c live_entropy_sources.c rwfile.c SRCS+= rijndael-alg-fst.c rijndael-api-fst.c sha2.c SRCS+= bus_if.h device_if.h vnode_if.h opt_cpu.h opt_random.h From owner-svn-src-all@FreeBSD.ORG Mon Oct 14 18:31:17 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C7AAA4AB; Mon, 14 Oct 2013 18:31:17 +0000 (UTC) (envelope-from bdrewery@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A4F672D26; Mon, 14 Oct 2013 18:31:17 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9EIVHZV076961; Mon, 14 Oct 2013 18:31:17 GMT (envelope-from bdrewery@svn.freebsd.org) Received: (from bdrewery@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9EIVG6M076950; Mon, 14 Oct 2013 18:31:16 GMT (envelope-from bdrewery@svn.freebsd.org) Message-Id: <201310141831.r9EIVG6M076950@svn.freebsd.org> From: Bryan Drewery Date: Mon, 14 Oct 2013 18:31:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256450 - in head: . lib/libyaml share/mk tools usr.sbin/pkg X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 14 Oct 2013 18:31:17 -0000 Author: bdrewery (ports committer) Date: Mon Oct 14 18:31:15 2013 New Revision: 256450 URL: http://svnweb.freebsd.org/changeset/base/256450 Log: Rename libbsdyml to libyaml, make private, and bump SHLIB_MAJOR to 1.0 Suggested by: des Approved by: bapt MFC after: 1 week Deleted: head/lib/libyaml/libbsdyml.3 Modified: head/ObsoleteFiles.inc head/UPDATING head/lib/libyaml/Makefile head/share/mk/bsd.libnames.mk head/tools/make_libdeps.sh head/usr.sbin/pkg/Makefile head/usr.sbin/pkg/config.c Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Mon Oct 14 18:24:30 2013 (r256449) +++ head/ObsoleteFiles.inc Mon Oct 14 18:31:15 2013 (r256450) @@ -38,6 +38,17 @@ # xargs -n1 | sort | uniq -d; # done +# 20131014: libbsdyml becomes private +OLD_FILES+=usr/lib/libbsdyml.a +OLD_FILES+=usr/lib/libbsdyml.so +OLD_LIBS+=usr/lib/libbsdyml.so.0 +OLD_FILES+=usr/lib/libbsdyml_p.a +OLD_FILES+=usr/lib32/libbsdyml.a +OLD_FILES+=usr/lib32/libbsdyml.so +OLD_LIBS+=usr/lib32/libbsdyml.so.0 +OLD_FILES+=usr/lib32/libbsdyml_p.a +OLD_FILES+=usr/share/man/man3/libbsdyml.3.gz +OLD_FILES+=usr/include/bsdyml.h # 20131013: Removal of the ATF tools OLD_FILES+=etc/atf/FreeBSD.conf OLD_FILES+=etc/atf/atf-run.hooks Modified: head/UPDATING ============================================================================== --- head/UPDATING Mon Oct 14 18:24:30 2013 (r256449) +++ head/UPDATING Mon Oct 14 18:31:15 2013 (r256450) @@ -31,6 +31,15 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11 disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20131014: + libbsdyml has been renamed to libyaml and moved to /usr/lib/private. + This will break ports-mgmt/pkg. Rebuild the port, or upgrade to pkg + 1.1.4_8 and verify bsdyml not linked in, before running "make + delete-old-libs": + # make -C /usr/ports/ports-mgmt/pkg build deinstall install clean + or + # pkg install pkg; ldd /usr/local/sbin/pkg | grep bsdyml + 20131010: The rc.d/jail script has been updated to support jail(8) configuration file. The "jail__*" rc.conf(5) variables Modified: head/lib/libyaml/Makefile ============================================================================== --- head/lib/libyaml/Makefile Mon Oct 14 18:24:30 2013 (r256449) +++ head/lib/libyaml/Makefile Mon Oct 14 18:31:15 2013 (r256450) @@ -2,15 +2,13 @@ LIBYAML= ${.CURDIR}/../../contrib/libyaml -LIB= bsdyml -SHLIB_MAJOR= 0 -INCS= bsdyml.h +LIB= yaml +PRIVATELIB= true +SHLIB_MAJOR= 1 SRCS= api.c dumper.c emitter.c loader.c \ parser.c reader.c scanner.c writer.c -MAN= libbsdyml.3 .PATH: ${LIBYAML}/src ${LIBYAML}/include -CLEANFILES= bsdyml.h WARNS?= 1 CFLAGS+= -I${LIBYAML}/include \ @@ -18,7 +16,4 @@ CFLAGS+= -I${LIBYAML}/include \ -I${.CURDIR} \ -DHAVE_CONFIG_H -bsdyml.h: yaml.h - cp -f ${.ALLSRC} ${.TARGET} - .include Modified: head/share/mk/bsd.libnames.mk ============================================================================== --- head/share/mk/bsd.libnames.mk Mon Oct 14 18:24:30 2013 (r256449) +++ head/share/mk/bsd.libnames.mk Mon Oct 14 18:31:15 2013 (r256450) @@ -21,7 +21,6 @@ LIBAVL?= ${DESTDIR}${LIBDIR}/libavl.a LIBBEGEMOT?= ${DESTDIR}${LIBDIR}/libbegemot.a LIBBLUETOOTH?= ${DESTDIR}${LIBDIR}/libbluetooth.a LIBBSDXML?= ${DESTDIR}${LIBDIR}/libbsdxml.a -LIBBSDYML?= ${DESTDIR}${LIBDIR}/libbsdyml.a LIBBSM?= ${DESTDIR}${LIBDIR}/libbsm.a LIBBSNMP?= ${DESTDIR}${LIBDIR}/libbsnmp.a LIBBZ2?= ${DESTDIR}${LIBDIR}/libbz2.a @@ -166,6 +165,7 @@ LIBWIND?= ${DESTDIR}${LIBDIR}/libwind.a LIBWRAP?= ${DESTDIR}${LIBDIR}/libwrap.a LIBXPG4?= ${DESTDIR}${LIBDIR}/libxpg4.a LIBY?= ${DESTDIR}${LIBDIR}/liby.a +LIBYAML?= ${DESTDIR}${LIBPRIVATEDIR}/libyaml.a LIBYPCLNT?= ${DESTDIR}${LIBDIR}/libypclnt.a LIBZ?= ${DESTDIR}${LIBDIR}/libz.a LIBZFS?= ${DESTDIR}${LIBDIR}/libzfs.a Modified: head/tools/make_libdeps.sh ============================================================================== --- head/tools/make_libdeps.sh Mon Oct 14 18:24:30 2013 (r256449) +++ head/tools/make_libdeps.sh Mon Oct 14 18:31:15 2013 (r256450) @@ -48,7 +48,6 @@ sed -E -e's; ;! ;g' -e's;$;!;' -e's;-lbsdxml!;lib/libexpat;g' - -e's;-lbsdyml!;lib/libyaml;g' -e's;-lpthread!;lib/libthr;g' -e's;-lm!;lib/msun;g' -e's;-l(ncurses|termcap)!;lib/ncurses/ncurses;g' Modified: head/usr.sbin/pkg/Makefile ============================================================================== --- head/usr.sbin/pkg/Makefile Mon Oct 14 18:24:30 2013 (r256449) +++ head/usr.sbin/pkg/Makefile Mon Oct 14 18:31:15 2013 (r256450) @@ -4,7 +4,10 @@ PROG= pkg SRCS= pkg.c dns_utils.c config.c NO_MAN= yes -DPADD= ${LIBARCHIVE} ${LIBELF} ${LIBFETCH} ${LIBBSDYML} ${LIBSBUF} -LDADD= -larchive -lelf -lfetch -lbsdyml -lsbuf +CFLAGS+=-I${.CURDIR}/../../contrib/libyaml/include +.PATH: ${.CURDIR}/../../contrib/libyaml/include +DPADD= ${LIBARCHIVE} ${LIBELF} ${LIBFETCH} ${LIBYAML} ${LIBSBUF} +LDADD= -larchive -lelf -lfetch -lyaml -lsbuf +USEPRIVATELIB= yaml .include Modified: head/usr.sbin/pkg/config.c ============================================================================== --- head/usr.sbin/pkg/config.c Mon Oct 14 18:24:30 2013 (r256449) +++ head/usr.sbin/pkg/config.c Mon Oct 14 18:31:15 2013 (r256450) @@ -33,7 +33,7 @@ __FBSDID("$FreeBSD$"); #include #include -#include +#include #include #include #include From owner-svn-src-all@FreeBSD.ORG Mon Oct 14 18:45:43 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 9927D98B; Mon, 14 Oct 2013 18:45:43 +0000 (UTC) (envelope-from gavin@FreeBSD.org) Received: from mail-gw14.york.ac.uk (mail-gw14.york.ac.uk [144.32.129.164]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 5A2842E29; Mon, 14 Oct 2013 18:45:43 +0000 (UTC) Received: from ury.york.ac.uk ([144.32.64.162]:43059) by mail-gw14.york.ac.uk with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.76) (envelope-from ) id 1VVn95-0002eB-9Q; Mon, 14 Oct 2013 19:45:35 +0100 Date: Mon, 14 Oct 2013 19:45:35 +0100 (BST) From: Gavin Atkinson X-X-Sender: gavin@thunderhorn.york.ac.uk To: Hiroki Sato Subject: Re: svn commit: r256256 - in head: . etc etc/defaults etc/rc.d share/man/man5 usr.sbin/jail In-Reply-To: <20131012.015639.236155929172394900.hrs@allbsd.org> Message-ID: References: <201310100932.r9A9WS0H013645@svn.freebsd.org> <04E9979E-1D97-4AA2-A7AE-F9D8457B3599@FreeBSD.org> <20131012.015639.236155929172394900.hrs@allbsd.org> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Cc: svn-src-head@FreeBSD.org, remko@FreeBSD.org, src-committers@FreeBSD.org, svn-src-all@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 14 Oct 2013 18:45:43 -0000 On Sat, 12 Oct 2013, Hiroki Sato wrote: > Remko Lodder wrote > in <04E9979E-1D97-4AA2-A7AE-F9D8457B3599@FreeBSD.org>: > > re> Hi Hiroki, > re> > re> On Oct 10, 2013, at 11:32 AM, Hiroki Sato wrote: > re> > re> > Author: hrs > re> > Date: Thu Oct 10 09:32:27 2013 > re> > New Revision: 256256 > re> > URL: http://svnweb.freebsd.org/changeset/base/256256 > re> > > re> > Log: > re> > - Update rc.d/jail to use a jail(8) configuration file instead of > re> > command line options. The "jail__*" rc.conf(5) variables for > re> > per-jail configuration are automatically converted to > re> > /var/run/jail..conf before the jail(8) utility is invoked. > re> > This is transparently backward compatible. > re> > > re> > - Fix a minor bug in jail(8) which prevented it from returning false > re> > when jail -r failed. > re> > > re> > re> Thanks for doing such a massive update. However it seems to break the > re> ezjail utility. > re> My jails didn't restart after I upgraded to the most recent -head > re> version I'm also seeing issues with ezjail - in my case, the jails do start up properly, but ezjail doesn't believe that they have. > re> FreeBSD nakur.elvandar.org 10.0-ALPHA6 FreeBSD 10.0-ALPHA6 #7 r256311: > re> Fri Oct 11 13:27:54 CEST 2013 > re> root@nakur.elvandar.org:/usr/obj/usr/src/sys/NAKUR amd64 > re> > re> If I replace this with an older version, the utility starts and > re> complains about certain things not being done properly. The > re> system does not mount devfs nodes anylonger and thus is basically out > re> of function. > re> > re> I was not expecting this much fallout from this change, others that > re> will be upgrading will loose the ability to start their jails until > re> they can > re> resolve this by hand. > > Can you send me your ezjail configuration and differences of the > results (error messages, mount handling, etc) between old and new > rc.d/jail? The issue for me is that the /var/run/jail_${jailname}.id files are no longer created, which ezzjail uses to keep track of jail state. As a temporary workaround, for each jail I have on the host done echo $jail_id > /var/run/jail_${jailname}.id and this allows me to manage that jail again from within ezjail. Gavin From owner-svn-src-all@FreeBSD.ORG Mon Oct 14 18:52:34 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id D4487EDB; Mon, 14 Oct 2013 18:52:34 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from mail.allbsd.org (gatekeeper.allbsd.org [IPv6:2001:2f0:104:e001::32]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 4EB062EC1; Mon, 14 Oct 2013 18:52:34 +0000 (UTC) Received: from alph.d.allbsd.org (p4181-ipbf1307funabasi.chiba.ocn.ne.jp [123.225.173.181]) (authenticated bits=128) by mail.allbsd.org (8.14.5/8.14.5) with ESMTP id r9EIqGXI016517 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 15 Oct 2013 03:52:26 +0900 (JST) (envelope-from hrs@FreeBSD.org) Received: from localhost (localhost [IPv6:::1]) (authenticated bits=0) by alph.d.allbsd.org (8.14.7/8.14.5) with ESMTP id r9EIqE0A019469; Tue, 15 Oct 2013 03:52:15 +0900 (JST) (envelope-from hrs@FreeBSD.org) Date: Tue, 15 Oct 2013 03:52:12 +0900 (JST) Message-Id: <20131015.035212.830333497899935494.hrs@allbsd.org> To: gavin@FreeBSD.org Subject: Re: svn commit: r256256 - in head: . etc etc/defaults etc/rc.d share/man/man5 usr.sbin/jail From: Hiroki Sato In-Reply-To: References: <04E9979E-1D97-4AA2-A7AE-F9D8457B3599@FreeBSD.org> <20131012.015639.236155929172394900.hrs@allbsd.org> X-PGPkey-fingerprint: BDB3 443F A5DD B3D0 A530 FFD7 4F2C D3D8 2793 CF2D X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO) Mime-Version: 1.0 Content-Type: Multipart/Signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="--Security_Multipart(Tue_Oct_15_03_52_12_2013_805)--" Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamav-milter 0.97.4 at gatekeeper.allbsd.org X-Virus-Status: Clean X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (mail.allbsd.org [133.31.130.32]); Tue, 15 Oct 2013 03:52:26 +0900 (JST) X-Spam-Status: No, score=-99.0 required=13.0 tests=CONTENT_TYPE_PRESENT, SPF_SOFTFAIL,USER_IN_WHITELIST,X_CHINESE_RELAY autolearn=no version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on gatekeeper.allbsd.org Cc: svn-src-head@FreeBSD.org, remko@FreeBSD.org, src-committers@FreeBSD.org, svn-src-all@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 14 Oct 2013 18:52:34 -0000 ----Security_Multipart(Tue_Oct_15_03_52_12_2013_805)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Gavin Atkinson wrote in : ga> > re> I was not expecting this much fallout from this change, others that ga> > re> will be upgrading will loose the ability to start their jails until ga> > re> they can ga> > re> resolve this by hand. ga> > ga> > Can you send me your ezjail configuration and differences of the ga> > results (error messages, mount handling, etc) between old and new ga> > rc.d/jail? ga> ga> The issue for me is that the /var/run/jail_${jailname}.id files are no ga> longer created, which ezzjail uses to keep track of jail state. ga> ga> As a temporary workaround, for each jail I have on the host done ga> echo $jail_id > /var/run/jail_${jailname}.id ga> and this allows me to manage that jail again from within ezjail. Thank you for your report. I noticed this broke "ezjail-admin console" and so on. I am working on fixing it now... -- Hiroki ----Security_Multipart(Tue_Oct_15_03_52_12_2013_805)-- Content-Type: application/pgp-signature Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.13 (FreeBSD) iEYEABECAAYFAlJcPVwACgkQTyzT2CeTzy0jzQCggwJ7I8tvmTHQMR6xW2Wp5Peh x/UAnjqFOUcdCAurmUzMiodvBFHb0OgK =w5/v -----END PGP SIGNATURE----- ----Security_Multipart(Tue_Oct_15_03_52_12_2013_805)---- From owner-svn-src-all@FreeBSD.ORG Mon Oct 14 21:25:09 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id F2BCFE74; Mon, 14 Oct 2013 21:25:08 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id DCDBE2940; Mon, 14 Oct 2013 21:25:08 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9ELP8LD068150; Mon, 14 Oct 2013 21:25:08 GMT (envelope-from np@svn.freebsd.org) Received: (from np@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9ELP8Tu068146; Mon, 14 Oct 2013 21:25:08 GMT (envelope-from np@svn.freebsd.org) Message-Id: <201310142125.r9ELP8Tu068146@svn.freebsd.org> From: Navdeep Parhar Date: Mon, 14 Oct 2013 21:25:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256459 - in head/sys: conf dev/cxgbe dev/cxgbe/common dev/cxgbe/firmware dev/cxgbe/tom modules/cxgbe/t4_firmware modules/cxgbe/t5_firmware X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 14 Oct 2013 21:25:09 -0000 Author: np Date: Mon Oct 14 21:25:07 2013 New Revision: 256459 URL: http://svnweb.freebsd.org/changeset/base/256459 Log: cxgbe(4): Update T4 and T5 firmwares to 1.9.12.0 Added: head/sys/dev/cxgbe/firmware/t4fw-1.9.12.0.bin.uu (contents, props changed) head/sys/dev/cxgbe/firmware/t5fw-1.9.12.0.bin.uu (contents, props changed) Deleted: head/sys/dev/cxgbe/firmware/t4fw-1.8.11.0.bin.uu head/sys/dev/cxgbe/firmware/t5fw-1.8.22.0.bin.uu Modified: head/sys/conf/files head/sys/dev/cxgbe/common/common.h head/sys/dev/cxgbe/firmware/t4fw_cfg.txt head/sys/dev/cxgbe/firmware/t4fw_cfg_uwire.txt head/sys/dev/cxgbe/firmware/t4fw_interface.h head/sys/dev/cxgbe/firmware/t5fw_cfg.txt head/sys/dev/cxgbe/firmware/t5fw_cfg_uwire.txt head/sys/dev/cxgbe/t4_main.c head/sys/dev/cxgbe/tom/t4_cpl_io.c head/sys/modules/cxgbe/t4_firmware/Makefile head/sys/modules/cxgbe/t5_firmware/Makefile Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Mon Oct 14 21:23:58 2013 (r256458) +++ head/sys/conf/files Mon Oct 14 21:25:07 2013 (r256459) @@ -1199,7 +1199,7 @@ t4fw.fwo optional cxgbe \ no-implicit-rule \ clean "t4fw.fwo" t4fw.fw optional cxgbe \ - dependency "$S/dev/cxgbe/firmware/t4fw-1.8.11.0.bin.uu" \ + dependency "$S/dev/cxgbe/firmware/t4fw-1.9.12.0.bin.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "t4fw.fw" @@ -1223,7 +1223,7 @@ t5fw.fwo optional cxgbe \ no-implicit-rule \ clean "t5fw.fwo" t5fw.fw optional cxgbe \ - dependency "$S/dev/cxgbe/firmware/t5fw-1.8.22.0.bin.uu" \ + dependency "$S/dev/cxgbe/firmware/t5fw-1.9.12.0.bin.uu" \ compile-with "${NORMAL_FW}" \ no-obj no-implicit-rule \ clean "t5fw.fw" Modified: head/sys/dev/cxgbe/common/common.h ============================================================================== --- head/sys/dev/cxgbe/common/common.h Mon Oct 14 21:23:58 2013 (r256458) +++ head/sys/dev/cxgbe/common/common.h Mon Oct 14 21:25:07 2013 (r256459) @@ -246,7 +246,7 @@ struct pci_params { * Firmware device log. */ struct devlog_params { - u32 memtype; /* which memory (EDC0, EDC1, MC) */ + u32 memtype; /* which memory (FW_MEMTYPE_* ) */ u32 start; /* start of log in firmware memory */ u32 size; /* size of log */ }; Added: head/sys/dev/cxgbe/firmware/t4fw-1.9.12.0.bin.uu ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/cxgbe/firmware/t4fw-1.9.12.0.bin.uu Mon Oct 14 21:25:07 2013 (r256459) @@ -0,0 +1,8705 @@ +/*- + * Copyright (c) 2013 Chelsio Communications, Inc. + * 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. + */ +begin-base64 644 t4fw +AAADxgEJDAAAAQkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAA6sDugPBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAENoZWxzaW8gRlcgUlVOTUVNIERFQlVHPTAgKEJ1aWx0IEZyaSBPY3QgMTEgMjM6 +MDY6MDEgUERUIDIwMTMgb24gY2xlb3BhdHJhLmFzaWNkZXNpZ25lcnMuY29tOi9ob21lL2Zpcm13 +YXJlL2N2cy9mdy1yZWxlYXNlKSwgVmVyc2lvbiBUNHh4IDAxLjA5LjBjLjAwAAAAAAAAAJW7pA1g +AMgA4QB78AAQAADhADC4eP///x/84UCAAAAB4QB7cAAAEAAf//vg4QGUcCAAAADhAZwE4QB5AAAC +AEDhAHmAAAYAQAACAAoABgAK4QB5BAAKAACAAAEC4QB7POEAe0ThAHvk4gAAAAABAADhAHuQIAAA +AAAAgADhAHsAAABAAeEAe5wAAEAAREREQuAAAADjAARzREREQOMACAAgAAJcAAAAAB//kYAAAAAA +H/+RhAAAAAAf/5GIAAAAAB//kYwf/8AAAAAAAAAAAADAABL/zRP/zZMgEv/NE//NhCAEMwGTIBH/ +zBL/zJIQEf/MEv/MkhAR/8wB9DER/8siCv+SEADkMQAFMQECABL/yALnMQIWABH/x4EQAQFfwCEC +EQHJERH/xBL/xJIQEf/EEv/EkhBgAA8R/78S/8OSEBH/vxL/wpIQgRAR/8HAIJIREv/AkhLAIJIT +Ev+/khCCEALyUGUv9xH/vccvkhAR/7ySEBL/vBP/vJMgwDKTIRP/u5MigiIS/7oT/7qTICMiIRT/ +uQQzAck4E/+4gzADgxQIMxEU/7akM5MhE/+qkyJgAAjCMJMhE/+nkyIS/7GQIJAhkCKQI5AkkCWQ +JpAnkCiQKZAqkCuQLJAtkC6QLyAmECAmEYIiEv+kwDAtNzAtNzQtNzgtNzwjPQFyM+0AAgAS/6HA +MC83AC83EC83IC83MCM9AXIz7QACABL/l8AwKDcwKDc0KDc4KDc8Iz0BcjPtAwIAEv+UIwoAJzcA +JzcQJzcgJzcwIz0BcjPtAwIAEv+OFf+PFv+PwDDXIAVmAWAAEgQ2BQACANMP0w8FMwxuOxQHRxQH +BEN2MeYENgUFMwxvO+0AAgAS/4MV/4EjCgACJwIHBEMEPgUFMwwHRxRvO/ADAgAS/33JLoMghCGF +IrwidDsOhlC0VZYwtDN0M/Rj/+YAZT/iZV/fEv9xwDIDLgUDAgAS/2jAMCg3QCg3RCg3SCg3TCM9 +AXIz7QMCAAACABL/ay0nAMARAUkxAEgxAQIAwAAU/2cE0jEV/2aUUBT/ZgTTMRX/ZpRQFP9lBNQx +Ff9llFAU/2UE1TEV/2SUUBD/ZAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +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 +AAAAAAAAAAAAAAAAAAAAAIEAAAAAAAAYBQAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE +AAAAAAAAAoEAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA +AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAKABHydxPyd9MPA+YxAQIAFvJ1F/J2d2sG +kGC0Zndj+FQOkFWVFw8UAGP/+QAAAGwQBBjycx3ybisgBxzybiohCPoCAAdxuwEA7tw5DdwCgAAL +qgKcMOPyaBmwBIAACKoCHPJmIzCA+kAIFeANBQCdZexmAiG43QAA+sCGFaR3HQDpfP8t3gKAAOt7 +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 *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Mon Oct 14 22:39:09 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 82BC31FE; Mon, 14 Oct 2013 22:39:09 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 6DD5F2D26; Mon, 14 Oct 2013 22:39:09 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9EMd9oc005761; Mon, 14 Oct 2013 22:39:09 GMT (envelope-from np@svn.freebsd.org) Received: (from np@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9EMd912005760; Mon, 14 Oct 2013 22:39:09 GMT (envelope-from np@svn.freebsd.org) Message-Id: <201310142239.r9EMd912005760@svn.freebsd.org> From: Navdeep Parhar Date: Mon, 14 Oct 2013 22:39:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256467 - in head/sys: contrib/rdma modules/rdma modules/rdma/addr modules/rdma/cma modules/rdma/core modules/rdma/iwcm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 14 Oct 2013 22:39:09 -0000 Author: np Date: Mon Oct 14 22:39:08 2013 New Revision: 256467 URL: http://svnweb.freebsd.org/changeset/base/256467 Log: Delete all of the old RDMA code (except krping, which was switched to use sys/ofed some time back). This has been sitting around as dead code in the tree for a very long time. Deleted: head/sys/contrib/rdma/core_priv.h head/sys/contrib/rdma/ib_addr.h head/sys/contrib/rdma/ib_cache.h head/sys/contrib/rdma/ib_cm.h head/sys/contrib/rdma/ib_fmr_pool.h head/sys/contrib/rdma/ib_mad.h head/sys/contrib/rdma/ib_marshall.h head/sys/contrib/rdma/ib_pack.h head/sys/contrib/rdma/ib_sa.h head/sys/contrib/rdma/ib_smi.h head/sys/contrib/rdma/ib_umem.h head/sys/contrib/rdma/ib_user_cm.h head/sys/contrib/rdma/ib_user_mad.h head/sys/contrib/rdma/ib_user_sa.h head/sys/contrib/rdma/ib_user_verbs.h head/sys/contrib/rdma/ib_verbs.h head/sys/contrib/rdma/iw_cm.h head/sys/contrib/rdma/rdma_addr.c head/sys/contrib/rdma/rdma_cache.c head/sys/contrib/rdma/rdma_cm.h head/sys/contrib/rdma/rdma_cm_ib.h head/sys/contrib/rdma/rdma_cma.c head/sys/contrib/rdma/rdma_device.c head/sys/contrib/rdma/rdma_iwcm.c head/sys/contrib/rdma/rdma_user_cm.h head/sys/contrib/rdma/rdma_verbs.c head/sys/contrib/rdma/types.h head/sys/modules/rdma/addr/ head/sys/modules/rdma/cma/ head/sys/modules/rdma/core/ head/sys/modules/rdma/iwcm/ Modified: head/sys/modules/rdma/Makefile Modified: head/sys/modules/rdma/Makefile ============================================================================== --- head/sys/modules/rdma/Makefile Mon Oct 14 22:01:34 2013 (r256466) +++ head/sys/modules/rdma/Makefile Mon Oct 14 22:39:08 2013 (r256467) @@ -1,9 +1,5 @@ # $FreeBSD$ -#SUBDIR= addr -#SUBDIR+= cma -#SUBDIR+= iwcm -#SUBDIR+= core SUBDIR+= krping .include From owner-svn-src-all@FreeBSD.ORG Mon Oct 14 23:02:06 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id ABC2678F; Mon, 14 Oct 2013 23:02:06 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 8A4462E56; Mon, 14 Oct 2013 23:02:06 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9EN26PB019155; Mon, 14 Oct 2013 23:02:06 GMT (envelope-from np@svn.freebsd.org) Received: (from np@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9EN26Oh019151; Mon, 14 Oct 2013 23:02:06 GMT (envelope-from np@svn.freebsd.org) Message-Id: <201310142302.r9EN26Oh019151@svn.freebsd.org> From: Navdeep Parhar Date: Mon, 14 Oct 2013 23:02:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256470 - head/sys/contrib/rdma/krping X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 14 Oct 2013 23:02:06 -0000 Author: np Date: Mon Oct 14 23:02:05 2013 New Revision: 256470 URL: http://svnweb.freebsd.org/changeset/base/256470 Log: Update krping to the latest upstream code. Move all the FreeBSD specific parts to krping_dev.c, which leaves the other files as close to their upstream versions as possible. Modified: head/sys/contrib/rdma/krping/getopt.c head/sys/contrib/rdma/krping/krping.c head/sys/contrib/rdma/krping/krping.h head/sys/contrib/rdma/krping/krping_dev.c Modified: head/sys/contrib/rdma/krping/getopt.c ============================================================================== --- head/sys/contrib/rdma/krping/getopt.c Mon Oct 14 22:58:48 2013 (r256469) +++ head/sys/contrib/rdma/krping/getopt.c Mon Oct 14 23:02:05 2013 (r256470) @@ -5,9 +5,10 @@ #include __FBSDID("$FreeBSD$"); -#include -#include -#include +#include +#include +#include + #include "getopt.h" /** @@ -49,29 +50,29 @@ int krping_getopt(const char *caller, ch if (opts->has_arg & OPT_NOPARAM) { return opts->val; } - printf("%s: the %s option requires " + printk(KERN_INFO "%s: the %s option requires " "an argument\n", caller, token); return -EINVAL; } if (opts->has_arg & OPT_INT) { char* v; - *value = strtoul(val, &v, 0); + *value = simple_strtoul(val, &v, 0); if (!*v) { return opts->val; } - printf("%s: invalid numeric value " + printk(KERN_INFO "%s: invalid numeric value " "in %s=%s\n", caller, token, val); return -EDOM; } if (opts->has_arg & OPT_STRING) { return opts->val; } - printf("%s: unexpected argument %s to the " + printk(KERN_INFO "%s: unexpected argument %s to the " "%s option\n", caller, val, token); return -EINVAL; } } - printf("%s: Unrecognized option %s\n", caller, token); + printk(KERN_INFO "%s: Unrecognized option %s\n", caller, token); return -EOPNOTSUPP; } Modified: head/sys/contrib/rdma/krping/krping.c ============================================================================== --- head/sys/contrib/rdma/krping/krping.c Mon Oct 14 22:58:48 2013 (r256469) +++ head/sys/contrib/rdma/krping/krping.c Mon Oct 14 23:02:05 2013 (r256470) @@ -1,6 +1,6 @@ /* * Copyright (c) 2005 Ammasso, Inc. All rights reserved. - * Copyright (c) 2006 Open Grid Computing, Inc. All rights reserved. + * Copyright (c) 2006-2009 Open Grid Computing, Inc. All rights reserved. * * This software is available to you under a choice of one of two * licenses. You may choose to be licensed under the terms of the GNU @@ -34,39 +34,52 @@ #include __FBSDID("$FreeBSD$"); -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include +#include -#include -#include - -#include +#include #include -#include "getopt.h" #include "krping.h" +#include "getopt.h" -#define PFX "krping: " +extern int krping_debug; +#define DEBUG_LOG(cb, x...) if (krping_debug) krping_printf((cb)->cookie, x) +#define PRINTF(cb, x...) krping_printf((cb)->cookie, x) -static int debug = 0; -#define DEBUG_LOG if (debug) printf +MODULE_AUTHOR("Steve Wise"); +MODULE_DESCRIPTION("RDMA ping client/server"); +MODULE_LICENSE("Dual BSD/GPL"); + +static __inline uint64_t +get_cycles(void) +{ + uint32_t low, high; + __asm __volatile("rdtsc" : "=a" (low), "=d" (high)); + return (low | ((u_int64_t)high << 32)); +} + +typedef uint64_t cycles_t; + +enum mem_type { + DMA = 1, + FASTREG = 2, + MW = 3, + MR = 4 +}; static const struct krping_option krping_opts[] = { {"count", OPT_INT, 'C'}, @@ -77,23 +90,29 @@ static const struct krping_option krping {"validate", OPT_NOPARAM, 'V'}, {"server", OPT_NOPARAM, 's'}, {"client", OPT_NOPARAM, 'c'}, - {"dmamr", OPT_NOPARAM, 'D'}, - {"debug", OPT_NOPARAM, 'd'}, - {"wlat", OPT_NOPARAM, 'l'}, - {"rlat", OPT_NOPARAM, 'L'}, - {"bw", OPT_NOPARAM, 'B'}, - {"tx-depth", OPT_INT, 't'}, - {"poll", OPT_NOPARAM, 'P'}, - {"memlimit", OPT_INT, 'm'}, + {"mem_mode", OPT_STRING, 'm'}, + {"server_inv", OPT_NOPARAM, 'I'}, + {"wlat", OPT_NOPARAM, 'l'}, + {"rlat", OPT_NOPARAM, 'L'}, + {"bw", OPT_NOPARAM, 'B'}, + {"duplex", OPT_NOPARAM, 'd'}, + {"txdepth", OPT_INT, 'T'}, + {"poll", OPT_NOPARAM, 'P'}, + {"local_dma_lkey", OPT_NOPARAM, 'Z'}, + {"read_inv", OPT_NOPARAM, 'R'}, + {"fr", OPT_NOPARAM, 'f'}, {NULL, 0, 0} }; -struct mtx krping_mutex; +#define htonll(x) cpu_to_be64((x)) +#define ntohll(x) cpu_to_be64((x)) + +static struct mutex krping_mutex; /* * List of running krping threads. */ -struct krping_cb_list krping_cbs; +static LIST_HEAD(krping_cbs); /* * krping "ping/pong" loop: @@ -109,24 +128,118 @@ struct krping_cb_list krping_cbs; */ /* + * These states are used to signal events between the completion handler + * and the main client or server thread. + * + * Once CONNECTED, they cycle through RDMA_READ_ADV, RDMA_WRITE_ADV, + * and RDMA_WRITE_COMPLETE for each ping. + */ +enum test_state { + IDLE = 1, + CONNECT_REQUEST, + ADDR_RESOLVED, + ROUTE_RESOLVED, + CONNECTED, + RDMA_READ_ADV, + RDMA_READ_COMPLETE, + RDMA_WRITE_ADV, + RDMA_WRITE_COMPLETE, + ERROR +}; + +struct krping_rdma_info { + uint64_t buf; + uint32_t rkey; + uint32_t size; +}; + +/* * Default max buffer size for IO... */ #define RPING_BUFSIZE 128*1024 -#define RPING_SQ_DEPTH 32 +#define RPING_SQ_DEPTH 64 -static void krping_wait(struct krping_cb *cb, int state) -{ - int rc; - mtx_lock(&cb->lock); - while (cb->state < state) { - rc = msleep(cb, &cb->lock, PCATCH, "krping", 0); - if (rc && rc != ERESTART) { - cb->state = ERROR; - break; - } - } - mtx_unlock(&cb->lock); -} +/* + * Control block struct. + */ +struct krping_cb { + void *cookie; + int server; /* 0 iff client */ + struct ib_cq *cq; + struct ib_pd *pd; + struct ib_qp *qp; + + enum mem_type mem; + struct ib_mr *dma_mr; + + struct ib_fast_reg_page_list *page_list; + int page_list_len; + struct ib_send_wr fastreg_wr; + struct ib_send_wr invalidate_wr; + struct ib_mr *fastreg_mr; + int server_invalidate; + int read_inv; + u8 key; + + struct ib_mw *mw; + struct ib_mw_bind bind_attr; + + struct ib_recv_wr rq_wr; /* recv work request record */ + struct ib_sge recv_sgl; /* recv single SGE */ + struct krping_rdma_info recv_buf;/* malloc'd buffer */ + u64 recv_dma_addr; + DECLARE_PCI_UNMAP_ADDR(recv_mapping) + struct ib_mr *recv_mr; + + struct ib_send_wr sq_wr; /* send work requrest record */ + struct ib_sge send_sgl; + struct krping_rdma_info send_buf;/* single send buf */ + u64 send_dma_addr; + DECLARE_PCI_UNMAP_ADDR(send_mapping) + struct ib_mr *send_mr; + + struct ib_send_wr rdma_sq_wr; /* rdma work request record */ + struct ib_sge rdma_sgl; /* rdma single SGE */ + char *rdma_buf; /* used as rdma sink */ + u64 rdma_dma_addr; + DECLARE_PCI_UNMAP_ADDR(rdma_mapping) + struct ib_mr *rdma_mr; + + uint32_t remote_rkey; /* remote guys RKEY */ + uint64_t remote_addr; /* remote guys TO */ + uint32_t remote_len; /* remote guys LEN */ + + char *start_buf; /* rdma read src */ + u64 start_dma_addr; + DECLARE_PCI_UNMAP_ADDR(start_mapping) + struct ib_mr *start_mr; + + enum test_state state; /* used for cond/signalling */ + wait_queue_head_t sem; + struct krping_stats stats; + + uint16_t port; /* dst port in NBO */ + struct in_addr addr; /* dst addr in NBO */ + char *addr_str; /* dst addr string */ + int verbose; /* verbose logging */ + int count; /* ping count */ + int size; /* ping data size */ + int validate; /* validate ping data */ + int wlat; /* run wlat test */ + int rlat; /* run rlat test */ + int bw; /* run bw test */ + int duplex; /* run bw full duplex test */ + int poll; /* poll or block for rlat test */ + int txdepth; /* SQ depth */ + int local_dma_lkey; /* use 0 for lkey */ + int frtest; /* fastreg test */ + + /* CM stuff */ + struct rdma_cm_id *cm_id; /* connection on client side,*/ + /* listener on server side. */ + struct rdma_cm_id *child_cm_id; /* connection on server side */ + struct list_head list; +}; static int krping_cma_event_handler(struct rdma_cm_id *cma_id, struct rdma_cm_event *event) @@ -134,39 +247,37 @@ static int krping_cma_event_handler(stru int ret; struct krping_cb *cb = cma_id->context; - DEBUG_LOG(PFX "cma_event type %d cma_id %p (%s)\n", event->event, cma_id, - (cma_id == cb->cm_id) ? "parent" : "child"); + DEBUG_LOG(cb, "cma_event type %d cma_id %p (%s)\n", event->event, + cma_id, (cma_id == cb->cm_id) ? "parent" : "child"); - mtx_lock(&cb->lock); switch (event->event) { case RDMA_CM_EVENT_ADDR_RESOLVED: cb->state = ADDR_RESOLVED; ret = rdma_resolve_route(cma_id, 2000); if (ret) { - log(LOG_ERR, "rdma_resolve_route error %d\n", - ret); - wakeup(cb); + PRINTF(cb, "rdma_resolve_route error %d\n", ret); + wake_up_interruptible(&cb->sem); } break; case RDMA_CM_EVENT_ROUTE_RESOLVED: cb->state = ROUTE_RESOLVED; - wakeup(cb); + wake_up_interruptible(&cb->sem); break; case RDMA_CM_EVENT_CONNECT_REQUEST: cb->state = CONNECT_REQUEST; cb->child_cm_id = cma_id; - DEBUG_LOG(PFX "child cma %p\n", cb->child_cm_id); - wakeup(cb); + DEBUG_LOG(cb, "child cma %p\n", cb->child_cm_id); + wake_up_interruptible(&cb->sem); break; case RDMA_CM_EVENT_ESTABLISHED: - DEBUG_LOG(PFX "ESTABLISHED\n"); + DEBUG_LOG(cb, "ESTABLISHED\n"); if (!cb->server) { cb->state = CONNECTED; - wakeup(cb); } + wake_up_interruptible(&cb->sem); break; case RDMA_CM_EVENT_ADDR_ERROR: @@ -174,40 +285,34 @@ static int krping_cma_event_handler(stru case RDMA_CM_EVENT_CONNECT_ERROR: case RDMA_CM_EVENT_UNREACHABLE: case RDMA_CM_EVENT_REJECTED: - log(LOG_ERR, "cma event %d, error %d\n", event->event, + PRINTF(cb, "cma event %d, error %d\n", event->event, event->status); cb->state = ERROR; - wakeup(cb); + wake_up_interruptible(&cb->sem); break; case RDMA_CM_EVENT_DISCONNECTED: - DEBUG_LOG(PFX "DISCONNECT EVENT...\n"); + PRINTF(cb, "DISCONNECT EVENT...\n"); cb->state = ERROR; - wakeup(cb); + wake_up_interruptible(&cb->sem); break; case RDMA_CM_EVENT_DEVICE_REMOVAL: - DEBUG_LOG(PFX "cma detected device removal!!!!\n"); - cb->state = ERROR; - wakeup(cb); - mtx_unlock(&cb->lock); - krping_wait(cb, CLEANUP); - tsleep(cb, 0, "krping", 5000); - return 0; + PRINTF(cb, "cma detected device removal!!!!\n"); + break; default: - log(LOG_ERR, "oof bad type!\n"); - wakeup(cb); + PRINTF(cb, "oof bad type!\n"); + wake_up_interruptible(&cb->sem); break; } - mtx_unlock(&cb->lock); return 0; } static int server_recv(struct krping_cb *cb, struct ib_wc *wc) { if (wc->byte_len != sizeof(cb->recv_buf)) { - log(LOG_ERR, "Received bogus data, size %d\n", + PRINTF(cb, "Received bogus data, size %d\n", wc->byte_len); return -1; } @@ -215,7 +320,7 @@ static int server_recv(struct krping_cb cb->remote_rkey = ntohl(cb->recv_buf.rkey); cb->remote_addr = ntohll(cb->recv_buf.buf); cb->remote_len = ntohl(cb->recv_buf.size); - DEBUG_LOG(PFX "Received rkey %x addr %llx len %d from peer\n", + DEBUG_LOG(cb, "Received rkey %x addr %llx len %d from peer\n", cb->remote_rkey, (unsigned long long)cb->remote_addr, cb->remote_len); @@ -230,7 +335,7 @@ static int server_recv(struct krping_cb static int client_recv(struct krping_cb *cb, struct ib_wc *wc) { if (wc->byte_len != sizeof(cb->recv_buf)) { - log(LOG_ERR, "Received bogus data, size %d\n", + PRINTF(cb, "Received bogus data, size %d\n", wc->byte_len); return -1; } @@ -250,11 +355,13 @@ static void krping_cq_event_handler(stru struct ib_recv_wr *bad_wr; int ret; - mtx_lock(&cb->lock); - KASSERT(cb->cq == cq, ("bad condition")); + BUG_ON(cb->cq != cq); if (cb->state == ERROR) { - log(LOG_ERR, "cq completion in ERROR state\n"); - mtx_unlock(&cb->lock); + PRINTF(cb, "cq completion in ERROR state\n"); + return; + } + if (cb->frtest) { + PRINTF(cb, "cq completion event in frtest!\n"); return; } if (!cb->wlat && !cb->rlat && !cb->bw) @@ -262,76 +369,77 @@ static void krping_cq_event_handler(stru while ((ret = ib_poll_cq(cb->cq, 1, &wc)) == 1) { if (wc.status) { if (wc.status == IB_WC_WR_FLUSH_ERR) { - DEBUG_LOG("cq flushed\n"); + DEBUG_LOG(cb, "cq flushed\n"); continue; } else { - log(LOG_CRIT, "cq completion failed status %d\n", - wc.status); + PRINTF(cb, "cq completion failed with " + "wr_id %Lx status %d opcode %d vender_err %x\n", + wc.wr_id, wc.status, wc.opcode, wc.vendor_err); goto error; } } switch (wc.opcode) { case IB_WC_SEND: - DEBUG_LOG(PFX "send completion\n"); + DEBUG_LOG(cb, "send completion\n"); cb->stats.send_bytes += cb->send_sgl.length; cb->stats.send_msgs++; break; case IB_WC_RDMA_WRITE: - DEBUG_LOG(PFX "rdma write completion\n"); + DEBUG_LOG(cb, "rdma write completion\n"); cb->stats.write_bytes += cb->rdma_sq_wr.sg_list->length; cb->stats.write_msgs++; cb->state = RDMA_WRITE_COMPLETE; - wakeup(cb); + wake_up_interruptible(&cb->sem); break; case IB_WC_RDMA_READ: - DEBUG_LOG(PFX "rdma read completion\n"); + DEBUG_LOG(cb, "rdma read completion\n"); cb->stats.read_bytes += cb->rdma_sq_wr.sg_list->length; cb->stats.read_msgs++; cb->state = RDMA_READ_COMPLETE; - wakeup(cb); + wake_up_interruptible(&cb->sem); break; case IB_WC_RECV: - DEBUG_LOG(PFX "recv completion\n"); + DEBUG_LOG(cb, "recv completion\n"); cb->stats.recv_bytes += sizeof(cb->recv_buf); cb->stats.recv_msgs++; if (cb->wlat || cb->rlat || cb->bw) ret = server_recv(cb, &wc); else ret = cb->server ? server_recv(cb, &wc) : - client_recv(cb, &wc); + client_recv(cb, &wc); if (ret) { - log(LOG_ERR, "recv wc error: %d\n", ret); + PRINTF(cb, "recv wc error: %d\n", ret); goto error; } ret = ib_post_recv(cb->qp, &cb->rq_wr, &bad_wr); if (ret) { - log(LOG_ERR, "post recv error: %d\n", + PRINTF(cb, "post recv error: %d\n", ret); goto error; } - wakeup(cb); + wake_up_interruptible(&cb->sem); break; default: - log(LOG_ERR, "unknown!!!!! completion\n"); + PRINTF(cb, + "%s:%d Unexpected opcode %d, Shutting down\n", + __func__, __LINE__, wc.opcode); goto error; } } if (ret) { - log(LOG_ERR, "poll error %d\n", ret); + PRINTF(cb, "poll error %d\n", ret); goto error; } - mtx_unlock(&cb->lock); return; error: cb->state = ERROR; - wakeup(cb); - mtx_unlock(&cb->lock); + wake_up_interruptible(&cb->sem); } static int krping_accept(struct krping_cb *cb) @@ -339,7 +447,7 @@ static int krping_accept(struct krping_c struct rdma_conn_param conn_param; int ret; - DEBUG_LOG(PFX "accepting client connection request\n"); + DEBUG_LOG(cb, "accepting client connection request\n"); memset(&conn_param, 0, sizeof conn_param); conn_param.responder_resources = 1; @@ -347,14 +455,15 @@ static int krping_accept(struct krping_c ret = rdma_accept(cb->child_cm_id, &conn_param); if (ret) { - log(LOG_ERR, "rdma_accept error: %d\n", ret); + PRINTF(cb, "rdma_accept error: %d\n", ret); return ret; } if (!cb->wlat && !cb->rlat && !cb->bw) { - krping_wait(cb, CONNECTED); + wait_event_interruptible(cb->sem, cb->state >= CONNECTED); if (cb->state == ERROR) { - log(LOG_ERR, "wait for CONNECTED state %d\n", cb->state); + PRINTF(cb, "wait for CONNECTED state %d\n", + cb->state); return -1; } } @@ -363,19 +472,22 @@ static int krping_accept(struct krping_c static void krping_setup_wr(struct krping_cb *cb) { - /* XXX X86 only here... not mapping for dma! */ - cb->recv_sgl.addr = vtophys(&cb->recv_buf); + cb->recv_sgl.addr = cb->recv_dma_addr; cb->recv_sgl.length = sizeof cb->recv_buf; - if (cb->use_dmamr) + if (cb->local_dma_lkey) + cb->recv_sgl.lkey = cb->qp->device->local_dma_lkey; + else if (cb->mem == DMA) cb->recv_sgl.lkey = cb->dma_mr->lkey; else cb->recv_sgl.lkey = cb->recv_mr->lkey; cb->rq_wr.sg_list = &cb->recv_sgl; cb->rq_wr.num_sge = 1; - cb->send_sgl.addr = vtophys(&cb->send_buf); + cb->send_sgl.addr = cb->send_dma_addr; cb->send_sgl.length = sizeof cb->send_buf; - if (cb->use_dmamr) + if (cb->local_dma_lkey) + cb->send_sgl.lkey = cb->qp->device->local_dma_lkey; + else if (cb->mem == DMA) cb->send_sgl.lkey = cb->dma_mr->lkey; else cb->send_sgl.lkey = cb->send_mr->lkey; @@ -385,18 +497,39 @@ static void krping_setup_wr(struct krpin cb->sq_wr.sg_list = &cb->send_sgl; cb->sq_wr.num_sge = 1; - cb->rdma_addr = vtophys(cb->rdma_buf); - cb->rdma_sgl.addr = cb->rdma_addr; - if (cb->use_dmamr) - cb->rdma_sgl.lkey = cb->dma_mr->lkey; - else - cb->rdma_sgl.lkey = cb->rdma_mr->lkey; - cb->rdma_sq_wr.send_flags = IB_SEND_SIGNALED; - cb->rdma_sq_wr.sg_list = &cb->rdma_sgl; - cb->rdma_sq_wr.num_sge = 1; + if (cb->server || cb->wlat || cb->rlat || cb->bw) { + cb->rdma_sgl.addr = cb->rdma_dma_addr; + if (cb->mem == MR) + cb->rdma_sgl.lkey = cb->rdma_mr->lkey; + cb->rdma_sq_wr.send_flags = IB_SEND_SIGNALED; + cb->rdma_sq_wr.sg_list = &cb->rdma_sgl; + cb->rdma_sq_wr.num_sge = 1; + } + + switch(cb->mem) { + case FASTREG: + + /* + * A chain of 2 WRs, INVALDATE_MR + FAST_REG_MR. + * both unsignaled. The client uses them to reregister + * the rdma buffers with a new key each iteration. + */ + cb->fastreg_wr.opcode = IB_WR_FAST_REG_MR; + cb->fastreg_wr.wr.fast_reg.page_shift = PAGE_SHIFT; + cb->fastreg_wr.wr.fast_reg.length = cb->size; + cb->fastreg_wr.wr.fast_reg.page_list = cb->page_list; + cb->fastreg_wr.wr.fast_reg.page_list_len = cb->page_list_len; - if (!cb->server || cb->wlat || cb->rlat || cb->bw) { - cb->start_addr = vtophys(cb->start_buf); + cb->invalidate_wr.next = &cb->fastreg_wr; + cb->invalidate_wr.opcode = IB_WR_LOCAL_INV; + break; + case MW: + cb->bind_attr.wr_id = 0xabbaabba; + cb->bind_attr.send_flags = 0; /* unsignaled */ + cb->bind_attr.length = cb->size; + break; + default: + break; } } @@ -406,134 +539,207 @@ static int krping_setup_buffers(struct k struct ib_phys_buf buf; u64 iovbase; - DEBUG_LOG(PFX "krping_setup_buffers called on cb %p\n", cb); + DEBUG_LOG(cb, "krping_setup_buffers called on cb %p\n", cb); + + cb->recv_dma_addr = dma_map_single(cb->pd->device->dma_device, + &cb->recv_buf, + sizeof(cb->recv_buf), DMA_BIDIRECTIONAL); + pci_unmap_addr_set(cb, recv_mapping, cb->recv_dma_addr); + cb->send_dma_addr = dma_map_single(cb->pd->device->dma_device, + &cb->send_buf, sizeof(cb->send_buf), + DMA_BIDIRECTIONAL); + pci_unmap_addr_set(cb, send_mapping, cb->send_dma_addr); - if (cb->use_dmamr) { + if (cb->mem == DMA) { cb->dma_mr = ib_get_dma_mr(cb->pd, IB_ACCESS_LOCAL_WRITE| IB_ACCESS_REMOTE_READ| IB_ACCESS_REMOTE_WRITE); if (IS_ERR(cb->dma_mr)) { - log(LOG_ERR, "reg_dmamr failed\n"); - return PTR_ERR(cb->dma_mr); + DEBUG_LOG(cb, "reg_dmamr failed\n"); + ret = PTR_ERR(cb->dma_mr); + goto bail; } } else { + if (!cb->local_dma_lkey) { + buf.addr = cb->recv_dma_addr; + buf.size = sizeof cb->recv_buf; + DEBUG_LOG(cb, "recv buf dma_addr %llx size %d\n", buf.addr, + (int)buf.size); + iovbase = cb->recv_dma_addr; + cb->recv_mr = ib_reg_phys_mr(cb->pd, &buf, 1, + IB_ACCESS_LOCAL_WRITE, + &iovbase); + + if (IS_ERR(cb->recv_mr)) { + DEBUG_LOG(cb, "recv_buf reg_mr failed\n"); + ret = PTR_ERR(cb->recv_mr); + goto bail; + } - buf.addr = vtophys(&cb->recv_buf); - buf.size = sizeof cb->recv_buf; - iovbase = vtophys(&cb->recv_buf); - cb->recv_mr = ib_reg_phys_mr(cb->pd, &buf, 1, - IB_ACCESS_LOCAL_WRITE, - &iovbase); - - if (IS_ERR(cb->recv_mr)) { - log(LOG_ERR, "recv_buf reg_mr failed\n"); - return PTR_ERR(cb->recv_mr); - } - - buf.addr = vtophys(&cb->send_buf); - buf.size = sizeof cb->send_buf; - iovbase = vtophys(&cb->send_buf); - cb->send_mr = ib_reg_phys_mr(cb->pd, &buf, 1, - 0, &iovbase); - - if (IS_ERR(cb->send_mr)) { - log(LOG_ERR, "send_buf reg_mr failed\n"); - ib_dereg_mr(cb->recv_mr); - return PTR_ERR(cb->send_mr); + buf.addr = cb->send_dma_addr; + buf.size = sizeof cb->send_buf; + DEBUG_LOG(cb, "send buf dma_addr %llx size %d\n", buf.addr, + (int)buf.size); + iovbase = cb->send_dma_addr; + cb->send_mr = ib_reg_phys_mr(cb->pd, &buf, 1, + 0, &iovbase); + + if (IS_ERR(cb->send_mr)) { + DEBUG_LOG(cb, "send_buf reg_mr failed\n"); + ret = PTR_ERR(cb->send_mr); + goto bail; + } } } - /* RNIC adapters have a limit upto which it can register physical memory - * If DMA-MR memory mode is set then normally driver registers maximum - * supported memory. After that if contigmalloc allocates memory beyond the - * specified RNIC limit then Krping may not work. - */ - if (cb->use_dmamr && cb->memlimit) - cb->rdma_buf = contigmalloc(cb->size, M_DEVBUF, M_WAITOK, 0, cb->memlimit, - PAGE_SIZE, 0); - else - cb->rdma_buf = contigmalloc(cb->size, M_DEVBUF, M_WAITOK, 0, -1UL, - PAGE_SIZE, 0); - + cb->rdma_buf = kmalloc(cb->size, GFP_KERNEL); if (!cb->rdma_buf) { - log(LOG_ERR, "rdma_buf malloc failed\n"); - ret = ENOMEM; - goto err1; - } - if (!cb->use_dmamr) { - - buf.addr = vtophys(cb->rdma_buf); - buf.size = cb->size; - iovbase = vtophys(cb->rdma_buf); - cb->rdma_mr = ib_reg_phys_mr(cb->pd, &buf, 1, + DEBUG_LOG(cb, "rdma_buf malloc failed\n"); + ret = -ENOMEM; + goto bail; + } + + cb->rdma_dma_addr = dma_map_single(cb->pd->device->dma_device, + cb->rdma_buf, cb->size, + DMA_BIDIRECTIONAL); + pci_unmap_addr_set(cb, rdma_mapping, cb->rdma_dma_addr); + if (cb->mem != DMA) { + switch (cb->mem) { + case FASTREG: + cb->page_list_len = (((cb->size - 1) & PAGE_MASK) + + PAGE_SIZE) >> PAGE_SHIFT; + cb->page_list = ib_alloc_fast_reg_page_list( + cb->pd->device, + cb->page_list_len); + if (IS_ERR(cb->page_list)) { + DEBUG_LOG(cb, "recv_buf reg_mr failed\n"); + ret = PTR_ERR(cb->page_list); + goto bail; + } + cb->fastreg_mr = ib_alloc_fast_reg_mr(cb->pd, + cb->page_list->max_page_list_len); + if (IS_ERR(cb->fastreg_mr)) { + DEBUG_LOG(cb, "recv_buf reg_mr failed\n"); + ret = PTR_ERR(cb->fastreg_mr); + goto bail; + } + DEBUG_LOG(cb, "fastreg rkey 0x%x page_list %p" + " page_list_len %u\n", cb->fastreg_mr->rkey, + cb->page_list, cb->page_list_len); + break; + case MW: + cb->mw = ib_alloc_mw(cb->pd); + if (IS_ERR(cb->mw)) { + DEBUG_LOG(cb, "recv_buf alloc_mw failed\n"); + ret = PTR_ERR(cb->mw); + goto bail; + } + DEBUG_LOG(cb, "mw rkey 0x%x\n", cb->mw->rkey); + /*FALLTHROUGH*/ + case MR: + buf.addr = cb->rdma_dma_addr; + buf.size = cb->size; + iovbase = cb->rdma_dma_addr; + cb->rdma_mr = ib_reg_phys_mr(cb->pd, &buf, 1, IB_ACCESS_REMOTE_READ| IB_ACCESS_REMOTE_WRITE, &iovbase); - - if (IS_ERR(cb->rdma_mr)) { - log(LOG_ERR, "rdma_buf reg_mr failed\n"); - ret = PTR_ERR(cb->rdma_mr); - goto err2; + if (IS_ERR(cb->rdma_mr)) { + DEBUG_LOG(cb, "rdma_buf reg_mr failed\n"); + ret = PTR_ERR(cb->rdma_mr); + goto bail; + } + DEBUG_LOG(cb, "rdma buf dma_addr %llx size %d mr rkey 0x%x\n", + buf.addr, (int)buf.size, cb->rdma_mr->rkey); + break; + default: + ret = -EINVAL; + goto bail; + break; } } if (!cb->server || cb->wlat || cb->rlat || cb->bw) { - if (cb->use_dmamr && cb->memlimit) - cb->start_buf = contigmalloc(cb->size, M_DEVBUF, M_WAITOK, - 0, cb->memlimit, PAGE_SIZE, 0); - else - cb->start_buf = contigmalloc(cb->size, M_DEVBUF, M_WAITOK, - 0, -1UL, PAGE_SIZE, 0); + + cb->start_buf = kmalloc(cb->size, GFP_KERNEL); if (!cb->start_buf) { - log(LOG_ERR, "start_buf malloc failed\n"); - ret = ENOMEM; - goto err2; + DEBUG_LOG(cb, "start_buf malloc failed\n"); + ret = -ENOMEM; + goto bail; } - if (!cb->use_dmamr) { + + cb->start_dma_addr = dma_map_single(cb->pd->device->dma_device, + cb->start_buf, cb->size, + DMA_BIDIRECTIONAL); + pci_unmap_addr_set(cb, start_mapping, cb->start_dma_addr); + + if (cb->mem == MR || cb->mem == MW) { unsigned flags = IB_ACCESS_REMOTE_READ; - if (cb->wlat || cb->rlat || cb->bw) + if (cb->wlat || cb->rlat || cb->bw) flags |= IB_ACCESS_REMOTE_WRITE; - buf.addr = vtophys(cb->start_buf); + + buf.addr = cb->start_dma_addr; buf.size = cb->size; - iovbase = vtophys(cb->start_buf); + DEBUG_LOG(cb, "start buf dma_addr %llx size %d\n", + buf.addr, (int)buf.size); + iovbase = cb->start_dma_addr; cb->start_mr = ib_reg_phys_mr(cb->pd, &buf, 1, flags, &iovbase); if (IS_ERR(cb->start_mr)) { - log(LOG_ERR, "start_buf reg_mr failed\n"); + DEBUG_LOG(cb, "start_buf reg_mr failed\n"); ret = PTR_ERR(cb->start_mr); - goto err3; + goto bail; } } } krping_setup_wr(cb); - DEBUG_LOG(PFX "allocated & registered buffers...\n"); + DEBUG_LOG(cb, "allocated & registered buffers...\n"); return 0; -err3: - contigfree(cb->start_buf, cb->size, M_DEVBUF); - - if (!cb->use_dmamr) +bail: + if (cb->fastreg_mr && !IS_ERR(cb->fastreg_mr)) + ib_dereg_mr(cb->fastreg_mr); + if (cb->mw && !IS_ERR(cb->mw)) + ib_dealloc_mw(cb->mw); + if (cb->rdma_mr && !IS_ERR(cb->rdma_mr)) ib_dereg_mr(cb->rdma_mr); -err2: - contigfree(cb->rdma_buf, cb->size, M_DEVBUF); -err1: - if (cb->use_dmamr) + if (cb->page_list && !IS_ERR(cb->page_list)) + ib_free_fast_reg_page_list(cb->page_list); + if (cb->dma_mr && !IS_ERR(cb->dma_mr)) ib_dereg_mr(cb->dma_mr); - else { + if (cb->recv_mr && !IS_ERR(cb->recv_mr)) ib_dereg_mr(cb->recv_mr); + if (cb->send_mr && !IS_ERR(cb->send_mr)) ib_dereg_mr(cb->send_mr); - } + if (cb->rdma_buf) + kfree(cb->rdma_buf); + if (cb->start_buf) + kfree(cb->start_buf); return ret; } static void krping_free_buffers(struct krping_cb *cb) { - DEBUG_LOG(PFX "krping_free_buffers called on cb %p\n", cb); + DEBUG_LOG(cb, "krping_free_buffers called on cb %p\n", cb); -#if 0 + if (cb->dma_mr) + ib_dereg_mr(cb->dma_mr); + if (cb->send_mr) + ib_dereg_mr(cb->send_mr); + if (cb->recv_mr) + ib_dereg_mr(cb->recv_mr); + if (cb->rdma_mr) + ib_dereg_mr(cb->rdma_mr); + if (cb->start_mr) + ib_dereg_mr(cb->start_mr); + if (cb->fastreg_mr) + ib_dereg_mr(cb->fastreg_mr); + if (cb->mw) + ib_dealloc_mw(cb->mw); + dma_unmap_single(cb->pd->device->dma_device, pci_unmap_addr(cb, recv_mapping), sizeof(cb->recv_buf), DMA_BIDIRECTIONAL); @@ -543,24 +749,12 @@ static void krping_free_buffers(struct k dma_unmap_single(cb->pd->device->dma_device, pci_unmap_addr(cb, rdma_mapping), cb->size, DMA_BIDIRECTIONAL); -#endif - contigfree(cb->rdma_buf, cb->size, M_DEVBUF); - if (!cb->server || cb->wlat || cb->rlat || cb->bw) { -#if 0 + kfree(cb->rdma_buf); + if (cb->start_buf) { dma_unmap_single(cb->pd->device->dma_device, pci_unmap_addr(cb, start_mapping), cb->size, DMA_BIDIRECTIONAL); -#endif - contigfree(cb->start_buf, cb->size, M_DEVBUF); - } - if (cb->use_dmamr) - ib_dereg_mr(cb->dma_mr); - else { - ib_dereg_mr(cb->send_mr); - ib_dereg_mr(cb->recv_mr); - ib_dereg_mr(cb->rdma_mr); - if (!cb->server) - ib_dereg_mr(cb->start_mr); + kfree(cb->start_buf); } } @@ -577,6 +771,7 @@ static int krping_create_qp(struct krpin init_attr.qp_type = IB_QPT_RC; init_attr.send_cq = cb->cq; init_attr.recv_cq = cb->cq; + init_attr.sq_sig_type = IB_SIGNAL_REQ_WR; if (cb->server) { ret = rdma_create_qp(cb->child_cm_id, cb->pd, &init_attr); @@ -603,36 +798,36 @@ static int krping_setup_qp(struct krping int ret; cb->pd = ib_alloc_pd(cm_id->device); if (IS_ERR(cb->pd)) { - log(LOG_ERR, "ib_alloc_pd failed\n"); + PRINTF(cb, "ib_alloc_pd failed\n"); return PTR_ERR(cb->pd); } - DEBUG_LOG(PFX "created pd %p\n", cb->pd); + DEBUG_LOG(cb, "created pd %p\n", cb->pd); - strlcpy(cb->name, cb->pd->device->name, sizeof(cb->name)); + strlcpy(cb->stats.name, cb->pd->device->name, sizeof(cb->stats.name)); cb->cq = ib_create_cq(cm_id->device, krping_cq_event_handler, NULL, cb, cb->txdepth * 2, 0); if (IS_ERR(cb->cq)) { - log(LOG_ERR, "ib_create_cq failed\n"); + PRINTF(cb, "ib_create_cq failed\n"); ret = PTR_ERR(cb->cq); goto err1; } - DEBUG_LOG(PFX "created cq %p\n", cb->cq); + DEBUG_LOG(cb, "created cq %p\n", cb->cq); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Mon Oct 14 23:32:57 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C4791F7; Mon, 14 Oct 2013 23:32:57 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 985832FEA; Mon, 14 Oct 2013 23:32:57 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9ENWvPH034657; Mon, 14 Oct 2013 23:32:57 GMT (envelope-from np@svn.freebsd.org) Received: (from np@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9ENWvCl034655; Mon, 14 Oct 2013 23:32:57 GMT (envelope-from np@svn.freebsd.org) Message-Id: <201310142332.r9ENWvCl034655@svn.freebsd.org> From: Navdeep Parhar Date: Mon, 14 Oct 2013 23:32:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256477 - head/sys/dev/cxgbe X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 14 Oct 2013 23:32:57 -0000 Author: np Date: Mon Oct 14 23:32:56 2013 New Revision: 256477 URL: http://svnweb.freebsd.org/changeset/base/256477 Log: cxgbe(4): Store the log2 of the # of doorbells per BAR2 page for both ingress and egress queues, and for both T4 and T5. These values are used by the T4/T5 iWARP driver. Modified: head/sys/dev/cxgbe/adapter.h head/sys/dev/cxgbe/t4_sge.c Modified: head/sys/dev/cxgbe/adapter.h ============================================================================== --- head/sys/dev/cxgbe/adapter.h Mon Oct 14 23:31:18 2013 (r256476) +++ head/sys/dev/cxgbe/adapter.h Mon Oct 14 23:32:56 2013 (r256477) @@ -510,7 +510,8 @@ struct sge { int timer_val[SGE_NTIMERS]; int counter_val[SGE_NCOUNTERS]; int fl_starve_threshold; - int s_qpp; + int eq_s_qpp; + int iq_s_qpp; int nrxq; /* total # of Ethernet rx queues */ int ntxq; /* total # of Ethernet tx tx queues */ Modified: head/sys/dev/cxgbe/t4_sge.c ============================================================================== --- head/sys/dev/cxgbe/t4_sge.c Mon Oct 14 23:31:18 2013 (r256476) +++ head/sys/dev/cxgbe/t4_sge.c Mon Oct 14 23:32:56 2013 (r256477) @@ -569,12 +569,17 @@ t4_read_chip_settings(struct adapter *sc r = t4_read_reg(sc, A_SGE_CONM_CTRL); s->fl_starve_threshold = G_EGRTHRESHOLD(r) * 2 + 1; - if (is_t5(sc)) { - r = t4_read_reg(sc, A_SGE_EGRESS_QUEUES_PER_PAGE_PF); - r >>= S_QUEUESPERPAGEPF0 + - (S_QUEUESPERPAGEPF1 - S_QUEUESPERPAGEPF0) * sc->pf; - s->s_qpp = r & M_QUEUESPERPAGEPF0; - } + /* egress queues: log2 of # of doorbells per BAR2 page */ + r = t4_read_reg(sc, A_SGE_EGRESS_QUEUES_PER_PAGE_PF); + r >>= S_QUEUESPERPAGEPF0 + + (S_QUEUESPERPAGEPF1 - S_QUEUESPERPAGEPF0) * sc->pf; + s->eq_s_qpp = r & M_QUEUESPERPAGEPF0; + + /* ingress queues: log2 of # of doorbells per BAR2 page */ + r = t4_read_reg(sc, A_SGE_INGRESS_QUEUES_PER_PAGE_PF); + r >>= S_QUEUESPERPAGEPF0 + + (S_QUEUESPERPAGEPF1 - S_QUEUESPERPAGEPF0) * sc->pf; + s->iq_s_qpp = r & M_QUEUESPERPAGEPF0; t4_init_tp_params(sc); @@ -2799,7 +2804,7 @@ alloc_eq(struct adapter *sc, struct port if (isset(&eq->doorbells, DOORBELL_UDB) || isset(&eq->doorbells, DOORBELL_UDBWC) || isset(&eq->doorbells, DOORBELL_WCWR)) { - uint32_t s_qpp = sc->sge.s_qpp; + uint32_t s_qpp = sc->sge.eq_s_qpp; uint32_t mask = (1 << s_qpp) - 1; volatile uint8_t *udb; From owner-svn-src-all@FreeBSD.ORG Mon Oct 14 23:57:12 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id DF8F8856; Mon, 14 Oct 2013 23:57:12 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id CDABC20FD; Mon, 14 Oct 2013 23:57:12 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9ENvC2B046325; Mon, 14 Oct 2013 23:57:12 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9ENvC6P046324; Mon, 14 Oct 2013 23:57:12 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201310142357.r9ENvC6P046324@svn.freebsd.org> From: Adrian Chadd Date: Mon, 14 Oct 2013 23:57:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256482 - head/sys/mips/atheros X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 14 Oct 2013 23:57:13 -0000 Author: adrian Date: Mon Oct 14 23:57:12 2013 New Revision: 256482 URL: http://svnweb.freebsd.org/changeset/base/256482 Log: Add register definitions for the AR933x SoC GMAC (ie, ethernet MAC) control block. The GMAC configuration block allows for some configuration of how the GMAC0 (ie, arge0) port is connected to the on-board switch (if indeed there is one.) It both can be pushed into the on-board switch; it could also be torn out and exposed via an external MII (and that operational mode is also controllable.) Obtained from: Linux/OpenWRT Modified: head/sys/mips/atheros/ar933xreg.h Modified: head/sys/mips/atheros/ar933xreg.h ============================================================================== --- head/sys/mips/atheros/ar933xreg.h Mon Oct 14 23:56:38 2013 (r256481) +++ head/sys/mips/atheros/ar933xreg.h Mon Oct 14 23:57:12 2013 (r256482) @@ -38,6 +38,24 @@ #define AR933X_UART_BASE (AR71XX_APB_BASE + 0x00020000) #define AR933X_UART_SIZE 0x14 + +#define AR933X_GMAC_BASE (AR71XX_APB_BASE + 0x00070000) +#define AR933X_GMAC_SIZE 0x04 + +#define AR933X_GMAC_REG_ETH_CFG (AR933X_GMAC_BASE + 0x00) + +#define AR933X_ETH_CFG_RGMII_GE0 (1 << 0) +#define AR933X_ETH_CFG_MII_GE0 (1 << 1) +#define AR933X_ETH_CFG_GMII_GE0 (1 << 2) +#define AR933X_ETH_CFG_MII_GE0_MASTER (1 << 3) +#define AR933X_ETH_CFG_MII_GE0_SLAVE (1 << 4) +#define AR933X_ETH_CFG_MII_GE0_ERR_EN (1 << 5) +#define AR933X_ETH_CFG_SW_PHY_SWAP (1 << 7) +#define AR933X_ETH_CFG_SW_PHY_ADDR_SWAP (1 << 8) +#define AR933X_ETH_CFG_RMII_GE0 (1 << 9) +#define AR933X_ETH_CFG_RMII_GE0_SPD_10 0 +#define AR933X_ETH_CFG_RMII_GE0_SPD_100 (1 << 10) + #define AR933X_WMAC_BASE (AR71XX_APB_BASE + 0x00100000) #define AR933X_WMAC_SIZE 0x20000 #define AR933X_EHCI_BASE 0x1b000000 From owner-svn-src-all@FreeBSD.ORG Mon Oct 14 23:58:52 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id BB77C999; Mon, 14 Oct 2013 23:58:52 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 916E82109; Mon, 14 Oct 2013 23:58:52 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9ENwqYG046600; Mon, 14 Oct 2013 23:58:52 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9ENwqYB046599; Mon, 14 Oct 2013 23:58:52 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201310142358.r9ENwqYB046599@svn.freebsd.org> From: Adrian Chadd Date: Mon, 14 Oct 2013 23:58:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256483 - head/sys/mips/atheros X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 14 Oct 2013 23:58:52 -0000 Author: adrian Date: Mon Oct 14 23:58:52 2013 New Revision: 256483 URL: http://svnweb.freebsd.org/changeset/base/256483 Log: Add the rest of the AR934x SoC reset register definitions. Obtained from: Linux/OpenWRT Modified: head/sys/mips/atheros/ar934xreg.h Modified: head/sys/mips/atheros/ar934xreg.h ============================================================================== --- head/sys/mips/atheros/ar934xreg.h Mon Oct 14 23:57:12 2013 (r256482) +++ head/sys/mips/atheros/ar934xreg.h Mon Oct 14 23:58:52 2013 (r256483) @@ -103,16 +103,38 @@ #define AR934X_RESET_REG_BOOTSTRAP (AR71XX_RST_BLOCK_BASE + 0xb0) #define AR934X_RESET_REG_PCIE_WMAC_INT_STATUS (AR71XX_RST_BLOCK_BASE + 0xac) +#define AR934X_RESET_HOST (1 << 31) +#define AR934X_RESET_SLIC (1 << 30) +#define AR934X_RESET_HDMA (1 << 29) +#define AR934X_RESET_EXTERNAL (1 << 28) +#define AR934X_RESET_RTC (1 << 27) +#define AR934X_RESET_PCIE_EP_INT (1 << 26) +#define AR934X_RESET_CHKSUM_ACC (1 << 25) +#define AR934X_RESET_FULL_CHIP (1 << 24) #define AR934X_RESET_GE1_MDIO (1 << 23) #define AR934X_RESET_GE0_MDIO (1 << 22) +#define AR934X_RESET_CPU_NMI (1 << 21) +#define AR934X_RESET_CPU_COLD (1 << 20) +#define AR934X_RESET_HOST_RESET_INT (1 << 19) +#define AR934X_RESET_PCIE_EP (1 << 18) +#define AR934X_RESET_UART1 (1 << 17) +#define AR934X_RESET_DDR (1 << 16) +#define AR934X_RESET_USB_PHY_PLL_PWD_EXT (1 << 15) +#define AR934X_RESET_NANDF (1 << 14) #define AR934X_RESET_GE1_MAC (1 << 13) #define AR934X_RESET_ETH_SWITCH_ANALOG (1 << 12) #define AR934X_RESET_USB_PHY_ANALOG (1 << 11) +#define AR934X_RESET_HOST_DMA_INT (1 << 10) #define AR934X_RESET_GE0_MAC (1 << 9) #define AR934X_RESET_ETH_SWITCH (1 << 8) +#define AR934X_RESET_PCIE_PHY (1 << 7) +#define AR934X_RESET_PCIE (1 << 6) #define AR934X_RESET_USB_HOST (1 << 5) #define AR934X_RESET_USB_PHY (1 << 4) #define AR934X_RESET_USBSUS_OVERRIDE (1 << 3) +#define AR934X_RESET_LUT (1 << 2) +#define AR934X_RESET_MBOX (1 << 1) +#define AR934X_RESET_I2S (1 << 0) #define AR934X_BOOTSTRAP_SW_OPTION8 (1 << 23) #define AR934X_BOOTSTRAP_SW_OPTION7 (1 << 22) From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 00:26:03 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 55B6BFD3; Tue, 15 Oct 2013 00:26:03 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 3439D22D2; Tue, 15 Oct 2013 00:26:03 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9F0Q3X7062332; Tue, 15 Oct 2013 00:26:03 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9F0Q3ib062331; Tue, 15 Oct 2013 00:26:03 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201310150026.r9F0Q3ib062331@svn.freebsd.org> From: Adrian Chadd Date: Tue, 15 Oct 2013 00:26:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256486 - head/sys/dev/etherswitch/arswitch X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 00:26:03 -0000 Author: adrian Date: Tue Oct 15 00:26:02 2013 New Revision: 256486 URL: http://svnweb.freebsd.org/changeset/base/256486 Log: Add AR934x, AR8327 register definitions. Obtained from: Linux/OpenWRT Modified: head/sys/dev/etherswitch/arswitch/arswitchreg.h Modified: head/sys/dev/etherswitch/arswitch/arswitchreg.h ============================================================================== --- head/sys/dev/etherswitch/arswitch/arswitchreg.h Tue Oct 15 00:09:22 2013 (r256485) +++ head/sys/dev/etherswitch/arswitch/arswitchreg.h Tue Oct 15 00:26:02 2013 (r256486) @@ -151,6 +151,8 @@ #define AR8X16_MIB_FUNC_CAPTURE 0x3 #define AR8X16_MIB_FUNC_XXX (1 << 30) /* 0x40000000 */ +#define AR934X_MIB_ENABLE (1 << 30) + #define AR8X16_REG_MDIO_HIGH_ADDR 0x0094 #define AR8X16_REG_MDIO_CTRL 0x0098 @@ -287,5 +289,218 @@ #define AR8X16_MAX_VLANS 16 -#endif /* __AR8X16_SWITCHREG_H__ */ +/* + * AR9340 switch specific definitions. + */ + +/* XXX Linux define compatibility stuff */ +#define BITM(_count) ((1 << _count) - 1) +#define BITS(_shift, _count) (BITM(_count) << _shift) + +#define AR934X_REG_OPER_MODE0 0x04 +#define AR934X_OPER_MODE0_MAC_GMII_EN (1 << 6) +#define AR934X_OPER_MODE0_PHY_MII_EN (1 << 10) + +#define AR934X_REG_OPER_MODE1 0x08 +#define AR934X_REG_OPER_MODE1_PHY4_MII_EN (1 << 28) + +#define AR934X_REG_FLOOD_MASK 0x2c +#define AR934X_FLOOD_MASK_MC_DP(_p) (1 << (16 + (_p))) +#define AR934X_FLOOD_MASK_BC_DP(_p) (1 << (25 + (_p))) + +#define AR934X_REG_QM_CTRL 0x3c +#define AR934X_QM_CTRL_ARP_EN (1 << 15) + +#define AR934X_REG_AT_CTRL 0x5c +#define AR934X_AT_CTRL_AGE_TIME BITS(0, 15) +#define AR934X_AT_CTRL_AGE_EN (1 << 17) +#define AR934X_AT_CTRL_LEARN_CHANGE (1 << 18) + +#define AR934X_REG_PORT_BASE(_port) (0x100 + (_port) * 0x100) + +#define AR934X_REG_PORT_VLAN1(_port) (AR934X_REG_PORT_BASE((_port)) + 0x08) +#define AR934X_PORT_VLAN1_DEFAULT_SVID_S 0 +#define AR934X_PORT_VLAN1_FORCE_DEFAULT_VID_EN (1 << 12) +#define AR934X_PORT_VLAN1_PORT_TLS_MODE (1 << 13) +#define AR934X_PORT_VLAN1_PORT_VLAN_PROP_EN (1 << 14) +#define AR934X_PORT_VLAN1_PORT_CLONE_EN (1 << 15) +#define AR934X_PORT_VLAN1_DEFAULT_CVID_S 16 +#define AR934X_PORT_VLAN1_FORCE_PORT_VLAN_EN (1 << 28) +#define AR934X_PORT_VLAN1_ING_PORT_PRI_S 29 + +#define AR934X_REG_PORT_VLAN2(_port) (AR934X_REG_PORT_BASE((_port)) + 0x0c) +#define AR934X_PORT_VLAN2_PORT_VID_MEM_S 16 +#define AR934X_PORT_VLAN2_8021Q_MODE_S 30 +#define AR934X_PORT_VLAN2_8021Q_MODE_PORT_ONLY 0 +#define AR934X_PORT_VLAN2_8021Q_MODE_PORT_FALLBACK 1 +#define AR934X_PORT_VLAN2_8021Q_MODE_VLAN_ONLY 2 +#define AR934X_PORT_VLAN2_8021Q_MODE_SECURE 3 + +/* + * AR8327 specific registers + */ +#define AR8327_NUM_PORTS 7 +#define AR8327_NUM_PHYS 5 +#define AR8327_PORTS_ALL 0x7f + +#define AR8327_REG_MASK 0x000 + +#define AR8327_REG_PAD0_MODE 0x004 +#define AR8327_REG_PAD5_MODE 0x008 +#define AR8327_REG_PAD6_MODE 0x00c + +#define AR8327_PAD_MAC_MII_RXCLK_SEL (1 << 0) +#define AR8327_PAD_MAC_MII_TXCLK_SEL (1 << 1) +#define AR8327_PAD_MAC_MII_EN (1 << 2) +#define AR8327_PAD_MAC_GMII_RXCLK_SEL (1 << 4) +#define AR8327_PAD_MAC_GMII_TXCLK_SEL (1 << 5) +#define AR8327_PAD_MAC_GMII_EN (1 << 6) +#define AR8327_PAD_SGMII_EN (1 << 7) +#define AR8327_PAD_PHY_MII_RXCLK_SEL (1 << 8) +#define AR8327_PAD_PHY_MII_TXCLK_SEL (1 << 9) +#define AR8327_PAD_PHY_MII_EN (1 << 10) +#define AR8327_PAD_PHY_GMII_PIPE_RXCLK_SEL (1 << 11) +#define AR8327_PAD_PHY_GMII_RXCLK_SEL (1 << 12) +#define AR8327_PAD_PHY_GMII_TXCLK_SEL (1 << 13) +#define AR8327_PAD_PHY_GMII_EN (1 << 14) +#define AR8327_PAD_PHYX_GMII_EN (1 << 16) +#define AR8327_PAD_PHYX_RGMII_EN (1 << 17) +#define AR8327_PAD_PHYX_MII_EN (1 << 18) +#define AR8327_PAD_SGMII_DELAY_EN (1 << 19) +#define AR8327_PAD_RGMII_RXCLK_DELAY_SEL BITS(20, 2) +#define AR8327_PAD_RGMII_RXCLK_DELAY_SEL_S 20 +#define AR8327_PAD_RGMII_TXCLK_DELAY_SEL BITS(22, 2) +#define AR8327_PAD_RGMII_TXCLK_DELAY_SEL_S 22 +#define AR8327_PAD_RGMII_RXCLK_DELAY_EN (1 << 24) +#define AR8327_PAD_RGMII_TXCLK_DELAY_EN (1 << 25) +#define AR8327_PAD_RGMII_EN (1 << 26) + +#define AR8327_REG_POWER_ON_STRIP 0x010 +#define AR8327_POWER_ON_STRIP_POWER_ON_SEL (1 << 31) +#define AR8327_POWER_ON_STRIP_LED_OPEN_EN (1 << 24) +#define AR8327_POWER_ON_STRIP_SERDES_AEN (1 << 7) + +#define AR8327_REG_INT_STATUS0 0x020 +#define AR8327_INT0_VT_DONE (1 << 20) + +#define AR8327_REG_INT_STATUS1 0x024 +#define AR8327_REG_INT_MASK0 0x028 +#define AR8327_REG_INT_MASK1 0x02c + +#define AR8327_REG_MODULE_EN 0x030 +#define AR8327_MODULE_EN_MIB (1 << 0) + +#define AR8327_REG_MIB_FUNC 0x034 +#define AR8327_MIB_CPU_KEEP (1 << 20) + +#define AR8327_REG_SERVICE_TAG 0x048 +#define AR8327_REG_LED_CTRL0 0x050 +#define AR8327_REG_LED_CTRL1 0x054 +#define AR8327_REG_LED_CTRL2 0x058 +#define AR8327_REG_LED_CTRL3 0x05c +#define AR8327_REG_MAC_ADDR0 0x060 +#define AR8327_REG_MAC_ADDR1 0x064 + +#define AR8327_REG_MAX_FRAME_SIZE 0x078 +#define AR8327_MAX_FRAME_SIZE_MTU BITS(0, 14) + +#define AR8327_REG_PORT_STATUS(_i) (0x07c + (_i) * 4) + +#define AR8327_REG_HEADER_CTRL 0x098 +#define AR8327_REG_PORT_HEADER(_i) (0x09c + (_i) * 4) + +#define AR8327_REG_SGMII_CTRL 0x0e0 +#define AR8327_SGMII_CTRL_EN_PLL (1 << 1) +#define AR8327_SGMII_CTRL_EN_RX (1 << 2) +#define AR8327_SGMII_CTRL_EN_TX (1 << 3) + +#define AR8327_REG_PORT_VLAN0(_i) (0x420 + (_i) * 0x8) +#define AR8327_PORT_VLAN0_DEF_SVID BITS(0, 12) +#define AR8327_PORT_VLAN0_DEF_SVID_S 0 +#define AR8327_PORT_VLAN0_DEF_CVID BITS(16, 12) +#define AR8327_PORT_VLAN0_DEF_CVID_S 16 + +#define AR8327_REG_PORT_VLAN1(_i) (0x424 + (_i) * 0x8) +#define AR8327_PORT_VLAN1_PORT_VLAN_PROP (1 << 6) +#define AR8327_PORT_VLAN1_OUT_MODE BITS(12, 2) +#define AR8327_PORT_VLAN1_OUT_MODE_S 12 +#define AR8327_PORT_VLAN1_OUT_MODE_UNMOD 0 +#define AR8327_PORT_VLAN1_OUT_MODE_UNTAG 1 +#define AR8327_PORT_VLAN1_OUT_MODE_TAG 2 +#define AR8327_PORT_VLAN1_OUT_MODE_UNTOUCH 3 + +#define AR8327_REG_ATU_DATA0 0x600 +#define AR8327_REG_ATU_DATA1 0x604 +#define AR8327_REG_ATU_DATA2 0x608 + +#define AR8327_REG_ATU_FUNC 0x60c +#define AR8327_ATU_FUNC_OP BITS(0, 4) +#define AR8327_ATU_FUNC_OP_NOOP 0x0 +#define AR8327_ATU_FUNC_OP_FLUSH 0x1 +#define AR8327_ATU_FUNC_OP_LOAD 0x2 +#define AR8327_ATU_FUNC_OP_PURGE 0x3 +#define AR8327_ATU_FUNC_OP_FLUSH_LOCKED 0x4 +#define AR8327_ATU_FUNC_OP_FLUSH_UNICAST 0x5 +#define AR8327_ATU_FUNC_OP_GET_NEXT 0x6 +#define AR8327_ATU_FUNC_OP_SEARCH_MAC 0x7 +#define AR8327_ATU_FUNC_OP_CHANGE_TRUNK 0x8 +#define AR8327_ATU_FUNC_BUSY (1 << 31) + +#define AR8327_REG_VTU_FUNC0 0x0610 +#define AR8327_VTU_FUNC0_EG_MODE BITS(4, 14) +#define AR8327_VTU_FUNC0_EG_MODE_S(_i) (4 + (_i) * 2) +#define AR8327_VTU_FUNC0_EG_MODE_KEEP 0 +#define AR8327_VTU_FUNC0_EG_MODE_UNTAG 1 +#define AR8327_VTU_FUNC0_EG_MODE_TAG 2 +#define AR8327_VTU_FUNC0_EG_MODE_NOT 3 +#define AR8327_VTU_FUNC0_IVL (1 << 19) +#define AR8327_VTU_FUNC0_VALID (1 << 20) + +#define AR8327_REG_VTU_FUNC1 0x0614 +#define AR8327_VTU_FUNC1_OP BITS(0, 3) +#define AR8327_VTU_FUNC1_OP_NOOP 0 +#define AR8327_VTU_FUNC1_OP_FLUSH 1 +#define AR8327_VTU_FUNC1_OP_LOAD 2 +#define AR8327_VTU_FUNC1_OP_PURGE 3 +#define AR8327_VTU_FUNC1_OP_REMOVE_PORT 4 +#define AR8327_VTU_FUNC1_OP_GET_NEXT 5 +#define AR8327_VTU_FUNC1_OP_GET_ONE 6 +#define AR8327_VTU_FUNC1_FULL (1 << 4) +#define AR8327_VTU_FUNC1_PORT (1 << 8, 4) +#define AR8327_VTU_FUNC1_PORT_S 8 +#define AR8327_VTU_FUNC1_VID (1 << 16, 12) +#define AR8327_VTU_FUNC1_VID_S 16 +#define AR8327_VTU_FUNC1_BUSY (1 << 31) + +#define AR8327_REG_FWD_CTRL0 0x620 +#define AR8327_FWD_CTRL0_CPU_PORT_EN (1 << 10) +#define AR8327_FWD_CTRL0_MIRROR_PORT BITS(4, 4) +#define AR8327_FWD_CTRL0_MIRROR_PORT_S 4 + +#define AR8327_REG_FWD_CTRL1 0x624 +#define AR8327_FWD_CTRL1_UC_FLOOD BITS(0, 7) +#define AR8327_FWD_CTRL1_UC_FLOOD_S 0 +#define AR8327_FWD_CTRL1_MC_FLOOD BITS(8, 7) +#define AR8327_FWD_CTRL1_MC_FLOOD_S 8 +#define AR8327_FWD_CTRL1_BC_FLOOD BITS(16, 7) +#define AR8327_FWD_CTRL1_BC_FLOOD_S 16 +#define AR8327_FWD_CTRL1_IGMP BITS(24, 7) +#define AR8327_FWD_CTRL1_IGMP_S 24 + +#define AR8327_REG_PORT_LOOKUP(_i) (0x660 + (_i) * 0xc) +#define AR8327_PORT_LOOKUP_MEMBER BITS(0, 7) +#define AR8327_PORT_LOOKUP_IN_MODE BITS(8, 2) +#define AR8327_PORT_LOOKUP_IN_MODE_S 8 +#define AR8327_PORT_LOOKUP_STATE BITS(16, 3) +#define AR8327_PORT_LOOKUP_STATE_S 16 +#define AR8327_PORT_LOOKUP_LEARN (1 << 20) +#define AR8327_PORT_LOOKUP_ING_MIRROR_EN (1 << 25) + +#define AR8327_REG_PORT_PRIO(_i) (0x664 + (_i) * 0xc) +#define AR8327_REG_PORT_HOL_CTRL1(_i) (0x974 + (_i) * 0x8) +#define AR8327_PORT_HOL_CTRL1_EG_MIRROR_EN (1 << 16) + +#define AR8327_REG_PORT_STATS_BASE(_i) (0x1000 + (_i) * 0x100) + +#endif /* __AR8X16_SWITCHREG_H__ */ From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 01:35:50 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 15B268A2; Tue, 15 Oct 2013 01:35:50 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 03D272641; Tue, 15 Oct 2013 01:35:50 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9F1ZnsZ098312; Tue, 15 Oct 2013 01:35:49 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9F1ZnCe098308; Tue, 15 Oct 2013 01:35:49 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201310150135.r9F1ZnCe098308@svn.freebsd.org> From: Adrian Chadd Date: Tue, 15 Oct 2013 01:35:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256487 - head/sys/mips/atheros X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 01:35:50 -0000 Author: adrian Date: Tue Oct 15 01:35:48 2013 New Revision: 256487 URL: http://svnweb.freebsd.org/changeset/base/256487 Log: Add new features - an MDIO clock, WMAC reset, GMAC reset and ethernet switch reset/initialise functions. The AR934x and QC955x SoCs both have a configurable MDIO base clock. The others have the MDIO clock use the same clock as the system reference clock, whatever that may be. Tested: * AR9344 SoC TODO: * mips24k - AR933x would be fine for now, just to ensure that things are sane. Modified: head/sys/mips/atheros/ar71xx_chip.c head/sys/mips/atheros/ar71xx_cpudef.h head/sys/mips/atheros/ar724x_chip.c head/sys/mips/atheros/ar91xx_chip.c Modified: head/sys/mips/atheros/ar71xx_chip.c ============================================================================== --- head/sys/mips/atheros/ar71xx_chip.c Tue Oct 15 00:26:02 2013 (r256486) +++ head/sys/mips/atheros/ar71xx_chip.c Tue Oct 15 01:35:48 2013 (r256487) @@ -81,6 +81,7 @@ uint32_t u_ar71xx_ddr_freq; uint32_t u_ar71xx_uart_freq; uint32_t u_ar71xx_wdt_freq; uint32_t u_ar71xx_refclk; +uint32_t u_ar71xx_mdio_freq; static void ar71xx_chip_detect_mem_size(void) @@ -94,7 +95,7 @@ ar71xx_chip_detect_sys_frequency(void) uint32_t freq; uint32_t div; - u_ar71xx_refclk = AR71XX_BASE_FREQ; + u_ar71xx_mdio_freq = u_ar71xx_refclk = AR71XX_BASE_FREQ; pll = ATH_READ_REG(AR71XX_PLL_REG_CPU_CONFIG); Modified: head/sys/mips/atheros/ar71xx_cpudef.h ============================================================================== --- head/sys/mips/atheros/ar71xx_cpudef.h Tue Oct 15 00:26:02 2013 (r256486) +++ head/sys/mips/atheros/ar71xx_cpudef.h Tue Oct 15 01:35:48 2013 (r256487) @@ -57,6 +57,12 @@ struct ar71xx_cpu_def { * each chip. */ void (* ar71xx_chip_init_usb_peripheral) (void); + + void (* ar71xx_chip_reset_ethernet_switch) (void); + + void (* ar71xx_chip_reset_wmac) (void); + + void (* ar71xx_chip_init_gmac) (void); }; extern struct ar71xx_cpu_def * ar71xx_cpu_ops; @@ -111,6 +117,24 @@ static inline void ar71xx_init_usb_perip ar71xx_cpu_ops->ar71xx_chip_init_usb_peripheral(); } +static inline void ar71xx_reset_ethernet_switch(void) +{ + if (ar71xx_cpu_ops->ar71xx_chip_reset_ethernet_switch) + ar71xx_cpu_ops->ar71xx_chip_reset_ethernet_switch(); +} + +static inline void ar71xx_reset_wmac(void) +{ + if (ar71xx_cpu_ops->ar71xx_chip_reset_wmac) + ar71xx_cpu_ops->ar71xx_chip_reset_wmac(); +} + +static inline void ar71xx_init_gmac(void) +{ + if (ar71xx_cpu_ops->ar71xx_chip_init_gmac) + ar71xx_cpu_ops->ar71xx_chip_init_gmac(); +} + static inline void ar71xx_device_ddr_flush_ip2(void) { ar71xx_cpu_ops->ar71xx_chip_ddr_flush_ip2(); @@ -123,6 +147,7 @@ extern uint32_t u_ar71xx_ahb_freq; extern uint32_t u_ar71xx_ddr_freq; extern uint32_t u_ar71xx_uart_freq; extern uint32_t u_ar71xx_wdt_freq; +extern uint32_t u_ar71xx_mdio_freq; static inline uint64_t ar71xx_refclk(void) { return u_ar71xx_refclk; } static inline uint64_t ar71xx_cpu_freq(void) { return u_ar71xx_cpu_freq; } @@ -130,5 +155,6 @@ static inline uint64_t ar71xx_ahb_freq(v static inline uint64_t ar71xx_ddr_freq(void) { return u_ar71xx_ddr_freq; } static inline uint64_t ar71xx_uart_freq(void) { return u_ar71xx_uart_freq; } static inline uint64_t ar71xx_wdt_freq(void) { return u_ar71xx_wdt_freq; } +static inline uint64_t ar71xx_mdio_freq(void) { return u_ar71xx_mdio_freq; } #endif Modified: head/sys/mips/atheros/ar724x_chip.c ============================================================================== --- head/sys/mips/atheros/ar724x_chip.c Tue Oct 15 00:26:02 2013 (r256486) +++ head/sys/mips/atheros/ar724x_chip.c Tue Oct 15 01:35:48 2013 (r256487) @@ -73,7 +73,7 @@ ar724x_chip_detect_sys_frequency(void) uint32_t freq; uint32_t div; - u_ar71xx_refclk = AR724X_BASE_FREQ; + u_ar71xx_mdio_freq = u_ar71xx_refclk = AR724X_BASE_FREQ; pll = ATH_READ_REG(AR724X_PLL_REG_CPU_CONFIG); Modified: head/sys/mips/atheros/ar91xx_chip.c ============================================================================== --- head/sys/mips/atheros/ar91xx_chip.c Tue Oct 15 00:26:02 2013 (r256486) +++ head/sys/mips/atheros/ar91xx_chip.c Tue Oct 15 01:35:48 2013 (r256487) @@ -71,7 +71,7 @@ ar91xx_chip_detect_sys_frequency(void) uint32_t freq; uint32_t div; - u_ar71xx_refclk = AR91XX_BASE_FREQ; + u_ar71xx_mdio_freq = u_ar71xx_refclk = AR91XX_BASE_FREQ; pll = ATH_READ_REG(AR91XX_PLL_REG_CPU_CONFIG); From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 01:37:01 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 41B059E1; Tue, 15 Oct 2013 01:37:01 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 2F35D2650; Tue, 15 Oct 2013 01:37:01 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9F1b1lV098872; Tue, 15 Oct 2013 01:37:01 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9F1b1KV098871; Tue, 15 Oct 2013 01:37:01 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201310150137.r9F1b1KV098871@svn.freebsd.org> From: Adrian Chadd Date: Tue, 15 Oct 2013 01:37:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256488 - head/sys/mips/atheros X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 01:37:01 -0000 Author: adrian Date: Tue Oct 15 01:37:00 2013 New Revision: 256488 URL: http://svnweb.freebsd.org/changeset/base/256488 Log: Fix the Atheros MIPS startup path a little. * Print out the platform frequency the same as the other frequencies. * Print out the MDIO frequency. * Optionally do GMAC and ethernet switch setup if required. Tested: * AR9344 Modified: head/sys/mips/atheros/ar71xx_machdep.c Modified: head/sys/mips/atheros/ar71xx_machdep.c ============================================================================== --- head/sys/mips/atheros/ar71xx_machdep.c Tue Oct 15 01:35:48 2013 (r256487) +++ head/sys/mips/atheros/ar71xx_machdep.c Tue Oct 15 01:37:00 2013 (r256488) @@ -233,8 +233,9 @@ platform_start(__register_t a0 __unused, printf("CPU Frequency=%d MHz\n", u_ar71xx_cpu_freq / 1000000); printf("CPU DDR Frequency=%d MHz\n", u_ar71xx_ddr_freq / 1000000); printf("CPU AHB Frequency=%d MHz\n", u_ar71xx_ahb_freq / 1000000); - printf("platform frequency: %lld\n", platform_counter_freq); + printf("platform frequency: %lld MHz\n", platform_counter_freq / 1000000); printf("CPU reference clock: %d MHz\n", u_ar71xx_refclk / 1000000); + printf("CPU MDIO clock: %d MHz\n", u_ar71xx_mdio_freq / 1000000); printf("arguments: \n"); printf(" a0 = %08x\n", a0); printf(" a1 = %08x\n", a1); @@ -279,6 +280,16 @@ platform_start(__register_t a0 __unused, */ ar71xx_init_usb_peripheral(); + /* + * Reset internal ethernet switch, if one exists + */ + ar71xx_reset_ethernet_switch(); + + /* + * Initialise the gmac driver. + */ + ar71xx_init_gmac(); + kdb_init(); #ifdef KDB if (boothowto & RB_KDB) From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 02:07:30 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 21190D9E; Tue, 15 Oct 2013 02:07:30 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E91F4279E; Tue, 15 Oct 2013 02:07:29 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9F27TNI014608; Tue, 15 Oct 2013 02:07:29 GMT (envelope-from dteske@svn.freebsd.org) Received: (from dteske@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9F27TFi014607; Tue, 15 Oct 2013 02:07:29 GMT (envelope-from dteske@svn.freebsd.org) Message-Id: <201310150207.r9F27TFi014607@svn.freebsd.org> From: Devin Teske Date: Tue, 15 Oct 2013 02:07:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256489 - head/usr.sbin/bsdinstall/scripts X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 02:07:30 -0000 Author: dteske Date: Tue Oct 15 02:07:29 2013 New Revision: 256489 URL: http://svnweb.freebsd.org/changeset/base/256489 Log: Add executable bit to docsinstall [old] and entropy [new] scripts. Approved by: re (gjb) Modified: Directory Properties: head/usr.sbin/bsdinstall/scripts/docsinstall (props changed) head/usr.sbin/bsdinstall/scripts/entropy (props changed) From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 03:23:09 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id A2B02634; Tue, 15 Oct 2013 03:23:09 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 8F39C2B5A; Tue, 15 Oct 2013 03:23:09 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9F3N98u055412; Tue, 15 Oct 2013 03:23:09 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9F3N9mv055411; Tue, 15 Oct 2013 03:23:09 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201310150323.r9F3N9mv055411@svn.freebsd.org> From: Adrian Chadd Date: Tue, 15 Oct 2013 03:23:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256490 - head/sys/mips/atheros X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 03:23:09 -0000 Author: adrian Date: Tue Oct 15 03:23:08 2013 New Revision: 256490 URL: http://svnweb.freebsd.org/changeset/base/256490 Log: Update the AR933x SoC support to include a few new knobs: * Initialise the MDIO clock to default to the reference clock; * Add some code to allow the hints mechanism to allow setup of the GMAC config block. * Document how the switch is wired up internally. Tested: * AR9331 SoC (Carambola 2) Modified: head/sys/mips/atheros/ar933x_chip.c Modified: head/sys/mips/atheros/ar933x_chip.c ============================================================================== --- head/sys/mips/atheros/ar933x_chip.c Tue Oct 15 02:07:29 2013 (r256489) +++ head/sys/mips/atheros/ar933x_chip.c Tue Oct 15 03:23:08 2013 (r256490) @@ -115,12 +115,20 @@ ar933x_chip_detect_sys_frequency(void) u_ar71xx_ahb_freq = freq / t; } - /* On the AR933x, the UART frequency is the reference clock, + /* + * On the AR933x, the UART frequency is the reference clock, * not the AHB bus clock. */ u_ar71xx_uart_freq = u_ar71xx_refclk; /* + * XXX TODO: check whether the mdio frequency is always the + * refclock frequency, or whether it's variable like on the + * AR934x. + */ + u_ar71xx_mdio_freq = u_ar71xx_refclk; + + /* * XXX check what the watchdog frequency should be? */ u_ar71xx_wdt_freq = u_ar71xx_ahb_freq; @@ -242,6 +250,95 @@ ar933x_chip_init_usb_peripheral(void) DELAY(100); } +static void +ar933x_configure_gmac(uint32_t gmac_cfg) +{ + uint32_t reg; + + reg = ATH_READ_REG(AR933X_GMAC_REG_ETH_CFG); + + /* + * The relevant bits here include: + * + * + AR933X_ETH_CFG_SW_PHY_SWAP + * + AR933X_ETH_CFG_SW_PHY_ADDR_SWAP + * + * There are other things; look at what openwrt exposes so + * it can be correctly exposed. + * + * TODO: what about ethernet switch support? How's that work? + */ + if (bootverbose) + printf("%s: GMAC config was 0x%08x\n", __func__, reg); + reg &= ~(AR933X_ETH_CFG_SW_PHY_SWAP | AR933X_ETH_CFG_SW_PHY_ADDR_SWAP); + reg |= gmac_cfg; + if (bootverbose) + printf("%s: GMAC setting is 0x%08x; register is now 0x%08x\n", + __func__, + gmac_cfg, + reg); + ATH_WRITE_REG(AR933X_GMAC_REG_ETH_CFG, reg); +} + +static void +ar933x_chip_init_gmac(void) +{ + int val; + uint32_t gmac_cfg = 0; + + /* + * These two bits need a bit better explanation. + * + * The default configuration in the hardware is to map both + * ports to the internal switch. + * + * Here, GE0 == arge0, GE1 == arge1. + * + * The internal switch has: + * + 5 MAC ports, MAC0->MAC4. + * + 5 PHY ports, PHY0->PHY4, + * + MAC0 connects to GE1; + * + GE0 connects to PHY4; + * + The other mappings are MAC1->PHY0, MAC2->PHY1 .. MAC4->PHY3. + * + * The GE1 port is linked in via 1000MBit/full, supplying what is + * normally the 'WAN' switch ports. + * + * The switch is connected the MDIO bus on GE1. It looks like + * a normal AR7240 on-board switch. + * + * The GE0 port is connected via MII to PHY4, and can operate in + * 10/100mbit, full/half duplex. Ie, you can speak to PHY4 on + * the MDIO bus and everything will simply 'work'. + * + * So far so good. This looks just like an AR7240 SoC. + * + * However, some configurations will just expose one or two + * physical ports. In this case, some configuration bits can + * be set to tweak this. + * + * + CFG_SW_PHY_ADDR_SWAP swaps PHY port 0 with PHY port 4. + * Ie, GE0's PHY shows up as PHY 0. So if there's only + * one physical port, there's no need to involve the + * switch framework - it can just show up as a default, + * normal single PHY. + * + * + CFG_SW_PHY_SWAP swaps the internal switch connection + * between PHY0 and PHY4. Ie, PHY4 connects to MAc1, + * PHY0 connects to GE0. + */ + if ((resource_int_value("ar933x_gmac", 0, "override_phy", &val) == 0) + && (val == 0)) + return; + if ((resource_int_value("ar933x_gmac", 0, "swap_phy", &val) == 0) + && (val == 1)) + gmac_cfg |= AR933X_ETH_CFG_SW_PHY_SWAP; + if ((resource_int_value("ar933x_gmac", 0, "swap_phy_addr", &val) == 0) + && (val == 1)) + gmac_cfg |= AR933X_ETH_CFG_SW_PHY_ADDR_SWAP; + ar933x_configure_gmac(gmac_cfg); +} + struct ar71xx_cpu_def ar933x_chip_def = { &ar933x_chip_detect_mem_size, &ar933x_chip_detect_sys_frequency, @@ -254,5 +351,8 @@ struct ar71xx_cpu_def ar933x_chip_def = &ar933x_chip_ddr_flush_ge, &ar933x_chip_get_eth_pll, &ar933x_chip_ddr_flush_ip2, - &ar933x_chip_init_usb_peripheral + &ar933x_chip_init_usb_peripheral, + NULL, + NULL, + &ar933x_chip_init_gmac, }; From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 03:28:32 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id E7C268DB; Tue, 15 Oct 2013 03:28:32 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D36862B97; Tue, 15 Oct 2013 03:28:32 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9F3SWFF056540; Tue, 15 Oct 2013 03:28:32 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9F3SWIw056539; Tue, 15 Oct 2013 03:28:32 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201310150328.r9F3SWIw056539@svn.freebsd.org> From: Adrian Chadd Date: Tue, 15 Oct 2013 03:28:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256491 - head/sys/mips/atheros X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 03:28:33 -0000 Author: adrian Date: Tue Oct 15 03:28:32 2013 New Revision: 256491 URL: http://svnweb.freebsd.org/changeset/base/256491 Log: Update the AR934x SoC support. * Add the MDIO clock probe during clock initialisation; * Update the ethernet PLL configuration function to use the correct values; * Add a GMAC block configuration to pull the configuration out of hints; * Add an ethernet switch reconfiguration method. Tested: * AR9344 SoC (DB120) .. however, this has been tested with extra patches in my tree (to fix the ethernet/MDIO support, SPI support, ethernet switch support) and thus it isn't enough to bring the full board support up. Modified: head/sys/mips/atheros/ar934x_chip.c Modified: head/sys/mips/atheros/ar934x_chip.c ============================================================================== --- head/sys/mips/atheros/ar934x_chip.c Tue Oct 15 03:23:08 2013 (r256490) +++ head/sys/mips/atheros/ar934x_chip.c Tue Oct 15 03:28:32 2013 (r256491) @@ -92,6 +92,7 @@ ar934x_chip_detect_sys_frequency(void) uint32_t pll, out_div, ref_div, nint, nfrac, frac, clk_ctrl, postdiv; uint32_t cpu_pll, ddr_pll; uint32_t bootstrap; + uint32_t reg; bootstrap = ATH_READ_REG(AR934X_RESET_REG_BOOTSTRAP); if (bootstrap & AR934X_BOOTSTRAP_REF_CLK_40) @@ -187,6 +188,18 @@ ar934x_chip_detect_sys_frequency(void) u_ar71xx_wdt_freq = u_ar71xx_refclk; u_ar71xx_uart_freq = u_ar71xx_refclk; + + /* + * Next, fetch reference clock speed for MDIO bus. + */ + reg = ATH_READ_REG(AR934X_PLL_SWITCH_CLOCK_CONTROL_REG); + if (reg & AR934X_PLL_SWITCH_CLOCK_CONTROL_MDIO_CLK_SEL) { + printf("%s: mdio=100MHz\n", __func__); + u_ar71xx_mdio_freq = (100 * 1000 * 1000); + } else { + printf("%s: mdio=%d Hz\n", __func__, u_ar71xx_refclk); + u_ar71xx_mdio_freq = u_ar71xx_refclk; + } } static void @@ -233,10 +246,10 @@ ar934x_chip_set_pll_ge(int unit, int spe switch (unit) { case 0: - /* XXX TODO */ + ATH_WRITE_REG(AR934X_PLL_ETH_XMII_CONTROL_REG, pll); break; case 1: - /* XXX TODO */ + /* XXX nothing */ break; default: printf("%s: invalid PLL set for arge unit: %d\n", @@ -273,26 +286,50 @@ ar934x_chip_ddr_flush_ip2(void) static uint32_t ar934x_chip_get_eth_pll(unsigned int mac, int speed) { -#if 0 uint32_t pll; switch (speed) { case 10: - pll = AR933X_PLL_VAL_10; + pll = AR934X_PLL_VAL_10; break; case 100: - pll = AR933X_PLL_VAL_100; + pll = AR934X_PLL_VAL_100; break; case 1000: - pll = AR933X_PLL_VAL_1000; + pll = AR934X_PLL_VAL_1000; break; default: printf("%s%d: invalid speed %d\n", __func__, mac, speed); pll = 0; } return (pll); -#endif - return (0); +} + +static void +ar934x_chip_reset_ethernet_switch(void) +{ + + ar71xx_device_stop(AR934X_RESET_ETH_SWITCH); + DELAY(100); + ar71xx_device_start(AR934X_RESET_ETH_SWITCH); + DELAY(100); +} + +static void +ar934x_configure_gmac(uint32_t gmac_cfg) +{ + uint32_t reg; + + reg = ATH_READ_REG(AR934X_GMAC_REG_ETH_CFG); + printf("%s: ETH_CFG=0x%08x\n", __func__, reg); + + reg &= ~(AR934X_ETH_CFG_RGMII_GMAC0 | AR934X_ETH_CFG_MII_GMAC0 | + AR934X_ETH_CFG_MII_GMAC0 | AR934X_ETH_CFG_SW_ONLY_MODE | + AR934X_ETH_CFG_SW_PHY_SWAP); + + reg |= gmac_cfg; + + ATH_WRITE_REG(AR934X_GMAC_REG_ETH_CFG, reg); } static void @@ -317,6 +354,43 @@ ar934x_chip_init_usb_peripheral(void) DELAY(100); } +static void +ar934x_chip_set_mii_if(uint32_t unit, uint32_t mii_mode) +{ + + /* + * XXX ! + * + * Nothing to see here; although gmac0 can have its + * MII configuration changed, the register values + * are slightly different. + */ +} + +/* + * XXX TODO: fetch default MII divider configuration + */ + +static void +ar934x_chip_reset_wmac(void) +{ + +} + +static void +ar934x_chip_init_gmac(void) +{ + long gmac_cfg; + + if (resource_long_value("ar934x_gmac", 0, "gmac_cfg", + &gmac_cfg) == 0) { + printf("%s: gmac_cfg=0x%08lx\n", + __func__, + (long) gmac_cfg); + ar934x_configure_gmac((uint32_t) gmac_cfg); + } +} + struct ar71xx_cpu_def ar934x_chip_def = { &ar934x_chip_detect_mem_size, &ar934x_chip_detect_sys_frequency, @@ -325,9 +399,12 @@ struct ar71xx_cpu_def ar934x_chip_def = &ar934x_chip_device_stopped, &ar934x_chip_set_pll_ge, &ar934x_chip_set_mii_speed, - &ar71xx_chip_set_mii_if, + &ar934x_chip_set_mii_if, &ar934x_chip_ddr_flush_ge, &ar934x_chip_get_eth_pll, &ar934x_chip_ddr_flush_ip2, - &ar934x_chip_init_usb_peripheral + &ar934x_chip_init_usb_peripheral, + &ar934x_chip_reset_ethernet_switch, + &ar934x_chip_reset_wmac, + &ar934x_chip_init_gmac, }; From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 03:31:24 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 38324A42 for ; Tue, 15 Oct 2013 03:31:24 +0000 (UTC) (envelope-from peter@wemm.org) Received: from mail-pb0-x22e.google.com (mail-pb0-x22e.google.com [IPv6:2607:f8b0:400e:c01::22e]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D9F0F2BD6 for ; Tue, 15 Oct 2013 03:31:23 +0000 (UTC) Received: by mail-pb0-f46.google.com with SMTP id rq2so8125170pbb.5 for ; Mon, 14 Oct 2013 20:31:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wemm.org; s=google; h=message-id:date:from:organization:user-agent:mime-version:to:cc :subject:references:in-reply-to:content-type; bh=kLTJT/8uMwonJWkAF/oJHvLwmoCiSKm6ANdv0cDDcCw=; b=xLjIBYRELKfBv30MwHHw2/WMqaesTthN2XD7CLe707ndilKrzYs0Ke93XeIi8k0x8d In1hlU/UzOGFIp/rtg5mXQptj8SLOTbldPw69HWmKTChtjp6bQUBWBhV6sv32grtkc93 OtZ2Y1XHCPAcDkrUNcK0fO0jVZbtPQ1HKq1IU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:organization:user-agent :mime-version:to:cc:subject:references:in-reply-to:content-type; bh=kLTJT/8uMwonJWkAF/oJHvLwmoCiSKm6ANdv0cDDcCw=; b=T8efX55YjZ5JbW8woeTPASZj0s8cE9KiSeqsPwusW4YY54Vc9WPDh0pHSNQDiCnMyK aLVVG8yUIu0m/2Cdrq6kSEFM1ilzzP1zc6TbwJtmingmMCMoK8ZKMCqa6EFNn5HRAMMH fyQv+6DmKMid72NUFGiN4gOeLzrTF186163pCjhSbUDDcUVTf5ywWF4hrO/0br3wDFCg TLst/mAHqfVTVgKOuMLZDn6vU2R0KVJqjZC490KIeDF+gE/rkAJtvApgwG6f1XJ0A/MA BS5B8BHk/d9Cg5UPFqExqchPTDPCeyQEeBRz2ZwceNHUF+U9IgSblF61Ja0G9IKz7CDQ 5e9w== X-Gm-Message-State: ALoCoQkt8YmjtQqrUlXNtSXSkNz1+CiihOGa/YNXYE6sLbwZOKQl93eez9RXkaMj0U/f852aRwak X-Received: by 10.68.29.36 with SMTP id g4mr6177627pbh.145.1381807883322; Mon, 14 Oct 2013 20:31:23 -0700 (PDT) Received: from hackintosh.wemm.org ([2601:9:e80:d1:1dd7:6aa:9493:32f2]) by mx.google.com with ESMTPSA id 7sm95202442paf.22.1969.12.31.16.00.00 (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 14 Oct 2013 20:31:20 -0700 (PDT) Message-ID: <525CB6E8.9080407@wemm.org> Date: Mon, 14 Oct 2013 20:30:48 -0700 From: Peter Wemm Organization: World Domination in progress. User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Thunderbird/24.0.1 MIME-Version: 1.0 To: Gavin Atkinson , Hiroki Sato Subject: Re: svn commit: r256256 - in head: . etc etc/defaults etc/rc.d share/man/man5 usr.sbin/jail References: <201310100932.r9A9WS0H013645@svn.freebsd.org> <04E9979E-1D97-4AA2-A7AE-F9D8457B3599@FreeBSD.org> <20131012.015639.236155929172394900.hrs@allbsd.org> In-Reply-To: X-Enigmail-Version: 1.5.2 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="A5NJVowUaQcq8i7Ga1b12WTCGcMNUO3oO" Cc: svn-src-head@FreeBSD.org, remko@FreeBSD.org, src-committers@FreeBSD.org, svn-src-all@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 03:31:24 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --A5NJVowUaQcq8i7Ga1b12WTCGcMNUO3oO Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On 10/14/13 11:45 AM, Gavin Atkinson wrote: > On Sat, 12 Oct 2013, Hiroki Sato wrote: >> Remko Lodder wrote >> in <04E9979E-1D97-4AA2-A7AE-F9D8457B3599@FreeBSD.org>: >> >> re> Hi Hiroki, >> re> >> re> On Oct 10, 2013, at 11:32 AM, Hiroki Sato wrote:= >> re> >> re> > Author: hrs >> re> > Date: Thu Oct 10 09:32:27 2013 >> re> > New Revision: 256256 >> re> > URL: http://svnweb.freebsd.org/changeset/base/256256 >> re> > >> re> > Log: >> re> > - Update rc.d/jail to use a jail(8) configuration file instead = of >> re> > command line options. The "jail__*" rc.conf(5) variab= les for >> re> > per-jail configuration are automatically converted to >> re> > /var/run/jail..conf before the jail(8) utility is invo= ked. >> re> > This is transparently backward compatible. >> re> > >> re> > - Fix a minor bug in jail(8) which prevented it from returning = false >> re> > when jail -r failed. >> re> > >> re> >> re> Thanks for doing such a massive update. However it seems to break = the >> re> ezjail utility. >> re> My jails didn't restart after I upgraded to the most recent -head >> re> version >=20 > I'm also seeing issues with ezjail - in my case, the jails do start up = > properly, but ezjail doesn't believe that they have. >=20 >> re> FreeBSD nakur.elvandar.org 10.0-ALPHA6 FreeBSD 10.0-ALPHA6 #7 r256= 311: >> re> Fri Oct 11 13:27:54 CEST 2013 >> re> root@nakur.elvandar.org:/usr/obj/usr/src/sys/NAKUR amd64 >> re> >> re> If I replace this with an older version, the utility starts and >> re> complains about certain things not being done properly. The >> re> system does not mount devfs nodes anylonger and thus is basically = out >> re> of function. >> re> >> re> I was not expecting this much fallout from this change, others tha= t >> re> will be upgrading will loose the ability to start their jails unti= l >> re> they can >> re> resolve this by hand. >> >> Can you send me your ezjail configuration and differences of the >> results (error messages, mount handling, etc) between old and new >> rc.d/jail? >=20 > The issue for me is that the /var/run/jail_${jailname}.id files are no = > longer created, which ezzjail uses to keep track of jail state. >=20 > As a temporary workaround, for each jail I have on the host done > echo $jail_id > /var/run/jail_${jailname}.id > and this allows me to manage that jail again from within ezjail. >=20 > Gavin >=20 It's actually far worse than I thought. Given: # grep jail /etc/rc.conf jail_interface=3D"bge0" ezjail_enable=3D"YES" =2E.. export jail_sab_ip=3D"lo1|127.0.1.73,192.203.228.73,2001:470:67:39d::73" we end up with: # ifconfig bge0 | grep 73 inet 127.0.1.73 netmask 0xffffffff broadcast 127.0.1.73 inet 192.203.228.73 netmask 0xffffffff broadcast 192.203.228.73 inet6 2001:470:67:39d::73 prefixlen 64 Note how they're all on bge0 and the lo1|127.x is ignored. There's some other problems I haven't pinned down yet. Something has changed radically with source address selection and some standard setups from 7.x through 10.x (as of a few months ago) don't work anymore. I haven't yet figured out how to do the per-jail lo1|127.x thing in the new= scheme even with an old rc.d/jail - anything attempting to bind to localh= ost gets remapped to the public, fully exposed address. I'm still looking. --=20 Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com; KI6F= JV --A5NJVowUaQcq8i7Ga1b12WTCGcMNUO3oO Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.14 (Darwin) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iEYEARECAAYFAlJctu4ACgkQFRKuUnJ3cX+V1gCeNsVP5oL5P7GvHfY6admCs7mE it4AnimbXbzFIZtXhMvHtKVQqvHaWpiL =Dueo -----END PGP SIGNATURE----- --A5NJVowUaQcq8i7Ga1b12WTCGcMNUO3oO-- From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 03:55:43 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 90590E06; Tue, 15 Oct 2013 03:55:43 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 7D8B12CFD; Tue, 15 Oct 2013 03:55:43 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9F3thL3070684; Tue, 15 Oct 2013 03:55:43 GMT (envelope-from ian@svn.freebsd.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9F3thpa070683; Tue, 15 Oct 2013 03:55:43 GMT (envelope-from ian@svn.freebsd.org) Message-Id: <201310150355.r9F3thpa070683@svn.freebsd.org> From: Ian Lepore Date: Tue, 15 Oct 2013 03:55:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256492 - head/sys/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 03:55:43 -0000 Author: ian Date: Tue Oct 15 03:55:42 2013 New Revision: 256492 URL: http://svnweb.freebsd.org/changeset/base/256492 Log: Add the long-missing spibus_if.m to the MFILES list. Modified: head/sys/conf/kmod.mk Modified: head/sys/conf/kmod.mk ============================================================================== --- head/sys/conf/kmod.mk Tue Oct 15 03:28:32 2013 (r256491) +++ head/sys/conf/kmod.mk Tue Oct 15 03:55:42 2013 (r256492) @@ -346,7 +346,7 @@ MFILES?= dev/acpica/acpi_if.m dev/acpi_s 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/sdhci/sdhci_if.m dev/smbus/smbus_if.m \ + dev/sdhci/sdhci_if.m dev/smbus/smbus_if.m dev/spibus/spibus_if.m \ dev/sound/pci/hda/hdac_if.m \ dev/sound/pcm/ac97_if.m dev/sound/pcm/channel_if.m \ dev/sound/pcm/feeder_if.m dev/sound/pcm/mixer_if.m \ From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 04:04:15 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id AA2AD2E2; Tue, 15 Oct 2013 04:04:15 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from mail.allbsd.org (gatekeeper.allbsd.org [IPv6:2001:2f0:104:e001::32]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 74C982DA1; Tue, 15 Oct 2013 04:04:14 +0000 (UTC) Received: from alph.d.allbsd.org (p4181-ipbf1307funabasi.chiba.ocn.ne.jp [123.225.173.181]) (authenticated bits=128) by mail.allbsd.org (8.14.5/8.14.5) with ESMTP id r9F43sUo078392 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 15 Oct 2013 13:04:05 +0900 (JST) (envelope-from hrs@FreeBSD.org) Received: from localhost (localhost [IPv6:::1]) (authenticated bits=0) by alph.d.allbsd.org (8.14.7/8.14.5) with ESMTP id r9F43quZ028475; Tue, 15 Oct 2013 13:03:53 +0900 (JST) (envelope-from hrs@FreeBSD.org) Date: Tue, 15 Oct 2013 13:03:25 +0900 (JST) Message-Id: <20131015.130325.1303921217567498427.hrs@allbsd.org> To: peter@wemm.org Subject: Re: svn commit: r256256 - in head: . etc etc/defaults etc/rc.d share/man/man5 usr.sbin/jail From: Hiroki Sato In-Reply-To: <525CB6E8.9080407@wemm.org> References: <20131012.015639.236155929172394900.hrs@allbsd.org> <525CB6E8.9080407@wemm.org> X-PGPkey-fingerprint: BDB3 443F A5DD B3D0 A530 FFD7 4F2C D3D8 2793 CF2D X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO) Mime-Version: 1.0 Content-Type: Multipart/Signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="--Security_Multipart0(Tue_Oct_15_13_03_25_2013_850)--" Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamav-milter 0.97.4 at gatekeeper.allbsd.org X-Virus-Status: Clean X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (mail.allbsd.org [133.31.130.32]); Tue, 15 Oct 2013 13:04:07 +0900 (JST) X-Spam-Status: No, score=-99.0 required=13.0 tests=CONTENT_TYPE_PRESENT, SPF_SOFTFAIL,USER_IN_WHITELIST,X_CHINESE_RELAY autolearn=no version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on gatekeeper.allbsd.org Cc: svn-src-head@FreeBSD.org, remko@FreeBSD.org, gavin@FreeBSD.org, src-committers@FreeBSD.org, svn-src-all@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 04:04:15 -0000 ----Security_Multipart0(Tue_Oct_15_13_03_25_2013_850)-- Content-Type: Multipart/Mixed; boundary="--Next_Part(Tue_Oct_15_13_03_25_2013_377)--" Content-Transfer-Encoding: 7bit ----Next_Part(Tue_Oct_15_13_03_25_2013_377)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Peter Wemm wrote in <525CB6E8.9080407@wemm.org>: pe> Note how they're all on bge0 and the lo1|127.x is ignored. pe> pe> There's some other problems I haven't pinned down yet. Something has pe> changed radically with source address selection and some standard setups pe> from 7.x through 10.x (as of a few months ago) don't work anymore. I pe> haven't yet figured out how to do the per-jail lo1|127.x thing in the new pe> scheme even with an old rc.d/jail - anything attempting to bind to localhost pe> gets remapped to the public, fully exposed address. pe> pe> I'm still looking. Can you test the attached patch? -- Hiroki ----Next_Part(Tue_Oct_15_13_03_25_2013_377)-- Content-Type: Text/X-Patch; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="jail_20131015-1.diff" Index: etc/rc.d/jail =================================================================== --- etc/rc.d/jail (revision 256440) +++ etc/rc.d/jail (working copy) @@ -329,9 +329,9 @@ # jail_handle_ips_option() { - local _x _type _i _iface + local _x _type _i _defif _x=$1 - _iface=$2 + _defif=$2 if [ -z "${_x}" ]; then # No IP given. This can happen for the primary address @@ -355,7 +355,8 @@ _type="" _addr="" _mask="" - jail_extract_address $_i $_iface + _iface="" + jail_extract_address $_i $_defif # make sure we got an address. case $_addr in @@ -366,10 +367,10 @@ # Append address to list of addresses for the jail command. case $_type in inet) - echo " ip4.addr += \"${_addr}${_mask}\";" + echo " ip4.addr += \"${_iface}|${_addr}${_mask}\";" ;; inet6) - echo " ip6.addr += \"${_addr}${_mask}\";" + echo " ip6.addr += \"${_iface}|${_addr}${_mask}\";" need_dad_wait=1 ;; esac @@ -414,7 +415,7 @@ jail_start() { - local _j + local _j _jid _jn if [ $# = 0 ]; then return @@ -426,7 +427,15 @@ command=$jail_program rc_flags=$jail_flags command_args="-f $jail_conf -c" - $command $rc_flags $command_args "*" + jls -nq | while read IN; do + _jn=$(echo $IN | tr " " "\n" | grep name=) + _jid=$(echo $IN | tr " " "\n" | grep jid=) + if $command $rc_flags $command_args ${_jn#name=}; then + echo -n " ${_jn#name=}" + echo "${_jid#jid=}" \ + > /var/run/jail_${_jn#name=}.id + fi + done echo '.' return ;; @@ -446,7 +455,10 @@ if $command $rc_flags $command_args \ >> $_tmp 2>&1 /var/run/jail_${_j}.id else + rm -f /var/run/jail_${_j}.id echo " cannot start jail \"${_hostname:-${_j}}\": " cat $_tmp fi @@ -457,7 +469,7 @@ jail_stop() { - local _j + local _j _jn if [ $# = 0 ]; then return @@ -469,7 +481,14 @@ command=$jail_program rc_flags=$jail_flags command_args="-f $jail_conf -r" - $command $rc_flags $command_args "*" + $jail_jls -nq | while read IN; do + _jn=$(echo $IN | tr " " "\n" | grep name=) + echo -n " ${_jn#name=}" + $command $rc_flags $command_args ${_jn#name=} + if ! $jail_jls -j ${_jn#name=} > /dev/null 2>&1; then + rm -f /var/run/jail_${_jn#name=}.id + fi + done echo '.' return ;; @@ -477,9 +496,14 @@ for _j in $@; do _j=$(echo $_j | tr /. _) parse_options $_j || continue + if ! $jail_jls -j $_j > /dev/null 2>&1; then + continue + fi eval command=\${jail_${_j}_program:-$jail_program} - if $command -q -f $_conf -r $_j; then - echo -n " ${_hostname:-${_j}}" + echo -n " ${_hostname:-${_j}}" + $command -q -f $_conf -r $_j + if ! $jail_jls -j $_j > /dev/null 2>&1; then + rm -f /var/run/jail_${_j}.id fi done echo '.' ----Next_Part(Tue_Oct_15_13_03_25_2013_377)---- ----Security_Multipart0(Tue_Oct_15_13_03_25_2013_850)-- Content-Type: application/pgp-signature Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.13 (FreeBSD) iEYEABECAAYFAlJcvo0ACgkQTyzT2CeTzy2FyQCfcWgoz3FPCVVK9W+r3Pc0h7Hu 5iwAoIDWkoVouvseIXuDokvLGzk2ni9g =9PM/ -----END PGP SIGNATURE----- ----Security_Multipart0(Tue_Oct_15_13_03_25_2013_850)---- From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 04:32:07 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 1B900683; Tue, 15 Oct 2013 04:32:07 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E1C842EE5; Tue, 15 Oct 2013 04:32:06 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9F4W6d9090055; Tue, 15 Oct 2013 04:32:06 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9F4W6Ch090036; Tue, 15 Oct 2013 04:32:06 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201310150432.r9F4W6Ch090036@svn.freebsd.org> From: Warner Losh Date: Tue, 15 Oct 2013 04:32:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256493 - head/sys/mips/mips X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 04:32:07 -0000 Author: imp Date: Tue Oct 15 04:32:06 2013 New Revision: 256493 URL: http://svnweb.freebsd.org/changeset/base/256493 Log: Move DO_AST into pcb.h where it should have been all along. Move some common macros for saving/restoring registers into pcb.h as well. Reviewed by: jmallet@ Modified: head/sys/mips/mips/exception.S head/sys/mips/mips/swtch.S Modified: head/sys/mips/mips/exception.S ============================================================================== --- head/sys/mips/mips/exception.S Tue Oct 15 03:55:42 2013 (r256492) +++ head/sys/mips/mips/exception.S Tue Oct 15 04:32:06 2013 (r256493) @@ -61,6 +61,7 @@ #include #include #include +#include #include "assym.s" @@ -411,12 +412,6 @@ NNON_LEAF(MipsKernGenException, KERN_EXC END(MipsKernGenException) -#define SAVE_U_PCB_REG(reg, offs, base) \ - REG_S reg, U_PCB_REGS + (SZREG * offs) (base) - -#define RESTORE_U_PCB_REG(reg, offs, base) \ - REG_L reg, U_PCB_REGS + (SZREG * offs) (base) - /*---------------------------------------------------------------------------- * * MipsUserGenException -- Modified: head/sys/mips/mips/swtch.S ============================================================================== --- head/sys/mips/mips/swtch.S Tue Oct 15 03:55:42 2013 (r256492) +++ head/sys/mips/mips/swtch.S Tue Oct 15 04:32:06 2013 (r256493) @@ -68,31 +68,6 @@ .set noreorder # Noreorder is default style! -#define SAVE_U_PCB_REG(reg, offs, base) \ - REG_S reg, U_PCB_REGS + (SZREG * offs) (base) - -#define RESTORE_U_PCB_REG(reg, offs, base) \ - REG_L reg, U_PCB_REGS + (SZREG * offs) (base) - -#define SAVE_U_PCB_FPREG(reg, offs, base) \ - FP_S reg, U_PCB_FPREGS + (SZFPREG * offs) (base) - -#define RESTORE_U_PCB_FPREG(reg, offs, base) \ - FP_L reg, U_PCB_FPREGS + (SZFPREG * offs) (base) - -#define SAVE_U_PCB_FPSR(reg, offs, base) \ - REG_S reg, U_PCB_FPREGS + (SZFPREG * offs) (base) - -#define RESTORE_U_PCB_FPSR(reg, offs, base) \ - REG_L reg, U_PCB_FPREGS + (SZFPREG * offs) (base) - -#define SAVE_U_PCB_CONTEXT(reg, offs, base) \ - REG_S reg, U_PCB_CONTEXT + (SZREG * offs) (base) - -#define RESTORE_U_PCB_CONTEXT(reg, offs, base) \ - REG_L reg, U_PCB_CONTEXT + (SZREG * offs) (base) - - /* * Setup for and return to user. */ From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 04:36:35 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id A120A88A; Tue, 15 Oct 2013 04:36:35 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 8D2F32F0E; Tue, 15 Oct 2013 04:36:35 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9F4aZSE091466; Tue, 15 Oct 2013 04:36:35 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9F4aZA0091464; Tue, 15 Oct 2013 04:36:35 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201310150436.r9F4aZA0091464@svn.freebsd.org> From: Warner Losh Date: Tue, 15 Oct 2013 04:36:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256494 - head/sys/mips/include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 04:36:35 -0000 Author: imp Date: Tue Oct 15 04:36:34 2013 New Revision: 256494 URL: http://svnweb.freebsd.org/changeset/base/256494 Log: Move DO_AST into pcb.h where it should have been all along. Move some common macros for saving/restoring registers into pcb.h as well. Modified: head/sys/mips/include/asm.h head/sys/mips/include/pcb.h Modified: head/sys/mips/include/asm.h ============================================================================== --- head/sys/mips/include/asm.h Tue Oct 15 04:32:06 2013 (r256493) +++ head/sys/mips/include/asm.h Tue Oct 15 04:36:34 2013 (r256494) @@ -262,38 +262,6 @@ _C_LABEL(x): .align 3 /* - * Call ast if required - * - * XXX Do we really need to disable interrupts? - */ -#define DO_AST \ -44: \ - mfc0 t0, MIPS_COP_0_STATUS ;\ - and a0, t0, MIPS_SR_INT_IE ;\ - xor t0, a0, t0 ;\ - mtc0 t0, MIPS_COP_0_STATUS ;\ - COP0_SYNC ;\ - GET_CPU_PCPU(s1) ;\ - PTR_L s3, PC_CURPCB(s1) ;\ - PTR_L s1, PC_CURTHREAD(s1) ;\ - lw s2, TD_FLAGS(s1) ;\ - li s0, TDF_ASTPENDING | TDF_NEEDRESCHED;\ - and s2, s0 ;\ - mfc0 t0, MIPS_COP_0_STATUS ;\ - or t0, a0, t0 ;\ - mtc0 t0, MIPS_COP_0_STATUS ;\ - COP0_SYNC ;\ - beq s2, zero, 4f ;\ - nop ;\ - PTR_LA s0, _C_LABEL(ast) ;\ - jalr s0 ;\ - PTR_ADDU a0, s3, U_PCB_REGS ;\ - j 44b ;\ - nop ;\ -4: - - -/* * XXX retain dialects XXX */ #define ALEAF(x) XLEAF(x) Modified: head/sys/mips/include/pcb.h ============================================================================== --- head/sys/mips/include/pcb.h Tue Oct 15 04:32:06 2013 (r256493) +++ head/sys/mips/include/pcb.h Tue Oct 15 04:36:34 2013 (r256494) @@ -60,6 +60,61 @@ #define PCB_REG_GP 12 #define PCB_REG_PC 13 +/* + * Call ast if required + * + * XXX Do we really need to disable interrupts? + */ +#define DO_AST \ +44: \ + mfc0 t0, MIPS_COP_0_STATUS ;\ + and a0, t0, MIPS_SR_INT_IE ;\ + xor t0, a0, t0 ;\ + mtc0 t0, MIPS_COP_0_STATUS ;\ + COP0_SYNC ;\ + GET_CPU_PCPU(s1) ;\ + PTR_L s3, PC_CURPCB(s1) ;\ + PTR_L s1, PC_CURTHREAD(s1) ;\ + lw s2, TD_FLAGS(s1) ;\ + li s0, TDF_ASTPENDING | TDF_NEEDRESCHED;\ + and s2, s0 ;\ + mfc0 t0, MIPS_COP_0_STATUS ;\ + or t0, a0, t0 ;\ + mtc0 t0, MIPS_COP_0_STATUS ;\ + COP0_SYNC ;\ + beq s2, zero, 4f ;\ + nop ;\ + PTR_LA s0, _C_LABEL(ast) ;\ + jalr s0 ;\ + PTR_ADDU a0, s3, U_PCB_REGS ;\ + j 44b ;\ + nop ;\ +4: + +#define SAVE_U_PCB_REG(reg, offs, base) \ + REG_S reg, U_PCB_REGS + (SZREG * offs) (base) + +#define RESTORE_U_PCB_REG(reg, offs, base) \ + REG_L reg, U_PCB_REGS + (SZREG * offs) (base) + +#define SAVE_U_PCB_FPREG(reg, offs, base) \ + FP_S reg, U_PCB_FPREGS + (SZFPREG * offs) (base) + +#define RESTORE_U_PCB_FPREG(reg, offs, base) \ + FP_L reg, U_PCB_FPREGS + (SZFPREG * offs) (base) + +#define SAVE_U_PCB_FPSR(reg, offs, base) \ + REG_S reg, U_PCB_FPREGS + (SZFPREG * offs) (base) + +#define RESTORE_U_PCB_FPSR(reg, offs, base) \ + REG_L reg, U_PCB_FPREGS + (SZFPREG * offs) (base) + +#define SAVE_U_PCB_CONTEXT(reg, offs, base) \ + REG_S reg, U_PCB_CONTEXT + (SZREG * offs) (base) + +#define RESTORE_U_PCB_CONTEXT(reg, offs, base) \ + REG_L reg, U_PCB_CONTEXT + (SZREG * offs) (base) + #ifndef LOCORE #include @@ -79,6 +134,7 @@ extern struct pcb *curpcb; /* the curre void makectx(struct trapframe *, struct pcb *); int savectx(struct pcb *) __returns_twice; + #endif #endif From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 04:43:32 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id CECD0B1D; Tue, 15 Oct 2013 04:43:32 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id ACD3A2F93; Tue, 15 Oct 2013 04:43:32 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9F4hWE1096139; Tue, 15 Oct 2013 04:43:32 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9F4hVQP096135; Tue, 15 Oct 2013 04:43:31 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201310150443.r9F4hVQP096135@svn.freebsd.org> From: Warner Losh Date: Tue, 15 Oct 2013 04:43:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256495 - in head/sys/mips: include mips X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 04:43:33 -0000 Author: imp Date: Tue Oct 15 04:43:31 2013 New Revision: 256495 URL: http://svnweb.freebsd.org/changeset/base/256495 Log: Replace uses of the ALEAF macro with XLEAF and remove ALEAF macro to try to unify the conventions used in our assembler. Reviewed by: jmallet@ Modified: head/sys/mips/include/asm.h head/sys/mips/mips/bcopy.S head/sys/mips/mips/fp.S head/sys/mips/mips/support.S Modified: head/sys/mips/include/asm.h ============================================================================== --- head/sys/mips/include/asm.h Tue Oct 15 04:36:34 2013 (r256494) +++ head/sys/mips/include/asm.h Tue Oct 15 04:43:31 2013 (r256495) @@ -264,7 +264,6 @@ _C_LABEL(x): /* * XXX retain dialects XXX */ -#define ALEAF(x) XLEAF(x) #define NLEAF(x) LEAF_NOPROFILE(x) #define NON_LEAF(x, fsize, retpc) NESTED(x, fsize, retpc) #define NNON_LEAF(x, fsize, retpc) NESTED_NOPROFILE(x, fsize, retpc) Modified: head/sys/mips/mips/bcopy.S ============================================================================== --- head/sys/mips/mips/bcopy.S Tue Oct 15 04:36:34 2013 (r256494) +++ head/sys/mips/mips/bcopy.S Tue Oct 15 04:43:31 2013 (r256495) @@ -72,8 +72,8 @@ LEAF(memcpy) move a0, a1 move a1, v0 -ALEAF(bcopy) -ALEAF(ovbcopy) +XLEAF(bcopy) +XLEAF(ovbcopy) /* * Make sure we can copy forwards. */ Modified: head/sys/mips/mips/fp.S ============================================================================== --- head/sys/mips/mips/fp.S Tue Oct 15 04:36:34 2013 (r256494) +++ head/sys/mips/mips/fp.S Tue Oct 15 04:43:31 2013 (r256495) @@ -2460,7 +2460,7 @@ get_ft_s_done: * *---------------------------------------------------------------------------- */ -ALEAF(get_fs_s) +XLEAF(get_fs_s) srl a3, a0, 12 - 2 # get FS field (even regs only) and a3, a3, 0xF << 2 # mask FS field lw a3, get_fs_s_tbl(a3) # switch on register number @@ -2679,7 +2679,7 @@ get_ft_d_done: * *---------------------------------------------------------------------------- */ -ALEAF(get_fs_d) +XLEAF(get_fs_d) srl a3, a0, 12 - 2 # get FS field (even regs only) and a3, a3, 0xF << 2 # mask FS field lw a3, get_fs_d_tbl(a3) # switch on register number @@ -3194,7 +3194,7 @@ LEAF(set_fd_s) sll t1, t1, 23 # position exponent or t2, t2, t0 or t2, t2, t1 -ALEAF(set_fd_word) +XLEAF(set_fd_word) srl a3, a0, 7 - 2 # get FD field (even regs only) and a3, a3, 0xF << 2 # mask FT field lw a3, set_fd_s_tbl(a3) # switch on register number Modified: head/sys/mips/mips/support.S ============================================================================== --- head/sys/mips/mips/support.S Tue Oct 15 04:36:34 2013 (r256494) +++ head/sys/mips/mips/support.S Tue Oct 15 04:43:31 2013 (r256495) @@ -288,7 +288,7 @@ END(copyerr) */ #ifdef __mips_n64 LEAF(fuword64) -ALEAF(fuword) +XLEAF(fuword) PTR_LA v0, fswberr blt a0, zero, fswberr # make sure address is in user space nop @@ -303,7 +303,7 @@ END(fuword64) LEAF(fuword32) #ifndef __mips_n64 -ALEAF(fuword) +XLEAF(fuword) #endif PTR_LA v0, fswberr blt a0, zero, fswberr # make sure address is in user space @@ -553,7 +553,7 @@ END(memset) * bzero(s1, n) */ LEAF(bzero) -ALEAF(blkclr) +XLEAF(blkclr) .set noreorder blt a1, 12, smallclr # small amount to clear? PTR_SUBU a3, zero, a0 # compute # bytes to word align address From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 04:44:22 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id AA749C8E; Tue, 15 Oct 2013 04:44:22 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 9748E2FA0; Tue, 15 Oct 2013 04:44:22 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9F4iMTl096352; Tue, 15 Oct 2013 04:44:22 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9F4iMZc096350; Tue, 15 Oct 2013 04:44:22 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201310150444.r9F4iMZc096350@svn.freebsd.org> From: Warner Losh Date: Tue, 15 Oct 2013 04:44:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256496 - in head/sys/mips: include mips X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 04:44:22 -0000 Author: imp Date: Tue Oct 15 04:44:21 2013 New Revision: 256496 URL: http://svnweb.freebsd.org/changeset/base/256496 Log: Replace NLEAF with LEAF_NOPROFILE to unify the conventions we use in our assembler files. Reviewed by: jmallet@ Modified: head/sys/mips/include/asm.h head/sys/mips/mips/exception.S Modified: head/sys/mips/include/asm.h ============================================================================== --- head/sys/mips/include/asm.h Tue Oct 15 04:43:31 2013 (r256495) +++ head/sys/mips/include/asm.h Tue Oct 15 04:44:21 2013 (r256496) @@ -264,7 +264,6 @@ _C_LABEL(x): /* * XXX retain dialects XXX */ -#define NLEAF(x) LEAF_NOPROFILE(x) #define NON_LEAF(x, fsize, retpc) NESTED(x, fsize, retpc) #define NNON_LEAF(x, fsize, retpc) NESTED_NOPROFILE(x, fsize, retpc) Modified: head/sys/mips/mips/exception.S ============================================================================== --- head/sys/mips/mips/exception.S Tue Oct 15 04:43:31 2013 (r256495) +++ head/sys/mips/mips/exception.S Tue Oct 15 04:44:21 2013 (r256496) @@ -838,7 +838,7 @@ NNON_LEAF(MipsUserIntr, CALLFRAME_SIZ, r .set at END(MipsUserIntr) -NLEAF(MipsTLBInvalidException) +LEAF_NOPROFILE(MipsTLBInvalidException) .set push .set noat .set noreorder @@ -1029,7 +1029,7 @@ END(MipsTLBInvalidException) * *---------------------------------------------------------------------------- */ -NLEAF(MipsTLBMissException) +LEAF_NOPROFILE(MipsTLBMissException) .set noat MFC0 k0, MIPS_COP_0_BAD_VADDR # k0=bad address PTR_LI k1, VM_MAX_KERNEL_ADDRESS # check fault address against From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 04:45:11 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 33AFDDE2; Tue, 15 Oct 2013 04:45:11 +0000 (UTC) (envelope-from imp@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 117F32FAC; Tue, 15 Oct 2013 04:45:11 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9F4jAa7096553; Tue, 15 Oct 2013 04:45:10 GMT (envelope-from imp@svn.freebsd.org) Received: (from imp@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9F4jA3K096547; Tue, 15 Oct 2013 04:45:10 GMT (envelope-from imp@svn.freebsd.org) Message-Id: <201310150445.r9F4jA3K096547@svn.freebsd.org> From: Warner Losh Date: Tue, 15 Oct 2013 04:45:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256497 - in head/sys/mips: include mips X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 04:45:11 -0000 Author: imp Date: Tue Oct 15 04:45:09 2013 New Revision: 256497 URL: http://svnweb.freebsd.org/changeset/base/256497 Log: Elminate NON_LEAF and use NESTED instead to unify our assembler conventions. Reviewed by: jmallet@ Modified: head/sys/mips/include/asm.h head/sys/mips/mips/exception.S head/sys/mips/mips/fp.S head/sys/mips/mips/support.S head/sys/mips/mips/swtch.S Modified: head/sys/mips/include/asm.h ============================================================================== --- head/sys/mips/include/asm.h Tue Oct 15 04:44:21 2013 (r256496) +++ head/sys/mips/include/asm.h Tue Oct 15 04:45:09 2013 (r256497) @@ -261,12 +261,6 @@ _C_LABEL(x): .asciiz str; \ .align 3 -/* - * XXX retain dialects XXX - */ -#define NON_LEAF(x, fsize, retpc) NESTED(x, fsize, retpc) -#define NNON_LEAF(x, fsize, retpc) NESTED_NOPROFILE(x, fsize, retpc) - #if defined(__mips_o32) #define SZREG 4 #else Modified: head/sys/mips/mips/exception.S ============================================================================== --- head/sys/mips/mips/exception.S Tue Oct 15 04:44:21 2013 (r256496) +++ head/sys/mips/mips/exception.S Tue Oct 15 04:45:09 2013 (r256497) @@ -377,7 +377,7 @@ SlowFault: #define KERN_REG_SIZE (NUMSAVEREGS * SZREG) #define KERN_EXC_FRAME_SIZE (CALLFRAME_SIZ + KERN_REG_SIZE + 16) -NNON_LEAF(MipsKernGenException, KERN_EXC_FRAME_SIZE, ra) +NESTED_NOPROFILE(MipsKernGenException, KERN_EXC_FRAME_SIZE, ra) .set noat PTR_SUBU sp, sp, KERN_EXC_FRAME_SIZE .mask 0x80000000, (CALLFRAME_RA - KERN_EXC_FRAME_SIZE) @@ -426,7 +426,7 @@ END(MipsKernGenException) * *---------------------------------------------------------------------------- */ -NNON_LEAF(MipsUserGenException, CALLFRAME_SIZ, ra) +NESTED_NOPROFILE(MipsUserGenException, CALLFRAME_SIZ, ra) .set noat .mask 0x80000000, (CALLFRAME_RA - CALLFRAME_SIZ) /* @@ -573,7 +573,7 @@ END(MipsUserGenException) .set push .set noat -NON_LEAF(mips_wait, CALLFRAME_SIZ, ra) +NESTED(mips_wait, CALLFRAME_SIZ, ra) PTR_SUBU sp, sp, CALLFRAME_SIZ .mask 0x80000000, (CALLFRAME_RA - CALLFRAME_SIZ) REG_S ra, CALLFRAME_RA(sp) # save RA @@ -615,7 +615,7 @@ END(mips_wait) *---------------------------------------------------------------------------- */ -NNON_LEAF(MipsKernIntr, KERN_EXC_FRAME_SIZE, ra) +NESTED_NOPROFILE(MipsKernIntr, KERN_EXC_FRAME_SIZE, ra) .set noat PTR_SUBU sp, sp, KERN_EXC_FRAME_SIZE .mask 0x80000000, (CALLFRAME_RA - KERN_EXC_FRAME_SIZE) @@ -682,7 +682,7 @@ END(MipsKernIntr) * *---------------------------------------------------------------------------- */ -NNON_LEAF(MipsUserIntr, CALLFRAME_SIZ, ra) +NESTED_NOPROFILE(MipsUserIntr, CALLFRAME_SIZ, ra) .set noat .mask 0x80000000, (CALLFRAME_RA - CALLFRAME_SIZ) /* @@ -1088,7 +1088,7 @@ END(MipsTLBMissException) * *---------------------------------------------------------------------------- */ -NON_LEAF(MipsFPTrap, CALLFRAME_SIZ, ra) +NESTED(MipsFPTrap, CALLFRAME_SIZ, ra) PTR_SUBU sp, sp, CALLFRAME_SIZ mfc0 t0, MIPS_COP_0_STATUS REG_S ra, CALLFRAME_RA(sp) Modified: head/sys/mips/mips/fp.S ============================================================================== --- head/sys/mips/mips/fp.S Tue Oct 15 04:44:21 2013 (r256496) +++ head/sys/mips/mips/fp.S Tue Oct 15 04:45:09 2013 (r256497) @@ -94,7 +94,7 @@ * *---------------------------------------------------------------------------- */ -NON_LEAF(MipsEmulateFP, CALLFRAME_SIZ, ra) +NESTED(MipsEmulateFP, CALLFRAME_SIZ, ra) subu sp, sp, CALLFRAME_SIZ sw ra, CALLFRAME_RA(sp) /* Modified: head/sys/mips/mips/support.S ============================================================================== --- head/sys/mips/mips/support.S Tue Oct 15 04:44:21 2013 (r256496) +++ head/sys/mips/mips/support.S Tue Oct 15 04:45:09 2013 (r256497) @@ -175,7 +175,7 @@ END(copystr) * u_int maxlength; * u_int *lencopied; */ -NON_LEAF(copyinstr, CALLFRAME_SIZ, ra) +NESTED(copyinstr, CALLFRAME_SIZ, ra) PTR_SUBU sp, sp, CALLFRAME_SIZ .mask 0x80000000, (CALLFRAME_RA - CALLFRAME_SIZ) PTR_LA v0, copyerr @@ -203,7 +203,7 @@ END(copyinstr) * u_int maxlength; * u_int *lencopied; */ -NON_LEAF(copyoutstr, CALLFRAME_SIZ, ra) +NESTED(copyoutstr, CALLFRAME_SIZ, ra) PTR_SUBU sp, sp, CALLFRAME_SIZ .mask 0x80000000, (CALLFRAME_RA - CALLFRAME_SIZ) PTR_LA v0, copyerr @@ -228,7 +228,7 @@ END(copyoutstr) * caddr_t *to; (kernel destination address) * unsigned len; */ -NON_LEAF(copyin, CALLFRAME_SIZ, ra) +NESTED(copyin, CALLFRAME_SIZ, ra) PTR_SUBU sp, sp, CALLFRAME_SIZ .mask 0x80000000, (CALLFRAME_RA - CALLFRAME_SIZ) PTR_LA v0, copyerr @@ -254,7 +254,7 @@ END(copyin) * caddr_t *to; (user destination address) * unsigned len; */ -NON_LEAF(copyout, CALLFRAME_SIZ, ra) +NESTED(copyout, CALLFRAME_SIZ, ra) PTR_SUBU sp, sp, CALLFRAME_SIZ .mask 0x80000000, (CALLFRAME_RA - CALLFRAME_SIZ) PTR_LA v0, copyerr Modified: head/sys/mips/mips/swtch.S ============================================================================== --- head/sys/mips/mips/swtch.S Tue Oct 15 04:44:21 2013 (r256496) +++ head/sys/mips/mips/swtch.S Tue Oct 15 04:45:09 2013 (r256497) @@ -175,7 +175,7 @@ LEAF(savectx) move v0, zero END(savectx) -NON_LEAF(cpu_throw, CALLFRAME_SIZ, ra) +NESTED(cpu_throw, CALLFRAME_SIZ, ra) mfc0 t0, MIPS_COP_0_STATUS # t0 = saved status register nop nop @@ -195,7 +195,7 @@ END(cpu_throw) * a2 - mtx * Find the highest priority process and resume it. */ -NON_LEAF(cpu_switch, CALLFRAME_SIZ, ra) +NESTED(cpu_switch, CALLFRAME_SIZ, ra) mfc0 t0, MIPS_COP_0_STATUS # t0 = saved status register nop nop From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 04:54:50 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 18233195; Tue, 15 Oct 2013 04:54:50 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 04325205C; Tue, 15 Oct 2013 04:54:50 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9F4snbS001276; Tue, 15 Oct 2013 04:54:49 GMT (envelope-from hrs@svn.freebsd.org) Received: (from hrs@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9F4snOM001275; Tue, 15 Oct 2013 04:54:49 GMT (envelope-from hrs@svn.freebsd.org) Message-Id: <201310150454.r9F4snOM001275@svn.freebsd.org> From: Hiroki Sato Date: Tue, 15 Oct 2013 04:54:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256498 - head/etc/rc.d X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 04:54:50 -0000 Author: hrs Date: Tue Oct 15 04:54:49 2013 New Revision: 256498 URL: http://svnweb.freebsd.org/changeset/base/256498 Log: - Fix "ifname|addr" syntax support in jail_{jname}_ip. - Create /var/run/jail_{jname}.id because ezjail-admin depends on it. Modified: head/etc/rc.d/jail Modified: head/etc/rc.d/jail ============================================================================== --- head/etc/rc.d/jail Tue Oct 15 04:45:09 2013 (r256497) +++ head/etc/rc.d/jail Tue Oct 15 04:54:49 2013 (r256498) @@ -22,7 +22,7 @@ status_cmd="jail_status" extra_commands="config console status" : ${jail_conf:=/etc/jail.conf} : ${jail_program:=/usr/sbin/jail} -: ${jail_consolecmd:=/bin/sh} +: ${jail_consolecmd:=/usr/bin/login -f root} : ${jail_jexec:=/usr/sbin/jexec} : ${jail_jls:=/usr/sbin/jls} @@ -329,9 +329,9 @@ jail_extract_address() # jail_handle_ips_option() { - local _x _type _i _iface + local _x _type _i _defif _x=$1 - _iface=$2 + _defif=$2 if [ -z "${_x}" ]; then # No IP given. This can happen for the primary address @@ -355,7 +355,8 @@ jail_handle_ips_option() _type="" _addr="" _mask="" - jail_extract_address $_i $_iface + _iface="" + jail_extract_address $_i $_defif # make sure we got an address. case $_addr in @@ -366,10 +367,10 @@ jail_handle_ips_option() # Append address to list of addresses for the jail command. case $_type in inet) - echo " ip4.addr += \"${_addr}${_mask}\";" + echo " ip4.addr += \"${_iface}|${_addr}${_mask}\";" ;; inet6) - echo " ip6.addr += \"${_addr}${_mask}\";" + echo " ip6.addr += \"${_iface}|${_addr}${_mask}\";" need_dad_wait=1 ;; esac @@ -393,16 +394,19 @@ jail_config() jail_console() { - local _j + local _j _cmd # One argument that is not _ALL. case $#:$1 in - 1:_ALL) err 3 "Specify a jail name." ;; - 1:*) ;; - *) err 3 "Specify a jail name." ;; + 0:*|1:_ALL) err 3 "Specify a jail name." ;; + 1:*) ;; esac _j=$(echo $1 | tr /. _) - eval _cmd=\${jail_${_j}_consolecmd:-$jail_consolecmd} + shift + case $# in + 0) eval _cmd=\${jail_${_j}_consolecmd:-$jail_consolecmd} ;; + *) _cmd=$@ ;; + esac $jail_jexec $_j $_cmd } @@ -414,7 +418,7 @@ jail_status() jail_start() { - local _j + local _j _jid _jn if [ $# = 0 ]; then return @@ -426,7 +430,15 @@ jail_start() command=$jail_program rc_flags=$jail_flags command_args="-f $jail_conf -c" - $command $rc_flags $command_args "*" + $jail_jls -nq | while read IN; do + _jn=$(echo $IN | tr " " "\n" | grep name=) + _jid=$(echo $IN | tr " " "\n" | grep jid=) + if $command $rc_flags $command_args ${_jn#name=}; then + echo -n " ${_jn#name=}" + echo "${_jid#jid=}" \ + > /var/run/jail_${_jn#name=}.id + fi + done echo '.' return ;; @@ -446,7 +458,10 @@ jail_start() if $command $rc_flags $command_args \ >> $_tmp 2>&1 /var/run/jail_${_j}.id else + rm -f /var/run/jail_${_j}.id echo " cannot start jail \"${_hostname:-${_j}}\": " cat $_tmp fi @@ -457,7 +472,7 @@ jail_start() jail_stop() { - local _j + local _j _jn if [ $# = 0 ]; then return @@ -469,7 +484,14 @@ jail_stop() command=$jail_program rc_flags=$jail_flags command_args="-f $jail_conf -r" - $command $rc_flags $command_args "*" + $jail_jls -nq | while read IN; do + _jn=$(echo $IN | tr " " "\n" | grep name=) + echo -n " ${_jn#name=}" + $command $rc_flags $command_args ${_jn#name=} + if ! $jail_jls -j ${_jn#name=} > /dev/null 2>&1; then + rm -f /var/run/jail_${_jn#name=}.id + fi + done echo '.' return ;; @@ -477,9 +499,14 @@ jail_stop() for _j in $@; do _j=$(echo $_j | tr /. _) parse_options $_j || continue + if ! $jail_jls -j $_j > /dev/null 2>&1; then + continue + fi eval command=\${jail_${_j}_program:-$jail_program} - if $command -q -f $_conf -r $_j; then - echo -n " ${_hostname:-${_j}}" + echo -n " ${_hostname:-${_j}}" + $command -q -f $_conf -r $_j + if ! $jail_jls -j $_j > /dev/null 2>&1; then + rm -f /var/run/jail_${_j}.id fi done echo '.' From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 05:22:55 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 777B08D7; Tue, 15 Oct 2013 05:22:55 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from mail.allbsd.org (gatekeeper.allbsd.org [IPv6:2001:2f0:104:e001::32]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E77BC21C1; Tue, 15 Oct 2013 05:22:54 +0000 (UTC) Received: from alph.d.allbsd.org (p4181-ipbf1307funabasi.chiba.ocn.ne.jp [123.225.173.181]) (authenticated bits=128) by mail.allbsd.org (8.14.5/8.14.5) with ESMTP id r9F5MZT3087264 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 15 Oct 2013 14:22:46 +0900 (JST) (envelope-from hrs@FreeBSD.org) Received: from localhost (localhost [IPv6:::1]) (authenticated bits=0) by alph.d.allbsd.org (8.14.7/8.14.5) with ESMTP id r9F5MYLX029163; Tue, 15 Oct 2013 14:22:35 +0900 (JST) (envelope-from hrs@FreeBSD.org) Date: Tue, 15 Oct 2013 14:22:29 +0900 (JST) Message-Id: <20131015.142229.509071744045645883.hrs@allbsd.org> To: gavin@FreeBSD.org, peter@wemm.org Subject: Re: svn commit: r256256 - in head: . etc etc/defaults etc/rc.d share/man/man5 usr.sbin/jail From: Hiroki Sato In-Reply-To: <20131015.130325.1303921217567498427.hrs@allbsd.org> References: <525CB6E8.9080407@wemm.org> <20131015.130325.1303921217567498427.hrs@allbsd.org> X-PGPkey-fingerprint: BDB3 443F A5DD B3D0 A530 FFD7 4F2C D3D8 2793 CF2D X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO) Mime-Version: 1.0 Content-Type: Multipart/Signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="--Security_Multipart(Tue_Oct_15_14_22_29_2013_997)--" Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamav-milter 0.97.4 at gatekeeper.allbsd.org X-Virus-Status: Clean X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (mail.allbsd.org [133.31.130.32]); Tue, 15 Oct 2013 14:22:47 +0900 (JST) X-Spam-Status: No, score=-99.1 required=13.0 tests=CONTENT_TYPE_PRESENT, SPF_SOFTFAIL,USER_IN_WHITELIST autolearn=no version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on gatekeeper.allbsd.org Cc: svn-src-head@FreeBSD.org, remko@FreeBSD.org, src-committers@FreeBSD.org, svn-src-all@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 05:22:55 -0000 ----Security_Multipart(Tue_Oct_15_14_22_29_2013_997)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hiroki Sato wrote in <20131015.130325.1303921217567498427.hrs@allbsd.org>: hr> Peter Wemm wrote hr> in <525CB6E8.9080407@wemm.org>: hr> hr> pe> Note how they're all on bge0 and the lo1|127.x is ignored. hr> pe> hr> pe> There's some other problems I haven't pinned down yet. Something has hr> pe> changed radically with source address selection and some standard setups hr> pe> from 7.x through 10.x (as of a few months ago) don't work anymore. I hr> pe> haven't yet figured out how to do the per-jail lo1|127.x thing in the new hr> pe> scheme even with an old rc.d/jail - anything attempting to bind to localhost hr> pe> gets remapped to the public, fully exposed address. hr> pe> hr> pe> I'm still looking. hr> hr> Can you test the attached patch? Okay, I think r256498 should fix these issues. Please let me know if you still have a problem. -- Hiroki ----Security_Multipart(Tue_Oct_15_14_22_29_2013_997)-- Content-Type: application/pgp-signature Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.13 (FreeBSD) iEYEABECAAYFAlJc0RUACgkQTyzT2CeTzy2cwQCgq9Aa2hSUmDVXzyFkLUbAfoXe NmwAoIwxpGyXvLZ6lBEQcQg6qn843UVW =F2TI -----END PGP SIGNATURE----- ----Security_Multipart(Tue_Oct_15_14_22_29_2013_997)---- From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 05:50:03 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 61CCFF7F; Tue, 15 Oct 2013 05:50:03 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 4F9882384; Tue, 15 Oct 2013 05:50:03 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9F5o36O028214; Tue, 15 Oct 2013 05:50:03 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9F5o36U028212; Tue, 15 Oct 2013 05:50:03 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <201310150550.r9F5o36U028212@svn.freebsd.org> From: Rui Paulo Date: Tue, 15 Oct 2013 05:50:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256499 - head/sys/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 05:50:03 -0000 Author: rpaulo Date: Tue Oct 15 05:50:02 2013 New Revision: 256499 URL: http://svnweb.freebsd.org/changeset/base/256499 Log: Add support for Mercurial repositories. Modified: head/sys/conf/newvers.sh Modified: head/sys/conf/newvers.sh ============================================================================== --- head/sys/conf/newvers.sh Tue Oct 15 04:54:49 2013 (r256498) +++ head/sys/conf/newvers.sh Tue Oct 15 05:50:02 2013 (r256499) @@ -130,6 +130,15 @@ if [ -d "${SYSDIR}/../.git" ] ; then done fi +if [ -d "${SYSDIR}/../.hg" ] ; then + for dir in /usr/bin /usr/local/bin; do + if [ -x "${dir}/hg" ] ; then + hg_cmd="${dir}/hg -R ${SYSDIR}/../.hg" + break + fi + done +fi + if [ -n "$svnversion" ] ; then svn=`cd ${SYSDIR} && $svnversion 2>/dev/null` case "$svn" in @@ -184,12 +193,23 @@ if [ -n "$p4_cmd" ] ; then *) unset p4version ;; esac fi - + +if [ -n "$hg_cmd" ] ; then + hg=`$hg_cmd id 2>/dev/null` + svn=`$hg_cmd svn info 2>/dev/null | \ + awk -F': ' '/Revision/ { print $2 }'` + if [ -n "$svn" ] ; then + svn=" r${svn}" + fi + if [ -n "$hg" ] ; then + hg=" ${hg}" + fi +fi cat << EOF > vers.c $COPYRIGHT -#define SCCSSTR "@(#)${VERSION} #${v}${svn}${git}${p4version}: ${t}" -#define VERSTR "${VERSION} #${v}${svn}${git}${p4version}: ${t}\\n ${u}@${h}:${d}\\n" +#define SCCSSTR "@(#)${VERSION} #${v}${svn}${git}${hg}${p4version}: ${t}" +#define VERSTR "${VERSION} #${v}${svn}${git}${hg}${p4version}: ${t}\\n ${u}@${h}:${d}\\n" #define RELSTR "${RELEASE}" char sccs[sizeof(SCCSSTR) > 128 ? sizeof(SCCSSTR) : 128] = SCCSSTR; From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 06:23:54 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C98E8555; Tue, 15 Oct 2013 06:23:54 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id B6F382511; Tue, 15 Oct 2013 06:23:54 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9F6NsjN050862; Tue, 15 Oct 2013 06:23:54 GMT (envelope-from hselasky@svn.freebsd.org) Received: (from hselasky@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9F6NsMx050857; Tue, 15 Oct 2013 06:23:54 GMT (envelope-from hselasky@svn.freebsd.org) Message-Id: <201310150623.r9F6NsMx050857@svn.freebsd.org> From: Hans Petter Selasky Date: Tue, 15 Oct 2013 06:23:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256500 - in head/sys/dev/usb: . wlan X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 06:23:54 -0000 Author: hselasky Date: Tue Oct 15 06:23:54 2013 New Revision: 256500 URL: http://svnweb.freebsd.org/changeset/base/256500 Log: Add new USB ID. PR: usb/182936 Submitted by: Keith White MFC after: 1 week Modified: head/sys/dev/usb/usbdevs head/sys/dev/usb/wlan/if_run.c Modified: head/sys/dev/usb/usbdevs ============================================================================== --- head/sys/dev/usb/usbdevs Tue Oct 15 05:50:02 2013 (r256499) +++ head/sys/dev/usb/usbdevs Tue Oct 15 06:23:54 2013 (r256500) @@ -1259,6 +1259,7 @@ product BELKIN F5D8055V2 0x825b F5D8055 product BELKIN F5D9050V3 0x905b F5D9050 ver 3 Wireless Adapter product BELKIN2 F5U002 0x0002 F5U002 Parallel printer product BELKIN F6D4050V1 0x935a F6D4050 v1 +product BELKIN F6D4050V2 0x935b F6D4050 v2 /* Billionton products */ product BILLIONTON USB100 0x0986 USB100N 10/100 FastEthernet Modified: head/sys/dev/usb/wlan/if_run.c ============================================================================== --- head/sys/dev/usb/wlan/if_run.c Tue Oct 15 05:50:02 2013 (r256499) +++ head/sys/dev/usb/wlan/if_run.c Tue Oct 15 06:23:54 2013 (r256500) @@ -147,6 +147,7 @@ static const STRUCT_USB_HOST_ID run_devs RUN_DEV(BELKIN, F5D8055), RUN_DEV(BELKIN, F5D8055V2), RUN_DEV(BELKIN, F6D4050V1), + RUN_DEV(BELKIN, F6D4050V2), RUN_DEV(BELKIN, RT2870_1), RUN_DEV(BELKIN, RT2870_2), RUN_DEV(CISCOLINKSYS, AE1000), From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 06:28:11 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id BC6436D6; Tue, 15 Oct 2013 06:28:11 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A8EDB2537; Tue, 15 Oct 2013 06:28:11 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9F6SB1a052881; Tue, 15 Oct 2013 06:28:11 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9F6SBcx052880; Tue, 15 Oct 2013 06:28:11 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201310150628.r9F6SBcx052880@svn.freebsd.org> From: Konstantin Belousov Date: Tue, 15 Oct 2013 06:28:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256501 - head/sys/fs/devfs X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 06:28:11 -0000 Author: kib Date: Tue Oct 15 06:28:11 2013 New Revision: 256501 URL: http://svnweb.freebsd.org/changeset/base/256501 Log: Remove two instances of ARGSUSED comment, and wrap lines nearby the code that is to be changed. Sponsored by: The FreeBSD Foundation MFC after: 1 week Modified: head/sys/fs/devfs/devfs_vnops.c Modified: head/sys/fs/devfs/devfs_vnops.c ============================================================================== --- head/sys/fs/devfs/devfs_vnops.c Tue Oct 15 06:23:54 2013 (r256500) +++ head/sys/fs/devfs/devfs_vnops.c Tue Oct 15 06:28:11 2013 (r256501) @@ -1168,9 +1168,9 @@ devfs_print(struct vop_print_args *ap) return (0); } -/* ARGSUSED */ static int -devfs_read_f(struct file *fp, struct uio *uio, struct ucred *cred, int flags, struct thread *td) +devfs_read_f(struct file *fp, struct uio *uio, struct ucred *cred, + int flags, struct thread *td) { struct cdev *dev; int ioflag, error, ref; @@ -1643,9 +1643,9 @@ devfs_truncate_f(struct file *fp, off_t return (vnops.fo_truncate(fp, length, cred, td)); } -/* ARGSUSED */ static int -devfs_write_f(struct file *fp, struct uio *uio, struct ucred *cred, int flags, struct thread *td) +devfs_write_f(struct file *fp, struct uio *uio, struct ucred *cred, + int flags, struct thread *td) { struct cdev *dev; int error, ioflag, ref; From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 06:33:11 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 673938A6; Tue, 15 Oct 2013 06:33:11 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 3B85F2596; Tue, 15 Oct 2013 06:33:11 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9F6XBta056753; Tue, 15 Oct 2013 06:33:11 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9F6XAUN056746; Tue, 15 Oct 2013 06:33:10 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201310150633.r9F6XAUN056746@svn.freebsd.org> From: Konstantin Belousov Date: Tue, 15 Oct 2013 06:33:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256502 - in head/sys: fs/devfs kern sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 06:33:11 -0000 Author: kib Date: Tue Oct 15 06:33:10 2013 New Revision: 256502 URL: http://svnweb.freebsd.org/changeset/base/256502 Log: Similar to debug.iosize_max_clamp sysctl, introduce devfs_iosize_max_clamp sysctl, which allows/disables SSIZE_MAX-sized i/o requests on the devfs files. Sponsored by: The FreeBSD Foundation Reminded by: Dmitry Sivachenko MFC after: 1 week Modified: head/sys/fs/devfs/devfs_vnops.c head/sys/kern/sys_generic.c head/sys/sys/systm.h Modified: head/sys/fs/devfs/devfs_vnops.c ============================================================================== --- head/sys/fs/devfs/devfs_vnops.c Tue Oct 15 06:28:11 2013 (r256501) +++ head/sys/fs/devfs/devfs_vnops.c Tue Oct 15 06:33:10 2013 (r256502) @@ -1178,6 +1178,8 @@ devfs_read_f(struct file *fp, struct uio struct cdevsw *dsw; struct file *fpop; + if (uio->uio_resid > DEVFS_IOSIZE_MAX) + return (EINVAL); fpop = td->td_fpop; error = devfs_fp_check(fp, &dev, &dsw, &ref); if (error) @@ -1653,6 +1655,8 @@ devfs_write_f(struct file *fp, struct ui struct cdevsw *dsw; struct file *fpop; + if (uio->uio_resid > DEVFS_IOSIZE_MAX) + return (EINVAL); fpop = td->td_fpop; error = devfs_fp_check(fp, &dev, &dsw, &ref); if (error) Modified: head/sys/kern/sys_generic.c ============================================================================== --- head/sys/kern/sys_generic.c Tue Oct 15 06:28:11 2013 (r256501) +++ head/sys/kern/sys_generic.c Tue Oct 15 06:33:10 2013 (r256502) @@ -78,6 +78,10 @@ __FBSDID("$FreeBSD$"); int iosize_max_clamp = 1; SYSCTL_INT(_debug, OID_AUTO, iosize_max_clamp, CTLFLAG_RW, &iosize_max_clamp, 0, "Clamp max i/o size to INT_MAX"); +int devfs_iosize_max_clamp = 1; +SYSCTL_INT(_debug, OID_AUTO, devfs_iosize_max_clamp, CTLFLAG_RW, + &devfs_iosize_max_clamp, 0, "Clamp max i/o size to INT_MAX for devices"); + /* * Assert that the return value of read(2) and write(2) syscalls fits * into a register. If not, an architecture will need to provide the Modified: head/sys/sys/systm.h ============================================================================== --- head/sys/sys/systm.h Tue Oct 15 06:28:11 2013 (r256501) +++ head/sys/sys/systm.h Tue Oct 15 06:33:10 2013 (r256502) @@ -146,7 +146,9 @@ extern const void *zero_region; /* addre extern int unmapped_buf_allowed; extern int iosize_max_clamp; +extern int devfs_iosize_max_clamp; #define IOSIZE_MAX (iosize_max_clamp ? INT_MAX : SSIZE_MAX) +#define DEVFS_IOSIZE_MAX (devfs_iosize_max_clamp ? INT_MAX : SSIZE_MAX) /* * General function declarations. From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 06:35:23 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 37572A1E; Tue, 15 Oct 2013 06:35:23 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 254FD25BB; Tue, 15 Oct 2013 06:35:23 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9F6ZN2s057703; Tue, 15 Oct 2013 06:35:23 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9F6ZN5w057702; Tue, 15 Oct 2013 06:35:23 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201310150635.r9F6ZN5w057702@svn.freebsd.org> From: Konstantin Belousov Date: Tue, 15 Oct 2013 06:35:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256503 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 06:35:23 -0000 Author: kib Date: Tue Oct 15 06:35:22 2013 New Revision: 256503 URL: http://svnweb.freebsd.org/changeset/base/256503 Log: By default, allow up to SSIZE_MAX i/o for non-devfs files. Sponsored by: The FreeBSD Foundation Reminded by: Dmitry Sivachenko MFC after: 1 month X-MFC-note: stable/10 only Modified: head/sys/kern/sys_generic.c Modified: head/sys/kern/sys_generic.c ============================================================================== --- head/sys/kern/sys_generic.c Tue Oct 15 06:33:10 2013 (r256502) +++ head/sys/kern/sys_generic.c Tue Oct 15 06:35:22 2013 (r256503) @@ -75,7 +75,7 @@ __FBSDID("$FreeBSD$"); #include -int iosize_max_clamp = 1; +int iosize_max_clamp = 0; SYSCTL_INT(_debug, OID_AUTO, iosize_max_clamp, CTLFLAG_RW, &iosize_max_clamp, 0, "Clamp max i/o size to INT_MAX"); int devfs_iosize_max_clamp = 1; From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 06:38:41 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C540CB8C; Tue, 15 Oct 2013 06:38:41 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 98E7B25DA; Tue, 15 Oct 2013 06:38:41 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9F6cfQs058885; Tue, 15 Oct 2013 06:38:41 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9F6cfuY058880; Tue, 15 Oct 2013 06:38:41 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201310150638.r9F6cfuY058880@svn.freebsd.org> From: Konstantin Belousov Date: Tue, 15 Oct 2013 06:38:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256504 - in head/sys: kern sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 06:38:41 -0000 Author: kib Date: Tue Oct 15 06:38:40 2013 New Revision: 256504 URL: http://svnweb.freebsd.org/changeset/base/256504 Log: Add a sysctl kern.disallow_high_osrel which disables executing the images compiled on the world with higher major version number than the high version number of the booted kernel. Default to disable. Sponsored by: The FreeBSD Foundation Discussed with: bapt MFC after: 1 week Modified: head/sys/kern/kern_exec.c head/sys/sys/param.h Modified: head/sys/kern/kern_exec.c ============================================================================== --- head/sys/kern/kern_exec.c Tue Oct 15 06:35:22 2013 (r256503) +++ head/sys/kern/kern_exec.c Tue Oct 15 06:38:40 2013 (r256504) @@ -123,6 +123,11 @@ u_long ps_arg_cache_limit = PAGE_SIZE / SYSCTL_ULONG(_kern, OID_AUTO, ps_arg_cache_limit, CTLFLAG_RW, &ps_arg_cache_limit, 0, ""); +static int disallow_high_osrel; +SYSCTL_INT(_kern, OID_AUTO, disallow_high_osrel, CTLFLAG_RW, + &disallow_high_osrel, 0, + "Disallow execution of binaries built for higher version of the world"); + static int map_at_zero = 0; TUNABLE_INT("security.bsd.map_at_zero", &map_at_zero); SYSCTL_INT(_security_bsd, OID_AUTO, map_at_zero, CTLFLAG_RW, &map_at_zero, 0, @@ -552,6 +557,15 @@ interpret: vn_fullpath(td, imgp->vp, &imgp->execpath, &imgp->freepath) != 0)) imgp->execpath = args->fname; + if (disallow_high_osrel && + P_OSREL_MAJOR(p->p_osrel) > P_OSREL_MAJOR(__FreeBSD_version)) { + error = ENOEXEC; + uprintf("Osrel %d for image %s too high\n", p->p_osrel, + imgp->execpath != NULL ? imgp->execpath : ""); + vn_lock(imgp->vp, LK_SHARED | LK_RETRY); + goto exec_fail_dealloc; + } + /* * Copy out strings (args and env) and initialize stack base */ Modified: head/sys/sys/param.h ============================================================================== --- head/sys/sys/param.h Tue Oct 15 06:35:22 2013 (r256503) +++ head/sys/sys/param.h Tue Oct 15 06:38:40 2013 (r256504) @@ -80,6 +80,8 @@ #define P_OSREL_SIGWAIT 700000 #define P_OSREL_SIGSEGV 700004 #define P_OSREL_MAP_ANON 800104 + +#define P_OSREL_MAJOR(x) ((x) / 100000) #endif #ifndef LOCORE From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 07:35:39 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 921B49C9; Tue, 15 Oct 2013 07:35:39 +0000 (UTC) (envelope-from kevlo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 80113294C; Tue, 15 Oct 2013 07:35:39 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9F7ZdLm094707; Tue, 15 Oct 2013 07:35:39 GMT (envelope-from kevlo@svn.freebsd.org) Received: (from kevlo@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9F7ZdIt094705; Tue, 15 Oct 2013 07:35:39 GMT (envelope-from kevlo@svn.freebsd.org) Message-Id: <201310150735.r9F7ZdIt094705@svn.freebsd.org> From: Kevin Lo Date: Tue, 15 Oct 2013 07:35:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256505 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 07:35:39 -0000 Author: kevlo Date: Tue Oct 15 07:35:39 2013 New Revision: 256505 URL: http://svnweb.freebsd.org/changeset/base/256505 Log: Treat INADDR_NONE as uint32_t. Reviewed by: glebius Modified: head/sys/netinet/in.h Modified: head/sys/netinet/in.h ============================================================================== --- head/sys/netinet/in.h Tue Oct 15 06:38:40 2013 (r256504) +++ head/sys/netinet/in.h Tue Oct 15 07:35:39 2013 (r256505) @@ -379,7 +379,7 @@ __END_DECLS #define INADDR_LOOPBACK (u_int32_t)0x7f000001 #ifndef _KERNEL -#define INADDR_NONE 0xffffffff /* -1 return */ +#define INADDR_NONE (uint32_t)0xffffffff /* -1 return */ #endif #define INADDR_UNSPEC_GROUP (u_int32_t)0xe0000000 /* 224.0.0.0 */ From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 07:37:31 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id E777AB5D; Tue, 15 Oct 2013 07:37:31 +0000 (UTC) (envelope-from kevlo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D223D2966; Tue, 15 Oct 2013 07:37:31 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9F7bVOl095536; Tue, 15 Oct 2013 07:37:31 GMT (envelope-from kevlo@svn.freebsd.org) Received: (from kevlo@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9F7bUae095528; Tue, 15 Oct 2013 07:37:30 GMT (envelope-from kevlo@svn.freebsd.org) Message-Id: <201310150737.r9F7bUae095528@svn.freebsd.org> From: Kevin Lo Date: Tue, 15 Oct 2013 07:37:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256506 - in head: sbin/nos-tun usr.bin/rpcinfo usr.bin/systat usr.sbin/bootparamd/bootparamd usr.sbin/bootparamd/callbootd usr.sbin/ypset X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 07:37:32 -0000 Author: kevlo Date: Tue Oct 15 07:37:30 2013 New Revision: 256506 URL: http://svnweb.freebsd.org/changeset/base/256506 Log: Use INADDR_NONE instead of -1 to check inet_addr() result. Reviewed by: glebius Modified: head/sbin/nos-tun/nos-tun.c head/usr.bin/rpcinfo/rpcinfo.c head/usr.bin/systat/netcmds.c head/usr.sbin/bootparamd/bootparamd/main.c head/usr.sbin/bootparamd/callbootd/callbootd.c head/usr.sbin/ypset/ypset.c Modified: head/sbin/nos-tun/nos-tun.c ============================================================================== --- head/sbin/nos-tun/nos-tun.c Tue Oct 15 07:35:39 2013 (r256505) +++ head/sbin/nos-tun/nos-tun.c Tue Oct 15 07:37:30 2013 (r256506) @@ -96,7 +96,7 @@ Set_address(char *addr, struct sockaddr_ bzero((char *)sin, sizeof(struct sockaddr)); sin->sin_family = AF_INET; - if((sin->sin_addr.s_addr = inet_addr(addr)) == (in_addr_t)-1) { + if((sin->sin_addr.s_addr = inet_addr(addr)) == INADDR_NONE) { hp = gethostbyname(addr); if (!hp) { syslog(LOG_ERR,"unknown host %s", addr); Modified: head/usr.bin/rpcinfo/rpcinfo.c ============================================================================== --- head/usr.bin/rpcinfo/rpcinfo.c Tue Oct 15 07:35:39 2013 (r256505) +++ head/usr.bin/rpcinfo/rpcinfo.c Tue Oct 15 07:37:30 2013 (r256506) @@ -563,7 +563,8 @@ get_inet_address(struct sockaddr_in *add (void) memset((char *)addr, 0, sizeof (*addr)); addr->sin_addr.s_addr = inet_addr(host); - if (addr->sin_addr.s_addr == -1 || addr->sin_addr.s_addr == 0) { + if (addr->sin_addr.s_addr == INADDR_NONE || + addr->sin_addr.s_addr == INADDR_ANY) { if ((nconf = __rpc_getconfip("udp")) == NULL && (nconf = __rpc_getconfip("tcp")) == NULL) errx(1, "couldn't find a suitable transport"); Modified: head/usr.bin/systat/netcmds.c ============================================================================== --- head/usr.bin/systat/netcmds.c Tue Oct 15 07:35:39 2013 (r256505) +++ head/usr.bin/systat/netcmds.c Tue Oct 15 07:37:30 2013 (r256506) @@ -152,7 +152,7 @@ changeitems(const char *args, int onoff) hp = gethostbyname(tmpstr1); if (hp == 0) { in.s_addr = inet_addr(tmpstr1); - if ((int)in.s_addr == -1) { + if (in.s_addr == INADDR_NONE) { error("%s: unknown host or port", tmpstr1); continue; } Modified: head/usr.sbin/bootparamd/bootparamd/main.c ============================================================================== --- head/usr.sbin/bootparamd/bootparamd/main.c Tue Oct 15 07:35:39 2013 (r256505) +++ head/usr.sbin/bootparamd/bootparamd/main.c Tue Oct 15 07:37:30 2013 (r256506) @@ -86,7 +86,7 @@ char **argv; if ( stat(bootpfile, &buf ) ) err(1, "%s", bootpfile); - if (route_addr == -1) { + if (route_addr == INADDR_NONE) { get_myaddress(&my_addr); bcopy(&my_addr.sin_addr.s_addr, &route_addr, sizeof (route_addr)); } Modified: head/usr.sbin/bootparamd/callbootd/callbootd.c ============================================================================== --- head/usr.sbin/bootparamd/callbootd/callbootd.c Tue Oct 15 07:35:39 2013 (r256505) +++ head/usr.sbin/bootparamd/callbootd/callbootd.c Tue Oct 15 07:37:30 2013 (r256506) @@ -104,7 +104,7 @@ char **argv; case 3: whoami_arg.client_address.address_type = IP_ADDR_TYPE; the_inet_addr = inet_addr(argv[2]); - if ( the_inet_addr == -1) + if ( the_inet_addr == INADDR_NONE) errx(2, "bogus addr %s", argv[2]); bcopy(&the_inet_addr,&whoami_arg.client_address.bp_address_u.ip_addr,4); Modified: head/usr.sbin/ypset/ypset.c ============================================================================== --- head/usr.sbin/ypset/ypset.c Tue Oct 15 07:35:39 2013 (r256505) +++ head/usr.sbin/ypset/ypset.c Tue Oct 15 07:37:30 2013 (r256506) @@ -75,7 +75,7 @@ bind_tohost(struct sockaddr_in *sin, cha bcopy (hp->h_addr_list[0], (u_long *)&ypsd.ypsetdom_binding.ypbind_binding_addr, sizeof (unsigned long)); - } else if ((long)(server_addr = inet_addr (server)) == -1) { + } else if ((server_addr = inet_addr(server)) == INADDR_NONE) { errx(1, "can't find address for %s", server); } else bcopy (&server_addr, @@ -129,7 +129,8 @@ main(int argc, char *argv[]) domainname = optarg; break; case 'h': - if ((sin.sin_addr.s_addr = inet_addr(optarg)) == -1) { + if ((sin.sin_addr.s_addr = inet_addr(optarg)) == + INADDR_NONE) { hent = gethostbyname(optarg); if (hent == NULL) errx(1, "host %s unknown", optarg); From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 09:21:06 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 0DC38769; Tue, 15 Oct 2013 09:21:06 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E16402F67; Tue, 15 Oct 2013 09:21:05 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9F9L5Fp062885; Tue, 15 Oct 2013 09:21:05 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9F9L5gS062884; Tue, 15 Oct 2013 09:21:05 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201310150921.r9F9L5gS062884@svn.freebsd.org> From: Gleb Smirnoff Date: Tue, 15 Oct 2013 09:21:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256510 - head/usr.bin/netstat X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 09:21:06 -0000 Author: glebius Date: Tue Oct 15 09:21:05 2013 New Revision: 256510 URL: http://svnweb.freebsd.org/changeset/base/256510 Log: Remove obtained, but never used data. Found by: gcc Modified: head/usr.bin/netstat/mbuf.c Modified: head/usr.bin/netstat/mbuf.c ============================================================================== --- head/usr.bin/netstat/mbuf.c Tue Oct 15 09:12:18 2013 (r256509) +++ head/usr.bin/netstat/mbuf.c Tue Oct 15 09:21:05 2013 (r256510) @@ -69,16 +69,16 @@ mbpr(void *kvmd, u_long mbaddr) struct memory_type *mtp; uintmax_t mbuf_count, mbuf_bytes, mbuf_free, mbuf_failures, mbuf_size; uintmax_t mbuf_sleeps; - uintmax_t cluster_count, cluster_bytes, cluster_limit, cluster_free; + uintmax_t cluster_count, cluster_limit, cluster_free; uintmax_t cluster_failures, cluster_size, cluster_sleeps; uintmax_t packet_count, packet_bytes, packet_free, packet_failures; uintmax_t packet_sleeps; - uintmax_t tag_count, tag_bytes; - uintmax_t jumbop_count, jumbop_bytes, jumbop_limit, jumbop_free; + uintmax_t tag_bytes; + uintmax_t jumbop_count, jumbop_limit, jumbop_free; uintmax_t jumbop_failures, jumbop_sleeps, jumbop_size; - uintmax_t jumbo9_count, jumbo9_bytes, jumbo9_limit, jumbo9_free; + uintmax_t jumbo9_count, jumbo9_limit, jumbo9_free; uintmax_t jumbo9_failures, jumbo9_sleeps, jumbo9_size; - uintmax_t jumbo16_count, jumbo16_bytes, jumbo16_limit, jumbo16_free; + uintmax_t jumbo16_count, jumbo16_limit, jumbo16_free; uintmax_t jumbo16_failures, jumbo16_sleeps, jumbo16_size; uintmax_t bytes_inuse, bytes_incache, bytes_total; int nsfbufs, nsfbufspeak, nsfbufsused; @@ -146,7 +146,6 @@ mbpr(void *kvmd, u_long mbaddr) goto out; } cluster_count = memstat_get_count(mtp); - cluster_bytes = memstat_get_bytes(mtp); cluster_limit = memstat_get_countlimit(mtp); cluster_free = memstat_get_free(mtp); cluster_failures = memstat_get_failures(mtp); @@ -159,7 +158,6 @@ mbpr(void *kvmd, u_long mbaddr) MBUF_TAG_MEM_NAME); goto out; } - tag_count = memstat_get_count(mtp); tag_bytes = memstat_get_bytes(mtp); mtp = memstat_mtl_find(mtlp, ALLOCATOR_UMA, MBUF_JUMBOP_MEM_NAME); @@ -169,7 +167,6 @@ mbpr(void *kvmd, u_long mbaddr) goto out; } jumbop_count = memstat_get_count(mtp); - jumbop_bytes = memstat_get_bytes(mtp); jumbop_limit = memstat_get_countlimit(mtp); jumbop_free = memstat_get_free(mtp); jumbop_failures = memstat_get_failures(mtp); @@ -183,7 +180,6 @@ mbpr(void *kvmd, u_long mbaddr) goto out; } jumbo9_count = memstat_get_count(mtp); - jumbo9_bytes = memstat_get_bytes(mtp); jumbo9_limit = memstat_get_countlimit(mtp); jumbo9_free = memstat_get_free(mtp); jumbo9_failures = memstat_get_failures(mtp); @@ -197,7 +193,6 @@ mbpr(void *kvmd, u_long mbaddr) goto out; } jumbo16_count = memstat_get_count(mtp); - jumbo16_bytes = memstat_get_bytes(mtp); jumbo16_limit = memstat_get_countlimit(mtp); jumbo16_free = memstat_get_free(mtp); jumbo16_failures = memstat_get_failures(mtp); From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 09:29:36 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id B639CAD0; Tue, 15 Oct 2013 09:29:36 +0000 (UTC) (envelope-from kevlo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A2DB12FAD; Tue, 15 Oct 2013 09:29:36 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9F9TadU067164; Tue, 15 Oct 2013 09:29:36 GMT (envelope-from kevlo@svn.freebsd.org) Received: (from kevlo@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9F9TaKZ067163; Tue, 15 Oct 2013 09:29:36 GMT (envelope-from kevlo@svn.freebsd.org) Message-Id: <201310150929.r9F9TaKZ067163@svn.freebsd.org> From: Kevin Lo Date: Tue, 15 Oct 2013 09:29:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256511 - head/sys/arm/mv X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 09:29:36 -0000 Author: kevlo Date: Tue Oct 15 09:29:36 2013 New Revision: 256511 URL: http://svnweb.freebsd.org/changeset/base/256511 Log: Remove unsigned comparison < 0 Found by: LLVM Reviewed by: zbb Modified: head/sys/arm/mv/mv_localbus.c Modified: head/sys/arm/mv/mv_localbus.c ============================================================================== --- head/sys/arm/mv/mv_localbus.c Tue Oct 15 09:21:05 2013 (r256510) +++ head/sys/arm/mv/mv_localbus.c Tue Oct 15 09:29:36 2013 (r256511) @@ -431,7 +431,7 @@ fdt_localbus_devmap(phandle_t dt_node, s bank = fdt_data_get((void *)rangesptr, 1); rangesptr += 1; - if (bank < 0 || bank > MV_LOCALBUS_MAX_BANKS) { + if (bank > MV_LOCALBUS_MAX_BANKS) { /* Bank out of range */ rangesptr += ((addr_cells - 1) + par_addr_cells + size_cells); From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 09:55:08 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C625019E; Tue, 15 Oct 2013 09:55:08 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id B0A012138; Tue, 15 Oct 2013 09:55:08 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9F9t865084148; Tue, 15 Oct 2013 09:55:08 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9F9t8pq084143; Tue, 15 Oct 2013 09:55:08 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201310150955.r9F9t8pq084143@svn.freebsd.org> From: Gleb Smirnoff Date: Tue, 15 Oct 2013 09:55:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256512 - head/usr.bin/netstat X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 09:55:09 -0000 Author: glebius Date: Tue Oct 15 09:55:07 2013 New Revision: 256512 URL: http://svnweb.freebsd.org/changeset/base/256512 Log: Rewrite netstat/if.c to use getifaddrs(3) and getifmaddrs(3) instead of libkvm digging in kernel memory. This is possible since r231506 made getifaddrs(3) to supply if_data for each ifaddr. The pros of this change is that now netstat(1) doesn't know about kernel struct ifnet and struct ifaddr. And these structs are about to change significantly in head soon. New netstat binary will work well with 10.0 and any future kernel. The cons is that now it isn't possible to obtain interface statistics from a vmcore. Functions intpr() and sidewaysintpr() were rewritten from scratch. The output of netstat(1) has underwent the following changes: 1) The MTU is not printed for protocol addresses, since it has no notion. Dash is printed instead. If there would be a strong desire to return previous output, it is doable. 2) Output interface queue drops are not printed. Currently this data isn't available to userland via any API. We plan to drop 'struct ifqueue' from 'struct ifnet' very soon, so old kvm(3) access to queue drops is soon to be broken, too. The plan is that drivers would handle their queues theirselves and a new field in if_data would be updated in case of drops. 3) In-kernel reference count for multicast addresses isn't printed. I doubt that anyone used it. Anyway, netstat(1) is sysadmin tool, not kernel debugger. Sponsored by: Netflix Sponsored by: Nginx, Inc. Modified: head/usr.bin/netstat/if.c head/usr.bin/netstat/main.c head/usr.bin/netstat/netstat.h head/usr.bin/netstat/route.c Modified: head/usr.bin/netstat/if.c ============================================================================== --- head/usr.bin/netstat/if.c Tue Oct 15 09:29:36 2013 (r256511) +++ head/usr.bin/netstat/if.c Tue Oct 15 09:55:07 2013 (r256512) @@ -58,24 +58,23 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #ifdef INET6 #include #endif #include +#include #include #include #include #include +#include #include #include "netstat.h" -#define YES 1 -#define NO 0 - -static void sidewaysintpr(int, u_long); -static void catchalarm(int); +static void sidewaysintpr(int); #ifdef INET6 static char addr_buf[NI_MAXHOST]; /* for getnameinfo() */ @@ -198,52 +197,40 @@ show_stat(const char *fmt, int width, u_ } /* - * Print a description of the network interfaces. + * Find next multiaddr for a given interface name. */ -void -intpr(int interval1, u_long ifnetaddr, void (*pfunc)(char *)) +static struct ifmaddrs * +next_ifma(struct ifmaddrs *ifma, const char *name, const sa_family_t family) { - struct ifnet ifnet; - struct ifnethead ifnethead; - union { - struct ifaddr ifa; - struct in_ifaddr in; -#ifdef INET6 - struct in6_ifaddr in6; -#endif - struct ipx_ifaddr ipx; - } ifaddr; - u_long ifaddraddr; - u_long ifaddrfound; - u_long opackets; - u_long ipackets; - u_long obytes; - u_long ibytes; - u_long omcasts; - u_long imcasts; - u_long oerrors; - u_long ierrors; - u_long idrops; - u_long collisions; - int drops; - struct sockaddr *sa = NULL; - char name[IFNAMSIZ]; - short network_layer; - short link_layer; - if (ifnetaddr == 0) { - printf("ifnet: symbol not defined\n"); - return; - } - if (interval1) { - sidewaysintpr(interval1, ifnetaddr); - return; + for(; ifma != NULL; ifma = ifma->ifma_next) { + struct sockaddr_dl *sdl; + + sdl = (struct sockaddr_dl *)ifma->ifma_name; + if (ifma->ifma_addr->sa_family == family && + strcmp(sdl->sdl_data, name) == 0) + break; } - if (kread(ifnetaddr, (char *)&ifnethead, sizeof ifnethead) != 0) - return; - ifnetaddr = (u_long)TAILQ_FIRST(&ifnethead); - if (kread(ifnetaddr, (char *)&ifnet, sizeof ifnet) != 0) - return; + + return (ifma); +} + +/* + * Print a description of the network interfaces. + */ +void +intpr(int interval, void (*pfunc)(char *)) +{ + struct ifaddrs *ifap, *ifa; + struct ifmaddrs *ifmap, *ifma; + + if (interval) + return sidewaysintpr(interval); + + if (getifaddrs(&ifap) != 0) + err(EX_OSERR, "getifaddrs"); + if (aflag && getifmaddrs(&ifmap) != 0) + err(EX_OSERR, "getifmaddrs"); if (!pfunc) { if (Wflag) @@ -262,364 +249,295 @@ intpr(int interval1, u_long ifnetaddr, v printf(" %s", "Drop"); putchar('\n'); } - ifaddraddr = 0; - while (ifnetaddr || ifaddraddr) { - struct sockaddr_in *sockin; -#ifdef INET6 - struct sockaddr_in6 *sockin6; -#endif - char *cp; - int n, m; - network_layer = 0; - link_layer = 0; + for (ifa = ifap; ifa; ifa = ifa->ifa_next) { + bool network = false, link = false; - if (ifaddraddr == 0) { - if (kread(ifnetaddr, (char *)&ifnet, sizeof ifnet) != 0) - return; - strlcpy(name, ifnet.if_xname, sizeof(name)); - ifnetaddr = (u_long)TAILQ_NEXT(&ifnet, if_link); - if (interface != 0 && strcmp(name, interface) != 0) - continue; - cp = strchr(name, '\0'); + if (interface != NULL && strcmp(ifa->ifa_name, interface) != 0) + continue; - if (pfunc) { - (*pfunc)(name); - continue; - } + if (pfunc) { + char *name; - if ((ifnet.if_flags&IFF_UP) == 0) - *cp++ = '*'; - *cp = '\0'; - ifaddraddr = (u_long)TAILQ_FIRST(&ifnet.if_addrhead); - } - ifaddrfound = ifaddraddr; + name = ifa->ifa_name; + (*pfunc)(name); - /* - * Get the interface stats. These may get - * overriden below on a per-interface basis. - */ - opackets = ifnet.if_opackets; - ipackets = ifnet.if_ipackets; - obytes = ifnet.if_obytes; - ibytes = ifnet.if_ibytes; - omcasts = ifnet.if_omcasts; - imcasts = ifnet.if_imcasts; - oerrors = ifnet.if_oerrors; - ierrors = ifnet.if_ierrors; - idrops = ifnet.if_iqdrops; - collisions = ifnet.if_collisions; - drops = ifnet.if_snd.ifq_drops; - - if (ifaddraddr == 0) { - if (Wflag) - printf("%-7.7s", name); - else - printf("%-5.5s", name); - printf(" %5lu ", ifnet.if_mtu); - printf("%-13.13s ", "none"); - printf("%-17.17s ", "none"); - } else { - if (kread(ifaddraddr, (char *)&ifaddr, sizeof ifaddr) - != 0) { - ifaddraddr = 0; - continue; - } -#define CP(x) ((char *)(x)) - cp = (CP(ifaddr.ifa.ifa_addr) - CP(ifaddraddr)) + - CP(&ifaddr); - sa = (struct sockaddr *)cp; - if (af != AF_UNSPEC && sa->sa_family != af) { - ifaddraddr = - (u_long)TAILQ_NEXT(&ifaddr.ifa, ifa_link); - continue; + /* + * Skip all ifaddrs belonging to same interface. + */ + while(ifa->ifa_next != NULL && + (strcmp(ifa->ifa_next->ifa_name, name) == 0)) { + ifa = ifa->ifa_next; } - if (Wflag) - printf("%-7.7s", name); - else - printf("%-5.5s", name); - printf(" %5lu ", ifnet.if_mtu); - switch (sa->sa_family) { - case AF_UNSPEC: - printf("%-13.13s ", "none"); - printf("%-15.15s ", "none"); - break; - case AF_INET: - sockin = (struct sockaddr_in *)sa; -#ifdef notdef - /* can't use inet_makeaddr because kernel - * keeps nets unshifted. - */ - in = inet_makeaddr(ifaddr.in.ia_subnet, - INADDR_ANY); - printf("%-13.13s ", netname(in.s_addr, - ifaddr.in.ia_subnetmask)); -#else - printf("%-13.13s ", - netname(htonl(ifaddr.in.ia_subnet), - ifaddr.in.ia_subnetmask)); -#endif - printf("%-17.17s ", - routename(sockin->sin_addr.s_addr)); + continue; + } - network_layer = 1; - break; -#ifdef INET6 - case AF_INET6: - sockin6 = (struct sockaddr_in6 *)sa; - in6_fillscopeid(&ifaddr.in6.ia_addr); - printf("%-13.13s ", - netname6(&ifaddr.in6.ia_addr, - &ifaddr.in6.ia_prefixmask.sin6_addr)); - in6_fillscopeid(sockin6); - getnameinfo(sa, sa->sa_len, addr_buf, - sizeof(addr_buf), 0, 0, NI_NUMERICHOST); - printf("%-17.17s ", addr_buf); + if (af != AF_UNSPEC && ifa->ifa_addr->sa_family != af) + continue; - network_layer = 1; - break; -#endif /*INET6*/ - case AF_IPX: - { - struct sockaddr_ipx *sipx = - (struct sockaddr_ipx *)sa; - u_long net; - char netnum[10]; - - *(union ipx_net *) &net = sipx->sipx_addr.x_net; - sprintf(netnum, "%lx", (u_long)ntohl(net)); - printf("ipx:%-8s ", netnum); -/* printf("ipx:%-8s ", netname(net, 0L)); */ - printf("%-17s ", - ipx_phost((struct sockaddr *)sipx)); - } + if (Wflag) + printf("%-7.7s", ifa->ifa_name); + else + printf("%-5.5s", ifa->ifa_name); - network_layer = 1; - break; +#define IFA_MTU(ifa) (((struct if_data *)(ifa)->ifa_data)->ifi_mtu) + show_stat("lu", 6, IFA_MTU(ifa), IFA_MTU(ifa)); +#undef IFA_MTU - case AF_APPLETALK: - printf("atalk:%-12.12s ",atalk_print(sa,0x10) ); - printf("%-11.11s ",atalk_print(sa,0x0b) ); - break; - case AF_LINK: - { - struct sockaddr_dl *sdl = - (struct sockaddr_dl *)sa; - char linknum[10]; - cp = (char *)LLADDR(sdl); - n = sdl->sdl_alen; - sprintf(linknum, "", sdl->sdl_index); - m = printf("%-13.13s ", linknum); - } - goto hexprint; - default: - m = printf("(%d)", sa->sa_family); - for (cp = sa->sa_len + (char *)sa; - --cp > sa->sa_data && (*cp == 0);) {} - n = cp - sa->sa_data + 1; - cp = sa->sa_data; - hexprint: - while ((--n >= 0) && (m < 30)) - m += printf("%02x%c", *cp++ & 0xff, - n > 0 ? ':' : ' '); - m = 32 - m; - while (m-- > 0) - putchar(' '); + switch (ifa->ifa_addr->sa_family) { + case AF_UNSPEC: + printf("%-13.13s ", "none"); + printf("%-15.15s ", "none"); + break; + case AF_INET: + { + struct sockaddr_in *sin, *mask; + + sin = (struct sockaddr_in *)ifa->ifa_addr; + mask = (struct sockaddr_in *)ifa->ifa_netmask; + printf("%-13.13s ", netname(sin->sin_addr.s_addr, + mask->sin_addr.s_addr)); + printf("%-17.17s ", + routename(sin->sin_addr.s_addr)); - link_layer = 1; - break; - } + network = true; + break; + } +#ifdef INET6 + case AF_INET6: + { + struct sockaddr_in6 *sin6, *mask; + + sin6 = (struct sockaddr_in6 *)ifa->ifa_addr; + mask = (struct sockaddr_in6 *)ifa->ifa_netmask; + + printf("%-13.13s ", netname6(sin6, &mask->sin6_addr)); + getnameinfo(ifa->ifa_addr, ifa->ifa_addr->sa_len, + addr_buf, sizeof(addr_buf), 0, 0, NI_NUMERICHOST); + printf("%-17.17s ", addr_buf); - /* - * Fixup the statistics for interfaces that - * update stats for their network addresses - */ - if (network_layer) { - opackets = ifaddr.in.ia_ifa.if_opackets; - ipackets = ifaddr.in.ia_ifa.if_ipackets; - obytes = ifaddr.in.ia_ifa.if_obytes; - ibytes = ifaddr.in.ia_ifa.if_ibytes; - } + network = 1; + break; + } +#endif /* INET6 */ + case AF_IPX: + { + struct sockaddr_ipx *sipx; + u_long net; + char netnum[10]; + + sipx = (struct sockaddr_ipx *)ifa->ifa_addr; + *(union ipx_net *) &net = sipx->sipx_addr.x_net; + + sprintf(netnum, "%lx", (u_long)ntohl(net)); + printf("ipx:%-8s ", netnum); + printf("%-17s ", ipx_phost((struct sockaddr *)sipx)); + + network = 1; + break; + } + case AF_APPLETALK: + printf("atalk:%-12.12s ", + atalk_print(ifa->ifa_addr, 0x10)); + printf("%-11.11s ", + atalk_print(ifa->ifa_addr, 0x0b)); + break; + case AF_LINK: + { + struct sockaddr_dl *sdl; + char *cp, linknum[10]; + int n, m; + + sdl = (struct sockaddr_dl *)ifa->ifa_addr; + cp = (char *)LLADDR(sdl); + n = sdl->sdl_alen; + sprintf(linknum, "", sdl->sdl_index); + m = printf("%-13.13s ", linknum); + + while ((--n >= 0) && (m < 30)) + m += printf("%02x%c", *cp++ & 0xff, + n > 0 ? ':' : ' '); + m = 32 - m; + while (m-- > 0) + putchar(' '); - ifaddraddr = (u_long)TAILQ_NEXT(&ifaddr.ifa, ifa_link); + link = 1; + break; + } } - show_stat("lu", 8, ipackets, link_layer|network_layer); - show_stat("lu", 5, ierrors, link_layer); - show_stat("lu", 5, idrops, link_layer); +#define IFA_STAT(s) (((struct if_data *)ifa->ifa_data)->ifi_ ## s) + show_stat("lu", 8, IFA_STAT(ipackets), link|network); + show_stat("lu", 5, IFA_STAT(ierrors), link); + show_stat("lu", 5, IFA_STAT(iqdrops), link); if (bflag) - show_stat("lu", 10, ibytes, link_layer|network_layer); - - show_stat("lu", 8, opackets, link_layer|network_layer); - show_stat("lu", 5, oerrors, link_layer); + show_stat("lu", 10, IFA_STAT(ibytes), link|network); + show_stat("lu", 8, IFA_STAT(opackets), link|network); + show_stat("lu", 5, IFA_STAT(oerrors), link); if (bflag) - show_stat("lu", 10, obytes, link_layer|network_layer); - - show_stat("NRSlu", 5, collisions, link_layer); - if (dflag) - show_stat("LSd", 4, drops, link_layer); + show_stat("lu", 10, IFA_STAT(obytes), link|network); + show_stat("NRSlu", 5, IFA_STAT(collisions), link); + /* XXXGL: output queue drops */ putchar('\n'); - if (aflag && ifaddrfound) { - /* - * Print family's multicast addresses - */ - struct ifmultiaddr *multiaddr; - struct ifmultiaddr ifma; - union { - struct sockaddr sa; - struct sockaddr_in in; -#ifdef INET6 - struct sockaddr_in6 in6; -#endif /* INET6 */ - struct sockaddr_dl dl; - } msa; - const char *fmt; - - TAILQ_FOREACH(multiaddr, &ifnet.if_multiaddrs, ifma_link) { - if (kread((u_long)multiaddr, (char *)&ifma, - sizeof ifma) != 0) - break; - multiaddr = &ifma; - if (kread((u_long)ifma.ifma_addr, (char *)&msa, - sizeof msa) != 0) - break; - if (msa.sa.sa_family != sa->sa_family) - continue; + if (!aflag) + continue; - fmt = 0; - switch (msa.sa.sa_family) { - case AF_INET: - fmt = routename(msa.in.sin_addr.s_addr); - break; + /* + * Print family's multicast addresses. + */ + for (ifma = next_ifma(ifmap, ifa->ifa_name, + ifa->ifa_addr->sa_family); + ifma != NULL; + ifma = next_ifma(ifma, ifa->ifa_name, + ifa->ifa_addr->sa_family)) { + const char *fmt = NULL; + + switch (ifma->ifma_addr->sa_family) { + case AF_INET: + { + struct sockaddr_in *sin; + + sin = (struct sockaddr_in *)ifma->ifma_addr; + fmt = routename(sin->sin_addr.s_addr); + break; + } #ifdef INET6 - case AF_INET6: - in6_fillscopeid(&msa.in6); - getnameinfo(&msa.sa, msa.sa.sa_len, - addr_buf, sizeof(addr_buf), 0, 0, - NI_NUMERICHOST); - printf("%*s %-19.19s(refs: %d)\n", - Wflag ? 27 : 25, "", - addr_buf, ifma.ifma_refcount); - break; + case AF_INET6: + + /* in6_fillscopeid(&msa.in6); */ + getnameinfo(ifma->ifma_addr, + ifma->ifma_addr->sa_len, addr_buf, + sizeof(addr_buf), 0, 0, NI_NUMERICHOST); + printf("%*s %s\n", + Wflag ? 27 : 25, "", addr_buf); + break; #endif /* INET6 */ - case AF_LINK: - switch (msa.dl.sdl_type) { - case IFT_ETHER: - case IFT_FDDI: - fmt = ether_ntoa( - (struct ether_addr *) - LLADDR(&msa.dl)); - break; - } + case AF_LINK: + { + struct sockaddr_dl *sdl; + + sdl = (struct sockaddr_dl *)ifma->ifma_addr; + switch (sdl->sdl_type) { + case IFT_ETHER: + case IFT_FDDI: + fmt = ether_ntoa( + (struct ether_addr *)LLADDR(sdl)); break; } - if (fmt) { - printf("%*s %-17.17s", - Wflag ? 27 : 25, "", fmt); - if (msa.sa.sa_family == AF_LINK) { - printf(" %8lu", imcasts); - printf("%*s", - bflag ? 17 : 6, ""); - printf(" %8lu", omcasts); - } - putchar('\n'); + break; + } + } + + if (fmt) { + printf("%*s %-17.17s", + Wflag ? 27 : 25, "", fmt); + if (ifma->ifma_addr->sa_family == AF_LINK) { + printf(" %8lu", IFA_STAT(imcasts)); + printf("%*s", bflag ? 17 : 6, ""); + printf(" %8lu", IFA_STAT(omcasts)); } + putchar('\n'); } + + ifma = ifma->ifma_next; } } + + freeifaddrs(ifap); + if (aflag) + freeifmaddrs(ifmap); } -struct iftot { - SLIST_ENTRY(iftot) chain; - char ift_name[IFNAMSIZ]; /* interface name */ +struct iftot { u_long ift_ip; /* input packets */ u_long ift_ie; /* input errors */ u_long ift_id; /* input drops */ u_long ift_op; /* output packets */ u_long ift_oe; /* output errors */ u_long ift_co; /* collisions */ - u_int ift_dr; /* drops */ u_long ift_ib; /* input bytes */ u_long ift_ob; /* output bytes */ }; -u_char signalled; /* set if alarm goes off "early" */ - /* - * Print a running summary of interface statistics. - * Repeat display every interval1 seconds, showing statistics - * collected over that interval. Assumes that interval1 is non-zero. - * First line printed at top of screen is always cumulative. - * XXX - should be rewritten to use ifmib(4). + * Obtain stats for interface(s). */ static void -sidewaysintpr(int interval1, u_long off) +fill_iftot(struct iftot *st) { - struct ifnet ifnet; - u_long firstifnet; - struct ifnethead ifnethead; - struct itimerval interval_it; - struct iftot *iftot, *ip, *ipn, *total, *sum, *interesting; - int line; - int oldmask, first; - u_long interesting_off; + struct ifaddrs *ifap, *ifa; + bool found = false; - if (kread(off, (char *)&ifnethead, sizeof ifnethead) != 0) - return; - firstifnet = (u_long)TAILQ_FIRST(&ifnethead); - - if ((iftot = malloc(sizeof(struct iftot))) == NULL) { - printf("malloc failed\n"); - exit(1); - } - memset(iftot, 0, sizeof(struct iftot)); + if (getifaddrs(&ifap) != 0) + err(EX_OSERR, "getifaddrs"); - interesting = NULL; - interesting_off = 0; - for (off = firstifnet, ip = iftot; off;) { - char name[IFNAMSIZ]; + bzero(st, sizeof(*st)); - if (kread(off, (char *)&ifnet, sizeof ifnet) != 0) - break; - strlcpy(name, ifnet.if_xname, sizeof(name)); - if (interface && strcmp(name, interface) == 0) { - interesting = ip; - interesting_off = off; - } - snprintf(ip->ift_name, sizeof(ip->ift_name), "(%s)", name); - if ((ipn = malloc(sizeof(struct iftot))) == NULL) { - printf("malloc failed\n"); - exit(1); + for (ifa = ifap; ifa; ifa = ifa->ifa_next) { + if (ifa->ifa_addr->sa_family != AF_LINK) + continue; + if (interface) { + if (strcmp(ifa->ifa_name, interface) == 0) + found = true; + else + continue; } - memset(ipn, 0, sizeof(struct iftot)); - SLIST_NEXT(ip, chain) = ipn; - ip = ipn; - off = (u_long)TAILQ_NEXT(&ifnet, if_link); - } - if (interface && interesting == NULL) - errx(1, "%s: unknown interface", interface); - if ((total = malloc(sizeof(struct iftot))) == NULL) { - printf("malloc failed\n"); - exit(1); - } - memset(total, 0, sizeof(struct iftot)); - if ((sum = malloc(sizeof(struct iftot))) == NULL) { - printf("malloc failed\n"); - exit(1); + + st->ift_ip += IFA_STAT(ipackets); + st->ift_ie += IFA_STAT(ierrors); + st->ift_id += IFA_STAT(iqdrops); + st->ift_ib += IFA_STAT(ibytes); + st->ift_op += IFA_STAT(opackets); + st->ift_oe += IFA_STAT(oerrors); + st->ift_ob += IFA_STAT(obytes); + st->ift_co += IFA_STAT(collisions); } - memset(sum, 0, sizeof(struct iftot)); + + if (interface && found == false) + err(EX_DATAERR, "interface %s not found", interface); + + freeifaddrs(ifap); +} + +/* + * Set a flag to indicate that a signal from the periodic itimer has been + * caught. + */ +static sig_atomic_t signalled; +static void +catchalarm(int signo __unused) +{ + signalled = true; +} + +/* + * Print a running summary of interface statistics. + * Repeat display every interval seconds, showing statistics + * collected over that interval. Assumes that interval is non-zero. + * First line printed at top of screen is always cumulative. + */ +static void +sidewaysintpr(int interval) +{ + struct iftot ift[2], *new, *old; + struct itimerval interval_it; + int oldmask, line; + + new = &ift[0]; + old = &ift[1]; + fill_iftot(old); (void)signal(SIGALRM, catchalarm); - signalled = NO; - interval_it.it_interval.tv_sec = interval1; + signalled = false; + interval_it.it_interval.tv_sec = interval; interval_it.it_interval.tv_usec = 0; interval_it.it_value = interval_it.it_interval; setitimer(ITIMER_REAL, &interval_it, NULL); - first = 1; + banner: printf("%17s %14s %16s", "input", - interesting ? interesting->ift_name : "(Total)", "output"); + interface != NULL ? interface : "(Total)", "output"); putchar('\n'); printf("%10s %5s %5s %10s %10s %5s %10s %5s", "packets", "errs", "idrops", "bytes", "packets", "errs", "bytes", @@ -629,104 +547,43 @@ banner: putchar('\n'); fflush(stdout); line = 0; + loop: - if (interesting != NULL) { - ip = interesting; - if (kread(interesting_off, (char *)&ifnet, sizeof ifnet) != 0) { - printf("???\n"); - exit(1); - }; - if (!first) { - show_stat("lu", 10, ifnet.if_ipackets - ip->ift_ip, 1); - show_stat("lu", 5, ifnet.if_ierrors - ip->ift_ie, 1); - show_stat("lu", 5, ifnet.if_iqdrops - ip->ift_id, 1); - show_stat("lu", 10, ifnet.if_ibytes - ip->ift_ib, 1); - show_stat("lu", 10, ifnet.if_opackets - ip->ift_op, 1); - show_stat("lu", 5, ifnet.if_oerrors - ip->ift_oe, 1); - show_stat("lu", 10, ifnet.if_obytes - ip->ift_ob, 1); - show_stat("NRSlu", 5, - ifnet.if_collisions - ip->ift_co, 1); - if (dflag) - show_stat("LSu", 5, - ifnet.if_snd.ifq_drops - ip->ift_dr, 1); - } - ip->ift_ip = ifnet.if_ipackets; - ip->ift_ie = ifnet.if_ierrors; - ip->ift_id = ifnet.if_iqdrops; - ip->ift_ib = ifnet.if_ibytes; - ip->ift_op = ifnet.if_opackets; - ip->ift_oe = ifnet.if_oerrors; - ip->ift_ob = ifnet.if_obytes; - ip->ift_co = ifnet.if_collisions; - ip->ift_dr = ifnet.if_snd.ifq_drops; - } else { - sum->ift_ip = 0; - sum->ift_ie = 0; - sum->ift_id = 0; - sum->ift_ib = 0; - sum->ift_op = 0; - sum->ift_oe = 0; - sum->ift_ob = 0; - sum->ift_co = 0; - sum->ift_dr = 0; - for (off = firstifnet, ip = iftot; - off && SLIST_NEXT(ip, chain) != NULL; - ip = SLIST_NEXT(ip, chain)) { - if (kread(off, (char *)&ifnet, sizeof ifnet) != 0) { - off = 0; - continue; - } - sum->ift_ip += ifnet.if_ipackets; - sum->ift_ie += ifnet.if_ierrors; - sum->ift_id += ifnet.if_iqdrops; - sum->ift_ib += ifnet.if_ibytes; - sum->ift_op += ifnet.if_opackets; - sum->ift_oe += ifnet.if_oerrors; - sum->ift_ob += ifnet.if_obytes; - sum->ift_co += ifnet.if_collisions; - sum->ift_dr += ifnet.if_snd.ifq_drops; - off = (u_long)TAILQ_NEXT(&ifnet, if_link); - } - if (!first) { - show_stat("lu", 10, sum->ift_ip - total->ift_ip, 1); - show_stat("lu", 5, sum->ift_ie - total->ift_ie, 1); - show_stat("lu", 5, sum->ift_id - total->ift_id, 1); - show_stat("lu", 10, sum->ift_ib - total->ift_ib, 1); - show_stat("lu", 10, sum->ift_op - total->ift_op, 1); - show_stat("lu", 5, sum->ift_oe - total->ift_oe, 1); - show_stat("lu", 10, sum->ift_ob - total->ift_ob, 1); - show_stat("NRSlu", 5, sum->ift_co - total->ift_co, 1); - if (dflag) - show_stat("LSu", 5, - sum->ift_dr - total->ift_dr, 1); - } - *total = *sum; - } - if (!first) - putchar('\n'); - fflush(stdout); if ((noutputs != 0) && (--noutputs == 0)) exit(0); oldmask = sigblock(sigmask(SIGALRM)); while (!signalled) sigpause(0); - signalled = NO; + signalled = false; sigsetmask(oldmask); line++; - first = 0; + + fill_iftot(new); + + show_stat("lu", 10, new->ift_ip - old->ift_ip, 1); + show_stat("lu", 5, new->ift_ie - old->ift_ie, 1); + show_stat("lu", 5, new->ift_id - old->ift_id, 1); + show_stat("lu", 10, new->ift_ib - old->ift_ib, 1); + show_stat("lu", 10, new->ift_op - old->ift_op, 1); + show_stat("lu", 5, new->ift_oe - old->ift_oe, 1); + show_stat("lu", 10, new->ift_ob - old->ift_ob, 1); + show_stat("NRSlu", 5, new->ift_co - old->ift_co, 1); + /* XXXGL: output queue drops */ + putchar('\n'); + fflush(stdout); + + if (new == &ift[0]) { + new = &ift[1]; + old = &ift[0]; + } else { + new = &ift[0]; + old = &ift[1]; + } + if (line == 21) goto banner; else goto loop; - /*NOTREACHED*/ -} -/* - * Set a flag to indicate that a signal from the periodic itimer has been - * caught. - */ -static void -catchalarm(int signo __unused) -{ - signalled = YES; + /* NOTREACHED */ } Modified: head/usr.bin/netstat/main.c ============================================================================== --- head/usr.bin/netstat/main.c Tue Oct 15 09:29:36 2013 (r256511) +++ head/usr.bin/netstat/main.c Tue Oct 15 09:55:07 2013 (r256512) @@ -71,7 +71,7 @@ __FBSDID("$FreeBSD$"); static struct nlist nl[] = { #define N_IFNET 0 - { .n_name = "_ifnet" }, + { .n_name = "_ifnet" }, /* XXXGL: can be deleted */ #define N_RTSTAT 1 { .n_name = "_rtstat" }, #define N_RTREE 2 @@ -552,7 +552,7 @@ main(int argc, char *argv[]) #endif kread(0, NULL, 0); if (iflag && !sflag) { - intpr(interval, nl[N_IFNET].n_value, NULL); + intpr(interval, NULL); exit(0); } if (rflag) { @@ -636,8 +636,7 @@ printproto(struct protox *tp, const char if (sflag) { if (iflag) { if (tp->pr_istats) - intpr(interval, nl[N_IFNET].n_value, - tp->pr_istats); + intpr(interval, tp->pr_istats); else if (pflag) printf("%s: no per-interface stats routine\n", tp->pr_name); Modified: head/usr.bin/netstat/netstat.h ============================================================================== --- head/usr.bin/netstat/netstat.h Tue Oct 15 09:29:36 2013 (r256511) +++ head/usr.bin/netstat/netstat.h Tue Oct 15 09:55:07 2013 (r256512) @@ -119,7 +119,7 @@ void netisr_stats(void *); void hostpr(u_long, u_long); void impstats(u_long, u_long); -void intpr(int, u_long, void (*)(char *)); +void intpr(int, void (*)(char *)); void pr_rthdr(int); void pr_family(int); @@ -130,7 +130,7 @@ char *ns_phost(struct sockaddr *); void upHex(char *); char *routename(in_addr_t); -char *netname(in_addr_t, u_long); +char *netname(in_addr_t, in_addr_t); char *atalk_print(struct sockaddr *, int); char *atalk_print2(struct sockaddr *, struct sockaddr *, int); char *ipx_print(struct sockaddr *); Modified: head/usr.bin/netstat/route.c ============================================================================== --- head/usr.bin/netstat/route.c Tue Oct 15 09:29:36 2013 (r256511) +++ head/usr.bin/netstat/route.c Tue Oct 15 09:55:07 2013 (r256512) @@ -631,10 +631,9 @@ fmt_sockaddr(struct sockaddr *sa, struct cp = routename(sockin->sin_addr.s_addr); else if (mask) cp = netname(sockin->sin_addr.s_addr, - ntohl(((struct sockaddr_in *)mask) - ->sin_addr.s_addr)); + ((struct sockaddr_in *)mask)->sin_addr.s_addr); else - cp = netname(sockin->sin_addr.s_addr, 0L); + cp = netname(sockin->sin_addr.s_addr, INADDR_ANY); break; } @@ -870,19 +869,21 @@ domask(char *dst, in_addr_t addr __unuse /* * Return the name of the network whose address is given. - * The address is assumed to be that of a net or subnet, not a host. */ char * -netname(in_addr_t in, u_long mask) +netname(in_addr_t in, in_addr_t mask) { char *cp = 0; static char line[MAXHOSTNAMELEN]; struct netent *np = 0; in_addr_t i; + /* It is ok to supply host address. */ + in &= mask; + i = ntohl(in); if (!numeric_addr && i) { - np = getnetbyaddr(i >> NSHIFT(mask), AF_INET); + np = getnetbyaddr(i >> NSHIFT(ntohl(mask)), AF_INET); if (np != NULL) { cp = np->n_name; trimdomain(cp, strlen(cp)); @@ -893,7 +894,7 @@ netname(in_addr_t in, u_long mask) } else { inet_ntop(AF_INET, &in, line, sizeof(line) - 1); } - domask(line + strlen(line), i, mask); + domask(line + strlen(line), i, ntohl(mask)); return (line); } From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 10:05:38 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 141F76EB; Tue, 15 Oct 2013 10:05:38 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 019FC21D6; Tue, 15 Oct 2013 10:05:38 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FA5bmj090578; Tue, 15 Oct 2013 10:05:37 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FA5bDq090573; Tue, 15 Oct 2013 10:05:37 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201310151005.r9FA5bDq090573@svn.freebsd.org> From: Gleb Smirnoff Date: Tue, 15 Oct 2013 10:05:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256514 - in head: lib/libkvm sys/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 10:05:38 -0000 Author: glebius Date: Tue Oct 15 10:05:37 2013 New Revision: 256514 URL: http://svnweb.freebsd.org/changeset/base/256514 Log: - While we are spreading the counter(9) across network stack, more userland tools would need to know about the counter_u64_t type. Allow to include sys/counter.h from userspace. - Utilize now defined type in kvm_counter_u64_fetch(). Sponsored by: Netflix Sponsored by: Nginx, Inc. Modified: head/lib/libkvm/kvm_pcpu.c head/sys/sys/counter.h Modified: head/lib/libkvm/kvm_pcpu.c ============================================================================== --- head/lib/libkvm/kvm_pcpu.c Tue Oct 15 10:01:15 2013 (r256513) +++ head/lib/libkvm/kvm_pcpu.c Tue Oct 15 10:05:37 2013 (r256514) @@ -42,6 +42,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -319,7 +320,8 @@ kvm_read_zpcpu(kvm_t *kd, void *buf, u_l uint64_t kvm_counter_u64_fetch(kvm_t *kd, u_long base) { - uint64_t r, c; + counter_u64_t c; + uint64_t r; if (mp_ncpus == 0) if (_kvm_pcpu_init(kd) < 0) Modified: head/sys/sys/counter.h ============================================================================== --- head/sys/sys/counter.h Tue Oct 15 10:01:15 2013 (r256513) +++ head/sys/sys/counter.h Tue Oct 15 10:05:37 2013 (r256514) @@ -31,6 +31,7 @@ typedef uint64_t *counter_u64_t; +#ifdef _KERNEL #include counter_u64_t counter_u64_alloc(int); @@ -58,4 +59,5 @@ uint64_t counter_u64_fetch(counter_u64_t for (int i = 0; i < (n); i++) \ counter_u64_zero((a)[i]); \ } while (0) +#endif /* _KERNEL */ #endif /* ! __SYS_COUNTER_H__ */ From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 10:09:33 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id E854E9D7; Tue, 15 Oct 2013 10:09:33 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D60BD2214; Tue, 15 Oct 2013 10:09:33 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FA9XNp092284; Tue, 15 Oct 2013 10:09:33 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FA9XjI092283; Tue, 15 Oct 2013 10:09:33 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201310151009.r9FA9XjI092283@svn.freebsd.org> From: Gleb Smirnoff Date: Tue, 15 Oct 2013 10:09:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256515 - head/sys/netinet6 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 10:09:34 -0000 Author: glebius Date: Tue Oct 15 10:09:33 2013 New Revision: 256515 URL: http://svnweb.freebsd.org/changeset/base/256515 Log: Now counter_u64_t is known to userland, thus remove hack from r253086. Sponsored by: Netflix Sponsored by: Nginx, Inc. Modified: head/sys/netinet6/in6_var.h Modified: head/sys/netinet6/in6_var.h ============================================================================== --- head/sys/netinet6/in6_var.h Tue Oct 15 10:05:37 2013 (r256514) +++ head/sys/netinet6/in6_var.h Tue Oct 15 10:09:33 2013 (r256515) @@ -65,6 +65,7 @@ #define _NETINET6_IN6_VAR_H_ #include +#include #ifdef _KERNEL #include @@ -98,9 +99,6 @@ struct scope6_id; struct lltable; struct mld_ifinfo; -#ifdef _KERNEL -#include - struct in6_ifextra { counter_u64_t *in6_ifstat; counter_u64_t *icmp6_ifstat; @@ -109,17 +107,6 @@ struct in6_ifextra { struct lltable *lltable; struct mld_ifinfo *mld_ifinfo; }; -#else - -struct in6_ifextra { - void *in6_ifstat; - void *icmp6_ifstat; - struct nd_ifinfo *nd_ifinfo; - struct scope6_id *scope6_id; - struct lltable *lltable; - struct mld_ifinfo *mld_ifinfo; -}; -#endif /* !_KERNEL */ #define LLTABLE6(ifp) (((struct in6_ifextra *)(ifp)->if_afdata[AF_INET6])->lltable) From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 10:11:25 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 9EFD9C19; Tue, 15 Oct 2013 10:11:25 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 8C7EE2257; Tue, 15 Oct 2013 10:11:25 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FABOUE095147; Tue, 15 Oct 2013 10:11:24 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FABOvd095146; Tue, 15 Oct 2013 10:11:24 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201310151011.r9FABOvd095146@svn.freebsd.org> From: Gleb Smirnoff Date: Tue, 15 Oct 2013 10:11:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256516 - head/sys/netinet6 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 10:11:25 -0000 Author: glebius Date: Tue Oct 15 10:11:23 2013 New Revision: 256516 URL: http://svnweb.freebsd.org/changeset/base/256516 Log: Remove useless check of ia6 against NULL, right after dereferencing it. Modified: head/sys/netinet6/ip6_input.c Modified: head/sys/netinet6/ip6_input.c ============================================================================== --- head/sys/netinet6/ip6_input.c Tue Oct 15 10:09:33 2013 (r256515) +++ head/sys/netinet6/ip6_input.c Tue Oct 15 10:11:23 2013 (r256516) @@ -842,7 +842,7 @@ passin: /* Count the packet in the ip address stats */ ia6->ia_ifa.if_ipackets++; ia6->ia_ifa.if_ibytes += m->m_pkthdr.len; - if (ia6 != NULL && free_ia6 != 0) + if (free_ia6) ifa_free(&ia6->ia_ifa); goto hbhcheck; } else { @@ -854,7 +854,7 @@ passin: ip6_sprintf(ip6bufs, &ip6->ip6_src), ip6_sprintf(ip6bufd, &ip6->ip6_dst))); - if (ia6 != NULL && free_ia6 != 0) + if (free_ia6) ifa_free(&ia6->ia_ifa); goto bad; } From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 10:12:19 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id D96E6D5A; Tue, 15 Oct 2013 10:12:19 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id C5B902263; Tue, 15 Oct 2013 10:12:19 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FACJOI095701; Tue, 15 Oct 2013 10:12:19 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FACJAG095700; Tue, 15 Oct 2013 10:12:19 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201310151012.r9FACJAG095700@svn.freebsd.org> From: Gleb Smirnoff Date: Tue, 15 Oct 2013 10:12:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256517 - head/sys/netinet6 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 10:12:19 -0000 Author: glebius Date: Tue Oct 15 10:12:19 2013 New Revision: 256517 URL: http://svnweb.freebsd.org/changeset/base/256517 Log: Remove unsigned < 0 check. Modified: head/sys/netinet6/ip6_output.c Modified: head/sys/netinet6/ip6_output.c ============================================================================== --- head/sys/netinet6/ip6_output.c Tue Oct 15 10:11:23 2013 (r256516) +++ head/sys/netinet6/ip6_output.c Tue Oct 15 10:12:19 2013 (r256517) @@ -2659,10 +2659,8 @@ ip6_setpktopt(int optname, u_char *buf, } /* validate the interface index if specified. */ - if (pktinfo->ipi6_ifindex > V_if_index || - pktinfo->ipi6_ifindex < 0) { + if (pktinfo->ipi6_ifindex > V_if_index) return (ENXIO); - } if (pktinfo->ipi6_ifindex) { ifp = ifnet_byindex(pktinfo->ipi6_ifindex); if (ifp == NULL) From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 10:19:26 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 0FD5AF29; Tue, 15 Oct 2013 10:19:26 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id BB5B422BE; Tue, 15 Oct 2013 10:19:25 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FAJPab098888; Tue, 15 Oct 2013 10:19:25 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FAJOgB098850; Tue, 15 Oct 2013 10:19:24 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201310151019.r9FAJOgB098850@svn.freebsd.org> From: Gleb Smirnoff Date: Tue, 15 Oct 2013 10:19:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256518 - in head: contrib/ipfilter sys/net sys/netinet sys/netinet6 sys/netipx usr.sbin/ifmcstat X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 10:19:26 -0000 Author: glebius Date: Tue Oct 15 10:19:24 2013 New Revision: 256518 URL: http://svnweb.freebsd.org/changeset/base/256518 Log: Hide 'struct ifaddr' definition from userland. Two tools left that use it, namely ipftest(1) and ifmcstat(1). These sniff structure definition using _WANT_IFADDR define. Sponsored by: Netflix Sponsored by: Nginx, Inc. Modified: head/contrib/ipfilter/ipf.h head/sys/net/if_var.h head/sys/netinet/in_var.h head/sys/netinet6/in6_var.h head/sys/netipx/ipx_if.h head/usr.sbin/ifmcstat/ifmcstat.c Modified: head/contrib/ipfilter/ipf.h ============================================================================== --- head/contrib/ipfilter/ipf.h Tue Oct 15 10:12:19 2013 (r256517) +++ head/contrib/ipfilter/ipf.h Tue Oct 15 10:19:24 2013 (r256518) @@ -42,9 +42,10 @@ struct file; #include #include #include -#if __FreeBSD_version >= 300000 -# include -#endif + +#define _WANT_IFADDR +#include + #include #include #include Modified: head/sys/net/if_var.h ============================================================================== --- head/sys/net/if_var.h Tue Oct 15 10:12:19 2013 (r256517) +++ head/sys/net/if_var.h Tue Oct 15 10:19:24 2013 (r256518) @@ -788,6 +788,7 @@ drbr_inuse(struct ifnet *ifp, struct buf * chunk of malloc'ed memory, where we store the three addresses * (ifa_addr, ifa_dstaddr and ifa_netmask) referenced here. */ +#if defined(_KERNEL) || defined(_WANT_IFADDR) struct ifaddr { struct sockaddr *ifa_addr; /* address of interface */ struct sockaddr *ifa_dstaddr; /* other end of p-to-p link */ @@ -806,6 +807,8 @@ struct ifaddr { (struct ifaddr *, struct sockaddr *); struct mtx ifa_mtx; }; +#endif + #define IFA_ROUTE RTF_UP /* route installed */ #define IFA_RTSELF RTF_HOST /* loopback route to self installed */ Modified: head/sys/netinet/in_var.h ============================================================================== --- head/sys/netinet/in_var.h Tue Oct 15 10:12:19 2013 (r256517) +++ head/sys/netinet/in_var.h Tue Oct 15 10:19:24 2013 (r256518) @@ -50,6 +50,7 @@ struct in_ifinfo { struct in_multi *ii_allhosts; /* 224.0.0.1 membership */ }; +#if defined(_KERNEL) || defined(_WANT_IFADDR) /* * Interface address, Internet version. One of these structures * is allocated for each Internet address on an interface. @@ -70,6 +71,7 @@ struct in_ifaddr { #define ia_broadaddr ia_dstaddr struct sockaddr_in ia_sockmask; /* reserve space for general netmask */ }; +#endif struct in_aliasreq { char ifra_name[IFNAMSIZ]; /* if name, e.g. "en0" */ Modified: head/sys/netinet6/in6_var.h ============================================================================== --- head/sys/netinet6/in6_var.h Tue Oct 15 10:12:19 2013 (r256517) +++ head/sys/netinet6/in6_var.h Tue Oct 15 10:19:24 2013 (r256518) @@ -110,6 +110,7 @@ struct in6_ifextra { #define LLTABLE6(ifp) (((struct in6_ifextra *)(ifp)->if_afdata[AF_INET6])->lltable) +#if defined(_KERNEL) || defined(_WANT_IFADDR) struct in6_ifaddr { struct ifaddr ia_ifa; /* protocol-independent info */ #define ia_ifp ia_ifa.ifa_ifp @@ -140,6 +141,7 @@ struct in6_ifaddr { /* List of in6_ifaddr's. */ TAILQ_HEAD(in6_ifaddrhead, in6_ifaddr); LIST_HEAD(in6_ifaddrlisthead, in6_ifaddr); +#endif /* control structure to manage address selection policy */ struct in6_addrpolicy { Modified: head/sys/netipx/ipx_if.h ============================================================================== --- head/sys/netipx/ipx_if.h Tue Oct 15 10:12:19 2013 (r256517) +++ head/sys/netipx/ipx_if.h Tue Oct 15 10:19:24 2013 (r256518) @@ -70,7 +70,7 @@ * The ifaddr structure contains the protocol-independent part * of the structure and is assumed to be first. */ - +#ifdef _KERNEL struct ipx_ifaddr { struct ifaddr ia_ifa; /* protocol-independent info */ #define ia_ifp ia_ifa.ifa_ifp @@ -81,6 +81,7 @@ struct ipx_ifaddr { #define ia_broadaddr ia_dstaddr struct sockaddr_ipx ia_netmask; /* space for my network mask */ }; +#endif /* _KERNEL */ struct ipx_aliasreq { char ifra_name[IFNAMSIZ]; /* if name, e.g. "en0" */ Modified: head/usr.sbin/ifmcstat/ifmcstat.c ============================================================================== --- head/usr.sbin/ifmcstat/ifmcstat.c Tue Oct 15 10:12:19 2013 (r256517) +++ head/usr.sbin/ifmcstat/ifmcstat.c Tue Oct 15 10:19:24 2013 (r256518) @@ -41,6 +41,7 @@ __FBSDID("$FreeBSD$"); #include #include +#define _WANT_IFADDR #include #include #include From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 10:31:44 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 0824B3B4; Tue, 15 Oct 2013 10:31:44 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D99A82385; Tue, 15 Oct 2013 10:31:43 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FAVhVw008290; Tue, 15 Oct 2013 10:31:43 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FAVgRP008282; Tue, 15 Oct 2013 10:31:42 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201310151031.r9FAVgRP008282@svn.freebsd.org> From: Gleb Smirnoff Date: Tue, 15 Oct 2013 10:31:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256519 - in head/sys: net netatalk netinet netinet6 netipx X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 10:31:44 -0000 Author: glebius Date: Tue Oct 15 10:31:42 2013 New Revision: 256519 URL: http://svnweb.freebsd.org/changeset/base/256519 Log: Remove ifa_init() and provide ifa_alloc() that will allocate and setup struct ifaddr internally. Sponsored by: Netflix Sponsored by: Nginx, Inc. Modified: head/sys/net/if.c head/sys/net/if_var.h head/sys/netatalk/at_control.c head/sys/netinet/in.c head/sys/netinet6/in6.c head/sys/netipx/ipx.c Modified: head/sys/net/if.c ============================================================================== --- head/sys/net/if.c Tue Oct 15 10:19:24 2013 (r256518) +++ head/sys/net/if.c Tue Oct 15 10:31:42 2013 (r256519) @@ -633,8 +633,7 @@ if_attach_internal(struct ifnet *ifp, in socksize = sizeof(*sdl); socksize = roundup2(socksize, sizeof(long)); ifasize = sizeof(*ifa) + 2 * socksize; - ifa = malloc(ifasize, M_IFADDR, M_WAITOK | M_ZERO); - ifa_init(ifa); + ifa = ifa_alloc(ifasize, M_WAITOK); sdl = (struct sockaddr_dl *)(ifa + 1); sdl->sdl_len = socksize; sdl->sdl_family = AF_LINK; @@ -1417,13 +1416,23 @@ if_maddr_runlock(struct ifnet *ifp) /* * Initialization, destruction and refcounting functions for ifaddrs. */ -void -ifa_init(struct ifaddr *ifa) +struct ifaddr * +ifa_alloc(size_t size, int flags) { + struct ifaddr *ifa; + + KASSERT(size >= sizeof(struct ifaddr), + ("%s: invalid size %zu", __func__, size)); + + ifa = malloc(size, M_IFADDR, M_ZERO | flags); + if (ifa == NULL) + return (NULL); mtx_init(&ifa->ifa_mtx, "ifaddr", NULL, MTX_DEF); refcount_init(&ifa->ifa_refcnt, 1); ifa->if_data.ifi_datalen = sizeof(ifa->if_data); + + return (ifa); } void Modified: head/sys/net/if_var.h ============================================================================== --- head/sys/net/if_var.h Tue Oct 15 10:19:24 2013 (r256518) +++ head/sys/net/if_var.h Tue Oct 15 10:31:42 2013 (r256519) @@ -819,8 +819,8 @@ struct ifaddr { #define IFA_LOCK(ifa) mtx_lock(&(ifa)->ifa_mtx) #define IFA_UNLOCK(ifa) mtx_unlock(&(ifa)->ifa_mtx) +struct ifaddr * ifa_alloc(size_t size, int flags); void ifa_free(struct ifaddr *ifa); -void ifa_init(struct ifaddr *ifa); void ifa_ref(struct ifaddr *ifa); #endif Modified: head/sys/netatalk/at_control.c ============================================================================== --- head/sys/netatalk/at_control.c Tue Oct 15 10:19:24 2013 (r256518) +++ head/sys/netatalk/at_control.c Tue Oct 15 10:31:42 2013 (r256519) @@ -199,16 +199,10 @@ at_control(struct socket *so, u_long cmd * allocate a fresh one. */ if (aa == NULL) { - aa = malloc(sizeof(struct at_ifaddr), M_IFADDR, - M_NOWAIT | M_ZERO); - if (aa == NULL) { - error = ENOBUFS; - goto out; - } - callout_init(&aa->aa_callout, CALLOUT_MPSAFE); + ifa = ifa_alloc(sizeof(struct at_ifaddr), M_WAITOK); + aa = (struct at_ifaddr *)ifa; - ifa = (struct ifaddr *)aa; - ifa_init(ifa); + callout_init(&aa->aa_callout, CALLOUT_MPSAFE); /* * As the at_ifaddr contains the actual sockaddrs, Modified: head/sys/netinet/in.c ============================================================================== --- head/sys/netinet/in.c Tue Oct 15 10:19:24 2013 (r256518) +++ head/sys/netinet/in.c Tue Oct 15 10:31:42 2013 (r256519) @@ -404,16 +404,8 @@ in_control(struct socket *so, u_long cmd goto out; } if (ia == NULL) { - ia = (struct in_ifaddr *) - malloc(sizeof *ia, M_IFADDR, M_NOWAIT | - M_ZERO); - if (ia == NULL) { - error = ENOBUFS; - goto out; - } - - ifa = &ia->ia_ifa; - ifa_init(ifa); + ifa = ifa_alloc(sizeof(struct in_ifaddr), M_WAITOK); + ia = (struct in_ifaddr *)ifa; ifa->ifa_addr = (struct sockaddr *)&ia->ia_addr; ifa->ifa_dstaddr = (struct sockaddr *)&ia->ia_dstaddr; ifa->ifa_netmask = (struct sockaddr *)&ia->ia_sockmask; Modified: head/sys/netinet6/in6.c ============================================================================== --- head/sys/netinet6/in6.c Tue Oct 15 10:19:24 2013 (r256518) +++ head/sys/netinet6/in6.c Tue Oct 15 10:31:42 2013 (r256519) @@ -1141,12 +1141,9 @@ in6_update_ifa(struct ifnet *ifp, struct * RA, it is called under an interrupt context. So, we should * call malloc with M_NOWAIT. */ - ia = (struct in6_ifaddr *) malloc(sizeof(*ia), M_IFADDR, - M_NOWAIT); + ia = (struct in6_ifaddr *)ifa_alloc(sizeof(*ia), M_NOWAIT); if (ia == NULL) return (ENOBUFS); - bzero((caddr_t)ia, sizeof(*ia)); - ifa_init(&ia->ia_ifa); LIST_INIT(&ia->ia6_memberships); /* Initialize the address and masks, and put time stamp */ ia->ia_ifa.ifa_addr = (struct sockaddr *)&ia->ia_addr; Modified: head/sys/netipx/ipx.c ============================================================================== --- head/sys/netipx/ipx.c Tue Oct 15 10:19:24 2013 (r256518) +++ head/sys/netipx/ipx.c Tue Oct 15 10:31:42 2013 (r256519) @@ -190,13 +190,8 @@ ipx_control(struct socket *so, u_long cm if (td && (error = priv_check(td, PRIV_NET_SETLLADDR)) != 0) goto out; if (ia == NULL) { - ia = malloc(sizeof(*ia), M_IFADDR, M_NOWAIT | M_ZERO); - if (ia == NULL) { - error = ENOBUFS; - goto out; - } - ifa = (struct ifaddr *)ia; - ifa_init(ifa); + ifa = ifa_alloc(sizeof(struct ipx_ifaddr), M_WAITOK); + ia = (struct ipx_ifaddr *)ifa; ia->ia_ifp = ifp; ifa->ifa_addr = (struct sockaddr *)&ia->ia_addr; ifa->ifa_netmask = (struct sockaddr *)&ipx_netmask; From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 10:41:23 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 13BCF7A0; Tue, 15 Oct 2013 10:41:23 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id DA791241B; Tue, 15 Oct 2013 10:41:22 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FAfMfn014032; Tue, 15 Oct 2013 10:41:22 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FAfMHS014030; Tue, 15 Oct 2013 10:41:22 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201310151041.r9FAfMHS014030@svn.freebsd.org> From: Gleb Smirnoff Date: Tue, 15 Oct 2013 10:41:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256521 - head/sys/net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 10:41:23 -0000 Author: glebius Date: Tue Oct 15 10:41:22 2013 New Revision: 256521 URL: http://svnweb.freebsd.org/changeset/base/256521 Log: Remove ifa_mtx. It was used only in one place in kernel, and ifnet's ifaddr lock can substitute it there. Discussed with: melifaro, ae Sponsored by: Netflix Sponsored by: Nginx, Inc. Modified: head/sys/net/if.c head/sys/net/if_var.h Modified: head/sys/net/if.c ============================================================================== --- head/sys/net/if.c Tue Oct 15 10:37:50 2013 (r256520) +++ head/sys/net/if.c Tue Oct 15 10:41:22 2013 (r256521) @@ -1428,7 +1428,6 @@ ifa_alloc(size_t size, int flags) if (ifa == NULL) return (NULL); - mtx_init(&ifa->ifa_mtx, "ifaddr", NULL, MTX_DEF); refcount_init(&ifa->ifa_refcnt, 1); ifa->if_data.ifi_datalen = sizeof(ifa->if_data); @@ -1447,7 +1446,6 @@ ifa_free(struct ifaddr *ifa) { if (refcount_release(&ifa->ifa_refcnt)) { - mtx_destroy(&ifa->ifa_mtx); free(ifa, M_IFADDR); } } @@ -2244,9 +2242,9 @@ ifhwioctl(u_long cmd, struct ifnet *ifp, log(LOG_INFO, "%s: changing name to '%s'\n", ifp->if_xname, new_name); + IF_ADDR_WLOCK(ifp); strlcpy(ifp->if_xname, new_name, sizeof(ifp->if_xname)); ifa = ifp->if_addr; - IFA_LOCK(ifa); sdl = (struct sockaddr_dl *)ifa->ifa_addr; namelen = strlen(new_name); onamelen = sdl->sdl_nlen; @@ -2265,7 +2263,7 @@ ifhwioctl(u_long cmd, struct ifnet *ifp, bzero(sdl->sdl_data, onamelen); while (namelen != 0) sdl->sdl_data[--namelen] = 0xff; - IFA_UNLOCK(ifa); + IF_ADDR_WUNLOCK(ifp); EVENTHANDLER_INVOKE(ifnet_arrival_event, ifp); /* Announce the return of the interface. */ Modified: head/sys/net/if_var.h ============================================================================== --- head/sys/net/if_var.h Tue Oct 15 10:37:50 2013 (r256520) +++ head/sys/net/if_var.h Tue Oct 15 10:41:22 2013 (r256521) @@ -805,7 +805,6 @@ struct ifaddr { int ifa_metric; /* cost of going out this interface */ int (*ifa_claim_addr) /* check if an addr goes to this if */ (struct ifaddr *, struct sockaddr *); - struct mtx ifa_mtx; }; #endif @@ -816,9 +815,6 @@ struct ifaddr { #define ifa_list ifa_link #ifdef _KERNEL -#define IFA_LOCK(ifa) mtx_lock(&(ifa)->ifa_mtx) -#define IFA_UNLOCK(ifa) mtx_unlock(&(ifa)->ifa_mtx) - struct ifaddr * ifa_alloc(size_t size, int flags); void ifa_free(struct ifaddr *ifa); void ifa_ref(struct ifaddr *ifa); From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 10:43:27 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 181958EA; Tue, 15 Oct 2013 10:43:27 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 03EC52426; Tue, 15 Oct 2013 10:43:27 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FAhQkJ014918; Tue, 15 Oct 2013 10:43:26 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FAhQjU014917; Tue, 15 Oct 2013 10:43:26 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201310151043.r9FAhQjU014917@svn.freebsd.org> From: Gleb Smirnoff Date: Tue, 15 Oct 2013 10:43:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256522 - head/sys/net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 10:43:27 -0000 Author: glebius Date: Tue Oct 15 10:43:26 2013 New Revision: 256522 URL: http://svnweb.freebsd.org/changeset/base/256522 Log: Push some defines under _KERNEL, improve styling and comments. Modified: head/sys/net/if_var.h Modified: head/sys/net/if_var.h ============================================================================== --- head/sys/net/if_var.h Tue Oct 15 10:41:22 2013 (r256521) +++ head/sys/net/if_var.h Tue Oct 15 10:43:26 2013 (r256522) @@ -808,17 +808,17 @@ struct ifaddr { }; #endif +#ifdef _KERNEL #define IFA_ROUTE RTF_UP /* route installed */ -#define IFA_RTSELF RTF_HOST /* loopback route to self installed */ +#define IFA_RTSELF RTF_HOST /* loopback route to self installed */ -/* for compatibility with other BSDs */ +/* For compatibility with other BSDs. SCTP uses it. */ #define ifa_list ifa_link -#ifdef _KERNEL struct ifaddr * ifa_alloc(size_t size, int flags); void ifa_free(struct ifaddr *ifa); void ifa_ref(struct ifaddr *ifa); -#endif +#endif /* _KERNEL */ /* * Multicast address structure. This is analogous to the ifaddr From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 11:37:59 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C3B32968; Tue, 15 Oct 2013 11:37:59 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A165827A3; Tue, 15 Oct 2013 11:37:59 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FBbxtk053343; Tue, 15 Oct 2013 11:37:59 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FBbw5E053329; Tue, 15 Oct 2013 11:37:58 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201310151137.r9FBbw5E053329@svn.freebsd.org> From: Gleb Smirnoff Date: Tue, 15 Oct 2013 11:37:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256525 - in head/sys: net netinet netinet6 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 11:37:59 -0000 Author: glebius Date: Tue Oct 15 11:37:57 2013 New Revision: 256525 URL: http://svnweb.freebsd.org/changeset/base/256525 Log: - Utilize counter(9) to accumulate statistics on interface addresses. Add four counters to struct ifaddr. This kills '+=' on a variables shared between processors for every packet. - Nuke struct if_data from struct ifaddr. - In ip_input() do not put a reference on ifaddr, instead update statistics right now in place and do IN_IFADDR_RUNLOCK(). These removes atomic(9) for every packet. [1] - To properly support NET_RT_IFLISTL sysctl used by getifaddrs(3), in rtsock.c fill if_data fields using counter_u64_fetch(). - Accidentially fix bug in COMPAT_32 version of NET_RT_IFLISTL, which took if_data not from the ifaddr, but from ifaddr's ifnet. [2] Submitted by: melifaro [1], pluknet[2] Sponsored by: Netflix Sponsored by: Nginx, Inc. Modified: head/sys/net/if.c head/sys/net/if_var.h head/sys/net/rtsock.c head/sys/netinet/ip_input.c head/sys/netinet/ip_output.c head/sys/netinet6/ip6_input.c head/sys/netinet6/ip6_output.c Modified: head/sys/net/if.c ============================================================================== --- head/sys/net/if.c Tue Oct 15 11:25:12 2013 (r256524) +++ head/sys/net/if.c Tue Oct 15 11:37:57 2013 (r256525) @@ -1428,10 +1428,28 @@ ifa_alloc(size_t size, int flags) if (ifa == NULL) return (NULL); + if ((ifa->ifa_opackets = counter_u64_alloc(flags)) == NULL) + goto fail; + if ((ifa->ifa_ipackets = counter_u64_alloc(flags)) == NULL) + goto fail; + if ((ifa->ifa_obytes = counter_u64_alloc(flags)) == NULL) + goto fail; + if ((ifa->ifa_ibytes = counter_u64_alloc(flags)) == NULL) + goto fail; + refcount_init(&ifa->ifa_refcnt, 1); - ifa->if_data.ifi_datalen = sizeof(ifa->if_data); return (ifa); + +fail: + /* free(NULL) is okay */ + counter_u64_free(ifa->ifa_opackets); + counter_u64_free(ifa->ifa_ipackets); + counter_u64_free(ifa->ifa_obytes); + counter_u64_free(ifa->ifa_ibytes); + free(ifa, M_IFADDR); + + return (NULL); } void @@ -1446,6 +1464,10 @@ ifa_free(struct ifaddr *ifa) { if (refcount_release(&ifa->ifa_refcnt)) { + counter_u64_free(ifa->ifa_opackets); + counter_u64_free(ifa->ifa_ipackets); + counter_u64_free(ifa->ifa_obytes); + counter_u64_free(ifa->ifa_ibytes); free(ifa, M_IFADDR); } } Modified: head/sys/net/if_var.h ============================================================================== --- head/sys/net/if_var.h Tue Oct 15 11:25:12 2013 (r256524) +++ head/sys/net/if_var.h Tue Oct 15 11:37:57 2013 (r256525) @@ -83,6 +83,7 @@ struct vnet; #include #include #endif /* _KERNEL */ +#include #include /* XXX */ #include /* XXX */ #include /* XXX */ @@ -794,7 +795,6 @@ struct ifaddr { struct sockaddr *ifa_dstaddr; /* other end of p-to-p link */ #define ifa_broadaddr ifa_dstaddr /* broadcast address interface */ struct sockaddr *ifa_netmask; /* used to determine subnet */ - struct if_data if_data; /* not all members are meaningful */ struct ifnet *ifa_ifp; /* back-pointer to interface */ struct carp_softc *ifa_carp; /* pointer to CARP data */ TAILQ_ENTRY(ifaddr) ifa_link; /* queue macro glue */ @@ -805,6 +805,11 @@ struct ifaddr { int ifa_metric; /* cost of going out this interface */ int (*ifa_claim_addr) /* check if an addr goes to this if */ (struct ifaddr *, struct sockaddr *); + + counter_u64_t ifa_ipackets; + counter_u64_t ifa_opackets; + counter_u64_t ifa_ibytes; + counter_u64_t ifa_obytes; }; #endif Modified: head/sys/net/rtsock.c ============================================================================== --- head/sys/net/rtsock.c Tue Oct 15 11:25:12 2013 (r256524) +++ head/sys/net/rtsock.c Tue Oct 15 11:37:57 2013 (r256525) @@ -1751,7 +1751,17 @@ sysctl_iflist_ifaml(struct ifaddr *ifa, offsetof(struct ifa_msghdrl32, ifam_data); ifam32->ifam_metric = ifa->ifa_metric; - copy_ifdata32(&ifa->ifa_ifp->if_data, &ifam32->ifam_data); + bzero(&ifam32->ifam_data, sizeof(ifam32->ifam_data)); + ifam32->ifam_data.ifi_datalen = sizeof(struct if_data32); + ifam32->ifam_data.ifi_ipackets = + counter_u64_fetch(ifa->ifa_ipackets); + ifam32->ifam_data.ifi_opackets = + counter_u64_fetch(ifa->ifa_opackets); + ifam32->ifam_data.ifi_ibytes = + counter_u64_fetch(ifa->ifa_ibytes); + ifam32->ifam_data.ifi_obytes = + counter_u64_fetch(ifa->ifa_obytes); + /* Fixup if_data carp(4) vhid. */ if (carp_get_vhid_p != NULL) ifam32->ifam_data.ifi_vhid = (*carp_get_vhid_p)(ifa); @@ -1769,7 +1779,13 @@ sysctl_iflist_ifaml(struct ifaddr *ifa, ifam->ifam_data_off = offsetof(struct ifa_msghdrl, ifam_data); ifam->ifam_metric = ifa->ifa_metric; - ifam->ifam_data = ifa->if_data; + bzero(&ifam->ifam_data, sizeof(ifam->ifam_data)); + ifam->ifam_data.ifi_datalen = sizeof(struct if_data); + ifam->ifam_data.ifi_ipackets = counter_u64_fetch(ifa->ifa_ipackets); + ifam->ifam_data.ifi_opackets = counter_u64_fetch(ifa->ifa_opackets); + ifam->ifam_data.ifi_ibytes = counter_u64_fetch(ifa->ifa_ibytes); + ifam->ifam_data.ifi_obytes = counter_u64_fetch(ifa->ifa_obytes); + /* Fixup if_data carp(4) vhid. */ if (carp_get_vhid_p != NULL) ifam->ifam_data.ifi_vhid = (*carp_get_vhid_p)(ifa); Modified: head/sys/netinet/ip_input.c ============================================================================== --- head/sys/netinet/ip_input.c Tue Oct 15 11:25:12 2013 (r256524) +++ head/sys/netinet/ip_input.c Tue Oct 15 11:37:57 2013 (r256525) @@ -603,7 +603,9 @@ passin: */ if (IA_SIN(ia)->sin_addr.s_addr == ip->ip_dst.s_addr && (!checkif || ia->ia_ifp == ifp)) { - ifa_ref(&ia->ia_ifa); + counter_u64_add(ia->ia_ifa.ifa_ipackets, 1); + counter_u64_add(ia->ia_ifa.ifa_ibytes, + m->m_pkthdr.len); /* IN_IFADDR_RUNLOCK(); */ goto ours; } @@ -626,13 +628,17 @@ passin: ia = ifatoia(ifa); if (satosin(&ia->ia_broadaddr)->sin_addr.s_addr == ip->ip_dst.s_addr) { - ifa_ref(ifa); + counter_u64_add(ia->ia_ifa.ifa_ipackets, 1); + counter_u64_add(ia->ia_ifa.ifa_ibytes, + m->m_pkthdr.len); IF_ADDR_RUNLOCK(ifp); goto ours; } #ifdef BOOTP_COMPAT if (IA_SIN(ia)->sin_addr.s_addr == INADDR_ANY) { - ifa_ref(ifa); + counter_u64_add(ia->ia_ifa.ifa_ipackets, 1); + counter_u64_add(ia->ia_ifa.ifa_ibytes, + m->m_pkthdr.len); IF_ADDR_RUNLOCK(ifp); goto ours; } @@ -717,20 +723,10 @@ ours: * IPSTEALTH: Process non-routing options only * if the packet is destined for us. */ - if (V_ipstealth && hlen > sizeof (struct ip) && ip_dooptions(m, 1)) { - if (ia != NULL) - ifa_free(&ia->ia_ifa); + if (V_ipstealth && hlen > sizeof (struct ip) && ip_dooptions(m, 1)) return; - } #endif /* IPSTEALTH */ - /* Count the packet in the ip address stats */ - if (ia != NULL) { - ia->ia_ifa.if_ipackets++; - ia->ia_ifa.if_ibytes += m->m_pkthdr.len; - ifa_free(&ia->ia_ifa); - } - /* * Attempt reassembly; if it succeeds, proceed. * ip_reass() will return a different mbuf. Modified: head/sys/netinet/ip_output.c ============================================================================== --- head/sys/netinet/ip_output.c Tue Oct 15 11:25:12 2013 (r256524) +++ head/sys/netinet/ip_output.c Tue Oct 15 11:37:57 2013 (r256525) @@ -610,11 +610,12 @@ passout: */ if (!(flags & IP_FORWARDING) && ia) { if (m->m_pkthdr.csum_flags & CSUM_TSO) - ia->ia_ifa.if_opackets += - m->m_pkthdr.len / m->m_pkthdr.tso_segsz; + counter_u64_add(ia->ia_ifa.ifa_opackets, + m->m_pkthdr.len / m->m_pkthdr.tso_segsz); else - ia->ia_ifa.if_opackets++; - ia->ia_ifa.if_obytes += m->m_pkthdr.len; + counter_u64_add(ia->ia_ifa.ifa_opackets, 1); + + counter_u64_add(ia->ia_ifa.ifa_obytes, m->m_pkthdr.len); } #ifdef MBUF_STRESS_TEST if (mbuf_frag_size && m->m_pkthdr.len > mbuf_frag_size) @@ -651,8 +652,9 @@ passout: if (error == 0) { /* Record statistics for this interface address. */ if (ia != NULL) { - ia->ia_ifa.if_opackets++; - ia->ia_ifa.if_obytes += m->m_pkthdr.len; + counter_u64_add(ia->ia_ifa.ifa_opackets, 1); + counter_u64_add(ia->ia_ifa.ifa_obytes, + m->m_pkthdr.len); } /* * Reset layer specific mbuf flags Modified: head/sys/netinet6/ip6_input.c ============================================================================== --- head/sys/netinet6/ip6_input.c Tue Oct 15 11:25:12 2013 (r256524) +++ head/sys/netinet6/ip6_input.c Tue Oct 15 11:37:57 2013 (r256525) @@ -724,8 +724,9 @@ passin: ia6 = (struct in6_ifaddr *)ifa; if (!(ia6->ia6_flags & IN6_IFF_NOTREADY)) { /* Count the packet in the ip address stats */ - ia6->ia_ifa.if_ipackets++; - ia6->ia_ifa.if_ibytes += m->m_pkthdr.len; + counter_u64_add(ia6->ia_ifa.ifa_ipackets, 1); + counter_u64_add(ia6->ia_ifa.ifa_ibytes, + m->m_pkthdr.len); /* * record address information into m_tag. @@ -840,8 +841,9 @@ passin: ours = 1; deliverifp = ia6->ia_ifp; /* correct? */ /* Count the packet in the ip address stats */ - ia6->ia_ifa.if_ipackets++; - ia6->ia_ifa.if_ibytes += m->m_pkthdr.len; + counter_u64_add(ia6->ia_ifa.ifa_ipackets, 1); + counter_u64_add(ia6->ia_ifa.ifa_ibytes, + m->m_pkthdr.len); if (free_ia6) ifa_free(&ia6->ia_ifa); goto hbhcheck; Modified: head/sys/netinet6/ip6_output.c ============================================================================== --- head/sys/netinet6/ip6_output.c Tue Oct 15 11:25:12 2013 (r256524) +++ head/sys/netinet6/ip6_output.c Tue Oct 15 11:37:57 2013 (r256525) @@ -1021,8 +1021,9 @@ passout: ia6 = in6_ifawithifp(ifp, &ip6->ip6_src); if (ia6) { /* Record statistics for this interface address. */ - ia6->ia_ifa.if_opackets++; - ia6->ia_ifa.if_obytes += m->m_pkthdr.len; + counter_u64_add(ia6->ia_ifa.ifa_opackets, 1); + counter_u64_add(ia6->ia_ifa.ifa_obytes, + m->m_pkthdr.len); ifa_free(&ia6->ia_ifa); } error = nd6_output(ifp, origifp, m, dst, ro->ro_rt); @@ -1177,8 +1178,9 @@ sendorfree: if (error == 0) { /* Record statistics for this interface address. */ if (ia) { - ia->ia_ifa.if_opackets++; - ia->ia_ifa.if_obytes += m->m_pkthdr.len; + counter_u64_add(ia->ia_ifa.ifa_opackets, 1); + counter_u64_add(ia->ia_ifa.ifa_obytes, + m->m_pkthdr.len); } error = nd6_output(ifp, origifp, m, dst, ro->ro_rt); } else From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 12:59:40 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id D0E57312; Tue, 15 Oct 2013 12:59:40 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id BD08C20AF; Tue, 15 Oct 2013 12:59:40 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FCxeOR005850; Tue, 15 Oct 2013 12:59:40 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FCxeTC005849; Tue, 15 Oct 2013 12:59:40 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201310151259.r9FCxeTC005849@svn.freebsd.org> From: Alexander Motin Date: Tue, 15 Oct 2013 12:59:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256533 - head/sys/cam X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 12:59:40 -0000 Author: mav Date: Tue Oct 15 12:59:40 2013 New Revision: 256533 URL: http://svnweb.freebsd.org/changeset/base/256533 Log: Unhide "Serial Number" lines from bootverbose. That information may be useful for system administration to have in hard copy (in logs) if one of several devices suddenly dies. Requested by: glebius MFC after: 1 week Modified: head/sys/cam/cam_xpt.c Modified: head/sys/cam/cam_xpt.c ============================================================================== --- head/sys/cam/cam_xpt.c Tue Oct 15 12:58:41 2013 (r256532) +++ head/sys/cam/cam_xpt.c Tue Oct 15 12:59:40 2013 (r256533) @@ -1043,7 +1043,7 @@ xpt_announce_periph(struct cam_periph *p (struct sep_identify_data *)&path->device->ident_data); else printf("Unknown protocol device\n"); - if (bootverbose && path->device->serial_num_len > 0) { + if (path->device->serial_num_len > 0) { /* Don't wrap the screen - print only the first 60 chars */ printf("%s%d: Serial Number %.60s\n", periph->periph_name, periph->unit_number, path->device->serial_num); From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 13:32:02 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 60162F8; Tue, 15 Oct 2013 13:32:02 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 4DEB723D2; Tue, 15 Oct 2013 13:32:02 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FDW2m5027809; Tue, 15 Oct 2013 13:32:02 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FDW2NU027808; Tue, 15 Oct 2013 13:32:02 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201310151332.r9FDW2NU027808@svn.freebsd.org> From: Gleb Smirnoff Date: Tue, 15 Oct 2013 13:32:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256537 - head/lib/libc/gen X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 13:32:02 -0000 Author: glebius Date: Tue Oct 15 13:32:01 2013 New Revision: 256537 URL: http://svnweb.freebsd.org/changeset/base/256537 Log: Make getutxent(3) more robust against bad utx.log files. Whenever we read zeroes, don't stop processing the file, but read until its end or valid data. In collaboration with: ed Modified: head/lib/libc/gen/getutxent.c Modified: head/lib/libc/gen/getutxent.c ============================================================================== --- head/lib/libc/gen/getutxent.c Tue Oct 15 13:24:10 2013 (r256536) +++ head/lib/libc/gen/getutxent.c Tue Oct 15 13:32:01 2013 (r256537) @@ -122,9 +122,20 @@ getfutxent(struct futx *fu) if (udb == UTXDB_LOG) { uint16_t len; +retry: if (fread(&len, sizeof(len), 1, uf) != 1) return (-1); len = be16toh(len); + if (len == 0) { + /* + * XXX: Though zero-size records are valid in theory, + * they can never occur in practice. Zero-size records + * indicate file corruption. Seek one byte forward, to + * see if we can find a record there. + */ + ungetc('\0', uf); + goto retry; + } if (len > sizeof *fu) { /* Forward compatibility. */ if (fread(fu, sizeof(*fu), 1, uf) != 1) From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 13:37:16 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id A319944B; Tue, 15 Oct 2013 13:37:16 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebius.int.ru (glebius.int.ru [81.19.69.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id CB3452437; Tue, 15 Oct 2013 13:37:15 +0000 (UTC) Received: from cell.glebius.int.ru (localhost [127.0.0.1]) by cell.glebius.int.ru (8.14.7/8.14.7) with ESMTP id r9FDbDtR070654; Tue, 15 Oct 2013 17:37:14 +0400 (MSK) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebius.int.ru (8.14.7/8.14.7/Submit) id r9FDbDD8070653; Tue, 15 Oct 2013 17:37:13 +0400 (MSK) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebius.int.ru: glebius set sender to glebius@FreeBSD.org using -f Date: Tue, 15 Oct 2013 17:37:13 +0400 From: Gleb Smirnoff To: Alexander Motin Subject: Re: svn commit: r256533 - head/sys/cam Message-ID: <20131015133713.GE52889@FreeBSD.org> References: <201310151259.r9FCxeTC005849@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201310151259.r9FCxeTC005849@svn.freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 13:37:16 -0000 On Tue, Oct 15, 2013 at 12:59:40PM +0000, Alexander Motin wrote: A> Author: mav A> Date: Tue Oct 15 12:59:40 2013 A> New Revision: 256533 A> URL: http://svnweb.freebsd.org/changeset/base/256533 A> A> Log: A> Unhide "Serial Number" lines from bootverbose. That information may be A> useful for system administration to have in hard copy (in logs) if one of A> several devices suddenly dies. A> A> Requested by: glebius Can you please provide the same printf() on the device detach also? When a box is up for several months, the dmesg buffer is usually wiped so print on attach is lost. Well, there is /var/run/dmesg.boot, but what if device was attached after boot? The rationale behind my request is that in a situation when one HDD dies, and a server contains a dozen of HDDs of same model, and we ask datacenter operator to replace one particular HDD, we need to tell operator its serial number. The number is always printed on the HDD sticker, so with number provided, operator finds HDD quickly, without pondering on slot numbers, ATA cables and so on. -- Totus tuus, Glebius. From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 13:41:26 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 6A456712; Tue, 15 Oct 2013 13:41:26 +0000 (UTC) (envelope-from brde@optusnet.com.au) Received: from mail110.syd.optusnet.com.au (mail110.syd.optusnet.com.au [211.29.132.97]) by mx1.freebsd.org (Postfix) with ESMTP id 1B80624B0; Tue, 15 Oct 2013 13:41:25 +0000 (UTC) Received: from c122-106-156-23.carlnfd1.nsw.optusnet.com.au (c122-106-156-23.carlnfd1.nsw.optusnet.com.au [122.106.156.23]) by mail110.syd.optusnet.com.au (Postfix) with ESMTPS id 55F36781427; Wed, 16 Oct 2013 00:41:14 +1100 (EST) Date: Wed, 16 Oct 2013 00:41:13 +1100 (EST) From: Bruce Evans X-X-Sender: bde@besplex.bde.org To: Kevin Lo Subject: Re: svn commit: r256505 - head/sys/netinet In-Reply-To: <201310150735.r9F7ZdIt094705@svn.freebsd.org> Message-ID: <20131015231355.H1194@besplex.bde.org> References: <201310150735.r9F7ZdIt094705@svn.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=DstvpgP+ c=1 sm=1 tr=0 a=ebeQFi2P/qHVC0Yw9JDJ4g==:117 a=PO7r1zJSAAAA:8 a=OruT19piMXgA:10 a=kj9zAlcOel0A:10 a=JzwRw_2MAAAA:8 a=dTaYT270HIcA:10 a=SUtqVvnYs5MZ5z3BSsYA:9 a=IyTK3-r1_Kbg-V_c:21 a=9S8xqpn5IB7KL5v-:21 a=CjuIK1q_8ugA:10 Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 13:41:26 -0000 On Tue, 15 Oct 2013, Kevin Lo wrote: > Log: > Treat INADDR_NONE as uint32_t. > > Reviewed by: glebius > Modified: > head/sys/netinet/in.h > > Modified: head/sys/netinet/in.h > ============================================================================== > --- head/sys/netinet/in.h Tue Oct 15 06:38:40 2013 (r256504) > +++ head/sys/netinet/in.h Tue Oct 15 07:35:39 2013 (r256505) > @@ -379,7 +379,7 @@ __END_DECLS > > #define INADDR_LOOPBACK (u_int32_t)0x7f000001 The old casts of inet address macros are remarkably buggy: - all are missing parentheses. This gives an incorrect parse for weird code like INADDR_LOOPBACK[array] (this syntax is valid but gives different semantics to array[INADDR_LOOPBACK], unlike if the array and the index are either correctly written macros or not macros. - all cast to u_int32_t instead of to in_addr_t. This is not just a style bug. u_int32_t isn't even declared, except accidentally via namespace pollution. > #ifndef _KERNEL > -#define INADDR_NONE 0xffffffff /* -1 return */ > +#define INADDR_NONE (uint32_t)0xffffffff /* -1 return */ This cast has no effect (except to add bugs) on any supported arch, since all supported arches have 32-bit ints. I first thought that this copied all the bugs from one of the old casts. Actually, it uses a not-incorrect type, so its bugs are only: - missing parentheses - the type is not visually identical to the type of an inet address (in_addr_t) - it is a style bug to not be bug for bug compatible with the spelling in the old casts. > #endif > > #define INADDR_UNSPEC_GROUP (u_int32_t)0xe0000000 /* 224.0.0.0 */ > u_int32_t is also used in many non-address macros starting with IN_CLASSA(). These macros don't aren't missing parentheses. I thought that namespace errors in had all been fixed. It carefully declares in_addr_t and uint32_t, but still uses u_int32_t in the POSIX inet address macros; these macros are also placed before the typedefs. Bruce From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 13:53:36 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 38EE6C68; Tue, 15 Oct 2013 13:53:36 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 2600925C2; Tue, 15 Oct 2013 13:53:36 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FDrZTp040986; Tue, 15 Oct 2013 13:53:35 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FDrZL4040985; Tue, 15 Oct 2013 13:53:35 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201310151353.r9FDrZL4040985@svn.freebsd.org> From: Gleb Smirnoff Date: Tue, 15 Oct 2013 13:53:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256539 - head/lib/libkvm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 13:53:36 -0000 Author: glebius Date: Tue Oct 15 13:53:35 2013 New Revision: 256539 URL: http://svnweb.freebsd.org/changeset/base/256539 Log: Revert r256514 for libkvm. It wasn't correct actually and breaks build. Modified: head/lib/libkvm/kvm_pcpu.c Modified: head/lib/libkvm/kvm_pcpu.c ============================================================================== --- head/lib/libkvm/kvm_pcpu.c Tue Oct 15 13:45:37 2013 (r256538) +++ head/lib/libkvm/kvm_pcpu.c Tue Oct 15 13:53:35 2013 (r256539) @@ -42,7 +42,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include #include #include @@ -320,8 +319,7 @@ kvm_read_zpcpu(kvm_t *kd, void *buf, u_l uint64_t kvm_counter_u64_fetch(kvm_t *kd, u_long base) { - counter_u64_t c; - uint64_t r; + uint64_t r, c; if (mp_ncpus == 0) if (_kvm_pcpu_init(kd) < 0) From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 13:54:54 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C752FDCB; Tue, 15 Oct 2013 13:54:54 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebius.int.ru (glebius.int.ru [81.19.69.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 5301E25D9; Tue, 15 Oct 2013 13:54:53 +0000 (UTC) Received: from cell.glebius.int.ru (localhost [127.0.0.1]) by cell.glebius.int.ru (8.14.7/8.14.7) with ESMTP id r9FDspeS070753; Tue, 15 Oct 2013 17:54:51 +0400 (MSK) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebius.int.ru (8.14.7/8.14.7/Submit) id r9FDspat070752; Tue, 15 Oct 2013 17:54:51 +0400 (MSK) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebius.int.ru: glebius set sender to glebius@FreeBSD.org using -f Date: Tue, 15 Oct 2013 17:54:51 +0400 From: Gleb Smirnoff To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r256537 - head/lib/libc/gen Message-ID: <20131015135451.GF52889@FreeBSD.org> References: <201310151332.r9FDW2NU027808@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201310151332.r9FDW2NU027808@svn.freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 13:54:54 -0000 On Tue, Oct 15, 2013 at 01:32:02PM +0000, Gleb Smirnoff wrote: T> Author: glebius T> Date: Tue Oct 15 13:32:01 2013 T> New Revision: 256537 T> URL: http://svnweb.freebsd.org/changeset/base/256537 T> T> Log: T> Make getutxent(3) more robust against bad utx.log files. Whenever we read T> zeroes, don't stop processing the file, but read until its end or valid T> data. I quite often obtain such files in VM instances when bhyve goes down. -- Totus tuus, Glebius. From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 14:18:15 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id B86CB4E1; Tue, 15 Oct 2013 14:18:15 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A3F5227D7; Tue, 15 Oct 2013 14:18:15 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FEIFwb055954; Tue, 15 Oct 2013 14:18:15 GMT (envelope-from dteske@svn.freebsd.org) Received: (from dteske@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FEIFh5055953; Tue, 15 Oct 2013 14:18:15 GMT (envelope-from dteske@svn.freebsd.org) Message-Id: <201310151418.r9FEIFh5055953@svn.freebsd.org> From: Devin Teske Date: Tue, 15 Oct 2013 14:18:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256540 - head/usr.sbin/bsdinstall/scripts X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 14:18:15 -0000 Author: dteske Date: Tue Oct 15 14:18:15 2013 New Revision: 256540 URL: http://svnweb.freebsd.org/changeset/base/256540 Log: gjb writes: when doing encrypted zfs install, loader.conf should be updated so bootpool is imported after boot: zpool_cache_load="YES" zpool_cache_type="/boot/zfs/zpool.cache" zpool_cache_name="/boot/zfs/zpool.cache" otherwise /boot is a broken symlink after the system is up. http://lists.freebsd.org/pipermail/freebsd-fs/2013-July/017891.html NOTE: Fix a comment while here. Reviewed by: gjb Modified: head/usr.sbin/bsdinstall/scripts/zfsboot Modified: head/usr.sbin/bsdinstall/scripts/zfsboot ============================================================================== --- head/usr.sbin/bsdinstall/scripts/zfsboot Tue Oct 15 13:53:35 2013 (r256539) +++ head/usr.sbin/bsdinstall/scripts/zfsboot Tue Oct 15 14:18:15 2013 (r256540) @@ -802,7 +802,7 @@ zfs_create_boot() zpool set cachefile=$BSDINSTALL_CHROOT/boot/zfs/zpool.cache \ "$poolname" || return $FAILURE - # Last, but not least... add required lines to rc.conf(5) + # Last, but not least... required lines for rc.conf(5)/loader.conf(5) # NOTE: We later concatenate these into their destination echo 'zfs_enable="YES"' > $BSDINSTALL_TMPETC/rc.conf.zfs || return $FAILURE @@ -812,6 +812,14 @@ zfs_create_boot() # We're all done unless we should go on to do encryption [ "$ZFSBOOT_GELI_ENCRYPTION" ] || return $SUCCESS + # Some additional GELI requirements for loader.conf(5) + echo 'zpool_cache_load="YES"' \ + >> $BSDINSTALL_TMPETC/loader.conf.zfs || return $FAILURE + echo 'zpool_cache_type="/boot/zfs/zpool.cache"' \ + >> $BSDINSTALL_TMPETC/loader.conf.zfs || return $FAILURE + echo 'zpool_cache_name="/boot/zfs/zpool.cache"' \ + >> $BSDINSTALL_TMPETC/loader.conf.zfs || return $FAILURE + # # Configure geli(8)-based encryption # From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 14:46:38 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 8C124E0C; Tue, 15 Oct 2013 14:46:38 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 79AEF2AA3; Tue, 15 Oct 2013 14:46:38 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FEkcUJ073691; Tue, 15 Oct 2013 14:46:38 GMT (envelope-from dteske@svn.freebsd.org) Received: (from dteske@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FEkcST073690; Tue, 15 Oct 2013 14:46:38 GMT (envelope-from dteske@svn.freebsd.org) Message-Id: <201310151446.r9FEkcST073690@svn.freebsd.org> From: Devin Teske Date: Tue, 15 Oct 2013 14:46:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256541 - head/usr.sbin/bsdinstall X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 14:46:38 -0000 Author: dteske Date: Tue Oct 15 14:46:37 2013 New Revision: 256541 URL: http://svnweb.freebsd.org/changeset/base/256541 Log: Document BSDINSTALL_TMPBOOT environment variable introduced by SVN r256343. Modified: head/usr.sbin/bsdinstall/bsdinstall.8 Modified: head/usr.sbin/bsdinstall/bsdinstall.8 ============================================================================== --- head/usr.sbin/bsdinstall/bsdinstall.8 Tue Oct 15 14:18:15 2013 (r256540) +++ head/usr.sbin/bsdinstall/bsdinstall.8 Tue Oct 15 14:46:37 2013 (r256541) @@ -254,6 +254,14 @@ will be stored until the target is executed. If this directory does not already exist, it will be created. Default: .Pa /tmp/bsdinstall_etc +.It Ev BSDINSTALL_TMPBOOT +Directory where files destined for the new system's +.Pa /boot +will be stored until the +.Cm config +target is executed. If this directory does not already exist, it will be +created. Default: +.Pa /tmp/bsdinstall_boot .El .Sh SCRIPTING .Nm From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 14:52:45 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id BDBF280; Tue, 15 Oct 2013 14:52:45 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 9219C2B1A; Tue, 15 Oct 2013 14:52:45 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FEqjuJ078167; Tue, 15 Oct 2013 14:52:45 GMT (envelope-from jhibbits@svn.freebsd.org) Received: (from jhibbits@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FEqj7e078165; Tue, 15 Oct 2013 14:52:45 GMT (envelope-from jhibbits@svn.freebsd.org) Message-Id: <201310151452.r9FEqj7e078165@svn.freebsd.org> From: Justin Hibbits Date: Tue, 15 Oct 2013 14:52:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256542 - head/sys/powerpc/aim X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 14:52:45 -0000 Author: jhibbits Date: Tue Oct 15 14:52:44 2013 New Revision: 256542 URL: http://svnweb.freebsd.org/changeset/base/256542 Log: Move the PMC handling to the first level interrupt handler where it belongs. Also add the pmc_hook use, to handle callchain tracing. MFC after: 1 week Modified: head/sys/powerpc/aim/interrupt.c head/sys/powerpc/aim/trap.c Modified: head/sys/powerpc/aim/interrupt.c ============================================================================== --- head/sys/powerpc/aim/interrupt.c Tue Oct 15 14:46:37 2013 (r256541) +++ head/sys/powerpc/aim/interrupt.c Tue Oct 15 14:52:44 2013 (r256542) @@ -31,6 +31,8 @@ * Interrupts are dispatched to here from locore asm */ +#include "opt_hwpmc_hooks.h" + #include /* RCS ID & Copyright macro defns */ #include @@ -43,6 +45,9 @@ #include #include #include +#ifdef HWPMC_HOOKS +#include +#endif #include #include #include @@ -96,6 +101,17 @@ powerpc_interrupt(struct trapframe *fram atomic_subtract_int(&td->td_intr_nesting_level, 1); critical_exit(); break; + case EXC_PERF: + critical_enter(); + KASSERT(pmc_intr != NULL, ("Performance exception, but no handler!")); + (*pmc_intr)(PCPU_GET(cpuid), framep); + critical_enter(); +#ifdef HWPMC_HOOKS + if (pmc_hook && (PCPU_GET(curthread)->td_pflags & TDP_CALLCHAIN)) + pmc_hook(PCPU_GET(curthread), PMC_FN_USER_CALLCHAIN, framep); +#endif + critical_exit(); + break; default: /* Re-enable interrupts if applicable. */ Modified: head/sys/powerpc/aim/trap.c ============================================================================== --- head/sys/powerpc/aim/trap.c Tue Oct 15 14:46:37 2013 (r256541) +++ head/sys/powerpc/aim/trap.c Tue Oct 15 14:52:44 2013 (r256542) @@ -34,7 +34,6 @@ #include __FBSDID("$FreeBSD$"); -#include "opt_hwpmc_hooks.h" #include "opt_kdtrace.h" #include @@ -52,9 +51,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#ifdef HWPMC_HOOKS -#include -#endif #include @@ -195,14 +191,6 @@ trap(struct trapframe *frame) CTR3(KTR_TRAP, "trap: %s type=%s (%s)", td->td_name, trapname(type), user ? "user" : "kernel"); -#ifdef HWPMC_HOOKS - if (type == EXC_PERF && (pmc_intr != NULL)) { - (*pmc_intr)(PCPU_GET(cpuid), frame); - if (user) - userret(td, frame); - return; - } -#endif #ifdef KDTRACE_HOOKS /* * A trap can occur while DTrace executes a probe. Before @@ -292,7 +280,7 @@ trap(struct trapframe *frame) case EXC_PGM: /* Identify the trap reason */ if (frame->srr1 & EXC_PGM_TRAP) - sig = SIGTRAP; + sig = SIGTRAP; else if (ppc_instr_emulate(frame) == 0) frame->srr0 += 4; else From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 14:57:18 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 50B982D2 for ; Tue, 15 Oct 2013 14:57:18 +0000 (UTC) (envelope-from bryan@shatow.net) Received: from secure.xzibition.com (secure.xzibition.com [173.160.118.92]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 064682B76 for ; Tue, 15 Oct 2013 14:57:17 +0000 (UTC) DomainKey-Signature: a=rsa-sha1; c=nofws; d=shatow.net; h=date:from:to :cc:subject:message-id:references:mime-version:content-type :in-reply-to; q=dns; s=sweb; b=GPse0r6nO7Z9eT8b2SI1OqTAWu4ZOzIxG ZQeKp7xTY0TPFEMe1lgMAYOUtPRZgQJs2GxwAOEy8V/c+vmeWv1dfmL5O+6nddnS uhsQAZudndoGxZ9X5w8IHPCxEllkzfylXWNCj263CkxCaINeWVJdBVSfClkS+HpX svkPdFZc34= DKIM-Signature: v=1; a=rsa-sha256; c=simple; d=shatow.net; h=date:from :to:cc:subject:message-id:references:mime-version:content-type :in-reply-to; s=sweb; bh=FopGSdci2BMI2P9eAJ7HEnPzWq1g8x+UBr/Vu2P hzMA=; b=nIYn5/XoHa4wbxyWa+WC+xGDyPXcWQepnq7SfCX2D5RUIl1wKgRlUDC v10DP3kn2EkrLFPewGmMeQFAZi9UYWojobyJjPWa6FCbObGrGS2Gs2EnV4hCM+PN Jd9iW0bmVJ1Z8RG6tVBhQsdy1PBQ4dlldJQU0azpcHrwVIgnldtE= Received: (qmail 16636 invoked from network); 15 Oct 2013 09:50:34 -0500 Received: from unknown (HELO admin.xzibition.com) (bryan@shatow.net@173.160.118.90) by sweb.xzibition.com with ESMTPA; 15 Oct 2013 09:50:34 -0500 Date: Tue, 15 Oct 2013 09:50:32 -0500 From: Bryan Drewery To: Devin Teske Subject: Re: svn commit: r256343 - in head/usr.sbin/bsdinstall: . scripts Message-ID: <20131015145032.GD98118@admin.xzibition.com> References: <201310112041.r9BKfZeT002056@svn.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="mJm6k4Vb/yFcL9ZU" Content-Disposition: inline In-Reply-To: <201310112041.r9BKfZeT002056@svn.freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 14:57:18 -0000 --mJm6k4Vb/yFcL9ZU Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Oct 11, 2013 at 08:41:35PM +0000, Devin Teske wrote: > Author: dteske > Date: Fri Oct 11 20:41:35 2013 > New Revision: 256343 > URL: http://svnweb.freebsd.org/changeset/base/256343 >=20 > Log: > Add zfsboot module as an option for automatic configuration. Default is > to run interactively but it can be scripted too (optinally completely > non-interactive). Currently supports GELI and all ZFS vdev types. Also > performs validation on selections/settings providing error messages if > necessary, explaining (in plain language) what the issue is. Currently > the auto partitioning of naked disks only supports GPT and MBR (VTOC8 > pending for sparc64), so is only available for i386/amd64 install. > =20 > Submitted by: Allan Jude , myself > Reviewed by: Allan Jude > Approved by: re (glebius) >=20 > Added: > head/usr.sbin/bsdinstall/scripts/zfsboot (contents, props changed) > Modified: > head/usr.sbin/bsdinstall/bsdinstall > head/usr.sbin/bsdinstall/scripts/Makefile > head/usr.sbin/bsdinstall/scripts/auto > head/usr.sbin/bsdinstall/scripts/config >=20 > +# Should we use gnop(8) to configure a transparent mapping to 4K sectors? > +# > +: ${ZFSBOOT_GNOP_4K_FORCE_ALIGN:=3D1} I believe this trick is no longer needed after r254591. > *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** =2E.. > +# Default name for the boot environment parent dataset > +# > +: ${ZFSBOOT_BEROOT_NAME:=3Dbootenv} =2E.. > + # Set bootfs property > + zpool set bootfs=3D"$poolname/$ZFSBOOT_BEROOT_NAME/$ZFSBOOT_BOOTF= S_NAME" \ > + "$poolname" || return $FAILURE Can you please make ZFSBOOT_BEROOT_NAME be ROOT by default? This is what sysutils/beadm, OpenSolaris/Illumos beadm, and I believe PC-BSD all expect and use as well. --mJm6k4Vb/yFcL9ZU Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.21 (FreeBSD) iQJ8BAEBCgBmBQJSXVY2XxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQzNkZFQkU5OTJGNTI4MERGNDgxMTM2MkE2 RTc4MkFDMDNDOUIwQ0Y5AAoJEG54KsA8mwz5WWEP/jO3OgFLdBCc7L/nnNSVMbOr iJF0lZwAdHXDFSF9IPwxkF+WdNPycVUzV0MDv/YIREwGy2wdH/VJQZt8JX11Gc+x TtWPDtHsD6jVAOErUwD34vK/V9mPktLDrW9u4hhdNqQkf8S8fgHQcx3BP6OBagRc 3onpSehU3n9nbEGIch/inQv7S9QjR9yt1NB/GDvOFc6AqsdawyxMLS8mZvyUIaRe S5INpMwMGeLLSTr+h6GmtjqeQ7Z7yGXcQc+e932TkA1nf0n4Eh4lzrvpZpYNSn0i G+69A3Hs2KpPWCMj5HJPMG7rzBH/wKCrE3jCWf5V3L5nTEhhy3yYBcjkhnWJxcx4 Z185juqLUagF45vEARXOVveMz+/YLBrbS6RisV1rp2DooiKVQ38dryTCQ4HUknLp fQpB2wZxV6arGREy6cts9fte0L3L9l07NzXfp+2Jo92We+59mq2kjfn1RcdBJolD 82iR20pjRaBgpwlFSg1VDGXrOFLeOfT/le3uEcSlim9P4DUguJ+xx9XMAFVLk0Fz BTKQ2q8SaCrS5WNa1vbuFftRzkJVnzGQ8Sc51rNHRVL1NroTlXuLDcikTvSgR+Ck tCEczBITHsT+i1EXn79o1INsOkKRuQ6YiC3Wp0plMkgKYCz1CyhlaQFvU1gmnhDo +Chf0CTj/O6s23rdMLFS =t/mk -----END PGP SIGNATURE----- --mJm6k4Vb/yFcL9ZU-- From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 15:00:24 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id DCC1F47D; Tue, 15 Oct 2013 15:00:23 +0000 (UTC) (envelope-from Devin.Teske@fisglobal.com) Received: from mx1.fisglobal.com (mx1.fisglobal.com [199.200.24.190]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A403E2BC2; Tue, 15 Oct 2013 15:00:23 +0000 (UTC) Received: from smtp.fisglobal.com ([10.132.206.16]) by ltcfislmsgpa02.fnfis.com (8.14.5/8.14.5) with ESMTP id r9FF0HqH025686 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Tue, 15 Oct 2013 10:00:18 -0500 Received: from LTCFISWMSGMB21.FNFIS.com ([169.254.1.103]) by LTCFISWMSGHT05.FNFIS.com ([10.132.206.16]) with mapi id 14.02.0309.002; Tue, 15 Oct 2013 10:00:15 -0500 From: "Teske, Devin" To: Bryan Drewery Subject: Re: svn commit: r256343 - in head/usr.sbin/bsdinstall: . scripts Thread-Topic: svn commit: r256343 - in head/usr.sbin/bsdinstall: . scripts Thread-Index: AQHOybdAW1uGCLtcyE2zUcTOTrV8Ig== Date: Tue, 15 Oct 2013 15:00:14 +0000 Message-ID: <13CA24D6AB415D428143D44749F57D720FC6A04C@LTCFISWMSGMB21.FNFIS.com> References: <201310112041.r9BKfZeT002056@svn.freebsd.org> <20131015145032.GD98118@admin.xzibition.com> In-Reply-To: <20131015145032.GD98118@admin.xzibition.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.132.253.121] Content-Type: text/plain; charset="us-ascii" Content-ID: <56640DC77A0609499DA7FBB4253F8177@fisglobal.com> Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.10.8794, 1.0.431, 0.0.0000 definitions=2013-10-15_05:2013-10-15,2013-10-15,1970-01-01 signatures=0 Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "Teske, Devin" , Allan Jude , "svn-src-head@freebsd.org" , Devin Teske X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: Devin Teske List-Id: "SVN commit messages 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, 15 Oct 2013 15:00:24 -0000 CC'ing Allan Jude for feedback (I didn't have a hand in the selection of those values) --=20 Devin On Oct 15, 2013, at 7:50 AM, Bryan Drewery wrote: > On Fri, Oct 11, 2013 at 08:41:35PM +0000, Devin Teske wrote: >> Author: dteske >> Date: Fri Oct 11 20:41:35 2013 >> New Revision: 256343 >> URL: http://svnweb.freebsd.org/changeset/base/256343 >>=20 >> Log: >> Add zfsboot module as an option for automatic configuration. Default is >> to run interactively but it can be scripted too (optinally completely >> non-interactive). Currently supports GELI and all ZFS vdev types. Also >> performs validation on selections/settings providing error messages if >> necessary, explaining (in plain language) what the issue is. Currently >> the auto partitioning of naked disks only supports GPT and MBR (VTOC8 >> pending for sparc64), so is only available for i386/amd64 install. >>=20 >> Submitted by: Allan Jude , myself >> Reviewed by: Allan Jude >> Approved by: re (glebius) >>=20 >> Added: >> head/usr.sbin/bsdinstall/scripts/zfsboot (contents, props changed) >> Modified: >> head/usr.sbin/bsdinstall/bsdinstall >> head/usr.sbin/bsdinstall/scripts/Makefile >> head/usr.sbin/bsdinstall/scripts/auto >> head/usr.sbin/bsdinstall/scripts/config >>=20 >> +# Should we use gnop(8) to configure a transparent mapping to 4K sector= s? >> +# >> +: ${ZFSBOOT_GNOP_4K_FORCE_ALIGN:=3D1} >=20 > I believe this trick is no longer needed after r254591. >=20 >> *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** > ... >> +# Default name for the boot environment parent dataset >> +# >> +: ${ZFSBOOT_BEROOT_NAME:=3Dbootenv} > ... >> + # Set bootfs property >> + zpool set bootfs=3D"$poolname/$ZFSBOOT_BEROOT_NAME/$ZFSBOOT_BOOT= FS_NAME" \ >> + "$poolname" || return $FAILURE >=20 > Can you please make ZFSBOOT_BEROOT_NAME be ROOT by default? This is what > sysutils/beadm, OpenSolaris/Illumos beadm, and I believe PC-BSD all expect > and use as well. _____________ The information contained in this message is proprietary and/or confidentia= l. If you are not the intended recipient, please: (i) delete the message an= d all copies; (ii) do not disclose, distribute or use the message in any ma= nner; and (iii) notify the sender immediately. In addition, please be aware= that any message addressed to our domain is subject to archiving and revie= w by persons other than the intended recipient. Thank you. From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 15:00:31 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id A6B2F598; Tue, 15 Oct 2013 15:00:31 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 879412BC6; Tue, 15 Oct 2013 15:00:31 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FF0VqC081433; Tue, 15 Oct 2013 15:00:31 GMT (envelope-from jhibbits@svn.freebsd.org) Received: (from jhibbits@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FF0UhN081419; Tue, 15 Oct 2013 15:00:30 GMT (envelope-from jhibbits@svn.freebsd.org) Message-Id: <201310151500.r9FF0UhN081419@svn.freebsd.org> From: Justin Hibbits Date: Tue, 15 Oct 2013 15:00:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256543 - in head: cddl/contrib/opensolaris/lib/libdtrace/common cddl/contrib/opensolaris/lib/libdtrace/powerpc sys/cddl/contrib/opensolaris/uts/powerpc/dtrace sys/cddl/contrib/opensola... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 15:00:31 -0000 Author: jhibbits Date: Tue Oct 15 15:00:29 2013 New Revision: 256543 URL: http://svnweb.freebsd.org/changeset/base/256543 Log: Add fasttrap for PowerPC. This is the last piece of the dtrace/ppc puzzle. It's incomplete, it doesn't contain full instruction emulation, but it should be sufficient for most cases. MFC after: 1 month Modified: head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c head/cddl/contrib/opensolaris/lib/libdtrace/powerpc/dt_isadep.c head/sys/cddl/contrib/opensolaris/uts/powerpc/dtrace/fasttrap_isa.c head/sys/cddl/contrib/opensolaris/uts/powerpc/sys/fasttrap_isa.h head/sys/modules/dtrace/Makefile head/sys/modules/dtrace/fasttrap/Makefile head/sys/powerpc/aim/trap.c Modified: head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c ============================================================================== --- head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c Tue Oct 15 14:52:44 2013 (r256542) +++ head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_link.c Tue Oct 15 15:00:29 2013 (r256543) @@ -242,8 +242,14 @@ printf("%s:%s(%d): DOODAD\n",__FUNCTION_ /* XXX */ printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__); #elif defined(__powerpc__) -/* XXX */ -printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__); + /* + * Add 4 bytes to hit the low half of this 64-bit + * big-endian address. + */ + rel->r_offset = s->dofs_offset + + dofr[j].dofr_offset + 4; + rel->r_info = ELF32_R_INFO(count + dep->de_global, + R_PPC_REL32); #elif defined(__sparc) /* * Add 4 bytes to hit the low half of this 64-bit @@ -423,7 +429,10 @@ prepare_elf64(dtrace_hdl_t *dtp, const d #elif defined(__mips__) /* XXX */ #elif defined(__powerpc__) -/* XXX */ + rel->r_offset = s->dofs_offset + + dofr[j].dofr_offset; + rel->r_info = ELF64_R_INFO(count + dep->de_global, + R_PPC64_REL64); #elif defined(__i386) || defined(__amd64) rel->r_offset = s->dofs_offset + dofr[j].dofr_offset; @@ -824,12 +833,84 @@ printf("%s:%s(%d): DOODAD\n",__FUNCTION_ return (0); } #elif defined(__powerpc__) +/* The sentinel is 'xor r3,r3,r3'. */ +#define DT_OP_XOR_R3 0x7c631a78 + +#define DT_OP_NOP 0x60000000 +#define DT_OP_BLR 0x4e800020 + +/* This captures all forms of branching to address. */ +#define DT_IS_BRANCH(inst) ((inst & 0xfc000000) == 0x48000000) +#define DT_IS_BL(inst) (DT_IS_BRANCH(inst) && (inst & 0x01)) + /* XXX */ static int dt_modtext(dtrace_hdl_t *dtp, char *p, int isenabled, GElf_Rela *rela, uint32_t *off) { -printf("%s:%s(%d): DOODAD\n",__FUNCTION__,__FILE__,__LINE__); + uint32_t *ip; + + if ((rela->r_offset & (sizeof (uint32_t) - 1)) != 0) + return (-1); + + /*LINTED*/ + ip = (uint32_t *)(p + rela->r_offset); + + /* + * We only know about some specific relocation types. + */ + if (GELF_R_TYPE(rela->r_info) != R_PPC_REL24 && + GELF_R_TYPE(rela->r_info) != R_PPC_PLTREL24) + return (-1); + + /* + * We may have already processed this object file in an earlier linker + * invocation. Check to see if the present instruction sequence matches + * the one we would install below. + */ + if (isenabled) { + if (ip[0] == DT_OP_XOR_R3) { + (*off) += sizeof (ip[0]); + return (0); + } + } else { + if (ip[0] == DT_OP_NOP) { + (*off) += sizeof (ip[0]); + return (0); + } + } + + /* + * We only expect branch to address instructions. + */ + if (!DT_IS_BRANCH(ip[0])) { + dt_dprintf("found %x instead of a branch instruction at %llx\n", + ip[0], (u_longlong_t)rela->r_offset); + return (-1); + } + + if (isenabled) { + /* + * It would necessarily indicate incorrect usage if an is- + * enabled probe were tail-called so flag that as an error. + * It's also potentially (very) tricky to handle gracefully, + * but could be done if this were a desired use scenario. + */ + if (!DT_IS_BL(ip[0])) { + dt_dprintf("tail call to is-enabled probe at %llx\n", + (u_longlong_t)rela->r_offset); + return (-1); + } + + ip[0] = DT_OP_XOR_R3; + (*off) += sizeof (ip[0]); + } else { + if (DT_IS_BL(ip[0])) + ip[0] = DT_OP_NOP; + else + ip[0] = DT_OP_BLR; + } + return (0); } Modified: head/cddl/contrib/opensolaris/lib/libdtrace/powerpc/dt_isadep.c ============================================================================== --- head/cddl/contrib/opensolaris/lib/libdtrace/powerpc/dt_isadep.c Tue Oct 15 14:52:44 2013 (r256542) +++ head/cddl/contrib/opensolaris/lib/libdtrace/powerpc/dt_isadep.c Tue Oct 15 15:00:29 2013 (r256543) @@ -35,14 +35,26 @@ #include #include +#include + /*ARGSUSED*/ int dt_pid_create_entry_probe(struct ps_prochandle *P, dtrace_hdl_t *dtp, fasttrap_probe_spec_t *ftp, const GElf_Sym *symp) { + ftp->ftps_type = DTFTP_ENTRY; + ftp->ftps_pc = (uintptr_t)symp->st_value; + ftp->ftps_size = (size_t)symp->st_size; + ftp->ftps_noffs = 1; + ftp->ftps_offs[0] = 0; + + if (ioctl(dtp->dt_ftfd, FASTTRAPIOC_MAKEPROBE, ftp) != 0) { + dt_dprintf("fasttrap probe creation ioctl failed: %s\n", + strerror(errno)); + return (dt_set_errno(dtp, errno)); + } - dt_dprintf("%s: unimplemented\n", __func__); - return (DT_PROC_ERR); + return (1); } int @@ -50,8 +62,74 @@ dt_pid_create_return_probe(struct ps_pro fasttrap_probe_spec_t *ftp, const GElf_Sym *symp, uint64_t *stret) { - dt_dprintf("%s: unimplemented\n", __func__); - return (DT_PROC_ERR); + uintptr_t temp; + uint32_t *text; + int i; + int srdepth = 0; + + if ((text = malloc(symp->st_size + 4)) == NULL) { + dt_dprintf("mr sparkle: malloc() failed\n"); + return (DT_PROC_ERR); + } + + if (Pread(P, text, symp->st_size, symp->st_value) != symp->st_size) { + dt_dprintf("mr sparkle: Pread() failed\n"); + free(text); + return (DT_PROC_ERR); + } + + /* + * Leave a dummy instruction in the last slot to simplify edge + * conditions. + */ + text[symp->st_size / 4] = 0; + + ftp->ftps_type = DTFTP_RETURN; + ftp->ftps_pc = symp->st_value; + ftp->ftps_size = symp->st_size; + ftp->ftps_noffs = 0; + + for (i = 0; i < symp->st_size / 4; i++) { + + if ((text[i] & 0xfc000001) != 0x48000000 && + text[i] != 0x4e800020) + continue; + + /* + * Check for a jump within this function. If it's outside this + * function then it's a tail-call, so a return point. + */ + if ((text[i] & 0xfc000000) == 0x48000000) { + temp = (text[i] & 0x03fffffc); + /* Bit 30 denotes an absolute address. */ + if (!(text[i] & 0x02)) { + temp += symp->st_value + i * 4; + } + else { + /* Sign extend the absolute address. */ + if (temp & 0x02000000) { + temp |= (UINTPTR_MAX - 0x03ffffff); + } + } + if (temp >= symp->st_value && + temp <= (symp->st_value + symp->st_size)) + continue; + } + dt_dprintf("return at offset %x\n", i * 4); + ftp->ftps_offs[ftp->ftps_noffs++] = i * 4; + } + + free(text); + if (ftp->ftps_noffs > 0) { + if (ioctl(dtp->dt_ftfd, FASTTRAPIOC_MAKEPROBE, ftp) != 0) { + dt_dprintf("fasttrap probe creation ioctl failed: %s\n", + strerror(errno)); + return (dt_set_errno(dtp, errno)); + } + } + + + return (ftp->ftps_noffs); } /*ARGSUSED*/ @@ -59,9 +137,22 @@ int dt_pid_create_offset_probe(struct ps_prochandle *P, dtrace_hdl_t *dtp, fasttrap_probe_spec_t *ftp, const GElf_Sym *symp, ulong_t off) { + if (off & 0x3) + return (DT_PROC_ALIGN); - dt_dprintf("%s: unimplemented\n", __func__); - return (DT_PROC_ERR); + ftp->ftps_type = DTFTP_OFFSETS; + ftp->ftps_pc = (uintptr_t)symp->st_value; + ftp->ftps_size = (size_t)symp->st_size; + ftp->ftps_noffs = 1; + ftp->ftps_offs[0] = off; + + if (ioctl(dtp->dt_ftfd, FASTTRAPIOC_MAKEPROBE, ftp) != 0) { + dt_dprintf("fasttrap probe creation ioctl failed: %s\n", + strerror(errno)); + return (dt_set_errno(dtp, errno)); + } + + return (1); } /*ARGSUSED*/ @@ -69,7 +160,38 @@ int dt_pid_create_glob_offset_probes(struct ps_prochandle *P, dtrace_hdl_t *dtp, fasttrap_probe_spec_t *ftp, const GElf_Sym *symp, const char *pattern) { + ulong_t i; + + ftp->ftps_type = DTFTP_OFFSETS; + ftp->ftps_pc = (uintptr_t)symp->st_value; + ftp->ftps_size = (size_t)symp->st_size; + ftp->ftps_noffs = 0; + + /* + * If we're matching against everything, just iterate through each + * instruction in the function, otherwise look for matching offset + * names by constructing the string and comparing it against the + * pattern. + */ + if (strcmp("*", pattern) == 0) { + for (i = 0; i < symp->st_size; i += 4) { + ftp->ftps_offs[ftp->ftps_noffs++] = i; + } + } else { + char name[sizeof (i) * 2 + 1]; + + for (i = 0; i < symp->st_size; i += 4) { + (void) sprintf(name, "%lx", i); + if (gmatch(name, pattern)) + ftp->ftps_offs[ftp->ftps_noffs++] = i; + } + } + + if (ioctl(dtp->dt_ftfd, FASTTRAPIOC_MAKEPROBE, ftp) != 0) { + dt_dprintf("fasttrap probe creation ioctl failed: %s\n", + strerror(errno)); + return (dt_set_errno(dtp, errno)); + } - dt_dprintf("%s: unimplemented\n", __func__); - return (DT_PROC_ERR); + return (ftp->ftps_noffs); } Modified: head/sys/cddl/contrib/opensolaris/uts/powerpc/dtrace/fasttrap_isa.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/powerpc/dtrace/fasttrap_isa.c Tue Oct 15 14:52:44 2013 (r256542) +++ head/sys/cddl/contrib/opensolaris/uts/powerpc/dtrace/fasttrap_isa.c Tue Oct 15 15:00:29 2013 (r256543) @@ -18,13 +18,560 @@ * * CDDL HEADER END */ - +/* Portions Copyright 2013 Justin Hibbits */ /* * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define OP(x) ((x) >> 26) +#define OPX(x) (((x) >> 2) & 0x3FF) +#define OP_BO(x) (((x) & 0x03E00000) >> 21) +#define OP_BI(x) (((x) & 0x001F0000) >> 16) +#define OP_RS(x) (((x) & 0x03E00000) >> 21) +#define OP_RA(x) (((x) & 0x001F0000) >> 16) +#define OP_RB(x) (((x) & 0x0000F100) >> 11) + + +static int +proc_ops(int op, proc_t *p, void *kaddr, off_t uaddr, size_t len) +{ + struct iovec iov; + struct uio uio; + + iov.iov_base = kaddr; + iov.iov_len = len; + uio.uio_offset = uaddr; + uio.uio_iov = &iov; + uio.uio_resid = len; + uio.uio_iovcnt = 1; + uio.uio_segflg = UIO_SYSSPACE; + uio.uio_td = curthread; + uio.uio_rw = op; + PHOLD(p); + if (proc_rwmem(p, &uio) < 0) { + PRELE(p); + return (-1); + } + PRELE(p); + + return (0); +} + +static int +uread(proc_t *p, void *kaddr, size_t len, uintptr_t uaddr) +{ + + return (proc_ops(UIO_READ, p, kaddr, uaddr, len)); +} + +static int +uwrite(proc_t *p, void *kaddr, size_t len, uintptr_t uaddr) +{ + + return (proc_ops(UIO_WRITE, p, kaddr, uaddr, len)); +} + +int +fasttrap_tracepoint_install(proc_t *p, fasttrap_tracepoint_t *tp) +{ + fasttrap_instr_t instr = FASTTRAP_INSTR; + + if (uwrite(p, &instr, 4, tp->ftt_pc) != 0) + return (-1); + + return (0); +} + +int +fasttrap_tracepoint_remove(proc_t *p, fasttrap_tracepoint_t *tp) +{ + uint32_t instr; + + /* + * Distinguish between read or write failures and a changed + * instruction. + */ + if (uread(p, &instr, 4, tp->ftt_pc) != 0) + return (0); + if (instr != FASTTRAP_INSTR) + return (0); + if (uwrite(p, &tp->ftt_instr, 4, tp->ftt_pc) != 0) + return (-1); + + return (0); +} + +int +fasttrap_tracepoint_init(proc_t *p, fasttrap_tracepoint_t *tp, uintptr_t pc, + fasttrap_probe_type_t type) +{ + uint32_t instr; + //int32_t disp; + + /* + * Read the instruction at the given address out of the process's + * address space. We don't have to worry about a debugger + * changing this instruction before we overwrite it with our trap + * instruction since P_PR_LOCK is set. + */ + if (uread(p, &instr, 4, pc) != 0) + return (-1); + + /* + * Decode the instruction to fill in the probe flags. We can have + * the process execute most instructions on its own using a pc/npc + * trick, but pc-relative control transfer present a problem since + * we're relocating the instruction. We emulate these instructions + * in the kernel. We assume a default type and over-write that as + * needed. + * + * pc-relative instructions must be emulated for correctness; + * other instructions (which represent a large set of commonly traced + * instructions) are emulated or otherwise optimized for performance. + */ + tp->ftt_type = FASTTRAP_T_COMMON; + tp->ftt_instr = instr; + + switch (OP(instr)) { + /* The following are invalid for trapping (invalid opcodes, tw/twi). */ + case 0: + case 1: + case 2: + case 4: + case 5: + case 6: + case 30: + case 39: + case 58: + case 62: + case 3: /* twi */ + return (-1); + case 31: /* tw */ + if (OPX(instr) == 4) + return (-1); + else if (OPX(instr) == 444 && OP_RS(instr) == OP_RA(instr) && + OP_RS(instr) == OP_RB(instr)) + tp->ftt_type = FASTTRAP_T_NOP; + break; + case 16: + tp->ftt_type = FASTTRAP_T_BC; + tp->ftt_dest = instr & 0x0000FFFC; /* Extract target address */ + if (instr & 0x00008000) + tp->ftt_dest |= 0xFFFF0000; + /* Use as offset if not absolute address. */ + if (!(instr & 0x02)) + tp->ftt_dest += pc; + tp->ftt_bo = OP_BO(instr); + tp->ftt_bi = OP_BI(instr); + break; + case 18: + tp->ftt_type = FASTTRAP_T_B; + tp->ftt_dest = instr & 0x03FFFFFC; /* Extract target address */ + if (instr & 0x02000000) + tp->ftt_dest |= 0xFC000000; + /* Use as offset if not absolute address. */ + if (!(instr & 0x02)) + tp->ftt_dest += pc; + break; + case 19: + switch (OPX(instr)) { + case 528: /* bcctr */ + tp->ftt_type = FASTTRAP_T_BCTR; + tp->ftt_bo = OP_BO(instr); + tp->ftt_bi = OP_BI(instr); + break; + case 16: /* bclr */ + tp->ftt_type = FASTTRAP_T_BCTR; + tp->ftt_bo = OP_BO(instr); + tp->ftt_bi = OP_BI(instr); + break; + }; + break; + case 24: + if (OP_RS(instr) == OP_RA(instr) && + (instr & 0x0000FFFF) == 0) + tp->ftt_type = FASTTRAP_T_NOP; + break; + }; + + /* + * We don't know how this tracepoint is going to be used, but in case + * it's used as part of a function return probe, we need to indicate + * whether it's always a return site or only potentially a return + * site. If it's part of a return probe, it's always going to be a + * return from that function if it's a restore instruction or if + * the previous instruction was a return. If we could reliably + * distinguish jump tables from return sites, this wouldn't be + * necessary. + */ +#if 0 + if (tp->ftt_type != FASTTRAP_T_RESTORE && + (uread(p, &instr, 4, pc - sizeof (instr)) != 0 || + !(OP(instr) == 2 && OP3(instr) == OP3_RETURN))) + tp->ftt_flags |= FASTTRAP_F_RETMAYBE; +#endif + + return (0); +} + +static uint64_t +fasttrap_anarg(struct reg *rp, int argno) +{ + uint64_t value; + proc_t *p = curproc; + + /* The first 8 arguments are in registers. */ + if (argno < 8) + return rp->fixreg[argno + 3]; + + /* Arguments on stack start after SP+LR (2 register slots). */ + if (SV_PROC_FLAG(p, SV_ILP32)) { + DTRACE_CPUFLAG_SET(CPU_DTRACE_NOFAULT); + value = dtrace_fuword32((void *)(rp->fixreg[1] + 8 + + ((argno - 8) * sizeof(uint32_t)))); + DTRACE_CPUFLAG_CLEAR(CPU_DTRACE_NOFAULT | CPU_DTRACE_BADADDR); + } else { + DTRACE_CPUFLAG_SET(CPU_DTRACE_NOFAULT); + value = dtrace_fuword64((void *)(rp->fixreg[1] + 16 + + ((argno - 8) * sizeof(uint32_t)))); + DTRACE_CPUFLAG_CLEAR(CPU_DTRACE_NOFAULT | CPU_DTRACE_BADADDR); + } + return value; +} + +uint64_t +fasttrap_pid_getarg(void *arg, dtrace_id_t id, void *parg, int argno, + int aframes) +{ + struct reg r; + + fill_regs(curthread, &r); + + return (fasttrap_anarg(&r, argno)); +} + +uint64_t +fasttrap_usdt_getarg(void *arg, dtrace_id_t id, void *parg, int argno, + int aframes) +{ + struct reg r; + + fill_regs(curthread, &r); + + return (fasttrap_anarg(&r, argno)); +} + +static void +fasttrap_usdt_args(fasttrap_probe_t *probe, struct reg *rp, int argc, + uintptr_t *argv) +{ + int i, x, cap = MIN(argc, probe->ftp_nargs); + + for (i = 0; i < cap; i++) { + x = probe->ftp_argmap[i]; + + if (x < 8) + argv[i] = rp->fixreg[x]; + else + if (SV_PROC_FLAG(curproc, SV_ILP32)) + argv[i] = fuword32((void *)(rp->fixreg[1] + 8 + + (x * sizeof(uint32_t)))); + else + argv[i] = fuword32((void *)(rp->fixreg[1] + 16 + + (x * sizeof(uint64_t)))); + } + + for (; i < argc; i++) { + argv[i] = 0; + } +} + +static void +fasttrap_return_common(struct reg *rp, uintptr_t pc, pid_t pid, + uintptr_t new_pc) +{ + fasttrap_tracepoint_t *tp; + fasttrap_bucket_t *bucket; + fasttrap_id_t *id; + + bucket = &fasttrap_tpoints.fth_table[FASTTRAP_TPOINTS_INDEX(pid, pc)]; + + for (tp = bucket->ftb_data; tp != NULL; tp = tp->ftt_next) { + if (pid == tp->ftt_pid && pc == tp->ftt_pc && + tp->ftt_proc->ftpc_acount != 0) + break; + } + + /* + * Don't sweat it if we can't find the tracepoint again; unlike + * when we're in fasttrap_pid_probe(), finding the tracepoint here + * is not essential to the correct execution of the process. + */ + if (tp == NULL) { + return; + } + + for (id = tp->ftt_retids; id != NULL; id = id->fti_next) { + /* + * If there's a branch that could act as a return site, we + * need to trace it, and check here if the program counter is + * external to the function. + */ + /* Skip function-local branches. */ + if ((new_pc - id->fti_probe->ftp_faddr) < id->fti_probe->ftp_fsize) + continue; + + dtrace_probe(id->fti_probe->ftp_id, + pc - id->fti_probe->ftp_faddr, + rp->fixreg[3], rp->fixreg[4], 0, 0); + } +} + + +static int +fasttrap_branch_taken(int bo, int bi, struct reg *regs) +{ + int crzero = 0; + + /* Branch always? */ + if ((bo & 0x14) == 0x14) + return 1; + + /* Handle decrementing ctr */ + if (!(bo & 0x04)) { + --regs->ctr; + crzero = (regs->ctr == 0); + if (bo & 0x10) { + return (!(crzero ^ (bo >> 1))); + } + } + + return (crzero | (((regs->cr >> (31 - bi)) ^ (bo >> 3)) ^ 1)); +} + + +int +fasttrap_pid_probe(struct reg *rp) +{ + proc_t *p = curproc; + uintptr_t pc = rp->pc; + uintptr_t new_pc = 0; + fasttrap_bucket_t *bucket; + fasttrap_tracepoint_t *tp, tp_local; + pid_t pid; + dtrace_icookie_t cookie; + uint_t is_enabled = 0; + + /* + * It's possible that a user (in a veritable orgy of bad planning) + * could redirect this thread's flow of control before it reached the + * return probe fasttrap. In this case we need to kill the process + * since it's in a unrecoverable state. + */ + if (curthread->t_dtrace_step) { + ASSERT(curthread->t_dtrace_on); + fasttrap_sigtrap(p, curthread, pc); + return (0); + } + + /* + * Clear all user tracing flags. + */ + curthread->t_dtrace_ft = 0; + curthread->t_dtrace_pc = 0; + curthread->t_dtrace_npc = 0; + curthread->t_dtrace_scrpc = 0; + curthread->t_dtrace_astpc = 0; + + + PROC_LOCK(p); + pid = p->p_pid; + bucket = &fasttrap_tpoints.fth_table[FASTTRAP_TPOINTS_INDEX(pid, pc)]; + + /* + * Lookup the tracepoint that the process just hit. + */ + for (tp = bucket->ftb_data; tp != NULL; tp = tp->ftt_next) { + if (pid == tp->ftt_pid && pc == tp->ftt_pc && + tp->ftt_proc->ftpc_acount != 0) + break; + } + + /* + * If we couldn't find a matching tracepoint, either a tracepoint has + * been inserted without using the pid ioctl interface (see + * fasttrap_ioctl), or somehow we have mislaid this tracepoint. + */ + if (tp == NULL) { + PROC_UNLOCK(p); + return (-1); + } + + if (tp->ftt_ids != NULL) { + fasttrap_id_t *id; + + for (id = tp->ftt_ids; id != NULL; id = id->fti_next) { + fasttrap_probe_t *probe = id->fti_probe; + + if (id->fti_ptype == DTFTP_ENTRY) { + /* + * We note that this was an entry + * probe to help ustack() find the + * first caller. + */ + cookie = dtrace_interrupt_disable(); + DTRACE_CPUFLAG_SET(CPU_DTRACE_ENTRY); + dtrace_probe(probe->ftp_id, rp->fixreg[3], + rp->fixreg[4], rp->fixreg[5], rp->fixreg[6], + rp->fixreg[7]); + DTRACE_CPUFLAG_CLEAR(CPU_DTRACE_ENTRY); + dtrace_interrupt_enable(cookie); + } else if (id->fti_ptype == DTFTP_IS_ENABLED) { + /* + * Note that in this case, we don't + * call dtrace_probe() since it's only + * an artificial probe meant to change + * the flow of control so that it + * encounters the true probe. + */ + is_enabled = 1; + } else if (probe->ftp_argmap == NULL) { + dtrace_probe(probe->ftp_id, rp->fixreg[3], + rp->fixreg[4], rp->fixreg[5], rp->fixreg[6], + rp->fixreg[7]); + } else { + uintptr_t t[5]; + + fasttrap_usdt_args(probe, rp, + sizeof (t) / sizeof (t[0]), t); + + dtrace_probe(probe->ftp_id, t[0], t[1], + t[2], t[3], t[4]); + } + } + } + + /* + * We're about to do a bunch of work so we cache a local copy of + * the tracepoint to emulate the instruction, and then find the + * tracepoint again later if we need to light up any return probes. + */ + tp_local = *tp; + PROC_UNLOCK(p); + tp = &tp_local; + + /* + * If there's an is-enabled probe connected to this tracepoint it + * means that there was a 'xor r3, r3, r3' + * instruction that was placed there by DTrace when the binary was + * linked. As this probe is, in fact, enabled, we need to stuff 1 + * into R3. Accordingly, we can bypass all the instruction + * emulation logic since we know the inevitable result. It's possible + * that a user could construct a scenario where the 'is-enabled' + * probe was on some other instruction, but that would be a rather + * exotic way to shoot oneself in the foot. + */ + if (is_enabled) { + rp->fixreg[3] = 1; + new_pc = rp->pc + 4; + goto done; + } + + + switch (tp->ftt_type) { + case FASTTRAP_T_NOP: + new_pc = rp->pc + 4; + break; + case FASTTRAP_T_BC: + if (!fasttrap_branch_taken(tp->ftt_bo, tp->ftt_bi, rp)) + break; + /* FALLTHROUGH */ + case FASTTRAP_T_B: + if (tp->ftt_instr & 0x01) + rp->lr = rp->pc + 4; + new_pc = tp->ftt_dest; + break; + case FASTTRAP_T_BLR: + case FASTTRAP_T_BCTR: + if (!fasttrap_branch_taken(tp->ftt_bo, tp->ftt_bi, rp)) + break; + /* FALLTHROUGH */ + if (tp->ftt_type == FASTTRAP_T_BCTR) + new_pc = rp->ctr; + else + new_pc = rp->lr; + if (tp->ftt_instr & 0x01) + rp->lr = rp->pc + 4; + break; + case FASTTRAP_T_COMMON: + break; + }; +done: + /* + * If there were no return probes when we first found the tracepoint, + * we should feel no obligation to honor any return probes that were + * subsequently enabled -- they'll just have to wait until the next + * time around. + */ + if (tp->ftt_retids != NULL) { + /* + * We need to wait until the results of the instruction are + * apparent before invoking any return probes. If this + * instruction was emulated we can just call + * fasttrap_return_common(); if it needs to be executed, we + * need to wait until the user thread returns to the kernel. + */ + if (tp->ftt_type != FASTTRAP_T_COMMON) { + fasttrap_return_common(rp, pc, pid, new_pc); + } else { + ASSERT(curthread->t_dtrace_ret != 0); + ASSERT(curthread->t_dtrace_pc == pc); + ASSERT(curthread->t_dtrace_scrpc != 0); + ASSERT(new_pc == curthread->t_dtrace_astpc); + } + } + + rp->pc = new_pc; + set_regs(curthread, rp); + + return (0); +} + +int +fasttrap_return_probe(struct reg *rp) +{ + proc_t *p = curproc; + uintptr_t pc = curthread->t_dtrace_pc; + uintptr_t npc = curthread->t_dtrace_npc; + + curthread->t_dtrace_pc = 0; + curthread->t_dtrace_npc = 0; + curthread->t_dtrace_scrpc = 0; + curthread->t_dtrace_astpc = 0; + + /* + * We set rp->pc to the address of the traced instruction so + * that it appears to dtrace_probe() that we're on the original + * instruction, and so that the user can't easily detect our + * complex web of lies. dtrace_return_probe() (our caller) + * will correctly set %pc after we return. + */ + rp->pc = pc; + + fasttrap_return_common(rp, pc, p->p_pid, npc); + + return (0); +} -/* - * XXX: Placeholder for PowerPC fasttrap code - */ Modified: head/sys/cddl/contrib/opensolaris/uts/powerpc/sys/fasttrap_isa.h ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/powerpc/sys/fasttrap_isa.h Tue Oct 15 14:52:44 2013 (r256542) +++ head/sys/cddl/contrib/opensolaris/uts/powerpc/sys/fasttrap_isa.h Tue Oct 15 15:00:29 2013 (r256543) @@ -19,6 +19,7 @@ * * CDDL HEADER END */ +/* Portions Copyright 2013 Justin Hibbits */ /* * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. @@ -34,13 +35,39 @@ #ifdef __cplusplus extern "C" { #endif -/* - * XXXDTRACE: placehodler for PowerPC fasttrap stuff - */ -typedef uint32_t fasttrap_instr_t; #define FASTTRAP_SUNWDTRACE_SIZE 64 -#define FASTTRAP_INSTR 0x0FFFDDDD +#define FASTTRAP_INSTR 0x0FFFDDDD + +typedef uint32_t fasttrap_instr_t; + +typedef struct fasttrap_machtp_t { + fasttrap_instr_t ftmt_instr; /* original instruction */ + uintptr_t ftmt_dest; /* branch target */ + uint8_t ftmt_type; /* emulation type */ + uint8_t ftmt_flags; /* emulation flags */ + uint8_t ftmt_bo; /* BO field */ + uint8_t ftmt_bi; /* BI field (CR bit) */ +} fasttrap_machtp_t; + +#define ftt_instr ftt_mtp.ftmt_instr +#define ftt_dest ftt_mtp.ftmt_dest +#define ftt_type ftt_mtp.ftmt_type +#define ftt_flags ftt_mtp.ftmt_flags +#define ftt_bo ftt_mtp.ftmt_bo +#define ftt_bi ftt_mtp.ftmt_bi + +#define FASTTRAP_T_COMMON 0x00 +#define FASTTRAP_T_B 0x01 +#define FASTTRAP_T_BC 0x02 +#define FASTTRAP_T_BLR 0x03 +#define FASTTRAP_T_BCTR 0x04 +#define FASTTRAP_T_NOP 0x05 + +#define FASTTRAP_AFRAMES 3 +#define FASTTRAP_RETURN_AFRAMES 4 +#define FASTTRAP_ENTRY_AFRAMES 3 +#define FASTTRAP_OFFSET_AFRAMES 3 #ifdef __cplusplus } Modified: head/sys/modules/dtrace/Makefile ============================================================================== --- head/sys/modules/dtrace/Makefile Tue Oct 15 14:52:44 2013 (r256542) +++ head/sys/modules/dtrace/Makefile Tue Oct 15 15:00:29 2013 (r256543) @@ -20,7 +20,7 @@ SUBDIR= dtmalloc \ SUBDIR+= fasttrap fbt systrace_linux32 .endif .if ${MACHINE_CPUARCH} == "powerpc" -SUBDIR+= fbt +SUBDIR+= fbt fasttrap .endif .if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_ARCH} == "powerpc64" SUBDIR+= systrace_freebsd32 Modified: head/sys/modules/dtrace/fasttrap/Makefile ============================================================================== --- head/sys/modules/dtrace/fasttrap/Makefile Tue Oct 15 14:52:44 2013 (r256542) +++ head/sys/modules/dtrace/fasttrap/Makefile Tue Oct 15 15:00:29 2013 (r256543) @@ -13,6 +13,9 @@ CFLAGS+= -I${.CURDIR}/../../../cddl/comp .if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" CFLAGS+= -I${.CURDIR}/../../../cddl/contrib/opensolaris/uts/intel .PATH: ${.CURDIR}/../../../cddl/contrib/opensolaris/uts/intel/dtrace +.elif ${MACHINE_CPUARCH} == "powerpc" +CFLAGS+= -I${.CURDIR}/../../../cddl/contrib/opensolaris/uts/powerpc +.PATH: ${.CURDIR}/../../../cddl/contrib/opensolaris/uts/powerpc/dtrace .endif CFLAGS+= -DSMP Modified: head/sys/powerpc/aim/trap.c ============================================================================== --- head/sys/powerpc/aim/trap.c Tue Oct 15 14:52:44 2013 (r256542) +++ head/sys/powerpc/aim/trap.c Tue Oct 15 15:00:29 2013 (r256543) @@ -175,6 +175,9 @@ trap(struct trapframe *frame) { struct thread *td; struct proc *p; +#ifdef KDTRACE_HOOKS + uint32_t inst; +#endif int sig, type, user; u_int ucode; ksiginfo_t ksi; @@ -279,9 +282,18 @@ trap(struct trapframe *frame) case EXC_PGM: /* Identify the trap reason */ - if (frame->srr1 & EXC_PGM_TRAP) + if (frame->srr1 & EXC_PGM_TRAP) { +#ifdef KDTRACE_HOOKS + inst = fuword32((const void *)frame->srr0); + if (inst == 0x0FFFDDDD && dtrace_pid_probe_ptr != NULL) { + struct reg regs; + fill_regs(td, ®s); + (*dtrace_pid_probe_ptr)(®s); + break; + } +#endif sig = SIGTRAP; - else if (ppc_instr_emulate(frame) == 0) + } else if (ppc_instr_emulate(frame) == 0) frame->srr0 += 4; else sig = SIGILL; From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 15:00:54 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 1FCB16F7; Tue, 15 Oct 2013 15:00:54 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 0E2042BD1; Tue, 15 Oct 2013 15:00:54 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FF0rpn083503; Tue, 15 Oct 2013 15:00:53 GMT (envelope-from dteske@svn.freebsd.org) Received: (from dteske@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FF0rMn083502; Tue, 15 Oct 2013 15:00:53 GMT (envelope-from dteske@svn.freebsd.org) Message-Id: <201310151500.r9FF0rMn083502@svn.freebsd.org> From: Devin Teske Date: Tue, 15 Oct 2013 15:00:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256544 - head/usr.sbin/bsdinstall/scripts X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 15:00:54 -0000 Author: dteske Date: Tue Oct 15 15:00:53 2013 New Revision: 256544 URL: http://svnweb.freebsd.org/changeset/base/256544 Log: Fix SVN r256540: s/TMPETC/TMPBOOT/ for loader.conf(5) GELI entries. Modified: head/usr.sbin/bsdinstall/scripts/zfsboot Modified: head/usr.sbin/bsdinstall/scripts/zfsboot ============================================================================== --- head/usr.sbin/bsdinstall/scripts/zfsboot Tue Oct 15 15:00:29 2013 (r256543) +++ head/usr.sbin/bsdinstall/scripts/zfsboot Tue Oct 15 15:00:53 2013 (r256544) @@ -814,11 +814,11 @@ zfs_create_boot() # Some additional GELI requirements for loader.conf(5) echo 'zpool_cache_load="YES"' \ - >> $BSDINSTALL_TMPETC/loader.conf.zfs || return $FAILURE + >> $BSDINSTALL_TMPBOOT/loader.conf.zfs || return $FAILURE echo 'zpool_cache_type="/boot/zfs/zpool.cache"' \ - >> $BSDINSTALL_TMPETC/loader.conf.zfs || return $FAILURE + >> $BSDINSTALL_TMPBOOT/loader.conf.zfs || return $FAILURE echo 'zpool_cache_name="/boot/zfs/zpool.cache"' \ - >> $BSDINSTALL_TMPETC/loader.conf.zfs || return $FAILURE + >> $BSDINSTALL_TMPBOOT/loader.conf.zfs || return $FAILURE # # Configure geli(8)-based encryption From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 15:23:24 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 6609D516; Tue, 15 Oct 2013 15:23:24 +0000 (UTC) (envelope-from freebsd@allanjude.com) Received: from mx1.scaleengine.net (beauharnois2.bhs1.scaleengine.net [142.4.218.15]) by mx1.freebsd.org (Postfix) with ESMTP id 3BA102EA7; Tue, 15 Oct 2013 15:23:23 +0000 (UTC) Received: from [10.1.1.1] (S01060001abad1dea.hm.shawcable.net [50.70.108.129]) (Authenticated sender: allan.jude@scaleengine.com) by mx1.scaleengine.net (Postfix) with ESMTPSA id B95983C83F; Tue, 15 Oct 2013 15:23:21 +0000 (UTC) Message-ID: <525D5E07.1070900@allanjude.com> Date: Tue, 15 Oct 2013 11:23:51 -0400 From: Allan Jude User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.0.1 MIME-Version: 1.0 To: Devin Teske , Bryan Drewery Subject: Re: svn commit: r256343 - in head/usr.sbin/bsdinstall: . scripts References: <201310112041.r9BKfZeT002056@svn.freebsd.org> <20131015145032.GD98118@admin.xzibition.com> <13CA24D6AB415D428143D44749F57D720FC6A04C@LTCFISWMSGMB21.FNFIS.com> In-Reply-To: <13CA24D6AB415D428143D44749F57D720FC6A04C@LTCFISWMSGMB21.FNFIS.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" , "Teske, Devin" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 15:23:24 -0000 On 2013-10-15 11:00, Teske, Devin wrote: > CC'ing Allan Jude for feedback (I didn't have a hand in the > selection of those values) > -- Devin On Oct 15, 2013, at 7:50 AM, Bryan Drewery wrote: >> > On Fri, Oct 11, 2013 at 08:41:35PM +0000, Devin Teske wrote: >>> >> Author: dteske >>> >> Date: Fri Oct 11 20:41:35 2013 >>> >> New Revision: 256343 >>> >> URL: http://svnweb.freebsd.org/changeset/base/256343 >>> >> >>> >> Log: >>> >> Add zfsboot module as an option for automatic configuration. Default is >>> >> to run interactively but it can be scripted too (optinally completely >>> >> non-interactive). Currently supports GELI and all ZFS vdev types. Also >>> >> performs validation on selections/settings providing error messages if >>> >> necessary, explaining (in plain language) what the issue is. Currently >>> >> the auto partitioning of naked disks only supports GPT and MBR (VTOC8 >>> >> pending for sparc64), so is only available for i386/amd64 install. >>> >> >>> >> Submitted by: Allan Jude , myself >>> >> Reviewed by: Allan Jude >>> >> Approved by: re (glebius) >>> >> >>> >> Added: >>> >> head/usr.sbin/bsdinstall/scripts/zfsboot (contents, props changed) >>> >> Modified: >>> >> head/usr.sbin/bsdinstall/bsdinstall >>> >> head/usr.sbin/bsdinstall/scripts/Makefile >>> >> head/usr.sbin/bsdinstall/scripts/auto >>> >> head/usr.sbin/bsdinstall/scripts/config >>> >> >>> >> +# Should we use gnop(8) to configure a transparent mapping to 4K sectors? >>> >> +# >>> >> +: ${ZFSBOOT_GNOP_4K_FORCE_ALIGN:=1} >> > >> > I believe this trick is no longer needed after r254591. This may be the case, I am not sure if r254591 'always' fixes the problem, maybe someone else can weight in with a more definite yes/no >> > >>> >> *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** >> > ... >>> >> +# Default name for the boot environment parent dataset >>> >> +# >>> >> +: ${ZFSBOOT_BEROOT_NAME:=bootenv} >> > ... >>> >> + # Set bootfs property >>> >> + zpool set bootfs="$poolname/$ZFSBOOT_BEROOT_NAME/$ZFSBOOT_BOOTFS_NAME" \ >>> >> + "$poolname" || return $FAILURE >> > >> > Can you please make ZFSBOOT_BEROOT_NAME be ROOT by default? This is what >> > sysutils/beadm, OpenSolaris/Illumos beadm, and I believe PC-BSD all expect >> > and use as well. I suppose. I dislike having a dataset in all caps, and with a not exactly descriptive name. beadm-devel (used in PCBSD) supports figuring out where whatever ZFSBOOT_BEROOT_NAME you used, but since sysutils/beadm does not, POLA suggests we change the value back to ROOT > _____________ > The information contained in this message is proprietary and/or confidential. If you are not the intended recipient, please: (i) delete the message and all copies; (ii) do not disclose, distribute or use the message in any manner; and (iii) notify the sender immediately. In addition, please be aware that any message addressed to our domain is subject to archiving and review by persons other than the intended recipient. Thank you. -- Allan Jude From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 15:50:44 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 401F61AB; Tue, 15 Oct 2013 15:50:44 +0000 (UTC) (envelope-from alfred@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 2E88E212C; Tue, 15 Oct 2013 15:50:44 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FFohXQ014568; Tue, 15 Oct 2013 15:50:43 GMT (envelope-from alfred@svn.freebsd.org) Received: (from alfred@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FFohM1014567; Tue, 15 Oct 2013 15:50:43 GMT (envelope-from alfred@svn.freebsd.org) Message-Id: <201310151550.r9FFohM1014567@svn.freebsd.org> From: Alfred Perlstein Date: Tue, 15 Oct 2013 15:50:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256546 - head/sys/ofed/include/linux X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 15:50:44 -0000 Author: alfred Date: Tue Oct 15 15:50:43 2013 New Revision: 256546 URL: http://svnweb.freebsd.org/changeset/base/256546 Log: Fix __free_pages() in the linux shim. __free_pages() is actaully supposed to take a "struct page *" not an address. Modified: head/sys/ofed/include/linux/gfp.h Modified: head/sys/ofed/include/linux/gfp.h ============================================================================== --- head/sys/ofed/include/linux/gfp.h Tue Oct 15 15:43:29 2013 (r256545) +++ head/sys/ofed/include/linux/gfp.h Tue Oct 15 15:50:43 2013 (r256546) @@ -92,14 +92,14 @@ __free_page(struct page *m) } static inline void -__free_pages(void *p, unsigned int order) +__free_pages(struct page *m, unsigned int order) { size_t size; - if (p == 0) + if (m == NULL) return; size = PAGE_SIZE << order; - kmem_free(kmem_arena, (vm_offset_t)p, size); + kmem_free(kmem_arena, (vm_offset_t)page_address(m), size); } /* From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 16:28:29 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 2173999; Tue, 15 Oct 2013 16:28:29 +0000 (UTC) (envelope-from Devin.Teske@fisglobal.com) Received: from mx1.fisglobal.com (mx1.fisglobal.com [199.200.24.190]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id DD4AB247A; Tue, 15 Oct 2013 16:28:28 +0000 (UTC) Received: from smtp.fisglobal.com ([10.132.206.17]) by ltcfislmsgpa06.fnfis.com (8.14.5/8.14.5) with ESMTP id r9FGSO7F021516 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Tue, 15 Oct 2013 11:28:24 -0500 Received: from LTCFISWMSGMB21.FNFIS.com ([169.254.1.103]) by LTCFISWMSGHT06.FNFIS.com ([10.132.206.17]) with mapi id 14.02.0309.002; Tue, 15 Oct 2013 11:28:22 -0500 From: "Teske, Devin" To: Bryan Drewery Subject: Re: svn commit: r256343 - in head/usr.sbin/bsdinstall: . scripts Thread-Topic: svn commit: r256343 - in head/usr.sbin/bsdinstall: . scripts Thread-Index: AQHOybdAW1uGCLtcyE2zUcTOTrV8Ig== Date: Tue, 15 Oct 2013 16:28:21 +0000 Message-ID: <13CA24D6AB415D428143D44749F57D720FC6A61F@LTCFISWMSGMB21.FNFIS.com> References: <201310112041.r9BKfZeT002056@svn.freebsd.org> <20131015145032.GD98118@admin.xzibition.com> <13CA24D6AB415D428143D44749F57D720FC6A04C@LTCFISWMSGMB21.FNFIS.com> <525D5E07.1070900@allanjude.com> In-Reply-To: <525D5E07.1070900@allanjude.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.132.253.121] Content-Type: text/plain; charset="iso-8859-1" Content-ID: <96E56AE23D05904994F85D8D2768E5D0@fisglobal.com> Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.10.8794, 1.0.431, 0.0.0000 definitions=2013-10-15_06:2013-10-15,2013-10-15,1970-01-01 signatures=0 Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "Teske, Devin" , Allan Jude , "svn-src-head@freebsd.org" , Devin Teske X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: Devin Teske List-Id: "SVN commit messages 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, 15 Oct 2013 16:28:29 -0000 On Oct 15, 2013, at 8:23 AM, Allan Jude wrote: > On 2013-10-15 11:00, Teske, Devin wrote: >> CC'ing Allan Jude for feedback (I didn't have a hand in the >> selection of those values) >>=20 >> --=20 >> Devin >>=20 >>=20 >> On Oct 15, 2013, at 7:50 AM, Bryan Drewery wrote: >>=20 >>=20 >>> >=20 >>> On Fri, Oct 11, 2013 at 08:41:35PM +0000, Devin Teske wrote: >>>=20 >>>> >>=20 >>>> Author: dteske >>>>=20 >>>> >>=20 >>>> Date: Fri Oct 11 20:41:35 2013 >>>>=20 >>>> >>=20 >>>> New Revision: 256343 >>>>=20 >>>> >> URL: http://svnweb.freebsd.org/changeset/base/256343 >>>> >>=20 >>>> >>=20 >>>> Log: >>>>=20 >>>> >>=20 >>>> Add zfsboot module as an option for automatic configuration. Default = is >>>>=20 >>>> >>=20 >>>> to run interactively but it can be scripted too (optinally completely >>>>=20 >>>> >>=20 >>>> non-interactive). Currently supports GELI and all ZFS vdev types. Also >>>>=20 >>>> >>=20 >>>> performs validation on selections/settings providing error messages if >>>>=20 >>>> >>=20 >>>> necessary, explaining (in plain language) what the issue is. Currently >>>>=20 >>>> >>=20 >>>> the auto partitioning of naked disks only supports GPT and MBR (VTOC8 >>>>=20 >>>> >>=20 >>>> pending for sparc64), so is only available for i386/amd64 install. >>>>=20 >>>> >>=20 >>>> >> Submitted by: Allan Jude >>>> , myself >>>>=20 >>>> >> Reviewed by: Allan Jude >>>> >>=20 >>>> Approved by: re (glebius) >>>>=20 >>>> >>=20 >>>> >>=20 >>>> Added: >>>>=20 >>>> >>=20 >>>> head/usr.sbin/bsdinstall/scripts/zfsboot (contents, props changed) >>>>=20 >>>> >>=20 >>>> Modified: >>>>=20 >>>> >>=20 >>>> head/usr.sbin/bsdinstall/bsdinstall >>>>=20 >>>> >>=20 >>>> head/usr.sbin/bsdinstall/scripts/Makefile >>>>=20 >>>> >>=20 >>>> head/usr.sbin/bsdinstall/scripts/auto >>>>=20 >>>> >>=20 >>>> head/usr.sbin/bsdinstall/scripts/config >>>>=20 >>>> >>=20 >>>> >>=20 >>>> +# Should we use gnop(8) to configure a transparent mapping to 4K sect= ors? >>>>=20 >>>> >>=20 >>>> +# >>>>=20 >>>> >>=20 >>>> +: ${ZFSBOOT_GNOP_4K_FORCE_ALIGN:=3D1} >>>>=20 >>> >=20 >>> >=20 >>> I believe this trick is no longer needed after r254591. >>>=20 >=20 > This may be the case, I am not sure if r254591 'always' fixes the problem= , maybe someone else can weight in with a more definite yes/no >=20 I'll hold off on doing anything with 4K sectors gnop hack until we get confirmation. >=20 >>> >=20 >>>> >>=20 >>>> *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** >>>>=20 >>> >=20 >>> ... >>>=20 >>>> >>=20 >>>> +# Default name for the boot environment parent dataset >>>>=20 >>>> >>=20 >>>> +# >>>>=20 >>>> >>=20 >>>> +: ${ZFSBOOT_BEROOT_NAME:=3Dbootenv} >>>>=20 >>> >=20 >>> ... >>>=20 >>>> >>=20 >>>> + # Set bootfs property >>>>=20 >>>> >>=20 >>>> + zpool set bootfs=3D"$poolname/$ZFSBOOT_BEROOT_NAME/$ZFSBOOT_BO= OTFS_NAME" \ >>>>=20 >>>> >>=20 >>>> + "$poolname" || return $FAILURE >>>>=20 >>> >=20 >>> >=20 >>> Can you please make ZFSBOOT_BEROOT_NAME be ROOT by default? This is what >>>=20 >>> >=20 >>> sysutils/beadm, OpenSolaris/Illumos beadm, and I believe PC-BSD all exp= ect >>>=20 >>> > and use as well. >=20 > I suppose. I dislike having a dataset in all caps, and with a not exactly= descriptive name. beadm-devel (used in PCBSD) supports figuring out where = whatever ZFSBOOT_BEROOT_NAME you used, but since sysutils/beadm does not, P= OLA suggests we change the value back to ROOT >=20 So we have consensus? I need to know today if we're going to get it into 10.0-BETA2 (3-day MFC cy= cle). --=20 Devin _____________ The information contained in this message is proprietary and/or confidentia= l. If you are not the intended recipient, please: (i) delete the message an= d all copies; (ii) do not disclose, distribute or use the message in any ma= nner; and (iii) notify the sender immediately. In addition, please be aware= that any message addressed to our domain is subject to archiving and revie= w by persons other than the intended recipient. Thank you. From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 16:32:11 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id DDE0A334; Tue, 15 Oct 2013 16:32:10 +0000 (UTC) (envelope-from freebsd@allanjude.com) Received: from mx1.scaleengine.net (beauharnois2.bhs1.scaleengine.net [142.4.218.15]) by mx1.freebsd.org (Postfix) with ESMTP id 9AA7E24ED; Tue, 15 Oct 2013 16:32:10 +0000 (UTC) Received: from [10.1.1.1] (S01060001abad1dea.hm.shawcable.net [50.70.108.129]) (Authenticated sender: allan.jude@scaleengine.com) by mx1.scaleengine.net (Postfix) with ESMTPSA id 290FE3CBAC; Tue, 15 Oct 2013 16:32:07 +0000 (UTC) Message-ID: <525D6E24.70901@allanjude.com> Date: Tue, 15 Oct 2013 12:32:36 -0400 From: Allan Jude User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.0.1 MIME-Version: 1.0 To: Devin Teske , Bryan Drewery Subject: Re: svn commit: r256343 - in head/usr.sbin/bsdinstall: . scripts References: <201310112041.r9BKfZeT002056@svn.freebsd.org> <20131015145032.GD98118@admin.xzibition.com> <13CA24D6AB415D428143D44749F57D720FC6A04C@LTCFISWMSGMB21.FNFIS.com> <525D5E07.1070900@allanjude.com> <13CA24D6AB415D428143D44749F57D720FC6A61F@LTCFISWMSGMB21.FNFIS.com> In-Reply-To: <13CA24D6AB415D428143D44749F57D720FC6A61F@LTCFISWMSGMB21.FNFIS.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" , "Teske, Devin" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 16:32:11 -0000 On 2013-10-15 12:28, Teske, Devin wrote: > On Oct 15, 2013, at 8:23 AM, Allan Jude wrote: > >> On 2013-10-15 11:00, Teske, Devin wrote: >>> CC'ing Allan Jude for feedback (I didn't have a hand in the >>> selection of those values) >>> >>> -- >>> Devin >>> >>> >>> On Oct 15, 2013, at 7:50 AM, Bryan Drewery wrote: >>> >>> >>>> On Fri, Oct 11, 2013 at 08:41:35PM +0000, Devin Teske wrote: >>>> >>>>> Author: dteske >>>>> >>>>> Date: Fri Oct 11 20:41:35 2013 >>>>> >>>>> New Revision: 256343 >>>>> >>>>>>> URL: http://svnweb.freebsd.org/changeset/base/256343 >>>>>>> >>>>>>> >>>>> Log: >>>>> >>>>> Add zfsboot module as an option for automatic configuration. Default is >>>>> >>>>> to run interactively but it can be scripted too (optinally completely >>>>> >>>>> non-interactive). Currently supports GELI and all ZFS vdev types. Also >>>>> >>>>> performs validation on selections/settings providing error messages if >>>>> >>>>> necessary, explaining (in plain language) what the issue is. Currently >>>>> >>>>> the auto partitioning of naked disks only supports GPT and MBR (VTOC8 >>>>> >>>>> pending for sparc64), so is only available for i386/amd64 install. >>>>> >>>>>>> Submitted by: Allan Jude >>>>> , myself >>>>> >>>>>>> Reviewed by: Allan Jude >>>>>>> >>>>> Approved by: re (glebius) >>>>> >>>>>>> >>>>> Added: >>>>> >>>>> head/usr.sbin/bsdinstall/scripts/zfsboot (contents, props changed) >>>>> >>>>> Modified: >>>>> >>>>> head/usr.sbin/bsdinstall/bsdinstall >>>>> >>>>> head/usr.sbin/bsdinstall/scripts/Makefile >>>>> >>>>> head/usr.sbin/bsdinstall/scripts/auto >>>>> >>>>> head/usr.sbin/bsdinstall/scripts/config >>>>> >>>>>>> >>>>> +# Should we use gnop(8) to configure a transparent mapping to 4K sectors? >>>>> >>>>> +# >>>>> >>>>> +: ${ZFSBOOT_GNOP_4K_FORCE_ALIGN:=1} >>>>> >>>>> >>>>> >>>> I believe this trick is no longer needed after r254591. >>>> >> This may be the case, I am not sure if r254591 'always' fixes the problem, maybe someone else can weight in with a more definite yes/no >> > I'll hold off on doing anything with 4K sectors gnop hack until > we get confirmation. > > > > > >>>>> *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** >>>>> >>>>> >>>> ... >>>> >>>>> +# Default name for the boot environment parent dataset >>>>> >>>>> +# >>>>> >>>>> +: ${ZFSBOOT_BEROOT_NAME:=bootenv} >>>>> >>>>> >>>> ... >>>> >>>>> + # Set bootfs property >>>>> >>>>> + zpool set bootfs="$poolname/$ZFSBOOT_BEROOT_NAME/$ZFSBOOT_BOOTFS_NAME" \ >>>>> >>>>> + "$poolname" || return $FAILURE >>>>> >>>>> >>>>> >>>> Can you please make ZFSBOOT_BEROOT_NAME be ROOT by default? This is what >>>> >>>> sysutils/beadm, OpenSolaris/Illumos beadm, and I believe PC-BSD all expect >>>> >>>>> and use as well. >> I suppose. I dislike having a dataset in all caps, and with a not exactly descriptive name. beadm-devel (used in PCBSD) supports figuring out where whatever ZFSBOOT_BEROOT_NAME you used, but since sysutils/beadm does not, POLA suggests we change the value back to ROOT >> > So we have consensus? > > I need to know today if we're going to get it into 10.0-BETA2 (3-day MFC cycle). Lets change ZFSBOOT_BEROOT_NAME to 'ROOT' and remove the /usr/local and /var/db/pkg datasets entirely (so they become part of the BE). Based on IRC discussion with bdrewery and Shawn Webb -- Allan Jude From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 16:44:11 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 43DC3724; Tue, 15 Oct 2013 16:44:11 +0000 (UTC) (envelope-from avg@FreeBSD.org) Received: from citadel.icyb.net.ua (citadel.icyb.net.ua [212.40.38.140]) by mx1.freebsd.org (Postfix) with ESMTP id EA2BA25B5; Tue, 15 Oct 2013 16:44:09 +0000 (UTC) Received: from porto.starpoint.kiev.ua (porto-e.starpoint.kiev.ua [212.40.38.100]) by citadel.icyb.net.ua (8.8.8p3/ICyb-2.3exp) with ESMTP id TAA07149; Tue, 15 Oct 2013 19:44:02 +0300 (EEST) (envelope-from avg@FreeBSD.org) Received: from localhost ([127.0.0.1]) by porto.starpoint.kiev.ua with esmtp (Exim 4.34 (FreeBSD)) id 1VW7j0-0000kO-KY; Tue, 15 Oct 2013 19:44:02 +0300 Message-ID: <525D70AE.1020103@FreeBSD.org> Date: Tue, 15 Oct 2013 19:43:26 +0300 From: Andriy Gapon User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:24.0) Gecko/20100101 Thunderbird/24.0.1 MIME-Version: 1.0 To: Allan Jude , Devin Teske , Bryan Drewery Subject: Re: svn commit: r256343 - in head/usr.sbin/bsdinstall: . scripts References: <201310112041.r9BKfZeT002056@svn.freebsd.org> <20131015145032.GD98118@admin.xzibition.com> <13CA24D6AB415D428143D44749F57D720FC6A04C@LTCFISWMSGMB21.FNFIS.com> <525D5E07.1070900@allanjude.com> <13CA24D6AB415D428143D44749F57D720FC6A61F@LTCFISWMSGMB21.FNFIS.com> <525D6E24.70901@allanjude.com> In-Reply-To: <525D6E24.70901@allanjude.com> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" , "Teske, Devin" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 16:44:11 -0000 on 15/10/2013 19:32 Allan Jude said the following: > Lets change ZFSBOOT_BEROOT_NAME to 'ROOT' and remove the /usr/local and > /var/db/pkg datasets entirely (so they become part of the BE). Based on > IRC discussion with bdrewery and Shawn Webb I want to note that a good implementation of BEs should support a dependent datasets feature. Unfortunately, it seems that we do not have any good BE implementation for FreeBSD right now. If we had, personally I'd prefer to have /usr/local in separate filesystem. -- Andriy Gapon From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 16:55:07 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id ACDFBB1D; Tue, 15 Oct 2013 16:55:07 +0000 (UTC) (envelope-from freebsd@allanjude.com) Received: from mx1.scaleengine.net (beauharnois2.bhs1.scaleengine.net [142.4.218.15]) by mx1.freebsd.org (Postfix) with ESMTP id 8495E269A; Tue, 15 Oct 2013 16:55:06 +0000 (UTC) Received: from [10.1.1.1] (S01060001abad1dea.hm.shawcable.net [50.70.108.129]) (Authenticated sender: allan.jude@scaleengine.com) by mx1.scaleengine.net (Postfix) with ESMTPSA id 2A3FA3CC58; Tue, 15 Oct 2013 16:55:04 +0000 (UTC) Message-ID: <525D7385.1050509@allanjude.com> Date: Tue, 15 Oct 2013 12:55:33 -0400 From: Allan Jude User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.0.1 MIME-Version: 1.0 To: Andriy Gapon , Devin Teske , Bryan Drewery Subject: Re: svn commit: r256343 - in head/usr.sbin/bsdinstall: . scripts References: <201310112041.r9BKfZeT002056@svn.freebsd.org> <20131015145032.GD98118@admin.xzibition.com> <13CA24D6AB415D428143D44749F57D720FC6A04C@LTCFISWMSGMB21.FNFIS.com> <525D5E07.1070900@allanjude.com> <13CA24D6AB415D428143D44749F57D720FC6A61F@LTCFISWMSGMB21.FNFIS.com> <525D6E24.70901@allanjude.com> <525D70AE.1020103@FreeBSD.org> In-Reply-To: <525D70AE.1020103@FreeBSD.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" , "Teske, Devin" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 16:55:07 -0000 On 2013-10-15 12:43, Andriy Gapon wrote: > on 15/10/2013 19:32 Allan Jude said the following: >> Lets change ZFSBOOT_BEROOT_NAME to 'ROOT' and remove the /usr/local and >> /var/db/pkg datasets entirely (so they become part of the BE). Based on >> IRC discussion with bdrewery and Shawn Webb > I want to note that a good implementation of BEs should support a dependent > datasets feature. Unfortunately, it seems that we do not have any good BE > implementation for FreeBSD right now. If we had, personally I'd prefer to have > /usr/local in separate filesystem. > Indeed, on my laptop /usr/local is separate, and I just have compat9x installed so my 10 kernel can run the pkgs from my 9.2 kernel -- Allan Jude From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 16:58:28 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 9A774CFC for ; Tue, 15 Oct 2013 16:58:28 +0000 (UTC) (envelope-from mcdouga9@egr.msu.edu) Received: from mail.egr.msu.edu (dauterive.egr.msu.edu [35.9.37.168]) by mx1.freebsd.org (Postfix) with ESMTP id 6B74826CA for ; Tue, 15 Oct 2013 16:58:27 +0000 (UTC) Received: from dauterive (localhost [127.0.0.1]) by mail.egr.msu.edu (Postfix) with ESMTP id E730B3B625; Tue, 15 Oct 2013 12:58:20 -0400 (EDT) X-Virus-Scanned: amavisd-new at egr.msu.edu Received: from mail.egr.msu.edu ([127.0.0.1]) by dauterive (dauterive.egr.msu.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id d3WZ2aH-R3Q1; Tue, 15 Oct 2013 12:58:20 -0400 (EDT) Received: from daemon.localdomain (daemon.egr.msu.edu [35.9.44.65]) by mail.egr.msu.edu (Postfix) with ESMTP id B79C53B61F; Tue, 15 Oct 2013 12:58:20 -0400 (EDT) Received: by daemon.localdomain (Postfix, from userid 21281) id A0E7129317C; Tue, 15 Oct 2013 12:58:20 -0400 (EDT) Date: Tue, 15 Oct 2013 12:58:20 -0400 From: Adam McDougall To: "Teske, Devin" Subject: Re: svn commit: r256343 - in head/usr.sbin/bsdinstall: . scripts Message-ID: <20131015165820.GO2097@egr.msu.edu> References: <201310112041.r9BKfZeT002056@svn.freebsd.org> <20131015145032.GD98118@admin.xzibition.com> <13CA24D6AB415D428143D44749F57D720FC6A04C@LTCFISWMSGMB21.FNFIS.com> <525D5E07.1070900@allanjude.com> <13CA24D6AB415D428143D44749F57D720FC6A61F@LTCFISWMSGMB21.FNFIS.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <13CA24D6AB415D428143D44749F57D720FC6A61F@LTCFISWMSGMB21.FNFIS.com> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: "svn-src-all@freebsd.org" , Allan Jude X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 16:58:28 -0000 On Tue, Oct 15, 2013 at 04:28:21PM +0000, Teske, Devin wrote: >>>> +: ${ZFSBOOT_GNOP_4K_FORCE_ALIGN:=1} >>>> >>> > >>> > >>> I believe this trick is no longer needed after r254591. >>> > > This may be the case, I am not sure if r254591 'always' fixes the problem, maybe someone else can weight in with a more definite yes/no > I'll hold off on doing anything with 4K sectors gnop hack until we get confirmation. r254591 says: "Use GEOM's stripesize attribute, if set, as the physical sector size of the GEOM." I'm pretty sure GEOM only knows for a subset of devices, for example if the kernel contains a quirk based on the drive model. If you are aiming for performance, my 2 cents is to keep it. On the other hand, forcing 4k and thus ashift=12 wastes more space in a zpool on a 512b device so it would be nice to make this a toggle in the GUI defaulting to on. If it is already, I apologize, I haven't tried the code in a few iterations. From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 17:02:11 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 5090852E for ; Tue, 15 Oct 2013 17:02:11 +0000 (UTC) (envelope-from freebsd@allanjude.com) Received: from mx1.scaleengine.net (beauharnois2.bhs1.scaleengine.net [142.4.218.15]) by mx1.freebsd.org (Postfix) with ESMTP id 2B4562740 for ; Tue, 15 Oct 2013 17:02:10 +0000 (UTC) Received: from [10.1.1.1] (S01060001abad1dea.hm.shawcable.net [50.70.108.129]) (Authenticated sender: allan.jude@scaleengine.com) by mx1.scaleengine.net (Postfix) with ESMTPSA id E85833CCB2; Tue, 15 Oct 2013 17:02:09 +0000 (UTC) Message-ID: <525D752E.6020901@allanjude.com> Date: Tue, 15 Oct 2013 13:02:38 -0400 From: Allan Jude User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.0.1 MIME-Version: 1.0 To: Adam McDougall , "Teske, Devin" Subject: Re: svn commit: r256343 - in head/usr.sbin/bsdinstall: . scripts References: <201310112041.r9BKfZeT002056@svn.freebsd.org> <20131015145032.GD98118@admin.xzibition.com> <13CA24D6AB415D428143D44749F57D720FC6A04C@LTCFISWMSGMB21.FNFIS.com> <525D5E07.1070900@allanjude.com> <13CA24D6AB415D428143D44749F57D720FC6A61F@LTCFISWMSGMB21.FNFIS.com> <20131015165820.GO2097@egr.msu.edu> In-Reply-To: <20131015165820.GO2097@egr.msu.edu> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: "svn-src-all@freebsd.org" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 17:02:11 -0000 On 2013-10-15 12:58, Adam McDougall wrote: > On Tue, Oct 15, 2013 at 04:28:21PM +0000, Teske, Devin wrote: > > >>>> +: ${ZFSBOOT_GNOP_4K_FORCE_ALIGN:=1} > >>>> > >>> > > >>> > > >>> I believe this trick is no longer needed after r254591. > >>> > > > > This may be the case, I am not sure if r254591 'always' fixes the problem, maybe someone else can weight in with a more definite yes/no > > > > I'll hold off on doing anything with 4K sectors gnop hack until > we get confirmation. > > r254591 says: > "Use GEOM's stripesize attribute, if set, as the physical sector size of the GEOM." > > I'm pretty sure GEOM only knows for a subset of devices, for example if the > kernel contains a quirk based on the drive model. If you are aiming for > performance, my 2 cents is to keep it. On the other hand, forcing 4k and thus > ashift=12 wastes more space in a zpool on a 512b device so it would be nice to > make this a toggle in the GUI defaulting to on. If it is already, I apologize, I > haven't tried the code in a few iterations. > > Yes, the gnop 4k section option is a toggle, which defaults to on. -- Allan Jude From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 17:03:03 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 3DFDF58E; Tue, 15 Oct 2013 17:03:03 +0000 (UTC) (envelope-from smh@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 2C5112751; Tue, 15 Oct 2013 17:03:03 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FH33LS060214; Tue, 15 Oct 2013 17:03:03 GMT (envelope-from smh@svn.freebsd.org) Received: (from smh@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FH325d060211; Tue, 15 Oct 2013 17:03:02 GMT (envelope-from smh@svn.freebsd.org) Message-Id: <201310151703.r9FH325d060211@svn.freebsd.org> From: Steven Hartland Date: Tue, 15 Oct 2013 17:03:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256547 - in head/sys/cam: ata scsi X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 17:03:03 -0000 Author: smh Date: Tue Oct 15 17:03:02 2013 New Revision: 256547 URL: http://svnweb.freebsd.org/changeset/base/256547 Log: Added 4K quirks for Corsair Neutron GTX SSD's Modified: head/sys/cam/ata/ata_da.c head/sys/cam/scsi/scsi_da.c Modified: head/sys/cam/ata/ata_da.c ============================================================================== --- head/sys/cam/ata/ata_da.c Tue Oct 15 15:50:43 2013 (r256546) +++ head/sys/cam/ata/ata_da.c Tue Oct 15 17:03:02 2013 (r256547) @@ -293,6 +293,14 @@ static struct ada_quirk_entry ada_quirk_ }, { /* + * Corsair Neutron GTX SSDs + * 4k optimised & trim only works in 4k requests + 4k aligned + */ + { T_DIRECT, SIP_MEDIA_FIXED, "*", "Corsair Neutron GTX*", "*" }, + /*quirks*/ADA_Q_4K + }, + { + /* * Corsair Force GT SSDs * 4k optimised & trim only works in 4k requests + 4k aligned */ Modified: head/sys/cam/scsi/scsi_da.c ============================================================================== --- head/sys/cam/scsi/scsi_da.c Tue Oct 15 15:50:43 2013 (r256546) +++ head/sys/cam/scsi/scsi_da.c Tue Oct 15 17:03:02 2013 (r256547) @@ -950,6 +950,14 @@ static struct da_quirk_entry da_quirk_ta { T_DIRECT, SIP_MEDIA_FIXED, "ATA", "Corsair Force 3*", "*" }, /*quirks*/DA_Q_4K }, + { + /* + * Corsair Neutron GTX SSDs + * 4k optimised & trim only works in 4k requests + 4k aligned + */ + { T_DIRECT, SIP_MEDIA_FIXED, "*", "Corsair Neutron GTX*", "*" }, + /*quirks*/DA_Q_4K + }, { /* * Corsair Force GT SSDs From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 17:11:14 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 6496C7F2; Tue, 15 Oct 2013 17:11:14 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 43D2527E1; Tue, 15 Oct 2013 17:11:14 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FHBE4j065745; Tue, 15 Oct 2013 17:11:14 GMT (envelope-from hselasky@svn.freebsd.org) Received: (from hselasky@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FHBD0g065737; Tue, 15 Oct 2013 17:11:13 GMT (envelope-from hselasky@svn.freebsd.org) Message-Id: <201310151711.r9FHBD0g065737@svn.freebsd.org> From: Hans Petter Selasky Date: Tue, 15 Oct 2013 17:11:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256548 - head/sys/dev/usb/controller X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 17:11:14 -0000 Author: hselasky Date: Tue Oct 15 17:11:13 2013 New Revision: 256548 URL: http://svnweb.freebsd.org/changeset/base/256548 Log: Correct programming of XXX_MAXP register. This register is 16-bit wide and not 8-bit. Fix support for isochronous transfers in USB host mode. Fix a whitespace while at it. MFC after: 1 week Reported by: SAITOU Toshihide PR: usb/181987 Modified: head/sys/dev/usb/controller/musb_otg.c head/sys/dev/usb/controller/musb_otg.h Modified: head/sys/dev/usb/controller/musb_otg.c ============================================================================== --- head/sys/dev/usb/controller/musb_otg.c Tue Oct 15 17:03:02 2013 (r256547) +++ head/sys/dev/usb/controller/musb_otg.c Tue Oct 15 17:11:13 2013 (r256548) @@ -1661,7 +1661,7 @@ repeat: } /* Max packet size */ - MUSB2_WRITE_1(sc, MUSB2_REG_TXMAXP, td->max_packet); + MUSB2_WRITE_2(sc, MUSB2_REG_TXMAXP, td->reg_max_packet); /* write command */ MUSB2_WRITE_1(sc, MUSB2_REG_TXCSRL, @@ -1726,13 +1726,16 @@ repeat: td->hport); /* RX NAK timeout */ - MUSB2_WRITE_1(sc, MUSB2_REG_RXNAKLIMIT, MAX_NAK_TO); + if (td->transfer_type & MUSB2_MASK_TI_PROTO_ISOC) + MUSB2_WRITE_1(sc, MUSB2_REG_RXNAKLIMIT, 0); + else + MUSB2_WRITE_1(sc, MUSB2_REG_RXNAKLIMIT, MAX_NAK_TO); /* Protocol, speed, device endpoint */ MUSB2_WRITE_1(sc, MUSB2_REG_RXTI, td->transfer_type); /* Max packet size */ - MUSB2_WRITE_1(sc, MUSB2_REG_RXMAXP, td->max_packet); + MUSB2_WRITE_2(sc, MUSB2_REG_RXMAXP, td->reg_max_packet); /* Data Toggle */ csrh = MUSB2_READ_1(sc, MUSB2_REG_RXCSRH); @@ -1938,7 +1941,7 @@ musbotg_host_data_tx(struct musbotg_td * return (0); /* complete */ } - if (csr & MUSB2_MASK_CSRL_TXNAKTO ) { + if (csr & MUSB2_MASK_CSRL_TXNAKTO) { /* * Flush TX FIFO before clearing NAK TO */ @@ -2069,13 +2072,16 @@ musbotg_host_data_tx(struct musbotg_td * td->hport); /* TX NAK timeout */ - MUSB2_WRITE_1(sc, MUSB2_REG_TXNAKLIMIT, MAX_NAK_TO); + if (td->transfer_type & MUSB2_MASK_TI_PROTO_ISOC) + MUSB2_WRITE_1(sc, MUSB2_REG_TXNAKLIMIT, 0); + else + MUSB2_WRITE_1(sc, MUSB2_REG_TXNAKLIMIT, MAX_NAK_TO); /* Protocol, speed, device endpoint */ MUSB2_WRITE_1(sc, MUSB2_REG_TXTI, td->transfer_type); /* Max packet size */ - MUSB2_WRITE_1(sc, MUSB2_REG_TXMAXP, td->max_packet); + MUSB2_WRITE_2(sc, MUSB2_REG_TXMAXP, td->reg_max_packet); if (!td->transaction_started) { csrh = MUSB2_READ_1(sc, MUSB2_REG_TXCSRH); @@ -2406,7 +2412,6 @@ musbotg_setup_standard_chain(struct usb_ if (xfer->flags_int.usb_mode == USB_MODE_HOST) { speed = usbd_get_speed(xfer->xroot->udev); - xfer_type = xfer->endpoint->edesc->bmAttributes & UE_XFERTYPE; switch (speed) { case USB_SPEED_LOW: @@ -2444,7 +2449,6 @@ musbotg_setup_standard_chain(struct usb_ } temp.transfer_type |= ep_no; - td->max_packet = xfer->max_packet_size; td->toggle = xfer->endpoint->toggle_next; } @@ -2469,9 +2473,9 @@ musbotg_setup_standard_chain(struct usb_ x = 0; } - if (x != xfer->nframes) { - tx = 0; + tx = 0; + if (x != xfer->nframes) { if (xfer->endpointno & UE_DIR_IN) tx = 1; @@ -2532,9 +2536,14 @@ musbotg_setup_standard_chain(struct usb_ } else { - /* regular data transfer */ - - temp.short_pkt = (xfer->flags.force_short_xfer) ? 0 : 1; + if (xfer->flags_int.isochronous_xfr) { + /* isochronous data transfer */ + /* don't force short */ + temp.short_pkt = 1; + } else { + /* regular data transfer */ + temp.short_pkt = (xfer->flags.force_short_xfer ? 0 : 1); + } } musbotg_setup_standard_chain_sub(&temp); @@ -3158,7 +3167,12 @@ musbotg_init(struct musbotg_softc *sc) if (dynfifo) { if (frx && (temp <= nrx)) { - if (temp < 8) { + if (temp == 1) { + frx = 12; /* 4K */ + MUSB2_WRITE_1(sc, MUSB2_REG_RXFIFOSZ, + MUSB2_VAL_FIFOSZ_4096 | + MUSB2_MASK_FIFODB); + } else if (temp < 8) { frx = 10; /* 1K */ MUSB2_WRITE_1(sc, MUSB2_REG_RXFIFOSZ, MUSB2_VAL_FIFOSZ_512 | @@ -3175,7 +3189,12 @@ musbotg_init(struct musbotg_softc *sc) offset += (1 << frx); } if (ftx && (temp <= ntx)) { - if (temp < 8) { + if (temp == 1) { + ftx = 12; /* 4K */ + MUSB2_WRITE_1(sc, MUSB2_REG_TXFIFOSZ, + MUSB2_VAL_FIFOSZ_4096 | + MUSB2_MASK_FIFODB); + } else if (temp < 8) { ftx = 10; /* 1K */ MUSB2_WRITE_1(sc, MUSB2_REG_TXFIFOSZ, MUSB2_VAL_FIFOSZ_512 | @@ -4042,7 +4061,7 @@ musbotg_xfer_setup(struct usb_setup_para * reasonable dummies: */ parm->hc_max_packet_size = 0x400; - parm->hc_max_frame_size = 0x400; + parm->hc_max_frame_size = 0xc00; if ((parm->methods == &musbotg_device_isoc_methods) || (parm->methods == &musbotg_device_intr_methods)) @@ -4117,6 +4136,8 @@ musbotg_xfer_setup(struct usb_setup_para /* init TD */ td->max_frame_size = xfer->max_frame_size; + td->reg_max_packet = xfer->max_packet_size | + ((xfer->max_packet_count - 1) << 11); td->ep_no = ep_no; td->obj_next = last_obj; Modified: head/sys/dev/usb/controller/musb_otg.h ============================================================================== --- head/sys/dev/usb/controller/musb_otg.h Tue Oct 15 17:03:02 2013 (r256547) +++ head/sys/dev/usb/controller/musb_otg.h Tue Oct 15 17:11:13 2013 (r256548) @@ -316,9 +316,9 @@ struct musbotg_td { uint32_t offset; uint32_t remainder; uint16_t max_frame_size; /* packet_size * mult */ + uint16_t reg_max_packet; uint8_t ep_no; uint8_t transfer_type; - uint8_t max_packet; uint8_t error:1; uint8_t alt_next:1; uint8_t short_pkt:1; From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 17:26:13 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id E0077CEE; Tue, 15 Oct 2013 17:26:13 +0000 (UTC) (envelope-from Devin.Teske@fisglobal.com) Received: from mx1.fisglobal.com (mx1.fisglobal.com [199.200.24.190]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 9754228C2; Tue, 15 Oct 2013 17:26:13 +0000 (UTC) Received: from smtp.fisglobal.com ([10.132.206.15]) by ltcfislmsgpa04.fnfis.com (8.14.5/8.14.5) with ESMTP id r9FHQ7nf014983 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Tue, 15 Oct 2013 12:26:07 -0500 Received: from LTCFISWMSGMB21.FNFIS.com ([169.254.1.103]) by LTCFISWMSGHT04.FNFIS.com ([10.132.206.15]) with mapi id 14.02.0309.002; Tue, 15 Oct 2013 12:26:05 -0500 From: "Teske, Devin" To: Allan Jude Subject: Re: svn commit: r256343 - in head/usr.sbin/bsdinstall: . scripts Thread-Topic: svn commit: r256343 - in head/usr.sbin/bsdinstall: . scripts Thread-Index: AQHOybdAW1uGCLtcyE2zUcTOTrV8Ig== Date: Tue, 15 Oct 2013 17:26:04 +0000 Message-ID: <13CA24D6AB415D428143D44749F57D720FC6A9D1@LTCFISWMSGMB21.FNFIS.com> References: <201310112041.r9BKfZeT002056@svn.freebsd.org> <20131015145032.GD98118@admin.xzibition.com> <13CA24D6AB415D428143D44749F57D720FC6A04C@LTCFISWMSGMB21.FNFIS.com> <525D5E07.1070900@allanjude.com> <13CA24D6AB415D428143D44749F57D720FC6A61F@LTCFISWMSGMB21.FNFIS.com> <525D6E24.70901@allanjude.com> <525D70AE.1020103@FreeBSD.org> <525D7385.1050509@allanjude.com> In-Reply-To: <525D7385.1050509@allanjude.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.132.253.121] Content-Type: text/plain; charset="iso-8859-1" Content-ID: <30B30647E7832142B92FED28FABA760C@fisglobal.com> Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.10.8794, 1.0.431, 0.0.0000 definitions=2013-10-15_06:2013-10-15,2013-10-15,1970-01-01 signatures=0 Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "Teske, Devin" , Andriy Gapon , "svn-src-head@freebsd.org" , Devin Teske , Bryan Drewery X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: Devin Teske List-Id: "SVN commit messages 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, 15 Oct 2013 17:26:14 -0000 On Oct 15, 2013, at 9:55 AM, Allan Jude wrote: > On 2013-10-15 12:43, Andriy Gapon wrote: >> on 15/10/2013 19:32 Allan Jude said the following: >>> Lets change ZFSBOOT_BEROOT_NAME to 'ROOT' and remove the /usr/local and >>> /var/db/pkg datasets entirely (so they become part of the BE). Based on >>> IRC discussion with bdrewery and Shawn Webb >> I want to note that a good implementation of BEs should support a depend= ent >> datasets feature. Unfortunately, it seems that we do not have any good = BE >> implementation for FreeBSD right now. If we had, personally I'd prefer = to have >> /usr/local in separate filesystem. >>=20 > Indeed, on my laptop /usr/local is separate, and I just have compat9x > installed so my 10 kernel can run the pkgs from my 9.2 kernel >=20 So I'm hearing... 1. ZFSBOOT_BEROOT_NAME to 'ROOT' 2. Keep /usr/local dataset 3. Kill /var/db/pkg dtatset Yeah? --=20 Devin _____________ The information contained in this message is proprietary and/or confidentia= l. If you are not the intended recipient, please: (i) delete the message an= d all copies; (ii) do not disclose, distribute or use the message in any ma= nner; and (iii) notify the sender immediately. In addition, please be aware= that any message addressed to our domain is subject to archiving and revie= w by persons other than the intended recipient. Thank you. From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 17:33:30 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id DAC90F11; Tue, 15 Oct 2013 17:33:30 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id C8E722952; Tue, 15 Oct 2013 17:33:30 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FHXU9e079162; Tue, 15 Oct 2013 17:33:30 GMT (envelope-from dteske@svn.freebsd.org) Received: (from dteske@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FHXU8a079161; Tue, 15 Oct 2013 17:33:30 GMT (envelope-from dteske@svn.freebsd.org) Message-Id: <201310151733.r9FHXU8a079161@svn.freebsd.org> From: Devin Teske Date: Tue, 15 Oct 2013 17:33:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256549 - head/usr.sbin/bsdinstall X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 17:33:31 -0000 Author: dteske Date: Tue Oct 15 17:33:30 2013 New Revision: 256549 URL: http://svnweb.freebsd.org/changeset/base/256549 Log: Man page updates to go along with SVN r256343, introducing zfsboot. Modified: head/usr.sbin/bsdinstall/bsdinstall.8 Modified: head/usr.sbin/bsdinstall/bsdinstall.8 ============================================================================== --- head/usr.sbin/bsdinstall/bsdinstall.8 Tue Oct 15 17:11:13 2013 (r256548) +++ head/usr.sbin/bsdinstall/bsdinstall.8 Tue Oct 15 17:33:30 2013 (r256549) @@ -108,6 +108,21 @@ installations. Partitions disks, runs .Xr newfs 8 , and writes the new system's .Pa fstab . +.It Cm zfsboot +Provides the installer's +.Pq experimental +interactive/scriptable ZFS partitioner for multi-disk installations. +Creates a single +.Ic zpool +with datasets and writes to the new system's +.Pa rc.conf , +.Pa loader.conf , +and +.Pa fstab . +Supports +.Xr geli 8 , +.Xr gnop 8 , +and many other features. .It Cm partedit Provides the installer's interactive manual disk partitioner, with support for multi disk setups, non-UFS file systems, and manual selection of @@ -315,6 +330,15 @@ the preamble can contain a variable which is passed to the .Cm scriptedpart target to control disk setup. +Alternatively, +instead of +.Ev PARTITIONS , +the preamble can contain the variable +.Ev ZFSBOOT_DATASETS +which is parsed by the +.Pq experimental +.Cm zfsboot +target to control ZFS datasets/options of the boot pool setup. .Ss SETUP SCRIPT Following the preamble is an optional shell script, beginning with a #! declaration. This script will be run at the end of the installation process From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 17:44:35 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id EE50C570; Tue, 15 Oct 2013 17:44:35 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id CCECE2A10; Tue, 15 Oct 2013 17:44:35 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FHiZ0E086490; Tue, 15 Oct 2013 17:44:35 GMT (envelope-from melifaro@svn.freebsd.org) Received: (from melifaro@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FHiZRH086489; Tue, 15 Oct 2013 17:44:35 GMT (envelope-from melifaro@svn.freebsd.org) Message-Id: <201310151744.r9FHiZRH086489@svn.freebsd.org> From: "Alexander V. Chernikov" Date: Tue, 15 Oct 2013 17:44:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256550 - head/sys/netgraph X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 17:44:36 -0000 Author: melifaro Date: Tue Oct 15 17:44:35 2013 New Revision: 256550 URL: http://svnweb.freebsd.org/changeset/base/256550 Log: Improve locking model used to protect netgraph topology: use rwlocks instead of mutexes on node traversal. Reviewed by: glebius Tested by: Eugene Grosbein MFC after: 2 weeks Sponsored by: Yandex LLC Modified: head/sys/netgraph/ng_base.c Modified: head/sys/netgraph/ng_base.c ============================================================================== --- head/sys/netgraph/ng_base.c Tue Oct 15 17:33:30 2013 (r256549) +++ head/sys/netgraph/ng_base.c Tue Oct 15 17:44:35 2013 (r256550) @@ -74,7 +74,12 @@ MODULE_VERSION(netgraph, NG_ABI_VERSION); /* Mutex to protect topology events. */ -static struct mtx ng_topo_mtx; +static struct rwlock ng_topo_lock; +#define TOPOLOGY_RLOCK() rw_rlock(&ng_topo_lock) +#define TOPOLOGY_RUNLOCK() rw_runlock(&ng_topo_lock) +#define TOPOLOGY_WLOCK() rw_wlock(&ng_topo_lock) +#define TOPOLOGY_WUNLOCK() rw_wunlock(&ng_topo_lock) +#define TOPOLOGY_NOTOWNED() rw_assert(&ng_topo_lock, RA_UNLOCKED) #ifdef NETGRAPH_DEBUG static struct mtx ng_nodelist_mtx; /* protects global node/hook lists */ @@ -1162,7 +1167,7 @@ ng_destroy_hook(hook_p hook) * Protect divorce process with mutex, to avoid races on * simultaneous disconnect. */ - mtx_lock(&ng_topo_mtx); + TOPOLOGY_WLOCK(); hook->hk_flags |= HK_INVALID; @@ -1182,17 +1187,17 @@ ng_destroy_hook(hook_p hook) * If it's already divorced from a node, * just free it. */ - mtx_unlock(&ng_topo_mtx); + TOPOLOGY_WUNLOCK(); } else { - mtx_unlock(&ng_topo_mtx); + TOPOLOGY_WUNLOCK(); ng_rmhook_self(peer); /* Send it a surprise */ } NG_HOOK_UNREF(peer); /* account for peer link */ NG_HOOK_UNREF(hook); /* account for peer link */ } else - mtx_unlock(&ng_topo_mtx); + TOPOLOGY_WUNLOCK(); - mtx_assert(&ng_topo_mtx, MA_NOTOWNED); + TOPOLOGY_NOTOWNED(); /* * Remove the hook from the node's list to avoid possible recursion @@ -1233,9 +1238,9 @@ ng_bypass(hook_p hook1, hook_p hook2) TRAP_ERROR(); return (EINVAL); } - mtx_lock(&ng_topo_mtx); + TOPOLOGY_WLOCK(); if (NG_HOOK_NOT_VALID(hook1) || NG_HOOK_NOT_VALID(hook2)) { - mtx_unlock(&ng_topo_mtx); + TOPOLOGY_WUNLOCK(); return (EINVAL); } hook1->hk_peer->hk_peer = hook2->hk_peer; @@ -1243,7 +1248,7 @@ ng_bypass(hook_p hook1, hook_p hook2) hook1->hk_peer = &ng_deadhook; hook2->hk_peer = &ng_deadhook; - mtx_unlock(&ng_topo_mtx); + TOPOLOGY_WUNLOCK(); NG_HOOK_UNREF(hook1); NG_HOOK_UNREF(hook2); @@ -1440,15 +1445,15 @@ ng_con_part2(node_p node, item_p item, h /* * Acquire topo mutex to avoid race with ng_destroy_hook(). */ - mtx_lock(&ng_topo_mtx); + TOPOLOGY_RLOCK(); peer = hook->hk_peer; if (peer == &ng_deadhook) { - mtx_unlock(&ng_topo_mtx); + TOPOLOGY_RUNLOCK(); printf("failed in ng_con_part2(B)\n"); ng_destroy_hook(hook); ERROUT(ENOENT); } - mtx_unlock(&ng_topo_mtx); + TOPOLOGY_RUNLOCK(); if ((error = ng_send_fn2(peer->hk_node, peer, item, &ng_con_part3, NULL, 0, NG_REUSE_ITEM))) { @@ -1793,14 +1798,14 @@ ng_path2noderef(node_p here, const char /* We have a segment, so look for a hook by that name */ hook = ng_findhook(node, segment); - mtx_lock(&ng_topo_mtx); + TOPOLOGY_WLOCK(); /* Can't get there from here... */ if (hook == NULL || NG_HOOK_PEER(hook) == NULL || NG_HOOK_NOT_VALID(hook) || NG_HOOK_NOT_VALID(NG_HOOK_PEER(hook))) { TRAP_ERROR(); NG_NODE_UNREF(node); - mtx_unlock(&ng_topo_mtx); + TOPOLOGY_WUNLOCK(); return (ENOENT); } @@ -1817,7 +1822,7 @@ ng_path2noderef(node_p here, const char NG_NODE_UNREF(oldnode); /* XXX another race */ if (NG_NODE_NOT_VALID(node)) { NG_NODE_UNREF(node); /* XXX more races */ - mtx_unlock(&ng_topo_mtx); + TOPOLOGY_WUNLOCK(); TRAP_ERROR(); return (ENXIO); } @@ -1830,11 +1835,11 @@ ng_path2noderef(node_p here, const char } else *lasthook = NULL; } - mtx_unlock(&ng_topo_mtx); + TOPOLOGY_WUNLOCK(); *destp = node; return (0); } - mtx_unlock(&ng_topo_mtx); + TOPOLOGY_WUNLOCK(); } } @@ -3202,8 +3207,7 @@ ngb_mod_event(module_t mod, int event, v rw_init(&ng_typelist_lock, "netgraph types"); rw_init(&ng_idhash_lock, "netgraph idhash"); rw_init(&ng_namehash_lock, "netgraph namehash"); - mtx_init(&ng_topo_mtx, "netgraph topology mutex", NULL, - MTX_DEF); + rw_init(&ng_topo_lock, "netgraph topology mutex"); #ifdef NETGRAPH_DEBUG mtx_init(&ng_nodelist_mtx, "netgraph nodelist mutex", NULL, MTX_DEF); @@ -3579,13 +3583,13 @@ ng_address_hook(node_p here, item_p item * that the peer is still connected (even if invalid,) we know * that the peer node is present, though maybe invalid. */ - mtx_lock(&ng_topo_mtx); + TOPOLOGY_RLOCK(); if ((hook == NULL) || NG_HOOK_NOT_VALID(hook) || NG_HOOK_NOT_VALID(peer = NG_HOOK_PEER(hook)) || NG_NODE_NOT_VALID(peernode = NG_PEER_NODE(hook))) { NG_FREE_ITEM(item); TRAP_ERROR(); - mtx_unlock(&ng_topo_mtx); + TOPOLOGY_RUNLOCK(); return (ENETDOWN); } @@ -3598,7 +3602,7 @@ ng_address_hook(node_p here, item_p item NGI_SET_NODE(item, peernode); SET_RETADDR(item, here, retaddr); - mtx_unlock(&ng_topo_mtx); + TOPOLOGY_RUNLOCK(); return (0); } From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 17:48:06 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 05BEB850; Tue, 15 Oct 2013 17:48:06 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mail0.glenbarber.us (mail0.glenbarber.us [IPv6:2607:fc50:1:2300:1001:1001:1001:face]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id B26732A6C; Tue, 15 Oct 2013 17:48:05 +0000 (UTC) Received: from glenbarber.us (c-71-224-221-174.hsd1.nj.comcast.net [71.224.221.174]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: gjb) by mail0.glenbarber.us (Postfix) with ESMTPSA id 206B4B795; Tue, 15 Oct 2013 17:48:04 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.8.3 mail0.glenbarber.us 206B4B795 Authentication-Results: mail0.glenbarber.us; dkim=none reason="no signature"; dkim-adsp=none Date: Tue, 15 Oct 2013 13:48:02 -0400 From: Glen Barber To: Devin Teske Subject: Re: svn commit: r256549 - head/usr.sbin/bsdinstall Message-ID: <20131015174802.GN23579@glenbarber.us> References: <201310151733.r9FHXU8a079161@svn.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="eGLW8NzjjVmDHwQh" Content-Disposition: inline In-Reply-To: <201310151733.r9FHXU8a079161@svn.freebsd.org> X-Operating-System: FreeBSD 11.0-CURRENT amd64 User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 17:48:06 -0000 --eGLW8NzjjVmDHwQh Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Oct 15, 2013 at 05:33:30PM +0000, Devin Teske wrote: > Author: dteske > Date: Tue Oct 15 17:33:30 2013 > New Revision: 256549 > URL: http://svnweb.freebsd.org/changeset/base/256549 >=20 > Log: > Man page updates to go along with SVN r256343, introducing zfsboot. >=20 > Modified: > head/usr.sbin/bsdinstall/bsdinstall.8 >=20 Please bump .Dd date. Glen > Modified: head/usr.sbin/bsdinstall/bsdinstall.8 > =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=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/usr.sbin/bsdinstall/bsdinstall.8 Tue Oct 15 17:11:13 2013 (r2565= 48) > +++ head/usr.sbin/bsdinstall/bsdinstall.8 Tue Oct 15 17:33:30 2013 (r2565= 49) > @@ -108,6 +108,21 @@ installations. Partitions disks, runs > .Xr newfs 8 , > and writes the new system's > .Pa fstab . > +.It Cm zfsboot > +Provides the installer's > +.Pq experimental > +interactive/scriptable ZFS partitioner for multi-disk installations. > +Creates a single > +.Ic zpool > +with datasets and writes to the new system's > +.Pa rc.conf , > +.Pa loader.conf , > +and > +.Pa fstab . > +Supports > +.Xr geli 8 , > +.Xr gnop 8 , > +and many other features. > .It Cm partedit > Provides the installer's interactive manual disk partitioner, with suppo= rt > for multi disk setups, non-UFS file systems, and manual selection of > @@ -315,6 +330,15 @@ the preamble can contain a variable > which is passed to the > .Cm scriptedpart > target to control disk setup. > +Alternatively, > +instead of > +.Ev PARTITIONS , > +the preamble can contain the variable > +.Ev ZFSBOOT_DATASETS > +which is parsed by the > +.Pq experimental > +.Cm zfsboot > +target to control ZFS datasets/options of the boot pool setup. > .Ss SETUP SCRIPT > Following the preamble is an optional shell script, beginning with a #! > declaration. This script will be run at the end of the installation proc= ess --eGLW8NzjjVmDHwQh Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (FreeBSD) iQIcBAEBCAAGBQJSXX/SAAoJELls3eqvi17QgFEP/jtfG99fVy3/ucvaKAYVsNiK Xi9eYT6QVzqIDmjATi8B/RdztQobb07yXRSZUpBsSZOXbJQR2pgvsUDkWymM9fOP croA4ianz4fPXiuPwO1ZP9AcdEbayawL0/qDqSulYkl/DZsRNtvw/N7WUqjMBiuS vtNLODO0O9RXRzpXfW15956+OUk+AJH+e36ylQAVcgd+KDDmK4rLqkY6M+bQ6o0D X75pdbgCu4AAKxjUB9rC3T4YIr6oVYSgbQn8UaFjfvqUjrIYI8EgkYTbdj2kR7re HdCZVdejfcJb01Rdp6pAWswaT+a4Vr3AE2gYpBL4vB1dfRuOCourUWW3euK8ii8W HMci2TKeuxj03qNixq4xLstkVVbzLLFdNO1G8R2FNnO8knLYBMIKxCp/Mui2uL1V KELuySF5NjIgpqGOYXvHYBSD6h2x8qK/A1IZGaeIkXltBQtsAsLCQALgZUlR1J50 e5zeHwTvVkjCWVI8y+2r5s09/iCPH+C66WKgiSQsH78E7bKTKc1SyQejPMAlFkjs OohIBByDNBxbr3Zf1wmPwvITZLmFMDdMmnisnM6Ryh6eGa3h0pJ1syuwB+UMaV5M pSvTpfZzhyvHeVXVczYPSg8O01PLb+bynCQa3HUNLrswfDy+37Qt3uJB4t7IVlVf jodIRdzq7nnYPjCFO+da =VC8Y -----END PGP SIGNATURE----- --eGLW8NzjjVmDHwQh-- From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 17:50:26 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 718E59C0; Tue, 15 Oct 2013 17:50:26 +0000 (UTC) (envelope-from Devin.Teske@fisglobal.com) Received: from mx1.fisglobal.com (mx1.fisglobal.com [199.200.24.190]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 307EE2A8A; Tue, 15 Oct 2013 17:50:25 +0000 (UTC) Received: from smtp.fisglobal.com ([10.132.206.31]) by ltcfislmsgpa02.fnfis.com (8.14.5/8.14.5) with ESMTP id r9FHoNYP010289 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Tue, 15 Oct 2013 12:50:23 -0500 Received: from LTCFISWMSGMB21.FNFIS.com ([169.254.1.103]) by LTCFISWMSGHT03.FNFIS.com ([10.132.206.31]) with mapi id 14.02.0309.002; Tue, 15 Oct 2013 12:50:22 -0500 From: "Teske, Devin" To: Glen Barber Subject: Re: svn commit: r256549 - head/usr.sbin/bsdinstall Thread-Topic: svn commit: r256549 - head/usr.sbin/bsdinstall Thread-Index: AQHOyc8EbKNgvugO0EmyPOOslb2Xbg== Date: Tue, 15 Oct 2013 17:50:21 +0000 Message-ID: <13CA24D6AB415D428143D44749F57D720FC6AB76@LTCFISWMSGMB21.FNFIS.com> References: <201310151733.r9FHXU8a079161@svn.freebsd.org> <20131015174802.GN23579@glenbarber.us> In-Reply-To: <20131015174802.GN23579@glenbarber.us> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.132.253.121] Content-Type: text/plain; charset="us-ascii" Content-ID: <830A013603DAD04F8049D973481D3E24@fisglobal.com> Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.10.8794, 1.0.431, 0.0.0000 definitions=2013-10-15_07:2013-10-15,2013-10-15,1970-01-01 signatures=0 Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , Devin Teske , "src-committers@freebsd.org" , "Teske, Devin" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: Devin Teske List-Id: "SVN commit messages 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, 15 Oct 2013 17:50:26 -0000 On Oct 15, 2013, at 10:48 AM, Glen Barber wrote: > On Tue, Oct 15, 2013 at 05:33:30PM +0000, Devin Teske wrote: >> Author: dteske >> Date: Tue Oct 15 17:33:30 2013 >> New Revision: 256549 >> URL: http://svnweb.freebsd.org/changeset/base/256549 >>=20 >> Log: >> Man page updates to go along with SVN r256343, introducing zfsboot. >>=20 >> Modified: >> head/usr.sbin/bsdinstall/bsdinstall.8 >>=20 >=20 > Please bump .Dd date. >=20 Oops... thanks. I'm on it. --=20 Devin _____________ The information contained in this message is proprietary and/or confidentia= l. If you are not the intended recipient, please: (i) delete the message an= d all copies; (ii) do not disclose, distribute or use the message in any ma= nner; and (iii) notify the sender immediately. In addition, please be aware= that any message addressed to our domain is subject to archiving and revie= w by persons other than the intended recipient. Thank you. From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 17:52:45 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 70BA1C3F; Tue, 15 Oct 2013 17:52:45 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 5EBFA2AE1; Tue, 15 Oct 2013 17:52:45 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FHqjm6091487; Tue, 15 Oct 2013 17:52:45 GMT (envelope-from dteske@svn.freebsd.org) Received: (from dteske@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FHqjPr091486; Tue, 15 Oct 2013 17:52:45 GMT (envelope-from dteske@svn.freebsd.org) Message-Id: <201310151752.r9FHqjPr091486@svn.freebsd.org> From: Devin Teske Date: Tue, 15 Oct 2013 17:52:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256551 - head/usr.sbin/bsdinstall X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 17:52:45 -0000 Author: dteske Date: Tue Oct 15 17:52:44 2013 New Revision: 256551 URL: http://svnweb.freebsd.org/changeset/base/256551 Log: Bump .Dd date (should have been part of SVN r256549) Modified: head/usr.sbin/bsdinstall/bsdinstall.8 Modified: head/usr.sbin/bsdinstall/bsdinstall.8 ============================================================================== --- head/usr.sbin/bsdinstall/bsdinstall.8 Tue Oct 15 17:44:35 2013 (r256550) +++ head/usr.sbin/bsdinstall/bsdinstall.8 Tue Oct 15 17:52:44 2013 (r256551) @@ -25,7 +25,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 6, 2013 +.Dd October 15, 2013 .Dt BSDINSTALL 8 .Os .Sh NAME From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 17:53:02 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id AC4D3D81; Tue, 15 Oct 2013 17:53:02 +0000 (UTC) (envelope-from freebsd@allanjude.com) Received: from mx1.scaleengine.net (beauharnois2.bhs1.scaleengine.net [142.4.218.15]) by mx1.freebsd.org (Postfix) with ESMTP id 819C72AEB; Tue, 15 Oct 2013 17:53:01 +0000 (UTC) Received: from [10.1.1.1] (S01060001abad1dea.hm.shawcable.net [50.70.108.129]) (Authenticated sender: allan.jude@scaleengine.com) by mx1.scaleengine.net (Postfix) with ESMTPSA id B3F6C3CDD6; Tue, 15 Oct 2013 17:52:57 +0000 (UTC) Message-ID: <525D8116.6090808@allanjude.com> Date: Tue, 15 Oct 2013 13:53:26 -0400 From: Allan Jude User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.0.1 MIME-Version: 1.0 To: Devin Teske Subject: Re: svn commit: r256343 - in head/usr.sbin/bsdinstall: . scripts References: <201310112041.r9BKfZeT002056@svn.freebsd.org> <20131015145032.GD98118@admin.xzibition.com> <13CA24D6AB415D428143D44749F57D720FC6A04C@LTCFISWMSGMB21.FNFIS.com> <525D5E07.1070900@allanjude.com> <13CA24D6AB415D428143D44749F57D720FC6A61F@LTCFISWMSGMB21.FNFIS.com> <525D6E24.70901@allanjude.com> <525D70AE.1020103@FreeBSD.org> <525D7385.1050509@allanjude.com> <13CA24D6AB415D428143D44749F57D720FC6A9D1@LTCFISWMSGMB21.FNFIS.com> In-Reply-To: <13CA24D6AB415D428143D44749F57D720FC6A9D1@LTCFISWMSGMB21.FNFIS.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "Teske, Devin" , Andriy Gapon , "svn-src-head@freebsd.org" , Bryan Drewery X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 17:53:02 -0000 On 2013-10-15 13:26, Teske, Devin wrote: > On Oct 15, 2013, at 9:55 AM, Allan Jude wrote: > >> On 2013-10-15 12:43, Andriy Gapon wrote: >>> on 15/10/2013 19:32 Allan Jude said the following: >>>> Lets change ZFSBOOT_BEROOT_NAME to 'ROOT' and remove the /usr/local and >>>> /var/db/pkg datasets entirely (so they become part of the BE). Based on >>>> IRC discussion with bdrewery and Shawn Webb >>> I want to note that a good implementation of BEs should support a dependent >>> datasets feature. Unfortunately, it seems that we do not have any good BE >>> implementation for FreeBSD right now. If we had, personally I'd prefer to have >>> /usr/local in separate filesystem. >>> >> Indeed, on my laptop /usr/local is separate, and I just have compat9x >> installed so my 10 kernel can run the pkgs from my 9.2 kernel >> > So I'm hearing... > > 1. ZFSBOOT_BEROOT_NAME to 'ROOT' > 2. Keep /usr/local dataset > 3. Kill /var/db/pkg dtatset > > Yeah? kill both, until beadm learns to treat a separate /usr/local in the proper way. Nothing is installed to /usr/local by default, so a user can also add their own /usr/local dataset before they install ports/packages if they want to manage it themselves -- Allan Jude From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 17:54:29 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 2505FEDA; Tue, 15 Oct 2013 17:54:29 +0000 (UTC) (envelope-from Devin.Teske@fisglobal.com) Received: from mx1.fisglobal.com (mx1.fisglobal.com [199.200.24.190]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id DCC002B02; Tue, 15 Oct 2013 17:54:28 +0000 (UTC) Received: from smtp.fisglobal.com ([10.132.206.17]) by ltcfislmsgpa01.fnfis.com (8.14.5/8.14.5) with ESMTP id r9FHsQaR004235 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Tue, 15 Oct 2013 12:54:26 -0500 Received: from LTCFISWMSGMB21.FNFIS.com ([169.254.1.103]) by LTCFISWMSGHT06.FNFIS.com ([10.132.206.17]) with mapi id 14.02.0309.002; Tue, 15 Oct 2013 12:54:24 -0500 From: "Teske, Devin" To: Allan Jude Subject: Re: svn commit: r256343 - in head/usr.sbin/bsdinstall: . scripts Thread-Topic: svn commit: r256343 - in head/usr.sbin/bsdinstall: . scripts Thread-Index: AQHOybdAW1uGCLtcyE2zUcTOTrV8Ig== Date: Tue, 15 Oct 2013 17:54:23 +0000 Message-ID: <13CA24D6AB415D428143D44749F57D720FC6ABDF@LTCFISWMSGMB21.FNFIS.com> References: <201310112041.r9BKfZeT002056@svn.freebsd.org> <20131015145032.GD98118@admin.xzibition.com> <13CA24D6AB415D428143D44749F57D720FC6A04C@LTCFISWMSGMB21.FNFIS.com> <525D5E07.1070900@allanjude.com> <13CA24D6AB415D428143D44749F57D720FC6A61F@LTCFISWMSGMB21.FNFIS.com> <525D6E24.70901@allanjude.com> <525D70AE.1020103@FreeBSD.org> <525D7385.1050509@allanjude.com> <13CA24D6AB415D428143D44749F57D720FC6A9D1@LTCFISWMSGMB21.FNFIS.com> <525D8116.6090808@allanjude.com> In-Reply-To: <525D8116.6090808@allanjude.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.132.253.121] Content-Type: text/plain; charset="iso-8859-1" Content-ID: <1E435CEA5146CB49BA63CFEA633D8AC7@fisglobal.com> Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.10.8794, 1.0.431, 0.0.0000 definitions=2013-10-15_07:2013-10-15,2013-10-15,1970-01-01 signatures=0 Cc: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "Teske, Devin" , Andriy Gapon , "svn-src-head@freebsd.org" , Devin Teske , Bryan Drewery X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: Devin Teske List-Id: "SVN commit messages 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, 15 Oct 2013 17:54:29 -0000 On Oct 15, 2013, at 10:53 AM, Allan Jude wrote: > On 2013-10-15 13:26, Teske, Devin wrote: >> On Oct 15, 2013, at 9:55 AM, Allan Jude wrote: >>=20 >>> On 2013-10-15 12:43, Andriy Gapon wrote: >>>> on 15/10/2013 19:32 Allan Jude said the following: >>>>> Lets change ZFSBOOT_BEROOT_NAME to 'ROOT' and remove the /usr/local a= nd >>>>> /var/db/pkg datasets entirely (so they become part of the BE). Based = on >>>>> IRC discussion with bdrewery and Shawn Webb >>>> I want to note that a good implementation of BEs should support a depe= ndent >>>> datasets feature. Unfortunately, it seems that we do not have any goo= d BE >>>> implementation for FreeBSD right now. If we had, personally I'd prefe= r to have >>>> /usr/local in separate filesystem. >>>>=20 >>> Indeed, on my laptop /usr/local is separate, and I just have compat9x >>> installed so my 10 kernel can run the pkgs from my 9.2 kernel >>>=20 >> So I'm hearing... >>=20 >> 1. ZFSBOOT_BEROOT_NAME to 'ROOT' >> 2. Keep /usr/local dataset >> 3. Kill /var/db/pkg dtatset >>=20 >> Yeah? > kill both, until beadm learns to treat a separate /usr/local in the > proper way. Nothing is installed to /usr/local by default, so a user can > also add their own /usr/local dataset before they install ports/packages > if they want to manage it themselves >=20 Excellent, thanks! (and nice fallback) I'm on it. --=20 Devin _____________ The information contained in this message is proprietary and/or confidentia= l. If you are not the intended recipient, please: (i) delete the message an= d all copies; (ii) do not disclose, distribute or use the message in any ma= nner; and (iii) notify the sender immediately. In addition, please be aware= that any message addressed to our domain is subject to archiving and revie= w by persons other than the intended recipient. Thank you. From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 17:59:46 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 032A1399; Tue, 15 Oct 2013 17:59:46 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id CA9C92B4D; Tue, 15 Oct 2013 17:59:45 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FHxjKl094243; Tue, 15 Oct 2013 17:59:45 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FHxgic094212; Tue, 15 Oct 2013 17:59:42 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201310151759.r9FHxgic094212@svn.freebsd.org> From: Alexander Motin Date: Tue, 15 Oct 2013 17:59:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256552 - in head/sys/cam: . ata scsi X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 17:59:46 -0000 Author: mav Date: Tue Oct 15 17:59:41 2013 New Revision: 256552 URL: http://svnweb.freebsd.org/changeset/base/256552 Log: Unify periph invalidation and destruction reporting. Print message containing device model and serial number on invalidation. Requested by: glebius MFC after: 1 week Modified: head/sys/cam/ata/ata_all.c head/sys/cam/ata/ata_all.h head/sys/cam/ata/ata_da.c head/sys/cam/ata/ata_pmp.c head/sys/cam/cam_periph.c head/sys/cam/cam_periph.h head/sys/cam/cam_xpt.c head/sys/cam/cam_xpt_periph.h head/sys/cam/scsi/scsi_all.c head/sys/cam/scsi/scsi_all.h head/sys/cam/scsi/scsi_cd.c head/sys/cam/scsi/scsi_ch.c head/sys/cam/scsi/scsi_da.c head/sys/cam/scsi/scsi_enc.c head/sys/cam/scsi/scsi_pass.c head/sys/cam/scsi/scsi_pt.c head/sys/cam/scsi/scsi_sa.c head/sys/cam/scsi/scsi_sg.c Modified: head/sys/cam/ata/ata_all.c ============================================================================== --- head/sys/cam/ata/ata_all.c Tue Oct 15 17:52:44 2013 (r256551) +++ head/sys/cam/ata/ata_all.c Tue Oct 15 17:59:41 2013 (r256552) @@ -297,6 +297,18 @@ ata_print_ident(struct ata_params *ident } void +ata_print_ident_short(struct ata_params *ident_data) +{ + char product[48], revision[16]; + + cam_strvis(product, ident_data->model, sizeof(ident_data->model), + sizeof(product)); + cam_strvis(revision, ident_data->revision, sizeof(ident_data->revision), + sizeof(revision)); + printf("<%s %s>", product, revision); +} + +void semb_print_ident(struct sep_identify_data *ident_data) { char vendor[9], product[17], revision[5], fw[5], in[7], ins[5]; @@ -311,6 +323,18 @@ semb_print_ident(struct sep_identify_dat vendor, product, revision, fw, in, ins); } +void +semb_print_ident_short(struct sep_identify_data *ident_data) +{ + char vendor[9], product[17], revision[5], fw[5]; + + cam_strvis(vendor, ident_data->vendor_id, 8, sizeof(vendor)); + cam_strvis(product, ident_data->product_id, 16, sizeof(product)); + cam_strvis(revision, ident_data->product_rev, 4, sizeof(revision)); + cam_strvis(fw, ident_data->firmware_rev, 4, sizeof(fw)); + printf("<%s %s %s %s>", vendor, product, revision, fw); +} + uint32_t ata_logical_sector_size(struct ata_params *ident_data) { Modified: head/sys/cam/ata/ata_all.h ============================================================================== --- head/sys/cam/ata/ata_all.h Tue Oct 15 17:52:44 2013 (r256551) +++ head/sys/cam/ata/ata_all.h Tue Oct 15 17:59:41 2013 (r256552) @@ -109,6 +109,7 @@ int ata_status_sbuf(struct ccb_ataio *at int ata_res_sbuf(struct ccb_ataio *ataio, struct sbuf *sb); void ata_print_ident(struct ata_params *ident_data); +void ata_print_ident_short(struct ata_params *ident_data); uint32_t ata_logical_sector_size(struct ata_params *ident_data); uint64_t ata_physical_sector_size(struct ata_params *ident_data); @@ -143,6 +144,7 @@ int ata_identify_match(caddr_t identbuff int ata_static_identify_match(caddr_t identbuffer, caddr_t table_entry); void semb_print_ident(struct sep_identify_data *ident_data); +void semb_print_ident_short(struct sep_identify_data *ident_data); void semb_receive_diagnostic_results(struct ccb_ataio *ataio, u_int32_t retries, void (*cbfcnp)(struct cam_periph *, union ccb*), Modified: head/sys/cam/ata/ata_da.c ============================================================================== --- head/sys/cam/ata/ata_da.c Tue Oct 15 17:52:44 2013 (r256551) +++ head/sys/cam/ata/ata_da.c Tue Oct 15 17:59:41 2013 (r256552) @@ -915,7 +915,6 @@ adaoninvalidate(struct cam_periph *perip bioq_flush(&softc->trim_queue, NULL, ENXIO); disk_gone(softc->disk); - xpt_print(periph->path, "lost device\n"); } static void @@ -925,7 +924,6 @@ adacleanup(struct cam_periph *periph) softc = (struct ada_softc *)periph->softc; - xpt_print(periph->path, "removing device entry\n"); cam_periph_unlock(periph); /* Modified: head/sys/cam/ata/ata_pmp.c ============================================================================== --- head/sys/cam/ata/ata_pmp.c Tue Oct 15 17:52:44 2013 (r256551) +++ head/sys/cam/ata/ata_pmp.c Tue Oct 15 17:59:41 2013 (r256552) @@ -241,7 +241,6 @@ pmponinvalidate(struct cam_periph *perip } } pmprelease(periph, -1); - xpt_print(periph->path, "lost device\n"); } static void @@ -251,7 +250,6 @@ pmpcleanup(struct cam_periph *periph) softc = (struct pmp_softc *)periph->softc; - xpt_print(periph->path, "removing device entry\n"); cam_periph_unlock(periph); /* Modified: head/sys/cam/cam_periph.c ============================================================================== --- head/sys/cam/cam_periph.c Tue Oct 15 17:52:44 2013 (r256551) +++ head/sys/cam/cam_periph.c Tue Oct 15 17:59:41 2013 (r256552) @@ -586,6 +586,8 @@ cam_periph_invalidate(struct cam_periph return; CAM_DEBUG(periph->path, CAM_DEBUG_INFO, ("Periph invalidated\n")); + if (periph->flags & CAM_PERIPH_ANNOUNCED) + xpt_denounce_periph(periph); periph->flags |= CAM_PERIPH_INVALID; periph->flags &= ~CAM_PERIPH_NEW_DEV_FOUND; if (periph->periph_oninval != NULL) @@ -648,7 +650,10 @@ camperiphfree(struct cam_periph *periph) xpt_remove_periph(periph); xpt_unlock_buses(); - CAM_DEBUG(periph->path, CAM_DEBUG_INFO, ("Periph destroyed\n")); + if (periph->flags & CAM_PERIPH_ANNOUNCED) { + xpt_print(periph->path, "Periph destroyed\n"); + } else + CAM_DEBUG(periph->path, CAM_DEBUG_INFO, ("Periph destroyed\n")); if (periph->flags & CAM_PERIPH_NEW_DEV_FOUND) { union ccb ccb; Modified: head/sys/cam/cam_periph.h ============================================================================== --- head/sys/cam/cam_periph.h Tue Oct 15 17:52:44 2013 (r256551) +++ head/sys/cam/cam_periph.h Tue Oct 15 17:59:41 2013 (r256552) @@ -121,6 +121,7 @@ struct cam_periph { #define CAM_PERIPH_NEW_DEV_FOUND 0x10 #define CAM_PERIPH_RECOVERY_INPROG 0x20 #define CAM_PERIPH_FREE 0x80 +#define CAM_PERIPH_ANNOUNCED 0x100 u_int32_t immediate_priority; u_int32_t refcount; SLIST_HEAD(, ccb_hdr) ccb_list; /* For "immediate" requests */ Modified: head/sys/cam/cam_xpt.c ============================================================================== --- head/sys/cam/cam_xpt.c Tue Oct 15 17:52:44 2013 (r256551) +++ head/sys/cam/cam_xpt.c Tue Oct 15 17:59:41 2013 (r256552) @@ -1023,6 +1023,7 @@ xpt_announce_periph(struct cam_periph *p struct cam_path *path = periph->path; mtx_assert(periph->sim->mtx, MA_OWNED); + periph->flags |= CAM_PERIPH_ANNOUNCED; printf("%s%d at %s%d bus %d scbus%d target %d lun %d\n", periph->periph_name, periph->unit_number, @@ -1071,6 +1072,37 @@ xpt_announce_quirks(struct cam_periph *p } } +void +xpt_denounce_periph(struct cam_periph *periph) +{ + struct cam_path *path = periph->path; + + mtx_assert(periph->sim->mtx, MA_OWNED); + printf("%s%d at %s%d bus %d scbus%d target %d lun %d\n", + periph->periph_name, periph->unit_number, + path->bus->sim->sim_name, + path->bus->sim->unit_number, + path->bus->sim->bus_id, + path->bus->path_id, + path->target->target_id, + path->device->lun_id); + printf("%s%d: ", periph->periph_name, periph->unit_number); + if (path->device->protocol == PROTO_SCSI) + scsi_print_inquiry_short(&path->device->inq_data); + else if (path->device->protocol == PROTO_ATA || + path->device->protocol == PROTO_SATAPM) + ata_print_ident_short(&path->device->ident_data); + else if (path->device->protocol == PROTO_SEMB) + semb_print_ident_short( + (struct sep_identify_data *)&path->device->ident_data); + else + printf("Unknown protocol device"); + if (path->device->serial_num_len > 0) + printf(" s/n %.60s", path->device->serial_num); + printf(" detached\n"); +} + + int xpt_getattr(char *buf, size_t len, const char *attr, struct cam_path *path) { Modified: head/sys/cam/cam_xpt_periph.h ============================================================================== --- head/sys/cam/cam_xpt_periph.h Tue Oct 15 17:52:44 2013 (r256551) +++ head/sys/cam/cam_xpt_periph.h Tue Oct 15 17:59:41 2013 (r256552) @@ -47,6 +47,7 @@ void xpt_announce_periph(struct cam_per char *announce_string); void xpt_announce_quirks(struct cam_periph *periph, int quirks, char *bit_string); +void xpt_denounce_periph(struct cam_periph *periph); #endif #endif /* _CAM_CAM_XPT_PERIPH_H */ Modified: head/sys/cam/scsi/scsi_all.c ============================================================================== --- head/sys/cam/scsi/scsi_all.c Tue Oct 15 17:52:44 2013 (r256551) +++ head/sys/cam/scsi/scsi_all.c Tue Oct 15 17:59:41 2013 (r256552) @@ -5249,6 +5249,21 @@ scsi_print_inquiry(struct scsi_inquiry_d dtype, rstr, qtype); } +void +scsi_print_inquiry_short(struct scsi_inquiry_data *inq_data) +{ + char vendor[16], product[48], revision[16]; + + cam_strvis(vendor, inq_data->vendor, sizeof(inq_data->vendor), + sizeof(vendor)); + cam_strvis(product, inq_data->product, sizeof(inq_data->product), + sizeof(product)); + cam_strvis(revision, inq_data->revision, sizeof(inq_data->revision), + sizeof(revision)); + + printf("<%s %s %s>", vendor, product, revision); +} + /* * Table of syncrates that don't follow the "divisible by 4" * rule. This table will be expanded in future SCSI specs. Modified: head/sys/cam/scsi/scsi_all.h ============================================================================== --- head/sys/cam/scsi/scsi_all.h Tue Oct 15 17:52:44 2013 (r256551) +++ head/sys/cam/scsi/scsi_all.h Tue Oct 15 17:59:41 2013 (r256552) @@ -2313,6 +2313,7 @@ char * scsi_cdb_string(u_int8_t *cdb_pt size_t len); void scsi_print_inquiry(struct scsi_inquiry_data *inq_data); +void scsi_print_inquiry_short(struct scsi_inquiry_data *inq_data); u_int scsi_calc_syncsrate(u_int period_factor); u_int scsi_calc_syncparam(u_int period); Modified: head/sys/cam/scsi/scsi_cd.c ============================================================================== --- head/sys/cam/scsi/scsi_cd.c Tue Oct 15 17:52:44 2013 (r256551) +++ head/sys/cam/scsi/scsi_cd.c Tue Oct 15 17:59:41 2013 (r256552) @@ -428,7 +428,6 @@ cdoninvalidate(struct cam_periph *periph camq_remove(&softc->changer->devq, softc->pinfo.index); disk_gone(softc->disk); - xpt_print(periph->path, "lost device, %d refs\n", periph->refcount); } static void @@ -438,8 +437,6 @@ cdcleanup(struct cam_periph *periph) softc = (struct cd_softc *)periph->softc; - xpt_print(periph->path, "removing device entry\n"); - /* * In the queued, non-active case, the device in question * has already been removed from the changer run queue. Since this Modified: head/sys/cam/scsi/scsi_ch.c ============================================================================== --- head/sys/cam/scsi/scsi_ch.c Tue Oct 15 17:52:44 2013 (r256551) +++ head/sys/cam/scsi/scsi_ch.c Tue Oct 15 17:59:41 2013 (r256552) @@ -306,9 +306,6 @@ choninvalidate(struct cam_periph *periph * when it has cleaned up its state. */ destroy_dev_sched_cb(softc->dev, chdevgonecb, periph); - - xpt_print(periph->path, "lost device\n"); - } static void @@ -318,8 +315,6 @@ chcleanup(struct cam_periph *periph) softc = (struct ch_softc *)periph->softc; - xpt_print(periph->path, "removing device entry\n"); - devstat_remove_entry(softc->device_stats); free(softc, M_DEVBUF); Modified: head/sys/cam/scsi/scsi_da.c ============================================================================== --- head/sys/cam/scsi/scsi_da.c Tue Oct 15 17:52:44 2013 (r256551) +++ head/sys/cam/scsi/scsi_da.c Tue Oct 15 17:59:41 2013 (r256552) @@ -1569,9 +1569,6 @@ daoninvalidate(struct cam_periph *periph * done cleaning up its resources. */ disk_gone(softc->disk); - - xpt_print(periph->path, "lost device - %d outstanding, %d refs\n", - softc->outstanding_cmds, periph->refcount); } static void @@ -1581,7 +1578,6 @@ dacleanup(struct cam_periph *periph) softc = (struct da_softc *)periph->softc; - xpt_print(periph->path, "removing device entry\n"); cam_periph_unlock(periph); /* Modified: head/sys/cam/scsi/scsi_enc.c ============================================================================== --- head/sys/cam/scsi/scsi_enc.c Tue Oct 15 17:52:44 2013 (r256551) +++ head/sys/cam/scsi/scsi_enc.c Tue Oct 15 17:59:41 2013 (r256552) @@ -178,8 +178,6 @@ enc_oninvalidate(struct cam_periph *peri callout_drain(&enc->status_updater); destroy_dev_sched_cb(enc->enc_dev, enc_devgonecb, periph); - - xpt_print(periph->path, "lost device\n"); } static void @@ -189,9 +187,6 @@ enc_dtor(struct cam_periph *periph) enc = periph->softc; - xpt_print(periph->path, "removing device entry\n"); - - /* If the sub-driver has a cleanup routine, call it */ if (enc->enc_vec.softc_cleanup != NULL) enc->enc_vec.softc_cleanup(enc); Modified: head/sys/cam/scsi/scsi_pass.c ============================================================================== --- head/sys/cam/scsi/scsi_pass.c Tue Oct 15 17:52:44 2013 (r256551) +++ head/sys/cam/scsi/scsi_pass.c Tue Oct 15 17:59:41 2013 (r256552) @@ -207,11 +207,6 @@ passoninvalidate(struct cam_periph *peri * XXX Handle any transactions queued to the card * with XPT_ABORT_CCB. */ - - if (bootverbose) { - xpt_print(periph->path, "lost device\n"); - } - } static void @@ -221,8 +216,6 @@ passcleanup(struct cam_periph *periph) softc = (struct pass_softc *)periph->softc; - if (bootverbose) - xpt_print(periph->path, "removing device entry\n"); devstat_remove_entry(softc->device_stats); cam_periph_unlock(periph); Modified: head/sys/cam/scsi/scsi_pt.c ============================================================================== --- head/sys/cam/scsi/scsi_pt.c Tue Oct 15 17:52:44 2013 (r256551) +++ head/sys/cam/scsi/scsi_pt.c Tue Oct 15 17:59:41 2013 (r256552) @@ -333,8 +333,6 @@ ptoninvalidate(struct cam_periph *periph * with XPT_ABORT_CCB. */ bioq_flush(&softc->bio_queue, NULL, ENXIO); - - xpt_print(periph->path, "lost device\n"); } static void @@ -344,7 +342,6 @@ ptdtor(struct cam_periph *periph) softc = (struct pt_softc *)periph->softc; - xpt_print(periph->path, "removing device entry\n"); devstat_remove_entry(softc->device_stats); cam_periph_unlock(periph); destroy_dev(softc->dev); Modified: head/sys/cam/scsi/scsi_sa.c ============================================================================== --- head/sys/cam/scsi/scsi_sa.c Tue Oct 15 17:52:44 2013 (r256551) +++ head/sys/cam/scsi/scsi_sa.c Tue Oct 15 17:59:41 2013 (r256552) @@ -1401,9 +1401,6 @@ saoninvalidate(struct cam_periph *periph */ bioq_flush(&softc->bio_queue, NULL, ENXIO); softc->queue_count = 0; - - xpt_print(periph->path, "lost device\n"); - } static void @@ -1414,7 +1411,6 @@ sacleanup(struct cam_periph *periph) softc = (struct sa_softc *)periph->softc; - xpt_print(periph->path, "removing device entry\n"); devstat_remove_entry(softc->device_stats); cam_periph_unlock(periph); destroy_dev(softc->devs.ctl_dev); Modified: head/sys/cam/scsi/scsi_sg.c ============================================================================== --- head/sys/cam/scsi/scsi_sg.c Tue Oct 15 17:52:44 2013 (r256551) +++ head/sys/cam/scsi/scsi_sg.c Tue Oct 15 17:59:41 2013 (r256552) @@ -238,9 +238,6 @@ sgoninvalidate(struct cam_periph *periph * with XPT_ABORT_CCB. */ - if (bootverbose) { - xpt_print(periph->path, "lost device\n"); - } } static void @@ -249,8 +246,6 @@ sgcleanup(struct cam_periph *periph) struct sg_softc *softc; softc = (struct sg_softc *)periph->softc; - if (bootverbose) - xpt_print(periph->path, "removing device entry\n"); devstat_remove_entry(softc->device_stats); From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 18:06:33 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id D051B840; Tue, 15 Oct 2013 18:06:33 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A35EF2C46; Tue, 15 Oct 2013 18:06:33 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FI6XcT099734; Tue, 15 Oct 2013 18:06:33 GMT (envelope-from dteske@svn.freebsd.org) Received: (from dteske@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FI6XXe099733; Tue, 15 Oct 2013 18:06:33 GMT (envelope-from dteske@svn.freebsd.org) Message-Id: <201310151806.r9FI6XXe099733@svn.freebsd.org> From: Devin Teske Date: Tue, 15 Oct 2013 18:06:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256553 - head/usr.sbin/bsdinstall/scripts X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 18:06:33 -0000 Author: dteske Date: Tue Oct 15 18:06:33 2013 New Revision: 256553 URL: http://svnweb.freebsd.org/changeset/base/256553 Log: Make ZFSBOOT_BEROOT_NAME be ROOT by default. This is what sysutils/beadm and OpenSolaris/Illumos beadm use. Remove /usr/local and /var/db/pkg datasets. Andriy Gapon writes: I want to note that a good implementation of BEs should support a dependent datasets feature. Unfortunately, it seems that we do not have any good BE implementation for FreeBSD right now. If we had, personally I'd prefer to have /usr/local in separate filesystem. NOTE: Until then, remove these datasets. Discussed on: src-committers Submitted by: Bryan Drewery Reviewed by: Allan Jude MFC after: 3 days Modified: head/usr.sbin/bsdinstall/scripts/zfsboot Modified: head/usr.sbin/bsdinstall/scripts/zfsboot ============================================================================== --- head/usr.sbin/bsdinstall/scripts/zfsboot Tue Oct 15 17:59:41 2013 (r256552) +++ head/usr.sbin/bsdinstall/scripts/zfsboot Tue Oct 15 18:06:33 2013 (r256553) @@ -47,7 +47,7 @@ f_include $BSDCFG_SHARE/variable.subr # # Default name for the boot environment parent dataset # -: ${ZFSBOOT_BEROOT_NAME:=bootenv} +: ${ZFSBOOT_BEROOT_NAME:=ROOT} # # Default name for the primany boot environment @@ -119,8 +119,6 @@ f_isset ZFSBOOT_DATASETS || ZFSBOOT_DATA # Don't mount /usr so that 'base' files go to the BEROOT /usr mountpoint=/usr,canmount=off - /usr/local # local files (i.e. from packages) separate from base system - # Home directories separated so they are common to all BEs /usr/home setuid=off @@ -137,7 +135,6 @@ f_isset ZFSBOOT_DATASETS || ZFSBOOT_DATA /var mountpoint=/var /var/crash compression=lz4,exec=off,setuid=off /var/db exec=off,setuid=off - /var/db/pkg compression=lz4,exec=off,setuid=off /var/empty exec=off,setuid=off /var/log compression=lz4,exec=off,setuid=off /var/mail compression=lz4,exec=off,setuid=off From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 18:06:58 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C2B3A989; Tue, 15 Oct 2013 18:06:58 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebius.int.ru (glebius.int.ru [81.19.69.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 2453D2C53; Tue, 15 Oct 2013 18:06:57 +0000 (UTC) Received: from cell.glebius.int.ru (localhost [127.0.0.1]) by cell.glebius.int.ru (8.14.7/8.14.7) with ESMTP id r9FI6u8Y072062; Tue, 15 Oct 2013 22:06:56 +0400 (MSK) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebius.int.ru (8.14.7/8.14.7/Submit) id r9FI6uqE072061; Tue, 15 Oct 2013 22:06:56 +0400 (MSK) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebius.int.ru: glebius set sender to glebius@FreeBSD.org using -f Date: Tue, 15 Oct 2013 22:06:56 +0400 From: Gleb Smirnoff To: Alexander Motin Subject: Re: svn commit: r256552 - in head/sys/cam: . ata scsi Message-ID: <20131015180656.GJ52889@FreeBSD.org> References: <201310151759.r9FHxgic094212@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201310151759.r9FHxgic094212@svn.freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 18:06:58 -0000 On Tue, Oct 15, 2013 at 05:59:42PM +0000, Alexander Motin wrote: A> Author: mav A> Date: Tue Oct 15 17:59:41 2013 A> New Revision: 256552 A> URL: http://svnweb.freebsd.org/changeset/base/256552 A> A> Log: A> Unify periph invalidation and destruction reporting. A> Print message containing device model and serial number on invalidation. A> A> Requested by: glebius A> MFC after: 1 week Thank you! -- Totus tuus, Glebius. From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 18:59:33 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 82869FB6; Tue, 15 Oct 2013 18:59:33 +0000 (UTC) (envelope-from andreast@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 60D0F2F99; Tue, 15 Oct 2013 18:59:33 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FIxXoC032082; Tue, 15 Oct 2013 18:59:33 GMT (envelope-from andreast@svn.freebsd.org) Received: (from andreast@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FIxW2I032075; Tue, 15 Oct 2013 18:59:32 GMT (envelope-from andreast@svn.freebsd.org) Message-Id: <201310151859.r9FIxW2I032075@svn.freebsd.org> From: Andreas Tobler Date: Tue, 15 Oct 2013 18:59:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256555 - head/sys/powerpc/powermac X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 18:59:33 -0000 Author: andreast Date: Tue Oct 15 18:59:32 2013 New Revision: 256555 URL: http://svnweb.freebsd.org/changeset/base/256555 Log: Move the resource allocation from the ata_*_probe section to the ata_*_attach section. This prevents a boot crash on nearly all iMacs and PowerMacs/Books. The allocation in the probe section was working before because ata_probe was returning 0 which did not invoke a second DEVICE_PROBE. Now it returns a BUS_PROBE_DEFAULT which can invoke a second DEVICE_PROBE which results in a "failed to reserve resource" exit. PR: powerpc/182978 Discussed with: grehan@ MFC after: 1 Week Modified: head/sys/powerpc/powermac/ata_kauai.c head/sys/powerpc/powermac/ata_macio.c Modified: head/sys/powerpc/powermac/ata_kauai.c ============================================================================== --- head/sys/powerpc/powermac/ata_kauai.c Tue Oct 15 18:07:23 2013 (r256554) +++ head/sys/powerpc/powermac/ata_kauai.c Tue Oct 15 18:59:32 2013 (r256555) @@ -194,12 +194,11 @@ static const u_int udma_timing_shasta[] static int ata_kauai_probe(device_t dev) { - struct ata_channel *ch; struct ata_kauai_softc *sc; u_int32_t devid; phandle_t node; const char *compatstring = NULL; - int i, found, rid; + int i, found; found = 0; devid = pci_get_devid(dev); @@ -216,7 +215,6 @@ ata_kauai_probe(device_t dev) node = ofw_bus_get_node(dev); sc = device_get_softc(dev); bzero(sc, sizeof(struct ata_kauai_softc)); - ch = &sc->sc_ch.sc_ch; compatstring = ofw_bus_get_compat(dev); if (compatstring != NULL && strcmp(compatstring,"shasta-ata") == 0) @@ -227,32 +225,6 @@ ata_kauai_probe(device_t dev) (compatstring == NULL || strcmp(compatstring, "K2-UATA") != 0)) bus_set_resource(dev, SYS_RES_IRQ, 0, 39, 1); - rid = PCIR_BARS; - sc->sc_memr = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, - RF_ACTIVE); - if (sc->sc_memr == NULL) { - device_printf(dev, "could not allocate memory\n"); - return (ENXIO); - } - - /* - * Set up the resource vectors - */ - for (i = ATA_DATA; i <= ATA_COMMAND; i++) { - ch->r_io[i].res = sc->sc_memr; - ch->r_io[i].offset = i*ATA_KAUAI_REGGAP + ATA_KAUAI_REGOFFSET; - } - ch->r_io[ATA_CONTROL].res = sc->sc_memr; - ch->r_io[ATA_CONTROL].offset = ATA_KAUAI_ALTOFFSET; - ata_default_registers(dev); - - ch->unit = 0; - ch->flags |= ATA_USE_16BIT; - - /* XXX: ATAPI DMA is unreliable. We should find out why. */ - ch->flags |= ATA_NO_ATAPI_DMA; - ata_generic_hw(dev); - return (ata_probe(dev)); } @@ -272,12 +244,42 @@ static int ata_kauai_attach(device_t dev) { struct ata_kauai_softc *sc = device_get_softc(dev); + struct ata_channel *ch; + int i, rid; #if USE_DBDMA_IRQ int dbdma_irq_rid = 1; struct resource *dbdma_irq; void *cookie; #endif + ch = &sc->sc_ch.sc_ch; + + rid = PCIR_BARS; + sc->sc_memr = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, + RF_ACTIVE); + if (sc->sc_memr == NULL) { + device_printf(dev, "could not allocate memory\n"); + return (ENXIO); + } + + /* + * Set up the resource vectors + */ + for (i = ATA_DATA; i <= ATA_COMMAND; i++) { + ch->r_io[i].res = sc->sc_memr; + ch->r_io[i].offset = i*ATA_KAUAI_REGGAP + ATA_KAUAI_REGOFFSET; + } + ch->r_io[ATA_CONTROL].res = sc->sc_memr; + ch->r_io[ATA_CONTROL].offset = ATA_KAUAI_ALTOFFSET; + ata_default_registers(dev); + + ch->unit = 0; + ch->flags |= ATA_USE_16BIT; + + /* XXX: ATAPI DMA is unreliable. We should find out why. */ + ch->flags |= ATA_NO_ATAPI_DMA; + ata_generic_hw(dev); + pci_enable_busmaster(dev); /* Init DMA engine */ Modified: head/sys/powerpc/powermac/ata_macio.c ============================================================================== --- head/sys/powerpc/powermac/ata_macio.c Tue Oct 15 18:07:23 2013 (r256554) +++ head/sys/powerpc/powermac/ata_macio.c Tue Oct 15 18:59:32 2013 (r256555) @@ -152,8 +152,6 @@ ata_macio_probe(device_t dev) const char *type = ofw_bus_get_type(dev); const char *name = ofw_bus_get_name(dev); struct ata_macio_softc *sc; - struct ata_channel *ch; - int rid, i; if (strcmp(type, "ata") != 0 && strcmp(type, "ide") != 0) @@ -161,7 +159,6 @@ ata_macio_probe(device_t dev) sc = device_get_softc(dev); bzero(sc, sizeof(struct ata_macio_softc)); - ch = &sc->sc_ch.sc_ch; if (strcmp(name,"ata-4") == 0) { device_set_desc(dev,"Apple MacIO Ultra ATA Controller"); @@ -173,7 +170,23 @@ ata_macio_probe(device_t dev) sc->max_mode = ATA_WDMA2; } + return (ata_probe(dev)); +} + +static int +ata_macio_attach(device_t dev) +{ + struct ata_macio_softc *sc = device_get_softc(dev); + uint32_t timingreg; + struct ata_channel *ch; + int rid, i; + + /* + * Allocate resources + */ + rid = 0; + ch = &sc->sc_ch.sc_ch; sc->sc_mem = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &rid, RF_ACTIVE); if (sc->sc_mem == NULL) { @@ -196,15 +209,6 @@ ata_macio_probe(device_t dev) ch->flags |= ATA_USE_16BIT | ATA_NO_ATAPI_DMA; ata_generic_hw(dev); - return (ata_probe(dev)); -} - -static int -ata_macio_attach(device_t dev) -{ - struct ata_macio_softc *sc = device_get_softc(dev); - uint32_t timingreg; - #if USE_DBDMA_IRQ int dbdma_irq_rid = 1; struct resource *dbdma_irq; From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 20:21:28 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 92515578; Tue, 15 Oct 2013 20:21:28 +0000 (UTC) (envelope-from tuexen@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 657982596; Tue, 15 Oct 2013 20:21:28 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FKLSpR078854; Tue, 15 Oct 2013 20:21:28 GMT (envelope-from tuexen@svn.freebsd.org) Received: (from tuexen@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FKLSNC078852; Tue, 15 Oct 2013 20:21:28 GMT (envelope-from tuexen@svn.freebsd.org) Message-Id: <201310152021.r9FKLSNC078852@svn.freebsd.org> From: Michael Tuexen Date: Tue, 15 Oct 2013 20:21:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256556 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 20:21:28 -0000 Author: tuexen Date: Tue Oct 15 20:21:27 2013 New Revision: 256556 URL: http://svnweb.freebsd.org/changeset/base/256556 Log: Remove a buggy comparision when setting manually the path MTU. After fixing, the comparision would have become redundant. Thanks to Andrew Galante for reporting the issue. MFC after: 3 days Modified: head/sys/netinet/sctp_constants.h head/sys/netinet/sctp_usrreq.c Modified: head/sys/netinet/sctp_constants.h ============================================================================== --- head/sys/netinet/sctp_constants.h Tue Oct 15 18:59:32 2013 (r256555) +++ head/sys/netinet/sctp_constants.h Tue Oct 15 20:21:27 2013 (r256556) @@ -726,7 +726,6 @@ __FBSDID("$FreeBSD$"); /* small chunk store for looking at chunk_list in auth */ #define SCTP_SMALL_CHUNK_STORE 260 -#define SCTP_DEFAULT_MINSEGMENT 512 /* MTU size ... if no mtu disc */ #define SCTP_HOW_MANY_SECRETS 2 /* how many secrets I keep */ #define SCTP_NUMBER_OF_SECRETS 8 /* or 8 * 4 = 32 octets */ Modified: head/sys/netinet/sctp_usrreq.c ============================================================================== --- head/sys/netinet/sctp_usrreq.c Tue Oct 15 18:59:32 2013 (r256555) +++ head/sys/netinet/sctp_usrreq.c Tue Oct 15 20:21:27 2013 (r256556) @@ -4796,11 +4796,9 @@ sctp_setopt(struct socket *so, int optna SCTP_FROM_SCTP_USRREQ + SCTP_LOC_10); } net->dest_state |= SCTP_ADDR_NO_PMTUD; - if (paddrp->spp_pathmtu > SCTP_DEFAULT_MINSEGMENT) { - net->mtu = paddrp->spp_pathmtu + ovh; - if (net->mtu < stcb->asoc.smallest_mtu) { - sctp_pathmtu_adjustment(stcb, net->mtu); - } + net->mtu = paddrp->spp_pathmtu + ovh; + if (net->mtu < stcb->asoc.smallest_mtu) { + sctp_pathmtu_adjustment(stcb, net->mtu); } } if (paddrp->spp_flags & SPP_PMTUD_ENABLE) { @@ -4920,11 +4918,9 @@ sctp_setopt(struct socket *so, int optna SCTP_FROM_SCTP_USRREQ + SCTP_LOC_10); } net->dest_state |= SCTP_ADDR_NO_PMTUD; - if (paddrp->spp_pathmtu > SCTP_DEFAULT_MINSEGMENT) { - net->mtu = paddrp->spp_pathmtu + ovh; - if (net->mtu < stcb->asoc.smallest_mtu) { - sctp_pathmtu_adjustment(stcb, net->mtu); - } + net->mtu = paddrp->spp_pathmtu + ovh; + if (net->mtu < stcb->asoc.smallest_mtu) { + sctp_pathmtu_adjustment(stcb, net->mtu); } } sctp_stcb_feature_on(inp, stcb, SCTP_PCB_FLAGS_DO_NOT_PMTUD); From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 20:57:40 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id F0402307; Tue, 15 Oct 2013 20:57:40 +0000 (UTC) (envelope-from peter@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id CDDA927EA; Tue, 15 Oct 2013 20:57:40 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FKvevB095361; Tue, 15 Oct 2013 20:57:40 GMT (envelope-from peter@svn.freebsd.org) Received: (from peter@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FKve8B095359; Tue, 15 Oct 2013 20:57:40 GMT (envelope-from peter@svn.freebsd.org) Message-Id: <201310152057.r9FKve8B095359@svn.freebsd.org> From: Peter Wemm Date: Tue, 15 Oct 2013 20:57:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256557 - head/usr.bin/uname X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 20:57:41 -0000 Author: peter Date: Tue Oct 15 20:57:40 2013 New Revision: 256557 URL: http://svnweb.freebsd.org/changeset/base/256557 Log: Add -K (__FreeBSD_version of kernel) and -U (__FreeBSD_version of userland). Things like Makefile.inc1 resort to parsing /usr/include/osreldate.h with awk because this isn't easily available by other means. The separation of user and kernel versions is important for jail/chroot environments. Modified: head/usr.bin/uname/uname.1 head/usr.bin/uname/uname.c Modified: head/usr.bin/uname/uname.1 ============================================================================== --- head/usr.bin/uname/uname.1 Tue Oct 15 20:21:27 2013 (r256556) +++ head/usr.bin/uname/uname.1 Tue Oct 15 20:57:40 2013 (r256557) @@ -36,7 +36,7 @@ .Nd display information about the system .Sh SYNOPSIS .Nm -.Op Fl aimnoprsv +.Op Fl aiKmnoprsUv .Sh DESCRIPTION The .Nm @@ -55,6 +55,10 @@ and were specified. .It Fl i Write the kernel ident to standard output. +.It Fl K +Write the +.Fx +version of the kernel. .It Fl m Write the type of the current hardware platform to standard output. .It Fl n @@ -70,6 +74,10 @@ Write the current release level of the o to standard output. .It Fl s Write the name of the operating system implementation to standard output. +.It Fl U +Write the +.Fx +version of the user environment. .It Fl v Write the version level of this release of the operating system to standard output. @@ -79,6 +87,14 @@ If the .Fl a flag is specified, or multiple flags are specified, all output is written on a single line, separated by spaces. +.Pp +The +.Fl K +and +.Fl U +flags are intended to be used for fine grain differentiation of incremental +.Fx +development and user visible changes. .Sh ENVIRONMENT An environment variable composed of the string .Ev UNAME_ @@ -91,6 +107,8 @@ of the environment variable. .Sh EXIT STATUS .Ex -std .Sh SEE ALSO +.Xr feature_present 3 , +.Xr getosreldate 3 , .Xr sysctl 3 , .Xr uname 3 , .Xr sysctl 8 @@ -104,3 +122,10 @@ specification. The .Nm command appeared in PWB UNIX. +.Pp +The +.Fl K +and +.Fl U +extension flags appeared in +.Fx 11.0 . Modified: head/usr.bin/uname/uname.c ============================================================================== --- head/usr.bin/uname/uname.c Tue Oct 15 20:21:27 2013 (r256556) +++ head/usr.bin/uname/uname.c Tue Oct 15 20:57:40 2013 (r256557) @@ -54,6 +54,8 @@ static const char sccsid[] = "@(#)uname. #include #include +#include + #define MFLAG 0x01 #define NFLAG 0x02 #define PFLAG 0x04 @@ -61,10 +63,12 @@ static const char sccsid[] = "@(#)uname. #define SFLAG 0x10 #define VFLAG 0x20 #define IFLAG 0x40 +#define UFLAG 0x80 +#define KFLAG 0x100 typedef void (*get_t)(void); static get_t get_ident, get_platform, get_hostname, get_arch, - get_release, get_sysname, get_version; + get_release, get_sysname, get_kernvers, get_uservers, get_version; static void native_ident(void); static void native_platform(void); @@ -73,11 +77,13 @@ static void native_arch(void); static void native_release(void); static void native_sysname(void); static void native_version(void); +static void native_kernvers(void); +static void native_uservers(void); static void print_uname(u_int); static void setup_get(void); static void usage(void); -static char *ident, *platform, *hostname, *arch, *release, *sysname, *version; +static char *ident, *platform, *hostname, *arch, *release, *sysname, *version, *kernvers, *uservers; static int space; int @@ -89,7 +95,7 @@ main(int argc, char *argv[]) setup_get(); flags = 0; - while ((ch = getopt(argc, argv, "aimnoprsv")) != -1) + while ((ch = getopt(argc, argv, "aiKmnoprsUv")) != -1) switch(ch) { case 'a': flags |= (MFLAG | NFLAG | RFLAG | SFLAG | VFLAG); @@ -97,6 +103,9 @@ main(int argc, char *argv[]) case 'i': flags |= IFLAG; break; + case 'K': + flags |= KFLAG; + break; case 'm': flags |= MFLAG; break; @@ -113,6 +122,9 @@ main(int argc, char *argv[]) case 'o': flags |= SFLAG; break; + case 'U': + flags |= UFLAG; + break; case 'v': flags |= VFLAG; break; @@ -153,6 +165,8 @@ setup_get(void) CHECK_ENV("m", platform); CHECK_ENV("p", arch); CHECK_ENV("i", ident); + CHECK_ENV("K", kernvers); + CHECK_ENV("U", uservers); } #define PRINT_FLAG(flags,flag,var) \ @@ -176,6 +190,8 @@ print_uname(u_int flags) PRINT_FLAG(flags, MFLAG, platform); PRINT_FLAG(flags, PFLAG, arch); PRINT_FLAG(flags, IFLAG, ident); + PRINT_FLAG(flags, KFLAG, kernvers); + PRINT_FLAG(flags, UFLAG, uservers); printf("\n"); } @@ -244,8 +260,26 @@ NATIVE_SYSCTLNAME_GET(ident, "kern.ident } NATIVE_SET; static void +native_uservers(void) +{ + static char buf[128]; + + snprintf(buf, sizeof(buf), "%d", __FreeBSD_version); + uservers = buf; +} + +static void +native_kernvers(void) +{ + static char buf[128]; + + snprintf(buf, sizeof(buf), "%d", getosreldate()); + kernvers = buf; +} + +static void usage(void) { - fprintf(stderr, "usage: uname [-aimnoprsv]\n"); + fprintf(stderr, "usage: uname [-aiKmnoprsUv]\n"); exit(1); } From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 21:00:31 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 686724CE; Tue, 15 Oct 2013 21:00:31 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 5609D281A; Tue, 15 Oct 2013 21:00:31 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FL0VIH096952; Tue, 15 Oct 2013 21:00:31 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FL0VUq096929; Tue, 15 Oct 2013 21:00:31 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201310152100.r9FL0VUq096929@svn.freebsd.org> From: Xin LI Date: Tue, 15 Oct 2013 21:00:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-svnadmin@freebsd.org Subject: svn commit: r256558 - svnadmin/conf X-SVN-Group: svnadmin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 21:00:31 -0000 Author: delphij Date: Tue Oct 15 21:00:30 2013 New Revision: 256558 URL: http://svnweb.freebsd.org/changeset/base/256558 Log: Turn releng/9.2 over to secteam. Approved by: re (gjb) Modified: svnadmin/conf/approvers Modified: svnadmin/conf/approvers ============================================================================== --- svnadmin/conf/approvers Tue Oct 15 20:57:40 2013 (r256557) +++ svnadmin/conf/approvers Tue Oct 15 21:00:30 2013 (r256558) @@ -21,8 +21,7 @@ #^stable/9/ re #^stable/8/ re #^stable/7/ re -^releng/9.2/ re -^releng/9.[0-1]/ (security-officer|so) +^releng/9.[0-2]/ (security-officer|so) ^releng/8.[0-4]/ (security-officer|so) ^releng/7.[0-4]/ (security-officer|so) ^releng/6.[0-4]/ (security-officer|so) From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 21:04:46 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id D82BA8E3; Tue, 15 Oct 2013 21:04:46 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id C561C2894; Tue, 15 Oct 2013 21:04:46 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FL4kRH099805; Tue, 15 Oct 2013 21:04:46 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FL4k0B099804; Tue, 15 Oct 2013 21:04:46 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201310152104.r9FL4k0B099804@svn.freebsd.org> From: Xin LI Date: Tue, 15 Oct 2013 21:04:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256561 - head/sbin/gvinum X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 21:04:46 -0000 Author: delphij Date: Tue Oct 15 21:04:46 2013 New Revision: 256561 URL: http://svnweb.freebsd.org/changeset/base/256561 Log: Prevent an unlikely, but real double free issue in gvinum(8). Coverity ID: 1018965 Modified: head/sbin/gvinum/gvinum.c Modified: head/sbin/gvinum/gvinum.c ============================================================================== --- head/sbin/gvinum/gvinum.c Tue Oct 15 21:04:18 2013 (r256560) +++ head/sbin/gvinum/gvinum.c Tue Oct 15 21:04:46 2013 (r256561) @@ -421,6 +421,7 @@ create_drive(char *device) const char *errstr; char *drivename, *dname; int drives, i, flags, volumes, subdisks, plexes; + int found = 0; flags = plexes = subdisks = volumes = 0; drives = 1; @@ -448,10 +449,8 @@ create_drive(char *device) errstr = gctl_issue(req); if (errstr != NULL) { warnx("error creating drive: %s", errstr); - gctl_free(req); - return (NULL); + drivename = NULL; } else { - gctl_free(req); /* XXX: This is needed because we have to make sure the drives * are created before we return. */ /* Loop until it's in the config. */ @@ -461,14 +460,18 @@ create_drive(char *device) /* If we got a different name, quit. */ if (dname == NULL) continue; - if (strcmp(dname, drivename)) { - free(dname); - return (drivename); - } + if (strcmp(dname, drivename)) + found = 1; free(dname); dname = NULL; + if (found) + break; usleep(100000); /* Sleep for 0.1s */ } + if (found == 0) { + warnx("error creating drive"); + drivename = NULL; + } } gctl_free(req); return (drivename); From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 21:08:37 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 9A5ACAAF; Tue, 15 Oct 2013 21:08:37 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 86CC628C7; Tue, 15 Oct 2013 21:08:37 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FL8bVY001205; Tue, 15 Oct 2013 21:08:37 GMT (envelope-from jhb@svn.freebsd.org) Received: (from jhb@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FL8bsY001204; Tue, 15 Oct 2013 21:08:37 GMT (envelope-from jhb@svn.freebsd.org) Message-Id: <201310152108.r9FL8bsY001204@svn.freebsd.org> From: John Baldwin Date: Tue, 15 Oct 2013 21:08:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r256562 - stable/10/sys/boot/i386/btx/btx X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 21:08:37 -0000 Author: jhb Date: Tue Oct 15 21:08:37 2013 New Revision: 256562 URL: http://svnweb.freebsd.org/changeset/base/256562 Log: MFC 256293: Sanitize the %eflags returned by BIOS routines. Some BIOS routines enter protected mode and may leave protected-mode-specific flags like PSL_NT set when they return to real mode. This can cause a fault when BTX re-enters protected mode after the BIOS mode returns. Approved by: re (gjb) Modified: stable/10/sys/boot/i386/btx/btx/btx.S Directory Properties: stable/10/sys/ (props changed) stable/10/sys/boot/ (props changed) Modified: stable/10/sys/boot/i386/btx/btx/btx.S ============================================================================== --- stable/10/sys/boot/i386/btx/btx/btx.S Tue Oct 15 21:04:46 2013 (r256561) +++ stable/10/sys/boot/i386/btx/btx/btx.S Tue Oct 15 21:08:37 2013 (r256562) @@ -41,6 +41,8 @@ .set PSL_RESERVED_DEFAULT,0x00000002 .set PSL_T,0x00000100 # Trap flag .set PSL_I,0x00000200 # Interrupt enable flag + .set PSL_D,0x00000400 # String instruction direction + .set PSL_NT,0x00004000 # Nested task flag .set PSL_VM,0x00020000 # Virtual 8086 mode flag .set PSL_AC,0x00040000 # Alignment check flag /* @@ -611,8 +613,8 @@ rret_tramp: movw $MEM_ESPR-0x08,%sp # R pushl %ds # regs pushl %es pushfl # Save %eflags - cli # Disable interrupts - std # String ops dec + pushl $PSL_RESERVED_DEFAULT|PSL_D # Use clean %eflags with + popfl # string ops dec xorw %ax,%ax # Reset seg movw %ax,%ds # regs movw %ax,%es # (%ss is already 0) @@ -675,6 +677,7 @@ rret_tramp.1: xorl %ecx,%ecx # Zero testl $V86F_FLAGS,%edx # User wants flags? jz rret_tramp.3 # No movl MEM_ESPR-0x3c,%eax # Read real mode flags + andl $~(PSL_T|PSL_NT),%eax # Clear unsafe flags movw %ax,-0x08(%esi) # Update user flags (low 16) /* * Return to the user task From owner-svn-src-all@FreeBSD.ORG Tue Oct 15 21:28:52 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 778D843B; Tue, 15 Oct 2013 21:28:52 +0000 (UTC) (envelope-from emax@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 6576D29EB; Tue, 15 Oct 2013 21:28:52 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9FLSqPW011834; Tue, 15 Oct 2013 21:28:52 GMT (envelope-from emax@svn.freebsd.org) Received: (from emax@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9FLSqTl011833; Tue, 15 Oct 2013 21:28:52 GMT (envelope-from emax@svn.freebsd.org) Message-Id: <201310152128.r9FLSqTl011833@svn.freebsd.org> From: Maksim Yevmenkin Date: Tue, 15 Oct 2013 21:28:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256563 - head/sys/net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 15 Oct 2013 21:28:52 -0000 Author: emax Date: Tue Oct 15 21:28:51 2013 New Revision: 256563 URL: http://svnweb.freebsd.org/changeset/base/256563 Log: In the flowtable scanner, restart the scan at the last found position, not at position 0. Changes the scanner from O(N^2) to O(N). Submitted by: scottl Obtained from: Netflix, Inc MFC after: 3 weeks Modified: head/sys/net/flowtable.c Modified: head/sys/net/flowtable.c ============================================================================== --- head/sys/net/flowtable.c Tue Oct 15 21:08:37 2013 (r256562) +++ head/sys/net/flowtable.c Tue Oct 15 21:28:51 2013 (r256563) @@ -1401,7 +1401,7 @@ fle_free(struct flentry *fle, struct flo static void flowtable_free_stale(struct flowtable *ft, struct rtentry *rt) { - int curbit = 0, count; + int curbit = 0, count, tmpsize; struct flentry *fle, **flehead, *fleprev; struct flentry *flefreehead, *flefreetail, *fletmp; bitstr_t *mask, *tmpmask; @@ -1410,6 +1410,7 @@ flowtable_free_stale(struct flowtable *f flefreehead = flefreetail = NULL; mask = flowtable_mask(ft); tmpmask = ft->ft_tmpmask; + tmpsize = ft->ft_size; memcpy(tmpmask, mask, ft->ft_size/8); /* * XXX Note to self, bit_ffs operates at the byte level @@ -1479,7 +1480,9 @@ flowtable_free_stale(struct flowtable *f bit_clear(mask, curbit); FL_ENTRY_UNLOCK(ft, curbit); bit_clear(tmpmask, curbit); - bit_ffs(tmpmask, ft->ft_size, &curbit); + tmpmask += (curbit / 8); + tmpsize -= (curbit / 8) * 8; + bit_ffs(tmpmask, tmpsize, &curbit); } count = 0; while ((fle = flefreehead) != NULL) { From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 00:58:48 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 7A3472F8; Wed, 16 Oct 2013 00:58:48 +0000 (UTC) (envelope-from neel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 66515242D; Wed, 16 Oct 2013 00:58:48 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G0wmUb036035; Wed, 16 Oct 2013 00:58:48 GMT (envelope-from neel@svn.freebsd.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G0wmOJ036034; Wed, 16 Oct 2013 00:58:48 GMT (envelope-from neel@svn.freebsd.org) Message-Id: <201310160058.r9G0wmOJ036034@svn.freebsd.org> From: Neel Natu Date: Wed, 16 Oct 2013 00:58:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256570 - head/sys/amd64/vmm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 00:58:48 -0000 Author: neel Date: Wed Oct 16 00:58:47 2013 New Revision: 256570 URL: http://svnweb.freebsd.org/changeset/base/256570 Log: Fix the witness warning that warned against calling uiomove() while holding the 'vmmdev_mtx' in vmmdev_rw(). Rely on the 'si_threadcount' accounting to ensure that we never destroy the VM device node while it has operations in progress (e.g. ioctl, mmap etc). Reported by: grehan Reviewed by: grehan Modified: head/sys/amd64/vmm/vmm_dev.c Modified: head/sys/amd64/vmm/vmm_dev.c ============================================================================== --- head/sys/amd64/vmm/vmm_dev.c Tue Oct 15 23:56:31 2013 (r256569) +++ head/sys/amd64/vmm/vmm_dev.c Wed Oct 16 00:58:47 2013 (r256570) @@ -60,7 +60,10 @@ struct vmmdev_softc { struct vm *vm; /* vm instance cookie */ struct cdev *cdev; SLIST_ENTRY(vmmdev_softc) link; + int flags; }; +#define VSC_LINKED 0x01 + static SLIST_HEAD(, vmmdev_softc) head; static struct mtx vmmdev_mtx; @@ -104,7 +107,6 @@ vmmdev_rw(struct cdev *cdev, struct uio static char zerobuf[PAGE_SIZE]; error = 0; - mtx_lock(&vmmdev_mtx); sc = vmmdev_lookup2(cdev); if (sc == NULL) error = ENXIO; @@ -134,8 +136,6 @@ vmmdev_rw(struct cdev *cdev, struct uio vm_gpa_release(cookie); } } - - mtx_unlock(&vmmdev_mtx); return (error); } @@ -379,34 +379,28 @@ vmmdev_mmap_single(struct cdev *cdev, vm int error; struct vmmdev_softc *sc; - mtx_lock(&vmmdev_mtx); - sc = vmmdev_lookup2(cdev); if (sc != NULL && (nprot & PROT_EXEC) == 0) error = vm_get_memobj(sc->vm, *offset, size, offset, object); else error = EINVAL; - mtx_unlock(&vmmdev_mtx); - return (error); } static void -vmmdev_destroy(struct vmmdev_softc *sc, boolean_t unlink) +vmmdev_destroy(void *arg) { - /* - * XXX must stop virtual machine instances that may be still - * running and cleanup their state. - */ - if (sc->cdev) + struct vmmdev_softc *sc = arg; + + if (sc->cdev != NULL) destroy_dev(sc->cdev); - if (sc->vm) + if (sc->vm != NULL) vm_destroy(sc->vm); - if (unlink) { + if ((sc->flags & VSC_LINKED) != 0) { mtx_lock(&vmmdev_mtx); SLIST_REMOVE(&head, sc, vmmdev_softc, link); mtx_unlock(&vmmdev_mtx); @@ -421,27 +415,38 @@ sysctl_vmm_destroy(SYSCTL_HANDLER_ARGS) int error; char buf[VM_MAX_NAMELEN]; struct vmmdev_softc *sc; + struct cdev *cdev; strlcpy(buf, "beavis", sizeof(buf)); error = sysctl_handle_string(oidp, buf, sizeof(buf), req); if (error != 0 || req->newptr == NULL) return (error); - /* - * XXX TODO if any process has this device open then fail - */ - mtx_lock(&vmmdev_mtx); sc = vmmdev_lookup(buf); - if (sc == NULL) { + if (sc == NULL || sc->cdev == NULL) { mtx_unlock(&vmmdev_mtx); return (EINVAL); } - sc->cdev->si_drv1 = NULL; + /* + * The 'cdev' will be destroyed asynchronously when 'si_threadcount' + * goes down to 0 so we should not do it again in the callback. + */ + cdev = sc->cdev; + sc->cdev = NULL; mtx_unlock(&vmmdev_mtx); - vmmdev_destroy(sc, TRUE); + /* + * Schedule the 'cdev' to be destroyed: + * + * - any new operations on this 'cdev' will return an error (ENXIO). + * + * - when the 'si_threadcount' dwindles down to zero the 'cdev' will + * be destroyed and the callback will be invoked in a taskqueue + * context. + */ + destroy_dev_sched_cb(cdev, vmmdev_destroy, sc); return (0); } @@ -462,6 +467,7 @@ sysctl_vmm_create(SYSCTL_HANDLER_ARGS) { int error; struct vm *vm; + struct cdev *cdev; struct vmmdev_softc *sc, *sc2; char buf[VM_MAX_NAMELEN]; @@ -489,22 +495,28 @@ sysctl_vmm_create(SYSCTL_HANDLER_ARGS) */ mtx_lock(&vmmdev_mtx); sc2 = vmmdev_lookup(buf); - if (sc2 == NULL) + if (sc2 == NULL) { SLIST_INSERT_HEAD(&head, sc, link); + sc->flags |= VSC_LINKED; + } mtx_unlock(&vmmdev_mtx); if (sc2 != NULL) { - vmmdev_destroy(sc, FALSE); + vmmdev_destroy(sc); return (EEXIST); } - error = make_dev_p(MAKEDEV_CHECKNAME, &sc->cdev, &vmmdevsw, NULL, + error = make_dev_p(MAKEDEV_CHECKNAME, &cdev, &vmmdevsw, NULL, UID_ROOT, GID_WHEEL, 0600, "vmm/%s", buf); if (error != 0) { - vmmdev_destroy(sc, TRUE); + vmmdev_destroy(sc); return (error); } + + mtx_lock(&vmmdev_mtx); + sc->cdev = cdev; sc->cdev->si_drv1 = sc; + mtx_unlock(&vmmdev_mtx); return (0); } From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 01:39:27 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id CD264AAA; Wed, 16 Oct 2013 01:39:27 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id B900925C4; Wed, 16 Oct 2013 01:39:27 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G1dR7u057747; Wed, 16 Oct 2013 01:39:27 GMT (envelope-from markj@svn.freebsd.org) Received: (from markj@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G1dQ1d057732; Wed, 16 Oct 2013 01:39:26 GMT (envelope-from markj@svn.freebsd.org) Message-Id: <201310160139.r9G1dQ1d057732@svn.freebsd.org> From: Mark Johnston Date: Wed, 16 Oct 2013 01:39:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256571 - in head: cddl/contrib/opensolaris/lib/libdtrace/common cddl/lib/libdtrace sys/cddl/contrib/opensolaris/uts/common/dtrace sys/cddl/contrib/opensolaris/uts/common/sys sys/cddl/d... X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 01:39:27 -0000 Author: markj Date: Wed Oct 16 01:39:26 2013 New Revision: 256571 URL: http://svnweb.freebsd.org/changeset/base/256571 Log: Add a function, memstr, which can be used to convert a buffer of null-separated strings to a single string. This can be used to print the full arguments of a process using execsnoop (from the DTrace toolkit) or with the following one-liner: dtrace -n 'syscall::execve:return {trace(curpsinfo->pr_psargs);}' Note that this relies on the process arguments being cached via the struct proc, which means that it will not work for argvs longer than kern.ps_arg_cache_limit. However, the following rather non-portable script can be used to extract any argv at exec time: fbt::kern_execve:entry { printf("%s", memstr(args[1]->begin_argv, ' ', args[1]->begin_envv - args[1]->begin_argv)); } The debug.dtrace.memstr_max sysctl limits the maximum argument size to memstr(). Thanks to Brendan Gregg for helpful comments on freebsd-dtrace. Tested by: Fabian Keil (earlier version) MFC after: 2 weeks Modified: head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c head/cddl/lib/libdtrace/psinfo.d head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c head/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h head/sys/cddl/dev/dtrace/dtrace_sysctl.c Modified: head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c ============================================================================== --- head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c Wed Oct 16 00:58:47 2013 (r256570) +++ head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_open.c Wed Oct 16 01:39:26 2013 (r256571) @@ -311,6 +311,10 @@ static const dt_ident_t _dtrace_globals[ &dt_idops_func, "void(@)" }, { "memref", DT_IDENT_FUNC, 0, DIF_SUBR_MEMREF, DT_ATTR_STABCMN, DT_VERS_1_1, &dt_idops_func, "uintptr_t *(void *, size_t)" }, +#if !defined(sun) +{ "memstr", DT_IDENT_FUNC, 0, DIF_SUBR_MEMSTR, DT_ATTR_STABCMN, DT_VERS_1_0, + &dt_idops_func, "string(void *, char, size_t)" }, +#endif { "min", DT_IDENT_AGGFUNC, 0, DTRACEAGG_MIN, DT_ATTR_STABCMN, DT_VERS_1_0, &dt_idops_func, "void(@)" }, { "mod", DT_IDENT_ACTFUNC, 0, DT_ACT_MOD, DT_ATTR_STABCMN, Modified: head/cddl/lib/libdtrace/psinfo.d ============================================================================== --- head/cddl/lib/libdtrace/psinfo.d Wed Oct 16 00:58:47 2013 (r256570) +++ head/cddl/lib/libdtrace/psinfo.d Wed Oct 16 01:39:26 2013 (r256571) @@ -57,7 +57,8 @@ translator psinfo_t < struct proc *T > { pr_gid = T->p_ucred->cr_rgid; pr_egid = T->p_ucred->cr_groups[0]; pr_addr = 0; - pr_psargs = stringof(T->p_args->ar_args); + pr_psargs = (T->p_args->ar_args == 0) ? "" : + memstr(T->p_args->ar_args, ' ', T->p_args->ar_length); pr_arglen = T->p_args->ar_length; pr_jailid = T->p_ucred->cr_prison->pr_id; }; Modified: head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c Wed Oct 16 00:58:47 2013 (r256570) +++ head/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c Wed Oct 16 01:39:26 2013 (r256571) @@ -185,6 +185,9 @@ hrtime_t dtrace_deadman_interval = NANOS hrtime_t dtrace_deadman_timeout = (hrtime_t)10 * NANOSEC; hrtime_t dtrace_deadman_user = (hrtime_t)30 * NANOSEC; hrtime_t dtrace_unregister_defunct_reap = (hrtime_t)60 * NANOSEC; +#if !defined(sun) +int dtrace_memstr_max = 4096; +#endif /* * DTrace External Variables @@ -4920,6 +4923,45 @@ inetout: regs[rd] = (uintptr_t)end + 1; break; } +#if !defined(sun) + case DIF_SUBR_MEMSTR: { + char *str = (char *)mstate->dtms_scratch_ptr; + uintptr_t mem = tupregs[0].dttk_value; + char c = tupregs[1].dttk_value; + size_t size = tupregs[2].dttk_value; + uint8_t n; + int i; + + regs[rd] = 0; + + if (size == 0) + break; + + if (!dtrace_canload(mem, size - 1, mstate, vstate)) + break; + + if (!DTRACE_INSCRATCH(mstate, size)) { + DTRACE_CPUFLAG_SET(CPU_DTRACE_NOSCRATCH); + break; + } + + if (dtrace_memstr_max != 0 && size > dtrace_memstr_max) { + *flags |= CPU_DTRACE_ILLOP; + break; + } + + for (i = 0; i < size - 1; i++) { + n = dtrace_load8(mem++); + str[i] = (n == 0) ? c : n; + } + str[size - 1] = 0; + + regs[rd] = (uintptr_t)str; + mstate->dtms_scratch_ptr += size; + break; + } +#endif + case DIF_SUBR_TYPEREF: { uintptr_t size = 4 * sizeof(uintptr_t); uintptr_t *typeref = (uintptr_t *) P2ROUNDUP(mstate->dtms_scratch_ptr, sizeof(uintptr_t)); @@ -9102,6 +9144,9 @@ dtrace_difo_validate_helper(dtrace_difo_ subr == DIF_SUBR_NTOHL || subr == DIF_SUBR_NTOHLL || subr == DIF_SUBR_MEMREF || +#if !defined(sun) + subr == DIF_SUBR_MEMSTR || +#endif subr == DIF_SUBR_TYPEREF) break; Modified: head/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h Wed Oct 16 00:58:47 2013 (r256570) +++ head/sys/cddl/contrib/opensolaris/uts/common/sys/dtrace.h Wed Oct 16 01:39:26 2013 (r256571) @@ -311,8 +311,9 @@ typedef enum dtrace_probespec { #define DIF_SUBR_SX_SHARED_HELD 48 #define DIF_SUBR_SX_EXCLUSIVE_HELD 49 #define DIF_SUBR_SX_ISEXCLUSIVE 50 +#define DIF_SUBR_MEMSTR 51 -#define DIF_SUBR_MAX 50 /* max subroutine value */ +#define DIF_SUBR_MAX 51 /* max subroutine value */ typedef uint32_t dif_instr_t; Modified: head/sys/cddl/dev/dtrace/dtrace_sysctl.c ============================================================================== --- head/sys/cddl/dev/dtrace/dtrace_sysctl.c Wed Oct 16 00:58:47 2013 (r256570) +++ head/sys/cddl/dev/dtrace/dtrace_sysctl.c Wed Oct 16 01:39:26 2013 (r256571) @@ -80,3 +80,5 @@ sysctl_dtrace_providers(SYSCTL_HANDLER_A SYSCTL_PROC(_debug_dtrace, OID_AUTO, providers, CTLTYPE_STRING | CTLFLAG_RD, 0, 0, sysctl_dtrace_providers, "A", ""); +SYSCTL_INT(_debug_dtrace, OID_AUTO, memstr_max, CTLFLAG_RW, &dtrace_memstr_max, + 0, "largest allowed argument to memstr(), 0 indicates no limit"); From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 01:44:43 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 4C13AC37; Wed, 16 Oct 2013 01:44:43 +0000 (UTC) (envelope-from gjb@FreeBSD.org) Received: from mail0.glenbarber.us (mail0.glenbarber.us [208.86.227.67]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 208D1260A; Wed, 16 Oct 2013 01:44:43 +0000 (UTC) Received: from glenbarber.us (c-71-224-221-174.hsd1.nj.comcast.net [71.224.221.174]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: gjb) by mail0.glenbarber.us (Postfix) with ESMTPSA id A75E3BA19; Wed, 16 Oct 2013 01:44:41 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.8.3 mail0.glenbarber.us A75E3BA19 Authentication-Results: mail0.glenbarber.us; dkim=none reason="no signature"; dkim-adsp=none Date: Tue, 15 Oct 2013 21:44:40 -0400 From: Glen Barber To: Justin Hibbits Subject: Re: svn commit: r256542 - head/sys/powerpc/aim Message-ID: <20131016014440.GZ23579@glenbarber.us> References: <201310151452.r9FEqj7e078165@svn.freebsd.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="5iEYumb6eglF6CEb" Content-Disposition: inline In-Reply-To: <201310151452.r9FEqj7e078165@svn.freebsd.org> X-Operating-System: FreeBSD 11.0-CURRENT amd64 User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 01:44:43 -0000 --5iEYumb6eglF6CEb Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Oct 15, 2013 at 02:52:45PM +0000, Justin Hibbits wrote: > Author: jhibbits > Date: Tue Oct 15 14:52:44 2013 > New Revision: 256542 > URL: http://svnweb.freebsd.org/changeset/base/256542 >=20 > Log: > Move the PMC handling to the first level interrupt handler where it bel= ongs. > Also add the pmc_hook use, to handle callchain tracing. > =20 > MFC after: 1 week >=20 > Modified: > head/sys/powerpc/aim/interrupt.c > head/sys/powerpc/aim/trap.c >=20 I think this breaks the powerpc/WII kernel build. cc -c -O -pipe -std=3Dc99 -g -Wall -Wredundant-decls -Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign -fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option -nostdinc -I. -I/r/releng/universe/head/sys -I/r/releng/universe/head/sys/contrib/altq -I/r/releng/universe/head/sys/contrib/libfdt -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -fno-common -finline-limit=3D15000 --param inline-unit-growth=3D100 --param large-function-growth=3D1000 -msoft-float -Wa,-many -fno-omit-frame-pointer -msoft-float -mno-altivec -ffreestanding -fstack-protector -Werror /r/releng/universe/head/sys/powerpc/aim/interrupt.c /r/releng/universe/head/sys/powerpc/aim/interrupt.c: In function 'powerpc_interrupt': /r/releng/universe/head/sys/powerpc/aim/interrupt.c:106: error: 'pmc_intr' undeclared (first use in this function) /r/releng/universe/head/sys/powerpc/aim/interrupt.c:106: error: (Each undeclared identifier is reported only once /r/releng/universe/head/sys/powerpc/aim/interrupt.c:106: error: for each function it appears in.) *** [interrupt.o] Error code 1 Glen --5iEYumb6eglF6CEb Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (FreeBSD) iQIcBAEBCAAGBQJSXe+HAAoJELls3eqvi17QxzwP/AlvGk5vv/2iHFua5L5YbRwX 1EC3Ck2rNgeLScWUO06SCX0XPCu7IPD2n57vhhQhIDDeDDW84P9LpZtguYz+if7c kn6OU9+sSEFa0IwlwgLGCZ2cZ7ivSIxRhIxyNQ4L36K+UOW0PvNXbIjWAeVR95dN Tfxf61D+YtjQ7r/+Ib7JfCTDaZqp7cSTqeLknYnHD+1bCi0cs6xjfGSQ4LurL+8i 2z/Imu1djL1XSuVkZ5Oq4kKGK+76qo6NYGUvtlW/jzmbWED3f7i+P6UwvoqD748v nl5h4jGy8oa5Mw8Jl3DPQe92qe1g7sGVUm4503GMcezgHLyymA7xQmbmYu24PCgt Qcv6fXWIR7KXHaT5+IJth2eSOSUKkrtNu+2m762VOw8To8QOm3J2FYDgei4K2q5x wY7r4JuLW1sxG4v620sPIDhMJ3tcsnf3hMnzQf2d/2xY3MlaptvvdJubniXAFUhs /pzICTtNjg0EyfB9WVtCOufvzb9KKUnPtZ9frT1MZnVs77d6EdIq79qQzC25sNzX Vm3BHo74puEDkfnv7unoscVGgWGFgbUUSo9YFwZI6Kcf6lY5cNdIGZPuZ2RFL4Fw 7KPdR+L9v/+eTaAT/ux5HAkF+8gbN88NBe+VkmS0X2xsJtLZrthWAb5NO/aAE78X Lmb6Wx0rn8y2MzrZ9KGN =kAeD -----END PGP SIGNATURE----- --5iEYumb6eglF6CEb-- From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 02:10:35 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id CCA49C6; Wed, 16 Oct 2013 02:10:35 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id B99BA271C; Wed, 16 Oct 2013 02:10:35 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G2AZIp075443; Wed, 16 Oct 2013 02:10:35 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G2AZTm075441; Wed, 16 Oct 2013 02:10:35 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201310160210.r9G2AZTm075441@svn.freebsd.org> From: Adrian Chadd Date: Wed, 16 Oct 2013 02:10:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256572 - head/sys/mips/atheros X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 02:10:36 -0000 Author: adrian Date: Wed Oct 16 02:10:35 2013 New Revision: 256572 URL: http://svnweb.freebsd.org/changeset/base/256572 Log: Add bus space barriers to the AR71xx SPI code. This is required for correct, stable operation on the MIPS74k SoCs that are dual-issue, superscalar pipelines. Tested: * AR9344 SoC (MIPS74k) * AR9331 SoC (MIPS24k) Modified: head/sys/mips/atheros/ar71xx_spi.c Modified: head/sys/mips/atheros/ar71xx_spi.c ============================================================================== --- head/sys/mips/atheros/ar71xx_spi.c Wed Oct 16 01:39:26 2013 (r256571) +++ head/sys/mips/atheros/ar71xx_spi.c Wed Oct 16 02:10:35 2013 (r256572) @@ -62,8 +62,16 @@ __FBSDID("$FreeBSD$"); /* * register space access macros */ -#define SPI_WRITE(sc, reg, val) do { \ - bus_write_4(sc->sc_mem_res, (reg), (val)); \ + +#define SPI_BARRIER_WRITE(sc) bus_barrier((sc)->sc_mem_res, 0, 0, \ + BUS_SPACE_BARRIER_WRITE) +#define SPI_BARRIER_READ(sc) bus_barrier((sc)->sc_mem_res, 0, 0, \ + BUS_SPACE_BARRIER_READ) +#define SPI_BARRIER_RW(sc) bus_barrier((sc)->sc_mem_res, 0, 0, \ + BUS_SPACE_BARRIER_READ | BUS_SPACE_BARRIER_WRITE) + +#define SPI_WRITE(sc, reg, val) do { \ + bus_write_4(sc->sc_mem_res, (reg), (val)); \ } while (0) #define SPI_READ(sc, reg) bus_read_4(sc->sc_mem_res, (reg)) @@ -102,12 +110,30 @@ ar71xx_spi_attach(device_t dev) return (ENXIO); } - SPI_WRITE(sc, AR71XX_SPI_FS, 1); + + /* Flush out read before reading the control register */ + SPI_BARRIER_WRITE(sc); + sc->sc_reg_ctrl = SPI_READ(sc, AR71XX_SPI_CTRL); + + /* + * XXX TODO: document what the SPI control register does. + */ SPI_WRITE(sc, AR71XX_SPI_CTRL, 0x43); + + /* + * Ensure the config register write has gone out before configuring + * the chip select mask. + */ + SPI_BARRIER_WRITE(sc); SPI_WRITE(sc, AR71XX_SPI_IO_CTRL, SPI_IO_CTRL_CSMASK); + /* + * .. and ensure the write has gone out before continuing. + */ + SPI_BARRIER_WRITE(sc); + device_add_child(dev, "spibus", -1); return (bus_generic_attach(dev)); } @@ -121,7 +147,15 @@ ar71xx_spi_chip_activate(struct ar71xx_s */ ioctrl &= ~(SPI_IO_CTRL_CS0 << cs); + /* + * Make sure any other writes have gone out to the + * device before changing the chip select line; + * then ensure that it has made it out to the device + * before continuing. + */ + SPI_BARRIER_WRITE(sc); SPI_WRITE(sc, AR71XX_SPI_IO_CTRL, ioctrl); + SPI_BARRIER_WRITE(sc); } static void @@ -150,14 +184,18 @@ ar71xx_spi_txrx(struct ar71xx_spi_softc iod = ioctrl | SPI_IO_CTRL_DO; else iod = ioctrl & ~SPI_IO_CTRL_DO; + SPI_BARRIER_WRITE(sc); SPI_WRITE(sc, AR71XX_SPI_IO_CTRL, iod); + SPI_BARRIER_WRITE(sc); SPI_WRITE(sc, AR71XX_SPI_IO_CTRL, iod | SPI_IO_CTRL_CLK); } /* * Provide falling edge for connected device by clear clock bit. */ + SPI_BARRIER_WRITE(sc); SPI_WRITE(sc, AR71XX_SPI_IO_CTRL, iod); + SPI_BARRIER_WRITE(sc); rds = SPI_READ(sc, AR71XX_SPI_RDS); return (rds & 0xff); @@ -206,8 +244,25 @@ ar71xx_spi_detach(device_t dev) { struct ar71xx_spi_softc *sc = device_get_softc(dev); + /* + * Ensure any other writes to the device are finished + * before we tear down the SPI device. + */ + SPI_BARRIER_WRITE(sc); + + /* + * Restore the control register; ensure it has hit the + * hardware before continuing. + */ SPI_WRITE(sc, AR71XX_SPI_CTRL, sc->sc_reg_ctrl); + SPI_BARRIER_WRITE(sc); + + /* + * And now, put the flash back into mapped IO mode and + * ensure _that_ has completed before we finish up. + */ SPI_WRITE(sc, AR71XX_SPI_FS, 0); + SPI_BARRIER_WRITE(sc); if (sc->sc_mem_res) bus_release_resource(dev, SYS_RES_MEMORY, 0, sc->sc_mem_res); From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 02:46:01 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 88D2C92F; Wed, 16 Oct 2013 02:46:01 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 749AD28F1; Wed, 16 Oct 2013 02:46:01 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G2k1hx092614; Wed, 16 Oct 2013 02:46:01 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G2k1Yq092613; Wed, 16 Oct 2013 02:46:01 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201310160246.r9G2k1Yq092613@svn.freebsd.org> From: Adrian Chadd Date: Wed, 16 Oct 2013 02:46:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256573 - head/sys/mips/atheros X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 02:46:01 -0000 Author: adrian Date: Wed Oct 16 02:46:00 2013 New Revision: 256573 URL: http://svnweb.freebsd.org/changeset/base/256573 Log: Add in a write barrier after each if_arge write. Without correct barriers, this code just plain doesn't work on the mips74k cores (specifically the AR9344.) In particular, the MDIO register accesses need this barriering or MII bus access results in out-of-order garbage. Tested: * AR9344 (mips74k) * AR9331 (mips24k) Modified: head/sys/mips/atheros/if_argevar.h Modified: head/sys/mips/atheros/if_argevar.h ============================================================================== --- head/sys/mips/atheros/if_argevar.h Wed Oct 16 02:10:35 2013 (r256572) +++ head/sys/mips/atheros/if_argevar.h Wed Oct 16 02:46:00 2013 (r256573) @@ -55,10 +55,17 @@ /* * register space access macros */ +#define ARGE_BARRIER_READ(sc) bus_barrier(sc->arge_res, 0, 0, \ + BUS_SPACE_BARRIER_READ) +#define ARGE_BARRIER_WRITE(sc) bus_barrier(sc->arge_res, 0, 0, \ + BUS_SPACE_BARRIER_WRITE) +#define ARGE_BARRIER_RW(sc) bus_barrier(sc->arge_res, 0, 0, \ + BUS_SPACE_BARRIER_READ | \ + BUS_SPACE_BARRIER_WRITE) #define ARGE_WRITE(sc, reg, val) do { \ bus_write_4(sc->arge_res, (reg), (val)); \ + ARGE_BARRIER_WRITE((sc)); \ } while (0) - #define ARGE_READ(sc, reg) bus_read_4(sc->arge_res, (reg)) #define ARGE_SET_BITS(sc, reg, bits) \ @@ -71,6 +78,9 @@ ARGE_WRITE((_sc), (_reg), (_val)) #define ARGE_MDIO_READ(_sc, _reg) \ ARGE_READ((_sc), (_reg)) +#define ARGE_MDIO_BARRIER_READ(_sc) ARGE_BARRIER_READ(_sc) +#define ARGE_MDIO_BARRIER_WRITE(_sc) ARGE_BARRIER_WRITE(_sc) +#define ARGE_MDIO_BARRIER_RW(_sc) ARGE_BARRIER_READ_RW(_sc) #define ARGE_DESC_EMPTY (1 << 31) #define ARGE_DESC_MORE (1 << 24) From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 02:55:32 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 1E5CDC30; Wed, 16 Oct 2013 02:55:32 +0000 (UTC) (envelope-from kevlo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 0B7292970; Wed, 16 Oct 2013 02:55:32 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G2tVNV097800; Wed, 16 Oct 2013 02:55:31 GMT (envelope-from kevlo@svn.freebsd.org) Received: (from kevlo@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G2tV22097799; Wed, 16 Oct 2013 02:55:31 GMT (envelope-from kevlo@svn.freebsd.org) Message-Id: <201310160255.r9G2tV22097799@svn.freebsd.org> From: Kevin Lo Date: Wed, 16 Oct 2013 02:55:31 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256574 - head/usr.sbin/ppp X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 02:55:32 -0000 Author: kevlo Date: Wed Oct 16 02:55:31 2013 New Revision: 256574 URL: http://svnweb.freebsd.org/changeset/base/256574 Log: Fix logic error. MPPE only accepts protocol numbers 0x21 through 0xFA. PR: bin/175974 Modified: head/usr.sbin/ppp/mppe.c Modified: head/usr.sbin/ppp/mppe.c ============================================================================== --- head/usr.sbin/ppp/mppe.c Wed Oct 16 02:46:00 2013 (r256573) +++ head/usr.sbin/ppp/mppe.c Wed Oct 16 02:55:31 2013 (r256574) @@ -168,7 +168,7 @@ MPPEOutput(void *v, struct ccp *ccp, str dictinit = 0; log_Printf(LogDEBUG, "MPPE: Output: Proto %02x (%d bytes)\n", *proto, ilen); - if (*proto < 0x21 && *proto > 0xFA) { + if (*proto < 0x21 || *proto > 0xFA) { log_Printf(LogDEBUG, "MPPE: Output: Not encrypting\n"); ccp->compout += ilen; ccp->uncompout += ilen; From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 03:11:18 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id ACA753EA; Wed, 16 Oct 2013 03:11:18 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 9970D2B0A; Wed, 16 Oct 2013 03:11:18 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G3BIUY007833; Wed, 16 Oct 2013 03:11:18 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G3BIHO007832; Wed, 16 Oct 2013 03:11:18 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201310160311.r9G3BIHO007832@svn.freebsd.org> From: Adrian Chadd Date: Wed, 16 Oct 2013 03:11:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256575 - head/sys/mips/atheros X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 03:11:18 -0000 Author: adrian Date: Wed Oct 16 03:11:18 2013 New Revision: 256575 URL: http://svnweb.freebsd.org/changeset/base/256575 Log: Add in the platform specific quirks to get the AR934x SoC ethernet up and running. * The MAC FIFO configurations needed updating; * Reset the MDIO block at the same time the MAC block is reset; * The default divisor needs changing as the DB120 runs at a higher base MDIO bus clock compared to other chips. The long-term fix is to allow the system to have a target MDIO bus clock rate and then calculate the most suitable divider to meet that. This will likely need implementing before stable external PHY or switch support can be committed. Tested: * AR9344 (mips74k) * AR9331 (mips24k) Modified: head/sys/mips/atheros/if_arge.c Modified: head/sys/mips/atheros/if_arge.c ============================================================================== --- head/sys/mips/atheros/if_arge.c Wed Oct 16 02:55:31 2013 (r256574) +++ head/sys/mips/atheros/if_arge.c Wed Oct 16 03:11:18 2013 (r256575) @@ -90,6 +90,7 @@ MODULE_VERSION(arge, 1); #include "miibus_if.h" #include +#include /* XXX tsk! */ #include #include #include @@ -298,17 +299,38 @@ static void arge_reset_mac(struct arge_softc *sc) { uint32_t reg; + uint32_t reset_reg; /* Step 1. Soft-reset MAC */ ARGE_SET_BITS(sc, AR71XX_MAC_CFG1, MAC_CFG1_SOFT_RESET); DELAY(20); /* Step 2. Punt the MAC core from the central reset register */ - ar71xx_device_stop(sc->arge_mac_unit == 0 ? RST_RESET_GE0_MAC : - RST_RESET_GE1_MAC); + /* + * XXX TODO: migrate this (and other) chip specific stuff into + * a chipdef method. + */ + if (sc->arge_mac_unit == 0) { + reset_reg = RST_RESET_GE0_MAC; + } else { + reset_reg = RST_RESET_GE1_MAC; + } + + /* + * AR934x (and later) also needs the MDIO block reset. + */ + if (ar71xx_soc == AR71XX_SOC_AR9341 || + ar71xx_soc == AR71XX_SOC_AR9342 || + ar71xx_soc == AR71XX_SOC_AR9344) { + if (sc->arge_mac_unit == 0) { + reset_reg |= AR934X_RESET_GE0_MDIO; + } else { + reset_reg |= AR934X_RESET_GE1_MDIO; + } + } + ar71xx_device_stop(reset_reg); DELAY(100); - ar71xx_device_start(sc->arge_mac_unit == 0 ? RST_RESET_GE0_MAC : - RST_RESET_GE1_MAC); + ar71xx_device_start(reset_reg); /* Step 3. Reconfigure MAC block */ ARGE_WRITE(sc, AR71XX_MAC_CFG1, @@ -322,14 +344,46 @@ arge_reset_mac(struct arge_softc *sc) ARGE_WRITE(sc, AR71XX_MAC_MAX_FRAME_LEN, 1536); } +/* + * Fetch the MDIO bus clock rate. + * + * For now, the default is DIV_28 for everything + * bar AR934x, which will be DIV_42. + * + * It will definitely need updating to take into account + * the MDIO bus core clock rate and the target clock + * rate for the chip. + */ +static uint32_t +arge_fetch_mdiobus_clock_rate(struct arge_softc *sc) +{ + + switch (ar71xx_soc) { + case AR71XX_SOC_AR9341: + case AR71XX_SOC_AR9342: + case AR71XX_SOC_AR9344: + return (MAC_MII_CFG_CLOCK_DIV_42); + default: + return (MAC_MII_CFG_CLOCK_DIV_28); + } +} + static void arge_reset_miibus(struct arge_softc *sc) { + uint32_t mdio_div; - /* Reset MII bus */ - ARGE_WRITE(sc, AR71XX_MAC_MII_CFG, MAC_MII_CFG_RESET); + mdio_div = arge_fetch_mdiobus_clock_rate(sc); + + /* + * XXX AR934x and later; should we be also resetting the + * MDIO block(s) using the reset register block? + */ + + /* Reset MII bus; program in the default divisor */ + ARGE_WRITE(sc, AR71XX_MAC_MII_CFG, MAC_MII_CFG_RESET | mdio_div); DELAY(100); - ARGE_WRITE(sc, AR71XX_MAC_MII_CFG, MAC_MII_CFG_CLOCK_DIV_28); + ARGE_WRITE(sc, AR71XX_MAC_MII_CFG, mdio_div); DELAY(100); } @@ -588,9 +642,13 @@ arge_attach(device_t dev) case AR71XX_SOC_AR7242: case AR71XX_SOC_AR9330: case AR71XX_SOC_AR9331: + case AR71XX_SOC_AR9341: + case AR71XX_SOC_AR9342: + case AR71XX_SOC_AR9344: ARGE_WRITE(sc, AR71XX_MAC_FIFO_CFG1, 0x0010ffff); ARGE_WRITE(sc, AR71XX_MAC_FIFO_CFG2, 0x015500aa); break; + /* AR71xx, AR913x */ default: ARGE_WRITE(sc, AR71XX_MAC_FIFO_CFG1, 0x0fff0000); ARGE_WRITE(sc, AR71XX_MAC_FIFO_CFG2, 0x00001fff); @@ -917,12 +975,16 @@ arge_set_pll(struct arge_softc *sc, int case AR71XX_SOC_AR7242: case AR71XX_SOC_AR9330: case AR71XX_SOC_AR9331: + case AR71XX_SOC_AR9341: + case AR71XX_SOC_AR9342: + case AR71XX_SOC_AR9344: fifo_tx = 0x01f00140; break; case AR71XX_SOC_AR9130: case AR71XX_SOC_AR9132: fifo_tx = 0x00780fff; break; + /* AR71xx */ default: fifo_tx = 0x008001ff; } From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 03:15:53 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 0D87D686; Wed, 16 Oct 2013 03:15:53 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id ED4A22B4D; Wed, 16 Oct 2013 03:15:52 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G3FqoE009580; Wed, 16 Oct 2013 03:15:52 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G3Fq6I009578; Wed, 16 Oct 2013 03:15:52 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201310160315.r9G3Fq6I009578@svn.freebsd.org> From: Adrian Chadd Date: Wed, 16 Oct 2013 03:15:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256576 - head/sys/dev/etherswitch/arswitch X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 03:15:53 -0000 Author: adrian Date: Wed Oct 16 03:15:52 2013 New Revision: 256576 URL: http://svnweb.freebsd.org/changeset/base/256576 Log: Initial commit of AR9340 switch SoC support. This is just the chip initialisation code (for now.) It's not linked into the main build as it requires a bunch of other code to be tidied up and committed. But it indeed does function as advertised. Tested: * AR9344 SoC Added: head/sys/dev/etherswitch/arswitch/arswitch_9340.c (contents, props changed) head/sys/dev/etherswitch/arswitch/arswitch_9340.h (contents, props changed) Added: head/sys/dev/etherswitch/arswitch/arswitch_9340.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/etherswitch/arswitch/arswitch_9340.c Wed Oct 16 03:15:52 2013 (r256576) @@ -0,0 +1,203 @@ +/*- + * Copyright (c) 2011-2012 Stefan Bethke. + * Copyright (c) 2013 Adrian Chadd + * 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 +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include /* XXX for probe */ +#include + +#include "mdio_if.h" +#include "miibus_if.h" +#include "etherswitch_if.h" + +/* + * AR9340 specific functions + */ +static int +ar9340_hw_setup(struct arswitch_softc *sc) +{ + + return (0); +} + +/* + * Initialise other global values for the AR9340. + */ +static int +ar9340_hw_global_setup(struct arswitch_softc *sc) +{ + + /* Enable CPU port; disable mirror port */ + arswitch_writereg(sc->sc_dev, AR8X16_REG_CPU_PORT, + AR8X16_CPU_PORT_EN | AR8X16_CPU_MIRROR_DIS); + + /* Setup TAG priority mapping */ + arswitch_writereg(sc->sc_dev, AR8X16_REG_TAG_PRIO, 0xfa50); + + /* Enable aging, MAC replacing */ + arswitch_writereg(sc->sc_dev, AR934X_REG_AT_CTRL, + 0x2b /* 5 min age time */ | + AR934X_AT_CTRL_AGE_EN | + AR934X_AT_CTRL_LEARN_CHANGE); + + /* Enable ARP frame acknowledge */ + arswitch_modifyreg(sc->sc_dev, AR934X_REG_QM_CTRL, + AR934X_QM_CTRL_ARP_EN, AR934X_QM_CTRL_ARP_EN); + + /* Enable Broadcast frames transmitted to the CPU */ + arswitch_modifyreg(sc->sc_dev, AR934X_REG_FLOOD_MASK, + AR934X_FLOOD_MASK_BC_DP(0), + AR934X_FLOOD_MASK_BC_DP(0)); + arswitch_modifyreg(sc->sc_dev, AR934X_REG_FLOOD_MASK, + AR934X_FLOOD_MASK_MC_DP(0), + AR934X_FLOOD_MASK_MC_DP(0)); + + /* Enable MIB counters */ + arswitch_modifyreg(sc->sc_dev, AR8X16_REG_MIB_FUNC0, + AR934X_MIB_ENABLE, AR934X_MIB_ENABLE); + + /* Setup MTU */ + arswitch_modifyreg(sc->sc_dev, AR8X16_REG_GLOBAL_CTRL, + AR7240_GLOBAL_CTRL_MTU_MASK, + SM(1536, AR7240_GLOBAL_CTRL_MTU_MASK)); + + /* Service Tag */ + arswitch_modifyreg(sc->sc_dev, AR8X16_REG_SERVICE_TAG, + AR8X16_SERVICE_TAG_MASK, 0); + + /* Settle time */ + DELAY(1000); + + /* + * Check PHY mode bits. + * + * This dictates whether the connected port is to be wired + * up via GMII or MII. I'm not sure why - this is an internal + * wiring issue. + */ + if (sc->is_gmii) { + device_printf(sc->sc_dev, "%s: GMII\n", __func__); + arswitch_modifyreg(sc->sc_dev, AR934X_REG_OPER_MODE0, + AR934X_OPER_MODE0_MAC_GMII_EN, + AR934X_OPER_MODE0_MAC_GMII_EN); + } else if (sc->is_mii) { + device_printf(sc->sc_dev, "%s: MII\n", __func__); + arswitch_modifyreg(sc->sc_dev, AR934X_REG_OPER_MODE0, + AR934X_OPER_MODE0_PHY_MII_EN, + AR934X_OPER_MODE0_PHY_MII_EN); + } else { + device_printf(sc->sc_dev, "%s: need is_gmii or is_mii set\n", + __func__); + return (ENXIO); + } + + /* + * Whether to connect PHY 4 via MII (ie a switch port) or + * treat it as a CPU port. + */ + if (sc->phy4cpu) { + device_printf(sc->sc_dev, "%s: PHY4 - CPU\n", __func__); + arswitch_modifyreg(sc->sc_dev, AR934X_REG_OPER_MODE1, + AR934X_REG_OPER_MODE1_PHY4_MII_EN, + AR934X_REG_OPER_MODE1_PHY4_MII_EN); + sc->info.es_nports = 4; + } else { + device_printf(sc->sc_dev, "%s: PHY4 - Local\n", __func__); + sc->info.es_nports = 5; + } + + /* Settle time */ + DELAY(1000); + + return (0); +} + +/* + * The AR9340 switch probes (almost) the same as the AR7240 on-chip switch. + * + * However, the support is slightly different. + * + * So instead of checking the PHY revision or mask register contents, + * we simply fall back to a hint check. + */ +int +ar9340_probe(device_t dev) +{ + int is_9340 = 0; + + if (resource_int_value(device_get_name(dev), device_get_unit(dev), + "is_9340", &is_9340) != 0) + return (ENXIO); + + if (is_9340 == 0) + return (ENXIO); + + return (0); +} + +void +ar9340_attach(struct arswitch_softc *sc) +{ + + sc->hal.arswitch_hw_setup = ar9340_hw_setup; + sc->hal.arswitch_hw_global_setup = ar9340_hw_global_setup; + + /* Set the switch vlan capabilities. */ + sc->info.es_vlan_caps = ETHERSWITCH_VLAN_DOT1Q | + ETHERSWITCH_VLAN_PORT | ETHERSWITCH_VLAN_DOUBLE_TAG; + sc->info.es_nvlangroups = AR8X16_MAX_VLANS; +} Added: head/sys/dev/etherswitch/arswitch/arswitch_9340.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/etherswitch/arswitch/arswitch_9340.h Wed Oct 16 03:15:52 2013 (r256576) @@ -0,0 +1,35 @@ +/*- + * Copyright (c) 2011-2012 Stefan Bethke. + * Copyright (c) 2031 Adrian Chadd + * 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$ + */ +#ifndef __ARSWITCH_9340_H__ +#define __ARSWITCH_9340_H__ + +extern int ar9340_probe(device_t dev); +extern void ar9340_attach(struct arswitch_softc *sc); + +#endif /* __ARSWITCH_9340_H__ */ From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 03:19:05 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C05CA8B4; Wed, 16 Oct 2013 03:19:05 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id ACF292B76; Wed, 16 Oct 2013 03:19:05 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G3J5fw011162; Wed, 16 Oct 2013 03:19:05 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G3J5wW011161; Wed, 16 Oct 2013 03:19:05 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201310160319.r9G3J5wW011161@svn.freebsd.org> From: Adrian Chadd Date: Wed, 16 Oct 2013 03:19:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256577 - head/sys/dev/etherswitch/arswitch X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 03:19:05 -0000 Author: adrian Date: Wed Oct 16 03:19:05 2013 New Revision: 256577 URL: http://svnweb.freebsd.org/changeset/base/256577 Log: Prepare to link in the AR934x SoC switch support. * Add an AR9340 switch version entry; * Support the switch being connected via MII; * Add a flag to note that a switch is actually an internal switch rather than an external switch. Now: * The ar9340 switch can interconnect via MII; * Since some slightly different phy/switch register access methods and quirks appear for the internal versus external switch, we will need a flag to mark it as an "internal" switch. Tested: * AR9344 (internal switch) * AR9331 (internal switch) TODO: * Test the AR8316 switch! Modified: head/sys/dev/etherswitch/arswitch/arswitchvar.h Modified: head/sys/dev/etherswitch/arswitch/arswitchvar.h ============================================================================== --- head/sys/dev/etherswitch/arswitch/arswitchvar.h Wed Oct 16 03:15:52 2013 (r256576) +++ head/sys/dev/etherswitch/arswitch/arswitchvar.h Wed Oct 16 03:19:05 2013 (r256577) @@ -34,6 +34,7 @@ typedef enum { AR8X16_SWITCH_AR8216, AR8X16_SWITCH_AR8226, AR8X16_SWITCH_AR8316, + AR8X16_SWITCH_AR9340, } ar8x16_switch_type; /* @@ -49,7 +50,9 @@ struct arswitch_softc { int numphys; /* PHYs we manage */ int is_rgmii; /* PHY mode is RGMII (XXX which PHY?) */ int is_gmii; /* PHY mode is GMII (XXX which PHY?) */ + int is_mii; /* PHY mode is MII (XXX which PHY?) */ int page; + int is_internal_switch; ar8x16_switch_type sc_switchtype; char *ifname[AR8X16_NUM_PHYS]; device_t miibus[AR8X16_NUM_PHYS]; From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 03:37:03 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 8D21DD75; Wed, 16 Oct 2013 03:37:03 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 793582C6B; Wed, 16 Oct 2013 03:37:03 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G3b3YW019897; Wed, 16 Oct 2013 03:37:03 GMT (envelope-from markj@svn.freebsd.org) Received: (from markj@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G3b3R1019896; Wed, 16 Oct 2013 03:37:03 GMT (envelope-from markj@svn.freebsd.org) Message-Id: <201310160337.r9G3b3R1019896@svn.freebsd.org> From: Mark Johnston Date: Wed, 16 Oct 2013 03:37:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r256578 - stable/9/sbin/camcontrol X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 03:37:03 -0000 Author: markj Date: Wed Oct 16 03:37:02 2013 New Revision: 256578 URL: http://svnweb.freebsd.org/changeset/base/256578 Log: Fix an inverted check for the master user in "camcontrol security -U". Modified: stable/9/sbin/camcontrol/camcontrol.c Directory Properties: stable/9/sbin/camcontrol/ (props changed) Modified: stable/9/sbin/camcontrol/camcontrol.c ============================================================================== --- stable/9/sbin/camcontrol/camcontrol.c Wed Oct 16 03:19:05 2013 (r256577) +++ stable/9/sbin/camcontrol/camcontrol.c Wed Oct 16 03:37:02 2013 (r256578) @@ -2743,7 +2743,7 @@ atasecurity(struct cam_device *device, i if (strcasecmp(optarg, "user") == 0) { pwd.ctrl |= ATA_SECURITY_PASSWORD_USER; pwd.ctrl &= ~ATA_SECURITY_PASSWORD_MASTER; - } else if (strcasecmp(optarg, "master") != 0) { + } else if (strcasecmp(optarg, "master") == 0) { pwd.ctrl |= ATA_SECURITY_PASSWORD_MASTER; pwd.ctrl &= ~ATA_SECURITY_PASSWORD_USER; } else { From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 03:37:23 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 8D6B9EAD; Wed, 16 Oct 2013 03:37:23 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 79A8A2C74; Wed, 16 Oct 2013 03:37:23 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G3bNS2019973; Wed, 16 Oct 2013 03:37:23 GMT (envelope-from markj@svn.freebsd.org) Received: (from markj@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G3bNpv019972; Wed, 16 Oct 2013 03:37:23 GMT (envelope-from markj@svn.freebsd.org) Message-Id: <201310160337.r9G3bNpv019972@svn.freebsd.org> From: Mark Johnston Date: Wed, 16 Oct 2013 03:37:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org Subject: svn commit: r256579 - stable/8/sbin/camcontrol X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 03:37:23 -0000 Author: markj Date: Wed Oct 16 03:37:22 2013 New Revision: 256579 URL: http://svnweb.freebsd.org/changeset/base/256579 Log: Fix an inverted check for the master user in "camcontrol security -U". Modified: stable/8/sbin/camcontrol/camcontrol.c Directory Properties: stable/8/sbin/camcontrol/ (props changed) Modified: stable/8/sbin/camcontrol/camcontrol.c ============================================================================== --- stable/8/sbin/camcontrol/camcontrol.c Wed Oct 16 03:37:02 2013 (r256578) +++ stable/8/sbin/camcontrol/camcontrol.c Wed Oct 16 03:37:22 2013 (r256579) @@ -2675,7 +2675,7 @@ atasecurity(struct cam_device *device, i if (strcasecmp(optarg, "user") == 0) { pwd.ctrl |= ATA_SECURITY_PASSWORD_USER; pwd.ctrl &= ~ATA_SECURITY_PASSWORD_MASTER; - } else if (strcasecmp(optarg, "master") != 0) { + } else if (strcasecmp(optarg, "master") == 0) { pwd.ctrl |= ATA_SECURITY_PASSWORD_MASTER; pwd.ctrl &= ~ATA_SECURITY_PASSWORD_USER; } else { From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 04:10:29 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 3924C502; Wed, 16 Oct 2013 04:10:29 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 25DC12DC8; Wed, 16 Oct 2013 04:10:29 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G4AShW037731; Wed, 16 Oct 2013 04:10:28 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G4AScP037730; Wed, 16 Oct 2013 04:10:28 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201310160410.r9G4AScP037730@svn.freebsd.org> From: Adrian Chadd Date: Wed, 16 Oct 2013 04:10:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256580 - head/sys/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 04:10:29 -0000 Author: adrian Date: Wed Oct 16 04:10:28 2013 New Revision: 256580 URL: http://svnweb.freebsd.org/changeset/base/256580 Log: Add AR9340 switch support to the build. Modified: head/sys/conf/files Modified: head/sys/conf/files ============================================================================== --- head/sys/conf/files Wed Oct 16 03:37:22 2013 (r256579) +++ head/sys/conf/files Wed Oct 16 04:10:28 2013 (r256580) @@ -1380,6 +1380,7 @@ dev/etherswitch/arswitch/arswitch_8216.c dev/etherswitch/arswitch/arswitch_8226.c optional arswitch dev/etherswitch/arswitch/arswitch_8316.c optional arswitch dev/etherswitch/arswitch/arswitch_7240.c optional arswitch +dev/etherswitch/arswitch/arswitch_9340.c optional arswitch dev/etherswitch/arswitch/arswitch_vlans.c optional arswitch dev/etherswitch/etherswitch.c optional etherswitch dev/etherswitch/etherswitch_if.m optional etherswitch From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 04:11:43 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 14433688; Wed, 16 Oct 2013 04:11:43 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 008622DF0; Wed, 16 Oct 2013 04:11:43 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G4BgT4040111; Wed, 16 Oct 2013 04:11:42 GMT (envelope-from jhibbits@svn.freebsd.org) Received: (from jhibbits@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G4Bglc040109; Wed, 16 Oct 2013 04:11:42 GMT (envelope-from jhibbits@svn.freebsd.org) Message-Id: <201310160411.r9G4Bglc040109@svn.freebsd.org> From: Justin Hibbits Date: Wed, 16 Oct 2013 04:11:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256581 - head/sys/powerpc/aim X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 04:11:43 -0000 Author: jhibbits Date: Wed Oct 16 04:11:42 2013 New Revision: 256581 URL: http://svnweb.freebsd.org/changeset/base/256581 Log: Fix the Wii build, and remove an extraneous critical_enter(). Modified: head/sys/powerpc/aim/interrupt.c Modified: head/sys/powerpc/aim/interrupt.c ============================================================================== --- head/sys/powerpc/aim/interrupt.c Wed Oct 16 04:10:28 2013 (r256580) +++ head/sys/powerpc/aim/interrupt.c Wed Oct 16 04:11:42 2013 (r256581) @@ -101,17 +101,16 @@ powerpc_interrupt(struct trapframe *fram atomic_subtract_int(&td->td_intr_nesting_level, 1); critical_exit(); break; +#ifdef HWPMC_HOOKS case EXC_PERF: critical_enter(); KASSERT(pmc_intr != NULL, ("Performance exception, but no handler!")); (*pmc_intr)(PCPU_GET(cpuid), framep); - critical_enter(); -#ifdef HWPMC_HOOKS if (pmc_hook && (PCPU_GET(curthread)->td_pflags & TDP_CALLCHAIN)) pmc_hook(PCPU_GET(curthread), PMC_FN_USER_CALLCHAIN, framep); -#endif critical_exit(); break; +#endif default: /* Re-enable interrupts if applicable. */ From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 04:15:04 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id F28ED7E9; Wed, 16 Oct 2013 04:15:03 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id DEC932E05; Wed, 16 Oct 2013 04:15:03 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G4F3Yc041061; Wed, 16 Oct 2013 04:15:03 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G4F3BQ041060; Wed, 16 Oct 2013 04:15:03 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201310160415.r9G4F3BQ041060@svn.freebsd.org> From: Adrian Chadd Date: Wed, 16 Oct 2013 04:15:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256582 - head/sys/dev/etherswitch/arswitch X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 04:15:04 -0000 Author: adrian Date: Wed Oct 16 04:15:03 2013 New Revision: 256582 URL: http://svnweb.freebsd.org/changeset/base/256582 Log: Add support for the AR9340 switch to the switch framework. * Do the hardware setup in the right order! * Modify/improve the chip probe check so it can actually probe the 7240/9340 directly (although it's not yet used..) * Initialise and fetch the is_mii option * Fix some debugging whilst I'm here. This is enough to get things off the ground. Tested: * AR9344 SoC Modified: head/sys/dev/etherswitch/arswitch/arswitch.c Modified: head/sys/dev/etherswitch/arswitch/arswitch.c ============================================================================== --- head/sys/dev/etherswitch/arswitch/arswitch.c Wed Oct 16 04:11:42 2013 (r256581) +++ head/sys/dev/etherswitch/arswitch/arswitch.c Wed Oct 16 04:15:03 2013 (r256582) @@ -64,6 +64,7 @@ #include #include #include +#include #include "mdio_if.h" #include "miibus_if.h" @@ -93,23 +94,34 @@ arswitch_probe(device_t dev) if (ar7240_probe(dev) == 0) { chipname = "AR7240"; sc->sc_switchtype = AR8X16_SWITCH_AR7240; + sc->is_internal_switch = 1; + id = 0; + goto done; + } + + /* AR9340 probe */ + if (ar9340_probe(dev) == 0) { + chipname = "AR9340"; + sc->sc_switchtype = AR8X16_SWITCH_AR9340; + sc->is_internal_switch = 1; id = 0; goto done; } /* AR8xxx probe */ id = arswitch_readreg(dev, AR8X16_REG_MASK_CTRL); - switch ((id & AR8X16_MASK_CTRL_VER_MASK) >> - AR8X16_MASK_CTRL_VER_SHIFT) { - case 1: + switch (id & (AR8X16_MASK_CTRL_VER_MASK | AR8X16_MASK_CTRL_REV_MASK)) { + case 0x0101: chipname = "AR8216"; sc->sc_switchtype = AR8X16_SWITCH_AR8216; break; - case 2: + case 0x0201: chipname = "AR8226"; sc->sc_switchtype = AR8X16_SWITCH_AR8226; break; - case 16: + /* 0x0301 - AR8236 */ + case 0x1000: + case 0x1001: chipname = "AR8316"; sc->sc_switchtype = AR8X16_SWITCH_AR8316; break; @@ -118,8 +130,8 @@ arswitch_probe(device_t dev) } done: - DPRINTF(dev, "chipname=%s, rev=%02x\n", chipname, - id & AR8X16_MASK_CTRL_REV_MASK); + + DPRINTF(dev, "chipname=%s, id=%08x\n", chipname, id); if (chipname != NULL) { snprintf(desc, sizeof(desc), "Atheros %s Ethernet Switch", @@ -250,6 +262,8 @@ arswitch_attach(device_t dev) */ if (AR8X16_IS_SWITCH(sc, AR7240)) ar7240_attach(sc); + else if (AR8X16_IS_SWITCH(sc, AR9340)) + ar9340_attach(sc); else if (AR8X16_IS_SWITCH(sc, AR8216)) ar8216_attach(sc); else if (AR8X16_IS_SWITCH(sc, AR8226)) @@ -267,6 +281,7 @@ arswitch_attach(device_t dev) sc->phy4cpu = 1; sc->is_rgmii = 1; sc->is_gmii = 0; + sc->is_mii = 0; (void) resource_int_value(device_get_name(dev), device_get_unit(dev), "numphys", &sc->numphys); @@ -276,6 +291,8 @@ arswitch_attach(device_t dev) "is_rgmii", &sc->is_rgmii); (void) resource_int_value(device_get_name(dev), device_get_unit(dev), "is_gmii", &sc->is_gmii); + (void) resource_int_value(device_get_name(dev), device_get_unit(dev), + "is_mii", &sc->is_mii); if (sc->numphys > AR8X16_NUM_PHYS) sc->numphys = AR8X16_NUM_PHYS; @@ -284,6 +301,10 @@ arswitch_attach(device_t dev) if (arswitch_reset(dev)) return (ENXIO); + err = sc->hal.arswitch_hw_setup(sc); + if (err != 0) + return (err); + err = sc->hal.arswitch_hw_global_setup(sc); if (err != 0) return (err); @@ -303,10 +324,6 @@ arswitch_attach(device_t dev) if (err != 0) return (err); - err = sc->hal.arswitch_hw_setup(sc); - if (err != 0) - return (err); - bus_generic_probe(dev); bus_enumerate_hinted_children(dev); err = bus_generic_attach(dev); @@ -435,7 +452,7 @@ arswitch_miipollstat(struct arswitch_sof AR8X16_REG_PORT_STS(arswitch_portforphy(i))); #if 0 DPRINTF(sc->sc_dev, "p[%d]=%b\n", - arge_portforphy(i), + i, portstatus, "\20\3TXMAC\4RXMAC\5TXFLOW\6RXFLOW\7" "DUPLEX\11LINK_UP\12LINK_AUTO\13LINK_PAUSE"); From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 04:15:36 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 07164927; Wed, 16 Oct 2013 04:15:36 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E65ED2E0D; Wed, 16 Oct 2013 04:15:35 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G4FZeU041172; Wed, 16 Oct 2013 04:15:35 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G4FZSE041171; Wed, 16 Oct 2013 04:15:35 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201310160415.r9G4FZSE041171@svn.freebsd.org> From: Adrian Chadd Date: Wed, 16 Oct 2013 04:15:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256583 - head/sys/dev/etherswitch/arswitch X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 04:15:36 -0000 Author: adrian Date: Wed Oct 16 04:15:35 2013 New Revision: 256583 URL: http://svnweb.freebsd.org/changeset/base/256583 Log: Add a big, big note to the vlan code that it needs to be taught about the new VLAN options for the AR9340 and AR8327 chips. Modified: head/sys/dev/etherswitch/arswitch/arswitch_vlans.c Modified: head/sys/dev/etherswitch/arswitch/arswitch_vlans.c ============================================================================== --- head/sys/dev/etherswitch/arswitch/arswitch_vlans.c Wed Oct 16 04:15:03 2013 (r256582) +++ head/sys/dev/etherswitch/arswitch/arswitch_vlans.c Wed Oct 16 04:15:35 2013 (r256583) @@ -49,6 +49,12 @@ #include "miibus_if.h" #include "etherswitch_if.h" +/* + * XXX TODO: teach about the AR933x SoC switch + * XXX TODO: teach about the AR934x SoC switch + * XXX TODO: teach about the AR8327 external switch + */ + static int arswitch_vlan_op(struct arswitch_softc *sc, uint32_t op, uint32_t vid, uint32_t data) From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 04:16:55 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 1187CA76; Wed, 16 Oct 2013 04:16:55 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id F2DB62E17; Wed, 16 Oct 2013 04:16:54 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G4GsEO041406; Wed, 16 Oct 2013 04:16:54 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G4GsBt041405; Wed, 16 Oct 2013 04:16:54 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201310160416.r9G4GsBt041405@svn.freebsd.org> From: Adrian Chadd Date: Wed, 16 Oct 2013 04:16:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256584 - head/sys/mips/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 04:16:55 -0000 Author: adrian Date: Wed Oct 16 04:16:54 2013 New Revision: 256584 URL: http://svnweb.freebsd.org/changeset/base/256584 Log: Yes, this board has 128mb of RAM. Modified: head/sys/mips/conf/DB120 Modified: head/sys/mips/conf/DB120 ============================================================================== --- head/sys/mips/conf/DB120 Wed Oct 16 04:15:35 2013 (r256583) +++ head/sys/mips/conf/DB120 Wed Oct 16 04:16:54 2013 (r256584) @@ -13,7 +13,7 @@ ident DB120 hints "DB120.hints" # Force the board memory - the base DB120 has 128MB RAM -options AR71XX_REALMEM=(32*1024*1024) +options AR71XX_REALMEM=(128*1024*1024) # i2c GPIO bus #device gpioiic From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 04:22:27 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 2F056BF9; Wed, 16 Oct 2013 04:22:27 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 1A9562E5F; Wed, 16 Oct 2013 04:22:27 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G4MQaT045530; Wed, 16 Oct 2013 04:22:26 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G4MQOL045529; Wed, 16 Oct 2013 04:22:26 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201310160422.r9G4MQOL045529@svn.freebsd.org> From: Adrian Chadd Date: Wed, 16 Oct 2013 04:22:26 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256585 - head/sys/mips/conf X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 04:22:27 -0000 Author: adrian Date: Wed Oct 16 04:22:26 2013 New Revision: 256585 URL: http://svnweb.freebsd.org/changeset/base/256585 Log: Now that all of the on-chip switch and basic platform support is updated, we can now add all the hardware bits for the DB120. * arge0/argemdio0 is hooked up to an AR8327 switch - which there's currently no support for. However, the bootloader on this board does set it up as a basic switch so we can at least _use_ it ourselves. So we should at least configure the arge0 side of things, including the GMAC register. * .. the GMAC config peels off arge0 from the internal switch and exposes it as an RGMII to said AR8327. * arge1/argemdio1 are hooked up to an internal 10/100 switch. So, that also needs configuring. * Add support for the NOR flash layout. * Add support for the wifi (which works, with bugs, but it works.) What's missing! * No GPIO stuff yet! * No sound (I2S) and no NAND flash support yet, sorry! * The normal DB120 has an external AR95xx wifi chip on PCIe but with the actual calibration data in the NOR flash. My DB120 has been modified to let me use the PCIe slot as a normal PCIe slot. I'll add the "default" settings later when I have access to a non-modified one. * Other stuff, like why the wifi unit gets upset and spits out stuck beacons and interrupt storms everywhere. Sigh. Tested: * DB120 board - AR9344 (mips74k SoC) booting off of SPI flash into multi-user mode. Modified: head/sys/mips/conf/DB120.hints Modified: head/sys/mips/conf/DB120.hints ============================================================================== --- head/sys/mips/conf/DB120.hints Wed Oct 16 04:16:54 2013 (r256584) +++ head/sys/mips/conf/DB120.hints Wed Oct 16 04:22:26 2013 (r256585) @@ -1,3 +1,104 @@ # $FreeBSD$ # This is a placeholder until the hardware support is complete. + +# mdiobus0 on arge0 +hint.argemdio.0.at="nexus0" +hint.argemdio.0.maddr=0x19000000 +hint.argemdio.0.msize=0x1000 +hint.argemdio.0.order=0 + +# DB120 GMAC configuration +# + AR934X_ETH_CFG_RGMII_GMAC0 (1 << 0) +# + AR934X_ETH_CFG_SW_ONLY_MODE (1 << 6) +hint.ar934x_gmac.0.gmac_cfg=0x41 + +# GMAC0 here - connected to an AR8327 +#hint.arswitch.0.at="mdio0" +#hint.arswitch.0.is_7240=0 +#hint.arswitch.0.is_9340=0 # not the internal switch! +#hint.arswitch.0.numphys=5 +#hint.arswitch.0.phy4cpu=0 +#hint.arswitch.0.is_rgmii=1 +#hint.arswitch.0.is_gmii=0 + +# XXX OpenWRT DB120 BSP doesn't have media/duplex set? +hint.arge.0.phymask=0x0 +hint.arge.0.media=1000 +hint.arge.0.fduplex=1 +hint.arge.0.miimode=3 # RGMII +hint.arge.0.pll_1000=0x06000000 + +# mdiobus1 on arge1 +hint.argemdio.1.at="nexus0" +hint.argemdio.1.maddr=0x1a000000 +hint.argemdio.1.msize=0x1000 +hint.argemdio.1.order=0 + +# Embedded switch on the AR9344 +hint.arswitch.1.at="mdio1" +hint.arswitch.1.is_7240=0 +hint.arswitch.1.is_9340=1 +hint.arswitch.1.numphys=4 +hint.arswitch.1.phy4cpu=0 # phy 4 is not a "CPU port" PHY here +hint.arswitch.1.is_rgmii=0 +hint.arswitch.1.is_gmii=1 # arge1 <-> switch PHY is GMII + +# arge1 - lock up to 1000/full +hint.arge.1.phymask=0x0 # Nothing attached here (XXX?) +hint.arge.1.media=1000 +hint.arge.1.fduplex=1 +hint.arge.1.miimode=1 # GMII + +# flash layout: +# +# bootargs=console=ttyS0,115200 root=31:02 rootfstype=jffs2 init=/sbin/init mtdparts=ath-nor0:256k(u-boot),64k(u-boot-env),6336k(rootfs),1408k(uImage),64k(mib0),64k(ART) + +# 256KiB u-boot +hint.map.0.at="flash/spi0" +hint.map.0.start=0x00000000 +hint.map.0.end=0x00040000 # 256k u-boot +hint.map.0.name="u-boot" +hint.map.0.readonly=1 + +# 64KiB u-boot-env +hint.map.1.at="flash/spi0" +hint.map.1.start=0x00040000 +hint.map.1.end=0x00050000 # 64k u-boot-env +hint.map.1.name="u-boot-env" +hint.map.1.readonly=1 + +# 6336KiB rootfs +hint.map.2.at="flash/spi0" +hint.map.2.start=0x00050000 +hint.map.2.end=0x00680000 # 6336k rootfs +hint.map.2.name="rootfs" +hint.map.2.readonly=1 + +# 1344KiB uImage +hint.map.3.at="flash/spi0" +hint.map.3.start=0x00680000 +hint.map.3.end=0x007d0000 # 1408k uImage, 64k off the end.. +hint.map.3.name="uImage" +hint.map.3.readonly=1 + +# 64KiB cfg +hint.map.4.at="flash/spi0" +hint.map.4.start=0x007d0000 +hint.map.4.end=0x007e0000 +hint.map.4.name="cfg" +hint.map.4.readonly=0 + +# 64KiB mib0 +hint.map.5.at="flash/spi0" +hint.map.5.start=0x007e0000 +hint.map.5.end=0x007f0000 # 64k mib0 +hint.map.5.name="mib0" +hint.map.5.readonly=1 + +# 64KiB ART +hint.map.6.at="flash/spi0" +hint.map.6.start=0x007f0000 +hint.map.6.end=0x00800000 # 64k ART +hint.map.6.name="ART" +hint.map.6.readonly=1 From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 04:59:59 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C6702290; Wed, 16 Oct 2013 04:59:59 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id B31632FE7; Wed, 16 Oct 2013 04:59:59 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G4xxWA063092; Wed, 16 Oct 2013 04:59:59 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G4xxGB063091; Wed, 16 Oct 2013 04:59:59 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201310160459.r9G4xxGB063091@svn.freebsd.org> From: Gleb Smirnoff Date: Wed, 16 Oct 2013 04:59:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256586 - head/sys/net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 04:59:59 -0000 Author: glebius Date: Wed Oct 16 04:59:59 2013 New Revision: 256586 URL: http://svnweb.freebsd.org/changeset/base/256586 Log: Rename Free() macro to R_Free(). This matches R_Malloc() and has much lower probability to clash with other headers. Submitted by: Eric van Gyzen Modified: head/sys/net/radix.h Modified: head/sys/net/radix.h ============================================================================== --- head/sys/net/radix.h Wed Oct 16 04:22:26 2013 (r256585) +++ head/sys/net/radix.h Wed Oct 16 04:59:59 2013 (r256586) @@ -141,7 +141,7 @@ struct radix_node_head { #ifndef _KERNEL #define R_Malloc(p, t, n) (p = (t) malloc((unsigned int)(n))) #define R_Zalloc(p, t, n) (p = (t) calloc(1,(unsigned int)(n))) -#define Free(p) free((char *)p); +#define R_Free(p) free((char *)p); #else #define R_Malloc(p, t, n) (p = (t) malloc((unsigned long)(n), M_RTABLE, M_NOWAIT)) #define R_Zalloc(p, t, n) (p = (t) malloc((unsigned long)(n), M_RTABLE, M_NOWAIT | M_ZERO)) From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 05:02:02 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 43C6E40F; Wed, 16 Oct 2013 05:02:02 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 16A6F2052; Wed, 16 Oct 2013 05:02:02 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G521jd066227; Wed, 16 Oct 2013 05:02:01 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G521cA066218; Wed, 16 Oct 2013 05:02:01 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201310160502.r9G521cA066218@svn.freebsd.org> From: Gleb Smirnoff Date: Wed, 16 Oct 2013 05:02:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256587 - in head/sys: kern sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 05:02:02 -0000 Author: glebius Date: Wed Oct 16 05:02:01 2013 New Revision: 256587 URL: http://svnweb.freebsd.org/changeset/base/256587 Log: For VIMAGE kernels store vnet in the struct task, and set vnet context during task processing. Reported & tested by: mm Modified: head/sys/kern/subr_taskqueue.c head/sys/sys/_task.h head/sys/sys/taskqueue.h Modified: head/sys/kern/subr_taskqueue.c ============================================================================== --- head/sys/kern/subr_taskqueue.c Wed Oct 16 04:59:59 2013 (r256586) +++ head/sys/kern/subr_taskqueue.c Wed Oct 16 05:02:01 2013 (r256587) @@ -42,6 +42,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include static MALLOC_DEFINE(M_TASKQUEUE, "taskqueue", "Task Queues"); static void *taskqueue_giant_ih; @@ -330,7 +331,9 @@ taskqueue_run_locked(struct taskqueue *q tb.tb_running = task; TQ_UNLOCK(queue); + CURVNET_SET(task->ta_vnet); task->ta_func(task->ta_context, pending); + CURVNET_RESTORE(); TQ_LOCK(queue); tb.tb_running = NULL; Modified: head/sys/sys/_task.h ============================================================================== --- head/sys/sys/_task.h Wed Oct 16 04:59:59 2013 (r256586) +++ head/sys/sys/_task.h Wed Oct 16 05:02:01 2013 (r256587) @@ -49,6 +49,9 @@ struct task { u_short ta_priority; /* (c) Priority */ task_fn_t *ta_func; /* (c) task handler */ void *ta_context; /* (c) argument for handler */ +#ifdef VIMAGE + struct vnet *ta_vnet; /* (c) vnet context */ +#endif }; #endif /* !_SYS__TASK_H_ */ Modified: head/sys/sys/taskqueue.h ============================================================================== --- head/sys/sys/taskqueue.h Wed Oct 16 04:59:59 2013 (r256586) +++ head/sys/sys/taskqueue.h Wed Oct 16 05:02:01 2013 (r256587) @@ -36,6 +36,9 @@ #include #include #include +#ifdef VIMAGE +#include +#endif struct taskqueue; struct thread; @@ -105,12 +108,22 @@ void taskqueue_thread_enqueue(void *cont /* * Initialise a task structure. */ +#ifdef VIMAGE #define TASK_INIT(task, priority, func, context) do { \ (task)->ta_pending = 0; \ (task)->ta_priority = (priority); \ (task)->ta_func = (func); \ (task)->ta_context = (context); \ + (task)->ta_vnet = curvnet; \ } while (0) +#else /* !VIMAGE */ +#define TASK_INIT(task, priority, func, context) do { \ + (task)->ta_pending = 0; \ + (task)->ta_priority = (priority); \ + (task)->ta_func = (func); \ + (task)->ta_context = (context); \ +} while (0) +#endif /* !VIMAGE */ void _timeout_task_init(struct taskqueue *queue, struct timeout_task *timeout_task, int priority, task_fn_t func, From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 06:07:04 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 618B1F94; Wed, 16 Oct 2013 06:07:04 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 34C332328; Wed, 16 Oct 2013 06:07:04 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G674O0099250; Wed, 16 Oct 2013 06:07:04 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G673Lm099248; Wed, 16 Oct 2013 06:07:03 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201310160607.r9G673Lm099248@svn.freebsd.org> From: Konstantin Belousov Date: Wed, 16 Oct 2013 06:07:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r256589 - stable/9/sys/kern X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 06:07:04 -0000 Author: kib Date: Wed Oct 16 06:07:03 2013 New Revision: 256589 URL: http://svnweb.freebsd.org/changeset/base/256589 Log: MFC r256209: Reduce code duplication, introduce the getmaxfd() helper to calculate the max filedescriptor index. Modified: stable/9/sys/kern/kern_descrip.c Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/kern/kern_descrip.c ============================================================================== --- stable/9/sys/kern/kern_descrip.c Wed Oct 16 05:43:03 2013 (r256588) +++ stable/9/sys/kern/kern_descrip.c Wed Oct 16 06:07:03 2013 (r256589) @@ -133,6 +133,7 @@ static int fill_procdesc_info(struct pro struct kinfo_file *kif); static int fill_sem_info(struct file *fp, struct kinfo_file *kif); static int fill_shm_info(struct file *fp, struct kinfo_file *kif); +static int getmaxfd(struct proc *p); /* * A process is initially started out with NDFILE descriptors stored within @@ -808,6 +809,18 @@ readahead_vnlock_fail: return (error); } +static int +getmaxfd(struct proc *p) +{ + int maxfd; + + PROC_LOCK(p); + maxfd = min((int)lim_cur(p, RLIMIT_NOFILE), maxfilesperproc); + PROC_UNLOCK(p); + + return (maxfd); +} + /* * Common code for dup, dup2, fcntl(F_DUPFD) and fcntl(F_DUP2FD). */ @@ -833,9 +846,7 @@ do_dup(struct thread *td, int flags, int return (EBADF); if (new < 0) return (flags & DUP_FCNTL ? EINVAL : EBADF); - PROC_LOCK(p); - maxfd = min((int)lim_cur(p, RLIMIT_NOFILE), maxfilesperproc); - PROC_UNLOCK(p); + maxfd = getmaxfd(p); if (new >= maxfd) return (flags & DUP_FCNTL ? EINVAL : EBADF); @@ -1547,9 +1558,7 @@ fdalloc(struct thread *td, int minfd, in if (fdp->fd_freefile > minfd) minfd = fdp->fd_freefile; - PROC_LOCK(p); - maxfd = min((int)lim_cur(p, RLIMIT_NOFILE), maxfilesperproc); - PROC_UNLOCK(p); + maxfd = getmaxfd(p); /* * Search the bitmap for a free descriptor. If none is found, try @@ -1634,9 +1643,7 @@ fdavail(struct thread *td, int n) * call racct_add() from there instead of dealing with containers * here. */ - PROC_LOCK(p); - lim = min((int)lim_cur(p, RLIMIT_NOFILE), maxfilesperproc); - PROC_UNLOCK(p); + lim = getmaxfd(p); if ((i = lim - fdp->fd_nfiles) > 0 && (n -= i) <= 0) return (1); last = min(fdp->fd_nfiles, lim); From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 06:13:09 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 368CA20E; Wed, 16 Oct 2013 06:13:09 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 229562384; Wed, 16 Oct 2013 06:13:09 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G6D9Av003134; Wed, 16 Oct 2013 06:13:09 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G6D8BS003133; Wed, 16 Oct 2013 06:13:08 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201310160613.r9G6D8BS003133@svn.freebsd.org> From: Konstantin Belousov Date: Wed, 16 Oct 2013 06:13:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r256590 - stable/9/sys/kern X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 06:13:09 -0000 Author: kib Date: Wed Oct 16 06:13:08 2013 New Revision: 256590 URL: http://svnweb.freebsd.org/changeset/base/256590 Log: MFC r256211: Do not flush buffers when the v_object of the passed vnode does not really belong to it. Modified: stable/9/sys/kern/vfs_subr.c Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/kern/vfs_subr.c ============================================================================== --- stable/9/sys/kern/vfs_subr.c Wed Oct 16 06:07:03 2013 (r256589) +++ stable/9/sys/kern/vfs_subr.c Wed Oct 16 06:13:08 2013 (r256590) @@ -1304,6 +1304,8 @@ vinvalbuf(struct vnode *vp, int flags, i CTR3(KTR_VFS, "%s: vp %p with flags %d", __func__, vp, flags); ASSERT_VOP_LOCKED(vp, "vinvalbuf"); + if (vp->v_object != NULL && vp->v_object->handle != vp) + return (0); return (bufobj_invalbuf(&vp->v_bufobj, flags, slpflag, slptimeo)); } From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 06:15:41 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 17623469; Wed, 16 Oct 2013 06:15:41 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 0203923A4; Wed, 16 Oct 2013 06:15:41 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G6Fekv004435; Wed, 16 Oct 2013 06:15:40 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G6Fe2X004434; Wed, 16 Oct 2013 06:15:40 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201310160615.r9G6Fe2X004434@svn.freebsd.org> From: Konstantin Belousov Date: Wed, 16 Oct 2013 06:15:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r256591 - stable/9/sys/kern X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 06:15:41 -0000 Author: kib Date: Wed Oct 16 06:15:40 2013 New Revision: 256591 URL: http://svnweb.freebsd.org/changeset/base/256591 Log: MFC r256213: Do not try to flush device vnodes from the buffer allocation context. Modified: stable/9/sys/kern/vfs_bio.c Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/kern/vfs_bio.c ============================================================================== --- stable/9/sys/kern/vfs_bio.c Wed Oct 16 06:13:08 2013 (r256590) +++ stable/9/sys/kern/vfs_bio.c Wed Oct 16 06:15:40 2013 (r256591) @@ -2108,7 +2108,8 @@ getnewbuf_bufd_help(struct vnode *vp, in td = curthread; mtx_lock(&nblock); while (needsbuffer & flags) { - if (vp != NULL && (td->td_pflags & TDP_BUFNEED) == 0) { + if (vp != NULL && vp->v_type != VCHR && + (td->td_pflags & TDP_BUFNEED) == 0) { mtx_unlock(&nblock); /* * getblk() is called with a vnode locked, and From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 08:19:59 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 75F653A4; Wed, 16 Oct 2013 08:19:59 +0000 (UTC) (envelope-from cperciva@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 631CA29A8; Wed, 16 Oct 2013 08:19:59 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G8JxXC068997; Wed, 16 Oct 2013 08:19:59 GMT (envelope-from cperciva@svn.freebsd.org) Received: (from cperciva@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G8Jx8X068996; Wed, 16 Oct 2013 08:19:59 GMT (envelope-from cperciva@svn.freebsd.org) Message-Id: <201310160819.r9G8Jx8X068996@svn.freebsd.org> From: Colin Percival Date: Wed, 16 Oct 2013 08:19:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256594 - head/usr.sbin/freebsd-update X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 08:19:59 -0000 Author: cperciva Date: Wed Oct 16 08:19:58 2013 New Revision: 256594 URL: http://svnweb.freebsd.org/changeset/base/256594 Log: Speed up `freebsd-update IDS` by using IFS to split fields instead of forking lots of processes to run echo|cut. In one test this reduced the CPU time from 980s to 134s and the wallclock time from 806s to 132s. Submitted by: Oleg Ginzburg Modified: head/usr.sbin/freebsd-update/freebsd-update.sh Modified: head/usr.sbin/freebsd-update/freebsd-update.sh ============================================================================== --- head/usr.sbin/freebsd-update/freebsd-update.sh Wed Oct 16 08:14:05 2013 (r256593) +++ head/usr.sbin/freebsd-update/freebsd-update.sh Wed Oct 16 08:19:58 2013 (r256594) @@ -3033,21 +3033,8 @@ IDS_compare () { mv INDEX-NOTMATCHING.tmp INDEX-NOTMATCHING # Go through the lines and print warnings. - while read LINE; do - FPATH=`echo "${LINE}" | cut -f 1 -d '|'` - TYPE=`echo "${LINE}" | cut -f 2 -d '|'` - OWNER=`echo "${LINE}" | cut -f 3 -d '|'` - GROUP=`echo "${LINE}" | cut -f 4 -d '|'` - PERM=`echo "${LINE}" | cut -f 5 -d '|'` - HASH=`echo "${LINE}" | cut -f 6 -d '|'` - LINK=`echo "${LINE}" | cut -f 7 -d '|'` - P_TYPE=`echo "${LINE}" | cut -f 8 -d '|'` - P_OWNER=`echo "${LINE}" | cut -f 9 -d '|'` - P_GROUP=`echo "${LINE}" | cut -f 10 -d '|'` - P_PERM=`echo "${LINE}" | cut -f 11 -d '|'` - P_HASH=`echo "${LINE}" | cut -f 12 -d '|'` - P_LINK=`echo "${LINE}" | cut -f 13 -d '|'` - + local IFS='|' + while read FPATH TYPE OWNER GROUP PERM HASH LINK P_TYPE P_OWNER P_GROUP P_PERM P_HASH P_LINK; do # Warn about different object types. if ! [ "${TYPE}" = "${P_TYPE}" ]; then echo -n "${FPATH} is a " From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 09:12:42 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 38A78C40; Wed, 16 Oct 2013 09:12:42 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 249BB2D4D; Wed, 16 Oct 2013 09:12:42 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G9Cfs7098431; Wed, 16 Oct 2013 09:12:41 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G9CfZd098426; Wed, 16 Oct 2013 09:12:41 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201310160912.r9G9CfZd098426@svn.freebsd.org> From: Alexander Motin Date: Wed, 16 Oct 2013 09:12:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256603 - in head/sys: geom kern sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 09:12:42 -0000 Author: mav Date: Wed Oct 16 09:12:40 2013 New Revision: 256603 URL: http://svnweb.freebsd.org/changeset/base/256603 Log: MFprojects/camlock r254905: Introduce new function devstat_end_transaction_bio_bt(), adding new argument to specify present time. Use this function to move binuptime() out of lock, substantially reducing lock congestion when slow timecounter is used. Modified: head/sys/geom/geom_disk.c head/sys/geom/geom_io.c head/sys/kern/subr_devstat.c head/sys/sys/devicestat.h Modified: head/sys/geom/geom_disk.c ============================================================================== --- head/sys/geom/geom_disk.c Wed Oct 16 09:05:49 2013 (r256602) +++ head/sys/geom/geom_disk.c Wed Oct 16 09:12:40 2013 (r256603) @@ -229,6 +229,7 @@ g_disk_setstate(struct bio *bp, struct g static void g_disk_done(struct bio *bp) { + struct bintime now; struct bio *bp2; struct g_disk_softc *sc; @@ -237,12 +238,13 @@ g_disk_done(struct bio *bp) bp2 = bp->bio_parent; sc = bp2->bio_to->private; bp->bio_completed = bp->bio_length - bp->bio_resid; + binuptime(&now); mtx_lock(&sc->done_mtx); if (bp2->bio_error == 0) bp2->bio_error = bp->bio_error; bp2->bio_completed += bp->bio_completed; if ((bp->bio_cmd & (BIO_READ|BIO_WRITE|BIO_DELETE)) != 0) - devstat_end_transaction_bio(sc->dp->d_devstat, bp); + devstat_end_transaction_bio_bt(sc->dp->d_devstat, bp, &now); g_destroy_bio(bp); bp2->bio_inbed++; if (bp2->bio_children == bp2->bio_inbed) { Modified: head/sys/geom/geom_io.c ============================================================================== --- head/sys/geom/geom_io.c Wed Oct 16 09:05:49 2013 (r256602) +++ head/sys/geom/geom_io.c Wed Oct 16 09:12:40 2013 (r256603) @@ -511,6 +511,7 @@ g_io_request(struct bio *bp, struct g_co void g_io_deliver(struct bio *bp, int error) { + struct bintime now; struct g_consumer *cp; struct g_provider *pp; int first; @@ -564,11 +565,13 @@ g_io_deliver(struct bio *bp, int error) * can not update one instance of the statistics from more * than one thread at a time, so grab the lock first. */ + if (g_collectstats) + binuptime(&now); g_bioq_lock(&g_bio_run_up); if (g_collectstats & 1) - devstat_end_transaction_bio(pp->stat, bp); + devstat_end_transaction_bio_bt(pp->stat, bp, &now); if (g_collectstats & 2) - devstat_end_transaction_bio(cp->stat, bp); + devstat_end_transaction_bio_bt(cp->stat, bp, &now); cp->nend++; pp->nend++; Modified: head/sys/kern/subr_devstat.c ============================================================================== --- head/sys/kern/subr_devstat.c Wed Oct 16 09:05:49 2013 (r256602) +++ head/sys/kern/subr_devstat.c Wed Oct 16 09:12:40 2013 (r256603) @@ -374,6 +374,14 @@ devstat_end_transaction(struct devstat * void devstat_end_transaction_bio(struct devstat *ds, struct bio *bp) { + + devstat_end_transaction_bio_bt(ds, bp, NULL); +} + +void +devstat_end_transaction_bio_bt(struct devstat *ds, struct bio *bp, + struct bintime *now) +{ devstat_trans_flags flg; /* sanity check */ @@ -390,7 +398,7 @@ devstat_end_transaction_bio(struct devst flg = DEVSTAT_NO_DATA; devstat_end_transaction(ds, bp->bio_bcount - bp->bio_resid, - DEVSTAT_TAG_SIMPLE, flg, NULL, &bp->bio_t0); + DEVSTAT_TAG_SIMPLE, flg, now, &bp->bio_t0); DTRACE_DEVSTAT_BIO_DONE(); } Modified: head/sys/sys/devicestat.h ============================================================================== --- head/sys/sys/devicestat.h Wed Oct 16 09:05:49 2013 (r256602) +++ head/sys/sys/devicestat.h Wed Oct 16 09:12:40 2013 (r256603) @@ -199,6 +199,8 @@ void devstat_end_transaction(struct devs devstat_trans_flags flags, struct bintime *now, struct bintime *then); void devstat_end_transaction_bio(struct devstat *ds, struct bio *bp); +void devstat_end_transaction_bio_bt(struct devstat *ds, struct bio *bp, + struct bintime *now); #endif #endif /* _DEVICESTAT_H */ From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 09:18:02 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 7D89E122; Wed, 16 Oct 2013 09:18:02 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 6C0242D81; Wed, 16 Oct 2013 09:18:02 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G9I2R2099964; Wed, 16 Oct 2013 09:18:02 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G9I269099963; Wed, 16 Oct 2013 09:18:02 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201310160918.r9G9I269099963@svn.freebsd.org> From: Alexander Motin Date: Wed, 16 Oct 2013 09:18:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256606 - head/sys/geom X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 09:18:02 -0000 Author: mav Date: Wed Oct 16 09:18:01 2013 New Revision: 256606 URL: http://svnweb.freebsd.org/changeset/base/256606 Log: MFprojects/camlock r254907: Move g_io_deliver() out of the lock, as required for direct dispatch. Move g_destroy_bio() out too to reduce lock scope even more. Modified: head/sys/geom/geom_disk.c Modified: head/sys/geom/geom_disk.c ============================================================================== --- head/sys/geom/geom_disk.c Wed Oct 16 09:17:46 2013 (r256605) +++ head/sys/geom/geom_disk.c Wed Oct 16 09:18:01 2013 (r256606) @@ -245,13 +245,14 @@ g_disk_done(struct bio *bp) bp2->bio_completed += bp->bio_completed; if ((bp->bio_cmd & (BIO_READ|BIO_WRITE|BIO_DELETE)) != 0) devstat_end_transaction_bio_bt(sc->dp->d_devstat, bp, &now); - g_destroy_bio(bp); bp2->bio_inbed++; if (bp2->bio_children == bp2->bio_inbed) { + mtx_unlock(&sc->done_mtx); bp2->bio_resid = bp2->bio_bcount - bp2->bio_completed; g_io_deliver(bp2, bp2->bio_error); - } - mtx_unlock(&sc->done_mtx); + } else + mtx_unlock(&sc->done_mtx); + g_destroy_bio(bp); } static int From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 09:21:41 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 872AA2E1; Wed, 16 Oct 2013 09:21:41 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 74CA12DD6; Wed, 16 Oct 2013 09:21:41 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G9Lfuf003437; Wed, 16 Oct 2013 09:21:41 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G9LfJs003436; Wed, 16 Oct 2013 09:21:41 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201310160921.r9G9LfJs003436@svn.freebsd.org> From: Alexander Motin Date: Wed, 16 Oct 2013 09:21:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256607 - head/sys/geom X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 09:21:41 -0000 Author: mav Date: Wed Oct 16 09:21:40 2013 New Revision: 256607 URL: http://svnweb.freebsd.org/changeset/base/256607 Log: MFprojects/camlock r256371: Fix passing uninitialized bio_resid argument to g_trace(). Modified: head/sys/geom/geom_dev.c Modified: head/sys/geom/geom_dev.c ============================================================================== --- head/sys/geom/geom_dev.c Wed Oct 16 09:18:01 2013 (r256606) +++ head/sys/geom/geom_dev.c Wed Oct 16 09:21:40 2013 (r256607) @@ -485,16 +485,16 @@ g_dev_done(struct bio *bp2) sc = cp->private; bp = bp2->bio_parent; bp->bio_error = bp2->bio_error; - if (bp->bio_error != 0) { + bp->bio_completed = bp2->bio_completed; + bp->bio_resid = bp2->bio_resid; + if (bp2->bio_error != 0) { g_trace(G_T_BIO, "g_dev_done(%p) had error %d", - bp2, bp->bio_error); + bp2, bp2->bio_error); bp->bio_flags |= BIO_ERROR; } else { g_trace(G_T_BIO, "g_dev_done(%p/%p) resid %ld completed %jd", - bp2, bp, bp->bio_resid, (intmax_t)bp2->bio_completed); + bp2, bp, bp2->bio_resid, (intmax_t)bp2->bio_completed); } - bp->bio_resid = bp->bio_length - bp2->bio_completed; - bp->bio_completed = bp2->bio_completed; g_destroy_bio(bp2); destroy = 0; mtx_lock(&sc->sc_mtx); From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 09:33:25 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 3812D8D4; Wed, 16 Oct 2013 09:33:25 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 1865A2E86; Wed, 16 Oct 2013 09:33:25 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G9XOrm009601; Wed, 16 Oct 2013 09:33:24 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G9XN8A009594; Wed, 16 Oct 2013 09:33:23 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201310160933.r9G9XN8A009594@svn.freebsd.org> From: Alexander Motin Date: Wed, 16 Oct 2013 09:33:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256610 - head/sys/geom/raid X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 09:33:25 -0000 Author: mav Date: Wed Oct 16 09:33:23 2013 New Revision: 256610 URL: http://svnweb.freebsd.org/changeset/base/256610 Log: MFprojects/camlock r256445: Add unmapped I/O support to GEOM RAID. Modified: head/sys/geom/raid/g_raid.c head/sys/geom/raid/g_raid.h head/sys/geom/raid/tr_concat.c head/sys/geom/raid/tr_raid0.c head/sys/geom/raid/tr_raid1.c head/sys/geom/raid/tr_raid1e.c head/sys/geom/raid/tr_raid5.c Modified: head/sys/geom/raid/g_raid.c ============================================================================== --- head/sys/geom/raid/g_raid.c Wed Oct 16 09:27:51 2013 (r256609) +++ head/sys/geom/raid/g_raid.c Wed Oct 16 09:33:23 2013 (r256610) @@ -993,20 +993,15 @@ g_raid_tr_flush_common(struct g_raid_tr_ cbp->bio_caller1 = sd; bioq_insert_tail(&queue, cbp); } - for (cbp = bioq_first(&queue); cbp != NULL; - cbp = bioq_first(&queue)) { - bioq_remove(&queue, cbp); + while ((cbp = bioq_takefirst(&queue)) != NULL) { sd = cbp->bio_caller1; cbp->bio_caller1 = NULL; g_raid_subdisk_iostart(sd, cbp); } return; failure: - for (cbp = bioq_first(&queue); cbp != NULL; - cbp = bioq_first(&queue)) { - bioq_remove(&queue, cbp); + while ((cbp = bioq_takefirst(&queue)) != NULL) g_destroy_bio(cbp); - } if (bp->bio_error == 0) bp->bio_error = ENOMEM; g_raid_iodone(bp, bp->bio_error); @@ -1639,11 +1634,13 @@ static void g_raid_launch_provider(struct g_raid_volume *vol) { struct g_raid_disk *disk; + struct g_raid_subdisk *sd; struct g_raid_softc *sc; struct g_provider *pp; char name[G_RAID_MAX_VOLUMENAME]; char announce_buf[80], buf1[32]; off_t off; + int i; sc = vol->v_softc; sx_assert(&sc->sc_lock, SX_LOCKED); @@ -1673,6 +1670,17 @@ g_raid_launch_provider(struct g_raid_vol } pp = g_new_providerf(sc->sc_geom, "%s", name); + if (vol->v_tr->tro_class->trc_accept_unmapped) { + pp->flags |= G_PF_ACCEPT_UNMAPPED; + for (i = 0; i < vol->v_disks_count; i++) { + sd = &vol->v_subdisks[i]; + if (sd->sd_state == G_RAID_SUBDISK_S_NONE) + continue; + if ((sd->sd_disk->d_consumer->provider->flags & + G_PF_ACCEPT_UNMAPPED) == 0) + pp->flags &= ~G_PF_ACCEPT_UNMAPPED; + } + } pp->private = vol; pp->mediasize = vol->v_mediasize; pp->sectorsize = vol->v_sectorsize; Modified: head/sys/geom/raid/g_raid.h ============================================================================== --- head/sys/geom/raid/g_raid.h Wed Oct 16 09:27:51 2013 (r256609) +++ head/sys/geom/raid/g_raid.h Wed Oct 16 09:33:23 2013 (r256610) @@ -376,6 +376,7 @@ struct g_raid_tr_class { KOBJ_CLASS_FIELDS; int trc_enable; int trc_priority; + int trc_accept_unmapped; LIST_ENTRY(g_raid_tr_class) trc_list; }; Modified: head/sys/geom/raid/tr_concat.c ============================================================================== --- head/sys/geom/raid/tr_concat.c Wed Oct 16 09:27:51 2013 (r256609) +++ head/sys/geom/raid/tr_concat.c Wed Oct 16 09:33:23 2013 (r256610) @@ -74,7 +74,8 @@ static struct g_raid_tr_class g_raid_tr_ g_raid_tr_concat_methods, sizeof(struct g_raid_tr_concat_object), .trc_enable = 1, - .trc_priority = 50 + .trc_priority = 50, + .trc_accept_unmapped = 1 }; static int @@ -227,7 +228,10 @@ g_raid_tr_iostart_concat(struct g_raid_t offset = bp->bio_offset; remain = bp->bio_length; - addr = bp->bio_data; + if ((bp->bio_flags & BIO_UNMAPPED) != 0) + addr = NULL; + else + addr = bp->bio_data; no = 0; while (no < vol->v_disks_count && offset >= vol->v_subdisks[no].sd_size) { @@ -244,8 +248,16 @@ g_raid_tr_iostart_concat(struct g_raid_t if (cbp == NULL) goto failure; cbp->bio_offset = offset; - cbp->bio_data = addr; cbp->bio_length = length; + if ((bp->bio_flags & BIO_UNMAPPED) != 0 && + bp->bio_cmd != BIO_DELETE) { + cbp->bio_ma_offset += (uintptr_t)addr; + cbp->bio_ma += cbp->bio_ma_offset / PAGE_SIZE; + cbp->bio_ma_offset %= PAGE_SIZE; + cbp->bio_ma_n = round_page(cbp->bio_ma_offset + + cbp->bio_length) / PAGE_SIZE; + } else + cbp->bio_data = addr; cbp->bio_caller1 = sd; bioq_insert_tail(&queue, cbp); remain -= length; @@ -257,20 +269,15 @@ g_raid_tr_iostart_concat(struct g_raid_t ("Request ends after volume end (%ju, %ju)", bp->bio_offset, bp->bio_length)); } while (remain > 0); - for (cbp = bioq_first(&queue); cbp != NULL; - cbp = bioq_first(&queue)) { - bioq_remove(&queue, cbp); + while ((cbp = bioq_takefirst(&queue)) != NULL) { sd = cbp->bio_caller1; cbp->bio_caller1 = NULL; g_raid_subdisk_iostart(sd, cbp); } return; failure: - for (cbp = bioq_first(&queue); cbp != NULL; - cbp = bioq_first(&queue)) { - bioq_remove(&queue, cbp); + while ((cbp = bioq_takefirst(&queue)) != NULL) g_destroy_bio(cbp); - } if (bp->bio_error == 0) bp->bio_error = ENOMEM; g_raid_iodone(bp, bp->bio_error); Modified: head/sys/geom/raid/tr_raid0.c ============================================================================== --- head/sys/geom/raid/tr_raid0.c Wed Oct 16 09:27:51 2013 (r256609) +++ head/sys/geom/raid/tr_raid0.c Wed Oct 16 09:33:23 2013 (r256610) @@ -74,7 +74,8 @@ static struct g_raid_tr_class g_raid_tr_ g_raid_tr_raid0_methods, sizeof(struct g_raid_tr_raid0_object), .trc_enable = 1, - .trc_priority = 100 + .trc_priority = 100, + .trc_accept_unmapped = 1 }; static int @@ -204,7 +205,10 @@ g_raid_tr_iostart_raid0(struct g_raid_tr g_raid_tr_flush_common(tr, bp); return; } - addr = bp->bio_data; + if ((bp->bio_flags & BIO_UNMAPPED) != 0) + addr = NULL; + else + addr = bp->bio_data; strip_size = vol->v_strip_size; /* Stripe number. */ @@ -225,8 +229,16 @@ g_raid_tr_iostart_raid0(struct g_raid_tr if (cbp == NULL) goto failure; cbp->bio_offset = offset + start; - cbp->bio_data = addr; cbp->bio_length = length; + if ((bp->bio_flags & BIO_UNMAPPED) != 0 && + bp->bio_cmd != BIO_DELETE) { + cbp->bio_ma_offset += (uintptr_t)addr; + cbp->bio_ma += cbp->bio_ma_offset / PAGE_SIZE; + cbp->bio_ma_offset %= PAGE_SIZE; + cbp->bio_ma_n = round_page(cbp->bio_ma_offset + + cbp->bio_length) / PAGE_SIZE; + } else + cbp->bio_data = addr; cbp->bio_caller1 = &vol->v_subdisks[no]; bioq_insert_tail(&queue, cbp); if (++no >= vol->v_disks_count) { @@ -238,20 +250,15 @@ g_raid_tr_iostart_raid0(struct g_raid_tr addr += length; start = 0; } while (remain > 0); - for (cbp = bioq_first(&queue); cbp != NULL; - cbp = bioq_first(&queue)) { - bioq_remove(&queue, cbp); + while ((cbp = bioq_takefirst(&queue)) != NULL) { sd = cbp->bio_caller1; cbp->bio_caller1 = NULL; g_raid_subdisk_iostart(sd, cbp); } return; failure: - for (cbp = bioq_first(&queue); cbp != NULL; - cbp = bioq_first(&queue)) { - bioq_remove(&queue, cbp); + while ((cbp = bioq_takefirst(&queue)) != NULL) g_destroy_bio(cbp); - } if (bp->bio_error == 0) bp->bio_error = ENOMEM; g_raid_iodone(bp, bp->bio_error); Modified: head/sys/geom/raid/tr_raid1.c ============================================================================== --- head/sys/geom/raid/tr_raid1.c Wed Oct 16 09:27:51 2013 (r256609) +++ head/sys/geom/raid/tr_raid1.c Wed Oct 16 09:33:23 2013 (r256610) @@ -130,7 +130,8 @@ static struct g_raid_tr_class g_raid_tr_ g_raid_tr_raid1_methods, sizeof(struct g_raid_tr_raid1_object), .trc_enable = 1, - .trc_priority = 100 + .trc_priority = 100, + .trc_accept_unmapped = 1 }; static void g_raid_tr_raid1_rebuild_abort(struct g_raid_tr_object *tr); @@ -594,20 +595,15 @@ g_raid_tr_iostart_raid1_write(struct g_r cbp->bio_caller1 = sd; bioq_insert_tail(&queue, cbp); } - for (cbp = bioq_first(&queue); cbp != NULL; - cbp = bioq_first(&queue)) { - bioq_remove(&queue, cbp); + while ((cbp = bioq_takefirst(&queue)) != NULL) { sd = cbp->bio_caller1; cbp->bio_caller1 = NULL; g_raid_subdisk_iostart(sd, cbp); } return; failure: - for (cbp = bioq_first(&queue); cbp != NULL; - cbp = bioq_first(&queue)) { - bioq_remove(&queue, cbp); + while ((cbp = bioq_takefirst(&queue)) != NULL) g_destroy_bio(cbp); - } if (bp->bio_error == 0) bp->bio_error = ENOMEM; g_raid_iodone(bp, bp->bio_error); Modified: head/sys/geom/raid/tr_raid1e.c ============================================================================== --- head/sys/geom/raid/tr_raid1e.c Wed Oct 16 09:27:51 2013 (r256609) +++ head/sys/geom/raid/tr_raid1e.c Wed Oct 16 09:33:23 2013 (r256610) @@ -134,7 +134,8 @@ static struct g_raid_tr_class g_raid_tr_ g_raid_tr_raid1e_methods, sizeof(struct g_raid_tr_raid1e_object), .trc_enable = 1, - .trc_priority = 200 + .trc_priority = 200, + .trc_accept_unmapped = 1 }; static void g_raid_tr_raid1e_rebuild_abort(struct g_raid_tr_object *tr); @@ -701,7 +702,10 @@ g_raid_tr_iostart_raid1e_read(struct g_r int best; vol = tr->tro_volume; - addr = bp->bio_data; + if ((bp->bio_flags & BIO_UNMAPPED) != 0) + addr = NULL; + else + addr = bp->bio_data; strip_size = vol->v_strip_size; V2P(vol, bp->bio_offset, &no, &offset, &start); remain = bp->bio_length; @@ -721,8 +725,15 @@ g_raid_tr_iostart_raid1e_read(struct g_r if (cbp == NULL) goto failure; cbp->bio_offset = offset + start; - cbp->bio_data = addr; cbp->bio_length = length; + if ((bp->bio_flags & BIO_UNMAPPED) != 0) { + cbp->bio_ma_offset += (uintptr_t)addr; + cbp->bio_ma += cbp->bio_ma_offset / PAGE_SIZE; + cbp->bio_ma_offset %= PAGE_SIZE; + cbp->bio_ma_n = round_page(cbp->bio_ma_offset + + cbp->bio_length) / PAGE_SIZE; + } else + cbp->bio_data = addr; cbp->bio_caller1 = &vol->v_subdisks[no]; bioq_insert_tail(&queue, cbp); no += N - best; @@ -734,20 +745,15 @@ g_raid_tr_iostart_raid1e_read(struct g_r addr += length; start = 0; } - for (cbp = bioq_first(&queue); cbp != NULL; - cbp = bioq_first(&queue)) { - bioq_remove(&queue, cbp); + while ((cbp = bioq_takefirst(&queue)) != NULL) { sd = cbp->bio_caller1; cbp->bio_caller1 = NULL; g_raid_subdisk_iostart(sd, cbp); } return; failure: - for (cbp = bioq_first(&queue); cbp != NULL; - cbp = bioq_first(&queue)) { - bioq_remove(&queue, cbp); + while ((cbp = bioq_takefirst(&queue)) != NULL) g_destroy_bio(cbp); - } if (bp->bio_error == 0) bp->bio_error = ENOMEM; g_raid_iodone(bp, bp->bio_error); @@ -766,7 +772,10 @@ g_raid_tr_iostart_raid1e_write(struct g_ int i; vol = tr->tro_volume; - addr = bp->bio_data; + if ((bp->bio_flags & BIO_UNMAPPED) != 0) + addr = NULL; + else + addr = bp->bio_data; strip_size = vol->v_strip_size; V2P(vol, bp->bio_offset, &no, &offset, &start); remain = bp->bio_length; @@ -791,8 +800,16 @@ g_raid_tr_iostart_raid1e_write(struct g_ if (cbp == NULL) goto failure; cbp->bio_offset = offset + start; - cbp->bio_data = addr; cbp->bio_length = length; + if ((bp->bio_flags & BIO_UNMAPPED) != 0 && + bp->bio_cmd != BIO_DELETE) { + cbp->bio_ma_offset += (uintptr_t)addr; + cbp->bio_ma += cbp->bio_ma_offset / PAGE_SIZE; + cbp->bio_ma_offset %= PAGE_SIZE; + cbp->bio_ma_n = round_page(cbp->bio_ma_offset + + cbp->bio_length) / PAGE_SIZE; + } else + cbp->bio_data = addr; cbp->bio_caller1 = sd; bioq_insert_tail(&queue, cbp); nextdisk: @@ -806,20 +823,15 @@ nextdisk: addr += length; start = 0; } - for (cbp = bioq_first(&queue); cbp != NULL; - cbp = bioq_first(&queue)) { - bioq_remove(&queue, cbp); + while ((cbp = bioq_takefirst(&queue)) != NULL) { sd = cbp->bio_caller1; cbp->bio_caller1 = NULL; g_raid_subdisk_iostart(sd, cbp); } return; failure: - for (cbp = bioq_first(&queue); cbp != NULL; - cbp = bioq_first(&queue)) { - bioq_remove(&queue, cbp); + while ((cbp = bioq_takefirst(&queue)) != NULL) g_destroy_bio(cbp); - } if (bp->bio_error == 0) bp->bio_error = ENOMEM; g_raid_iodone(bp, bp->bio_error); @@ -1030,6 +1042,9 @@ rebuild_round_done: cbp->bio_offset = offset + start; cbp->bio_length = bp->bio_length; cbp->bio_data = bp->bio_data; + cbp->bio_ma = bp->bio_ma; + cbp->bio_ma_offset = bp->bio_ma_offset; + cbp->bio_ma_n = bp->bio_ma_n; g_destroy_bio(bp); nsd = &vol->v_subdisks[disk]; G_RAID_LOGREQ(2, cbp, "Retrying read from %d", Modified: head/sys/geom/raid/tr_raid5.c ============================================================================== --- head/sys/geom/raid/tr_raid5.c Wed Oct 16 09:27:51 2013 (r256609) +++ head/sys/geom/raid/tr_raid5.c Wed Oct 16 09:33:23 2013 (r256610) @@ -324,20 +324,15 @@ g_raid_tr_iostart_raid5_read(struct g_ra addr += length; start = 0; } while (remain > 0); - for (cbp = bioq_first(&queue); cbp != NULL; - cbp = bioq_first(&queue)) { - bioq_remove(&queue, cbp); + while ((cbp = bioq_takefirst(&queue)) != NULL) { sd = cbp->bio_caller1; cbp->bio_caller1 = NULL; g_raid_subdisk_iostart(sd, cbp); } return; failure: - for (cbp = bioq_first(&queue); cbp != NULL; - cbp = bioq_first(&queue)) { - bioq_remove(&queue, cbp); + while ((cbp = bioq_takefirst(&queue)) != NULL) g_destroy_bio(cbp); - } if (bp->bio_error == 0) bp->bio_error = ENOMEM; g_raid_iodone(bp, bp->bio_error); From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 09:48:23 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 9D0AD6A; Wed, 16 Oct 2013 09:48:23 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 8AE252F61; Wed, 16 Oct 2013 09:48:23 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G9mN2s016174; Wed, 16 Oct 2013 09:48:23 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G9mN4n016173; Wed, 16 Oct 2013 09:48:23 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201310160948.r9G9mN4n016173@svn.freebsd.org> From: Alexander Motin Date: Wed, 16 Oct 2013 09:48:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256612 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 09:48:23 -0000 Author: mav Date: Wed Oct 16 09:48:23 2013 New Revision: 256612 URL: http://svnweb.freebsd.org/changeset/base/256612 Log: MFprojects/camlock r254685: Remove TQ_FLAGS_PENDING flag, softly duplicating queue emptiness status. Modified: head/sys/kern/subr_taskqueue.c Modified: head/sys/kern/subr_taskqueue.c ============================================================================== --- head/sys/kern/subr_taskqueue.c Wed Oct 16 09:40:00 2013 (r256611) +++ head/sys/kern/subr_taskqueue.c Wed Oct 16 09:48:23 2013 (r256612) @@ -70,7 +70,6 @@ struct taskqueue { #define TQ_FLAGS_ACTIVE (1 << 0) #define TQ_FLAGS_BLOCKED (1 << 1) -#define TQ_FLAGS_PENDING (1 << 2) #define DT_CALLOUT_ARMED (1 << 0) @@ -223,8 +222,6 @@ taskqueue_enqueue_locked(struct taskqueu task->ta_pending = 1; if ((queue->tq_flags & TQ_FLAGS_BLOCKED) == 0) queue->tq_enqueue(queue->tq_context); - else - queue->tq_flags |= TQ_FLAGS_PENDING; return (0); } @@ -301,10 +298,8 @@ taskqueue_unblock(struct taskqueue *queu TQ_LOCK(queue); queue->tq_flags &= ~TQ_FLAGS_BLOCKED; - if (queue->tq_flags & TQ_FLAGS_PENDING) { - queue->tq_flags &= ~TQ_FLAGS_PENDING; + if (!STAILQ_EMPTY(&queue->tq_queue)) queue->tq_enqueue(queue->tq_context); - } TQ_UNLOCK(queue); } From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 09:52:59 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id AF578326; Wed, 16 Oct 2013 09:52:59 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 8D2EC2FE4; Wed, 16 Oct 2013 09:52:59 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G9qxnt019497; Wed, 16 Oct 2013 09:52:59 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G9qxmD019496; Wed, 16 Oct 2013 09:52:59 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201310160952.r9G9qxmD019496@svn.freebsd.org> From: Alexander Motin Date: Wed, 16 Oct 2013 09:52:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256613 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 09:52:59 -0000 Author: mav Date: Wed Oct 16 09:52:59 2013 New Revision: 256613 URL: http://svnweb.freebsd.org/changeset/base/256613 Log: MFprojects/camlock r254763: Move tq_enqueue() call out of the queue lock for known handlers (actually I have found no others in the base system). This reduces queue lock hold time and congestion spinning under active multithreaded enqueuing. Modified: head/sys/kern/subr_taskqueue.c Modified: head/sys/kern/subr_taskqueue.c ============================================================================== --- head/sys/kern/subr_taskqueue.c Wed Oct 16 09:48:23 2013 (r256612) +++ head/sys/kern/subr_taskqueue.c Wed Oct 16 09:52:59 2013 (r256613) @@ -47,6 +47,9 @@ __FBSDID("$FreeBSD$"); static MALLOC_DEFINE(M_TASKQUEUE, "taskqueue", "Task Queues"); static void *taskqueue_giant_ih; static void *taskqueue_ih; +static void taskqueue_fast_enqueue(void *); +static void taskqueue_swi_enqueue(void *); +static void taskqueue_swi_giant_enqueue(void *); struct taskqueue_busy { struct task *tb_running; @@ -70,6 +73,7 @@ struct taskqueue { #define TQ_FLAGS_ACTIVE (1 << 0) #define TQ_FLAGS_BLOCKED (1 << 1) +#define TQ_FLAGS_UNLOCKED_ENQUEUE (1 << 2) #define DT_CALLOUT_ARMED (1 << 0) @@ -97,7 +101,8 @@ _timeout_task_init(struct taskqueue *que { TASK_INIT(&timeout_task->t, priority, func, context); - callout_init_mtx(&timeout_task->c, &queue->tq_mutex, 0); + callout_init_mtx(&timeout_task->c, &queue->tq_mutex, + CALLOUT_RETURNUNLOCKED); timeout_task->q = queue; timeout_task->f = 0; } @@ -128,6 +133,11 @@ _taskqueue_create(const char *name __unu queue->tq_context = context; queue->tq_spin = (mtxflags & MTX_SPIN) != 0; queue->tq_flags |= TQ_FLAGS_ACTIVE; + if (enqueue == taskqueue_fast_enqueue || + enqueue == taskqueue_swi_enqueue || + enqueue == taskqueue_swi_giant_enqueue || + enqueue == taskqueue_thread_enqueue) + queue->tq_flags |= TQ_FLAGS_UNLOCKED_ENQUEUE; mtx_init(&queue->tq_mutex, mtxname, NULL, mtxflags); return queue; @@ -197,6 +207,7 @@ taskqueue_enqueue_locked(struct taskqueu if (task->ta_pending) { if (task->ta_pending < USHRT_MAX) task->ta_pending++; + TQ_UNLOCK(queue); return (0); } @@ -220,8 +231,12 @@ taskqueue_enqueue_locked(struct taskqueu } task->ta_pending = 1; + if ((queue->tq_flags & TQ_FLAGS_UNLOCKED_ENQUEUE) != 0) + TQ_UNLOCK(queue); if ((queue->tq_flags & TQ_FLAGS_BLOCKED) == 0) queue->tq_enqueue(queue->tq_context); + if ((queue->tq_flags & TQ_FLAGS_UNLOCKED_ENQUEUE) == 0) + TQ_UNLOCK(queue); return (0); } @@ -232,7 +247,6 @@ taskqueue_enqueue(struct taskqueue *queu TQ_LOCK(queue); res = taskqueue_enqueue_locked(queue, task); - TQ_UNLOCK(queue); return (res); } @@ -278,8 +292,8 @@ taskqueue_enqueue_timeout(struct taskque callout_reset(&timeout_task->c, ticks, taskqueue_timeout_func, timeout_task); } + TQ_UNLOCK(queue); } - TQ_UNLOCK(queue); return (res); } @@ -566,7 +580,6 @@ taskqueue_thread_enqueue(void *context) tqp = context; tq = *tqp; - TQ_ASSERT_LOCKED(tq); wakeup_one(tq); } From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 09:56:41 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 68BA44B5; Wed, 16 Oct 2013 09:56:41 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 3C8E52051; Wed, 16 Oct 2013 09:56:41 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9G9uf9n021214; Wed, 16 Oct 2013 09:56:41 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9G9ufSk021213; Wed, 16 Oct 2013 09:56:41 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201310160956.r9G9ufSk021213@svn.freebsd.org> From: Alexander Motin Date: Wed, 16 Oct 2013 09:56:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256614 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 09:56:41 -0000 Author: mav Date: Wed Oct 16 09:56:40 2013 New Revision: 256614 URL: http://svnweb.freebsd.org/changeset/base/256614 Log: MFprojects/camlock r256370: - Take BIO lock in biodone() only when there is no completion callback set and so we should wake up thread waiting in biowait(). - Remove msleep() timeout from biowait(). It was added 11 years ago, when there was no locks used, and it should not be needed any more. Modified: head/sys/kern/vfs_bio.c Modified: head/sys/kern/vfs_bio.c ============================================================================== --- head/sys/kern/vfs_bio.c Wed Oct 16 09:52:59 2013 (r256613) +++ head/sys/kern/vfs_bio.c Wed Oct 16 09:56:40 2013 (r256614) @@ -3559,9 +3559,6 @@ biodone(struct bio *bp) vm_offset_t start, end; int transient; - mtxp = mtx_pool_find(mtxpool_sleep, bp); - mtx_lock(mtxp); - bp->bio_flags |= BIO_DONE; if ((bp->bio_flags & BIO_TRANSIENT_MAPPING) != 0) { start = trunc_page((vm_offset_t)bp->bio_data); end = round_page((vm_offset_t)bp->bio_data + bp->bio_length); @@ -3571,11 +3568,16 @@ biodone(struct bio *bp) start = end = 0; } done = bp->bio_done; - if (done == NULL) + if (done == NULL) { + mtxp = mtx_pool_find(mtxpool_sleep, bp); + mtx_lock(mtxp); + bp->bio_flags |= BIO_DONE; wakeup(bp); - mtx_unlock(mtxp); - if (done != NULL) + mtx_unlock(mtxp); + } else { + bp->bio_flags |= BIO_DONE; done(bp); + } if (transient) { pmap_qremove(start, OFF_TO_IDX(end - start)); vmem_free(transient_arena, start, end - start); @@ -3585,9 +3587,6 @@ biodone(struct bio *bp) /* * Wait for a BIO to finish. - * - * XXX: resort to a timeout for now. The optimal locking (if any) for this - * case is not yet clear. */ int biowait(struct bio *bp, const char *wchan) @@ -3597,7 +3596,7 @@ biowait(struct bio *bp, const char *wcha mtxp = mtx_pool_find(mtxpool_sleep, bp); mtx_lock(mtxp); while ((bp->bio_flags & BIO_DONE) == 0) - msleep(bp, mtxp, PRIBIO, wchan, hz / 10); + msleep(bp, mtxp, PRIBIO, wchan, 0); mtx_unlock(mtxp); if (bp->bio_error != 0) return (bp->bio_error); From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 10:33:21 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 87CAF1F2; Wed, 16 Oct 2013 10:33:21 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 7524522C8; Wed, 16 Oct 2013 10:33:21 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9GAXLn5041324; Wed, 16 Oct 2013 10:33:21 GMT (envelope-from melifaro@svn.freebsd.org) Received: (from melifaro@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9GAXLKF041323; Wed, 16 Oct 2013 10:33:21 GMT (envelope-from melifaro@svn.freebsd.org) Message-Id: <201310161033.r9GAXLKF041323@svn.freebsd.org> From: "Alexander V. Chernikov" Date: Wed, 16 Oct 2013 10:33:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256617 - head/sys/net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 10:33:21 -0000 Author: melifaro Date: Wed Oct 16 10:33:20 2013 New Revision: 256617 URL: http://svnweb.freebsd.org/changeset/base/256617 Log: Remove unused fields from radix_node_head. Sponsored by: Yandex LLC Modified: head/sys/net/radix.h Modified: head/sys/net/radix.h ============================================================================== --- head/sys/net/radix.h Wed Oct 16 10:26:34 2013 (r256616) +++ head/sys/net/radix.h Wed Oct 16 10:33:20 2013 (r256617) @@ -107,24 +107,15 @@ struct radix_node_head { struct radix_node *rnh_treetop; u_int rnh_gen; /* generation counter */ int rnh_multipath; /* multipath capable ? */ - int rnh_addrsize; /* permit, but not require fixed keys */ - int rnh_pktsize; /* permit, but not require fixed keys */ struct radix_node *(*rnh_addaddr) /* add based on sockaddr */ (void *v, void *mask, struct radix_node_head *head, struct radix_node nodes[]); - struct radix_node *(*rnh_addpkt) /* add based on packet hdr */ - (void *v, void *mask, - struct radix_node_head *head, struct radix_node nodes[]); struct radix_node *(*rnh_deladdr) /* remove based on sockaddr */ (void *v, void *mask, struct radix_node_head *head); - struct radix_node *(*rnh_delpkt) /* remove based on packet hdr */ - (void *v, void *mask, struct radix_node_head *head); struct radix_node *(*rnh_matchaddr) /* locate based on sockaddr */ (void *v, struct radix_node_head *head); struct radix_node *(*rnh_lookup) /* locate based on sockaddr */ (void *v, void *mask, struct radix_node_head *head); - struct radix_node *(*rnh_matchpkt) /* locate based on packet hdr */ - (void *v, struct radix_node_head *head); int (*rnh_walktree) /* traverse tree */ (struct radix_node_head *head, walktree_f_t *f, void *w); int (*rnh_walktree_from) /* traverse tree below a */ From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 10:36:42 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id E08B0394; Wed, 16 Oct 2013 10:36:42 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id CE4F622E9; Wed, 16 Oct 2013 10:36:42 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9GAagBP042178; Wed, 16 Oct 2013 10:36:42 GMT (envelope-from melifaro@svn.freebsd.org) Received: (from melifaro@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9GAagZh042177; Wed, 16 Oct 2013 10:36:42 GMT (envelope-from melifaro@svn.freebsd.org) Message-Id: <201310161036.r9GAagZh042177@svn.freebsd.org> From: "Alexander V. Chernikov" Date: Wed, 16 Oct 2013 10:36:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256618 - head/share/man/man9 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 10:36:43 -0000 Author: melifaro Date: Wed Oct 16 10:36:42 2013 New Revision: 256618 URL: http://svnweb.freebsd.org/changeset/base/256618 Log: Reflect r248070 (RTM_PINNED) changes in documentation. Pointed by: pluknet MFC after: 2 weeks Modified: head/share/man/man9/rtentry.9 Modified: head/share/man/man9/rtentry.9 ============================================================================== --- head/share/man/man9/rtentry.9 Wed Oct 16 10:33:20 2013 (r256617) +++ head/share/man/man9/rtentry.9 Wed Oct 16 10:36:42 2013 (r256618) @@ -28,7 +28,7 @@ .\" .\" $FreeBSD$ .\" -.Dd December 11, 2008 +.Dd October 16, 2013 .Dt RTENTRY 9 .Os .Sh NAME @@ -154,8 +154,7 @@ Protocol-specific. .It Dv RTF_PRCLONING This flag is obsolete and simply ignored by facility. .It Dv RTF_PINNED -(Reserved for future use to indicate routes which are not to be -modified by a routing protocol.) +Indicates that this route is immutable to a routing protocol. .It Dv RTF_LOCAL Indicates that the destination of this route is an address configured as belonging to this system. From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 12:18:45 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 636667BC; Wed, 16 Oct 2013 12:18:45 +0000 (UTC) (envelope-from melifaro@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 5035C28E4; Wed, 16 Oct 2013 12:18:45 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9GCIjn8095468; Wed, 16 Oct 2013 12:18:45 GMT (envelope-from melifaro@svn.freebsd.org) Received: (from melifaro@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9GCIiMN095465; Wed, 16 Oct 2013 12:18:44 GMT (envelope-from melifaro@svn.freebsd.org) Message-Id: <201310161218.r9GCIiMN095465@svn.freebsd.org> From: "Alexander V. Chernikov" Date: Wed, 16 Oct 2013 12:18:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256624 - head/sys/net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 12:18:45 -0000 Author: melifaro Date: Wed Oct 16 12:18:44 2013 New Revision: 256624 URL: http://svnweb.freebsd.org/changeset/base/256624 Log: Fix long-standing issue with incorrect radix mask calculation. Usual symptoms are messages like rn_delete: inconsistent annotation rn_addmask: mask impossibly already in tree or inability to flush/delete particular prefix in ipfw table. Changes: * Assume 32 bytes as maximum radix key length * Remove rn_init() * Statically allocate rn_ones/rn_zeroes * Make separate mask tree for each "normal" tree instead of system global one * Remove "optimization" on masks reusage and key zeroying * Change rn_addmask() arguments to accept tree pointer (no users in base) PR: kern/182851, kern/169206, kern/135476, kern/134531 Found by: Slawa Olhovchenkov MFC after: 2 weeks Reviewed by: glebius Sponsored by: Yandex LLC Modified: head/sys/net/radix.c head/sys/net/radix.h head/sys/net/route.c Modified: head/sys/net/radix.c ============================================================================== --- head/sys/net/radix.c Wed Oct 16 12:15:33 2013 (r256623) +++ head/sys/net/radix.c Wed Oct 16 12:18:44 2013 (r256624) @@ -66,27 +66,19 @@ static struct radix_node *rn_search(void *, struct radix_node *), *rn_search_m(void *, struct radix_node *, void *); -static int max_keylen; -static struct radix_mask *rn_mkfreelist; -static struct radix_node_head *mask_rnhead; -/* - * Work area -- the following point to 3 buffers of size max_keylen, - * allocated in this order in a block of memory malloc'ed by rn_init. - * rn_zeros, rn_ones are set in rn_init and used in readonly afterwards. - * addmask_key is used in rn_addmask in rw mode and not thread-safe. - */ -static char *rn_zeros, *rn_ones, *addmask_key; +static void rn_detachhead_internal(void **head); +static int rn_inithead_internal(void **head, int off); + +#define RADIX_MAX_KEY_LEN 32 -#define MKGet(m) { \ - if (rn_mkfreelist) { \ - m = rn_mkfreelist; \ - rn_mkfreelist = (m)->rm_mklist; \ - } else \ - R_Malloc(m, struct radix_mask *, sizeof (struct radix_mask)); } - -#define MKFree(m) { (m)->rm_mklist = rn_mkfreelist; rn_mkfreelist = (m);} +static char rn_zeros[RADIX_MAX_KEY_LEN]; +static char rn_ones[RADIX_MAX_KEY_LEN] = { + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, +}; -#define rn_masktop (mask_rnhead->rnh_treetop) static int rn_lexobetter(void *m_arg, void *n_arg); static struct radix_mask * @@ -230,7 +222,8 @@ rn_lookup(v_arg, m_arg, head) caddr_t netmask = 0; if (m_arg) { - x = rn_addmask(m_arg, 1, head->rnh_treetop->rn_offset); + x = rn_addmask(m_arg, head->rnh_masks, 1, + head->rnh_treetop->rn_offset); if (x == 0) return (0); netmask = x->rn_key; @@ -489,53 +482,47 @@ on1: } struct radix_node * -rn_addmask(n_arg, search, skip) - int search, skip; - void *n_arg; +rn_addmask(void *n_arg, struct radix_node_head *maskhead, int search, int skip) { caddr_t netmask = (caddr_t)n_arg; register struct radix_node *x; register caddr_t cp, cplim; register int b = 0, mlen, j; - int maskduplicated, m0, isnormal; + int maskduplicated, isnormal; struct radix_node *saved_x; - static int last_zeroed = 0; + char addmask_key[RADIX_MAX_KEY_LEN]; - if ((mlen = LEN(netmask)) > max_keylen) - mlen = max_keylen; + if ((mlen = LEN(netmask)) > RADIX_MAX_KEY_LEN) + mlen = RADIX_MAX_KEY_LEN; if (skip == 0) skip = 1; if (mlen <= skip) - return (mask_rnhead->rnh_nodes); + return (maskhead->rnh_nodes); + + bzero(addmask_key, RADIX_MAX_KEY_LEN); if (skip > 1) bcopy(rn_ones + 1, addmask_key + 1, skip - 1); - if ((m0 = mlen) > skip) - bcopy(netmask + skip, addmask_key + skip, mlen - skip); + bcopy(netmask + skip, addmask_key + skip, mlen - skip); /* * Trim trailing zeroes. */ for (cp = addmask_key + mlen; (cp > addmask_key) && cp[-1] == 0;) cp--; mlen = cp - addmask_key; - if (mlen <= skip) { - if (m0 >= last_zeroed) - last_zeroed = mlen; - return (mask_rnhead->rnh_nodes); - } - if (m0 < last_zeroed) - bzero(addmask_key + m0, last_zeroed - m0); - *addmask_key = last_zeroed = mlen; - x = rn_search(addmask_key, rn_masktop); + if (mlen <= skip) + return (maskhead->rnh_nodes); + *addmask_key = mlen; + x = rn_search(addmask_key, maskhead->rnh_treetop); if (bcmp(addmask_key, x->rn_key, mlen) != 0) x = 0; if (x || search) return (x); - R_Zalloc(x, struct radix_node *, max_keylen + 2 * sizeof (*x)); + R_Zalloc(x, struct radix_node *, RADIX_MAX_KEY_LEN + 2 * sizeof (*x)); if ((saved_x = x) == 0) return (0); netmask = cp = (caddr_t)(x + 2); bcopy(addmask_key, cp, mlen); - x = rn_insert(cp, mask_rnhead, &maskduplicated, x); + x = rn_insert(cp, maskhead, &maskduplicated, x); if (maskduplicated) { log(LOG_ERR, "rn_addmask: mask impossibly already in tree"); Free(saved_x); @@ -590,12 +577,12 @@ rn_new_radix_mask(tt, next) { register struct radix_mask *m; - MKGet(m); + R_Malloc(m, struct radix_mask *, sizeof (struct radix_mask)); if (m == 0) { - log(LOG_ERR, "Mask for route not entered\n"); + log(LOG_ERR, "Failed to allocate route mask\n"); return (0); } - bzero(m, sizeof *m); + bzero(m, sizeof(*m)); m->rm_bit = tt->rn_bit; m->rm_flags = tt->rn_flags; if (tt->rn_flags & RNF_NORMAL) @@ -629,7 +616,8 @@ rn_addroute(v_arg, n_arg, head, treenode * nodes and possibly save time in calculating indices. */ if (netmask) { - if ((x = rn_addmask(netmask, 0, top->rn_offset)) == 0) + x = rn_addmask(netmask, head->rnh_masks, 0, top->rn_offset); + if (x == NULL) return (0); b_leaf = x->rn_bit; b = -1 - x->rn_bit; @@ -808,7 +796,8 @@ rn_delete(v_arg, netmask_arg, head) * Delete our route from mask lists. */ if (netmask) { - if ((x = rn_addmask(netmask, 1, head_off)) == 0) + x = rn_addmask(netmask, head->rnh_masks, 1, head_off); + if (x == NULL) return (0); netmask = x->rn_key; while (tt->rn_mask != netmask) @@ -841,7 +830,7 @@ rn_delete(v_arg, netmask_arg, head) for (mp = &x->rn_mklist; (m = *mp); mp = &m->rm_mklist) if (m == saved_m) { *mp = m->rm_mklist; - MKFree(m); + Free(m); break; } if (m == 0) { @@ -932,7 +921,7 @@ on1: struct radix_mask *mm = m->rm_mklist; x->rn_mklist = 0; if (--(m->rm_refs) < 0) - MKFree(m); + Free(m); m = mm; } if (m) @@ -1128,10 +1117,8 @@ rn_walktree(h, f, w) * bits starting at 'off'. * Return 1 on success, 0 on error. */ -int -rn_inithead(head, off) - void **head; - int off; +static int +rn_inithead_internal(void **head, int off) { register struct radix_node_head *rnh; register struct radix_node *t, *tt, *ttt; @@ -1163,8 +1150,8 @@ rn_inithead(head, off) return (1); } -int -rn_detachhead(void **head) +static void +rn_detachhead_internal(void **head) { struct radix_node_head *rnh; @@ -1176,28 +1163,41 @@ rn_detachhead(void **head) Free(rnh); *head = NULL; +} + +int +rn_inithead(void **head, int off) +{ + struct radix_node_head *rnh; + + if (*head != NULL) + return (1); + + if (rn_inithead_internal(head, off) == 0) + return (0); + + rnh = (struct radix_node_head *)(*head); + + if (rn_inithead_internal((void **)&rnh->rnh_masks, 0) == 0) { + rn_detachhead_internal(head); + return (0); + } + return (1); } -void -rn_init(int maxk) +int +rn_detachhead(void **head) { - char *cp, *cplim; + struct radix_node_head *rnh; - max_keylen = maxk; - if (max_keylen == 0) { - log(LOG_ERR, - "rn_init: radix functions require max_keylen be set\n"); - return; - } - R_Malloc(rn_zeros, char *, 3 * max_keylen); - if (rn_zeros == NULL) - panic("rn_init"); - bzero(rn_zeros, 3 * max_keylen); - rn_ones = cp = rn_zeros + max_keylen; - addmask_key = cplim = rn_ones + max_keylen; - while (cp < cplim) - *cp++ = -1; - if (rn_inithead((void **)(void *)&mask_rnhead, 0) == 0) - panic("rn_init 2"); + KASSERT((head != NULL && *head != NULL), + ("%s: head already freed", __func__)); + + rnh = *head; + + rn_detachhead_internal((void **)&rnh->rnh_masks); + rn_detachhead_internal(head); + return (1); } + Modified: head/sys/net/radix.h ============================================================================== --- head/sys/net/radix.h Wed Oct 16 12:15:33 2013 (r256623) +++ head/sys/net/radix.h Wed Oct 16 12:18:44 2013 (r256624) @@ -124,6 +124,7 @@ struct radix_node_head { void (*rnh_close) /* do something when the last ref drops */ (struct radix_node *rn, struct radix_node_head *head); struct radix_node rnh_nodes[3]; /* empty tree for common case */ + struct radix_node_head *rnh_masks; /* Storage for our masks */ #ifdef _KERNEL struct rwlock rnh_lock; /* locks entire radix tree */ #endif @@ -152,12 +153,11 @@ struct radix_node_head { #define RADIX_NODE_HEAD_WLOCK_ASSERT(rnh) rw_assert(&(rnh)->rnh_lock, RA_WLOCKED) #endif /* _KERNEL */ -void rn_init(int); int rn_inithead(void **, int); int rn_detachhead(void **); int rn_refines(void *, void *); struct radix_node - *rn_addmask(void *, int, int), + *rn_addmask(void *, struct radix_node_head *, int, int), *rn_addroute (void *, void *, struct radix_node_head *, struct radix_node [2]), *rn_delete(void *, void *, struct radix_node_head *), Modified: head/sys/net/route.c ============================================================================== --- head/sys/net/route.c Wed Oct 16 12:15:33 2013 (r256623) +++ head/sys/net/route.c Wed Oct 16 12:18:44 2013 (r256624) @@ -183,20 +183,12 @@ rt_tables_get_rnh(int table, int fam) static void route_init(void) { - struct domain *dom; - int max_keylen = 0; /* whack the tunable ints into line. */ if (rt_numfibs > RT_MAXFIBS) rt_numfibs = RT_MAXFIBS; if (rt_numfibs == 0) rt_numfibs = 1; - - for (dom = domains; dom; dom = dom->dom_next) - if (dom->dom_maxrtkey > max_keylen) - max_keylen = dom->dom_maxrtkey; - - rn_init(max_keylen); /* init all zeroes, all ones, mask table */ } SYSINIT(route_init, SI_SUB_PROTO_DOMAIN, SI_ORDER_THIRD, route_init, 0); From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 14:24:22 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 9A2EA8B9; Wed, 16 Oct 2013 14:24:22 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 882A622DF; Wed, 16 Oct 2013 14:24:22 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9GEOMwt064241; Wed, 16 Oct 2013 14:24:22 GMT (envelope-from ian@svn.freebsd.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9GEOMoW064240; Wed, 16 Oct 2013 14:24:22 GMT (envelope-from ian@svn.freebsd.org) Message-Id: <201310161424.r9GEOMoW064240@svn.freebsd.org> From: Ian Lepore Date: Wed, 16 Oct 2013 14:24:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256628 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 14:24:22 -0000 Author: ian Date: Wed Oct 16 14:24:22 2013 New Revision: 256628 URL: http://svnweb.freebsd.org/changeset/base/256628 Log: Fix a register name typo. The effect was that CPU_CONTROL_AFLT_ENABLE wasn't being set, but it was almost assuredly already turned on anyway by the bootloader. Modified: head/sys/arm/arm/locore.S Modified: head/sys/arm/arm/locore.S ============================================================================== --- head/sys/arm/arm/locore.S Wed Oct 16 13:33:48 2013 (r256627) +++ head/sys/arm/arm/locore.S Wed Oct 16 14:24:22 2013 (r256628) @@ -187,7 +187,7 @@ Lunmapped: mrc p15, 0, r0, c1, c0, 0 #ifdef _ARM_ARCH_6 orr r0, r0, #(CPU_CONTROL_V6_EXTPAGE | CPU_CONTROL_UNAL_ENABLE) - orr r2, r2, #(CPU_CONTROL_AFLT_ENABLE) + orr r0, r0, #(CPU_CONTROL_AFLT_ENABLE) orr r0, r0, #(CPU_CONTROL_AF_ENABLE) #endif orr r0, r0, #(CPU_CONTROL_MMU_ENABLE) From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 15:20:28 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 440305AF; Wed, 16 Oct 2013 15:20:28 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 31BE82647; Wed, 16 Oct 2013 15:20:28 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9GFKRUc093758; Wed, 16 Oct 2013 15:20:27 GMT (envelope-from br@svn.freebsd.org) Received: (from br@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9GFKRC6093755; Wed, 16 Oct 2013 15:20:27 GMT (envelope-from br@svn.freebsd.org) Message-Id: <201310161520.r9GFKRC6093755@svn.freebsd.org> From: Ruslan Bukin Date: Wed, 16 Oct 2013 15:20:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256629 - in head/sys/arm: arm include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 15:20:28 -0000 Author: br Date: Wed Oct 16 15:20:27 2013 New Revision: 256629 URL: http://svnweb.freebsd.org/changeset/base/256629 Log: Add CPU ID for ARM Cortex A5. Approved by: cognet (mentor) Modified: head/sys/arm/arm/cpufunc.c head/sys/arm/arm/identcpu.c head/sys/arm/include/armreg.h Modified: head/sys/arm/arm/cpufunc.c ============================================================================== --- head/sys/arm/arm/cpufunc.c Wed Oct 16 14:24:22 2013 (r256628) +++ head/sys/arm/arm/cpufunc.c Wed Oct 16 15:20:27 2013 (r256629) @@ -1476,7 +1476,8 @@ set_cpufuncs() } #endif /* CPU_ARM1136 || CPU_ARM1176 */ #ifdef CPU_CORTEXA - if (cputype == CPU_ID_CORTEXA7 || + if (cputype == CPU_ID_CORTEXA5 || + cputype == CPU_ID_CORTEXA7 || cputype == CPU_ID_CORTEXA8R1 || cputype == CPU_ID_CORTEXA8R2 || cputype == CPU_ID_CORTEXA8R3 || Modified: head/sys/arm/arm/identcpu.c ============================================================================== --- head/sys/arm/arm/identcpu.c Wed Oct 16 14:24:22 2013 (r256628) +++ head/sys/arm/arm/identcpu.c Wed Oct 16 15:20:27 2013 (r256629) @@ -236,6 +236,8 @@ const struct cpuidtab cpuids[] = { { CPU_ID_ARM1026EJS, CPU_CLASS_ARM10EJ, "ARM1026EJ-S", generic_steppings }, + { CPU_ID_CORTEXA5, CPU_CLASS_CORTEXA, "Cortex A5", + generic_steppings }, { CPU_ID_CORTEXA7, CPU_CLASS_CORTEXA, "Cortex A7", generic_steppings }, { CPU_ID_CORTEXA8R1, CPU_CLASS_CORTEXA, "Cortex A8-r1", Modified: head/sys/arm/include/armreg.h ============================================================================== --- head/sys/arm/include/armreg.h Wed Oct 16 14:24:22 2013 (r256628) +++ head/sys/arm/include/armreg.h Wed Oct 16 15:20:27 2013 (r256629) @@ -147,6 +147,7 @@ #define CPU_ID_ARM1136JS 0x4107b360 #define CPU_ID_ARM1136JSR1 0x4117b360 #define CPU_ID_ARM1176JZS 0x410fb760 +#define CPU_ID_CORTEXA5 0x410fc050 #define CPU_ID_CORTEXA7 0x410fc070 #define CPU_ID_CORTEXA8R1 0x411fc080 #define CPU_ID_CORTEXA8R2 0x412fc080 From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 16:32:36 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 20A94C8A; Wed, 16 Oct 2013 16:32:36 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E71422A7E; Wed, 16 Oct 2013 16:32:35 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9GGWZ7a031117; Wed, 16 Oct 2013 16:32:35 GMT (envelope-from ian@svn.freebsd.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9GGWZmC031116; Wed, 16 Oct 2013 16:32:35 GMT (envelope-from ian@svn.freebsd.org) Message-Id: <201310161632.r9GGWZmC031116@svn.freebsd.org> From: Ian Lepore Date: Wed, 16 Oct 2013 16:32:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256637 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 16:32:36 -0000 Author: ian Date: Wed Oct 16 16:32:35 2013 New Revision: 256637 URL: http://svnweb.freebsd.org/changeset/base/256637 Log: When calculating the number of bounce pages needed, round the maxsize up to a multiple of PAGE_SIZE, and add one page because there can always be one more boundary crossing than the number of pages in the transfer. Modified: head/sys/arm/arm/busdma_machdep-v6.c Modified: head/sys/arm/arm/busdma_machdep-v6.c ============================================================================== --- head/sys/arm/arm/busdma_machdep-v6.c Wed Oct 16 16:05:49 2013 (r256636) +++ head/sys/arm/arm/busdma_machdep-v6.c Wed Oct 16 16:32:35 2013 (r256637) @@ -425,14 +425,21 @@ bus_dma_tag_create(bus_dma_tag_t parent, if (_bus_dma_can_bounce(newtag->lowaddr, newtag->highaddr) || newtag->alignment > 1) newtag->flags |= BUS_DMA_COULD_BOUNCE; - else - maxsize = 2; /* Need at most 2 bounce pages for unaligned access on cache line boundaries */ + /* + * Any request can auto-bounce due to cacheline alignment, in addition + * to any alignment or boundary specifications in the tag, so if the + * ALLOCNOW flag is set, there's always work to do. + */ if ((flags & BUS_DMA_ALLOCNOW) != 0) { struct bounce_zone *bz; - - /* Must bounce */ - + /* + * Round size up to a full page, and add one more page because + * there can always be one more boundary crossing than the + * number of pages in a transfer. + */ + maxsize = roundup2(maxsize, PAGE_SIZE) + PAGE_SIZE; + if ((error = alloc_bounce_zone(newtag)) != 0) { free(newtag, M_DEVBUF); return (error); @@ -518,20 +525,22 @@ static int allocate_bz_and_pages(bus_dma STAILQ_INIT(&(mapp->bpages)); /* - * Attempt to add pages to our pool on a per-instance - * basis up to a sane limit. + * Attempt to add pages to our pool on a per-instance basis up to a sane + * limit. Even if the tag isn't flagged as COULD_BOUNCE due to + * alignment and boundary constraints, it could still auto-bounce due to + * cacheline alignment, which requires at most two bounce pages. */ if (dmat->flags & BUS_DMA_COULD_BOUNCE) maxpages = MAX_BPAGES; else - maxpages = 2 * bz->map_count; /* Only need at most 2 pages for buffers unaligned on cache line boundaries */ + maxpages = 2 * bz->map_count; if ((dmat->flags & BUS_DMA_MIN_ALLOC_COMP) == 0 || (bz->map_count > 0 && bz->total_bpages < maxpages)) { int pages; - pages = MAX(atop(dmat->maxsize), 1); + pages = atop(roundup2(dmat->maxsize, PAGE_SIZE)) + 1; pages = MIN(maxpages - bz->total_bpages, pages); - pages = MAX(pages, 1); + pages = MAX(pages, 2); if (alloc_bounce_pages(dmat, pages) < pages) return (ENOMEM); From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 16:35:26 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 03230E5F; Wed, 16 Oct 2013 16:35:26 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E4DEA2AA2; Wed, 16 Oct 2013 16:35:25 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9GGZP33032206; Wed, 16 Oct 2013 16:35:25 GMT (envelope-from ian@svn.freebsd.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9GGZPkG032205; Wed, 16 Oct 2013 16:35:25 GMT (envelope-from ian@svn.freebsd.org) Message-Id: <201310161635.r9GGZPkG032205@svn.freebsd.org> From: Ian Lepore Date: Wed, 16 Oct 2013 16:35:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256638 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 16:35:26 -0000 Author: ian Date: Wed Oct 16 16:35:25 2013 New Revision: 256638 URL: http://svnweb.freebsd.org/changeset/base/256638 Log: Add cases for the combinations of busdma sync op flags that we handle correctly by doing nothing, then add a panic for the default case, because that implies that some driver asked for a sync (probably incorrectly) and nothing was done. Modified: head/sys/arm/arm/busdma_machdep-v6.c Modified: head/sys/arm/arm/busdma_machdep-v6.c ============================================================================== --- head/sys/arm/arm/busdma_machdep-v6.c Wed Oct 16 16:32:35 2013 (r256637) +++ head/sys/arm/arm/busdma_machdep-v6.c Wed Oct 16 16:35:25 2013 (r256638) @@ -1282,7 +1282,12 @@ _bus_dmamap_sync(bus_dma_tag_t dmat, bus } break; + case BUS_DMASYNC_POSTREAD: + case BUS_DMASYNC_POSTWRITE: + case BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE: + break; default: + panic("unsupported combination of sync operations: 0x%08x\n", op); break; } } From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 16:46:15 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id ECA6337E; Wed, 16 Oct 2013 16:46:15 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D9B242B52; Wed, 16 Oct 2013 16:46:15 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9GGkF51037696; Wed, 16 Oct 2013 16:46:15 GMT (envelope-from luigi@svn.freebsd.org) Received: (from luigi@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9GGkFfi037695; Wed, 16 Oct 2013 16:46:15 GMT (envelope-from luigi@svn.freebsd.org) Message-Id: <201310161646.r9GGkFfi037695@svn.freebsd.org> From: Luigi Rizzo Date: Wed, 16 Oct 2013 16:46:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256639 - head/release/picobsd/build X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 16:46:16 -0000 Author: luigi Date: Wed Oct 16 16:46:15 2013 New Revision: 256639 URL: http://svnweb.freebsd.org/changeset/base/256639 Log: update the picobsd script to build with GCC and not CLANG Modified: head/release/picobsd/build/picobsd Modified: head/release/picobsd/build/picobsd ============================================================================== --- head/release/picobsd/build/picobsd Wed Oct 16 16:35:25 2013 (r256638) +++ head/release/picobsd/build/picobsd Wed Oct 16 16:46:15 2013 (r256639) @@ -166,7 +166,13 @@ create_includes_and_libraries2() { # opt log "create_includes_and_libraries2() for ${SRC} $1" if [ ${OSVERSION} -ge 600000 ] ; then no="-DNO_CLEAN -DNO_PROFILE -DNO_GAMES -DNO_LIBC_R" # WITHOUT_CDDL=1" - no="$no -DWITHOUT_CLANG -DMALLOC_PRODUCTION" + #no="$no -DWITHOUT_CLANG -DMALLOC_PRODUCTION" + # XXX 20131001 see if clang fixes the build + export WITHOUT_CLANG=YES + export WITHOUT_ICONV=YES + export WITH_GCC=YES + export WITH_GNUCXX=YES + no="$no -DMALLOC_PRODUCTION" else no="-DNOCLEAN -DNOPROFILE -DNOGAMES -DNOLIBC_R" fi @@ -974,7 +980,13 @@ set_build_parameters() { if [ ${OSVERSION} -ge 500035 ] ; then export MAKEOBJDIRPREFIX=${l_objtree} export TARGET_ARCH=${o_arch} TARGET=${o_arch} - export WITHOUT_CLANG_IS_CC=1 + # XXX 20131001 see if CLANG fixes the build + # XXX export WITHOUT_CLANG_IS_CC=1 + export WITHOUT_CLANG=YES + export WITHOUT_ICONV=YES + export WITH_GCC=YES + export WITH_GNUCXX=YES + # XXX why change machine_arch ? #-- export MACHINE_ARCH=`uname -m` MACHINE=`uname -m` # export CWARNFLAGS="-Wextra -Wno-sign-compare -Wno-missing-field-initializers" From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 16:46:26 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 176AF4AA; Wed, 16 Oct 2013 16:46:26 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id DB6A22B53; Wed, 16 Oct 2013 16:46:25 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9GGkPeB037760; Wed, 16 Oct 2013 16:46:25 GMT (envelope-from ian@svn.freebsd.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9GGkPck037759; Wed, 16 Oct 2013 16:46:25 GMT (envelope-from ian@svn.freebsd.org) Message-Id: <201310161646.r9GGkPck037759@svn.freebsd.org> From: Ian Lepore Date: Wed, 16 Oct 2013 16:46:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256640 - head X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 16:46:26 -0000 Author: ian Date: Wed Oct 16 16:46:25 2013 New Revision: 256640 URL: http://svnweb.freebsd.org/changeset/base/256640 Log: Allow 'make xdev' to work when DESTDIR is set. Submitted by: Patrick Kelsey Modified: head/Makefile.inc1 Modified: head/Makefile.inc1 ============================================================================== --- head/Makefile.inc1 Wed Oct 16 16:46:15 2013 (r256639) +++ head/Makefile.inc1 Wed Oct 16 16:46:25 2013 (r256640) @@ -1830,7 +1830,7 @@ NOFUN=-DNO_FSCHG -DWITHOUT_HTML -DWITHOU CPUTYPE=${XDEV_CPUTYPE} XDDIR=${XDEV_ARCH}-freebsd -XDTP=/usr/${XDDIR} +XDTP=usr/${XDDIR} CDBENV=MAKEOBJDIRPREFIX=${MAKEOBJDIRPREFIX}/${XDDIR} \ INSTALL="sh ${.CURDIR}/tools/install.sh" CDENV= ${CDBENV} \ @@ -1843,8 +1843,8 @@ CD2ENV=${CDENV} CC="${CC} ${CD2CFLAGS}" CDTMP= ${MAKEOBJDIRPREFIX}/${XDDIR}/${.CURDIR}/tmp CDMAKE=${CDENV} PATH=${CDTMP}/usr/bin:${PATH} ${MAKE} ${NOFUN} -CD2MAKE=${CD2ENV} PATH=${CDTMP}/usr/bin:${XDTP}/usr/bin:${PATH} ${MAKE} ${NOFUN} -XDDESTDIR=${DESTDIR}${XDTP} +CD2MAKE=${CD2ENV} PATH=${CDTMP}/usr/bin:${XDDESTDIR}/usr/bin:${PATH} ${MAKE} ${NOFUN} +XDDESTDIR=${DESTDIR}/${XDTP} .if !defined(OSREL) OSREL!= uname -r | sed -e 's/[-(].*//' .endif @@ -1924,6 +1924,7 @@ _xi-libraries: _xi-links: ${_+_}cd ${XDDESTDIR}/usr/bin; \ + mkdir -p ../../../../usr/bin; \ for i in *; do \ ln -sf ../../${XDTP}/usr/bin/$$i \ ../../../../usr/bin/${XDDIR}-$$i; \ From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 16:53:01 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 08B1784E; Wed, 16 Oct 2013 16:53:01 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id EA1122BD2; Wed, 16 Oct 2013 16:53:00 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9GGr03k041671; Wed, 16 Oct 2013 16:53:00 GMT (envelope-from luigi@svn.freebsd.org) Received: (from luigi@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9GGr0Rm041667; Wed, 16 Oct 2013 16:53:00 GMT (envelope-from luigi@svn.freebsd.org) Message-Id: <201310161653.r9GGr0Rm041667@svn.freebsd.org> From: Luigi Rizzo Date: Wed, 16 Oct 2013 16:53:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256641 - in head/release/picobsd/floppy.tree/etc: . ssh X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 16:53:01 -0000 Author: luigi Date: Wed Oct 16 16:53:00 2013 New Revision: 256641 URL: http://svnweb.freebsd.org/changeset/base/256641 Log: help running sshd on picobsd Modified: head/release/picobsd/floppy.tree/etc/rc1 head/release/picobsd/floppy.tree/etc/ssh/sshd_config Modified: head/release/picobsd/floppy.tree/etc/rc1 ============================================================================== --- head/release/picobsd/floppy.tree/etc/rc1 Wed Oct 16 16:46:25 2013 (r256640) +++ head/release/picobsd/floppy.tree/etc/rc1 Wed Oct 16 16:53:00 2013 (r256641) @@ -52,8 +52,11 @@ pwd_mkdb -p ./master.passwd [ "${inetd_enable}" = "YES" -a -f /stand/inetd ] && \ { echo "Starting inetd."; inetd ${inetd_flags} ; } -[ "${sshd_enable}" = "YES" -a -f /stand/sshd ] && \ - { echo "Starting sshd..." ; sshd -f /etc/sshd_config ; } +if [ "${sshd_enable}" = "YES" -a -f /usr/sbin/sshd ] ; then + echo "Starting sshd..." + chmod 600 /etc/ssh_host*key + /usr/sbin/sshd -f /etc/sshd_config +fi echo '' cat /etc/motd Modified: head/release/picobsd/floppy.tree/etc/ssh/sshd_config ============================================================================== --- head/release/picobsd/floppy.tree/etc/ssh/sshd_config Wed Oct 16 16:46:25 2013 (r256640) +++ head/release/picobsd/floppy.tree/etc/ssh/sshd_config Wed Oct 16 16:53:00 2013 (r256641) @@ -1,24 +1,23 @@ +# $FreeBSD$ +# minimal config for sshd on picobsd Port 22 ListenAddress 0.0.0.0 HostKey /etc/ssh_host_key -RandomSeed /etc/ssh_random_seed +#RandomSeed /etc/ssh_random_seed ServerKeyBits 768 LoginGraceTime 600 KeyRegenerationInterval 3600 PermitRootLogin yes IgnoreRhosts no StrictModes yes -QuietMode no X11Forwarding no X11DisplayOffset 10 -FascistLogging no PrintMotd yes KeepAlive yes SyslogFacility AUTH -RhostsAuthentication no RhostsRSAAuthentication yes RSAAuthentication yes -PasswordAuthentication no +PasswordAuthentication yes PermitEmptyPasswords no UseLogin no # CheckMail no From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 17:00:22 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 91ACEAA7; Wed, 16 Oct 2013 17:00:22 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 7F1272C1B; Wed, 16 Oct 2013 17:00:22 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9GH0MCS044176; Wed, 16 Oct 2013 17:00:22 GMT (envelope-from dim@svn.freebsd.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9GH0MnW044173; Wed, 16 Oct 2013 17:00:22 GMT (envelope-from dim@svn.freebsd.org) Message-Id: <201310161700.r9GH0MnW044173@svn.freebsd.org> From: Dimitry Andric Date: Wed, 16 Oct 2013 17:00:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256642 - head/contrib/libcxxrt X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 17:00:22 -0000 Author: dim Date: Wed Oct 16 17:00:21 2013 New Revision: 256642 URL: http://svnweb.freebsd.org/changeset/base/256642 Log: Since C++ typeinfo objects are currently not guaranteed to be merged at runtime by the dynamic linker, check for their equality in libcxxrt by not only comparing the typeinfo's name pointers, but also comparing the full names, if necessary. (This is similar to what GNU libstdc++ does in its default configuration.) The 'deep' check can be turned off again by defining LIBCXXRT_MERGED_TYPEINFO, and recompiling libcxxrt. Reviewed by: theraven MFC after: 3 days Modified: head/contrib/libcxxrt/typeinfo.cc Modified: head/contrib/libcxxrt/typeinfo.cc ============================================================================== --- head/contrib/libcxxrt/typeinfo.cc Wed Oct 16 16:53:00 2013 (r256641) +++ head/contrib/libcxxrt/typeinfo.cc Wed Oct 16 17:00:21 2013 (r256642) @@ -35,15 +35,23 @@ type_info::~type_info() {} bool type_info::operator==(const type_info &other) const { +#ifdef LIBCXXRT_MERGED_TYPEINFO return __type_name == other.__type_name; +#else + return __type_name == other.__type_name || strcmp(__type_name, other.__type_name) == 0; +#endif } bool type_info::operator!=(const type_info &other) const { - return __type_name != other.__type_name; + return !operator==(other); } bool type_info::before(const type_info &other) const { +#ifdef LIBCXXRT_MERGED_TYPEINFO return __type_name < other.__type_name; +#else + return strcmp(__type_name, other.__type_name) < 0; +#endif } const char* type_info::name() const { From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 17:03:47 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 0CAC4C2F; Wed, 16 Oct 2013 17:03:47 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D3AF02C5F; Wed, 16 Oct 2013 17:03:46 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9GH3ka9047559; Wed, 16 Oct 2013 17:03:46 GMT (envelope-from emaste@svn.freebsd.org) Received: (from emaste@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9GH3kf8047557; Wed, 16 Oct 2013 17:03:46 GMT (envelope-from emaste@svn.freebsd.org) Message-Id: <201310161703.r9GH3kf8047557@svn.freebsd.org> From: Ed Maste Date: Wed, 16 Oct 2013 17:03:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256643 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 17:03:47 -0000 Author: emaste Date: Wed Oct 16 17:03:46 2013 New Revision: 256643 URL: http://svnweb.freebsd.org/changeset/base/256643 Log: Error out on failure to open specified config file Modified: head/sys/kern/makesyscalls.sh Modified: head/sys/kern/makesyscalls.sh ============================================================================== --- head/sys/kern/makesyscalls.sh Wed Oct 16 17:00:21 2013 (r256642) +++ head/sys/kern/makesyscalls.sh Wed Oct 16 17:03:46 2013 (r256643) @@ -57,7 +57,7 @@ case $# in ;; esac -if [ -n "$2" -a -f "$2" ]; then +if [ -n "$2" ]; then . $2 fi From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 17:16:40 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id E133FF1B; Wed, 16 Oct 2013 17:16:40 +0000 (UTC) (envelope-from delphij@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id CEFC92D03; Wed, 16 Oct 2013 17:16:40 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9GHGeLs053795; Wed, 16 Oct 2013 17:16:40 GMT (envelope-from delphij@svn.freebsd.org) Received: (from delphij@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9GHGeX2053794; Wed, 16 Oct 2013 17:16:40 GMT (envelope-from delphij@svn.freebsd.org) Message-Id: <201310161716.r9GHGeX2053794@svn.freebsd.org> From: Xin LI Date: Wed, 16 Oct 2013 17:16:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256644 - head/lib/libz X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 17:16:41 -0000 Author: delphij Date: Wed Oct 16 17:16:40 2013 New Revision: 256644 URL: http://svnweb.freebsd.org/changeset/base/256644 Log: Make it possible to seek within a gzip stream. Modified: head/lib/libz/zopen.c Modified: head/lib/libz/zopen.c ============================================================================== --- head/lib/libz/zopen.c Wed Oct 16 17:03:46 2013 (r256643) +++ head/lib/libz/zopen.c Wed Oct 16 17:16:40 2013 (r256644) @@ -29,6 +29,12 @@ xgzclose(void *cookie) return gzclose(cookie); } +static fpos_t +xgzseek(void *cookie, fpos_t offset, int whence) +{ + return gzseek(cookie, (z_off_t)offset, whence); +} + FILE * zopen(const char *fname, const char *mode) { @@ -37,7 +43,7 @@ zopen(const char *fname, const char *mod return NULL; if(*mode == 'r') - return (funopen(gz, xgzread, NULL, NULL, xgzclose)); + return (funopen(gz, xgzread, NULL, xgzseek, xgzclose)); else - return (funopen(gz, NULL, xgzwrite, NULL, xgzclose)); + return (funopen(gz, NULL, xgzwrite, xgzseek, xgzclose)); } From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 18:20:29 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C67D7E4; Wed, 16 Oct 2013 18:20:29 +0000 (UTC) (envelope-from neel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A52D421BE; Wed, 16 Oct 2013 18:20:29 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9GIKTGv088376; Wed, 16 Oct 2013 18:20:29 GMT (envelope-from neel@svn.freebsd.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9GIKR7T087092; Wed, 16 Oct 2013 18:20:27 GMT (envelope-from neel@svn.freebsd.org) Message-Id: <201310161820.r9GIKR7T087092@svn.freebsd.org> From: Neel Natu Date: Wed, 16 Oct 2013 18:20:27 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256645 - in head: lib/libvmmapi sys/amd64/amd64 sys/amd64/include sys/amd64/vmm sys/amd64/vmm/intel usr.sbin/bhyve usr.sbin/bhyvectl X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 18:20:30 -0000 Author: neel Date: Wed Oct 16 18:20:27 2013 New Revision: 256645 URL: http://svnweb.freebsd.org/changeset/base/256645 Log: Add a new capability, VM_CAP_ENABLE_INVPCID, that can be enabled to expose 'invpcid' instruction to the guest. Currently bhyve will try to enable this capability unconditionally if it is available. Consolidate code in bhyve to set the capabilities so it is no longer duplicated in BSP and AP bringup. Add a sysctl 'vm.pmap.invpcid_works' to display whether the 'invpcid' instruction is available. Reviewed by: grehan MFC after: 3 days Modified: head/lib/libvmmapi/vmmapi.c head/sys/amd64/amd64/pmap.c head/sys/amd64/include/vmm.h head/sys/amd64/vmm/intel/vmx.c head/sys/amd64/vmm/intel/vmx.h head/sys/amd64/vmm/intel/vmx_controls.h head/sys/amd64/vmm/x86.c head/usr.sbin/bhyve/bhyverun.c head/usr.sbin/bhyve/bhyverun.h head/usr.sbin/bhyve/spinup_ap.c head/usr.sbin/bhyvectl/bhyvectl.c Modified: head/lib/libvmmapi/vmmapi.c ============================================================================== --- head/lib/libvmmapi/vmmapi.c Wed Oct 16 17:16:40 2013 (r256644) +++ head/lib/libvmmapi/vmmapi.c Wed Oct 16 18:20:27 2013 (r256645) @@ -415,6 +415,7 @@ static struct { { "mtrap_exit", VM_CAP_MTRAP_EXIT }, { "pause_exit", VM_CAP_PAUSE_EXIT }, { "unrestricted_guest", VM_CAP_UNRESTRICTED_GUEST }, + { "enable_invpcid", VM_CAP_ENABLE_INVPCID }, { 0 } }; Modified: head/sys/amd64/amd64/pmap.c ============================================================================== --- head/sys/amd64/amd64/pmap.c Wed Oct 16 17:16:40 2013 (r256644) +++ head/sys/amd64/amd64/pmap.c Wed Oct 16 18:20:27 2013 (r256645) @@ -371,6 +371,8 @@ int pmap_pcid_enabled = 1; SYSCTL_INT(_vm_pmap, OID_AUTO, pcid_enabled, CTLFLAG_RDTUN, &pmap_pcid_enabled, 0, "Is TLB Context ID enabled ?"); int invpcid_works = 0; +SYSCTL_INT(_vm_pmap, OID_AUTO, invpcid_works, CTLFLAG_RD, &invpcid_works, 0, + "Is the invpcid instruction available ?"); static int pmap_pcid_save_cnt_proc(SYSCTL_HANDLER_ARGS) Modified: head/sys/amd64/include/vmm.h ============================================================================== --- head/sys/amd64/include/vmm.h Wed Oct 16 17:16:40 2013 (r256644) +++ head/sys/amd64/include/vmm.h Wed Oct 16 18:20:27 2013 (r256645) @@ -223,6 +223,7 @@ enum vm_cap_type { VM_CAP_MTRAP_EXIT, VM_CAP_PAUSE_EXIT, VM_CAP_UNRESTRICTED_GUEST, + VM_CAP_ENABLE_INVPCID, VM_CAP_MAX }; Modified: head/sys/amd64/vmm/intel/vmx.c ============================================================================== --- head/sys/amd64/vmm/intel/vmx.c Wed Oct 16 17:16:40 2013 (r256644) +++ head/sys/amd64/vmm/intel/vmx.c Wed Oct 16 18:20:27 2013 (r256645) @@ -164,6 +164,7 @@ static int cap_halt_exit; static int cap_pause_exit; static int cap_unrestricted_guest; static int cap_monitor_trap; +static int cap_invpcid; static struct unrhdr *vpid_unr; static u_int vpid_alloc_failed; @@ -660,6 +661,11 @@ vmx_init(void) PROCBASED2_UNRESTRICTED_GUEST, 0, &tmp) == 0); + cap_invpcid = (vmx_set_ctlreg(MSR_VMX_PROCBASED_CTLS2, + MSR_VMX_PROCBASED_CTLS2, PROCBASED2_ENABLE_INVPCID, 0, + &tmp) == 0); + + /* Initialize EPT */ error = ept_init(); if (error) { @@ -828,6 +834,7 @@ vmx_vminit(struct vm *vm, pmap_t pmap) vmx->cap[i].set = 0; vmx->cap[i].proc_ctls = procbased_ctls; + vmx->cap[i].proc_ctls2 = procbased_ctls2; vmx->state[i].lastcpu = -1; vmx->state[i].vpid = vpid[i]; @@ -1932,6 +1939,10 @@ vmx_getcap(void *arg, int vcpu, int type if (cap_unrestricted_guest) ret = 0; break; + case VM_CAP_ENABLE_INVPCID: + if (cap_invpcid) + ret = 0; + break; default: break; } @@ -1988,11 +1999,21 @@ vmx_setcap(void *arg, int vcpu, int type case VM_CAP_UNRESTRICTED_GUEST: if (cap_unrestricted_guest) { retval = 0; - baseval = procbased_ctls2; + pptr = &vmx->cap[vcpu].proc_ctls2; + baseval = *pptr; flag = PROCBASED2_UNRESTRICTED_GUEST; reg = VMCS_SEC_PROC_BASED_CTLS; } break; + case VM_CAP_ENABLE_INVPCID: + if (cap_invpcid) { + retval = 0; + pptr = &vmx->cap[vcpu].proc_ctls2; + baseval = *pptr; + flag = PROCBASED2_ENABLE_INVPCID; + reg = VMCS_SEC_PROC_BASED_CTLS; + } + break; default: break; } Modified: head/sys/amd64/vmm/intel/vmx.h ============================================================================== --- head/sys/amd64/vmm/intel/vmx.h Wed Oct 16 17:16:40 2013 (r256644) +++ head/sys/amd64/vmm/intel/vmx.h Wed Oct 16 18:20:27 2013 (r256645) @@ -84,6 +84,7 @@ struct vmxctx { struct vmxcap { int set; uint32_t proc_ctls; + uint32_t proc_ctls2; }; struct vmxstate { Modified: head/sys/amd64/vmm/intel/vmx_controls.h ============================================================================== --- head/sys/amd64/vmm/intel/vmx_controls.h Wed Oct 16 17:16:40 2013 (r256644) +++ head/sys/amd64/vmm/intel/vmx_controls.h Wed Oct 16 18:20:27 2013 (r256645) @@ -68,6 +68,7 @@ #define PROCBASED2_WBINVD_EXITING (1 << 6) #define PROCBASED2_UNRESTRICTED_GUEST (1 << 7) #define PROCBASED2_PAUSE_LOOP_EXITING (1 << 10) +#define PROCBASED2_ENABLE_INVPCID (1 << 12) /* VM Exit Controls */ #define VM_EXIT_SAVE_DEBUG_CONTROLS (1 << 2) Modified: head/sys/amd64/vmm/x86.c ============================================================================== --- head/sys/amd64/vmm/x86.c Wed Oct 16 17:16:40 2013 (r256644) +++ head/sys/amd64/vmm/x86.c Wed Oct 16 18:20:27 2013 (r256645) @@ -53,7 +53,7 @@ int x86_emulate_cpuid(struct vm *vm, int vcpu_id, uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx) { - int error; + int error, enable_invpcid; unsigned int func, regs[4]; enum x2apic_state x2apic_state; @@ -202,8 +202,22 @@ x86_emulate_cpuid(struct vm *vm, int vcp regs[0] |= 0x04008000; break; - case CPUID_0000_0006: case CPUID_0000_0007: + regs[0] = 0; + regs[1] = 0; + regs[2] = 0; + regs[3] = 0; + + /* leaf 0 */ + if (*ecx == 0) { + error = vm_get_capability(vm, vcpu_id, + VM_CAP_ENABLE_INVPCID, &enable_invpcid); + if (error == 0 && enable_invpcid) + regs[1] |= CPUID_STDEXT_INVPCID; + } + break; + + case CPUID_0000_0006: case CPUID_0000_000A: case CPUID_0000_000D: /* Modified: head/usr.sbin/bhyve/bhyverun.c ============================================================================== --- head/usr.sbin/bhyve/bhyverun.c Wed Oct 16 17:16:40 2013 (r256644) +++ head/usr.sbin/bhyve/bhyverun.c Wed Oct 16 18:20:27 2013 (r256645) @@ -484,10 +484,54 @@ num_vcpus_allowed(struct vmctx *ctx) return (1); } +void +fbsdrun_set_capabilities(struct vmctx *ctx, int cpu) +{ + int err, tmp; + + if (fbsdrun_vmexit_on_hlt()) { + err = vm_get_capability(ctx, cpu, VM_CAP_HALT_EXIT, &tmp); + if (err < 0) { + fprintf(stderr, "VM exit on HLT not supported\n"); + exit(1); + } + vm_set_capability(ctx, cpu, VM_CAP_HALT_EXIT, 1); + if (cpu == BSP) + handler[VM_EXITCODE_HLT] = vmexit_hlt; + } + + if (fbsdrun_vmexit_on_pause()) { + /* + * pause exit support required for this mode + */ + err = vm_get_capability(ctx, cpu, VM_CAP_PAUSE_EXIT, &tmp); + if (err < 0) { + fprintf(stderr, + "SMP mux requested, no pause support\n"); + exit(1); + } + vm_set_capability(ctx, cpu, VM_CAP_PAUSE_EXIT, 1); + if (cpu == BSP) + handler[VM_EXITCODE_PAUSE] = vmexit_pause; + } + + if (fbsdrun_disable_x2apic()) + err = vm_set_x2apic_state(ctx, cpu, X2APIC_DISABLED); + else + err = vm_set_x2apic_state(ctx, cpu, X2APIC_ENABLED); + + if (err) { + fprintf(stderr, "Unable to set x2apic state (%d)\n", err); + exit(1); + } + + vm_set_capability(ctx, cpu, VM_CAP_ENABLE_INVPCID, 1); +} + int main(int argc, char *argv[]) { - int c, error, gdb_port, tmp, err, ioapic, bvmcons; + int c, error, gdb_port, err, ioapic, bvmcons; int max_vcpus; struct vmctx *ctx; uint64_t rip; @@ -574,39 +618,7 @@ main(int argc, char *argv[]) exit(1); } - if (fbsdrun_vmexit_on_hlt()) { - err = vm_get_capability(ctx, BSP, VM_CAP_HALT_EXIT, &tmp); - if (err < 0) { - fprintf(stderr, "VM exit on HLT not supported\n"); - exit(1); - } - vm_set_capability(ctx, BSP, VM_CAP_HALT_EXIT, 1); - handler[VM_EXITCODE_HLT] = vmexit_hlt; - } - - if (fbsdrun_vmexit_on_pause()) { - /* - * pause exit support required for this mode - */ - err = vm_get_capability(ctx, BSP, VM_CAP_PAUSE_EXIT, &tmp); - if (err < 0) { - fprintf(stderr, - "SMP mux requested, no pause support\n"); - exit(1); - } - vm_set_capability(ctx, BSP, VM_CAP_PAUSE_EXIT, 1); - handler[VM_EXITCODE_PAUSE] = vmexit_pause; - } - - if (fbsdrun_disable_x2apic()) - err = vm_set_x2apic_state(ctx, BSP, X2APIC_DISABLED); - else - err = vm_set_x2apic_state(ctx, BSP, X2APIC_ENABLED); - - if (err) { - fprintf(stderr, "Unable to set x2apic state (%d)\n", err); - exit(1); - } + fbsdrun_set_capabilities(ctx, BSP); err = vm_setup_memory(ctx, memsize, VM_MMAP_ALL); if (err) { Modified: head/usr.sbin/bhyve/bhyverun.h ============================================================================== --- head/usr.sbin/bhyve/bhyverun.h Wed Oct 16 17:16:40 2013 (r256644) +++ head/usr.sbin/bhyve/bhyverun.h Wed Oct 16 18:20:27 2013 (r256645) @@ -41,6 +41,7 @@ extern char *vmname; void *paddr_guest2host(struct vmctx *ctx, uintptr_t addr, size_t len); +void fbsdrun_set_capabilities(struct vmctx *ctx, int cpu); void fbsdrun_addcpu(struct vmctx *ctx, int cpu, uint64_t rip); int fbsdrun_muxed(void); int fbsdrun_vmexit_on_hlt(void); Modified: head/usr.sbin/bhyve/spinup_ap.c ============================================================================== --- head/usr.sbin/bhyve/spinup_ap.c Wed Oct 16 17:16:40 2013 (r256644) +++ head/usr.sbin/bhyve/spinup_ap.c Wed Oct 16 18:20:27 2013 (r256645) @@ -85,22 +85,7 @@ spinup_ap(struct vmctx *ctx, int vcpu, i error = vcpu_reset(ctx, newcpu); assert(error == 0); - /* Set up capabilities */ - if (fbsdrun_vmexit_on_hlt()) { - error = vm_set_capability(ctx, newcpu, VM_CAP_HALT_EXIT, 1); - assert(error == 0); - } - - if (fbsdrun_vmexit_on_pause()) { - error = vm_set_capability(ctx, newcpu, VM_CAP_PAUSE_EXIT, 1); - assert(error == 0); - } - - if (fbsdrun_disable_x2apic()) - error = vm_set_x2apic_state(ctx, newcpu, X2APIC_DISABLED); - else - error = vm_set_x2apic_state(ctx, newcpu, X2APIC_ENABLED); - assert(error == 0); + fbsdrun_set_capabilities(ctx, newcpu); /* * Enable the 'unrestricted guest' mode for 'newcpu'. Modified: head/usr.sbin/bhyvectl/bhyvectl.c ============================================================================== --- head/usr.sbin/bhyvectl/bhyvectl.c Wed Oct 16 17:16:40 2013 (r256644) +++ head/usr.sbin/bhyvectl/bhyvectl.c Wed Oct 16 18:20:27 2013 (r256645) @@ -1495,6 +1495,7 @@ main(int argc, char *argv[]) vm_capability_type2name(captype), val ? "set" : "not set", vcpu); } else if (errno == ENOENT) { + error = 0; printf("Capability \"%s\" is not available\n", vm_capability_type2name(captype)); } else { From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 18:36:54 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 0D98C6B7; Wed, 16 Oct 2013 18:36:54 +0000 (UTC) (envelope-from cperciva@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D622A22BD; Wed, 16 Oct 2013 18:36:53 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9GIarUA095869; Wed, 16 Oct 2013 18:36:53 GMT (envelope-from cperciva@svn.freebsd.org) Received: (from cperciva@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9GIarDb095868; Wed, 16 Oct 2013 18:36:53 GMT (envelope-from cperciva@svn.freebsd.org) Message-Id: <201310161836.r9GIarDb095868@svn.freebsd.org> From: Colin Percival Date: Wed, 16 Oct 2013 18:36:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256646 - head/usr.sbin/freebsd-update X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 18:36:54 -0000 Author: cperciva Date: Wed Oct 16 18:36:53 2013 New Revision: 256646 URL: http://svnweb.freebsd.org/changeset/base/256646 Log: When installing updates, install new directories first and remove old directories last. This is generally handled by the fact that the list of filesystem objects is sorted, but this sorting is broken by code which moves .so files ahead (so that they're present before any binaries which use them)... that code also moved .so files ahead of directories, which is a problem for upgrading to 10.0 where there's a new directory containing new .so files. Errata Notice Candidate. Modified: head/usr.sbin/freebsd-update/freebsd-update.sh Modified: head/usr.sbin/freebsd-update/freebsd-update.sh ============================================================================== --- head/usr.sbin/freebsd-update/freebsd-update.sh Wed Oct 16 18:20:27 2013 (r256645) +++ head/usr.sbin/freebsd-update/freebsd-update.sh Wed Oct 16 18:36:53 2013 (r256646) @@ -2814,15 +2814,23 @@ Kernel updates have been installed. Ple # If we haven't already dealt with the world, deal with it. if ! [ -f $1/worlddone ]; then + # Create any necessary directories first + grep -vE '^/boot/' $1/INDEX-NEW | + grep -E '^[^|]+\|d\|' > INDEX-NEW + install_from_index INDEX-NEW || return 1 + # Install new shared libraries next grep -vE '^/boot/' $1/INDEX-NEW | + grep -vE '^[^|]+\|d\|' | grep -E '/lib/.*\.so\.[0-9]+\|' > INDEX-NEW install_from_index INDEX-NEW || return 1 # Deal with everything else grep -vE '^/boot/' $1/INDEX-OLD | + grep -vE '^[^|]+\|d\|' | grep -vE '/lib/.*\.so\.[0-9]+\|' > INDEX-OLD grep -vE '^/boot/' $1/INDEX-NEW | + grep -vE '^[^|]+\|d\|' | grep -vE '/lib/.*\.so\.[0-9]+\|' > INDEX-NEW install_from_index INDEX-NEW || return 1 install_delete INDEX-OLD INDEX-NEW || return 1 @@ -2868,11 +2876,20 @@ again to finish installing updates. # Remove old shared libraries grep -vE '^/boot/' $1/INDEX-NEW | + grep -vE '^[^|]+\|d\|' | grep -E '/lib/.*\.so\.[0-9]+\|' > INDEX-NEW grep -vE '^/boot/' $1/INDEX-OLD | + grep -vE '^[^|]+\|d\|' | grep -E '/lib/.*\.so\.[0-9]+\|' > INDEX-OLD install_delete INDEX-OLD INDEX-NEW || return 1 + # Remove old directories + grep -vE '^/boot/' $1/INDEX-OLD | + grep -E '^[^|]+\|d\|' > INDEX-OLD + grep -vE '^/boot/' $1/INDEX-OLD | + grep -E '^[^|]+\|d\|' > INDEX-OLD + install_delete INDEX-OLD INDEX-NEW || return 1 + # Remove temporary files rm INDEX-OLD INDEX-NEW } From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 19:06:45 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 3C8AED13; Wed, 16 Oct 2013 19:06:45 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 2A48F2448; Wed, 16 Oct 2013 19:06:45 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9GJ6jgs011406; Wed, 16 Oct 2013 19:06:45 GMT (envelope-from ian@svn.freebsd.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9GJ6jRx011405; Wed, 16 Oct 2013 19:06:45 GMT (envelope-from ian@svn.freebsd.org) Message-Id: <201310161906.r9GJ6jRx011405@svn.freebsd.org> From: Ian Lepore Date: Wed, 16 Oct 2013 19:06:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256647 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 19:06:45 -0000 Author: ian Date: Wed Oct 16 19:06:44 2013 New Revision: 256647 URL: http://svnweb.freebsd.org/changeset/base/256647 Log: Invalidate the entire L2 cache before enabling it. Say whether it has been enabled or disabled. Modified: head/sys/arm/arm/pl310.c Modified: head/sys/arm/arm/pl310.c ============================================================================== --- head/sys/arm/arm/pl310.c Wed Oct 16 18:36:53 2013 (r256646) +++ head/sys/arm/arm/pl310.c Wed Oct 16 19:06:44 2013 (r256647) @@ -341,8 +341,13 @@ pl310_attach(device_t dev) ctrl_value = pl310_read4(sc, PL310_CTRL); if (sc->sc_enabled && !(ctrl_value & CTRL_ENABLED)) { + /* invalidate current content */ + pl310_write4(pl310_softc, PL310_INV_WAY, 0xffff); + pl310_wait_background_op(PL310_INV_WAY, 0xffff); + /* Enable the L2 cache if disabled */ platform_pl310_write_ctrl(sc, CTRL_ENABLED); + device_printf(dev, "L2 Cache enabled\n"); } if (!sc->sc_enabled && (ctrl_value & CTRL_ENABLED)) { @@ -375,6 +380,7 @@ pl310_attach(device_t dev) EVENT_COUNTER_CTRL_C0_RESET | EVENT_COUNTER_CTRL_C1_RESET); + device_printf(dev, "L2 Cache disabled\n"); } if (sc->sc_enabled) From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 19:36:51 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 5245D679; Wed, 16 Oct 2013 19:36:51 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 2EBEE25C5; Wed, 16 Oct 2013 19:36:51 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9GJapVp026939; Wed, 16 Oct 2013 19:36:51 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9GJao3G026937; Wed, 16 Oct 2013 19:36:50 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201310161936.r9GJao3G026937@svn.freebsd.org> From: Adrian Chadd Date: Wed, 16 Oct 2013 19:36:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256648 - head/sys/mips/atheros X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 19:36:51 -0000 Author: adrian Date: Wed Oct 16 19:36:50 2013 New Revision: 256648 URL: http://svnweb.freebsd.org/changeset/base/256648 Log: Allow the MDIO bus frequency to be selected. The MDIO bus frequency is configured as a divisor off of the MDIO bus reference clock. For the AR9344 and later, the MDIO bus frequency can be faster than normal (ie, up to 100MHz) and thus a static divisor may not be very applicable. So, for those boards that may require an actual frequency to be selected regardless of what crazy stuff the vendor throws in uboot, one can now set the MDIO bus frequency. It uses the MDIO frequency and the target frequency to choose a divisor that doesn't exceed the target frequency. By default it will choose: * DIV_28 on everything; except * DIV_58 on the AR9344 to be conservative. Whilst I'm here, add some comments about the defaults being not quite right. For the other internal switch devices (like the AR933x, AR724x) the divisor can be higher - it's internal and the reference MDIO clock is much lower than 100MHz. The divisor tables and loop code is inspired from Linux/OpenWRT. It's very simple; I didn't feel that reimplementing it would yield a substantially different solution. Tested: * AR9331 (mips24k) * AR9344 (mips74k) Obtained from: Linux/OpenWRT Modified: head/sys/mips/atheros/if_arge.c head/sys/mips/atheros/if_argevar.h Modified: head/sys/mips/atheros/if_arge.c ============================================================================== --- head/sys/mips/atheros/if_arge.c Wed Oct 16 19:06:44 2013 (r256647) +++ head/sys/mips/atheros/if_arge.c Wed Oct 16 19:36:50 2013 (r256648) @@ -345,10 +345,101 @@ arge_reset_mac(struct arge_softc *sc) } /* + * These values map to the divisor values programmed into + * AR71XX_MAC_MII_CFG. + * + * The index of each value corresponds to the divisor section + * value in AR71XX_MAC_MII_CFG (ie, table[0] means '0' in + * AR71XX_MAC_MII_CFG, table[1] means '1', etc.) + */ +static const uint32_t ar71xx_mdio_div_table[] = { + 4, 4, 6, 8, 10, 14, 20, 28, +}; + +static const uint32_t ar7240_mdio_div_table[] = { + 2, 2, 4, 6, 8, 12, 18, 26, 32, 40, 48, 56, 62, 70, 78, 96, +}; + +static const uint32_t ar933x_mdio_div_table[] = { + 4, 4, 6, 8, 10, 14, 20, 28, 34, 42, 50, 58, 66, 74, 82, 98, +}; + +/* + * Lookup the divisor to use based on the given frequency. + * + * Returns the divisor to use, or -ve on error. + */ +static int +arge_mdio_get_divider(struct arge_softc *sc, unsigned long mdio_clock) +{ + unsigned long ref_clock, t; + const uint32_t *table; + int ndivs; + int i; + + /* + * This is the base MDIO frequency on the SoC. + * The dividers .. well, divide. Duh. + */ + ref_clock = ar71xx_mdio_freq(); + + /* + * If either clock is undefined, just tell the + * caller to fall through to the defaults. + */ + if (ref_clock == 0 || mdio_clock == 0) + return (-EINVAL); + + /* + * Pick the correct table! + */ + switch (ar71xx_soc) { + case AR71XX_SOC_AR9330: + case AR71XX_SOC_AR9331: + case AR71XX_SOC_AR9341: + case AR71XX_SOC_AR9342: + case AR71XX_SOC_AR9344: + table = ar933x_mdio_div_table; + ndivs = nitems(ar933x_mdio_div_table); + break; + + case AR71XX_SOC_AR7240: + case AR71XX_SOC_AR7241: + case AR71XX_SOC_AR7242: + table = ar7240_mdio_div_table; + ndivs = nitems(ar7240_mdio_div_table); + break; + + default: + table = ar71xx_mdio_div_table; + ndivs = nitems(ar71xx_mdio_div_table); + } + + /* + * Now, walk through the list and find the first divisor + * that falls under the target MDIO frequency. + * + * The divisors go up, but the corresponding frequencies + * are actually decreasing. + */ + for (i = 0; i < ndivs; i++) { + t = ref_clock / table[i]; + if (t <= mdio_clock) { + return (i); + } + } + + ARGEDEBUG(sc, ARGE_DBG_RESET, + "No divider found; MDIO=%lu Hz; target=%lu Hz\n", + ref_clock, mdio_clock); + return (-ENOENT); +} + +/* * Fetch the MDIO bus clock rate. * * For now, the default is DIV_28 for everything - * bar AR934x, which will be DIV_42. + * bar AR934x, which will be DIV_58. * * It will definitely need updating to take into account * the MDIO bus core clock rate and the target clock @@ -357,12 +448,48 @@ arge_reset_mac(struct arge_softc *sc) static uint32_t arge_fetch_mdiobus_clock_rate(struct arge_softc *sc) { + int mdio_freq, div; + + /* + * Is the MDIO frequency defined? If so, find a divisor that + * makes reasonable sense. Don't overshoot the frequency. + */ + if (resource_int_value(device_get_name(sc->arge_dev), + device_get_unit(sc->arge_dev), + "mdio_freq", + &mdio_freq) == 0) { + sc->arge_mdiofreq = mdio_freq; + div = arge_mdio_get_divider(sc, sc->arge_mdiofreq); + if (bootverbose) + device_printf(sc->arge_dev, + "%s: mdio ref freq=%llu Hz, target freq=%llu Hz," + " divisor index=%d\n", + __func__, + (unsigned long long) ar71xx_mdio_freq(), + (unsigned long long) mdio_freq, + div); + if (div >= 0) + return (div); + } + /* + * Default value(s). + * + * XXX obviously these need .. fixing. + * + * From Linux/OpenWRT: + * + * + 7240? DIV_6 + * + Builtin-switch port and not 934x? DIV_10 + * + Not built-in switch port and 934x? DIV_58 + * + .. else DIV_28. + */ switch (ar71xx_soc) { case AR71XX_SOC_AR9341: case AR71XX_SOC_AR9342: case AR71XX_SOC_AR9344: - return (MAC_MII_CFG_CLOCK_DIV_42); + return (MAC_MII_CFG_CLOCK_DIV_58); + break; default: return (MAC_MII_CFG_CLOCK_DIV_28); } Modified: head/sys/mips/atheros/if_argevar.h ============================================================================== --- head/sys/mips/atheros/if_argevar.h Wed Oct 16 19:06:44 2013 (r256647) +++ head/sys/mips/atheros/if_argevar.h Wed Oct 16 19:36:50 2013 (r256648) @@ -169,6 +169,7 @@ struct arge_softc { int arge_mac_unit; int arge_if_flags; uint32_t arge_debug; + uint32_t arge_mdiofreq; struct { uint32_t tx_pkts_unaligned; uint32_t tx_pkts_aligned; From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 19:47:15 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 3B4A08BD; Wed, 16 Oct 2013 19:47:15 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-qe0-x22e.google.com (mail-qe0-x22e.google.com [IPv6:2607:f8b0:400d:c02::22e]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id BA7E02636; Wed, 16 Oct 2013 19:47:14 +0000 (UTC) Received: by mail-qe0-f46.google.com with SMTP id s14so1052766qeb.19 for ; Wed, 16 Oct 2013 12:47:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=l7j55qsIwJWtPvtzRzb/pbT7YrdBxklg/Wsse+wkTlM=; b=lrB2+F3Yhptj2ebCb6eYOtznfsFMnb8TWID/vTDiclC8eweGZ1eNpNW8/dwzQ5e+Re 8W2Qq5hYUPB0uLIDBoMHSmEzytA31Othnzd54NxGcIm0rDOSaBY3FGkxKAmOb4nSYbTj mAPEeItdKsvoDrm0HQEuzFjKDNbCVOd1JoSQEKHEpD2AdQoBMW38fDsoYu7MfyVqkC9+ Tc/tpDxVM2NAank/rU6bdrmdBHAkw9leS4+dR/EATcNehAkdivGkE42mNWG2iuS5zkWe ILXRBY3ZuQJjqkhatpbpJYrw9nloqgYDBgsOGmE98UjPc0rygbCO5bYnW+G0R8+GgYOs 24pA== MIME-Version: 1.0 X-Received: by 10.224.157.14 with SMTP id z14mr7211141qaw.90.1381952833693; Wed, 16 Oct 2013 12:47:13 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.224.207.66 with HTTP; Wed, 16 Oct 2013 12:47:13 -0700 (PDT) In-Reply-To: <201310160502.r9G521cA066218@svn.freebsd.org> References: <201310160502.r9G521cA066218@svn.freebsd.org> Date: Wed, 16 Oct 2013 12:47:13 -0700 X-Google-Sender-Auth: wI6x0SEKC434KTt89yQQTGXAPKQ Message-ID: Subject: Re: svn commit: r256587 - in head/sys: kern sys From: Adrian Chadd To: Gleb Smirnoff Content-Type: text/plain; charset=ISO-8859-1 X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 19:47:15 -0000 .. so what brought this on? I can see this fixing issues for things where a virtual device is created with taskqueues (eg a tap device of some sort) that get stuffed into a vnet context. But for physical interfaces whose taskqueues don't have a specific vnet context and may need to set it per-packet, what may this break? Ie - what did this fix, and why isn't it being fixed in all the various taskqueues in device drivers? I'd rather not see the taskqueue setup (which knows nothing about network contexts at all) grow this just to solve a bunch of places where the task in question can just correctly initialise the context itself when it's called. Thanks, -adrian From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 19:53:51 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 0311ACC6; Wed, 16 Oct 2013 19:53:51 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E45D126B8; Wed, 16 Oct 2013 19:53:50 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9GJro63036520; Wed, 16 Oct 2013 19:53:50 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9GJroOA036519; Wed, 16 Oct 2013 19:53:50 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201310161953.r9GJroOA036519@svn.freebsd.org> From: Adrian Chadd Date: Wed, 16 Oct 2013 19:53:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256649 - head/sys/mips/atheros X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 19:53:51 -0000 Author: adrian Date: Wed Oct 16 19:53:50 2013 New Revision: 256649 URL: http://svnweb.freebsd.org/changeset/base/256649 Log: Whilst here, document that this TX alignment requirement may acutally not be required on later hardware. It would allow for higher packet rates so yes, it would be nice to disable it. Modified: head/sys/mips/atheros/if_arge.c Modified: head/sys/mips/atheros/if_arge.c ============================================================================== --- head/sys/mips/atheros/if_arge.c Wed Oct 16 19:36:50 2013 (r256648) +++ head/sys/mips/atheros/if_arge.c Wed Oct 16 19:53:50 2013 (r256649) @@ -1261,6 +1261,10 @@ arge_init_locked(struct arge_softc *sc) * The TX engine requires each fragment to be aligned to a * 4 byte boundary and the size of each fragment except * the last to be a multiple of 4 bytes. + * + * XXX TODO: I believe this is only a bug on the AR71xx and + * AR913x MACs. The later MACs (AR724x and later) does not + * need this workaround. */ static int arge_mbuf_chain_is_tx_aligned(struct mbuf *m0) @@ -1294,6 +1298,10 @@ arge_encap(struct arge_softc *sc, struct /* * Fix mbuf chain, all fragments should be 4 bytes aligned and * even 4 bytes + * + * XXX TODO: I believe this is only a bug on the AR71xx and + * AR913x MACs. The later MACs (AR724x and later) does not + * need this workaround. */ m = *m_head; if (! arge_mbuf_chain_is_tx_aligned(m)) { From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 20:04:07 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 47C622E0; Wed, 16 Oct 2013 20:04:07 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 33243275E; Wed, 16 Oct 2013 20:04:07 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9GK47Ix041647; Wed, 16 Oct 2013 20:04:07 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9GK47kn041646; Wed, 16 Oct 2013 20:04:07 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201310162004.r9GK47kn041646@svn.freebsd.org> From: Jilles Tjoelker Date: Wed, 16 Oct 2013 20:04:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256650 - head/usr.sbin/kldxref X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 20:04:07 -0000 Author: jilles Date: Wed Oct 16 20:04:06 2013 New Revision: 256650 URL: http://svnweb.freebsd.org/changeset/base/256650 Log: kldxref: Add static keyword to the new function only used in the same file. The WARNS level is not such that the omission broke the build. Reported by: mdf Modified: head/usr.sbin/kldxref/kldxref.c Modified: head/usr.sbin/kldxref/kldxref.c ============================================================================== --- head/usr.sbin/kldxref/kldxref.c Wed Oct 16 19:53:50 2013 (r256649) +++ head/usr.sbin/kldxref/kldxref.c Wed Oct 16 20:04:06 2013 (r256650) @@ -274,7 +274,7 @@ usage(void) exit(1); } -int +static int compare(const FTSENT *const *a, const FTSENT *const *b) { if ((*a)->fts_info == FTS_D && (*b)->fts_info != FTS_D) From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 21:22:59 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 9539CEAE; Wed, 16 Oct 2013 21:22:59 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 62EFE2BCA; Wed, 16 Oct 2013 21:22:59 +0000 (UTC) Received: from jhbbsd.localnet (unknown [209.249.190.124]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id 66544B98A; Wed, 16 Oct 2013 17:22:58 -0400 (EDT) From: John Baldwin To: Mikolaj Golub Subject: Re: svn commit: r228969 - head/sys/netinet Date: Wed, 16 Oct 2013 17:09:04 -0400 User-Agent: KMail/1.13.5 (FreeBSD/8.4-CBSD-20130906; KDE/4.5.5; amd64; ; ) References: <201112292041.pBTKfGkj071711@svn.freebsd.org> <201204020848.04775.jhb@freebsd.org> <86sjdbnziw.fsf@kopusha.home.net> In-Reply-To: <86sjdbnziw.fsf@kopusha.home.net> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Message-Id: <201310161709.04489.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Wed, 16 Oct 2013 17:22:58 -0400 (EDT) Cc: svn-src-head@freebsd.org, Bjoern Zeeb , svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 21:22:59 -0000 On Sunday, July 01, 2012 1:48:23 pm Mikolaj Golub wrote: > > On Mon, 2 Apr 2012 08:48:04 -0400 John Baldwin wrote: > > JB> On Sunday, April 01, 2012 8:05:00 am Mikolaj Golub wrote: > >> Hi, > >> > >> On 12/29/11, John Baldwin wrote: > >> > Author: jhb > >> > Date: Thu Dec 29 20:41:16 2011 > >> > New Revision: 228969 > >> > URL: http://svn.freebsd.org/changeset/base/228969 > >> > > >> > Log: > >> > Defer the work of freeing IPv4 multicast options from a socket to an > >> > asychronous task. This avoids tearing down multicast state including > >> > sending IGMP leave messages and reprogramming MAC filters while holding > >> > the per-protocol global pcbinfo lock that is used in the receive path of > >> > packet processing. > >> > > >> > Reviewed by: rwatson > >> > MFC after: 1 month > >> > > >> > Modified: > >> > head/sys/netinet/in_mcast.c > >> > head/sys/netinet/ip_var.h > >> > > >> > Modified: head/sys/netinet/in_mcast.c > >> > ============================================================================== > >> > --- head/sys/netinet/in_mcast.c Thu Dec 29 19:01:29 2011 (r228968) > >> > +++ head/sys/netinet/in_mcast.c Thu Dec 29 20:41:16 2011 (r228969) > >> > @@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$"); > >> > #include > >> > #include > >> > #include > >> > +#include > >> > #include > >> > > >> > #include > >> > @@ -144,6 +145,8 @@ static void inm_purge(struct in_multi *) > >> > static void inm_reap(struct in_multi *); > >> > static struct ip_moptions * > >> > inp_findmoptions(struct inpcb *); > >> > +static void inp_freemoptions_internal(struct ip_moptions *); > >> > +static void inp_gcmoptions(void *, int); > >> > static int inp_get_source_filters(struct inpcb *, struct sockopt *); > >> > static int inp_join_group(struct inpcb *, struct sockopt *); > >> > static int inp_leave_group(struct inpcb *, struct sockopt *); > >> > @@ -179,6 +182,10 @@ static SYSCTL_NODE(_net_inet_ip_mcast, O > >> > CTLFLAG_RD | CTLFLAG_MPSAFE, sysctl_ip_mcast_filters, > >> > "Per-interface stack-wide source filters"); > >> > > >> > +static STAILQ_HEAD(, ip_moptions) imo_gc_list = > >> > + STAILQ_HEAD_INITIALIZER(imo_gc_list); > >> > +static struct task imo_gc_task = TASK_INITIALIZER(0, inp_gcmoptions, NULL); > >> > + > >> > /* > >> > * Inline function which wraps assertions for a valid ifp. > >> > * The ifnet layer will set the ifma's ifp pointer to NULL if the ifp > >> > @@ -1518,17 +1525,29 @@ inp_findmoptions(struct inpcb *inp) > >> > } > >> > > >> > /* > >> > - * Discard the IP multicast options (and source filters). > >> > + * Discard the IP multicast options (and source filters). To minimize > >> > + * the amount of work done while holding locks such as the INP's > >> > + * pcbinfo lock (which is used in the receive path), the free > >> > + * operation is performed asynchronously in a separate task. > >> > * > >> > * SMPng: NOTE: assumes INP write lock is held. > >> > */ > >> > void > >> > inp_freemoptions(struct ip_moptions *imo) > >> > { > >> > - struct in_mfilter *imf; > >> > - size_t idx, nmships; > >> > > >> > KASSERT(imo != NULL, ("%s: ip_moptions is NULL", __func__)); > >> > + IN_MULTI_LOCK(); > >> > + STAILQ_INSERT_TAIL(&imo_gc_list, imo, imo_link); > >> > + IN_MULTI_UNLOCK(); > >> > + taskqueue_enqueue(taskqueue_thread, &imo_gc_task); > >> > +} > >> > + > >> > +static void > >> > +inp_freemoptions_internal(struct ip_moptions *imo) > >> > +{ > >> > + struct in_mfilter *imf; > >> > + size_t idx, nmships; > >> > > >> > nmships = imo->imo_num_memberships; > >> > for (idx = 0; idx < nmships; ++idx) { > >> > @@ -1546,6 +1565,22 @@ inp_freemoptions(struct ip_moptions *imo > >> > free(imo, M_IPMOPTS); > >> > } > >> > > >> > +static void > >> > +inp_gcmoptions(void *context, int pending) > >> > +{ > >> > + struct ip_moptions *imo; > >> > + > >> > + IN_MULTI_LOCK(); > >> > + while (!STAILQ_EMPTY(&imo_gc_list)) { > >> > + imo = STAILQ_FIRST(&imo_gc_list); > >> > + STAILQ_REMOVE_HEAD(&imo_gc_list, imo_link); > >> > + IN_MULTI_UNLOCK(); > >> > + inp_freemoptions_internal(imo); > >> > + IN_MULTI_LOCK(); > >> > + } > >> > + IN_MULTI_UNLOCK(); > >> > +} > >> > + > >> > /* > >> > * Atomically get source filters on a socket for an IPv4 multicast group. > >> > * Called with INP lock held; returns with lock released. > >> > > >> > Modified: head/sys/netinet/ip_var.h > >> > ============================================================================== > >> > --- head/sys/netinet/ip_var.h Thu Dec 29 19:01:29 2011 (r228968) > >> > +++ head/sys/netinet/ip_var.h Thu Dec 29 20:41:16 2011 (r228969) > >> > @@ -93,6 +93,7 @@ struct ip_moptions { > >> > u_short imo_max_memberships; /* max memberships this socket */ > >> > struct in_multi **imo_membership; /* group memberships */ > >> > struct in_mfilter *imo_mfilters; /* source filters */ > >> > + STAILQ_ENTRY(ip_moptions) imo_link; > >> > }; > >> > > >> > struct ipstat { > >> > > >> > >> I have been observing panics like below after recent upgrade on VIMAGE kernel: > >> > >> #0 doadump (textdump=-2022567936) at pcpu.h:244 > >> #1 0x8051b739 in db_fncall (dummy1=1, dummy2=0, dummy3=-2127531040, > >> dummy4=0x872b2920 "") > >> at /home/golub/freebsd/base/head/sys/ddb/db_command.c:573 > >> #2 0x8051bb31 in db_command (last_cmdp=0x8112eefc, cmd_table=0x0, dopager=1) > >> at /home/golub/freebsd/base/head/sys/ddb/db_command.c:449 > >> #3 0x8051bc8a in db_command_loop () at > >> /home/golub/freebsd/base/head/sys/ddb/db_command.c:502 > >> #4 0x8051dc7d in db_trap (type=12, code=0) > >> at /home/golub/freebsd/base/head/sys/ddb/db_main.c:229 > >> #5 0x80a82566 in kdb_trap (type=12, code=0, tf=0x872b2bbc) > >> at /home/golub/freebsd/base/head/sys/kern/subr_kdb.c:629 > >> #6 0x80ddd26f in trap_fatal (frame=0x872b2bbc, eva=24) > >> at /home/golub/freebsd/base/head/sys/i386/i386/trap.c:1014 > >> #7 0x80ddd347 in trap_pfault (frame=0x872b2bbc, usermode=0, eva=24) > >> at /home/golub/freebsd/base/head/sys/i386/i386/trap.c:835 > >> #8 0x80dde411 in trap (frame=0x872b2bbc) > >> at /home/golub/freebsd/base/head/sys/i386/i386/trap.c:547 > >> #9 0x80dc7c6c in calltrap () at > >> /home/golub/freebsd/base/head/sys/i386/i386/exception.s:169 > >> #10 0x80b6f1fd in igmp_change_state (inm=0x8ae70480) > >> at /home/golub/freebsd/base/head/sys/netinet/igmp.c:2595 > >> #11 0x80b76f68 in in_leavegroup_locked (inm=0x8ae70480, imf=0x8a655a00) > >> at /home/golub/freebsd/base/head/sys/netinet/in_mcast.c:1239 > >> #12 0x80b76fbd in in_leavegroup (inm=0x8ae70480, imf=0x8a655a00) > >> at /home/golub/freebsd/base/head/sys/netinet/in_mcast.c:1184 > >> #13 0x80b770b4 in inp_gcmoptions (context=0x0, pending=1) > >> at /home/golub/freebsd/base/head/sys/netinet/in_mcast.c:1554 > >> #14 0x80a8ff2b in taskqueue_run_locked (queue=0x87594880) > >> at /home/golub/freebsd/base/head/sys/kern/subr_taskqueue.c:308 > >> #15 0x80a90987 in taskqueue_thread_loop (arg=0x81186bcc) > >> at /home/golub/freebsd/base/head/sys/kern/subr_taskqueue.c:497 > >> #16 0x80a1b2d8 in fork_exit (callout=0x80a90920 > >> , arg=0x81186bcc, > >> frame=0x872b2d28) at /home/golub/freebsd/base/head/sys/kern/kern_fork.c:992 > >> #17 0x80dc7d14 in fork_trampoline () > >> at /home/golub/freebsd/base/head/sys/i386/i386/exception.s:276 > >> (kgdb) fr 10 > >> #10 0x80b6f1fd in igmp_change_state (inm=0x8ae70480) > >> at /home/golub/freebsd/base/head/sys/netinet/igmp.c:2595 > >> 2595 V_state_change_timers_running = 1; > >> > >> (kgdb) l > >> 2590 ("%s: enqueue record = > >> %d", __func__, > >> 2591 retval)); > >> 2592 > >> 2593 inm->inm_state = IGMP_LEAVING_MEMBER; > >> 2594 inm->inm_sctimer = 1; > >> 2595 V_state_change_timers_running = 1; > >> 2596 syncstates = 0; > >> 2597 } > >> 2598 break; > >> 2599 } > >> > >> VNET context is not set at that point. > >> > >> The attached patch fixes the issue for me. Not sure about inm->inm_ifp > >> != NULL assumption but I need interface to get vnet :-). > > JB> I will to defer to bz@ (cc'd) on how best to fix this. Another option would > JB> be to save the current vnet in the 'ip_moptions' struct (would have to add a > JB> new field) when queueing this imo to be free'd via the task. You could > JB> then do the curvnet set/restore at a higher level without any locks held, etc. > > Hi, do you have any news here? I would really appreciate to have this fixed in > any way, as currently to avoid the crash I always have to remember to apply > the patch when compiling VIMAGE kernels. > > Here is another version of the patch. It fixes it in the way suggested above > (storing vnet in ip_moptions). > > The thing that worries me though is the case when vnet is destroyed and we > still have options that refer it in the queue. I expect panic in this case. > > BTW, isn't the same problem with stale pointer dereferencing possible when > removing interface? I think this was just fixed by glebius@ in r256587: Author: glebius Date: Wed Oct 16 05:02:01 2013 New Revision: 256587 URL: http://svnweb.freebsd.org/changeset/base/256587 Log: For VIMAGE kernels store vnet in the struct task, and set vnet context during task processing. Reported & tested by: mm -- John Baldwin From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 21:52:55 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 7F0CCB51; Wed, 16 Oct 2013 21:52:55 +0000 (UTC) (envelope-from neel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 6BB782D6F; Wed, 16 Oct 2013 21:52:55 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9GLqtGm000835; Wed, 16 Oct 2013 21:52:55 GMT (envelope-from neel@svn.freebsd.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9GLqtIG000834; Wed, 16 Oct 2013 21:52:55 GMT (envelope-from neel@svn.freebsd.org) Message-Id: <201310162152.r9GLqtIG000834@svn.freebsd.org> From: Neel Natu Date: Wed, 16 Oct 2013 21:52:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r256651 - stable/10/sys/amd64/vmm X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 21:52:55 -0000 Author: neel Date: Wed Oct 16 21:52:54 2013 New Revision: 256651 URL: http://svnweb.freebsd.org/changeset/base/256651 Log: MFC r256570: Fix the witness warning that warned against calling uiomove() while holding the 'vmmdev_mtx' in vmmdev_rw(). Rely on the 'si_threadcount' accounting to ensure that we never destroy the VM device node while it has operations in progress (e.g. ioctl, mmap etc). Approved by: re (rodrigc) Modified: stable/10/sys/amd64/vmm/vmm_dev.c Directory Properties: stable/10/sys/ (props changed) stable/10/sys/amd64/vmm/ (props changed) Modified: stable/10/sys/amd64/vmm/vmm_dev.c ============================================================================== --- stable/10/sys/amd64/vmm/vmm_dev.c Wed Oct 16 20:04:06 2013 (r256650) +++ stable/10/sys/amd64/vmm/vmm_dev.c Wed Oct 16 21:52:54 2013 (r256651) @@ -60,7 +60,10 @@ struct vmmdev_softc { struct vm *vm; /* vm instance cookie */ struct cdev *cdev; SLIST_ENTRY(vmmdev_softc) link; + int flags; }; +#define VSC_LINKED 0x01 + static SLIST_HEAD(, vmmdev_softc) head; static struct mtx vmmdev_mtx; @@ -104,7 +107,6 @@ vmmdev_rw(struct cdev *cdev, struct uio static char zerobuf[PAGE_SIZE]; error = 0; - mtx_lock(&vmmdev_mtx); sc = vmmdev_lookup2(cdev); if (sc == NULL) error = ENXIO; @@ -134,8 +136,6 @@ vmmdev_rw(struct cdev *cdev, struct uio vm_gpa_release(cookie); } } - - mtx_unlock(&vmmdev_mtx); return (error); } @@ -379,34 +379,28 @@ vmmdev_mmap_single(struct cdev *cdev, vm int error; struct vmmdev_softc *sc; - mtx_lock(&vmmdev_mtx); - sc = vmmdev_lookup2(cdev); if (sc != NULL && (nprot & PROT_EXEC) == 0) error = vm_get_memobj(sc->vm, *offset, size, offset, object); else error = EINVAL; - mtx_unlock(&vmmdev_mtx); - return (error); } static void -vmmdev_destroy(struct vmmdev_softc *sc, boolean_t unlink) +vmmdev_destroy(void *arg) { - /* - * XXX must stop virtual machine instances that may be still - * running and cleanup their state. - */ - if (sc->cdev) + struct vmmdev_softc *sc = arg; + + if (sc->cdev != NULL) destroy_dev(sc->cdev); - if (sc->vm) + if (sc->vm != NULL) vm_destroy(sc->vm); - if (unlink) { + if ((sc->flags & VSC_LINKED) != 0) { mtx_lock(&vmmdev_mtx); SLIST_REMOVE(&head, sc, vmmdev_softc, link); mtx_unlock(&vmmdev_mtx); @@ -421,27 +415,38 @@ sysctl_vmm_destroy(SYSCTL_HANDLER_ARGS) int error; char buf[VM_MAX_NAMELEN]; struct vmmdev_softc *sc; + struct cdev *cdev; strlcpy(buf, "beavis", sizeof(buf)); error = sysctl_handle_string(oidp, buf, sizeof(buf), req); if (error != 0 || req->newptr == NULL) return (error); - /* - * XXX TODO if any process has this device open then fail - */ - mtx_lock(&vmmdev_mtx); sc = vmmdev_lookup(buf); - if (sc == NULL) { + if (sc == NULL || sc->cdev == NULL) { mtx_unlock(&vmmdev_mtx); return (EINVAL); } - sc->cdev->si_drv1 = NULL; + /* + * The 'cdev' will be destroyed asynchronously when 'si_threadcount' + * goes down to 0 so we should not do it again in the callback. + */ + cdev = sc->cdev; + sc->cdev = NULL; mtx_unlock(&vmmdev_mtx); - vmmdev_destroy(sc, TRUE); + /* + * Schedule the 'cdev' to be destroyed: + * + * - any new operations on this 'cdev' will return an error (ENXIO). + * + * - when the 'si_threadcount' dwindles down to zero the 'cdev' will + * be destroyed and the callback will be invoked in a taskqueue + * context. + */ + destroy_dev_sched_cb(cdev, vmmdev_destroy, sc); return (0); } @@ -462,6 +467,7 @@ sysctl_vmm_create(SYSCTL_HANDLER_ARGS) { int error; struct vm *vm; + struct cdev *cdev; struct vmmdev_softc *sc, *sc2; char buf[VM_MAX_NAMELEN]; @@ -489,22 +495,28 @@ sysctl_vmm_create(SYSCTL_HANDLER_ARGS) */ mtx_lock(&vmmdev_mtx); sc2 = vmmdev_lookup(buf); - if (sc2 == NULL) + if (sc2 == NULL) { SLIST_INSERT_HEAD(&head, sc, link); + sc->flags |= VSC_LINKED; + } mtx_unlock(&vmmdev_mtx); if (sc2 != NULL) { - vmmdev_destroy(sc, FALSE); + vmmdev_destroy(sc); return (EEXIST); } - error = make_dev_p(MAKEDEV_CHECKNAME, &sc->cdev, &vmmdevsw, NULL, + error = make_dev_p(MAKEDEV_CHECKNAME, &cdev, &vmmdevsw, NULL, UID_ROOT, GID_WHEEL, 0600, "vmm/%s", buf); if (error != 0) { - vmmdev_destroy(sc, TRUE); + vmmdev_destroy(sc); return (error); } + + mtx_lock(&vmmdev_mtx); + sc->cdev = cdev; sc->cdev->si_drv1 = sc; + mtx_unlock(&vmmdev_mtx); return (0); } From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 22:28:09 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 73D314DE; Wed, 16 Oct 2013 22:28:09 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 607212F01; Wed, 16 Oct 2013 22:28:09 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9GMS9d1019356; Wed, 16 Oct 2013 22:28:09 GMT (envelope-from brooks@svn.freebsd.org) Received: (from brooks@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9GMS8o2019351; Wed, 16 Oct 2013 22:28:08 GMT (envelope-from brooks@svn.freebsd.org) Message-Id: <201310162228.r9GMS8o2019351@svn.freebsd.org> From: Brooks Davis Date: Wed, 16 Oct 2013 22:28:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r256652 - vendor/NetBSD/mtree/dist X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 22:28:09 -0000 Author: brooks Date: Wed Oct 16 22:28:08 2013 New Revision: 256652 URL: http://svnweb.freebsd.org/changeset/base/256652 Log: Vendor import of NetBSD's mtree at 2013-10-16 Modified: vendor/NetBSD/mtree/dist/compare.c vendor/NetBSD/mtree/dist/create.c vendor/NetBSD/mtree/dist/getid.c vendor/NetBSD/mtree/dist/spec.c Modified: vendor/NetBSD/mtree/dist/compare.c ============================================================================== --- vendor/NetBSD/mtree/dist/compare.c Wed Oct 16 21:52:54 2013 (r256651) +++ vendor/NetBSD/mtree/dist/compare.c Wed Oct 16 22:28:08 2013 (r256652) @@ -1,4 +1,4 @@ -/* $NetBSD: compare.c,v 1.55 2012/10/05 00:59:35 christos Exp $ */ +/* $NetBSD: compare.c,v 1.56 2013/09/09 23:27:43 christos Exp $ */ /*- * Copyright (c) 1989, 1993 @@ -38,7 +38,7 @@ #if 0 static char sccsid[] = "@(#)compare.c 8.1 (Berkeley) 6/6/93"; #else -__RCSID("$NetBSD: compare.c,v 1.55 2012/10/05 00:59:35 christos Exp $"); +__RCSID("$NetBSD: compare.c,v 1.56 2013/09/09 23:27:43 christos Exp $"); #endif #endif /* not lint */ @@ -192,9 +192,9 @@ typeerr: LABEL; (s->type == F_BLOCK || s->type == F_CHAR) && s->st_rdev != p->fts_statp->st_rdev) { LABEL; - printf("%sdevice (%#llx, %#llx", - tab, (long long)s->st_rdev, - (long long)p->fts_statp->st_rdev); + printf("%sdevice (%#jx, %#jx", + tab, (uintmax_t)s->st_rdev, + (uintmax_t)p->fts_statp->st_rdev); if (uflag) { if ((unlink(p->fts_accpath) == -1) || (mknod(p->fts_accpath, @@ -283,9 +283,9 @@ typeerr: LABEL; } if (s->flags & F_SIZE && s->st_size != p->fts_statp->st_size) { LABEL; - printf("%ssize (%lld, %lld)\n", - tab, (long long)s->st_size, - (long long)p->fts_statp->st_size); + printf("%ssize (%ju, %ju)\n", + tab, (uintmax_t)s->st_size, + (uintmax_t)p->fts_statp->st_size); tab = "\t"; } /* Modified: vendor/NetBSD/mtree/dist/create.c ============================================================================== --- vendor/NetBSD/mtree/dist/create.c Wed Oct 16 21:52:54 2013 (r256651) +++ vendor/NetBSD/mtree/dist/create.c Wed Oct 16 22:28:08 2013 (r256652) @@ -1,4 +1,4 @@ -/* $NetBSD: create.c,v 1.69 2013/02/03 19:15:17 christos Exp $ */ +/* $NetBSD: create.c,v 1.71 2013/10/16 17:24:20 christos Exp $ */ /*- * Copyright (c) 1989, 1993 @@ -38,7 +38,7 @@ #if 0 static char sccsid[] = "@(#)create.c 8.1 (Berkeley) 6/6/93"; #else -__RCSID("$NetBSD: create.c,v 1.69 2013/02/03 19:15:17 christos Exp $"); +__RCSID("$NetBSD: create.c,v 1.71 2013/10/16 17:24:20 christos Exp $"); #endif #endif /* not lint */ @@ -216,22 +216,22 @@ statf(int indent, FTSENT *p) p->fts_statp->st_mode & MBITS); if (keys & F_DEV && (S_ISBLK(p->fts_statp->st_mode) || S_ISCHR(p->fts_statp->st_mode))) - output(indent, &offset, "device=%#llx", - (long long)p->fts_statp->st_rdev); + output(indent, &offset, "device=%#jx", + (uintmax_t)p->fts_statp->st_rdev); if (keys & F_NLINK && p->fts_statp->st_nlink != 1) output(indent, &offset, "nlink=%u", p->fts_statp->st_nlink); if (keys & F_SIZE && - (flavor != F_NETBSD6 || S_ISREG(p->fts_statp->st_mode))) - output(indent, &offset, "size=%lld", - (long long)p->fts_statp->st_size); + (flavor == F_FREEBSD9 || S_ISREG(p->fts_statp->st_mode))) + output(indent, &offset, "size=%ju", + (uintmax_t)p->fts_statp->st_size); if (keys & F_TIME) #if defined(BSD4_4) && !defined(HAVE_NBTOOL_CONFIG_H) - output(indent, &offset, "time=%ld.%09ld", - (long)p->fts_statp->st_mtimespec.tv_sec, + output(indent, &offset, "time=%jd.%09ld", + (intmax_t)p->fts_statp->st_mtimespec.tv_sec, p->fts_statp->st_mtimespec.tv_nsec); #else - output(indent, &offset, "time=%ld.%09ld", - (long)p->fts_statp->st_mtime, (long)0); + output(indent, &offset, "time=%jd.%09ld", + (intmax_t)p->fts_statp->st_mtime, (long)0); #endif if (keys & F_CKSUM && S_ISREG(p->fts_statp->st_mode)) { if ((fd = open(p->fts_accpath, O_RDONLY, 0)) < 0 || Modified: vendor/NetBSD/mtree/dist/getid.c ============================================================================== --- vendor/NetBSD/mtree/dist/getid.c Wed Oct 16 21:52:54 2013 (r256651) +++ vendor/NetBSD/mtree/dist/getid.c Wed Oct 16 22:28:08 2013 (r256652) @@ -1,4 +1,4 @@ -/* $NetBSD: getid.c,v 1.7 2008/04/28 20:24:17 martin Exp $ */ +/* $NetBSD: getid.c,v 1.8 2013/10/16 17:27:42 christos Exp $ */ /* from: NetBSD: getpwent.c,v 1.48 2000/10/03 03:22:26 enami Exp */ /* from: NetBSD: getgrent.c,v 1.41 2002/01/12 23:51:30 lukem Exp */ @@ -65,7 +65,7 @@ #endif #include -__RCSID("$NetBSD: getid.c,v 1.7 2008/04/28 20:24:17 martin Exp $"); +__RCSID("$NetBSD: getid.c,v 1.8 2013/10/16 17:27:42 christos Exp $"); #include @@ -230,6 +230,9 @@ grscan(int search, gid_t gid, const char ; continue; } + /* skip comments */ + if (pwline[0] == '#') + continue; if (grmatchline(search, gid, name)) return 1; } @@ -371,6 +374,9 @@ pwscan(int search, uid_t uid, const char ; continue; } + /* skip comments */ + if (pwline[0] == '#') + continue; if (pwmatchline(search, uid, name)) return 1; } Modified: vendor/NetBSD/mtree/dist/spec.c ============================================================================== --- vendor/NetBSD/mtree/dist/spec.c Wed Oct 16 21:52:54 2013 (r256651) +++ vendor/NetBSD/mtree/dist/spec.c Wed Oct 16 22:28:08 2013 (r256652) @@ -1,4 +1,4 @@ -/* $NetBSD: spec.c,v 1.85 2012/12/20 16:43:16 christos Exp $ */ +/* $NetBSD: spec.c,v 1.87 2013/10/16 17:26:14 christos Exp $ */ /*- * Copyright (c) 1989, 1993 @@ -67,7 +67,7 @@ #if 0 static char sccsid[] = "@(#)spec.c 8.2 (Berkeley) 4/28/95"; #else -__RCSID("$NetBSD: spec.c,v 1.85 2012/12/20 16:43:16 christos Exp $"); +__RCSID("$NetBSD: spec.c,v 1.87 2013/10/16 17:26:14 christos Exp $"); #endif #endif /* not lint */ @@ -217,6 +217,12 @@ noparent: mtree_err("no parent node"); /* * empty tree */ + /* + * Allow a bare "." root node by forcing it to + * type=dir for compatibility with FreeBSD. + */ + if (strcmp(centry->name, ".") == 0 && centry->type == 0) + centry->type = F_DIR; if (strcmp(centry->name, ".") != 0 || centry->type != F_DIR) mtree_err( @@ -350,16 +356,18 @@ dump_nodes(const char *dir, NODE *root, appendfield(pathlast, "mode=%#o", cur->st_mode); if (MATCHFLAG(F_DEV) && (cur->type == F_BLOCK || cur->type == F_CHAR)) - appendfield(pathlast, "device=%#llx", (long long)cur->st_rdev); + appendfield(pathlast, "device=%#jx", + (uintmax_t)cur->st_rdev); if (MATCHFLAG(F_NLINK)) appendfield(pathlast, "nlink=%d", cur->st_nlink); if (MATCHFLAG(F_SLINK)) appendfield(pathlast, "link=%s", vispath(cur->slink)); if (MATCHFLAG(F_SIZE)) - appendfield(pathlast, "size=%lld", (long long)cur->st_size); + appendfield(pathlast, "size=%ju", + (uintmax_t)cur->st_size); if (MATCHFLAG(F_TIME)) - appendfield(pathlast, "time=%lld.%09ld", - (long long)cur->st_mtimespec.tv_sec, + appendfield(pathlast, "time=%jd.%09ld", + (intmax_t)cur->st_mtimespec.tv_sec, cur->st_mtimespec.tv_nsec); if (MATCHFLAG(F_CKSUM)) appendfield(pathlast, "cksum=%lu", cur->cksum); From owner-svn-src-all@FreeBSD.ORG Wed Oct 16 22:30:29 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C0AAE687; Wed, 16 Oct 2013 22:30:29 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 944F42F20; Wed, 16 Oct 2013 22:30:29 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9GMUT1m021752; Wed, 16 Oct 2013 22:30:29 GMT (envelope-from brooks@svn.freebsd.org) Received: (from brooks@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9GMUTbL021751; Wed, 16 Oct 2013 22:30:29 GMT (envelope-from brooks@svn.freebsd.org) Message-Id: <201310162230.r9GMUTbL021751@svn.freebsd.org> From: Brooks Davis Date: Wed, 16 Oct 2013 22:30:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r256653 - vendor/NetBSD/mtree/20131016 X-SVN-Group: vendor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 16 Oct 2013 22:30:29 -0000 Author: brooks Date: Wed Oct 16 22:30:29 2013 New Revision: 256653 URL: http://svnweb.freebsd.org/changeset/base/256653 Log: Tag 2013-10-16 import of NetBSD's mtree Added: vendor/NetBSD/mtree/20131016/ - copied from r256652, vendor/NetBSD/mtree/dist/ From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 00:06:45 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 10DFCA45; Thu, 17 Oct 2013 00:06:45 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id EF2022410; Thu, 17 Oct 2013 00:06:44 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9H06iWM073494; Thu, 17 Oct 2013 00:06:44 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9H06gjU073459; Thu, 17 Oct 2013 00:06:42 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <201310170006.r9H06gjU073459@svn.freebsd.org> From: Jung-uk Kim Date: Thu, 17 Oct 2013 00:06:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r256655 - in vendor-sys/acpica/dist: . generate/unix generate/unix/acpiexec generate/unix/iasl source/common source/compiler source/components/debugger source/components/events source/c... X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 00:06:45 -0000 Author: jkim Date: Thu Oct 17 00:06:42 2013 New Revision: 256655 URL: http://svnweb.freebsd.org/changeset/base/256655 Log: Import ACPICA 20130927. Added: vendor-sys/acpica/dist/source/common/acgetline.c (contents, props changed) Modified: vendor-sys/acpica/dist/changes.txt vendor-sys/acpica/dist/generate/unix/Makefile.config vendor-sys/acpica/dist/generate/unix/acpiexec/Makefile vendor-sys/acpica/dist/generate/unix/iasl/Makefile vendor-sys/acpica/dist/source/common/adfile.c vendor-sys/acpica/dist/source/common/dmextern.c vendor-sys/acpica/dist/source/compiler/aslcompiler.h vendor-sys/acpica/dist/source/compiler/aslerror.c vendor-sys/acpica/dist/source/compiler/aslmain.c vendor-sys/acpica/dist/source/compiler/asloptions.c vendor-sys/acpica/dist/source/compiler/aslstartup.c vendor-sys/acpica/dist/source/components/debugger/dbexec.c vendor-sys/acpica/dist/source/components/debugger/dbfileio.c vendor-sys/acpica/dist/source/components/debugger/dbhistry.c vendor-sys/acpica/dist/source/components/debugger/dbinput.c vendor-sys/acpica/dist/source/components/debugger/dbnames.c vendor-sys/acpica/dist/source/components/debugger/dbxface.c vendor-sys/acpica/dist/source/components/events/evgpe.c vendor-sys/acpica/dist/source/components/events/evxface.c vendor-sys/acpica/dist/source/components/events/evxfevnt.c vendor-sys/acpica/dist/source/components/events/evxfgpe.c vendor-sys/acpica/dist/source/components/events/evxfregn.c vendor-sys/acpica/dist/source/components/executer/exstore.c vendor-sys/acpica/dist/source/components/hardware/hwtimer.c vendor-sys/acpica/dist/source/components/hardware/hwxface.c vendor-sys/acpica/dist/source/components/hardware/hwxfsleep.c vendor-sys/acpica/dist/source/components/namespace/nsdump.c vendor-sys/acpica/dist/source/components/namespace/nsxfeval.c vendor-sys/acpica/dist/source/components/namespace/nsxfname.c vendor-sys/acpica/dist/source/components/namespace/nsxfobj.c vendor-sys/acpica/dist/source/components/resources/rsxface.c vendor-sys/acpica/dist/source/components/tables/tbprint.c vendor-sys/acpica/dist/source/components/tables/tbxface.c vendor-sys/acpica/dist/source/components/tables/tbxfload.c vendor-sys/acpica/dist/source/components/utilities/utalloc.c vendor-sys/acpica/dist/source/components/utilities/utdebug.c vendor-sys/acpica/dist/source/components/utilities/utexcep.c vendor-sys/acpica/dist/source/components/utilities/utglobal.c vendor-sys/acpica/dist/source/components/utilities/utstring.c vendor-sys/acpica/dist/source/components/utilities/uttrack.c vendor-sys/acpica/dist/source/components/utilities/utxface.c vendor-sys/acpica/dist/source/components/utilities/utxferror.c vendor-sys/acpica/dist/source/components/utilities/utxfinit.c vendor-sys/acpica/dist/source/include/acconfig.h vendor-sys/acpica/dist/source/include/acdebug.h vendor-sys/acpica/dist/source/include/aclocal.h vendor-sys/acpica/dist/source/include/acmacros.h vendor-sys/acpica/dist/source/include/acnames.h vendor-sys/acpica/dist/source/include/acpiosxf.h vendor-sys/acpica/dist/source/include/acpixf.h vendor-sys/acpica/dist/source/include/actypes.h vendor-sys/acpica/dist/source/include/acutils.h vendor-sys/acpica/dist/source/include/platform/acgcc.h vendor-sys/acpica/dist/source/include/platform/aclinux.h vendor-sys/acpica/dist/source/os_specific/service_layers/osunixxf.c vendor-sys/acpica/dist/source/os_specific/service_layers/oswintbl.c vendor-sys/acpica/dist/source/os_specific/service_layers/oswinxf.c vendor-sys/acpica/dist/source/tools/acpidump/apdump.c vendor-sys/acpica/dist/source/tools/acpiexec/aehandlers.c vendor-sys/acpica/dist/source/tools/acpiexec/aemain.c vendor-sys/acpica/dist/source/tools/acpiexec/aetables.c vendor-sys/acpica/dist/source/tools/acpiexec/aetables.h vendor-sys/acpica/dist/source/tools/acpisrc/acpisrc.h vendor-sys/acpica/dist/source/tools/acpisrc/ascase.c vendor-sys/acpica/dist/source/tools/acpisrc/asconvrt.c vendor-sys/acpica/dist/source/tools/acpisrc/asfile.c vendor-sys/acpica/dist/source/tools/acpisrc/asmain.c vendor-sys/acpica/dist/source/tools/acpisrc/asremove.c vendor-sys/acpica/dist/source/tools/acpisrc/astable.c vendor-sys/acpica/dist/source/tools/acpixtract/acpixtract.c Modified: vendor-sys/acpica/dist/changes.txt ============================================================================== --- vendor-sys/acpica/dist/changes.txt Wed Oct 16 22:53:00 2013 (r256654) +++ vendor-sys/acpica/dist/changes.txt Thu Oct 17 00:06:42 2013 (r256655) @@ -1,4 +1,103 @@ ---------------------------------------- +27 September 2013. Summary of changes for version 20130927: + +This release is available at https://acpica.org/downloads + + +1) ACPICA kernel-resident subsystem: + +Fixed a problem with store operations to reference objects. This change +fixes a problem where a Store operation to an ArgX object that contained a +reference to a field object did not complete the automatic dereference and +then write to the actual field object. Instead, the object type of the +field object was inadvertently changed to match the type of the source +operand. The new behavior will actually write to the field object (buffer +field or field unit), thus matching the correct ACPI-defined behavior. + +Implemented support to allow the host to redefine individual OSL +prototypes. This change enables the host to redefine OSL prototypes found +in the acpiosxf.h file. This allows the host to implement OSL interfaces +with a macro or inlined function. Further, it allows the host to add any +additional required modifiers such as __iomem, __init, __exit, etc., as +necessary on a per-interface basis. Enables maximum flexibility for the +OSL interfaces. Lv Zheng. + +Hardcoded the access width for the FADT-defined reset register. The ACPI +specification requires the reset register width to be 8 bits. ACPICA now +hardcodes the width to 8 and ignores the FADT width value. This provides +compatibility with other ACPI implementations that have allowed BIOS code +with bad register width values to go unnoticed. Matthew Garett, Bob Moore, +Lv Zheng. + +Changed the position/use of the ACPI_PRINTF_LIKE macro. This macro is used +in the OSL header (acpiosxf). The change modifies the position of this +macro in each instance where it is used (AcpiDebugPrint, etc.) to avoid +build issues if the OSL defines the implementation of the interface to be +an inline stub function. Lv Zheng. + +Deployed a new macro ACPI_EXPORT_SYMBOL_INIT for the main ACPICA +initialization interfaces. This change adds a new macro for the main init +and terminate external interfaces in order to support hosts that require +additional or different processing for these functions. Changed from +ACPI_EXPORT_SYMBOL to ACPI_EXPORT_SYMBOL_INIT for these functions. Lv +Zheng, Bob Moore. + +Cleaned up the memory allocation macros for configurability. In the common +case, the ACPI_ALLOCATE and related macros now resolve directly to their +respective AcpiOs* OSL interfaces. Two options: +1) The ACPI_ALLOCATE_ZEROED macro uses a simple local implementation by +default, unless overridden by the USE_NATIVE_ALLOCATE_ZEROED define. +2) For AcpiExec (and for debugging), the macros can optionally be resolved +to the local ACPICA interfaces that track each allocation (local tracking +is used to immediately detect memory leaks). +Lv Zheng. + +Simplified the configuration for ACPI_REDUCED_HARDWARE. Allows the kernel +to predefine this macro to either TRUE or FALSE during the system build. + +Replaced __FUNCTION_ with __func__ in the gcc-specific header. + +Example Code and Data Size: These are the sizes for the OS-independent +acpica.lib produced by the Microsoft Visual C++ 9.0 32-bit compiler. The +debug version of the code includes the debug output trace mechanism and +has a much larger code and data size. + + Current Release: + Non-Debug Version: 95.8K Code, 27.0K Data, 122.8K Total + Debug Version: 185.2K Code, 77.2K Data, 262.4K Total + Previous Release: + Non-Debug Version: 96.7K Code, 27.1K Data, 123.9K Total + Debug Version: 184.4K Code, 76.8K Data, 261.2K Total + + +2) iASL Compiler/Disassembler and Tools: + +iASL: Implemented wildcard support for the -e option. This simplifies use +when there are many SSDTs that must be included to resolve external method +declarations. ACPICA BZ 1041. Example: + iasl -e ssdt*.dat -d dsdt.dat + +AcpiExec: Add history/line-editing for Unix/Linux systems. This change +adds a portable module that implements full history and limited line +editing for Unix and Linux systems. It does not use readline() due to +portability issues. Instead it uses the POSIX termio interface to put the +terminal in raw input mode so that the various special keys can be trapped +(such as up/down-arrow for history support and left/right-arrow for line +editing). Uses the existing debugger history mechanism. ACPICA BZ 1036. + +AcpiXtract: Add support to handle (ignore) "empty" lines containing only +one or more spaces. This provides compatible with early or different +versions of the AcpiDump utility. ACPICA BZ 1044. + +AcpiDump: Do not ignore tables that contain only an ACPI table header. +Apparently, some BIOSs create SSDTs that contain an ACPI table header but +no other data. This change adds support to dump these tables. Any tables +shorter than the length of an ACPI table header remain in error (an error +message is emitted). Reported by Yi Li. + +Debugger: Echo actual command along with the "unknown command" message. + +---------------------------------------- 23 August 2013. Summary of changes for version 20130823: 1) ACPICA kernel-resident subsystem: Modified: vendor-sys/acpica/dist/generate/unix/Makefile.config ============================================================================== --- vendor-sys/acpica/dist/generate/unix/Makefile.config Wed Oct 16 22:53:00 2013 (r256654) +++ vendor-sys/acpica/dist/generate/unix/Makefile.config Thu Oct 17 00:06:42 2013 (r256655) @@ -193,20 +193,22 @@ endif # # Bison/Flex configuration # -# -v: verbose, produces a .output file -# -d: produces the defines header file # -y: act like yacc # # -i: generate case insensitive scanner # -s: suppress default rule, abort on unknown input # +# Optional for Bison/yacc: +# -v: verbose, produces a .output file +# -d: produces the defines header file +# # Berkeley yacc configuration # #YACC= byacc -#YFLAGS += -v -d +#YFLAGS += # YACC= bison -YFLAGS += -v -d -y +YFLAGS += -y LEX= flex LFLAGS += -i -s Modified: vendor-sys/acpica/dist/generate/unix/acpiexec/Makefile ============================================================================== --- vendor-sys/acpica/dist/generate/unix/acpiexec/Makefile Wed Oct 16 22:53:00 2013 (r256654) +++ vendor-sys/acpica/dist/generate/unix/acpiexec/Makefile Thu Oct 17 00:06:42 2013 (r256655) @@ -39,6 +39,7 @@ HEADERS = \ $(wildcard $(ACPIEXEC)/*.h) OBJECTS = \ + $(OBJDIR)/acgetline.o\ $(OBJDIR)/aeexec.o\ $(OBJDIR)/aehandlers.o\ $(OBJDIR)/aemain.o\ Modified: vendor-sys/acpica/dist/generate/unix/iasl/Makefile ============================================================================== --- vendor-sys/acpica/dist/generate/unix/iasl/Makefile Wed Oct 16 22:53:00 2013 (r256654) +++ vendor-sys/acpica/dist/generate/unix/iasl/Makefile Thu Oct 17 00:06:42 2013 (r256655) @@ -210,15 +210,9 @@ INTERMEDIATES = \ $(OBJDIR)/prparserparse.c MISC = \ - $(OBJDIR)/aslcompilerparse.h\ $(OBJDIR)/aslcompiler.y.h\ - $(OBJDIR)/aslcompilerparse.output\ - $(OBJDIR)/dtparserparse.h\ $(OBJDIR)/dtparser.y.h\ - $(OBJDIR)/dtparserparse.output\ - $(OBJDIR)/prparserparse.h\ - $(OBJDIR)/prparser.y.h\ - $(OBJDIR)/prparserparse.output + $(OBJDIR)/prparser.y.h # # Flags specific to iASL compiler @@ -237,39 +231,32 @@ include ../Makefile.rules # # Parser and Lexer - intermediate C files # -$(OBJDIR)/aslcompilerlex.c : $(ASL_COMPILER)/aslcompiler.l $(ASL_COMPILER)/aslsupport.l +$(OBJDIR)/aslcompilerlex.c : $(ASL_COMPILER)/aslcompiler.l $(ASL_COMPILER)/aslsupport.l $(OBJDIR)/aslcompiler.y.h $(LEX) $(LFLAGS) -PAslCompiler -o$@ $(ASL_COMPILER)/aslcompiler.l -$(OBJDIR)/aslcompilerparse.c $(OBJDIR)/aslcompilerparse.h : $(ASL_COMPILER)/aslcompiler.y - $(YACC) $(YFLAGS) -pAslCompiler -o$@ $? +$(OBJDIR)/aslcompiler.y.h : $(ASL_COMPILER)/aslcompiler.y + $(YACC) $(YFLAGS) -pAslCompiler -o/dev/null --defines=$@ $< -$(OBJDIR)/dtparserlex.c : $(ASL_COMPILER)/dtparser.l - $(LEX) $(LFLAGS) -PDtParser -o$@ $? +$(OBJDIR)/aslcompilerparse.c : $(ASL_COMPILER)/aslcompiler.y + $(YACC) $(YFLAGS) -pAslCompiler -o$@ --defines=/dev/null $< -$(OBJDIR)/dtparserparse.c $(OBJDIR)/dtparserparse.h : $(ASL_COMPILER)/dtparser.y - $(YACC) $(YFLAGS) -pDtParser -o$@ $? +$(OBJDIR)/dtparserlex.c : $(ASL_COMPILER)/dtparser.l $(OBJDIR)/dtparser.y.h + $(LEX) $(LFLAGS) -PDtParser -o$@ $< -$(OBJDIR)/prparserlex.c : $(ASL_COMPILER)/prparser.l - $(LEX) $(LFLAGS) -PPrParser -o$@ $? +$(OBJDIR)/dtparser.y.h : $(ASL_COMPILER)/dtparser.y + $(YACC) $(YFLAGS) -pDtParser -o/dev/null --defines=$@ $< -$(OBJDIR)/prparserparse.c $(OBJDIR)/prparserparse.h : $(ASL_COMPILER)/prparser.y - $(YACC) $(YFLAGS) -pPrParser -o$@ $? +$(OBJDIR)/dtparserparse.c : $(ASL_COMPILER)/dtparser.y + $(YACC) $(YFLAGS) -pDtParser -o$@ --defines=/dev/null $< +$(OBJDIR)/prparserlex.c : $(ASL_COMPILER)/prparser.l $(OBJDIR)/prparser.y.h + $(LEX) $(LFLAGS) -PPrParser -o$@ $< -# -# Rename the headers produced by bison/yacc -# -$(OBJDIR)/aslcompiler.y.h : $(OBJDIR)/aslcompilerparse.h - @echo Copy intermediate file: - @cp -f -v $(OBJDIR)/aslcompilerparse.h $(OBJDIR)/aslcompiler.y.h - -$(OBJDIR)/dtparser.y.h: $(OBJDIR)/dtparserparse.h - @echo Copy intermediate file: - @cp -f -v $(OBJDIR)/dtparserparse.h $(OBJDIR)/dtparser.y.h +$(OBJDIR)/prparser.y.h : $(ASL_COMPILER)/prparser.y + $(YACC) $(YFLAGS) -pPrParser -o/dev/null --defines=$@ $< -$(OBJDIR)/prparser.y.h: $(OBJDIR)/prparserparse.h - @echo Copy intermediate file: - @cp -f -v $(OBJDIR)/prparserparse.h $(OBJDIR)/prparser.y.h +$(OBJDIR)/prparserparse.c : $(ASL_COMPILER)/prparser.y + $(YACC) $(YFLAGS) -pPrParser -o$@ --defines=/dev/null $< # @@ -279,19 +266,19 @@ $(OBJDIR)/prparser.y.h: $(OBJDIR)/prpars # by the utilities above and they are not necessarily ANSI C, etc. # $(OBJDIR)/aslcompilerlex.o : $(OBJDIR)/aslcompilerlex.c - $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $? + $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $< $(OBJDIR)/aslcompilerparse.o : $(OBJDIR)/aslcompilerparse.c - $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $? + $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $< $(OBJDIR)/dtparserlex.o : $(OBJDIR)/dtparserlex.c - $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $? + $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $< $(OBJDIR)/dtparserparse.o : $(OBJDIR)/dtparserparse.c - $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $? + $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $< $(OBJDIR)/prparserlex.o : $(OBJDIR)/prparserlex.c - $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $? + $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $< $(OBJDIR)/prparserparse.o : $(OBJDIR)/prparserparse.c - $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $? + $(CC) -c $(CFLAGS) -Wall -Werror -o$@ $< Added: vendor-sys/acpica/dist/source/common/acgetline.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor-sys/acpica/dist/source/common/acgetline.c Thu Oct 17 00:06:42 2013 (r256655) @@ -0,0 +1,440 @@ +/****************************************************************************** + * + * Module Name: acgetline - local line editing + * + *****************************************************************************/ + +/* + * Copyright (C) 2000 - 2013, Intel Corp. + * 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, + * without modification. + * 2. Redistributions in binary form must reproduce at minimum a disclaimer + * substantially similar to the "NO WARRANTY" disclaimer below + * ("Disclaimer") and any redistribution must be conditioned upon + * including a substantially similar Disclaimer requirement for further + * binary redistribution. + * 3. Neither the names of the above-listed copyright holders nor the names + * of any contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * Alternatively, this software may be distributed under the terms of the + * GNU General Public License ("GPL") version 2 as published by the Free + * Software Foundation. + * + * NO WARRANTY + * 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 MERCHANTIBILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * HOLDERS OR CONTRIBUTORS BE LIABLE FOR 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 DAMAGES. + */ + +#include "acpi.h" +#include "accommon.h" +#include "amlcode.h" +#include "acparser.h" +#include "acdebug.h" + +#include + +/* + * This is an os-independent implementation of line-editing services needed + * by the AcpiExec utility. It uses getchar() and putchar() and the existing + * history support provided by the AML debugger. It assumes that the terminal + * is in the correct line-editing mode such as raw and noecho. The OSL + * interface AcpiOsInitialize should do this. AcpiOsTerminate should put the + * terminal back into the original mode. + */ +#define _COMPONENT ACPI_OS_SERVICES + ACPI_MODULE_NAME ("acgetline") + + +/* Local prototypes */ + +static void +AcpiAcClearLine ( + UINT32 EndOfLine, + UINT32 CursorPosition); + +/* Various ASCII constants */ + +#define _ASCII_NUL 0 +#define _ASCII_BACKSPACE 0x08 +#define _ASCII_TAB 0x09 +#define _ASCII_ESCAPE 0x1B +#define _ASCII_SPACE 0x20 +#define _ASCII_LEFT_BRACKET 0x5B +#define _ASCII_DEL 0x7F +#define _ASCII_UP_ARROW 'A' +#define _ASCII_DOWN_ARROW 'B' +#define _ASCII_RIGHT_ARROW 'C' +#define _ASCII_LEFT_ARROW 'D' +#define _ASCII_NEWLINE '\n' + +extern UINT32 AcpiGbl_NextCmdNum; + +/* Erase a single character on the input command line */ + +#define ACPI_CLEAR_CHAR() \ + putchar (_ASCII_BACKSPACE); \ + putchar (_ASCII_SPACE); \ + putchar (_ASCII_BACKSPACE); + +/* Backup cursor by Count positions */ + +#define ACPI_BACKUP_CURSOR(i, Count) \ + for (i = 0; i < (Count); i++) \ + {putchar (_ASCII_BACKSPACE);} + + +/****************************************************************************** + * + * FUNCTION: AcpiAcClearLine + * + * PARAMETERS: EndOfLine - Current end-of-line index + * CursorPosition - Current cursor position within line + * + * RETURN: None + * + * DESCRIPTION: Clear the entire command line the hard way, but probably the + * most portable. + * + *****************************************************************************/ + +static void +AcpiAcClearLine ( + UINT32 EndOfLine, + UINT32 CursorPosition) +{ + UINT32 i; + + + if (CursorPosition < EndOfLine) + { + /* Clear line from current position to end of line */ + + for (i = 0; i < (EndOfLine - CursorPosition); i++) + { + putchar (' '); + } + } + + /* Clear the entire line */ + + for (; EndOfLine > 0; EndOfLine--) + { + ACPI_CLEAR_CHAR (); + } +} + + +/****************************************************************************** + * + * FUNCTION: AcpiOsGetLine + * + * PARAMETERS: Buffer - Where to return the command line + * BufferLength - Maximum length of Buffer + * BytesRead - Where the actual byte count is returned + * + * RETURN: Status and actual bytes read + * + * DESCRIPTION: Get the next input line from the terminal. NOTE: terminal + * is expected to be in a mode that supports line-editing (raw, + * noecho). This function is intended to be very portable. Also, + * it uses the history support implemented in the AML debugger. + * + *****************************************************************************/ + +ACPI_STATUS +AcpiOsGetLine ( + char *Buffer, + UINT32 BufferLength, + UINT32 *BytesRead) +{ + char *NextCommand; + UINT32 MaxCommandIndex = AcpiGbl_NextCmdNum - 1; + UINT32 CurrentCommandIndex = MaxCommandIndex; + UINT32 PreviousCommandIndex = MaxCommandIndex; + int InputChar; + UINT32 CursorPosition = 0; + UINT32 EndOfLine = 0; + UINT32 i; + + + /* Always clear the line buffer before we read a new line */ + + memset (Buffer, 0, BufferLength); + + /* + * This loop gets one character at a time (except for esc sequences) + * until a newline or error is detected. + * + * Note: Don't attempt to write terminal control ESC sequences, even + * though it makes certain things more difficult. + */ + while (1) + { + if (EndOfLine >= (BufferLength - 1)) + { + return (AE_BUFFER_OVERFLOW); + } + + InputChar = getchar (); + switch (InputChar) + { + default: /* This is the normal character case */ + + /* Echo the character (at EOL) and copy it to the line buffer */ + + if (EndOfLine == CursorPosition) + { + putchar (InputChar); + Buffer[EndOfLine] = (char) InputChar; + + EndOfLine++; + CursorPosition++; + Buffer[EndOfLine] = 0; + continue; + } + + /* Insert character into the middle of the buffer */ + + memmove (&Buffer[CursorPosition + 1], &Buffer[CursorPosition], + (EndOfLine - CursorPosition + 1)); + + Buffer [CursorPosition] = (char) InputChar; + Buffer [EndOfLine + 1] = 0; + + /* Display the new part of line starting at the new character */ + + fprintf (stdout, "%s", &Buffer[CursorPosition]); + + /* Restore cursor */ + + ACPI_BACKUP_CURSOR (i, EndOfLine - CursorPosition); + CursorPosition++; + EndOfLine++; + continue; + + case _ASCII_DEL: /* Backspace key */ + + if (!EndOfLine) /* Any characters on the command line? */ + { + continue; + } + + if (EndOfLine == CursorPosition) /* Erase the final character */ + { + ACPI_CLEAR_CHAR (); + EndOfLine--; + CursorPosition--; + continue; + } + + if (!CursorPosition) /* Do not backup beyond start of line */ + { + continue; + } + + /* Remove the character from the line */ + + memmove (&Buffer[CursorPosition - 1], &Buffer[CursorPosition], + (EndOfLine - CursorPosition + 1)); + + /* Display the new part of line starting at the new character */ + + putchar (_ASCII_BACKSPACE); + fprintf (stdout, "%s ", &Buffer[CursorPosition - 1]); + + /* Restore cursor */ + + ACPI_BACKUP_CURSOR (i, EndOfLine - CursorPosition + 1); + EndOfLine--; + if (CursorPosition > 0) + { + CursorPosition--; + } + continue; + + case _ASCII_NEWLINE: /* Normal exit case at end of command line */ + case _ASCII_NUL: + + /* Return the number of bytes in the command line string */ + + if (BytesRead) + { + *BytesRead = EndOfLine; + } + + /* Echo, terminate string buffer, and exit */ + + putchar (InputChar); + Buffer[EndOfLine] = 0; + return (AE_OK); + + case _ASCII_TAB: + + /* Ignore */ + + continue; + + case EOF: + + return (AE_ERROR); + + case _ASCII_ESCAPE: + + /* Check for escape sequences of the form "ESC[x" */ + + InputChar = getchar (); + if (InputChar != _ASCII_LEFT_BRACKET) + { + continue; /* Ignore this ESC, does not have the '[' */ + } + + /* Get the code following the ESC [ */ + + InputChar = getchar (); /* Backup one character */ + switch (InputChar) + { + case _ASCII_LEFT_ARROW: + + if (CursorPosition > 0) + { + putchar (_ASCII_BACKSPACE); + CursorPosition--; + } + continue; + + case _ASCII_RIGHT_ARROW: + /* + * Move one character forward. Do this without sending + * ESC sequence to the terminal for max portability. + */ + if (CursorPosition < EndOfLine) + { + /* Backup to start of line and print the entire line */ + + ACPI_BACKUP_CURSOR (i, CursorPosition); + fprintf (stdout, "%s", Buffer); + + /* Backup to where the cursor should be */ + + CursorPosition++; + ACPI_BACKUP_CURSOR (i, EndOfLine - CursorPosition); + } + continue; + + case _ASCII_UP_ARROW: + + /* If no commands available or at start of history list, ignore */ + + if (!CurrentCommandIndex) + { + continue; + } + + /* Manage our up/down progress */ + + if (CurrentCommandIndex > PreviousCommandIndex) + { + CurrentCommandIndex = PreviousCommandIndex; + } + + /* Get the historical command from the debugger */ + + NextCommand = AcpiDbGetHistoryByIndex (CurrentCommandIndex); + if (!NextCommand) + { + return (AE_ERROR); + } + + /* Make this the active command and echo it */ + + AcpiAcClearLine (EndOfLine, CursorPosition); + strcpy (Buffer, NextCommand); + fprintf (stdout, "%s", Buffer); + EndOfLine = CursorPosition = strlen (Buffer); + + PreviousCommandIndex = CurrentCommandIndex; + CurrentCommandIndex--; + continue; + + case _ASCII_DOWN_ARROW: + + if (!MaxCommandIndex) /* Any commands available? */ + { + continue; + } + + /* Manage our up/down progress */ + + if (CurrentCommandIndex < PreviousCommandIndex) + { + CurrentCommandIndex = PreviousCommandIndex; + } + + /* If we are the end of the history list, output a clear new line */ + + if ((CurrentCommandIndex + 1) > MaxCommandIndex) + { + AcpiAcClearLine (EndOfLine, CursorPosition); + EndOfLine = CursorPosition = 0; + PreviousCommandIndex = CurrentCommandIndex; + continue; + } + + PreviousCommandIndex = CurrentCommandIndex; + CurrentCommandIndex++; + + /* Get the historical command from the debugger */ + + NextCommand = AcpiDbGetHistoryByIndex (CurrentCommandIndex); + if (!NextCommand) + { + return (AE_ERROR); + } + + /* Make this the active command and echo it */ + + AcpiAcClearLine (EndOfLine, CursorPosition); + strcpy (Buffer, NextCommand); + fprintf (stdout, "%s", Buffer); + EndOfLine = CursorPosition = strlen (Buffer); + continue; + + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + /* + * Ignore the various keys like insert/delete/home/end, etc. + * But we must eat the final character of the ESC sequence. + */ + InputChar = getchar (); + continue; + + default: + + /* Ignore random escape sequences that we don't care about */ + + continue; + } + continue; + } + } +} Modified: vendor-sys/acpica/dist/source/common/adfile.c ============================================================================== --- vendor-sys/acpica/dist/source/common/adfile.c Wed Oct 16 22:53:00 2013 (r256654) +++ vendor-sys/acpica/dist/source/common/adfile.c Thu Oct 17 00:06:42 2013 (r256655) @@ -288,7 +288,6 @@ FlSplitInputPathname ( *OutDirectoryPath = NULL; - *OutFilename = NULL; if (!InputPath) { @@ -334,6 +333,10 @@ FlSplitInputPathname ( } *OutDirectoryPath = DirectoryPath; - *OutFilename = Filename; + + if (OutFilename) + { + *OutFilename = Filename; + } return (AE_OK); } Modified: vendor-sys/acpica/dist/source/common/dmextern.c ============================================================================== --- vendor-sys/acpica/dist/source/common/dmextern.c Wed Oct 16 22:53:00 2013 (r256654) +++ vendor-sys/acpica/dist/source/common/dmextern.c Thu Oct 17 00:06:42 2013 (r256655) @@ -279,48 +279,41 @@ Cleanup: ACPI_STATUS AcpiDmAddToExternalFileList ( - char *PathList) + char *Pathname) { ACPI_EXTERNAL_FILE *ExternalFile; - char *Path; - char *TmpPath; + char *LocalPathname; - if (!PathList) + if (!Pathname) { return (AE_OK); } - Path = strtok (PathList, ","); - - while (Path) + LocalPathname = ACPI_ALLOCATE (strlen (Pathname) + 1); + if (!LocalPathname) { - TmpPath = ACPI_ALLOCATE_ZEROED (ACPI_STRLEN (Path) + 1); - if (!TmpPath) - { - return (AE_NO_MEMORY); - } - - ACPI_STRCPY (TmpPath, Path); + return (AE_NO_MEMORY); + } - ExternalFile = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_EXTERNAL_FILE)); - if (!ExternalFile) - { - ACPI_FREE (TmpPath); - return (AE_NO_MEMORY); - } + ExternalFile = ACPI_ALLOCATE_ZEROED (sizeof (ACPI_EXTERNAL_FILE)); + if (!ExternalFile) + { + ACPI_FREE (LocalPathname); + return (AE_NO_MEMORY); + } - ExternalFile->Path = TmpPath; + /* Take a copy of the file pathname */ - if (AcpiGbl_ExternalFileList) - { - ExternalFile->Next = AcpiGbl_ExternalFileList; - } + strcpy (LocalPathname, Pathname); + ExternalFile->Path = LocalPathname; - AcpiGbl_ExternalFileList = ExternalFile; - Path = strtok (NULL, ","); + if (AcpiGbl_ExternalFileList) + { + ExternalFile->Next = AcpiGbl_ExternalFileList; } + AcpiGbl_ExternalFileList = ExternalFile; return (AE_OK); } Modified: vendor-sys/acpica/dist/source/compiler/aslcompiler.h ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslcompiler.h Wed Oct 16 22:53:00 2013 (r256654) +++ vendor-sys/acpica/dist/source/compiler/aslcompiler.h Thu Oct 17 00:06:42 2013 (r256655) @@ -123,11 +123,6 @@ ACPI_STATUS (*ASL_PATHNAME_CALLBACK) ( char *); ACPI_STATUS -AslDoOnePathname ( - char *Pathname, - ASL_PATHNAME_CALLBACK Callback); - -ACPI_STATUS AslDoOneFile ( char *Filename); Modified: vendor-sys/acpica/dist/source/compiler/aslerror.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslerror.c Wed Oct 16 22:53:00 2013 (r256654) +++ vendor-sys/acpica/dist/source/compiler/aslerror.c Thu Oct 17 00:06:42 2013 (r256655) @@ -611,7 +611,6 @@ AslCommonError ( char *Filename, char *ExtraMessage) { - UINT32 MessageSize; char *MessageBuffer = NULL; ASL_ERROR_MSG *Enode; @@ -622,8 +621,7 @@ AslCommonError ( { /* Allocate a buffer for the message and a new error node */ - MessageSize = strlen (ExtraMessage) + 1; - MessageBuffer = UtLocalCalloc (MessageSize); + MessageBuffer = UtLocalCalloc (strlen (ExtraMessage) + 1); /* Keep a copy of the extra message */ Modified: vendor-sys/acpica/dist/source/compiler/aslmain.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslmain.c Wed Oct 16 22:53:00 2013 (r256654) +++ vendor-sys/acpica/dist/source/compiler/aslmain.c Thu Oct 17 00:06:42 2013 (r256655) @@ -51,6 +51,17 @@ #define _COMPONENT ACPI_COMPILER ACPI_MODULE_NAME ("aslmain") +/* + * Main routine for the iASL compiler. + * + * Portability note: The compiler depends upon the host for command-line + * wildcard support - it is not implemented locally. For example: + * + * Linux/Unix systems: Shell expands wildcards automatically. + * + * Windows: The setargv.obj module must be linked in to automatically + * expand wildcards. + */ /* Local prototypes */ @@ -131,13 +142,13 @@ Usage ( ACPI_OPTION ("-vt", "Create verbose template files (full disassembly)"); printf ("\nAML Disassembler:\n"); - ACPI_OPTION ("-d ", "Disassemble or decode binary ACPI tables to file (*.dsl)"); + ACPI_OPTION ("-d ", "Disassemble or decode binary ACPI tables to file (*.dsl)"); ACPI_OPTION ("", " (Optional, file type is automatically detected)"); - ACPI_OPTION ("-da ", "Disassemble multiple tables from single namespace"); + ACPI_OPTION ("-da ", "Disassemble multiple tables from single namespace"); ACPI_OPTION ("-db", "Do not translate Buffers to Resource Templates"); - ACPI_OPTION ("-dc ", "Disassemble AML and immediately compile it"); + ACPI_OPTION ("-dc ", "Disassemble AML and immediately compile it"); ACPI_OPTION ("", " (Obtain DSDT from current system if no input file)"); - ACPI_OPTION ("-e ", "Include ACPI table(s) for external symbol resolution"); + ACPI_OPTION ("-e ", "Include ACPI table(s) for external symbol resolution"); ACPI_OPTION ("-fe ", "Specify external symbol declaration file"); ACPI_OPTION ("-g", "Get ACPI tables and write to files (*.dat)"); ACPI_OPTION ("-in", "Ignore NoOp opcodes"); @@ -321,7 +332,7 @@ main ( { while (argv[Index1]) { - Status = AslDoOnePathname (argv[Index1], AcpiDmAddToExternalFileList); + Status = AcpiDmAddToExternalFileList (argv[Index1]); if (ACPI_FAILURE (Status)) { return (-1); @@ -335,7 +346,16 @@ main ( while (argv[Index2]) { - Status = AslDoOnePathname (argv[Index2], AslDoOneFile); + /* + * If -p not specified, we will use the input filename as the + * output filename prefix + */ + if (Gbl_UseDefaultAmlFilename) + { + Gbl_OutputFilenamePrefix = argv[Index2]; + } + + Status = AslDoOneFile (argv[Index2]); if (ACPI_FAILURE (Status)) { return (-1); Modified: vendor-sys/acpica/dist/source/compiler/asloptions.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/asloptions.c Wed Oct 16 22:53:00 2013 (r256654) +++ vendor-sys/acpica/dist/source/compiler/asloptions.c Thu Oct 17 00:06:42 2013 (r256655) @@ -267,11 +267,21 @@ AslDoOptions ( case 'e': /* External files for disassembler */ - Status = AcpiDmAddToExternalFileList (AcpiGbl_Optarg); - if (ACPI_FAILURE (Status)) + /* Get entire list of external files */ + + AcpiGbl_Optind--; + + while (argv[AcpiGbl_Optind] && + (argv[AcpiGbl_Optind][0] != '-')) { - printf ("Could not add %s to external list\n", AcpiGbl_Optarg); - return (-1); + Status = AcpiDmAddToExternalFileList (argv[AcpiGbl_Optind]); + if (ACPI_FAILURE (Status)) + { + printf ("Could not add %s to external list\n", argv[AcpiGbl_Optind]); + return (-1); + } + + AcpiGbl_Optind++; } break; Modified: vendor-sys/acpica/dist/source/compiler/aslstartup.c ============================================================================== --- vendor-sys/acpica/dist/source/compiler/aslstartup.c Wed Oct 16 22:53:00 2013 (r256654) +++ vendor-sys/acpica/dist/source/compiler/aslstartup.c Thu Oct 17 00:06:42 2013 (r256655) @@ -51,18 +51,8 @@ ACPI_MODULE_NAME ("aslstartup") -#define ASL_MAX_FILES 256 -static char *FileList[ASL_MAX_FILES]; -static BOOLEAN AslToFile = TRUE; - - /* Local prototypes */ -static char ** -AsDoWildcard ( - char *DirectoryPathname, - char *FileSpecifier); - static UINT8 AslDetectSourceFileType ( ASL_FILE_INFO *Info); @@ -72,6 +62,11 @@ AslDoDisassembly ( void); +/* Globals */ + +static BOOLEAN AslToFile = TRUE; + + /******************************************************************************* * * FUNCTION: AslInitializeGlobals @@ -131,82 +126,6 @@ AslInitializeGlobals ( } -/****************************************************************************** - * - * FUNCTION: AsDoWildcard - * - * PARAMETERS: None - * - * RETURN: None - * - * DESCRIPTION: Process files via wildcards. This function is for the Windows - * case only. - * - ******************************************************************************/ - -static char ** -AsDoWildcard ( - char *DirectoryPathname, - char *FileSpecifier) -{ -#ifdef WIN32 - void *DirInfo; - char *Filename; - int FileCount; - - - FileCount = 0; - - /* Open parent directory */ - - DirInfo = AcpiOsOpenDirectory (DirectoryPathname, FileSpecifier, REQUEST_FILE_ONLY); - if (!DirInfo) - { - /* Either the directory of file does not exist */ - - Gbl_Files[ASL_FILE_INPUT].Filename = FileSpecifier; - FlFileError (ASL_FILE_INPUT, ASL_MSG_OPEN); - AslAbort (); - } - - /* Process each file that matches the wildcard specification */ - - while ((Filename = AcpiOsGetNextFilename (DirInfo))) - { - /* Add the filename to the file list */ - - FileList[FileCount] = AcpiOsAllocate (strlen (Filename) + 1); - strcpy (FileList[FileCount], Filename); - FileCount++; - - if (FileCount >= ASL_MAX_FILES) - { - printf ("Max files reached\n"); - FileList[0] = NULL; - return (FileList); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 00:07:22 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 5E08CB93; Thu, 17 Oct 2013 00:07:22 +0000 (UTC) (envelope-from jkim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 33B932420; Thu, 17 Oct 2013 00:07:22 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9H07MTQ073889; Thu, 17 Oct 2013 00:07:22 GMT (envelope-from jkim@svn.freebsd.org) Received: (from jkim@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9H07Miv073888; Thu, 17 Oct 2013 00:07:22 GMT (envelope-from jkim@svn.freebsd.org) Message-Id: <201310170007.r9H07Miv073888@svn.freebsd.org> From: Jung-uk Kim Date: Thu, 17 Oct 2013 00:07:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r256656 - vendor-sys/acpica/20130927 X-SVN-Group: vendor-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 00:07:22 -0000 Author: jkim Date: Thu Oct 17 00:07:21 2013 New Revision: 256656 URL: http://svnweb.freebsd.org/changeset/base/256656 Log: Tag ACPICA 20130927. Added: vendor-sys/acpica/20130927/ - copied from r256655, vendor-sys/acpica/dist/ From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 00:28:36 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id A7F38C3; Thu, 17 Oct 2013 00:28:36 +0000 (UTC) (envelope-from neel@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 8475E24ED; Thu, 17 Oct 2013 00:28:36 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9H0SaP7084576; Thu, 17 Oct 2013 00:28:36 GMT (envelope-from neel@svn.freebsd.org) Received: (from neel@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9H0SZot084541; Thu, 17 Oct 2013 00:28:35 GMT (envelope-from neel@svn.freebsd.org) Message-Id: <201310170028.r9H0SZot084541@svn.freebsd.org> From: Neel Natu Date: Thu, 17 Oct 2013 00:28:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256657 - in head: share/examples/bhyve usr.sbin/bhyveload X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 00:28:36 -0000 Author: neel Date: Thu Oct 17 00:28:35 2013 New Revision: 256657 URL: http://svnweb.freebsd.org/changeset/base/256657 Log: Add an option to bhyveload(8) that allows setting a loader environment variable from the command line. The option syntax is "-e ". It may be used multiple times to set multiple environment variables. Reviewed by: grehan Requested by: alfred Modified: head/share/examples/bhyve/vmrun.sh head/usr.sbin/bhyveload/bhyveload.8 head/usr.sbin/bhyveload/bhyveload.c Modified: head/share/examples/bhyve/vmrun.sh ============================================================================== --- head/share/examples/bhyve/vmrun.sh Thu Oct 17 00:07:21 2013 (r256656) +++ head/share/examples/bhyve/vmrun.sh Thu Oct 17 00:28:35 2013 (r256657) @@ -39,11 +39,12 @@ DEFAULT_VIRTIO_DISK="./diskdev" DEFAULT_ISOFILE="./release.iso" usage() { - echo "Usage: vmrun.sh [-hai][-g ][-m ][-d ][-I ][-t ] " + echo "Usage: vmrun.sh [-hai][-g ][-m ][-d ][-e ][-I ][-t ] " echo " -h: display this help message" echo " -a: force memory mapped local apic access" echo " -c: number of virtual cpus (default is ${DEFAULT_CPUS})" echo " -d: virtio diskdev file (default is ${DEFAULT_VIRTIO_DISK})" + echo " -e: set FreeBSD loader environment variable" echo " -g: listen for connection from kgdb at " echo " -i: force boot of the Installation CDROM image" echo " -I: Installation CDROM image location (default is ${DEFAULT_ISOFILE})" @@ -73,8 +74,9 @@ virtio_diskdev=${DEFAULT_VIRTIO_DISK} tapdev=${DEFAULT_TAPDEV} apic_opt="" gdbport=0 +env_opt="" -while getopts haic:g:I:m:d:t: c ; do +while getopts haic:e:g:I:m:d:t: c ; do case $c in h) usage @@ -85,6 +87,9 @@ while getopts haic:g:I:m:d:t: c ; do d) virtio_diskdev=${OPTARG} ;; + e) + env_opt="${env_opt} -e ${OPTARG}" + ;; g) gdbport=${OPTARG} ;; i) @@ -163,7 +168,7 @@ while [ 1 ]; do installer_opt="" fi - ${LOADER} -m ${memsize} -d ${BOOTDISK} ${vmname} + ${LOADER} -m ${memsize} -d ${BOOTDISK} ${env_opt} ${vmname} if [ $? -ne 0 ]; then break fi Modified: head/usr.sbin/bhyveload/bhyveload.8 ============================================================================== --- head/usr.sbin/bhyveload/bhyveload.8 Thu Oct 17 00:07:21 2013 (r256656) +++ head/usr.sbin/bhyveload/bhyveload.8 Thu Oct 17 00:28:35 2013 (r256657) @@ -38,6 +38,7 @@ guest inside a bhyve virtual machine .Op Fl m Ar mem-size .Op Fl d Ar disk-path .Op Fl h Ar host-path +.Op Fl e Ar name=value .Ar vmname .Sh DESCRIPTION .Nm @@ -91,6 +92,14 @@ is the pathname of the guest's boot disk The .Ar host-path is the directory at the top of the guest's boot filesystem. +.It Fl e Ar name=value +Set the FreeBSD loader environment variable +.Ar name +to +.Ar value . +.Pp +The option may be used more than once to set more than one environment +variable. .El .Sh EXAMPLES To create a virtual machine named Modified: head/usr.sbin/bhyveload/bhyveload.c ============================================================================== --- head/usr.sbin/bhyveload/bhyveload.c Thu Oct 17 00:07:21 2013 (r256656) +++ head/usr.sbin/bhyveload/bhyveload.c Thu Oct 17 00:28:35 2013 (r256657) @@ -60,6 +60,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -498,23 +499,37 @@ cb_getmem(void *arg, uint64_t *ret_lowme vm_get_memory_seg(ctx, 4 * GB, ret_highmem, NULL); } +struct env { + const char *str; /* name=value */ + SLIST_ENTRY(env) next; +}; + +static SLIST_HEAD(envhead, env) envhead; + +static void +addenv(const char *str) +{ + struct env *env; + + env = malloc(sizeof(struct env)); + env->str = str; + SLIST_INSERT_HEAD(&envhead, env, next); +} + static const char * cb_getenv(void *arg, int num) { - int max; + int i; + struct env *env; - static const char * var[] = { - "smbios.bios.vendor=BHYVE", - "boot_serial=1", - NULL - }; - - max = sizeof(var) / sizeof(var[0]); + i = 0; + SLIST_FOREACH(env, &envhead, next) { + if (i == num) + return (env->str); + i++; + } - if (num < max) - return (var[num]); - else - return (NULL); + return (NULL); } static struct loader_callbacks cb = { @@ -553,8 +568,8 @@ usage(void) { fprintf(stderr, - "usage: %s [-m mem-size][-d ] [-h ] " - "\n", progname); + "usage: %s [-m mem-size][-d ] [-h ] " + "[-e ] \n", progname); exit(1); } @@ -572,12 +587,16 @@ main(int argc, char** argv) mem_size = 256 * MB; disk_image = NULL; - while ((opt = getopt(argc, argv, "d:h:m:")) != -1) { + while ((opt = getopt(argc, argv, "d:e:h:m:")) != -1) { switch (opt) { case 'd': disk_image = optarg; break; + case 'e': + addenv(optarg); + break; + case 'h': host_base = optarg; break; @@ -638,5 +657,9 @@ main(int argc, char** argv) if (disk_image) { disk_fd = open(disk_image, O_RDONLY); } + + addenv("smbios.bios.vendor=BHYVE"); + addenv("boot_serial=1"); + func(&cb, NULL, USERBOOT_VERSION_3, disk_fd >= 0); } From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 01:53:08 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 27EEDC98; Thu, 17 Oct 2013 01:53:08 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 04FB9290B; Thu, 17 Oct 2013 01:53:08 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9H1r7H0031208; Thu, 17 Oct 2013 01:53:07 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9H1r7OL031201; Thu, 17 Oct 2013 01:53:07 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <201310170153.r9H1r7OL031201@svn.freebsd.org> From: Rui Paulo Date: Thu, 17 Oct 2013 01:53:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256658 - head/sys/dev/ath X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 01:53:08 -0000 Author: rpaulo Date: Thu Oct 17 01:53:07 2013 New Revision: 256658 URL: http://svnweb.freebsd.org/changeset/base/256658 Log: Move a lot of debugging printf's to DPRINTF. Approved by: adrian MFC after: 2 weeks Modified: head/sys/dev/ath/if_ath.c head/sys/dev/ath/if_ath_tx.c Modified: head/sys/dev/ath/if_ath.c ============================================================================== --- head/sys/dev/ath/if_ath.c Thu Oct 17 00:28:35 2013 (r256657) +++ head/sys/dev/ath/if_ath.c Thu Oct 17 01:53:07 2013 (r256658) @@ -2725,7 +2725,7 @@ ath_transmit(struct ifnet *ifp, struct m */ ATH_PCU_LOCK(sc); if (sc->sc_inreset_cnt > 0) { - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_XMIT, "%s: sc_inreset_cnt > 0; bailing\n", __func__); ATH_PCU_UNLOCK(sc); IF_LOCK(&ifp->if_snd); @@ -6430,7 +6430,7 @@ ath_node_recv_pspoll(struct ieee80211_no * Immediately punt. */ if (! an->an_is_powersave) { - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_NODE_PWRSAVE, "%s: %6D: not in powersave?\n", __func__, ni->ni_macaddr, @@ -6498,7 +6498,8 @@ ath_node_recv_pspoll(struct ieee80211_no /* * XXX nothing in the TIDs at this point? Eek. */ - device_printf(sc->sc_dev, "%s: %6D: TIDs empty, but ath_node showed traffic?!\n", + DPRINTF(sc, ATH_DEBUG_NODE_PWRSAVE, + "%s: %6D: TIDs empty, but ath_node showed traffic?!\n", __func__, ni->ni_macaddr, ":"); Modified: head/sys/dev/ath/if_ath_tx.c ============================================================================== --- head/sys/dev/ath/if_ath_tx.c Thu Oct 17 00:28:35 2013 (r256657) +++ head/sys/dev/ath/if_ath_tx.c Thu Oct 17 01:53:07 2013 (r256658) @@ -268,7 +268,7 @@ ath_txfrag_setup(struct ath_softc *sc, a /* XXX non-management? */ bf = _ath_getbuf_locked(sc, ATH_BUFTYPE_NORMAL); if (bf == NULL) { /* out of buffers, cleanup */ - device_printf(sc->sc_dev, "%s: no buffer?\n", + DPRINTF(sc, ATH_DEBUG_XMIT, "%s: no buffer?\n", __func__); ath_txfrag_cleanup(sc, frags, ni); break; @@ -560,10 +560,10 @@ ath_tx_setds_11n(struct ath_softc *sc, s bf = bf_first; if (bf->bf_state.bfs_txrate0 == 0) - device_printf(sc->sc_dev, "%s: bf=%p, txrate0=%d\n", + DPRINTF(sc, ATH_DEBUG_SW_TX_AGGR, "%s: bf=%p, txrate0=%d\n", __func__, bf, 0); if (bf->bf_state.bfs_rc[0].ratecode == 0) - device_printf(sc->sc_dev, "%s: bf=%p, rix0=%d\n", + DPRINTF(sc, ATH_DEBUG_SW_TX_AGGR, "%s: bf=%p, rix0=%d\n", __func__, bf, 0); /* @@ -708,11 +708,9 @@ ath_tx_handoff_mcast(struct ath_softc *s * mapped correctly. */ if (bf->bf_state.bfs_tx_queue != sc->sc_cabq->axq_qnum) { - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_XMIT, "%s: bf=%p, bfs_tx_queue=%d, axq_qnum=%d\n", - __func__, - bf, - bf->bf_state.bfs_tx_queue, + __func__, bf, bf->bf_state.bfs_tx_queue, txq->axq_qnum); } @@ -881,11 +879,9 @@ ath_tx_handoff_hw(struct ath_softc *sc, * checking and holding buffer manipulation is sane. */ if (bf->bf_state.bfs_tx_queue != txq->axq_qnum) { - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_XMIT, "%s: bf=%p, bfs_tx_queue=%d, axq_qnum=%d\n", - __func__, - bf, - bf->bf_state.bfs_tx_queue, + __func__, bf, bf->bf_state.bfs_tx_queue, txq->axq_qnum); } @@ -1343,8 +1339,8 @@ ath_tx_setds(struct ath_softc *sc, struc struct ath_hal *ah = sc->sc_ah; if (bf->bf_state.bfs_txrate0 == 0) - device_printf(sc->sc_dev, "%s: bf=%p, txrate0=%d\n", - __func__, bf, 0); + DPRINTF(sc, ATH_DEBUG_XMIT, + "%s: bf=%p, txrate0=%d\n", __func__, bf, 0); ath_hal_setuptxdesc(ah, ds , bf->bf_state.bfs_pktlen /* packet length */ @@ -1481,14 +1477,10 @@ ath_tx_should_swq_frame(struct ath_softc * Other control/mgmt frame; bypass software queuing * for now! */ - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_XMIT, "%s: %6D: Node is asleep; sending mgmt " "(type=%d, subtype=%d)\n", - __func__, - ni->ni_macaddr, - ":", - type, - subtype); + __func__, ni->ni_macaddr, ":", type, subtype); return (0); } else { return (1); @@ -1743,7 +1735,7 @@ ath_tx_normal_setup(struct ath_softc *sc */ #if 0 if (txq != sc->sc_ac2q[pri]) { - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_XMIT, "%s: txq=%p (%d), pri=%d, pri txq=%p (%d)\n", __func__, txq, @@ -2145,7 +2137,7 @@ ath_tx_raw_start(struct ath_softc *sc, s /* Map ADDBA to the correct priority */ if (do_override) { #if 0 - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_XMIT, "%s: overriding tid %d pri %d -> %d\n", __func__, o_tid, pri, TID_TO_WME_AC(o_tid)); #endif @@ -2356,8 +2348,8 @@ ath_raw_xmit(struct ieee80211_node *ni, ATH_PCU_LOCK(sc); if (sc->sc_inreset_cnt > 0) { - device_printf(sc->sc_dev, "%s: sc_inreset_cnt > 0; bailing\n", - __func__); + DPRINTF(sc, ATH_DEBUG_XMIT, + "%s: sc_inreset_cnt > 0; bailing\n", __func__); error = EIO; ATH_PCU_UNLOCK(sc); goto bad0; @@ -2585,16 +2577,14 @@ ath_tx_addto_baw(struct ath_softc *sc, s tap = ath_tx_get_tx_tid(an, tid->tid); if (! bf->bf_state.bfs_dobaw) { - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_SW_TX_BAW, "%s: dobaw=0, seqno=%d, window %d:%d\n", - __func__, - SEQNO(bf->bf_state.bfs_seqno), - tap->txa_start, - tap->txa_wnd); + __func__, SEQNO(bf->bf_state.bfs_seqno), + tap->txa_start, tap->txa_wnd); } if (bf->bf_state.bfs_addedbaw) - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_SW_TX_BAW, "%s: re-added? tid=%d, seqno %d; window %d:%d; " "baw head=%d tail=%d\n", __func__, tid->tid, SEQNO(bf->bf_state.bfs_seqno), @@ -2607,7 +2597,7 @@ ath_tx_addto_baw(struct ath_softc *sc, s */ if (! BAW_WITHIN(tap->txa_start, tap->txa_wnd, SEQNO(bf->bf_state.bfs_seqno))) { - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_SW_TX_BAW, "%s: bf=%p: outside of BAW?? tid=%d, seqno %d; window %d:%d; " "baw head=%d tail=%d\n", __func__, bf, tid->tid, SEQNO(bf->bf_state.bfs_seqno), @@ -2633,11 +2623,11 @@ ath_tx_addto_baw(struct ath_softc *sc, s assert(tid->tx_buf[cindex] == NULL); #endif if (tid->tx_buf[cindex] != NULL) { - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_SW_TX_BAW, "%s: ba packet dup (index=%d, cindex=%d, " "head=%d, tail=%d)\n", __func__, index, cindex, tid->baw_head, tid->baw_tail); - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_SW_TX_BAW, "%s: BA bf: %p; seqno=%d ; new bf: %p; seqno=%d\n", __func__, tid->tx_buf[cindex], @@ -2684,22 +2674,21 @@ ath_tx_switch_baw_buf(struct ath_softc * * soon hang. */ if (old_bf->bf_state.bfs_seqno != new_bf->bf_state.bfs_seqno) { - device_printf(sc->sc_dev, "%s: retransmitted buffer" + DPRINTF(sc, ATH_DEBUG_SW_TX_BAW, + "%s: retransmitted buffer" " has mismatching seqno's, BA session may hang.\n", __func__); - device_printf(sc->sc_dev, "%s: old seqno=%d, new_seqno=%d\n", - __func__, - old_bf->bf_state.bfs_seqno, - new_bf->bf_state.bfs_seqno); + DPRINTF(sc, ATH_DEBUG_SW_TX_BAW, + "%s: old seqno=%d, new_seqno=%d\n", __func__, + old_bf->bf_state.bfs_seqno, new_bf->bf_state.bfs_seqno); } if (tid->tx_buf[cindex] != old_bf) { - device_printf(sc->sc_dev, "%s: ath_buf pointer incorrect; " - " has m BA session may hang.\n", - __func__); - device_printf(sc->sc_dev, "%s: old bf=%p, new bf=%p\n", - __func__, - old_bf, new_bf); + DPRINTF(sc, ATH_DEBUG_SW_TX_BAW, + "%s: ath_buf pointer incorrect; " + " has m BA session may hang.\n", __func__); + DPRINTF(sc, ATH_DEBUG_SW_TX_BAW, + "%s: old bf=%p, new bf=%p\n", __func__, old_bf, new_bf); } tid->tx_buf[cindex] = new_bf; @@ -2743,10 +2732,9 @@ ath_tx_update_baw(struct ath_softc *sc, * here and causing it to fire off. Disable TDMA for now. */ if (tid->tx_buf[cindex] != bf) { - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_SW_TX_BAW, "%s: comp bf=%p, seq=%d; slot bf=%p, seqno=%d\n", - __func__, - bf, SEQNO(bf->bf_state.bfs_seqno), + __func__, bf, SEQNO(bf->bf_state.bfs_seqno), tid->tx_buf[cindex], (tid->tx_buf[cindex] != NULL) ? SEQNO(tid->tx_buf[cindex]->bf_state.bfs_seqno) : -1); @@ -2992,10 +2980,9 @@ ath_tx_xmit_aggr(struct ath_softc *sc, s * be reset or the completion code will get upset with you. */ if (bf->bf_state.bfs_aggr != 0 || bf->bf_state.bfs_nframes > 1) { - device_printf(sc->sc_dev, "%s: bfs_aggr=%d, bfs_nframes=%d\n", - __func__, - bf->bf_state.bfs_aggr, - bf->bf_state.bfs_nframes); + DPRINTF(sc, ATH_DEBUG_SW_TX_AGGR + "%s: bfs_aggr=%d, bfs_nframes=%d\n", __func__, + bf->bf_state.bfs_aggr, bf->bf_state.bfs_nframes); bf->bf_state.bfs_aggr = 0; bf->bf_state.bfs_nframes = 1; } @@ -3273,10 +3260,9 @@ ath_tx_tid_resume(struct ath_softc *sc, * until it's actually resolved. */ if (tid->paused == 0) { - device_printf(sc->sc_dev, "%s: %6D: paused=0?\n", - __func__, - tid->an->an_node.ni_macaddr, - ":"); + DPRINTF(sc, ATH_DEBUG_SW_TX_CTRL, + "%s: %6D: paused=0?\n", __func__, + tid->an->an_node.ni_macaddr, ":"); } else { tid->paused--; } @@ -3298,7 +3284,8 @@ ath_tx_tid_resume(struct ath_softc *sc, /* XXX isfiltered shouldn't ever be 0 at this point */ if (tid->isfiltered == 1) { - device_printf(sc->sc_dev, "%s: filtered?!\n", __func__); + DPRINTF(sc, ATH_DEBUG_SW_TX_CTRL, "%s: filtered?!\n", + __func__); return; } @@ -3321,8 +3308,9 @@ ath_tx_tid_filt_addbuf(struct ath_softc ATH_TX_LOCK_ASSERT(sc); - if (! tid->isfiltered) - device_printf(sc->sc_dev, "%s: not filtered?!\n", __func__); + if (!tid->isfiltered) + DPRINTF(sc, ATH_DEBUG_SW_TX_FILT, "%s: not filtered?!\n", + __func__); DPRINTF(sc, ATH_DEBUG_SW_TX_FILT, "%s: bf=%p\n", __func__, bf); @@ -3518,8 +3506,8 @@ ath_tx_tid_bar_suspend(struct ath_softc /* We shouldn't be called when bar_tx is 1 */ if (tid->bar_tx) { - device_printf(sc->sc_dev, "%s: bar_tx is 1?!\n", - __func__); + DPRINTF(sc, ATH_DEBUG_SW_TX_BAR, + "%s: bar_tx is 1?!\n", __func__); } /* If we've already been called, just be patient. */ @@ -3551,14 +3539,10 @@ ath_tx_tid_bar_unsuspend(struct ath_soft tid->tid); if (tid->bar_tx == 0 || tid->bar_wait == 0) { - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_SW_TX_BAR, "%s: %6D: TID=%d, bar_tx=%d, bar_wait=%d: ?\n", - __func__, - tid->an->an_node.ni_macaddr, - ":", - tid->tid, - tid->bar_tx, - tid->bar_wait); + __func__, tid->an->an_node.ni_macaddr, ":", + tid->tid, tid->bar_tx, tid->bar_wait); } tid->bar_tx = tid->bar_wait = 0; @@ -3621,14 +3605,10 @@ ath_tx_tid_bar_tx(struct ath_softc *sc, * This is an error condition! */ if (tid->bar_wait == 0 || tid->bar_tx == 1) { - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_SW_TX_BAR, "%s: %6D: TID=%d, bar_tx=%d, bar_wait=%d: ?\n", - __func__, - tid->an->an_node.ni_macaddr, - ":", - tid->tid, - tid->bar_tx, - tid->bar_wait); + __func__, tid->an->an_node.ni_macaddr, ":", + tid->tid, tid->bar_tx, tid->bar_wait); return; } @@ -3679,11 +3659,9 @@ ath_tx_tid_bar_tx(struct ath_softc *sc, /* Failure? For now, warn loudly and continue */ ATH_TX_LOCK(sc); - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_SW_TX_BAR, "%s: %6D: TID=%d, failed to TX BAR, continue!\n", - __func__, - tid->an->an_node.ni_macaddr, - ":", + __func__, tid->an->an_node.ni_macaddr, ":", tid->tid); ath_tx_tid_bar_unsuspend(sc, tid); } @@ -3715,7 +3693,7 @@ ath_tx_tid_drain_pkt(struct ath_softc *s * This has become a non-fatal error now */ if (! bf->bf_state.bfs_addedbaw) - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_SW_TX_BAW "%s: wasn't added: seqno %d\n", __func__, SEQNO(bf->bf_state.bfs_seqno)); #endif @@ -3733,12 +3711,13 @@ ath_tx_tid_drain_print(struct ath_softc const char *pfx, struct ath_tid *tid, struct ath_buf *bf) { struct ieee80211_node *ni = &an->an_node; - struct ath_txq *txq = sc->sc_ac2q[tid->ac]; + struct ath_txq *txq; struct ieee80211_tx_ampdu *tap; + txq = sc->sc_ac2q[tid->ac]; tap = ath_tx_get_tx_tid(an, tid->tid); - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: %s: %6D: bf=%p: addbaw=%d, dobaw=%d, " "seqno=%d, retry=%d\n", __func__, @@ -3750,7 +3729,7 @@ ath_tx_tid_drain_print(struct ath_softc bf->bf_state.bfs_dobaw, SEQNO(bf->bf_state.bfs_seqno), bf->bf_state.bfs_retries); - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: %s: %6D: bf=%p: txq[%d] axq_depth=%d, axq_aggr_depth=%d\n", __func__, pfx, @@ -3760,8 +3739,7 @@ ath_tx_tid_drain_print(struct ath_softc txq->axq_qnum, txq->axq_depth, txq->axq_aggr_depth); - - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: %s: %6D: bf=%p: tid txq_depth=%d hwq_depth=%d, bar_wait=%d, " "isfiltered=%d\n", __func__, @@ -3773,7 +3751,7 @@ ath_tx_tid_drain_print(struct ath_softc tid->hwq_depth, tid->bar_wait, tid->isfiltered); - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: %s: %6D: tid %d: " "sched=%d, paused=%d, " "incomp=%d, baw_head=%d, " @@ -4091,7 +4069,7 @@ ath_tx_normal_comp(struct ath_softc *sc, */ if ((ts->ts_status & HAL_TXERR_FILT) || (ts->ts_status != 0 && atid->isfiltered)) { - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: isfiltered=%d, ts_status=%d: huh?\n", __func__, atid->isfiltered, @@ -4100,9 +4078,9 @@ ath_tx_normal_comp(struct ath_softc *sc, } #endif if (atid->isfiltered) - device_printf(sc->sc_dev, "%s: filtered?!\n", __func__); + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: filtered?!\n", __func__); if (atid->hwq_depth < 0) - device_printf(sc->sc_dev, "%s: hwq_depth < 0: %d\n", + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: hwq_depth < 0: %d\n", __func__, atid->hwq_depth); /* @@ -4213,8 +4191,8 @@ ath_tx_tid_cleanup(struct ath_softc *sc, ATH_TID_REMOVE(atid, bf, bf_list); if (bf->bf_state.bfs_dobaw) { ath_tx_update_baw(sc, an, atid, bf); - if (! bf->bf_state.bfs_addedbaw) - device_printf(sc->sc_dev, + if (!bf->bf_state.bfs_addedbaw) + DPRINTF(sc, ATH_DEBUG_SW_TX_BAW, "%s: wasn't added: seqno %d\n", __func__, SEQNO(bf->bf_state.bfs_seqno)); @@ -4275,13 +4253,13 @@ ath_tx_retry_clone(struct ath_softc *sc, nbf = ath_buf_clone(sc, bf); #if 0 - device_printf(sc->sc_dev, "%s: ATH_BUF_BUSY; cloning\n", + DPRINTF(sc, ATH_DEBUG_XMIT, "%s: ATH_BUF_BUSY; cloning\n", __func__); #endif if (nbf == NULL) { /* Failed to clone */ - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_XMIT, "%s: failed to clone a busy buffer\n", __func__); return NULL; @@ -4290,7 +4268,7 @@ ath_tx_retry_clone(struct ath_softc *sc, /* Setup the dma for the new buffer */ error = ath_tx_dmasetup(sc, nbf, nbf->bf_m); if (error != 0) { - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_XMIT, "%s: failed to setup dma for clone\n", __func__); /* @@ -4367,7 +4345,7 @@ ath_tx_aggr_retry_unaggr(struct ath_soft if (bf->bf_state.bfs_dobaw) { ath_tx_update_baw(sc, an, atid, bf); if (! bf->bf_state.bfs_addedbaw) - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_SW_TX_BAW, "%s: wasn't added: seqno %d\n", __func__, SEQNO(bf->bf_state.bfs_seqno)); } @@ -4457,8 +4435,8 @@ ath_tx_retry_subframe(struct ath_softc * "%s: max retries: seqno %d\n", __func__, SEQNO(bf->bf_state.bfs_seqno)); ath_tx_update_baw(sc, an, atid, bf); - if (! bf->bf_state.bfs_addedbaw) - device_printf(sc->sc_dev, + if (!bf->bf_state.bfs_addedbaw) + DPRINTF(sc, ATH_DEBUG_SW_TX_BAW, "%s: wasn't added: seqno %d\n", __func__, SEQNO(bf->bf_state.bfs_seqno)); bf->bf_state.bfs_dobaw = 0; @@ -4663,7 +4641,7 @@ ath_tx_aggr_comp_aggr(struct ath_softc * atid->hwq_depth--; if (atid->hwq_depth < 0) - device_printf(sc->sc_dev, "%s: hwq_depth < 0: %d\n", + DPRINTF(sc, ATH_DEBUG_SW_TX_AGGR, "%s: hwq_depth < 0: %d\n", __func__, atid->hwq_depth); /* @@ -4681,7 +4659,7 @@ ath_tx_aggr_comp_aggr(struct ath_softc * */ if (atid->cleanup_inprogress) { if (atid->isfiltered) - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_SW_TX_AGGR, "%s: isfiltered=1, normal_comp?\n", __func__); ATH_TX_UNLOCK(sc); @@ -4699,7 +4677,7 @@ ath_tx_aggr_comp_aggr(struct ath_softc * if ((ts.ts_status & HAL_TXERR_FILT) || (ts.ts_status != 0 && atid->isfiltered)) { if (fail != 0) - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_SW_TX_AGGR, "%s: isfiltered=1, fail=%d\n", __func__, fail); ath_tx_tid_filt_comp_aggr(sc, atid, bf_first, &bf_cq); @@ -4709,8 +4687,8 @@ ath_tx_aggr_comp_aggr(struct ath_softc * drops++; if (bf->bf_state.bfs_dobaw) { ath_tx_update_baw(sc, an, atid, bf); - if (! bf->bf_state.bfs_addedbaw) - device_printf(sc->sc_dev, + if (!bf->bf_state.bfs_addedbaw) + DPRINTF(sc, ATH_DEBUG_SW_TX_AGGR, "%s: wasn't added: seqno %d\n", __func__, SEQNO(bf->bf_state.bfs_seqno)); @@ -4792,7 +4770,7 @@ ath_tx_aggr_comp_aggr(struct ath_softc * #if 0 /* Occasionally, the MAC sends a tx status for the wrong TID. */ if (tid != ts.ts_tid) { - device_printf(sc->sc_dev, "%s: tid %d != hw tid %d\n", + DPRINTF(sc, ATH_DEBUG_SW_TX_AGGR, "%s: tid %d != hw tid %d\n", __func__, tid, ts.ts_tid); tx_ok = 0; } @@ -4800,7 +4778,7 @@ ath_tx_aggr_comp_aggr(struct ath_softc * /* AR5416 BA bug; this requires an interface reset */ if (isaggr && tx_ok && (! hasba)) { - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_SW_TX_AGGR, "%s: AR5416 bug: hasba=%d; txok=%d, isaggr=%d, " "seq_st=%d\n", __func__, hasba, tx_ok, isaggr, seq_st); @@ -4851,8 +4829,8 @@ ath_tx_aggr_comp_aggr(struct ath_softc * sc->sc_stats.ast_tx_aggr_ok++; ath_tx_update_baw(sc, an, atid, bf); bf->bf_state.bfs_dobaw = 0; - if (! bf->bf_state.bfs_addedbaw) - device_printf(sc->sc_dev, + if (!bf->bf_state.bfs_addedbaw) + DPRINTF(sc, ATH_DEBUG_SW_TX_AGGR, "%s: wasn't added: seqno %d\n", __func__, SEQNO(bf->bf_state.bfs_seqno)); bf->bf_next = NULL; @@ -4881,7 +4859,7 @@ ath_tx_aggr_comp_aggr(struct ath_softc * ATH_TX_UNLOCK(sc); if (nframes != nf) - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_SW_TX_AGGR, "%s: num frames seen=%d; bf nframes=%d\n", __func__, nframes, nf); @@ -4992,7 +4970,7 @@ ath_tx_aggr_comp_unaggr(struct ath_softc ATH_TX_LOCK(sc); if (tid == IEEE80211_NONQOS_TID) - device_printf(sc->sc_dev, "%s: TID=16!\n", __func__); + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: TID=16!\n", __func__); DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: bf=%p: tid=%d, hwq_depth=%d, seqno=%d\n", @@ -5001,7 +4979,7 @@ ath_tx_aggr_comp_unaggr(struct ath_softc atid->hwq_depth--; if (atid->hwq_depth < 0) - device_printf(sc->sc_dev, "%s: hwq_depth < 0: %d\n", + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: hwq_depth < 0: %d\n", __func__, atid->hwq_depth); /* @@ -5020,7 +4998,7 @@ ath_tx_aggr_comp_unaggr(struct ath_softc */ if (atid->cleanup_inprogress) { if (atid->isfiltered) - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: isfiltered=1, normal_comp?\n", __func__); ATH_TX_UNLOCK(sc); @@ -5047,10 +5025,9 @@ ath_tx_aggr_comp_unaggr(struct ath_softc int freeframe; if (fail != 0) - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: isfiltered=1, fail=%d\n", - __func__, - fail); + __func__, fail); freeframe = ath_tx_tid_filt_comp_single(sc, atid, bf); if (freeframe) { /* Remove from BAW */ @@ -5058,8 +5035,8 @@ ath_tx_aggr_comp_unaggr(struct ath_softc drops++; if (bf->bf_state.bfs_dobaw) { ath_tx_update_baw(sc, an, atid, bf); - if (! bf->bf_state.bfs_addedbaw) - device_printf(sc->sc_dev, + if (!bf->bf_state.bfs_addedbaw) + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: wasn't added: seqno %d\n", __func__, SEQNO(bf->bf_state.bfs_seqno)); } @@ -5111,8 +5088,8 @@ ath_tx_aggr_comp_unaggr(struct ath_softc if (bf->bf_state.bfs_dobaw) { ath_tx_update_baw(sc, an, atid, bf); bf->bf_state.bfs_dobaw = 0; - if (! bf->bf_state.bfs_addedbaw) - device_printf(sc->sc_dev, + if (!bf->bf_state.bfs_addedbaw) + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: wasn't added: seqno %d\n", __func__, SEQNO(bf->bf_state.bfs_seqno)); } @@ -5177,8 +5154,8 @@ ath_tx_tid_hw_queue_aggr(struct ath_soft tap = ath_tx_get_tx_tid(an, tid->tid); if (tid->tid == IEEE80211_NONQOS_TID) - device_printf(sc->sc_dev, "%s: called for TID=NONQOS_TID?\n", - __func__); + DPRINTF(sc, ATH_DEBUG_SW_TX, + "%s: called for TID=NONQOS_TID?\n", __func__); for (;;) { status = ATH_AGGR_DONE; @@ -5210,7 +5187,7 @@ ath_tx_tid_hw_queue_aggr(struct ath_soft ATH_TID_REMOVE(tid, bf, bf_list); if (bf->bf_state.bfs_nframes > 1) - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: aggr=%d, nframes=%d\n", __func__, bf->bf_state.bfs_aggr, @@ -5341,7 +5318,7 @@ ath_tx_tid_hw_queue_aggr(struct ath_soft bf->bf_comp = ath_tx_aggr_comp; if (bf->bf_state.bfs_tid == IEEE80211_NONQOS_TID) - device_printf(sc->sc_dev, "%s: TID=16?\n", __func__); + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: TID=16?\n", __func__); /* * Update leak count and frame config if were leaking frames. @@ -5399,10 +5376,10 @@ ath_tx_tid_hw_queue_norm(struct ath_soft /* Check - is AMPDU pending or running? then print out something */ if (ath_tx_ampdu_pending(sc, an, tid->tid)) - device_printf(sc->sc_dev, "%s: tid=%d, ampdu pending?\n", + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: tid=%d, ampdu pending?\n", __func__, tid->tid); if (ath_tx_ampdu_running(sc, an, tid->tid)) - device_printf(sc->sc_dev, "%s: tid=%d, ampdu running?\n", + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: tid=%d, ampdu running?\n", __func__, tid->tid); for (;;) { @@ -5426,9 +5403,9 @@ ath_tx_tid_hw_queue_norm(struct ath_soft /* Sanity check! */ if (tid->tid != bf->bf_state.bfs_tid) { - device_printf(sc->sc_dev, "%s: bfs_tid %d !=" - " tid %d\n", - __func__, bf->bf_state.bfs_tid, tid->tid); + DPRINTF(sc, ATH_DEBUG_SW_TX, "%s: bfs_tid %d !=" + " tid %d\n", __func__, bf->bf_state.bfs_tid, + tid->tid); } /* Normal completion handler */ bf->bf_comp = ath_tx_normal_comp; @@ -5900,7 +5877,7 @@ ath_bar_response(struct ieee80211_node * if (status == 0 || attempts == 50) { ATH_TX_LOCK(sc); if (atid->bar_tx == 0 || atid->bar_wait == 0) - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_SW_TX_BAR, "%s: huh? bar_tx=%d, bar_wait=%d\n", __func__, atid->bar_tx, atid->bar_wait); @@ -5986,11 +5963,9 @@ ath_tx_node_sleep(struct ath_softc *sc, ATH_TX_LOCK(sc); if (an->an_is_powersave) { - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_XMIT, "%s: %6D: node was already asleep!\n", - __func__, - an->an_node.ni_macaddr, - ":"); + __func__, an->an_node.ni_macaddr, ":"); ATH_TX_UNLOCK(sc); return; } @@ -6026,7 +6001,7 @@ ath_tx_node_wakeup(struct ath_softc *sc, /* !? */ if (an->an_is_powersave == 0) { ATH_TX_UNLOCK(sc); - device_printf(sc->sc_dev, + DPRINTF(sc, ATH_DEBUG_XMIT, "%s: an=%p: node was already awake\n", __func__, an); return; From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 01:59:08 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id E48611B0; Thu, 17 Oct 2013 01:59:08 +0000 (UTC) (envelope-from kevlo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D2C0C2933; Thu, 17 Oct 2013 01:59:08 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9H1x8jJ033826; Thu, 17 Oct 2013 01:59:08 GMT (envelope-from kevlo@svn.freebsd.org) Received: (from kevlo@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9H1x8jc033825; Thu, 17 Oct 2013 01:59:08 GMT (envelope-from kevlo@svn.freebsd.org) Message-Id: <201310170159.r9H1x8jc033825@svn.freebsd.org> From: Kevin Lo Date: Thu, 17 Oct 2013 01:59:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256659 - head/sbin/iscontrol X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 01:59:09 -0000 Author: kevlo Date: Thu Oct 17 01:59:08 2013 New Revision: 256659 URL: http://svnweb.freebsd.org/changeset/base/256659 Log: Check for EHOSTUNREACH when establishing a connection. Reviewed by: trasz Modified: head/sbin/iscontrol/fsm.c Modified: head/sbin/iscontrol/fsm.c ============================================================================== --- head/sbin/iscontrol/fsm.c Thu Oct 17 01:53:07 2013 (r256658) +++ head/sbin/iscontrol/fsm.c Thu Oct 17 01:59:08 2013 (r256659) @@ -199,6 +199,7 @@ tcpConnect(isess_t *sess) perror("connect"); switch(sv_errno) { case ECONNREFUSED: + case EHOSTUNREACH: case ENETUNREACH: case ETIMEDOUT: if((sess->flags & SESS_REDIRECT) == 0) { From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 02:02:30 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 283E9321; Thu, 17 Oct 2013 02:02:30 +0000 (UTC) (envelope-from zont@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 1559B2972; Thu, 17 Oct 2013 02:02:30 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9H22TSP036856; Thu, 17 Oct 2013 02:02:29 GMT (envelope-from zont@svn.freebsd.org) Received: (from zont@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9H22TE8036855; Thu, 17 Oct 2013 02:02:29 GMT (envelope-from zont@svn.freebsd.org) Message-Id: <201310170202.r9H22TE8036855@svn.freebsd.org> From: Andrey Zonov Date: Thu, 17 Oct 2013 02:02:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256660 - head/tools/build/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 02:02:30 -0000 Author: zont Date: Thu Oct 17 02:02:29 2013 New Revision: 256660 URL: http://svnweb.freebsd.org/changeset/base/256660 Log: Remove duplicates in ipfilter and kerberos sections Modified: head/tools/build/mk/OptionalObsoleteFiles.inc Modified: head/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- head/tools/build/mk/OptionalObsoleteFiles.inc Thu Oct 17 01:59:08 2013 (r256659) +++ head/tools/build/mk/OptionalObsoleteFiles.inc Thu Oct 17 02:02:29 2013 (r256660) @@ -2052,6 +2052,7 @@ OLD_FILES+=rescue/ping6 .if ${MK_IPFILTER} == no OLD_FILES+=etc/periodic/security/510.ipfdenied +OLD_FILES+=etc/periodic/security/610.ipf6denied OLD_FILES+=rescue/ipf OLD_FILES+=sbin/ipf OLD_FILES+=sbin/ipfs @@ -2128,8 +2129,6 @@ OLD_FILES+=usr/share/man/man8/ipfstat.8. OLD_FILES+=usr/share/man/man8/ipmon.8.gz OLD_FILES+=usr/share/man/man8/ipnat.8.gz OLD_FILES+=usr/share/man/man8/ippool.8.gz -OLD_FILES+=etc/periodic/security/510.ipfdenied -OLD_FILES+=etc/periodic/security/610.ipf6denied .endif .if ${MK_IPFW} == no @@ -2258,7 +2257,6 @@ OLD_FILES+=usr/lib/libcom_err.a OLD_FILES+=usr/lib/libcom_err.so OLD_LIBS+=usr/lib/libcom_err.so.5 OLD_FILES+=usr/lib/libcom_err_p.a -OLD_FILES+=usr/lib/libcom_err_p.a OLD_FILES+=usr/lib/libgssapi_krb5.a OLD_FILES+=usr/lib/libgssapi_krb5.so OLD_LIBS+=usr/lib/libgssapi_krb5.so.10 @@ -2637,27 +2635,16 @@ OLD_FILES+=usr/share/man/man3/hx509_veri OLD_FILES+=usr/share/man/man3/hx509_verify_signature.3.gz OLD_FILES+=usr/share/man/man3/hx509_xfree.3.gz OLD_FILES+=usr/share/man/man3/k_afs_cell_of_file.3.gz -OLD_FILES+=usr/share/man/man3/k_afs_cell_of_file.3.gz -OLD_FILES+=usr/share/man/man3/k_hasafs.3.gz OLD_FILES+=usr/share/man/man3/k_hasafs.3.gz OLD_FILES+=usr/share/man/man3/k_pioctl.3.gz -OLD_FILES+=usr/share/man/man3/k_pioctl.3.gz OLD_FILES+=usr/share/man/man3/k_setpag.3.gz -OLD_FILES+=usr/share/man/man3/k_setpag.3.gz -OLD_FILES+=usr/share/man/man3/k_unlog.3.gz OLD_FILES+=usr/share/man/man3/k_unlog.3.gz OLD_FILES+=usr/share/man/man3/kadm5_pwcheck.3.gz OLD_FILES+=usr/share/man/man3/kafs.3.gz -OLD_FILES+=usr/share/man/man3/kafs.3.gz -OLD_FILES+=usr/share/man/man3/kafs5.3.gz OLD_FILES+=usr/share/man/man3/kafs5.3.gz OLD_FILES+=usr/share/man/man3/kafs_set_verbose.3.gz -OLD_FILES+=usr/share/man/man3/kafs_set_verbose.3.gz -OLD_FILES+=usr/share/man/man3/kafs_settoken.3.gz OLD_FILES+=usr/share/man/man3/kafs_settoken.3.gz OLD_FILES+=usr/share/man/man3/kafs_settoken5.3.gz -OLD_FILES+=usr/share/man/man3/kafs_settoken5.3.gz -OLD_FILES+=usr/share/man/man3/kafs_settoken_rxkad.3.gz OLD_FILES+=usr/share/man/man3/kafs_settoken_rxkad.3.gz OLD_FILES+=usr/share/man/man3/krb5.3.gz OLD_FILES+=usr/share/man/man3/krb524_convert_creds_kdc.3.gz @@ -2680,8 +2667,6 @@ OLD_FILES+=usr/share/man/man3/krb5_addre OLD_FILES+=usr/share/man/man3/krb5_address_prefixlen_boundary.3.gz OLD_FILES+=usr/share/man/man3/krb5_address_search.3.gz OLD_FILES+=usr/share/man/man3/krb5_afslog.3.gz -OLD_FILES+=usr/share/man/man3/krb5_afslog.3.gz -OLD_FILES+=usr/share/man/man3/krb5_afslog_uid.3.gz OLD_FILES+=usr/share/man/man3/krb5_afslog_uid.3.gz OLD_FILES+=usr/share/man/man3/krb5_allow_weak_crypto.3.gz OLD_FILES+=usr/share/man/man3/krb5_aname_to_localname.3.gz @@ -2718,7 +2703,6 @@ OLD_FILES+=usr/share/man/man3/krb5_auth_ OLD_FILES+=usr/share/man/man3/krb5_auth_getkeytype.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_getlocalseqnumber.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_getremoteseqnumber.3.gz -OLD_FILES+=usr/share/man/man3/krb5_auth_getremoteseqnumber.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_setcksumtype.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_setkeytype.3.gz OLD_FILES+=usr/share/man/man3/krb5_auth_setlocalseqnumber.3.gz @@ -2865,7 +2849,6 @@ OLD_FILES+=usr/share/man/man3/krb5_free_ OLD_FILES+=usr/share/man/man3/krb5_free_addresses.3.gz OLD_FILES+=usr/share/man/man3/krb5_free_config_files.3.gz OLD_FILES+=usr/share/man/man3/krb5_free_context.3.gz -OLD_FILES+=usr/share/man/man3/krb5_free_context.3.gz OLD_FILES+=usr/share/man/man3/krb5_free_cred_contents.3.gz OLD_FILES+=usr/share/man/man3/krb5_free_creds.3.gz OLD_FILES+=usr/share/man/man3/krb5_free_creds_contents.3.gz @@ -2873,7 +2856,6 @@ OLD_FILES+=usr/share/man/man3/krb5_free_ OLD_FILES+=usr/share/man/man3/krb5_free_data_contents.3.gz OLD_FILES+=usr/share/man/man3/krb5_free_error_string.3.gz OLD_FILES+=usr/share/man/man3/krb5_free_host_realm.3.gz -OLD_FILES+=usr/share/man/man3/krb5_free_host_realm.3.gz OLD_FILES+=usr/share/man/man3/krb5_free_keyblock.3.gz OLD_FILES+=usr/share/man/man3/krb5_free_keyblock_contents.3.gz OLD_FILES+=usr/share/man/man3/krb5_free_krbhst.3.gz @@ -2953,7 +2935,6 @@ OLD_FILES+=usr/share/man/man3/krb5_keyty OLD_FILES+=usr/share/man/man3/krb5_krbhst_format_string.3.gz OLD_FILES+=usr/share/man/man3/krb5_krbhst_free.3.gz OLD_FILES+=usr/share/man/man3/krb5_krbhst_get_addrinfo.3.gz -OLD_FILES+=usr/share/man/man3/krb5_krbhst_get_addrinfo.3.gz OLD_FILES+=usr/share/man/man3/krb5_krbhst_init.3.gz OLD_FILES+=usr/share/man/man3/krb5_krbhst_next.3.gz OLD_FILES+=usr/share/man/man3/krb5_krbhst_next_as_string.3.gz @@ -2994,15 +2975,12 @@ OLD_FILES+=usr/share/man/man3/krb5_pac_g OLD_FILES+=usr/share/man/man3/krb5_pac_verify.3.gz OLD_FILES+=usr/share/man/man3/krb5_parse_address.3.gz OLD_FILES+=usr/share/man/man3/krb5_parse_name.3.gz -OLD_FILES+=usr/share/man/man3/krb5_parse_name.3.gz OLD_FILES+=usr/share/man/man3/krb5_parse_name_flags.3.gz OLD_FILES+=usr/share/man/man3/krb5_parse_nametype.3.gz OLD_FILES+=usr/share/man/man3/krb5_password_key_proc.3.gz OLD_FILES+=usr/share/man/man3/krb5_plugin_register.3.gz OLD_FILES+=usr/share/man/man3/krb5_prepend_config_files_default.3.gz OLD_FILES+=usr/share/man/man3/krb5_princ_realm.3.gz -OLD_FILES+=usr/share/man/man3/krb5_princ_realm.3.gz -OLD_FILES+=usr/share/man/man3/krb5_princ_set_realm.3.gz OLD_FILES+=usr/share/man/man3/krb5_princ_set_realm.3.gz OLD_FILES+=usr/share/man/man3/krb5_principal.3.gz OLD_FILES+=usr/share/man/man3/krb5_principal_compare.3.gz @@ -3136,8 +3114,6 @@ OLD_FILES+=usr/share/man/man3/krb5_vlog_ OLD_FILES+=usr/share/man/man3/krb5_vset_error_string.3.gz OLD_FILES+=usr/share/man/man3/krb5_vwarn.3.gz OLD_FILES+=usr/share/man/man3/krb_afslog.3.gz -OLD_FILES+=usr/share/man/man3/krb_afslog.3.gz -OLD_FILES+=usr/share/man/man3/krb_afslog_uid.3.gz OLD_FILES+=usr/share/man/man3/krb_afslog_uid.3.gz OLD_FILES+=usr/share/man/man3/ntlm_buf.3.gz OLD_FILES+=usr/share/man/man3/ntlm_core.3.gz @@ -3163,7 +3139,6 @@ OLD_FILES+=usr/share/man/man8/pam_krb5.8 OLD_FILES+=usr/share/man/man8/pam_ksu.8.gz OLD_FILES+=usr/share/man/man8/string2key.8.gz OLD_FILES+=usr/share/man/man8/verify_krb5_conf.8.gz -OLD_FILES+=usr/share/man/man8/verify_krb5_conf.8.gz .endif .if ${MK_LDNS} == no From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 03:39:21 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id B5FFC3A7; Thu, 17 Oct 2013 03:39:21 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A38A62E4C; Thu, 17 Oct 2013 03:39:21 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9H3dLfo086384; Thu, 17 Oct 2013 03:39:21 GMT (envelope-from markj@svn.freebsd.org) Received: (from markj@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9H3dL0J086383; Thu, 17 Oct 2013 03:39:21 GMT (envelope-from markj@svn.freebsd.org) Message-Id: <201310170339.r9H3dL0J086383@svn.freebsd.org> From: Mark Johnston Date: Thu, 17 Oct 2013 03:39:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256661 - head/lib/libproc X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 03:39:21 -0000 Author: markj Date: Thu Oct 17 03:39:21 2013 New Revision: 256661 URL: http://svnweb.freebsd.org/changeset/base/256661 Log: Fix the libproc build when DEBUG is defined. Modified: head/lib/libproc/_libproc.h Modified: head/lib/libproc/_libproc.h ============================================================================== --- head/lib/libproc/_libproc.h Thu Oct 17 02:02:29 2013 (r256660) +++ head/lib/libproc/_libproc.h Thu Oct 17 03:39:21 2013 (r256661) @@ -49,7 +49,7 @@ struct proc_handle { }; #ifdef DEBUG -#define DPRINTF(fmt, ...) warn(fmt, __VA_ARGS__) +#define DPRINTF(...) warn(__VA_ARGS__) #else -#define DPRINTF(fmt, ...) +#define DPRINTF(...) #endif From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 04:51:29 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 93592D73; Thu, 17 Oct 2013 04:51:29 +0000 (UTC) (envelope-from zont@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 71BC12120; Thu, 17 Oct 2013 04:51:29 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9H4pTfS025540; Thu, 17 Oct 2013 04:51:29 GMT (envelope-from zont@svn.freebsd.org) Received: (from zont@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9H4pTRD025539; Thu, 17 Oct 2013 04:51:29 GMT (envelope-from zont@svn.freebsd.org) Message-Id: <201310170451.r9H4pTRD025539@svn.freebsd.org> From: Andrey Zonov Date: Thu, 17 Oct 2013 04:51:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256662 - head/tools/build/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 04:51:29 -0000 Author: zont Date: Thu Oct 17 04:51:28 2013 New Revision: 256662 URL: http://svnweb.freebsd.org/changeset/base/256662 Log: Remove files which are in ObsoleteFiles.inc Modified: head/tools/build/mk/OptionalObsoleteFiles.inc Modified: head/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- head/tools/build/mk/OptionalObsoleteFiles.inc Thu Oct 17 03:39:21 2013 (r256661) +++ head/tools/build/mk/OptionalObsoleteFiles.inc Thu Oct 17 04:51:28 2013 (r256662) @@ -368,7 +368,6 @@ OLD_FILES+=usr/share/calendar/ru_RU.KOI8 OLD_FILES+=usr/share/calendar/ru_RU.KOI8-R/calendar.common OLD_FILES+=usr/share/calendar/ru_RU.KOI8-R/calendar.holiday OLD_FILES+=usr/share/calendar/ru_RU.KOI8-R/calendar.military -OLD_FILES+=usr/share/calendar/ru_RU.KOI8-R/calendar.msk OLD_FILES+=usr/share/calendar/ru_RU.KOI8-R/calendar.orthodox OLD_FILES+=usr/share/calendar/ru_RU.KOI8-R/calendar.pagan OLD_FILES+=usr/share/calendar/uk_UA.KOI8-U/calendar.all @@ -1305,8 +1304,6 @@ OLD_FILES+=usr/games/rot13 OLD_FILES+=usr/games/strfile OLD_FILES+=usr/games/unstr OLD_FILES+=usr/share/games/fortune/fortunes -OLD_FILES+=usr/share/games/fortune/fortunes-o -OLD_FILES+=usr/share/games/fortune/fortunes-o.dat OLD_FILES+=usr/share/games/fortune/fortunes.dat OLD_FILES+=usr/share/games/fortune/freebsd-tips OLD_FILES+=usr/share/games/fortune/freebsd-tips.dat @@ -3712,7 +3709,6 @@ OLD_FILES+=usr/lib/libfetch_p.a OLD_FILES+=usr/lib/libfl_p.a OLD_FILES+=usr/lib/libform_p.a OLD_FILES+=usr/lib/libformw_p.a -OLD_FILES+=usr/lib/libftpio_p.a OLD_FILES+=usr/lib/libgcc_p.a OLD_FILES+=usr/lib/libgeom_p.a OLD_FILES+=usr/lib/libgnuregex_p.a @@ -3735,7 +3731,6 @@ OLD_FILES+=usr/lib/libkrb5_p.a OLD_FILES+=usr/lib/libkvm_p.a OLD_FILES+=usr/lib/libl_p.a OLD_FILES+=usr/lib/libln_p.a -OLD_FILES+=usr/lib/liblwres_p.a OLD_FILES+=usr/lib/libm_p.a OLD_FILES+=usr/lib/libmagic_p.a OLD_FILES+=usr/lib/libmd_p.a @@ -3744,12 +3739,10 @@ OLD_FILES+=usr/lib/libmenu_p.a OLD_FILES+=usr/lib/libmenuw_p.a OLD_FILES+=usr/lib/libmilter_p.a OLD_FILES+=usr/lib/libmp_p.a -OLD_FILES+=usr/lib/libncp_p.a OLD_FILES+=usr/lib/libncurses_p.a OLD_FILES+=usr/lib/libncursesw_p.a OLD_FILES+=usr/lib/libnetgraph_p.a OLD_FILES+=usr/lib/libngatm_p.a -OLD_FILES+=usr/lib/libobjc_p.a OLD_FILES+=usr/lib/libopie_p.a OLD_FILES+=usr/lib/libpanel_p.a OLD_FILES+=usr/lib/libpanelw_p.a @@ -4155,7 +4148,6 @@ OLD_FILES+=etc/periodic/monthly/200.acco OLD_FILES+=usr/bin/last OLD_FILES+=usr/bin/users OLD_FILES+=usr/bin/who -OLD_FILES+=usr/bin/wtmpcvt OLD_FILES+=usr/sbin/ac OLD_FILES+=usr/sbin/lastlogin OLD_FILES+=usr/sbin/utx @@ -4163,7 +4155,6 @@ OLD_FILES+=usr/sbin/utxrm OLD_FILES+=usr/share/man/man1/last.1.gz OLD_FILES+=usr/share/man/man1/users.1.gz OLD_FILES+=usr/share/man/man1/who.1.gz -OLD_FILES+=usr/share/man/man1/wtmpcvt.1.gz OLD_FILES+=usr/share/man/man8/ac.8.gz OLD_FILES+=usr/share/man/man8/lastlogin.8.gz OLD_FILES+=usr/share/man/man8/utx.8.gz From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 04:54:47 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id E2F38EFC; Thu, 17 Oct 2013 04:54:47 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebius.int.ru (glebius.int.ru [81.19.69.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 6869C2140; Thu, 17 Oct 2013 04:54:46 +0000 (UTC) Received: from cell.glebius.int.ru (localhost [127.0.0.1]) by cell.glebius.int.ru (8.14.7/8.14.7) with ESMTP id r9H4siee081399; Thu, 17 Oct 2013 08:54:44 +0400 (MSK) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebius.int.ru (8.14.7/8.14.7/Submit) id r9H4siF0081398; Thu, 17 Oct 2013 08:54:44 +0400 (MSK) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebius.int.ru: glebius set sender to glebius@FreeBSD.org using -f Date: Thu, 17 Oct 2013 08:54:44 +0400 From: Gleb Smirnoff To: Adrian Chadd Subject: Re: svn commit: r256587 - in head/sys: kern sys Message-ID: <20131017045444.GR52889@FreeBSD.org> References: <201310160502.r9G521cA066218@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 04:54:48 -0000 On Wed, Oct 16, 2013 at 12:47:13PM -0700, Adrian Chadd wrote: A> .. so what brought this on? I can see this fixing issues for things where a A> virtual device is created with taskqueues (eg a tap device of some sort) A> that get stuffed into a vnet context. But for physical interfaces whose A> taskqueues don't have a specific vnet context and may need to set it A> per-packet, what may this break? For physical this shouldn't breab anything, you can re-set the curvnet, and then re-restore it. A> Ie - what did this fix, and why isn't it being fixed in all the various A> taskqueues in device drivers? A> A> I'd rather not see the taskqueue setup (which knows nothing about network A> contexts at all) grow this just to solve a bunch of places where the task A> in question can just correctly initialise the context itself when it's A> called. For non-physical drivers' taskqueues that fixes that taskqueue belongs to the same vnet, that was used on its creation. This is the case for pf(4), might be used somewhere else, for example tap(4) you mentioned. -- Totus tuus, Glebius. From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 05:00:18 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 3173611A; Thu, 17 Oct 2013 05:00:18 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebius.int.ru (glebius.int.ru [81.19.69.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id AED0A2166; Thu, 17 Oct 2013 05:00:17 +0000 (UTC) Received: from cell.glebius.int.ru (localhost [127.0.0.1]) by cell.glebius.int.ru (8.14.7/8.14.7) with ESMTP id r9H50Fc5081452; Thu, 17 Oct 2013 09:00:15 +0400 (MSK) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebius.int.ru (8.14.7/8.14.7/Submit) id r9H50FbU081451; Thu, 17 Oct 2013 09:00:15 +0400 (MSK) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebius.int.ru: glebius set sender to glebius@FreeBSD.org using -f Date: Thu, 17 Oct 2013 09:00:15 +0400 From: Gleb Smirnoff To: Adrian Chadd Subject: Re: svn commit: r256587 - in head/sys: kern sys Message-ID: <20131017050015.GS52889@FreeBSD.org> References: <201310160502.r9G521cA066218@svn.freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 05:00:18 -0000 On Wed, Oct 16, 2013 at 12:47:13PM -0700, Adrian Chadd wrote: A> .. so what brought this on? I can see this fixing issues for things where a A> virtual device is created with taskqueues (eg a tap device of some sort) A> that get stuffed into a vnet context. But for physical interfaces whose A> taskqueues don't have a specific vnet context and may need to set it A> per-packet, what may this break? A> A> Ie - what did this fix, and why isn't it being fixed in all the various A> taskqueues in device drivers? A> A> I'd rather not see the taskqueue setup (which knows nothing about network A> contexts at all) grow this just to solve a bunch of places where the task A> in question can just correctly initialise the context itself when it's A> called. Also, see http://lists.freebsd.org/pipermail/svn-src-head/2013-October/052359.html -- Totus tuus, Glebius. From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 05:20:41 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 67EDF500; Thu, 17 Oct 2013 05:20:41 +0000 (UTC) (envelope-from zont@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 547492234; Thu, 17 Oct 2013 05:20:41 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9H5Kfnd039698; Thu, 17 Oct 2013 05:20:41 GMT (envelope-from zont@svn.freebsd.org) Received: (from zont@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9H5Kfb1039697; Thu, 17 Oct 2013 05:20:41 GMT (envelope-from zont@svn.freebsd.org) Message-Id: <201310170520.r9H5Kfb1039697@svn.freebsd.org> From: Andrey Zonov Date: Thu, 17 Oct 2013 05:20:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256663 - head/tools/build/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 05:20:41 -0000 Author: zont Date: Thu Oct 17 05:20:40 2013 New Revision: 256663 URL: http://svnweb.freebsd.org/changeset/base/256663 Log: wlconfig exists only on i386 Modified: head/tools/build/mk/OptionalObsoleteFiles.inc Modified: head/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- head/tools/build/mk/OptionalObsoleteFiles.inc Thu Oct 17 04:51:28 2013 (r256662) +++ head/tools/build/mk/OptionalObsoleteFiles.inc Thu Oct 17 05:20:40 2013 (r256663) @@ -4168,7 +4168,9 @@ OLD_FILES+=usr/sbin/hostapd OLD_FILES+=usr/sbin/hostapd_cli OLD_FILES+=usr/sbin/ndis_events OLD_FILES+=usr/sbin/wlandebug +.if ${TARGET_ARCH} == "i386" OLD_FILES+=usr/sbin/wlconfig +.endif OLD_FILES+=usr/sbin/wpa_cli OLD_FILES+=usr/sbin/wpa_passphrase OLD_FILES+=usr/sbin/wpa_supplicant @@ -4182,7 +4184,9 @@ OLD_FILES+=usr/share/man/man5/wpa_suppli OLD_FILES+=usr/share/man/man8/ancontrol.8.gz OLD_FILES+=usr/share/man/man8/hostapd.8.gz OLD_FILES+=usr/share/man/man8/hostapd_cli.8.gz +.if ${TARGET_ARCH} == "i386" OLD_FILES+=usr/share/man/man8/i386/wlconfig.8.gz +.endif OLD_FILES+=usr/share/man/man8/ndis_events.8.gz OLD_FILES+=usr/share/man/man8/wlandebug.8.gz OLD_FILES+=usr/share/man/man8/wpa_cli.8.gz From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 05:44:16 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id F26E19D9; Thu, 17 Oct 2013 05:44:15 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id DD3D02349; Thu, 17 Oct 2013 05:44:15 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9H5iF5t052816; Thu, 17 Oct 2013 05:44:15 GMT (envelope-from jhibbits@svn.freebsd.org) Received: (from jhibbits@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9H5iFv6052815; Thu, 17 Oct 2013 05:44:15 GMT (envelope-from jhibbits@svn.freebsd.org) Message-Id: <201310170544.r9H5iFv6052815@svn.freebsd.org> From: Justin Hibbits Date: Thu, 17 Oct 2013 05:44:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r256665 - stable/9/sys/powerpc/ofw X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 05:44:16 -0000 Author: jhibbits Date: Thu Oct 17 05:44:15 2013 New Revision: 256665 URL: http://svnweb.freebsd.org/changeset/base/256665 Log: MFC r253588 Increase the size of the OFW bounce buffer to 4 pages. With this I can now run 'ofwdump -ap' on my quad G5. Modified: stable/9/sys/powerpc/ofw/ofw_real.c Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/powerpc/ofw/ofw_real.c ============================================================================== --- stable/9/sys/powerpc/ofw/ofw_real.c Thu Oct 17 05:43:28 2013 (r256664) +++ stable/9/sys/powerpc/ofw/ofw_real.c Thu Oct 17 05:44:15 2013 (r256665) @@ -211,12 +211,12 @@ ofw_real_bounce_alloc(void *junk) mtx_lock(&of_bounce_mtx); - of_bounce_virt = contigmalloc(PAGE_SIZE, M_OFWREAL, 0, 0, + of_bounce_virt = contigmalloc(4 * PAGE_SIZE, M_OFWREAL, 0, 0, ulmin(platform_real_maxaddr(), BUS_SPACE_MAXADDR_32BIT), PAGE_SIZE, - PAGE_SIZE); + 4 * PAGE_SIZE); of_bounce_phys = vtophys(of_bounce_virt); - of_bounce_size = PAGE_SIZE; + of_bounce_size = 4 * PAGE_SIZE; /* * For virtual-mode OF, direct map this physical address so that From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 05:51:54 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C1B86C22; Thu, 17 Oct 2013 05:51:54 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id AF11723B6; Thu, 17 Oct 2013 05:51:54 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9H5pstf057233; Thu, 17 Oct 2013 05:51:54 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9H5psFh057232; Thu, 17 Oct 2013 05:51:54 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <201310170551.r9H5psFh057232@svn.freebsd.org> From: Rui Paulo Date: Thu, 17 Oct 2013 05:51:54 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256666 - head/sys/dev/ath X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 05:51:54 -0000 Author: rpaulo Date: Thu Oct 17 05:51:54 2013 New Revision: 256666 URL: http://svnweb.freebsd.org/changeset/base/256666 Log: Add a missing comma. Modified: head/sys/dev/ath/if_ath_tx.c Modified: head/sys/dev/ath/if_ath_tx.c ============================================================================== --- head/sys/dev/ath/if_ath_tx.c Thu Oct 17 05:44:15 2013 (r256665) +++ head/sys/dev/ath/if_ath_tx.c Thu Oct 17 05:51:54 2013 (r256666) @@ -2980,7 +2980,7 @@ ath_tx_xmit_aggr(struct ath_softc *sc, s * be reset or the completion code will get upset with you. */ if (bf->bf_state.bfs_aggr != 0 || bf->bf_state.bfs_nframes > 1) { - DPRINTF(sc, ATH_DEBUG_SW_TX_AGGR + DPRINTF(sc, ATH_DEBUG_SW_TX_AGGR, "%s: bfs_aggr=%d, bfs_nframes=%d\n", __func__, bf->bf_state.bfs_aggr, bf->bf_state.bfs_nframes); bf->bf_state.bfs_aggr = 0; From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 06:14:33 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 4FD2C72F; Thu, 17 Oct 2013 06:14:33 +0000 (UTC) (envelope-from jhibbits@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 3CEC42532; Thu, 17 Oct 2013 06:14:33 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9H6EX3I068962; Thu, 17 Oct 2013 06:14:33 GMT (envelope-from jhibbits@svn.freebsd.org) Received: (from jhibbits@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9H6EXLU068961; Thu, 17 Oct 2013 06:14:33 GMT (envelope-from jhibbits@svn.freebsd.org) Message-Id: <201310170614.r9H6EXLU068961@svn.freebsd.org> From: Justin Hibbits Date: Thu, 17 Oct 2013 06:14:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r256667 - stable/9/sys/powerpc/ofw X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 06:14:33 -0000 Author: jhibbits Date: Thu Oct 17 06:14:32 2013 New Revision: 256667 URL: http://svnweb.freebsd.org/changeset/base/256667 Log: MFC r253979 Micro-optimize OFW syscons 8-bit blank. Modified: stable/9/sys/powerpc/ofw/ofw_syscons.c Directory Properties: stable/9/sys/ (props changed) Modified: stable/9/sys/powerpc/ofw/ofw_syscons.c ============================================================================== --- stable/9/sys/powerpc/ofw/ofw_syscons.c Thu Oct 17 05:51:54 2013 (r256666) +++ stable/9/sys/powerpc/ofw/ofw_syscons.c Thu Oct 17 06:14:32 2013 (r256667) @@ -586,14 +586,22 @@ ofwfb_blank_display8(video_adapter_t *ad { struct ofwfb_softc *sc; int i; - uint8_t *addr; + uint32_t *addr; + uint32_t color; + uint32_t end; sc = (struct ofwfb_softc *)adp; - addr = (uint8_t *) sc->sc_addr; + addr = (uint32_t *) sc->sc_addr; + end = (sc->sc_stride/4) * sc->sc_height; + + /* Splat 4 pixels at once. */ + color = (ofwfb_background(SC_NORM_ATTR) << 24) | + (ofwfb_background(SC_NORM_ATTR) << 16) | + (ofwfb_background(SC_NORM_ATTR) << 8) | + (ofwfb_background(SC_NORM_ATTR)); - /* Could be done a lot faster e.g. 32-bits, or Altivec'd */ - for (i = 0; i < sc->sc_stride*sc->sc_height; i++) - *(addr + i) = ofwfb_background(SC_NORM_ATTR); + for (i = 0; i < end; i++) + *(addr + i) = color; return (0); } From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 06:48:44 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 4F62C4D7; Thu, 17 Oct 2013 06:48:44 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 3BCB426E5; Thu, 17 Oct 2013 06:48:44 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9H6milX086772; Thu, 17 Oct 2013 06:48:44 GMT (envelope-from hrs@svn.freebsd.org) Received: (from hrs@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9H6mipU086771; Thu, 17 Oct 2013 06:48:44 GMT (envelope-from hrs@svn.freebsd.org) Message-Id: <201310170648.r9H6mipU086771@svn.freebsd.org> From: Hiroki Sato Date: Thu, 17 Oct 2013 06:48:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r256668 - stable/10/etc/rc.d X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 06:48:44 -0000 Author: hrs Date: Thu Oct 17 06:48:43 2013 New Revision: 256668 URL: http://svnweb.freebsd.org/changeset/base/256668 Log: MFC 256440, 256498: - Normalize jailname. "example.com" is converted to "example_com". - Fix a bug that some $jail_{jname}_foo variables did not work. - Fix a bug which prevented $jail_devfs_ruleset from working[1]. - Move $jail_parameters to the last of the configuraiton lines[1]. - Fix "ifname|addr" syntax support in jail_{jname}_ip. - Create /var/run/jail_{jname}.id because ezjail-admin depends on it. Reported by: jase [1] Approved by: re (gjb) Modified: stable/10/etc/rc.d/jail Directory Properties: stable/10/etc/rc.d/ (props changed) Modified: stable/10/etc/rc.d/jail ============================================================================== --- stable/10/etc/rc.d/jail Thu Oct 17 06:14:32 2013 (r256667) +++ stable/10/etc/rc.d/jail Thu Oct 17 06:48:43 2013 (r256668) @@ -22,7 +22,7 @@ status_cmd="jail_status" extra_commands="config console status" : ${jail_conf:=/etc/jail.conf} : ${jail_program:=/usr/sbin/jail} -: ${jail_consolecmd:=/bin/sh} +: ${jail_consolecmd:=/usr/bin/login -f root} : ${jail_jexec:=/usr/sbin/jexec} : ${jail_jls:=/usr/sbin/jls} @@ -94,7 +94,7 @@ extract_var() # parse_options() { - local _j + local _j _p _j=$1 _confwarn=0 @@ -166,7 +166,7 @@ parse_options() jail_handle_ips_option $_ip $_interface alias=0 while : ; do - eval _x=\"\$jail_${_jail}_ip_multi${alias}\" + eval _x=\"\$jail_${_j}_ip_multi${alias}\" [ -z "$_x" ] && break jail_handle_ips_option $_x $_interface @@ -208,6 +208,7 @@ parse_options() eval : \${jail_${_j}_devfs_enable:=${jail_devfs_enable:-NO}} if checkyesno jail_${_j}_devfs_enable; then echo " mount.devfs;" + eval _ruleset=\${jail_${_j}_devfs_ruleset:-${jail_devfs_ruleset}} case $_ruleset in "") ;; [0-9]*) echo " devfs_ruleset = \"$_ruleset\";" ;; @@ -217,7 +218,7 @@ parse_options() # mount(8) only accepts an integer. # This should accept a ruleset name. ;; - *) warn "devfs_ruleset must be integer." ;; + *) warn "devfs_ruleset must be an integer." ;; esac if [ -r $_fstab ]; then echo " mount.fstab = \"$_fstab\";" @@ -234,8 +235,6 @@ parse_options() "\"procfs ${_rootdir%/}/proc procfs rw 0 0\";" fi - echo " ${_parameters};" - eval : \${jail_${_j}_mount_enable:=${jail_mount_enable:-NO}} if checkyesno jail_${_j}_mount_enable; then echo " allow.mount;" >> $_conf @@ -243,6 +242,9 @@ parse_options() extract_var $_j set_hostname_allow allow.set_hostname YN NO extract_var $_j sysvipc_allow allow.sysvipc YN NO + for _p in $_parameters; do + echo " ${_p%\;};" + done echo "}" ) >> $_conf @@ -327,9 +329,9 @@ jail_extract_address() # jail_handle_ips_option() { - local _x _type _i _iface + local _x _type _i _defif _x=$1 - _iface=$2 + _defif=$2 if [ -z "${_x}" ]; then # No IP given. This can happen for the primary address @@ -353,7 +355,8 @@ jail_handle_ips_option() _type="" _addr="" _mask="" - jail_extract_address $_i $_iface + _iface="" + jail_extract_address $_i $_defif # make sure we got an address. case $_addr in @@ -364,10 +367,10 @@ jail_handle_ips_option() # Append address to list of addresses for the jail command. case $_type in inet) - echo " ip4.addr += \"${_addr}${_mask}\";" + echo " ip4.addr += \"${_iface}|${_addr}${_mask}\";" ;; inet6) - echo " ip6.addr += \"${_addr}${_mask}\";" + echo " ip6.addr += \"${_iface}|${_addr}${_mask}\";" need_dad_wait=1 ;; esac @@ -376,26 +379,35 @@ jail_handle_ips_option() jail_config() { + local _j + case $1 in _ALL) return ;; esac - for _jail in $@; do - if parse_options $_jail; then - echo "$_jail: parameters are in $_conf." + for _j in $@; do + _j=$(echo $_j | tr /. _) + if parse_options $_j; then + echo "$_j: parameters are in $_conf." fi done } jail_console() { + local _j _cmd + # One argument that is not _ALL. case $#:$1 in - 1:_ALL) err 3 "Specify a jail name." ;; - 1:*) ;; - *) err 3 "Specify a jail name." ;; + 0:*|1:_ALL) err 3 "Specify a jail name." ;; + 1:*) ;; + esac + _j=$(echo $1 | tr /. _) + shift + case $# in + 0) eval _cmd=\${jail_${_j}_consolecmd:-$jail_consolecmd} ;; + *) _cmd=$@ ;; esac - eval _cmd=\${jail_$1_consolecmd:-$jail_consolecmd} - $jail_jexec $1 $_cmd + $jail_jexec $_j $_cmd } jail_status() @@ -406,6 +418,8 @@ jail_status() jail_start() { + local _j _jid _jn + if [ $# = 0 ]; then return fi @@ -416,27 +430,39 @@ jail_start() command=$jail_program rc_flags=$jail_flags command_args="-f $jail_conf -c" - $command $rc_flags $command_args "*" + $jail_jls -nq | while read IN; do + _jn=$(echo $IN | tr " " "\n" | grep name=) + _jid=$(echo $IN | tr " " "\n" | grep jid=) + if $command $rc_flags $command_args ${_jn#name=}; then + echo -n " ${_jn#name=}" + echo "${_jid#jid=}" \ + > /var/run/jail_${_jn#name=}.id + fi + done echo '.' return ;; esac _tmp=`mktemp -t jail` || exit 3 - for _jail in $@; do - parse_options $_jail || continue + for _j in $@; do + _j=$(echo $_j | tr /. _) + parse_options $_j || continue eval rc_flags=\${jail_${_j}_flags:-$jail_flags} eval command=\${jail_${_j}_program:-$jail_program} if checkyesno jail_parallel_start; then - command_args="-i -f $_conf -c $_jail &" + command_args="-i -f $_conf -c $_j &" else - command_args="-i -f $_conf -c $_jail" + command_args="-i -f $_conf -c $_j" fi if $command $rc_flags $command_args \ >> $_tmp 2>&1 /var/run/jail_${_j}.id else - echo " cannot start jail \"${_hostname:-${jail}}\": " + rm -f /var/run/jail_${_j}.id + echo " cannot start jail \"${_hostname:-${_j}}\": " cat $_tmp fi rm -f $_tmp @@ -446,6 +472,8 @@ jail_start() jail_stop() { + local _j _jn + if [ $# = 0 ]; then return fi @@ -456,16 +484,29 @@ jail_stop() command=$jail_program rc_flags=$jail_flags command_args="-f $jail_conf -r" - $command $rc_flags $command_args "*" + $jail_jls -nq | while read IN; do + _jn=$(echo $IN | tr " " "\n" | grep name=) + echo -n " ${_jn#name=}" + $command $rc_flags $command_args ${_jn#name=} + if ! $jail_jls -j ${_jn#name=} > /dev/null 2>&1; then + rm -f /var/run/jail_${_jn#name=}.id + fi + done echo '.' return ;; esac - for _jail in $@; do - parse_options $_jail || continue + for _j in $@; do + _j=$(echo $_j | tr /. _) + parse_options $_j || continue + if ! $jail_jls -j $_j > /dev/null 2>&1; then + continue + fi eval command=\${jail_${_j}_program:-$jail_program} - if $command -q -f $_conf -r $_jail; then - echo -n " ${_hostname:-${_jail}}" + echo -n " ${_hostname:-${_j}}" + $command -q -f $_conf -r $_j + if ! $jail_jls -j $_j > /dev/null 2>&1; then + rm -f /var/run/jail_${_j}.id fi done echo '.' From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 07:40:22 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 44BCD400; Thu, 17 Oct 2013 07:40:22 +0000 (UTC) (envelope-from zont@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 3238929AA; Thu, 17 Oct 2013 07:40:22 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9H7eM7o015367; Thu, 17 Oct 2013 07:40:22 GMT (envelope-from zont@svn.freebsd.org) Received: (from zont@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9H7eM8g015365; Thu, 17 Oct 2013 07:40:22 GMT (envelope-from zont@svn.freebsd.org) Message-Id: <201310170740.r9H7eM8g015365@svn.freebsd.org> From: Andrey Zonov Date: Thu, 17 Oct 2013 07:40:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256669 - head/tools/build/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 07:40:22 -0000 Author: zont Date: Thu Oct 17 07:40:21 2013 New Revision: 256669 URL: http://svnweb.freebsd.org/changeset/base/256669 Log: Cleanup clang section Modified: head/tools/build/mk/OptionalObsoleteFiles.inc Modified: head/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- head/tools/build/mk/OptionalObsoleteFiles.inc Thu Oct 17 06:48:43 2013 (r256668) +++ head/tools/build/mk/OptionalObsoleteFiles.inc Thu Oct 17 07:40:21 2013 (r256669) @@ -483,90 +483,6 @@ OLD_FILES+=usr/bin/clang++ OLD_FILES+=usr/bin/clang-cpp OLD_FILES+=usr/bin/clang-tblgen OLD_FILES+=usr/bin/tblgen -OLD_FILES+=usr/include/clang/2.8/emmintrin.h -OLD_FILES+=usr/include/clang/2.8/mm_malloc.h -OLD_FILES+=usr/include/clang/2.8/mmintrin.h -OLD_FILES+=usr/include/clang/2.8/pmmintrin.h -OLD_FILES+=usr/include/clang/2.8/tmmintrin.h -OLD_FILES+=usr/include/clang/2.8/xmmintrin.h -OLD_DIRS+=usr/include/clang/2.8 -OLD_FILES+=usr/include/clang/2.9/emmintrin.h -OLD_FILES+=usr/include/clang/2.9/mm_malloc.h -OLD_FILES+=usr/include/clang/2.9/mmintrin.h -OLD_FILES+=usr/include/clang/2.9/pmmintrin.h -OLD_FILES+=usr/include/clang/2.9/tmmintrin.h -OLD_FILES+=usr/include/clang/2.9/xmmintrin.h -OLD_DIRS+=usr/include/clang/2.9 -OLD_FILES+=usr/include/clang/3.0/altivec.h -OLD_FILES+=usr/include/clang/3.0/avxintrin.h -OLD_FILES+=usr/include/clang/3.0/emmintrin.h -OLD_FILES+=usr/include/clang/3.0/immintrin.h -OLD_FILES+=usr/include/clang/3.0/mm3dnow.h -OLD_FILES+=usr/include/clang/3.0/mm_malloc.h -OLD_FILES+=usr/include/clang/3.0/mmintrin.h -OLD_FILES+=usr/include/clang/3.0/nmmintrin.h -OLD_FILES+=usr/include/clang/3.0/pmmintrin.h -OLD_FILES+=usr/include/clang/3.0/smmintrin.h -OLD_FILES+=usr/include/clang/3.0/tmmintrin.h -OLD_FILES+=usr/include/clang/3.0/wmmintrin.h -OLD_FILES+=usr/include/clang/3.0/x86intrin.h -OLD_FILES+=usr/include/clang/3.0/xmmintrin.h -OLD_DIRS+=usr/include/clang/3.0 -OLD_FILES+=usr/include/clang/3.1/altivec.h -OLD_FILES+=usr/include/clang/3.1/avx2intrin.h -OLD_FILES+=usr/include/clang/3.1/avxintrin.h -OLD_FILES+=usr/include/clang/3.1/bmi2intrin.h -OLD_FILES+=usr/include/clang/3.1/bmiintrin.h -OLD_FILES+=usr/include/clang/3.1/cpuid.h -OLD_FILES+=usr/include/clang/3.1/emmintrin.h -OLD_FILES+=usr/include/clang/3.1/fma4intrin.h -OLD_FILES+=usr/include/clang/3.1/immintrin.h -OLD_FILES+=usr/include/clang/3.1/lzcntintrin.h -OLD_FILES+=usr/include/clang/3.1/mm3dnow.h -OLD_FILES+=usr/include/clang/3.1/mm_malloc.h -OLD_FILES+=usr/include/clang/3.1/mmintrin.h -OLD_FILES+=usr/include/clang/3.1/module.map -OLD_FILES+=usr/include/clang/3.1/nmmintrin.h -OLD_FILES+=usr/include/clang/3.1/pmmintrin.h -OLD_FILES+=usr/include/clang/3.1/popcntintrin.h -OLD_FILES+=usr/include/clang/3.1/smmintrin.h -OLD_FILES+=usr/include/clang/3.1/tmmintrin.h -OLD_FILES+=usr/include/clang/3.1/unwind.h -OLD_FILES+=usr/include/clang/3.1/wmmintrin.h -OLD_FILES+=usr/include/clang/3.1/x86intrin.h -OLD_FILES+=usr/include/clang/3.1/xmmintrin.h -OLD_DIRS+=usr/include/clang/3.1 -OLD_FILES+=usr/include/clang/3.2/__wmmintrin_aes.h -OLD_FILES+=usr/include/clang/3.2/__wmmintrin_pclmul.h -OLD_FILES+=usr/include/clang/3.2/altivec.h -OLD_FILES+=usr/include/clang/3.2/ammintrin.h -OLD_FILES+=usr/include/clang/3.2/avx2intrin.h -OLD_FILES+=usr/include/clang/3.2/avxintrin.h -OLD_FILES+=usr/include/clang/3.2/bmi2intrin.h -OLD_FILES+=usr/include/clang/3.2/bmiintrin.h -OLD_FILES+=usr/include/clang/3.2/cpuid.h -OLD_FILES+=usr/include/clang/3.2/emmintrin.h -OLD_FILES+=usr/include/clang/3.2/f16cintrin.h -OLD_FILES+=usr/include/clang/3.2/fma4intrin.h -OLD_FILES+=usr/include/clang/3.2/fmaintrin.h -OLD_FILES+=usr/include/clang/3.2/immintrin.h -OLD_FILES+=usr/include/clang/3.2/lzcntintrin.h -OLD_FILES+=usr/include/clang/3.2/mm3dnow.h -OLD_FILES+=usr/include/clang/3.2/mm_malloc.h -OLD_FILES+=usr/include/clang/3.2/mmintrin.h -OLD_FILES+=usr/include/clang/3.2/module.map -OLD_FILES+=usr/include/clang/3.2/nmmintrin.h -OLD_FILES+=usr/include/clang/3.2/pmmintrin.h -OLD_FILES+=usr/include/clang/3.2/popcntintrin.h -OLD_FILES+=usr/include/clang/3.2/rtmintrin.h -OLD_FILES+=usr/include/clang/3.2/smmintrin.h -OLD_FILES+=usr/include/clang/3.2/tmmintrin.h -OLD_FILES+=usr/include/clang/3.2/unwind.h -OLD_FILES+=usr/include/clang/3.2/wmmintrin.h -OLD_FILES+=usr/include/clang/3.2/x86intrin.h -OLD_FILES+=usr/include/clang/3.2/xmmintrin.h -OLD_FILES+=usr/include/clang/3.2/xopintrin.h -OLD_DIRS+=usr/include/clang/3.2 OLD_FILES+=usr/include/clang/3.3/__wmmintrin_aes.h OLD_FILES+=usr/include/clang/3.3/__wmmintrin_pclmul.h OLD_FILES+=usr/include/clang/3.3/altivec.h From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 07:57:59 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 8DDB6862; Thu, 17 Oct 2013 07:57:59 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 6BEDD2AA1; Thu, 17 Oct 2013 07:57:59 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9H7vxCI023146; Thu, 17 Oct 2013 07:57:59 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9H7vxBM023145; Thu, 17 Oct 2013 07:57:59 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201310170757.r9H7vxBM023145@svn.freebsd.org> From: Konstantin Belousov Date: Thu, 17 Oct 2013 07:57:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256670 - head/sys/dev/random X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 07:57:59 -0000 Author: kib Date: Thu Oct 17 07:57:58 2013 New Revision: 256670 URL: http://svnweb.freebsd.org/changeset/base/256670 Log: Utilize the stronger guarantees on the call arguments from the harvester, which now always calls hwrngs with the buffer length multiple of the word size. This allows to remove the excessive memory accesses to temporary buffer when saving the entropy word. Streamline the assembly and unify it between i386 and amd64. Reviewed by: markm, des Approved by: so (des) Sponsored by: The FreeBSD Foundation MFC after: 2 weeks Modified: head/sys/dev/random/ivy.c Modified: head/sys/dev/random/ivy.c ============================================================================== --- head/sys/dev/random/ivy.c Thu Oct 17 07:40:21 2013 (r256669) +++ head/sys/dev/random/ivy.c Thu Oct 17 07:57:58 2013 (r256670) @@ -1,8 +1,12 @@ /*- + * Copyright (c) 2013 The FreeBSD Foundation * Copyright (c) 2013 David E. O'Brien * Copyright (c) 2012 Konstantin Belousov * All rights reserved. * + * Portions of this software were developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: @@ -58,26 +62,25 @@ static struct random_hardware_source ran }; static inline int -ivy_rng_store(uint64_t *tmp) +ivy_rng_store(long *buf) { #ifdef __GNUCLIKE_ASM - uint32_t count; + long tmp; + int retry; + retry = RETRY_COUNT; __asm __volatile( -#ifdef __amd64__ - "rdrand\t%%rax\n\t" - "jnc\t1f\n\t" - "movq\t%%rax,%1\n\t" - "movl\t$8,%%eax\n" -#else /* i386 */ - "rdrand\t%%eax\n\t" - "jnc\t1f\n\t" - "movl\t%%eax,%1\n\t" - "movl\t$4,%%eax\n" -#endif - "1:\n" /* %eax is cleared by processor on failure */ - : "=a" (count), "=g" (*tmp) : "a" (0) : "cc"); - return (count); + "1:\n\t" + "rdrand %2\n\t" /* read randomness into tmp */ + "jb 2f\n\t" /* CF is set on success, exit retry loop */ + "dec %0\n\t" /* otherwise, retry-- */ + "jne 1b\n\t" /* and loop if retries are not exhausted */ + "jmp 3f\n" /* failure, retry is 0, used as return value */ + "2:\n\t" + "mov %2,%1\n\t" /* *buf = tmp */ + "3:" + : "+q" (retry), "=m" (*buf), "=q" (tmp) : : "cc"); + return (retry); #else /* __GNUCLIKE_ASM */ return (0); #endif @@ -86,23 +89,13 @@ ivy_rng_store(uint64_t *tmp) static int random_ivy_read(void *buf, int c) { - uint8_t *b; - int count, ret, retry; - uint64_t tmp; - - b = buf; - for (count = c; count > 0; count -= ret) { - for (retry = 0; retry < RETRY_COUNT; retry++) { - ret = ivy_rng_store(&tmp); - if (ret != 0) - break; - } - if (ret == 0) + long *b; + int count; + + KASSERT(c % sizeof(long) == 0, ("partial read %d", c)); + for (b = buf, count = c; count > 0; count -= sizeof(long), b++) { + if (ivy_rng_store(b) == 0) break; - if (ret > count) - ret = count; - memcpy(b, &tmp, ret); - b += ret; } return (c - count); } From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 09:57:10 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 25A348C1; Thu, 17 Oct 2013 09:57:10 +0000 (UTC) (envelope-from cognet@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 13F1C220D; Thu, 17 Oct 2013 09:57:10 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9H9v9j6086143; Thu, 17 Oct 2013 09:57:09 GMT (envelope-from cognet@svn.freebsd.org) Received: (from cognet@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9H9v9js086142; Thu, 17 Oct 2013 09:57:09 GMT (envelope-from cognet@svn.freebsd.org) Message-Id: <201310170957.r9H9v9js086142@svn.freebsd.org> From: Olivier Houchard Date: Thu, 17 Oct 2013 09:57:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256672 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 09:57:10 -0000 Author: cognet Date: Thu Oct 17 09:57:09 2013 New Revision: 256672 URL: http://svnweb.freebsd.org/changeset/base/256672 Log: If we avoid to use the page at addr 0, we should adjust the size to reflect it. Modified: head/sys/arm/arm/machdep.c Modified: head/sys/arm/arm/machdep.c ============================================================================== --- head/sys/arm/arm/machdep.c Thu Oct 17 09:45:03 2013 (r256671) +++ head/sys/arm/arm/machdep.c Thu Oct 17 09:57:09 2013 (r256672) @@ -1169,11 +1169,15 @@ physmap_init(struct mem_region *availmem */ if (availmem_regions[i].mr_start > 0 || availmem_regions[i].mr_size > PAGE_SIZE) { + vm_size_t size; phys_avail[j] = availmem_regions[i].mr_start; - if (phys_avail[j] == 0) + + size = availmem_regions[i].mr_size; + if (phys_avail[j] == 0) { phys_avail[j] += PAGE_SIZE; - phys_avail[j + 1] = availmem_regions[i].mr_start + - availmem_regions[i].mr_size; + size -= PAGE_SIZE; + } + phys_avail[j + 1] = availmem_regions[i].mr_start + size; } else j -= 2; } From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 11:49:47 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 6617CDB6; Thu, 17 Oct 2013 11:49:47 +0000 (UTC) (envelope-from syrinx@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 539D92897; Thu, 17 Oct 2013 11:49:47 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9HBnlRb045908; Thu, 17 Oct 2013 11:49:47 GMT (envelope-from syrinx@svn.freebsd.org) Received: (from syrinx@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9HBnkto045903; Thu, 17 Oct 2013 11:49:46 GMT (envelope-from syrinx@svn.freebsd.org) Message-Id: <201310171149.r9HBnkto045903@svn.freebsd.org> From: Shteryana Shopova Date: Thu, 17 Oct 2013 11:49:46 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256678 - head/contrib/bsnmp/lib X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 11:49:47 -0000 Author: syrinx Date: Thu Oct 17 11:49:46 2013 New Revision: 256678 URL: http://svnweb.freebsd.org/changeset/base/256678 Log: Fix SNMP Error response PDUs and properly encode them when using v3 auth/encryption. Reported by: harti@ Modified: head/contrib/bsnmp/lib/snmp.c head/contrib/bsnmp/lib/snmp.h head/contrib/bsnmp/lib/snmpagent.c Modified: head/contrib/bsnmp/lib/snmp.c ============================================================================== --- head/contrib/bsnmp/lib/snmp.c Thu Oct 17 11:45:31 2013 (r256677) +++ head/contrib/bsnmp/lib/snmp.c Thu Oct 17 11:49:46 2013 (r256678) @@ -288,11 +288,13 @@ parse_secparams(struct asn_buf *b, struc memset(buf, 0, 256); tb.asn_ptr = buf; tb.asn_len = 256; + u_int len; - if (asn_get_octetstring(b, buf, &tb.asn_len) != ASN_ERR_OK) { + if (asn_get_octetstring(b, buf, &len) != ASN_ERR_OK) { snmp_error("cannot parse usm header"); return (ASN_ERR_FAILED); } + tb.asn_len = len; if (asn_get_sequence(&tb, &octs_len) != ASN_ERR_OK) { snmp_error("cannot decode usm header"); @@ -864,7 +866,7 @@ snmp_fix_encoding(struct asn_buf *b, str return (SNMP_CODE_FAILED); pdu->scoped_len = b->asn_ptr - pdu->scoped_ptr; - if ((code = snmp_pdu_fix_padd(b, pdu))!= ASN_ERR_OK) + if (snmp_pdu_fix_padd(b, pdu) != ASN_ERR_OK) return (SNMP_CODE_FAILED); if (pdu->security_model != SNMP_SECMODEL_USM) @@ -997,7 +999,7 @@ snmp_pdu_encode(struct snmp_pdu *pdu, st if ((err = snmp_pdu_encode_header(resp_b, pdu)) != SNMP_CODE_OK) return (err); for (idx = 0; idx < pdu->nbindings; idx++) - if ((err = snmp_binding_encode(resp_b, &pdu->bindings[idx])) + if (snmp_binding_encode(resp_b, &pdu->bindings[idx]) != ASN_ERR_OK) return (SNMP_CODE_FAILED); Modified: head/contrib/bsnmp/lib/snmp.h ============================================================================== --- head/contrib/bsnmp/lib/snmp.h Thu Oct 17 11:45:31 2013 (r256677) +++ head/contrib/bsnmp/lib/snmp.h Thu Oct 17 11:49:46 2013 (r256678) @@ -182,7 +182,7 @@ struct snmp_pdu { /* fixes for encoding */ size_t outer_len; - size_t scoped_len; + asn_len_t scoped_len; u_char *outer_ptr; u_char *digest_ptr; u_char *encrypted_ptr; Modified: head/contrib/bsnmp/lib/snmpagent.c ============================================================================== --- head/contrib/bsnmp/lib/snmpagent.c Thu Oct 17 11:45:31 2013 (r256677) +++ head/contrib/bsnmp/lib/snmpagent.c Thu Oct 17 11:49:46 2013 (r256678) @@ -166,7 +166,7 @@ find_subnode(const struct snmp_value *va } static void -snmp_pdu_create_response(struct snmp_pdu *pdu, struct snmp_pdu *resp) +snmp_pdu_create_response(const struct snmp_pdu *pdu, struct snmp_pdu *resp) { memset(resp, 0, sizeof(*resp)); strcpy(resp->community, pdu->community); @@ -952,18 +952,57 @@ enum snmp_ret snmp_make_errresp(const struct snmp_pdu *pdu, struct asn_buf *pdu_b, struct asn_buf *resp_b) { + u_char type; asn_len_t len; struct snmp_pdu resp; enum asn_err err; enum snmp_code code; - memset(&resp, 0, sizeof(resp)); + snmp_pdu_create_response(pdu, &resp); + if ((code = snmp_pdu_decode_header(pdu_b, &resp)) != SNMP_CODE_OK) return (SNMP_RET_IGN); - if (pdu_b->asn_len < len) + if (pdu->version == SNMP_V3) { + if (resp.user.priv_proto != SNMP_PRIV_NOPRIV && + (asn_get_header(pdu_b, &type, &resp.scoped_len) != ASN_ERR_OK + || type != ASN_TYPE_OCTETSTRING)) { + snmp_error("cannot decode encrypted pdu"); + return (SNMP_RET_IGN); + } + + if (asn_get_sequence(pdu_b, &len) != ASN_ERR_OK) { + snmp_error("cannot decode scoped pdu header"); + return (SNMP_RET_IGN); + } + + len = SNMP_ENGINE_ID_SIZ; + if (asn_get_octetstring(pdu_b, (u_char *)resp.context_engine, + &len) != ASN_ERR_OK) { + snmp_error("cannot decode msg context engine"); + return (SNMP_RET_IGN); + } + resp.context_engine_len = len; + len = SNMP_CONTEXT_NAME_SIZ; + if (asn_get_octetstring(pdu_b, (u_char *)resp.context_name, + &len) != ASN_ERR_OK) { + snmp_error("cannot decode msg context name"); + return (SNMP_RET_IGN); + } + resp.context_name[len] = '\0'; + } + + + if (asn_get_header(pdu_b, &type, &len) != ASN_ERR_OK) { + snmp_error("cannot get pdu header"); return (SNMP_RET_IGN); - pdu_b->asn_len = len; + } + + if ((type & ~ASN_TYPE_MASK) != + (ASN_TYPE_CONSTRUCTED | ASN_CLASS_CONTEXT)) { + snmp_error("bad pdu header tag"); + return (SNMP_RET_IGN); + } err = snmp_parse_pdus_hdr(pdu_b, &resp, &len); if (ASN_ERR_STOPPED(err)) From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 12:03:17 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id A45EA85D; Thu, 17 Oct 2013 12:03:17 +0000 (UTC) (envelope-from syrinx@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 91FBA29BB; Thu, 17 Oct 2013 12:03:17 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9HC3HO2054094; Thu, 17 Oct 2013 12:03:17 GMT (envelope-from syrinx@svn.freebsd.org) Received: (from syrinx@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9HC3HPl054093; Thu, 17 Oct 2013 12:03:17 GMT (envelope-from syrinx@svn.freebsd.org) Message-Id: <201310171203.r9HC3HPl054093@svn.freebsd.org> From: Shteryana Shopova Date: Thu, 17 Oct 2013 12:03:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256680 - head/contrib/bsnmp/lib X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 12:03:17 -0000 Author: syrinx Date: Thu Oct 17 12:03:17 2013 New Revision: 256680 URL: http://svnweb.freebsd.org/changeset/base/256680 Log: Fix the -Wconversion warnings produced when compiling the SNMP agent. Modified: head/contrib/bsnmp/lib/snmpagent.c Modified: head/contrib/bsnmp/lib/snmpagent.c ============================================================================== --- head/contrib/bsnmp/lib/snmpagent.c Thu Oct 17 11:50:47 2013 (r256679) +++ head/contrib/bsnmp/lib/snmpagent.c Thu Oct 17 12:03:17 2013 (r256680) @@ -276,7 +276,12 @@ snmp_get(struct snmp_pdu *pdu, struct as } } - return (snmp_fix_encoding(resp_b, resp)); + if (snmp_fix_encoding(resp_b, resp) != SNMP_CODE_OK) { + snmp_debug("get: failed to encode PDU"); + return (SNMP_RET_ERR); + } + + return (SNMP_RET_OK); } static struct snmp_node * @@ -438,7 +443,13 @@ snmp_getnext(struct snmp_pdu *pdu, struc return (SNMP_RET_ERR); } } - return (snmp_fix_encoding(resp_b, resp)); + + if (snmp_fix_encoding(resp_b, resp) != SNMP_CODE_OK) { + snmp_debug("getnext: failed to encode PDU"); + return (SNMP_RET_ERR); + } + + return (SNMP_RET_OK); } enum snmp_ret @@ -537,7 +548,12 @@ snmp_getbulk(struct snmp_pdu *pdu, struc } done: - return (snmp_fix_encoding(resp_b, resp)); + if (snmp_fix_encoding(resp_b, resp) != SNMP_CODE_OK) { + snmp_debug("getnext: failed to encode PDU"); + return (SNMP_RET_ERR); + } + + return (SNMP_RET_OK); } /* From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 12:19:36 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 92ACC1F3; Thu, 17 Oct 2013 12:19:36 +0000 (UTC) (envelope-from alfred@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 807B12AA8; Thu, 17 Oct 2013 12:19:36 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9HCJaMd062119; Thu, 17 Oct 2013 12:19:36 GMT (envelope-from alfred@svn.freebsd.org) Received: (from alfred@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9HCJaXx062118; Thu, 17 Oct 2013 12:19:36 GMT (envelope-from alfred@svn.freebsd.org) Message-Id: <201310171219.r9HCJaXx062118@svn.freebsd.org> From: Alfred Perlstein Date: Thu, 17 Oct 2013 12:19:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256682 - head/sys/ofed/drivers/net/mlx4 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 12:19:36 -0000 Author: alfred Date: Thu Oct 17 12:19:36 2013 New Revision: 256682 URL: http://svnweb.freebsd.org/changeset/base/256682 Log: Fix resource free. The order of releasing resources in mlxen was wrong, which caused panic on reload of the module. conf_ctx list should be released before stat_ctx list, otherwise the leafs in conf_ctx list won't be released because of the dependancy. The fix is to change the order of the releases. Submitted by: Shahar Klein (shahark at mellanox.com) Modified: head/sys/ofed/drivers/net/mlx4/en_netdev.c Modified: head/sys/ofed/drivers/net/mlx4/en_netdev.c ============================================================================== --- head/sys/ofed/drivers/net/mlx4/en_netdev.c Thu Oct 17 12:15:21 2013 (r256681) +++ head/sys/ofed/drivers/net/mlx4/en_netdev.c Thu Oct 17 12:19:36 2013 (r256682) @@ -927,9 +927,6 @@ void mlx4_en_destroy_netdev(struct net_d if (priv->allocated) mlx4_free_hwq_res(mdev->dev, &priv->res, MLX4_EN_PAGE_SIZE); - if (priv->sysctl) - sysctl_ctx_free(&priv->conf_ctx); - mutex_lock(&mdev->state_lock); mlx4_en_stop_port(dev); mutex_unlock(&mdev->state_lock); @@ -946,6 +943,9 @@ void mlx4_en_destroy_netdev(struct net_d mlx4_en_free_resources(priv); + if (priv->sysctl) + sysctl_ctx_free(&priv->conf_ctx); + mtx_destroy(&priv->stats_lock.m); mtx_destroy(&priv->vlan_lock.m); kfree(priv); From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 13:30:30 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 736576CB; Thu, 17 Oct 2013 13:30:30 +0000 (UTC) (envelope-from gavin@FreeBSD.org) Received: from mail-gw11.york.ac.uk (mail-gw11.york.ac.uk [144.32.129.150]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 37C562F8D; Thu, 17 Oct 2013 13:30:30 +0000 (UTC) Received: from ury.york.ac.uk ([144.32.64.162]:37666) by mail-gw11.york.ac.uk with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.76) (envelope-from ) id 1VWnef-0003JU-LC; Thu, 17 Oct 2013 14:30:21 +0100 Date: Thu, 17 Oct 2013 14:30:21 +0100 (BST) From: Gavin Atkinson X-X-Sender: gavin@thunderhorn.york.ac.uk To: Hiroki Sato Subject: Re: svn commit: r256256 - in head: . etc etc/defaults etc/rc.d share/man/man5 usr.sbin/jail In-Reply-To: <20131015.142229.509071744045645883.hrs@allbsd.org> Message-ID: References: <525CB6E8.9080407@wemm.org> <20131015.130325.1303921217567498427.hrs@allbsd.org> <20131015.142229.509071744045645883.hrs@allbsd.org> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Cc: svn-src-head@FreeBSD.org, remko@FreeBSD.org, src-committers@FreeBSD.org, svn-src-all@FreeBSD.org, peter@wemm.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 13:30:30 -0000 On Tue, 15 Oct 2013, Hiroki Sato wrote: > Hiroki Sato wrote > in <20131015.130325.1303921217567498427.hrs@allbsd.org>: > > hr> Peter Wemm wrote > hr> in <525CB6E8.9080407@wemm.org>: > hr> > hr> pe> Note how they're all on bge0 and the lo1|127.x is ignored. > hr> pe> > hr> pe> There's some other problems I haven't pinned down yet. Something has > hr> pe> changed radically with source address selection and some standard setups > hr> pe> from 7.x through 10.x (as of a few months ago) don't work anymore. I > hr> pe> haven't yet figured out how to do the per-jail lo1|127.x thing in the new > hr> pe> scheme even with an old rc.d/jail - anything attempting to bind to localhost > hr> pe> gets remapped to the public, fully exposed address. > hr> pe> > hr> pe> I'm still looking. > hr> > hr> Can you test the attached patch? > > Okay, I think r256498 should fix these issues. Please let me know if > you still have a problem. Just to follow up on this: r256498 does indeed seem to fix all the issues I saw. Thanks, Gavin From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 14:08:47 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 6BB30718; Thu, 17 Oct 2013 14:08:47 +0000 (UTC) (envelope-from alfred@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 582CC2331; Thu, 17 Oct 2013 14:08:47 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9HE8lEq020160; Thu, 17 Oct 2013 14:08:47 GMT (envelope-from alfred@svn.freebsd.org) Received: (from alfred@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9HE8lu4020159; Thu, 17 Oct 2013 14:08:47 GMT (envelope-from alfred@svn.freebsd.org) Message-Id: <201310171408.r9HE8lu4020159@svn.freebsd.org> From: Alfred Perlstein Date: Thu, 17 Oct 2013 14:08:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r256686 - stable/10/sys/ofed/include/linux X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 14:08:47 -0000 Author: alfred Date: Thu Oct 17 14:08:46 2013 New Revision: 256686 URL: http://svnweb.freebsd.org/changeset/base/256686 Log: Fix __free_pages() in the linux shim. __free_pages() is actaully supposed to take a "struct page *" not an address. MFC: 256546 Approved by: re Modified: stable/10/sys/ofed/include/linux/gfp.h Directory Properties: stable/10/sys/ (props changed) Modified: stable/10/sys/ofed/include/linux/gfp.h ============================================================================== --- stable/10/sys/ofed/include/linux/gfp.h Thu Oct 17 13:28:57 2013 (r256685) +++ stable/10/sys/ofed/include/linux/gfp.h Thu Oct 17 14:08:46 2013 (r256686) @@ -92,14 +92,14 @@ __free_page(struct page *m) } static inline void -__free_pages(void *p, unsigned int order) +__free_pages(struct page *m, unsigned int order) { size_t size; - if (p == 0) + if (m == NULL) return; size = PAGE_SIZE << order; - kmem_free(kmem_arena, (vm_offset_t)p, size); + kmem_free(kmem_arena, (vm_offset_t)page_address(m), size); } /* From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 14:18:12 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 4ABB0D73; Thu, 17 Oct 2013 14:18:12 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 29CAA240B; Thu, 17 Oct 2013 14:18:12 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9HEICNQ025178; Thu, 17 Oct 2013 14:18:12 GMT (envelope-from brooks@svn.freebsd.org) Received: (from brooks@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9HEIB4h025174; Thu, 17 Oct 2013 14:18:11 GMT (envelope-from brooks@svn.freebsd.org) Message-Id: <201310171418.r9HEIB4h025174@svn.freebsd.org> From: Brooks Davis Date: Thu, 17 Oct 2013 14:18:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256687 - head/contrib/mtree X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 14:18:12 -0000 Author: brooks Date: Thu Oct 17 14:18:11 2013 New Revision: 256687 URL: http://svnweb.freebsd.org/changeset/base/256687 Log: Upgrade to the latest version of mtree from NetBSD. This revision re-removes the printing of size for non-regular files, supports type-less root (.) entries as seen in a couple ports, and corrects a bug in -N that caused expanded Subversion $FreeBSD$ strings in comments to be processed as /etc/group entries. Includes one trivial portability fix (including in three files) that has been submitted upstream but not yet committed. MFC after: 3 days Modified: head/contrib/mtree/compare.c head/contrib/mtree/create.c head/contrib/mtree/getid.c head/contrib/mtree/spec.c Directory Properties: head/contrib/mtree/ (props changed) Modified: head/contrib/mtree/compare.c ============================================================================== --- head/contrib/mtree/compare.c Thu Oct 17 14:08:46 2013 (r256686) +++ head/contrib/mtree/compare.c Thu Oct 17 14:18:11 2013 (r256687) @@ -1,4 +1,4 @@ -/* $NetBSD: compare.c,v 1.55 2012/10/05 00:59:35 christos Exp $ */ +/* $NetBSD: compare.c,v 1.56 2013/09/09 23:27:43 christos Exp $ */ /*- * Copyright (c) 1989, 1993 @@ -38,7 +38,7 @@ #if 0 static char sccsid[] = "@(#)compare.c 8.1 (Berkeley) 6/6/93"; #else -__RCSID("$NetBSD: compare.c,v 1.55 2012/10/05 00:59:35 christos Exp $"); +__RCSID("$NetBSD: compare.c,v 1.56 2013/09/09 23:27:43 christos Exp $"); #endif #endif /* not lint */ @@ -47,6 +47,7 @@ __RCSID("$NetBSD: compare.c,v 1.55 2012/ #include #include +#include #include #include #include @@ -192,9 +193,9 @@ typeerr: LABEL; (s->type == F_BLOCK || s->type == F_CHAR) && s->st_rdev != p->fts_statp->st_rdev) { LABEL; - printf("%sdevice (%#llx, %#llx", - tab, (long long)s->st_rdev, - (long long)p->fts_statp->st_rdev); + printf("%sdevice (%#jx, %#jx", + tab, (uintmax_t)s->st_rdev, + (uintmax_t)p->fts_statp->st_rdev); if (uflag) { if ((unlink(p->fts_accpath) == -1) || (mknod(p->fts_accpath, @@ -283,9 +284,9 @@ typeerr: LABEL; } if (s->flags & F_SIZE && s->st_size != p->fts_statp->st_size) { LABEL; - printf("%ssize (%lld, %lld)\n", - tab, (long long)s->st_size, - (long long)p->fts_statp->st_size); + printf("%ssize (%ju, %ju)\n", + tab, (uintmax_t)s->st_size, + (uintmax_t)p->fts_statp->st_size); tab = "\t"; } /* Modified: head/contrib/mtree/create.c ============================================================================== --- head/contrib/mtree/create.c Thu Oct 17 14:08:46 2013 (r256686) +++ head/contrib/mtree/create.c Thu Oct 17 14:18:11 2013 (r256687) @@ -1,4 +1,4 @@ -/* $NetBSD: create.c,v 1.69 2013/02/03 19:15:17 christos Exp $ */ +/* $NetBSD: create.c,v 1.71 2013/10/16 17:24:20 christos Exp $ */ /*- * Copyright (c) 1989, 1993 @@ -38,7 +38,7 @@ #if 0 static char sccsid[] = "@(#)create.c 8.1 (Berkeley) 6/6/93"; #else -__RCSID("$NetBSD: create.c,v 1.69 2013/02/03 19:15:17 christos Exp $"); +__RCSID("$NetBSD: create.c,v 1.71 2013/10/16 17:24:20 christos Exp $"); #endif #endif /* not lint */ @@ -53,6 +53,7 @@ __RCSID("$NetBSD: create.c,v 1.69 2013/0 #include #include #include +#include #include #include #include @@ -216,22 +217,22 @@ statf(int indent, FTSENT *p) p->fts_statp->st_mode & MBITS); if (keys & F_DEV && (S_ISBLK(p->fts_statp->st_mode) || S_ISCHR(p->fts_statp->st_mode))) - output(indent, &offset, "device=%#llx", - (long long)p->fts_statp->st_rdev); + output(indent, &offset, "device=%#jx", + (uintmax_t)p->fts_statp->st_rdev); if (keys & F_NLINK && p->fts_statp->st_nlink != 1) output(indent, &offset, "nlink=%u", p->fts_statp->st_nlink); if (keys & F_SIZE && - (flavor != F_NETBSD6 || S_ISREG(p->fts_statp->st_mode))) - output(indent, &offset, "size=%lld", - (long long)p->fts_statp->st_size); + (flavor == F_FREEBSD9 || S_ISREG(p->fts_statp->st_mode))) + output(indent, &offset, "size=%ju", + (uintmax_t)p->fts_statp->st_size); if (keys & F_TIME) #if defined(BSD4_4) && !defined(HAVE_NBTOOL_CONFIG_H) - output(indent, &offset, "time=%ld.%09ld", - (long)p->fts_statp->st_mtimespec.tv_sec, + output(indent, &offset, "time=%jd.%09ld", + (intmax_t)p->fts_statp->st_mtimespec.tv_sec, p->fts_statp->st_mtimespec.tv_nsec); #else - output(indent, &offset, "time=%ld.%09ld", - (long)p->fts_statp->st_mtime, (long)0); + output(indent, &offset, "time=%jd.%09ld", + (intmax_t)p->fts_statp->st_mtime, (long)0); #endif if (keys & F_CKSUM && S_ISREG(p->fts_statp->st_mode)) { if ((fd = open(p->fts_accpath, O_RDONLY, 0)) < 0 || Modified: head/contrib/mtree/getid.c ============================================================================== --- head/contrib/mtree/getid.c Thu Oct 17 14:08:46 2013 (r256686) +++ head/contrib/mtree/getid.c Thu Oct 17 14:18:11 2013 (r256687) @@ -1,4 +1,4 @@ -/* $NetBSD: getid.c,v 1.7 2008/04/28 20:24:17 martin Exp $ */ +/* $NetBSD: getid.c,v 1.8 2013/10/16 17:27:42 christos Exp $ */ /* from: NetBSD: getpwent.c,v 1.48 2000/10/03 03:22:26 enami Exp */ /* from: NetBSD: getgrent.c,v 1.41 2002/01/12 23:51:30 lukem Exp */ @@ -65,7 +65,7 @@ #endif #include -__RCSID("$NetBSD: getid.c,v 1.7 2008/04/28 20:24:17 martin Exp $"); +__RCSID("$NetBSD: getid.c,v 1.8 2013/10/16 17:27:42 christos Exp $"); #include @@ -230,6 +230,9 @@ grscan(int search, gid_t gid, const char ; continue; } + /* skip comments */ + if (pwline[0] == '#') + continue; if (grmatchline(search, gid, name)) return 1; } @@ -371,6 +374,9 @@ pwscan(int search, uid_t uid, const char ; continue; } + /* skip comments */ + if (pwline[0] == '#') + continue; if (pwmatchline(search, uid, name)) return 1; } Modified: head/contrib/mtree/spec.c ============================================================================== --- head/contrib/mtree/spec.c Thu Oct 17 14:08:46 2013 (r256686) +++ head/contrib/mtree/spec.c Thu Oct 17 14:18:11 2013 (r256687) @@ -1,4 +1,4 @@ -/* $NetBSD: spec.c,v 1.85 2012/12/20 16:43:16 christos Exp $ */ +/* $NetBSD: spec.c,v 1.87 2013/10/16 17:26:14 christos Exp $ */ /*- * Copyright (c) 1989, 1993 @@ -67,7 +67,7 @@ #if 0 static char sccsid[] = "@(#)spec.c 8.2 (Berkeley) 4/28/95"; #else -__RCSID("$NetBSD: spec.c,v 1.85 2012/12/20 16:43:16 christos Exp $"); +__RCSID("$NetBSD: spec.c,v 1.87 2013/10/16 17:26:14 christos Exp $"); #endif #endif /* not lint */ @@ -80,6 +80,7 @@ __RCSID("$NetBSD: spec.c,v 1.85 2012/12/ #include #include #include +#include #include #include #include @@ -217,6 +218,12 @@ noparent: mtree_err("no parent node"); /* * empty tree */ + /* + * Allow a bare "." root node by forcing it to + * type=dir for compatibility with FreeBSD. + */ + if (strcmp(centry->name, ".") == 0 && centry->type == 0) + centry->type = F_DIR; if (strcmp(centry->name, ".") != 0 || centry->type != F_DIR) mtree_err( @@ -350,16 +357,18 @@ dump_nodes(const char *dir, NODE *root, appendfield(pathlast, "mode=%#o", cur->st_mode); if (MATCHFLAG(F_DEV) && (cur->type == F_BLOCK || cur->type == F_CHAR)) - appendfield(pathlast, "device=%#llx", (long long)cur->st_rdev); + appendfield(pathlast, "device=%#jx", + (uintmax_t)cur->st_rdev); if (MATCHFLAG(F_NLINK)) appendfield(pathlast, "nlink=%d", cur->st_nlink); if (MATCHFLAG(F_SLINK)) appendfield(pathlast, "link=%s", vispath(cur->slink)); if (MATCHFLAG(F_SIZE)) - appendfield(pathlast, "size=%lld", (long long)cur->st_size); + appendfield(pathlast, "size=%ju", + (uintmax_t)cur->st_size); if (MATCHFLAG(F_TIME)) - appendfield(pathlast, "time=%lld.%09ld", - (long long)cur->st_mtimespec.tv_sec, + appendfield(pathlast, "time=%jd.%09ld", + (intmax_t)cur->st_mtimespec.tv_sec, cur->st_mtimespec.tv_nsec); if (MATCHFLAG(F_CKSUM)) appendfield(pathlast, "cksum=%lu", cur->cksum); From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 15:14:58 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C4C82F85; Thu, 17 Oct 2013 15:14:58 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id B2FAE2907; Thu, 17 Oct 2013 15:14:58 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9HFEwYa055934; Thu, 17 Oct 2013 15:14:58 GMT (envelope-from ae@svn.freebsd.org) Received: (from ae@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9HFEw5O055933; Thu, 17 Oct 2013 15:14:58 GMT (envelope-from ae@svn.freebsd.org) Message-Id: <201310171514.r9HFEw5O055933@svn.freebsd.org> From: "Andrey V. Elsukov" Date: Thu, 17 Oct 2013 15:14:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256689 - head/sys/net X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 15:14:58 -0000 Author: ae Date: Thu Oct 17 15:14:58 2013 New Revision: 256689 URL: http://svnweb.freebsd.org/changeset/base/256689 Log: Use the same actor key for media types of the same speed. PR: 176097 MFC after: 2 weeks Modified: head/sys/net/ieee8023ad_lacp.c Modified: head/sys/net/ieee8023ad_lacp.c ============================================================================== --- head/sys/net/ieee8023ad_lacp.c Thu Oct 17 14:20:44 2013 (r256688) +++ head/sys/net/ieee8023ad_lacp.c Thu Oct 17 15:14:58 2013 (r256689) @@ -1089,8 +1089,45 @@ lacp_compose_key(struct lacp_port *lp) KASSERT(IFM_TYPE(media) == IFM_ETHER, ("invalid media type")); KASSERT((media & IFM_FDX) != 0, ("aggregating HDX interface")); - /* bit 0..4: IFM_SUBTYPE */ - key = subtype; + /* bit 0..4: IFM_SUBTYPE modulo speed */ + switch (subtype) { + case IFM_10_T: + case IFM_10_2: + case IFM_10_5: + case IFM_10_STP: + case IFM_10_FL: + key = IFM_10_T; + break; + case IFM_100_TX: + case IFM_100_FX: + case IFM_100_T4: + case IFM_100_VG: + case IFM_100_T2: + key = IFM_100_TX; + break; + case IFM_1000_SX: + case IFM_1000_LX: + case IFM_1000_CX: + case IFM_1000_T: + key = IFM_1000_SX; + break; + case IFM_10G_LR: + case IFM_10G_SR: + case IFM_10G_CX4: + case IFM_10G_TWINAX: + case IFM_10G_TWINAX_LONG: + case IFM_10G_LRM: + case IFM_10G_T: + key = IFM_10G_LR; + break; + case IFM_40G_CR4: + case IFM_40G_SR4: + case IFM_40G_LR4: + key = IFM_40G_CR4; + break; + default: + key = subtype; + } /* bit 5..14: (some bits of) if_index of lagg device */ key |= 0x7fe0 & ((sc->sc_ifp->if_index) << 5); /* bit 15: 0 */ From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 16:18:45 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 94B8790B; Thu, 17 Oct 2013 16:18:45 +0000 (UTC) (envelope-from ae@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 819F02E1A; Thu, 17 Oct 2013 16:18:45 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9HGIjST089672; Thu, 17 Oct 2013 16:18:45 GMT (envelope-from ae@svn.freebsd.org) Received: (from ae@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9HGIh5X089643; Thu, 17 Oct 2013 16:18:43 GMT (envelope-from ae@svn.freebsd.org) Message-Id: <201310171618.r9HGIh5X089643@svn.freebsd.org> From: "Andrey V. Elsukov" Date: Thu, 17 Oct 2013 16:18:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256690 - head/sys/geom/part X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 16:18:45 -0000 Author: ae Date: Thu Oct 17 16:18:43 2013 New Revision: 256690 URL: http://svnweb.freebsd.org/changeset/base/256690 Log: Add an automatic resize support to the GEOM_PART class. When parent provider has been resized, the scheme specific G_PART_RESIZE method does an update of scheme's metadata. But all changes are not saved to disk, until `gpart commit` will be called. Discussed with: trasz MFC after: 1 month Modified: head/sys/geom/part/g_part.c head/sys/geom/part/g_part_apm.c head/sys/geom/part/g_part_bsd.c head/sys/geom/part/g_part_ebr.c head/sys/geom/part/g_part_gpt.c head/sys/geom/part/g_part_mbr.c head/sys/geom/part/g_part_pc98.c head/sys/geom/part/g_part_vtoc8.c Modified: head/sys/geom/part/g_part.c ============================================================================== --- head/sys/geom/part/g_part.c Thu Oct 17 15:14:58 2013 (r256689) +++ head/sys/geom/part/g_part.c Thu Oct 17 16:18:43 2013 (r256690) @@ -132,6 +132,7 @@ static g_dumpconf_t g_part_dumpconf; static g_orphan_t g_part_orphan; static g_spoiled_t g_part_spoiled; static g_start_t g_part_start; +static g_resize_t g_part_resize; static struct g_class g_part_class = { .name = "PART", @@ -148,6 +149,7 @@ static struct g_class g_part_class = { .orphan = g_part_orphan, .spoiled = g_part_spoiled, .start = g_part_start, + .resize = g_part_resize }; DECLARE_GEOM_CLASS(g_part_class, g_part); @@ -2043,6 +2045,30 @@ g_part_dumpconf(struct sbuf *sb, const c } static void +g_part_resize(struct g_consumer *cp) +{ + struct g_part_table *table; + + G_PART_TRACE((G_T_TOPOLOGY, "%s(%s)", __func__, cp->provider->name)); + g_topology_assert(); + + table = cp->geom->softc; + if (table->gpt_opened == 0) { + if (g_access(cp, 1, 1, 1) != 0) + return; + table->gpt_opened = 1; + } + if (G_PART_RESIZE(table, NULL, NULL) == 0) + printf("GEOM_PART: %s was automatically resized\n", + cp->geom->name); + if (g_part_check_integrity(table, cp) != 0) { + g_access(cp, -1, -1, -1); + table->gpt_opened = 0; + g_part_wither(table->gpt_gp, ENXIO); + } +} + +static void g_part_orphan(struct g_consumer *cp) { struct g_provider *pp; Modified: head/sys/geom/part/g_part_apm.c ============================================================================== --- head/sys/geom/part/g_part_apm.c Thu Oct 17 15:14:58 2013 (r256689) +++ head/sys/geom/part/g_part_apm.c Thu Oct 17 16:18:43 2013 (r256690) @@ -359,6 +359,14 @@ g_part_apm_resize(struct g_part_table *b struct g_part_entry *baseentry, struct g_part_parms *gpp) { struct g_part_apm_entry *entry; + struct g_provider *pp; + + if (baseentry == NULL) { + pp = LIST_FIRST(&basetable->gpt_gp->consumer)->provider; + basetable->gpt_last = MIN(pp->mediasize / pp->sectorsize, + UINT32_MAX) - 1; + return (0); + } entry = (struct g_part_apm_entry *)baseentry; baseentry->gpe_end = baseentry->gpe_start + gpp->gpp_size - 1; Modified: head/sys/geom/part/g_part_bsd.c ============================================================================== --- head/sys/geom/part/g_part_bsd.c Thu Oct 17 15:14:58 2013 (r256689) +++ head/sys/geom/part/g_part_bsd.c Thu Oct 17 16:18:43 2013 (r256690) @@ -304,12 +304,40 @@ g_part_bsd_modify(struct g_part_table *b return (0); } +static void +bsd_set_rawsize(struct g_part_table *basetable, struct g_provider *pp) +{ + struct g_part_bsd_table *table; + struct g_part_bsd_entry *entry; + struct g_part_entry *baseentry; + uint32_t msize; + + table = (struct g_part_bsd_table *)basetable; + msize = MIN(pp->mediasize / pp->sectorsize, UINT32_MAX); + le32enc(table->bbarea + pp->sectorsize + 60, msize); /* d_secperunit */ + basetable->gpt_last = msize - 1; + LIST_FOREACH(baseentry, &basetable->gpt_entry, gpe_entry) { + if (baseentry->gpe_index != RAW_PART + 1) + continue; + baseentry->gpe_end = basetable->gpt_last; + entry = (struct g_part_bsd_entry *)baseentry; + entry->part.p_size = msize; + return; + } +} + static int g_part_bsd_resize(struct g_part_table *basetable, struct g_part_entry *baseentry, struct g_part_parms *gpp) { struct g_part_bsd_entry *entry; + struct g_provider *pp; + if (baseentry == NULL) { + pp = LIST_FIRST(&basetable->gpt_gp->consumer)->provider; + bsd_set_rawsize(basetable, pp); + return (0); + } entry = (struct g_part_bsd_entry *)baseentry; baseentry->gpe_end = baseentry->gpe_start + gpp->gpp_size - 1; entry->part.p_size = gpp->gpp_size; Modified: head/sys/geom/part/g_part_ebr.c ============================================================================== --- head/sys/geom/part/g_part_ebr.c Thu Oct 17 15:14:58 2013 (r256689) +++ head/sys/geom/part/g_part_ebr.c Thu Oct 17 16:18:43 2013 (r256690) @@ -93,6 +93,8 @@ static int g_part_ebr_setunset(struct g_ static const char *g_part_ebr_type(struct g_part_table *, struct g_part_entry *, char *, size_t); static int g_part_ebr_write(struct g_part_table *, struct g_consumer *); +static int g_part_ebr_resize(struct g_part_table *, struct g_part_entry *, + struct g_part_parms *); static kobj_method_t g_part_ebr_methods[] = { KOBJMETHOD(g_part_add, g_part_ebr_add), @@ -108,6 +110,7 @@ static kobj_method_t g_part_ebr_methods[ KOBJMETHOD(g_part_precheck, g_part_ebr_precheck), KOBJMETHOD(g_part_probe, g_part_ebr_probe), KOBJMETHOD(g_part_read, g_part_ebr_read), + KOBJMETHOD(g_part_resize, g_part_ebr_resize), KOBJMETHOD(g_part_setunset, g_part_ebr_setunset), KOBJMETHOD(g_part_type, g_part_ebr_type), KOBJMETHOD(g_part_write, g_part_ebr_write), @@ -377,6 +380,20 @@ g_part_ebr_modify(struct g_part_table *b return (0); } +static int +g_part_ebr_resize(struct g_part_table *basetable, + struct g_part_entry *baseentry, struct g_part_parms *gpp) +{ + struct g_provider *pp; + + if (baseentry != NULL) + return (EOPNOTSUPP); + pp = LIST_FIRST(&basetable->gpt_gp->consumer)->provider; + basetable->gpt_last = MIN(pp->mediasize / pp->sectorsize, + UINT32_MAX) - 1; + return (0); +} + static const char * g_part_ebr_name(struct g_part_table *table, struct g_part_entry *entry, char *buf, size_t bufsz) Modified: head/sys/geom/part/g_part_gpt.c ============================================================================== --- head/sys/geom/part/g_part_gpt.c Thu Oct 17 15:14:58 2013 (r256689) +++ head/sys/geom/part/g_part_gpt.c Thu Oct 17 16:18:43 2013 (r256690) @@ -731,8 +731,11 @@ g_part_gpt_resize(struct g_part_table *b struct g_part_entry *baseentry, struct g_part_parms *gpp) { struct g_part_gpt_entry *entry; - entry = (struct g_part_gpt_entry *)baseentry; + if (baseentry == NULL) + return (EOPNOTSUPP); + + entry = (struct g_part_gpt_entry *)baseentry; baseentry->gpe_end = baseentry->gpe_start + gpp->gpp_size - 1; entry->ent.ent_lba_end = baseentry->gpe_end; Modified: head/sys/geom/part/g_part_mbr.c ============================================================================== --- head/sys/geom/part/g_part_mbr.c Thu Oct 17 15:14:58 2013 (r256689) +++ head/sys/geom/part/g_part_mbr.c Thu Oct 17 16:18:43 2013 (r256690) @@ -336,8 +336,15 @@ g_part_mbr_resize(struct g_part_table *b struct g_part_entry *baseentry, struct g_part_parms *gpp) { struct g_part_mbr_entry *entry; + struct g_provider *pp; uint32_t size, sectors; + if (baseentry == NULL) { + pp = LIST_FIRST(&basetable->gpt_gp->consumer)->provider; + basetable->gpt_last = MIN(pp->mediasize / pp->sectorsize, + UINT32_MAX) - 1; + return (0); + } sectors = basetable->gpt_sectors; size = gpp->gpp_size; Modified: head/sys/geom/part/g_part_pc98.c ============================================================================== --- head/sys/geom/part/g_part_pc98.c Thu Oct 17 15:14:58 2013 (r256689) +++ head/sys/geom/part/g_part_pc98.c Thu Oct 17 16:18:43 2013 (r256690) @@ -343,8 +343,15 @@ g_part_pc98_resize(struct g_part_table * struct g_part_entry *baseentry, struct g_part_parms *gpp) { struct g_part_pc98_entry *entry; + struct g_provider *pp; uint32_t size, cyl; + if (baseentry == NULL) { + pp = LIST_FIRST(&basetable->gpt_gp->consumer)->provider; + basetable->gpt_last = MIN(pp->mediasize / SECSIZE, + UINT32_MAX) - 1; + return (0); + } cyl = basetable->gpt_heads * basetable->gpt_sectors; size = gpp->gpp_size; Modified: head/sys/geom/part/g_part_vtoc8.c ============================================================================== --- head/sys/geom/part/g_part_vtoc8.c Thu Oct 17 15:14:58 2013 (r256689) +++ head/sys/geom/part/g_part_vtoc8.c Thu Oct 17 16:18:43 2013 (r256690) @@ -306,12 +306,53 @@ g_part_vtoc8_modify(struct g_part_table } static int +vtoc8_set_rawsize(struct g_part_table *basetable, struct g_provider *pp) +{ + struct g_part_vtoc8_table *table; + struct g_part_entry *baseentry; + off_t msize; + uint32_t acyls, ncyls, pcyls; + + table = (struct g_part_vtoc8_table *)basetable; + msize = MIN(pp->mediasize / pp->sectorsize, UINT32_MAX); + pcyls = msize / table->secpercyl; + if (pcyls > UINT16_MAX) + return (ERANGE); + acyls = be16dec(&table->vtoc.altcyls); + ncyls = pcyls - acyls; + msize = ncyls * table->secpercyl; + basetable->gpt_last = msize - 1; + + bzero(table->vtoc.ascii, sizeof(table->vtoc.ascii)); + sprintf(table->vtoc.ascii, "FreeBSD%lldM cyl %u alt %u hd %u sec %u", + (long long)(msize / 2048), ncyls, acyls, basetable->gpt_heads, + basetable->gpt_sectors); + be16enc(&table->vtoc.physcyls, pcyls); + be16enc(&table->vtoc.ncyls, ncyls); + be32enc(&table->vtoc.map[VTOC_RAW_PART].nblks, msize); + if (be32dec(&table->vtoc.sanity) == VTOC_SANITY) + be16enc(&table->vtoc.part[VTOC_RAW_PART].tag, VTOC_TAG_BACKUP); + LIST_FOREACH(baseentry, &basetable->gpt_entry, gpe_entry) { + if (baseentry->gpe_index == VTOC_RAW_PART + 1) { + baseentry->gpe_end = basetable->gpt_last; + return (0); + } + } + return (ENXIO); +} + +static int g_part_vtoc8_resize(struct g_part_table *basetable, struct g_part_entry *entry, struct g_part_parms *gpp) { struct g_part_vtoc8_table *table; + struct g_provider *pp; uint64_t size; + if (entry == NULL) { + pp = LIST_FIRST(&basetable->gpt_gp->consumer)->provider; + return (vtoc8_set_rawsize(basetable, pp)); + } table = (struct g_part_vtoc8_table *)basetable; size = gpp->gpp_size; if (size % table->secpercyl) From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 17:11:16 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 7E224721; Thu, 17 Oct 2013 17:11:16 +0000 (UTC) (envelope-from cognet@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 6BDCF2250; Thu, 17 Oct 2013 17:11:16 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9HHBG61018683; Thu, 17 Oct 2013 17:11:16 GMT (envelope-from cognet@svn.freebsd.org) Received: (from cognet@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9HHBG0Z018682; Thu, 17 Oct 2013 17:11:16 GMT (envelope-from cognet@svn.freebsd.org) Message-Id: <201310171711.r9HHBG0Z018682@svn.freebsd.org> From: Olivier Houchard Date: Thu, 17 Oct 2013 17:11:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256691 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 17:11:16 -0000 Author: cognet Date: Thu Oct 17 17:11:15 2013 New Revision: 256691 URL: http://svnweb.freebsd.org/changeset/base/256691 Log: Make casuword() atomic for armv6 Modified: head/sys/arm/arm/fusu.S Modified: head/sys/arm/arm/fusu.S ============================================================================== --- head/sys/arm/arm/fusu.S Thu Oct 17 16:18:43 2013 (r256690) +++ head/sys/arm/arm/fusu.S Thu Oct 17 17:11:15 2013 (r256691) @@ -67,11 +67,27 @@ ENTRY(casuword) stmfd sp!, {r4, r5} adr r4, .Lcasuwordfault str r4, [r3, #PCB_ONFAULT] +#ifdef _ARM_ARCH_6 +1: + cmp r0, #KERNBASE + mvnge r0, #0 + bge 2f + + ldrex r5, [r0] + cmp r5, r1 + movne r0, r5 + bne 2f + strex r5, r2, [r0] + cmp r5, #0 + bne 1b +#else ldrt r5, [r0] cmp r5, r1 movne r0, r5 streqt r2, [r0] +#endif moveq r0, r1 +2: ldmfd sp!, {r4, r5} mov r1, #0x00000000 str r1, [r3, #PCB_ONFAULT] From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 17:25:01 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 219891F6; Thu, 17 Oct 2013 17:25:01 +0000 (UTC) (envelope-from emaste@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id EA2872364; Thu, 17 Oct 2013 17:25:00 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9HHP0C8024986; Thu, 17 Oct 2013 17:25:00 GMT (envelope-from emaste@svn.freebsd.org) Received: (from emaste@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9HHP05j024985; Thu, 17 Oct 2013 17:25:00 GMT (envelope-from emaste@svn.freebsd.org) Message-Id: <201310171725.r9HHP05j024985@svn.freebsd.org> From: Ed Maste Date: Thu, 17 Oct 2013 17:25:00 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256692 - head/contrib/binutils/gas X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 17:25:01 -0000 Author: emaste Date: Thu Oct 17 17:25:00 2013 New Revision: 256692 URL: http://svnweb.freebsd.org/changeset/base/256692 Log: Fix .debug_line prologue header length calculation for 64-bit DWARF The header_length field is the number of bytes following the field to the first byte of the line number program. The hard-coded constants previously here (4 + 2 + 4) were correct only for 32-bit DWARF. Sponsored by: DARPA, AFRL Modified: head/contrib/binutils/gas/dwarf2dbg.c Modified: head/contrib/binutils/gas/dwarf2dbg.c ============================================================================== --- head/contrib/binutils/gas/dwarf2dbg.c Thu Oct 17 17:11:15 2013 (r256691) +++ head/contrib/binutils/gas/dwarf2dbg.c Thu Oct 17 17:25:00 2013 (r256692) @@ -1271,6 +1271,7 @@ out_debug_line (segT line_seg) symbolS *line_end; struct line_seg *s; enum dwarf2_format d2f; + int sizeof_initial_length; int sizeof_offset; subseg_set (line_seg, 0); @@ -1287,27 +1288,24 @@ out_debug_line (segT line_seg) d2f = DWARF2_FORMAT (); if (d2f == dwarf2_format_32bit) { - expr.X_add_number = -4; - emit_expr (&expr, 4); - sizeof_offset = 4; + sizeof_initial_length = sizeof_offset = 4; } else if (d2f == dwarf2_format_64bit) { - expr.X_add_number = -12; - out_four (-1); - emit_expr (&expr, 8); + sizeof_initial_length = 12; sizeof_offset = 8; + out_four (-1); } else if (d2f == dwarf2_format_64bit_irix) { - expr.X_add_number = -8; - emit_expr (&expr, 8); - sizeof_offset = 8; + sizeof_initial_length = sizeof_offset = 8; } else { as_fatal (_("internal error: unknown dwarf2 format")); } + expr.X_add_number = -sizeof_initial_length; + emit_expr (&expr, sizeof_offset); /* Version. */ out_two (2); @@ -1316,7 +1314,7 @@ out_debug_line (segT line_seg) expr.X_op = O_subtract; expr.X_add_symbol = prologue_end; expr.X_op_symbol = line_start; - expr.X_add_number = - (4 + 2 + 4); + expr.X_add_number = - (sizeof_initial_length + 2 + sizeof_offset); emit_expr (&expr, sizeof_offset); /* Parameters of the state machine. */ From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 18:37:25 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id A1FD6C48; Thu, 17 Oct 2013 18:37:25 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 807B728C9; Thu, 17 Oct 2013 18:37:25 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9HIbPFh062955; Thu, 17 Oct 2013 18:37:25 GMT (envelope-from np@svn.freebsd.org) Received: (from np@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9HIbPWp062953; Thu, 17 Oct 2013 18:37:25 GMT (envelope-from np@svn.freebsd.org) Message-Id: <201310171837.r9HIbPWp062953@svn.freebsd.org> From: Navdeep Parhar Date: Thu, 17 Oct 2013 18:37:25 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256694 - in head/sys: dev/cxgbe/iw_cxgbe modules/cxgbe modules/cxgbe/iw_cxgbe X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 18:37:25 -0000 Author: np Date: Thu Oct 17 18:37:25 2013 New Revision: 256694 URL: http://svnweb.freebsd.org/changeset/base/256694 Log: iw_cxgbe: iWARP driver for Chelsio T4/T5 chips. This is a straight port of the iw_cxgb4 found in OFED distributions. Obtained from: Chelsio Added: head/sys/dev/cxgbe/iw_cxgbe/ head/sys/dev/cxgbe/iw_cxgbe/cm.c (contents, props changed) head/sys/dev/cxgbe/iw_cxgbe/cq.c (contents, props changed) head/sys/dev/cxgbe/iw_cxgbe/device.c (contents, props changed) head/sys/dev/cxgbe/iw_cxgbe/ev.c (contents, props changed) head/sys/dev/cxgbe/iw_cxgbe/id_table.c (contents, props changed) head/sys/dev/cxgbe/iw_cxgbe/iw_cxgbe.h (contents, props changed) head/sys/dev/cxgbe/iw_cxgbe/mem.c (contents, props changed) head/sys/dev/cxgbe/iw_cxgbe/provider.c (contents, props changed) head/sys/dev/cxgbe/iw_cxgbe/qp.c (contents, props changed) head/sys/dev/cxgbe/iw_cxgbe/resource.c (contents, props changed) head/sys/dev/cxgbe/iw_cxgbe/t4.h (contents, props changed) head/sys/dev/cxgbe/iw_cxgbe/user.h (contents, props changed) head/sys/modules/cxgbe/iw_cxgbe/ head/sys/modules/cxgbe/iw_cxgbe/Makefile (contents, props changed) Modified: head/sys/modules/cxgbe/Makefile Added: head/sys/dev/cxgbe/iw_cxgbe/cm.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/cxgbe/iw_cxgbe/cm.c Thu Oct 17 18:37:25 2013 (r256694) @@ -0,0 +1,2458 @@ +/* + * Copyright (c) 2009-2013 Chelsio, Inc. All rights reserved. + * + * This software is available to you under a choice of one of two + * licenses. You may choose to be licensed under the terms of the GNU + * General Public License (GPL) Version 2, available from the file + * COPYING in the main directory of this source tree, or the + * OpenIB.org BSD license below: + * + * Redistribution and use in source and binary forms, with or + * without modification, are permitted provided that the following + * conditions are met: + * + * - Redistributions of source code must retain the above + * copyright notice, this list of conditions and the following + * disclaimer. + * + * - 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. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +#include +__FBSDID("$FreeBSD$"); + +#include "opt_inet.h" + +#ifdef TCP_OFFLOAD +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include + +struct sge_iq; +struct rss_header; +#include +#include "offload.h" +#include "tom/t4_tom.h" + +#define TOEPCB(so) ((struct toepcb *)(so_sototcpcb((so))->t_toe)) + +#include "iw_cxgbe.h" +#include +#include +#include +#include +#include +#include + +static spinlock_t req_lock; +static TAILQ_HEAD(c4iw_ep_list, c4iw_ep_common) req_list; +static struct work_struct c4iw_task; +static struct workqueue_struct *c4iw_taskq; +static LIST_HEAD(timeout_list); +static spinlock_t timeout_lock; + +static void process_req(struct work_struct *ctx); +static void start_ep_timer(struct c4iw_ep *ep); +static void stop_ep_timer(struct c4iw_ep *ep); +static int set_tcpinfo(struct c4iw_ep *ep); +static enum c4iw_ep_state state_read(struct c4iw_ep_common *epc); +static void __state_set(struct c4iw_ep_common *epc, enum c4iw_ep_state tostate); +static void state_set(struct c4iw_ep_common *epc, enum c4iw_ep_state tostate); +static void *alloc_ep(int size, gfp_t flags); +void __free_ep(struct c4iw_ep_common *epc); +static struct rtentry * find_route(__be32 local_ip, __be32 peer_ip, __be16 local_port, + __be16 peer_port, u8 tos); +static int close_socket(struct c4iw_ep_common *epc, int close); +static int shutdown_socket(struct c4iw_ep_common *epc); +static void abort_socket(struct c4iw_ep *ep); +static void send_mpa_req(struct c4iw_ep *ep); +static int send_mpa_reject(struct c4iw_ep *ep, const void *pdata, u8 plen); +static int send_mpa_reply(struct c4iw_ep *ep, const void *pdata, u8 plen); +static void close_complete_upcall(struct c4iw_ep *ep); +static int abort_connection(struct c4iw_ep *ep); +static void peer_close_upcall(struct c4iw_ep *ep); +static void peer_abort_upcall(struct c4iw_ep *ep); +static void connect_reply_upcall(struct c4iw_ep *ep, int status); +static void connect_request_upcall(struct c4iw_ep *ep); +static void established_upcall(struct c4iw_ep *ep); +static void process_mpa_reply(struct c4iw_ep *ep); +static void process_mpa_request(struct c4iw_ep *ep); +static void process_peer_close(struct c4iw_ep *ep); +static void process_conn_error(struct c4iw_ep *ep); +static void process_close_complete(struct c4iw_ep *ep); +static void ep_timeout(unsigned long arg); +static void init_sock(struct c4iw_ep_common *epc); +static void process_data(struct c4iw_ep *ep); +static void process_connected(struct c4iw_ep *ep); +static struct socket * dequeue_socket(struct socket *head, struct sockaddr_in **remote, struct c4iw_ep *child_ep); +static void process_newconn(struct c4iw_ep *parent_ep); +static int c4iw_so_upcall(struct socket *so, void *arg, int waitflag); +static void process_socket_event(struct c4iw_ep *ep); +static void release_ep_resources(struct c4iw_ep *ep); + +#define START_EP_TIMER(ep) \ + do { \ + CTR3(KTR_IW_CXGBE, "start_ep_timer (%s:%d) ep %p", \ + __func__, __LINE__, (ep)); \ + start_ep_timer(ep); \ + } while (0) + +#define STOP_EP_TIMER(ep) \ + do { \ + CTR3(KTR_IW_CXGBE, "stop_ep_timer (%s:%d) ep %p", \ + __func__, __LINE__, (ep)); \ + stop_ep_timer(ep); \ + } while (0) + +#ifdef KTR +static char *states[] = { + "idle", + "listen", + "connecting", + "mpa_wait_req", + "mpa_req_sent", + "mpa_req_rcvd", + "mpa_rep_sent", + "fpdu_mode", + "aborting", + "closing", + "moribund", + "dead", + NULL, +}; +#endif + +static void +process_req(struct work_struct *ctx) +{ + struct c4iw_ep_common *epc; + + spin_lock(&req_lock); + while (!TAILQ_EMPTY(&req_list)) { + epc = TAILQ_FIRST(&req_list); + TAILQ_REMOVE(&req_list, epc, entry); + epc->entry.tqe_prev = NULL; + spin_unlock(&req_lock); + if (epc->so) + process_socket_event((struct c4iw_ep *)epc); + c4iw_put_ep(epc); + spin_lock(&req_lock); + } + spin_unlock(&req_lock); +} + +/* + * XXX: doesn't belong here in the iWARP driver. + * XXX: assumes that the connection was offloaded by cxgbe/t4_tom if TF_TOE is + * set. Is this a valid assumption for active open? + */ +static int +set_tcpinfo(struct c4iw_ep *ep) +{ + struct socket *so = ep->com.so; + struct inpcb *inp = sotoinpcb(so); + struct tcpcb *tp; + struct toepcb *toep; + int rc = 0; + + INP_WLOCK(inp); + tp = intotcpcb(inp); + if ((tp->t_flags & TF_TOE) == 0) { + rc = EINVAL; + log(LOG_ERR, "%s: connection not offloaded (so %p, ep %p)\n", + __func__, so, ep); + goto done; + } + toep = TOEPCB(so); + + ep->hwtid = toep->tid; + ep->snd_seq = tp->snd_nxt; + ep->rcv_seq = tp->rcv_nxt; + ep->emss = max(tp->t_maxseg, 128); +done: + INP_WUNLOCK(inp); + return (rc); + +} + +static struct rtentry * +find_route(__be32 local_ip, __be32 peer_ip, __be16 local_port, + __be16 peer_port, u8 tos) +{ + struct route iproute; + struct sockaddr_in *dst = (struct sockaddr_in *)&iproute.ro_dst; + + CTR5(KTR_IW_CXGBE, "%s:frtB %x, %x, %d, %d", __func__, local_ip, + peer_ip, ntohs(local_port), ntohs(peer_port)); + bzero(&iproute, sizeof iproute); + dst->sin_family = AF_INET; + dst->sin_len = sizeof *dst; + dst->sin_addr.s_addr = peer_ip; + + rtalloc(&iproute); + CTR2(KTR_IW_CXGBE, "%s:frtE %p", __func__, (uint64_t)iproute.ro_rt); + return iproute.ro_rt; +} + +static int +close_socket(struct c4iw_ep_common *epc, int close) +{ + struct socket *so = epc->so; + int rc; + + CTR4(KTR_IW_CXGBE, "%s: so %p, ep %p, state %s", __func__, epc, so, + states[epc->state]); + + SOCK_LOCK(so); + soupcall_clear(so, SO_RCV); + SOCK_UNLOCK(so); + + if (close) + rc = soclose(so); + else + rc = soshutdown(so, SHUT_WR | SHUT_RD); + epc->so = NULL; + + return (rc); +} + +static int +shutdown_socket(struct c4iw_ep_common *epc) +{ + + CTR4(KTR_IW_CXGBE, "%s: so %p, ep %p, state %s", __func__, epc->so, epc, + states[epc->state]); + + return (soshutdown(epc->so, SHUT_WR)); +} + +static void +abort_socket(struct c4iw_ep *ep) +{ + struct sockopt sopt; + int rc; + struct linger l; + + CTR4(KTR_IW_CXGBE, "%s ep %p so %p state %s", __func__, ep, ep->com.so, + states[ep->com.state]); + + l.l_onoff = 1; + l.l_linger = 0; + + /* linger_time of 0 forces RST to be sent */ + sopt.sopt_dir = SOPT_SET; + sopt.sopt_level = SOL_SOCKET; + sopt.sopt_name = SO_LINGER; + sopt.sopt_val = (caddr_t)&l; + sopt.sopt_valsize = sizeof l; + sopt.sopt_td = NULL; + rc = sosetopt(ep->com.so, &sopt); + if (rc) { + log(LOG_ERR, "%s: can't set linger to 0, no RST! err %d\n", + __func__, rc); + } +} + +static void +process_peer_close(struct c4iw_ep *ep) +{ + struct c4iw_qp_attributes attrs; + int disconnect = 1; + int release = 0; + + CTR4(KTR_IW_CXGBE, "%s:ppcB ep %p so %p state %s", __func__, ep, + ep->com.so, states[ep->com.state]); + + mutex_lock(&ep->com.mutex); + switch (ep->com.state) { + + case MPA_REQ_WAIT: + CTR2(KTR_IW_CXGBE, "%s:ppc1 %p MPA_REQ_WAIT CLOSING", + __func__, ep); + __state_set(&ep->com, CLOSING); + break; + + case MPA_REQ_SENT: + CTR2(KTR_IW_CXGBE, "%s:ppc2 %p MPA_REQ_SENT CLOSING", + __func__, ep); + __state_set(&ep->com, DEAD); + connect_reply_upcall(ep, -ECONNABORTED); + + disconnect = 0; + STOP_EP_TIMER(ep); + close_socket(&ep->com, 0); + ep->com.cm_id->rem_ref(ep->com.cm_id); + ep->com.cm_id = NULL; + ep->com.qp = NULL; + release = 1; + break; + + case MPA_REQ_RCVD: + + /* + * We're gonna mark this puppy DEAD, but keep + * the reference on it until the ULP accepts or + * rejects the CR. + */ + CTR2(KTR_IW_CXGBE, "%s:ppc3 %p MPA_REQ_RCVD CLOSING", + __func__, ep); + __state_set(&ep->com, CLOSING); + c4iw_get_ep(&ep->com); + break; + + case MPA_REP_SENT: + CTR2(KTR_IW_CXGBE, "%s:ppc4 %p MPA_REP_SENT CLOSING", + __func__, ep); + __state_set(&ep->com, CLOSING); + break; + + case FPDU_MODE: + CTR2(KTR_IW_CXGBE, "%s:ppc5 %p FPDU_MODE CLOSING", + __func__, ep); + START_EP_TIMER(ep); + __state_set(&ep->com, CLOSING); + attrs.next_state = C4IW_QP_STATE_CLOSING; + c4iw_modify_qp(ep->com.dev, ep->com.qp, + C4IW_QP_ATTR_NEXT_STATE, &attrs, 1); + peer_close_upcall(ep); + break; + + case ABORTING: + CTR2(KTR_IW_CXGBE, "%s:ppc6 %p ABORTING (disconn)", + __func__, ep); + disconnect = 0; + break; + + case CLOSING: + CTR2(KTR_IW_CXGBE, "%s:ppc7 %p CLOSING MORIBUND", + __func__, ep); + __state_set(&ep->com, MORIBUND); + disconnect = 0; + break; + + case MORIBUND: + CTR2(KTR_IW_CXGBE, "%s:ppc8 %p MORIBUND DEAD", __func__, + ep); + STOP_EP_TIMER(ep); + if (ep->com.cm_id && ep->com.qp) { + attrs.next_state = C4IW_QP_STATE_IDLE; + c4iw_modify_qp(ep->com.qp->rhp, ep->com.qp, + C4IW_QP_ATTR_NEXT_STATE, &attrs, 1); + } + close_socket(&ep->com, 0); + close_complete_upcall(ep); + __state_set(&ep->com, DEAD); + release = 1; + disconnect = 0; + break; + + case DEAD: + CTR2(KTR_IW_CXGBE, "%s:ppc9 %p DEAD (disconn)", + __func__, ep); + disconnect = 0; + break; + + default: + panic("%s: ep %p state %d", __func__, ep, + ep->com.state); + break; + } + + mutex_unlock(&ep->com.mutex); + + if (disconnect) { + + CTR2(KTR_IW_CXGBE, "%s:ppca %p", __func__, ep); + c4iw_ep_disconnect(ep, 0, M_NOWAIT); + } + if (release) { + + CTR2(KTR_IW_CXGBE, "%s:ppcb %p", __func__, ep); + c4iw_put_ep(&ep->com); + } + CTR2(KTR_IW_CXGBE, "%s:ppcE %p", __func__, ep); + return; +} + +static void +process_conn_error(struct c4iw_ep *ep) +{ + struct c4iw_qp_attributes attrs; + int ret; + int state; + + state = state_read(&ep->com); + CTR5(KTR_IW_CXGBE, "%s:pceB ep %p so %p so->so_error %u state %s", + __func__, ep, ep->com.so, ep->com.so->so_error, + states[ep->com.state]); + + switch (state) { + + case MPA_REQ_WAIT: + STOP_EP_TIMER(ep); + break; + + case MPA_REQ_SENT: + STOP_EP_TIMER(ep); + connect_reply_upcall(ep, -ECONNRESET); + break; + + case MPA_REP_SENT: + ep->com.rpl_err = ECONNRESET; + CTR1(KTR_IW_CXGBE, "waking up ep %p", ep); + break; + + case MPA_REQ_RCVD: + + /* + * We're gonna mark this puppy DEAD, but keep + * the reference on it until the ULP accepts or + * rejects the CR. + */ + c4iw_get_ep(&ep->com); + break; + + case MORIBUND: + case CLOSING: + STOP_EP_TIMER(ep); + /*FALLTHROUGH*/ + case FPDU_MODE: + + if (ep->com.cm_id && ep->com.qp) { + + attrs.next_state = C4IW_QP_STATE_ERROR; + ret = c4iw_modify_qp(ep->com.qp->rhp, + ep->com.qp, C4IW_QP_ATTR_NEXT_STATE, + &attrs, 1); + if (ret) + log(LOG_ERR, + "%s - qp <- error failed!\n", + __func__); + } + peer_abort_upcall(ep); + break; + + case ABORTING: + break; + + case DEAD: + CTR2(KTR_IW_CXGBE, "%s so_error %d IN DEAD STATE!!!!", + __func__, ep->com.so->so_error); + return; + + default: + panic("%s: ep %p state %d", __func__, ep, state); + break; + } + + if (state != ABORTING) { + + CTR2(KTR_IW_CXGBE, "%s:pce1 %p", __func__, ep); + close_socket(&ep->com, 0); + state_set(&ep->com, DEAD); + c4iw_put_ep(&ep->com); + } + CTR2(KTR_IW_CXGBE, "%s:pceE %p", __func__, ep); + return; +} + +static void +process_close_complete(struct c4iw_ep *ep) +{ + struct c4iw_qp_attributes attrs; + int release = 0; + + CTR4(KTR_IW_CXGBE, "%s:pccB ep %p so %p state %s", __func__, ep, + ep->com.so, states[ep->com.state]); + + /* The cm_id may be null if we failed to connect */ + mutex_lock(&ep->com.mutex); + + switch (ep->com.state) { + + case CLOSING: + CTR2(KTR_IW_CXGBE, "%s:pcc1 %p CLOSING MORIBUND", + __func__, ep); + __state_set(&ep->com, MORIBUND); + break; + + case MORIBUND: + CTR2(KTR_IW_CXGBE, "%s:pcc1 %p MORIBUND DEAD", __func__, + ep); + STOP_EP_TIMER(ep); + + if ((ep->com.cm_id) && (ep->com.qp)) { + + CTR2(KTR_IW_CXGBE, "%s:pcc2 %p QP_STATE_IDLE", + __func__, ep); + attrs.next_state = C4IW_QP_STATE_IDLE; + c4iw_modify_qp(ep->com.dev, + ep->com.qp, + C4IW_QP_ATTR_NEXT_STATE, + &attrs, 1); + } + + if (ep->parent_ep) { + + CTR2(KTR_IW_CXGBE, "%s:pcc3 %p", __func__, ep); + close_socket(&ep->com, 1); + } + else { + + CTR2(KTR_IW_CXGBE, "%s:pcc4 %p", __func__, ep); + close_socket(&ep->com, 0); + } + close_complete_upcall(ep); + __state_set(&ep->com, DEAD); + release = 1; + break; + + case ABORTING: + CTR2(KTR_IW_CXGBE, "%s:pcc5 %p ABORTING", __func__, ep); + break; + + case DEAD: + default: + CTR2(KTR_IW_CXGBE, "%s:pcc6 %p DEAD", __func__, ep); + panic("%s:pcc6 %p DEAD", __func__, ep); + break; + } + mutex_unlock(&ep->com.mutex); + + if (release) { + + CTR2(KTR_IW_CXGBE, "%s:pcc7 %p", __func__, ep); + c4iw_put_ep(&ep->com); + } + CTR2(KTR_IW_CXGBE, "%s:pccE %p", __func__, ep); + return; +} + +static void +init_sock(struct c4iw_ep_common *epc) +{ + int rc; + struct sockopt sopt; + struct socket *so = epc->so; + int on = 1; + + SOCK_LOCK(so); + soupcall_set(so, SO_RCV, c4iw_so_upcall, epc); + so->so_state |= SS_NBIO; + SOCK_UNLOCK(so); + sopt.sopt_dir = SOPT_SET; + sopt.sopt_level = IPPROTO_TCP; + sopt.sopt_name = TCP_NODELAY; + sopt.sopt_val = (caddr_t)&on; + sopt.sopt_valsize = sizeof on; + sopt.sopt_td = NULL; + rc = sosetopt(so, &sopt); + if (rc) { + log(LOG_ERR, "%s: can't set TCP_NODELAY on so %p (%d)\n", + __func__, so, rc); + } +} + +static void +process_data(struct c4iw_ep *ep) +{ + struct sockaddr_in *local, *remote; + + CTR5(KTR_IW_CXGBE, "%s: so %p, ep %p, state %s, sb_cc %d", __func__, + ep->com.so, ep, states[ep->com.state], ep->com.so->so_rcv.sb_cc); + + switch (state_read(&ep->com)) { + case MPA_REQ_SENT: + process_mpa_reply(ep); + break; + case MPA_REQ_WAIT: + in_getsockaddr(ep->com.so, (struct sockaddr **)&local); + in_getpeeraddr(ep->com.so, (struct sockaddr **)&remote); + ep->com.local_addr = *local; + ep->com.remote_addr = *remote; + free(local, M_SONAME); + free(remote, M_SONAME); + process_mpa_request(ep); + break; + default: + if (ep->com.so->so_rcv.sb_cc) + log(LOG_ERR, "%s: Unexpected streaming data. " + "ep %p, state %d, so %p, so_state 0x%x, sb_cc %u\n", + __func__, ep, state_read(&ep->com), ep->com.so, + ep->com.so->so_state, ep->com.so->so_rcv.sb_cc); + break; + } +} + +static void +process_connected(struct c4iw_ep *ep) +{ + + if ((ep->com.so->so_state & SS_ISCONNECTED) && !ep->com.so->so_error) + send_mpa_req(ep); + else { + connect_reply_upcall(ep, -ep->com.so->so_error); + close_socket(&ep->com, 0); + state_set(&ep->com, DEAD); + c4iw_put_ep(&ep->com); + } +} + +static struct socket * +dequeue_socket(struct socket *head, struct sockaddr_in **remote, + struct c4iw_ep *child_ep) +{ + struct socket *so; + + ACCEPT_LOCK(); + so = TAILQ_FIRST(&head->so_comp); + if (!so) { + ACCEPT_UNLOCK(); + return (NULL); + } + TAILQ_REMOVE(&head->so_comp, so, so_list); + head->so_qlen--; + SOCK_LOCK(so); + so->so_qstate &= ~SQ_COMP; + so->so_head = NULL; + soref(so); + soupcall_set(so, SO_RCV, c4iw_so_upcall, child_ep); + so->so_state |= SS_NBIO; + SOCK_UNLOCK(so); + ACCEPT_UNLOCK(); + soaccept(so, (struct sockaddr **)remote); + + return (so); +} + +static void +process_newconn(struct c4iw_ep *parent_ep) +{ + struct socket *child_so; + struct c4iw_ep *child_ep; + struct sockaddr_in *remote; + + child_ep = alloc_ep(sizeof(*child_ep), M_NOWAIT); + if (!child_ep) { + CTR3(KTR_IW_CXGBE, "%s: parent so %p, parent ep %p, ENOMEM", + __func__, parent_ep->com.so, parent_ep); + log(LOG_ERR, "%s: failed to allocate ep entry\n", __func__); + return; + } + + child_so = dequeue_socket(parent_ep->com.so, &remote, child_ep); + if (!child_so) { + CTR4(KTR_IW_CXGBE, + "%s: parent so %p, parent ep %p, child ep %p, dequeue err", + __func__, parent_ep->com.so, parent_ep, child_ep); + log(LOG_ERR, "%s: failed to dequeue child socket\n", __func__); + __free_ep(&child_ep->com); + return; + + } + + CTR5(KTR_IW_CXGBE, + "%s: parent so %p, parent ep %p, child so %p, child ep %p", + __func__, parent_ep->com.so, parent_ep, child_so, child_ep); + + child_ep->com.local_addr = parent_ep->com.local_addr; + child_ep->com.remote_addr = *remote; + child_ep->com.dev = parent_ep->com.dev; + child_ep->com.so = child_so; + child_ep->com.cm_id = NULL; + child_ep->com.thread = parent_ep->com.thread; + child_ep->parent_ep = parent_ep; + + free(remote, M_SONAME); + c4iw_get_ep(&parent_ep->com); + child_ep->parent_ep = parent_ep; + init_timer(&child_ep->timer); + state_set(&child_ep->com, MPA_REQ_WAIT); + START_EP_TIMER(child_ep); + + /* maybe the request has already been queued up on the socket... */ + process_mpa_request(child_ep); +} + +static int +c4iw_so_upcall(struct socket *so, void *arg, int waitflag) +{ + struct c4iw_ep *ep = arg; + + spin_lock(&req_lock); + + CTR6(KTR_IW_CXGBE, + "%s: so %p, so_state 0x%x, ep %p, ep_state %s, tqe_prev %p", + __func__, so, so->so_state, ep, states[ep->com.state], + ep->com.entry.tqe_prev); + + if (ep && ep->com.so && !ep->com.entry.tqe_prev) { + KASSERT(ep->com.so == so, ("%s: XXX review.", __func__)); + c4iw_get_ep(&ep->com); + TAILQ_INSERT_TAIL(&req_list, &ep->com, entry); + queue_work(c4iw_taskq, &c4iw_task); + } + + spin_unlock(&req_lock); + return (SU_OK); +} + +static void +process_socket_event(struct c4iw_ep *ep) +{ + int state = state_read(&ep->com); + struct socket *so = ep->com.so; + + CTR6(KTR_IW_CXGBE, "process_socket_event: so %p, so_state 0x%x, " + "so_err %d, sb_state 0x%x, ep %p, ep_state %s", so, so->so_state, + so->so_error, so->so_rcv.sb_state, ep, states[state]); + + if (state == CONNECTING) { + process_connected(ep); + return; + } + + if (state == LISTEN) { + process_newconn(ep); + return; + } + + /* connection error */ + if (so->so_error) { + process_conn_error(ep); + return; + } + + /* peer close */ + if ((so->so_rcv.sb_state & SBS_CANTRCVMORE) && state < CLOSING) { + process_peer_close(ep); + return; + } + + /* close complete */ + if (so->so_state & SS_ISDISCONNECTED) { + process_close_complete(ep); + return; + } + + /* rx data */ + process_data(ep); +} + +SYSCTL_NODE(_hw, OID_AUTO, iw_cxgbe, CTLFLAG_RD, 0, "iw_cxgbe driver parameters"); + +int db_delay_usecs = 1; +TUNABLE_INT("hw.iw_cxgbe.db_delay_usecs", &db_delay_usecs); +SYSCTL_INT(_hw_iw_cxgbe, OID_AUTO, db_delay_usecs, CTLFLAG_RW, &db_delay_usecs, 0, + "Usecs to delay awaiting db fifo to drain"); + +static int dack_mode = 1; +TUNABLE_INT("hw.iw_cxgbe.dack_mode", &dack_mode); +SYSCTL_INT(_hw_iw_cxgbe, OID_AUTO, dack_mode, CTLFLAG_RW, &dack_mode, 0, + "Delayed ack mode (default = 1)"); + +int c4iw_max_read_depth = 8; +TUNABLE_INT("hw.iw_cxgbe.c4iw_max_read_depth", &c4iw_max_read_depth); +SYSCTL_INT(_hw_iw_cxgbe, OID_AUTO, c4iw_max_read_depth, CTLFLAG_RW, &c4iw_max_read_depth, 0, + "Per-connection max ORD/IRD (default = 8)"); + +static int enable_tcp_timestamps; +TUNABLE_INT("hw.iw_cxgbe.enable_tcp_timestamps", &enable_tcp_timestamps); +SYSCTL_INT(_hw_iw_cxgbe, OID_AUTO, enable_tcp_timestamps, CTLFLAG_RW, &enable_tcp_timestamps, 0, + "Enable tcp timestamps (default = 0)"); + +static int enable_tcp_sack; +TUNABLE_INT("hw.iw_cxgbe.enable_tcp_sack", &enable_tcp_sack); +SYSCTL_INT(_hw_iw_cxgbe, OID_AUTO, enable_tcp_sack, CTLFLAG_RW, &enable_tcp_sack, 0, + "Enable tcp SACK (default = 0)"); + +static int enable_tcp_window_scaling = 1; +TUNABLE_INT("hw.iw_cxgbe.enable_tcp_window_scaling", &enable_tcp_window_scaling); +SYSCTL_INT(_hw_iw_cxgbe, OID_AUTO, enable_tcp_window_scaling, CTLFLAG_RW, &enable_tcp_window_scaling, 0, + "Enable tcp window scaling (default = 1)"); + +int c4iw_debug = 1; +TUNABLE_INT("hw.iw_cxgbe.c4iw_debug", &c4iw_debug); +SYSCTL_INT(_hw_iw_cxgbe, OID_AUTO, c4iw_debug, CTLFLAG_RW, &c4iw_debug, 0, + "Enable debug logging (default = 0)"); + +static int peer2peer; +TUNABLE_INT("hw.iw_cxgbe.peer2peer", &peer2peer); +SYSCTL_INT(_hw_iw_cxgbe, OID_AUTO, peer2peer, CTLFLAG_RW, &peer2peer, 0, + "Support peer2peer ULPs (default = 0)"); + +static int p2p_type = FW_RI_INIT_P2PTYPE_READ_REQ; +TUNABLE_INT("hw.iw_cxgbe.p2p_type", &p2p_type); +SYSCTL_INT(_hw_iw_cxgbe, OID_AUTO, p2p_type, CTLFLAG_RW, &p2p_type, 0, + "RDMAP opcode to use for the RTR message: 1 = RDMA_READ 0 = RDMA_WRITE (default 1)"); + +static int ep_timeout_secs = 60; +TUNABLE_INT("hw.iw_cxgbe.ep_timeout_secs", &ep_timeout_secs); +SYSCTL_INT(_hw_iw_cxgbe, OID_AUTO, ep_timeout_secs, CTLFLAG_RW, &ep_timeout_secs, 0, + "CM Endpoint operation timeout in seconds (default = 60)"); + +static int mpa_rev = 1; +TUNABLE_INT("hw.iw_cxgbe.mpa_rev", &mpa_rev); +#ifdef IW_CM_MPAV2 +SYSCTL_INT(_hw_iw_cxgbe, OID_AUTO, mpa_rev, CTLFLAG_RW, &mpa_rev, 0, + "MPA Revision, 0 supports amso1100, 1 is RFC0544 spec compliant, 2 is IETF MPA Peer Connect Draft compliant (default = 1)"); +#else +SYSCTL_INT(_hw_iw_cxgbe, OID_AUTO, mpa_rev, CTLFLAG_RW, &mpa_rev, 0, + "MPA Revision, 0 supports amso1100, 1 is RFC0544 spec compliant (default = 1)"); +#endif + +static int markers_enabled; +TUNABLE_INT("hw.iw_cxgbe.markers_enabled", &markers_enabled); +SYSCTL_INT(_hw_iw_cxgbe, OID_AUTO, markers_enabled, CTLFLAG_RW, &markers_enabled, 0, + "Enable MPA MARKERS (default(0) = disabled)"); + +static int crc_enabled = 1; +TUNABLE_INT("hw.iw_cxgbe.crc_enabled", &crc_enabled); +SYSCTL_INT(_hw_iw_cxgbe, OID_AUTO, crc_enabled, CTLFLAG_RW, &crc_enabled, 0, + "Enable MPA CRC (default(1) = enabled)"); + +static int rcv_win = 256 * 1024; +TUNABLE_INT("hw.iw_cxgbe.rcv_win", &rcv_win); +SYSCTL_INT(_hw_iw_cxgbe, OID_AUTO, rcv_win, CTLFLAG_RW, &rcv_win, 0, + "TCP receive window in bytes (default = 256KB)"); + +static int snd_win = 128 * 1024; +TUNABLE_INT("hw.iw_cxgbe.snd_win", &snd_win); +SYSCTL_INT(_hw_iw_cxgbe, OID_AUTO, snd_win, CTLFLAG_RW, &snd_win, 0, + "TCP send window in bytes (default = 128KB)"); + +int db_fc_threshold = 2000; +TUNABLE_INT("hw.iw_cxgbe.db_fc_threshold", &db_fc_threshold); +SYSCTL_INT(_hw_iw_cxgbe, OID_AUTO, db_fc_threshold, CTLFLAG_RW, &db_fc_threshold, 0, + "QP count/threshold that triggers automatic"); + +static void +start_ep_timer(struct c4iw_ep *ep) +{ + + if (timer_pending(&ep->timer)) { + CTR2(KTR_IW_CXGBE, "%s: ep %p, already started", __func__, ep); + printk(KERN_ERR "%s timer already started! ep %p\n", __func__, + ep); + return; + } + clear_bit(TIMEOUT, &ep->com.flags); + c4iw_get_ep(&ep->com); + ep->timer.expires = jiffies + ep_timeout_secs * HZ; + ep->timer.data = (unsigned long)ep; + ep->timer.function = ep_timeout; + add_timer(&ep->timer); +} + +static void +stop_ep_timer(struct c4iw_ep *ep) +{ + + del_timer_sync(&ep->timer); + if (!test_and_set_bit(TIMEOUT, &ep->com.flags)) { + c4iw_put_ep(&ep->com); + } +} + +static enum +c4iw_ep_state state_read(struct c4iw_ep_common *epc) +{ + enum c4iw_ep_state state; + + mutex_lock(&epc->mutex); + state = epc->state; + mutex_unlock(&epc->mutex); + + return (state); +} + +static void +__state_set(struct c4iw_ep_common *epc, enum c4iw_ep_state new) +{ + + epc->state = new; +} + +static void +state_set(struct c4iw_ep_common *epc, enum c4iw_ep_state new) +{ + + mutex_lock(&epc->mutex); + __state_set(epc, new); + mutex_unlock(&epc->mutex); +} + +static void * +alloc_ep(int size, gfp_t gfp) +{ + struct c4iw_ep_common *epc; + + epc = kzalloc(size, gfp); + if (epc == NULL) + return (NULL); + + kref_init(&epc->kref); + mutex_init(&epc->mutex); + c4iw_init_wr_wait(&epc->wr_wait); + + return (epc); +} + +void +__free_ep(struct c4iw_ep_common *epc) +{ + CTR2(KTR_IW_CXGBE, "%s:feB %p", __func__, epc); + KASSERT(!epc->so, ("%s warning ep->so %p \n", __func__, epc->so)); + KASSERT(!epc->entry.tqe_prev, ("%s epc %p still on req list!\n", __func__, epc)); + free(epc, M_DEVBUF); + CTR2(KTR_IW_CXGBE, "%s:feE %p", __func__, epc); +} + +void _c4iw_free_ep(struct kref *kref) +{ + struct c4iw_ep *ep; + struct c4iw_ep_common *epc; + + ep = container_of(kref, struct c4iw_ep, com.kref); + epc = &ep->com; + KASSERT(!epc->so, ("%s ep->so %p", __func__, epc->so)); + KASSERT(!epc->entry.tqe_prev, ("%s epc %p still on req list", + __func__, epc)); + kfree(ep); +} + +static void release_ep_resources(struct c4iw_ep *ep) +{ + CTR2(KTR_IW_CXGBE, "%s:rerB %p", __func__, ep); + set_bit(RELEASE_RESOURCES, &ep->com.flags); + c4iw_put_ep(&ep->com); + CTR2(KTR_IW_CXGBE, "%s:rerE %p", __func__, ep); +} + +static void +send_mpa_req(struct c4iw_ep *ep) +{ + int mpalen; + struct mpa_message *mpa; + struct mpa_v2_conn_params mpa_v2_params; + struct mbuf *m; + char mpa_rev_to_use = mpa_rev; + int err; + + if (ep->retry_with_mpa_v1) + mpa_rev_to_use = 1; + mpalen = sizeof(*mpa) + ep->plen; + if (mpa_rev_to_use == 2) + mpalen += sizeof(struct mpa_v2_conn_params); + + if (mpalen > MHLEN) + CXGBE_UNIMPLEMENTED(__func__); + + m = m_gethdr(M_NOWAIT, MT_DATA); + if (m == NULL) { + connect_reply_upcall(ep, -ENOMEM); + return; + } + + mpa = mtod(m, struct mpa_message *); + m->m_len = mpalen; + m->m_pkthdr.len = mpalen; + memcpy(mpa->key, MPA_KEY_REQ, sizeof(mpa->key)); + mpa->flags = (crc_enabled ? MPA_CRC : 0) | + (markers_enabled ? MPA_MARKERS : 0) | + (mpa_rev_to_use == 2 ? MPA_ENHANCED_RDMA_CONN : 0); + mpa->private_data_size = htons(ep->plen); + mpa->revision = mpa_rev_to_use; + + if (mpa_rev_to_use == 1) { + ep->tried_with_mpa_v1 = 1; + ep->retry_with_mpa_v1 = 0; + } *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 19:04:06 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 422F19BC; Thu, 17 Oct 2013 19:04:06 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 2F7542A6F; Thu, 17 Oct 2013 19:04:06 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9HJ46f1077733; Thu, 17 Oct 2013 19:04:06 GMT (envelope-from hrs@svn.freebsd.org) Received: (from hrs@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9HJ45FX077725; Thu, 17 Oct 2013 19:04:05 GMT (envelope-from hrs@svn.freebsd.org) Message-Id: <201310171904.r9HJ45FX077725@svn.freebsd.org> From: Hiroki Sato Date: Thu, 17 Oct 2013 19:04:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256695 - head/sbin/route X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 19:04:06 -0000 Author: hrs Date: Thu Oct 17 19:04:05 2013 New Revision: 256695 URL: http://svnweb.freebsd.org/changeset/base/256695 Log: - Add relative specification in expiration time. - Add proto3 option for RTF_PROTO3. - Use %lu for members of struct rt_metrics. Modified: head/sbin/route/keywords head/sbin/route/route.8 head/sbin/route/route.c Modified: head/sbin/route/keywords ============================================================================== --- head/sbin/route/keywords Thu Oct 17 18:37:25 2013 (r256694) +++ head/sbin/route/keywords Thu Oct 17 19:04:05 2013 (r256695) @@ -39,6 +39,7 @@ osi prefixlen proto1 proto2 +proto3 proxy recvpipe reject Modified: head/sbin/route/route.8 ============================================================================== --- head/sbin/route/route.8 Thu Oct 17 18:37:25 2013 (r256694) +++ head/sbin/route/route.8 Thu Oct 17 19:04:05 2013 (r256695) @@ -28,7 +28,7 @@ .\" @(#)route.8 8.3 (Berkeley) 3/19/94 .\" $FreeBSD$ .\" -.Dd November 17, 2012 +.Dd October 17, 2013 .Dt ROUTE 8 .Os .Sh NAME @@ -301,6 +301,7 @@ by indicating the following correspondin -blackhole RTF_BLACKHOLE - silently discard pkts (during updates) -proto1 RTF_PROTO1 - set protocol specific routing flag #1 -proto2 RTF_PROTO2 - set protocol specific routing flag #2 +-proto3 RTF_PROTO3 - set protocol specific routing flag #3 .Ed .Pp The optional modifiers @@ -324,6 +325,17 @@ specify that all ensuing metrics may be .Fl lockrest meta-modifier. .Pp +Note that +.Fl expire +accepts expiration time of the route as the number of seconds since the +Epoch +.Pq see Xr time 3 . +When the first character of the number is +.Dq + +or +.Dq - , +it is interpreted as a value relative to the current time. +.Pp The optional modifier .Fl fib Ar number specifies that the command will be applied to a non-default FIB. Modified: head/sbin/route/route.c ============================================================================== --- head/sbin/route/route.c Thu Oct 17 18:37:25 2013 (r256694) +++ head/sbin/route/route.c Thu Oct 17 19:04:05 2013 (r256695) @@ -67,6 +67,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -723,6 +724,7 @@ static void set_metric(char *value, int key) { int flag = 0; + char *endptr; u_long noval, *valp = &noval; switch (key) { @@ -742,7 +744,18 @@ set_metric(char *value, int key) rt_metrics.rmx_locks |= flag; if (locking) locking = 0; - *valp = atoi(value); + errno = 0; + *valp = strtol(value, &endptr, 0); + if (errno == 0 && *endptr != '\0') + errno = EINVAL; + if (errno) + err(EX_USAGE, "%s", value); + if (flag & RTV_EXPIRE && (value[0] == '+' || value[0] == '-')) { + struct timespec ts; + + clock_gettime(CLOCK_REALTIME_FAST, &ts); + *valp += ts.tv_sec; + } } #define F_ISHOST 0x01 @@ -827,6 +840,9 @@ newroute(int argc, char **argv) case K_PROTO2: flags |= RTF_PROTO2; break; + case K_PROTO3: + flags |= RTF_PROTO3; + break; case K_PROXY: nrflags |= F_PROXY; break; @@ -1681,6 +1697,7 @@ static void print_getmsg(struct rt_msghdr *rtm, int msglen, int fib) { struct sockaddr *sp[RTAX_MAX]; + struct timespec ts; char *cp; int i; @@ -1733,15 +1750,17 @@ print_getmsg(struct rt_msghdr *rtm, int #define msec(u) (((u) + 500) / 1000) /* usec to msec */ printf("\n%9s %9s %9s %9s %9s %10s %9s\n", "recvpipe", "sendpipe", "ssthresh", "rtt,msec", "mtu ", "weight", "expire"); - printf("%8ld%c ", rtm->rtm_rmx.rmx_recvpipe, lock(RPIPE)); - printf("%8ld%c ", rtm->rtm_rmx.rmx_sendpipe, lock(SPIPE)); - printf("%8ld%c ", rtm->rtm_rmx.rmx_ssthresh, lock(SSTHRESH)); - printf("%8ld%c ", msec(rtm->rtm_rmx.rmx_rtt), lock(RTT)); - printf("%8ld%c ", rtm->rtm_rmx.rmx_mtu, lock(MTU)); - printf("%8ld%c ", rtm->rtm_rmx.rmx_weight, lock(WEIGHT)); - if (rtm->rtm_rmx.rmx_expire) - rtm->rtm_rmx.rmx_expire -= time(0); - printf("%8ld%c\n", rtm->rtm_rmx.rmx_expire, lock(EXPIRE)); + printf("%8lu%c ", rtm->rtm_rmx.rmx_recvpipe, lock(RPIPE)); + printf("%8lu%c ", rtm->rtm_rmx.rmx_sendpipe, lock(SPIPE)); + printf("%8lu%c ", rtm->rtm_rmx.rmx_ssthresh, lock(SSTHRESH)); + printf("%8lu%c ", msec(rtm->rtm_rmx.rmx_rtt), lock(RTT)); + printf("%8lu%c ", rtm->rtm_rmx.rmx_mtu, lock(MTU)); + printf("%8lu%c ", rtm->rtm_rmx.rmx_weight, lock(WEIGHT)); + if (rtm->rtm_rmx.rmx_expire > 0) + clock_gettime(CLOCK_REALTIME_FAST, &ts); + else + ts.tv_sec = 0; + printf("%8ld%c\n", rtm->rtm_rmx.rmx_expire - ts.tv_sec, lock(EXPIRE)); #undef lock #undef msec #define RTA_IGN (RTA_DST|RTA_GATEWAY|RTA_NETMASK|RTA_IFP|RTA_IFA|RTA_BRD) From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 19:35:52 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id A2807745; Thu, 17 Oct 2013 19:35:52 +0000 (UTC) (envelope-from to.my.trociny@gmail.com) Received: from mail-ee0-x22b.google.com (mail-ee0-x22b.google.com [IPv6:2a00:1450:4013:c00::22b]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 4EA222C77; Thu, 17 Oct 2013 19:35:51 +0000 (UTC) Received: by mail-ee0-f43.google.com with SMTP id e52so1358509eek.16 for ; Thu, 17 Oct 2013 12:35:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=Ve8/f0mCynhqvIu4DwyGx7huWjsbbgIU/6HlydSCCNU=; b=M8xB7acPMTiB0CpxFUtZnFqTKjCCP48XDRxqkaJ0JcONAVWUigdwuzeFAbowuOlS3W pKV6ga0dBDOxDL9m7ABsBQcQJn1qwwxnfUzlwJUVDy9nD3Y+VLIEkaihr7zycXZmiAMn nnuLuYWNfwl0rHfYo9enp3MCUuR78OMsfyctl4vAQqnoTEJMncgWfUIwe5+Bp9prTw66 tpsZ8kUntdY6jxHPaVWbu6uz+3MCR+AvrytKVCcV9l6aLM7yfHNWD9JWujgLm2HXJJkx xoNQSjHc/zqyX1KOEWIrl6sWGvNOlADena1QkGCYquAjTkZvWH/ZROG8NVKW9637T0vM hSOA== X-Received: by 10.14.206.131 with SMTP id l3mr200307eeo.86.1382038549647; Thu, 17 Oct 2013 12:35:49 -0700 (PDT) Received: from localhost ([178.150.115.244]) by mx.google.com with ESMTPSA id l49sm112703884eeo.12.1969.12.31.16.00.00 (version=TLSv1.2 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 17 Oct 2013 12:35:49 -0700 (PDT) Sender: Mikolaj Golub Date: Thu, 17 Oct 2013 22:35:46 +0300 From: Mikolaj Golub To: John Baldwin Subject: Re: svn commit: r228969 - head/sys/netinet Message-ID: <20131017193545.GA3683@gmail.com> References: <201112292041.pBTKfGkj071711@svn.freebsd.org> <201204020848.04775.jhb@freebsd.org> <86sjdbnziw.fsf@kopusha.home.net> <201310161709.04489.jhb@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201310161709.04489.jhb@freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, hrs@freebsd.org, Bjoern Zeeb , glebius@freebsd.org, svn-src-head@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 19:35:52 -0000 On Wed, Oct 16, 2013 at 05:09:04PM -0400, John Baldwin wrote: ... > > >> #10 0x80b6f1fd in igmp_change_state (inm=0x8ae70480) > > >> at /home/golub/freebsd/base/head/sys/netinet/igmp.c:2595 > > >> #11 0x80b76f68 in in_leavegroup_locked (inm=0x8ae70480, imf=0x8a655a00) > > >> at /home/golub/freebsd/base/head/sys/netinet/in_mcast.c:1239 > > >> #12 0x80b76fbd in in_leavegroup (inm=0x8ae70480, imf=0x8a655a00) > > >> at /home/golub/freebsd/base/head/sys/netinet/in_mcast.c:1184 > > >> #13 0x80b770b4 in inp_gcmoptions (context=0x0, pending=1) > > >> at /home/golub/freebsd/base/head/sys/netinet/in_mcast.c:1554 > > >> #14 0x80a8ff2b in taskqueue_run_locked (queue=0x87594880) > > >> at /home/golub/freebsd/base/head/sys/kern/subr_taskqueue.c:308 > > >> #15 0x80a90987 in taskqueue_thread_loop (arg=0x81186bcc) > > >> at /home/golub/freebsd/base/head/sys/kern/subr_taskqueue.c:497 > > >> #16 0x80a1b2d8 in fork_exit (callout=0x80a90920 > > >> , arg=0x81186bcc, > > >> frame=0x872b2d28) at /home/golub/freebsd/base/head/sys/kern/kern_fork.c:992 ... > > >> VNET context is not set at that point. ... > > I think this was just fixed by glebius@ in r256587: > > Author: glebius > Date: Wed Oct 16 05:02:01 2013 > New Revision: 256587 > URL: http://svnweb.freebsd.org/changeset/base/256587 > > Log: > For VIMAGE kernels store vnet in the struct task, and set vnet context > during task processing. > > Reported & tested by: mm I think that particular issue was fixed earlier by hrs in r252510: Fix a panic when leaving MC group in a kernel with VIMAGE enabled. in_leavegroup() is called from an asynchronous task, and igmp_change_state() requires that curvnet is set by the caller. Concerning this more general solution from Gleb, with storing the vnet pointer in the task, I wander how it is safe when the vnet is being removed? In vnet_destroy() the vnet interfaces are moved back to their parent vnets, so setting the vnet context from the interface looks safer. -- Mikolaj Golub From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 20:14:48 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 1FB6912F; Thu, 17 Oct 2013 20:14:48 +0000 (UTC) (envelope-from zont@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 0D6402F65; Thu, 17 Oct 2013 20:14:48 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9HKEloW016141; Thu, 17 Oct 2013 20:14:47 GMT (envelope-from zont@svn.freebsd.org) Received: (from zont@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9HKEls7016140; Thu, 17 Oct 2013 20:14:47 GMT (envelope-from zont@svn.freebsd.org) Message-Id: <201310172014.r9HKEls7016140@svn.freebsd.org> From: Andrey Zonov Date: Thu, 17 Oct 2013 20:14:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256703 - head/tools/build/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 20:14:48 -0000 Author: zont Date: Thu Oct 17 20:14:47 2013 New Revision: 256703 URL: http://svnweb.freebsd.org/changeset/base/256703 Log: Remove atf headers which never existed Reviewed by: marcel Modified: head/tools/build/mk/OptionalObsoleteFiles.inc Modified: head/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- head/tools/build/mk/OptionalObsoleteFiles.inc Thu Oct 17 20:04:44 2013 (r256702) +++ head/tools/build/mk/OptionalObsoleteFiles.inc Thu Oct 17 20:14:47 2013 (r256703) @@ -81,7 +81,6 @@ OLD_FILES+=usr/include/atf-c/macros.h OLD_FILES+=usr/include/atf-c/tc.h OLD_FILES+=usr/include/atf-c/tp.h OLD_FILES+=usr/include/atf-c/utils.h -OLD_FILES+=usr/include/atf-c/atf-c.h OLD_FILES+=usr/include/atf-c.h OLD_DIRS+=usr/include/atf-c++ OLD_FILES+=usr/include/atf-c++/build.hpp @@ -90,7 +89,6 @@ OLD_FILES+=usr/include/atf-c++/config.hp OLD_FILES+=usr/include/atf-c++/macros.hpp OLD_FILES+=usr/include/atf-c++/tests.hpp OLD_FILES+=usr/include/atf-c++/utils.hpp -OLD_FILES+=usr/include/atf-c++/atf-c++.hpp OLD_FILES+=usr/include/atf-c++.hpp OLD_FILES+=usr/lib/libatf-c_p.a OLD_FILES+=usr/lib/libatf-c.so.1 From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 20:19:16 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 74834557; Thu, 17 Oct 2013 20:19:16 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 60DF32FAA; Thu, 17 Oct 2013 20:19:16 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9HKJGn5017771; Thu, 17 Oct 2013 20:19:16 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9HKJFNA017764; Thu, 17 Oct 2013 20:19:15 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201310172019.r9HKJFNA017764@svn.freebsd.org> From: Alexander Motin Date: Thu, 17 Oct 2013 20:19:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256705 - head/sys/dev/isp X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 20:19:16 -0000 Author: mav Date: Thu Oct 17 20:19:15 2013 New Revision: 256705 URL: http://svnweb.freebsd.org/changeset/base/256705 Log: Optimize isp(4) to reduce CPU usage, especially in target mode: - Remove two excessive and slow register reads from isp_intr(). Instead of rereading value every time, assume that registers contain what we have written there. - Avoid sequential search through 4096 array elements when looking for command tag. Use hash of lists to store active tags separately from free ones and so greatly speedup the searches. Reviewed by: mjacob Modified: head/sys/dev/isp/isp.c head/sys/dev/isp/isp_freebsd.c head/sys/dev/isp/isp_freebsd.h head/sys/dev/isp/ispvar.h Modified: head/sys/dev/isp/isp.c ============================================================================== --- head/sys/dev/isp/isp.c Thu Oct 17 20:15:14 2013 (r256704) +++ head/sys/dev/isp/isp.c Thu Oct 17 20:19:15 2013 (r256705) @@ -1422,7 +1422,7 @@ isp_scsi_init(ispsoftc_t *isp) if (mbs.param[0] != MBOX_COMMAND_COMPLETE) { return; } - isp->isp_residx = mbs.param[5]; + isp->isp_residx = isp->isp_resodx = mbs.param[5]; MBSINIT(&mbs, MBOX_INIT_REQ_QUEUE_A64, MBLOGALL, 0); mbs.param[1] = RQUEST_QUEUE_LEN(isp); @@ -1446,7 +1446,7 @@ isp_scsi_init(ispsoftc_t *isp) if (mbs.param[0] != MBOX_COMMAND_COMPLETE) { return; } - isp->isp_residx = mbs.param[5]; + isp->isp_residx = isp->isp_resodx = mbs.param[5]; MBSINIT(&mbs, MBOX_INIT_REQ_QUEUE, MBLOGALL, 0); mbs.param[1] = RQUEST_QUEUE_LEN(isp); @@ -1918,6 +1918,7 @@ isp_fibre_init(ispsoftc_t *isp) isp->isp_reqidx = 0; isp->isp_reqodx = 0; isp->isp_residx = 0; + isp->isp_resodx = 0; /* * Whatever happens, we're now committed to being here. @@ -2208,6 +2209,8 @@ isp_fibre_init_2400(ispsoftc_t *isp) isp->isp_reqidx = 0; isp->isp_reqodx = 0; isp->isp_residx = 0; + isp->isp_resodx = 0; + isp->isp_atioodx = 0; /* * Whatever happens, we're now committed to being here. @@ -5015,7 +5018,6 @@ isp_intr(ispsoftc_t *isp, uint32_t isr, int etype, last_etype = 0; again: - optr = isp->isp_residx; /* * Is this a mailbox related interrupt? * The mailbox semaphore will be nonzero if so. @@ -5067,7 +5069,9 @@ again: /* * Thank you very much! *Burrrp*! */ - ISP_WRITE(isp, isp->isp_respoutrp, ISP_READ(isp, isp->isp_respinrp)); + isp->isp_residx = ISP_READ(isp, isp->isp_respinrp); + isp->isp_resodx = isp->isp_residx; + ISP_WRITE(isp, isp->isp_respoutrp, isp->isp_resodx); if (IS_24XX(isp)) { ISP_DISABLE_INTS(isp); } @@ -5080,7 +5084,7 @@ again: */ if (IS_24XX(isp)) { iptr = ISP_READ(isp, BIU2400_ATIO_RSPINP); - optr = ISP_READ(isp, BIU2400_ATIO_RSPOUTP); + optr = isp->isp_atioodx; while (optr != iptr) { uint8_t qe[QENTRY_LEN]; @@ -5105,7 +5109,7 @@ again: optr = ISP_NXT_QENTRY(oop, RESULT_QUEUE_LEN(isp)); ISP_WRITE(isp, BIU2400_ATIO_RSPOUTP, optr); } - optr = isp->isp_residx; + isp->isp_atioodx = optr; } #endif @@ -5114,18 +5118,19 @@ again: * * If we're a 2300 or 2400, we can ask what hardware what it thinks. */ +#if 0 if (IS_23XX(isp) || IS_24XX(isp)) { optr = ISP_READ(isp, isp->isp_respoutrp); /* * Debug: to be taken out eventually */ - if (isp->isp_residx != optr) { - isp_prt(isp, ISP_LOGINFO, "isp_intr: hard optr=%x, soft optr %x", optr, isp->isp_residx); - isp->isp_residx = optr; + if (isp->isp_resodx != optr) { + isp_prt(isp, ISP_LOGINFO, "isp_intr: hard optr=%x, soft optr %x", optr, isp->isp_resodx); + isp->isp_resodx = optr; } - } else { - optr = isp->isp_residx; - } + } else +#endif + optr = isp->isp_resodx; /* * You *must* read the Response Queue In Pointer @@ -5147,8 +5152,6 @@ again: } else { iptr = ISP_READ(isp, isp->isp_respinrp); } - isp->isp_resodx = iptr; - if (optr == iptr && sema == 0) { /* @@ -5182,7 +5185,7 @@ again: isp_prt(isp, ISP_LOGDEBUG1, "bogus intr- isr %x (%x) iptr %x optr %x", isr, junk, iptr, optr); } } - isp->isp_resodx = iptr; + isp->isp_residx = iptr; while (optr != iptr) { uint8_t qe[QENTRY_LEN]; @@ -5552,13 +5555,9 @@ again: */ if (nlooked) { ISP_WRITE(isp, isp->isp_respoutrp, optr); - /* - * While we're at it, read the requst queue out pointer. - */ - isp->isp_reqodx = ISP_READ(isp, isp->isp_rqstoutrp); - if (isp->isp_rscchiwater < ndone) { + isp->isp_resodx = optr; + if (isp->isp_rscchiwater < ndone) isp->isp_rscchiwater = ndone; - } } out: @@ -5570,7 +5569,6 @@ out: ISP_WRITE(isp, BIU_SEMA, 0); } - isp->isp_residx = optr; for (i = 0; i < ndone; i++) { xs = complist[i]; if (xs) { Modified: head/sys/dev/isp/isp_freebsd.c ============================================================================== --- head/sys/dev/isp/isp_freebsd.c Thu Oct 17 20:15:14 2013 (r256704) +++ head/sys/dev/isp/isp_freebsd.c Thu Oct 17 20:19:15 2013 (r256705) @@ -804,6 +804,7 @@ static ISP_INLINE tstate_t *get_lun_stat static ISP_INLINE void rls_lun_statep(ispsoftc_t *, tstate_t *); static ISP_INLINE inot_private_data_t *get_ntp_from_tagdata(ispsoftc_t *, uint32_t, uint32_t, tstate_t **); static ISP_INLINE atio_private_data_t *isp_get_atpd(ispsoftc_t *, tstate_t *, uint32_t); +static ISP_INLINE atio_private_data_t *isp_find_atpd(ispsoftc_t *, tstate_t *, uint32_t); static ISP_INLINE void isp_put_atpd(ispsoftc_t *, tstate_t *, atio_private_data_t *); static ISP_INLINE inot_private_data_t *isp_get_ntpd(ispsoftc_t *, tstate_t *); static ISP_INLINE inot_private_data_t *isp_find_ntpd(ispsoftc_t *, tstate_t *, uint32_t, uint32_t); @@ -937,8 +938,8 @@ get_lun_statep_from_tag(ispsoftc_t *isp, for (i = 0; i < LUN_HASH_SIZE; i++) { ISP_GET_PC_ADDR(isp, bus, lun_hash[i], lhp); SLIST_FOREACH(tptr, lhp, next) { - atp = isp_get_atpd(isp, tptr, tagval); - if (atp && atp->tag == tagval) { + atp = isp_find_atpd(isp, tptr, tagval); + if (atp) { tptr->hold++; return (tptr); } @@ -1034,17 +1035,23 @@ isp_get_atpd(ispsoftc_t *isp, tstate_t * { atio_private_data_t *atp; - if (tag == 0) { - atp = tptr->atfree; - if (atp) { - tptr->atfree = atp->next; - } - return (atp); + atp = LIST_FIRST(&tptr->atfree); + if (atp) { + LIST_REMOVE(atp, next); + atp->tag = tag; + LIST_INSERT_HEAD(&tptr->atused[ATPDPHASH(tag)], atp, next); } - for (atp = tptr->atpool; atp < &tptr->atpool[ATPDPSIZE]; atp++) { - if (atp->tag == tag) { + return (atp); +} + +static ISP_INLINE atio_private_data_t * +isp_find_atpd(ispsoftc_t *isp, tstate_t *tptr, uint32_t tag) +{ + atio_private_data_t *atp; + + LIST_FOREACH(atp, &tptr->atused[ATPDPHASH(tag)], next) { + if (atp->tag == tag) return (atp); - } } return (NULL); } @@ -1055,9 +1062,9 @@ isp_put_atpd(ispsoftc_t *isp, tstate_t * if (atp->ests) { isp_put_ecmd(isp, atp->ests); } + LIST_REMOVE(atp, next); memset(atp, 0, sizeof (*atp)); - atp->next = tptr->atfree; - tptr->atfree = atp; + LIST_INSERT_HEAD(&tptr->atfree, atp, next); } static void @@ -1067,11 +1074,8 @@ isp_dump_atpd(ispsoftc_t *isp, tstate_t const char *states[8] = { "Free", "ATIO", "CAM", "CTIO", "LAST_CTIO", "PDON", "?6", "7" }; for (atp = tptr->atpool; atp < &tptr->atpool[ATPDPSIZE]; atp++) { - if (atp->tag == 0) { - continue; - } xpt_print(tptr->owner, "ATP: [0x%x] origdlen %u bytes_xfrd %u lun %u nphdl 0x%04x s_id 0x%06x d_id 0x%06x oxid 0x%04x state %s\n", - atp->tag, atp->orig_datalen, atp->bytes_xfered, atp->lun, atp->nphdl, atp->sid, atp->portid, atp->oxid, states[atp->state & 0x7]); + atp->tag, atp->orig_datalen, atp->bytes_xfered, atp->lun, atp->nphdl, atp->sid, atp->portid, atp->oxid, states[atp->state & 0x7]); } } @@ -1137,11 +1141,13 @@ create_lun_state(ispsoftc_t *isp, int bu SLIST_INIT(&tptr->atios); SLIST_INIT(&tptr->inots); TAILQ_INIT(&tptr->waitq); - for (i = 0; i < ATPDPSIZE-1; i++) { - tptr->atpool[i].next = &tptr->atpool[i+1]; + LIST_INIT(&tptr->atfree); + for (i = ATPDPSIZE-1; i >= 0; i--) + LIST_INSERT_HEAD(&tptr->atfree, &tptr->atpool[i], next); + for (i = 0; i < ATPDPHASHSIZE; i++) + LIST_INIT(&tptr->atused[i]); + for (i = 0; i < ATPDPSIZE-1; i++) tptr->ntpool[i].next = &tptr->ntpool[i+1]; - } - tptr->atfree = tptr->atpool; tptr->ntfree = tptr->ntpool; tptr->hold = 1; ISP_GET_PC_ADDR(isp, bus, lun_hash[LUN_HASH_FUNC(xpt_path_lun_id(tptr->owner))], lhp); @@ -1620,7 +1626,7 @@ isp_target_start_ctio(ispsoftc_t *isp, u } } - atp = isp_get_atpd(isp, tptr, cso->tag_id); + atp = isp_find_atpd(isp, tptr, cso->tag_id); if (atp == NULL) { isp_prt(isp, ISP_LOGERR, "%s: [0x%x] cannot find private data adjunct in %s", __func__, cso->tag_id, __func__); isp_dump_atpd(isp, tptr); @@ -2252,7 +2258,7 @@ isp_handle_platform_atio(ispsoftc_t *isp } } - atp = isp_get_atpd(isp, tptr, 0); + atp = isp_get_atpd(isp, tptr, aep->at_handle); atiop = (struct ccb_accept_tio *) SLIST_FIRST(&tptr->atios); if (atiop == NULL || atp == NULL) { /* @@ -2272,7 +2278,6 @@ isp_handle_platform_atio(ispsoftc_t *isp rls_lun_statep(isp, tptr); return; } - atp->tag = aep->at_handle; atp->rxid = aep->at_tag_val; atp->state = ATPD_STATE_ATIO; SLIST_REMOVE_HEAD(&tptr->atios, sim_links.sle); @@ -2401,12 +2406,11 @@ isp_handle_platform_atio2(ispsoftc_t *is goto noresrc; } - atp = isp_get_atpd(isp, tptr, 0); + atp = isp_get_atpd(isp, tptr, aep->at_rxid); if (atp == NULL) { goto noresrc; } - atp->tag = aep->at_rxid; atp->state = ATPD_STATE_ATIO; SLIST_REMOVE_HEAD(&tptr->atios, sim_links.sle); tptr->atio_count--; @@ -2638,12 +2642,7 @@ isp_handle_platform_atio7(ispsoftc_t *is goto noresrc; } - atp = isp_get_atpd(isp, tptr, 0); - if (atp == NULL) { - isp_prt(isp, ISP_LOGTDEBUG0, "[0x%x] out of atps", aep->at_rxid); - goto noresrc; - } - oatp = isp_get_atpd(isp, tptr, aep->at_rxid); + oatp = isp_find_atpd(isp, tptr, aep->at_rxid); if (oatp) { isp_prt(isp, ISP_LOGTDEBUG0, "[0x%x] tag wraparound in isp_handle_platforms_atio7 (N-Port Handle 0x%04x S_ID 0x%04x OX_ID 0x%04x) oatp state %d", aep->at_rxid, nphdl, sid, aep->at_hdr.ox_id, oatp->state); @@ -2652,8 +2651,12 @@ isp_handle_platform_atio7(ispsoftc_t *is */ goto noresrc; } + atp = isp_get_atpd(isp, tptr, aep->at_rxid); + if (atp == NULL) { + isp_prt(isp, ISP_LOGTDEBUG0, "[0x%x] out of atps", aep->at_rxid); + goto noresrc; + } atp->word3 = lp->prli_word3; - atp->tag = aep->at_rxid; atp->state = ATPD_STATE_ATIO; SLIST_REMOVE_HEAD(&tptr->atios, sim_links.sle); tptr->atio_count--; @@ -2846,7 +2849,7 @@ isp_handle_srr_notify(ispsoftc_t *isp, v isp_async(isp, ISPASYNC_TARGET_NOTIFY_ACK, inot); return; } - atp = isp_get_atpd(isp, tptr, tag); + atp = isp_find_atpd(isp, tptr, tag); if (atp == NULL) { rls_lun_statep(isp, tptr); isp_prt(isp, ISP_LOGERR, "%s: cannot find adjunct for %x in SRR Notify", __func__, tag); @@ -2905,11 +2908,11 @@ isp_handle_platform_ctio(ispsoftc_t *isp } if (IS_24XX(isp)) { - atp = isp_get_atpd(isp, tptr, ((ct7_entry_t *)arg)->ct_rxid); + atp = isp_find_atpd(isp, tptr, ((ct7_entry_t *)arg)->ct_rxid); } else if (IS_FC(isp)) { - atp = isp_get_atpd(isp, tptr, ((ct2_entry_t *)arg)->ct_rxid); + atp = isp_find_atpd(isp, tptr, ((ct2_entry_t *)arg)->ct_rxid); } else { - atp = isp_get_atpd(isp, tptr, ((ct_entry_t *)arg)->ct_fwhandle); + atp = isp_find_atpd(isp, tptr, ((ct_entry_t *)arg)->ct_fwhandle); } if (atp == NULL) { rls_lun_statep(isp, tptr); @@ -3093,7 +3096,7 @@ isp_handle_platform_notify_fc(ispsoftc_t return; } } - atp = isp_get_atpd(isp, tptr, inp->in_seqid); + atp = isp_find_atpd(isp, tptr, inp->in_seqid); if (atp) { inot = (struct ccb_immediate_notify *) SLIST_FIRST(&tptr->inots); @@ -3516,7 +3519,7 @@ isp_target_mark_aborted(ispsoftc_t *isp, } } - atp = isp_get_atpd(isp, tptr, accb->atio.tag_id); + atp = isp_find_atpd(isp, tptr, accb->atio.tag_id); if (atp == NULL) { ccb->ccb_h.status = CAM_REQ_INVALID; } else { @@ -5005,7 +5008,7 @@ isp_action(struct cam_sim *sim, union cc if (ccb->ccb_h.func_code == XPT_ACCEPT_TARGET_IO) { if (ccb->atio.tag_id) { - atio_private_data_t *atp = isp_get_atpd(isp, tptr, ccb->atio.tag_id); + atio_private_data_t *atp = isp_find_atpd(isp, tptr, ccb->atio.tag_id); if (atp) { isp_put_atpd(isp, tptr, atp); } Modified: head/sys/dev/isp/isp_freebsd.h ============================================================================== --- head/sys/dev/isp/isp_freebsd.h Thu Oct 17 20:15:14 2013 (r256704) +++ head/sys/dev/isp/isp_freebsd.h Thu Oct 17 20:19:15 2013 (r256705) @@ -95,11 +95,13 @@ void isp_put_ecmd(struct ispsoftc *, is #define ISP_TARGET_FUNCTIONS 1 #define ATPDPSIZE 4096 +#define ATPDPHASHSIZE 16 +#define ATPDPHASH(x) ((((x) >> 24) ^ ((x) >> 16) ^ ((x) >> 8) ^ (x)) & \ + ((ATPDPHASHSIZE) - 1)) #include - -typedef struct { - void * next; +typedef struct atio_private_data { + LIST_ENTRY(atio_private_data) next; uint32_t orig_datalen; uint32_t bytes_xfered; uint32_t bytes_in_transit; @@ -173,7 +175,8 @@ typedef struct tstate { inot_private_data_t * restart_queue; inot_private_data_t * ntfree; inot_private_data_t ntpool[ATPDPSIZE]; - atio_private_data_t * atfree; + LIST_HEAD(, atio_private_data) atfree; + LIST_HEAD(, atio_private_data) atused[ATPDPHASHSIZE]; atio_private_data_t atpool[ATPDPSIZE]; } tstate_t; Modified: head/sys/dev/isp/ispvar.h ============================================================================== --- head/sys/dev/isp/ispvar.h Thu Oct 17 20:15:14 2013 (r256704) +++ head/sys/dev/isp/ispvar.h Thu Oct 17 20:19:15 2013 (r256705) @@ -614,8 +614,9 @@ struct ispsoftc { volatile mbreg_t isp_curmbx; /* currently active mailbox command */ volatile uint32_t isp_reqodx; /* index of last ISP pickup */ volatile uint32_t isp_reqidx; /* index of next request */ - volatile uint32_t isp_residx; /* index of next result */ + volatile uint32_t isp_residx; /* index of last ISP write */ volatile uint32_t isp_resodx; /* index of next result */ + volatile uint32_t isp_atioodx; /* index of next ATIO */ volatile uint32_t isp_obits; /* mailbox command output */ volatile uint32_t isp_serno; /* rolling serial number */ volatile uint16_t isp_mboxtmp[MAX_MAILBOX]; From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 21:06:21 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id EDCC7A26; Thu, 17 Oct 2013 21:06:20 +0000 (UTC) (envelope-from cognet@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id DAFD322B9; Thu, 17 Oct 2013 21:06:20 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9HL6KZP043392; Thu, 17 Oct 2013 21:06:20 GMT (envelope-from cognet@svn.freebsd.org) Received: (from cognet@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9HL6K83043389; Thu, 17 Oct 2013 21:06:20 GMT (envelope-from cognet@svn.freebsd.org) Message-Id: <201310172106.r9HL6K83043389@svn.freebsd.org> From: Olivier Houchard Date: Thu, 17 Oct 2013 21:06:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256707 - in head/sys/arm: arm include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 21:06:21 -0000 Author: cognet Date: Thu Oct 17 21:06:19 2013 New Revision: 256707 URL: http://svnweb.freebsd.org/changeset/base/256707 Log: - Switch to use WBWA mappings for page tables on armv6, this is needed for SMP. - Fix PTE_SYNC() for PIPT L2 caches, using the virtual address wasn't so useful. - Use PTE_SYNC() for >= armv6 Modified: head/sys/arm/arm/cpufunc_asm_armv7.S head/sys/arm/arm/pmap-v6.c head/sys/arm/include/pmap.h Modified: head/sys/arm/arm/cpufunc_asm_armv7.S ============================================================================== --- head/sys/arm/arm/cpufunc_asm_armv7.S Thu Oct 17 20:23:28 2013 (r256706) +++ head/sys/arm/arm/cpufunc_asm_armv7.S Thu Oct 17 21:06:19 2013 (r256707) @@ -57,9 +57,9 @@ __FBSDID("$FreeBSD$"); #define PT_OUTER_WBWA (1 << 3) #ifdef SMP -#define PT_ATTR (PT_S|PT_INNER_WT|PT_OUTER_WT|PT_NOS) +#define PT_ATTR (PT_S|PT_INNER_WBWA|PT_OUTER_WBWA|PT_NOS) #else -#define PT_ATTR (PT_INNER_WT|PT_OUTER_WT) +#define PT_ATTR (PT_INNER_WBWA|PT_OUTER_WBWA) #endif ENTRY(armv7_setttb) @@ -98,7 +98,7 @@ ENTRY(armv7_tlb_flushID_SE) ldr r1, .Lpage_mask bic r0, r0, r1 #ifdef SMP - mcr p15, 0, r0, c8, c3, 1 /* flush D tlb single entry Inner Shareable*/ + mcr p15, 0, r0, c8, c3, 3 /* flush D tlb single entry Inner Shareable*/ mcr p15, 0, r0, c7, c1, 6 /* flush BTB Inner Shareable */ #else mcr p15, 0, r0, c8, c7, 1 /* flush D tlb single entry */ Modified: head/sys/arm/arm/pmap-v6.c ============================================================================== --- head/sys/arm/arm/pmap-v6.c Thu Oct 17 20:23:28 2013 (r256706) +++ head/sys/arm/arm/pmap-v6.c Thu Oct 17 21:06:19 2013 (r256707) @@ -2441,6 +2441,8 @@ vm_paddr_t pmap_kextract(vm_offset_t va) { + if (kernel_vm_end == 0) + return (0); return (pmap_extract_locked(kernel_pmap, va)); } @@ -3295,9 +3297,11 @@ pmap_extract(pmap_t pmap, vm_offset_t va { vm_paddr_t pa; - PMAP_LOCK(pmap); + if (kernel_vm_end != 0) + PMAP_LOCK(pmap); pa = pmap_extract_locked(pmap, va); - PMAP_UNLOCK(pmap); + if (kernel_vm_end != 0) + PMAP_UNLOCK(pmap); return (pa); } @@ -3310,7 +3314,7 @@ pmap_extract_locked(pmap_t pmap, vm_offs vm_paddr_t pa; u_int l1idx; - if (pmap != kernel_pmap) + if (kernel_vm_end != 0 && pmap != kernel_pmap) PMAP_ASSERT_LOCKED(pmap); l1idx = L1_IDX(va); l1pd = pmap->pm_l1->l1_kva[l1idx]; Modified: head/sys/arm/include/pmap.h ============================================================================== --- head/sys/arm/include/pmap.h Thu Oct 17 20:23:28 2013 (r256706) +++ head/sys/arm/include/pmap.h Thu Oct 17 21:06:19 2013 (r256707) @@ -63,7 +63,7 @@ #endif #define PTE_CACHE 6 #define PTE_DEVICE 2 -#define PTE_PAGETABLE 4 +#define PTE_PAGETABLE 6 #else #define PTE_NOCACHE 1 #define PTE_CACHE 2 @@ -489,7 +489,7 @@ extern int pmap_needs_pte_sync; #if (ARM_MMU_SA1 == 1) && (ARM_NMMUS == 1) #define PMAP_NEEDS_PTE_SYNC 1 #define PMAP_INCLUDE_PTE_SYNC -#elif defined(CPU_XSCALE_81342) +#elif defined(CPU_XSCALE_81342) || defined(ARM_ARCH_7) || defined(ARM_ARCH_7A) #define PMAP_NEEDS_PTE_SYNC 1 #define PMAP_INCLUDE_PTE_SYNC #elif (ARM_MMU_SA1 == 0) @@ -559,11 +559,18 @@ extern int pmap_needs_pte_sync; #define PMAP_INCLUDE_PTE_SYNC #endif +#ifdef ARM_L2_PIPT +#define _sync_l2(pte, size) cpu_l2cache_wb_range(vtophys(pte), size) +#else +#define _sync_l2(pte, size) cpu_l2_cache_wb_range(pte, size) +#endif + #define PTE_SYNC(pte) \ do { \ if (PMAP_NEEDS_PTE_SYNC) { \ cpu_dcache_wb_range((vm_offset_t)(pte), sizeof(pt_entry_t));\ - cpu_l2cache_wb_range((vm_offset_t)(pte), sizeof(pt_entry_t));\ + cpu_drain_writebuf(); \ + _sync_l2((vm_offset_t)(pte), sizeof(pt_entry_t));\ } else \ cpu_drain_writebuf(); \ } while (/*CONSTCOND*/0) @@ -573,7 +580,8 @@ do { \ if (PMAP_NEEDS_PTE_SYNC) { \ cpu_dcache_wb_range((vm_offset_t)(pte), \ (cnt) << 2); /* * sizeof(pt_entry_t) */ \ - cpu_l2cache_wb_range((vm_offset_t)(pte), \ + cpu_drain_writebuf(); \ + _sync_l2((vm_offset_t)(pte), \ (cnt) << 2); /* * sizeof(pt_entry_t) */ \ } else \ cpu_drain_writebuf(); \ From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 21:38:14 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C6336BE4; Thu, 17 Oct 2013 21:38:14 +0000 (UTC) (envelope-from cognet@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id B3F2124AD; Thu, 17 Oct 2013 21:38:14 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9HLcE17060003; Thu, 17 Oct 2013 21:38:14 GMT (envelope-from cognet@svn.freebsd.org) Received: (from cognet@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9HLcEt3060000; Thu, 17 Oct 2013 21:38:14 GMT (envelope-from cognet@svn.freebsd.org) Message-Id: <201310172138.r9HLcEt3060000@svn.freebsd.org> From: Olivier Houchard Date: Thu, 17 Oct 2013 21:38:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256708 - head/sys/arm/include X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 21:38:14 -0000 Author: cognet Date: Thu Oct 17 21:38:14 2013 New Revision: 256708 URL: http://svnweb.freebsd.org/changeset/base/256708 Log: Spell cpu_l2cache_wb_range correctly. Modified: head/sys/arm/include/pmap.h Modified: head/sys/arm/include/pmap.h ============================================================================== --- head/sys/arm/include/pmap.h Thu Oct 17 21:06:19 2013 (r256707) +++ head/sys/arm/include/pmap.h Thu Oct 17 21:38:14 2013 (r256708) @@ -562,7 +562,7 @@ extern int pmap_needs_pte_sync; #ifdef ARM_L2_PIPT #define _sync_l2(pte, size) cpu_l2cache_wb_range(vtophys(pte), size) #else -#define _sync_l2(pte, size) cpu_l2_cache_wb_range(pte, size) +#define _sync_l2(pte, size) cpu_l2cache_wb_range(pte, size) #endif #define PTE_SYNC(pte) \ From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 21:47:23 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 98DB32A4; Thu, 17 Oct 2013 21:47:23 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from mail.allbsd.org (gatekeeper.allbsd.org [IPv6:2001:2f0:104:e001::32]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 16B752537; Thu, 17 Oct 2013 21:47:22 +0000 (UTC) Received: from alph.d.allbsd.org (p4181-ipbf1307funabasi.chiba.ocn.ne.jp [123.225.173.181]) (authenticated bits=128) by mail.allbsd.org (8.14.5/8.14.5) with ESMTP id r9HLl3rM025406 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 18 Oct 2013 06:47:13 +0900 (JST) (envelope-from hrs@FreeBSD.org) Received: from localhost (localhost [IPv6:::1]) (authenticated bits=0) by alph.d.allbsd.org (8.14.7/8.14.5) with ESMTP id r9HLl1Mw047169; Fri, 18 Oct 2013 06:47:03 +0900 (JST) (envelope-from hrs@FreeBSD.org) Date: Fri, 18 Oct 2013 04:42:46 +0900 (JST) Message-Id: <20131018.044246.2108369934241943610.hrs@allbsd.org> To: glebius@FreeBSD.org Subject: Re: svn commit: r256512 - head/usr.bin/netstat From: Hiroki Sato In-Reply-To: <201310150955.r9F9t8pq084143@svn.freebsd.org> References: <201310150955.r9F9t8pq084143@svn.freebsd.org> X-PGPkey-fingerprint: BDB3 443F A5DD B3D0 A530 FFD7 4F2C D3D8 2793 CF2D X-Mailer: Mew version 6.5 on Emacs 24.3 / Mule 6.0 (HANACHIRUSATO) Mime-Version: 1.0 Content-Type: Multipart/Signed; protocol="application/pgp-signature"; micalg=pgp-sha1; boundary="--Security_Multipart(Fri_Oct_18_04_42_46_2013_237)--" Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamav-milter 0.97.4 at gatekeeper.allbsd.org X-Virus-Status: Clean X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (mail.allbsd.org [133.31.130.32]); Fri, 18 Oct 2013 06:47:13 +0900 (JST) X-Spam-Status: No, score=-99.1 required=13.0 tests=CONTENT_TYPE_PRESENT, SPF_SOFTFAIL,USER_IN_WHITELIST autolearn=no version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on gatekeeper.allbsd.org Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 21:47:23 -0000 ----Security_Multipart(Fri_Oct_18_04_42_46_2013_237)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Gleb Smirnoff wrote in <201310150955.r9F9t8pq084143@svn.freebsd.org>: gl> Author: glebius gl> Date: Tue Oct 15 09:55:07 2013 gl> New Revision: 256512 gl> URL: http://svnweb.freebsd.org/changeset/base/256512 gl> gl> Log: gl> Rewrite netstat/if.c to use getifaddrs(3) and getifmaddrs(3) instead of gl> libkvm digging in kernel memory. This is possible since r231506 made gl> getifaddrs(3) to supply if_data for each ifaddr. gl> gl> The pros of this change is that now netstat(1) doesn't know about kernel gl> struct ifnet and struct ifaddr. And these structs are about to change gl> significantly in head soon. New netstat binary will work well with 10.0 gl> and any future kernel. gl> gl> The cons is that now it isn't possible to obtain interface statistics gl> from a vmcore. I think this should be documented in netstat(8) man page. -- Hiroki ----Security_Multipart(Fri_Oct_18_04_42_46_2013_237)-- Content-Type: application/pgp-signature Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.13 (FreeBSD) iEYEABECAAYFAlJgPbYACgkQTyzT2CeTzy0U1gCcCLgz056Zzm9mU5gWABWwG3MV 10sAmwRHUIgljJ6DOez4Pu/aWODm62ou =azU3 -----END PGP SIGNATURE----- ----Security_Multipart(Fri_Oct_18_04_42_46_2013_237)---- From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 21:56:39 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id EFBF37C2; Thu, 17 Oct 2013 21:56:39 +0000 (UTC) (envelope-from grehan@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id DBAB225C6; Thu, 17 Oct 2013 21:56:39 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9HLudkE069723; Thu, 17 Oct 2013 21:56:39 GMT (envelope-from grehan@svn.freebsd.org) Received: (from grehan@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9HLudff069722; Thu, 17 Oct 2013 21:56:39 GMT (envelope-from grehan@svn.freebsd.org) Message-Id: <201310172156.r9HLudff069722@svn.freebsd.org> From: Peter Grehan Date: Thu, 17 Oct 2013 21:56:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256709 - head/usr.sbin/bhyve X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 21:56:40 -0000 Author: grehan Date: Thu Oct 17 21:56:39 2013 New Revision: 256709 URL: http://svnweb.freebsd.org/changeset/base/256709 Log: Eliminate unconditional debug printfs. Linux writes to these nominally read-only registers, so avoid having bhyve write warning messages to stdout when the reg writes can be safely ignored. Change the WPRINTF to DPRINTF which is conditional. Reviewed by: mav Discussed with: mav, Zhixiang Yu MFC after: 3 days Modified: head/usr.sbin/bhyve/pci_ahci.c Modified: head/usr.sbin/bhyve/pci_ahci.c ============================================================================== --- head/usr.sbin/bhyve/pci_ahci.c Thu Oct 17 21:38:14 2013 (r256708) +++ head/usr.sbin/bhyve/pci_ahci.c Thu Oct 17 21:56:39 2013 (r256709) @@ -1543,7 +1543,7 @@ pci_ahci_host_write(struct pci_ahci_soft case AHCI_PI: case AHCI_VS: case AHCI_CAP2: - WPRINTF("pci_ahci_host: read only registers 0x%"PRIx64"\n", offset); + DPRINTF("pci_ahci_host: read only registers 0x%"PRIx64"\n", offset); break; case AHCI_GHC: if (value & AHCI_GHC_HR) From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 22:00:35 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id D020D9F6; Thu, 17 Oct 2013 22:00:35 +0000 (UTC) (envelope-from zont@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id BC2532615; Thu, 17 Oct 2013 22:00:35 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9HM0ZAE072007; Thu, 17 Oct 2013 22:00:35 GMT (envelope-from zont@svn.freebsd.org) Received: (from zont@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9HM0ZFM072006; Thu, 17 Oct 2013 22:00:35 GMT (envelope-from zont@svn.freebsd.org) Message-Id: <201310172200.r9HM0ZFM072006@svn.freebsd.org> From: Andrey Zonov Date: Thu, 17 Oct 2013 22:00:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256710 - head/tools/build/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 22:00:36 -0000 Author: zont Date: Thu Oct 17 22:00:35 2013 New Revision: 256710 URL: http://svnweb.freebsd.org/changeset/base/256710 Log: Add lot of missed files and dirs Modified: head/tools/build/mk/OptionalObsoleteFiles.inc Modified: head/tools/build/mk/OptionalObsoleteFiles.inc ============================================================================== --- head/tools/build/mk/OptionalObsoleteFiles.inc Thu Oct 17 21:56:39 2013 (r256709) +++ head/tools/build/mk/OptionalObsoleteFiles.inc Thu Oct 17 22:00:35 2013 (r256710) @@ -125,6 +125,7 @@ OLD_FILES+=usr/include/netnatm/addr.h OLD_FILES+=usr/include/netnatm/api/atmapi.h OLD_FILES+=usr/include/netnatm/api/ccatm.h OLD_FILES+=usr/include/netnatm/api/unisap.h +OLD_DIRS+=usr/include/netnatm/api OLD_FILES+=usr/include/netnatm/msg/uni_config.h OLD_FILES+=usr/include/netnatm/msg/uni_hdr.h OLD_FILES+=usr/include/netnatm/msg/uni_ie.h @@ -132,13 +133,16 @@ OLD_FILES+=usr/include/netnatm/msg/uni_m OLD_FILES+=usr/include/netnatm/msg/unimsglib.h OLD_FILES+=usr/include/netnatm/msg/uniprint.h OLD_FILES+=usr/include/netnatm/msg/unistruct.h +OLD_DIRS+=usr/include/netnatm/msg OLD_FILES+=usr/include/netnatm/saal/sscfu.h OLD_FILES+=usr/include/netnatm/saal/sscfudef.h OLD_FILES+=usr/include/netnatm/saal/sscop.h OLD_FILES+=usr/include/netnatm/saal/sscopdef.h +OLD_DIRS+=usr/include/netnatm/saal OLD_FILES+=usr/include/netnatm/sig/uni.h OLD_FILES+=usr/include/netnatm/sig/unidef.h OLD_FILES+=usr/include/netnatm/sig/unisig.h +OLD_DIRS+=usr/include/netnatm/sig OLD_FILES+=usr/include/netnatm/unimsg.h OLD_FILES+=usr/lib/libngatm.a OLD_FILES+=usr/lib/libngatm.so @@ -154,6 +158,7 @@ OLD_FILES+=usr/lib32/libngatm_p.a .endif OLD_FILES+=usr/share/doc/atm/atmconfig.help OLD_FILES+=usr/share/doc/atm/atmconfig_device.help +OLD_DIRS+=usr/share/doc/atm OLD_FILES+=usr/share/man/man1/sscop.1.gz OLD_FILES+=usr/share/man/man3/libngatm.3.gz OLD_FILES+=usr/share/man/man3/snmp_atm.3.gz @@ -191,6 +196,7 @@ OLD_FILES+=usr/share/man/man8/authpf-noi OLD_FILES+=etc/bluetooth/hcsecd.conf OLD_FILES+=etc/bluetooth/hosts OLD_FILES+=etc/bluetooth/protocols +OLD_DIRS+=etc/bluetooth OLD_FILES+=usr/bin/bthost OLD_FILES+=usr/bin/btsockstat OLD_FILES+=usr/bin/rfcomm_sppd @@ -322,6 +328,7 @@ OLD_FILES+=usr/bin/calendar OLD_FILES+=usr/share/calendar/calendar.all OLD_FILES+=usr/share/calendar/calendar.australia OLD_FILES+=usr/share/calendar/calendar.birthday +OLD_FILES+=usr/share/calendar/calendar.brazilian OLD_FILES+=usr/share/calendar/calendar.christian OLD_FILES+=usr/share/calendar/calendar.computer OLD_FILES+=usr/share/calendar/calendar.croatian @@ -341,8 +348,8 @@ OLD_FILES+=usr/share/calendar/calendar.s OLD_FILES+=usr/share/calendar/calendar.ukrainian OLD_FILES+=usr/share/calendar/calendar.usholiday OLD_FILES+=usr/share/calendar/calendar.world -OLD_DIRS+=usr/share/calendar/de_AT.ISO_8859-15 OLD_FILES+=usr/share/calendar/de_AT.ISO_8859-15/calendar.feiertag +OLD_DIRS+=usr/share/calendar/de_AT.ISO_8859-15 OLD_FILES+=usr/share/calendar/de_DE.ISO8859-1/calendar.all OLD_FILES+=usr/share/calendar/de_DE.ISO8859-1/calendar.feiertag OLD_FILES+=usr/share/calendar/de_DE.ISO8859-1/calendar.geschichte @@ -350,28 +357,52 @@ OLD_FILES+=usr/share/calendar/de_DE.ISO8 OLD_FILES+=usr/share/calendar/de_DE.ISO8859-1/calendar.literatur OLD_FILES+=usr/share/calendar/de_DE.ISO8859-1/calendar.musik OLD_FILES+=usr/share/calendar/de_DE.ISO8859-1/calendar.wissenschaft +OLD_DIRS+=usr/share/calendar/de_DE.ISO8859-1 OLD_FILES+=usr/share/calendar/de_DE.ISO8859-15 OLD_FILES+=usr/share/calendar/fr_FR.ISO8859-1/calendar.all OLD_FILES+=usr/share/calendar/fr_FR.ISO8859-1/calendar.fetes OLD_FILES+=usr/share/calendar/fr_FR.ISO8859-1/calendar.french OLD_FILES+=usr/share/calendar/fr_FR.ISO8859-1/calendar.jferies OLD_FILES+=usr/share/calendar/fr_FR.ISO8859-1/calendar.proverbes +OLD_DIRS+=usr/share/calendar/fr_FR.ISO8859-1 OLD_FILES+=usr/share/calendar/fr_FR.ISO8859-15 OLD_FILES+=usr/share/calendar/hr_HR.ISO8859-2/calendar.all OLD_FILES+=usr/share/calendar/hr_HR.ISO8859-2/calendar.praznici +OLD_DIRS+=usr/share/calendar/hr_HR.ISO8859-2 OLD_FILES+=usr/share/calendar/hu_HU.ISO8859-2/calendar.all OLD_FILES+=usr/share/calendar/hu_HU.ISO8859-2/calendar.nevnapok OLD_FILES+=usr/share/calendar/hu_HU.ISO8859-2/calendar.unnepek +OLD_DIRS+=usr/share/calendar/hu_HU.ISO8859-2 +OLD_FILES+=usr/share/calendar/pt_BR.ISO8859-1/calendar.all +OLD_FILES+=usr/share/calendar/pt_BR.ISO8859-1/calendar.commemorative +OLD_FILES+=usr/share/calendar/pt_BR.ISO8859-1/calendar.holidays +OLD_FILES+=usr/share/calendar/pt_BR.ISO8859-1/calendar.mcommemorative +OLD_DIRS+=usr/share/calendar/pt_BR.ISO8859-1 +OLD_FILES+=usr/share/calendar/pt_BR.UTF-8/calendar.all +OLD_FILES+=usr/share/calendar/pt_BR.UTF-8/calendar.commemorative +OLD_FILES+=usr/share/calendar/pt_BR.UTF-8/calendar.holidays +OLD_FILES+=usr/share/calendar/pt_BR.UTF-8/calendar.mcommemorative +OLD_DIRS+=usr/share/calendar/pt_BR.UTF-8 OLD_FILES+=usr/share/calendar/ru_RU.KOI8-R/calendar.all OLD_FILES+=usr/share/calendar/ru_RU.KOI8-R/calendar.common OLD_FILES+=usr/share/calendar/ru_RU.KOI8-R/calendar.holiday OLD_FILES+=usr/share/calendar/ru_RU.KOI8-R/calendar.military OLD_FILES+=usr/share/calendar/ru_RU.KOI8-R/calendar.orthodox OLD_FILES+=usr/share/calendar/ru_RU.KOI8-R/calendar.pagan +OLD_DIRS+=usr/share/calendar/ru_RU.KOI8-R +OLD_FILES+=usr/share/calendar/ru_RU.UTF-8/calendar.all +OLD_FILES+=usr/share/calendar/ru_RU.UTF-8/calendar.common +OLD_FILES+=usr/share/calendar/ru_RU.UTF-8/calendar.holiday +OLD_FILES+=usr/share/calendar/ru_RU.UTF-8/calendar.military +OLD_FILES+=usr/share/calendar/ru_RU.UTF-8/calendar.orthodox +OLD_FILES+=usr/share/calendar/ru_RU.UTF-8/calendar.pagan +OLD_DIRS+=usr/share/calendar/ru_RU.UTF-8 OLD_FILES+=usr/share/calendar/uk_UA.KOI8-U/calendar.all OLD_FILES+=usr/share/calendar/uk_UA.KOI8-U/calendar.holiday OLD_FILES+=usr/share/calendar/uk_UA.KOI8-U/calendar.misc OLD_FILES+=usr/share/calendar/uk_UA.KOI8-U/calendar.orthodox +OLD_DIRS+=usr/share/calendar/uk_UA.KOI8-U +OLD_DIRS+=usr/share/calendar OLD_FILES+=usr/share/man/man1/calendar.1.gz .endif @@ -388,9 +419,17 @@ OLD_FILES+=usr/bin/ctfmerge OLD_FILES+=usr/bin/sgsmsg OLD_FILES+=usr/lib/dtrace/drti.o OLD_FILES+=usr/lib/dtrace/errno.d +OLD_FILES+=usr/lib/dtrace/io.d +OLD_FILES+=usr/lib/dtrace/ip.d OLD_FILES+=usr/lib/dtrace/psinfo.d +.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "i386" +OLD_FILES+=usr/lib/dtrace/regs_x86.d +.endif OLD_FILES+=usr/lib/dtrace/signal.d +OLD_FILES+=usr/lib/dtrace/tcp.d +OLD_FILES+=usr/lib/dtrace/udp.d OLD_FILES+=usr/lib/dtrace/unistd.d +OLD_DIRS+=usr/lib/dtrace OLD_FILES+=usr/lib/libavl.a OLD_FILES+=usr/lib/libavl.so OLD_FILES+=usr/lib/libavl_p.a @@ -411,6 +450,7 @@ OLD_FILES+=usr/lib/libuutil.so OLD_FILES+=usr/lib/libuutil_p.a .if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64" OLD_FILES+=usr/lib32/dtrace/drti.o +OLD_DIRS+=usr/lib32/dtrace OLD_FILES+=usr/lib32/libavl.a OLD_FILES+=usr/lib32/libavl.so OLD_LIBS+=usr/lib32/libavl.so.2 @@ -448,6 +488,7 @@ OLD_FILES+=boot/zfsloader OLD_FILES+=etc/periodic/daily/404.status-zfs OLD_FILES+=etc/periodic/daily/800.scrub-zfs OLD_LIBS+=lib/libzfs.so.2 +OLD_LIBS+=lib/libzfs_core.so.2 OLD_LIBS+=lib/libzpool.so.2 OLD_FILES+=rescue/zfs OLD_FILES+=rescue/zpool @@ -457,6 +498,9 @@ OLD_FILES+=usr/bin/zinject OLD_FILES+=usr/bin/ztest OLD_FILES+=usr/lib/libzfs.a OLD_FILES+=usr/lib/libzfs.so +OLD_FILES+=usr/lib/libzfs_core.a +OLD_FILES+=usr/lib/libzfs_core.so +OLD_FILES+=usr/lib/libzfs_core_p.a OLD_FILES+=usr/lib/libzfs_p.a OLD_FILES+=usr/lib/libzpool.a OLD_FILES+=usr/lib/libzpool.so @@ -464,6 +508,10 @@ OLD_FILES+=usr/lib/libzpool.so OLD_FILES+=usr/lib32/libzfs.a OLD_FILES+=usr/lib32/libzfs.so OLD_LIBS+=usr/lib32/libzfs.so.2 +OLD_FILES+=usr/lib32/libzfs_core.a +OLD_FILES+=usr/lib32/libzfs_core.so +OLD_LIBS+=usr/lib32/libzfs_core.so.2 +OLD_FILES+=usr/lib32/libzfs_core_p.a OLD_FILES+=usr/lib32/libzfs_p.a OLD_FILES+=usr/lib32/libzpool.a OLD_FILES+=usr/lib32/libzpool.so @@ -1172,11 +1220,13 @@ OLD_FILES+=usr/libexec/cc1plus .if ${MK_DICT} == no OLD_FILES+=usr/share/dict/README +OLD_FILES+=usr/share/dict/eign OLD_FILES+=usr/share/dict/freebsd OLD_FILES+=usr/share/dict/propernames OLD_FILES+=usr/share/dict/web2 OLD_FILES+=usr/share/dict/web2a OLD_FILES+=usr/share/dict/words +OLD_DIRS+=usr/share/dict .endif #.if ${MK_EXAMPLES} == no @@ -1217,6 +1267,7 @@ OLD_FILES+=usr/games/random OLD_FILES+=usr/games/rot13 OLD_FILES+=usr/games/strfile OLD_FILES+=usr/games/unstr +OLD_DIRS+=usr/games OLD_FILES+=usr/share/games/fortune/fortunes OLD_FILES+=usr/share/games/fortune/fortunes.dat OLD_FILES+=usr/share/games/fortune/freebsd-tips @@ -1233,6 +1284,8 @@ OLD_FILES+=usr/share/games/fortune/start OLD_FILES+=usr/share/games/fortune/startrek.dat OLD_FILES+=usr/share/games/fortune/zippy OLD_FILES+=usr/share/games/fortune/zippy.dat +OLD_DIRS+=usr/share/games/fortune +OLD_DIRS+=usr/share/games OLD_FILES+=usr/share/man/man6/bcd.6.gz OLD_FILES+=usr/share/man/man6/caesar.6.gz OLD_FILES+=usr/share/man/man6/factor.6.gz @@ -1308,9 +1361,12 @@ OLD_FILES+=usr/share/man/man1/kgdb.1.gz .if ${MK_GPIB} == no OLD_FILES+=usr/include/dev/ieee488/ibfoo_int.h +OLD_FILES+=usr/include/dev/ieee488/tnt4882.h OLD_FILES+=usr/include/dev/ieee488/ugpib.h OLD_FILES+=usr/include/dev/ieee488/upd7210.h +OLD_DIRS+=usr/include/dev/ieee488 OLD_FILES+=usr/include/gpib/gpib.h +OLD_DIRS+=usr/include/gpib OLD_FILES+=usr/lib/libgpib.a OLD_FILES+=usr/lib/libgpib.so OLD_LIBS+=usr/lib/libgpib.so.3 @@ -2022,6 +2078,8 @@ OLD_FILES+=usr/share/examples/ipfilter/i OLD_FILES+=usr/share/examples/ipfilter/ipf-howto.txt OLD_FILES+=usr/share/examples/ipfilter/examples.txt OLD_FILES+=usr/share/examples/ipfilter/rules.txt +OLD_FILES+=usr/share/examples/ipfilter/mkfilters +OLD_DIRS+=usr/share/examples/ipfilter OLD_FILES+=usr/share/man/man1/ipftest.1.gz OLD_FILES+=usr/share/man/man1/ipresend.1.gz OLD_FILES+=usr/share/man/man4/ipf.4.gz @@ -2128,6 +2186,7 @@ OLD_FILES+=usr/include/kadm5/kadm5-proto OLD_FILES+=usr/include/kadm5/kadm5-pwcheck.h OLD_FILES+=usr/include/kadm5/kadm5_err.h OLD_FILES+=usr/include/kadm5/private.h +OLD_DIRS+=usr/include/kadm5 OLD_FILES+=usr/include/kafs.h OLD_FILES+=usr/include/kdc-protos.h OLD_FILES+=usr/include/kdc.h @@ -2139,6 +2198,7 @@ OLD_FILES+=usr/include/krb5/ccache_plugi OLD_FILES+=usr/include/krb5/locate_plugin.h OLD_FILES+=usr/include/krb5/send_to_kdc_plugin.h OLD_FILES+=usr/include/krb5/windc_plugin.h +OLD_DIRS+=usr/include/krb5 OLD_FILES+=usr/include/krb5_asn1.h OLD_FILES+=usr/include/krb5_ccapi.h OLD_FILES+=usr/include/krb5_err.h @@ -3230,13 +3290,16 @@ OLD_FILES+=usr/bin/lprm OLD_FILES+=usr/libexec/lpr/ru/bjc-240.sh.sample OLD_FILES+=usr/libexec/lpr/ru/koi2alt OLD_FILES+=usr/libexec/lpr/ru/koi2855 +OLD_DIRS+=usr/libexec/lpr/ru OLD_FILES+=usr/libexec/lpr/lpf +OLD_DIRS+=usr/libexec/lpr OLD_FILES+=usr/sbin/chkprintcap OLD_FILES+=usr/sbin/lpc OLD_FILES+=usr/sbin/lpd OLD_FILES+=usr/sbin/lptest OLD_FILES+=usr/sbin/pac OLD_FILES+=usr/share/doc/smm/07.lpd/paper.ascii.gz +OLD_DIRS+=usr/share/doc/smm/07.lpd OLD_FILES+=usr/share/examples/etc/hosts.lpd OLD_FILES+=usr/share/examples/etc/printcap OLD_FILES+=usr/share/man/man1/lp.1.gz @@ -3382,6 +3445,7 @@ OLD_FILES+=usr/share/doc/ntp/rdebug.html OLD_FILES+=usr/share/doc/ntp/refclock.html OLD_FILES+=usr/share/doc/ntp/release.html OLD_FILES+=usr/share/doc/ntp/tickadj.html +OLD_DIRS+=usr/share/doc/ntp OLD_FILES+=usr/share/examples/etc/ntp.conf OLD_FILES+=usr/share/man/man5/ntp.conf.5.gz OLD_FILES+=usr/share/man/man5/ntp.keys.5.gz @@ -3532,6 +3596,7 @@ OLD_FILES+=usr/share/examples/pf/queue2 OLD_FILES+=usr/share/examples/pf/queue3 OLD_FILES+=usr/share/examples/pf/queue4 OLD_FILES+=usr/share/examples/pf/spamd +OLD_DIRS+=usr/share/examples/pf OLD_FILES+=usr/share/man/man4/pf.4.gz OLD_FILES+=usr/share/man/man4/pflog.4.gz OLD_FILES+=usr/share/man/man4/pfsync.4.gz @@ -3581,6 +3646,7 @@ OLD_FILES+=usr/share/man/man8/portsnap.8 .if ${MK_PPP} == no OLD_FILES+=etc/ppp/ppp.conf +OLD_DIRS+=etc/ppp OLD_FILES+=usr/sbin/ppp OLD_FILES+=usr/sbin/pppctl OLD_FILES+=usr/share/man/man8/ppp.8.gz @@ -3766,11 +3832,14 @@ OLD_FILES+=bin/rmail OLD_FILES+=usr/bin/vacation OLD_FILES+=usr/include/libmilter/mfapi.h OLD_FILES+=usr/include/libmilter/mfdef.h +OLD_DIRS+=usr/include/libmilter OLD_FILES+=usr/lib/libmilter.a +OLD_FILES+=usr/lib/libmilter.so OLD_LIBS+=usr/lib/libmilter.so.5 OLD_FILES+=usr/lib/libmilter_p.a .if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64" OLD_FILES+=usr/lib32/libmilter.a +OLD_FILES+=usr/lib32/libmilter.so OLD_LIBS+=usr/lib32/libmilter.so.5 OLD_FILES+=usr/lib32/libmilter_p.a .endif @@ -3782,6 +3851,7 @@ OLD_FILES+=usr/sbin/mailstats OLD_FILES+=usr/sbin/makemap OLD_FILES+=usr/sbin/praliases OLD_FILES+=usr/share/doc/smm/08.sendmailop/paper.ascii.gz +OLD_DIRS+=usr/share/doc/smm/08.sendmailop OLD_FILES+=usr/share/man/man1/mailq.1.gz OLD_FILES+=usr/share/man/man1/newaliases.1.gz OLD_FILES+=usr/share/man/man1/vacation.1.gz @@ -3833,12 +3903,14 @@ OLD_FILES+=usr/share/sendmail/cf/cf/ucba OLD_FILES+=usr/share/sendmail/cf/cf/ucbvax.mc OLD_FILES+=usr/share/sendmail/cf/cf/uucpproto.mc OLD_FILES+=usr/share/sendmail/cf/cf/vangogh.cs.mc +OLD_DIRS+=usr/share/sendmail/cf/cf OLD_FILES+=usr/share/sendmail/cf/domain/Berkeley.EDU.m4 OLD_FILES+=usr/share/sendmail/cf/domain/CS.Berkeley.EDU.m4 OLD_FILES+=usr/share/sendmail/cf/domain/EECS.Berkeley.EDU.m4 OLD_FILES+=usr/share/sendmail/cf/domain/S2K.Berkeley.EDU.m4 OLD_FILES+=usr/share/sendmail/cf/domain/berkeley-only.m4 OLD_FILES+=usr/share/sendmail/cf/domain/generic.m4 +OLD_DIRS+=usr/share/sendmail/cf/domain OLD_FILES+=usr/share/sendmail/cf/feature/accept_unqualified_senders.m4 OLD_FILES+=usr/share/sendmail/cf/feature/accept_unresolvable_domains.m4 OLD_FILES+=usr/share/sendmail/cf/feature/access_db.m4 @@ -3896,11 +3968,14 @@ OLD_FILES+=usr/share/sendmail/cf/feature OLD_FILES+=usr/share/sendmail/cf/feature/uucpdomain.m4 OLD_FILES+=usr/share/sendmail/cf/feature/virtuser_entire_domain.m4 OLD_FILES+=usr/share/sendmail/cf/feature/virtusertable.m4 +OLD_DIRS+=usr/share/sendmail/cf/feature OLD_FILES+=usr/share/sendmail/cf/hack/cssubdomain.m4 +OLD_DIRS+=usr/share/sendmail/cf/hack OLD_FILES+=usr/share/sendmail/cf/m4/cf.m4 OLD_FILES+=usr/share/sendmail/cf/m4/cfhead.m4 OLD_FILES+=usr/share/sendmail/cf/m4/proto.m4 OLD_FILES+=usr/share/sendmail/cf/m4/version.m4 +OLD_DIRS+=usr/share/sendmail/cf/m4 OLD_FILES+=usr/share/sendmail/cf/mailer/cyrus.m4 OLD_FILES+=usr/share/sendmail/cf/mailer/cyrusv2.m4 OLD_FILES+=usr/share/sendmail/cf/mailer/fax.m4 @@ -3913,6 +3988,7 @@ OLD_FILES+=usr/share/sendmail/cf/mailer/ OLD_FILES+=usr/share/sendmail/cf/mailer/smtp.m4 OLD_FILES+=usr/share/sendmail/cf/mailer/usenet.m4 OLD_FILES+=usr/share/sendmail/cf/mailer/uucp.m4 +OLD_DIRS+=usr/share/sendmail/cf/mailer OLD_FILES+=usr/share/sendmail/cf/ostype/a-ux.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/aix3.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/aix4.m4 @@ -3954,6 +4030,7 @@ OLD_FILES+=usr/share/sendmail/cf/ostype/ OLD_FILES+=usr/share/sendmail/cf/ostype/sco-uw-2.1.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/sco3.2.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/sinix.m4 +OLD_FILES+=usr/share/sendmail/cf/ostype/solaris11.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/solaris2.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/solaris2.ml.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/solaris2.pre5.m4 @@ -3968,12 +4045,17 @@ OLD_FILES+=usr/share/sendmail/cf/ostype/ OLD_FILES+=usr/share/sendmail/cf/ostype/unixware7.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/unknown.m4 OLD_FILES+=usr/share/sendmail/cf/ostype/uxpds.m4 +OLD_DIRS+=usr/share/sendmail/cf/ostype OLD_FILES+=usr/share/sendmail/cf/sendmail.schema OLD_FILES+=usr/share/sendmail/cf/sh/makeinfo.sh +OLD_DIRS+=usr/share/sendmail/cf/sh OLD_FILES+=usr/share/sendmail/cf/siteconfig/uucp.cogsci.m4 OLD_FILES+=usr/share/sendmail/cf/siteconfig/uucp.old.arpa.m4 OLD_FILES+=usr/share/sendmail/cf/siteconfig/uucp.ucbarpa.m4 OLD_FILES+=usr/share/sendmail/cf/siteconfig/uucp.ucbvax.m4 +OLD_DIRS+=usr/share/sendmail/cf/siteconfig +OLD_DIRS+=usr/share/sendmail/cf +OLD_DIRS+=usr/share/sendmail .endif #.if ${MK_SHAREDOCS} == no @@ -3991,35 +4073,57 @@ OLD_FILES+=rescue/csh OLD_FILES+=rescue/tcsh OLD_FILES+=usr/share/examples/tcsh/complete.tcsh OLD_FILES+=usr/share/examples/tcsh/csh-mode.el +OLD_DIRS+=usr/share/examples/tcsh OLD_FILES+=usr/share/man/man1/csh.1.gz OLD_FILES+=usr/share/man/man1/tcsh.1.gz OLD_FILES+=usr/share/nls/de_AT.ISO8859-1/tcsh.cat OLD_FILES+=usr/share/nls/de_AT.ISO8859-15/tcsh.cat +OLD_FILES+=usr/share/nls/de_AT.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/de_CH.ISO8859-1/tcsh.cat OLD_FILES+=usr/share/nls/de_CH.ISO8859-15/tcsh.cat +OLD_FILES+=usr/share/nls/de_CH.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/de_DE.ISO8859-1/tcsh.cat OLD_FILES+=usr/share/nls/de_DE.ISO8859-15/tcsh.cat +OLD_FILES+=usr/share/nls/de_DE.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/el_GR.ISO8859-7/tcsh.cat +OLD_FILES+=usr/share/nls/el_GR.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/es_ES.ISO8859-1/tcsh.cat OLD_FILES+=usr/share/nls/es_ES.ISO8859-15/tcsh.cat +OLD_FILES+=usr/share/nls/es_ES.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/et_EE.ISO8859-15/tcsh.cat +OLD_FILES+=usr/share/nls/et_EE.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/fi_FI.ISO8859-1/tcsh.cat OLD_FILES+=usr/share/nls/fi_FI.ISO8859-15/tcsh.cat +OLD_FILES+=usr/share/nls/fi_FI.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/fr_BE.ISO8859-1/tcsh.cat OLD_FILES+=usr/share/nls/fr_BE.ISO8859-15/tcsh.cat +OLD_FILES+=usr/share/nls/fr_BE.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/fr_CA.ISO8859-1/tcsh.cat OLD_FILES+=usr/share/nls/fr_CA.ISO8859-15/tcsh.cat +OLD_FILES+=usr/share/nls/fr_CA.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/fr_CH.ISO8859-1/tcsh.cat OLD_FILES+=usr/share/nls/fr_CH.ISO8859-15/tcsh.cat +OLD_FILES+=usr/share/nls/fr_CH.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/fr_FR.ISO8859-1/tcsh.cat OLD_FILES+=usr/share/nls/fr_FR.ISO8859-15/tcsh.cat +OLD_FILES+=usr/share/nls/fr_FR.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/it_CH.ISO8859-1/tcsh.cat OLD_FILES+=usr/share/nls/it_CH.ISO8859-15/tcsh.cat +OLD_FILES+=usr/share/nls/it_CH.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/it_IT.ISO8859-1/tcsh.cat OLD_FILES+=usr/share/nls/it_IT.ISO8859-15/tcsh.cat +OLD_FILES+=usr/share/nls/it_IT.UTF-8/tcsh.cat +OLD_FILES+=usr/share/nls/ja_JP.SJIS/tcsh.cat +OLD_FILES+=usr/share/nls/ja_JP.UTF-8/tcsh.cat OLD_FILES+=usr/share/nls/ja_JP.eucJP/tcsh.cat +OLD_FILES+=usr/share/nls/ru_RU.CP1251/tcsh.cat +OLD_FILES+=usr/share/nls/ru_RU.CP866/tcsh.cat +OLD_FILES+=usr/share/nls/ru_RU.ISO8859-5/tcsh.cat OLD_FILES+=usr/share/nls/ru_RU.KOI8-R/tcsh.cat +OLD_FILES+=usr/share/nls/ru_RU.UTF-8/tcsh.cat +OLD_FILES+=usr/share/nls/uk_UA.ISO8859-5/tcsh.cat OLD_FILES+=usr/share/nls/uk_UA.KOI8-U/tcsh.cat +OLD_FILES+=usr/share/nls/uk_UA.UTF-8/tcsh.cat .endif .if ${MK_TELNET} == no @@ -4093,6 +4197,7 @@ OLD_FILES+=usr/share/examples/etc/wpa_su OLD_FILES+=usr/share/examples/hostapd/hostapd.conf OLD_FILES+=usr/share/examples/hostapd/hostapd.eap_user OLD_FILES+=usr/share/examples/hostapd/hostapd.wpa_psk +OLD_DIRS+=usr/share/examples/hostapd OLD_FILES+=usr/share/man/man5/hostapd.conf.5.gz OLD_FILES+=usr/share/man/man5/wpa_supplicant.conf.5.gz OLD_FILES+=usr/share/man/man8/ancontrol.8.gz From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 22:01:19 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 397C9C2E; Thu, 17 Oct 2013 22:01:19 +0000 (UTC) (envelope-from grehan@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 25DB12627; Thu, 17 Oct 2013 22:01:19 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9HM1JD6073650; Thu, 17 Oct 2013 22:01:19 GMT (envelope-from grehan@svn.freebsd.org) Received: (from grehan@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9HM1HCf073642; Thu, 17 Oct 2013 22:01:17 GMT (envelope-from grehan@svn.freebsd.org) Message-Id: <201310172201.r9HM1HCf073642@svn.freebsd.org> From: Peter Grehan Date: Thu, 17 Oct 2013 22:01:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256711 - head/usr.sbin/bhyve X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 22:01:19 -0000 Author: grehan Date: Thu Oct 17 22:01:17 2013 New Revision: 256711 URL: http://svnweb.freebsd.org/changeset/base/256711 Log: Changes required for OpenBSD/amd64: - Allow a hostbridge to be created with AMD as a vendor. This passes the OpenBSD check to allow the use of MSI on a PCI bus. - Enable the i/o interrupt section of the mptable, and populate it with unity ISA mappings. This allows the 'legacy' IRQ mappings of the PCI serial port to be set up. Delete unused print routine that was obscuring code. - Use the '-W' option to enable virtio single-vector MSI rather than an environment variable. Update the virtio net/block drivers to query this flag when setting up interrupts.: bhyverun.c - Fix the arithmetic used to derive the century byte in RTC CMOS, as well as encoding it in BCD. Reviewed by: neel MFC after: 3 days Modified: head/usr.sbin/bhyve/bhyverun.c head/usr.sbin/bhyve/bhyverun.h head/usr.sbin/bhyve/mptbl.c head/usr.sbin/bhyve/pci_hostbridge.c head/usr.sbin/bhyve/pci_virtio_block.c head/usr.sbin/bhyve/pci_virtio_net.c head/usr.sbin/bhyve/rtc.c Modified: head/usr.sbin/bhyve/bhyverun.c ============================================================================== --- head/usr.sbin/bhyve/bhyverun.c Thu Oct 17 22:00:35 2013 (r256710) +++ head/usr.sbin/bhyve/bhyverun.c Thu Oct 17 22:01:17 2013 (r256711) @@ -81,6 +81,7 @@ int guest_ncpus; static int pincpu = -1; static int guest_vmexit_on_hlt, guest_vmexit_on_pause, disable_x2apic; +static int virtio_msix = 1; static int foundcpus; @@ -120,7 +121,7 @@ usage(int code) { fprintf(stderr, - "Usage: %s [-aehAHIP][-g ][-s ][-S ]" + "Usage: %s [-aehAHIPW][-g ][-s ][-S ]" "[-c vcpus][-p pincpu][-m mem]" " \n" " -a: local apic is in XAPIC mode (default is X2APIC)\n" @@ -131,6 +132,7 @@ usage(int code) " -H: vmexit from the guest on hlt\n" " -I: present an ioapic to the guest\n" " -P: vmexit from the guest on pause\n" + " -W: force virtio to use single-vector MSI\n" " -e: exit on unhandled i/o access\n" " -h: help\n" " -s: PCI slot config\n" @@ -169,6 +171,13 @@ fbsdrun_vmexit_on_hlt(void) return (guest_vmexit_on_hlt); } +int +fbsdrun_virtio_msix(void) +{ + + return (virtio_msix); +} + static void * fbsdrun_start_thread(void *param) { @@ -544,7 +553,7 @@ main(int argc, char *argv[]) ioapic = 0; memsize = 256 * MB; - while ((c = getopt(argc, argv, "abehAHIPp:g:c:s:S:m:")) != -1) { + while ((c = getopt(argc, argv, "abehAHIPWp:g:c:s:S:m:")) != -1) { switch (c) { case 'a': disable_x2apic = 1; @@ -591,6 +600,9 @@ main(int argc, char *argv[]) case 'e': strictio = 1; break; + case 'W': + virtio_msix = 0; + break; case 'h': usage(0); default: Modified: head/usr.sbin/bhyve/bhyverun.h ============================================================================== --- head/usr.sbin/bhyve/bhyverun.h Thu Oct 17 22:00:35 2013 (r256710) +++ head/usr.sbin/bhyve/bhyverun.h Thu Oct 17 22:01:17 2013 (r256711) @@ -47,4 +47,5 @@ int fbsdrun_muxed(void); int fbsdrun_vmexit_on_hlt(void); int fbsdrun_vmexit_on_pause(void); int fbsdrun_disable_x2apic(void); +int fbsdrun_virtio_msix(void); #endif Modified: head/usr.sbin/bhyve/mptbl.c ============================================================================== --- head/usr.sbin/bhyve/mptbl.c Thu Oct 17 22:00:35 2013 (r256710) +++ head/usr.sbin/bhyve/mptbl.c Thu Oct 17 22:01:17 2013 (r256711) @@ -71,6 +71,9 @@ __FBSDID("$FreeBSD$"); #define MPEP_FEATURES (0xBFEBFBFF) /* XXX Intel i7 */ +/* Number of i/o intr entries */ +#define MPEII_MAX_IRQ 16 + /* Define processor entry struct since gets it wrong */ typedef struct BPROCENTRY { u_char type; @@ -155,14 +158,14 @@ mpt_build_bus_entries(bus_entry_ptr mpeb memset(mpeb, 0, sizeof(*mpeb)); mpeb->type = MPCT_ENTRY_BUS; - mpeb->bus_id = ISA; - memcpy(mpeb->bus_type, MPE_BUSNAME_ISA, MPE_BUSNAME_LEN); + mpeb->bus_id = 0; + memcpy(mpeb->bus_type, MPE_BUSNAME_PCI, MPE_BUSNAME_LEN); mpeb++; memset(mpeb, 0, sizeof(*mpeb)); mpeb->type = MPCT_ENTRY_BUS; - mpeb->bus_id = PCI; - memcpy(mpeb->bus_type, MPE_BUSNAME_PCI, MPE_BUSNAME_LEN); + mpeb->bus_id = 1; + memcpy(mpeb->bus_type, MPE_BUSNAME_ISA, MPE_BUSNAME_LEN); } static void @@ -177,9 +180,8 @@ mpt_build_ioapic_entries(io_apic_entry_p mpei->apic_address = IOAPIC_PADDR; } -#ifdef notyet static void -mpt_build_ioint_entries(struct mpe_ioint *mpeii, int num_pins, int id) +mpt_build_ioint_entries(int_entry_ptr mpie, int num_pins, int id) { int pin; @@ -189,28 +191,27 @@ mpt_build_ioint_entries(struct mpe_ioint * just use the default config, tweek later if needed. */ - /* Run through all 16 pins. */ for (pin = 0; pin < num_pins; pin++) { - memset(mpeii, 0, sizeof(*mpeii)); - mpeii->entry_type = MP_ENTRY_IOINT; - mpeii->src_bus_id = MPE_BUSID_ISA; - mpeii->dst_apic_id = id; + memset(mpie, 0, sizeof(*mpie)); + mpie->type = MPCT_ENTRY_INT; + mpie->src_bus_id = 1; + mpie->dst_apic_id = id; /* * All default configs route IRQs from bus 0 to the first 16 * pins of the first I/O APIC with an APIC ID of 2. */ - mpeii->dst_apic_intin = pin; + mpie->dst_apic_int = pin; switch (pin) { case 0: /* Pin 0 is an ExtINT pin. */ - mpeii->intr_type = MPEII_INTR_EXTINT; + mpie->int_type = INTENTRY_TYPE_EXTINT; break; case 2: /* IRQ 0 is routed to pin 2. */ - mpeii->intr_type = MPEII_INTR_INT; - mpeii->src_bus_irq = 0; + mpie->int_type = INTENTRY_TYPE_INT; + mpie->src_bus_irq = 0; break; case 5: case 10: @@ -218,118 +219,20 @@ mpt_build_ioint_entries(struct mpe_ioint /* * PCI Irqs set to level triggered. */ - mpeii->intr_flags = MPEII_FLAGS_TRIGMODE_LEVEL; - mpeii->src_bus_id = MPE_BUSID_PCI; + mpie->int_flags = INTENTRY_FLAGS_TRIGGER_LEVEL; + mpie->src_bus_id = 0; + /* fall through.. */ default: /* All other pins are identity mapped. */ - mpeii->intr_type = MPEII_INTR_INT; - mpeii->src_bus_irq = pin; + mpie->int_type = INTENTRY_TYPE_INT; + mpie->src_bus_irq = pin; break; } - mpeii++; + mpie++; } } -#define COPYSTR(dest, src, bytes) \ - memcpy(dest, src, bytes); \ - str[bytes] = 0; - -static void -mptable_dump(struct mp_floating_pointer *mpfp, struct mp_config_hdr *mpch) -{ - static char str[16]; - int i; - char *cur; - - union mpe { - struct mpe_proc *proc; - struct mpe_bus *bus; - struct mpe_ioapic *ioapic; - struct mpe_ioint *ioint; - struct mpe_lint *lnit; - char *p; - }; - - union mpe mpe; - - printf(" MP Floating Pointer :\n"); - COPYSTR(str, mpfp->signature, 4); - printf("\tsignature:\t%s\n", str); - printf("\tmpch paddr:\t%x\n", mpfp->mptable_paddr); - printf("\tlength:\t%x\n", mpfp->length); - printf("\tspecrec:\t%x\n", mpfp->specrev); - printf("\tchecksum:\t%x\n", mpfp->checksum); - printf("\tfeature1:\t%x\n", mpfp->feature1); - printf("\tfeature2:\t%x\n", mpfp->feature2); - printf("\tfeature3:\t%x\n", mpfp->feature3); - printf("\tfeature4:\t%x\n", mpfp->feature4); - - printf(" MP Configuration Header :\n"); - COPYSTR(str, mpch->signature, 4); - printf(" signature: %s\n", str); - printf(" length: %x\n", mpch->length); - printf(" specrec: %x\n", mpch->specrev); - printf(" checksum: %x\n", mpch->checksum); - COPYSTR(str, mpch->oemid, MPCH_OEMID_LEN); - printf(" oemid: %s\n", str); - COPYSTR(str, mpch->prodid, MPCH_PRODID_LEN); - printf(" prodid: %s\n", str); - printf(" oem_ptr: %x\n", mpch->oem_ptr); - printf(" oem_sz: %x\n", mpch->oem_sz); - printf(" nr_entries: %x\n", mpch->nr_entries); - printf(" apic paddr: %x\n", mpch->lapic_paddr); - printf(" ext_length: %x\n", mpch->ext_length); - printf(" ext_checksum: %x\n", mpch->ext_checksum); - - cur = (char *)mpch + sizeof(*mpch); - for (i = 0; i < mpch->nr_entries; i++) { - mpe.p = cur; - switch(*mpe.p) { - case MP_ENTRY_PROC: - printf(" MP Processor Entry :\n"); - printf(" lapic_id: %x\n", mpe.proc->lapic_id); - printf(" lapic_version: %x\n", mpe.proc->lapic_version); - printf(" proc_flags: %x\n", mpe.proc->proc_flags); - printf(" proc_signature: %x\n", mpe.proc->proc_signature); - printf(" feature_flags: %x\n", mpe.proc->feature_flags); - cur += sizeof(struct mpe_proc); - break; - case MP_ENTRY_BUS: - printf(" MP Bus Entry :\n"); - printf(" busid: %x\n", mpe.bus->busid); - COPYSTR(str, mpe.bus->busname, MPE_BUSNAME_LEN); - printf(" busname: %s\n", str); - cur += sizeof(struct mpe_bus); - break; - case MP_ENTRY_IOAPIC: - printf(" MP IOAPIC Entry :\n"); - printf(" ioapi_id: %x\n", mpe.ioapic->ioapic_id); - printf(" ioapi_version: %x\n", mpe.ioapic->ioapic_version); - printf(" ioapi_flags: %x\n", mpe.ioapic->ioapic_flags); - printf(" ioapi_paddr: %x\n", mpe.ioapic->ioapic_paddr); - cur += sizeof(struct mpe_ioapic); - break; - case MP_ENTRY_IOINT: - printf(" MP IO Interrupt Entry :\n"); - printf(" intr_type: %x\n", mpe.ioint->intr_type); - printf(" intr_flags: %x\n", mpe.ioint->intr_flags); - printf(" src_bus_id: %x\n", mpe.ioint->src_bus_id); - printf(" src_bus_irq: %x\n", mpe.ioint->src_bus_irq); - printf(" dst_apic_id: %x\n", mpe.ioint->dst_apic_id); - printf(" dst_apic_intin: %x\n", mpe.ioint->dst_apic_intin); - cur += sizeof(struct mpe_ioint); - break; - case MP_ENTRY_LINT: - printf(" MP Local Interrupt Entry :\n"); - cur += sizeof(struct mpe_lint); - break; - } - - } -} -#endif - void mptable_add_oemtbl(void *tbl, int tblsz) { @@ -346,6 +249,7 @@ mptable_build(struct vmctx *ctx, int ncp io_apic_entry_ptr mpei; bproc_entry_ptr mpep; mpfps_t mpfp; + int_entry_ptr mpie; char *curraddr; char *startaddr; @@ -381,12 +285,10 @@ mptable_build(struct vmctx *ctx, int ncp mpch->entry_count++; } -#ifdef notyet - mpt_build_ioint_entries((struct mpe_ioint*)curraddr, MPEII_MAX_IRQ, - ncpu + 1); - curraddr += sizeof(struct mpe_ioint) * MPEII_MAX_IRQ; + mpie = (int_entry_ptr) curraddr; + mpt_build_ioint_entries(mpie, MPEII_MAX_IRQ, ncpu + 1); + curraddr += sizeof(*mpie) * MPEII_MAX_IRQ; mpch->entry_count += MPEII_MAX_IRQ; -#endif if (oem_tbl_start) { mpch->oem_table_pointer = curraddr - startaddr + MPTABLE_BASE; Modified: head/usr.sbin/bhyve/pci_hostbridge.c ============================================================================== --- head/usr.sbin/bhyve/pci_hostbridge.c Thu Oct 17 22:00:35 2013 (r256710) +++ head/usr.sbin/bhyve/pci_hostbridge.c Thu Oct 17 22:01:17 2013 (r256711) @@ -47,6 +47,22 @@ pci_hostbridge_init(struct vmctx *ctx, s return (0); } +static int +pci_amd_hostbridge_init(struct vmctx *ctx, struct pci_devinst *pi, char *opts) +{ + (void) pci_hostbridge_init(ctx, pi, opts); + pci_set_cfgdata16(pi, PCIR_VENDOR, 0x1022); /* AMD */ + pci_set_cfgdata16(pi, PCIR_DEVICE, 0x7432); /* made up */ + + return (0); +} + +struct pci_devemu pci_de_amd_hostbridge = { + .pe_emu = "amd_hostbridge", + .pe_init = pci_amd_hostbridge_init, +}; +PCI_EMUL_SET(pci_de_amd_hostbridge); + struct pci_devemu pci_de_hostbridge = { .pe_emu = "hostbridge", .pe_init = pci_hostbridge_init, Modified: head/usr.sbin/bhyve/pci_virtio_block.c ============================================================================== --- head/usr.sbin/bhyve/pci_virtio_block.c Thu Oct 17 22:00:35 2013 (r256710) +++ head/usr.sbin/bhyve/pci_virtio_block.c Thu Oct 17 22:01:17 2013 (r256711) @@ -256,8 +256,6 @@ pci_vtblk_init(struct vmctx *ctx, struct off_t size; int fd; int sectsz; - int use_msix; - const char *env_msi; if (opts == NULL) { printf("virtio-block: backing device required\n"); @@ -336,12 +334,7 @@ pci_vtblk_init(struct vmctx *ctx, struct pci_set_cfgdata8(pi, PCIR_CLASS, PCIC_STORAGE); pci_set_cfgdata16(pi, PCIR_SUBDEV_0, VIRTIO_TYPE_BLOCK); - use_msix = 1; - if ((env_msi = getenv("BHYVE_USE_MSI"))) { - if (strcasecmp(env_msi, "yes") == 0) - use_msix = 0; - } - if (vi_intr_init(&sc->vbsc_vs, 1, use_msix)) + if (vi_intr_init(&sc->vbsc_vs, 1, fbsdrun_virtio_msix())) return (1); vi_set_io_bar(&sc->vbsc_vs, 0); return (0); Modified: head/usr.sbin/bhyve/pci_virtio_net.c ============================================================================== --- head/usr.sbin/bhyve/pci_virtio_net.c Thu Oct 17 22:00:35 2013 (r256710) +++ head/usr.sbin/bhyve/pci_virtio_net.c Thu Oct 17 22:01:17 2013 (r256711) @@ -509,11 +509,9 @@ pci_vtnet_init(struct vmctx *ctx, struct char nstr[80]; char tname[MAXCOMLEN + 1]; struct pci_vtnet_softc *sc; - const char *env_msi; char *devname; char *vtopts; int mac_provided; - int use_msix; sc = malloc(sizeof(struct pci_vtnet_softc)); memset(sc, 0, sizeof(struct pci_vtnet_softc)); @@ -531,15 +529,6 @@ pci_vtnet_init(struct vmctx *ctx, struct #endif /* - * Use MSI if set by user - */ - use_msix = 1; - if ((env_msi = getenv("BHYVE_USE_MSI")) != NULL) { - if (strcasecmp(env_msi, "yes") == 0) - use_msix = 0; - } - - /* * Attempt to open the tap device and read the MAC address * if specified */ @@ -623,7 +612,7 @@ pci_vtnet_init(struct vmctx *ctx, struct sc->vsc_config.status = 1; /* use BAR 1 to map MSI-X table and PBA, if we're using MSI-X */ - if (vi_intr_init(&sc->vsc_vs, 1, use_msix)) + if (vi_intr_init(&sc->vsc_vs, 1, fbsdrun_virtio_msix())) return (1); /* use BAR 0 to map config regs in IO space */ Modified: head/usr.sbin/bhyve/rtc.c ============================================================================== --- head/usr.sbin/bhyve/rtc.c Thu Oct 17 22:00:35 2013 (r256710) +++ head/usr.sbin/bhyve/rtc.c Thu Oct 17 22:01:17 2013 (r256711) @@ -331,7 +331,7 @@ rtc_init(struct vmctx *ctx) memset(rtc_nvram, 0, sizeof(rtc_nvram)); - rtc_nvram[nvoff(RTC_CENTURY)] = rtcout(tm.tm_year / 100); + rtc_nvram[nvoff(RTC_CENTURY)] = bin2bcd((tm.tm_year + 1900) / 100); /* XXX init diag/reset code/equipment/checksum ? */ From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 22:08:33 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 9C1FA2D0; Thu, 17 Oct 2013 22:08:33 +0000 (UTC) (envelope-from zec@fer.hr) Received: from mail.fer.hr (mail.fer.hr [161.53.72.233]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id F2CB326AD; Thu, 17 Oct 2013 22:08:32 +0000 (UTC) Received: from x23.lan (89.164.204.125) by MAIL.fer.hr (161.53.72.233) with Microsoft SMTP Server (TLS) id 14.2.342.3; Fri, 18 Oct 2013 00:07:18 +0200 From: Marko Zec To: Subject: Re: svn commit: r228969 - head/sys/netinet Date: Fri, 18 Oct 2013 00:07:35 +0200 User-Agent: KMail/1.9.10 References: <201112292041.pBTKfGkj071711@svn.freebsd.org> <201310161709.04489.jhb@freebsd.org> <20131017193545.GA3683@gmail.com> In-Reply-To: <20131017193545.GA3683@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-ID: <201310180007.36048.zec@fer.hr> X-Originating-IP: [89.164.204.125] Cc: src-committers@freebsd.org, John Baldwin , svn-src-all@freebsd.org, hrs@freebsd.org, Mikolaj Golub , Bjoern Zeeb , svn-src-head@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 22:08:33 -0000 On Thursday 17 October 2013 21:35:46 Mikolaj Golub wrote: > On Wed, Oct 16, 2013 at 05:09:04PM -0400, John Baldwin wrote: > ... > > > > >> #10 0x80b6f1fd in igmp_change_state (inm=0x8ae70480) > > > >> at /home/golub/freebsd/base/head/sys/netinet/igmp.c:2595 > > > >> #11 0x80b76f68 in in_leavegroup_locked (inm=0x8ae70480, > > > >> imf=0x8a655a00) at > > > >> /home/golub/freebsd/base/head/sys/netinet/in_mcast.c:1239 #12 > > > >> 0x80b76fbd in in_leavegroup (inm=0x8ae70480, imf=0x8a655a00) at > > > >> /home/golub/freebsd/base/head/sys/netinet/in_mcast.c:1184 #13 > > > >> 0x80b770b4 in inp_gcmoptions (context=0x0, pending=1) at > > > >> /home/golub/freebsd/base/head/sys/netinet/in_mcast.c:1554 #14 > > > >> 0x80a8ff2b in taskqueue_run_locked (queue=0x87594880) at > > > >> /home/golub/freebsd/base/head/sys/kern/subr_taskqueue.c:308 #15 > > > >> 0x80a90987 in taskqueue_thread_loop (arg=0x81186bcc) at > > > >> /home/golub/freebsd/base/head/sys/kern/subr_taskqueue.c:497 #16 > > > >> 0x80a1b2d8 in fork_exit (callout=0x80a90920 > > > >> , arg=0x81186bcc, > > > >> frame=0x872b2d28) at > > > >> /home/golub/freebsd/base/head/sys/kern/kern_fork.c:992 > > ... > > > > >> VNET context is not set at that point. > > ... > > > I think this was just fixed by glebius@ in r256587: > > > > Author: glebius > > Date: Wed Oct 16 05:02:01 2013 > > New Revision: 256587 > > URL: http://svnweb.freebsd.org/changeset/base/256587 > > > > Log: > > For VIMAGE kernels store vnet in the struct task, and set vnet > > context during task processing. > > > > Reported & tested by: mm > > I think that particular issue was fixed earlier by hrs in r252510: > > Fix a panic when leaving MC group in a kernel with VIMAGE enabled. > in_leavegroup() is called from an asynchronous task, and > igmp_change_state() requires that curvnet is set by the caller. > > Concerning this more general solution from Gleb, with storing the vnet > pointer in the task, I wander how it is safe when the vnet is being > removed? > > In vnet_destroy() the vnet interfaces are moved back to their parent > vnets, so setting the vnet context from the interface looks safer. +1 Gleb, what exactly was the justification for embedding a vnet context inside struct task, when it could have been easily embedded, directly or indirectly, inside the object pointed to by ta_context? What is / was your plan to garbage collect such stale pointers? At least in the early days of VIMAGE / VNET hacking, all the people involved strived very hard to store backpointers to vnets in as few structs as possible, and for quite a while we managed to constrain this to only ifnets and sockets, and both of those references are refcounted in struct vnet. Now, more (unreferenced) backpointers to struct vnet seem to be popping up here and there, but in most cases they are embedded in objects which are guaranteed to persist only as long as the referenced vnet is alive. One notable exception to this rule is struct tcpcb which apparently can outlive vnet teardowns under certain conditions, but this is a known issue which needs to be fixed, not a precedent which calls for more timebombs to be scattered around the source tree. So pls. reconsider solving the issue at hand using a different approach, and back out r256587. Thanks, Marko From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 22:12:33 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 85DD7576; Thu, 17 Oct 2013 22:12:33 +0000 (UTC) (envelope-from cognet@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 7262F26FE; Thu, 17 Oct 2013 22:12:33 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9HMCXLH080112; Thu, 17 Oct 2013 22:12:33 GMT (envelope-from cognet@svn.freebsd.org) Received: (from cognet@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9HMCWhw080104; Thu, 17 Oct 2013 22:12:32 GMT (envelope-from cognet@svn.freebsd.org) Message-Id: <201310172212.r9HMCWhw080104@svn.freebsd.org> From: Olivier Houchard Date: Thu, 17 Oct 2013 22:12:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256712 - in head/sys/arm/xscale: i80321 i8134x ixp425 pxa X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 22:12:33 -0000 Author: cognet Date: Thu Oct 17 22:12:32 2013 New Revision: 256712 URL: http://svnweb.freebsd.org/changeset/base/256712 Log: Increase the KVA available for xscale CPUs. Modified: head/sys/arm/xscale/i80321/ep80219_machdep.c head/sys/arm/xscale/i80321/iq31244_machdep.c head/sys/arm/xscale/i8134x/crb_machdep.c head/sys/arm/xscale/ixp425/avila_machdep.c head/sys/arm/xscale/pxa/pxa_machdep.c Modified: head/sys/arm/xscale/i80321/ep80219_machdep.c ============================================================================== --- head/sys/arm/xscale/i80321/ep80219_machdep.c Thu Oct 17 22:01:17 2013 (r256711) +++ head/sys/arm/xscale/i80321/ep80219_machdep.c Thu Oct 17 22:12:32 2013 (r256712) @@ -365,7 +365,7 @@ initarm(struct arm_boot_params *abp) dump_avail[2] = 0; dump_avail[3] = 0; - vm_max_kernel_address = 0xd0000000; + vm_max_kernel_address = 0xe0000000; pmap_bootstrap(pmap_curmaxkvaddr, &kernel_l1pt); msgbufp = (void*)msgbufpv.pv_va; msgbufinit(msgbufp, msgbufsize); Modified: head/sys/arm/xscale/i80321/iq31244_machdep.c ============================================================================== --- head/sys/arm/xscale/i80321/iq31244_machdep.c Thu Oct 17 22:01:17 2013 (r256711) +++ head/sys/arm/xscale/i80321/iq31244_machdep.c Thu Oct 17 22:12:32 2013 (r256712) @@ -366,7 +366,7 @@ initarm(struct arm_boot_params *abp) dump_avail[2] = 0; dump_avail[3] = 0; - vm_max_kernel_address = 0xd0000000; + vm_max_kernel_address = 0xe0000000; pmap_bootstrap(pmap_curmaxkvaddr, &kernel_l1pt); msgbufp = (void*)msgbufpv.pv_va; msgbufinit(msgbufp, msgbufsize); Modified: head/sys/arm/xscale/i8134x/crb_machdep.c ============================================================================== --- head/sys/arm/xscale/i8134x/crb_machdep.c Thu Oct 17 22:01:17 2013 (r256711) +++ head/sys/arm/xscale/i8134x/crb_machdep.c Thu Oct 17 22:12:32 2013 (r256712) @@ -344,7 +344,7 @@ initarm(struct arm_boot_params *abp) dump_avail[2] = 0; dump_avail[3] = 0; - vm_max_kernel_address = 0xd0000000; + vm_max_kernel_address = 0xe0000000; pmap_bootstrap(pmap_curmaxkvaddr, &kernel_l1pt); msgbufp = (void*)msgbufpv.pv_va; msgbufinit(msgbufp, msgbufsize); Modified: head/sys/arm/xscale/ixp425/avila_machdep.c ============================================================================== --- head/sys/arm/xscale/ixp425/avila_machdep.c Thu Oct 17 22:01:17 2013 (r256711) +++ head/sys/arm/xscale/ixp425/avila_machdep.c Thu Oct 17 22:12:32 2013 (r256712) @@ -429,7 +429,7 @@ initarm(struct arm_boot_params *abp) pmap_curmaxkvaddr = afterkern + PAGE_SIZE; arm_dump_avail_init(memsize, sizeof(dump_avail) / sizeof(dump_avail[0])); - vm_max_kernel_address = 0xd0000000; + vm_max_kernel_address = 0xe0000000; pmap_bootstrap(pmap_curmaxkvaddr, &kernel_l1pt); msgbufp = (void*)msgbufpv.pv_va; msgbufinit(msgbufp, msgbufsize); Modified: head/sys/arm/xscale/pxa/pxa_machdep.c ============================================================================== --- head/sys/arm/xscale/pxa/pxa_machdep.c Thu Oct 17 22:01:17 2013 (r256711) +++ head/sys/arm/xscale/pxa/pxa_machdep.c Thu Oct 17 22:12:32 2013 (r256712) @@ -362,7 +362,7 @@ initarm(struct arm_boot_params *abp) } dump_avail[i] = 0; dump_avail[i] = 0; - vm_max_kernel_address = 0xd0000000; + vm_max_kernel_address = 0xe0000000; pmap_bootstrap(pmap_curmaxkvaddr, &kernel_l1pt); msgbufp = (void*)msgbufpv.pv_va; msgbufinit(msgbufp, msgbufsize); From owner-svn-src-all@FreeBSD.ORG Thu Oct 17 23:57:18 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 5310D890; Thu, 17 Oct 2013 23:57:18 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 400202C20; Thu, 17 Oct 2013 23:57:18 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9HNvIad035113; Thu, 17 Oct 2013 23:57:18 GMT (envelope-from np@svn.freebsd.org) Received: (from np@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9HNvIN8035112; Thu, 17 Oct 2013 23:57:18 GMT (envelope-from np@svn.freebsd.org) Message-Id: <201310172357.r9HNvIN8035112@svn.freebsd.org> From: Navdeep Parhar Date: Thu, 17 Oct 2013 23:57:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256713 - head/sys/dev/cxgbe/iw_cxgbe X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 17 Oct 2013 23:57:18 -0000 Author: np Date: Thu Oct 17 23:57:17 2013 New Revision: 256713 URL: http://svnweb.freebsd.org/changeset/base/256713 Log: iw_cxgbe should have a dependency on t4nex. Reported by: trasz@ Modified: head/sys/dev/cxgbe/iw_cxgbe/device.c Modified: head/sys/dev/cxgbe/iw_cxgbe/device.c ============================================================================== --- head/sys/dev/cxgbe/iw_cxgbe/device.c Thu Oct 17 22:12:32 2013 (r256712) +++ head/sys/dev/cxgbe/iw_cxgbe/device.c Thu Oct 17 23:57:17 2013 (r256713) @@ -363,6 +363,7 @@ static moduledata_t c4iw_mod_data = { }; MODULE_VERSION(iw_cxgbe, 1); +MODULE_DEPEND(iw_cxgbe, t4_nex, 1, 1, 1); MODULE_DEPEND(iw_cxgbe, t4_tom, 1, 1, 1); MODULE_DEPEND(iw_cxgbe, ibcore, 1, 1, 1); DECLARE_MODULE(iw_cxgbe, c4iw_mod_data, SI_SUB_EXEC, SI_ORDER_ANY); From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 00:00:09 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 7D3ECB4F; Fri, 18 Oct 2013 00:00:09 +0000 (UTC) (envelope-from np@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 6ADD62C3A; Fri, 18 Oct 2013 00:00:09 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9I0093P036047; Fri, 18 Oct 2013 00:00:09 GMT (envelope-from np@svn.freebsd.org) Received: (from np@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9I009nm036046; Fri, 18 Oct 2013 00:00:09 GMT (envelope-from np@svn.freebsd.org) Message-Id: <201310180000.r9I009nm036046@svn.freebsd.org> From: Navdeep Parhar Date: Fri, 18 Oct 2013 00:00:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256714 - head/sys/dev/cxgbe/iw_cxgbe X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 00:00:09 -0000 Author: np Date: Fri Oct 18 00:00:08 2013 New Revision: 256714 URL: http://svnweb.freebsd.org/changeset/base/256714 Log: Fix typo in previous commit. Modified: head/sys/dev/cxgbe/iw_cxgbe/device.c Modified: head/sys/dev/cxgbe/iw_cxgbe/device.c ============================================================================== --- head/sys/dev/cxgbe/iw_cxgbe/device.c Thu Oct 17 23:57:17 2013 (r256713) +++ head/sys/dev/cxgbe/iw_cxgbe/device.c Fri Oct 18 00:00:08 2013 (r256714) @@ -363,7 +363,7 @@ static moduledata_t c4iw_mod_data = { }; MODULE_VERSION(iw_cxgbe, 1); -MODULE_DEPEND(iw_cxgbe, t4_nex, 1, 1, 1); +MODULE_DEPEND(iw_cxgbe, t4nex, 1, 1, 1); MODULE_DEPEND(iw_cxgbe, t4_tom, 1, 1, 1); MODULE_DEPEND(iw_cxgbe, ibcore, 1, 1, 1); DECLARE_MODULE(iw_cxgbe, c4iw_mod_data, SI_SUB_EXEC, SI_ORDER_ANY); From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 02:22:39 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 65497F7E; Fri, 18 Oct 2013 02:22:39 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 531D723A8; Fri, 18 Oct 2013 02:22:39 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9I2Mdfh015356; Fri, 18 Oct 2013 02:22:39 GMT (envelope-from hrs@svn.freebsd.org) Received: (from hrs@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9I2Mdw9015355; Fri, 18 Oct 2013 02:22:39 GMT (envelope-from hrs@svn.freebsd.org) Message-Id: <201310180222.r9I2Mdw9015355@svn.freebsd.org> From: Hiroki Sato Date: Fri, 18 Oct 2013 02:22:39 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256715 - head/sbin/route X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 02:22:39 -0000 Author: hrs Date: Fri Oct 18 02:22:38 2013 New Revision: 256715 URL: http://svnweb.freebsd.org/changeset/base/256715 Log: Use long explicitly for the time difference. Modified: head/sbin/route/route.c Modified: head/sbin/route/route.c ============================================================================== --- head/sbin/route/route.c Fri Oct 18 00:00:08 2013 (r256714) +++ head/sbin/route/route.c Fri Oct 18 02:22:38 2013 (r256715) @@ -1760,7 +1760,8 @@ print_getmsg(struct rt_msghdr *rtm, int clock_gettime(CLOCK_REALTIME_FAST, &ts); else ts.tv_sec = 0; - printf("%8ld%c\n", rtm->rtm_rmx.rmx_expire - ts.tv_sec, lock(EXPIRE)); + printf("%8ld%c\n", (long)(rtm->rtm_rmx.rmx_expire - ts.tv_sec), + lock(EXPIRE)); #undef lock #undef msec #define RTA_IGN (RTA_DST|RTA_GATEWAY|RTA_NETMASK|RTA_IFP|RTA_IFA|RTA_BRD) From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 03:44:16 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id CEB1B39F; Fri, 18 Oct 2013 03:44:16 +0000 (UTC) (envelope-from hrs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id ACC6727D0; Fri, 18 Oct 2013 03:44:16 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9I3iGmn058423; Fri, 18 Oct 2013 03:44:16 GMT (envelope-from hrs@svn.freebsd.org) Received: (from hrs@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9I3iG3V058422; Fri, 18 Oct 2013 03:44:16 GMT (envelope-from hrs@svn.freebsd.org) Message-Id: <201310180344.r9I3iG3V058422@svn.freebsd.org> From: Hiroki Sato Date: Fri, 18 Oct 2013 03:44:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256716 - head/etc/rc.d X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 03:44:17 -0000 Author: hrs Date: Fri Oct 18 03:44:16 2013 New Revision: 256716 URL: http://svnweb.freebsd.org/changeset/base/256716 Log: - Fix a bug which prevented jails from starting when $jail_conf was used and no jail name was specified. - Display error messages when start/stop fails. Reported by: swills Modified: head/etc/rc.d/jail Modified: head/etc/rc.d/jail ============================================================================== --- head/etc/rc.d/jail Fri Oct 18 02:22:38 2013 (r256715) +++ head/etc/rc.d/jail Fri Oct 18 03:44:16 2013 (r256716) @@ -426,24 +426,26 @@ jail_start() echo -n 'Starting jails:' case $1 in _ALL) - echo -n ' ' command=$jail_program rc_flags=$jail_flags command_args="-f $jail_conf -c" - $jail_jls -nq | while read IN; do - _jn=$(echo $IN | tr " " "\n" | grep name=) - _jid=$(echo $IN | tr " " "\n" | grep jid=) - if $command $rc_flags $command_args ${_jn#name=}; then + _tmp=`mktemp -t jail` || exit 3 + if $command $rc_flags $command_args >> $_tmp 2>&1; then + $jail_jls -nq | while read IN; do + _jn=$(echo $IN | tr " " "\n" | grep ^name=) + _jid=$(echo $IN | tr " " "\n" | grep ^jid=) echo -n " ${_jn#name=}" echo "${_jid#jid=}" \ > /var/run/jail_${_jn#name=}.id - fi - done + done + else + tail -1 $_tmp + fi + rm -f $_tmp echo '.' return ;; esac - _tmp=`mktemp -t jail` || exit 3 for _j in $@; do _j=$(echo $_j | tr /. _) parse_options $_j || continue @@ -455,10 +457,11 @@ jail_start() else command_args="-i -f $_conf -c $_j" fi + _tmp=`mktemp -t jail` || exit 3 if $command $rc_flags $command_args \ >> $_tmp 2>&1 /var/run/jail_${_j}.id else rm -f /var/run/jail_${_j}.id @@ -480,17 +483,21 @@ jail_stop() echo -n 'Stopping jails:' case $1 in _ALL) - echo -n ' ' command=$jail_program rc_flags=$jail_flags command_args="-f $jail_conf -r" $jail_jls -nq | while read IN; do - _jn=$(echo $IN | tr " " "\n" | grep name=) + _jn=$(echo $IN | tr " " "\n" | grep ^name=) echo -n " ${_jn#name=}" - $command $rc_flags $command_args ${_jn#name=} - if ! $jail_jls -j ${_jn#name=} > /dev/null 2>&1; then + _tmp=`mktemp -t jail` || exit 3 + $command $rc_flags $command_args ${_jn#name=} \ + >> $_tmp 2>&1 + if $jail_jls -j ${_jn#name=} > /dev/null 2>&1; then + tail -1 $_tmp + else rm -f /var/run/jail_${_jn#name=}.id fi + rm -f $_tmp done echo '.' return @@ -504,10 +511,14 @@ jail_stop() fi eval command=\${jail_${_j}_program:-$jail_program} echo -n " ${_hostname:-${_j}}" - $command -q -f $_conf -r $_j - if ! $jail_jls -j $_j > /dev/null 2>&1; then + _tmp=`mktemp -t jail` || exit 3 + $command -q -f $_conf -r $_j >> $_tmp 2>&1 + if $jail_jls -j $_j > /dev/null 2>&1; then + tail -1 $_tmp + else rm -f /var/run/jail_${_j}.id fi + rm -f $_tmp done echo '.' } From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 07:40:51 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id F3FFD7F1; Fri, 18 Oct 2013 07:40:50 +0000 (UTC) (envelope-from kevlo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D293D271C; Fri, 18 Oct 2013 07:40:50 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9I7eosQ083267; Fri, 18 Oct 2013 07:40:50 GMT (envelope-from kevlo@svn.freebsd.org) Received: (from kevlo@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9I7eoru083266; Fri, 18 Oct 2013 07:40:50 GMT (envelope-from kevlo@svn.freebsd.org) Message-Id: <201310180740.r9I7eoru083266@svn.freebsd.org> From: Kevin Lo Date: Fri, 18 Oct 2013 07:40:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256717 - head/sys/contrib/dev/run X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 07:40:51 -0000 Author: kevlo Date: Fri Oct 18 07:40:50 2013 New Revision: 256717 URL: http://svnweb.freebsd.org/changeset/base/256717 Log: Update firmware for run(4) to version 0.33. Modified: head/sys/contrib/dev/run/rt2870.fw.uu Modified: head/sys/contrib/dev/run/rt2870.fw.uu ============================================================================== --- head/sys/contrib/dev/run/rt2870.fw.uu Fri Oct 18 03:44:16 2013 (r256716) +++ head/sys/contrib/dev/run/rt2870.fw.uu Fri Oct 18 07:40:50 2013 (r256717) @@ -42,191 +42,191 @@ # is RT3071. On each 4KB firmware, the last 2 bytes are CRC, 3rd last byte # is minor version number and 4th last byte is major version number. # This file comes with -# RT2870 v. 0.236 -# RT3071 v. 0.236 +# RT2870 v. 0.33 +# RT3071 v. 0.33 begin 644 rt2870.fw.uu -M____`A`H`A`R`A!]`A.[`A.\`A/;`A/@$A/<(@(8V@(:&@(5/`(4=S`%!B`- -M`Q(:_R*0`8S@,.,@Y5@PX!#E3##@!']`@`)_`)`0+^_PD`&,=`CPY)`!I_"0 -M`8S@,.`!4#_4ZY4>T"0CE.K0#`^3U -M1N5'M`H(Y3JT`0/D]4;D_:]6$@N1T@0BD'`1X/3_D'`0X%__D'`1X%4G3Y!P -M&/"0D`(I -M\#!'!*\G@`3E)_3_D`(H[_#E5O1P`P(3N@(3LY!P$.#^D'`1X/WM^.;U5_VO -M5A(+D9`$%'2`\.20#][?6"CH/@]5?] -MKU82"Y&0!!1T@/#DD'`3\.56]'`#`A.Z`A.SD!``X/57Y/58]5F0$`/@M"@% -M=5@!@#R0$`/@M#`%=5@"@#"0$`/@M#,%=5@$@"20$`/@M#4,D!`"X+1R!758 -M"(`1D!`#X+0U"I`0`N"TDP-U6!#E6##A&9`%".!$`?#]D`4%X%3[\$0$\.U4 -M_I`%"/#D]4[U3W4Z_W4\_ZU7KU82"Y'DD'`R\,(6]5SU6O5;D'`P\*/PD`04 -M=(#PY)!P$_#E5O1P`P(3NH!WD'`0X"3_DI/D_:]6$@N1D`04=(#PY)!P$_#E -M5O1@7X!6D'`0X"3_DDK2!:U7KU82"Y&0!!1T@/#DD'`3\.56]&`\@#.0#U7*U7KU82"Y&0!!1T@/"0<##E6O"CY5OPY/5:]5N00<"7@1`'P(B+E4W`:,&`)LDTP300%1L($Y4]%3F`(Y4\53W`"%4XB(L)" -MTR(P%#"0#_D'`9X/[O7I`"*?`P1P2O)X`$Y2?T -M_Y`"*._PPA0P%F#"KY`0!.#U5Y`"*.!4!?57Y5QD`7`AY5>0$`0PX`;@5/OP -M@`3@1`3PY50$`3@1`3PTJ\BPDO"3.5$$@J=%)D`%2<$%2,(%0,0%*T@%,U@ -M%-Z@```5*85(0X5*0H5,7N5'9`9@`P(5*8`;Y4C$5`_U0^5*Q%0/]4+E3,14 -M#_5>Y4=D!G!A4T,/@%R%24.%2T*%35[E1V0&<$V`&^5)Q%0/]4/E2\14#_5" -MY4W$5`_U7N5'9`9P,.5#5`]$$/5#@";E1V0$8`7E1[0%!D->!'5"">5'M`80 -MY4-4#T0P]4.`!M)+@`+23.3U)>5"Q%3P_^5#5`]/]5_28"+2%>5')/5@"R3+ -M8`PA7"K\($TJ\BPJ^0!!3@5`Y@!-(8@`CE3D5/)/^2 -M&-*OD`04X*+DDAET'O#E7U0/]2WE)7`3,!@%Y5\@Y0LP&1GE7U0P_[\P$>4E -M<`5U)0R``A4ETFS2;8`/Y5\PY@;";-)M@`32;,)MY4=D`W`A,$L&PFS2;8`8 -MY25P`S!,$<),Y25P!74E!X`"%272;-)MY4>T"13E1"#C"^4Z9`)@!>4ZM`,$ -MPFS2;>5'M`H3Y3JT`0;";-)M@`CE.G`$TFS";2!I!^5>(.`"LF@@:P?E7B#A -M`K)J(&T'Y5X@X@*R;'4N0"!I!*)H@"8P:`;E1J+B@!WE7B#@!'\!@`)_`.5& -M5/#^OO`$?@&``GX`[F\D_Y)SDG(@:P2B:H`F,&H&Y4:BXH`=Y5X@X01_`8`" -M?P#E1E3P_K[P!'X!@`)^`.YO)/^2=9)T(&T$HFR`)N5'9`IP(C!L!N5&HN.` -M%^4ZM`$&Y4:BXX`TY48@Y`,PY0/3@`'#@"8P;`;E1J+B@!WE7B#B!'\!@`)_ -M`.5&5/#^OO`$?@&``GX`[F\D_Y)QDG"0$`#@D!`L\)`0`^##E#!`%*)QDG>B -M<))VY2X3$U0_]2["=])VD!`OY2[PY4=D!G!'D`(HX#!'`_^``O3_CR>0`BG@ -M5/[PY4/$5`\48`PD_F`,)`-P$\(X@`_2.(`+Y48PX@/3@`'#DC@P1P6O)P(8 -MG^4G]/\"&)_E1V0'8`_E1V0(8`GE1V0)8`,"&`V0`BC@,$<#_X`"]/^/)Y`" -M*>!4_/#E.A1@(A1@)11@+23\8$DD^6`4)`YP4.5&$Q-4/W7P`X3E\"3_@#K2 -M.<(X@#[E1C#B`].`'<.`&N5&,.(-5#C#E#!0!GX`?P&`!'X`?P#N3R3_DCC" -M.8`3Y48PX@/3@`'#DCG".(`$PCC".3!'!*\G@`3E)_3_`AB?Y4=D#&`)Y4=D -M"V`#`ABDD`(HX#!'`_^``O3_CR>0`BG@5/WPY3H48"`48"$48"LD_&!%)/E@ -M$B0.<$KE1A,35#]U\`.$Y?"`*=(Y@#KE1C#B`].``<.2.8`MY48PX@U4.,.4 -M,%`&?@!_`8`$?@!_`.Y/)/^2.8`/Y48PX@/3@`'#DCF``L(Y,$<$KR>`!.4G -M]/^0`BCO\"+E1[0+$)`"*>!4Z_#E)U3K147U)R+DD`(I\#!'!*]%@`3E1?3_ -MD`(H[_`BCU#262*/5-)8(N3U8L*OY5$48$@48&8D`F`#`AG^TEEU50&0`J+@ -M5'_PH^`@YR.0!#3@M`(CX+0"$G\@$AC0D!`$X%3S\'51`0(9_N50 -M<`9U8@,"&?Z0$@#@5`-P$G\@$AC0D`*BX%2_\'51`@(9_N50<`,"&?F0`J/@ -M,.8#`AGUD`0WX&0B8`,"&?60`8IT?O"0`9;PD!($=`KPY5@PXQ7DD`4`\*-T -M"/"C=`'P=`/P?P$2#2J0$RC@D'`:\)`3*>"0!4\X`1X%3[\(`4Y3STD!,J8`C@ -M5/)%//"`!.!4^O"0!`'@5/WP=6(!=54"Y/51@`GE4'`%=6(#]5'E8F`5P@'D -M]5'"6:UBKT`2&LOE8K0#`M(#TJ\BPJ\P`1+DD`&6\/51PEG"`7T"KT`2&LOE -M4A1@#`1@`P(:R'52`755`Y`$`>!$#O#E6%088!Z03^=!0N]8+D-'#U@^"T_QET%"[U@N0T -M\)`0'.#U8I`0'N`@X?.0$!S@D'`H\)`0'>"0<"GPD!`> -MX)!P*O`P2@>0<"3@1`'PP@72KR(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`````````````````````````````````````````````````````````.SQ -M2O___P(0*`(0,@(0?0(3NP(3O`(3VP(3X!(3W"("&-H"&AH"%3P"%'"T"`9U3@%U3X20`D_Y)'(I`$!.`EX"1=]5>0T#`B0#T_Y!P$.!?_Y!P$>!5)T^0 -M#_D'`9X/[O7I`" -M*?`P1P2O)X`$Y2?T_Y`"*._PY5;T<`,"$[H"$[.0#][?CF]5?] -MKU82"ZJ0!!1T@/#DD'`3\.56]'`#`A.Z`A.SD'`0X/Z0WU@HZ#X/57 -M_:]6$@NJD`04=(#PY)!P$_#E5O1P`P(3N@(3LY`0`.#U5^3U6/59D!`#X+0H -M!758`8`\D!`#X+0P!758`H`PD!`#X+0S!758!(`DD!`#X+0U#)`0`N"T<@5U -M6`B`$9`0`^"T-0J0$`+@M),#=5@0Y5@PX1F0!0C@1`'P_9`%!>!4^_!$!/#M -M5/Z0!0CPY/5.]4]U.O]U//^M5Z]6$@NJY)!P,O#"%O5<]5KU6Y!P,/"C\)`$ -M%'2`\.200`BG@_Y!P&>#^[UZ0`BGP,$<$KR>`!.4G -M]/^0`BCO\,(4,!9@PJ^0$`3@]5>0`BC@5`7U5^5<9`%P(>57D!`$,.`&X%3[ -M\(`$X$0$\.57,.(Q!5OE6W`K!5J`)^57,.`;Y5R0$`1P!N!4^_"`!.!$!/`% -M6^5;<`L%6H`'D!`$X$0$\-*O(L)+PDSE1!(*MA29`!4G!!4C"!4#$!2M(!3- -M8!3>H```%2F%2$.%2D*%3%[E1V0&8`,"%2F`&^5(Q%0/]4/E2L14#_5"Y4S$ -M5`_U7N5'9`9P85-##X!Y4=D!G!-@!OE2<14#_5#Y4O$5`_U -M0N5-Q%0/]5[E1V0&<##E0U0/1!#U0X`FY4=D!&`%Y4>T!09#7@1U0@GE1[0& -M$.5#5`]$,/5#@`;22X`"TDSD]27E0L14\/_E0U0/3_5?TF`BTA7E1R3U8`LD -MRV`')$!P!L(5(A(8I1(57L(5PJ_"!-*O(L*OD`04X%0.8`32&(`(Y4Y%3R3_ -MDAC2KY`$%."BY)(9=![PY5]4#_4MY25P$S`8!>5?(.4+,!D9Y5]4,/^_,!'E -M)7`%=24,@`(5)=)LTFV`#^5?,.8&PFS2;8`$TFS";>5'9`-P(3!+!L)LTFV` -M&.4E<`,P3!'"3.4E<`5U)0>``A4ETFS2;>5'M`D4Y40@XPOE.F0"8`7E.K0# -M!,)LTFWE1[0*$^4ZM`$&PFS2;8`(Y3IP!-)LPFT@:0?E7B#@`K)H(&L'Y5X@ -MX0*R:B!M!^5>(.("LFQU+D`@:02B:(`F,&@&Y4:BXH`=Y5X@X`1_`8`"?P#E -M1E3P_K[P!'X!@`)^`.YO)/^25>(.$$?P&` -M`G\`Y494\/Z^\`1^`8`"?@#N;R3_DG62="!M!*)L@";E1V0*<"(P;`;E1J+C -M@!?E.K0!!N5&HN.`-.5&(.0#,.4#TX`!PX`F,&P&Y4:BXH`=Y5X@X@1_`8`" -M?P#E1E3P_K[P!'X!@`)^`.YO)/^2<9)PD!``X)`0+/"0$`/@PY0P0!2B<9)W -MHG"2=N4N$Q-4/_4NPG?2=I`0+^4N\.5'9`9P1Y`"*.`P1P/_@`+T_X\GD`(I -MX%3^\.5#Q%0/%&`,)/Y@#"0#0 -M`BG@5/SPY3H48"(48"448"TD_&!))/E@%"0.<%#E1A,35#]U\`.$Y?`D_X`Z -MTCG".(`^Y48PX@/3@!W#@!KE1C#B#50XPY0P4`9^`'\!@`1^`'\`[D\D_Y(X -MPCF`$^5&,.(#TX`!PY(YPCB`!,(XPCDP1P2O)X`$Y2?T_P(8G^5'9`Q@">5' -M9`M@`P(8I)`"*.`P1P/_@`+T_X\GD`(IX%3]\.4Z%&`@%&`A%&`K)/Q@123Y -M8!(D#G!*Y483$U0_=?`#A.7P@"G2.8`ZY48PX@/3@`'#DCF`+>5&,.(-5#C# -ME#!0!GX`?P&`!'X`?P#N3R3_DCF`#^5&,.(#TX`!PY(Y@`+".3!'!*\G@`3E -M)_3_D`(H[_`BY4>T"Q"0`BG@5.OPY2=4ZT5%]2!4^_"`%.4\])`3*F`( -MX%3R13SP@`3@5/KPD`0!X%3]\'5B`755`N3U48`)Y5!P!75B`_51Y6)@%<(! -MY/51PEFM8J]`$AK+Y6*T`P+2`]*O(L*O,`$2Y)`!EO#U4<)9P@%]`J]`$AK+ -MY5(48`P$8`,"&LAU4@%U50.0!`'@1`[PY5A4&&`>D'`:X)`3*/"0"0$!WPD'`JX)`0'O"0$!S@]6*0$![@(.'SD!`,B*0`8S@,.,@Y5@PX!#E3##@!']`@`)_`)`0+^_PD`&, +M=`CPY)`!I_"0`8S@,.`D'`2X/56D`0$X!(*G1#S,1#7-A$<4!%341%<4A%<4Q%<5!&= +M51'L5A*O9!)*91)U9A+;`A57(`(#,`,=?0*O5A(+D9`$%'2`\.20%5D'2`B*0!4#_4ZY4>T"0CE.K0#`^3U1N5'M`H(Y3JT`0/D]4;D_:]6$@N1T@0BD'`1 +MX/3_D'`0X%__D'`1X%4_3Y!P&/"0D`(I\#!'!*\_@`3E/_3_D`(H[_#E5O1P`P(57@(5 +M5Y!P$.`3DAO"'*U7KU82"Y&0!!1T@/`P&P+2!^200 +M3+'@D$R^\)!,N."03+_PY)!,L?"03+G@D$RX\*U7KU82"Y&0!!1T@/#DD'`3 +M\.56]'`#`A5>`A57D'`0X/4J=3T#=3X?Y/4OK5>O5A(+D9`$%'2`\.200$`#@]5?D]5CU69`0`^"T*`5U6`&`/)`0`^"T,`5U6`*` +M,)`0`^"T,P5U6`2`))`0`^"T-0R0$`+@M'(%=5@(@!&0$`/@M#4*D!`"X+23 +M`W58$.58,.$9D`4(X$0!\/V0!07@5/OP1`3P[53^D`4(\'4[&.3U)O4GPAS" +M&_5.]4]U.O]U//^M5Z]6$@N1D'`V=#?PHW0R\)`$`>!$`?#"%N3U7/5:]5N0 +M<##PH_#U*L(7D`04=(#PY)!P$_#E5O1P`P(57@(55Y!P$.`D_Y*3Y/VO5A(+ +MD9`$%'2`\.200$`#@D!`L\)`0+W1`\)!P$>!4?_57 +MX%2`D'`R\)!P$.#_Y5?3GT!#D'`SY5?PD'`0X/^0<#/@PY_3E`1`<^`D_/#@ +M_Y!P,N!/D`4`\.585`]@!'\7@`)_$9`%`>_PHW0!\'0#\/\2#2J`PY!P,^57 +M\)!P,^#_D'`0X,.?TY0$0#"0<#/@)`3PX/^0<#+@3Y`%`/#E6%0/8`1_%X`" +M?Q&0!0'O\*-T`?!T`_#_$@TJ@,"0_PHW0!\'0#\/\2#2J0$`#@D!`L\)`0+W1_\.3]KU82"Y&0!!1T@/#D +MD'`3\"*0O5A(+D9`$%'2`\.20O5A(+D9`$%'2`\)!P,.5:\*/E6_#D]5KU6Y!P$_#E5O1@ +M1(`[D'`1X"3_DA>00<"7@1`'P(B+E/D4]8`KE/A4^<`H5/8`&=3T# +M=3X?Y3Y%/6`#`A8.Y2IP`P(6#G2@)2_U@N0T3/6#X&!Z?WX2%S[O5/Y$`OU_ +M?A(7).4O?P`EX/[O)`#U@G1-/J^"D$RH\*/O\.3U5O57?W\2%SZ03*C@^J/@ +M)5?U@NHU5O6#[_`%5^57<`(%5L.4@.56E`%`V']^$A<^[T0#_7]^$A3U(8`,T@G2"M(+T@R``M,BPR*0!`+@1`CPA3F"A3B#Y3/P +MY3*C\)`$`N!4]_`B,!0PD'`9X%4__Y!P&.!/]3^0`BG@_Y!P&>#^[UZ0`BGP +M,$<$KS^`!.4_]/^0`BCO\,(4,!9@PJ^0$`3@]5>0`BC@5`7U5^5<9`%P(>57 +MD!`$,.`&X%3[\(`$X$0$\.57,.(Q!5OE6W`K!5J`)^57,.`;Y5R0$`1P!N!4 +M^_"`!.!$!/`%6^5;<`L%6H`'D!`$X$0$\-*O(I`0'.WPH^_PHW0*\)`0'.#U +M6)`0'N`@X?,BD!`=[_"C=`OPD!`X"#A\Z]8(L)+PDSE1!(*G1=Y +M`!@'!!@#"!?C$!>-(!>M8!>^H```&`F%2$.%2D*%3%[E1V0&8`,"&`F`&^5( +MQ%0/]4/E2L14#_5"Y4S$5`_U7N5'9`9P85-##X!Y4=D!G!- +M@!OE2<14#_5#Y4O$5`_U0N5-Q%0/]5[E1V0&<##E0U0/1!#U0X`FY4=D!&`% +MY4>T!09#7@1U0@GE1[0&$.5#5`]$,/5#@`;22X`"TDSD]27E0L14\/_E0U0/ +M3_5?TF`BTA7E1R3U8`LDRV`')$!P!L(5(A(;FA(8/L(5PJ_"!-*O(L*OD`04 +MX%0.8`32&(`(Y4Y%3R3_DAC2KY`$%."BY)(9=![PY5]4#_4MY25P$S`8!>5? +M(.4+,!D9Y5]4,/^_,!'E)7`%=24,@`(5)=)LTFV`#^5?,.8&PFS2;8`$TFS" +M;>5'9`-P(3!+!L)LTFV`&.4E<`,P3!'"3.4E<`5U)0>``A4ETFS2;>5'M`D4 +MY40@XPOE.F0"8`7E.K0#!,)LTFWE1[0*$^4ZM`$&PFS2;8`(Y3IP!-)LPFT@ +M:0?E7B#@`K)H(&L'Y5X@X0*R:B!M!^5>(.("LFQU+D`@:02B:(`F,&@&Y4:B +MXH`=Y5X@X`1_`8`"?P#E1E3P_K[P!'X!@`)^`.YO)/^25>(.$$?P&``G\`Y494\/Z^\`1^`8`"?@#N;R3_DG62="!M!*)L +M@";E1V0*<"(P;`;E1J+C@!?E.K0!!N5&HN.`-.5&(.0#,.4#TX`!PX`F,&P& +MY4:BXH`=Y5X@X@1_`8`"?P#E1E3P_K[P!'X!@`)^`.YO)/^2<9)PD!``X)`0 +M+/"0$`/@PY0P0!G@9#)@%*)QDG>B<))VY2X3$U0_]2["=])V,!<-4R[PY2Y% +M79`0+_"`!I`0+^4N\.5'9`9P1Y`"*.`P1P/_@`+T_X\_D`(IX%3^\.5#Q%0/ +M%&`,)/Y@#"0#5'9`M@`P(;F9`" +M*.`P1P/_@`+T_X\_D`(IX%3]\.4Z%&`@%&`A%&`K)/Q@123Y8!(D#G!*Y483 +M$U0_=?`#A.7P@"G2^8`ZY48PX@/3@`'#DOF`+>5&,.(-5#C#E#!0!GX`?P&` +M!'X`?P#N3R3_DOF`#^5&,.(#TX`!PY+Y@`+"^3!'!*\_@`3E/_3_D`(H[_`B +MY4>T"Q"0`BG@5.OPY3]4ZT5%]3\BY)`"*?`P1P2O18`$Y47T_Y`"*._P(H]0 +MTEDBCU326"+D]6+"K^51%&!+%&!L)`)@`P(!4_?!U8@%U50+D]5&`">50 +M<`5U8@/U4>5B8!7"`>3U4<)9K6*O0!(=J>5BM`,"T@/2KR+"KS`!$N20`9;P +M]5'"6<(!?0*O0!(=J>52%&`,!&`#`AVF=5(!=54#D`0!X$0.\.585!A@'I!P +M&N"0$RCPD'`;X)`3*?"C=`7PD'`BX)`3*_"`$9`3*.!$#_"CX$0/\*/@1`7P +MD!($=`/PY5@PXQ:0!0!T@/"C=`CPHW0!\'0#\'\!$@TJD`*BX$3`\)`0!.!$ +M#/#D]5+U53`""<("?0&O01(=J3`#`L(#Y)`!EO#2KR+O]&`MY/YT%"[U@N0T +MX"#A\Y`0'."0 +M<"CPD!`=X)!P*?"0$![@D'`J\#!*!Y!P).!$`?#"!=*O(B`<6GT%$A]SD$RP +M$A]DD$R[[_!]`Q(?_P?0D2'WZ03+?O\'T($A]^D$RV[_!] +M!Q(?F9!,M>_P?082'YF03+3O\.203+'PD$RYX)!,N/#2',('(GT!?[@2%R1_ +MN1(7/N]D`6`#`A]9TY!,L^"5)Y!,LN"5)D`1D$RQX`3PD$RXX&`:X!3P@!60 +M3+G@_Y!,N.##GU`(D$RYX)!,N/#D]2;U)WT%?[@2%R203+`2'XE]`G^X$AD'`1X/4\Y)!P +M$_"0!!1T@/#E5O1P`P(57@(55R`"`S`#'7T"KU82"ZJ0!!1T@/#DD'`3\.56 +M]'`#`A5>`A57A59!T@(BD'`0X%1__[\*#9!P$>"T"`9U3@%U3X20`D_Y)'(I`$!.`EX"1=]5>0 +M`A57Y4=D!V`=Y4=D"&`7Y4=D"6`1Y4=D"F`+Y4=D"V`%Y4>T#`B0 +M#T_Y!P$.!?_Y!P$>!5/T^0#_D'`9X/[O7I`"*?`P1P2O/X`$Y3_T_Y`"*._PY5;T<`,"%5X" +M%5>0`A57 +MD$RQX)!,OO"03+C@D$R_\.203+'PD$RYX)!,N/"M5Z]6$@NJD`04=(#PY)!P +M$_#E5O1P`P(57@(55Y!P$.#U*G4]`W4^'^3U+ZU7KU82"ZJ0!!1T@/#DD'`3 +M\.56]'`#`A5>`A57D!``X/57Y/58]5F0$`/@M"@%=5@!@#R0$`/@M#`%=5@" +M@#"0$`/@M#,%=5@$@"20$`/@M#4,D!`"X+1R!758"(`1D!`#X+0U"I`0`N"T +MDP-U6!#E6##A&9`%".!$`?#]D`4%X%3[\$0$\.U4_I`%"/!U.QCD]2;U)\(< +MPAOU3O5/=3K_=3S_K5>O5A(+JI!P-G0W\*-T,O"0!`'@1`'PPA;D]5SU6O5; +MD'`P\*/P]2K"%Y`$%'2`\.200`A57D!``X)`0+/"0$"]T0/"0` +M`G\1D`4![_"C=`'P=`/P_Q(-2(#`D'`0X/^0<#+@3Y`%`/#E6%0/8`1_%X`" +M?Q&0!0'O\*-T`?!T`_#_$@U(D!``X)`0+/"0$"]T?_#D_:]6$@NJD`04=(#P +MY)!P$_`BD'`0X"3_DDK2!:U7KU82"ZJ0!!1T@/#DD'`3\.56]&!Y@'"0#U7*U7KU82"ZJ0!!1T@/"0<##E6O"CY5OPY/5:]5N0`D_Y(7D'`0X/5=K5>O5A(+JI`$%'2`\#`7$Y`0`."0$"SPD!`O +MX%3P]5=%7?#DD'`3\.56]&`'D'`EX$0!\"(BY3Y%/6`*Y3X5/G`*%3V`!G4] +M`W4^'^4^13U@`P(6#N4J<`,"%@YTH"4O]8+D-$SU@^!@>G]^$A<^[U3^1`+] +M?WX2%R3E+W\`)>#^[R0`]8)T33ZO@I!,J/"C[_#D]5;U5W]_$A<^D$RHX/JC +MX"57]8+J-5;U@^_P!5?E5W`"!5;#E(#E5I0!0-A_?A(7/N]$`_U_?A(7)'2@ +M)2_U@N0T3/6#Y/`%+^4OM`@#Y/4OY3M@!!4[@`-U._[E.W`((`<%,!L"T@?E +M4W`:,&`)LDTP300%1L($Y4]%3F`(Y4\53W`"%4XB(N4Q).Y@#Q1@$!1@$B0$ +M!5/_^0D`(I +M\#!'!*\_@`3E/_3_D`(H[_#"%#`68,*OD!`$X/57D`(HX%0%]5?E7&0!<"'E +M5Y`0!##@!N!4^_"`!.!$!/#E5S#B,05;Y5MP*P5:@"?E5S#@&^5_PHW0+\)`0'.#U6)`0'N`@X?.O6"+"2\),Y402"K87 +M>0`8!P08`P@7XQ`7C2`7K6`7OJ```!@)A4A#A4I"A4Q>Y4=D!F`#`A@)@!OE +M2,14#_5#Y4K$5`_U0N5,Q%0/]5[E1V0&<&%30P^`7(5)0X5+0H5-7N5'9`9P +M38`;Y4G$5`_U0^5+Q%0/]4+E3<14#_5>Y4=D!G`PY4-4#T00]4.`)N5'9`1@ +M!>5'M`4&0UX$=4()Y4>T!A#E0U0/1##U0X`&TDN``M),Y/4EY4+$5/#_Y4-4 +M#T_U7])@(M(5Y4\.5?5`_U+>4E5?5##_OS`1Y25P!74E#(`"%272;-)M@`_E7S#F!L)LTFV`!-)L +MPFWE1V0#<"$P2P;";-)M@!CE)7`#,$P1PDSE)7`%=24'@`(5)=)LTFWE1[0) +M%.5$(.,+Y3ID`F`%Y3JT`P3";-)MY4>T"A/E.K0!!L)LTFV`".4Z<`32;,)M +M(&D'Y5X@X`*R:"!K!^5>(.$"LFH@;0?E7B#B`K)L=2Y`(&D$HFB`)C!H!N5& +MHN*`'>5>(.`$?P&``G\`Y494\/Z^\`1^`8`"?@#N;R3_DG.25>(.($?P&``G\`Y494\/Z^\`1^`8`"?@#N;R3_DG&2<)`0`."0 +M$"SPD!`#X,.4,$`9X&0R8!2B<9)WHG"2=N4N$Q-4/_4NPG?2=C`7#5,N\.4N +M15V0$"_P@`:0$"_E+O#E1V0&<$>0`BC@,$<#_X`"]/^//Y`"*>!4_O#E0\14 +M#Q1@#"3^8`PD`W`3POB`#]+X@`OE1C#B`].``<.2^#!'!:\_`AN4Y3_T_P(; +ME.5'9`=@#^5'9`A@">5'9`E@`P(;`I`"*.`P1P/_@`+T_X\_D`(IX%3\\.4Z +M%&`B%&`E%&`M)/Q@223Y8!0D#G!0Y483$U0_=?`#A.7P)/^`.M+YPOB`/N5& +M,.(#TX`=PX`:Y48PX@U4.,.4,%`&?@!_`8`$?@!_`.Y/)/^2^,+Y@!/E1C#B +M`].``<.2^<+X@`3"^,+Y,$<$KS^`!.4_]/\"&Y3E1V0,8`GE1V0+8`,"&YF0 +M`BC@,$<#_X`"]/^//Y`"*>!4_?#E.A1@(!1@(11@*R3\8$4D^6`2)`YP2N5& +M$Q-4/W7P`X3E\(`ITOF`.N5&,.(#TX`!PY+Y@"WE1C#B#50XPY0P4`9^`'\! +M@`1^`'\`[D\D_Y+Y@`_E1C#B`].``<.2^8`"PODP1P2O/X`$Y3_T_Y`"*._P +M(N5'M`L0D`(IX%3K\.4_5.M%1?4_(N20`BGP,$<$KT6`!.5%]/^0`BCO\"*/ +M4-)9(H]4TE@BY/5BPJ_E411@2Q1@;"0"8`,"'-S26755`9`"HN!4?_"CX"#G +M(Y`$-."T`ARCX+0"%Z/@M`(2?R`2&\60$`3@5//P=5$!`AS9`!BG1^\)`!EO"0$@1T"O"0$RC@D'`:\)`3*>"0!4\X`1 +MX%3[\(`4Y3STD!,J8`C@5/)%//"`!.!4^O"0!`'@5/WP=6(!=54"Y/51@`GE +M4'`%=6(#]5'E8F`5P@'D]5'"6:UBKT`2':GE8K0#`M(#TJ\BPJ\P`1+DD`&6 +M\/51PEG"`7T"KT`2':GE4A1@#`1@`P(=IG52`755`Y`$`>!$#O#E6%088!Z0 +M3^=!0N]8+D +M-'#U@^"T_QET%"[U@N0T\)`0'.#U8I`0'N`@X?.0$!S@ +MD'`H\)`0'>"0<"GPD!`>X)!P*O`P2@>0<"3@1`'PP@72KR(@'%I]!1(?"03+CPTAS"!R)]`7^X$A03++@E29`$9!,L>`$\)!,N.!@&N`4\(`5 +MD$RYX/^03+C@PY]0")!,N>"03+CPY/4F]2=]!7^X$A Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 1AE29965; Fri, 18 Oct 2013 07:42:17 +0000 (UTC) (envelope-from kevlo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 090242736; Fri, 18 Oct 2013 07:42:17 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9I7gGFw083811; Fri, 18 Oct 2013 07:42:16 GMT (envelope-from kevlo@svn.freebsd.org) Received: (from kevlo@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9I7gGWS083810; Fri, 18 Oct 2013 07:42:16 GMT (envelope-from kevlo@svn.freebsd.org) Message-Id: <201310180742.r9I7gGWS083810@svn.freebsd.org> From: Kevin Lo Date: Fri, 18 Oct 2013 07:42:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256718 - head/sys/dev/usb/wlan X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 07:42:17 -0000 Author: kevlo Date: Fri Oct 18 07:42:16 2013 New Revision: 256718 URL: http://svnweb.freebsd.org/changeset/base/256718 Log: Fix rf registers for RT3070. Modified: head/sys/dev/usb/wlan/if_runreg.h Modified: head/sys/dev/usb/wlan/if_runreg.h ============================================================================== --- head/sys/dev/usb/wlan/if_runreg.h Fri Oct 18 07:40:50 2013 (r256717) +++ head/sys/dev/usb/wlan/if_runreg.h Fri Oct 18 07:42:16 2013 (r256718) @@ -1158,7 +1158,7 @@ static const struct rt2860_rate { { 4, 0x40 }, \ { 5, 0x03 }, \ { 6, 0x02 }, \ - { 7, 0x70 }, \ + { 7, 0x60 }, \ { 9, 0x0f }, \ { 10, 0x41 }, \ { 11, 0x21 }, \ @@ -1172,7 +1172,7 @@ static const struct rt2860_rate { { 20, 0xba }, \ { 21, 0xdb }, \ { 24, 0x16 }, \ - { 25, 0x01 }, \ + { 25, 0x03 }, \ { 29, 0x1f } #define RT3572_DEF_RF \ From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 07:42:51 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 2DE88ACA; Fri, 18 Oct 2013 07:42:51 +0000 (UTC) (envelope-from dteske@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 1B2182742; Fri, 18 Oct 2013 07:42:51 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9I7go9C083982; Fri, 18 Oct 2013 07:42:50 GMT (envelope-from dteske@svn.freebsd.org) Received: (from dteske@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9I7goZv083981; Fri, 18 Oct 2013 07:42:50 GMT (envelope-from dteske@svn.freebsd.org) Message-Id: <201310180742.r9I7goZv083981@svn.freebsd.org> From: Devin Teske Date: Fri, 18 Oct 2013 07:42:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r256719 - in stable/10/usr.sbin/bsdinstall: . scripts X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 07:42:51 -0000 Author: dteske Date: Fri Oct 18 07:42:50 2013 New Revision: 256719 URL: http://svnweb.freebsd.org/changeset/base/256719 Log: MFC r256489: Add executable bit to docsinstall [old] and entropy [new] scripts. MFC r256541: Document BSDINSTALL_TMPBOOT environment variable introduced by SVN r256343. Approved by: re (gjb) Modified: stable/10/usr.sbin/bsdinstall/bsdinstall.8 Directory Properties: stable/10/usr.sbin/bsdinstall/ (props changed) stable/10/usr.sbin/bsdinstall/scripts/docsinstall (props changed) stable/10/usr.sbin/bsdinstall/scripts/entropy (props changed) Modified: stable/10/usr.sbin/bsdinstall/bsdinstall.8 ============================================================================== --- stable/10/usr.sbin/bsdinstall/bsdinstall.8 Fri Oct 18 07:42:16 2013 (r256718) +++ stable/10/usr.sbin/bsdinstall/bsdinstall.8 Fri Oct 18 07:42:50 2013 (r256719) @@ -254,6 +254,14 @@ will be stored until the target is executed. If this directory does not already exist, it will be created. Default: .Pa /tmp/bsdinstall_etc +.It Ev BSDINSTALL_TMPBOOT +Directory where files destined for the new system's +.Pa /boot +will be stored until the +.Cm config +target is executed. If this directory does not already exist, it will be +created. Default: +.Pa /tmp/bsdinstall_boot .El .Sh SCRIPTING .Nm From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 07:43:50 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 89559C5B; Fri, 18 Oct 2013 07:43:50 +0000 (UTC) (envelope-from kevlo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 76D02274D; Fri, 18 Oct 2013 07:43:50 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9I7hoTv084334; Fri, 18 Oct 2013 07:43:50 GMT (envelope-from kevlo@svn.freebsd.org) Received: (from kevlo@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9I7hoYY084333; Fri, 18 Oct 2013 07:43:50 GMT (envelope-from kevlo@svn.freebsd.org) Message-Id: <201310180743.r9I7hoYY084333@svn.freebsd.org> From: Kevin Lo Date: Fri, 18 Oct 2013 07:43:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256720 - head/sys/dev/usb/wlan X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 07:43:50 -0000 Author: kevlo Date: Fri Oct 18 07:43:49 2013 New Revision: 256720 URL: http://svnweb.freebsd.org/changeset/base/256720 Log: Fix lower bits of RF_R3 for RT3370 and newer. This change doesn't affect older chipsets. Modified: head/sys/dev/usb/wlan/if_run.c Modified: head/sys/dev/usb/wlan/if_run.c ============================================================================== --- head/sys/dev/usb/wlan/if_run.c Fri Oct 18 07:42:50 2013 (r256719) +++ head/sys/dev/usb/wlan/if_run.c Fri Oct 18 07:43:49 2013 (r256720) @@ -3647,7 +3647,12 @@ run_rt3070_set_chan(struct run_softc *sc txpow2 = sc->txpow2[i]; run_rt3070_rf_write(sc, 2, rt3070_freqs[i].n); - run_rt3070_rf_write(sc, 3, rt3070_freqs[i].k); + + /* RT3370/RT3390: RF R3 [7:4] is not reserved bits. */ + run_rt3070_rf_read(sc, 3, &rf); + rf = (rf & ~0x0f) | rt3070_freqs[i].k; + run_rt3070_rf_write(sc, 3, rf); + run_rt3070_rf_read(sc, 6, &rf); rf = (rf & ~0x03) | rt3070_freqs[i].r; run_rt3070_rf_write(sc, 6, rf); From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 07:46:29 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 123D8FD1; Fri, 18 Oct 2013 07:46:29 +0000 (UTC) (envelope-from kevlo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id F40D42775; Fri, 18 Oct 2013 07:46:28 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9I7kS4R085395; Fri, 18 Oct 2013 07:46:28 GMT (envelope-from kevlo@svn.freebsd.org) Received: (from kevlo@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9I7kSD5085394; Fri, 18 Oct 2013 07:46:28 GMT (envelope-from kevlo@svn.freebsd.org) Message-Id: <201310180746.r9I7kSD5085394@svn.freebsd.org> From: Kevin Lo Date: Fri, 18 Oct 2013 07:46:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256721 - head/sys/dev/usb/wlan X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 07:46:29 -0000 Author: kevlo Date: Fri Oct 18 07:46:28 2013 New Revision: 256721 URL: http://svnweb.freebsd.org/changeset/base/256721 Log: Since the DAC issue has been fixed in RT3070(F), the voltage raising fix is no longer needed. Modified: head/sys/dev/usb/wlan/if_run.c Modified: head/sys/dev/usb/wlan/if_run.c ============================================================================== --- head/sys/dev/usb/wlan/if_run.c Fri Oct 18 07:43:49 2013 (r256720) +++ head/sys/dev/usb/wlan/if_run.c Fri Oct 18 07:46:28 2013 (r256721) @@ -4388,8 +4388,12 @@ run_rt3070_rf_init(struct run_softc *sc) } } - if (sc->mac_ver == 0x3070) { - /* change voltage from 1.2V to 1.35V for RT3070 */ + if (sc->mac_ver == 0x3070 && sc->mac_rev < 0x0201) { + /* + * Change voltage from 1.2V to 1.35V for RT3070. + * The DAC issue (RT3070_LDO_CFG0) has been fixed + * in RT3070(F). + */ run_read(sc, RT3070_LDO_CFG0, &tmp); tmp = (tmp & ~0x0f000000) | 0x0d000000; run_write(sc, RT3070_LDO_CFG0, tmp); @@ -4439,7 +4443,7 @@ run_rt3070_rf_init(struct run_softc *sc) /* select 40MHz bandwidth */ run_bbp_read(sc, 4, &bbp4); - run_bbp_write(sc, 4, (bbp4 & ~0x08) | 0x10); + run_bbp_write(sc, 4, (bbp4 & ~0x18) | 0x10); run_rt3070_rf_read(sc, 31, &rf); run_rt3070_rf_write(sc, 31, rf | 0x20); @@ -4456,7 +4460,7 @@ run_rt3070_rf_init(struct run_softc *sc) /* save default BBP registers 25 and 26 values */ run_bbp_read(sc, 25, &sc->bbp25); run_bbp_read(sc, 26, &sc->bbp26); - } else if (sc->mac_rev < 0x0211) + } else if (sc->mac_rev < 0x0201 || sc->mac_rev < 0x0211) run_rt3070_rf_write(sc, 27, 0x03); run_read(sc, RT3070_OPT_14, &tmp); From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 07:48:21 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 758E11C2; Fri, 18 Oct 2013 07:48:21 +0000 (UTC) (envelope-from kevlo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 6383C2788; Fri, 18 Oct 2013 07:48:21 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9I7mLac085892; Fri, 18 Oct 2013 07:48:21 GMT (envelope-from kevlo@svn.freebsd.org) Received: (from kevlo@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9I7mLII085891; Fri, 18 Oct 2013 07:48:21 GMT (envelope-from kevlo@svn.freebsd.org) Message-Id: <201310180748.r9I7mLII085891@svn.freebsd.org> From: Kevin Lo Date: Fri, 18 Oct 2013 07:48:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256722 - head/sys/dev/usb/wlan X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 07:48:21 -0000 Author: kevlo Date: Fri Oct 18 07:48:20 2013 New Revision: 256722 URL: http://svnweb.freebsd.org/changeset/base/256722 Log: Correct tx mixer gain value for RT3070 and RT3071. Correctly value in EEPROM/EFUSE is one or more for RT3070 and two or more for other RT3071 chips. Modified: head/sys/dev/usb/wlan/if_run.c Modified: head/sys/dev/usb/wlan/if_run.c ============================================================================== --- head/sys/dev/usb/wlan/if_run.c Fri Oct 18 07:46:28 2013 (r256721) +++ head/sys/dev/usb/wlan/if_run.c Fri Oct 18 07:48:20 2013 (r256722) @@ -4366,7 +4366,7 @@ static int run_rt3070_rf_init(struct run_softc *sc) { uint32_t tmp; - uint8_t rf, target, bbp4; + uint8_t bbp4, mingain, rf, target; int i; run_rt3070_rf_read(sc, 30, &rf); @@ -4473,7 +4473,8 @@ run_rt3070_rf_init(struct run_softc *sc) (sc->mac_ver == 0x3071 && sc->mac_rev >= 0x0211)) && !sc->ext_2ghz_lna) rf |= 0x20; /* fix for long range Rx issue */ - if (sc->txmixgain_2ghz >= 1) + mingain = (sc->mac_ver == 0x3070) ? 1 : 2; + if (sc->txmixgain_2ghz >= mingain) rf = (rf & ~0x7) | sc->txmixgain_2ghz; run_rt3070_rf_write(sc, 17, rf); } From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 09:14:20 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C978AE08; Fri, 18 Oct 2013 09:14:20 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 9D7152E53; Fri, 18 Oct 2013 09:14:20 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9I9EKGD031927; Fri, 18 Oct 2013 09:14:20 GMT (envelope-from trasz@svn.freebsd.org) Received: (from trasz@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9I9EK2c031908; Fri, 18 Oct 2013 09:14:20 GMT (envelope-from trasz@svn.freebsd.org) Message-Id: <201310180914.r9I9EK2c031908@svn.freebsd.org> From: Edward Tomasz Napierala Date: Fri, 18 Oct 2013 09:14:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256724 - in head/sys/geom: . label X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 09:14:20 -0000 Author: trasz Date: Fri Oct 18 09:14:19 2013 New Revision: 256724 URL: http://svnweb.freebsd.org/changeset/base/256724 Log: Make geom_label(4) resize-aware. This fixes a situation when "gpart resize" would resize a partition, but label providers - e.g. /dev/gptid/XXX - would stay the same size. Reviewed by: mav MFC after: 1 month Sponsored by: FreeBSD Foundation Modified: head/sys/geom/geom_slice.c head/sys/geom/label/g_label.c Modified: head/sys/geom/geom_slice.c ============================================================================== --- head/sys/geom/geom_slice.c Fri Oct 18 09:07:10 2013 (r256723) +++ head/sys/geom/geom_slice.c Fri Oct 18 09:14:19 2013 (r256724) @@ -382,7 +382,7 @@ g_slice_config(struct g_geom *gp, u_int printf("GEOM: Reconfigure %s, start %jd length %jd end %jd\n", pp->name, (intmax_t)offset, (intmax_t)length, (intmax_t)(offset + length - 1)); - pp->mediasize = gsl->length; + g_resize_provider(pp, gsl->length); return (0); } sb = sbuf_new_auto(); Modified: head/sys/geom/label/g_label.c ============================================================================== --- head/sys/geom/label/g_label.c Fri Oct 18 09:07:10 2013 (r256723) +++ head/sys/geom/label/g_label.c Fri Oct 18 09:14:19 2013 (r256724) @@ -124,6 +124,17 @@ g_label_spoiled(struct g_consumer *cp) g_slice_spoiled(cp); } +static void +g_label_resize(struct g_consumer *cp) +{ + + G_LABEL_DEBUG(1, "Label %s resized.", + LIST_FIRST(&cp->geom->provider)->name); + + g_slice_config(cp->geom, 0, G_SLICE_CONFIG_FORCE, (off_t)0, + cp->provider->mediasize, cp->provider->sectorsize, NULL); +} + static int g_label_is_name_ok(const char *label) { @@ -208,6 +219,7 @@ g_label_create(struct gctl_req *req, str } gp->orphan = g_label_orphan; gp->spoiled = g_label_spoiled; + gp->resize = g_label_resize; g_access(cp, -1, 0, 0); g_slice_config(gp, 0, G_SLICE_CONFIG_SET, (off_t)0, mediasize, pp->sectorsize, "%s", name); From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 09:17:36 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id DBC20F9; Fri, 18 Oct 2013 09:17:36 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id AEE7A2E81; Fri, 18 Oct 2013 09:17:36 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9I9HaLe033300; Fri, 18 Oct 2013 09:17:36 GMT (envelope-from trasz@svn.freebsd.org) Received: (from trasz@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9I9HaUS033287; Fri, 18 Oct 2013 09:17:36 GMT (envelope-from trasz@svn.freebsd.org) Message-Id: <201310180917.r9I9HaUS033287@svn.freebsd.org> From: Edward Tomasz Napierala Date: Fri, 18 Oct 2013 09:17:36 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256725 - in head/sys/modules: . cxgb cxgbe X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 09:17:36 -0000 Author: trasz Date: Fri Oct 18 09:17:35 2013 New Revision: 256725 URL: http://svnweb.freebsd.org/changeset/base/256725 Log: Don't build krping.ko, iw_cxgb.ko, and iw_cxgbe.ko, if MK_OFED=no (the default). They build, but are unloadable, due to missing ibcore.ko. Sponsored by: FreeBSD Foundation Modified: head/sys/modules/Makefile head/sys/modules/cxgb/Makefile head/sys/modules/cxgbe/Makefile Modified: head/sys/modules/Makefile ============================================================================== --- head/sys/modules/Makefile Fri Oct 18 09:14:19 2013 (r256724) +++ head/sys/modules/Makefile Fri Oct 18 09:17:35 2013 (r256725) @@ -532,7 +532,9 @@ _opensolaris= opensolaris _pccard= pccard _pcfclock= pcfclock _pst= pst +.if ${MK_OFED} != "no" || defined(ALL_MODULES) _rdma= rdma +.endif _safe= safe _sbni= sbni _scsi_low= scsi_low @@ -743,7 +745,9 @@ _pccard= pccard _qlxge= qlxge _qlxgb= qlxgb _qlxgbe= qlxgbe +.if ${MK_OFED} != "no" || defined(ALL_MODULES) _rdma= rdma +.endif _s3= s3 _safe= safe _scsi_low= scsi_low Modified: head/sys/modules/cxgb/Makefile ============================================================================== --- head/sys/modules/cxgb/Makefile Fri Oct 18 09:14:19 2013 (r256724) +++ head/sys/modules/cxgb/Makefile Fri Oct 18 09:17:35 2013 (r256725) @@ -1,4 +1,7 @@ # $FreeBSD$ + +.include + SUBDIR= cxgb SUBDIR+= cxgb_t3fw SUBDIR+= ${_tom} @@ -6,7 +9,9 @@ SUBDIR+= ${_iw_cxgb} .if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" _tom= tom +.if ${MK_OFED} != "no" || defined(ALL_MODULES) _iw_cxgb= iw_cxgb .endif +.endif .include Modified: head/sys/modules/cxgbe/Makefile ============================================================================== --- head/sys/modules/cxgbe/Makefile Fri Oct 18 09:14:19 2013 (r256724) +++ head/sys/modules/cxgbe/Makefile Fri Oct 18 09:17:35 2013 (r256725) @@ -2,6 +2,8 @@ # $FreeBSD$ # +.include + SUBDIR = if_cxgbe SUBDIR+= t4_firmware SUBDIR+= t5_firmware @@ -10,12 +12,13 @@ SUBDIR+= ${_iw_cxgbe} .if ${MACHINE_CPUARCH} == "amd64" _tom= tom +.if ${MK_OFED} != "no" || defined(ALL_MODULES) _iw_cxgbe= iw_cxgbe .endif +.endif .if ${MACHINE_CPUARCH} == "i386" _tom= tom .endif - .include From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 09:50:23 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id EDD7C4CE; Fri, 18 Oct 2013 09:50:23 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id DAF3C20D8; Fri, 18 Oct 2013 09:50:23 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9I9oN4S050059; Fri, 18 Oct 2013 09:50:23 GMT (envelope-from trasz@svn.freebsd.org) Received: (from trasz@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9I9oNxj050058; Fri, 18 Oct 2013 09:50:23 GMT (envelope-from trasz@svn.freebsd.org) Message-Id: <201310180950.r9I9oNxj050058@svn.freebsd.org> From: Edward Tomasz Napierala Date: Fri, 18 Oct 2013 09:50:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r256728 - stable/9/bin/pkill X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 09:50:24 -0000 Author: trasz Date: Fri Oct 18 09:50:23 2013 New Revision: 256728 URL: http://svnweb.freebsd.org/changeset/base/256728 Log: MFC r256050: Remove useless check - ki_loginclass is an array; can't be NULL. Modified: stable/9/bin/pkill/pkill.c Directory Properties: stable/9/bin/pkill/ (props changed) Modified: stable/9/bin/pkill/pkill.c ============================================================================== --- stable/9/bin/pkill/pkill.c Fri Oct 18 09:32:16 2013 (r256727) +++ stable/9/bin/pkill/pkill.c Fri Oct 18 09:50:23 2013 (r256728) @@ -481,7 +481,6 @@ main(int argc, char **argv) * We skip P_SYSTEM processes to match ps(1) output. */ if ((kp->ki_flag & P_SYSTEM) == 0 && - kp->ki_loginclass != NULL && strcmp(kp->ki_loginclass, li->li_name) == 0) break; } From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 10:09:25 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id CBB27FC6; Fri, 18 Oct 2013 10:09:25 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from cell.glebius.int.ru (glebius.int.ru [81.19.69.10]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A28CE220C; Fri, 18 Oct 2013 10:09:24 +0000 (UTC) Received: from cell.glebius.int.ru (localhost [127.0.0.1]) by cell.glebius.int.ru (8.14.7/8.14.7) with ESMTP id r9IA9GUk089809; Fri, 18 Oct 2013 14:09:16 +0400 (MSK) (envelope-from glebius@FreeBSD.org) Received: (from glebius@localhost) by cell.glebius.int.ru (8.14.7/8.14.7/Submit) id r9IA9G9a089808; Fri, 18 Oct 2013 14:09:16 +0400 (MSK) (envelope-from glebius@FreeBSD.org) X-Authentication-Warning: cell.glebius.int.ru: glebius set sender to glebius@FreeBSD.org using -f Date: Fri, 18 Oct 2013 14:09:16 +0400 From: Gleb Smirnoff To: Marko Zec Subject: Re: svn commit: r228969 - head/sys/netinet Message-ID: <20131018100915.GH52889@FreeBSD.org> References: <201112292041.pBTKfGkj071711@svn.freebsd.org> <201310161709.04489.jhb@freebsd.org> <20131017193545.GA3683@gmail.com> <201310180007.36048.zec@fer.hr> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201310180007.36048.zec@fer.hr> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: src-committers@freebsd.org, John Baldwin , svn-src-all@freebsd.org, hrs@freebsd.org, Mikolaj Golub , Bjoern Zeeb , svn-src-head@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 10:09:25 -0000 On Fri, Oct 18, 2013 at 12:07:35AM +0200, Marko Zec wrote: M> > Concerning this more general solution from Gleb, with storing the vnet M> > pointer in the task, I wander how it is safe when the vnet is being M> > removed? M> > M> > In vnet_destroy() the vnet interfaces are moved back to their parent M> > vnets, so setting the vnet context from the interface looks safer. M> M> +1 M> M> Gleb, M> M> what exactly was the justification for embedding a vnet context inside M> struct task, when it could have been easily embedded, directly or M> indirectly, inside the object pointed to by ta_context? M> M> What is / was your plan to garbage collect such stale pointers? M> M> At least in the early days of VIMAGE / VNET hacking, all the people involved M> strived very hard to store backpointers to vnets in as few structs as M> possible, and for quite a while we managed to constrain this to only ifnets M> and sockets, and both of those references are refcounted in struct vnet. And my change is in the same direction, isn't it? We will store vnet pointer only in the struct task, not in all structs that ta_context may point at. M> Now, more (unreferenced) backpointers to struct vnet seem to be popping up M> here and there, but in most cases they are embedded in objects which are M> guaranteed to persist only as long as the referenced vnet is alive. One M> notable exception to this rule is struct tcpcb which apparently can outlive M> vnet teardowns under certain conditions, but this is a known issue which M> needs to be fixed, not a precedent which calls for more timebombs to be M> scattered around the source tree. M> M> So pls. reconsider solving the issue at hand using a different approach, and M> back out r256587. I don't see problem here. When a vnet is destroyed, every facility is notified to tear down its vnet related data. In pf(4) that would mean, that the task is freed, and would never be put again on taskqueue. So I don't see any leaks or dereferences of dead vnet here. I have just looked into multicast code and see that it takes another approach. The task is single and global, and it sets vnet context per-option. Well, my patch won't hurt its operation. Just orthogonal approach. -- Totus tuus, Glebius. From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 10:55:57 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 561BD559; Fri, 18 Oct 2013 10:55:57 +0000 (UTC) (envelope-from zec@fer.hr) Received: from mail.fer.hr (mail.fer.hr [161.53.72.233]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id AF2F6254B; Fri, 18 Oct 2013 10:55:56 +0000 (UTC) Received: from dyn10.nxlab.fer.hr (161.53.63.210) by MAIL.fer.hr (161.53.72.233) with Microsoft SMTP Server (TLS) id 14.2.342.3; Fri, 18 Oct 2013 12:55:54 +0200 From: Marko Zec To: Gleb Smirnoff Subject: Re: svn commit: r228969 - head/sys/netinet Date: Fri, 18 Oct 2013 12:56:11 +0200 User-Agent: KMail/1.9.10 References: <201112292041.pBTKfGkj071711@svn.freebsd.org> <201310180007.36048.zec@fer.hr> <20131018100915.GH52889@FreeBSD.org> In-Reply-To: <20131018100915.GH52889@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-ID: <201310181256.12135.zec@fer.hr> X-Originating-IP: [161.53.63.210] Cc: src-committers@freebsd.org, John Baldwin , svn-src-all@freebsd.org, hrs@freebsd.org, Mikolaj Golub , Bjoern Zeeb , svn-src-head@freebsd.org X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 10:55:57 -0000 On Friday 18 October 2013 12:09:16 Gleb Smirnoff wrote: > On Fri, Oct 18, 2013 at 12:07:35AM +0200, Marko Zec wrote: > M> > Concerning this more general solution from Gleb, with storing the > vnet M> > pointer in the task, I wander how it is safe when the vnet is > being M> > removed? > M> > > M> > In vnet_destroy() the vnet interfaces are moved back to their parent > M> > vnets, so setting the vnet context from the interface looks safer. > M> > M> +1 > M> > M> Gleb, > M> > M> what exactly was the justification for embedding a vnet context inside > M> struct task, when it could have been easily embedded, directly or > M> indirectly, inside the object pointed to by ta_context? > M> > M> What is / was your plan to garbage collect such stale pointers? > M> > M> At least in the early days of VIMAGE / VNET hacking, all the people > involved M> strived very hard to store backpointers to vnets in as few > structs as M> possible, and for quite a while we managed to constrain > this to only ifnets M> and sockets, and both of those references are > refcounted in struct vnet. > > And my change is in the same direction, isn't it? No, it is not. 1) you're not refcounting tasks in struct vnet, so when a vnet is freed you can't be sure (in a generic way) that there are no pending tasks referencig that vnet; 2) taskqueue is a general-purpose facility, not network-stack specialized, so you can't afford a luxury to keep non-refcounted references to vnets in struct task, since there's no guarantee a task will go away before the referenced vnet is destroyed. In your particular example you're probably doing the right thing in pf cleanup code, but then the reference to a vnet should be kept in a pf-related object, not struct task. > We will store vnet > pointer only in the struct task, not in all structs that ta_context may > point at. > > M> Now, more (unreferenced) backpointers to struct vnet seem to be > popping up M> here and there, but in most cases they are embedded in > objects which are M> guaranteed to persist only as long as the referenced > vnet is alive. One M> notable exception to this rule is struct tcpcb > which apparently can outlive M> vnet teardowns under certain conditions, > but this is a known issue which M> needs to be fixed, not a precedent > which calls for more timebombs to be M> scattered around the source tree. > M> > M> So pls. reconsider solving the issue at hand using a different > approach, and M> back out r256587. > > I don't see problem here. When a vnet is destroyed, every facility is > notified to tear down its vnet related data. In pf(4) that would mean, > that the task is freed, and would never be put again on taskqueue. So I > don't see any leaks or dereferences of dead vnet here. Just as you described here, it is the pf(4) code which gets notified on vnet teardowns, not some generic taskqueue subroutine, so the right place to hold a vnet pointer is in a pf-related struct, not struct task. I'm also surprised noone else chimed in to object to this obviously unnecessary layering violation, since up to this point there were no inherent dependencies between taskqueues and vnets, and now you are introducing one for no good reason. Again, please remove vnet references from struct task. Thanks, Marko > I have just looked into multicast code and see that it takes another > approach. The task is single and global, and it sets vnet context > per-option. Well, my patch won't hurt its operation. Just orthogonal > approach. From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 11:25:09 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 884515F8; Fri, 18 Oct 2013 11:25:09 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 75EA32799; Fri, 18 Oct 2013 11:25:09 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9IBP936001446; Fri, 18 Oct 2013 11:25:09 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9IBP9pk001443; Fri, 18 Oct 2013 11:25:09 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201310181125.r9IBP9pk001443@svn.freebsd.org> From: Gleb Smirnoff Date: Fri, 18 Oct 2013 11:25:09 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256729 - head/sys/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 11:25:09 -0000 Author: glebius Date: Fri Oct 18 11:25:08 2013 New Revision: 256729 URL: http://svnweb.freebsd.org/changeset/base/256729 Log: Revert r256587. Requested by: zec Modified: head/sys/sys/_task.h head/sys/sys/taskqueue.h Modified: head/sys/sys/_task.h ============================================================================== --- head/sys/sys/_task.h Fri Oct 18 09:50:23 2013 (r256728) +++ head/sys/sys/_task.h Fri Oct 18 11:25:08 2013 (r256729) @@ -49,9 +49,6 @@ struct task { u_short ta_priority; /* (c) Priority */ task_fn_t *ta_func; /* (c) task handler */ void *ta_context; /* (c) argument for handler */ -#ifdef VIMAGE - struct vnet *ta_vnet; /* (c) vnet context */ -#endif }; #endif /* !_SYS__TASK_H_ */ Modified: head/sys/sys/taskqueue.h ============================================================================== --- head/sys/sys/taskqueue.h Fri Oct 18 09:50:23 2013 (r256728) +++ head/sys/sys/taskqueue.h Fri Oct 18 11:25:08 2013 (r256729) @@ -36,9 +36,6 @@ #include #include #include -#ifdef VIMAGE -#include -#endif struct taskqueue; struct thread; @@ -108,22 +105,12 @@ void taskqueue_thread_enqueue(void *cont /* * Initialise a task structure. */ -#ifdef VIMAGE #define TASK_INIT(task, priority, func, context) do { \ (task)->ta_pending = 0; \ (task)->ta_priority = (priority); \ (task)->ta_func = (func); \ (task)->ta_context = (context); \ - (task)->ta_vnet = curvnet; \ } while (0) -#else /* !VIMAGE */ -#define TASK_INIT(task, priority, func, context) do { \ - (task)->ta_pending = 0; \ - (task)->ta_priority = (priority); \ - (task)->ta_func = (func); \ - (task)->ta_context = (context); \ -} while (0) -#endif /* !VIMAGE */ void _timeout_task_init(struct taskqueue *queue, struct timeout_task *timeout_task, int priority, task_fn_t func, From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 11:26:41 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 1ED4D7F2; Fri, 18 Oct 2013 11:26:41 +0000 (UTC) (envelope-from glebius@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id EFFE127CF; Fri, 18 Oct 2013 11:26:40 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9IBQeXr001974; Fri, 18 Oct 2013 11:26:40 GMT (envelope-from glebius@svn.freebsd.org) Received: (from glebius@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9IBQeU5001973; Fri, 18 Oct 2013 11:26:40 GMT (envelope-from glebius@svn.freebsd.org) Message-Id: <201310181126.r9IBQeU5001973@svn.freebsd.org> From: Gleb Smirnoff Date: Fri, 18 Oct 2013 11:26:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256730 - head/sys/kern X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 11:26:41 -0000 Author: glebius Date: Fri Oct 18 11:26:40 2013 New Revision: 256730 URL: http://svnweb.freebsd.org/changeset/base/256730 Log: Revert r256587. Requested by: zec Modified: head/sys/kern/subr_taskqueue.c Modified: head/sys/kern/subr_taskqueue.c ============================================================================== --- head/sys/kern/subr_taskqueue.c Fri Oct 18 11:25:08 2013 (r256729) +++ head/sys/kern/subr_taskqueue.c Fri Oct 18 11:26:40 2013 (r256730) @@ -42,7 +42,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include static MALLOC_DEFINE(M_TASKQUEUE, "taskqueue", "Task Queues"); static void *taskqueue_giant_ih; @@ -340,9 +339,7 @@ taskqueue_run_locked(struct taskqueue *q tb.tb_running = task; TQ_UNLOCK(queue); - CURVNET_SET(task->ta_vnet); task->ta_func(task->ta_context, pending); - CURVNET_RESTORE(); TQ_LOCK(queue); tb.tb_running = NULL; From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 12:35:12 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id CB93D6A; Fri, 18 Oct 2013 12:35:12 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id B95092D34; Fri, 18 Oct 2013 12:35:12 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9ICZCJA039512; Fri, 18 Oct 2013 12:35:12 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9ICZCLl039511; Fri, 18 Oct 2013 12:35:12 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201310181235.r9ICZCLl039511@svn.freebsd.org> From: Jilles Tjoelker Date: Fri, 18 Oct 2013 12:35:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256735 - head/bin/sh X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 12:35:12 -0000 Author: jilles Date: Fri Oct 18 12:35:12 2013 New Revision: 256735 URL: http://svnweb.freebsd.org/changeset/base/256735 Log: sh: Remove one syscall when waiting for a foreground job. The getpgrp() call is unnecessary: if there is no job control then the result was not used at all and if there is job control then we are not a subshell and our process group ID is equal to our process ID (rootpid). Modified: head/bin/sh/jobs.c Modified: head/bin/sh/jobs.c ============================================================================== --- head/bin/sh/jobs.c Fri Oct 18 12:31:32 2013 (r256734) +++ head/bin/sh/jobs.c Fri Oct 18 12:35:12 2013 (r256735) @@ -978,7 +978,6 @@ int waitforjob(struct job *jp, int *origstatus) { #if JOBS - pid_t mypgrp = getpgrp(); int propagate_int = jp->jobctl && jp->foreground; #endif int status; @@ -992,7 +991,7 @@ waitforjob(struct job *jp, int *origstat dotrap(); #if JOBS if (jp->jobctl) { - if (tcsetpgrp(ttyfd, mypgrp) < 0) + if (tcsetpgrp(ttyfd, rootpid) < 0) error("tcsetpgrp failed, errno=%d\n", errno); } if (jp->state == JOBSTOPPED) From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 15:24:19 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 61856EB9; Fri, 18 Oct 2013 15:24:19 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 4E7132AE2; Fri, 18 Oct 2013 15:24:19 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9IFOJfR030564; Fri, 18 Oct 2013 15:24:19 GMT (envelope-from brooks@svn.freebsd.org) Received: (from brooks@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9IFOJOv030563; Fri, 18 Oct 2013 15:24:19 GMT (envelope-from brooks@svn.freebsd.org) Message-Id: <201310181524.r9IFOJOv030563@svn.freebsd.org> From: Brooks Davis Date: Fri, 18 Oct 2013 15:24:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256743 - head/sys/dev/altera/sdcard X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 15:24:19 -0000 Author: brooks Date: Fri Oct 18 15:24:18 2013 New Revision: 256743 URL: http://svnweb.freebsd.org/changeset/base/256743 Log: MFP4: Change 227594 by brooks@brooks_zenith on 2013/04/11 17:10:14 When we fail, print the error that occured if we are giving up or if bootverbose is set. MFC after: 3 days Sponsored by: DARPA/AFRL Modified: head/sys/dev/altera/sdcard/altera_sdcard_io.c Modified: head/sys/dev/altera/sdcard/altera_sdcard_io.c ============================================================================== --- head/sys/dev/altera/sdcard/altera_sdcard_io.c Fri Oct 18 14:43:03 2013 (r256742) +++ head/sys/dev/altera/sdcard/altera_sdcard_io.c Fri Oct 18 15:24:18 2013 (r256743) @@ -390,20 +390,23 @@ altera_sdcard_io_complete(struct altera_ break; } if (error) { + sc->as_retriesleft--; + if (sc->as_retriesleft == 0 || bootverbose) + device_printf(sc->as_dev, "%s: %s operation block %ju " + "length %ju failed; asr 0x%08x (rr1: 0x%04x)%s\n", + __func__, bp->bio_cmd == BIO_READ ? "BIO_READ" : + (bp->bio_cmd == BIO_WRITE ? "BIO_WRITE" : + "unknown"), + bp->bio_pblkno, bp->bio_bcount, asr, rr1, + sc->as_retriesleft != 0 ? " retrying" : ""); /* * This attempt experienced an error; possibly retry. */ - sc->as_retriesleft--; if (sc->as_retriesleft != 0) { sc->as_flags |= ALTERA_SDCARD_FLAG_IOERROR; altera_sdcard_io_start_internal(sc, bp); return (0); } - device_printf(sc->as_dev, "%s: %s operation block %ju length " - "%ju failed; asr 0x%08x (rr1: 0x%04x)\n", __func__, - bp->bio_cmd == BIO_READ ? "BIO_READ" : - (bp->bio_cmd == BIO_WRITE ? "BIO_WRITE" : "unknown"), - bp->bio_pblkno, bp->bio_bcount, asr, rr1); sc->as_flags &= ~ALTERA_SDCARD_FLAG_IOERROR; } else { /* From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 15:27:12 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 5D2B9193; Fri, 18 Oct 2013 15:27:12 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 30E9B2B0D; Fri, 18 Oct 2013 15:27:12 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9IFRC6A031317; Fri, 18 Oct 2013 15:27:12 GMT (envelope-from brooks@svn.freebsd.org) Received: (from brooks@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9IFRBEA031315; Fri, 18 Oct 2013 15:27:11 GMT (envelope-from brooks@svn.freebsd.org) Message-Id: <201310181527.r9IFRBEA031315@svn.freebsd.org> From: Brooks Davis Date: Fri, 18 Oct 2013 15:27:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256744 - in head/sys: conf dev/altera/sdcard X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 15:27:12 -0000 Author: brooks Date: Fri Oct 18 15:27:11 2013 New Revision: 256744 URL: http://svnweb.freebsd.org/changeset/base/256744 Log: MFP4 (driver change only): Change 231100 by brooks@brooks_zenith on 2013/07/12 21:01:31 Add a new option ALTERA_SDCARD_FAST_SIM which checks immediatly for success of I/O operations rather than queuing a task. MFC after: 3 days Sponsored by: DARPA/AFRL Modified: head/sys/conf/options head/sys/dev/altera/sdcard/altera_sdcard.c Modified: head/sys/conf/options ============================================================================== --- head/sys/conf/options Fri Oct 18 15:24:18 2013 (r256743) +++ head/sys/conf/options Fri Oct 18 15:27:11 2013 (r256744) @@ -68,6 +68,7 @@ TEXTDUMP_VERBOSE opt_ddb.h # Miscellaneous options. ADAPTIVE_LOCKMGRS ALQ +ALTERA_SDCARD_FAST_SIM opt_altera_sdcard.h AUDIT opt_global.h BOOTHOWTO opt_global.h BOOTVERBOSE opt_global.h Modified: head/sys/dev/altera/sdcard/altera_sdcard.c ============================================================================== --- head/sys/dev/altera/sdcard/altera_sdcard.c Fri Oct 18 15:24:18 2013 (r256743) +++ head/sys/dev/altera/sdcard/altera_sdcard.c Fri Oct 18 15:27:11 2013 (r256744) @@ -31,6 +31,8 @@ #include __FBSDID("$FreeBSD$"); +#include "opt_altera_sdcard.h" + #include #include #include @@ -258,6 +260,9 @@ altera_sdcard_task_io(struct altera_sdca ALTERA_SDCARD_LOCK_ASSERT(sc); KASSERT(sc->as_currentbio != NULL, ("%s: no current I/O", __func__)); +#ifdef ALTERA_SDCARD_FAST_SIM +recheck: +#endif asr = altera_sdcard_read_asr(sc); /* @@ -299,9 +304,12 @@ altera_sdcard_task_io(struct altera_sdca /* * Finally, either start the next I/O or transition to the IDLE state. */ - if (bioq_first(&sc->as_bioq) != NULL) + if (bioq_first(&sc->as_bioq) != NULL) { altera_sdcard_nextio(sc); - else +#ifdef ALTERA_SDCARD_FAST_SIM + goto recheck; +#endif + } else sc->as_state = ALTERA_SDCARD_STATE_IDLE; } @@ -398,6 +406,8 @@ altera_sdcard_start(struct altera_sdcard taskqueue_cancel_timeout(sc->as_taskqueue, &sc->as_task, NULL); altera_sdcard_nextio(sc); - taskqueue_enqueue_timeout(sc->as_taskqueue, &sc->as_task, - ALTERA_SDCARD_TIMEOUT_IO); +#ifdef ALTERA_SDCARD_FAST_SIM + altera_sdcard_task_io(sc); +#endif + altera_sdcard_task_rechedule(sc); } From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 15:40:37 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id DA40C8B8; Fri, 18 Oct 2013 15:40:37 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id C77A82C42; Fri, 18 Oct 2013 15:40:37 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9IFebSO038441; Fri, 18 Oct 2013 15:40:37 GMT (envelope-from brooks@svn.freebsd.org) Received: (from brooks@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9IFebkB038440; Fri, 18 Oct 2013 15:40:37 GMT (envelope-from brooks@svn.freebsd.org) Message-Id: <201310181540.r9IFebkB038440@svn.freebsd.org> From: Brooks Davis Date: Fri, 18 Oct 2013 15:40:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256745 - head/sys/mips/beri X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 15:40:37 -0000 Author: brooks Date: Fri Oct 18 15:40:37 2013 New Revision: 256745 URL: http://svnweb.freebsd.org/changeset/base/256745 Log: MFP4: Change 227630 by bz@bz_zenith on 2013/04/12 08:50:27 Implement soft reset setting sr in sr and just in case loop endlessly afterwards. MFC after: 3 days Sponsored by: DARPA/AFRL Modified: head/sys/mips/beri/beri_machdep.c Modified: head/sys/mips/beri/beri_machdep.c ============================================================================== --- head/sys/mips/beri/beri_machdep.c Fri Oct 18 15:27:11 2013 (r256744) +++ head/sys/mips/beri/beri_machdep.c Fri Oct 18 15:40:37 2013 (r256745) @@ -116,14 +116,19 @@ mips_init(void) /* * Perform a board-level soft-reset. - * - * XXXRW: BERI doesn't yet have a board-level soft-reset. */ void platform_reset(void) { - panic("%s: not yet", __func__); + /* XXX SMP will likely require us to do more. */ + __asm__ __volatile__( + "mfc0 $k0, $12\n\t" + "li $k1, 0x00100000\n\t" + "or $k0, $k0, $k1\n\t" + "mtc0 $k0, $12\n"); + for( ; ; ) + __asm__ __volatile("wait"); } void From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 15:40:53 2013 Return-Path: Delivered-To: svn-src-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 8DFB89F0; Fri, 18 Oct 2013 15:40:53 +0000 (UTC) (envelope-from hilko.meyer@gmx.de) Received: from kirk.hochpass.uni-hannover.de (kirk.hochpass.uni-hannover.de [130.75.81.215]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 274952C6B; Fri, 18 Oct 2013 15:40:52 +0000 (UTC) Received: from SOLO.hochpass.uni-hannover.de (solo.hochpass.uni-hannover.de [130.75.81.216]) by kirk.hochpass.uni-hannover.de (8.14.5/8.14.5) with SMTP id r9IFcwee080425; Fri, 18 Oct 2013 17:38:58 +0200 (CEST) (envelope-from hilko.meyer@gmx.de) From: Hilko Meyer To: Andrey Zonov Subject: Re: svn commit: r256710 - head/tools/build/mk Date: Fri, 18 Oct 2013 17:38:58 +0200 Message-ID: <97l269dokal3obs07tc792auspk1e0j0nj@4ax.com> References: <201310172200.r9HM0ZFM072006__34950.8864027031$1382047250$gmane$org@svn.freebsd.org> In-Reply-To: <201310172200.r9HM0ZFM072006__34950.8864027031$1382047250$gmane$org@svn.freebsd.org> X-Mailer: Forte Agent 1.93/32.576 English (American) 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 X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 15:40:53 -0000 On Thu, 17 Oct 2013 22:00:35 +0000 (UTC), in gmane.os.freebsd.devel.cvs you wrote: >Author: zont >Date: Thu Oct 17 22:00:35 2013 >New Revision: 256710 >URL: http://svnweb.freebsd.org/changeset/base/256710 > >Log: > Add lot of missed files and dirs > >Modified: > head/tools/build/mk/OptionalObsoleteFiles.inc This fixed two files I reported in conf/167133.2. Maybe you can look for the other four and close the PR. bye, Hilko From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 17:06:13 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id B7955ED8; Fri, 18 Oct 2013 17:06:13 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A4E972193; Fri, 18 Oct 2013 17:06:13 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9IH6D3C084402; Fri, 18 Oct 2013 17:06:13 GMT (envelope-from dim@svn.freebsd.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9IH6DoB084401; Fri, 18 Oct 2013 17:06:13 GMT (envelope-from dim@svn.freebsd.org) Message-Id: <201310181706.r9IH6DoB084401@svn.freebsd.org> From: Dimitry Andric Date: Fri, 18 Oct 2013 17:06:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256746 - head/sys/xen X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 17:06:13 -0000 Author: dim Date: Fri Oct 18 17:06:13 2013 New Revision: 256746 URL: http://svnweb.freebsd.org/changeset/base/256746 Log: Remove redundant redeclaration of gdtset in sys/xen/xen-os.h, to silence a gcc warning. Approved by: re (glebius) Modified: head/sys/xen/xen-os.h Modified: head/sys/xen/xen-os.h ============================================================================== --- head/sys/xen/xen-os.h Fri Oct 18 15:40:37 2013 (r256745) +++ head/sys/xen/xen-os.h Fri Oct 18 17:06:13 2013 (r256746) @@ -50,8 +50,6 @@ /* Force a proper event-channel callback from Xen. */ void force_evtchn_callback(void); -extern int gdtset; - extern shared_info_t *HYPERVISOR_shared_info; enum xen_domain_type { From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 17:08:23 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id C2094B7; Fri, 18 Oct 2013 17:08:23 +0000 (UTC) (envelope-from dim@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id AE3A821A2; Fri, 18 Oct 2013 17:08:23 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9IH8NDR084862; Fri, 18 Oct 2013 17:08:23 GMT (envelope-from dim@svn.freebsd.org) Received: (from dim@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9IH8Nt1084861; Fri, 18 Oct 2013 17:08:23 GMT (envelope-from dim@svn.freebsd.org) Message-Id: <201310181708.r9IH8Nt1084861@svn.freebsd.org> From: Dimitry Andric Date: Fri, 18 Oct 2013 17:08:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r256747 - stable/10/sys/xen X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 17:08:23 -0000 Author: dim Date: Fri Oct 18 17:08:23 2013 New Revision: 256747 URL: http://svnweb.freebsd.org/changeset/base/256747 Log: MFC r256746: Remove redundant redeclaration of gdtset in sys/xen/xen-os.h, to silence a gcc warning. Approved by: re (glebius) Modified: stable/10/sys/xen/xen-os.h Directory Properties: stable/10/sys/ (props changed) Modified: stable/10/sys/xen/xen-os.h ============================================================================== --- stable/10/sys/xen/xen-os.h Fri Oct 18 17:06:13 2013 (r256746) +++ stable/10/sys/xen/xen-os.h Fri Oct 18 17:08:23 2013 (r256747) @@ -50,8 +50,6 @@ /* Force a proper event-channel callback from Xen. */ void force_evtchn_callback(void); -extern int gdtset; - extern shared_info_t *HYPERVISOR_shared_info; enum xen_domain_type { From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 17:21:48 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 06E723CE; Fri, 18 Oct 2013 17:21:48 +0000 (UTC) (envelope-from cognet@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id E7E98226A; Fri, 18 Oct 2013 17:21:47 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9IHLl3V093218; Fri, 18 Oct 2013 17:21:47 GMT (envelope-from cognet@svn.freebsd.org) Received: (from cognet@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9IHLll3093217; Fri, 18 Oct 2013 17:21:47 GMT (envelope-from cognet@svn.freebsd.org) Message-Id: <201310181721.r9IHLll3093217@svn.freebsd.org> From: Olivier Houchard Date: Fri, 18 Oct 2013 17:21:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256748 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 17:21:48 -0000 Author: cognet Date: Fri Oct 18 17:21:47 2013 New Revision: 256748 URL: http://svnweb.freebsd.org/changeset/base/256748 Log: KERNBASE is unsigned, so we'd better use hs instead of ge. Pointy hat to: cognet Suggested by: ian Modified: head/sys/arm/arm/fusu.S Modified: head/sys/arm/arm/fusu.S ============================================================================== --- head/sys/arm/arm/fusu.S Fri Oct 18 17:08:23 2013 (r256747) +++ head/sys/arm/arm/fusu.S Fri Oct 18 17:21:47 2013 (r256748) @@ -70,8 +70,8 @@ ENTRY(casuword) #ifdef _ARM_ARCH_6 1: cmp r0, #KERNBASE - mvnge r0, #0 - bge 2f + mvnhs r0, #0 + bhs 2f ldrex r5, [r0] cmp r5, r1 From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 17:32:23 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id CF2095AF; Fri, 18 Oct 2013 17:32:23 +0000 (UTC) (envelope-from jase@FreeBSD.org) Received: from smtp.btshosting.co.uk (smtp.btshosting.co.uk [178.63.196.250]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 5293B2300; Fri, 18 Oct 2013 17:32:23 +0000 (UTC) Received: from [192.168.1.65] (unknown [94.4.78.78]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by svr06-mx.btshosting.co.uk (Postfix) with ESMTPSA id 3D8EB57CD5; Fri, 18 Oct 2013 17:32:15 +0000 (UTC) Message-ID: <52617089.6090708@FreeBSD.org> Date: Fri, 18 Oct 2013 18:31:53 +0100 From: Jase Thew Organization: The FreeBSD Project User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.0.1 MIME-Version: 1.0 To: Hiroki Sato , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r256498 - head/etc/rc.d References: <201310150454.r9F4snOM001275@svn.freebsd.org> In-Reply-To: <201310150454.r9F4snOM001275@svn.freebsd.org> X-Enigmail-Version: 1.5.2 OpenPGP: id=3F9B9617; url=pool.sks-keyservers.net Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="Lnicen5WxNkC0evgGBmsNRL7FmJX34Or0" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 17:32:24 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --Lnicen5WxNkC0evgGBmsNRL7FmJX34Or0 Content-Type: multipart/mixed; boundary="------------080102050103020609060206" This is a multi-part message in MIME format. --------------080102050103020609060206 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On 15/10/2013 05:54, Hiroki Sato wrote: > Author: hrs > Date: Tue Oct 15 04:54:49 2013 > New Revision: 256498 > URL: http://svnweb.freebsd.org/changeset/base/256498 >=20 > Log: > - Fix "ifname|addr" syntax support in jail_{jname}_ip. > - Create /var/run/jail_{jname}.id because ezjail-admin depends on it.= >=20 > Modified: > head/etc/rc.d/jail >=20 Hi Hiroki, This unfortunately breaks ezjail when the address list doesn't use iface prefix syntax. Given this configuration : export jail_poudriere_ip=3D"192.168.1.184,127.0.1.4,::1" results in the following being generated : ip4.addr +=3D "|192.168.1.184/32"; ip4.addr +=3D "|127.0.1.4/32"; ip6.addr +=3D "|::1/64"; The attach patch corrects the issue by suffixing the iface value with "|" only when it has a value. Kind regards, Jase. --=20 Jase Thew jase@FreeBSD.org FreeBSD Ports Committer --------------080102050103020609060206 Content-Type: text/plain; charset=windows-1252; name="jail_iface_prefix_20131018.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="jail_iface_prefix_20131018.patch" LS0tIC9ldGMvcmMuZC9qYWlsLm9yaWcJMjAxMy0xMC0xOCAxNzo0Nzo1OC41MjM4NjkwMzAg KzAxMDAKKysrIC9ldGMvcmMuZC9qYWlsCTIwMTMtMTAtMTggMTg6MTg6MzYuODU5MjIwODAw ICswMTAwCkBAIC0zNjcsMTAgKzM2NywxMCBAQAogCQkjIEFwcGVuZCBhZGRyZXNzIHRvIGxp c3Qgb2YgYWRkcmVzc2VzIGZvciB0aGUgamFpbCBjb21tYW5kLgogCQljYXNlICRfdHlwZSBp bgogCQlpbmV0KQotCQkJZWNobyAiCWlwNC5hZGRyICs9IFwiJHtfaWZhY2V9fCR7X2FkZHJ9 JHtfbWFza31cIjsiCisJCQllY2hvICIJaXA0LmFkZHIgKz0gXCIke19pZmFjZTorJHtfaWZh Y2V9fH0ke19hZGRyfSR7X21hc2t9XCI7IgogCQk7OwogCQlpbmV0NikKLQkJCWVjaG8gIglp cDYuYWRkciArPSBcIiR7X2lmYWNlfXwke19hZGRyfSR7X21hc2t9XCI7IgorCQkJZWNobyAi CWlwNi5hZGRyICs9IFwiJHtfaWZhY2U6KyR7X2lmYWNlfXx9JHtfYWRkcn0ke19tYXNrfVwi OyIKIAkJCW5lZWRfZGFkX3dhaXQ9MQogCQk7OwogCQllc2FjCg== --------------080102050103020609060206-- --Lnicen5WxNkC0evgGBmsNRL7FmJX34Or0 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.21 (MingW32) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQJ8BAEBCgBmBQJSYXCTXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXRGNzY3ODIxQkE1MTQ4MjNFQ0RGNUM3QkRE NEU2NUM4QkZGMUMzODI5AAoJENTmXIv/HDgpoBMP/i7bR8EaeJF4/frf9AayF5CL Wi3aDNRcN4kDhGikfD7fdSFHRyQlpSXkydOFYHJZG4bXPhdFjHUKoZRSaMyUEdsj vQ0KsiLrjnBYkX6czxHf43PObTM6snZyESU4bplBXSO2HRhOVo9IlG81FEmBdesz Qahf8gvOsmN9b4r/6/stBjaL8uTAQo+A4XydQslUNX3q1fOFn7nDFwg+xsDlNM5Y SMGZ5cLnDb2L5fLtp7tuNqVIiPm4MuxCo/GYow7x31h/F1998Czny7xvydVtzLzM IgDXCO75b9JHBa/n5/BN33eVr8w/zxxUu3c8Dozs4tVM6mfPMbHZI1Rj+y6Mkkw0 QgNkEVSAKg+dyhX7zssYhuUwsboa8zB4pd2xuALDRvNi18/aoKZttaj2jpn3Bamo sOum0Y652kmc+D8/SM30ttAUDk85YodNzz4k1OJxJe2ZcZaz8FQKSpPb4G8TMnz6 YjrhPz6Waig5/fH8jfDSH1UIuP1Ce4dAr3yrnWdo8e++sbF4Y/uKtiDyfHTQIf3M hwf8wCsJBinXkGLwi7znicYOyu2w7COdIyvgGpNFR8iyRcyUtneEV0firYLiMefx 29zO/cZ7tFQItea2j5ePv9PoFS3XrfWDRHJXNwF3ofindT10LLKUNaEPoI0q96+w rBQVMigRZWv2AnP24cfG =fZJZ -----END PGP SIGNATURE----- --Lnicen5WxNkC0evgGBmsNRL7FmJX34Or0-- From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 17:38:58 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 402CC849; Fri, 18 Oct 2013 17:38:58 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 2D061233D; Fri, 18 Oct 2013 17:38:58 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9IHcw5W000879; Fri, 18 Oct 2013 17:38:58 GMT (envelope-from hselasky@svn.freebsd.org) Received: (from hselasky@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9IHcwcY000876; Fri, 18 Oct 2013 17:38:58 GMT (envelope-from hselasky@svn.freebsd.org) Message-Id: <201310181738.r9IHcwcY000876@svn.freebsd.org> From: Hans Petter Selasky Date: Fri, 18 Oct 2013 17:38:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256750 - head/sys/dev/usb/controller X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 17:38:58 -0000 Author: hselasky Date: Fri Oct 18 17:38:57 2013 New Revision: 256750 URL: http://svnweb.freebsd.org/changeset/base/256750 Log: Improve XHCI stability. When a command timeout happens, the command should be aborted else the command queue can stop. Refer to section "4.6.1.2" of the XHCI specification. MFC after: 1 week Modified: head/sys/dev/usb/controller/xhci.c Modified: head/sys/dev/usb/controller/xhci.c ============================================================================== --- head/sys/dev/usb/controller/xhci.c Fri Oct 18 17:35:51 2013 (r256749) +++ head/sys/dev/usb/controller/xhci.c Fri Oct 18 17:38:57 2013 (r256750) @@ -1144,6 +1144,25 @@ xhci_do_command(struct xhci_softc *sc, s } if (err != 0) { DPRINTFN(0, "Command timeout!\n"); + + /* + * Try to abort the last command as per section + * 4.6.1.2 "Aborting a Command" of the XHCI + * specification: + */ + temp = XREAD4(sc, oper, XHCI_CRCR_LO); + XWRITE4(sc, oper, XHCI_CRCR_LO, temp | XHCI_CRCR_LO_CA); + + /* wait for abort event, if any */ + err = cv_timedwait(&sc->sc_cmd_cv, &sc->sc_bus.bus_mtx, hz / 16); + + if (err != 0 && xhci_interrupt_poll(sc) != 0) { + DPRINTF("Command was completed when polling\n"); + err = 0; + } + if (err != 0) { + DPRINTF("Command abort timeout!\n"); + } err = USB_ERR_TIMEOUT; trb->dwTrb2 = 0; trb->dwTrb3 = 0; From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 20:44:20 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 7479EF0B; Fri, 18 Oct 2013 20:44:20 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 606832CB8; Fri, 18 Oct 2013 20:44:20 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9IKiKL5000512; Fri, 18 Oct 2013 20:44:20 GMT (envelope-from brooks@svn.freebsd.org) Received: (from brooks@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9IKiJYs000507; Fri, 18 Oct 2013 20:44:19 GMT (envelope-from brooks@svn.freebsd.org) Message-Id: <201310182044.r9IKiJYs000507@svn.freebsd.org> From: Brooks Davis Date: Fri, 18 Oct 2013 20:44:19 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256752 - in head: share/man/man4 sys/dev/altera/atse sys/mips/beri X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 20:44:20 -0000 Author: brooks Date: Fri Oct 18 20:44:19 2013 New Revision: 256752 URL: http://svnweb.freebsd.org/changeset/base/256752 Log: MFP4: 221483, 221567, 221568, 221670, 221677, 221678, 221800, 221801, 221804, 221805, 222004, 222006, 222055, 222820, 1135077, 1135118, 1136259 Add atse(4), a driver for the Altera Triple Speed Ethernet MegaCore. The current driver support gigabit Ethernet speeds only and works with the MegaCore only in the internal FIFO configuration in the soon to be open sourced BERI CPU configuration. Submitted by: bz MFC after: 3 days Sponsored by: DARPA/AFRL Added: head/share/man/man4/altera_atse.4 (contents, props changed) head/sys/dev/altera/atse/ head/sys/dev/altera/atse/a_api.h (contents, props changed) head/sys/dev/altera/atse/if_atse.c (contents, props changed) head/sys/dev/altera/atse/if_atse_fdt.c (contents, props changed) head/sys/dev/altera/atse/if_atse_nexus.c (contents, props changed) head/sys/dev/altera/atse/if_atsereg.h (contents, props changed) Modified: head/share/man/man4/Makefile head/sys/mips/beri/files.beri Modified: head/share/man/man4/Makefile ============================================================================== --- head/share/man/man4/Makefile Fri Oct 18 17:43:48 2013 (r256751) +++ head/share/man/man4/Makefile Fri Oct 18 20:44:19 2013 (r256752) @@ -35,6 +35,7 @@ MAN= aac.4 \ alc.4 \ ale.4 \ alpm.4 \ + altera_atse.4 \ altera_avgen.4 \ altera_jtag_uart.4 \ altera_sdcard.4 \ @@ -574,6 +575,7 @@ MLINKS+=age.4 if_age.4 MLINKS+=agp.4 agpgart.4 MLINKS+=alc.4 if_alc.4 MLINKS+=ale.4 if_ale.4 +MLINKS+=altera_atse.4 atse.4 MLINKS+=altera_sdcard.4 altera_sdcardc.4 MLINKS+=altq.4 ALTQ.4 MLINKS+=ath.4 if_ath.4 Added: head/share/man/man4/altera_atse.4 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/man/man4/altera_atse.4 Fri Oct 18 20:44:19 2013 (r256752) @@ -0,0 +1,100 @@ +.\"- +.\" Copyright (c) 2013 SRI International +.\" All rights reserved. +.\" +.\" This software was developed by SRI International and the University of +.\" Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237) +.\" ("CTSRD"), as part of the DARPA CRASH research programme. +.\" +.\" 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$ +.\" +.Dd October 18, 2013 +.Dt ALTERA_ATSE 4 +.Os +.Sh NAME +.Nm atse +.Nd driver for the Altera Triple-Speed Ethernet MegaCore +.Sh SYNOPSIS +.Cd "device atse" +.Cd "options ATSE_CFI_HACK" +.Pp +In +.Pa /boot/device.hints : +.Cd hint.atse.0.at="nexus0" +.Cd hint.atse.0.maddr=0x7f007000 +.Cd hint.atse.0.msize=0x540 +.Cd hint.atse.0.rc_irq=1 +.Cd hint.atse.0.rx_maddr=0x7f007500 +.Cd hint.atse.0.rx_msize=0x8 +.Cd hint.atse.0.rxc_maddr=0x7f007520 +.Cd hint.atse.0.rxc_msize=0x20 +.Cd hint.atse.0.tx_irq=2 +.Cd hint.atse.0.tx_maddr=0x7f007400 +.Cd hint.atse.0.tx_msize=0x8 +.Cd hint.atse.0.txc_maddr=0x7f007420 +.Cd hint.atse.0.txc_msize=0x20 +.Cd hint.e1000phy.0.at="miibus0" +.Cd hint.e1000phy.0.phyno=0 +.Sh DESCRIPTION +The +.Nm +device driver provides support for the Altera Triple-Speed Ethernet +MegaCore. +.Sh HARDWARE +The current version of the +.Nm +driver supports the Ethernet MegaCore as described in version 11.1 of +Altera's documentation when the device is configured with internal FIFOs. +.Sh SEE ALSO +.Xr miibus 4 , +.Xr netintro 4 , +.Xr ifconfig 8 +.Rs +.%T Triple-Speed Ethernet MegaCore Function User Guide +.%D November 2011 +.%I Altera Corporation +.Re +.Sh HISTORY +The +.Nm +device driver first appeared in +.Fx 10.0 . +.Sh AUTHORS +The +.Nm +device driver and this manual page were +developed by SRI International and the University of Cambridge Computer +Laboratory under DARPA/AFRL contract +.Pq FA8750-10-C-0237 +.Pq Do CTSRD Dc , +as part of the DARPA CRASH research programme. +This device driver was written by +.An Bjoern A. Zeeb . +.Sh BUGS +The +.Nm +driver only supports a single configuration of the MegaCore as installed +on the Terasic Technologies Altera DE4 Development and Education Board. +.Pp +Only gigabit Ethernet speeds are currently supported. Added: head/sys/dev/altera/atse/a_api.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/altera/atse/a_api.h Fri Oct 18 20:44:19 2013 (r256752) @@ -0,0 +1,98 @@ +/*- + * Copyright (c) 2012 Bjoern A. Zeeb + * All rights reserved. + * + * This software was developed by SRI International and the University of + * Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-11-C-0249) + * ("MRC2"), as part of the DARPA MRC research programme. + * + * 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$ + */ +/* + * Altera, Embedded Peripherals IP, User Guide, v. 11.0, June 2011. + * UG-01085-11.0. + */ + +#ifndef _A_API_H +#define _A_API_H + +/* Table 16-1. Memory Map. */ +#define A_ONCHIP_FIFO_MEM_CORE_DATA 0x00 +#define A_ONCHIP_FIFO_MEM_CORE_METADATA 0x04 + +#define A_ONCHIP_FIFO_MEM_CORE_SOP (1<<0) +#define A_ONCHIP_FIFO_MEM_CORE_EOP (1<<1) +#define A_ONCHIP_FIFO_MEM_CORE_EMPTY_MASK 0x000000f7 +#define A_ONCHIP_FIFO_MEM_CORE_EMPTY_SHIFT 2 + /* Reserved (1<<7) */ +#define A_ONCHIP_FIFO_MEM_CORE_CHANNEL_MASK 0x0000ff00 +#define A_ONCHIP_FIFO_MEM_CORE_CHANNEL_SHIFT 8 +#define A_ONCHIP_FIFO_MEM_CORE_ERROR_MASK 0x00ff0000 +#define A_ONCHIP_FIFO_MEM_CORE_ERROR_SHIFT 16 + /* Reserved 0xff000000 */ + +/* Table 16-3. FIFO Status Register Memory Map. */ +#define A_ONCHIP_FIFO_MEM_CORE_STATUS_REG_FILL_LEVEL 0x00 +#define A_ONCHIP_FIFO_MEM_CORE_STATUS_REG_I_STATUS 0x04 +#define A_ONCHIP_FIFO_MEM_CORE_STATUS_REG_EVENT 0x08 +#define A_ONCHIP_FIFO_MEM_CORE_STATUS_REG_INT_ENABLE 0x0c +#define A_ONCHIP_FIFO_MEM_CORE_STATUS_REG_ALMOSTFULL 0x10 +#define A_ONCHIP_FIFO_MEM_CORE_STATUS_REG_ALMOSTEMPTY 0x14 + +/* Table 16-5. Status Bit Field Descriptions. */ +#define A_ONCHIP_FIFO_MEM_CORE_STATUS_FULL (1<<0) +#define A_ONCHIP_FIFO_MEM_CORE_STATUS_EMPTY (1<<1) +#define A_ONCHIP_FIFO_MEM_CORE_STATUS_ALMOSTFULL (1<<2) +#define A_ONCHIP_FIFO_MEM_CORE_STATUS_ALMOSTEMPTY (1<<3) +#define A_ONCHIP_FIFO_MEM_CORE_STATUS_OVERFLOW (1<<4) +#define A_ONCHIP_FIFO_MEM_CORE_STATUS_UNDERFLOW (1<<5) + +/* Table 16-6. Event Bit Field Descriptions. */ +/* XXX Datasheet has weird bit fields. Validate. */ +#define A_ONCHIP_FIFO_MEM_CORE_EVENT_EMPTY (1<<0) +#define A_ONCHIP_FIFO_MEM_CORE_EVENT_FULL (1<<1) +#define A_ONCHIP_FIFO_MEM_CORE_EVENT_ALMOSTEMPTY (1<<2) +#define A_ONCHIP_FIFO_MEM_CORE_EVENT_ALMOSTFULL (1<<3) +#define A_ONCHIP_FIFO_MEM_CORE_EVENT_OVERFLOW (1<<4) +#define A_ONCHIP_FIFO_MEM_CORE_EVENT_UNDERFLOW (1<<5) + +/* Table 16-7. InterruptEnable Bit Field Descriptions. */ +/* XXX Datasheet has weird bit fields. Validate. */ +#define A_ONCHIP_FIFO_MEM_CORE_INTR_EMPTY (1<<0) +#define A_ONCHIP_FIFO_MEM_CORE_INTR_FULL (1<<1) +#define A_ONCHIP_FIFO_MEM_CORE_INTR_ALMOSTEMPTY (1<<2) +#define A_ONCHIP_FIFO_MEM_CORE_INTR_ALMOSTFULL (1<<3) +#define A_ONCHIP_FIFO_MEM_CORE_INTR_OVERFLOW (1<<4) +#define A_ONCHIP_FIFO_MEM_CORE_INTR_UNDERFLOW (1<<5) +#define A_ONCHIP_FIFO_MEM_CORE_INTR_ALL \ + (A_ONCHIP_FIFO_MEM_CORE_INTR_EMPTY| \ + A_ONCHIP_FIFO_MEM_CORE_INTR_FULL| \ + A_ONCHIP_FIFO_MEM_CORE_INTR_ALMOSTEMPTY| \ + A_ONCHIP_FIFO_MEM_CORE_INTR_ALMOSTFULL| \ + A_ONCHIP_FIFO_MEM_CORE_INTR_OVERFLOW| \ + A_ONCHIP_FIFO_MEM_CORE_INTR_UNDERFLOW) + +#endif /* _A_API_H */ + +/* end */ Added: head/sys/dev/altera/atse/if_atse.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/sys/dev/altera/atse/if_atse.c Fri Oct 18 20:44:19 2013 (r256752) @@ -0,0 +1,1979 @@ +/*- + * Copyright (c) 2012,2013 Bjoern A. Zeeb + * All rights reserved. + * + * This software was developed by SRI International and the University of + * Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-11-C-0249) + * ("MRC2"), as part of the DARPA MRC research programme. + * + * 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. + */ +/* + * Altera Triple-Speed Ethernet MegaCore, Function User Guide + * UG-01008-3.0, Software Version: 12.0, June 2012. + * Available at the time of writing at: + * http://www.altera.com/literature/ug/ug_ethernet.pdf + * + * We are using an Marvell E1111 (Alaska) PHY on the DE4. See mii/e1000phy.c. + */ +/* + * XXX-BZ NOTES: + * - ifOutBroadcastPkts are only counted if both ether dst and src are all-1s; + * seems an IP core bug, they count ether broadcasts as multicast. Is this + * still the case? + * - figure out why the TX FIFO fill status and intr did not work as expected. + * - test 100Mbit/s and 10Mbit/s + * - blacklist the one special factory programmed ethernet address (for now + * hardcoded, later from loader?) + * - resolve all XXX, left as reminders to shake out details later + * - Jumbo frame support + */ + +#include +__FBSDID("$FreeBSD$"); + +#include "opt_device_polling.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include + +#include +#include + +#include +#include + +MODULE_DEPEND(atse, ether, 1, 1, 1); +MODULE_DEPEND(atse, miibus, 1, 1, 1); + + +#define ATSE_WATCHDOG_TIME 5 + +#ifdef DEVICE_POLLING +static poll_handler_t atse_poll; +#endif + +/* XXX once we'd do parallel attach, we need a global lock for this. */ +#define ATSE_ETHERNET_OPTION_BITS_UNDEF 0 +#define ATSE_ETHERNET_OPTION_BITS_READ 1 +static int atse_ethernet_option_bits_flag = ATSE_ETHERNET_OPTION_BITS_UNDEF; +static uint8_t atse_ethernet_option_bits[ALTERA_ETHERNET_OPTION_BITS_LEN]; + +/* + * Softc and critical resource locking. + */ +#define ATSE_LOCK(_sc) mtx_lock(&(_sc)->atse_mtx) +#define ATSE_UNLOCK(_sc) mtx_unlock(&(_sc)->atse_mtx) +#define ATSE_LOCK_ASSERT(_sc) mtx_assert(&(_sc)->atse_mtx, MA_OWNED) + +#ifdef DEBUG +#define DPRINTF(format, ...) printf(format, __VA_ARGS__) +#else +#define DPRINTF(format, ...) +#endif + +/* a_api.c functions; factor out? */ +static inline void +a_onchip_fifo_mem_core_write(struct resource *res, uint32_t off, + uint32_t val4, const char *desc, const char *f, const int l) +{ + + val4 = htole32(val4); + DPRINTF("[%s:%d] FIFOW %s 0x%08x = 0x%08x\n", f, l, desc, off, val4); + bus_write_4(res, off, val4); +} +static inline uint32_t +a_onchip_fifo_mem_core_read(struct resource *res, uint32_t off, + const char *desc, const char *f, const int l) +{ + uint32_t val4; + + val4 = le32toh(bus_read_4(res, off)); + DPRINTF("[%s:%d] FIFOR %s 0x%08x = 0x%08x\n", f, l, desc, off, val4); + return (val4); +} + +/* The FIFO does an endian convertion, so we must not do it as well. */ +/* XXX-BZ in fact we should do a htobe32 so le would be fine as well? */ +#define ATSE_TX_DATA_WRITE(sc, val4) \ + bus_write_4((sc)->atse_tx_mem_res, A_ONCHIP_FIFO_MEM_CORE_DATA, val4) + +#define ATSE_TX_META_WRITE(sc, val4) \ + a_onchip_fifo_mem_core_write((sc)->atse_tx_mem_res, \ + A_ONCHIP_FIFO_MEM_CORE_METADATA, \ + (val4), "TXM", __func__, __LINE__) +#define ATSE_TX_META_READ(sc) \ + a_onchip_fifo_mem_core_read((sc)->atse_tx_mem_res, \ + A_ONCHIP_FIFO_MEM_CORE_METADATA, \ + "TXM", __func__, __LINE__) + +#define ATSE_TX_READ_FILL_LEVEL(sc) \ + a_onchip_fifo_mem_core_read((sc)->atse_txc_mem_res, \ + A_ONCHIP_FIFO_MEM_CORE_STATUS_REG_FILL_LEVEL, \ + "TX_FILL", __func__, __LINE__) +#define ATSE_RX_READ_FILL_LEVEL(sc) \ + a_onchip_fifo_mem_core_read((sc)->atse_rxc_mem_res, \ + A_ONCHIP_FIFO_MEM_CORE_STATUS_REG_FILL_LEVEL, \ + "RX_FILL", __func__, __LINE__) + +/* The FIFO does an endian convertion, so we must not do it as well. */ +/* XXX-BZ in fact we shoudl do a htobe32 so le would be fine as well? */ +#define ATSE_RX_DATA_READ(sc) \ + bus_read_4((sc)->atse_rx_mem_res, A_ONCHIP_FIFO_MEM_CORE_DATA) +#define ATSE_RX_META_READ(sc) \ + a_onchip_fifo_mem_core_read((sc)->atse_rx_mem_res, \ + A_ONCHIP_FIFO_MEM_CORE_METADATA, \ + "RXM", __func__, __LINE__) + +#define ATSE_RX_EVENT_READ(sc) \ + a_onchip_fifo_mem_core_read((sc)->atse_rxc_mem_res, \ + A_ONCHIP_FIFO_MEM_CORE_STATUS_REG_EVENT, \ + "RX_EVENT", __func__, __LINE__) + +#define ATSE_TX_EVENT_READ(sc) \ + a_onchip_fifo_mem_core_read((sc)->atse_txc_mem_res, \ + A_ONCHIP_FIFO_MEM_CORE_STATUS_REG_EVENT, \ + "TX_EVENT", __func__, __LINE__) + +#define ATSE_RX_EVENT_CLEAR(sc) \ + do { \ + uint32_t val4; \ + \ + val4 = a_onchip_fifo_mem_core_read( \ + (sc)->atse_rxc_mem_res, \ + A_ONCHIP_FIFO_MEM_CORE_STATUS_REG_EVENT, \ + "RX_EVENT", __func__, __LINE__); \ + if (val4 != 0x00) \ + a_onchip_fifo_mem_core_write( \ + (sc)->atse_rxc_mem_res, \ + A_ONCHIP_FIFO_MEM_CORE_STATUS_REG_EVENT, \ + val4, "RX_EVENT", __func__, __LINE__); \ + } while(0) +#define ATSE_TX_EVENT_CLEAR(sc) \ + do { \ + uint32_t val4; \ + \ + val4 = a_onchip_fifo_mem_core_read( \ + (sc)->atse_txc_mem_res, \ + A_ONCHIP_FIFO_MEM_CORE_STATUS_REG_EVENT, \ + "TX_EVENT", __func__, __LINE__); \ + if (val4 != 0x00) \ + a_onchip_fifo_mem_core_write( \ + (sc)->atse_txc_mem_res, \ + A_ONCHIP_FIFO_MEM_CORE_STATUS_REG_EVENT, \ + val4, "TX_EVENT", __func__, __LINE__); \ + } while(0) + +#define ATSE_RX_INTR_ENABLE(sc) \ + a_onchip_fifo_mem_core_write((sc)->atse_rxc_mem_res, \ + A_ONCHIP_FIFO_MEM_CORE_STATUS_REG_INT_ENABLE, \ + A_ONCHIP_FIFO_MEM_CORE_INTR_ALL, \ + "RX_INTR", __func__, __LINE__) /* XXX-BZ review later. */ +#define ATSE_RX_INTR_DISABLE(sc) \ + a_onchip_fifo_mem_core_write((sc)->atse_rxc_mem_res, \ + A_ONCHIP_FIFO_MEM_CORE_STATUS_REG_INT_ENABLE, 0, \ + "RX_INTR", __func__, __LINE__) +#define ATSE_TX_INTR_ENABLE(sc) \ + a_onchip_fifo_mem_core_write((sc)->atse_txc_mem_res, \ + A_ONCHIP_FIFO_MEM_CORE_STATUS_REG_INT_ENABLE, \ + A_ONCHIP_FIFO_MEM_CORE_INTR_ALL, \ + "TX_INTR", __func__, __LINE__) /* XXX-BZ review later. */ +#define ATSE_TX_INTR_DISABLE(sc) \ + a_onchip_fifo_mem_core_write((sc)->atse_txc_mem_res, \ + A_ONCHIP_FIFO_MEM_CORE_STATUS_REG_INT_ENABLE, 0, \ + "TX_INTR", __func__, __LINE__) + +/* + * Register space access macros. + */ +static inline void +csr_write_4(struct atse_softc *sc, uint32_t reg, uint32_t val4, + const char *f, const int l) +{ + + val4 = htole32(val4); + DPRINTF("[%s:%d] CSR W %s 0x%08x (0x%08x) = 0x%08x\n", f, l, + "atse_mem_res", reg, reg * 4, val4); + bus_write_4(sc->atse_mem_res, reg * 4, val4); +} + +static inline uint32_t +csr_read_4(struct atse_softc *sc, uint32_t reg, const char *f, const int l) +{ + uint32_t val4; + + val4 = le32toh(bus_read_4(sc->atse_mem_res, reg * 4)); + DPRINTF("[%s:%d] CSR R %s 0x%08x (0x%08x) = 0x%08x\n", f, l, + "atse_mem_res", reg, reg * 4, val4); + return (val4); +} + +/* + * See page 5-2 that it's all dword offsets and the MS 16 bits need to be zero + * on write and ignored on read. + */ +static inline void +pxx_write_2(struct atse_softc *sc, bus_addr_t bmcr, uint32_t reg, uint16_t val, + const char *f, const int l, const char *s) +{ + uint32_t val4; + + val4 = htole32(val & 0x0000ffff); + DPRINTF("[%s:%d] %s W %s 0x%08x (0x%08jx) = 0x%08x\n", f, l, s, + "atse_mem_res", reg, (bmcr + reg) * 4, val4); + bus_write_4(sc->atse_mem_res, (bmcr + reg) * 4, val4); +} + +static inline uint16_t +pxx_read_2(struct atse_softc *sc, bus_addr_t bmcr, uint32_t reg, const char *f, + const int l, const char *s) +{ + uint32_t val4; + uint16_t val; + + val4 = bus_read_4(sc->atse_mem_res, (bmcr + reg) * 4); + val = le32toh(val4) & 0x0000ffff; + DPRINTF("[%s:%d] %s R %s 0x%08x (0x%08jx) = 0x%04x\n", f, l, s, + "atse_mem_res", reg, (bmcr + reg) * 4, val); + return (val); +} + +#define CSR_WRITE_4(sc, reg, val) \ + csr_write_4((sc), (reg), (val), __func__, __LINE__) +#define CSR_READ_4(sc, reg) \ + csr_read_4((sc), (reg), __func__, __LINE__) +#define PCS_WRITE_2(sc, reg, val) \ + pxx_write_2((sc), sc->atse_bmcr0, (reg), (val), __func__, __LINE__, \ + "PCS") +#define PCS_READ_2(sc, reg) \ + pxx_read_2((sc), sc->atse_bmcr0, (reg), __func__, __LINE__, "PCS") +#define PHY_WRITE_2(sc, reg, val) \ + pxx_write_2((sc), sc->atse_bmcr1, (reg), (val), __func__, __LINE__, \ + "PHY") +#define PHY_READ_2(sc, reg) \ + pxx_read_2((sc), sc->atse_bmcr1, (reg), __func__, __LINE__, "PHY") + +static void atse_tick(void *); +static int atse_detach(device_t); + +devclass_t atse_devclass; + +static int +atse_tx_locked(struct atse_softc *sc, int *sent) +{ + struct mbuf *m; + uint32_t val4, fill_level; + int c; + + ATSE_LOCK_ASSERT(sc); + + m = sc->atse_tx_m; + KASSERT(m != NULL, ("%s: m is null: sc=%p", __func__, sc)); + KASSERT(m->m_flags & M_PKTHDR, ("%s: not a pkthdr: m=%p", __func__, m)); + + /* + * Copy to buffer to minimize our pain as we can only store + * double words which, after the first mbuf gets out of alignment + * quite quickly. + */ + if (sc->atse_tx_m_offset == 0) { + m_copydata(m, 0, m->m_pkthdr.len, sc->atse_tx_buf); + sc->atse_tx_buf_len = m->m_pkthdr.len; + } + + fill_level = ATSE_TX_READ_FILL_LEVEL(sc); +#if 0 /* Returns 0xdeadc0de. */ + val4 = ATSE_TX_META_READ(sc); +#endif + if (sc->atse_tx_m_offset == 0) { + /* Write start of packet. */ + val4 = A_ONCHIP_FIFO_MEM_CORE_SOP; + val4 &= ~A_ONCHIP_FIFO_MEM_CORE_EOP; + ATSE_TX_META_WRITE(sc, val4); + } + + /* TX FIFO is single clock mode, so we have the full FIFO. */ + c = 0; + while ((sc->atse_tx_buf_len - sc->atse_tx_m_offset) > 4 && + fill_level < AVALON_FIFO_TX_BASIC_OPTS_DEPTH) { + + bcopy(&sc->atse_tx_buf[sc->atse_tx_m_offset], &val4, + sizeof(val4)); + ATSE_TX_DATA_WRITE(sc, val4); + sc->atse_tx_m_offset += sizeof(val4); + c += sizeof(val4); + + fill_level++; + if (fill_level == AVALON_FIFO_TX_BASIC_OPTS_DEPTH) + fill_level = ATSE_TX_READ_FILL_LEVEL(sc); + } + if (sent != NULL) + *sent += c; + + /* Set EOP *before* writing the last symbol. */ + if (sc->atse_tx_m_offset >= (sc->atse_tx_buf_len - 4) && + fill_level < AVALON_FIFO_TX_BASIC_OPTS_DEPTH) { + int leftm; + uint32_t x; + + /* Set EndOfPacket. */ + val4 = A_ONCHIP_FIFO_MEM_CORE_EOP; + /* Set EMPTY. */ + leftm = sc->atse_tx_buf_len - sc->atse_tx_m_offset; + val4 |= ((4 - leftm) << A_ONCHIP_FIFO_MEM_CORE_EMPTY_SHIFT); + x = val4; + ATSE_TX_META_WRITE(sc, val4); + + /* Write last symbol. */ + val4 = 0; + bcopy(sc->atse_tx_buf + sc->atse_tx_m_offset, &val4, leftm); + ATSE_TX_DATA_WRITE(sc, val4); + + if (sent != NULL) + *sent += leftm; + + /* OK, the packet is gone. */ + sc->atse_tx_m = NULL; + sc->atse_tx_m_offset = 0; + + /* If anyone is interested give them a copy. */ + BPF_MTAP(sc->atse_ifp, m); + + m_freem(m); + return (0); + } + + return (EBUSY); +} + +static void +atse_start_locked(struct ifnet *ifp) +{ + struct atse_softc *sc; + int error, sent; + + sc = ifp->if_softc; + ATSE_LOCK_ASSERT(sc); + + if ((ifp->if_drv_flags & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING || (sc->atse_flags & ATSE_FLAGS_LINK) == 0) + return; + +#if 1 + /* + * Disable the watchdog while sending, we are batching packets. + * Though we should never reach 5 seconds, and are holding the lock, + * but who knows. + */ + sc->atse_watchdog_timer = 0; +#endif + + if (sc->atse_tx_m != NULL) { + error = atse_tx_locked(sc, &sent); + if (error != 0) + goto done; + } + /* We have more space to send so continue ... */ + for (; !IFQ_DRV_IS_EMPTY(&ifp->if_snd); ) { + + IFQ_DRV_DEQUEUE(&ifp->if_snd, sc->atse_tx_m); + sc->atse_tx_m_offset = 0; + if (sc->atse_tx_m == NULL) + break; + error = atse_tx_locked(sc, &sent); + if (error != 0) + goto done; + } + +done: + /* If the IP core walks into Nekromanteion try to bail out. */ + if (sent > 0) + sc->atse_watchdog_timer = ATSE_WATCHDOG_TIME; +} + +static void +atse_start(struct ifnet *ifp) +{ + struct atse_softc *sc; + + sc = ifp->if_softc; + ATSE_LOCK(sc); + atse_start_locked(ifp); + ATSE_UNLOCK(sc); +} + +static int +atse_stop_locked(struct atse_softc *sc) +{ + struct ifnet *ifp; + uint32_t mask, val4; + int i; + + ATSE_LOCK_ASSERT(sc); + + sc->atse_watchdog_timer = 0; + callout_stop(&sc->atse_tick); + + ifp = sc->atse_ifp; + ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE); + ATSE_RX_INTR_DISABLE(sc); + ATSE_TX_INTR_DISABLE(sc); + ATSE_RX_EVENT_CLEAR(sc); + ATSE_TX_EVENT_CLEAR(sc); + + /* Disable MAC transmit and receive datapath. */ + mask = BASE_CFG_COMMAND_CONFIG_TX_ENA|BASE_CFG_COMMAND_CONFIG_RX_ENA; + val4 = CSR_READ_4(sc, BASE_CFG_COMMAND_CONFIG); + val4 &= ~mask; + CSR_WRITE_4(sc, BASE_CFG_COMMAND_CONFIG, val4); + /* Wait for bits to be cleared; i=100 is excessive. */ + for (i = 0; i < 100; i++) { + val4 = CSR_READ_4(sc, BASE_CFG_COMMAND_CONFIG); + if ((val4 & mask) == 0) + break; + DELAY(10); + } + if ((val4 & mask) != 0) + device_printf(sc->atse_dev, "Disabling MAC TX/RX timed out.\n"); + /* Punt. */ + + sc->atse_flags &= ~ATSE_FLAGS_LINK; + + /* XXX-BZ free the RX/TX rings. */ + + return (0); +} + +static uint8_t +atse_mchash(struct atse_softc *sc __unused, const uint8_t *addr) +{ + int i, j; + uint8_t x, y; + + x = 0; + for (i = 0; i < ETHER_ADDR_LEN; i++) { + y = addr[i] & 0x01; + for (j = 1; j < 8; j++) + y ^= (addr[i] >> j) & 0x01; + x |= (y << i); + } + return (x); +} + +static int +atse_rxfilter_locked(struct atse_softc *sc) +{ + struct ifnet *ifp; + struct ifmultiaddr *ifma; + uint32_t val4; + int i; + + /* XXX-BZ can we find out if we have the MHASH synthesized? */ + val4 = CSR_READ_4(sc, BASE_CFG_COMMAND_CONFIG); + /* For simplicity always hash full 48 bits of addresses. */ + if ((val4 & BASE_CFG_COMMAND_CONFIG_MHASH_SEL) != 0) + val4 &= ~BASE_CFG_COMMAND_CONFIG_MHASH_SEL; + + ifp = sc->atse_ifp; + if (ifp->if_flags & IFF_PROMISC) + val4 |= BASE_CFG_COMMAND_CONFIG_PROMIS_EN; + else + val4 &= ~BASE_CFG_COMMAND_CONFIG_PROMIS_EN; + + CSR_WRITE_4(sc, BASE_CFG_COMMAND_CONFIG, val4); + + if (ifp->if_flags & IFF_ALLMULTI) { + /* Accept all multicast addresses. */ + for (i = 0; i <= MHASH_LEN; i++) + CSR_WRITE_4(sc, MHASH_START + i, 0x1); + } else { + /* + * Can hold MHASH_LEN entries. + * XXX-BZ bitstring.h would be more general. + */ + uint64_t h; + + h = 0; + /* + * Re-build and re-program hash table. First build the + * bit-field "yes" or "no" for each slot per address, then + * do all the programming afterwards. + */ + if_maddr_rlock(ifp); + TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { + if (ifma->ifma_addr->sa_family != AF_LINK) + continue; + + h |= (1 << atse_mchash(sc, + LLADDR((struct sockaddr_dl *)ifma->ifma_addr))); + } + if_maddr_runlock(ifp); + for (i = 0; i <= MHASH_LEN; i++) + CSR_WRITE_4(sc, MHASH_START + i, + (h & (1 << i)) ? 0x01 : 0x00); + } + + return (0); +} + +static int +atse_ethernet_option_bits_read_fdt(device_t dev) +{ + struct resource *res; + device_t fdev; + int i, rid; + + if (atse_ethernet_option_bits_flag & ATSE_ETHERNET_OPTION_BITS_READ) + return (0); + + fdev = device_find_child(device_get_parent(dev), "cfi", 0); + if (fdev == NULL) + return (ENOENT); + + rid = 0; + res = bus_alloc_resource_any(fdev, SYS_RES_MEMORY, &rid, + RF_ACTIVE | RF_SHAREABLE); + if (res == NULL) + return (ENXIO); + + for (i = 0; i < ALTERA_ETHERNET_OPTION_BITS_LEN; i++) + atse_ethernet_option_bits[i] = bus_read_1(res, + ALTERA_ETHERNET_OPTION_BITS_OFF + i); + + bus_release_resource(fdev, SYS_RES_MEMORY, rid, res); + atse_ethernet_option_bits_flag |= ATSE_ETHERNET_OPTION_BITS_READ; + + return (0); +} + +static int +atse_ethernet_option_bits_read(device_t dev) +{ + int error; + + error = atse_ethernet_option_bits_read_fdt(dev); + if (error == 0) + return (0); + + device_printf(dev, "Cannot read Ethernet addresses from flash.\n"); + return (error); +} + +static int +atse_get_eth_address(struct atse_softc *sc) +{ + unsigned long hostid; + uint32_t val4; + int unit; + + /* + * Make sure to only ever do this once. Otherwise a reset would + * possibly change our ethernet address, which is not good at all. + */ + if (sc->atse_eth_addr[0] != 0x00 || sc->atse_eth_addr[1] != 0x00 || + sc->atse_eth_addr[2] != 0x00) + return (0); + + if ((atse_ethernet_option_bits_flag & + ATSE_ETHERNET_OPTION_BITS_READ) == 0) + goto get_random; + + val4 = atse_ethernet_option_bits[0] << 24; + val4 |= atse_ethernet_option_bits[1] << 16; + val4 |= atse_ethernet_option_bits[2] << 8; + val4 |= atse_ethernet_option_bits[3]; + /* They chose "safe". */ + if (val4 != le32toh(0x00005afe)) { + device_printf(sc->atse_dev, "Magic '5afe' is not safe: 0x%08x. " + "Falling back to random numbers for hardware address.\n", + val4); + goto get_random; + } + + sc->atse_eth_addr[0] = atse_ethernet_option_bits[4]; + sc->atse_eth_addr[1] = atse_ethernet_option_bits[5]; + sc->atse_eth_addr[2] = atse_ethernet_option_bits[6]; + sc->atse_eth_addr[3] = atse_ethernet_option_bits[7]; + sc->atse_eth_addr[4] = atse_ethernet_option_bits[8]; + sc->atse_eth_addr[5] = atse_ethernet_option_bits[9]; + + /* Handle factory default ethernet addresss: 00:07:ed:ff:ed:15 */ + if (sc->atse_eth_addr[0] == 0x00 && sc->atse_eth_addr[1] == 0x07 && + sc->atse_eth_addr[2] == 0xed && sc->atse_eth_addr[3] == 0xff && + sc->atse_eth_addr[4] == 0xed && sc->atse_eth_addr[5] == 0x15) { + + device_printf(sc->atse_dev, "Factory programmed Ethernet " + "hardware address blacklisted. Falling back to random " + "address to avoid collisions.\n"); + device_printf(sc->atse_dev, "Please re-program your flash.\n"); + goto get_random; + } + + if (sc->atse_eth_addr[0] == 0x00 && sc->atse_eth_addr[1] == 0x00 && + sc->atse_eth_addr[2] == 0x00 && sc->atse_eth_addr[3] == 0x00 && + sc->atse_eth_addr[4] == 0x00 && sc->atse_eth_addr[5] == 0x00) { + device_printf(sc->atse_dev, "All zero's Ethernet hardware " + "address blacklisted. Falling back to random address.\n"); + device_printf(sc->atse_dev, "Please re-program your flash.\n"); + goto get_random; + } + + if (ETHER_IS_MULTICAST(sc->atse_eth_addr)) { + device_printf(sc->atse_dev, "Multicast Ethernet hardware " + "address blacklisted. Falling back to random address.\n"); + device_printf(sc->atse_dev, "Please re-program your flash.\n"); + goto get_random; + } + + /* + * If we find an Altera prefixed address with a 0x0 ending + * adjust by device unit. If not and this is not the first + * Ethernet, go to random. + */ + unit = device_get_unit(sc->atse_dev); + if (unit == 0x00) + return (0); + + if (unit > 0x0f) { + device_printf(sc->atse_dev, "We do not support Ethernet " + "addresses for more than 16 MACs. Falling back to " + "random hadware address.\n"); + goto get_random; + } + if ((sc->atse_eth_addr[0] & ~0x2) != 0 || + sc->atse_eth_addr[1] != 0x07 || sc->atse_eth_addr[2] != 0xed || + (sc->atse_eth_addr[5] & 0x0f) != 0x0) { + device_printf(sc->atse_dev, "Ethernet address not meeting our " + "multi-MAC standards. Falling back to random hadware " + "address.\n"); + goto get_random; + } + sc->atse_eth_addr[5] |= (unit & 0x0f); + + return (0); + +get_random: + /* + * Fall back to random code we also use on bridge(4). + */ + getcredhostid(curthread->td_ucred, &hostid); + if (hostid == 0) { + arc4rand(sc->atse_eth_addr, ETHER_ADDR_LEN, 1); + sc->atse_eth_addr[0] &= ~1;/* clear multicast bit */ + sc->atse_eth_addr[0] |= 2; /* set the LAA bit */ + } else { + sc->atse_eth_addr[0] = 0x2; + sc->atse_eth_addr[1] = (hostid >> 24) & 0xff; + sc->atse_eth_addr[2] = (hostid >> 16) & 0xff; + sc->atse_eth_addr[3] = (hostid >> 8 ) & 0xff; + sc->atse_eth_addr[4] = hostid & 0xff; + sc->atse_eth_addr[5] = sc->atse_unit & 0xff; + } + + return (0); +} + +static int +atse_set_eth_address(struct atse_softc *sc, int n) +{ + uint32_t v0, v1; + + v0 = (sc->atse_eth_addr[3] << 24) | (sc->atse_eth_addr[2] << 16) | + (sc->atse_eth_addr[1] << 8) | sc->atse_eth_addr[0]; + v1 = (sc->atse_eth_addr[5] << 8) | sc->atse_eth_addr[4]; + + if (n & ATSE_ETH_ADDR_DEF) { + CSR_WRITE_4(sc, BASE_CFG_MAC_0, v0); + CSR_WRITE_4(sc, BASE_CFG_MAC_1, v1); + } + if (n & ATSE_ETH_ADDR_SUPP1) { + CSR_WRITE_4(sc, SUPPL_ADDR_SMAC_0_0, v0); + CSR_WRITE_4(sc, SUPPL_ADDR_SMAC_0_1, v1); + } + if (n & ATSE_ETH_ADDR_SUPP2) { + CSR_WRITE_4(sc, SUPPL_ADDR_SMAC_1_0, v0); + CSR_WRITE_4(sc, SUPPL_ADDR_SMAC_1_1, v1); + } + if (n & ATSE_ETH_ADDR_SUPP3) { + CSR_WRITE_4(sc, SUPPL_ADDR_SMAC_2_0, v0); + CSR_WRITE_4(sc, SUPPL_ADDR_SMAC_2_1, v1); + } + if (n & ATSE_ETH_ADDR_SUPP4) { + CSR_WRITE_4(sc, SUPPL_ADDR_SMAC_3_0, v0); + CSR_WRITE_4(sc, SUPPL_ADDR_SMAC_3_1, v1); + } + + return (0); +} + +static int +atse_reset(struct atse_softc *sc) +{ + int i; + uint32_t val4, mask; + uint16_t val; + + /* 1. External PHY Initialization using MDIO. */ + /* + * We select the right MDIO space in atse_attach() and let MII do + * anything else. + */ + + /* 2. PCS Configuration Register Initialization. */ + /* a. Set auto negotiation link timer to 1.6ms for SGMII. */ + PCS_WRITE_2(sc, PCS_EXT_LINK_TIMER_0, 0x0D40); + PCS_WRITE_2(sc, PCS_EXT_LINK_TIMER_1, 0x0003); + + /* b. Configure SGMII. */ + val = PCS_EXT_IF_MODE_SGMII_ENA|PCS_EXT_IF_MODE_USE_SGMII_AN; + PCS_WRITE_2(sc, PCS_EXT_IF_MODE, val); + + /* c. Enable auto negotiation. */ *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 20:52:43 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 74B6C40C; Fri, 18 Oct 2013 20:52:43 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 610432D32; Fri, 18 Oct 2013 20:52:43 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9IKqhD6005005; Fri, 18 Oct 2013 20:52:43 GMT (envelope-from brooks@svn.freebsd.org) Received: (from brooks@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9IKqh0c005003; Fri, 18 Oct 2013 20:52:43 GMT (envelope-from brooks@svn.freebsd.org) Message-Id: <201310182052.r9IKqh0c005003@svn.freebsd.org> From: Brooks Davis Date: Fri, 18 Oct 2013 20:52:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256753 - in head/sys: conf dev/cfi X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 20:52:43 -0000 Author: brooks Date: Fri Oct 18 20:52:42 2013 New Revision: 256753 URL: http://svnweb.freebsd.org/changeset/base/256753 Log: MFP4: 1136252 Add an option ATSE_CFI_HACK to allow memory mapped CFI devices to have their address range allocated sharable so that atse(4) can find it's Ethernet address in the expected location. We intend to remove this hack once the BERI platform has a loader. Modified: head/sys/conf/options head/sys/dev/cfi/cfi_core.c Modified: head/sys/conf/options ============================================================================== --- head/sys/conf/options Fri Oct 18 20:44:19 2013 (r256752) +++ head/sys/conf/options Fri Oct 18 20:52:42 2013 (r256753) @@ -69,6 +69,7 @@ TEXTDUMP_VERBOSE opt_ddb.h ADAPTIVE_LOCKMGRS ALQ ALTERA_SDCARD_FAST_SIM opt_altera_sdcard.h +ATSE_CFI_HACK opt_cfi.h AUDIT opt_global.h BOOTHOWTO opt_global.h BOOTVERBOSE opt_global.h Modified: head/sys/dev/cfi/cfi_core.c ============================================================================== --- head/sys/dev/cfi/cfi_core.c Fri Oct 18 20:44:19 2013 (r256752) +++ head/sys/dev/cfi/cfi_core.c Fri Oct 18 20:52:42 2013 (r256753) @@ -281,7 +281,11 @@ cfi_attach(device_t dev) sc->sc_rid = 0; sc->sc_res = bus_alloc_resource_any(dev, SYS_RES_MEMORY, &sc->sc_rid, +#ifndef ATSE_CFI_HACK RF_ACTIVE); +#else + RF_ACTIVE | RF_SHAREABLE); +#endif if (sc->sc_res == NULL) return (ENXIO); From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 21:42:48 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 633FB416; Fri, 18 Oct 2013 21:42:48 +0000 (UTC) (envelope-from grehan@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 50D10202A; Fri, 18 Oct 2013 21:42:48 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9ILgm4X032688; Fri, 18 Oct 2013 21:42:48 GMT (envelope-from grehan@svn.freebsd.org) Received: (from grehan@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9ILgmTP032687; Fri, 18 Oct 2013 21:42:48 GMT (envelope-from grehan@svn.freebsd.org) Message-Id: <201310182142.r9ILgmTP032687@svn.freebsd.org> From: Peter Grehan Date: Fri, 18 Oct 2013 21:42:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r256754 - stable/10/usr.sbin/bhyve X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 21:42:48 -0000 Author: grehan Date: Fri Oct 18 21:42:47 2013 New Revision: 256754 URL: http://svnweb.freebsd.org/changeset/base/256754 Log: MFC r256709: Eliminate unconditional debug printfs. Linux writes to these nominally read-only registers, so avoid having bhyve write warning messages to stdout when the reg writes can be safely ignored. Change the WPRINTF to DPRINTF which is conditional. Approved by: re (gjb) Modified: stable/10/usr.sbin/bhyve/pci_ahci.c Directory Properties: stable/10/usr.sbin/bhyve/ (props changed) Modified: stable/10/usr.sbin/bhyve/pci_ahci.c ============================================================================== --- stable/10/usr.sbin/bhyve/pci_ahci.c Fri Oct 18 20:52:42 2013 (r256753) +++ stable/10/usr.sbin/bhyve/pci_ahci.c Fri Oct 18 21:42:47 2013 (r256754) @@ -1543,7 +1543,7 @@ pci_ahci_host_write(struct pci_ahci_soft case AHCI_PI: case AHCI_VS: case AHCI_CAP2: - WPRINTF("pci_ahci_host: read only registers 0x%"PRIx64"\n", offset); + DPRINTF("pci_ahci_host: read only registers 0x%"PRIx64"\n", offset); break; case AHCI_GHC: if (value & AHCI_GHC_HR) From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 22:05:19 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 0E2169A9; Fri, 18 Oct 2013 22:05:19 +0000 (UTC) (envelope-from grehan@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id ED6F5218A; Fri, 18 Oct 2013 22:05:18 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9IM5I4R044759; Fri, 18 Oct 2013 22:05:18 GMT (envelope-from grehan@svn.freebsd.org) Received: (from grehan@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9IM5H1x044748; Fri, 18 Oct 2013 22:05:17 GMT (envelope-from grehan@svn.freebsd.org) Message-Id: <201310182205.r9IM5H1x044748@svn.freebsd.org> From: Peter Grehan Date: Fri, 18 Oct 2013 22:05:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r256755 - stable/10/usr.sbin/bhyve X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 22:05:19 -0000 Author: grehan Date: Fri Oct 18 22:05:17 2013 New Revision: 256755 URL: http://svnweb.freebsd.org/changeset/base/256755 Log: MFC r256709: Eliminate unconditional debug printfs. Linux writes to these nominally read-only registers, so avoid having bhyve write warning messages to stdout when the reg writes can be safely ignored. Change the WPRINTF to DPRINTF which is conditional. Approved by: re (delphij) Modified: stable/10/usr.sbin/bhyve/bhyverun.c stable/10/usr.sbin/bhyve/bhyverun.h stable/10/usr.sbin/bhyve/mptbl.c stable/10/usr.sbin/bhyve/pci_hostbridge.c stable/10/usr.sbin/bhyve/pci_virtio_block.c stable/10/usr.sbin/bhyve/pci_virtio_net.c stable/10/usr.sbin/bhyve/rtc.c Directory Properties: stable/10/usr.sbin/bhyve/ (props changed) Modified: stable/10/usr.sbin/bhyve/bhyverun.c ============================================================================== --- stable/10/usr.sbin/bhyve/bhyverun.c Fri Oct 18 21:42:47 2013 (r256754) +++ stable/10/usr.sbin/bhyve/bhyverun.c Fri Oct 18 22:05:17 2013 (r256755) @@ -81,6 +81,7 @@ int guest_ncpus; static int pincpu = -1; static int guest_vmexit_on_hlt, guest_vmexit_on_pause, disable_x2apic; +static int virtio_msix = 1; static int foundcpus; @@ -120,7 +121,7 @@ usage(int code) { fprintf(stderr, - "Usage: %s [-aehAHIP][-g ][-s ][-S ]" + "Usage: %s [-aehAHIPW][-g ][-s ][-S ]" "[-c vcpus][-p pincpu][-m mem]" " \n" " -a: local apic is in XAPIC mode (default is X2APIC)\n" @@ -131,6 +132,7 @@ usage(int code) " -H: vmexit from the guest on hlt\n" " -I: present an ioapic to the guest\n" " -P: vmexit from the guest on pause\n" + " -W: force virtio to use single-vector MSI\n" " -e: exit on unhandled i/o access\n" " -h: help\n" " -s: PCI slot config\n" @@ -169,6 +171,13 @@ fbsdrun_vmexit_on_hlt(void) return (guest_vmexit_on_hlt); } +int +fbsdrun_virtio_msix(void) +{ + + return (virtio_msix); +} + static void * fbsdrun_start_thread(void *param) { @@ -500,7 +509,7 @@ main(int argc, char *argv[]) ioapic = 0; memsize = 256 * MB; - while ((c = getopt(argc, argv, "abehAHIPp:g:c:s:S:m:")) != -1) { + while ((c = getopt(argc, argv, "abehAHIPWp:g:c:s:S:m:")) != -1) { switch (c) { case 'a': disable_x2apic = 1; @@ -547,6 +556,9 @@ main(int argc, char *argv[]) case 'e': strictio = 1; break; + case 'W': + virtio_msix = 0; + break; case 'h': usage(0); default: Modified: stable/10/usr.sbin/bhyve/bhyverun.h ============================================================================== --- stable/10/usr.sbin/bhyve/bhyverun.h Fri Oct 18 21:42:47 2013 (r256754) +++ stable/10/usr.sbin/bhyve/bhyverun.h Fri Oct 18 22:05:17 2013 (r256755) @@ -46,4 +46,5 @@ int fbsdrun_muxed(void); int fbsdrun_vmexit_on_hlt(void); int fbsdrun_vmexit_on_pause(void); int fbsdrun_disable_x2apic(void); +int fbsdrun_virtio_msix(void); #endif Modified: stable/10/usr.sbin/bhyve/mptbl.c ============================================================================== --- stable/10/usr.sbin/bhyve/mptbl.c Fri Oct 18 21:42:47 2013 (r256754) +++ stable/10/usr.sbin/bhyve/mptbl.c Fri Oct 18 22:05:17 2013 (r256755) @@ -71,6 +71,9 @@ __FBSDID("$FreeBSD$"); #define MPEP_FEATURES (0xBFEBFBFF) /* XXX Intel i7 */ +/* Number of i/o intr entries */ +#define MPEII_MAX_IRQ 16 + /* Define processor entry struct since gets it wrong */ typedef struct BPROCENTRY { u_char type; @@ -155,14 +158,14 @@ mpt_build_bus_entries(bus_entry_ptr mpeb memset(mpeb, 0, sizeof(*mpeb)); mpeb->type = MPCT_ENTRY_BUS; - mpeb->bus_id = ISA; - memcpy(mpeb->bus_type, MPE_BUSNAME_ISA, MPE_BUSNAME_LEN); + mpeb->bus_id = 0; + memcpy(mpeb->bus_type, MPE_BUSNAME_PCI, MPE_BUSNAME_LEN); mpeb++; memset(mpeb, 0, sizeof(*mpeb)); mpeb->type = MPCT_ENTRY_BUS; - mpeb->bus_id = PCI; - memcpy(mpeb->bus_type, MPE_BUSNAME_PCI, MPE_BUSNAME_LEN); + mpeb->bus_id = 1; + memcpy(mpeb->bus_type, MPE_BUSNAME_ISA, MPE_BUSNAME_LEN); } static void @@ -177,9 +180,8 @@ mpt_build_ioapic_entries(io_apic_entry_p mpei->apic_address = IOAPIC_PADDR; } -#ifdef notyet static void -mpt_build_ioint_entries(struct mpe_ioint *mpeii, int num_pins, int id) +mpt_build_ioint_entries(int_entry_ptr mpie, int num_pins, int id) { int pin; @@ -189,28 +191,27 @@ mpt_build_ioint_entries(struct mpe_ioint * just use the default config, tweek later if needed. */ - /* Run through all 16 pins. */ for (pin = 0; pin < num_pins; pin++) { - memset(mpeii, 0, sizeof(*mpeii)); - mpeii->entry_type = MP_ENTRY_IOINT; - mpeii->src_bus_id = MPE_BUSID_ISA; - mpeii->dst_apic_id = id; + memset(mpie, 0, sizeof(*mpie)); + mpie->type = MPCT_ENTRY_INT; + mpie->src_bus_id = 1; + mpie->dst_apic_id = id; /* * All default configs route IRQs from bus 0 to the first 16 * pins of the first I/O APIC with an APIC ID of 2. */ - mpeii->dst_apic_intin = pin; + mpie->dst_apic_int = pin; switch (pin) { case 0: /* Pin 0 is an ExtINT pin. */ - mpeii->intr_type = MPEII_INTR_EXTINT; + mpie->int_type = INTENTRY_TYPE_EXTINT; break; case 2: /* IRQ 0 is routed to pin 2. */ - mpeii->intr_type = MPEII_INTR_INT; - mpeii->src_bus_irq = 0; + mpie->int_type = INTENTRY_TYPE_INT; + mpie->src_bus_irq = 0; break; case 5: case 10: @@ -218,118 +219,20 @@ mpt_build_ioint_entries(struct mpe_ioint /* * PCI Irqs set to level triggered. */ - mpeii->intr_flags = MPEII_FLAGS_TRIGMODE_LEVEL; - mpeii->src_bus_id = MPE_BUSID_PCI; + mpie->int_flags = INTENTRY_FLAGS_TRIGGER_LEVEL; + mpie->src_bus_id = 0; + /* fall through.. */ default: /* All other pins are identity mapped. */ - mpeii->intr_type = MPEII_INTR_INT; - mpeii->src_bus_irq = pin; + mpie->int_type = INTENTRY_TYPE_INT; + mpie->src_bus_irq = pin; break; } - mpeii++; + mpie++; } } -#define COPYSTR(dest, src, bytes) \ - memcpy(dest, src, bytes); \ - str[bytes] = 0; - -static void -mptable_dump(struct mp_floating_pointer *mpfp, struct mp_config_hdr *mpch) -{ - static char str[16]; - int i; - char *cur; - - union mpe { - struct mpe_proc *proc; - struct mpe_bus *bus; - struct mpe_ioapic *ioapic; - struct mpe_ioint *ioint; - struct mpe_lint *lnit; - char *p; - }; - - union mpe mpe; - - printf(" MP Floating Pointer :\n"); - COPYSTR(str, mpfp->signature, 4); - printf("\tsignature:\t%s\n", str); - printf("\tmpch paddr:\t%x\n", mpfp->mptable_paddr); - printf("\tlength:\t%x\n", mpfp->length); - printf("\tspecrec:\t%x\n", mpfp->specrev); - printf("\tchecksum:\t%x\n", mpfp->checksum); - printf("\tfeature1:\t%x\n", mpfp->feature1); - printf("\tfeature2:\t%x\n", mpfp->feature2); - printf("\tfeature3:\t%x\n", mpfp->feature3); - printf("\tfeature4:\t%x\n", mpfp->feature4); - - printf(" MP Configuration Header :\n"); - COPYSTR(str, mpch->signature, 4); - printf(" signature: %s\n", str); - printf(" length: %x\n", mpch->length); - printf(" specrec: %x\n", mpch->specrev); - printf(" checksum: %x\n", mpch->checksum); - COPYSTR(str, mpch->oemid, MPCH_OEMID_LEN); - printf(" oemid: %s\n", str); - COPYSTR(str, mpch->prodid, MPCH_PRODID_LEN); - printf(" prodid: %s\n", str); - printf(" oem_ptr: %x\n", mpch->oem_ptr); - printf(" oem_sz: %x\n", mpch->oem_sz); - printf(" nr_entries: %x\n", mpch->nr_entries); - printf(" apic paddr: %x\n", mpch->lapic_paddr); - printf(" ext_length: %x\n", mpch->ext_length); - printf(" ext_checksum: %x\n", mpch->ext_checksum); - - cur = (char *)mpch + sizeof(*mpch); - for (i = 0; i < mpch->nr_entries; i++) { - mpe.p = cur; - switch(*mpe.p) { - case MP_ENTRY_PROC: - printf(" MP Processor Entry :\n"); - printf(" lapic_id: %x\n", mpe.proc->lapic_id); - printf(" lapic_version: %x\n", mpe.proc->lapic_version); - printf(" proc_flags: %x\n", mpe.proc->proc_flags); - printf(" proc_signature: %x\n", mpe.proc->proc_signature); - printf(" feature_flags: %x\n", mpe.proc->feature_flags); - cur += sizeof(struct mpe_proc); - break; - case MP_ENTRY_BUS: - printf(" MP Bus Entry :\n"); - printf(" busid: %x\n", mpe.bus->busid); - COPYSTR(str, mpe.bus->busname, MPE_BUSNAME_LEN); - printf(" busname: %s\n", str); - cur += sizeof(struct mpe_bus); - break; - case MP_ENTRY_IOAPIC: - printf(" MP IOAPIC Entry :\n"); - printf(" ioapi_id: %x\n", mpe.ioapic->ioapic_id); - printf(" ioapi_version: %x\n", mpe.ioapic->ioapic_version); - printf(" ioapi_flags: %x\n", mpe.ioapic->ioapic_flags); - printf(" ioapi_paddr: %x\n", mpe.ioapic->ioapic_paddr); - cur += sizeof(struct mpe_ioapic); - break; - case MP_ENTRY_IOINT: - printf(" MP IO Interrupt Entry :\n"); - printf(" intr_type: %x\n", mpe.ioint->intr_type); - printf(" intr_flags: %x\n", mpe.ioint->intr_flags); - printf(" src_bus_id: %x\n", mpe.ioint->src_bus_id); - printf(" src_bus_irq: %x\n", mpe.ioint->src_bus_irq); - printf(" dst_apic_id: %x\n", mpe.ioint->dst_apic_id); - printf(" dst_apic_intin: %x\n", mpe.ioint->dst_apic_intin); - cur += sizeof(struct mpe_ioint); - break; - case MP_ENTRY_LINT: - printf(" MP Local Interrupt Entry :\n"); - cur += sizeof(struct mpe_lint); - break; - } - - } -} -#endif - void mptable_add_oemtbl(void *tbl, int tblsz) { @@ -346,6 +249,7 @@ mptable_build(struct vmctx *ctx, int ncp io_apic_entry_ptr mpei; bproc_entry_ptr mpep; mpfps_t mpfp; + int_entry_ptr mpie; char *curraddr; char *startaddr; @@ -381,12 +285,10 @@ mptable_build(struct vmctx *ctx, int ncp mpch->entry_count++; } -#ifdef notyet - mpt_build_ioint_entries((struct mpe_ioint*)curraddr, MPEII_MAX_IRQ, - ncpu + 1); - curraddr += sizeof(struct mpe_ioint) * MPEII_MAX_IRQ; + mpie = (int_entry_ptr) curraddr; + mpt_build_ioint_entries(mpie, MPEII_MAX_IRQ, ncpu + 1); + curraddr += sizeof(*mpie) * MPEII_MAX_IRQ; mpch->entry_count += MPEII_MAX_IRQ; -#endif if (oem_tbl_start) { mpch->oem_table_pointer = curraddr - startaddr + MPTABLE_BASE; Modified: stable/10/usr.sbin/bhyve/pci_hostbridge.c ============================================================================== --- stable/10/usr.sbin/bhyve/pci_hostbridge.c Fri Oct 18 21:42:47 2013 (r256754) +++ stable/10/usr.sbin/bhyve/pci_hostbridge.c Fri Oct 18 22:05:17 2013 (r256755) @@ -47,6 +47,22 @@ pci_hostbridge_init(struct vmctx *ctx, s return (0); } +static int +pci_amd_hostbridge_init(struct vmctx *ctx, struct pci_devinst *pi, char *opts) +{ + (void) pci_hostbridge_init(ctx, pi, opts); + pci_set_cfgdata16(pi, PCIR_VENDOR, 0x1022); /* AMD */ + pci_set_cfgdata16(pi, PCIR_DEVICE, 0x7432); /* made up */ + + return (0); +} + +struct pci_devemu pci_de_amd_hostbridge = { + .pe_emu = "amd_hostbridge", + .pe_init = pci_amd_hostbridge_init, +}; +PCI_EMUL_SET(pci_de_amd_hostbridge); + struct pci_devemu pci_de_hostbridge = { .pe_emu = "hostbridge", .pe_init = pci_hostbridge_init, Modified: stable/10/usr.sbin/bhyve/pci_virtio_block.c ============================================================================== --- stable/10/usr.sbin/bhyve/pci_virtio_block.c Fri Oct 18 21:42:47 2013 (r256754) +++ stable/10/usr.sbin/bhyve/pci_virtio_block.c Fri Oct 18 22:05:17 2013 (r256755) @@ -256,8 +256,6 @@ pci_vtblk_init(struct vmctx *ctx, struct off_t size; int fd; int sectsz; - int use_msix; - const char *env_msi; if (opts == NULL) { printf("virtio-block: backing device required\n"); @@ -336,12 +334,7 @@ pci_vtblk_init(struct vmctx *ctx, struct pci_set_cfgdata8(pi, PCIR_CLASS, PCIC_STORAGE); pci_set_cfgdata16(pi, PCIR_SUBDEV_0, VIRTIO_TYPE_BLOCK); - use_msix = 1; - if ((env_msi = getenv("BHYVE_USE_MSI"))) { - if (strcasecmp(env_msi, "yes") == 0) - use_msix = 0; - } - if (vi_intr_init(&sc->vbsc_vs, 1, use_msix)) + if (vi_intr_init(&sc->vbsc_vs, 1, fbsdrun_virtio_msix())) return (1); vi_set_io_bar(&sc->vbsc_vs, 0); return (0); Modified: stable/10/usr.sbin/bhyve/pci_virtio_net.c ============================================================================== --- stable/10/usr.sbin/bhyve/pci_virtio_net.c Fri Oct 18 21:42:47 2013 (r256754) +++ stable/10/usr.sbin/bhyve/pci_virtio_net.c Fri Oct 18 22:05:17 2013 (r256755) @@ -509,11 +509,9 @@ pci_vtnet_init(struct vmctx *ctx, struct char nstr[80]; char tname[MAXCOMLEN + 1]; struct pci_vtnet_softc *sc; - const char *env_msi; char *devname; char *vtopts; int mac_provided; - int use_msix; sc = malloc(sizeof(struct pci_vtnet_softc)); memset(sc, 0, sizeof(struct pci_vtnet_softc)); @@ -531,15 +529,6 @@ pci_vtnet_init(struct vmctx *ctx, struct #endif /* - * Use MSI if set by user - */ - use_msix = 1; - if ((env_msi = getenv("BHYVE_USE_MSI")) != NULL) { - if (strcasecmp(env_msi, "yes") == 0) - use_msix = 0; - } - - /* * Attempt to open the tap device and read the MAC address * if specified */ @@ -623,7 +612,7 @@ pci_vtnet_init(struct vmctx *ctx, struct sc->vsc_config.status = 1; /* use BAR 1 to map MSI-X table and PBA, if we're using MSI-X */ - if (vi_intr_init(&sc->vsc_vs, 1, use_msix)) + if (vi_intr_init(&sc->vsc_vs, 1, fbsdrun_virtio_msix())) return (1); /* use BAR 0 to map config regs in IO space */ Modified: stable/10/usr.sbin/bhyve/rtc.c ============================================================================== --- stable/10/usr.sbin/bhyve/rtc.c Fri Oct 18 21:42:47 2013 (r256754) +++ stable/10/usr.sbin/bhyve/rtc.c Fri Oct 18 22:05:17 2013 (r256755) @@ -331,7 +331,7 @@ rtc_init(struct vmctx *ctx) memset(rtc_nvram, 0, sizeof(rtc_nvram)); - rtc_nvram[nvoff(RTC_CENTURY)] = rtcout(tm.tm_year / 100); + rtc_nvram[nvoff(RTC_CENTURY)] = bin2bcd((tm.tm_year + 1900) / 100); /* XXX init diag/reset code/equipment/checksum ? */ From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 22:47:11 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 43BBA527; Fri, 18 Oct 2013 22:47:11 +0000 (UTC) (envelope-from cognet@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 3059423DE; Fri, 18 Oct 2013 22:47:11 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9IMlBiC067698; Fri, 18 Oct 2013 22:47:11 GMT (envelope-from cognet@svn.freebsd.org) Received: (from cognet@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9IMlB5a067697; Fri, 18 Oct 2013 22:47:11 GMT (envelope-from cognet@svn.freebsd.org) Message-Id: <201310182247.r9IMlB5a067697@svn.freebsd.org> From: Olivier Houchard Date: Fri, 18 Oct 2013 22:47:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256756 - head/sys/arm/arm X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 22:47:11 -0000 Author: cognet Date: Fri Oct 18 22:47:10 2013 New Revision: 256756 URL: http://svnweb.freebsd.org/changeset/base/256756 Log: There's no need to guard pmap_extract(), it won't be called until well after the VM has been properly initialized. Spotted out by: alc Modified: head/sys/arm/arm/pmap-v6.c Modified: head/sys/arm/arm/pmap-v6.c ============================================================================== --- head/sys/arm/arm/pmap-v6.c Fri Oct 18 22:05:17 2013 (r256755) +++ head/sys/arm/arm/pmap-v6.c Fri Oct 18 22:47:10 2013 (r256756) @@ -3297,11 +3297,9 @@ pmap_extract(pmap_t pmap, vm_offset_t va { vm_paddr_t pa; - if (kernel_vm_end != 0) - PMAP_LOCK(pmap); + PMAP_LOCK(pmap); pa = pmap_extract_locked(pmap, va); - if (kernel_vm_end != 0) - PMAP_UNLOCK(pmap); + PMAP_UNLOCK(pmap); return (pa); } From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 22:48:38 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id D3592797; Fri, 18 Oct 2013 22:48:38 +0000 (UTC) (envelope-from gibbs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A488523F8; Fri, 18 Oct 2013 22:48:38 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9IMmcC4068195; Fri, 18 Oct 2013 22:48:38 GMT (envelope-from gibbs@svn.freebsd.org) Received: (from gibbs@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9IMmceh068194; Fri, 18 Oct 2013 22:48:38 GMT (envelope-from gibbs@svn.freebsd.org) Message-Id: <201310182248.r9IMmceh068194@svn.freebsd.org> From: "Justin T. Gibbs" Date: Fri, 18 Oct 2013 22:48:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r256757 - stable/10/sys/dev/xen/blkfront X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 22:48:38 -0000 Author: gibbs Date: Fri Oct 18 22:48:38 2013 New Revision: 256757 URL: http://svnweb.freebsd.org/changeset/base/256757 Log: MFC: r256425 Centralize the detection logic for the Hyper-V hypervisor. Submitted by: Roger Pau Monné Sponsored by: Citrix Systems R&D Reviewed by: gibbs, grehan Approved by: re (gjb) sys/sys/systm.h: * Add a new VM_GUEST type, VM_GUEST_HV (HyperV guest). sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c: sys/dev/hyperv/vmbus/hv_hv.c: sys/dev/hyperv/stordisengage/hv_ata_pci_disengage.c: * Set vm_guest to VM_GUEST_HV and use that on other HyperV related devices instead of cloning the cpuid hypervisor check. * Cleanup the vmbus_identify function. Modified: stable/10/sys/dev/xen/blkfront/blkfront.c Directory Properties: stable/10/sys/ (props changed) Modified: stable/10/sys/dev/xen/blkfront/blkfront.c ============================================================================== --- stable/10/sys/dev/xen/blkfront/blkfront.c Fri Oct 18 22:47:10 2013 (r256756) +++ stable/10/sys/dev/xen/blkfront/blkfront.c Fri Oct 18 22:48:38 2013 (r256757) @@ -1381,14 +1381,42 @@ xbd_closing(device_t dev) static int xbd_probe(device_t dev) { + if (strcmp(xenbus_get_type(dev), "vbd") != 0) + return (ENXIO); - if (!strcmp(xenbus_get_type(dev), "vbd")) { - device_set_desc(dev, "Virtual Block Device"); - device_quiet(dev); - return (0); + if (xen_hvm_domain()) { + int error; + char *type; + + /* + * When running in an HVM domain, IDE disk emulation is + * disabled early in boot so that native drivers will + * not see emulated hardware. However, CDROM device + * emulation cannot be disabled. + * + * Through use of FreeBSD's vm_guest and xen_hvm_domain() + * APIs, we could modify the native CDROM driver to fail its + * probe when running under Xen. Unfortunatlely, the PV + * CDROM support in XenServer (up through at least version + * 6.2) isn't functional, so we instead rely on the emulated + * CDROM instance, and fail to attach the PV one here in + * the blkfront driver. + */ + error = xs_read(XST_NIL, xenbus_get_node(dev), + "device-type", NULL, (void **) &type); + if (error) + return (ENXIO); + + if (strncmp(type, "cdrom", 5) == 0) { + free(type, M_XENSTORE); + return (ENXIO); + } + free(type, M_XENSTORE); } - return (ENXIO); + device_set_desc(dev, "Virtual Block Device"); + device_quiet(dev); + return (0); } /* From owner-svn-src-all@FreeBSD.ORG Fri Oct 18 23:19:29 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 2F2B9349; Fri, 18 Oct 2013 23:19:29 +0000 (UTC) (envelope-from gibbs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 0C8222590; Fri, 18 Oct 2013 23:19:29 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9INJSUL085736; Fri, 18 Oct 2013 23:19:28 GMT (envelope-from gibbs@svn.freebsd.org) Received: (from gibbs@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9INJSdH085731; Fri, 18 Oct 2013 23:19:28 GMT (envelope-from gibbs@svn.freebsd.org) Message-Id: <201310182319.r9INJSdH085731@svn.freebsd.org> From: "Justin T. Gibbs" Date: Fri, 18 Oct 2013 23:19:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r256758 - in stable/10/sys: dev/hyperv/stordisengage dev/hyperv/vmbus sys X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 18 Oct 2013 23:19:29 -0000 Author: gibbs Date: Fri Oct 18 23:19:27 2013 New Revision: 256758 URL: http://svnweb.freebsd.org/changeset/base/256758 Log: MFC r256425: Centralize the detection logic for the Hyper-V hypervisor. Submitted by: Roger Pau Monné Sponsored by: Citrix Systems R&D Reviewed by: gibbs, grehan Approved by: re (gjb) sys/sys/systm.h: * Add a new VM_GUEST type, VM_GUEST_HV (HyperV guest). sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c: sys/dev/hyperv/vmbus/hv_hv.c: sys/dev/hyperv/stordisengage/hv_ata_pci_disengage.c: * Set vm_guest to VM_GUEST_HV and use that on other HyperV related devices instead of cloning the cpuid hypervisor check. * Cleanup the vmbus_identify function. ------------------------------------------------------------------------ Modified: stable/10/sys/dev/hyperv/stordisengage/hv_ata_pci_disengage.c stable/10/sys/dev/hyperv/vmbus/hv_hv.c stable/10/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c stable/10/sys/sys/systm.h Directory Properties: stable/10/sys/ (props changed) stable/10/sys/dev/hyperv/ (props changed) Modified: stable/10/sys/dev/hyperv/stordisengage/hv_ata_pci_disengage.c ============================================================================== --- stable/10/sys/dev/hyperv/stordisengage/hv_ata_pci_disengage.c Fri Oct 18 22:48:38 2013 (r256757) +++ stable/10/sys/dev/hyperv/stordisengage/hv_ata_pci_disengage.c Fri Oct 18 23:19:27 2013 (r256758) @@ -75,17 +75,11 @@ __FBSDID("$FreeBSD$"); #include #include -#define HV_X64_MSR_GUEST_OS_ID 0x40000000 -#define HV_X64_CPUID_MIN 0x40000005 -#define HV_X64_CPUID_MAX 0x4000ffff - /* prototypes */ static int hv_ata_pci_probe(device_t dev); static int hv_ata_pci_attach(device_t dev); static int hv_ata_pci_detach(device_t dev); -static int hv_check_for_hyper_v(void); - /* * generic PCI ATA device probe */ @@ -100,7 +94,7 @@ hv_ata_pci_probe(device_t dev) /* * Don't probe if not running in a Hyper-V environment */ - if (!hv_check_for_hyper_v()) + if (vm_guest != VM_GUEST_HV) return (ENXIO); if (device_get_unit(parent) != 0 || device_get_ivars(dev) != 0) @@ -139,33 +133,6 @@ hv_ata_pci_detach(device_t dev) return (0); } -/** -* Detect Hyper-V and enable fast IDE -* via enlighted storage driver -*/ -static int -hv_check_for_hyper_v(void) -{ - u_int regs[4]; - int hyper_v_detected; - - hyper_v_detected = 0; - do_cpuid(1, regs); - if (regs[2] & 0x80000000) { - /* - * if(a hypervisor is detected) - * make sure this really is Hyper-V - */ - do_cpuid(HV_X64_MSR_GUEST_OS_ID, regs); - hyper_v_detected = - regs[0] >= HV_X64_CPUID_MIN && - regs[0] <= HV_X64_CPUID_MAX && - !memcmp("Microsoft Hv", ®s[1], 12); - } - - return (hyper_v_detected); -} - static device_method_t hv_ata_pci_methods[] = { /* device interface */ DEVMETHOD(device_probe, hv_ata_pci_probe), Modified: stable/10/sys/dev/hyperv/vmbus/hv_hv.c ============================================================================== --- stable/10/sys/dev/hyperv/vmbus/hv_hv.c Fri Oct 18 22:48:38 2013 (r256757) +++ stable/10/sys/dev/hyperv/vmbus/hv_hv.c Fri Oct 18 23:19:27 2013 (r256758) @@ -218,7 +218,7 @@ hv_vmbus_init(void) 0, sizeof(hv_vmbus_handle) * MAXCPU); - if (!hv_vmbus_query_hypervisor_presence()) + if (vm_guest != VM_GUEST_HV) goto cleanup; max_leaf = hv_vmbus_get_hypervisor_version(); Modified: stable/10/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c ============================================================================== --- stable/10/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c Fri Oct 18 22:48:38 2013 (r256757) +++ stable/10/sys/dev/hyperv/vmbus/hv_vmbus_drv_freebsd.c Fri Oct 18 23:19:27 2013 (r256758) @@ -295,11 +295,15 @@ hv_vmbus_child_device_unregister(struct return(ret); } -static void vmbus_identify(driver_t *driver, device_t parent) { +static void +vmbus_identify(driver_t *driver, device_t parent) +{ + if (!hv_vmbus_query_hypervisor_presence()) + return; + + vm_guest = VM_GUEST_HV; + BUS_ADD_CHILD(parent, 0, "vmbus", 0); - if (device_find_child(parent, "vmbus", 0) == NULL) { - BUS_ADD_CHILD(parent, 0, "vmbus", 0); - } } static int @@ -307,9 +311,6 @@ vmbus_probe(device_t dev) { if(bootverbose) device_printf(dev, "VMBUS: probe\n"); - if (!hv_vmbus_query_hypervisor_presence()) - return (ENXIO); - device_set_desc(dev, "Vmbus Devices"); return (0); @@ -491,10 +492,13 @@ vmbus_attach(device_t dev) static void vmbus_init(void) { + if (vm_guest != VM_GUEST_HV) + return; + /* * If the system has already booted and thread - * scheduling is possible indicated by the global - * cold set to zero, we just call the driver + * scheduling is possible, as indicated by the + * global cold set to zero, we just call the driver * initialization directly. */ if (!cold) Modified: stable/10/sys/sys/systm.h ============================================================================== --- stable/10/sys/sys/systm.h Fri Oct 18 22:48:38 2013 (r256757) +++ stable/10/sys/sys/systm.h Fri Oct 18 23:19:27 2013 (r256758) @@ -71,7 +71,7 @@ extern int vm_guest; /* Running as virt * and/or add to the VM_GUEST_VM type if specific VM functionality is * ever implemented (e.g. vendor-specific paravirtualization features). */ -enum VM_GUEST { VM_GUEST_NO = 0, VM_GUEST_VM, VM_GUEST_XEN }; +enum VM_GUEST { VM_GUEST_NO = 0, VM_GUEST_VM, VM_GUEST_XEN, VM_GUEST_HV }; #if defined(WITNESS) || defined(INVARIANTS) void kassert_panic(const char *fmt, ...) __printflike(1, 2); From owner-svn-src-all@FreeBSD.ORG Sat Oct 19 06:30:21 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id E32A941E; Sat, 19 Oct 2013 06:30:21 +0000 (UTC) (envelope-from hiren@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 9A35E28E1; Sat, 19 Oct 2013 06:30:21 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9J6ULER026194; Sat, 19 Oct 2013 06:30:21 GMT (envelope-from hiren@svn.freebsd.org) Received: (from hiren@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9J6ULTR026192; Sat, 19 Oct 2013 06:30:21 GMT (envelope-from hiren@svn.freebsd.org) Message-Id: <201310190630.r9J6ULTR026192@svn.freebsd.org> From: Hiren Panchasara Date: Sat, 19 Oct 2013 06:30:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org Subject: svn commit: r256759 - in stable/9/sys/dev: e1000 ixgbe X-SVN-Group: stable-9 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 19 Oct 2013 06:30:22 -0000 Author: hiren Date: Sat Oct 19 06:30:20 2013 New Revision: 256759 URL: http://svnweb.freebsd.org/changeset/base/256759 Log: MFC: r256069 Expose system level ixgbe sysctls. Device level sysctls are already exposed as dev.ix. Fixing the case where number of queues for igb is auto-tuned and hw.igb.num_queues does not return current/updated value. Modified: stable/9/sys/dev/e1000/if_igb.c stable/9/sys/dev/ixgbe/ixgbe.c Modified: stable/9/sys/dev/e1000/if_igb.c ============================================================================== --- stable/9/sys/dev/e1000/if_igb.c Fri Oct 18 23:19:27 2013 (r256758) +++ stable/9/sys/dev/e1000/if_igb.c Sat Oct 19 06:30:20 2013 (r256759) @@ -2883,6 +2883,9 @@ igb_setup_msix(struct adapter *adapter) if (queues > maxqueues) queues = maxqueues; + /* reflect correct sysctl value */ + igb_num_queues = queues; + /* ** One vector (RX/TX pair) per queue ** plus an additional for Link interrupt Modified: stable/9/sys/dev/ixgbe/ixgbe.c ============================================================================== --- stable/9/sys/dev/ixgbe/ixgbe.c Fri Oct 18 23:19:27 2013 (r256758) +++ stable/9/sys/dev/ixgbe/ixgbe.c Sat Oct 19 06:30:20 2013 (r256759) @@ -234,6 +234,9 @@ MODULE_DEPEND(ixgbe, ether, 1, 1, 1); ** TUNEABLE PARAMETERS: */ +static SYSCTL_NODE(_hw, OID_AUTO, ix, CTLFLAG_RD, 0, + "IXGBE driver parameters"); + /* ** AIM: Adaptive Interrupt Moderation ** which means that the interrupt rate @@ -242,17 +245,29 @@ MODULE_DEPEND(ixgbe, ether, 1, 1, 1); */ static int ixgbe_enable_aim = TRUE; TUNABLE_INT("hw.ixgbe.enable_aim", &ixgbe_enable_aim); +SYSCTL_INT(_hw_ix, OID_AUTO, enable_aim, CTLFLAG_RW, &ixgbe_enable_aim, 0, + "Enable adaptive interrupt moderation"); static int ixgbe_max_interrupt_rate = (4000000 / IXGBE_LOW_LATENCY); TUNABLE_INT("hw.ixgbe.max_interrupt_rate", &ixgbe_max_interrupt_rate); +SYSCTL_INT(_hw_ix, OID_AUTO, max_interrupt_rate, CTLFLAG_RDTUN, + &ixgbe_max_interrupt_rate, 0, "Maximum interrupts per second"); /* How many packets rxeof tries to clean at a time */ static int ixgbe_rx_process_limit = 256; TUNABLE_INT("hw.ixgbe.rx_process_limit", &ixgbe_rx_process_limit); +SYSCTL_INT(_hw_ix, OID_AUTO, rx_process_limit, CTLFLAG_RDTUN, + &ixgbe_rx_process_limit, 0, + "Maximum number of received packets to process at a time," + "-1 means unlimited"); /* How many packets txeof tries to clean at a time */ static int ixgbe_tx_process_limit = 256; TUNABLE_INT("hw.ixgbe.tx_process_limit", &ixgbe_tx_process_limit); +SYSCTL_INT(_hw_ix, OID_AUTO, tx_process_limit, CTLFLAG_RDTUN, + &ixgbe_tx_process_limit, 0, + "Maximum number of sent packets to process at a time," + "-1 means unlimited"); /* ** Smart speed setting, default to on @@ -269,6 +284,8 @@ static int ixgbe_smart_speed = ixgbe_sma */ static int ixgbe_enable_msix = 1; TUNABLE_INT("hw.ixgbe.enable_msix", &ixgbe_enable_msix); +SYSCTL_INT(_hw_ix, OID_AUTO, enable_msix, CTLFLAG_RDTUN, &ixgbe_enable_msix, 0, + "Enable MSI-X interrupts"); /* * Number of Queues, can be set to 0, @@ -278,6 +295,8 @@ TUNABLE_INT("hw.ixgbe.enable_msix", &ixg */ static int ixgbe_num_queues = 0; TUNABLE_INT("hw.ixgbe.num_queues", &ixgbe_num_queues); +SYSCTL_INT(_hw_ix, OID_AUTO, num_queues, CTLFLAG_RDTUN, &ixgbe_num_queues, 0, + "Number of queues to configure, 0 indicates autoconfigure"); /* ** Number of TX descriptors per ring, @@ -286,10 +305,14 @@ TUNABLE_INT("hw.ixgbe.num_queues", &ixgb */ static int ixgbe_txd = PERFORM_TXD; TUNABLE_INT("hw.ixgbe.txd", &ixgbe_txd); +SYSCTL_INT(_hw_ix, OID_AUTO, txd, CTLFLAG_RDTUN, &ixgbe_txd, 0, + "Number of receive descriptors per queue"); /* Number of RX descriptors per ring */ static int ixgbe_rxd = PERFORM_RXD; TUNABLE_INT("hw.ixgbe.rxd", &ixgbe_rxd); +SYSCTL_INT(_hw_ix, OID_AUTO, rxd, CTLFLAG_RDTUN, &ixgbe_rxd, 0, + "Number of receive descriptors per queue"); /* ** Defining this on will allow the use @@ -2442,6 +2465,9 @@ ixgbe_setup_msix(struct adapter *adapter else if ((ixgbe_num_queues == 0) && (queues > 8)) queues = 8; + /* reflect correct sysctl value */ + ixgbe_num_queues = queues; + /* ** Want one vector (RX/TX pair) per queue ** plus an additional for Link. From owner-svn-src-all@FreeBSD.ORG Sat Oct 19 06:47:03 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 3EF3C87A; Sat, 19 Oct 2013 06:47:03 +0000 (UTC) (envelope-from rrs@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 11B1A29A6; Sat, 19 Oct 2013 06:47:03 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9J6l2Px035212; Sat, 19 Oct 2013 06:47:02 GMT (envelope-from rrs@svn.freebsd.org) Received: (from rrs@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9J6l28G035210; Sat, 19 Oct 2013 06:47:02 GMT (envelope-from rrs@svn.freebsd.org) Message-Id: <201310190647.r9J6l28G035210@svn.freebsd.org> From: Randall Stewart Date: Sat, 19 Oct 2013 06:47:02 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256760 - head/sys/arm/mv X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 19 Oct 2013 06:47:03 -0000 Author: rrs Date: Sat Oct 19 06:47:02 2013 New Revision: 256760 URL: http://svnweb.freebsd.org/changeset/base/256760 Log: Corrects the Kirkwood dreamplug to use the right register for power managment. It was incorrectly using the clock register which also caused the status to be the opposite of what it is supposed to be. 1 - its disabled 0 - its enabled Per kirkwood spec FSS_88F6180_9x_6281_OpenSource.pdf Modified: head/sys/arm/mv/common.c head/sys/arm/mv/mvreg.h Modified: head/sys/arm/mv/common.c ============================================================================== --- head/sys/arm/mv/common.c Sat Oct 19 06:30:20 2013 (r256759) +++ head/sys/arm/mv/common.c Sat Oct 19 06:47:02 2013 (r256760) @@ -153,8 +153,11 @@ struct fdt_pm_mask_entry fdt_pm_mask_tab static __inline int pm_is_disabled(uint32_t mask) { - +#if defined(SOC_MV_KIRKWOOD) + return (soc_power_ctrl_get(mask) == mask); +#else return (soc_power_ctrl_get(mask) == mask ? 0 : 1); +#endif } /* @@ -221,7 +224,16 @@ fdt_pm(phandle_t node) continue; compat = fdt_is_compatible(node, fdt_pm_mask_table[i].compat); - +#if defined(SOC_MV_KIRKWOOD) + if (compat && (cpu_pm_ctrl & fdt_pm_mask_table[i].mask)) { + dev_mask |= (1 << i); + ena = 0; + break; + } else if (compat) { + dev_mask |= (1 << i); + break; + } +#else if (compat && (~cpu_pm_ctrl & fdt_pm_mask_table[i].mask)) { dev_mask |= (1 << i); ena = 0; @@ -230,6 +242,7 @@ fdt_pm(phandle_t node) dev_mask |= (1 << i); break; } +#endif } return (ena); Modified: head/sys/arm/mv/mvreg.h ============================================================================== --- head/sys/arm/mv/mvreg.h Sat Oct 19 06:30:20 2013 (r256759) +++ head/sys/arm/mv/mvreg.h Sat Oct 19 06:47:02 2013 (r256760) @@ -142,7 +142,11 @@ /* * Power Control */ +#if defined(SOC_MV_KIRKWOOD) +#define CPU_PM_CTRL 0x18 +#else #define CPU_PM_CTRL 0x1C +#endif #define CPU_PM_CTRL_NONE 0 #define CPU_PM_CTRL_ALL ~0x0 From owner-svn-src-all@FreeBSD.ORG Sat Oct 19 06:48:50 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 4DA419B7; Sat, 19 Oct 2013 06:48:50 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 38F9C29AF; Sat, 19 Oct 2013 06:48:50 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9J6mox7035727; Sat, 19 Oct 2013 06:48:50 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9J6mnYn035724; Sat, 19 Oct 2013 06:48:49 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <201310190648.r9J6mnYn035724@svn.freebsd.org> From: Rui Paulo Date: Sat, 19 Oct 2013 06:48:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256761 - in head: lib/libcrypt/tests share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 19 Oct 2013 06:48:50 -0000 Author: rpaulo Date: Sat Oct 19 06:48:49 2013 New Revision: 256761 URL: http://svnweb.freebsd.org/changeset/base/256761 Log: Clearly split the logic to build ATF and plain tests apart. This change introduces a new plain.test.mk file that provides the build infrastructure to build test programs that don't use any framework. Most of the code previously in bsd.test.mk moves to plain.test.mk and atf.test.mk is extended with the missing pieces. In doing so, this change pushes all test program building logic to the various *.test.mk files instead of trying to reuse some tiny bits. In fact, this attempt to reuse some definitions makes the code harder to read and harder to extend. The clear benefit of this is that the interface of bsd.test.mk is now clearly delimited. Submitted by: Julio Merino jmmv google.com MFC after: 2 weeks Modified: head/lib/libcrypt/tests/Makefile head/share/mk/atf.test.mk head/share/mk/bsd.test.mk Modified: head/lib/libcrypt/tests/Makefile ============================================================================== --- head/lib/libcrypt/tests/Makefile Sat Oct 19 06:47:02 2013 (r256760) +++ head/lib/libcrypt/tests/Makefile Sat Oct 19 06:48:49 2013 (r256761) @@ -2,7 +2,7 @@ # exercise libcrypt -TESTS_C= crypt_tests +ATF_TESTS_C= crypt_tests CFLAGS+= -I${.CURDIR:H} LDADD+= -L${.OBJDIR:H} -lcrypt Modified: head/share/mk/atf.test.mk ============================================================================== --- head/share/mk/atf.test.mk Sat Oct 19 06:47:02 2013 (r256760) +++ head/share/mk/atf.test.mk Sat Oct 19 06:48:49 2013 (r256761) @@ -1,49 +1,53 @@ -# $NetBSD$ # $FreeBSD$ # +# Logic to build and install ATF test programs; i.e. test programs linked +# against the ATF libraries. .include -ATF_TESTS:= - -.if make(*test) -TESTSDIR?= . -.endif - -.if defined(ATF_TESTS_SUBDIRS) -# Only visit subdirs when building, etc because ATF does this it on its own. -.if !make(atf-test) -SUBDIR+= ${ATF_TESTS_SUBDIRS} -.endif -ATF_TESTS+= ${ATF_TESTS_SUBDIRS} - -.include -.endif - -.if defined(TESTS_C) -ATF_TESTS+= ${TESTS_C} -.for _T in ${TESTS_C} +# List of C, C++ and shell test programs to build. +# +# Programs listed here are built using PROGS, PROGS_CXX and SCRIPTS, +# respectively, from bsd.prog.mk. However, the build rules are tweaked to +# require the ATF libraries. +# +# Test programs registered in this manner are set to be installed into TESTSDIR +# (which should be overriden by the Makefile) and are not required to provide a +# manpage. +ATF_TESTS_C?= +ATF_TESTS_CXX?= +ATF_TESTS_SH?= + +.if !empty(ATF_TESTS_C) +PROGS+= ${ATF_TESTS_C} +.for _T in ${ATF_TESTS_C} +BINDIR.${_T}= ${TESTSDIR} +MAN.${_T}?= # empty SRCS.${_T}?= ${_T}.c DPADD.${_T}+= ${LIBATF_C} LDADD.${_T}+= -latf-c .endfor .endif -.if defined(TESTS_CXX) -ATF_TESTS+= ${TESTS_CXX} -.for _T in ${TESTS_CXX} +.if !empty(ATF_TESTS_CXX) +PROGS_CXX+= ${ATF_TESTS_CXX} +PROGS+= ${ATF_TESTS_CXX} +.for _T in ${ATF_TESTS_CXX} +BINDIR.${_T}= ${TESTSDIR} +MAN.${_T}?= # empty SRCS.${_T}?= ${_T}${CXX_SUFFIX:U.cc} DPADD.${_T}+= ${LIBATF_CXX} ${LIBATF_C} LDADD.${_T}+= -latf-c++ -latf-c .endfor .endif -.if defined(TESTS_SH) -ATF_TESTS+= ${TESTS_SH} -.for _T in ${TESTS_SH} +.if !empty(ATF_TESTS_SH) +SCRIPTS+= ${ATF_TESTS_SH} +.for _T in ${ATF_TESTS_SH} +SCRIPTSDIR_${_T}= ${TESTSDIR} CLEANFILES+= ${_T} ${_T}.tmp -TESTS_SH_SRC_${_T}?= ${_T}.sh -${_T}: ${TESTS_SH_SRC_${_T}} +ATF_TESTS_SH_SRC_${_T}?= ${_T}.sh +${_T}: ${ATF_TESTS_SH_SRC_${_T}} echo '#! /usr/bin/atf-sh' > ${.TARGET}.tmp cat ${.ALLSRC} >> ${.TARGET}.tmp chmod +x ${.TARGET}.tmp Modified: head/share/mk/bsd.test.mk ============================================================================== --- head/share/mk/bsd.test.mk Sat Oct 19 06:47:02 2013 (r256760) +++ head/share/mk/bsd.test.mk Sat Oct 19 06:48:49 2013 (r256761) @@ -1,33 +1,37 @@ -# $NetBSD: bsd.test.mk,v 1.21 2012/08/25 22:21:16 jmmv Exp $ # $FreeBSD$ +# +# Generic build infrastructure for test programs. +# +# The code in this file is independent of the implementation of the test +# programs being built; this file just provides generic infrastructure for the +# build and the definition of various helper variables and targets. +# +# Makefiles should never include this file directly. Instead, they should +# include one of the various *.test.mk depending on the specific test programs +# being built. .include -.if defined(TESTS_C) -PROGS+= ${TESTS_C} -.for _T in ${TESTS_C} -BINDIR.${_T}= ${TESTSDIR} -MAN.${_T}?= # empty -.endfor -.endif - -.if defined(TESTS_CXX) -PROGS_CXX+= ${TESTS_CXX} -PROGS+= ${TESTS_CXX} -.for _T in ${TESTS_CXX} -BINDIR.${_T}= ${TESTSDIR} -MAN.${_T}?= # empty -.endfor -.endif - -.if defined(TESTS_SH) -SCRIPTS+= ${TESTS_SH} -.for _T in ${TESTS_SH} -SCRIPTSDIR_${_T}= ${TESTSDIR} -.endfor -.endif +# Pointer to the top directory into which tests are installed. Should not be +# overriden by Makefiles, but the user may choose to set this in src.conf(5). +TESTSBASE?= /usr/tests + +# Directory in which to install tests defined by the current Makefile. +# Makefiles have to override this to point to a subdirectory of TESTSBASE. +TESTSDIR?= . + +# List of subdirectories containing tests into which to recurse. This has the +# same semantics as SUBDIR at build-time. However, the directories listed here +# get registered into the run-time test suite definitions so that the test +# engines know to recurse into these directories. +# +# In other words: list here any directories that contain test programs but use +# SUBDIR for directories that may contain helper binaries and/or data files. +TESTS_SUBDIRS?= -TESTSBASE?= ${DESTDIR}/usr/tests +.if !empty(TESTS_SUBDIRS) +SUBDIR+= ${TESTS_SUBDIRS} +.endif # it is rare for test cases to have man pages .if !defined(MAN) @@ -39,10 +43,6 @@ WITHOUT_MAN=yes PROG_VARS+= BINDIR PROGS_TARGETS+= install -.if !empty(PROGS) || !empty(PROGS_CXX) || !empty(SCRIPTS) -.include -.endif - beforetest: .PHONY .if defined(TESTSDIR) .if ${TESTSDIR} == ${TESTSBASE} @@ -76,4 +76,12 @@ test: beforetest realtest test: aftertest .endif +.if !empty(SUBDIR) +.include +.endif + +.if !empty(PROGS) || !empty(PROGS_CXX) || !empty(SCRIPTS) +.include +.endif + .include From owner-svn-src-all@FreeBSD.ORG Sat Oct 19 06:50:18 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id CA95EB3A; Sat, 19 Oct 2013 06:50:18 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id A766D2A08; Sat, 19 Oct 2013 06:50:18 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9J6oIat036196; Sat, 19 Oct 2013 06:50:18 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9J6oIGG036194; Sat, 19 Oct 2013 06:50:18 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <201310190650.r9J6oIGG036194@svn.freebsd.org> From: Rui Paulo Date: Sat, 19 Oct 2013 06:50:18 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256762 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 19 Oct 2013 06:50:19 -0000 Author: rpaulo Date: Sat Oct 19 06:50:17 2013 New Revision: 256762 URL: http://svnweb.freebsd.org/changeset/base/256762 Log: Add the automatic generation of Atffile files. These are only used by the deprecated atf-run and atf-report tools. Generating them is easy and provides a mechanism for people to experiment with these tools if they wish. But, because these tools and files are deprecated, doing this only happens if the user has explicitly set ALLOW_DEPRECATED_ATF_TOOLS to yes. Submitted by: Julio Merino jmmv google.com MFC after: 2 weeks Modified: head/share/mk/atf.test.mk head/share/mk/bsd.test.mk Modified: head/share/mk/atf.test.mk ============================================================================== --- head/share/mk/atf.test.mk Sat Oct 19 06:48:49 2013 (r256761) +++ head/share/mk/atf.test.mk Sat Oct 19 06:50:17 2013 (r256762) @@ -18,6 +18,24 @@ ATF_TESTS_C?= ATF_TESTS_CXX?= ATF_TESTS_SH?= +# Whether to allow using the deprecated ATF tools or not. +# +# If 'yes', this file will generate Atffiles when requested and will also +# support using the deprecated atf-run tool to execute the tests. +ALLOW_DEPRECATED_ATF_TOOLS?= no + +# Knob to control the handling of the Atffile for this Makefile. +# +# If 'yes', an Atffile exists in the source tree and is installed into +# TESTSDIR. +# +# If 'auto', an Atffile is automatically generated based on the list of test +# programs built by the Makefile and is installed into TESTSDIR. This is the +# default and is sufficient in the majority of the cases. +# +# If 'no', no Atffile is installed. +ATFFILE?= auto + .if !empty(ATF_TESTS_C) PROGS+= ${ATF_TESTS_C} .for _T in ${ATF_TESTS_C} @@ -55,4 +73,31 @@ ${_T}: ${ATF_TESTS_SH_SRC_${_T}} .endfor .endif +.if ${ALLOW_DEPRECATED_ATF_TOOLS} != "no" + +.if ${ATFFILE:tl} != "no" +FILES+= Atffile +FILESDIR_Atffile= ${TESTSDIR} + +.if ${ATFFILE:tl} == "auto" +CLEANFILES+= Atffile Atffile.tmp + +Atffile: Makefile + @{ echo 'Content-Type: application/X-atf-atffile; version="1"'; \ + echo; \ + echo '# Automatically generated by atf-test.mk.'; \ + echo; \ + echo 'prop: test-suite = "'${TESTSUITE}'"'; \ + echo; \ + for tp in ${ATF_TESTS_C} ${ATF_TESTS_CXX} ${ATF_TESTS_SH} \ + ${TESTS_SUBDIRS}; \ + do \ + echo "tp: $${tp}"; \ + done; } >Atffile.tmp + @mv Atffile.tmp Atffile +.endif +.endif + +.endif + .include Modified: head/share/mk/bsd.test.mk ============================================================================== --- head/share/mk/bsd.test.mk Sat Oct 19 06:48:49 2013 (r256761) +++ head/share/mk/bsd.test.mk Sat Oct 19 06:50:17 2013 (r256762) @@ -20,6 +20,10 @@ TESTSBASE?= /usr/tests # Makefiles have to override this to point to a subdirectory of TESTSBASE. TESTSDIR?= . +# Name of the test suite these tests belong to. Should rarely be changed for +# Makefiles built into the FreeBSD src tree. +TESTSUITE?= FreeBSD + # List of subdirectories containing tests into which to recurse. This has the # same semantics as SUBDIR at build-time. However, the directories listed here # get registered into the run-time test suite definitions so that the test @@ -82,6 +86,8 @@ test: aftertest .if !empty(PROGS) || !empty(PROGS_CXX) || !empty(SCRIPTS) .include +.elif !empty(FILES) +.include .endif .include From owner-svn-src-all@FreeBSD.ORG Sat Oct 19 06:50:57 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 4ED4CC70; Sat, 19 Oct 2013 06:50:57 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 3BECA2A0C; Sat, 19 Oct 2013 06:50:57 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9J6ovAZ038227; Sat, 19 Oct 2013 06:50:57 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9J6ouxJ038169; Sat, 19 Oct 2013 06:50:56 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <201310190650.r9J6ouxJ038169@svn.freebsd.org> From: Rui Paulo Date: Sat, 19 Oct 2013 06:50:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256763 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 19 Oct 2013 06:50:57 -0000 Author: rpaulo Date: Sat Oct 19 06:50:56 2013 New Revision: 256763 URL: http://svnweb.freebsd.org/changeset/base/256763 Log: Add the automatic generation of Kyuafile files. These files are generated from bsd.test.mk because kyua is able to run test programs implemented using different libraries/frameworks. In order to make this possible, this change also extends the various *.test.mk file to explicitly indicate the interface of every test program. Submitted by: Julio Merino jmmv google.com MFC after: 2 weeks Modified: head/share/mk/atf.test.mk head/share/mk/bsd.test.mk Modified: head/share/mk/atf.test.mk ============================================================================== --- head/share/mk/atf.test.mk Sat Oct 19 06:50:17 2013 (r256762) +++ head/share/mk/atf.test.mk Sat Oct 19 06:50:56 2013 (r256763) @@ -38,31 +38,37 @@ ATFFILE?= auto .if !empty(ATF_TESTS_C) PROGS+= ${ATF_TESTS_C} +_TESTS+= ${ATF_TESTS_C} .for _T in ${ATF_TESTS_C} BINDIR.${_T}= ${TESTSDIR} MAN.${_T}?= # empty SRCS.${_T}?= ${_T}.c DPADD.${_T}+= ${LIBATF_C} LDADD.${_T}+= -latf-c +TEST_INTERFACE.${_T}= atf .endfor .endif .if !empty(ATF_TESTS_CXX) PROGS_CXX+= ${ATF_TESTS_CXX} PROGS+= ${ATF_TESTS_CXX} +_TESTS+= ${ATF_TESTS_CXX} .for _T in ${ATF_TESTS_CXX} BINDIR.${_T}= ${TESTSDIR} MAN.${_T}?= # empty SRCS.${_T}?= ${_T}${CXX_SUFFIX:U.cc} DPADD.${_T}+= ${LIBATF_CXX} ${LIBATF_C} LDADD.${_T}+= -latf-c++ -latf-c +TEST_INTERFACE.${_T}= atf .endfor .endif .if !empty(ATF_TESTS_SH) SCRIPTS+= ${ATF_TESTS_SH} +_TESTS+= ${ATF_TESTS_SH} .for _T in ${ATF_TESTS_SH} SCRIPTSDIR_${_T}= ${TESTSDIR} +TEST_INTERFACE.${_T}= atf CLEANFILES+= ${_T} ${_T}.tmp ATF_TESTS_SH_SRC_${_T}?= ${_T}.sh ${_T}: ${ATF_TESTS_SH_SRC_${_T}} Modified: head/share/mk/bsd.test.mk ============================================================================== --- head/share/mk/bsd.test.mk Sat Oct 19 06:50:17 2013 (r256762) +++ head/share/mk/bsd.test.mk Sat Oct 19 06:50:56 2013 (r256763) @@ -33,6 +33,23 @@ TESTSUITE?= FreeBSD # SUBDIR for directories that may contain helper binaries and/or data files. TESTS_SUBDIRS?= +# Knob to control the handling of the Kyuafile for this Makefile. +# +# If 'yes', a Kyuafile exists in the source tree and is installed into +# TESTSDIR. +# +# If 'auto', a Kyuafile is automatically generated based on the list of test +# programs built by the Makefile and is installed into TESTSDIR. This is the +# default and is sufficient in the majority of the cases. +# +# If 'no', no Kyuafile is installed. +KYUAFILE?= auto + +# List of all tests being built. This variable is internal should not be +# defined by the Makefile. The various *.test.mk modules extend this variable +# as needed. +_TESTS?= + .if !empty(TESTS_SUBDIRS) SUBDIR+= ${TESTS_SUBDIRS} .endif @@ -47,6 +64,33 @@ WITHOUT_MAN=yes PROG_VARS+= BINDIR PROGS_TARGETS+= install +.if ${KYUAFILE:tl} != "no" +FILES+= Kyuafile +FILESDIR_Kyuafile= ${TESTSDIR} + +.if ${KYUAFILE:tl} == "auto" +CLEANFILES+= Kyuafile Kyuafile.tmp + +Kyuafile: Makefile + @{ \ + echo '-- Automatically generated by bsd.test.mk.'; \ + echo; \ + echo 'syntax(2)'; \ + echo; \ + echo 'test_suite("${TESTSUITE}")'; \ + echo; \ + } >Kyuafile.tmp +.for _T in ${_TESTS} + @echo "${TEST_INTERFACE.${_T}}_test_program{name=\"${_T}\"}" \ + >>Kyuafile.tmp +.endfor +.for _T in ${TESTS_SUBDIRS:N.WAIT} + @echo "include(\"${_T}/Kyuafile\")" >>Kyuafile.tmp +.endfor + @mv Kyuafile.tmp Kyuafile +.endif +.endif + beforetest: .PHONY .if defined(TESTSDIR) .if ${TESTSDIR} == ${TESTSBASE} From owner-svn-src-all@FreeBSD.ORG Sat Oct 19 06:51:35 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id AF38EDAB; Sat, 19 Oct 2013 06:51:35 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 9AC692A12; Sat, 19 Oct 2013 06:51:35 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9J6pZK3038498; Sat, 19 Oct 2013 06:51:35 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9J6pZ2j038490; Sat, 19 Oct 2013 06:51:35 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <201310190651.r9J6pZ2j038490@svn.freebsd.org> From: Rui Paulo Date: Sat, 19 Oct 2013 06:51:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256764 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 19 Oct 2013 06:51:35 -0000 Author: rpaulo Date: Sat Oct 19 06:51:34 2013 New Revision: 256764 URL: http://svnweb.freebsd.org/changeset/base/256764 Log: Plug atf-run into the 'test' target. If atf-run exists in ATF_PREFIX and if ALLOW_DEPRECATED_ATF_TOOLS has been set to yes, the test target is automatically defined to use it for the execution of test programs. Submitted by: Julio Merino jmmv google.com MFC after: 2 weeks Modified: head/share/mk/atf.test.mk head/share/mk/bsd.test.mk Modified: head/share/mk/atf.test.mk ============================================================================== --- head/share/mk/atf.test.mk Sat Oct 19 06:50:56 2013 (r256763) +++ head/share/mk/atf.test.mk Sat Oct 19 06:51:34 2013 (r256764) @@ -36,6 +36,29 @@ ALLOW_DEPRECATED_ATF_TOOLS?= no # If 'no', no Atffile is installed. ATFFILE?= auto +# Path to the prefix of the installed ATF tools, if any. +# +# If atf-run and atf-report are installed from ports, we automatically define a +# realtest target below to run the tests using these tools. The tools are +# searched for in the hierarchy specified by this variable. +ATF_PREFIX?= /usr/local + +# C compiler passed to ATF tests that need to build code. +ATF_BUILD_CC?= ${DESTDIR}/usr/bin/cc +TESTS_ENV+= ATF_BUILD_CC=${ATF_BUILD_CC} + +# C preprocessor passed to ATF tests that need to build code. +ATF_BUILD_CPP?= ${DESTDIR}/usr/bin/cpp +TESTS_ENV+= ATF_BUILD_CPP=${ATF_BUILD_CPP} + +# C++ compiler passed to ATF tests that need to build code. +ATF_BUILD_CXX?= ${DESTDIR}/usr/bin/c++ +TESTS_ENV+= ATF_BUILD_CXX=${ATF_BUILD_CXX} + +# Shell interpreter used to run atf-sh(1) based tests. +ATF_SHELL?= ${DESTDIR}/bin/sh +TESTS_ENV+= ATF_SHELL=${ATF_SHELL} + .if !empty(ATF_TESTS_C) PROGS+= ${ATF_TESTS_C} _TESTS+= ${ATF_TESTS_C} @@ -104,6 +127,43 @@ Atffile: Makefile .endif .endif +ATF_REPORT?= ${ATF_PREFIX}/bin/atf-report +ATF_RUN?= ${ATF_PREFIX}/bin/atf-run +.if exists(${ATF_RUN}) && exists(${ATF_REPORT}) +# Definition of the "make test" target and supporting variables. +# +# This target, by necessity, can only work for native builds (i.e. a freeBSD +# host building a release for the same system). The target runs ATF, which is +# not in the toolchain, and the tests execute code built for the target host. +# +# Due to the dependencies of the binaries built by the source tree and how they +# are used by tests, it is highly possible for a execution of "make test" to +# report bogus results unless the new binaries are put in place. +_TESTS_FIFO= ${.OBJDIR}/atf-run.fifo +_TESTS_LOG= ${.OBJDIR}/atf-run.log +CLEANFILES+= ${_TESTS_FIFO} ${_TESTS_LOG} +realtest: .PHONY + @set -e; \ + if [ -z "${TESTSDIR}" ]; then \ + echo "*** No TESTSDIR defined; nothing to do."; \ + exit 0; \ + fi; \ + cd ${DESTDIR}${TESTSDIR}; \ + rm -f ${_TESTS_FIFO}; \ + mkfifo ${_TESTS_FIFO}; \ + tee ${_TESTS_LOG} < ${_TESTS_FIFO} | ${TESTS_ENV} ${ATF_REPORT} & \ + set +e; \ + ${TESTS_ENV} ${ATF_RUN} >> ${_TESTS_FIFO}; \ + result=$${?}; \ + wait; \ + rm -f ${_TESTS_FIFO}; \ + echo; \ + echo "*** The verbatim output of atf-run has been saved to ${_TESTS_LOG}"; \ + echo "***"; \ + echo "*** WARNING: atf-run is deprecated; please install kyua instead"; \ + exit $${result} +.endif + .endif .include Modified: head/share/mk/bsd.test.mk ============================================================================== --- head/share/mk/bsd.test.mk Sat Oct 19 06:50:56 2013 (r256763) +++ head/share/mk/bsd.test.mk Sat Oct 19 06:51:34 2013 (r256764) @@ -45,6 +45,18 @@ TESTS_SUBDIRS?= # If 'no', no Kyuafile is installed. KYUAFILE?= auto +# List of variables to pass to the tests at run-time via the environment. +TESTS_ENV?= + +# Ordered list of directories to construct the PATH for the tests. +TESTS_PATH+= ${DESTDIR}/bin ${DESTDIR}/sbin \ + ${DESTDIR}/usr/bin ${DESTDIR}/usr/sbin +TESTS_ENV+= PATH=${TESTS_PATH:tW:C/ +/:/g} + +# Ordered list of directories to construct the LD_LIBRARY_PATH for the tests. +TESTS_LD_LIBRARY_PATH+= ${DESTDIR}/lib ${DESTDIR}/usr/lib +TESTS_ENV+= LD_LIBRARY_PATH=${TESTS_LD_LIBRARY_PATH:tW:C/ +/:/g} + # List of all tests being built. This variable is internal should not be # defined by the Makefile. The various *.test.mk modules extend this variable # as needed. From owner-svn-src-all@FreeBSD.ORG Sat Oct 19 06:52:06 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id AB25BEE5; Sat, 19 Oct 2013 06:52:06 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 7F20D2A18; Sat, 19 Oct 2013 06:52:06 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9J6q6iO038654; Sat, 19 Oct 2013 06:52:06 GMT (envelope-from rpaulo@svn.freebsd.org) Received: (from rpaulo@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9J6q6dP038653; Sat, 19 Oct 2013 06:52:06 GMT (envelope-from rpaulo@svn.freebsd.org) Message-Id: <201310190652.r9J6q6dP038653@svn.freebsd.org> From: Rui Paulo Date: Sat, 19 Oct 2013 06:52:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256765 - head/share/mk X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 19 Oct 2013 06:52:06 -0000 Author: rpaulo Date: Sat Oct 19 06:52:06 2013 New Revision: 256765 URL: http://svnweb.freebsd.org/changeset/base/256765 Log: Plug kyua into the 'test' target. If kyua exists in KYUA_PREFIX, the test target is automatically defined to use it for the execution of test programs. Submitted by: Julio Merino jmmv google.com MFC after: 2 weeks Modified: head/share/mk/bsd.test.mk Modified: head/share/mk/bsd.test.mk ============================================================================== --- head/share/mk/bsd.test.mk Sat Oct 19 06:51:34 2013 (r256764) +++ head/share/mk/bsd.test.mk Sat Oct 19 06:52:06 2013 (r256765) @@ -62,6 +62,13 @@ TESTS_ENV+= LD_LIBRARY_PATH=${TESTS_LD_L # as needed. _TESTS?= +# Path to the prefix of the installed Kyua CLI, if any. +# +# If kyua is installed from ports, we automatically define a realtest target +# below to run the tests using this tool. The tools are searched for in the +# hierarchy specified by this variable. +KYUA_PREFIX?= /usr/local + .if !empty(TESTS_SUBDIRS) SUBDIR+= ${TESTS_SUBDIRS} .endif @@ -103,6 +110,32 @@ Kyuafile: Makefile .endif .endif +KYUA?= ${KYUA_PREFIX}/bin/kyua +.if exists(${KYUA}) +# Definition of the "make test" target and supporting variables. +# +# This target, by necessity, can only work for native builds (i.e. a FreeBSD +# host building a release for the same system). The target runs Kyua, which is +# not in the toolchain, and the tests execute code built for the target host. +# +# Due to the dependencies of the binaries built by the source tree and how they +# are used by tests, it is highly possible for a execution of "make test" to +# report bogus results unless the new binaries are put in place. +realtest: .PHONY + @echo "*** WARNING: make test is experimental" + @echo "***" + @echo "*** Using this test does not preclude you from running the tests" + @echo "*** installed in ${TESTSBASE}. This test run may raise false" + @echo "*** positives and/or false negatives." + @echo + @set -e; \ + ${KYUA} test -k ${DESTDIR}${TESTSDIR}/Kyuafile; \ + result=0; \ + echo; \ + echo "*** Once again, note that "make test" is unsupported."; \ + test $${result} -eq 0 +.endif + beforetest: .PHONY .if defined(TESTSDIR) .if ${TESTSDIR} == ${TESTSBASE} From owner-svn-src-all@FreeBSD.ORG Sat Oct 19 08:20:01 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 57ACCBCE; Sat, 19 Oct 2013 08:20:01 +0000 (UTC) (envelope-from trasz@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 44B182D7A; Sat, 19 Oct 2013 08:20:01 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9J8K1mU084668; Sat, 19 Oct 2013 08:20:01 GMT (envelope-from trasz@svn.freebsd.org) Received: (from trasz@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9J8K12f084667; Sat, 19 Oct 2013 08:20:01 GMT (envelope-from trasz@svn.freebsd.org) Message-Id: <201310190820.r9J8K12f084667@svn.freebsd.org> From: Edward Tomasz Napierala Date: Sat, 19 Oct 2013 08:20:01 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256766 - head/sys/geom/label X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 19 Oct 2013 08:20:01 -0000 Author: trasz Date: Sat Oct 19 08:20:00 2013 New Revision: 256766 URL: http://svnweb.freebsd.org/changeset/base/256766 Log: Fix build with gcc by spelling unused format string as "unused" instead of NULL. MFC after: 29 days Modified: head/sys/geom/label/g_label.c Modified: head/sys/geom/label/g_label.c ============================================================================== --- head/sys/geom/label/g_label.c Sat Oct 19 06:52:06 2013 (r256765) +++ head/sys/geom/label/g_label.c Sat Oct 19 08:20:00 2013 (r256766) @@ -132,7 +132,7 @@ g_label_resize(struct g_consumer *cp) LIST_FIRST(&cp->geom->provider)->name); g_slice_config(cp->geom, 0, G_SLICE_CONFIG_FORCE, (off_t)0, - cp->provider->mediasize, cp->provider->sectorsize, NULL); + cp->provider->mediasize, cp->provider->sectorsize, "notused"); } static int From owner-svn-src-all@FreeBSD.ORG Sat Oct 19 09:40:30 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 767EEADF; Sat, 19 Oct 2013 09:40:30 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 648682160; Sat, 19 Oct 2013 09:40:30 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9J9eUtv027702; Sat, 19 Oct 2013 09:40:30 GMT (envelope-from des@svn.freebsd.org) Received: (from des@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9J9eUiT027701; Sat, 19 Oct 2013 09:40:30 GMT (envelope-from des@svn.freebsd.org) Message-Id: <201310190940.r9J9eUiT027701@svn.freebsd.org> From: Dag-Erling Smørgrav Date: Sat, 19 Oct 2013 09:40:30 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256767 - head/usr.sbin/freebsd-update X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 19 Oct 2013 09:40:30 -0000 Author: des Date: Sat Oct 19 09:40:29 2013 New Revision: 256767 URL: http://svnweb.freebsd.org/changeset/base/256767 Log: Allow ~ in file names so libtool droppings in contrib don't break updates. It has happened twice now, and is likely to happen again. Errata notice candidate. Modified: head/usr.sbin/freebsd-update/freebsd-update.sh Modified: head/usr.sbin/freebsd-update/freebsd-update.sh ============================================================================== --- head/usr.sbin/freebsd-update/freebsd-update.sh Sat Oct 19 08:20:00 2013 (r256766) +++ head/usr.sbin/freebsd-update/freebsd-update.sh Sat Oct 19 09:40:29 2013 (r256767) @@ -1200,7 +1200,7 @@ fetch_metadata_sanity () { # Some aliases to save space later: ${P} is a character which can # appear in a path; ${M} is the four numeric metadata fields; and # ${H} is a sha256 hash. - P="[-+./:=%@_[[:alnum:]]" + P="[-+./:=%@_[~[:alnum:]]" M="[0-9]+\|[0-9]+\|[0-9]+\|[0-9]+" H="[0-9a-f]{64}" From owner-svn-src-all@FreeBSD.ORG Sat Oct 19 09:59:11 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 9269FD92; Sat, 19 Oct 2013 09:59:11 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 7F82F21F2; Sat, 19 Oct 2013 09:59:11 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9J9xBJq036989; Sat, 19 Oct 2013 09:59:11 GMT (envelope-from des@svn.freebsd.org) Received: (from des@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9J9xBI1036988; Sat, 19 Oct 2013 09:59:11 GMT (envelope-from des@svn.freebsd.org) Message-Id: <201310190959.r9J9xBI1036988@svn.freebsd.org> From: Dag-Erling Smørgrav Date: Sat, 19 Oct 2013 09:59:11 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256768 - head/sbin/ifconfig X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 19 Oct 2013 09:59:11 -0000 Author: des Date: Sat Oct 19 09:59:11 2013 New Revision: 256768 URL: http://svnweb.freebsd.org/changeset/base/256768 Log: Do not error out when adding an interface to a group to which it already belongs or removing it from a group to which it does not belong. This makes it possible to include group memberships in ifconfig_foo0 in rc.conf without fear of breaking "service netif restart foo0". MFC after: 3 days Modified: head/sbin/ifconfig/ifgroup.c Modified: head/sbin/ifconfig/ifgroup.c ============================================================================== --- head/sbin/ifconfig/ifgroup.c Sat Oct 19 09:40:29 2013 (r256767) +++ head/sbin/ifconfig/ifgroup.c Sat Oct 19 09:59:11 2013 (r256768) @@ -57,7 +57,7 @@ setifgroup(const char *group_name, int d if (strlcpy(ifgr.ifgr_group, group_name, IFNAMSIZ) >= IFNAMSIZ) errx(1, "setifgroup: group name too long"); - if (ioctl(s, SIOCAIFGROUP, (caddr_t)&ifgr) == -1) + if (ioctl(s, SIOCAIFGROUP, (caddr_t)&ifgr) == -1 && errno != EEXIST) err(1," SIOCAIFGROUP"); } @@ -75,7 +75,7 @@ unsetifgroup(const char *group_name, int if (strlcpy(ifgr.ifgr_group, group_name, IFNAMSIZ) >= IFNAMSIZ) errx(1, "unsetifgroup: group name too long"); - if (ioctl(s, SIOCDIFGROUP, (caddr_t)&ifgr) == -1) + if (ioctl(s, SIOCDIFGROUP, (caddr_t)&ifgr) == -1 && errno != ENOENT) err(1, "SIOCDIFGROUP"); } From owner-svn-src-all@FreeBSD.ORG Sat Oct 19 10:00:52 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 40F40ED9; Sat, 19 Oct 2013 10:00:52 +0000 (UTC) (envelope-from des@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 2EB6C2225; Sat, 19 Oct 2013 10:00:52 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9JA0qt9039557; Sat, 19 Oct 2013 10:00:52 GMT (envelope-from des@svn.freebsd.org) Received: (from des@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9JA0pGZ039555; Sat, 19 Oct 2013 10:00:51 GMT (envelope-from des@svn.freebsd.org) Message-Id: <201310191000.r9JA0pGZ039555@svn.freebsd.org> From: Dag-Erling Smørgrav Date: Sat, 19 Oct 2013 10:00:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256769 - in head: . etc/mtree X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 19 Oct 2013 10:00:52 -0000 Author: des Date: Sat Oct 19 10:00:51 2013 New Revision: 256769 URL: http://svnweb.freebsd.org/changeset/base/256769 Log: Last few remnants of BIND (hopefully...) MFC after: 3 days Modified: head/ObsoleteFiles.inc head/etc/mtree/BSD.usr.dist Modified: head/ObsoleteFiles.inc ============================================================================== --- head/ObsoleteFiles.inc Sat Oct 19 09:59:11 2013 (r256768) +++ head/ObsoleteFiles.inc Sat Oct 19 10:00:51 2013 (r256769) @@ -97,7 +97,7 @@ OLD_FILES+=usr/include/lwres/result.h OLD_FILES+=usr/include/lwres/version.h OLD_FILES+=usr/lib/liblwres.a OLD_FILES+=usr/lib/liblwres.so -OLD_LIBS+=usr/lib/liblwres.so.50 +OLD_LIBS+=usr/lib/liblwres.so.90 OLD_FILES+=usr/lib/liblwres_p.a OLD_FILES+=usr/sbin/arpaname OLD_FILES+=usr/sbin/ddns-confgen @@ -107,6 +107,7 @@ OLD_FILES+=usr/sbin/dnssec-keygen OLD_FILES+=usr/sbin/dnssec-revoke OLD_FILES+=usr/sbin/dnssec-settime OLD_FILES+=usr/sbin/dnssec-signzone +OLD_FILES+=usr/sbin/dnssec-verify OLD_FILES+=usr/sbin/genrandom OLD_FILES+=usr/sbin/isc-hmac-fixup OLD_FILES+=usr/sbin/lwresd Modified: head/etc/mtree/BSD.usr.dist ============================================================================== --- head/etc/mtree/BSD.usr.dist Sat Oct 19 09:59:11 2013 (r256768) +++ head/etc/mtree/BSD.usr.dist Sat Oct 19 10:00:51 2013 (r256769) @@ -169,12 +169,6 @@ .. atm .. - bind9 - arm - .. - misc - .. - .. legal intel_ipw .. From owner-svn-src-all@FreeBSD.ORG Sat Oct 19 15:36:22 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 4B4B6925; Sat, 19 Oct 2013 15:36:22 +0000 (UTC) (envelope-from gavin@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 388C4206F; Sat, 19 Oct 2013 15:36:22 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9JFaMgs018704; Sat, 19 Oct 2013 15:36:22 GMT (envelope-from gavin@svn.freebsd.org) Received: (from gavin@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9JFaMmV018703; Sat, 19 Oct 2013 15:36:22 GMT (envelope-from gavin@svn.freebsd.org) Message-Id: <201310191536.r9JFaMmV018703@svn.freebsd.org> From: Gavin Atkinson Date: Sat, 19 Oct 2013 15:36:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256770 - head/usr.sbin/pkg X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 19 Oct 2013 15:36:22 -0000 Author: gavin Date: Sat Oct 19 15:36:21 2013 New Revision: 256770 URL: http://svnweb.freebsd.org/changeset/base/256770 Log: Improve bootstrapping message MFC after: 3 days Modified: head/usr.sbin/pkg/pkg.c Modified: head/usr.sbin/pkg/pkg.c ============================================================================== --- head/usr.sbin/pkg/pkg.c Sat Oct 19 10:00:51 2013 (r256769) +++ head/usr.sbin/pkg/pkg.c Sat Oct 19 15:36:21 2013 (r256770) @@ -157,7 +157,7 @@ bootstrap_pkg(void) config = NULL; current = mirrors = NULL; - printf("Bootstrapping pkg please wait\n"); + printf("Bootstrapping pkg, please wait...\n"); if (config_string(PACKAGESITE, &packagesite) != 0) { warnx("No PACKAGESITE defined"); From owner-svn-src-all@FreeBSD.ORG Sat Oct 19 17:11:59 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 6E19587E; Sat, 19 Oct 2013 17:11:59 +0000 (UTC) (envelope-from dumbbell@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 5B62E261B; Sat, 19 Oct 2013 17:11:59 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9JHBx9v071612; Sat, 19 Oct 2013 17:11:59 GMT (envelope-from dumbbell@svn.freebsd.org) Received: (from dumbbell@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9JHBxHh071611; Sat, 19 Oct 2013 17:11:59 GMT (envelope-from dumbbell@svn.freebsd.org) Message-Id: <201310191711.r9JHBxHh071611@svn.freebsd.org> From: Jean-Sebastien Pedron Date: Sat, 19 Oct 2013 17:11:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256771 - head/sys/dev/drm2/radeon X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 19 Oct 2013 17:11:59 -0000 Author: dumbbell Date: Sat Oct 19 17:11:58 2013 New Revision: 256771 URL: http://svnweb.freebsd.org/changeset/base/256771 Log: drm/radeon: radeonkms depends on firmware(9) Submitted by: tijl@ Modified: head/sys/dev/drm2/radeon/radeon_drv.c Modified: head/sys/dev/drm2/radeon/radeon_drv.c ============================================================================== --- head/sys/dev/drm2/radeon/radeon_drv.c Sat Oct 19 15:36:21 2013 (r256770) +++ head/sys/dev/drm2/radeon/radeon_drv.c Sat Oct 19 17:11:58 2013 (r256771) @@ -512,3 +512,4 @@ MODULE_DEPEND(radeonkms, agp, 1, 1, 1); MODULE_DEPEND(radeonkms, iicbus, 1, 1, 1); MODULE_DEPEND(radeonkms, iic, 1, 1, 1); MODULE_DEPEND(radeonkms, iicbb, 1, 1, 1); +MODULE_DEPEND(radeonkms, firmware, 1, 1, 1); From owner-svn-src-all@FreeBSD.ORG Sat Oct 19 18:13:33 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 85046CCE; Sat, 19 Oct 2013 18:13:33 +0000 (UTC) (envelope-from kevlo@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 63060295D; Sat, 19 Oct 2013 18:13:33 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9JIDXJa004635; Sat, 19 Oct 2013 18:13:33 GMT (envelope-from kevlo@svn.freebsd.org) Received: (from kevlo@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9JIDXka004634; Sat, 19 Oct 2013 18:13:33 GMT (envelope-from kevlo@svn.freebsd.org) Message-Id: <201310191813.r9JIDXka004634@svn.freebsd.org> From: Kevin Lo Date: Sat, 19 Oct 2013 18:13:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256772 - head/sys/netinet X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 19 Oct 2013 18:13:33 -0000 Author: kevlo Date: Sat Oct 19 18:13:32 2013 New Revision: 256772 URL: http://svnweb.freebsd.org/changeset/base/256772 Log: - Add parentheses to all internet addresses - All the casts to uint32_t should be to in_addr_t Suggested by: bde Reviewed by: bde Modified: head/sys/netinet/in.h Modified: head/sys/netinet/in.h ============================================================================== --- head/sys/netinet/in.h Sat Oct 19 17:11:58 2013 (r256771) +++ head/sys/netinet/in.h Sat Oct 19 18:13:32 2013 (r256772) @@ -43,8 +43,8 @@ #define IPPROTO_TCP 6 /* tcp */ #define IPPROTO_UDP 17 /* user datagram protocol */ -#define INADDR_ANY (u_int32_t)0x00000000 -#define INADDR_BROADCAST (u_int32_t)0xffffffff /* must be masked */ +#define INADDR_ANY ((in_addr_t)0x00000000) +#define INADDR_BROADCAST ((in_addr_t)0xffffffff) /* must be masked */ #ifndef _UINT8_T_DECLARED typedef __uint8_t uint8_t; @@ -339,61 +339,61 @@ __END_DECLS * On subnets, the decomposition of addresses to host and net parts * is done according to subnet mask, not the masks here. */ -#define IN_CLASSA(i) (((u_int32_t)(i) & 0x80000000) == 0) +#define IN_CLASSA(i) (((in_addr_t)(i) & 0x80000000) == 0) #define IN_CLASSA_NET 0xff000000 #define IN_CLASSA_NSHIFT 24 #define IN_CLASSA_HOST 0x00ffffff #define IN_CLASSA_MAX 128 -#define IN_CLASSB(i) (((u_int32_t)(i) & 0xc0000000) == 0x80000000) +#define IN_CLASSB(i) (((in_addr_t)(i) & 0xc0000000) == 0x80000000) #define IN_CLASSB_NET 0xffff0000 #define IN_CLASSB_NSHIFT 16 #define IN_CLASSB_HOST 0x0000ffff #define IN_CLASSB_MAX 65536 -#define IN_CLASSC(i) (((u_int32_t)(i) & 0xe0000000) == 0xc0000000) +#define IN_CLASSC(i) (((in_addr_t)(i) & 0xe0000000) == 0xc0000000) #define IN_CLASSC_NET 0xffffff00 #define IN_CLASSC_NSHIFT 8 #define IN_CLASSC_HOST 0x000000ff -#define IN_CLASSD(i) (((u_int32_t)(i) & 0xf0000000) == 0xe0000000) +#define IN_CLASSD(i) (((in_addr_t)(i) & 0xf0000000) == 0xe0000000) #define IN_CLASSD_NET 0xf0000000 /* These ones aren't really */ #define IN_CLASSD_NSHIFT 28 /* net and host fields, but */ #define IN_CLASSD_HOST 0x0fffffff /* routing needn't know. */ #define IN_MULTICAST(i) IN_CLASSD(i) -#define IN_EXPERIMENTAL(i) (((u_int32_t)(i) & 0xf0000000) == 0xf0000000) -#define IN_BADCLASS(i) (((u_int32_t)(i) & 0xf0000000) == 0xf0000000) +#define IN_EXPERIMENTAL(i) (((in_addr_t)(i) & 0xf0000000) == 0xf0000000) +#define IN_BADCLASS(i) (((in_addr_t)(i) & 0xf0000000) == 0xf0000000) -#define IN_LINKLOCAL(i) (((u_int32_t)(i) & 0xffff0000) == 0xa9fe0000) -#define IN_LOOPBACK(i) (((u_int32_t)(i) & 0xff000000) == 0x7f000000) -#define IN_ZERONET(i) (((u_int32_t)(i) & 0xff000000) == 0) - -#define IN_PRIVATE(i) ((((u_int32_t)(i) & 0xff000000) == 0x0a000000) || \ - (((u_int32_t)(i) & 0xfff00000) == 0xac100000) || \ - (((u_int32_t)(i) & 0xffff0000) == 0xc0a80000)) +#define IN_LINKLOCAL(i) (((in_addr_t)(i) & 0xffff0000) == 0xa9fe0000) +#define IN_LOOPBACK(i) (((in_addr_t)(i) & 0xff000000) == 0x7f000000) +#define IN_ZERONET(i) (((in_addr_t)(i) & 0xff000000) == 0) + +#define IN_PRIVATE(i) ((((in_addr_t)(i) & 0xff000000) == 0x0a000000) || \ + (((in_addr_t)(i) & 0xfff00000) == 0xac100000) || \ + (((in_addr_t)(i) & 0xffff0000) == 0xc0a80000)) -#define IN_LOCAL_GROUP(i) (((u_int32_t)(i) & 0xffffff00) == 0xe0000000) +#define IN_LOCAL_GROUP(i) (((in_addr_t)(i) & 0xffffff00) == 0xe0000000) #define IN_ANY_LOCAL(i) (IN_LINKLOCAL(i) || IN_LOCAL_GROUP(i)) -#define INADDR_LOOPBACK (u_int32_t)0x7f000001 +#define INADDR_LOOPBACK ((in_addr_t)0x7f000001) #ifndef _KERNEL -#define INADDR_NONE (uint32_t)0xffffffff /* -1 return */ +#define INADDR_NONE ((in_addr_t)0xffffffff) /* -1 return */ #endif -#define INADDR_UNSPEC_GROUP (u_int32_t)0xe0000000 /* 224.0.0.0 */ -#define INADDR_ALLHOSTS_GROUP (u_int32_t)0xe0000001 /* 224.0.0.1 */ -#define INADDR_ALLRTRS_GROUP (u_int32_t)0xe0000002 /* 224.0.0.2 */ -#define INADDR_ALLRPTS_GROUP (u_int32_t)0xe0000016 /* 224.0.0.22, IGMPv3 */ -#define INADDR_CARP_GROUP (u_int32_t)0xe0000012 /* 224.0.0.18 */ -#define INADDR_PFSYNC_GROUP (u_int32_t)0xe00000f0 /* 224.0.0.240 */ -#define INADDR_ALLMDNS_GROUP (u_int32_t)0xe00000fb /* 224.0.0.251 */ -#define INADDR_MAX_LOCAL_GROUP (u_int32_t)0xe00000ff /* 224.0.0.255 */ +#define INADDR_UNSPEC_GROUP ((in_addr_t)0xe0000000) /* 224.0.0.0 */ +#define INADDR_ALLHOSTS_GROUP ((in_addr_t)0xe0000001) /* 224.0.0.1 */ +#define INADDR_ALLRTRS_GROUP ((in_addr_t)0xe0000002) /* 224.0.0.2 */ +#define INADDR_ALLRPTS_GROUP ((in_addr_t)0xe0000016) /* 224.0.0.22, IGMPv3 */ +#define INADDR_CARP_GROUP ((in_addr_t)0xe0000012) /* 224.0.0.18 */ +#define INADDR_PFSYNC_GROUP ((in_addr_t)0xe00000f0) /* 224.0.0.240 */ +#define INADDR_ALLMDNS_GROUP ((in_addr_t)0xe00000fb) /* 224.0.0.251 */ +#define INADDR_MAX_LOCAL_GROUP ((in_addr_t)0xe00000ff) /* 224.0.0.255 */ #define IN_LOOPBACKNET 127 /* official! */ -#define IN_RFC3021_MASK (u_int32_t)0xfffffffe +#define IN_RFC3021_MASK ((in_addr_t)0xfffffffe) /* * Options for use with [gs]etsockopt at the IP level. From owner-svn-src-all@FreeBSD.ORG Sat Oct 19 18:51:08 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id E2ABC74E; Sat, 19 Oct 2013 18:51:07 +0000 (UTC) (envelope-from jmg@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id CE6722AED; Sat, 19 Oct 2013 18:51:07 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9JIp7aW024834; Sat, 19 Oct 2013 18:51:07 GMT (envelope-from jmg@svn.freebsd.org) Received: (from jmg@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9JIp7j9024830; Sat, 19 Oct 2013 18:51:07 GMT (envelope-from jmg@svn.freebsd.org) Message-Id: <201310191851.r9JIp7j9024830@svn.freebsd.org> From: John-Mark Gurney Date: Sat, 19 Oct 2013 18:51:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256773 - in head: etc/defaults etc/rc.d etc/sendmail share/man/man8 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 19 Oct 2013 18:51:08 -0000 Author: jmg Date: Sat Oct 19 18:51:06 2013 New Revision: 256773 URL: http://svnweb.freebsd.org/changeset/base/256773 Log: Enable the automatic creation of a certificate (if one does not exists) and enable the usage by sendmail if sendmail is enabled. Include and document knobs to disable this feature and also set the Common Name of the certificate created. As the certificate is signed w/ a discarded key, it only helps prevent Eve, but not Malory from knowing the contents of the emails. This means that new installs (and people that use the updated freebsd.mc file) will automaticly have STARTTLS enabled allowing incoming email to be encrypted in most cases. Reviewed by: gshapiro MFC after: 3 days Security: Yes, please. Modified: head/etc/defaults/rc.conf head/etc/rc.d/sendmail head/etc/sendmail/freebsd.mc head/share/man/man8/rc.sendmail.8 Modified: head/etc/defaults/rc.conf ============================================================================== --- head/etc/defaults/rc.conf Sat Oct 19 18:13:32 2013 (r256772) +++ head/etc/defaults/rc.conf Sat Oct 19 18:51:06 2013 (r256773) @@ -573,6 +573,8 @@ sendmail_enable="NO" # Run the sendmail sendmail_pidfile="/var/run/sendmail.pid" # sendmail pid file sendmail_procname="/usr/sbin/sendmail" # sendmail process name sendmail_flags="-L sm-mta -bd -q30m" # Flags to sendmail (as a server) +sendmail_cert_create="YES" # Create a server certificate if none (YES/NO) +#sendmail_cert_cn="CN" # CN of the generate certificate sendmail_submit_enable="YES" # Start a localhost-only MTA for mail submission sendmail_submit_flags="-L sm-mta -bd -q30m -ODaemonPortOptions=Addr=localhost" # Flags for localhost-only MTA Modified: head/etc/rc.d/sendmail ============================================================================== --- head/etc/rc.d/sendmail Sat Oct 19 18:13:32 2013 (r256772) +++ head/etc/rc.d/sendmail Sat Oct 19 18:51:06 2013 (r256773) @@ -24,6 +24,8 @@ command=${sendmail_program:-/usr/sbin/${ pidfile=${sendmail_pidfile:-/var/run/${name}.pid} procname=${sendmail_procname:-/usr/sbin/${name}} +CERTDIR=/etc/mail/certs + case ${sendmail_enable} in [Nn][Oo][Nn][Ee]) sendmail_enable="NO" @@ -44,6 +46,118 @@ if checkyesno sendmail_submit_enable; th sendmail_outbound_enable="NO" fi +sendmail_cert_create() +{ + cnname="${sendmail_cert_cn:-`hostname`}" + cnname="${cnname:-amnesiac}" + + # based upon: + # http://www.sendmail.org/~ca/email/other/cagreg.html + CAdir=`mktemp -d` && + certpass=`(date; ps ax ; hostname) | md5 -q` + + # make certificate authority + ( cd "$CAdir" && + chmod 700 "$CAdir" && + mkdir certs crl newcerts && + echo "01" > serial && + :> index.txt && + + cat <<-OPENSSL_CNF > openssl.cnf && + RANDFILE = $CAdir/.rnd + [ ca ] + default_ca = CA_default + [ CA_default ] + dir = . + certs = \$dir/certs # Where the issued certs are kept + crl_dir = \$dir/crl # Where the issued crl are kept + database = \$dir/index.txt # database index file. + new_certs_dir = \$dir/newcerts # default place for new certs. + certificate = \$dir/cacert.pem # The CA certificate + serial = \$dir/serial # The current serial number + crlnumber = \$dir/crlnumber # the current crl number + crl = \$dir/crl.pem # The current CRL + private_key = \$dir/cakey.pem + x509_extensions = usr_cert # The extentions to add to the cert + name_opt = ca_default # Subject Name options + cert_opt = ca_default # Certificate field options + default_days = 365 # how long to certify for + default_crl_days= 30 # how long before next CRL + default_md = default # use public key default MD + preserve = no # keep passed DN ordering + policy = policy_anything + [ policy_anything ] + countryName = optional + stateOrProvinceName = optional + localityName = optional + organizationName = optional + organizationalUnitName = optional + commonName = supplied + emailAddress = optional + [ req ] + default_bits = 2048 + default_keyfile = privkey.pem + distinguished_name = req_distinguished_name + attributes = req_attributes + x509_extensions = v3_ca # The extentions to add to the self signed cert + string_mask = utf8only + prompt = no + [ req_distinguished_name ] + countryName = XX + stateOrProvinceName = Some-state + localityName = Some-city + 0.organizationName = Some-org + CN = $cnname + [ req_attributes ] + challengePassword = foobar + unstructuredName = An optional company name + [ usr_cert ] + basicConstraints=CA:FALSE + nsComment = "OpenSSL Generated Certificate" + subjectKeyIdentifier=hash + authorityKeyIdentifier=keyid,issuer + [ v3_req ] + basicConstraints = CA:FALSE + keyUsage = nonRepudiation, digitalSignature, keyEncipherment + [ v3_ca ] + subjectKeyIdentifier=hash + authorityKeyIdentifier=keyid:always,issuer + basicConstraints = CA:true + OPENSSL_CNF + + # though we use a password, the key is discarded and never used + openssl req -batch -passout pass:"$certpass" -new -x509 \ + -keyout cakey.pem -out cacert.pem -days 3650 \ + -config openssl.cnf -newkey rsa:2048 >/dev/null 2>&1 && + + # make new certificate + openssl req -batch -nodes -new -x509 -keyout newkey.pem \ + -out newreq.pem -days 365 -config openssl.cnf \ + -newkey rsa:2048 >/dev/null 2>&1 && + + # sign certificate + openssl x509 -x509toreq -in newreq.pem -signkey newkey.pem \ + -out tmp.pem >/dev/null 2>&1 && + openssl ca -notext -config openssl.cnf \ + -out newcert.pem -keyfile cakey.pem -cert cacert.pem \ + -key "$certpass" -batch -infiles tmp.pem >/dev/null 2>&1 && + + mkdir -p "$CERTDIR" && + chmod 0755 "$CERTDIR" && + chmod 644 newcert.pem cacert.pem && + chmod 600 newkey.pem && + cp -p newcert.pem "$CERTDIR"/host.cert && + cp -p cacert.pem "$CERTDIR"/cacert.pem && + cp -p newkey.pem "$CERTDIR"/host.key && + ln -s cacert.pem "$CERTDIR"/`openssl x509 -hash -noout \ + -in cacert.pem`.0) + + retVal="$?" + rm -rf "$CAdir" + + return "$retVal" +} + sendmail_precmd() { # Die if there's pre-8.10 custom configuration file. This check is @@ -71,6 +185,17 @@ sendmail_precmd() /usr/bin/newaliases fi fi + + if checkyesno sendmail_cert_create && [ ! \( \ + -f "$CERTDIR/host.cert" -o -f "$CERTDIR/host.key" -o \ + -f "$CERTDIR/cacert.pem" \) ]; then + if ! openssl version >/dev/null 2>&1; then + warn "OpenSSL not available, but sendmail_cert_create is YES." + else + info Creating certificate for sendmail. + sendmail_cert_create + fi + fi } run_rc_command "$1" Modified: head/etc/sendmail/freebsd.mc ============================================================================== --- head/etc/sendmail/freebsd.mc Sat Oct 19 18:13:32 2013 (r256772) +++ head/etc/sendmail/freebsd.mc Sat Oct 19 18:51:06 2013 (r256773) @@ -42,6 +42,11 @@ divert(-1) # /usr/share/sendmail/cf/README or # /usr/src/contrib/sendmail/cf/README # +# +# NOTE: If you enable RunAsUser, make sure that you adjust the permissions +# and owner of the SSL certificates and keys in /etc/mail/certs to be usable +# by that user. +# divert(0) VERSIONID(`$FreeBSD$') @@ -54,6 +59,16 @@ FEATURE(local_lmtp) FEATURE(mailertable, `hash -o /etc/mail/mailertable') FEATURE(virtusertable, `hash -o /etc/mail/virtusertable') +dnl Enable STARTTLS for receiving email. +define(`CERT_DIR', `/etc/mail/certs')dnl +define(`confSERVER_CERT', `CERT_DIR/host.cert')dnl +define(`confSERVER_KEY', `CERT_DIR/host.key')dnl +define(`confCLIENT_CERT', `CERT_DIR/host.cert')dnl +define(`confCLIENT_KEY', `CERT_DIR/host.key')dnl +define(`confCACERT', `CERT_DIR/cacert.pem')dnl +define(`confCACERT_PATH', `CERT_DIR')dnl +define(`confDH_PARAMETERS', `CERT_DIR/dh.param')dnl + dnl Uncomment to allow relaying based on your MX records. dnl NOTE: This can allow sites to use your server as a backup MX without dnl your permission. Modified: head/share/man/man8/rc.sendmail.8 ============================================================================== --- head/share/man/man8/rc.sendmail.8 Sat Oct 19 18:13:32 2013 (r256772) +++ head/share/man/man8/rc.sendmail.8 Sat Oct 19 18:51:06 2013 (r256773) @@ -26,7 +26,7 @@ .\" .\" $FreeBSD$ .\" -.Dd March 30, 2002 +.Dd October 19, 2013 .Dt RC.SENDMAIL 8 .Os .Sh NAME @@ -119,6 +119,42 @@ The .Dq Li NONE option is deprecated and should not be used. It will be removed in a future release. +.It Va sendmail_cert_create +.Pq Vt str +If +.Va sendmail_enable +is set to +.Dq Li YES , +create a signed certificate +.Pa /etc/mail/certs/host.cert +representing +.Pa /etc/mail/certs/host.key +by the CA certificate in +.Pa /etc/mail/certs/cacert.pem . +This will enable connecting hosts to negotiate STARTTLS allowing incoming +email to be encrypted in transit. +.Xr sendmail 8 +needs to be configured to use these generated files. +The default configuration in +.Pa /etc/mail/freebsd.mc +has the required options in it. +.It Va sendmail_cert_cn +.Pq Vt str +If +.Va sendmail_enable +is set to +.Dq Li YES +and +.Va sendmail_cert_create +is set to +.Dq Li YES , +this is the Common Name (CN) of the certificate that will be created. +If +.Va sendmail_cert_cn +is not set, the system's hostname will be used. +If there is no hostname set, +.Dq Li amnesiac +will be used. .It Va sendmail_flags .Pq Vt str If From owner-svn-src-all@FreeBSD.ORG Sat Oct 19 20:05:00 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 3DBF08ED for ; Sat, 19 Oct 2013 20:05:00 +0000 (UTC) (envelope-from bounces+73574-8822-svn-src-all=freebsd.org@sendgrid.me) Received: from o3.shared.sendgrid.net (o3.shared.sendgrid.net [208.117.48.85]) by mx1.freebsd.org (Postfix) with SMTP id E04252E18 for ; Sat, 19 Oct 2013 20:04:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sendgrid.info; h=from:mime-version:to:subject:references:in-reply-to:content-type:content-transfer-encoding; s=smtpapi; bh=Ed5acG6aEQi7C3Qm8jaJETrnr6g=; b=j/RjlySAC0O+Qeo7ER H7beiqfbY9ITG/zoYkZFlwn4mEPm8L3VMXh7CDUQf4jMwNsh+IM9ioyexGYGh0Du R549/NRaoy9R//zn0Wj8ufovkUfCzTESbdQ05MluaWmHfF1XpXmUli4WpvtRr8TL zdtaO5RMwKGGta3Rb9mREEVQk= Received: by mf33.sendgrid.net with SMTP id mf33.4240.5262E5EA4 Sat, 19 Oct 2013 20:04:58 +0000 (GMT) Received: from mail.tarsnap.com (unknown [10.60.208.15]) by mi14 (SG) with ESMTP id 141d2521cc7.371e.1879ac0 for ; Sat, 19 Oct 2013 20:04:58 +0000 (UTC) Received: (qmail 28902 invoked from network); 19 Oct 2013 20:04:57 -0000 Received: from unknown (HELO clamshell.daemonology.net) (127.0.0.1) by ec2-107-20-205-189.compute-1.amazonaws.com with ESMTP; 19 Oct 2013 20:04:57 -0000 Received: (qmail 33584 invoked from network); 19 Oct 2013 20:03:51 -0000 Received: from unknown (HELO clamshell.daemonology.net) (127.0.0.1) by clamshell.daemonology.net with SMTP; 19 Oct 2013 20:03:51 -0000 Message-ID: <5262E5A7.5020608@freebsd.org> Date: Sat, 19 Oct 2013 13:03:51 -0700 From: Colin Percival User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:24.0) Gecko/20100101 Thunderbird/24.0 MIME-Version: 1.0 To: =?UTF-8?B?RGFnLUVybGluZyBTbcO4cmdyYXY=?= , src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r256767 - head/usr.sbin/freebsd-update References: <201310190940.r9J9eUiT027701@svn.freebsd.org> In-Reply-To: <201310190940.r9J9eUiT027701@svn.freebsd.org> X-Enigmail-Version: 1.5.2 Content-Type: text/plain; charset=UTF-8 content-transfer-encoding: quoted-printable X-SG-EID: A6W2xSVPHetogaU8rnzccWwgBYtN+QvIzXyjfe/10PEive1M8EcFmoBH6jjQFbTydVJdgCKJH3Z0J4V3dg1PssbC4+HfjuFeIWqY9dE+nw7xYmZNHCtpCc7hqUzuoQWC2mWO4BN8ToOTm6a6Y2EOO11X0GvC7C8rp9EWIesqfww= X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 19 Oct 2013 20:05:00 -0000 On 10/19/13 02:40, Dag-Erling Sm=C3=B8rgrav wrote:=0D > - P=3D"[-+./:=3D%@_[[:alnum:]]"=0D > + P=3D"[-+./:=3D%@_[~[:alnum:]]"=0D =0D Shouldn't this be=0D P=3D"[-+./:=3D%@_~[[:alnum:]]"=0D instead?=0D =0D -- =0D Colin Percival=0D Security Officer Emeritus, FreeBSD | The power to serve=0D Founder, Tarsnap | www.tarsnap.com | Online backups for the truly paranoid From owner-svn-src-all@FreeBSD.ORG Sat Oct 19 20:11:39 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id CB825A6E; Sat, 19 Oct 2013 20:11:39 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-qe0-x22f.google.com (mail-qe0-x22f.google.com [IPv6:2607:f8b0:400d:c02::22f]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 54BB72E68; Sat, 19 Oct 2013 20:11:39 +0000 (UTC) Received: by mail-qe0-f47.google.com with SMTP id b4so2830908qen.20 for ; Sat, 19 Oct 2013 13:11:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=OrFUTupacEYVK5xhalBon/tVYsoX2YZBVhMxLQ/ruOI=; b=y2thGrfbJWknX03c//J5y3XIL5PkOd4YlsnKRfu2kk7SLaRVkAVRukBXY/co/5MhIZ 2fq4J2E4G1FF5hw6ubENvSHp5/1Jock4iY2W9vJmPMAtt3/aoa+2dmNBCdliFtbun28W +3Fqv/SsAj9IttOdOxfT51Hhx1yHEJ+n1hLlKXOjjq++xtQ5oTlPIgI/lDZkYmti8Lcd v/YNXv9nI4VvjrmFMOP4+4X7QmtxrFiMZu9p7gyEo3tWaVE/fWZWFL3i4zKuvAq3lOGz Hi3gs69Y3QAxBWDy6UNzg6zQWYOuEWkOC7a1wOtEGxZlQkD6pNv2gp00SR4EX571l7ZT Mowg== MIME-Version: 1.0 X-Received: by 10.224.36.201 with SMTP id u9mr13180903qad.76.1382213498477; Sat, 19 Oct 2013 13:11:38 -0700 (PDT) Sender: adrian.chadd@gmail.com Received: by 10.224.207.66 with HTTP; Sat, 19 Oct 2013 13:11:38 -0700 (PDT) In-Reply-To: <201310190959.r9J9xBI1036988@svn.freebsd.org> References: <201310190959.r9J9xBI1036988@svn.freebsd.org> Date: Sat, 19 Oct 2013 13:11:38 -0700 X-Google-Sender-Auth: 6h_Jk1eoVx8RjOI37wcRO3cw1No Message-ID: Subject: Re: svn commit: r256768 - head/sbin/ifconfig From: Adrian Chadd To: =?ISO-8859-1?Q?Dag=2DErling_Sm=F8rgrav?= Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.14 Cc: "svn-src-head@freebsd.org" , "svn-src-all@freebsd.org" , "src-committers@freebsd.org" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 19 Oct 2013 20:11:39 -0000 ... erm, this could break many existing scripts that stupidly(!) just try adding an interface to a group to see if it's already there. Is the ifconfig error behavour in this instance documented anywhere? -adrian On 19 October 2013 02:59, Dag-Erling Sm=F8rgrav wrote: > Author: des > Date: Sat Oct 19 09:59:11 2013 > New Revision: 256768 > URL: http://svnweb.freebsd.org/changeset/base/256768 > > Log: > Do not error out when adding an interface to a group to which it > already belongs or removing it from a group to which it does not > belong. This makes it possible to include group memberships in > ifconfig_foo0 in rc.conf without fear of breaking "service netif > restart foo0". > > MFC after: 3 days > > Modified: > head/sbin/ifconfig/ifgroup.c > > Modified: head/sbin/ifconfig/ifgroup.c > > =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=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sbin/ifconfig/ifgroup.c Sat Oct 19 09:40:29 2013 > (r256767) > +++ head/sbin/ifconfig/ifgroup.c Sat Oct 19 09:59:11 2013 > (r256768) > @@ -57,7 +57,7 @@ setifgroup(const char *group_name, int d > > if (strlcpy(ifgr.ifgr_group, group_name, IFNAMSIZ) >=3D IFNAMSIZ) > errx(1, "setifgroup: group name too long"); > - if (ioctl(s, SIOCAIFGROUP, (caddr_t)&ifgr) =3D=3D -1) > + if (ioctl(s, SIOCAIFGROUP, (caddr_t)&ifgr) =3D=3D -1 && errno != =3D > EEXIST) > err(1," SIOCAIFGROUP"); > } > > @@ -75,7 +75,7 @@ unsetifgroup(const char *group_name, int > > if (strlcpy(ifgr.ifgr_group, group_name, IFNAMSIZ) >=3D IFNAMSIZ) > errx(1, "unsetifgroup: group name too long"); > - if (ioctl(s, SIOCDIFGROUP, (caddr_t)&ifgr) =3D=3D -1) > + if (ioctl(s, SIOCDIFGROUP, (caddr_t)&ifgr) =3D=3D -1 && errno != =3D > ENOENT) > err(1, "SIOCDIFGROUP"); > } > > From owner-svn-src-all@FreeBSD.ORG Sat Oct 19 21:33:07 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 334BDCE5; Sat, 19 Oct 2013 21:33:07 +0000 (UTC) (envelope-from ian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 201F6224F; Sat, 19 Oct 2013 21:33:07 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9JLX6Wn010959; Sat, 19 Oct 2013 21:33:06 GMT (envelope-from ian@svn.freebsd.org) Received: (from ian@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9JLX6JN010958; Sat, 19 Oct 2013 21:33:06 GMT (envelope-from ian@svn.freebsd.org) Message-Id: <201310192133.r9JLX6JN010958@svn.freebsd.org> From: Ian Lepore Date: Sat, 19 Oct 2013 21:33:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256774 - head/sys/arm/freescale/imx X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 19 Oct 2013 21:33:07 -0000 Author: ian Date: Sat Oct 19 21:33:06 2013 New Revision: 256774 URL: http://svnweb.freebsd.org/changeset/base/256774 Log: Clock divisors 0-3 correspond to dividing by 1-4, so add 1 before dividing. Modified: head/sys/arm/freescale/imx/imx51_ccm.c Modified: head/sys/arm/freescale/imx/imx51_ccm.c ============================================================================== --- head/sys/arm/freescale/imx/imx51_ccm.c Sat Oct 19 18:51:06 2013 (r256773) +++ head/sys/arm/freescale/imx/imx51_ccm.c Sat Oct 19 21:33:06 2013 (r256774) @@ -278,8 +278,8 @@ imx51_get_clock(enum imx51_clock clk) case IMX51CLK_MAIN_BUS_CLK: freq = imx51_get_clock(IMX51CLK_MAIN_BUS_CLK_SRC); cdcr = bus_read_4(ccm_softc->res[0], CCMC_CDCR); - return freq / (cdcr & CDCR_PERIPH_CLK_DVFS_PODF_MASK) >> - CDCR_PERIPH_CLK_DVFS_PODF_SHIFT; + return freq / (1 + ((cdcr & CDCR_PERIPH_CLK_DVFS_PODF_MASK) >> + CDCR_PERIPH_CLK_DVFS_PODF_SHIFT)); case IMX51CLK_AHB_CLK_ROOT: freq = imx51_get_clock(IMX51CLK_MAIN_BUS_CLK); cbcdr = bus_read_4(ccm_softc->res[0], CCMC_CBCDR); From owner-svn-src-all@FreeBSD.ORG Sat Oct 19 21:37:08 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id E6FAE9A; Sat, 19 Oct 2013 21:37:07 +0000 (UTC) (envelope-from cperciva@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D30712267; Sat, 19 Oct 2013 21:37:07 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9JLb7LJ012318; Sat, 19 Oct 2013 21:37:07 GMT (envelope-from cperciva@svn.freebsd.org) Received: (from cperciva@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9JLb73W012314; Sat, 19 Oct 2013 21:37:07 GMT (envelope-from cperciva@svn.freebsd.org) Message-Id: <201310192137.r9JLb73W012314@svn.freebsd.org> From: Colin Percival Date: Sat, 19 Oct 2013 21:37:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256775 - in head: etc etc/defaults share/man/man5 share/man/man8 X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 19 Oct 2013 21:37:08 -0000 Author: cperciva Date: Sat Oct 19 21:37:06 2013 New Revision: 256775 URL: http://svnweb.freebsd.org/changeset/base/256775 Log: Add support for "first boot" rc.d scripts. [1] These scripts, containing # KEYWORD: firstboot will only be run if a sentinel file (default: /firstboot, configurable via the rc.conf ${firstboot_sentinel} variable) exists; this sentinel file will be deleted at the end of the boot process. Scripts can request that the system reboot after the first boot by creating the file ${firstboot_sentinel}-reboot. This functionality is expected to be useful for embedded systems and virtual machine images, where it may be desirable to (a) download and install updates which became available between when the image was created and when it was "turned on"; (b) download and install packages which may be newer than those which were available when the image was created; (c) install packages which run binaries during their install process, bypassing the problem of cross-architecture installs; (d) resize filesystems to match the disk onto which a VM image was installed; (e) perform initialization tasks relevant to cloud systems (e.g., Amazon's Elastic Compute Cloud); and likely to perform many other one-time initialization functions. Document this new functionality in rc.conf(5) and rc(8). [2] Reviewed by: freebsd-current, freebsd-rc [1] Reviewed by: Warren Block [2] MFC after: 3 days Modified: head/etc/defaults/rc.conf head/etc/rc head/share/man/man5/rc.conf.5 head/share/man/man8/rc.8 Modified: head/etc/defaults/rc.conf ============================================================================== --- head/etc/defaults/rc.conf Sat Oct 19 21:33:06 2013 (r256774) +++ head/etc/defaults/rc.conf Sat Oct 19 21:37:06 2013 (r256775) @@ -621,6 +621,9 @@ quotacheck_flags="-a" # Check all file s accounting_enable="NO" # Turn on process accounting (or NO). ibcs2_enable="NO" # Ibcs2 (SCO) emulation loaded at startup (or NO). ibcs2_loaders="coff" # List of additional Ibcs2 loaders (or NO). +firstboot_sentinel="/firstboot" # Scripts with "firstboot" keyword are run if + # this file exists. Should be on a R/W filesystem so + # the file can be deleted after the boot completes. # Emulation/compatibility services provided by /etc/rc.d/abi sysvipc_enable="NO" # Load System V IPC primitives at startup (or NO). Modified: head/etc/rc ============================================================================== --- head/etc/rc Sat Oct 19 21:33:06 2013 (r256774) +++ head/etc/rc Sat Oct 19 21:37:06 2013 (r256775) @@ -82,10 +82,15 @@ if [ `/sbin/sysctl -n security.jail.jail fi fi +# If the firstboot sentinel doesn't exist, we want to skip firstboot scripts. +if ! [ -e ${firstboot_sentinel} ]; then + skip_firstboot="-s firstboot" +fi + # Do a first pass to get everything up to $early_late_divider so that # we can do a second pass that includes $local_startup directories # -files=`rcorder ${skip} /etc/rc.d/* 2>/dev/null` +files=`rcorder ${skip} ${skip_firstboot} /etc/rc.d/* 2>/dev/null` _rc_elem_done=' ' for _rc_elem in ${files}; do @@ -107,7 +112,13 @@ case ${local_startup} in *) find_local_scripts_new ;; esac -files=`rcorder ${skip} /etc/rc.d/* ${local_rc} 2>/dev/null` +# The firstboot sentinel might be on a newly mounted filesystem; look for it +# again and unset skip_firstboot if we find it. +if [ -e ${firstboot_sentinel} ]; then + skip_firstboot="" +fi + +files=`rcorder ${skip} ${skip_firstboot} /etc/rc.d/* ${local_rc} 2>/dev/null` for _rc_elem in ${files}; do case "$_rc_elem_done" in *" $_rc_elem "*) continue ;; @@ -116,6 +127,15 @@ for _rc_elem in ${files}; do run_rc_script ${_rc_elem} ${_boot} done +# Remove the firstboot sentinel, and reboot if it was requested. +if [ -e ${firstboot_sentinel} ]; then + rm ${firstboot_sentinel} + if [ -e ${firstboot_sentinel}-reboot ]; then + rm ${firstboot_sentinel}-reboot + kill -INT 1 + fi +fi + echo '' date exit 0 Modified: head/share/man/man5/rc.conf.5 ============================================================================== --- head/share/man/man5/rc.conf.5 Sat Oct 19 21:33:06 2013 (r256774) +++ head/share/man/man5/rc.conf.5 Sat Oct 19 21:37:06 2013 (r256775) @@ -24,7 +24,7 @@ .\" .\" $FreeBSD$ .\" -.Dd October 12, 2013 +.Dd October 19, 2013 .Dt RC.CONF 5 .Os .Sh NAME @@ -3675,6 +3675,23 @@ and if is set to .Dq Li YES , this specifies a list of additional iBCS2 loaders to enable. +.It Va firstboot_sentinel +.Pq Vt str +This variable specifies the full path to a +.Dq first boot +sentinel file. +If a file exists with this path, +.Pa rc.d +scripts with the +.Dq firstboot +keyword will be run on startup and the sentinel file will be deleted +after the boot process completes. +The sentinel file must be located on a writable file system which is +mounted no later than +.Va early_late_divider +to function properly. +The default is +.Pa /firstboot . .It Va linux_enable .Pq Vt bool Set to Modified: head/share/man/man8/rc.8 ============================================================================== --- head/share/man/man8/rc.8 Sat Oct 19 21:33:06 2013 (r256774) +++ head/share/man/man8/rc.8 Sat Oct 19 21:37:06 2013 (r256775) @@ -35,7 +35,7 @@ .\" @(#)rc.8 8.2 (Berkeley) 12/11/93 .\" $FreeBSD$ .\" -.Dd September 23, 2013 +.Dd October 19, 2013 .Dt RC 8 .Os .Sh NAME @@ -129,6 +129,13 @@ and add (only allow vnet-enabled jails) to the list of KEYWORDS to skip in .Xr rcorder 8 . .It +If the file +.Va ${firstboot_sentinel} +does not exist, add +.Dq Li firstboot +to the list of KEYWORDS to skip in +.Xr rcorder 8 . +.It Invoke .Xr rcorder 8 to order the files in @@ -156,6 +163,11 @@ Stop processing when the script that is .Va $early_late_divider has been run. .It +Check again to see if the file +.Va ${firstboot_sentinel} +exists (in case it is located on a newly mounted file system) +and adjust the list of KEYWORDs to skip appropriately. +.It Re-run .Xr rcorder 8 , this time including the scripts in the @@ -164,6 +176,13 @@ directories. Ignore everything up to the .Va $early_late_divider , then start executing the scripts as described above. +.It +If the file +.Va ${firstboot_sentinel} +exists, delete it. +If the file +.Va ${firstboot_sentinel}-reboot +also exists (because it was created by a script), then delete it and reboot. .El .Ss Operation of Nm rc.shutdown .Bl -enum From owner-svn-src-all@FreeBSD.ORG Sat Oct 19 21:53:37 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 27FBF72F; Sat, 19 Oct 2013 21:53:37 +0000 (UTC) (envelope-from jilles@stack.nl) Received: from mx1.stack.nl (relay02.stack.nl [IPv6:2001:610:1108:5010::104]) (using TLSv1 with cipher ADH-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D6C42234E; Sat, 19 Oct 2013 21:53:36 +0000 (UTC) Received: from turtle.stack.nl (turtle.stack.nl [IPv6:2001:610:1108:5010::132]) by mx1.stack.nl (Postfix) with ESMTP id 0C0013592DA; Sat, 19 Oct 2013 23:53:34 +0200 (CEST) Received: by turtle.stack.nl (Postfix, from userid 1677) id C7B2ACB4E; Sat, 19 Oct 2013 23:53:33 +0200 (CEST) Date: Sat, 19 Oct 2013 23:53:33 +0200 From: Jilles Tjoelker To: Colin Percival Subject: Re: svn commit: r256767 - head/usr.sbin/freebsd-update Message-ID: <20131019215333.GA1489@stack.nl> References: <201310190940.r9J9eUiT027701@svn.freebsd.org> <5262E5A7.5020608@freebsd.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <5262E5A7.5020608@freebsd.org> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, Dag-Erling =?iso-8859-1?Q?Sm=F8rgrav?= X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 19 Oct 2013 21:53:37 -0000 On Sat, Oct 19, 2013 at 01:03:51PM -0700, Colin Percival wrote: > On 10/19/13 02:40, Dag-Erling Smørgrav wrote: > > - P="[-+./:=%@_[[:alnum:]]" > > + P="[-+./:=%@_[~[:alnum:]]" > Shouldn't this be > P="[-+./:=%@_~[[:alnum:]]" > instead? That is equivalent. Both versions match an open square bracket in addition to the other characters. [:class:] can be used within [...] to match a named character class. Although it is common to see [[:class:]] in an RE or shell pattern, the sequences '[[' and ']]' are not required. -- Jilles Tjoelker From owner-svn-src-all@FreeBSD.ORG Sat Oct 19 21:55:42 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id EC64CA1E; Sat, 19 Oct 2013 21:55:42 +0000 (UTC) (envelope-from cperciva@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id D9B312359; Sat, 19 Oct 2013 21:55:42 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r9JLtgNE023118; Sat, 19 Oct 2013 21:55:42 GMT (envelope-from cperciva@svn.freebsd.org) Received: (from cperciva@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r9JLtgJH023117; Sat, 19 Oct 2013 21:55:42 GMT (envelope-from cperciva@svn.freebsd.org) Message-Id: <201310192155.r9JLtgJH023117@svn.freebsd.org> From: Colin Percival Date: Sat, 19 Oct 2013 21:55:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r256776 - head/sys/sys X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 19 Oct 2013 21:55:43 -0000 Author: cperciva Date: Sat Oct 19 21:55:42 2013 New Revision: 256776 URL: http://svnweb.freebsd.org/changeset/base/256776 Log: Bump __FreeBSD_version to 1100001 for addition of support for "first boot" rc.d scripts, so that ports can make use of this. Modified: head/sys/sys/param.h Modified: head/sys/sys/param.h ============================================================================== --- head/sys/sys/param.h Sat Oct 19 21:37:06 2013 (r256775) +++ head/sys/sys/param.h Sat Oct 19 21:55:42 2013 (r256776) @@ -58,7 +58,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1100000 /* Master, propagated to newvers */ +#define __FreeBSD_version 1100001 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, From owner-svn-src-all@FreeBSD.ORG Sat Oct 19 21:58:15 2013 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id BB0F1B78 for ; Sat, 19 Oct 2013 21:58:15 +0000 (UTC) (envelope-from bounces+73574-8822-svn-src-all=freebsd.org@sendgrid.me) Received: from o3.shared.sendgrid.net (o3.shared.sendgrid.net [208.117.48.85]) by mx1.freebsd.org (Postfix) with SMTP id 6882E236D for ; Sat, 19 Oct 2013 21:58:15 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sendgrid.info; h=from:mime-version:to:cc:subject:references:in-reply-to:content-type:content-transfer-encoding; s=smtpapi; bh=NsWhW+7iw4GGluA8NZWaYvW4x6I=; b=XCVw5KtVq2H9FfOR3x QRh6ntzEPwkxjNztJoG3R5chV2VgAmiw/0jHce+2rNgrmjIz625xLMJR/Q+6/ZNF C7l+jmuoaMJO+piXpeu64FZPl2Yxxyten38nkAaVSXh4gIqmLIppFwg4UzM5RV2r 8ECk1WEim6/Llz0qaCBiS2/20= Received: by mf70.sendgrid.net with SMTP id mf70.25061.526300762 Sat, 19 Oct 2013 21:58:14 +0000 (GMT) Received: from mail.tarsnap.com (unknown [10.60.208.15]) by mi18 (SG) with ESMTP id 141d2b9cd67.e98.1845ba1 for ; Sat, 19 Oct 2013 21:58:14 +0000 (UTC) Received: (qmail 32260 invoked from network); 19 Oct 2013 21:58:13 -0000 Received: from unknown (HELO clamshell.daemonology.net) (127.0.0.1) by ec2-107-20-205-189.compute-1.amazonaws.com with ESMTP; 19 Oct 2013 21:58:13 -0000 Received: (qmail 34175 invoked from network); 19 Oct 2013 21:57:06 -0000 Received: from unknown (HELO clamshell.daemonology.net) (127.0.0.1) by clamshell.daemonology.net with SMTP; 19 Oct 2013 21:57:06 -0000 Message-ID: <52630031.4080205@freebsd.org> Date: Sat, 19 Oct 2013 14:57:05 -0700 From: Colin Percival User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:24.0) Gecko/20100101 Thunderbird/24.0 MIME-Version: 1.0 To: Jilles Tjoelker Subject: Re: svn commit: r256767 - head/usr.sbin/freebsd-update References: <201310190940.r9J9eUiT027701@svn.freebsd.org> <5262E5A7.5020608@freebsd.org> <20131019215333.GA1489@stack.nl> In-Reply-To: <20131019215333.GA1489@stack.nl> X-Enigmail-Version: 1.5.2 Content-Type: text/plain; charset=ISO-8859-1 content-transfer-encoding: quoted-printable X-SG-EID: A6W2xSVPHetogaU8rnzccWwgBYtN+QvIzXyjfe/10PFPyhixvneLjUgPFmwwifsaM0rvx8h7VPp9ghHlXkmmTvXHAFl+I3/PJZRvE48XUVZwXJ9fPFVAdhGpDj+0acy/BwhV52K+6SqhlRYDBP2fc3zABvwzL2ioV/j4G8IO9RQ= Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, =?ISO-8859-1?Q?Dag-Erling_Sm=F8rgrav?= X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages 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, 19 Oct 2013 21:58:15 -0000 On 10/19/13 14:53, Jilles Tjoelker wrote:=0D > On Sat, Oct 19, 2013 at 01:03:51PM -0700, Colin Percival wrote:=0D >> On 10/19/13 02:40, Dag-Erling Sm=F8rgrav wrote:=0D >>> - P=3D"[-+./:=3D%@_[[:alnum:]]"=0D >>> + P=3D"[-+./:=3D%@_[~[:alnum:]]"=0D > =0D >> Shouldn't this be=0D >> P=3D"[-+./:=3D%@_~[[:alnum:]]"=0D >> instead?=0D > =0D > That is equivalent. Both versions match an open square bracket in=0D > addition to the other characters.=0D =0D Duh. I hadn't fully woken up yet and my brain mis-matched the brackets.=0D =0D Sorry for the noise...=0D =0D -- =0D Colin Percival=0D Security Officer Emeritus, FreeBSD | The power to serve=0D Founder, Tarsnap | www.tarsnap.com | Online backups for the truly paranoid