From owner-svn-src-stable@freebsd.org  Sun Jul  2 03:34:50 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7AEEDD9B9E3;
 Sun,  2 Jul 2017 03:34:50 +0000 (UTC)
 (envelope-from araujo@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 43F5D7DAF5;
 Sun,  2 Jul 2017 03:34:50 +0000 (UTC)
 (envelope-from araujo@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v623YnH4074984;
 Sun, 2 Jul 2017 03:34:49 GMT (envelope-from araujo@FreeBSD.org)
Received: (from araujo@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v623Yns3074983;
 Sun, 2 Jul 2017 03:34:49 GMT (envelope-from araujo@FreeBSD.org)
Message-Id: <201707020334.v623Yns3074983@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: araujo set sender to
 araujo@FreeBSD.org using -f
From: Marcelo Araujo <araujo@FreeBSD.org>
Date: Sun, 2 Jul 2017 03:34:49 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320562 - stable/11
X-SVN-Group: stable-11
X-SVN-Commit-Author: araujo
X-SVN-Commit-Paths: stable/11
X-SVN-Commit-Revision: 320562
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 02 Jul 2017 03:34:50 -0000

Author: araujo
Date: Sun Jul  2 03:34:49 2017
New Revision: 320562
URL: https://svnweb.freebsd.org/changeset/base/320562

Log:
  MFC r320390:
  
  With r318394 seems it breaks gpart(8) in some embedded systems such like PCEngines,
  RPI1-B, Alix and APU2 boards as well as NanoBSD with the following message:
  
  vnode_pager_generic_getpages_done: I/O read error 5
  
  Seems the breakage was because it was missed to include acr in glabel update.
  
  Reported by:	Peter Blok <pblok@bsd4all.org>,
  		madpilot, imp and trasz.
  Reviewed by:	trasz
  Tested by:	Peter Blok and madpilot.
  Sponsored by:	iXsystems, Inc.
  Differential Revision:	https://reviews.freebsd.org/D11365

Modified:
Directory Properties:
  stable/11/   (props changed)

From owner-svn-src-stable@freebsd.org  Sun Jul  2 03:43:26 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 25001D9BE5E;
 Sun,  2 Jul 2017 03:43:26 +0000 (UTC)
 (envelope-from araujo@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id C9D537E172;
 Sun,  2 Jul 2017 03:43:25 +0000 (UTC)
 (envelope-from araujo@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v623hOuU079048;
 Sun, 2 Jul 2017 03:43:24 GMT (envelope-from araujo@FreeBSD.org)
Received: (from araujo@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v623hOwn079047;
 Sun, 2 Jul 2017 03:43:24 GMT (envelope-from araujo@FreeBSD.org)
Message-Id: <201707020343.v623hOwn079047@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: araujo set sender to
 araujo@FreeBSD.org using -f
From: Marcelo Araujo <araujo@FreeBSD.org>
Date: Sun, 2 Jul 2017 03:43:24 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320563 - stable/11
X-SVN-Group: stable-11
X-SVN-Commit-Author: araujo
X-SVN-Commit-Paths: stable/11
X-SVN-Commit-Revision: 320563
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 02 Jul 2017 03:43:26 -0000

Author: araujo
Date: Sun Jul  2 03:43:24 2017
New Revision: 320563
URL: https://svnweb.freebsd.org/changeset/base/320563

Log:
  Revert bad merge r320390, sorry for the noisy.

Modified:
Directory Properties:
  stable/11/   (props changed)

From owner-svn-src-stable@freebsd.org  Sun Jul  2 03:47:57 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id C8743D9BF05;
 Sun,  2 Jul 2017 03:47:57 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 8FB767E2B9;
 Sun,  2 Jul 2017 03:47:57 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v623lur0079272;
 Sun, 2 Jul 2017 03:47:56 GMT (envelope-from kib@FreeBSD.org)
Received: (from kib@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v623luAA079271;
 Sun, 2 Jul 2017 03:47:56 GMT (envelope-from kib@FreeBSD.org)
Message-Id: <201707020347.v623luAA079271@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org
 using -f
From: Konstantin Belousov <kib@FreeBSD.org>
Date: Sun, 2 Jul 2017 03:47:56 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320564 - stable/11/sys/vm
X-SVN-Group: stable-11
X-SVN-Commit-Author: kib
X-SVN-Commit-Paths: stable/11/sys/vm
X-SVN-Commit-Revision: 320564
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 02 Jul 2017 03:47:57 -0000

Author: kib
Date: Sun Jul  2 03:47:56 2017
New Revision: 320564
URL: https://svnweb.freebsd.org/changeset/base/320564

Log:
  MFC r320332:
  Style.

Modified:
  stable/11/sys/vm/vm_map.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/vm/vm_map.c
==============================================================================
--- stable/11/sys/vm/vm_map.c	Sun Jul  2 03:43:24 2017	(r320563)
+++ stable/11/sys/vm/vm_map.c	Sun Jul  2 03:47:56 2017	(r320564)
@@ -2691,9 +2691,9 @@ vm_map_wire(vm_map_t map, vm_offset_t start, vm_offset
 		 * If VM_MAP_WIRE_HOLESOK was specified, skip this check.
 		 */
 	next_entry:
-		if (((flags & VM_MAP_WIRE_HOLESOK) == 0) &&
-		    (entry->end < end && (entry->next == &map->header ||
-		    entry->next->start > entry->end))) {
+		if ((flags & VM_MAP_WIRE_HOLESOK) == 0 &&
+		    entry->end < end && (entry->next == &map->header ||
+		    entry->next->start > entry->end)) {
 			end = entry->end;
 			rv = KERN_INVALID_ADDRESS;
 			goto done;

From owner-svn-src-stable@freebsd.org  Sun Jul  2 03:50:23 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 73010D9BFA3;
 Sun,  2 Jul 2017 03:50:23 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 324BA7E409;
 Sun,  2 Jul 2017 03:50:23 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v623oMnj079425;
 Sun, 2 Jul 2017 03:50:22 GMT (envelope-from kib@FreeBSD.org)
Received: (from kib@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v623oM2j079424;
 Sun, 2 Jul 2017 03:50:22 GMT (envelope-from kib@FreeBSD.org)
Message-Id: <201707020350.v623oM2j079424@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org
 using -f
From: Konstantin Belousov <kib@FreeBSD.org>
Date: Sun, 2 Jul 2017 03:50:22 +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: r320565 - stable/10/sys/vm
X-SVN-Group: stable-10
X-SVN-Commit-Author: kib
X-SVN-Commit-Paths: stable/10/sys/vm
X-SVN-Commit-Revision: 320565
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 02 Jul 2017 03:50:23 -0000

Author: kib
Date: Sun Jul  2 03:50:22 2017
New Revision: 320565
URL: https://svnweb.freebsd.org/changeset/base/320565

Log:
  MFC r320332:
  Style.

Modified:
  stable/10/sys/vm/vm_map.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/vm/vm_map.c
==============================================================================
--- stable/10/sys/vm/vm_map.c	Sun Jul  2 03:47:56 2017	(r320564)
+++ stable/10/sys/vm/vm_map.c	Sun Jul  2 03:50:22 2017	(r320565)
@@ -2637,9 +2637,9 @@ vm_map_wire(vm_map_t map, vm_offset_t start, vm_offset
 		 * If VM_MAP_WIRE_HOLESOK was specified, skip this check.
 		 */
 	next_entry:
-		if (((flags & VM_MAP_WIRE_HOLESOK) == 0) &&
-		    (entry->end < end && (entry->next == &map->header ||
-		    entry->next->start > entry->end))) {
+		if ((flags & VM_MAP_WIRE_HOLESOK) == 0 &&
+		    entry->end < end && (entry->next == &map->header ||
+		    entry->next->start > entry->end)) {
 			end = entry->end;
 			rv = KERN_INVALID_ADDRESS;
 			goto done;

From owner-svn-src-stable@freebsd.org  Sun Jul  2 04:09:06 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id C0349D9C3C2;
 Sun,  2 Jul 2017 04:09:06 +0000 (UTC)
 (envelope-from araujo@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 8A6417EAFD;
 Sun,  2 Jul 2017 04:09:06 +0000 (UTC)
 (envelope-from araujo@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v62495lK087523;
 Sun, 2 Jul 2017 04:09:05 GMT (envelope-from araujo@FreeBSD.org)
Received: (from araujo@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v62495Pm087522;
 Sun, 2 Jul 2017 04:09:05 GMT (envelope-from araujo@FreeBSD.org)
Message-Id: <201707020409.v62495Pm087522@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: araujo set sender to
 araujo@FreeBSD.org using -f
From: Marcelo Araujo <araujo@FreeBSD.org>
Date: Sun, 2 Jul 2017 04:09:05 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320566 - stable/11/sys/geom/part
X-SVN-Group: stable-11
X-SVN-Commit-Author: araujo
X-SVN-Commit-Paths: stable/11/sys/geom/part
X-SVN-Commit-Revision: 320566
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 02 Jul 2017 04:09:06 -0000

Author: araujo
Date: Sun Jul  2 04:09:05 2017
New Revision: 320566
URL: https://svnweb.freebsd.org/changeset/base/320566

Log:
  MFC r320390:
  
  With r318394 seems it breaks gpart(8) in some embedded systems such like PCEngines,
  RPI1-B, Alix and APU2 boards as well as NanoBSD with the following message:
  
  vnode_pager_generic_getpages_done: I/O read error 5
  
  Seems the breakage was because it was missed to include acr in glabel update.
  
  Reported by:	Peter Blok <pblok@bsd4all.org>,
  		madpilot, imp and trasz.
  Reviewed by:	trasz
  Tested by:	Peter Blok and madpilot.
  Sponsored by:	iXsystems, Inc.
  Differential Revision:	https://reviews.freebsd.org/D11365

Modified:
  stable/11/sys/geom/part/g_part.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/geom/part/g_part.c
==============================================================================
--- stable/11/sys/geom/part/g_part.c	Sun Jul  2 03:50:22 2017	(r320565)
+++ stable/11/sys/geom/part/g_part.c	Sun Jul  2 04:09:05 2017	(r320566)
@@ -886,7 +886,8 @@ g_part_ctl_commit(struct gctl_req *req, struct g_part_
 		if (!entry->gpe_deleted) {
 			/* Notify consumers that provider might be changed. */
 			if (entry->gpe_modified && (
-			    entry->gpe_pp->acw + entry->gpe_pp->ace) == 0)
+			    entry->gpe_pp->acw + entry->gpe_pp->ace +
+			    entry->gpe_pp->acr) == 0)
 				g_media_changed(entry->gpe_pp, M_NOWAIT);
 			entry->gpe_created = 0;
 			entry->gpe_modified = 0;

From owner-svn-src-stable@freebsd.org  Sun Jul  2 04:14:36 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2C164D9C649;
 Sun,  2 Jul 2017 04:14:36 +0000 (UTC)
 (envelope-from araujo@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 0290E7EECB;
 Sun,  2 Jul 2017 04:14:35 +0000 (UTC)
 (envelope-from araujo@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v624EZjW091315;
 Sun, 2 Jul 2017 04:14:35 GMT (envelope-from araujo@FreeBSD.org)
Received: (from araujo@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v624EYvU091310;
 Sun, 2 Jul 2017 04:14:34 GMT (envelope-from araujo@FreeBSD.org)
Message-Id: <201707020414.v624EYvU091310@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: araujo set sender to
 araujo@FreeBSD.org using -f
From: Marcelo Araujo <araujo@FreeBSD.org>
Date: Sun, 2 Jul 2017 04:14:34 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320567 - stable/11/usr.sbin/bhyve
X-SVN-Group: stable-11
X-SVN-Commit-Author: araujo
X-SVN-Commit-Paths: stable/11/usr.sbin/bhyve
X-SVN-Commit-Revision: 320567
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 02 Jul 2017 04:14:36 -0000

Author: araujo
Date: Sun Jul  2 04:14:34 2017
New Revision: 320567
URL: https://svnweb.freebsd.org/changeset/base/320567

Log:
  MFC r319487-r319488, r319682, r319968, r319995
  
  r319487:
  Add VNC Authentication support based on RFC6143 section 7.2.2.
  
  Submitted by:	Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
  Reworked by:	myself
  Reviewed by:	grehan, rgrimes and jilles
  Relnotes:	Yes.
  Sponsored by:	iXsystems, Inc.
  Differential Revision:	https://reviews.freebsd.org/D10818
  
  r319488:
  Bump manpage date.
  
  r319682:
  Make the VNC authentication build with LibreSSL on HardenedBSD and TrueOS.
  
  PR:		219790
  Submitted by:	Shirkdog <mshirk@daemon-security.com>
  Reviewed by:	grehan and rgrimes
  Sponsored by:	iXsystems, Inc.
  Differential Revision:	https://reviews.freebsd.org/D11071
  
  r319968:
  Initialize variables and use byteorder(9) instead of aliasing char array
  buf via uint32_t pointer.
  
  CID:		1375949
  Reported by:	Coverity, cem
  Reviewed by:	cem
  Sponsored by:	iXsystems, Inc.
  Differential Revision:	https://reviews.freebsd.org/D11153
  
  r319995:
  Check if pthread_create(3) successfully created the thread prior to call
  pthread_join(3). The variable tid is not yet initialized in case
  the authentication fails at early stage, that would lead pthread_join be
  called with an uninitialized variable.
  
  CID:		1375950
  Reported by:	Coverity, cem
  Reviewed by:	cem
  Sponsored by:	iXsystems, Inc.
  Differential Revision:	https://reviews.freebsd.org/D11150

Modified:
  stable/11/usr.sbin/bhyve/Makefile
  stable/11/usr.sbin/bhyve/bhyve.8
  stable/11/usr.sbin/bhyve/pci_fbuf.c
  stable/11/usr.sbin/bhyve/rfb.c
  stable/11/usr.sbin/bhyve/rfb.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/usr.sbin/bhyve/Makefile
==============================================================================
--- stable/11/usr.sbin/bhyve/Makefile	Sun Jul  2 04:09:05 2017	(r320566)
+++ stable/11/usr.sbin/bhyve/Makefile	Sun Jul  2 04:14:34 2017	(r320567)
@@ -2,6 +2,8 @@
 # $FreeBSD$
 #
 
+.include <src.opts.mk>
+
 PROG=	bhyve
 PACKAGE=	bhyve
 
@@ -61,6 +63,12 @@ SRCS=	\
 SRCS+=	vmm_instruction_emul.c
 
 LIBADD=	vmmapi md pthread z
+
+.if ${MK_OPENSSL} == "no"
+CFLAGS+=-DNO_OPENSSL
+.else
+LIBADD+=	crypto
+.endif
 
 CFLAGS+= -I${BHYVE_SYSDIR}/sys/dev/e1000
 CFLAGS+= -I${BHYVE_SYSDIR}/sys/dev/mii

Modified: stable/11/usr.sbin/bhyve/bhyve.8
==============================================================================
--- stable/11/usr.sbin/bhyve/bhyve.8	Sun Jul  2 04:09:05 2017	(r320566)
+++ stable/11/usr.sbin/bhyve/bhyve.8	Sun Jul  2 04:14:34 2017	(r320567)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd May 3, 2017
+.Dd June 2, 2017
 .Dt BHYVE 8
 .Os
 .Sh NAME
@@ -309,7 +309,7 @@ Emergency write is advertised, but no-op at present.
 .Pp
 Framebuffer devices:
 .Bl -tag -width 10n
-.It Oo rfb= Ns Oo Ar IP: Oc Ns Ar port Oc Ns Oo ,w= Ns Ar width Oc Ns Oo ,h= Ns Ar height Oc Ns Oo ,vga= Ns Ar vgaconf Oc Ns Oo Ns ,wait Oc
+.It Oo rfb= Ns Oo Ar IP: Oc Ns Ar port Oc Ns Oo ,w= Ns Ar width Oc Ns Oo ,h= Ns Ar height Oc Ns Oo ,vga= Ns Ar vgaconf Oc Ns Oo Ns ,wait Oc Ns Oo ,password= Ns Ar password Oc
 .Bl -tag -width 8n
 .It Ar IP:port
 An
@@ -368,6 +368,11 @@ Instruct
 to only boot upon the initiation of a VNC connection, simplifying the installation
 of operating systems that require immediate keyboard input.
 This can be removed for post-installation use.
+.It password
+This type of authentication is known to be cryptographically weak and is not
+intended for use on untrusted networks.
+Many implementations will want to use stronger security, such as running
+the session over an encrypted channel provided by IPsec or SSH.
 .El
 .El
 .Pp

Modified: stable/11/usr.sbin/bhyve/pci_fbuf.c
==============================================================================
--- stable/11/usr.sbin/bhyve/pci_fbuf.c	Sun Jul  2 04:09:05 2017	(r320566)
+++ stable/11/usr.sbin/bhyve/pci_fbuf.c	Sun Jul  2 04:14:34 2017	(r320567)
@@ -93,6 +93,7 @@ struct pci_fbuf_softc {
 
 	/* rfb server */
 	char      *rfb_host;
+	char      *rfb_password;
 	int       rfb_port;
 	int       rfb_wait;
 	int       vga_enabled;
@@ -285,7 +286,8 @@ pci_fbuf_parse_opts(struct pci_fbuf_softc *sc, char *o
 				goto done;
 			} else if (sc->memregs.height == 0)
 				sc->memregs.height = 1080;
-
+		} else if (!strcmp(xopts, "password")) {
+			sc->rfb_password = config;
 		} else {
 			pci_fbuf_usage(xopts);
 			ret = -1;
@@ -407,7 +409,7 @@ pci_fbuf_init(struct vmctx *ctx, struct pci_devinst *p
 
 	memset((void *)sc->fb_base, 0, FB_SIZE);
 
-	error = rfb_init(sc->rfb_host, sc->rfb_port, sc->rfb_wait);
+	error = rfb_init(sc->rfb_host, sc->rfb_port, sc->rfb_wait, sc->rfb_password);
 done:
 	if (error)
 		free(sc);

Modified: stable/11/usr.sbin/bhyve/rfb.c
==============================================================================
--- stable/11/usr.sbin/bhyve/rfb.c	Sun Jul  2 04:09:05 2017	(r320566)
+++ stable/11/usr.sbin/bhyve/rfb.c	Sun Jul  2 04:14:34 2017	(r320567)
@@ -29,6 +29,7 @@
 __FBSDID("$FreeBSD$");
 
 #include <sys/param.h>
+#include <sys/endian.h>
 #include <sys/socket.h>
 #include <sys/select.h>
 #include <sys/time.h>
@@ -54,10 +55,23 @@ __FBSDID("$FreeBSD$");
 #include "rfb.h"
 #include "sockstream.h"
 
+#ifndef NO_OPENSSL
+#include <openssl/des.h>
+#endif
+
 static int rfb_debug = 0;
 #define	DPRINTF(params) if (rfb_debug) printf params
 #define	WPRINTF(params) printf params
 
+#define AUTH_LENGTH	16
+#define PASSWD_LENGTH	8
+
+#define SECURITY_TYPE_NONE 1
+#define SECURITY_TYPE_VNC_AUTH 2
+
+#define AUTH_FAILED_UNAUTH 1
+#define AUTH_FAILED_ERROR 2
+
 struct rfb_softc {
 	int		sfd;
 	pthread_t	tid;
@@ -66,10 +80,12 @@ struct rfb_softc {
 
 	int		width, height;
 
-	bool		enc_raw_ok;
-	bool		enc_zlib_ok;
-	bool		enc_resize_ok;
+	char		*password;
 
+	bool	enc_raw_ok;
+	bool	enc_zlib_ok;
+	bool	enc_resize_ok;
+
 	z_stream	zstream;
 	uint8_t		*zbuf;
 	int		zbuflen;
@@ -202,7 +218,7 @@ static void
 rfb_send_resize_update_msg(struct rfb_softc *rc, int cfd)
 {
 	struct rfb_srvr_updt_msg supdt_msg;
-        struct rfb_srvr_rect_hdr srect_hdr;
+	struct rfb_srvr_rect_hdr srect_hdr;
 
 	/* Number of rectangles: 1 */
 	supdt_msg.type = 0;
@@ -733,9 +749,21 @@ rfb_handle(struct rfb_softc *rc, int cfd)
 {
 	const char *vbuf = "RFB 003.008\n";
 	unsigned char buf[80];
+	unsigned char *message = NULL;
+
+#ifndef NO_OPENSSL
+	unsigned char challenge[AUTH_LENGTH];
+	unsigned char keystr[PASSWD_LENGTH];
+	unsigned char crypt_expected[AUTH_LENGTH];
+
+	DES_key_schedule ks;
+	int i;
+#endif
+
 	pthread_t tid;
-        uint32_t sres;
+	uint32_t sres = 0;
 	int len;
+	int perror = 1;
 
 	rc->cfd = cfd;
 
@@ -745,19 +773,93 @@ rfb_handle(struct rfb_softc *rc, int cfd)
 	/* 1b. Read client version */
 	len = read(cfd, buf, sizeof(buf));
 
-	/* 2a. Send security type 'none' */
+	/* 2a. Send security type */
 	buf[0] = 1;
-	buf[1] = 1; /* none */
+#ifndef NO_OPENSSL
+	if (rc->password) 
+		buf[1] = SECURITY_TYPE_VNC_AUTH;
+	else
+		buf[1] = SECURITY_TYPE_NONE;
+#else
+	buf[1] = SECURITY_TYPE_NONE;
+#endif
+
 	stream_write(cfd, buf, 2);
 
-
 	/* 2b. Read agreed security type */
 	len = stream_read(cfd, buf, 1);
 
-	/* 2c. Write back a status of 0 */
-	sres = 0;
+	/* 2c. Do VNC authentication */
+	switch (buf[0]) {
+	case SECURITY_TYPE_NONE:
+		sres = 0;
+		break;
+	case SECURITY_TYPE_VNC_AUTH:
+		/*
+		 * The client encrypts the challenge with DES, using a password
+		 * supplied by the user as the key.
+		 * To form the key, the password is truncated to
+		 * eight characters, or padded with null bytes on the right.
+		 * The client then sends the resulting 16-bytes response.
+		 */
+#ifndef NO_OPENSSL
+		strncpy(keystr, rc->password, PASSWD_LENGTH);
+
+		/* VNC clients encrypts the challenge with all the bit fields
+		 * in each byte of the password mirrored.
+		 * Here we flip each byte of the keystr.
+		 */
+		for (i = 0; i < PASSWD_LENGTH; i++) {
+			keystr[i] = (keystr[i] & 0xF0) >> 4
+				  | (keystr[i] & 0x0F) << 4;
+			keystr[i] = (keystr[i] & 0xCC) >> 2
+				  | (keystr[i] & 0x33) << 2;
+			keystr[i] = (keystr[i] & 0xAA) >> 1
+				  | (keystr[i] & 0x55) << 1;
+		}
+
+		/* Initialize a 16-byte random challenge */
+		arc4random_buf(challenge, sizeof(challenge));
+		stream_write(cfd, challenge, AUTH_LENGTH);
+
+		/* Receive the 16-byte challenge response */
+		stream_read(cfd, buf, AUTH_LENGTH);
+
+		memcpy(crypt_expected, challenge, AUTH_LENGTH);
+
+		/* Encrypt the Challenge with DES */
+		DES_set_key((const_DES_cblock *)keystr, &ks);
+		DES_ecb_encrypt((const_DES_cblock *)challenge,
+				(const_DES_cblock *)crypt_expected,
+				&ks, DES_ENCRYPT);
+		DES_ecb_encrypt((const_DES_cblock *)(challenge + PASSWD_LENGTH),
+				(const_DES_cblock *)(crypt_expected +
+				PASSWD_LENGTH),
+				&ks, DES_ENCRYPT);
+
+		if (memcmp(crypt_expected, buf, AUTH_LENGTH) != 0) {
+			message = "Auth Failed: Invalid Password.";
+			sres = htonl(1);
+		} else
+			sres = 0;
+#else
+		sres = 0;
+		WPRINTF(("Auth not supported, no OpenSSL in your system"));
+#endif
+
+		break;
+	}
+
+	/* 2d. Write back a status */
 	stream_write(cfd, &sres, 4);
 
+	if (sres) {
+		be32enc(buf, strlen(message));
+		stream_write(cfd, buf, 4);
+		stream_write(cfd, message, strlen(message));
+		goto done;
+	}
+
 	/* 3a. Read client shared-flag byte */
 	len = stream_read(cfd, buf, 1);
 
@@ -771,8 +873,9 @@ rfb_handle(struct rfb_softc *rc, int cfd)
 
 	rfb_send_screen(rc, cfd, 1);
 
-	pthread_create(&tid, NULL, rfb_wr_thr, rc);
-	pthread_set_name_np(tid, "rfbout");
+	perror = pthread_create(&tid, NULL, rfb_wr_thr, rc);
+	if (perror == 0)
+		pthread_set_name_np(tid, "rfbout");
 
         /* Now read in client requests. 1st byte identifies type */
 	for (;;) {
@@ -808,7 +911,8 @@ rfb_handle(struct rfb_softc *rc, int cfd)
 	}
 done:
 	rc->cfd = -1;
-	pthread_join(tid, NULL);
+	if (perror == 0)
+		pthread_join(tid, NULL);
 	if (rc->enc_zlib_ok)
 		deflateEnd(&rc->zstream);
 }
@@ -863,7 +967,7 @@ sse42_supported(void)
 }
 
 int
-rfb_init(char *hostname, int port, int wait)
+rfb_init(char *hostname, int port, int wait, char *password)
 {
 	struct rfb_softc *rc;
 	struct sockaddr_in sin;
@@ -877,6 +981,8 @@ rfb_init(char *hostname, int port, int wait)
 	                     sizeof(uint32_t));
 	rc->crc_width = RFB_MAX_WIDTH;
 	rc->crc_height = RFB_MAX_HEIGHT;
+
+	rc->password = password;
 
 	rc->sfd = socket(AF_INET, SOCK_STREAM, 0);
 	if (rc->sfd < 0) {

Modified: stable/11/usr.sbin/bhyve/rfb.h
==============================================================================
--- stable/11/usr.sbin/bhyve/rfb.h	Sun Jul  2 04:09:05 2017	(r320566)
+++ stable/11/usr.sbin/bhyve/rfb.h	Sun Jul  2 04:14:34 2017	(r320567)
@@ -31,6 +31,6 @@
 
 #define	RFB_PORT	5900
 
-int	rfb_init(char *hostname, int port, int wait);
+int	rfb_init(char *hostname, int port, int wait, char *password);
 
 #endif /* _RFB_H_ */

From owner-svn-src-stable@freebsd.org  Sun Jul  2 04:19:05 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2E643D9C8C2;
 Sun,  2 Jul 2017 04:19:05 +0000 (UTC)
 (envelope-from araujo@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id EDF557F0A2;
 Sun,  2 Jul 2017 04:19:04 +0000 (UTC)
 (envelope-from araujo@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v624J47c091540;
 Sun, 2 Jul 2017 04:19:04 GMT (envelope-from araujo@FreeBSD.org)
Received: (from araujo@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v624J32c091537;
 Sun, 2 Jul 2017 04:19:03 GMT (envelope-from araujo@FreeBSD.org)
Message-Id: <201707020419.v624J32c091537@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: araujo set sender to
 araujo@FreeBSD.org using -f
From: Marcelo Araujo <araujo@FreeBSD.org>
Date: Sun, 2 Jul 2017 04:19:03 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320568 - in stable/11/sys: kern sys x86/x86
X-SVN-Group: stable-11
X-SVN-Commit-Author: araujo
X-SVN-Commit-Paths: in stable/11/sys: kern sys x86/x86
X-SVN-Commit-Revision: 320568
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 02 Jul 2017 04:19:05 -0000

Author: araujo
Date: Sun Jul  2 04:19:03 2017
New Revision: 320568
URL: https://svnweb.freebsd.org/changeset/base/320568

Log:
  MFC r319678:
  
  Allow sysctl kern.vm_guest to return bhyve when running under bhyve.
  
  Submitted by:	Sean Fagan <sef@ixsystems.com>
  Reviewed by:	grehan
  MFH:		4 weeks.
  Sponsored by:	iXsystems, Inc.
  Differential Revision:	https://reviews.freebsd.org/D11090

Modified:
  stable/11/sys/kern/subr_param.c
  stable/11/sys/sys/systm.h
  stable/11/sys/x86/x86/identcpu.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/kern/subr_param.c
==============================================================================
--- stable/11/sys/kern/subr_param.c	Sun Jul  2 04:14:34 2017	(r320567)
+++ stable/11/sys/kern/subr_param.c	Sun Jul  2 04:19:03 2017	(r320568)
@@ -149,6 +149,7 @@ static const char *const vm_guest_sysctl_names[] = {
 	"hv",
 	"vmware",
 	"kvm",
+	"bhyve",
 	NULL
 };
 CTASSERT(nitems(vm_guest_sysctl_names) - 1 == VM_LAST);

Modified: stable/11/sys/sys/systm.h
==============================================================================
--- stable/11/sys/sys/systm.h	Sun Jul  2 04:14:34 2017	(r320567)
+++ stable/11/sys/sys/systm.h	Sun Jul  2 04:19:03 2017	(r320568)
@@ -76,7 +76,7 @@ extern int vm_guest;		/* Running as virtual machine gu
  * Keep in sync with vm_guest_sysctl_names[].
  */
 enum VM_GUEST { VM_GUEST_NO = 0, VM_GUEST_VM, VM_GUEST_XEN, VM_GUEST_HV,
-		VM_GUEST_VMWARE, VM_GUEST_KVM, VM_LAST };
+		VM_GUEST_VMWARE, VM_GUEST_KVM, VM_GUEST_BHYVE, VM_LAST };
 
 #if defined(WITNESS) || defined(INVARIANT_SUPPORT)
 void	kassert_panic(const char *fmt, ...)  __printflike(1, 2);

Modified: stable/11/sys/x86/x86/identcpu.c
==============================================================================
--- stable/11/sys/x86/x86/identcpu.c	Sun Jul  2 04:14:34 2017	(r320567)
+++ stable/11/sys/x86/x86/identcpu.c	Sun Jul  2 04:19:03 2017	(r320568)
@@ -1282,6 +1282,8 @@ identify_hypervisor(void)
 				vm_guest = VM_GUEST_HV;
 			else if (strcmp(hv_vendor, "KVMKVMKVM") == 0)
 				vm_guest = VM_GUEST_KVM;
+			else if (strcmp(hv_vendor, "bhyve bhyve") == 0)
+				vm_guest = VM_GUEST_BHYVE;
 		}
 		return;
 	}

From owner-svn-src-stable@freebsd.org  Sun Jul  2 04:22:38 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id E96DBD9CB7E;
 Sun,  2 Jul 2017 04:22:38 +0000 (UTC)
 (envelope-from araujo@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id C12CB7F48E;
 Sun,  2 Jul 2017 04:22:38 +0000 (UTC)
 (envelope-from araujo@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v624Mbh8095515;
 Sun, 2 Jul 2017 04:22:37 GMT (envelope-from araujo@FreeBSD.org)
Received: (from araujo@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v624MbPU095514;
 Sun, 2 Jul 2017 04:22:37 GMT (envelope-from araujo@FreeBSD.org)
Message-Id: <201707020422.v624MbPU095514@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: araujo set sender to
 araujo@FreeBSD.org using -f
From: Marcelo Araujo <araujo@FreeBSD.org>
Date: Sun, 2 Jul 2017 04:22:37 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320569 - in stable/11/usr.sbin: ifmcstat ip6addrctl
X-SVN-Group: stable-11
X-SVN-Commit-Author: araujo
X-SVN-Commit-Paths: in stable/11/usr.sbin: ifmcstat ip6addrctl
X-SVN-Commit-Revision: 320569
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sun, 02 Jul 2017 04:22:39 -0000

Author: araujo
Date: Sun Jul  2 04:22:37 2017
New Revision: 320569
URL: https://svnweb.freebsd.org/changeset/base/320569

Log:
  MFC r319969-r319970
  
  r319969:
  Use nitems() from sys/param.h.
  
  r319970:
  Use nitems() from sys/param.h.

Modified:
  stable/11/usr.sbin/ifmcstat/ifmcstat.c
  stable/11/usr.sbin/ip6addrctl/ip6addrctl.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/usr.sbin/ifmcstat/ifmcstat.c
==============================================================================
--- stable/11/usr.sbin/ifmcstat/ifmcstat.c	Sun Jul  2 04:19:03 2017	(r320568)
+++ stable/11/usr.sbin/ifmcstat/ifmcstat.c	Sun Jul  2 04:22:37 2017	(r320569)
@@ -805,7 +805,7 @@ inm_print_sources_sysctl(uint32_t ifindex, struct in_a
 	uint32_t fmode;
 	const char *modestr;
 
-	mibsize = sizeof(mib) / sizeof(mib[0]);
+	mibsize = nitems(mib);
 	if (sysctlnametomib("net.inet.ip.mcast.filters", mib, &mibsize) == -1) {
 		perror("sysctlnametomib");
 		return;
@@ -814,7 +814,7 @@ inm_print_sources_sysctl(uint32_t ifindex, struct in_a
 	needed = 0;
 	mib[5] = ifindex;
 	mib[6] = gina.s_addr;	/* 32 bits wide */
-	mibsize = sizeof(mib) / sizeof(mib[0]);
+	mibsize = nitems(mib);
 	do {
 		if (sysctl(mib, mibsize, NULL, &needed, NULL, 0) == -1) {
 			perror("sysctl net.inet.ip.mcast.filters");
@@ -905,7 +905,7 @@ in6m_print_sources_sysctl(uint32_t ifindex, struct in6
 	uint32_t fmode;
 	const char *modestr;
 
-	mibsize = sizeof(mib) / sizeof(mib[0]);
+	mibsize = nitems(mib);
 	if (sysctlnametomib("net.inet6.ip6.mcast.filters", mib,
 	    &mibsize) == -1) {
 		perror("sysctlnametomib");
@@ -918,7 +918,7 @@ in6m_print_sources_sysctl(uint32_t ifindex, struct in6
 	for (i = 0; i < 4; i++)
 		mib[6 + i] = *pi++;
 
-	mibsize = sizeof(mib) / sizeof(mib[0]);
+	mibsize = nitems(mib);
 	do {
 		if (sysctl(mib, mibsize, NULL, &needed, NULL, 0) == -1) {
 			perror("sysctl net.inet6.ip6.mcast.filters");
@@ -1145,7 +1145,7 @@ ifmcstat_getifmaddrs(void)
 				size_t mibsize, len;
 				int mib[5];
 
-				mibsize = sizeof(mib) / sizeof(mib[0]);
+				mibsize = nitems(mib);
 				if (sysctlnametomib("net.inet.igmp.ifinfo",
 				    mib, &mibsize) == -1) {
 					perror("sysctlnametomib");
@@ -1170,7 +1170,7 @@ ifmcstat_getifmaddrs(void)
 				size_t mibsize, len;
 				int mib[5];
 
-				mibsize = sizeof(mib) / sizeof(mib[0]);
+				mibsize = nitems(mib);
 				if (sysctlnametomib("net.inet6.mld.ifinfo",
 				    mib, &mibsize) == -1) {
 					perror("sysctlnametomib");

Modified: stable/11/usr.sbin/ip6addrctl/ip6addrctl.c
==============================================================================
--- stable/11/usr.sbin/ip6addrctl/ip6addrctl.c	Sun Jul  2 04:19:03 2017	(r320568)
+++ stable/11/usr.sbin/ip6addrctl/ip6addrctl.c	Sun Jul  2 04:22:37 2017	(r320569)
@@ -111,7 +111,7 @@ get_policy(void)
 	struct in6_addrpolicy *buf;
 	struct in6_addrpolicy *pol, *ep;
 
-	if (sysctl(mib, sizeof(mib) / sizeof(mib[0]), NULL, &l, NULL, 0) < 0) {
+	if (sysctl(mib, nitems(mib), NULL, &l, NULL, 0) < 0) {
 		err(1, "sysctl(IPV6CTL_ADDRCTLPOLICY)");
 		/* NOTREACHED */
 	}
@@ -123,7 +123,7 @@ get_policy(void)
 		errx(1, "malloc failed");
 		/* NOTREACHED */
 	}
-	if (sysctl(mib, sizeof(mib) / sizeof(mib[0]), buf, &l, NULL, 0) < 0) {
+	if (sysctl(mib, nitems(mib), buf, &l, NULL, 0) < 0) {
 		err(1, "sysctl(IPV6CTL_ADDRCTLPOLICY)");
 		/* NOTREACHED */
 	}

From owner-svn-src-stable@freebsd.org  Mon Jul  3 02:11:16 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0456B9DB5B1;
 Mon,  3 Jul 2017 02:11:16 +0000 (UTC)
 (envelope-from delphij@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id BAC507D9B3;
 Mon,  3 Jul 2017 02:11:15 +0000 (UTC)
 (envelope-from delphij@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v632BEa6033449;
 Mon, 3 Jul 2017 02:11:14 GMT (envelope-from delphij@FreeBSD.org)
Received: (from delphij@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v632BEu8033448;
 Mon, 3 Jul 2017 02:11:14 GMT (envelope-from delphij@FreeBSD.org)
Message-Id: <201707030211.v632BEu8033448@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: delphij set sender to
 delphij@FreeBSD.org using -f
From: Xin LI <delphij@FreeBSD.org>
Date: Mon, 3 Jul 2017 02:11:14 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320581 - stable/11/lib/libc/rpc
X-SVN-Group: stable-11
X-SVN-Commit-Author: delphij
X-SVN-Commit-Paths: stable/11/lib/libc/rpc
X-SVN-Commit-Revision: 320581
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 03 Jul 2017 02:11:16 -0000

Author: delphij
Date: Mon Jul  3 02:11:14 2017
New Revision: 320581
URL: https://svnweb.freebsd.org/changeset/base/320581

Log:
  MFC r320494: Fix double free by reverting r300385 and r300624 which was
  false positive reported by cppcheck.
  
  releng/11.1 candidate.

Modified:
  stable/11/lib/libc/rpc/getnetconfig.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/lib/libc/rpc/getnetconfig.c
==============================================================================
--- stable/11/lib/libc/rpc/getnetconfig.c	Mon Jul  3 02:01:16 2017	(r320580)
+++ stable/11/lib/libc/rpc/getnetconfig.c	Mon Jul  3 02:11:14 2017	(r320581)
@@ -692,7 +692,7 @@ static struct netconfig *
 dup_ncp(struct netconfig *ncp)
 {
     struct netconfig	*p;
-    char	*tmp, *tmp2;
+    char	*tmp;
     u_int	i;
 
     if ((tmp=malloc(MAXNETCONFIGLINE)) == NULL)
@@ -701,7 +701,6 @@ dup_ncp(struct netconfig *ncp)
 	free(tmp);
 	return(NULL);
     }
-    tmp2 = tmp;
     /*
      * First we dup all the data from matched netconfig buffer.  Then we
      * adjust some of the member pointer to a pre-allocated buffer where
@@ -723,7 +722,6 @@ dup_ncp(struct netconfig *ncp)
     if (p->nc_lookups == NULL) {
 	free(p->nc_netid);
 	free(p);
-	free(tmp2);
 	return(NULL);
     }
     for (i=0; i < p->nc_nlookups; i++) {

From owner-svn-src-stable@freebsd.org  Mon Jul  3 02:14:44 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 244419DB775;
 Mon,  3 Jul 2017 02:14:44 +0000 (UTC)
 (envelope-from delphij@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id DBC7E7DBB5;
 Mon,  3 Jul 2017 02:14:43 +0000 (UTC)
 (envelope-from delphij@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v632Eh4H033630;
 Mon, 3 Jul 2017 02:14:43 GMT (envelope-from delphij@FreeBSD.org)
Received: (from delphij@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v632EhVc033629;
 Mon, 3 Jul 2017 02:14:43 GMT (envelope-from delphij@FreeBSD.org)
Message-Id: <201707030214.v632EhVc033629@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: delphij set sender to
 delphij@FreeBSD.org using -f
From: Xin LI <delphij@FreeBSD.org>
Date: Mon, 3 Jul 2017 02:14:43 +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: r320582 - stable/10/lib/libc/rpc
X-SVN-Group: stable-10
X-SVN-Commit-Author: delphij
X-SVN-Commit-Paths: stable/10/lib/libc/rpc
X-SVN-Commit-Revision: 320582
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 03 Jul 2017 02:14:44 -0000

Author: delphij
Date: Mon Jul  3 02:14:42 2017
New Revision: 320582
URL: https://svnweb.freebsd.org/changeset/base/320582

Log:
  MFC r320494: Fix double free by reverting r300385 and r300624 which was
  false positive reported by cppcheck.

Modified:
  stable/10/lib/libc/rpc/getnetconfig.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/lib/libc/rpc/getnetconfig.c
==============================================================================
--- stable/10/lib/libc/rpc/getnetconfig.c	Mon Jul  3 02:11:14 2017	(r320581)
+++ stable/10/lib/libc/rpc/getnetconfig.c	Mon Jul  3 02:14:42 2017	(r320582)
@@ -692,7 +692,7 @@ static struct netconfig *
 dup_ncp(struct netconfig *ncp)
 {
     struct netconfig	*p;
-    char	*tmp, *tmp2;
+    char	*tmp;
     u_int	i;
 
     if ((tmp=malloc(MAXNETCONFIGLINE)) == NULL)
@@ -701,7 +701,6 @@ dup_ncp(struct netconfig *ncp)
 	free(tmp);
 	return(NULL);
     }
-    tmp2 = tmp;
     /*
      * First we dup all the data from matched netconfig buffer.  Then we
      * adjust some of the member pointer to a pre-allocated buffer where
@@ -723,7 +722,6 @@ dup_ncp(struct netconfig *ncp)
     if (p->nc_lookups == NULL) {
 	free(p->nc_netid);
 	free(p);
-	free(tmp2);
 	return(NULL);
     }
     for (i=0; i < p->nc_nlookups; i++) {

From owner-svn-src-stable@freebsd.org  Mon Jul  3 02:18:11 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id E41F49DB873;
 Mon,  3 Jul 2017 02:18:11 +0000 (UTC)
 (envelope-from delphij@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id A50AC7DD21;
 Mon,  3 Jul 2017 02:18:11 +0000 (UTC)
 (envelope-from delphij@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v632IA6t033888;
 Mon, 3 Jul 2017 02:18:10 GMT (envelope-from delphij@FreeBSD.org)
Received: (from delphij@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v632IAbe033887;
 Mon, 3 Jul 2017 02:18:10 GMT (envelope-from delphij@FreeBSD.org)
Message-Id: <201707030218.v632IAbe033887@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: delphij set sender to
 delphij@FreeBSD.org using -f
From: Xin LI <delphij@FreeBSD.org>
Date: Mon, 3 Jul 2017 02:18:10 +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: r320583 - stable/9/lib/libc/rpc
X-SVN-Group: stable-9
X-SVN-Commit-Author: delphij
X-SVN-Commit-Paths: stable/9/lib/libc/rpc
X-SVN-Commit-Revision: 320583
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 03 Jul 2017 02:18:12 -0000

Author: delphij
Date: Mon Jul  3 02:18:10 2017
New Revision: 320583
URL: https://svnweb.freebsd.org/changeset/base/320583

Log:
  MFC r320494: Fix double free by reverting r300385 and r300624 which was
  false positive reported by cppcheck.

Modified:
  stable/9/lib/libc/rpc/getnetconfig.c
Directory Properties:
  stable/9/lib/libc/   (props changed)

Modified: stable/9/lib/libc/rpc/getnetconfig.c
==============================================================================
--- stable/9/lib/libc/rpc/getnetconfig.c	Mon Jul  3 02:14:42 2017	(r320582)
+++ stable/9/lib/libc/rpc/getnetconfig.c	Mon Jul  3 02:18:10 2017	(r320583)
@@ -697,7 +697,7 @@ dup_ncp(ncp)
 struct netconfig	*ncp;
 {
     struct netconfig	*p;
-    char	*tmp, *tmp2;
+    char	*tmp;
     u_int	i;
 
     if ((tmp=malloc(MAXNETCONFIGLINE)) == NULL)
@@ -706,7 +706,6 @@ struct netconfig	*ncp;
 	free(tmp);
 	return(NULL);
     }
-    tmp2 = tmp;
     /*
      * First we dup all the data from matched netconfig buffer.  Then we
      * adjust some of the member pointer to a pre-allocated buffer where
@@ -728,7 +727,6 @@ struct netconfig	*ncp;
     if (p->nc_lookups == NULL) {
 	free(p->nc_netid);
 	free(p);
-	free(tmp2);
 	return(NULL);
     }
     for (i=0; i < p->nc_nlookups; i++) {

From owner-svn-src-stable@freebsd.org  Mon Jul  3 05:22:12 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 32F699DE48D;
 Mon,  3 Jul 2017 05:22:12 +0000 (UTC)
 (envelope-from delphij@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 01785827EE;
 Mon,  3 Jul 2017 05:22:11 +0000 (UTC)
 (envelope-from delphij@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v635MBo9011571;
 Mon, 3 Jul 2017 05:22:11 GMT (envelope-from delphij@FreeBSD.org)
Received: (from delphij@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v635MBQb011570;
 Mon, 3 Jul 2017 05:22:11 GMT (envelope-from delphij@FreeBSD.org)
Message-Id: <201707030522.v635MBQb011570@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: delphij set sender to
 delphij@FreeBSD.org using -f
From: Xin LI <delphij@FreeBSD.org>
Date: Mon, 3 Jul 2017 05:22:11 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320586 - stable/11/usr.sbin/rpc.lockd
X-SVN-Group: stable-11
X-SVN-Commit-Author: delphij
X-SVN-Commit-Paths: stable/11/usr.sbin/rpc.lockd
X-SVN-Commit-Revision: 320586
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 03 Jul 2017 05:22:12 -0000

Author: delphij
Date: Mon Jul  3 05:22:10 2017
New Revision: 320586
URL: https://svnweb.freebsd.org/changeset/base/320586

Log:
  MFC r320093: Check return value of seteuid() and bail out if we fail.

Modified:
  stable/11/usr.sbin/rpc.lockd/lock_proc.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/usr.sbin/rpc.lockd/lock_proc.c
==============================================================================
--- stable/11/usr.sbin/rpc.lockd/lock_proc.c	Mon Jul  3 05:04:44 2017	(r320585)
+++ stable/11/usr.sbin/rpc.lockd/lock_proc.c	Mon Jul  3 05:22:10 2017	(r320586)
@@ -276,7 +276,10 @@ get_client(struct sockaddr *host_addr, rpcvers_t vers)
 
 	/* Regain root privileges, for bindresvport. */
 	old_euid = geteuid();
-	seteuid(0);
+	if (seteuid(0) != 0) {
+		syslog(LOG_ERR, "seteuid(0) failed");
+		return NULL;
+	}
 
 	/*
 	 * Bind the client FD to a reserved port.
@@ -285,7 +288,10 @@ get_client(struct sockaddr *host_addr, rpcvers_t vers)
 	bindresvport(clnt_fd, NULL);
 
 	/* Drop root privileges again. */
-	seteuid(old_euid);
+	if (seteuid(old_euid) != 0) {
+		syslog(LOG_ERR, "seteuid(%d) failed", old_euid);
+		return NULL;
+	}
 
 	/* Success - update the cache entry */
 	clnt_cache_ptr[clnt_cache_next_to_use] = client;

From owner-svn-src-stable@freebsd.org  Mon Jul  3 05:30:33 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3D4F69DE5F2;
 Mon,  3 Jul 2017 05:30:33 +0000 (UTC)
 (envelope-from delphij@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 0952182BDC;
 Mon,  3 Jul 2017 05:30:32 +0000 (UTC)
 (envelope-from delphij@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v635UWYR011922;
 Mon, 3 Jul 2017 05:30:32 GMT (envelope-from delphij@FreeBSD.org)
Received: (from delphij@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v635UWYw011921;
 Mon, 3 Jul 2017 05:30:32 GMT (envelope-from delphij@FreeBSD.org)
Message-Id: <201707030530.v635UWYw011921@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: delphij set sender to
 delphij@FreeBSD.org using -f
From: Xin LI <delphij@FreeBSD.org>
Date: Mon, 3 Jul 2017 05:30:32 +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: r320587 - stable/10/usr.sbin/rpc.lockd
X-SVN-Group: stable-10
X-SVN-Commit-Author: delphij
X-SVN-Commit-Paths: stable/10/usr.sbin/rpc.lockd
X-SVN-Commit-Revision: 320587
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 03 Jul 2017 05:30:33 -0000

Author: delphij
Date: Mon Jul  3 05:30:31 2017
New Revision: 320587
URL: https://svnweb.freebsd.org/changeset/base/320587

Log:
  MFC r320093: Check return value of seteuid() and bail out if we fail.

Modified:
  stable/10/usr.sbin/rpc.lockd/lock_proc.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/usr.sbin/rpc.lockd/lock_proc.c
==============================================================================
--- stable/10/usr.sbin/rpc.lockd/lock_proc.c	Mon Jul  3 05:22:10 2017	(r320586)
+++ stable/10/usr.sbin/rpc.lockd/lock_proc.c	Mon Jul  3 05:30:31 2017	(r320587)
@@ -283,7 +283,10 @@ get_client(host_addr, vers)
 
 	/* Regain root privileges, for bindresvport. */
 	old_euid = geteuid();
-	seteuid(0);
+	if (seteuid(0) != 0) {
+		syslog(LOG_ERR, "seteuid(0) failed");
+		return NULL;
+	}
 
 	/*
 	 * Bind the client FD to a reserved port.
@@ -292,7 +295,10 @@ get_client(host_addr, vers)
 	bindresvport(clnt_fd, NULL);
 
 	/* Drop root privileges again. */
-	seteuid(old_euid);
+	if (seteuid(old_euid) != 0) {
+		syslog(LOG_ERR, "seteuid(%d) failed", old_euid);
+		return NULL;
+	}
 
 	/* Success - update the cache entry */
 	clnt_cache_ptr[clnt_cache_next_to_use] = client;

From owner-svn-src-stable@freebsd.org  Mon Jul  3 08:53:24 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4762B9E1634;
 Mon,  3 Jul 2017 08:53:24 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 14F5C3BD9;
 Mon,  3 Jul 2017 08:53:24 +0000 (UTC) (envelope-from ae@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v638rNvu098908;
 Mon, 3 Jul 2017 08:53:23 GMT (envelope-from ae@FreeBSD.org)
Received: (from ae@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v638rMGi098905;
 Mon, 3 Jul 2017 08:53:22 GMT (envelope-from ae@FreeBSD.org)
Message-Id: <201707030853.v638rMGi098905@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ae set sender to ae@FreeBSD.org
 using -f
From: "Andrey V. Elsukov" <ae@FreeBSD.org>
Date: Mon, 3 Jul 2017 08:53:22 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320593 - in stable/11/sys/netpfil/ipfw: nat64 nptv6 pmod
X-SVN-Group: stable-11
X-SVN-Commit-Author: ae
X-SVN-Commit-Paths: in stable/11/sys/netpfil/ipfw: nat64 nptv6 pmod
X-SVN-Commit-Revision: 320593
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 03 Jul 2017 08:53:24 -0000

Author: ae
Date: Mon Jul  3 08:53:22 2017
New Revision: 320593
URL: https://svnweb.freebsd.org/changeset/base/320593

Log:
  MFC r320479:
    Fix IPv6 extension header parsing. The length field doesn't include the
    first 8 octets.
  
    Obtained from:	Yandex LLC

Modified:
  stable/11/sys/netpfil/ipfw/nat64/nat64_translate.c
  stable/11/sys/netpfil/ipfw/nptv6/nptv6.c
  stable/11/sys/netpfil/ipfw/pmod/tcpmod.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/netpfil/ipfw/nat64/nat64_translate.c
==============================================================================
--- stable/11/sys/netpfil/ipfw/nat64/nat64_translate.c	Mon Jul  3 08:32:52 2017	(r320592)
+++ stable/11/sys/netpfil/ipfw/nat64/nat64_translate.c	Mon Jul  3 08:53:22 2017	(r320593)
@@ -1054,7 +1054,7 @@ nat64_getlasthdr(struct mbuf *m, int *offset)
 		if (proto == IPPROTO_HOPOPTS && ip6->ip6_plen == 0)
 			return (-1);
 		proto = hbh->ip6h_nxt;
-		hlen += hbh->ip6h_len << 3;
+		hlen += (hbh->ip6h_len + 1) << 3;
 	}
 	if (offset != NULL)
 		*offset = hlen;

Modified: stable/11/sys/netpfil/ipfw/nptv6/nptv6.c
==============================================================================
--- stable/11/sys/netpfil/ipfw/nptv6/nptv6.c	Mon Jul  3 08:32:52 2017	(r320592)
+++ stable/11/sys/netpfil/ipfw/nptv6/nptv6.c	Mon Jul  3 08:53:22 2017	(r320593)
@@ -125,7 +125,7 @@ nptv6_getlasthdr(struct nptv6_cfg *cfg, struct mbuf *m
 		if (m->m_len < hlen)
 			return (-1);
 		proto = hbh->ip6h_nxt;
-		hlen += hbh->ip6h_len << 3;
+		hlen += (hbh->ip6h_len + 1) << 3;
 	}
 	if (offset != NULL)
 		*offset = hlen;

Modified: stable/11/sys/netpfil/ipfw/pmod/tcpmod.c
==============================================================================
--- stable/11/sys/netpfil/ipfw/pmod/tcpmod.c	Mon Jul  3 08:32:52 2017	(r320592)
+++ stable/11/sys/netpfil/ipfw/pmod/tcpmod.c	Mon Jul  3 08:53:22 2017	(r320593)
@@ -137,7 +137,7 @@ tcpmod_ipv6_setmss(struct mbuf **mp, uint16_t mss)
 	    proto == IPPROTO_DSTOPTS) {
 		hbh = mtodo(*mp, hlen);
 		proto = hbh->ip6h_nxt;
-		hlen += hbh->ip6h_len << 3;
+		hlen += (hbh->ip6h_len + 1) << 3;
 	}
 	tcp = mtodo(*mp, hlen);
 	plen = (*mp)->m_pkthdr.len - hlen;

From owner-svn-src-stable@freebsd.org  Mon Jul  3 13:02:22 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id C4AB79E655D;
 Mon,  3 Jul 2017 13:02:22 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 925026F573;
 Mon,  3 Jul 2017 13:02:22 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v63D2Lcj002933;
 Mon, 3 Jul 2017 13:02:21 GMT (envelope-from gjb@FreeBSD.org)
Received: (from gjb@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v63D2LV7002932;
 Mon, 3 Jul 2017 13:02:21 GMT (envelope-from gjb@FreeBSD.org)
Message-Id: <201707031302.v63D2LV7002932@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org
 using -f
From: Glen Barber <gjb@FreeBSD.org>
Date: Mon, 3 Jul 2017 13:02:21 +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: r320596 - in stable: 10/sys/sys 11/sys/sys
X-SVN-Group: stable-10
X-SVN-Commit-Author: gjb
X-SVN-Commit-Paths: in stable: 10/sys/sys 11/sys/sys
X-SVN-Commit-Revision: 320596
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 03 Jul 2017 13:02:22 -0000

Author: gjb
Date: Mon Jul  3 13:02:21 2017
New Revision: 320596
URL: https://svnweb.freebsd.org/changeset/base/320596

Log:
  MFC r320488:
   Correct the branch naming convention in param.h.
   While here, consistently use upper-case 'X' to represent the
   version number.
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/10/sys/sys/param.h
Directory Properties:
  stable/10/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/11/sys/sys/param.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/10/sys/sys/param.h
==============================================================================
--- stable/10/sys/sys/param.h	Mon Jul  3 10:24:49 2017	(r320595)
+++ stable/10/sys/sys/param.h	Mon Jul  3 13:02:21 2017	(r320596)
@@ -54,7 +54,7 @@
  *
  * scheme is:  <major><two digit minor>Rxx
  *		'R' is in the range 0 to 4 if this is a release branch or
- *		x.0-CURRENT before RELENG_*_0 is created, otherwise 'R' is
+ *		X.0-CURRENT before releng/X.0 is created, otherwise 'R' is
  *		in the range 5 to 9.
  */
 #undef __FreeBSD_version

From owner-svn-src-stable@freebsd.org  Mon Jul  3 13:02:23 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0412B9E6561;
 Mon,  3 Jul 2017 13:02:23 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id C00FC6F582;
 Mon,  3 Jul 2017 13:02:22 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v63D2LJL002939;
 Mon, 3 Jul 2017 13:02:21 GMT (envelope-from gjb@FreeBSD.org)
Received: (from gjb@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v63D2LBF002938;
 Mon, 3 Jul 2017 13:02:21 GMT (envelope-from gjb@FreeBSD.org)
Message-Id: <201707031302.v63D2LBF002938@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org
 using -f
From: Glen Barber <gjb@FreeBSD.org>
Date: Mon, 3 Jul 2017 13:02:21 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320596 - in stable: 10/sys/sys 11/sys/sys
X-SVN-Group: stable-11
X-SVN-Commit-Author: gjb
X-SVN-Commit-Paths: in stable: 10/sys/sys 11/sys/sys
X-SVN-Commit-Revision: 320596
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 03 Jul 2017 13:02:23 -0000

Author: gjb
Date: Mon Jul  3 13:02:21 2017
New Revision: 320596
URL: https://svnweb.freebsd.org/changeset/base/320596

Log:
  MFC r320488:
   Correct the branch naming convention in param.h.
   While here, consistently use upper-case 'X' to represent the
   version number.
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/11/sys/sys/param.h
Directory Properties:
  stable/11/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/10/sys/sys/param.h
Directory Properties:
  stable/10/   (props changed)

Modified: stable/11/sys/sys/param.h
==============================================================================
--- stable/11/sys/sys/param.h	Mon Jul  3 10:24:49 2017	(r320595)
+++ stable/11/sys/sys/param.h	Mon Jul  3 13:02:21 2017	(r320596)
@@ -54,7 +54,7 @@
  *
  * scheme is:  <major><two digit minor>Rxx
  *		'R' is in the range 0 to 4 if this is a release branch or
- *		x.0-CURRENT before RELENG_*_0 is created, otherwise 'R' is
+ *		X.0-CURRENT before releng/X.0 is created, otherwise 'R' is
  *		in the range 5 to 9.
  */
 #undef __FreeBSD_version

From owner-svn-src-stable@freebsd.org  Mon Jul  3 15:10:17 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6893A9E87B4;
 Mon,  3 Jul 2017 15:10:17 +0000 (UTC) (envelope-from ken@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 3435573A7B;
 Mon,  3 Jul 2017 15:10:17 +0000 (UTC) (envelope-from ken@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v63FAGHe053634;
 Mon, 3 Jul 2017 15:10:16 GMT (envelope-from ken@FreeBSD.org)
Received: (from ken@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v63FAGgK053633;
 Mon, 3 Jul 2017 15:10:16 GMT (envelope-from ken@FreeBSD.org)
Message-Id: <201707031510.v63FAGgK053633@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ken set sender to ken@FreeBSD.org
 using -f
From: "Kenneth D. Merry" <ken@FreeBSD.org>
Date: Mon, 3 Jul 2017 15:10:16 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320600 - stable/11/sys/cam/scsi
X-SVN-Group: stable-11
X-SVN-Commit-Author: ken
X-SVN-Commit-Paths: stable/11/sys/cam/scsi
X-SVN-Commit-Revision: 320600
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 03 Jul 2017 15:10:17 -0000

Author: ken
Date: Mon Jul  3 15:10:16 2017
New Revision: 320600
URL: https://svnweb.freebsd.org/changeset/base/320600

Log:
  MFC r320420:
  
    ------------------------------------------------------------------------
    r320420 | ken | 2017-06-27 11:55:25 -0600 (Tue, 27 Jun 2017) | 25 lines
  
    In scsi_zbc_in(), fill in the length in the ZBC IN CDB.
  
    Without the allocation length set, the target will either reject
    the command or complete it without transferring any data.
  
    This fixes the REPORT ZONES command for SCSI ZBC protocol devices,
    as well as ATA ZAC protocol devices that are behind a SCSI to ATA
    translation layer.  (LSI/Broadcom's 12Gb SAS adapters translate ZBC
    commands to ZAC commands.)  Those are Host Aware and Host Managed SMR
    drives.
  
    This will fix REPORT ZONE commands sent to the da(4) driver via the
    GEOM bio interface and zonectl, and REPORT ZONE commands sent from
    camcontrol(8).
  
    Note that in the case of camcontrol(8), we currently only send
    SCSI ZBC commands to native SCSI protocol devices, not ATA devices
    behind a SAT layer.
  
    sys/cam/scsi/scsi_da.c:
    	Fill in the length field in scsi_zbc_in().
  
    Sponsored by:	Spectra Logic
    ------------------------------------------------------------------------

Modified:
  stable/11/sys/cam/scsi/scsi_da.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/cam/scsi/scsi_da.c
==============================================================================
--- stable/11/sys/cam/scsi/scsi_da.c	Mon Jul  3 14:31:38 2017	(r320599)
+++ stable/11/sys/cam/scsi/scsi_da.c	Mon Jul  3 15:10:16 2017	(r320600)
@@ -5748,6 +5748,7 @@ scsi_zbc_in(struct ccb_scsiio *csio, uint32_t retries,
 	scsi_cmd = (struct scsi_zbc_in *)&csio->cdb_io.cdb_bytes;
 	scsi_cmd->opcode = ZBC_IN;
 	scsi_cmd->service_action = service_action;
+	scsi_ulto4b(dxfer_len, scsi_cmd->length);
 	scsi_u64to8b(zone_start_lba, scsi_cmd->zone_start_lba);
 	scsi_cmd->zone_options = zone_options;
 

From owner-svn-src-stable@freebsd.org  Mon Jul  3 15:34:21 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1C8D99E8FEE;
 Mon,  3 Jul 2017 15:34:21 +0000 (UTC) (envelope-from ken@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id E199374771;
 Mon,  3 Jul 2017 15:34:20 +0000 (UTC) (envelope-from ken@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v63FYKl9065613;
 Mon, 3 Jul 2017 15:34:20 GMT (envelope-from ken@FreeBSD.org)
Received: (from ken@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v63FYK4b065612;
 Mon, 3 Jul 2017 15:34:20 GMT (envelope-from ken@FreeBSD.org)
Message-Id: <201707031534.v63FYK4b065612@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ken set sender to ken@FreeBSD.org
 using -f
From: "Kenneth D. Merry" <ken@FreeBSD.org>
Date: Mon, 3 Jul 2017 15:34:20 +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: r320601 - stable/10/sys/cam
X-SVN-Group: stable-10
X-SVN-Commit-Author: ken
X-SVN-Commit-Paths: stable/10/sys/cam
X-SVN-Commit-Revision: 320601
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 03 Jul 2017 15:34:21 -0000

Author: ken
Date: Mon Jul  3 15:34:19 2017
New Revision: 320601
URL: https://svnweb.freebsd.org/changeset/base/320601

Log:
  MFC r320421:
  
    ------------------------------------------------------------------------
    r320421 | ken | 2017-06-27 13:26:02 -0600 (Tue, 27 Jun 2017) | 37 lines
  
    Fix a panic in camperiphfree().
  
    If a peripheral driver (e.g. da, sa, cd) is added or removed from the
    peripheral driver list while an unrelated peripheral driver instance (e.g.
    da0, sa5, cd2) is going away and is inside camperiphfree(), we could
    dereference an invalid pointer.
  
    When peripheral drivers are added or removed (see periphdriver_register()
    and periphdriver_unregister()), the peripheral driver array is resized
    and existing entries are moved.
  
    Although we hold the topology lock while we traverse the peripheral driver
    list, we retain a pointer to the location of the peripheral driver pointer
    and then drop the topology lock.  So we are still vulnerable to the list
    getting moved around while the lock is dropped.
  
    To solve the problem, cache a copy of the peripheral driver pointer.  If
    its storage location in the list changes while we have the lock dropped, it
    won't have any effect.
  
    This doesn't solve the issue that peripheral drivers ("da", "cd", as opposed
    to individual instances like "da0", "cd0") are not generally part of a
    reference counting scheme to guard against deregistering them while there
    are instances active.  The caller (generally the person unloading a module)
    has to be aware of active drivers and not unload something that is in use.
  
    sys/cam/cam_periph.c:
    	In camperiphfree(), cache a pointer to the peripheral driver
    	instance to avoid holding a pointer to an invalid memory location
    	in the event that the peripheral driver list changes while we have
    	the topology lock dropped.
  
    PR:		kern/219701
    Submitted by:	avg
    Sponsored by:	Spectra Logic
  
    ------------------------------------------------------------------------
  PR:		kern/219701
  Sponsored by:	Spectra Logic

Modified:
  stable/10/sys/cam/cam_periph.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/cam/cam_periph.c
==============================================================================
--- stable/10/sys/cam/cam_periph.c	Mon Jul  3 15:10:16 2017	(r320600)
+++ stable/10/sys/cam/cam_periph.c	Mon Jul  3 15:34:19 2017	(r320601)
@@ -622,6 +622,7 @@ static void
 camperiphfree(struct cam_periph *periph)
 {
 	struct periph_driver **p_drv;
+	struct periph_driver *drv;
 
 	cam_periph_assert(periph, MA_OWNED);
 	KASSERT(periph->periph_allocating == 0, ("%s%d: freed while allocating",
@@ -634,6 +635,15 @@ camperiphfree(struct cam_periph *periph)
 		printf("camperiphfree: attempt to free non-existant periph\n");
 		return;
 	}
+	/*
+	 * Cache a pointer to the periph_driver structure.  If a
+	 * periph_driver is added or removed from the array (see
+	 * periphdriver_register()) while we drop the toplogy lock
+	 * below, p_drv may change.  This doesn't protect against this
+	 * particular periph_driver going away.  That will require full
+	 * reference counting in the periph_driver infrastructure.
+	 */
+	drv = *p_drv;
 
 	/*
 	 * We need to set this flag before dropping the topology lock, to
@@ -669,8 +679,8 @@ camperiphfree(struct cam_periph *periph)
 	 */
 	xpt_lock_buses();
 
-	TAILQ_REMOVE(&(*p_drv)->units, periph, unit_links);
-	(*p_drv)->generation++;
+	TAILQ_REMOVE(&drv->units, periph, unit_links);
+	drv->generation++;
 
 	xpt_remove_periph(periph);
 

From owner-svn-src-stable@freebsd.org  Mon Jul  3 15:34:22 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5AE879E8FF4;
 Mon,  3 Jul 2017 15:34:22 +0000 (UTC) (envelope-from ken@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 346C074774;
 Mon,  3 Jul 2017 15:34:22 +0000 (UTC) (envelope-from ken@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v63FYLYm065683;
 Mon, 3 Jul 2017 15:34:21 GMT (envelope-from ken@FreeBSD.org)
Received: (from ken@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v63FYLIk065682;
 Mon, 3 Jul 2017 15:34:21 GMT (envelope-from ken@FreeBSD.org)
Message-Id: <201707031534.v63FYLIk065682@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ken set sender to ken@FreeBSD.org
 using -f
From: "Kenneth D. Merry" <ken@FreeBSD.org>
Date: Mon, 3 Jul 2017 15:34:21 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320602 - stable/11/sys/cam
X-SVN-Group: stable-11
X-SVN-Commit-Author: ken
X-SVN-Commit-Paths: stable/11/sys/cam
X-SVN-Commit-Revision: 320602
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 03 Jul 2017 15:34:22 -0000

Author: ken
Date: Mon Jul  3 15:34:21 2017
New Revision: 320602
URL: https://svnweb.freebsd.org/changeset/base/320602

Log:
  MFC r320421:
  
    ------------------------------------------------------------------------
    r320421 | ken | 2017-06-27 13:26:02 -0600 (Tue, 27 Jun 2017) | 37 lines
  
    Fix a panic in camperiphfree().
  
    If a peripheral driver (e.g. da, sa, cd) is added or removed from the
    peripheral driver list while an unrelated peripheral driver instance (e.g.
    da0, sa5, cd2) is going away and is inside camperiphfree(), we could
    dereference an invalid pointer.
  
    When peripheral drivers are added or removed (see periphdriver_register()
    and periphdriver_unregister()), the peripheral driver array is resized
    and existing entries are moved.
  
    Although we hold the topology lock while we traverse the peripheral driver
    list, we retain a pointer to the location of the peripheral driver pointer
    and then drop the topology lock.  So we are still vulnerable to the list
    getting moved around while the lock is dropped.
  
    To solve the problem, cache a copy of the peripheral driver pointer.  If
    its storage location in the list changes while we have the lock dropped, it
    won't have any effect.
  
    This doesn't solve the issue that peripheral drivers ("da", "cd", as opposed
    to individual instances like "da0", "cd0") are not generally part of a
    reference counting scheme to guard against deregistering them while there
    are instances active.  The caller (generally the person unloading a module)
    has to be aware of active drivers and not unload something that is in use.
  
    sys/cam/cam_periph.c:
    	In camperiphfree(), cache a pointer to the peripheral driver
    	instance to avoid holding a pointer to an invalid memory location
    	in the event that the peripheral driver list changes while we have
    	the topology lock dropped.
  
    PR:		kern/219701
    Submitted by:	avg
    Sponsored by:	Spectra Logic
  
    ------------------------------------------------------------------------
  PR:		kern/219701
  Sponsored by:	Spectra Logic

Modified:
  stable/11/sys/cam/cam_periph.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/cam/cam_periph.c
==============================================================================
--- stable/11/sys/cam/cam_periph.c	Mon Jul  3 15:34:19 2017	(r320601)
+++ stable/11/sys/cam/cam_periph.c	Mon Jul  3 15:34:21 2017	(r320602)
@@ -654,6 +654,7 @@ static void
 camperiphfree(struct cam_periph *periph)
 {
 	struct periph_driver **p_drv;
+	struct periph_driver *drv;
 
 	cam_periph_assert(periph, MA_OWNED);
 	KASSERT(periph->periph_allocating == 0, ("%s%d: freed while allocating",
@@ -666,6 +667,15 @@ camperiphfree(struct cam_periph *periph)
 		printf("camperiphfree: attempt to free non-existant periph\n");
 		return;
 	}
+	/*
+	 * Cache a pointer to the periph_driver structure.  If a
+	 * periph_driver is added or removed from the array (see
+	 * periphdriver_register()) while we drop the toplogy lock
+	 * below, p_drv may change.  This doesn't protect against this
+	 * particular periph_driver going away.  That will require full
+	 * reference counting in the periph_driver infrastructure.
+	 */
+	drv = *p_drv;
 
 	/*
 	 * We need to set this flag before dropping the topology lock, to
@@ -701,8 +711,8 @@ camperiphfree(struct cam_periph *periph)
 	 */
 	xpt_lock_buses();
 
-	TAILQ_REMOVE(&(*p_drv)->units, periph, unit_links);
-	(*p_drv)->generation++;
+	TAILQ_REMOVE(&drv->units, periph, unit_links);
+	drv->generation++;
 
 	xpt_remove_periph(periph);
 

From owner-svn-src-stable@freebsd.org  Mon Jul  3 16:40:07 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 962F19EAB0F;
 Mon,  3 Jul 2017 16:40:07 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 6E4937701E;
 Mon,  3 Jul 2017 16:40:07 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v63Ge605090611;
 Mon, 3 Jul 2017 16:40:06 GMT (envelope-from markj@FreeBSD.org)
Received: (from markj@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v63Ge5WP090603;
 Mon, 3 Jul 2017 16:40:05 GMT (envelope-from markj@FreeBSD.org)
Message-Id: <201707031640.v63Ge5WP090603@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: markj set sender to
 markj@FreeBSD.org using -f
From: Mark Johnston <markj@FreeBSD.org>
Date: Mon, 3 Jul 2017 16:40:05 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320605 - in stable/11/sys: cddl/compat/opensolaris/sys
 compat/linprocfs fs/tmpfs sys vm
X-SVN-Group: stable-11
X-SVN-Commit-Author: markj
X-SVN-Commit-Paths: in stable/11/sys: cddl/compat/opensolaris/sys
 compat/linprocfs fs/tmpfs sys vm
X-SVN-Commit-Revision: 320605
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 03 Jul 2017 16:40:07 -0000

Author: markj
Date: Mon Jul  3 16:40:05 2017
New Revision: 320605
URL: https://svnweb.freebsd.org/changeset/base/320605

Log:
  MFC r309017 (partially):
  Omit v_cache_count when computing the number of free pages, since its
  value is always 0.

Modified:
  stable/11/sys/cddl/compat/opensolaris/sys/kmem.h
  stable/11/sys/compat/linprocfs/linprocfs.c
  stable/11/sys/fs/tmpfs/tmpfs_subr.c
  stable/11/sys/sys/vmmeter.h
  stable/11/sys/vm/swap_pager.c
  stable/11/sys/vm/vm_meter.c
  stable/11/sys/vm/vm_page.c
  stable/11/sys/vm/vnode_pager.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/cddl/compat/opensolaris/sys/kmem.h
==============================================================================
--- stable/11/sys/cddl/compat/opensolaris/sys/kmem.h	Mon Jul  3 15:56:45 2017	(r320604)
+++ stable/11/sys/cddl/compat/opensolaris/sys/kmem.h	Mon Jul  3 16:40:05 2017	(r320605)
@@ -77,7 +77,7 @@ void kmem_reap(void);
 int kmem_debugging(void);
 void *calloc(size_t n, size_t s);
 
-#define	freemem				(vm_cnt.v_free_count + vm_cnt.v_cache_count)
+#define	freemem				vm_cnt.v_free_count
 #define	minfree				vm_cnt.v_free_min
 #define	heap_arena			kmem_arena
 #define	kmem_alloc(size, kmflags)	zfs_kmem_alloc((size), (kmflags))

Modified: stable/11/sys/compat/linprocfs/linprocfs.c
==============================================================================
--- stable/11/sys/compat/linprocfs/linprocfs.c	Mon Jul  3 15:56:45 2017	(r320604)
+++ stable/11/sys/compat/linprocfs/linprocfs.c	Mon Jul  3 16:40:05 2017	(r320605)
@@ -176,7 +176,7 @@ linprocfs_domeminfo(PFS_FILL_ARGS)
 	 * like unstaticizing it just for linprocfs's sake.
 	 */
 	buffers = 0;
-	cached = vm_cnt.v_cache_count * PAGE_SIZE;
+	cached = vm_cnt.v_inactive_count * PAGE_SIZE;
 
 	sbuf_printf(sb,
 	    "MemTotal: %9lu kB\n"

Modified: stable/11/sys/fs/tmpfs/tmpfs_subr.c
==============================================================================
--- stable/11/sys/fs/tmpfs/tmpfs_subr.c	Mon Jul  3 15:56:45 2017	(r320604)
+++ stable/11/sys/fs/tmpfs/tmpfs_subr.c	Mon Jul  3 16:40:05 2017	(r320605)
@@ -100,8 +100,7 @@ tmpfs_mem_avail(void)
 {
 	vm_ooffset_t avail;
 
-	avail = swap_pager_avail + vm_cnt.v_free_count + vm_cnt.v_cache_count -
-	    tmpfs_pages_reserved;
+	avail = swap_pager_avail + vm_cnt.v_free_count - tmpfs_pages_reserved;
 	if (__predict_false(avail < 0))
 		avail = 0;
 	return (avail);

Modified: stable/11/sys/sys/vmmeter.h
==============================================================================
--- stable/11/sys/sys/vmmeter.h	Mon Jul  3 15:56:45 2017	(r320604)
+++ stable/11/sys/sys/vmmeter.h	Mon Jul  3 16:40:05 2017	(r320605)
@@ -130,8 +130,7 @@ static inline int
 vm_page_count_severe(void)
 {
 
-	return (vm_cnt.v_free_severe > vm_cnt.v_free_count +
-	    vm_cnt.v_cache_count);
+	return (vm_cnt.v_free_severe > vm_cnt.v_free_count);
 }
 
 /*
@@ -147,7 +146,7 @@ static inline int
 vm_page_count_min(void)
 {
 
-	return (vm_cnt.v_free_min > vm_cnt.v_free_count + vm_cnt.v_cache_count);
+	return (vm_cnt.v_free_min > vm_cnt.v_free_count);
 }
 
 /*
@@ -158,8 +157,7 @@ static inline int
 vm_page_count_target(void)
 {
 
-	return (vm_cnt.v_free_target > vm_cnt.v_free_count +
-	    vm_cnt.v_cache_count);
+	return (vm_cnt.v_free_target > vm_cnt.v_free_count);
 }
 
 /*
@@ -170,8 +168,7 @@ static inline int
 vm_paging_target(void)
 {
 
-	return (vm_cnt.v_free_target - (vm_cnt.v_free_count +
-	    vm_cnt.v_cache_count));
+	return (vm_cnt.v_free_target - vm_cnt.v_free_count);
 }
 
 /*
@@ -181,8 +178,7 @@ static inline int
 vm_paging_needed(void)
 {
 
-	return (vm_cnt.v_free_count + vm_cnt.v_cache_count <
-	    (u_int)vm_pageout_wakeup_thresh);
+	return (vm_cnt.v_free_count < vm_pageout_wakeup_thresh);
 }
 
 /*

Modified: stable/11/sys/vm/swap_pager.c
==============================================================================
--- stable/11/sys/vm/swap_pager.c	Mon Jul  3 15:56:45 2017	(r320604)
+++ stable/11/sys/vm/swap_pager.c	Mon Jul  3 16:40:05 2017	(r320605)
@@ -2281,10 +2281,8 @@ swapoff_one(struct swdevt *sp, struct ucred *cred)
 	 * of data we will have to page back in, plus an epsilon so
 	 * the system doesn't become critically low on swap space.
 	 */
-	if (vm_cnt.v_free_count + vm_cnt.v_cache_count + swap_pager_avail <
-	    nblks + nswap_lowat) {
+	if (vm_cnt.v_free_count + swap_pager_avail < nblks + nswap_lowat)
 		return (ENOMEM);
-	}
 
 	/*
 	 * Prevent further allocations on this device.

Modified: stable/11/sys/vm/vm_meter.c
==============================================================================
--- stable/11/sys/vm/vm_meter.c	Mon Jul  3 15:56:45 2017	(r320604)
+++ stable/11/sys/vm/vm_meter.c	Mon Jul  3 16:40:05 2017	(r320605)
@@ -204,7 +204,7 @@ vmtotal(SYSCTL_HANDLER_ARGS)
 		}
 	}
 	mtx_unlock(&vm_object_list_mtx);
-	total.t_free = vm_cnt.v_free_count + vm_cnt.v_cache_count;
+	total.t_free = vm_cnt.v_free_count;
 	return (sysctl_handle_opaque(oidp, &total, sizeof(total), req));
 }
 

Modified: stable/11/sys/vm/vm_page.c
==============================================================================
--- stable/11/sys/vm/vm_page.c	Mon Jul  3 15:56:45 2017	(r320604)
+++ stable/11/sys/vm/vm_page.c	Mon Jul  3 16:40:05 2017	(r320605)
@@ -1561,11 +1561,11 @@ vm_page_alloc(vm_object_t object, vm_pindex_t pindex, 
 	 * for the request class.
 	 */
 	mtx_lock(&vm_page_queue_free_mtx);
-	if (vm_cnt.v_free_count + vm_cnt.v_cache_count > vm_cnt.v_free_reserved ||
+	if (vm_cnt.v_free_count > vm_cnt.v_free_reserved ||
 	    (req_class == VM_ALLOC_SYSTEM &&
-	    vm_cnt.v_free_count + vm_cnt.v_cache_count > vm_cnt.v_interrupt_free_min) ||
+	    vm_cnt.v_free_count > vm_cnt.v_interrupt_free_min) ||
 	    (req_class == VM_ALLOC_INTERRUPT &&
-	    vm_cnt.v_free_count + vm_cnt.v_cache_count > 0)) {
+	    vm_cnt.v_free_count > 0)) {
 		/*
 		 * Can we allocate the page from a reservation?
 		 */
@@ -1752,11 +1752,11 @@ vm_page_alloc_contig(vm_object_t object, vm_pindex_t p
 	 * below the lower bound for the allocation class?
 	 */
 	mtx_lock(&vm_page_queue_free_mtx);
-	if (vm_cnt.v_free_count + vm_cnt.v_cache_count >= npages +
-	    vm_cnt.v_free_reserved || (req_class == VM_ALLOC_SYSTEM &&
-	    vm_cnt.v_free_count + vm_cnt.v_cache_count >= npages +
-	    vm_cnt.v_interrupt_free_min) || (req_class == VM_ALLOC_INTERRUPT &&
-	    vm_cnt.v_free_count + vm_cnt.v_cache_count >= npages)) {
+	if (vm_cnt.v_free_count >= npages + vm_cnt.v_free_reserved ||
+	    (req_class == VM_ALLOC_SYSTEM &&
+	    vm_cnt.v_free_count >= npages + vm_cnt.v_interrupt_free_min) ||
+	    (req_class == VM_ALLOC_INTERRUPT &&
+	    vm_cnt.v_free_count >= npages)) {
 		/*
 		 * Can we allocate the pages from a reservation?
 		 */
@@ -1916,11 +1916,11 @@ vm_page_alloc_freelist(int flind, int req)
 	 * Do not allocate reserved pages unless the req has asked for it.
 	 */
 	mtx_lock(&vm_page_queue_free_mtx);
-	if (vm_cnt.v_free_count + vm_cnt.v_cache_count > vm_cnt.v_free_reserved ||
+	if (vm_cnt.v_free_count > vm_cnt.v_free_reserved ||
 	    (req_class == VM_ALLOC_SYSTEM &&
-	    vm_cnt.v_free_count + vm_cnt.v_cache_count > vm_cnt.v_interrupt_free_min) ||
+	    vm_cnt.v_free_count > vm_cnt.v_interrupt_free_min) ||
 	    (req_class == VM_ALLOC_INTERRUPT &&
-	    vm_cnt.v_free_count + vm_cnt.v_cache_count > 0))
+	    vm_cnt.v_free_count > 0))
 		m = vm_phys_alloc_freelist_pages(flind, VM_FREEPOOL_DIRECT, 0);
 	else {
 		mtx_unlock(&vm_page_queue_free_mtx);
@@ -2448,7 +2448,7 @@ vm_page_reclaim_contig(int req, u_long npages, vm_padd
 	 * Return if the number of free pages cannot satisfy the requested
 	 * allocation.
 	 */
-	count = vm_cnt.v_free_count + vm_cnt.v_cache_count;
+	count = vm_cnt.v_free_count;
 	if (count < npages + vm_cnt.v_free_reserved || (count < npages +
 	    vm_cnt.v_interrupt_free_min && req_class == VM_ALLOC_SYSTEM) ||
 	    (count < npages && req_class == VM_ALLOC_INTERRUPT))
@@ -2731,7 +2731,7 @@ vm_page_free_wakeup(void)
 	 * some free.
 	 */
 	if (vm_pageout_pages_needed &&
-	    vm_cnt.v_cache_count + vm_cnt.v_free_count >= vm_cnt.v_pageout_free_min) {
+	    vm_cnt.v_free_count >= vm_cnt.v_pageout_free_min) {
 		wakeup(&vm_pageout_pages_needed);
 		vm_pageout_pages_needed = 0;
 	}
@@ -3570,8 +3570,8 @@ vm_page_assert_pga_writeable(vm_page_t m, uint8_t bits
 
 DB_SHOW_COMMAND(page, vm_page_print_page_info)
 {
+
 	db_printf("vm_cnt.v_free_count: %d\n", vm_cnt.v_free_count);
-	db_printf("vm_cnt.v_cache_count: %d\n", vm_cnt.v_cache_count);
 	db_printf("vm_cnt.v_inactive_count: %d\n", vm_cnt.v_inactive_count);
 	db_printf("vm_cnt.v_active_count: %d\n", vm_cnt.v_active_count);
 	db_printf("vm_cnt.v_laundry_count: %d\n", vm_cnt.v_laundry_count);
@@ -3586,8 +3586,7 @@ DB_SHOW_COMMAND(pageq, vm_page_print_pageq_info)
 {
 	int dom;
 
-	db_printf("pq_free %d pq_cache %d\n",
-	    vm_cnt.v_free_count, vm_cnt.v_cache_count);
+	db_printf("pq_free %d\n", vm_cnt.v_free_count);
 	for (dom = 0; dom < vm_ndomains; dom++) {
 		db_printf(
 	    "dom %d page_cnt %d free %d pq_act %d pq_inact %d pq_laund %d\n",

Modified: stable/11/sys/vm/vnode_pager.c
==============================================================================
--- stable/11/sys/vm/vnode_pager.c	Mon Jul  3 15:56:45 2017	(r320604)
+++ stable/11/sys/vm/vnode_pager.c	Mon Jul  3 16:40:05 2017	(r320605)
@@ -1124,8 +1124,7 @@ vnode_pager_putpages(vm_object_t object, vm_page_t *m,
 	 * daemon up.  This should be probably be addressed XXX.
 	 */
 
-	if (vm_cnt.v_free_count + vm_cnt.v_cache_count <
-	    vm_cnt.v_pageout_free_min)
+	if (vm_cnt.v_free_count < vm_cnt.v_pageout_free_min)
 		flags |= VM_PAGER_PUT_SYNC;
 
 	/*

From owner-svn-src-stable@freebsd.org  Mon Jul  3 18:42:27 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 81B549ED3A7;
 Mon,  3 Jul 2017 18:42:27 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 4EB917C325;
 Mon,  3 Jul 2017 18:42:27 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v63IgQrZ045904;
 Mon, 3 Jul 2017 18:42:26 GMT (envelope-from markj@FreeBSD.org)
Received: (from markj@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v63IgQuX045902;
 Mon, 3 Jul 2017 18:42:26 GMT (envelope-from markj@FreeBSD.org)
Message-Id: <201707031842.v63IgQuX045902@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: markj set sender to
 markj@FreeBSD.org using -f
From: Mark Johnston <markj@FreeBSD.org>
Date: Mon, 3 Jul 2017 18:42:26 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320610 - in stable/11/sys: sys vm
X-SVN-Group: stable-11
X-SVN-Commit-Author: markj
X-SVN-Commit-Paths: in stable/11/sys: sys vm
X-SVN-Commit-Revision: 320610
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 03 Jul 2017 18:42:27 -0000

Author: markj
Date: Mon Jul  3 18:42:26 2017
New Revision: 320610
URL: https://svnweb.freebsd.org/changeset/base/320610

Log:
  MFC r303052:
  Make vm_pageout_wakeup_thresh a u_int rather than an int.

Modified:
  stable/11/sys/sys/vmmeter.h
  stable/11/sys/vm/vm_pageout.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/sys/vmmeter.h
==============================================================================
--- stable/11/sys/sys/vmmeter.h	Mon Jul  3 18:23:35 2017	(r320609)
+++ stable/11/sys/sys/vmmeter.h	Mon Jul  3 18:42:26 2017	(r320610)
@@ -118,7 +118,7 @@ struct vmmeter {
 
 extern struct vmmeter vm_cnt;
 
-extern int vm_pageout_wakeup_thresh;
+extern u_int vm_pageout_wakeup_thresh;
 
 /*
  * Return TRUE if we are under our severe low-free-pages threshold

Modified: stable/11/sys/vm/vm_pageout.c
==============================================================================
--- stable/11/sys/vm/vm_pageout.c	Mon Jul  3 18:23:35 2017	(r320609)
+++ stable/11/sys/vm/vm_pageout.c	Mon Jul  3 18:42:26 2017	(r320610)
@@ -159,7 +159,7 @@ SYSINIT(vmdaemon, SI_SUB_KTHREAD_VM, SI_ORDER_FIRST, k
 #define	VM_INACT_SCAN_RATE	2
 
 int vm_pageout_deficit;		/* Estimated number of pages deficit */
-int vm_pageout_wakeup_thresh;
+u_int vm_pageout_wakeup_thresh;
 static int vm_pageout_oom_seq = 12;
 bool vm_pageout_wanted;		/* Event on which pageout daemon sleeps */
 bool vm_pages_needed;		/* Are threads waiting for free pages? */

From owner-svn-src-stable@freebsd.org  Mon Jul  3 19:46:14 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 48B989EE8C1;
 Mon,  3 Jul 2017 19:46:14 +0000 (UTC)
 (envelope-from rmacklem@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 229507F072;
 Mon,  3 Jul 2017 19:46:14 +0000 (UTC)
 (envelope-from rmacklem@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v63JkDv0072827;
 Mon, 3 Jul 2017 19:46:13 GMT (envelope-from rmacklem@FreeBSD.org)
Received: (from rmacklem@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v63JkCUS072818;
 Mon, 3 Jul 2017 19:46:12 GMT (envelope-from rmacklem@FreeBSD.org)
Message-Id: <201707031946.v63JkCUS072818@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to
 rmacklem@FreeBSD.org using -f
From: Rick Macklem <rmacklem@FreeBSD.org>
Date: Mon, 3 Jul 2017 19:46:12 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320615 - in stable/11/sys: fs/nfs fs/nfsclient kern sys
X-SVN-Group: stable-11
X-SVN-Commit-Author: rmacklem
X-SVN-Commit-Paths: in stable/11/sys: fs/nfs fs/nfsclient kern sys
X-SVN-Commit-Revision: 320615
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 03 Jul 2017 19:46:14 -0000

Author: rmacklem
Date: Mon Jul  3 19:46:12 2017
New Revision: 320615
URL: https://svnweb.freebsd.org/changeset/base/320615

Log:
  MFC: r319882, r320062, r320070, r320126
  Make MAXBCACHEBUF a tunable called vfs.maxbcachebuf.
  
  By making MAXBCACHEBUF a tunable, it can be increased to allow for
  larger read/write data sizes for the NFS client.
  The tunable is limited to MAXPHYS, which is currently 128K.
  Making MAXPHYS a tunable or increasing its value is being discussed,
  since it would be nice to support a read/write data size of 1Mbyte
  for the NFS client when mounting the AmazonEFS file service.
  
  Also, define NFS_MAXXDR as the upper bound on XDR overhead in an NFS RPC.

Modified:
  stable/11/sys/fs/nfs/nfs_commonkrpc.c
  stable/11/sys/fs/nfs/nfsport.h
  stable/11/sys/fs/nfs/nfsproto.h
  stable/11/sys/fs/nfsclient/nfs_clrpcops.c
  stable/11/sys/kern/vfs_bio.c
  stable/11/sys/sys/buf.h
  stable/11/sys/sys/param.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/fs/nfs/nfs_commonkrpc.c
==============================================================================
--- stable/11/sys/fs/nfs/nfs_commonkrpc.c	Mon Jul  3 19:39:58 2017	(r320614)
+++ stable/11/sys/fs/nfs/nfs_commonkrpc.c	Mon Jul  3 19:46:12 2017	(r320615)
@@ -161,7 +161,7 @@ newnfs_connect(struct nfsmount *nmp, struct nfssockreq
     struct ucred *cred, NFSPROC_T *p, int callback_retry_mult)
 {
 	int rcvreserve, sndreserve;
-	int pktscale;
+	int pktscale, pktscalesav;
 	struct sockaddr *saddr;
 	struct ucred *origcred;
 	CLIENT *client;
@@ -210,6 +210,7 @@ newnfs_connect(struct nfsmount *nmp, struct nfssockreq
 		pktscale = 2;
 	if (pktscale > 64)
 		pktscale = 64;
+	pktscalesav = pktscale;
 	/*
 	 * soreserve() can fail if sb_max is too small, so shrink pktscale
 	 * and try again if there is an error.
@@ -228,8 +229,12 @@ newnfs_connect(struct nfsmount *nmp, struct nfssockreq
 		goto out;
 	}
 	do {
-	    if (error != 0 && pktscale > 2)
+	    if (error != 0 && pktscale > 2) {
+		if (nmp != NULL && nrp->nr_sotype == SOCK_STREAM &&
+		    pktscale == pktscalesav)
+		    printf("Consider increasing kern.ipc.maxsockbuf\n");
 		pktscale--;
+	    }
 	    if (nrp->nr_sotype == SOCK_DGRAM) {
 		if (nmp != NULL) {
 			sndreserve = (NFS_MAXDGRAMDATA + NFS_MAXPKTHDR) *
@@ -243,15 +248,19 @@ newnfs_connect(struct nfsmount *nmp, struct nfssockreq
 		if (nrp->nr_sotype != SOCK_STREAM)
 			panic("nfscon sotype");
 		if (nmp != NULL) {
-			sndreserve = (NFS_MAXBSIZE + NFS_MAXPKTHDR +
+			sndreserve = (NFS_MAXBSIZE + NFS_MAXXDR +
 			    sizeof (u_int32_t)) * pktscale;
-			rcvreserve = (NFS_MAXBSIZE + NFS_MAXPKTHDR +
+			rcvreserve = (NFS_MAXBSIZE + NFS_MAXXDR +
 			    sizeof (u_int32_t)) * pktscale;
 		} else {
 			sndreserve = rcvreserve = 1024 * pktscale;
 		}
 	    }
 	    error = soreserve(so, sndreserve, rcvreserve);
+	    if (error != 0 && nmp != NULL && nrp->nr_sotype == SOCK_STREAM &&
+		pktscale <= 2)
+		printf("Must increase kern.ipc.maxsockbuf or reduce"
+		    " rsize, wsize\n");
 	} while (error != 0 && pktscale > 2);
 	soclose(so);
 	if (error) {

Modified: stable/11/sys/fs/nfs/nfsport.h
==============================================================================
--- stable/11/sys/fs/nfs/nfsport.h	Mon Jul  3 19:39:58 2017	(r320614)
+++ stable/11/sys/fs/nfs/nfsport.h	Mon Jul  3 19:46:12 2017	(r320615)
@@ -1022,7 +1022,7 @@ struct nfsreq {
 };
 
 #ifndef NFS_MAXBSIZE
-#define	NFS_MAXBSIZE	MAXBCACHEBUF
+#define	NFS_MAXBSIZE	(maxbcachebuf)
 #endif
 
 /*

Modified: stable/11/sys/fs/nfs/nfsproto.h
==============================================================================
--- stable/11/sys/fs/nfs/nfsproto.h	Mon Jul  3 19:39:58 2017	(r320614)
+++ stable/11/sys/fs/nfs/nfsproto.h	Mon Jul  3 19:46:12 2017	(r320615)
@@ -56,8 +56,22 @@
 #define	NFS_MAXDGRAMDATA 16384
 #define	NFS_MAXPATHLEN	1024
 #define	NFS_MAXNAMLEN	255
+/*
+ * Calculating the maximum XDR overhead for an NFS RPC isn't easy.
+ * NFS_MAXPKTHDR is antiquated and assumes AUTH_SYS over UDP.
+ * NFS_MAXXDR should be sufficient for all NFS versions over TCP.
+ * It includes:
+ * - Maximum RPC message header. It can include 2 400byte authenticators plus
+ *   a machine name of unlimited length, although it is usually relatively
+ *   small.
+ * - XDR overheads for the NFSv4 compound. This can include Owner and
+ *   Owner_group strings, which are usually fairly small, but are allowed
+ *   to be up to 1024 bytes each.
+ * 4096 is overkill, but should always be sufficient.
+ */
 #define	NFS_MAXPKTHDR	404
-#define	NFS_MAXPACKET	(NFS_SRVMAXIO + 2048)
+#define	NFS_MAXXDR	4096
+#define	NFS_MAXPACKET	(NFS_SRVMAXIO + NFS_MAXXDR)
 #define	NFS_MINPACKET	20
 #define	NFS_FABLKSIZE	512	/* Size in bytes of a block wrt fa_blocks */
 #define	NFSV4_MINORVERSION	0	/* V4 Minor version */

Modified: stable/11/sys/fs/nfsclient/nfs_clrpcops.c
==============================================================================
--- stable/11/sys/fs/nfsclient/nfs_clrpcops.c	Mon Jul  3 19:39:58 2017	(r320614)
+++ stable/11/sys/fs/nfsclient/nfs_clrpcops.c	Mon Jul  3 19:46:12 2017	(r320615)
@@ -4615,7 +4615,7 @@ nfsrpc_createsession(struct nfsmount *nmp, struct nfsc
     struct nfssockreq *nrp, uint32_t sequenceid, int mds, struct ucred *cred,
     NFSPROC_T *p)
 {
-	uint32_t crflags, *tl;
+	uint32_t crflags, maxval, *tl;
 	struct nfsrv_descript nfsd;
 	struct nfsrv_descript *nd = &nfsd;
 	int error, irdcnt;
@@ -4633,8 +4633,8 @@ nfsrpc_createsession(struct nfsmount *nmp, struct nfsc
 	/* Fill in fore channel attributes. */
 	NFSM_BUILD(tl, uint32_t *, 7 * NFSX_UNSIGNED);
 	*tl++ = 0;				/* Header pad size */
-	*tl++ = txdr_unsigned(100000);		/* Max request size */
-	*tl++ = txdr_unsigned(100000);		/* Max response size */
+	*tl++ = txdr_unsigned(nmp->nm_wsize + NFS_MAXXDR);/* Max request size */
+	*tl++ = txdr_unsigned(nmp->nm_rsize + NFS_MAXXDR);/* Max reply size */
 	*tl++ = txdr_unsigned(4096);		/* Max response size cached */
 	*tl++ = txdr_unsigned(20);		/* Max operations */
 	*tl++ = txdr_unsigned(64);		/* Max slots */
@@ -4681,7 +4681,26 @@ nfsrpc_createsession(struct nfsmount *nmp, struct nfsc
 
 		/* Get the fore channel slot count. */
 		NFSM_DISSECT(tl, uint32_t *, 7 * NFSX_UNSIGNED);
-		tl += 3;		/* Skip the other counts. */		
+		tl++;			/* Skip the header pad size. */
+
+		/* Make sure nm_wsize is small enough. */
+		maxval = fxdr_unsigned(uint32_t, *tl++);
+		while (maxval < nmp->nm_wsize + NFS_MAXXDR) {
+			if (nmp->nm_wsize > 8096)
+				nmp->nm_wsize /= 2;
+			else
+				break;
+		}
+
+		/* Make sure nm_rsize is small enough. */
+		maxval = fxdr_unsigned(uint32_t, *tl++);
+		while (maxval < nmp->nm_rsize + NFS_MAXXDR) {
+			if (nmp->nm_rsize > 8096)
+				nmp->nm_rsize /= 2;
+			else
+				break;
+		}
+
 		sep->nfsess_maxcache = fxdr_unsigned(int, *tl++);
 		tl++;
 		sep->nfsess_foreslots = fxdr_unsigned(uint16_t, *tl++);

Modified: stable/11/sys/kern/vfs_bio.c
==============================================================================
--- stable/11/sys/kern/vfs_bio.c	Mon Jul  3 19:39:58 2017	(r320614)
+++ stable/11/sys/kern/vfs_bio.c	Mon Jul  3 19:46:12 2017	(r320615)
@@ -131,6 +131,7 @@ static void bufkva_reclaim(vmem_t *, int);
 static void bufkva_free(struct buf *);
 static int buf_import(void *, void **, int, int);
 static void buf_release(void *, void **, int);
+static void maxbcachebuf_adjust(void);
 
 #if defined(COMPAT_FREEBSD4) || defined(COMPAT_FREEBSD5) || \
     defined(COMPAT_FREEBSD6) || defined(COMPAT_FREEBSD7)
@@ -245,6 +246,9 @@ SYSCTL_LONG(_vfs, OID_AUTO, barrierwrites, CTLFLAG_RW,
 SYSCTL_INT(_vfs, OID_AUTO, unmapped_buf_allowed, CTLFLAG_RD,
     &unmapped_buf_allowed, 0,
     "Permit the use of the unmapped i/o");
+int maxbcachebuf = MAXBCACHEBUF;
+SYSCTL_INT(_vfs, OID_AUTO, maxbcachebuf, CTLFLAG_RDTUN, &maxbcachebuf, 0,
+    "Maximum size of a buffer cache block");
 
 /*
  * This lock synchronizes access to bd_request.
@@ -856,6 +860,29 @@ bd_wakeup(void)
 }
 
 /*
+ * Adjust the maxbcachbuf tunable.
+ */
+static void
+maxbcachebuf_adjust(void)
+{
+	int i;
+
+	/*
+	 * maxbcachebuf must be a power of 2 >= MAXBSIZE.
+	 */
+	i = 2;
+	while (i * 2 <= maxbcachebuf)
+		i *= 2;
+	maxbcachebuf = i;
+	if (maxbcachebuf < MAXBSIZE)
+		maxbcachebuf = MAXBSIZE;
+	if (maxbcachebuf > MAXPHYS)
+		maxbcachebuf = MAXPHYS;
+	if (bootverbose != 0 && maxbcachebuf != MAXBCACHEBUF)
+		printf("maxbcachebuf=%d\n", maxbcachebuf);
+}
+
+/*
  * bd_speedup - speedup the buffer cache flushing code
  */
 void
@@ -902,6 +929,7 @@ kern_vfs_bio_buffer_alloc(caddr_t v, long physmem_est)
 	 */
 	physmem_est = physmem_est * (PAGE_SIZE / 1024);
 
+	maxbcachebuf_adjust();
 	/*
 	 * The nominal buffer size (and minimum KVA allocation) is BKVASIZE.
 	 * For the first 64MB of ram nominally allocate sufficient buffers to
@@ -1012,7 +1040,9 @@ bufinit(void)
 	struct buf *bp;
 	int i;
 
-	CTASSERT(MAXBCACHEBUF >= MAXBSIZE);
+	KASSERT(maxbcachebuf >= MAXBSIZE,
+	    ("maxbcachebuf (%d) must be >= MAXBSIZE (%d)\n", maxbcachebuf,
+	    MAXBSIZE));
 	mtx_init(&bqlocks[QUEUE_DIRTY], "bufq dirty lock", NULL, MTX_DEF);
 	mtx_init(&bqlocks[QUEUE_EMPTY], "bufq empty lock", NULL, MTX_DEF);
 	for (i = QUEUE_CLEAN; i < QUEUE_CLEAN + CLEAN_QUEUES; i++)
@@ -1059,7 +1089,7 @@ bufinit(void)
 	 * PAGE_SIZE.
 	 */
 	maxbufspace = (long)nbuf * BKVASIZE;
-	hibufspace = lmax(3 * maxbufspace / 4, maxbufspace - MAXBCACHEBUF * 10);
+	hibufspace = lmax(3 * maxbufspace / 4, maxbufspace - maxbcachebuf * 10);
 	lobufspace = (hibufspace / 20) * 19; /* 95% */
 	bufspacethresh = lobufspace + (hibufspace - lobufspace) / 2;
 
@@ -1071,9 +1101,9 @@ bufinit(void)
 	 * The lower 1 MiB limit is the historical upper limit for
 	 * hirunningspace.
 	 */
-	hirunningspace = lmax(lmin(roundup(hibufspace / 64, MAXBCACHEBUF),
+	hirunningspace = lmax(lmin(roundup(hibufspace / 64, maxbcachebuf),
 	    16 * 1024 * 1024), 1024 * 1024);
-	lorunningspace = roundup((hirunningspace * 2) / 3, MAXBCACHEBUF);
+	lorunningspace = roundup((hirunningspace * 2) / 3, maxbcachebuf);
 
 	/*
 	 * Limit the amount of malloc memory since it is wired permanently into
@@ -3498,9 +3528,9 @@ getblk(struct vnode *vp, daddr_t blkno, int size, int 
 	KASSERT((flags & (GB_UNMAPPED | GB_KVAALLOC)) != GB_KVAALLOC,
 	    ("GB_KVAALLOC only makes sense with GB_UNMAPPED"));
 	ASSERT_VOP_LOCKED(vp, "getblk");
-	if (size > MAXBCACHEBUF)
-		panic("getblk: size(%d) > MAXBCACHEBUF(%d)\n", size,
-		    MAXBCACHEBUF);
+	if (size > maxbcachebuf)
+		panic("getblk: size(%d) > maxbcachebuf(%d)\n", size,
+		    maxbcachebuf);
 	if (!unmapped_buf_allowed)
 		flags &= ~(GB_UNMAPPED | GB_KVAALLOC);
 

Modified: stable/11/sys/sys/buf.h
==============================================================================
--- stable/11/sys/sys/buf.h	Mon Jul  3 19:39:58 2017	(r320614)
+++ stable/11/sys/sys/buf.h	Mon Jul  3 19:46:12 2017	(r320615)
@@ -459,6 +459,7 @@ buf_countdeps(struct buf *bp, int i)
 extern int	nbuf;			/* The number of buffer headers */
 extern long	maxswzone;		/* Max KVA for swap structures */
 extern long	maxbcache;		/* Max KVA for buffer cache */
+extern int	maxbcachebuf;		/* Max buffer cache block size */
 extern long	runningbufspace;
 extern long	hibufspace;
 extern int	dirtybufthresh;

Modified: stable/11/sys/sys/param.h
==============================================================================
--- stable/11/sys/sys/param.h	Mon Jul  3 19:39:58 2017	(r320614)
+++ stable/11/sys/sys/param.h	Mon Jul  3 19:46:12 2017	(r320615)
@@ -244,9 +244,7 @@
  *		Filesystems can of course request smaller chunks.  Actual
  *		backing memory uses a chunk size of a page (PAGE_SIZE).
  *		The default value here can be overridden on a per-architecture
- *		basis by defining it in <machine/param.h>.  This should
- *		probably be done to increase its value, when MAXBCACHEBUF is
- *		defined as a larger value in <machine/param.h>.
+ *		basis by defining it in <machine/param.h>.
  *
  *		If you make BKVASIZE too small you risk seriously fragmenting
  *		the buffer KVM map which may slow things down a bit.  If you

From owner-svn-src-stable@freebsd.org  Mon Jul  3 20:12:32 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id AF80B9EF2E2;
 Mon,  3 Jul 2017 20:12:32 +0000 (UTC)
 (envelope-from rmacklem@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 78A417FFFF;
 Mon,  3 Jul 2017 20:12:32 +0000 (UTC)
 (envelope-from rmacklem@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v63KCVKb085020;
 Mon, 3 Jul 2017 20:12:31 GMT (envelope-from rmacklem@FreeBSD.org)
Received: (from rmacklem@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v63KCVat085019;
 Mon, 3 Jul 2017 20:12:31 GMT (envelope-from rmacklem@FreeBSD.org)
Message-Id: <201707032012.v63KCVat085019@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to
 rmacklem@FreeBSD.org using -f
From: Rick Macklem <rmacklem@FreeBSD.org>
Date: Mon, 3 Jul 2017 20:12: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: r320617 - stable/10/sys/fs/nfs
X-SVN-Group: stable-10
X-SVN-Commit-Author: rmacklem
X-SVN-Commit-Paths: stable/10/sys/fs/nfs
X-SVN-Commit-Revision: 320617
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 03 Jul 2017 20:12:32 -0000

Author: rmacklem
Date: Mon Jul  3 20:12:31 2017
New Revision: 320617
URL: https://svnweb.freebsd.org/changeset/base/320617

Log:
  MFC: r319882
  Define NFS_MAXXDR as the upper bound on XDR overhead in an NFS RPC.
  
  This definition is a part of the maxiotune2 patch that will be
  committed soon.

Modified:
  stable/10/sys/fs/nfs/nfsproto.h
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/fs/nfs/nfsproto.h
==============================================================================
--- stable/10/sys/fs/nfs/nfsproto.h	Mon Jul  3 19:49:25 2017	(r320616)
+++ stable/10/sys/fs/nfs/nfsproto.h	Mon Jul  3 20:12:31 2017	(r320617)
@@ -56,8 +56,22 @@
 #define	NFS_MAXDGRAMDATA 16384
 #define	NFS_MAXPATHLEN	1024
 #define	NFS_MAXNAMLEN	255
+/*
+ * Calculating the maximum XDR overhead for an NFS RPC isn't easy.
+ * NFS_MAXPKTHDR is antiquated and assumes AUTH_SYS over UDP.
+ * NFS_MAXXDR should be sufficient for all NFS versions over TCP.
+ * It includes:
+ * - Maximum RPC message header. It can include 2 400byte authenticators plus
+ *   a machine name of unlimited length, although it is usually relatively
+ *   small.
+ * - XDR overheads for the NFSv4 compound. This can include Owner and
+ *   Owner_group strings, which are usually fairly small, but are allowed
+ *   to be up to 1024 bytes each.
+ * 4096 is overkill, but should always be sufficient.
+ */
 #define	NFS_MAXPKTHDR	404
-#define	NFS_MAXPACKET	(NFS_SRVMAXIO + 2048)
+#define	NFS_MAXXDR	4096
+#define	NFS_MAXPACKET	(NFS_SRVMAXIO + NFS_MAXXDR)
 #define	NFS_MINPACKET	20
 #define	NFS_FABLKSIZE	512	/* Size in bytes of a block wrt fa_blocks */
 #define	NFSV4_MINORVERSION	0	/* V4 Minor version */

From owner-svn-src-stable@freebsd.org  Mon Jul  3 22:20:44 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0C1289F0D72;
 Mon,  3 Jul 2017 22:20:44 +0000 (UTC) (envelope-from alc@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id DA82083896;
 Mon,  3 Jul 2017 22:20:43 +0000 (UTC) (envelope-from alc@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v63MKhqa037186;
 Mon, 3 Jul 2017 22:20:43 GMT (envelope-from alc@FreeBSD.org)
Received: (from alc@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v63MKgta037182;
 Mon, 3 Jul 2017 22:20:42 GMT (envelope-from alc@FreeBSD.org)
Message-Id: <201707032220.v63MKgta037182@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: alc set sender to alc@FreeBSD.org
 using -f
From: Alan Cox <alc@FreeBSD.org>
Date: Mon, 3 Jul 2017 22:20:42 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320621 - in stable/11/sys: kern sys
X-SVN-Group: stable-11
X-SVN-Commit-Author: alc
X-SVN-Commit-Paths: in stable/11/sys: kern sys
X-SVN-Commit-Revision: 320621
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 03 Jul 2017 22:20:44 -0000

Author: alc
Date: Mon Jul  3 22:20:42 2017
New Revision: 320621
URL: https://svnweb.freebsd.org/changeset/base/320621

Log:
  MFC r319699
    When allocating swap blocks, if the available number of free blocks in a
    subtree is already zero, then setting the "largest contiguous free block"
    hint for that subtree to anything other than zero makes no sense.  (To be
    clear, assigning a value to the hint that is too large is not a correctness
    problem, only a pessimization.)
  
  MFC r319755
    blist_fill()'s return type is too narrow.  blist_fill() accepts a 64-bit
    quantity as the size of the range to fill, but returns a 32-bit quantity
    as the number of blocks that were allocated to fill that range.  This
    revision corrects that mismatch.
  
  MFC r319793
    Remove an unnecessary field from struct blist.  (The comment describing
    what this field represented was also inaccurate.)
  
    In r178792, blist_create() grew a malloc flag, allowing M_NOWAIT to be
    specified.  However, blist_create() was not modified to handle the
    possibility that a malloc() call failed.  Address this omission.
  
    Increase the width of the local variable "radix" to 64 bits.  This
    matches the width of the corresponding field in struct blist.

Modified:
  stable/11/sys/kern/subr_blist.c
  stable/11/sys/sys/blist.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/kern/subr_blist.c
==============================================================================
--- stable/11/sys/kern/subr_blist.c	Mon Jul  3 20:47:32 2017	(r320620)
+++ stable/11/sys/kern/subr_blist.c	Mon Jul  3 22:20:42 2017	(r320621)
@@ -127,8 +127,8 @@ static void blst_meta_free(blmeta_t *scan, daddr_t fre
 					daddr_t radix, int skip, daddr_t blk);
 static void blst_copy(blmeta_t *scan, daddr_t blk, daddr_t radix, 
 				daddr_t skip, blist_t dest, daddr_t count);
-static int blst_leaf_fill(blmeta_t *scan, daddr_t blk, int count);
-static int blst_meta_fill(blmeta_t *scan, daddr_t allocBlk, daddr_t count,
+static daddr_t blst_leaf_fill(blmeta_t *scan, daddr_t blk, int count);
+static daddr_t blst_meta_fill(blmeta_t *scan, daddr_t allocBlk, daddr_t count,
 				daddr_t radix, int skip, daddr_t blk);
 static daddr_t	blst_radix_init(blmeta_t *scan, daddr_t radix, 
 						int skip, daddr_t count);
@@ -156,7 +156,7 @@ blist_t 
 blist_create(daddr_t blocks, int flags)
 {
 	blist_t bl;
-	int radix;
+	daddr_t nodes, radix;
 	int skip = 0;
 
 	/*
@@ -170,13 +170,19 @@ blist_create(daddr_t blocks, int flags)
 	}
 
 	bl = malloc(sizeof(struct blist), M_SWAP, flags | M_ZERO);
+	if (bl == NULL)
+		return (NULL);
 
 	bl->bl_blocks = blocks;
 	bl->bl_radix = radix;
 	bl->bl_skip = skip;
-	bl->bl_rootblks = 1 +
-	    blst_radix_init(NULL, bl->bl_radix, bl->bl_skip, blocks);
-	bl->bl_root = malloc(sizeof(blmeta_t) * bl->bl_rootblks, M_SWAP, flags);
+	nodes = 1 + blst_radix_init(NULL, radix, bl->bl_skip, blocks);
+	bl->bl_root = malloc(nodes * sizeof(blmeta_t), M_SWAP, flags);
+	if (bl->bl_root == NULL) {
+		free(bl, M_SWAP);
+		return (NULL);
+	}
+	blst_radix_init(bl->bl_root, radix, bl->bl_skip, blocks);
 
 #if defined(BLIST_DEBUG)
 	printf(
@@ -184,14 +190,13 @@ blist_create(daddr_t blocks, int flags)
 		", requiring %lldK of ram\n",
 		(long long)bl->bl_blocks,
 		(long long)bl->bl_blocks * 4 / 1024,
-		(long long)(bl->bl_rootblks * sizeof(blmeta_t) + 1023) / 1024
+		(long long)(nodes * sizeof(blmeta_t) + 1023) / 1024
 	);
 	printf("BLIST raw radix tree contains %lld records\n",
-	    (long long)bl->bl_rootblks);
+	    (long long)nodes);
 #endif
-	blst_radix_init(bl->bl_root, bl->bl_radix, bl->bl_skip, blocks);
 
-	return(bl);
+	return (bl);
 }
 
 void 
@@ -248,10 +253,10 @@ blist_free(blist_t bl, daddr_t blkno, daddr_t count)
  *			actually filled that were free before the call.
  */
 
-int
+daddr_t
 blist_fill(blist_t bl, daddr_t blkno, daddr_t count)
 {
-	int filled;
+	daddr_t filled;
 
 	if (bl) {
 		if (bl->bl_radix == BLIST_BMAP_RADIX)
@@ -419,7 +424,7 @@ blst_meta_alloc(
 		/*
 		 * ALL-ALLOCATED special case
 		 */
-		scan->bm_bighint = count;
+		scan->bm_bighint = 0;
 		return(SWAPBLK_NONE);
 	}
 
@@ -726,11 +731,11 @@ static void blst_copy(
  *	the number of blocks allocated by the call.
  */
 
-static int
+static daddr_t
 blst_leaf_fill(blmeta_t *scan, daddr_t blk, int count)
 {
 	int n = blk & (BLIST_BMAP_RADIX - 1);
-	int nblks;
+	daddr_t nblks;
 	u_daddr_t mask, bitmap;
 
 	mask = ((u_daddr_t)-1 << n) &
@@ -753,7 +758,7 @@ blst_leaf_fill(blmeta_t *scan, daddr_t blk, int count)
  *	range must be within the extent of this node.  Returns the
  *	number of blocks allocated by the call.
  */
-static int
+static daddr_t
 blst_meta_fill(
 	blmeta_t *scan,
 	daddr_t allocBlk,
@@ -764,7 +769,7 @@ blst_meta_fill(
 ) {
 	int i;
 	int next_skip = ((u_int)skip / BLIST_META_RADIX);
-	int nblks = 0;
+	daddr_t nblks = 0;
 
 	if (count > radix)
 		panic("blist_meta_fill: allocation too large");
@@ -774,7 +779,7 @@ blst_meta_fill(
 		 */
 		nblks = scan->u.bmu_avail;
 		scan->u.bmu_avail = 0;
-		scan->bm_bighint = count;
+		scan->bm_bighint = 0;
 		return nblks;
 	}
 
@@ -1047,8 +1052,8 @@ main(int ac, char **av)
 			break;
 		case 'l':
 			if (sscanf(buf + 1, "%llx %lld", &da, &count) == 2) {
-				printf("    n=%d\n",
-				    blist_fill(bl, da, count));
+				printf("    n=%jd\n",
+				    (intmax_t)blist_fill(bl, da, count));
 			} else {
 				printf("?\n");
 			}

Modified: stable/11/sys/sys/blist.h
==============================================================================
--- stable/11/sys/sys/blist.h	Mon Jul  3 20:47:32 2017	(r320620)
+++ stable/11/sys/sys/blist.h	Mon Jul  3 22:20:42 2017	(r320621)
@@ -84,7 +84,6 @@ typedef struct blist {
 	daddr_t		bl_skip;	/* starting skip		*/
 	daddr_t		bl_free;	/* number of free blocks	*/
 	blmeta_t	*bl_root;	/* root of radix tree		*/
-	daddr_t		bl_rootblks;	/* daddr_t blks allocated for tree */
 } *blist_t;
 
 #define BLIST_META_RADIX	16
@@ -96,7 +95,7 @@ extern blist_t blist_create(daddr_t blocks, int flags)
 extern void blist_destroy(blist_t blist);
 extern daddr_t blist_alloc(blist_t blist, daddr_t count);
 extern void blist_free(blist_t blist, daddr_t blkno, daddr_t count);
-extern int blist_fill(blist_t bl, daddr_t blkno, daddr_t count);
+extern daddr_t blist_fill(blist_t bl, daddr_t blkno, daddr_t count);
 extern void blist_print(blist_t blist);
 extern void blist_resize(blist_t *pblist, daddr_t count, int freenew, int flags);
 

From owner-svn-src-stable@freebsd.org  Mon Jul  3 22:21:45 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id C07579F0ED2;
 Mon,  3 Jul 2017 22:21:45 +0000 (UTC) (envelope-from alc@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 9904B83A6C;
 Mon,  3 Jul 2017 22:21:45 +0000 (UTC) (envelope-from alc@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v63MLiqT040307;
 Mon, 3 Jul 2017 22:21:44 GMT (envelope-from alc@FreeBSD.org)
Received: (from alc@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v63MLitR040305;
 Mon, 3 Jul 2017 22:21:44 GMT (envelope-from alc@FreeBSD.org)
Message-Id: <201707032221.v63MLitR040305@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: alc set sender to alc@FreeBSD.org
 using -f
From: Alan Cox <alc@FreeBSD.org>
Date: Mon, 3 Jul 2017 22:21: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: r320622 - in stable/10/sys: kern sys
X-SVN-Group: stable-10
X-SVN-Commit-Author: alc
X-SVN-Commit-Paths: in stable/10/sys: kern sys
X-SVN-Commit-Revision: 320622
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 03 Jul 2017 22:21:45 -0000

Author: alc
Date: Mon Jul  3 22:21:44 2017
New Revision: 320622
URL: https://svnweb.freebsd.org/changeset/base/320622

Log:
  MFC r319699
    When allocating swap blocks, if the available number of free blocks in a
    subtree is already zero, then setting the "largest contiguous free block"
    hint for that subtree to anything other than zero makes no sense.  (To be
    clear, assigning a value to the hint that is too large is not a correctness
    problem, only a pessimization.)
  
  MFC r319755
    blist_fill()'s return type is too narrow.  blist_fill() accepts a 64-bit
    quantity as the size of the range to fill, but returns a 32-bit quantity
    as the number of blocks that were allocated to fill that range.  This
    revision corrects that mismatch.
  
  MFC r319793
    Remove an unnecessary field from struct blist.  (The comment describing
    what this field represented was also inaccurate.)
  
    In r178792, blist_create() grew a malloc flag, allowing M_NOWAIT to be
    specified.  However, blist_create() was not modified to handle the
    possibility that a malloc() call failed.  Address this omission.
  
    Increase the width of the local variable "radix" to 64 bits.  This
    matches the width of the corresponding field in struct blist.

Modified:
  stable/10/sys/kern/subr_blist.c
  stable/10/sys/sys/blist.h
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/kern/subr_blist.c
==============================================================================
--- stable/10/sys/kern/subr_blist.c	Mon Jul  3 22:20:42 2017	(r320621)
+++ stable/10/sys/kern/subr_blist.c	Mon Jul  3 22:21:44 2017	(r320622)
@@ -127,8 +127,8 @@ static void blst_meta_free(blmeta_t *scan, daddr_t fre
 					daddr_t radix, int skip, daddr_t blk);
 static void blst_copy(blmeta_t *scan, daddr_t blk, daddr_t radix, 
 				daddr_t skip, blist_t dest, daddr_t count);
-static int blst_leaf_fill(blmeta_t *scan, daddr_t blk, int count);
-static int blst_meta_fill(blmeta_t *scan, daddr_t allocBlk, daddr_t count,
+static daddr_t blst_leaf_fill(blmeta_t *scan, daddr_t blk, int count);
+static daddr_t blst_meta_fill(blmeta_t *scan, daddr_t allocBlk, daddr_t count,
 				daddr_t radix, int skip, daddr_t blk);
 static daddr_t	blst_radix_init(blmeta_t *scan, daddr_t radix, 
 						int skip, daddr_t count);
@@ -156,7 +156,7 @@ blist_t 
 blist_create(daddr_t blocks, int flags)
 {
 	blist_t bl;
-	int radix;
+	daddr_t nodes, radix;
 	int skip = 0;
 
 	/*
@@ -170,13 +170,19 @@ blist_create(daddr_t blocks, int flags)
 	}
 
 	bl = malloc(sizeof(struct blist), M_SWAP, flags | M_ZERO);
+	if (bl == NULL)
+		return (NULL);
 
 	bl->bl_blocks = blocks;
 	bl->bl_radix = radix;
 	bl->bl_skip = skip;
-	bl->bl_rootblks = 1 +
-	    blst_radix_init(NULL, bl->bl_radix, bl->bl_skip, blocks);
-	bl->bl_root = malloc(sizeof(blmeta_t) * bl->bl_rootblks, M_SWAP, flags);
+	nodes = 1 + blst_radix_init(NULL, radix, bl->bl_skip, blocks);
+	bl->bl_root = malloc(nodes * sizeof(blmeta_t), M_SWAP, flags);
+	if (bl->bl_root == NULL) {
+		free(bl, M_SWAP);
+		return (NULL);
+	}
+	blst_radix_init(bl->bl_root, radix, bl->bl_skip, blocks);
 
 #if defined(BLIST_DEBUG)
 	printf(
@@ -184,14 +190,13 @@ blist_create(daddr_t blocks, int flags)
 		", requiring %lldK of ram\n",
 		(long long)bl->bl_blocks,
 		(long long)bl->bl_blocks * 4 / 1024,
-		(long long)(bl->bl_rootblks * sizeof(blmeta_t) + 1023) / 1024
+		(long long)(nodes * sizeof(blmeta_t) + 1023) / 1024
 	);
 	printf("BLIST raw radix tree contains %lld records\n",
-	    (long long)bl->bl_rootblks);
+	    (long long)nodes);
 #endif
-	blst_radix_init(bl->bl_root, bl->bl_radix, bl->bl_skip, blocks);
 
-	return(bl);
+	return (bl);
 }
 
 void 
@@ -248,10 +253,10 @@ blist_free(blist_t bl, daddr_t blkno, daddr_t count)
  *			actually filled that were free before the call.
  */
 
-int
+daddr_t
 blist_fill(blist_t bl, daddr_t blkno, daddr_t count)
 {
-	int filled;
+	daddr_t filled;
 
 	if (bl) {
 		if (bl->bl_radix == BLIST_BMAP_RADIX)
@@ -419,7 +424,7 @@ blst_meta_alloc(
 		/*
 		 * ALL-ALLOCATED special case
 		 */
-		scan->bm_bighint = count;
+		scan->bm_bighint = 0;
 		return(SWAPBLK_NONE);
 	}
 
@@ -726,11 +731,11 @@ static void blst_copy(
  *	the number of blocks allocated by the call.
  */
 
-static int
+static daddr_t
 blst_leaf_fill(blmeta_t *scan, daddr_t blk, int count)
 {
 	int n = blk & (BLIST_BMAP_RADIX - 1);
-	int nblks;
+	daddr_t nblks;
 	u_daddr_t mask, bitmap;
 
 	mask = ((u_daddr_t)-1 << n) &
@@ -753,7 +758,7 @@ blst_leaf_fill(blmeta_t *scan, daddr_t blk, int count)
  *	range must be within the extent of this node.  Returns the
  *	number of blocks allocated by the call.
  */
-static int
+static daddr_t
 blst_meta_fill(
 	blmeta_t *scan,
 	daddr_t allocBlk,
@@ -764,7 +769,7 @@ blst_meta_fill(
 ) {
 	int i;
 	int next_skip = ((u_int)skip / BLIST_META_RADIX);
-	int nblks = 0;
+	daddr_t nblks = 0;
 
 	if (count > radix)
 		panic("blist_meta_fill: allocation too large");
@@ -774,7 +779,7 @@ blst_meta_fill(
 		 */
 		nblks = scan->u.bmu_avail;
 		scan->u.bmu_avail = 0;
-		scan->bm_bighint = count;
+		scan->bm_bighint = 0;
 		return nblks;
 	}
 
@@ -1047,8 +1052,8 @@ main(int ac, char **av)
 			break;
 		case 'l':
 			if (sscanf(buf + 1, "%llx %lld", &da, &count) == 2) {
-				printf("    n=%d\n",
-				    blist_fill(bl, da, count));
+				printf("    n=%jd\n",
+				    (intmax_t)blist_fill(bl, da, count));
 			} else {
 				printf("?\n");
 			}

Modified: stable/10/sys/sys/blist.h
==============================================================================
--- stable/10/sys/sys/blist.h	Mon Jul  3 22:20:42 2017	(r320621)
+++ stable/10/sys/sys/blist.h	Mon Jul  3 22:21:44 2017	(r320622)
@@ -84,7 +84,6 @@ typedef struct blist {
 	daddr_t		bl_skip;	/* starting skip		*/
 	daddr_t		bl_free;	/* number of free blocks	*/
 	blmeta_t	*bl_root;	/* root of radix tree		*/
-	daddr_t		bl_rootblks;	/* daddr_t blks allocated for tree */
 } *blist_t;
 
 #define BLIST_META_RADIX	16
@@ -96,7 +95,7 @@ extern blist_t blist_create(daddr_t blocks, int flags)
 extern void blist_destroy(blist_t blist);
 extern daddr_t blist_alloc(blist_t blist, daddr_t count);
 extern void blist_free(blist_t blist, daddr_t blkno, daddr_t count);
-extern int blist_fill(blist_t bl, daddr_t blkno, daddr_t count);
+extern daddr_t blist_fill(blist_t bl, daddr_t blkno, daddr_t count);
 extern void blist_print(blist_t blist);
 extern void blist_resize(blist_t *pblist, daddr_t count, int freenew, int flags);
 

From owner-svn-src-stable@freebsd.org  Tue Jul  4 01:28:18 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id D1A969F3B70;
 Tue,  4 Jul 2017 01:28:18 +0000 (UTC)
 (envelope-from rmacklem@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id AD7B564604;
 Tue,  4 Jul 2017 01:28:18 +0000 (UTC)
 (envelope-from rmacklem@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v641SHjK016543;
 Tue, 4 Jul 2017 01:28:17 GMT (envelope-from rmacklem@FreeBSD.org)
Received: (from rmacklem@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v641SHCx016540;
 Tue, 4 Jul 2017 01:28:17 GMT (envelope-from rmacklem@FreeBSD.org)
Message-Id: <201707040128.v641SHCx016540@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to
 rmacklem@FreeBSD.org using -f
From: Rick Macklem <rmacklem@FreeBSD.org>
Date: Tue, 4 Jul 2017 01:28: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: r320637 - in stable/10/sys: fs/nfs fs/nfsclient sys
X-SVN-Group: stable-10
X-SVN-Commit-Author: rmacklem
X-SVN-Commit-Paths: in stable/10/sys: fs/nfs fs/nfsclient sys
X-SVN-Commit-Revision: 320637
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 04 Jul 2017 01:28:18 -0000

Author: rmacklem
Date: Tue Jul  4 01:28:17 2017
New Revision: 320637
URL: https://svnweb.freebsd.org/changeset/base/320637

Log:
  MFC: r320062, r320070, r320126
  This is a partial merge of only the NFS changes and not the maxbcachebuf
  tunable.
  
  The NFS client changes make the code handle different I/O sizes more
  correctly. However, with the limit at 64K, they are not actually
  necessary.
  This MFC is mainly being done so that subsequent MFCs to the NFS
  code will merge easily.

Modified:
  stable/10/sys/fs/nfs/nfs_commonkrpc.c
  stable/10/sys/fs/nfsclient/nfs_clrpcops.c
  stable/10/sys/sys/param.h
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/fs/nfs/nfs_commonkrpc.c
==============================================================================
--- stable/10/sys/fs/nfs/nfs_commonkrpc.c	Tue Jul  4 01:23:36 2017	(r320636)
+++ stable/10/sys/fs/nfs/nfs_commonkrpc.c	Tue Jul  4 01:28:17 2017	(r320637)
@@ -162,7 +162,7 @@ newnfs_connect(struct nfsmount *nmp, struct nfssockreq
     struct ucred *cred, NFSPROC_T *p, int callback_retry_mult)
 {
 	int rcvreserve, sndreserve;
-	int pktscale;
+	int pktscale, pktscalesav;
 	struct sockaddr *saddr;
 	struct ucred *origcred;
 	CLIENT *client;
@@ -211,6 +211,7 @@ newnfs_connect(struct nfsmount *nmp, struct nfssockreq
 		pktscale = 2;
 	if (pktscale > 64)
 		pktscale = 64;
+	pktscalesav = pktscale;
 	/*
 	 * soreserve() can fail if sb_max is too small, so shrink pktscale
 	 * and try again if there is an error.
@@ -229,8 +230,12 @@ newnfs_connect(struct nfsmount *nmp, struct nfssockreq
 		goto out;
 	}
 	do {
-	    if (error != 0 && pktscale > 2)
+	    if (error != 0 && pktscale > 2) {
+		if (nmp != NULL && nrp->nr_sotype == SOCK_STREAM &&
+		    pktscale == pktscalesav)
+		    printf("Consider increasing kern.ipc.maxsockbuf\n");
 		pktscale--;
+	    }
 	    if (nrp->nr_sotype == SOCK_DGRAM) {
 		if (nmp != NULL) {
 			sndreserve = (NFS_MAXDGRAMDATA + NFS_MAXPKTHDR) *
@@ -244,15 +249,19 @@ newnfs_connect(struct nfsmount *nmp, struct nfssockreq
 		if (nrp->nr_sotype != SOCK_STREAM)
 			panic("nfscon sotype");
 		if (nmp != NULL) {
-			sndreserve = (NFS_MAXBSIZE + NFS_MAXPKTHDR +
+			sndreserve = (NFS_MAXBSIZE + NFS_MAXXDR +
 			    sizeof (u_int32_t)) * pktscale;
-			rcvreserve = (NFS_MAXBSIZE + NFS_MAXPKTHDR +
+			rcvreserve = (NFS_MAXBSIZE + NFS_MAXXDR +
 			    sizeof (u_int32_t)) * pktscale;
 		} else {
 			sndreserve = rcvreserve = 1024 * pktscale;
 		}
 	    }
 	    error = soreserve(so, sndreserve, rcvreserve);
+	    if (error != 0 && nmp != NULL && nrp->nr_sotype == SOCK_STREAM &&
+		pktscale <= 2)
+		printf("Must increase kern.ipc.maxsockbuf or reduce"
+		    " rsize, wsize\n");
 	} while (error != 0 && pktscale > 2);
 	soclose(so);
 	if (error) {

Modified: stable/10/sys/fs/nfsclient/nfs_clrpcops.c
==============================================================================
--- stable/10/sys/fs/nfsclient/nfs_clrpcops.c	Tue Jul  4 01:23:36 2017	(r320636)
+++ stable/10/sys/fs/nfsclient/nfs_clrpcops.c	Tue Jul  4 01:28:17 2017	(r320637)
@@ -4612,7 +4612,7 @@ nfsrpc_createsession(struct nfsmount *nmp, struct nfsc
     struct nfssockreq *nrp, uint32_t sequenceid, int mds, struct ucred *cred,
     NFSPROC_T *p)
 {
-	uint32_t crflags, *tl;
+	uint32_t crflags, maxval, *tl;
 	struct nfsrv_descript nfsd;
 	struct nfsrv_descript *nd = &nfsd;
 	int error, irdcnt;
@@ -4630,8 +4630,8 @@ nfsrpc_createsession(struct nfsmount *nmp, struct nfsc
 	/* Fill in fore channel attributes. */
 	NFSM_BUILD(tl, uint32_t *, 7 * NFSX_UNSIGNED);
 	*tl++ = 0;				/* Header pad size */
-	*tl++ = txdr_unsigned(100000);		/* Max request size */
-	*tl++ = txdr_unsigned(100000);		/* Max response size */
+	*tl++ = txdr_unsigned(nmp->nm_wsize + NFS_MAXXDR);/* Max request size */
+	*tl++ = txdr_unsigned(nmp->nm_rsize + NFS_MAXXDR);/* Max reply size */
 	*tl++ = txdr_unsigned(4096);		/* Max response size cached */
 	*tl++ = txdr_unsigned(20);		/* Max operations */
 	*tl++ = txdr_unsigned(64);		/* Max slots */
@@ -4678,7 +4678,26 @@ nfsrpc_createsession(struct nfsmount *nmp, struct nfsc
 
 		/* Get the fore channel slot count. */
 		NFSM_DISSECT(tl, uint32_t *, 7 * NFSX_UNSIGNED);
-		tl += 3;		/* Skip the other counts. */		
+		tl++;			/* Skip the header pad size. */
+
+		/* Make sure nm_wsize is small enough. */
+		maxval = fxdr_unsigned(uint32_t, *tl++);
+		while (maxval < nmp->nm_wsize + NFS_MAXXDR) {
+			if (nmp->nm_wsize > 8096)
+				nmp->nm_wsize /= 2;
+			else
+				break;
+		}
+
+		/* Make sure nm_rsize is small enough. */
+		maxval = fxdr_unsigned(uint32_t, *tl++);
+		while (maxval < nmp->nm_rsize + NFS_MAXXDR) {
+			if (nmp->nm_rsize > 8096)
+				nmp->nm_rsize /= 2;
+			else
+				break;
+		}
+
 		sep->nfsess_maxcache = fxdr_unsigned(int, *tl++);
 		tl++;
 		sep->nfsess_foreslots = fxdr_unsigned(uint16_t, *tl++);

Modified: stable/10/sys/sys/param.h
==============================================================================
--- stable/10/sys/sys/param.h	Tue Jul  4 01:23:36 2017	(r320636)
+++ stable/10/sys/sys/param.h	Tue Jul  4 01:28:17 2017	(r320637)
@@ -242,9 +242,7 @@
  *		Filesystems can of course request smaller chunks.  Actual
  *		backing memory uses a chunk size of a page (PAGE_SIZE).
  *		The default value here can be overridden on a per-architecture
- *		basis by defining it in <machine/param.h>.  This should
- *		probably be done to increase its value, when MAXBCACHEBUF is
- *		defined as a larger value in <machine/param.h>.
+ *		basis by defining it in <machine/param.h>.
  *
  *		If you make BKVASIZE too small you risk seriously fragmenting
  *		the buffer KVM map which may slow things down a bit.  If you

From owner-svn-src-stable@freebsd.org  Tue Jul  4 02:11:39 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8719A9F4A47;
 Tue,  4 Jul 2017 02:11:39 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140])
 (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 3FC8065757;
 Tue,  4 Jul 2017 02:11:39 +0000 (UTC)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1])
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id v642Bc6h048574;
 Mon, 3 Jul 2017 19:11:38 -0700 (PDT)
 (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net)
Received: (from freebsd@localhost)
 by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id v642BcKX048573;
 Mon, 3 Jul 2017 19:11:38 -0700 (PDT) (envelope-from freebsd)
From: "Rodney W. Grimes" <freebsd@pdx.rh.CN85.dnsmgr.net>
Message-Id: <201707040211.v642BcKX048573@pdx.rh.CN85.dnsmgr.net>
Subject: Re: svn commit: r320222 - in stable/10: etc etc/cron.d etc/mtree
 etc/newsyslog.conf.d
 etc/pam.d etc/syslog.d tools/build/mk usr.sbin/cron/cron usr.sbin/cron/lib
 usr.sbin/syslogd
In-Reply-To: <f9d18800-4813-fccd-4955-17c71deafe8a@FreeBSD.org>
To: John Baldwin <jhb@freebsd.org>
Date: Mon, 3 Jul 2017 19:11:38 -0700 (PDT)
CC: "Ngie Cooper (yaneurabeya)" <yaneurabeya@gmail.com>,
 Ngie Cooper <ngie@freebsd.org>,
 src-committers <src-committers@freebsd.org>, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Reply-To: rgrimes@freebsd.org
X-Mailer: ELM [version 2.4ME+ PL121h (25)]
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=US-ASCII
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 04 Jul 2017 02:11:39 -0000

> On 6/22/17 4:02 AM, Ngie Cooper (yaneurabeya) wrote:
> > 
> >> On Jun 22, 2017, at 00:35, John Baldwin <jhb@freebsd.org> wrote:
> > 
> > ?
> > 
> >> Please revert the breakout of the existing config files.  I think that splitting
> >> up the conf files is too disruptive of a change (POLA) for stable branches.
> > 
> > 	Done in r320229 and r320230.
> 
> I haven't checked if this was merged to 11, but if so, I think they should also
> stay a single conf file in 11 for the same reason.


I believe it WAS merged to 10, since that didnt get gated by a request
to RE@, can we please get the splitting of these files backed out
of the stable/10 branch?

> >> This was agreed to by other folks in the followup thread to the commits in
> >> head that you continue to ignore.
> > 
> > 
> >> In head please either fully split up the files or revert to a single file
> >> (another part of that thread you continue to ignore).
> > 
> > 	My eyes glazed over trying to read through all of the posts. I seem to have missed the point where a proposed change was made to split up the config files further. Could this please be summarized again?
> 
> I think that having the files partially split up is the worst of both
> worlds as folks writing config management rules, etc. have to use
> different approaches depending on the rule.  I think that is a headache
> and would rather have the config either be all in a single file, or all
> be split up into conf.d/ so that it is consistent.  I also think that
> when splitting up a conf file we should do it all at once so that there is
> only one painful /etc merge instead of several of them.

> 
> -- 
> John Baldwin
> 
> 

-- 
Rod Grimes                                                 rgrimes@freebsd.org

From owner-svn-src-stable@freebsd.org  Tue Jul  4 02:35:02 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id E20299F4F5B;
 Tue,  4 Jul 2017 02:35:02 +0000 (UTC)
 (envelope-from yaneurabeya@gmail.com)
Received: from mail-it0-x244.google.com (mail-it0-x244.google.com
 [IPv6:2607:f8b0:4001:c0b::244])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id 9C5EE6605E;
 Tue,  4 Jul 2017 02:35:02 +0000 (UTC)
 (envelope-from yaneurabeya@gmail.com)
Received: by mail-it0-x244.google.com with SMTP id 188so10225257itx.0;
 Mon, 03 Jul 2017 19:35:02 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:subject:from:in-reply-to:date:cc
 :content-transfer-encoding:message-id:references:to;
 bh=6YTkbG1h+KN8l6o76YVCxh/zbeA/qJ9nCRo/MdT3YrM=;
 b=d5RrRQhgUDofEvF5ac5SjyKcgDk1ppfxjsv4bZICiYUrd4yfOfBMsrGtMsCG0c3yIW
 4DLehh31UKZEXCw9n0l36nNp0HQxq5/Ki5h4gryeKu9drWQv6AuWRLMbgoicpuZGxj2P
 FBed/pSVu78iFyyBxaG/awzc3WhD+oc9Cl1tFs5GJp6w+puRl2QJ/W176/lck4KdkrRW
 PDmEqC1G5+9GdHieH/bPd1vAXQTKXnJqPVu/wzn7rCPm/CDM7kLrBr5CAHVm1rv5z3lx
 8dCVGrJtFkqRWt3KryfkcyQ6Xkt+HlnSPINX9aaIykVDa0rGuPxxuLGfwHnaP+0YEurH
 6cPQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc
 :content-transfer-encoding:message-id:references:to;
 bh=6YTkbG1h+KN8l6o76YVCxh/zbeA/qJ9nCRo/MdT3YrM=;
 b=AQEjpEX8DgF6LuZbs1ag3C8vA8HE7TfGit8GO4wVV3df1SOccHRw6jeFQocRBM+oJ3
 UG1QeZ2Jvp5F2u96GxOT1Cxzamll+ktON2ErH0gUpbYft8SDeZxYD12MIAbU8jJ1QPp6
 RlNBi5KFIKgtQ8Fy+FDwuE8bmF/ohrCQqwimmXUDtXzZol/OtsNXSsTtAkBC7eGXJdf2
 Ns9N0bzs02O77Ddv/k3AII0lwC+TBImb0Gw9s+jP+F9mFnrQm1WF2N+oER/uRcT9CRz5
 UfmbjJSNj6QjENQ4p6lB3QrzC/M6lRlgEuYYMrRF1c9NCwSl23d+DqoUGCXzGTL3VsAq
 8XuQ==
X-Gm-Message-State: AKS2vOwMBghtNh44qp96ps0RFqxZj1CDzzKYoiCtfvJipHzUu1RM3MUC
 ERA3JCmGYZ1keCFPCDM=
X-Received: by 10.36.172.7 with SMTP id s7mr31864014ite.67.1499135701855;
 Mon, 03 Jul 2017 19:35:01 -0700 (PDT)
Received: from [192.168.20.13] (c-73-19-52-228.hsd1.wa.comcast.net.
 [73.19.52.228])
 by smtp.gmail.com with ESMTPSA id n19sm8462983ioe.3.2017.07.03.19.35.00
 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Mon, 03 Jul 2017 19:35:00 -0700 (PDT)
Content-Type: text/plain;
	charset=us-ascii
Mime-Version: 1.0 (1.0)
Subject: Re: svn commit: r320222 - in stable/10: etc etc/cron.d etc/mtree
 etc/newsyslog.conf.d etc/pam.d etc/syslog.d tools/build/mk usr.sbin/cron/cron
 usr.sbin/cron/lib usr.sbin/syslogd
From: Ngie Cooper <yaneurabeya@gmail.com>
X-Mailer: iPhone Mail (14F89)
In-Reply-To: <201707040211.v642BcKX048573@pdx.rh.CN85.dnsmgr.net>
Date: Mon, 3 Jul 2017 19:34:59 -0700
Cc: John Baldwin <jhb@freebsd.org>, Ngie Cooper <ngie@freebsd.org>,
 src-committers <src-committers@freebsd.org>, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <B3A03902-6B2F-4D2A-AAF4-76F8B090EAEB@gmail.com>
References: <201707040211.v642BcKX048573@pdx.rh.CN85.dnsmgr.net>
To: rgrimes@freebsd.org
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 04 Jul 2017 02:35:03 -0000

On Jul 3, 2017, at 19:11, Rodney W. Grimes <freebsd@pdx.rh.CN85.dnsmgr.net> w=
rote:

...

> I believe it WAS merged to 10, since that didnt get gated by a request
> to RE@, can we please get the splitting of these files backed out
> of the stable/10 branch?

Please check again. It was backed out--just not in the same order/way.
Cheers,
-Ngie=

From owner-svn-src-stable@freebsd.org  Tue Jul  4 04:53:22 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id CBF879F7125;
 Tue,  4 Jul 2017 04:53:22 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 921316A279;
 Tue,  4 Jul 2017 04:53:22 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v644rLjB003458;
 Tue, 4 Jul 2017 04:53:21 GMT (envelope-from kib@FreeBSD.org)
Received: (from kib@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v644rLOL003457;
 Tue, 4 Jul 2017 04:53:21 GMT (envelope-from kib@FreeBSD.org)
Message-Id: <201707040453.v644rLOL003457@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org
 using -f
From: Konstantin Belousov <kib@FreeBSD.org>
Date: Tue, 4 Jul 2017 04:53:21 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320638 - stable/11/sys/kern
X-SVN-Group: stable-11
X-SVN-Commit-Author: kib
X-SVN-Commit-Paths: stable/11/sys/kern
X-SVN-Commit-Revision: 320638
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 04 Jul 2017 04:53:22 -0000

Author: kib
Date: Tue Jul  4 04:53:21 2017
New Revision: 320638
URL: https://svnweb.freebsd.org/changeset/base/320638

Log:
  MFC r320422:
  Do not ignore an error from vm_mmap_object().

Modified:
  stable/11/sys/kern/uipc_shm.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/kern/uipc_shm.c
==============================================================================
--- stable/11/sys/kern/uipc_shm.c	Tue Jul  4 01:28:17 2017	(r320637)
+++ stable/11/sys/kern/uipc_shm.c	Tue Jul  4 04:53:21 2017	(r320638)
@@ -906,7 +906,7 @@ shm_mmap(struct file *fp, vm_map_t map, vm_offset_t *a
 	    shmfd->shm_object, foff, FALSE, td);
 	if (error != 0)
 		vm_object_deallocate(shmfd->shm_object);
-	return (0);
+	return (error);
 }
 
 static int

From owner-svn-src-stable@freebsd.org  Tue Jul  4 10:54:10 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4FE4AD8DC60;
 Tue,  4 Jul 2017 10:54:10 +0000 (UTC)
 (envelope-from andrew@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 1E77976E9E;
 Tue,  4 Jul 2017 10:54:10 +0000 (UTC)
 (envelope-from andrew@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v64As86R053636;
 Tue, 4 Jul 2017 10:54:08 GMT (envelope-from andrew@FreeBSD.org)
Received: (from andrew@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v64As8s9053635;
 Tue, 4 Jul 2017 10:54:08 GMT (envelope-from andrew@FreeBSD.org)
Message-Id: <201707041054.v64As8s9053635@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: andrew set sender to
 andrew@FreeBSD.org using -f
From: Andrew Turner <andrew@FreeBSD.org>
Date: Tue, 4 Jul 2017 10:54:08 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320641 - stable/11/sys/arm64/include
X-SVN-Group: stable-11
X-SVN-Commit-Author: andrew
X-SVN-Commit-Paths: stable/11/sys/arm64/include
X-SVN-Commit-Revision: 320641
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 04 Jul 2017 10:54:10 -0000

Author: andrew
Date: Tue Jul  4 10:54:08 2017
New Revision: 320641
URL: https://svnweb.freebsd.org/changeset/base/320641

Log:
  MFC r320403, r320497
  
  r320403:
  Some of the atomic_clear_* functions were incorrectly defined to be an
  atomic add. Correct these, fixing a NULL-pointer dereference in netgraph.
  
  PR:		220273
  Sponsored by:	DARPA, AFRL
  
  r320497:
  Remove a blank line accidentally added in r320403.

Modified:
  stable/11/sys/arm64/include/atomic.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/arm64/include/atomic.h
==============================================================================
--- stable/11/sys/arm64/include/atomic.h	Tue Jul  4 07:07:08 2017	(r320640)
+++ stable/11/sys/arm64/include/atomic.h	Tue Jul  4 10:54:08 2017	(r320641)
@@ -385,7 +385,7 @@ atomic_store_rel_64(volatile uint64_t *p, uint64_t val
 
 #define	atomic_add_rel_int		atomic_add_rel_32
 #define	atomic_fcmpset_rel_int		atomic_fcmpset_rel_32
-#define	atomic_clear_rel_int		atomic_add_rel_32
+#define	atomic_clear_rel_int		atomic_clear_rel_32
 #define	atomic_cmpset_rel_int		atomic_cmpset_rel_32
 #define	atomic_set_rel_int		atomic_set_rel_32
 #define	atomic_subtract_rel_int		atomic_subtract_rel_32
@@ -413,7 +413,7 @@ atomic_store_rel_64(volatile uint64_t *p, uint64_t val
 
 #define	atomic_add_acq_long		atomic_add_acq_64
 #define	atomic_fcmpset_acq_long		atomic_fcmpset_acq_64
-#define	atomic_clear_acq_long		atomic_add_acq_64
+#define	atomic_clear_acq_long		atomic_clear_acq_64
 #define	atomic_cmpset_acq_long		atomic_cmpset_acq_64
 #define	atomic_load_acq_long		atomic_load_acq_64
 #define	atomic_set_acq_long		atomic_set_acq_64
@@ -421,7 +421,7 @@ atomic_store_rel_64(volatile uint64_t *p, uint64_t val
 
 #define	atomic_add_acq_ptr		atomic_add_acq_64
 #define	atomic_fcmpset_acq_ptr		atomic_fcmpset_acq_64
-#define	atomic_clear_acq_ptr		atomic_add_acq_64
+#define	atomic_clear_acq_ptr		atomic_clear_acq_64
 #define	atomic_cmpset_acq_ptr		atomic_cmpset_acq_64
 #define	atomic_load_acq_ptr		atomic_load_acq_64
 #define	atomic_set_acq_ptr		atomic_set_acq_64

From owner-svn-src-stable@freebsd.org  Tue Jul  4 15:53:25 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id DF361D9492E;
 Tue,  4 Jul 2017 15:53:25 +0000 (UTC)
 (envelope-from allanjude@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id AE7387F342;
 Tue,  4 Jul 2017 15:53:25 +0000 (UTC)
 (envelope-from allanjude@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v64FrO3E082689;
 Tue, 4 Jul 2017 15:53:24 GMT (envelope-from allanjude@FreeBSD.org)
Received: (from allanjude@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v64FrOro082681;
 Tue, 4 Jul 2017 15:53:24 GMT (envelope-from allanjude@FreeBSD.org)
Message-Id: <201707041553.v64FrOro082681@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: allanjude set sender to
 allanjude@FreeBSD.org using -f
From: Allan Jude <allanjude@FreeBSD.org>
Date: Tue, 4 Jul 2017 15:53:24 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320645 - in stable/11: bin/rcp libexec/rlogind
 libexec/rshd usr.bin/rlogin usr.bin/rsh usr.bin/ruptime usr.bin/rwho
 usr.sbin/rwhod
X-SVN-Group: stable-11
X-SVN-Commit-Author: allanjude
X-SVN-Commit-Paths: in stable/11: bin/rcp libexec/rlogind libexec/rshd
 usr.bin/rlogin usr.bin/rsh usr.bin/ruptime usr.bin/rwho usr.sbin/rwhod
X-SVN-Commit-Revision: 320645
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 04 Jul 2017 15:53:26 -0000

Author: allanjude
Date: Tue Jul  4 15:53:23 2017
New Revision: 320645
URL: https://svnweb.freebsd.org/changeset/base/320645

Log:
  MFC r320644:
  	Add deprecation notices for all rcmd tools

Modified:
  stable/11/bin/rcp/rcp.1
  stable/11/libexec/rlogind/rlogind.8
  stable/11/libexec/rshd/rshd.8
  stable/11/usr.bin/rlogin/rlogin.1
  stable/11/usr.bin/rsh/rsh.1
  stable/11/usr.bin/ruptime/ruptime.1
  stable/11/usr.bin/rwho/rwho.1
  stable/11/usr.sbin/rwhod/rwhod.8
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/bin/rcp/rcp.1
==============================================================================
--- stable/11/bin/rcp/rcp.1	Tue Jul  4 15:44:30 2017	(r320644)
+++ stable/11/bin/rcp/rcp.1	Tue Jul  4 15:53:23 2017	(r320645)
@@ -29,7 +29,7 @@
 .\"	@(#)rcp.1	8.1 (Berkeley) 5/31/93
 .\" $FreeBSD$
 .\"
-.Dd October 16, 2002
+.Dd July 3, 2017
 .Dt RCP 1
 .Os
 .Sh NAME
@@ -43,6 +43,15 @@
 .Op Fl 46pr
 .Ar
 .Ar directory
+.Sh DEPRECATION NOTICE
+.Nm
+is deprecated and will be removed from future versions of the
+.Fx
+base system.
+If
+.Nm
+is still required, it can be installed from ports or packages
+(net/bsdrcmds).
 .Sh DESCRIPTION
 The
 .Nm

Modified: stable/11/libexec/rlogind/rlogind.8
==============================================================================
--- stable/11/libexec/rlogind/rlogind.8	Tue Jul  4 15:44:30 2017	(r320644)
+++ stable/11/libexec/rlogind/rlogind.8	Tue Jul  4 15:53:23 2017	(r320645)
@@ -28,7 +28,7 @@
 .\"     @(#)rlogind.8	8.1 (Berkeley) 6/4/93
 .\" $FreeBSD$
 .\"
-.Dd February 9, 2005
+.Dd July 3, 2017
 .Dt RLOGIND 8
 .Os
 .Sh NAME
@@ -37,6 +37,15 @@
 .Sh SYNOPSIS
 .Nm
 .Op Fl Daln
+.Sh DEPRECATION NOTICE
+.Nm
+is deprecated and will be removed from future versions of the
+.Fx
+base system.
+If
+.Nm
+is still required, it can be installed from ports or packages
+(net/bsdrcmds).
 .Sh DESCRIPTION
 The
 .Nm

Modified: stable/11/libexec/rshd/rshd.8
==============================================================================
--- stable/11/libexec/rshd/rshd.8	Tue Jul  4 15:44:30 2017	(r320644)
+++ stable/11/libexec/rshd/rshd.8	Tue Jul  4 15:53:23 2017	(r320645)
@@ -28,7 +28,7 @@
 .\"     @(#)rshd.8	8.1 (Berkeley) 6/4/93
 .\" $FreeBSD$
 .\"
-.Dd June 4, 1993
+.Dd July 3, 2017
 .Dt RSHD 8
 .Os
 .Sh NAME
@@ -37,6 +37,15 @@
 .Sh SYNOPSIS
 .Nm
 .Op Fl aDLln
+.Sh DEPRECATION NOTICE
+.Nm
+is deprecated and will be removed from future versions of the
+.Fx
+base system.
+If
+.Nm
+is still required, it can be installed from ports or packages
+(net/bsdrcmds).
 .Sh DESCRIPTION
 The
 .Nm

Modified: stable/11/usr.bin/rlogin/rlogin.1
==============================================================================
--- stable/11/usr.bin/rlogin/rlogin.1	Tue Jul  4 15:44:30 2017	(r320644)
+++ stable/11/usr.bin/rlogin/rlogin.1	Tue Jul  4 15:53:23 2017	(r320645)
@@ -28,7 +28,7 @@
 .\"	@(#)rlogin.1	8.1 (Berkeley) 6/6/93
 .\" $FreeBSD$
 .\"
-.Dd September 26, 2003
+.Dd July 3, 2017
 .Dt RLOGIN 1
 .Os
 .Sh NAME
@@ -41,6 +41,15 @@
 .Op Fl i Ar localname
 .Op Fl l Ar username
 .Ar host
+.Sh DEPRECATION NOTICE
+.Nm
+is deprecated and will be removed from future versions of the
+.Fx
+base system.
+If
+.Nm
+is still required, it can be installed from ports or packages
+(net/bsdrcmds).
 .Sh DESCRIPTION
 The
 .Nm

Modified: stable/11/usr.bin/rsh/rsh.1
==============================================================================
--- stable/11/usr.bin/rsh/rsh.1	Tue Jul  4 15:44:30 2017	(r320644)
+++ stable/11/usr.bin/rsh/rsh.1	Tue Jul  4 15:53:23 2017	(r320645)
@@ -28,7 +28,7 @@
 .\"	@(#)rsh.1	8.1 (Berkeley) 6/6/93
 .\" $FreeBSD$
 .\"
-.Dd October 16, 2002
+.Dd July 3, 2017
 .Dt RSH 1
 .Os
 .Sh NAME
@@ -41,6 +41,15 @@
 .Op Fl t Ar timeout
 .Ar host
 .Op command
+.Sh DEPRECATION NOTICE
+.Nm
+is deprecated and will be removed from future versions of the
+.Fx
+base system.
+If
+.Nm
+is still required, it can be installed from ports or packages
+(net/bsdrcmds).
 .Sh DESCRIPTION
 The
 .Nm

Modified: stable/11/usr.bin/ruptime/ruptime.1
==============================================================================
--- stable/11/usr.bin/ruptime/ruptime.1	Tue Jul  4 15:44:30 2017	(r320644)
+++ stable/11/usr.bin/ruptime/ruptime.1	Tue Jul  4 15:53:23 2017	(r320645)
@@ -28,7 +28,7 @@
 .\"     @(#)ruptime.1	8.2 (Berkeley) 4/5/94
 .\" $FreeBSD$
 .\"
-.Dd March 1, 2003
+.Dd July 3, 2017
 .Dt RUPTIME 1
 .Os
 .Sh NAME
@@ -38,6 +38,15 @@
 .Nm
 .Op Fl alrtu
 .Op Ar host ...
+.Sh DEPRECATION NOTICE
+.Nm
+is deprecated and will be removed from future versions of the
+.Fx
+base system.
+If
+.Nm
+is still required, it can be installed from ports or packages
+(net/bsdrcmds).
 .Sh DESCRIPTION
 The
 .Nm

Modified: stable/11/usr.bin/rwho/rwho.1
==============================================================================
--- stable/11/usr.bin/rwho/rwho.1	Tue Jul  4 15:44:30 2017	(r320644)
+++ stable/11/usr.bin/rwho/rwho.1	Tue Jul  4 15:53:23 2017	(r320645)
@@ -28,7 +28,7 @@
 .\"     @(#)rwho.1	8.1 (Berkeley) 6/6/93
 .\" $FreeBSD$
 .\"
-.Dd June 6, 1993
+.Dd July 3, 2017
 .Dt RWHO 1
 .Os
 .Sh NAME
@@ -37,6 +37,15 @@
 .Sh SYNOPSIS
 .Nm
 .Op Fl a
+.Sh DEPRECATION NOTICE
+.Nm
+is deprecated and will be removed from future versions of the
+.Fx
+base system.
+If
+.Nm
+is still required, it can be installed from ports or packages
+(net/bsdrcmds).
 .Sh DESCRIPTION
 The
 .Nm

Modified: stable/11/usr.sbin/rwhod/rwhod.8
==============================================================================
--- stable/11/usr.sbin/rwhod/rwhod.8	Tue Jul  4 15:44:30 2017	(r320644)
+++ stable/11/usr.sbin/rwhod/rwhod.8	Tue Jul  4 15:53:23 2017	(r320645)
@@ -28,7 +28,7 @@
 .\"     @(#)rwhod.8	8.2 (Berkeley) 12/11/93
 .\" $FreeBSD$
 .\"
-.Dd January 21, 2010
+.Dd July 3, 2017
 .Dt RWHOD 8
 .Os
 .Sh NAME
@@ -40,6 +40,15 @@
 .Op Fl p
 .Op Fl l
 .Op Fl m Op Ar ttl
+.Sh DEPRECATION NOTICE
+.Nm
+is deprecated and will be removed from future versions of the
+.Fx
+base system.
+If
+.Nm
+is still required, it can be installed from ports or packages
+(net/bsdrcmds).
 .Sh DESCRIPTION
 The
 .Nm

From owner-svn-src-stable@freebsd.org  Tue Jul  4 15:53:56 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 95496D94992;
 Tue,  4 Jul 2017 15:53:56 +0000 (UTC)
 (envelope-from allanjude@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 711F17F463;
 Tue,  4 Jul 2017 15:53:56 +0000 (UTC)
 (envelope-from allanjude@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v64FrtQq082793;
 Tue, 4 Jul 2017 15:53:55 GMT (envelope-from allanjude@FreeBSD.org)
Received: (from allanjude@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v64FrsE0082785;
 Tue, 4 Jul 2017 15:53:54 GMT (envelope-from allanjude@FreeBSD.org)
Message-Id: <201707041553.v64FrsE0082785@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: allanjude set sender to
 allanjude@FreeBSD.org using -f
From: Allan Jude <allanjude@FreeBSD.org>
Date: Tue, 4 Jul 2017 15:53:54 +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: r320646 - in stable/10: bin/rcp libexec/rlogind
 libexec/rshd usr.bin/rlogin usr.bin/rsh usr.bin/ruptime usr.bin/rwho
 usr.sbin/rwhod
X-SVN-Group: stable-10
X-SVN-Commit-Author: allanjude
X-SVN-Commit-Paths: in stable/10: bin/rcp libexec/rlogind libexec/rshd
 usr.bin/rlogin usr.bin/rsh usr.bin/ruptime usr.bin/rwho usr.sbin/rwhod
X-SVN-Commit-Revision: 320646
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Tue, 04 Jul 2017 15:53:56 -0000

Author: allanjude
Date: Tue Jul  4 15:53:54 2017
New Revision: 320646
URL: https://svnweb.freebsd.org/changeset/base/320646

Log:
  MFC r320644:
  	Add deprecation notices for all rcmd tools

Modified:
  stable/10/bin/rcp/rcp.1
  stable/10/libexec/rlogind/rlogind.8
  stable/10/libexec/rshd/rshd.8
  stable/10/usr.bin/rlogin/rlogin.1
  stable/10/usr.bin/rsh/rsh.1
  stable/10/usr.bin/ruptime/ruptime.1
  stable/10/usr.bin/rwho/rwho.1
  stable/10/usr.sbin/rwhod/rwhod.8
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/bin/rcp/rcp.1
==============================================================================
--- stable/10/bin/rcp/rcp.1	Tue Jul  4 15:53:23 2017	(r320645)
+++ stable/10/bin/rcp/rcp.1	Tue Jul  4 15:53:54 2017	(r320646)
@@ -29,7 +29,7 @@
 .\"	@(#)rcp.1	8.1 (Berkeley) 5/31/93
 .\" $FreeBSD$
 .\"
-.Dd October 16, 2002
+.Dd July 3, 2017
 .Dt RCP 1
 .Os
 .Sh NAME
@@ -43,6 +43,15 @@
 .Op Fl 46pr
 .Ar
 .Ar directory
+.Sh DEPRECATION NOTICE
+.Nm
+is deprecated and will be removed from future versions of the
+.Fx
+base system.
+If
+.Nm
+is still required, it can be installed from ports or packages
+(net/bsdrcmds).
 .Sh DESCRIPTION
 The
 .Nm

Modified: stable/10/libexec/rlogind/rlogind.8
==============================================================================
--- stable/10/libexec/rlogind/rlogind.8	Tue Jul  4 15:53:23 2017	(r320645)
+++ stable/10/libexec/rlogind/rlogind.8	Tue Jul  4 15:53:54 2017	(r320646)
@@ -28,7 +28,7 @@
 .\"     @(#)rlogind.8	8.1 (Berkeley) 6/4/93
 .\" $FreeBSD$
 .\"
-.Dd February 9, 2005
+.Dd July 3, 2017
 .Dt RLOGIND 8
 .Os
 .Sh NAME
@@ -37,6 +37,15 @@
 .Sh SYNOPSIS
 .Nm
 .Op Fl Daln
+.Sh DEPRECATION NOTICE
+.Nm
+is deprecated and will be removed from future versions of the
+.Fx
+base system.
+If
+.Nm
+is still required, it can be installed from ports or packages
+(net/bsdrcmds).
 .Sh DESCRIPTION
 The
 .Nm

Modified: stable/10/libexec/rshd/rshd.8
==============================================================================
--- stable/10/libexec/rshd/rshd.8	Tue Jul  4 15:53:23 2017	(r320645)
+++ stable/10/libexec/rshd/rshd.8	Tue Jul  4 15:53:54 2017	(r320646)
@@ -28,7 +28,7 @@
 .\"     @(#)rshd.8	8.1 (Berkeley) 6/4/93
 .\" $FreeBSD$
 .\"
-.Dd June 4, 1993
+.Dd July 3, 2017
 .Dt RSHD 8
 .Os
 .Sh NAME
@@ -37,6 +37,15 @@
 .Sh SYNOPSIS
 .Nm
 .Op Fl aDLln
+.Sh DEPRECATION NOTICE
+.Nm
+is deprecated and will be removed from future versions of the
+.Fx
+base system.
+If
+.Nm
+is still required, it can be installed from ports or packages
+(net/bsdrcmds).
 .Sh DESCRIPTION
 The
 .Nm

Modified: stable/10/usr.bin/rlogin/rlogin.1
==============================================================================
--- stable/10/usr.bin/rlogin/rlogin.1	Tue Jul  4 15:53:23 2017	(r320645)
+++ stable/10/usr.bin/rlogin/rlogin.1	Tue Jul  4 15:53:54 2017	(r320646)
@@ -28,7 +28,7 @@
 .\"	@(#)rlogin.1	8.1 (Berkeley) 6/6/93
 .\" $FreeBSD$
 .\"
-.Dd September 26, 2003
+.Dd July 3, 2017
 .Dt RLOGIN 1
 .Os
 .Sh NAME
@@ -41,6 +41,15 @@
 .Op Fl i Ar localname
 .Op Fl l Ar username
 .Ar host
+.Sh DEPRECATION NOTICE
+.Nm
+is deprecated and will be removed from future versions of the
+.Fx
+base system.
+If
+.Nm
+is still required, it can be installed from ports or packages
+(net/bsdrcmds).
 .Sh DESCRIPTION
 The
 .Nm

Modified: stable/10/usr.bin/rsh/rsh.1
==============================================================================
--- stable/10/usr.bin/rsh/rsh.1	Tue Jul  4 15:53:23 2017	(r320645)
+++ stable/10/usr.bin/rsh/rsh.1	Tue Jul  4 15:53:54 2017	(r320646)
@@ -28,7 +28,7 @@
 .\"	@(#)rsh.1	8.1 (Berkeley) 6/6/93
 .\" $FreeBSD$
 .\"
-.Dd October 16, 2002
+.Dd July 3, 2017
 .Dt RSH 1
 .Os
 .Sh NAME
@@ -41,6 +41,15 @@
 .Op Fl t Ar timeout
 .Ar host
 .Op command
+.Sh DEPRECATION NOTICE
+.Nm
+is deprecated and will be removed from future versions of the
+.Fx
+base system.
+If
+.Nm
+is still required, it can be installed from ports or packages
+(net/bsdrcmds).
 .Sh DESCRIPTION
 The
 .Nm

Modified: stable/10/usr.bin/ruptime/ruptime.1
==============================================================================
--- stable/10/usr.bin/ruptime/ruptime.1	Tue Jul  4 15:53:23 2017	(r320645)
+++ stable/10/usr.bin/ruptime/ruptime.1	Tue Jul  4 15:53:54 2017	(r320646)
@@ -28,7 +28,7 @@
 .\"     @(#)ruptime.1	8.2 (Berkeley) 4/5/94
 .\" $FreeBSD$
 .\"
-.Dd March 1, 2003
+.Dd July 3, 2017
 .Dt RUPTIME 1
 .Os
 .Sh NAME
@@ -38,6 +38,15 @@
 .Nm
 .Op Fl alrtu
 .Op Ar host ...
+.Sh DEPRECATION NOTICE
+.Nm
+is deprecated and will be removed from future versions of the
+.Fx
+base system.
+If
+.Nm
+is still required, it can be installed from ports or packages
+(net/bsdrcmds).
 .Sh DESCRIPTION
 The
 .Nm

Modified: stable/10/usr.bin/rwho/rwho.1
==============================================================================
--- stable/10/usr.bin/rwho/rwho.1	Tue Jul  4 15:53:23 2017	(r320645)
+++ stable/10/usr.bin/rwho/rwho.1	Tue Jul  4 15:53:54 2017	(r320646)
@@ -28,7 +28,7 @@
 .\"     @(#)rwho.1	8.1 (Berkeley) 6/6/93
 .\" $FreeBSD$
 .\"
-.Dd June 6, 1993
+.Dd July 3, 2017
 .Dt RWHO 1
 .Os
 .Sh NAME
@@ -37,6 +37,15 @@
 .Sh SYNOPSIS
 .Nm
 .Op Fl a
+.Sh DEPRECATION NOTICE
+.Nm
+is deprecated and will be removed from future versions of the
+.Fx
+base system.
+If
+.Nm
+is still required, it can be installed from ports or packages
+(net/bsdrcmds).
 .Sh DESCRIPTION
 The
 .Nm

Modified: stable/10/usr.sbin/rwhod/rwhod.8
==============================================================================
--- stable/10/usr.sbin/rwhod/rwhod.8	Tue Jul  4 15:53:23 2017	(r320645)
+++ stable/10/usr.sbin/rwhod/rwhod.8	Tue Jul  4 15:53:54 2017	(r320646)
@@ -28,7 +28,7 @@
 .\"     @(#)rwhod.8	8.2 (Berkeley) 12/11/93
 .\" $FreeBSD$
 .\"
-.Dd January 21, 2010
+.Dd July 3, 2017
 .Dt RWHOD 8
 .Os
 .Sh NAME
@@ -40,6 +40,15 @@
 .Op Fl p
 .Op Fl l
 .Op Fl m Op Ar ttl
+.Sh DEPRECATION NOTICE
+.Nm
+is deprecated and will be removed from future versions of the
+.Fx
+base system.
+If
+.Nm
+is still required, it can be installed from ports or packages
+(net/bsdrcmds).
 .Sh DESCRIPTION
 The
 .Nm

From owner-svn-src-stable@freebsd.org  Wed Jul  5 06:18:02 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 799BBDA32AB;
 Wed,  5 Jul 2017 06:18:02 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 332A674233;
 Wed,  5 Jul 2017 06:18:02 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v656I1MZ036028;
 Wed, 5 Jul 2017 06:18:01 GMT (envelope-from kib@FreeBSD.org)
Received: (from kib@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v656I0Hx036019;
 Wed, 5 Jul 2017 06:18:00 GMT (envelope-from kib@FreeBSD.org)
Message-Id: <201707050618.v656I0Hx036019@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org
 using -f
From: Konstantin Belousov <kib@FreeBSD.org>
Date: Wed, 5 Jul 2017 06:18:00 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320666 - in stable/11: lib/libc/sys sys/sys sys/vm
X-SVN-Group: stable-11
X-SVN-Commit-Author: kib
X-SVN-Commit-Paths: in stable/11: lib/libc/sys sys/sys sys/vm
X-SVN-Commit-Revision: 320666
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 05 Jul 2017 06:18:02 -0000

Author: kib
Date: Wed Jul  5 06:18:00 2017
New Revision: 320666
URL: https://svnweb.freebsd.org/changeset/base/320666

Log:
  Add MAP_GUARD and use it for stack grow area protection.
  Bump __FreeBSD_version.
  
  MFC r320317:
  Implement address space guards.
  
  MFC r320338:
  Remove stale part of the comment.
  
  MFC r320339:
  Correctly handle small MAP_STACK requests.
  
  MFC r320344:
  For now, allow mprotect(2) over the guards to succeed regardless of
  the requested protection.
  
  MFC r320430:
  Treat the addr argument for mmap(2) request without MAP_FIXED flag as
  a hint.
  
  MFC r320560 (by alc):
  Modify vm_map_growstack() to protect itself from the possibility of the
  gap entry in the vm map being smaller than the sysctl-derived stack guard
  size.

Modified:
  stable/11/lib/libc/sys/mmap.2
  stable/11/lib/libc/sys/munmap.2
  stable/11/sys/sys/mman.h
  stable/11/sys/sys/param.h
  stable/11/sys/vm/vm.h
  stable/11/sys/vm/vm_fault.c
  stable/11/sys/vm/vm_map.c
  stable/11/sys/vm/vm_map.h
  stable/11/sys/vm/vm_mmap.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/lib/libc/sys/mmap.2
==============================================================================
--- stable/11/lib/libc/sys/mmap.2	Wed Jul  5 06:12:21 2017	(r320665)
+++ stable/11/lib/libc/sys/mmap.2	Wed Jul  5 06:18:00 2017	(r320666)
@@ -199,6 +199,21 @@ In contrast, if
 .Dv MAP_EXCL
 is specified, the request will fail if a mapping
 already exists within the range.
+.It Dv MAP_GUARD
+Instead of a mapping, create a guard of the specified size.
+Guards allow a process to create reservations in its address space,
+which can later be replaced by actual mappings.
+.Pp
+.Fa mmap
+will not create mappings in the address range of a guard unless
+the request specifies
+.Dv MAP_FIXED .
+Guards can be destroyed with
+.Xr munmap 2 .
+Any memory access by a thread to the guarded range results
+in the delivery of a
+.Dv SIGSEGV
+signal to that thread.
 .It Dv MAP_NOCORE
 Region is not included in a core file.
 .It Dv MAP_NOSYNC
@@ -303,6 +318,7 @@ must include at least
 .Dv PROT_READ
 and
 .Dv PROT_WRITE .
+.Pp
 This option creates
 a memory region that grows to at most
 .Fa len
@@ -313,6 +329,10 @@ stack top is the starting address returned by the call
 bytes.
 The bottom of the stack at maximum growth is the starting
 address returned by the call.
+The system uses guards to prevent the inadvertent use of
+regions into which stacks created with
+.Dv MAP_STACK
+will automatically grow, without mapping the whole stack in advance.
 .El
 .Pp
 The
@@ -406,6 +426,7 @@ were specified.
 .It Bq Er EINVAL
 None of
 .Dv MAP_ANON ,
+.Dv MAP_GUARD ,
 .Dv MAP_PRIVATE ,
 .Dv MAP_SHARED ,
 or
@@ -455,6 +476,25 @@ were specified, but the requested region is already us
 was specified, but
 .Dv MAP_FIXED
 was not.
+.It Bq Er EINVAL
+.Dv MAP_GUARD
+was specified, but the
+.Fa offset
+argument was not zero, the
+.Fa fd
+argument was not -1, or the
+.Fa prot
+argument was not
+.Dv PROT_NONE .
+.It Bq Er EINVAL
+.Dv MAP_GUARD
+was specified together with one of the flags
+.Dv MAP_ANON ,
+.Dv MAP_PREFAULT ,
+.Dv MAP_PREFAULT_READ ,
+.Dv MAP_PRIVATE ,
+.Dv MAP_SHARED ,
+.Dv MAP_STACK .
 .It Bq Er ENODEV
 .Dv MAP_ANON
 has not been specified and

Modified: stable/11/lib/libc/sys/munmap.2
==============================================================================
--- stable/11/lib/libc/sys/munmap.2	Wed Jul  5 06:12:21 2017	(r320665)
+++ stable/11/lib/libc/sys/munmap.2	Wed Jul  5 06:18:00 2017	(r320666)
@@ -28,7 +28,7 @@
 .\"	@(#)munmap.2	8.3 (Berkeley) 5/27/94
 .\" $FreeBSD$
 .\"
-.Dd May 27, 1994
+.Dd June 22, 2017
 .Dt MUNMAP 2
 .Os
 .Sh NAME
@@ -44,7 +44,7 @@
 The
 .Fn munmap
 system call
-deletes the mappings for the specified address range,
+deletes the mappings and guards for the specified address range,
 and causes further references to addresses within the range
 to generate invalid memory references.
 .Sh RETURN VALUES

Modified: stable/11/sys/sys/mman.h
==============================================================================
--- stable/11/sys/sys/mman.h	Wed Jul  5 06:12:21 2017	(r320665)
+++ stable/11/sys/sys/mman.h	Wed Jul  5 06:18:00 2017	(r320666)
@@ -90,6 +90,7 @@
 /*
  * Extended flags
  */
+#define	MAP_GUARD	 0x00002000 /* reserve but don't map address range */
 #define	MAP_EXCL	 0x00004000 /* for MAP_FIXED, fail if address is used */
 #define	MAP_NOCORE	 0x00020000 /* dont include these pages in a coredump */
 #define	MAP_PREFAULT_READ 0x00040000 /* prefault mapping for reading */

Modified: stable/11/sys/sys/param.h
==============================================================================
--- stable/11/sys/sys/param.h	Wed Jul  5 06:12:21 2017	(r320665)
+++ stable/11/sys/sys/param.h	Wed Jul  5 06:18:00 2017	(r320666)
@@ -58,7 +58,7 @@
  *		in the range 5 to 9.
  */
 #undef __FreeBSD_version
-#define __FreeBSD_version 1101500	/* Master, propagated to newvers */
+#define __FreeBSD_version 1101501	/* Master, propagated to newvers */
 
 /*
  * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD,
@@ -76,12 +76,14 @@
 #undef __FreeBSD_kernel__
 #define __FreeBSD_kernel__
 
-#ifdef _KERNEL
+#if defined(_KERNEL) || defined(IN_RTLD)
 #define	P_OSREL_SIGWAIT			700000
 #define	P_OSREL_SIGSEGV			700004
 #define	P_OSREL_MAP_ANON		800104
 #define	P_OSREL_MAP_FSTRICT		1100036
 #define	P_OSREL_SHUTDOWN_ENOTCONN	1100077
+#define	P_OSREL_MAP_GUARD		1200035
+#define	P_OSREL_MAP_GUARD_11		1101501
 
 #define	P_OSREL_MAJOR(x)		((x) / 100000)
 #endif

Modified: stable/11/sys/vm/vm.h
==============================================================================
--- stable/11/sys/vm/vm.h	Wed Jul  5 06:12:21 2017	(r320665)
+++ stable/11/sys/vm/vm.h	Wed Jul  5 06:18:00 2017	(r320666)
@@ -78,6 +78,7 @@ typedef u_char vm_prot_t;	/* protection codes */
 #define	VM_PROT_WRITE		((vm_prot_t) 0x02)
 #define	VM_PROT_EXECUTE		((vm_prot_t) 0x04)
 #define	VM_PROT_COPY		((vm_prot_t) 0x08)	/* copy-on-read */
+#define	VM_PROT_FAULT_LOOKUP	((vm_prot_t) 0x010)
 
 #define	VM_PROT_ALL		(VM_PROT_READ|VM_PROT_WRITE|VM_PROT_EXECUTE)
 #define VM_PROT_RW		(VM_PROT_READ|VM_PROT_WRITE)

Modified: stable/11/sys/vm/vm_fault.c
==============================================================================
--- stable/11/sys/vm/vm_fault.c	Wed Jul  5 06:12:21 2017	(r320665)
+++ stable/11/sys/vm/vm_fault.c	Wed Jul  5 06:18:00 2017	(r320666)
@@ -495,13 +495,12 @@ vm_fault_hold(vm_map_t map, vm_offset_t vaddr, vm_prot
 	int locked, nera, result, rv;
 	u_char behavior;
 	boolean_t wired;	/* Passed by reference. */
-	bool dead, growstack, hardfault, is_first_object_locked;
+	bool dead, hardfault, is_first_object_locked;
 
 	PCPU_INC(cnt.v_vm_faults);
 	fs.vp = NULL;
 	faultcount = 0;
 	nera = -1;
-	growstack = true;
 	hardfault = false;
 
 RetryFault:;
@@ -511,17 +510,10 @@ RetryFault:;
 	 * search.
 	 */
 	fs.map = map;
-	result = vm_map_lookup(&fs.map, vaddr, fault_type, &fs.entry,
-	    &fs.first_object, &fs.first_pindex, &prot, &wired);
+	result = vm_map_lookup(&fs.map, vaddr, fault_type |
+	    VM_PROT_FAULT_LOOKUP, &fs.entry, &fs.first_object,
+	    &fs.first_pindex, &prot, &wired);
 	if (result != KERN_SUCCESS) {
-		if (growstack && result == KERN_INVALID_ADDRESS &&
-		    map != kernel_map) {
-			result = vm_map_growstack(curproc, vaddr);
-			if (result != KERN_SUCCESS)
-				return (KERN_FAILURE);
-			growstack = false;
-			goto RetryFault;
-		}
 		unlock_vp(&fs);
 		return (result);
 	}
@@ -546,6 +538,8 @@ RetryFault:;
 			vm_map_unlock(fs.map);
 		goto RetryFault;
 	}
+
+	MPASS((fs.entry->eflags & MAP_ENTRY_GUARD) == 0);
 
 	if (wired)
 		fault_type = prot | (fault_type & VM_PROT_COPY);

Modified: stable/11/sys/vm/vm_map.c
==============================================================================
--- stable/11/sys/vm/vm_map.c	Wed Jul  5 06:12:21 2017	(r320665)
+++ stable/11/sys/vm/vm_map.c	Wed Jul  5 06:18:00 2017	(r320666)
@@ -133,6 +133,8 @@ static void _vm_map_init(vm_map_t map, pmap_t pmap, vm
 static void vm_map_entry_deallocate(vm_map_entry_t entry, boolean_t system_map);
 static void vm_map_entry_dispose(vm_map_t map, vm_map_entry_t entry);
 static void vm_map_entry_unwire(vm_map_t map, vm_map_entry_t entry);
+static int vm_map_growstack(vm_map_t map, vm_offset_t addr,
+    vm_map_entry_t gap_entry);
 static void vm_map_pmap_enter(vm_map_t map, vm_offset_t addr, vm_prot_t prot,
     vm_object_t object, vm_pindex_t pindex, vm_size_t size, int flags);
 #ifdef INVARIANTS
@@ -1214,6 +1216,10 @@ vm_map_insert(vm_map_t map, vm_object_t object, vm_oof
 	if (prev_entry->next != &map->header && prev_entry->next->start < end)
 		return (KERN_NO_SPACE);
 
+	if ((cow & MAP_CREATE_GUARD) != 0 && (object != NULL ||
+	    max != VM_PROT_NONE))
+		return (KERN_INVALID_ARGUMENT);
+
 	protoeflags = 0;
 	if (cow & MAP_COPY_ON_WRITE)
 		protoeflags |= MAP_ENTRY_COW | MAP_ENTRY_NEEDS_COPY;
@@ -1229,13 +1235,19 @@ vm_map_insert(vm_map_t map, vm_object_t object, vm_oof
 		protoeflags |= MAP_ENTRY_GROWS_UP;
 	if (cow & MAP_VN_WRITECOUNT)
 		protoeflags |= MAP_ENTRY_VN_WRITECNT;
+	if ((cow & MAP_CREATE_GUARD) != 0)
+		protoeflags |= MAP_ENTRY_GUARD;
+	if ((cow & MAP_CREATE_STACK_GAP_DN) != 0)
+		protoeflags |= MAP_ENTRY_STACK_GAP_DN;
+	if ((cow & MAP_CREATE_STACK_GAP_UP) != 0)
+		protoeflags |= MAP_ENTRY_STACK_GAP_UP;
 	if (cow & MAP_INHERIT_SHARE)
 		inheritance = VM_INHERIT_SHARE;
 	else
 		inheritance = VM_INHERIT_DEFAULT;
 
 	cred = NULL;
-	if (cow & (MAP_ACC_NO_CHARGE | MAP_NOFAULT))
+	if ((cow & (MAP_ACC_NO_CHARGE | MAP_NOFAULT | MAP_CREATE_GUARD)) != 0)
 		goto charged;
 	if ((cow & MAP_ACC_CHARGED) || ((prot & VM_PROT_WRITE) &&
 	    ((protoeflags & MAP_ENTRY_NEEDS_COPY) || object == NULL))) {
@@ -1284,7 +1296,8 @@ charged:
 		if (prev_entry->inheritance == inheritance &&
 		    prev_entry->protection == prot &&
 		    prev_entry->max_protection == max) {
-			map->size += end - prev_entry->end;
+			if ((prev_entry->eflags & MAP_ENTRY_GUARD) == 0)
+				map->size += end - prev_entry->end;
 			prev_entry->end = end;
 			vm_map_entry_resize_free(map, prev_entry);
 			vm_map_simplify_entry(map, prev_entry);
@@ -1321,7 +1334,6 @@ charged:
 	new_entry->eflags = protoeflags;
 	new_entry->object.vm_object = object;
 	new_entry->offset = offset;
-	new_entry->avail_ssize = 0;
 
 	new_entry->inheritance = inheritance;
 	new_entry->protection = prot;
@@ -1339,7 +1351,8 @@ charged:
 	 * Insert the new entry into the list
 	 */
 	vm_map_entry_link(map, prev_entry, new_entry);
-	map->size += new_entry->end - new_entry->start;
+	if ((new_entry->eflags & MAP_ENTRY_GUARD) == 0)
+		map->size += new_entry->end - new_entry->start;
 
 	/*
 	 * Try to coalesce the new entry with both the previous and next
@@ -1543,6 +1556,25 @@ again:
 	return (result);
 }
 
+int
+vm_map_find_min(vm_map_t map, vm_object_t object, vm_ooffset_t offset,
+    vm_offset_t *addr, vm_size_t length, vm_offset_t min_addr,
+    vm_offset_t max_addr, int find_space, vm_prot_t prot, vm_prot_t max,
+    int cow)
+{
+	vm_offset_t hint;
+	int rv;
+
+	hint = *addr;
+	for (;;) {
+		rv = vm_map_find(map, object, offset, addr, length, max_addr,
+		    find_space, prot, max, cow);
+		if (rv == KERN_SUCCESS || min_addr >= hint)
+			return (rv);
+		*addr = min_addr;
+	}
+}
+
 /*
  *	vm_map_simplify_entry:
  *
@@ -1674,7 +1706,8 @@ _vm_map_clip_start(vm_map_t map, vm_map_entry_t entry,
 	 * map.  This is a bit of a hack, but is also about the best place to
 	 * put this improvement.
 	 */
-	if (entry->object.vm_object == NULL && !map->system_map) {
+	if (entry->object.vm_object == NULL && !map->system_map &&
+	    (entry->eflags & MAP_ENTRY_GUARD) == 0) {
 		vm_object_t object;
 		object = vm_object_allocate(OBJT_DEFAULT,
 				atop(entry->end - entry->start));
@@ -1753,7 +1786,8 @@ _vm_map_clip_end(vm_map_t map, vm_map_entry_t entry, v
 	 * map.  This is a bit of a hack, but is also about the best place to
 	 * put this improvement.
 	 */
-	if (entry->object.vm_object == NULL && !map->system_map) {
+	if (entry->object.vm_object == NULL && !map->system_map &&
+	    (entry->eflags & MAP_ENTRY_GUARD) == 0) {
 		vm_object_t object;
 		object = vm_object_allocate(OBJT_DEFAULT,
 				atop(entry->end - entry->start));
@@ -1988,6 +2022,8 @@ vm_map_protect(vm_map_t map, vm_offset_t start, vm_off
 	 */
 	for (current = entry; current != &map->header && current->start < end;
 	    current = current->next) {
+		if ((current->eflags & MAP_ENTRY_GUARD) != 0)
+			continue;
 		if (current->eflags & MAP_ENTRY_IS_SUB_MAP) {
 			vm_map_unlock(map);
 			return (KERN_INVALID_ARGUMENT);
@@ -2010,7 +2046,8 @@ vm_map_protect(vm_map_t map, vm_offset_t start, vm_off
 
 		if (set_max ||
 		    ((new_prot & ~(current->protection)) & VM_PROT_WRITE) == 0 ||
-		    ENTRY_CHARGED(current)) {
+		    ENTRY_CHARGED(current) ||
+		    (current->eflags & MAP_ENTRY_GUARD) != 0) {
 			continue;
 		}
 
@@ -2059,6 +2096,9 @@ vm_map_protect(vm_map_t map, vm_offset_t start, vm_off
 	 */
 	for (current = entry; current != &map->header && current->start < end;
 	    current = current->next) {
+		if ((current->eflags & MAP_ENTRY_GUARD) != 0)
+			continue;
+
 		old_prot = current->protection;
 
 		if (set_max)
@@ -2312,7 +2352,9 @@ vm_map_inherit(vm_map_t map, vm_offset_t start, vm_off
 		entry = temp_entry->next;
 	while ((entry != &map->header) && (entry->start < end)) {
 		vm_map_clip_end(map, entry, end);
-		entry->inheritance = new_inheritance;
+		if ((entry->eflags & MAP_ENTRY_GUARD) == 0 ||
+		    new_inheritance != VM_INHERIT_ZERO)
+			entry->inheritance = new_inheritance;
 		vm_map_simplify_entry(map, entry);
 		entry = entry->next;
 	}
@@ -2918,6 +2960,15 @@ vm_map_entry_delete(vm_map_t map, vm_map_entry_t entry
 
 	vm_map_entry_unlink(map, entry);
 	object = entry->object.vm_object;
+
+	if ((entry->eflags & MAP_ENTRY_GUARD) != 0) {
+		MPASS(entry->cred == NULL);
+		MPASS((entry->eflags & MAP_ENTRY_IS_SUB_MAP) == 0);
+		MPASS(object == NULL);
+		vm_map_entry_deallocate(entry, map->system_map);
+		return;
+	}
+
 	size = entry->end - entry->start;
 	map->size -= size;
 
@@ -3276,6 +3327,8 @@ vmspace_map_entry_forked(const struct vmspace *vm1, st
 	vm_size_t entrysize;
 	vm_offset_t newend;
 
+	if ((entry->eflags & MAP_ENTRY_GUARD) != 0)
+		return;
 	entrysize = entry->end - entry->start;
 	vm2->vm_map.size += entrysize;
 	if (entry->eflags & (MAP_ENTRY_GROWS_DOWN | MAP_ENTRY_GROWS_UP)) {
@@ -3312,6 +3365,7 @@ vmspace_fork(struct vmspace *vm1, vm_ooffset_t *fork_c
 	vm_map_entry_t new_entry, old_entry;
 	vm_object_t object;
 	int locked;
+	vm_inherit_t inh;
 
 	old_map = &vm1->vm_map;
 	/* Copy immutable fields of vm1 to vm2. */
@@ -3334,7 +3388,12 @@ vmspace_fork(struct vmspace *vm1, vm_ooffset_t *fork_c
 		if (old_entry->eflags & MAP_ENTRY_IS_SUB_MAP)
 			panic("vm_map_fork: encountered a submap");
 
-		switch (old_entry->inheritance) {
+		inh = old_entry->inheritance;
+		if ((old_entry->eflags & MAP_ENTRY_GUARD) != 0 &&
+		    inh != VM_INHERIT_NONE)
+			inh = VM_INHERIT_COPY;
+
+		switch (inh) {
 		case VM_INHERIT_NONE:
 			break;
 
@@ -3467,7 +3526,6 @@ vmspace_fork(struct vmspace *vm1, vm_ooffset_t *fork_c
 
 			new_entry->start = old_entry->start;
 			new_entry->end = old_entry->end;
-			new_entry->avail_ssize = old_entry->avail_ssize;
 			new_entry->eflags = old_entry->eflags &
 			    ~(MAP_ENTRY_USER_WIRED | MAP_ENTRY_IN_TRANSITION |
 			    MAP_ENTRY_VN_WRITECNT);
@@ -3530,30 +3588,40 @@ out:
 	return (rv);
 }
 
+static int stack_guard_page = 1;
+SYSCTL_INT(_security_bsd, OID_AUTO, stack_guard_page, CTLFLAG_RWTUN,
+    &stack_guard_page, 0,
+    "Specifies the number of guard pages for a stack that grows");
+
 static int
 vm_map_stack_locked(vm_map_t map, vm_offset_t addrbos, vm_size_t max_ssize,
     vm_size_t growsize, vm_prot_t prot, vm_prot_t max, int cow)
 {
 	vm_map_entry_t new_entry, prev_entry;
-	vm_offset_t bot, top;
-	vm_size_t init_ssize;
+	vm_offset_t bot, gap_bot, gap_top, top;
+	vm_size_t init_ssize, sgp;
 	int orient, rv;
 
 	/*
 	 * The stack orientation is piggybacked with the cow argument.
 	 * Extract it into orient and mask the cow argument so that we
 	 * don't pass it around further.
-	 * NOTE: We explicitly allow bi-directional stacks.
 	 */
-	orient = cow & (MAP_STACK_GROWS_DOWN|MAP_STACK_GROWS_UP);
+	orient = cow & (MAP_STACK_GROWS_DOWN | MAP_STACK_GROWS_UP);
 	KASSERT(orient != 0, ("No stack grow direction"));
+	KASSERT(orient != (MAP_STACK_GROWS_DOWN | MAP_STACK_GROWS_UP),
+	    ("bi-dir stack"));
 
+	sgp = (vm_size_t)stack_guard_page * PAGE_SIZE;
 	if (addrbos < vm_map_min(map) ||
 	    addrbos > vm_map_max(map) ||
-	    addrbos + max_ssize < addrbos)
+	    addrbos + max_ssize < addrbos ||
+	    sgp >= max_ssize)
 		return (KERN_NO_SPACE);
 
-	init_ssize = (max_ssize < growsize) ? max_ssize : growsize;
+	init_ssize = growsize;
+	if (max_ssize < init_ssize + sgp)
+		init_ssize = max_ssize - sgp;
 
 	/* If addr is already mapped, no go */
 	if (vm_map_lookup_entry(map, addrbos, &prev_entry))
@@ -3561,12 +3629,6 @@ vm_map_stack_locked(vm_map_t map, vm_offset_t addrbos,
 
 	/*
 	 * If we can't accommodate max_ssize in the current mapping, no go.
-	 * However, we need to be aware that subsequent user mappings might
-	 * map into the space we have reserved for stack, and currently this
-	 * space is not protected.
-	 *
-	 * Hopefully we will at least detect this condition when we try to
-	 * grow the stack.
 	 */
 	if ((prev_entry->next != &map->header) &&
 	    (prev_entry->next->start < addrbos + max_ssize))
@@ -3582,57 +3644,53 @@ vm_map_stack_locked(vm_map_t map, vm_offset_t addrbos,
 	 * and cow to be 0.  Possibly we should eliminate these as input
 	 * parameters, and just pass these values here in the insert call.
 	 */
-	if (orient == MAP_STACK_GROWS_DOWN)
+	if (orient == MAP_STACK_GROWS_DOWN) {
 		bot = addrbos + max_ssize - init_ssize;
-	else if (orient == MAP_STACK_GROWS_UP)
+		top = bot + init_ssize;
+		gap_bot = addrbos;
+		gap_top = bot;
+	} else /* if (orient == MAP_STACK_GROWS_UP) */ {
 		bot = addrbos;
-	else
-		bot = round_page(addrbos + max_ssize/2 - init_ssize/2);
-	top = bot + init_ssize;
-	rv = vm_map_insert(map, NULL, 0, bot, top, prot, max, cow);
-
-	/* Now set the avail_ssize amount. */
-	if (rv == KERN_SUCCESS) {
-		new_entry = prev_entry->next;
-		if (new_entry->end != top || new_entry->start != bot)
-			panic("Bad entry start/end for new stack entry");
-
-		new_entry->avail_ssize = max_ssize - init_ssize;
-		KASSERT((orient & MAP_STACK_GROWS_DOWN) == 0 ||
-		    (new_entry->eflags & MAP_ENTRY_GROWS_DOWN) != 0,
-		    ("new entry lacks MAP_ENTRY_GROWS_DOWN"));
-		KASSERT((orient & MAP_STACK_GROWS_UP) == 0 ||
-		    (new_entry->eflags & MAP_ENTRY_GROWS_UP) != 0,
-		    ("new entry lacks MAP_ENTRY_GROWS_UP"));
+		top = bot + init_ssize;
+		gap_bot = top;
+		gap_top = addrbos + max_ssize;
 	}
-
+	rv = vm_map_insert(map, NULL, 0, bot, top, prot, max, cow);
+	if (rv != KERN_SUCCESS)
+		return (rv);
+	new_entry = prev_entry->next;
+	KASSERT(new_entry->end == top || new_entry->start == bot,
+	    ("Bad entry start/end for new stack entry"));
+	KASSERT((orient & MAP_STACK_GROWS_DOWN) == 0 ||
+	    (new_entry->eflags & MAP_ENTRY_GROWS_DOWN) != 0,
+	    ("new entry lacks MAP_ENTRY_GROWS_DOWN"));
+	KASSERT((orient & MAP_STACK_GROWS_UP) == 0 ||
+	    (new_entry->eflags & MAP_ENTRY_GROWS_UP) != 0,
+	    ("new entry lacks MAP_ENTRY_GROWS_UP"));
+	rv = vm_map_insert(map, NULL, 0, gap_bot, gap_top, VM_PROT_NONE,
+	    VM_PROT_NONE, MAP_CREATE_GUARD | (orient == MAP_STACK_GROWS_DOWN ?
+	    MAP_CREATE_STACK_GAP_DN : MAP_CREATE_STACK_GAP_UP));
+	if (rv != KERN_SUCCESS)
+		(void)vm_map_delete(map, bot, top);
 	return (rv);
 }
 
-static int stack_guard_page = 0;
-SYSCTL_INT(_security_bsd, OID_AUTO, stack_guard_page, CTLFLAG_RWTUN,
-    &stack_guard_page, 0,
-    "Insert stack guard page ahead of the growable segments.");
-
-/* Attempts to grow a vm stack entry.  Returns KERN_SUCCESS if the
- * desired address is already mapped, or if we successfully grow
- * the stack.  Also returns KERN_SUCCESS if addr is outside the
- * stack range (this is strange, but preserves compatibility with
- * the grow function in vm_machdep.c).
+/*
+ * Attempts to grow a vm stack entry.  Returns KERN_SUCCESS if we
+ * successfully grow the stack.
  */
-int
-vm_map_growstack(struct proc *p, vm_offset_t addr)
+static int
+vm_map_growstack(vm_map_t map, vm_offset_t addr, vm_map_entry_t gap_entry)
 {
-	vm_map_entry_t next_entry, prev_entry;
-	vm_map_entry_t new_entry, stack_entry;
-	struct vmspace *vm = p->p_vmspace;
-	vm_map_t map = &vm->vm_map;
-	vm_offset_t end;
-	vm_size_t growsize;
-	size_t grow_amount, max_grow;
-	rlim_t lmemlim, stacklim, vmemlim;
-	int is_procstack, rv;
+	vm_map_entry_t stack_entry;
+	struct proc *p;
+	struct vmspace *vm;
 	struct ucred *cred;
+	vm_offset_t gap_end, gap_start, grow_start;
+	size_t grow_amount, guard, max_grow;
+	rlim_t lmemlim, stacklim, vmemlim;
+	int rv, rv1;
+	bool gap_deleted, grow_down, is_procstack;
 #ifdef notyet
 	uint64_t limit;
 #endif
@@ -3640,125 +3698,74 @@ vm_map_growstack(struct proc *p, vm_offset_t addr)
 	int error;
 #endif
 
+	p = curproc;
+	vm = p->p_vmspace;
+	MPASS(map == &p->p_vmspace->vm_map);
+	MPASS(!map->system_map);
+
+	guard = stack_guard_page * PAGE_SIZE;
 	lmemlim = lim_cur(curthread, RLIMIT_MEMLOCK);
 	stacklim = lim_cur(curthread, RLIMIT_STACK);
 	vmemlim = lim_cur(curthread, RLIMIT_VMEM);
-Retry:
-
-	vm_map_lock_read(map);
-
-	/* If addr is already in the entry range, no need to grow.*/
-	if (vm_map_lookup_entry(map, addr, &prev_entry)) {
-		vm_map_unlock_read(map);
+retry:
+	/* If addr is not in a hole for a stack grow area, no need to grow. */
+	if (gap_entry == NULL && !vm_map_lookup_entry(map, addr, &gap_entry))
+		return (KERN_FAILURE);
+	if ((gap_entry->eflags & MAP_ENTRY_GUARD) == 0)
 		return (KERN_SUCCESS);
-	}
-
-	next_entry = prev_entry->next;
-	if (!(prev_entry->eflags & MAP_ENTRY_GROWS_UP)) {
-		/*
-		 * This entry does not grow upwards. Since the address lies
-		 * beyond this entry, the next entry (if one exists) has to
-		 * be a downward growable entry. The entry list header is
-		 * never a growable entry, so it suffices to check the flags.
-		 */
-		if (!(next_entry->eflags & MAP_ENTRY_GROWS_DOWN)) {
-			vm_map_unlock_read(map);
-			return (KERN_SUCCESS);
-		}
-		stack_entry = next_entry;
+	if ((gap_entry->eflags & MAP_ENTRY_STACK_GAP_DN) != 0) {
+		stack_entry = gap_entry->next;
+		if ((stack_entry->eflags & MAP_ENTRY_GROWS_DOWN) == 0 ||
+		    stack_entry->start != gap_entry->end)
+			return (KERN_FAILURE);
+		grow_amount = round_page(stack_entry->start - addr);
+		grow_down = true;
+	} else if ((gap_entry->eflags & MAP_ENTRY_STACK_GAP_UP) != 0) {
+		stack_entry = gap_entry->prev;
+		if ((stack_entry->eflags & MAP_ENTRY_GROWS_UP) == 0 ||
+		    stack_entry->end != gap_entry->start)
+			return (KERN_FAILURE);
+		grow_amount = round_page(addr + 1 - stack_entry->end);
+		grow_down = false;
 	} else {
-		/*
-		 * This entry grows upward. If the next entry does not at
-		 * least grow downwards, this is the entry we need to grow.
-		 * otherwise we have two possible choices and we have to
-		 * select one.
-		 */
-		if (next_entry->eflags & MAP_ENTRY_GROWS_DOWN) {
-			/*
-			 * We have two choices; grow the entry closest to
-			 * the address to minimize the amount of growth.
-			 */
-			if (addr - prev_entry->end <= next_entry->start - addr)
-				stack_entry = prev_entry;
-			else
-				stack_entry = next_entry;
-		} else
-			stack_entry = prev_entry;
+		return (KERN_FAILURE);
 	}
-
-	if (stack_entry == next_entry) {
-		KASSERT(stack_entry->eflags & MAP_ENTRY_GROWS_DOWN, ("foo"));
-		KASSERT(addr < stack_entry->start, ("foo"));
-		end = (prev_entry != &map->header) ? prev_entry->end :
-		    stack_entry->start - stack_entry->avail_ssize;
-		grow_amount = roundup(stack_entry->start - addr, PAGE_SIZE);
-		max_grow = stack_entry->start - end;
-	} else {
-		KASSERT(stack_entry->eflags & MAP_ENTRY_GROWS_UP, ("foo"));
-		KASSERT(addr >= stack_entry->end, ("foo"));
-		end = (next_entry != &map->header) ? next_entry->start :
-		    stack_entry->end + stack_entry->avail_ssize;
-		grow_amount = roundup(addr + 1 - stack_entry->end, PAGE_SIZE);
-		max_grow = end - stack_entry->end;
-	}
-
-	if (grow_amount > stack_entry->avail_ssize) {
-		vm_map_unlock_read(map);
+	max_grow = gap_entry->end - gap_entry->start;
+	if (guard > max_grow)
 		return (KERN_NO_SPACE);
-	}
-
-	/*
-	 * If there is no longer enough space between the entries nogo, and
-	 * adjust the available space.  Note: this  should only happen if the
-	 * user has mapped into the stack area after the stack was created,
-	 * and is probably an error.
-	 *
-	 * This also effectively destroys any guard page the user might have
-	 * intended by limiting the stack size.
-	 */
-	if (grow_amount + (stack_guard_page ? PAGE_SIZE : 0) > max_grow) {
-		if (vm_map_lock_upgrade(map))
-			goto Retry;
-
-		stack_entry->avail_ssize = max_grow;
-
-		vm_map_unlock(map);
+	max_grow -= guard;
+	if (grow_amount > max_grow)
 		return (KERN_NO_SPACE);
-	}
 
-	is_procstack = (addr >= (vm_offset_t)vm->vm_maxsaddr &&
-	    addr < (vm_offset_t)p->p_sysent->sv_usrstack) ? 1 : 0;
-
 	/*
 	 * If this is the main process stack, see if we're over the stack
 	 * limit.
 	 */
-	if (is_procstack && (ctob(vm->vm_ssize) + grow_amount > stacklim)) {
-		vm_map_unlock_read(map);
+	is_procstack = addr >= (vm_offset_t)vm->vm_maxsaddr &&
+	    addr < (vm_offset_t)p->p_sysent->sv_usrstack;
+	if (is_procstack && (ctob(vm->vm_ssize) + grow_amount > stacklim))
 		return (KERN_NO_SPACE);
-	}
+
 #ifdef RACCT
 	if (racct_enable) {
 		PROC_LOCK(p);
 		if (is_procstack && racct_set(p, RACCT_STACK,
 		    ctob(vm->vm_ssize) + grow_amount)) {
 			PROC_UNLOCK(p);
-			vm_map_unlock_read(map);
 			return (KERN_NO_SPACE);
 		}
 		PROC_UNLOCK(p);
 	}
 #endif
 
-	/* Round up the grow amount modulo sgrowsiz */
-	growsize = sgrowsiz;
-	grow_amount = roundup(grow_amount, growsize);
-	if (grow_amount > stack_entry->avail_ssize)
-		grow_amount = stack_entry->avail_ssize;
+	grow_amount = roundup(grow_amount, sgrowsiz);
+	if (grow_amount > max_grow)
+		grow_amount = max_grow;
 	if (is_procstack && (ctob(vm->vm_ssize) + grow_amount > stacklim)) {
 		grow_amount = trunc_page((vm_size_t)stacklim) -
 		    ctob(vm->vm_ssize);
 	}
+
 #ifdef notyet
 	PROC_LOCK(p);
 	limit = racct_get_available(p, RACCT_STACK);
@@ -3766,9 +3773,9 @@ Retry:
 	if (is_procstack && (ctob(vm->vm_ssize) + grow_amount > limit))
 		grow_amount = limit - ctob(vm->vm_ssize);
 #endif
-	if (!old_mlock && map->flags & MAP_WIREFUTURE) {
+
+	if (!old_mlock && (map->flags & MAP_WIREFUTURE) != 0) {
 		if (ptoa(pmap_wired_count(map->pmap)) + grow_amount > lmemlim) {
-			vm_map_unlock_read(map);
 			rv = KERN_NO_SPACE;
 			goto out;
 		}
@@ -3778,7 +3785,6 @@ Retry:
 			if (racct_set(p, RACCT_MEMLOCK,
 			    ptoa(pmap_wired_count(map->pmap)) + grow_amount)) {
 				PROC_UNLOCK(p);
-				vm_map_unlock_read(map);
 				rv = KERN_NO_SPACE;
 				goto out;
 			}
@@ -3786,9 +3792,9 @@ Retry:
 		}
 #endif
 	}
+
 	/* If we would blow our VMEM resource limit, no go */
 	if (map->size + grow_amount > vmemlim) {
-		vm_map_unlock_read(map);
 		rv = KERN_NO_SPACE;
 		goto out;
 	}
@@ -3797,7 +3803,6 @@ Retry:
 		PROC_LOCK(p);
 		if (racct_set(p, RACCT_VMEM, map->size + grow_amount)) {
 			PROC_UNLOCK(p);
-			vm_map_unlock_read(map);
 			rv = KERN_NO_SPACE;
 			goto out;
 		}
@@ -3805,62 +3810,42 @@ Retry:
 	}
 #endif
 
-	if (vm_map_lock_upgrade(map))
-		goto Retry;
+	if (vm_map_lock_upgrade(map)) {
+		gap_entry = NULL;
+		vm_map_lock_read(map);
+		goto retry;
+	}
 
-	if (stack_entry == next_entry) {
-		/*
-		 * Growing downward.
-		 */
-		/* Get the preliminary new entry start value */
-		addr = stack_entry->start - grow_amount;
-
-		/*
-		 * If this puts us into the previous entry, cut back our
-		 * growth to the available space. Also, see the note above.
-		 */
-		if (addr < end) {
-			stack_entry->avail_ssize = max_grow;
-			addr = end;
-			if (stack_guard_page)
-				addr += PAGE_SIZE;
+	if (grow_down) {
+		grow_start = gap_entry->end - grow_amount;
+		if (gap_entry->start + grow_amount == gap_entry->end) {
+			gap_start = gap_entry->start;
+			gap_end = gap_entry->end;
+			vm_map_entry_delete(map, gap_entry);
+			gap_deleted = true;
+		} else {
+			MPASS(gap_entry->start < gap_entry->end - grow_amount);
+			gap_entry->end -= grow_amount;
+			vm_map_entry_resize_free(map, gap_entry);
+			gap_deleted = false;
 		}
-
-		rv = vm_map_insert(map, NULL, 0, addr, stack_entry->start,
-		    next_entry->protection, next_entry->max_protection,
+		rv = vm_map_insert(map, NULL, 0, grow_start,
+		    grow_start + grow_amount,
+		    stack_entry->protection, stack_entry->max_protection,
 		    MAP_STACK_GROWS_DOWN);
-
-		/* Adjust the available stack space by the amount we grew. */
-		if (rv == KERN_SUCCESS) {
-			new_entry = prev_entry->next;
-			KASSERT(new_entry == stack_entry->prev, ("foo"));
-			KASSERT(new_entry->end == stack_entry->start, ("foo"));
-			KASSERT(new_entry->start == addr, ("foo"));
-			KASSERT((new_entry->eflags & MAP_ENTRY_GROWS_DOWN) !=
-			    0, ("new entry lacks MAP_ENTRY_GROWS_DOWN"));
-			grow_amount = new_entry->end - new_entry->start;
-			new_entry->avail_ssize = stack_entry->avail_ssize -
-			    grow_amount;
-			stack_entry->eflags &= ~MAP_ENTRY_GROWS_DOWN;
+		if (rv != KERN_SUCCESS) {
+			if (gap_deleted) {
+				rv1 = vm_map_insert(map, NULL, 0, gap_start,
+				    gap_end, VM_PROT_NONE, VM_PROT_NONE,
+				    MAP_CREATE_GUARD | MAP_CREATE_STACK_GAP_DN);
+				MPASS(rv1 == KERN_SUCCESS);
+			} else {
+				gap_entry->end += grow_amount;
+				vm_map_entry_resize_free(map, gap_entry);
+			}
 		}
 	} else {
-		/*
-		 * Growing upward.
-		 */
-		addr = stack_entry->end + grow_amount;
-
-		/*
-		 * If this puts us into the next entry, cut back our growth
-		 * to the available space. Also, see the note above.
-		 */
-		if (addr > end) {
-			stack_entry->avail_ssize = end - stack_entry->end;
-			addr = end;
-			if (stack_guard_page)
-				addr -= PAGE_SIZE;
-		}
-
-		grow_amount = addr - stack_entry->end;
+		grow_start = stack_entry->end;
 		cred = stack_entry->cred;
 		if (cred == NULL && stack_entry->object.vm_object != NULL)
 			cred = stack_entry->object.vm_object->cred;
@@ -3872,30 +3857,30 @@ Retry:
 		    stack_entry->offset,
 		    (vm_size_t)(stack_entry->end - stack_entry->start),
 		    (vm_size_t)grow_amount, cred != NULL)) {
-			map->size += (addr - stack_entry->end);
-			/* Update the current entry. */
-			stack_entry->end = addr;
-			stack_entry->avail_ssize -= grow_amount;
+			if (gap_entry->start + grow_amount == gap_entry->end)
+				vm_map_entry_delete(map, gap_entry);
+			else
+				gap_entry->start += grow_amount;
+			stack_entry->end += grow_amount;
+			map->size += grow_amount;
 			vm_map_entry_resize_free(map, stack_entry);
 			rv = KERN_SUCCESS;
 		} else
 			rv = KERN_FAILURE;
 	}
-
 	if (rv == KERN_SUCCESS && is_procstack)
 		vm->vm_ssize += btoc(grow_amount);
 
-	vm_map_unlock(map);
-
 	/*
 	 * Heed the MAP_WIREFUTURE flag if it was set for this process.
 	 */
-	if (rv == KERN_SUCCESS && (map->flags & MAP_WIREFUTURE)) {
-		vm_map_wire(map,
-		    (stack_entry == next_entry) ? addr : addr - grow_amount,
-		    (stack_entry == next_entry) ? stack_entry->start : addr,
+	if (rv == KERN_SUCCESS && (map->flags & MAP_WIREFUTURE) != 0) {
+		vm_map_unlock(map);
+		vm_map_wire(map, grow_start, grow_start + grow_amount,
 		    VM_MAP_WIRE_USER | VM_MAP_WIRE_NOHOLES);
-	}
+		vm_map_lock_read(map);
+	} else
+		vm_map_lock_downgrade(map);
 
 out:
 #ifdef RACCT
@@ -4019,10 +4004,11 @@ vm_map_lookup(vm_map_t *var_map,		/* IN/OUT */
 	vm_size_t size;
 	struct ucred *cred;
 
-RetryLookup:;
+RetryLookup:
 
 	vm_map_lock_read(map);
 
+RetryLookupLocked:
 	/*
 	 * Lookup the faulting address.
 	 */
@@ -4048,7 +4034,16 @@ RetryLookup:;
 	 * Check whether this task is allowed to have this page.
 	 */
 	prot = entry->protection;
-	fault_type &= (VM_PROT_READ|VM_PROT_WRITE|VM_PROT_EXECUTE);
+	if ((fault_typea & VM_PROT_FAULT_LOOKUP) != 0) {
+		fault_typea &= ~VM_PROT_FAULT_LOOKUP;
+		if (prot == VM_PROT_NONE && map != kernel_map &&
+		    (entry->eflags & MAP_ENTRY_GUARD) != 0 &&
+		    (entry->eflags & (MAP_ENTRY_STACK_GAP_DN |
+		    MAP_ENTRY_STACK_GAP_UP)) != 0 &&
+		    vm_map_growstack(map, vaddr, entry) == KERN_SUCCESS)
+			goto RetryLookupLocked;
+	}
+	fault_type &= VM_PROT_READ | VM_PROT_WRITE | VM_PROT_EXECUTE;
 	if ((fault_type & prot) != fault_type || prot == VM_PROT_NONE) {
 		vm_map_unlock_read(map);
 		return (KERN_PROTECTION_FAILURE);
@@ -4282,8 +4277,9 @@ vm_map_print(vm_map_t map)
 	db_indent += 2;
 	for (entry = map->header.next; entry != &map->header;
 	    entry = entry->next) {
-		db_iprintf("map entry %p: start=%p, end=%p\n",
-		    (void *)entry, (void *)entry->start, (void *)entry->end);
+		db_iprintf("map entry %p: start=%p, end=%p, eflags=%#x, \n",
+		    (void *)entry, (void *)entry->start, (void *)entry->end,
+		    entry->eflags);
 		{
 			static char *inheritance_name[4] =
 			{"share", "copy", "none", "donate_copy"};

Modified: stable/11/sys/vm/vm_map.h
==============================================================================
--- stable/11/sys/vm/vm_map.h	Wed Jul  5 06:12:21 2017	(r320665)
+++ stable/11/sys/vm/vm_map.h	Wed Jul  5 06:18:00 2017	(r320666)
@@ -103,7 +103,6 @@ struct vm_map_entry {
 	struct vm_map_entry *right;	/* right child in binary search tree */
 	vm_offset_t start;		/* start address */
 	vm_offset_t end;		/* end address */
-	vm_offset_t avail_ssize;	/* amt can grow if this is a stack */
 	vm_offset_t next_read;		/* vaddr of the next sequential read */
 	vm_size_t adj_free;		/* amount of adjacent free space */
 	vm_size_t max_free;		/* max free space in subtree */
@@ -142,6 +141,9 @@ struct vm_map_entry {
 
 #define	MAP_ENTRY_WIRE_SKIPPED		0x4000
 #define	MAP_ENTRY_VN_WRITECNT		0x8000	/* writeable vnode mapping */
+#define	MAP_ENTRY_GUARD			0x10000
+#define	MAP_ENTRY_STACK_GAP_DN		0x20000
+#define	MAP_ENTRY_STACK_GAP_UP		0x40000
 
 #ifdef	_KERNEL
 static __inline u_char
@@ -315,6 +317,7 @@ long vmspace_resident_count(struct vmspace *vmspace);
 #define MAP_PREFAULT_PARTIAL	0x0010
 #define MAP_DISABLE_SYNCER	0x0020
 #define	MAP_CHECK_EXCL		0x0040
+#define	MAP_CREATE_GUARD	0x0080
 #define MAP_DISABLE_COREDUMP	0x0100
 #define MAP_PREFAULT_MADVISE	0x0200	/* from (user) madvise request */
 #define	MAP_VN_WRITECOUNT	0x0400
@@ -322,6 +325,8 @@ long vmspace_resident_count(struct vmspace *vmspace);
 #define	MAP_STACK_GROWS_UP	0x2000
 #define	MAP_ACC_CHARGED		0x4000
 #define	MAP_ACC_NO_CHARGE	0x8000
+#define	MAP_CREATE_STACK_GAP_UP	0x10000
+#define	MAP_CREATE_STACK_GAP_DN	0x20000
 
 /*
  * vm_fault option flags
@@ -367,6 +372,8 @@ vm_map_t vm_map_create(pmap_t, vm_offset_t, vm_offset_
 int vm_map_delete(vm_map_t, vm_offset_t, vm_offset_t);
 int vm_map_find(vm_map_t, vm_object_t, vm_ooffset_t, vm_offset_t *, vm_size_t,
     vm_offset_t, int, vm_prot_t, vm_prot_t, int);
+int vm_map_find_min(vm_map_t, vm_object_t, vm_ooffset_t, vm_offset_t *,
+    vm_size_t, vm_offset_t, vm_offset_t, int, vm_prot_t, vm_prot_t, int);
 int vm_map_fixed(vm_map_t, vm_object_t, vm_ooffset_t, vm_offset_t, vm_size_t,
     vm_prot_t, vm_prot_t, int);
 int vm_map_findspace (vm_map_t, vm_offset_t, vm_size_t, vm_offset_t *);
@@ -387,7 +394,6 @@ int vm_map_submap (vm_map_t, vm_offset_t, vm_offset_t,
 int vm_map_sync(vm_map_t, vm_offset_t, vm_offset_t, boolean_t, boolean_t);
 int vm_map_madvise (vm_map_t, vm_offset_t, vm_offset_t, int);
 int vm_map_stack (vm_map_t, vm_offset_t, vm_size_t, vm_prot_t, vm_prot_t, int);
-int vm_map_growstack (struct proc *p, vm_offset_t addr);
 int vm_map_unwire(vm_map_t map, vm_offset_t start, vm_offset_t end,
     int flags);
 int vm_map_wire(vm_map_t map, vm_offset_t start, vm_offset_t end,

Modified: stable/11/sys/vm/vm_mmap.c
==============================================================================
--- stable/11/sys/vm/vm_mmap.c	Wed Jul  5 06:12:21 2017	(r320665)
+++ stable/11/sys/vm/vm_mmap.c	Wed Jul  5 06:18:00 2017	(r320666)
@@ -226,7 +226,7 @@ kern_mmap(struct thread *td, uintptr_t addr0, size_t s
 	}

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-stable@freebsd.org  Wed Jul  5 06:32:54 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6DCDADA3751;
 Wed,  5 Jul 2017 06:32:54 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 3BE997492D;
 Wed,  5 Jul 2017 06:32:54 +0000 (UTC) (envelope-from kib@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v656WrcU043678;
 Wed, 5 Jul 2017 06:32:53 GMT (envelope-from kib@FreeBSD.org)
Received: (from kib@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v656WrBw043677;
 Wed, 5 Jul 2017 06:32:53 GMT (envelope-from kib@FreeBSD.org)
Message-Id: <201707050632.v656WrBw043677@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: kib set sender to kib@FreeBSD.org
 using -f
From: Konstantin Belousov <kib@FreeBSD.org>
Date: Wed, 5 Jul 2017 06:32:53 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320667 - stable/11/libexec/rtld-elf
X-SVN-Group: stable-11
X-SVN-Commit-Author: kib
X-SVN-Commit-Paths: stable/11/libexec/rtld-elf
X-SVN-Commit-Revision: 320667
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 05 Jul 2017 06:32:54 -0000

Author: kib
Date: Wed Jul  5 06:32:53 2017
New Revision: 320667
URL: https://svnweb.freebsd.org/changeset/base/320667

Log:
  MFC r320318:
  Use address space guard to implement inter-segment gap.

Modified:
  stable/11/libexec/rtld-elf/map_object.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/libexec/rtld-elf/map_object.c
==============================================================================
--- stable/11/libexec/rtld-elf/map_object.c	Wed Jul  5 06:18:00 2017	(r320666)
+++ stable/11/libexec/rtld-elf/map_object.c	Wed Jul  5 06:32:53 2017	(r320667)
@@ -41,6 +41,8 @@
 static Elf_Ehdr *get_elf_header(int, const char *, const struct stat *);
 static int convert_flags(int); /* Elf flags -> mmap flags */
 
+int __getosreldate(void);
+
 /*
  * Map a shared object into memory.  The "fd" argument is a file descriptor,
  * which must be open on the object and positioned at its beginning.
@@ -190,7 +192,9 @@ map_object(int fd, const char *path, const struct stat
     base_vlimit = round_page(segs[nsegs]->p_vaddr + segs[nsegs]->p_memsz);
     mapsize = base_vlimit - base_vaddr;
     base_addr = (caddr_t) base_vaddr;
-    base_flags = MAP_PRIVATE | MAP_ANON | MAP_NOCORE;
+    base_flags = __getosreldate() >= P_OSREL_MAP_GUARD ||
+      (P_OSREL_MAJOR(__getosreldate()) == 11 && __getosreldate() >=
+      P_OSREL_MAP_GUARD_11) ? MAP_GUARD : MAP_PRIVATE | MAP_ANON | MAP_NOCORE;
     if (npagesizes > 1 && round_page(segs[0]->p_filesz) >= pagesizes[1])
 	base_flags |= MAP_ALIGNED_SUPER;
     if (base_vaddr != 0)

From owner-svn-src-stable@freebsd.org  Wed Jul  5 15:31:43 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3AEFDDAD9F4;
 Wed,  5 Jul 2017 15:31:43 +0000 (UTC)
 (envelope-from asomers@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 06C1084AFE;
 Wed,  5 Jul 2017 15:31:42 +0000 (UTC)
 (envelope-from asomers@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v65FVglH065961;
 Wed, 5 Jul 2017 15:31:42 GMT (envelope-from asomers@FreeBSD.org)
Received: (from asomers@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v65FVgW2065960;
 Wed, 5 Jul 2017 15:31:42 GMT (envelope-from asomers@FreeBSD.org)
Message-Id: <201707051531.v65FVgW2065960@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: asomers set sender to
 asomers@FreeBSD.org using -f
From: Alan Somers <asomers@FreeBSD.org>
Date: Wed, 5 Jul 2017 15:31:42 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320676 - stable/11/usr.sbin/bootparamd/bootparamd
X-SVN-Group: stable-11
X-SVN-Commit-Author: asomers
X-SVN-Commit-Paths: stable/11/usr.sbin/bootparamd/bootparamd
X-SVN-Commit-Revision: 320676
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 05 Jul 2017 15:31:43 -0000

Author: asomers
Date: Wed Jul  5 15:31:42 2017
New Revision: 320676
URL: https://svnweb.freebsd.org/changeset/base/320676

Log:
  MFC r318790, r319336
  
  r318790:
  Fix a buffer overflow in bootparamd(8)
  
  If /etc/bootparams contains a line with an excessively long pathname, and a
  client asks for that path, then bootparamd will overflow a buffer and crash
  while parsing that line.  This is not remotely exploitable since it requires
  a malformed /etc/bootparams file.
  
  Reported by:	Coverity
  CID:		1305954
  Sponsored by:	Spectra Logic Corp
  
  r319336:
  Fix uninitialized variable in bootparamd.c
  
  Restore line that was accidentally deleted in change 318790
  
  Reported by:	Coverity
  CID:		1375855
  X-MFC-With:	318790
  Sponsored by:	Spectra Logic Corp

Modified:
  stable/11/usr.sbin/bootparamd/bootparamd/bootparamd.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/usr.sbin/bootparamd/bootparamd/bootparamd.c
==============================================================================
--- stable/11/usr.sbin/bootparamd/bootparamd/bootparamd.c	Wed Jul  5 15:23:30 2017	(r320675)
+++ stable/11/usr.sbin/bootparamd/bootparamd/bootparamd.c	Wed Jul  5 15:31:42 2017	(r320676)
@@ -199,7 +199,10 @@ int blen;
 
   int ch, pch, fid_len, res = 0;
   int match = 0;
-  char info[MAX_FILEID + MAX_PATH_LEN+MAX_MACHINE_NAME + 3];
+#define INFOLEN 1343
+  _Static_assert(INFOLEN >= MAX_FILEID + MAX_PATH_LEN+MAX_MACHINE_NAME + 3,
+		  "INFOLEN isn't large enough");
+  char info[INFOLEN + 1];
 
   bpf = fopen(bootpfile, "r");
   if ( ! bpf )
@@ -252,7 +255,9 @@ int blen;
 
   if (match) {
     fid_len = strlen(fileid);
-    while ( ! res && (fscanf(bpf,"%s", info)) > 0) { /* read a string */
+#define AS_FORMAT(d)	"%" #d "s"
+#define REXPAND(d) AS_FORMAT(d)	/* Force another preprocessor expansion */
+    while ( ! res && (fscanf(bpf, REXPAND(INFOLEN), info)) > 0) {
       ch = getc(bpf);                                /* and a character */
       if ( *info != '#' ) {                          /* Comment ? */
 	if (! strncmp(info, fileid, fid_len) && *(info + fid_len) == '=') {

From owner-svn-src-stable@freebsd.org  Wed Jul  5 15:34:07 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8E11CDADA86;
 Wed,  5 Jul 2017 15:34:07 +0000 (UTC)
 (envelope-from asomers@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 5531D84DF8;
 Wed,  5 Jul 2017 15:34:07 +0000 (UTC)
 (envelope-from asomers@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v65FY6TN068225;
 Wed, 5 Jul 2017 15:34:06 GMT (envelope-from asomers@FreeBSD.org)
Received: (from asomers@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v65FY6vR068224;
 Wed, 5 Jul 2017 15:34:06 GMT (envelope-from asomers@FreeBSD.org)
Message-Id: <201707051534.v65FY6vR068224@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: asomers set sender to
 asomers@FreeBSD.org using -f
From: Alan Somers <asomers@FreeBSD.org>
Date: Wed, 5 Jul 2017 15:34:06 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320677 - stable/11/sbin/camcontrol
X-SVN-Group: stable-11
X-SVN-Commit-Author: asomers
X-SVN-Commit-Paths: stable/11/sbin/camcontrol
X-SVN-Commit-Revision: 320677
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 05 Jul 2017 15:34:07 -0000

Author: asomers
Date: Wed Jul  5 15:34:06 2017
New Revision: 320677
URL: https://svnweb.freebsd.org/changeset/base/320677

Log:
  MFC r319337:
  
  Fix integer overflow in "camcontrol format"
  
  Reported by:	Coverity
  CID:		1011426
  Sponsored by:	Spectra Logic Corp

Modified:
  stable/11/sbin/camcontrol/camcontrol.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sbin/camcontrol/camcontrol.c
==============================================================================
--- stable/11/sbin/camcontrol/camcontrol.c	Wed Jul  5 15:31:42 2017	(r320676)
+++ stable/11/sbin/camcontrol/camcontrol.c	Wed Jul  5 15:34:06 2017	(r320677)
@@ -6221,15 +6221,15 @@ doreport:
 				if ((scsi_get_sks(sense, ccb->csio.sense_len -
 				     ccb->csio.sense_resid, sks) == 0)
 				 && (quiet == 0)) {
-					int val;
+					uint32_t val;
 					u_int64_t percentage;
 
 					val = scsi_2btoul(&sks[1]);
-					percentage = 10000 * val;
+					percentage = 10000ull * val;
 
 					fprintf(stdout,
 						"\rFormatting:  %ju.%02u %% "
-						"(%d/%d) done",
+						"(%u/%d) done",
 						(uintmax_t)(percentage /
 						(0x10000 * 100)),
 						(unsigned)((percentage /

From owner-svn-src-stable@freebsd.org  Wed Jul  5 15:50:42 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id A0922DADEE6;
 Wed,  5 Jul 2017 15:50:42 +0000 (UTC)
 (envelope-from asomers@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 7CB55C47;
 Wed,  5 Jul 2017 15:50:42 +0000 (UTC)
 (envelope-from asomers@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v65FofaU072941;
 Wed, 5 Jul 2017 15:50:41 GMT (envelope-from asomers@FreeBSD.org)
Received: (from asomers@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v65FofwG072940;
 Wed, 5 Jul 2017 15:50:41 GMT (envelope-from asomers@FreeBSD.org)
Message-Id: <201707051550.v65FofwG072940@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: asomers set sender to
 asomers@FreeBSD.org using -f
From: Alan Somers <asomers@FreeBSD.org>
Date: Wed, 5 Jul 2017 15:50:41 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320679 - stable/11/sbin/ipfw
X-SVN-Group: stable-11
X-SVN-Commit-Author: asomers
X-SVN-Commit-Paths: stable/11/sbin/ipfw
X-SVN-Commit-Revision: 320679
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 05 Jul 2017 15:50:42 -0000

Author: asomers
Date: Wed Jul  5 15:50:41 2017
New Revision: 320679
URL: https://svnweb.freebsd.org/changeset/base/320679

Log:
  MFC r319900:
  
  sbin/ipfw: strcpy, strncpy => strlcpy
  
  Reported by:	Coverity
  CID:		1356162, 1356166
  Sponsored by:	Spectra Logic Corp
  Differential Revision:	https://reviews.freebsd.org/D10662

Modified:
  stable/11/sbin/ipfw/dummynet.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sbin/ipfw/dummynet.c
==============================================================================
--- stable/11/sbin/ipfw/dummynet.c	Wed Jul  5 15:42:33 2017	(r320678)
+++ stable/11/sbin/ipfw/dummynet.c	Wed Jul  5 15:50:41 2017	(r320679)
@@ -805,8 +805,7 @@ read_bandwidth(char *arg, int *bandwidth, char *if_nam
 			warn("interface name truncated");
 		namelen--;
 		/* interface name */
-		strncpy(if_name, arg, namelen);
-		if_name[namelen] = '\0';
+		strlcpy(if_name, arg, namelen);
 		*bandwidth = 0;
 	} else {	/* read bandwidth value */
 		int bw;
@@ -933,8 +932,7 @@ load_extra_delays(const char *filename, struct dn_prof
 		} else if (!strcasecmp(name, ED_TOK_NAME)) {
 		    if (profile_name[0] != '\0')
 			errx(ED_EFMT("duplicated token: %s"), name);
-		    strncpy(profile_name, arg, sizeof(profile_name) - 1);
-		    profile_name[sizeof(profile_name)-1] = '\0';
+		    strlcpy(profile_name, arg, sizeof(profile_name));
 		    do_points = 0;
 		} else if (!strcasecmp(name, ED_TOK_DELAY)) {
 		    if (do_points)
@@ -1005,7 +1003,7 @@ load_extra_delays(const char *filename, struct dn_prof
 	}
 	p->samples_no = samples;
 	p->loss_level = loss * samples;
-	strncpy(p->name, profile_name, sizeof(p->name));
+	strlcpy(p->name, profile_name, sizeof(p->name));
 }
 
 #ifdef NEW_AQM
@@ -1568,7 +1566,8 @@ end_mask:
 			fs->flags &= ~(DN_IS_RED|DN_IS_GENTLE_RED);
 			fs->flags |= DN_IS_AQM;
 
-			strcpy(aqm_extra->name,av[-1]);
+			strlcpy(aqm_extra->name, av[-1],
+			    sizeof(aqm_extra->name));
 			aqm_extra->oid.subtype = DN_AQM_PARAMS;
 
 			process_extra_parms(&ac, av, aqm_extra, tok);
@@ -1580,7 +1579,8 @@ end_mask:
 				errx(EX_DATAERR, "use type before fq_codel/fq_pie");
 
 			NEED(sch, "fq_codel/fq_pie is only for schd");
-			strcpy(sch_extra->name,av[-1]);
+			strlcpy(sch_extra->name, av[-1],
+			    sizeof(sch_extra->name));
 			sch_extra->oid.subtype = DN_SCH_PARAMS;
 			process_extra_parms(&ac, av, sch_extra, tok);
 			break;
@@ -1649,14 +1649,15 @@ end_mask:
 			l = strlen(av[0]);
 			if (l == 0 || l > 15)
 				errx(1, "type %s too long\n", av[0]);
-			strcpy(sch->name, av[0]);
+			strlcpy(sch->name, av[0], sizeof(sch->name));
 			sch->oid.subtype = 0; /* use string */
 #ifdef NEW_AQM
 			/* if fq_codel is selected, consider all tokens after it
 			 * as parameters
 			 */
 			if (!strcasecmp(av[0],"fq_codel") || !strcasecmp(av[0],"fq_pie")){
-				strcpy(sch_extra->name,av[0]);
+				strlcpy(sch_extra->name, av[0],
+				    sizeof(sch_extra->name));
 				sch_extra->oid.subtype = DN_SCH_PARAMS;
 				process_extra_parms(&ac, av, sch_extra, tok);
 			} else {

From owner-svn-src-stable@freebsd.org  Wed Jul  5 15:58:24 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 829D1D87422;
 Wed,  5 Jul 2017 15:58:24 +0000 (UTC)
 (envelope-from asomers@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 5F33B1364;
 Wed,  5 Jul 2017 15:58:24 +0000 (UTC)
 (envelope-from asomers@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v65FwNE6076973;
 Wed, 5 Jul 2017 15:58:23 GMT (envelope-from asomers@FreeBSD.org)
Received: (from asomers@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v65FwNRp076970;
 Wed, 5 Jul 2017 15:58:23 GMT (envelope-from asomers@FreeBSD.org)
Message-Id: <201707051558.v65FwNRp076970@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: asomers set sender to
 asomers@FreeBSD.org using -f
From: Alan Somers <asomers@FreeBSD.org>
Date: Wed, 5 Jul 2017 15:58:23 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320680 - in stable/11: bin/ln bin/ln/tests etc/mtree
X-SVN-Group: stable-11
X-SVN-Commit-Author: asomers
X-SVN-Commit-Paths: in stable/11: bin/ln bin/ln/tests etc/mtree
X-SVN-Commit-Revision: 320680
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 05 Jul 2017 15:58:24 -0000

Author: asomers
Date: Wed Jul  5 15:58:23 2017
New Revision: 320680
URL: https://svnweb.freebsd.org/changeset/base/320680

Log:
  MFC r319714, r319854
  
  r319714:
  Add tests for ln(1)
  
  * Verify that when creating a hard link to a symbolic link, '-L' option
    creates a hard link to the target of the symbolic link
  * Verify that when creating a hard link to a symbolic link, '-P' option
    creates a hard link to the symbolic link itself
  * Verify that if the target file already exists, '-f' option unlinks it so
    that link may occur
  * Verify that if the target file or directory is a symbolic link, '-shf'
    option prevents following the link
  * Verify that if the target file or directory is a symbolic link, '-snf'
    option prevents following the link
  * Verify that '-s' option creates a symbolic link
  * Verify that '-w' option produces a warning if the source of a symbolic
    link does not currently exist
  
  Submitted by:	shivansh
  Reviewed by:	asomers, ngie
  Sponsored by:	Google, Inc (GSoC 2017)
  Differential Revision:	https://reviews.freebsd.org/D11084
  
  r319854:
  bin/ln: Set umask appropriately before creating files for testing
  
  These changes were missed in D11084
  
  Submitted by:	shivansh
  Reviewed by:	asomers
  X-MFC-With:	319714
  Sponsored by:	Google, Inc (GSoC 2017)
  Differential Revision:	https://reviews.freebsd.org/D11158

Added:
  stable/11/bin/ln/tests/
     - copied from r319714, head/bin/ln/tests/
Modified:
  stable/11/bin/ln/Makefile
  stable/11/bin/ln/tests/ln_test.sh
  stable/11/etc/mtree/BSD.tests.dist
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/bin/ln/Makefile
==============================================================================
--- stable/11/bin/ln/Makefile	Wed Jul  5 15:50:41 2017	(r320679)
+++ stable/11/bin/ln/Makefile	Wed Jul  5 15:58:23 2017	(r320680)
@@ -1,11 +1,17 @@
 #	@(#)Makefile	8.2 (Berkeley) 5/31/93
 # $FreeBSD$
 
+.include <src.opts.mk>
+
 PACKAGE=runtime
 PROG=	ln
 MAN=	ln.1 symlink.7
 
 LINKS=	${BINDIR}/ln ${BINDIR}/link
 MLINKS=	ln.1 link.1
+
+.if ${MK_TESTS} != "no"
+SUBDIR+= 	tests
+.endif
 
 .include <bsd.prog.mk>

Modified: stable/11/bin/ln/tests/ln_test.sh
==============================================================================
--- head/bin/ln/tests/ln_test.sh	Thu Jun  8 19:09:55 2017	(r319714)
+++ stable/11/bin/ln/tests/ln_test.sh	Wed Jul  5 15:58:23 2017	(r320680)
@@ -98,6 +98,7 @@ target_exists_hard_head()
 
 target_exists_hard_body()
 {
+        set_umask
         atf_check touch A B
         atf_check -s exit:1 -e inline:'ln: B: File exists\n' \
                 ln A B
@@ -112,6 +113,7 @@ target_exists_symbolic_head()
 
 target_exists_symbolic_body()
 {
+        set_umask
         atf_check touch A B
         atf_check -s exit:1 -e inline:'ln: B: File exists\n' \
                 ln -s A B
@@ -155,6 +157,7 @@ sf_flag_head()
 
 sf_flag_body()
 {
+        set_umask
         atf_check touch A B
         atf_check ln -sf A B
         atf_check -o inline:'B: symbolic link to A\n' file B

Modified: stable/11/etc/mtree/BSD.tests.dist
==============================================================================
--- stable/11/etc/mtree/BSD.tests.dist	Wed Jul  5 15:50:41 2017	(r320679)
+++ stable/11/etc/mtree/BSD.tests.dist	Wed Jul  5 15:58:23 2017	(r320680)
@@ -16,6 +16,8 @@
         ..
         expr
         ..
+        ln
+        ..
         ls
         ..
         mv

From owner-svn-src-stable@freebsd.org  Wed Jul  5 15:59:53 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 81846D8750C;
 Wed,  5 Jul 2017 15:59:53 +0000 (UTC)
 (envelope-from asomers@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 4DE2F154E;
 Wed,  5 Jul 2017 15:59:53 +0000 (UTC)
 (envelope-from asomers@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v65Fxq2x077076;
 Wed, 5 Jul 2017 15:59:52 GMT (envelope-from asomers@FreeBSD.org)
Received: (from asomers@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v65Fxq26077075;
 Wed, 5 Jul 2017 15:59:52 GMT (envelope-from asomers@FreeBSD.org)
Message-Id: <201707051559.v65Fxq26077075@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: asomers set sender to
 asomers@FreeBSD.org using -f
From: Alan Somers <asomers@FreeBSD.org>
Date: Wed, 5 Jul 2017 15:59:52 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320681 - stable/11/usr.sbin/makefs/tests
X-SVN-Group: stable-11
X-SVN-Commit-Author: asomers
X-SVN-Commit-Paths: stable/11/usr.sbin/makefs/tests
X-SVN-Commit-Revision: 320681
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 05 Jul 2017 15:59:53 -0000

Author: asomers
Date: Wed Jul  5 15:59:52 2017
New Revision: 320681
URL: https://svnweb.freebsd.org/changeset/base/320681

Log:
  MFC r320163:
  
  Fix usr.sbin/makefs/makefs_ffs_tests when /etc/fstab does not exist
  
  dumpfs prints a harmless warning message (via ufs_disk_fillout(3) and
  getfsfile(3)), when /etc/fstab does not exist.  We can ignore it.
  
  PR:		220165
  Reported by:	gjb
  Sponsored by:	Spectra Logic Corp

Modified:
  stable/11/usr.sbin/makefs/tests/makefs_ffs_tests.sh
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/usr.sbin/makefs/tests/makefs_ffs_tests.sh
==============================================================================
--- stable/11/usr.sbin/makefs/tests/makefs_ffs_tests.sh	Wed Jul  5 15:58:23 2017	(r320680)
+++ stable/11/usr.sbin/makefs/tests/makefs_ffs_tests.sh	Wed Jul  5 15:59:52 2017	(r320681)
@@ -182,7 +182,7 @@ o_flag_version_1_body()
 	    $MAKEFS -M 1m -o version=$ffs_version $TEST_IMAGE $TEST_INPUTS_DIR
 
 	mount_image
-	atf_check -e empty -o match:"$ffs_label" dumpfs $TEST_MOUNT_DIR
+	atf_check -e ignore -o match:"$ffs_label" dumpfs $TEST_MOUNT_DIR
 	check_ffs_image_contents
 }
 o_flag_version_1_cleanup()
@@ -214,7 +214,7 @@ o_flag_version_2_body()
 	    $MAKEFS -M 1m -o version=$ffs_version $TEST_IMAGE $TEST_INPUTS_DIR
 
 	mount_image
-	atf_check -e empty -o match:"$ffs_label" dumpfs $TEST_MOUNT_DIR
+	atf_check -e ignore -o match:"$ffs_label" dumpfs $TEST_MOUNT_DIR
 	check_ffs_image_contents
 }
 o_flag_version_2_cleanup()

From owner-svn-src-stable@freebsd.org  Wed Jul  5 16:21:28 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5DD96D87BA7;
 Wed,  5 Jul 2017 16:21:28 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 2AA4D249C;
 Wed,  5 Jul 2017 16:21:28 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v65GLRss088454;
 Wed, 5 Jul 2017 16:21:27 GMT (envelope-from markj@FreeBSD.org)
Received: (from markj@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v65GLR6w088453;
 Wed, 5 Jul 2017 16:21:27 GMT (envelope-from markj@FreeBSD.org)
Message-Id: <201707051621.v65GLR6w088453@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: markj set sender to
 markj@FreeBSD.org using -f
From: Mark Johnston <markj@FreeBSD.org>
Date: Wed, 5 Jul 2017 16:21:27 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320684 - stable/11/sys/fs/fuse
X-SVN-Group: stable-11
X-SVN-Commit-Author: markj
X-SVN-Commit-Paths: stable/11/sys/fs/fuse
X-SVN-Commit-Revision: 320684
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 05 Jul 2017 16:21:28 -0000

Author: markj
Date: Wed Jul  5 16:21:26 2017
New Revision: 320684
URL: https://svnweb.freebsd.org/changeset/base/320684

Log:
  MFC r320451:
  Complete support for the IO_APPEND flag in fuse.

Modified:
  stable/11/sys/fs/fuse/fuse_io.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/fs/fuse/fuse_io.c
==============================================================================
--- stable/11/sys/fs/fuse/fuse_io.c	Wed Jul  5 16:20:22 2017	(r320683)
+++ stable/11/sys/fs/fuse/fuse_io.c	Wed Jul  5 16:21:26 2017	(r320684)
@@ -108,7 +108,7 @@ fuse_read_biobackend(struct vnode *vp, struct uio *uio
     struct ucred *cred, struct fuse_filehandle *fufh);
 static int 
 fuse_write_directbackend(struct vnode *vp, struct uio *uio,
-    struct ucred *cred, struct fuse_filehandle *fufh);
+    struct ucred *cred, struct fuse_filehandle *fufh, int ioflag);
 static int 
 fuse_write_biobackend(struct vnode *vp, struct uio *uio,
     struct ucred *cred, struct fuse_filehandle *fufh, int ioflag);
@@ -156,7 +156,7 @@ fuse_io_dispatch(struct vnode *vp, struct uio *uio, in
 		if (directio) {
 			FS_DEBUG("direct write of vnode %ju via file handle %ju\n",
 			    (uintmax_t)VTOILLU(vp), (uintmax_t)fufh->fh_id);
-			err = fuse_write_directbackend(vp, uio, cred, fufh);
+			err = fuse_write_directbackend(vp, uio, cred, fufh, ioflag);
 		} else {
 			FS_DEBUG("buffered write of vnode %ju\n", 
 			      (uintmax_t)VTOILLU(vp));
@@ -318,7 +318,7 @@ out:
 
 static int
 fuse_write_directbackend(struct vnode *vp, struct uio *uio,
-    struct ucred *cred, struct fuse_filehandle *fufh)
+    struct ucred *cred, struct fuse_filehandle *fufh, int ioflag)
 {
 	struct fuse_vnode_data *fvdat = VTOFUD(vp);
 	struct fuse_write_in *fwi;
@@ -327,8 +327,10 @@ fuse_write_directbackend(struct vnode *vp, struct uio 
 	int diff;
 	int err = 0;
 
-	if (!uio->uio_resid)
+	if (uio->uio_resid == 0)
 		return (0);
+	if (ioflag & IO_APPEND)
+		uio_setoffset(uio, fvdat->filesize);
 
 	fdisp_init(&fdi, 0);
 
@@ -705,7 +707,7 @@ fuse_io_strategy(struct vnode *vp, struct buf *bp)
 			io.iov_base = (char *)bp->b_data + bp->b_dirtyoff;
 			uiop->uio_rw = UIO_WRITE;
 
-			error = fuse_write_directbackend(vp, uiop, cred, fufh);
+			error = fuse_write_directbackend(vp, uiop, cred, fufh, 0);
 
 			if (error == EINTR || error == ETIMEDOUT
 			    || (!error && (bp->b_flags & B_NEEDCOMMIT))) {

From owner-svn-src-stable@freebsd.org  Wed Jul  5 16:39:31 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0EC48D8A112;
 Wed,  5 Jul 2017 16:39:31 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id BCB852CEA;
 Wed,  5 Jul 2017 16:39:30 +0000 (UTC)
 (envelope-from emaste@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v65GdTjt093547;
 Wed, 5 Jul 2017 16:39:29 GMT (envelope-from emaste@FreeBSD.org)
Received: (from emaste@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v65GdTeK093543;
 Wed, 5 Jul 2017 16:39:29 GMT (envelope-from emaste@FreeBSD.org)
Message-Id: <201707051639.v65GdTeK093543@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: emaste set sender to
 emaste@FreeBSD.org using -f
From: Ed Maste <emaste@FreeBSD.org>
Date: Wed, 5 Jul 2017 16:39:29 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320685 - in stable/11: contrib/elftoolchain/elfdump
 contrib/elftoolchain/libelftc lib/libelftc
X-SVN-Group: stable-11
X-SVN-Commit-Author: emaste
X-SVN-Commit-Paths: in stable/11: contrib/elftoolchain/elfdump
 contrib/elftoolchain/libelftc lib/libelftc
X-SVN-Commit-Revision: 320685
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 05 Jul 2017 16:39:31 -0000

Author: emaste
Date: Wed Jul  5 16:39:29 2017
New Revision: 320685
URL: https://svnweb.freebsd.org/changeset/base/320685

Log:
  This update is primarily bug fixes in C++ symbol demangling, including:
  
  - rvalue reference
  - builtin type auto and decltype(auto)
  - revamped support for function return types
  - formatting fixes
  - omit void when its the only param
  - ref-qualifiers and others in function types
  - type qualifiers in pointer-to-member function types
  - incorrect handling regarding CV-qualifiers in function types
  - ref-qualifier found in nested-name
  - properly handle <name> ::= <substitute><template-args>
  - make sure that nested function name is not a substitute candidate
  - correctly handle expression in template args
  - skip unknown substitution abbreviations
  
  Also r320663 libelftc: bump version, tracking import in r320343

Modified:
  stable/11/contrib/elftoolchain/elfdump/elfdump.c
  stable/11/contrib/elftoolchain/libelftc/_libelftc.h
  stable/11/contrib/elftoolchain/libelftc/libelftc_dem_gnu3.c
  stable/11/contrib/elftoolchain/libelftc/libelftc_vstr.c
  stable/11/lib/libelftc/elftc_version.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/contrib/elftoolchain/elfdump/elfdump.c
==============================================================================
--- stable/11/contrib/elftoolchain/elfdump/elfdump.c	Wed Jul  5 16:21:26 2017	(r320684)
+++ stable/11/contrib/elftoolchain/elfdump/elfdump.c	Wed Jul  5 16:39:29 2017	(r320685)
@@ -50,7 +50,7 @@
 
 #include "_elftc.h"
 
-ELFTC_VCSID("$Id: elfdump.c 3497 2016-10-17 20:57:22Z emaste $");
+ELFTC_VCSID("$Id: elfdump.c 3521 2017-06-04 20:07:09Z jkoshy $");
 
 #if defined(ELFTC_NEED_ELF_NOTE_DEFINITION)
 #include "native-elf-format.h"
@@ -2226,8 +2226,8 @@ elf_print_svr4_hash64(struct elfdump *ed, struct secti
 	uint64_t	*buf;
 	uint64_t	*bucket, *chain;
 	uint64_t	 nbucket, nchain;
-	uint64_t	*bl, *c, maxl, total;
-	uint64_t	 i, j;
+	uint64_t	*bl, *c, j, maxl, total;
+	size_t		 i;
 	int		 elferr, first;
 	char		 idx[10];
 

Modified: stable/11/contrib/elftoolchain/libelftc/_libelftc.h
==============================================================================
--- stable/11/contrib/elftoolchain/libelftc/_libelftc.h	Wed Jul  5 16:21:26 2017	(r320684)
+++ stable/11/contrib/elftoolchain/libelftc/_libelftc.h	Wed Jul  5 16:39:29 2017	(r320685)
@@ -24,7 +24,7 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
- * $Id: _libelftc.h 3174 2015-03-27 17:13:41Z emaste $
+ * $Id: _libelftc.h 3531 2017-06-05 05:08:43Z kaiwang27 $
  */
 
 #ifndef	__LIBELFTC_H_
@@ -82,6 +82,8 @@ bool	vector_str_init(struct vector_str *_vs);
 bool	vector_str_pop(struct vector_str *_vs);
 bool	vector_str_push(struct vector_str *_vs, const char *_str,
     size_t _len);
+bool	vector_str_push_vector(struct vector_str *_dst,
+    struct vector_str *_org);
 bool	vector_str_push_vector_head(struct vector_str *_dst,
     struct vector_str *_org);
 char	*vector_str_substr(const struct vector_str *_vs, size_t _begin,

Modified: stable/11/contrib/elftoolchain/libelftc/libelftc_dem_gnu3.c
==============================================================================
--- stable/11/contrib/elftoolchain/libelftc/libelftc_dem_gnu3.c	Wed Jul  5 16:21:26 2017	(r320684)
+++ stable/11/contrib/elftoolchain/libelftc/libelftc_dem_gnu3.c	Wed Jul  5 16:39:29 2017	(r320685)
@@ -1,5 +1,6 @@
 /*-
  * Copyright (c) 2007 Hyogeol Lee <hyogeollee@gmail.com>
+ * Copyright (c) 2015-2017 Kai Wang <kaiwang27@gmail.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -36,7 +37,7 @@
 
 #include "_libelftc.h"
 
-ELFTC_VCSID("$Id: libelftc_dem_gnu3.c 3512 2016-12-29 07:04:19Z kaiwang27 $");
+ELFTC_VCSID("$Id: libelftc_dem_gnu3.c 3560 2017-06-25 00:28:23Z kaiwang27 $");
 
 /**
  * @file cpp_demangle.c
@@ -50,7 +51,7 @@ ELFTC_VCSID("$Id: libelftc_dem_gnu3.c 3512 2016-12-29 
 
 enum type_qualifier {
 	TYPE_PTR, TYPE_REF, TYPE_CMX, TYPE_IMG, TYPE_EXT, TYPE_RST, TYPE_VAT,
-	TYPE_CST, TYPE_VEC
+	TYPE_CST, TYPE_VEC, TYPE_RREF
 };
 
 struct vector_type_qualifier {
@@ -64,29 +65,49 @@ enum read_cmd {
 	READ_TYPE, READ_FUNC, READ_PTRMEM
 };
 
+struct read_cmd_item {
+	enum read_cmd cmd;
+	void *data;
+};
+
 struct vector_read_cmd {
 	size_t size, capacity;
-	enum read_cmd *r_container;
+	struct read_cmd_item *r_container;
 };
 
+enum push_qualifier {
+	PUSH_ALL_QUALIFIER,
+	PUSH_CV_QUALIFIER,
+	PUSH_NON_CV_QUALIFIER,
+};
+
 struct cpp_demangle_data {
 	struct vector_str	 output;	/* output string vector */
-	struct vector_str	 output_tmp;
 	struct vector_str	 subst;		/* substitution string vector */
 	struct vector_str	 tmpl;
 	struct vector_str	 class_type;
+	struct vector_str	*cur_output;	/* ptr to current output vec */
 	struct vector_read_cmd	 cmd;
-	bool			 paren;		/* parenthesis opened */
-	bool			 pfirst;	/* first element of parameter */
 	bool			 mem_rst;	/* restrict member function */
 	bool			 mem_vat;	/* volatile member function */
 	bool			 mem_cst;	/* const member function */
+	bool			 mem_ref;	/* lvalue-ref member func */
+	bool			 mem_rref;	/* rvalue-ref member func */
+	bool			 is_tmpl;	/* template args */
+	bool			 is_functype;	/* function type */
+	bool			 ref_qualifier; /* ref qualifier */
+	enum type_qualifier	 ref_qualifier_type; /* ref qualifier type */
+	enum push_qualifier	 push_qualifier; /* which qualifiers to push */
 	int			 func_type;
 	const char		*cur;		/* current mangled name ptr */
 	const char		*last_sname;	/* last source name */
-	int			 push_head;
 };
 
+struct type_delimit {
+	bool paren;
+	bool firstp;
+};
+
 #define	CPP_DEMANGLE_TRY_LIMIT	128
 #define	FLOAT_SPRINTF_TRY_LIMIT	5
 #define	FLOAT_QUADRUPLE_BYTES	16
@@ -105,6 +126,7 @@ static int	cpp_demangle_push_fp(struct cpp_demangle_da
 		    char *(*)(const char *, size_t));
 static int	cpp_demangle_push_str(struct cpp_demangle_data *, const char *,
 		    size_t);
+static int	cpp_demangle_pop_str(struct cpp_demangle_data *);
 static int	cpp_demangle_push_subst(struct cpp_demangle_data *,
 		    const char *, size_t);
 static int	cpp_demangle_push_subst_v(struct cpp_demangle_data *,
@@ -137,16 +159,18 @@ static int	cpp_demangle_read_number_as_string(struct c
 static int	cpp_demangle_read_nv_offset(struct cpp_demangle_data *);
 static int	cpp_demangle_read_offset(struct cpp_demangle_data *);
 static int	cpp_demangle_read_offset_number(struct cpp_demangle_data *);
-static int	cpp_demangle_read_pointer_to_member(struct cpp_demangle_data *);
+static int	cpp_demangle_read_pointer_to_member(struct cpp_demangle_data *,
+		    struct vector_type_qualifier *);
 static int	cpp_demangle_read_sname(struct cpp_demangle_data *);
 static int	cpp_demangle_read_subst(struct cpp_demangle_data *);
 static int	cpp_demangle_read_subst_std(struct cpp_demangle_data *);
 static int	cpp_demangle_read_subst_stdtmpl(struct cpp_demangle_data *,
-		    const char *, size_t);
+		    const char *);
 static int	cpp_demangle_read_tmpl_arg(struct cpp_demangle_data *);
 static int	cpp_demangle_read_tmpl_args(struct cpp_demangle_data *);
 static int	cpp_demangle_read_tmpl_param(struct cpp_demangle_data *);
-static int	cpp_demangle_read_type(struct cpp_demangle_data *, int);
+static int	cpp_demangle_read_type(struct cpp_demangle_data *,
+		    struct type_delimit *);
 static int	cpp_demangle_read_type_flat(struct cpp_demangle_data *,
 		    char **);
 static int	cpp_demangle_read_uqname(struct cpp_demangle_data *);
@@ -158,10 +182,12 @@ static char	*decode_fp_to_float80(const char *, size_t
 static char	*decode_fp_to_long_double(const char *, size_t);
 static int	hex_to_dec(char);
 static void	vector_read_cmd_dest(struct vector_read_cmd *);
-static int	vector_read_cmd_find(struct vector_read_cmd *, enum read_cmd);
+static struct read_cmd_item *vector_read_cmd_find(struct vector_read_cmd *,
+		    enum read_cmd);
 static int	vector_read_cmd_init(struct vector_read_cmd *);
 static int	vector_read_cmd_pop(struct vector_read_cmd *);
-static int	vector_read_cmd_push(struct vector_read_cmd *, enum read_cmd);
+static int	vector_read_cmd_push(struct vector_read_cmd *, enum read_cmd,
+		    void *);
 static void	vector_type_qualifier_dest(struct vector_type_qualifier *);
 static int	vector_type_qualifier_init(struct vector_type_qualifier *);
 static int	vector_type_qualifier_push(struct vector_type_qualifier *,
@@ -178,9 +204,12 @@ char *
 cpp_demangle_gnu3(const char *org)
 {
 	struct cpp_demangle_data ddata;
+	struct vector_str ret_type;
+	struct type_delimit td;
 	ssize_t org_len;
 	unsigned int limit;
 	char *rtn;
+	bool has_ret, more_type;
 
 	if (org == NULL || (org_len = strlen(org)) < 2)
 		return (NULL);
@@ -200,26 +229,75 @@ cpp_demangle_gnu3(const char *org)
 		return (NULL);
 
 	rtn = NULL;
+	has_ret = more_type = false;
 
 	if (!cpp_demangle_read_encoding(&ddata))
 		goto clean;
 
+	/*
+	 * Pop function name from substitution candidate list.
+	 */
+	if (*ddata.cur != 0 && ddata.subst.size >= 1) {
+		if (!vector_str_pop(&ddata.subst))
+			goto clean;
+	}
+
+	td.paren = false;
+	td.firstp = true;
 	limit = 0;
+
+	/*
+	 * The first type is a return type if we just demangled template
+	 * args. (the template args is right next to the function name,
+	 * which means it's a template function)
+	 */
+	if (ddata.is_tmpl) {
+		ddata.is_tmpl = false;
+		if (!vector_str_init(&ret_type))
+			goto clean;
+		ddata.cur_output = &ret_type;
+		has_ret = true;
+	}
+
 	while (*ddata.cur != '\0') {
 		/*
 		 * Breaking at some gcc info at tail. e.g) @@GLIBCXX_3.4
 		 */
 		if (*ddata.cur == '@' && *(ddata.cur + 1) == '@')
 			break;
-		if (!cpp_demangle_read_type(&ddata, 1))
-			goto clean;
+
+		if (has_ret) {
+			/* Read return type */
+			if (!cpp_demangle_read_type(&ddata, NULL))
+				goto clean;
+		} else {
+			/* Read function arg type */
+			if (!cpp_demangle_read_type(&ddata, &td))
+				goto clean;
+		}
+
+		if (has_ret) {
+			/* Push return type to the beginning */
+			if (!VEC_PUSH_STR(&ret_type, " "))
+				goto clean;
+			if (!vector_str_push_vector_head(&ddata.output,
+			    &ret_type))
+				goto clean;
+			ddata.cur_output = &ddata.output;
+			vector_str_dest(&ret_type);
+			has_ret = false;
+			more_type = true;
+		} else if (more_type)
+			more_type = false;
 		if (limit++ > CPP_DEMANGLE_TRY_LIMIT)
 			goto clean;
 	}
+	if (more_type)
+		goto clean;
 
 	if (ddata.output.size == 0)
 		goto clean;
-	if (ddata.paren && !VEC_PUSH_STR(&ddata.output, ")"))
+	if (td.paren && !VEC_PUSH_STR(&ddata.output, ")"))
 		goto clean;
 	if (ddata.mem_vat && !VEC_PUSH_STR(&ddata.output, " volatile"))
 		goto clean;
@@ -227,10 +305,17 @@ cpp_demangle_gnu3(const char *org)
 		goto clean;
 	if (ddata.mem_rst && !VEC_PUSH_STR(&ddata.output, " restrict"))
 		goto clean;
+	if (ddata.mem_ref && !VEC_PUSH_STR(&ddata.output, " &"))
+		goto clean;
+	if (ddata.mem_rref && !VEC_PUSH_STR(&ddata.output, " &&"))
+		goto clean;
 
 	rtn = vector_str_get_flat(&ddata.output, (size_t *) NULL);
 
 clean:
+	if (has_ret)
+		vector_str_dest(&ret_type);
+
 	cpp_demangle_data_dest(&ddata);
 
 	return (rtn);
@@ -247,7 +332,6 @@ cpp_demangle_data_dest(struct cpp_demangle_data *d)
 	vector_str_dest(&d->class_type);
 	vector_str_dest(&d->tmpl);
 	vector_str_dest(&d->subst);
-	vector_str_dest(&d->output_tmp);
 	vector_str_dest(&d->output);
 }
 
@@ -260,43 +344,42 @@ cpp_demangle_data_init(struct cpp_demangle_data *d, co
 
 	if (!vector_str_init(&d->output))
 		return (0);
-	if (!vector_str_init(&d->output_tmp))
-		goto clean1;
 	if (!vector_str_init(&d->subst))
-		goto clean2;
+		goto clean1;
 	if (!vector_str_init(&d->tmpl))
-		goto clean3;
+		goto clean2;
 	if (!vector_str_init(&d->class_type))
-		goto clean4;
+		goto clean3;
 	if (!vector_read_cmd_init(&d->cmd))
-		goto clean5;
+		goto clean4;
 
 	assert(d->output.container != NULL);
-	assert(d->output_tmp.container != NULL);
 	assert(d->subst.container != NULL);
 	assert(d->tmpl.container != NULL);
 	assert(d->class_type.container != NULL);
 
-	d->paren = false;
-	d->pfirst = false;
 	d->mem_rst = false;
 	d->mem_vat = false;
 	d->mem_cst = false;
+	d->mem_ref = false;
+	d->mem_rref = false;
+	d->is_tmpl = false;
+	d->is_functype = false;
+	d->ref_qualifier = false;
+	d->push_qualifier = PUSH_ALL_QUALIFIER;
 	d->func_type = 0;
 	d->cur = cur;
+	d->cur_output = &d->output;
 	d->last_sname = NULL;
-	d->push_head = 0;
 
 	return (1);
 
-clean5:
-	vector_str_dest(&d->class_type);
 clean4:
-	vector_str_dest(&d->tmpl);
+	vector_str_dest(&d->class_type);
 clean3:
-	vector_str_dest(&d->subst);
+	vector_str_dest(&d->tmpl);
 clean2:
-	vector_str_dest(&d->output_tmp);
+	vector_str_dest(&d->subst);
 clean1:
 	vector_str_dest(&d->output);
 
@@ -341,13 +424,27 @@ cpp_demangle_push_str(struct cpp_demangle_data *ddata,
 	if (ddata == NULL || str == NULL || len == 0)
 		return (0);
 
-	if (ddata->push_head > 0)
-		return (vector_str_push(&ddata->output_tmp, str, len));
+	/*
+	 * is_tmpl is used to check if the type (function arg) is right next
+	 * to template args, and should always be cleared whenever new string
+	 * pushed.
+	 */
+	ddata->is_tmpl = false;
 
-	return (vector_str_push(&ddata->output, str, len));
+	return (vector_str_push(ddata->cur_output, str, len));
 }
 
 static int
+cpp_demangle_pop_str(struct cpp_demangle_data *ddata)
+{
+
+	if (ddata == NULL)
+		return (0);
+
+	return (vector_str_pop(ddata->cur_output));
+}
+
+static int
 cpp_demangle_push_subst(struct cpp_demangle_data *ddata, const char *str,
     size_t len)
 {
@@ -386,9 +483,11 @@ cpp_demangle_push_type_qualifier(struct cpp_demangle_d
     struct vector_type_qualifier *v, const char *type_str)
 {
 	struct vector_str subst_v;
+	enum type_qualifier t;
 	size_t idx, e_idx, e_len;
-	int rtn;
 	char *buf;
+	int rtn;
+	bool cv;
 
 	if (ddata == NULL || v == NULL)
 		return (0);
@@ -404,10 +503,14 @@ cpp_demangle_push_type_qualifier(struct cpp_demangle_d
 			goto clean;
 	}
 
+	cv = true;
 	e_idx = 0;
 	while (idx > 0) {
 		switch (v->q_container[idx - 1]) {
 		case TYPE_PTR:
+			cv = false;
+			if (ddata->push_qualifier == PUSH_CV_QUALIFIER)
+				break;
 			if (!DEM_PUSH_STR(ddata, "*"))
 				goto clean;
 			if (type_str != NULL) {
@@ -420,6 +523,9 @@ cpp_demangle_push_type_qualifier(struct cpp_demangle_d
 			break;
 
 		case TYPE_REF:
+			cv = false;
+			if (ddata->push_qualifier == PUSH_CV_QUALIFIER)
+				break;
 			if (!DEM_PUSH_STR(ddata, "&"))
 				goto clean;
 			if (type_str != NULL) {
@@ -431,7 +537,25 @@ cpp_demangle_push_type_qualifier(struct cpp_demangle_d
 			}
 			break;
 
+		case TYPE_RREF:
+			cv = false;
+			if (ddata->push_qualifier == PUSH_CV_QUALIFIER)
+				break;
+			if (!DEM_PUSH_STR(ddata, "&&"))
+				goto clean;
+			if (type_str != NULL) {
+				if (!VEC_PUSH_STR(&subst_v, "&&"))
+					goto clean;
+				if (!cpp_demangle_push_subst_v(ddata,
+				    &subst_v))
+					goto clean;
+			}
+			break;
+
 		case TYPE_CMX:
+			cv = false;
+			if (ddata->push_qualifier == PUSH_CV_QUALIFIER)
+				break;
 			if (!DEM_PUSH_STR(ddata, " complex"))
 				goto clean;
 			if (type_str != NULL) {
@@ -444,6 +568,9 @@ cpp_demangle_push_type_qualifier(struct cpp_demangle_d
 			break;
 
 		case TYPE_IMG:
+			cv = false;
+			if (ddata->push_qualifier == PUSH_CV_QUALIFIER)
+				break;
 			if (!DEM_PUSH_STR(ddata, " imaginary"))
 				goto clean;
 			if (type_str != NULL) {
@@ -457,6 +584,9 @@ cpp_demangle_push_type_qualifier(struct cpp_demangle_d
 			break;
 
 		case TYPE_EXT:
+			cv = false;
+			if (ddata->push_qualifier == PUSH_CV_QUALIFIER)
+				break;
 			if (v->ext_name.size == 0 ||
 			    e_idx > v->ext_name.size - 1)
 				goto clean;
@@ -489,11 +619,22 @@ cpp_demangle_push_type_qualifier(struct cpp_demangle_d
 			break;
 
 		case TYPE_RST:
+			if (ddata->push_qualifier == PUSH_NON_CV_QUALIFIER &&
+			    cv)
+				break;
+			if (ddata->push_qualifier == PUSH_CV_QUALIFIER && !cv)
+				break;
 			if (!DEM_PUSH_STR(ddata, " restrict"))
 				goto clean;
 			if (type_str != NULL) {
 				if (!VEC_PUSH_STR(&subst_v, " restrict"))
 					goto clean;
+				if (idx - 1 > 0) {
+					t = v->q_container[idx - 2];
+					if (t == TYPE_RST || t == TYPE_VAT ||
+					    t == TYPE_CST)
+						break;
+				}
 				if (!cpp_demangle_push_subst_v(ddata,
 				    &subst_v))
 					goto clean;
@@ -501,11 +642,22 @@ cpp_demangle_push_type_qualifier(struct cpp_demangle_d
 			break;
 
 		case TYPE_VAT:
+			if (ddata->push_qualifier == PUSH_NON_CV_QUALIFIER &&
+			    cv)
+				break;
+			if (ddata->push_qualifier == PUSH_CV_QUALIFIER && !cv)
+				break;
 			if (!DEM_PUSH_STR(ddata, " volatile"))
 				goto clean;
 			if (type_str != NULL) {
 				if (!VEC_PUSH_STR(&subst_v, " volatile"))
 					goto clean;
+				if (idx - 1 > 0) {
+					t = v->q_container[idx - 2];
+					if (t == TYPE_RST || t == TYPE_VAT ||
+					    t == TYPE_CST)
+						break;
+				}
 				if (!cpp_demangle_push_subst_v(ddata,
 				    &subst_v))
 					goto clean;
@@ -513,11 +665,22 @@ cpp_demangle_push_type_qualifier(struct cpp_demangle_d
 			break;
 
 		case TYPE_CST:
+			if (ddata->push_qualifier == PUSH_NON_CV_QUALIFIER &&
+			    cv)
+				break;
+			if (ddata->push_qualifier == PUSH_CV_QUALIFIER && !cv)
+				break;
 			if (!DEM_PUSH_STR(ddata, " const"))
 				goto clean;
 			if (type_str != NULL) {
 				if (!VEC_PUSH_STR(&subst_v, " const"))
 					goto clean;
+				if (idx - 1 > 0) {
+					t = v->q_container[idx - 2];
+					if (t == TYPE_RST || t == TYPE_VAT ||
+					    t == TYPE_CST)
+						break;
+				}
 				if (!cpp_demangle_push_subst_v(ddata,
 				    &subst_v))
 					goto clean;
@@ -525,6 +688,9 @@ cpp_demangle_push_type_qualifier(struct cpp_demangle_d
 			break;
 
 		case TYPE_VEC:
+			cv = false;
+			if (ddata->push_qualifier == PUSH_CV_QUALIFIER)
+				break;
 			if (v->ext_name.size == 0 ||
 			    e_idx > v->ext_name.size - 1)
 				goto clean;
@@ -614,7 +780,7 @@ cpp_demangle_read_array(struct cpp_demangle_data *ddat
 		if (*(++ddata->cur) == '\0')
 			return (0);
 
-		if (!cpp_demangle_read_type(ddata, 0))
+		if (!cpp_demangle_read_type(ddata, NULL))
 			return (0);
 
 		if (!DEM_PUSH_STR(ddata, "[]"))
@@ -630,7 +796,7 @@ cpp_demangle_read_array(struct cpp_demangle_data *ddat
 			assert(num_len > 0);
 			if (*(++ddata->cur) == '\0')
 				return (0);
-			if (!cpp_demangle_read_type(ddata, 0))
+			if (!cpp_demangle_read_type(ddata, NULL))
 				return (0);
 			if (!DEM_PUSH_STR(ddata, "["))
 				return (0);
@@ -660,7 +826,7 @@ cpp_demangle_read_array(struct cpp_demangle_data *ddat
 				free(exp);
 				return (0);
 			}
-			if (!cpp_demangle_read_type(ddata, 0)) {
+			if (!cpp_demangle_read_type(ddata, NULL)) {
 				free(exp);
 				return (0);
 			}
@@ -777,11 +943,11 @@ cpp_demangle_read_expression(struct cpp_demangle_data 
 	switch (SIMPLE_HASH(*ddata->cur, *(ddata->cur + 1))) {
 	case SIMPLE_HASH('s', 't'):
 		ddata->cur += 2;
-		return (cpp_demangle_read_type(ddata, 0));
+		return (cpp_demangle_read_type(ddata, NULL));
 
 	case SIMPLE_HASH('s', 'r'):
 		ddata->cur += 2;
-		if (!cpp_demangle_read_type(ddata, 0))
+		if (!cpp_demangle_read_type(ddata, NULL))
 			return (0);
 		if (!cpp_demangle_read_uqname(ddata))
 			return (0);
@@ -1058,8 +1224,7 @@ cpp_demangle_read_expression_flat(struct cpp_demangle_
 	size_t i, p_idx, idx, exp_len;
 	char *exp;
 
-	output = ddata->push_head > 0 ? &ddata->output_tmp :
-	    &ddata->output;
+	output = &ddata->output;
 
 	p_idx = output->size;
 
@@ -1136,8 +1301,12 @@ static int
 cpp_demangle_read_function(struct cpp_demangle_data *ddata, int *ext_c,
     struct vector_type_qualifier *v)
 {
+	struct type_delimit td;
+	struct read_cmd_item *rc;
 	size_t class_type_size, class_type_len, limit;
 	const char *class_type;
+	int i;
+	bool paren, non_cv_qualifier;
 
 	if (ddata == NULL || *ddata->cur != 'F' || v == NULL)
 		return (0);
@@ -1148,12 +1317,43 @@ cpp_demangle_read_function(struct cpp_demangle_data *d
 			*ext_c = 1;
 		++ddata->cur;
 	}
-	if (!cpp_demangle_read_type(ddata, 0))
+
+	/* Return type */
+	if (!cpp_demangle_read_type(ddata, NULL))
 		return (0);
+
 	if (*ddata->cur != 'E') {
-		if (!DEM_PUSH_STR(ddata, "("))
+		if (!DEM_PUSH_STR(ddata, " "))
 			return (0);
-		if (vector_read_cmd_find(&ddata->cmd, READ_PTRMEM)) {
+
+		non_cv_qualifier = false;
+		if (v->size > 0) {
+			for (i = 0; (size_t) i < v->size; i++) {
+				if (v->q_container[i] != TYPE_RST &&
+				    v->q_container[i] != TYPE_VAT &&
+				    v->q_container[i] != TYPE_CST) {
+					non_cv_qualifier = true;
+					break;
+				}
+			}
+		}
+
+		paren = false;
+		rc = vector_read_cmd_find(&ddata->cmd, READ_PTRMEM);
+		if (non_cv_qualifier || rc != NULL) {
+			if (!DEM_PUSH_STR(ddata, "("))
+				return (0);
+			paren = true;
+		}
+
+		/* Push non-cv qualifiers. */
+		ddata->push_qualifier = PUSH_NON_CV_QUALIFIER;
+		if (!cpp_demangle_push_type_qualifier(ddata, v, NULL))
+			return (0);
+
+		if (rc) {
+			if (non_cv_qualifier && !DEM_PUSH_STR(ddata, " "))
+				return (0);
 			if ((class_type_size = ddata->class_type.size) == 0)
 				return (0);
 			class_type =
@@ -1167,40 +1367,67 @@ cpp_demangle_read_function(struct cpp_demangle_data *d
 				return (0);
 			if (!DEM_PUSH_STR(ddata, "::*"))
 				return (0);
+			/* Push pointer-to-member qualifiers. */
+			ddata->push_qualifier = PUSH_ALL_QUALIFIER;
+			if (!cpp_demangle_push_type_qualifier(ddata, rc->data,
+			    NULL))
+				return (0);
 			++ddata->func_type;
-		} else {
-			if (!cpp_demangle_push_type_qualifier(ddata, v,
-			    (const char *) NULL))
+		}
+
+		if (paren) {
+			if (!DEM_PUSH_STR(ddata, ")"))
 				return (0);
-			vector_type_qualifier_dest(v);
-			if (!vector_type_qualifier_init(v))
-				return (0);
+			paren = false;
 		}
 
-		if (!DEM_PUSH_STR(ddata, ")("))
-			return (0);
-
+		td.paren = false;
+		td.firstp = true;
 		limit = 0;
+		ddata->is_functype = true;
 		for (;;) {
-			if (!cpp_demangle_read_type(ddata, 0))
+			if (!cpp_demangle_read_type(ddata, &td))
 				return (0);
 			if (*ddata->cur == 'E')
 				break;
 			if (limit++ > CPP_DEMANGLE_TRY_LIMIT)
 				return (0);
 		}
-
-		if (vector_read_cmd_find(&ddata->cmd, READ_PTRMEM) == 1) {
-			if (!cpp_demangle_push_type_qualifier(ddata, v,
-			    (const char *) NULL))
+		ddata->is_functype = false;
+		if (td.paren) {
+			if (!DEM_PUSH_STR(ddata, ")"))
 				return (0);
-			vector_type_qualifier_dest(v);
-			if (!vector_type_qualifier_init(v))
-				return (0);
+			td.paren = false;
 		}
 
-		if (!DEM_PUSH_STR(ddata, ")"))
+		/* Push CV qualifiers. */
+		ddata->push_qualifier = PUSH_CV_QUALIFIER;
+		if (!cpp_demangle_push_type_qualifier(ddata, v, NULL))
 			return (0);
+
+		ddata->push_qualifier = PUSH_ALL_QUALIFIER;
+
+		/* Release type qualifier vector. */
+		vector_type_qualifier_dest(v);
+		if (!vector_type_qualifier_init(v))
+			return (0);
+
+		/* Push ref-qualifiers. */
+		if (ddata->ref_qualifier) {
+			switch (ddata->ref_qualifier_type) {
+			case TYPE_REF:
+				if (!DEM_PUSH_STR(ddata, " &"))
+					return (0);
+				break;
+			case TYPE_RREF:
+				if (!DEM_PUSH_STR(ddata, " &&"))
+					return (0);
+				break;
+			default:
+				return (0);
+			}
+			ddata->ref_qualifier = false;
+		}
 	}
 
 	++ddata->cur;
@@ -1306,7 +1533,7 @@ cpp_demangle_read_encoding(struct cpp_demangle_data *d
 			goto clean3;
 		if (*ddata->cur++ != '_')
 			goto clean3;
-		if (!cpp_demangle_read_type(ddata, 0))
+		if (!cpp_demangle_read_type(ddata, NULL))
 			goto clean3;
 		if (!DEM_PUSH_STR(ddata, "-in-"))
 			goto clean3;
@@ -1328,7 +1555,7 @@ cpp_demangle_read_encoding(struct cpp_demangle_data *d
 		ddata->cur += 2;
 		if (*ddata->cur == '\0')
 			return (0);
-		return (cpp_demangle_read_type(ddata, 0));
+		return (cpp_demangle_read_type(ddata, NULL));
 
 	case SIMPLE_HASH('T', 'h'):
 		/* virtual function non-virtual override thunk */
@@ -1358,7 +1585,7 @@ cpp_demangle_read_encoding(struct cpp_demangle_data *d
 		ddata->cur += 2;
 		if (*ddata->cur == '\0')
 			return (0);
-		return (cpp_demangle_read_type(ddata, 0));
+		return (cpp_demangle_read_type(ddata, NULL));
 
 	case SIMPLE_HASH('T', 'J'):
 		/* java class */
@@ -1367,7 +1594,7 @@ cpp_demangle_read_encoding(struct cpp_demangle_data *d
 		ddata->cur += 2;
 		if (*ddata->cur == '\0')
 			return (0);
-		return (cpp_demangle_read_type(ddata, 0));
+		return (cpp_demangle_read_type(ddata, NULL));
 
 	case SIMPLE_HASH('T', 'S'):
 		/* RTTI name (NTBS) */
@@ -1376,7 +1603,7 @@ cpp_demangle_read_encoding(struct cpp_demangle_data *d
 		ddata->cur += 2;
 		if (*ddata->cur == '\0')
 			return (0);
-		return (cpp_demangle_read_type(ddata, 0));
+		return (cpp_demangle_read_type(ddata, NULL));
 
 	case SIMPLE_HASH('T', 'T'):
 		/* VTT table */
@@ -1385,7 +1612,7 @@ cpp_demangle_read_encoding(struct cpp_demangle_data *d
 		ddata->cur += 2;
 		if (*ddata->cur == '\0')
 			return (0);
-		return (cpp_demangle_read_type(ddata, 0));
+		return (cpp_demangle_read_type(ddata, NULL));
 
 	case SIMPLE_HASH('T', 'v'):
 		/* virtual function virtual override thunk */
@@ -1406,7 +1633,7 @@ cpp_demangle_read_encoding(struct cpp_demangle_data *d
 		ddata->cur += 2;
 		if (*ddata->cur == '\0')
 			return (0);
-		return (cpp_demangle_read_type(ddata, 0));
+		return (cpp_demangle_read_type(ddata, NULL));
 
 	case SIMPLE_HASH('T', 'W'):
 		/* TLS wrapper function */
@@ -1424,30 +1651,74 @@ cpp_demangle_read_encoding(struct cpp_demangle_data *d
 static int
 cpp_demangle_read_local_name(struct cpp_demangle_data *ddata)
 {
+	struct vector_str local_name;
+	struct type_delimit td;
 	size_t limit;
+	bool  more_type;
 
 	if (ddata == NULL)
 		return (0);
 	if (*(++ddata->cur) == '\0')
 		return (0);
-	if (!cpp_demangle_read_encoding(ddata))
+
+	vector_str_init(&local_name);
+	ddata->cur_output = &local_name;
+
+	if (!cpp_demangle_read_encoding(ddata)) {
+		vector_str_dest(&local_name);
 		return (0);
+	}
 
+	ddata->cur_output = &ddata->output;
+
+	td.paren = false;
+	td.firstp = true;
+	more_type = false;
 	limit = 0;
-	for (;;) {
-		if (!cpp_demangle_read_type(ddata, 1))
+
+	/*
+	 * The first type is a return type if we just demangled template
+	 * args. (the template args is right next to the function name,
+	 * which means it's a template function)
+	 */
+	if (ddata->is_tmpl) {
+		ddata->is_tmpl = false;
+
+		/* Read return type */
+		if (!cpp_demangle_read_type(ddata, NULL)) {
+			vector_str_dest(&local_name);
 			return (0);
+		}
+
+		more_type = true;
+	}
+
+	/* Now we can push the name after possible return type is handled. */
+	if (!vector_str_push_vector(&ddata->output, &local_name)) {
+		vector_str_dest(&local_name);
+		return (0);
+	}
+	vector_str_dest(&local_name);
+
+	while (*ddata->cur != '\0') {
+		if (!cpp_demangle_read_type(ddata, &td))
+			return (0);
+		if (more_type)
+			more_type = false;
 		if (*ddata->cur == 'E')
 			break;
 		if (limit++ > CPP_DEMANGLE_TRY_LIMIT)
 			return (0);
 	}
+	if (more_type)
+		return (0);
+
 	if (*(++ddata->cur) == '\0')
 		return (0);
-	if (ddata->paren == true) {
+	if (td.paren == true) {
 		if (!DEM_PUSH_STR(ddata, ")"))
 			return (0);
-		ddata->paren = false;
+		td.paren = false;
 	}
 	if (*ddata->cur == 's')
 		++ddata->cur;
@@ -1477,7 +1748,7 @@ cpp_demangle_read_name(struct cpp_demangle_data *ddata
 	if (ddata == NULL || *ddata->cur == '\0')
 		return (0);
 
-	output = ddata->push_head > 0 ? &ddata->output_tmp : &ddata->output;
+	output = ddata->cur_output;
 
 	subst_str = NULL;
 
@@ -1539,8 +1810,7 @@ cpp_demangle_read_name_flat(struct cpp_demangle_data *
 	size_t i, p_idx, idx, name_len;
 	char *name;
 
-	output = ddata->push_head > 0 ? &ddata->output_tmp :
-	    &ddata->output;
+	output = ddata->cur_output;
 
 	p_idx = output->size;
 
@@ -1577,8 +1847,7 @@ cpp_demangle_read_nested_name(struct cpp_demangle_data
 	if (*(++ddata->cur) == '\0')
 		return (0);
 
-	while (*ddata->cur == 'r' || *ddata->cur == 'V' ||
-	    *ddata->cur == 'K') {
+	do {
 		switch (*ddata->cur) {
 		case 'r':
 			ddata->mem_rst = true;
@@ -1589,11 +1858,19 @@ cpp_demangle_read_nested_name(struct cpp_demangle_data
 		case 'K':
 			ddata->mem_cst = true;
 			break;
+		case 'R':
+			ddata->mem_ref = true;
+			break;
+		case 'O':
+			ddata->mem_rref = true;
+			break;
+		default:
+			goto next;
 		}
-		++ddata->cur;
-	}
+	} while (*(++ddata->cur));
 
-	output = ddata->push_head > 0 ? &ddata->output_tmp : &ddata->output;
+next:
+	output = ddata->cur_output;
 	if (!vector_str_init(&v))
 		return (0);
 
@@ -1619,6 +1896,8 @@ cpp_demangle_read_nested_name(struct cpp_demangle_data
 				goto clean;
 		}
 
+		if (p_idx == output->size)
+			goto next_comp;
 		if ((subst_str = vector_str_substr(output, p_idx,
 		    output->size - 1, &subst_str_len)) == NULL)
 			goto clean;
@@ -1630,10 +1909,12 @@ cpp_demangle_read_nested_name(struct cpp_demangle_data
 
 		if (!cpp_demangle_push_subst_v(ddata, &v))
 			goto clean;
+
+	next_comp:
 		if (*ddata->cur == 'E')
 			break;
-		else if (*ddata->cur != 'I' &&
-		    *ddata->cur != 'C' && *ddata->cur != 'D') {
+		else if (*ddata->cur != 'I' && *ddata->cur != 'C' &&
+		    *ddata->cur != 'D' && p_idx != output->size) {
 			if (!DEM_PUSH_STR(ddata, "::"))
 				goto clean;
 			if (!VEC_PUSH_STR(&v, "::"))
@@ -1776,7 +2057,8 @@ cpp_demangle_read_offset_number(struct cpp_demangle_da
 }
 
 static int
-cpp_demangle_read_pointer_to_member(struct cpp_demangle_data *ddata)
+cpp_demangle_read_pointer_to_member(struct cpp_demangle_data *ddata,
+    struct vector_type_qualifier *v)
 {
 	size_t class_type_len, i, idx, p_idx;
 	int p_func_type, rtn;
@@ -1786,7 +2068,7 @@ cpp_demangle_read_pointer_to_member(struct cpp_demangl
 		return (0);
 
 	p_idx = ddata->output.size;
-	if (!cpp_demangle_read_type(ddata, 0))
+	if (!cpp_demangle_read_type(ddata, NULL))
 		return (0);
 
 	if ((class_type = vector_str_substr(&ddata->output, p_idx,
@@ -1799,14 +2081,14 @@ cpp_demangle_read_pointer_to_member(struct cpp_demangl
 		if (!vector_str_pop(&ddata->output))
 			goto clean1;
 
-	if (!vector_read_cmd_push(&ddata->cmd, READ_PTRMEM))
+	if (!vector_read_cmd_push(&ddata->cmd, READ_PTRMEM, v))
 		goto clean1;
 
 	if (!vector_str_push(&ddata->class_type, class_type, class_type_len))
 		goto clean2;
 
 	p_func_type = ddata->func_type;
-	if (!cpp_demangle_read_type(ddata, 0))
+	if (!cpp_demangle_read_type(ddata, NULL))
 		goto clean3;
 
 	if (p_func_type == ddata->func_type) {
@@ -1828,6 +2110,10 @@ clean2:
 clean1:
 	free(class_type);
 
+	vector_type_qualifier_dest(v);
+	if (!vector_type_qualifier_init(v))
+		return (0);
+
 	return (rtn);

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-stable@freebsd.org  Wed Jul  5 19:06:13 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id BE5A8D8D846;
 Wed,  5 Jul 2017 19:06:13 +0000 (UTC)
 (envelope-from bdrewery@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 8ACE267BB3;
 Wed,  5 Jul 2017 19:06:13 +0000 (UTC)
 (envelope-from bdrewery@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v65J6CUd055516;
 Wed, 5 Jul 2017 19:06:12 GMT (envelope-from bdrewery@FreeBSD.org)
Received: (from bdrewery@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v65J6CAB055515;
 Wed, 5 Jul 2017 19:06:12 GMT (envelope-from bdrewery@FreeBSD.org)
Message-Id: <201707051906.v65J6CAB055515@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: bdrewery set sender to
 bdrewery@FreeBSD.org using -f
From: Bryan Drewery <bdrewery@FreeBSD.org>
Date: Wed, 5 Jul 2017 19:06:12 +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: r320691 - stable/10
X-SVN-Group: stable-10
X-SVN-Commit-Author: bdrewery
X-SVN-Commit-Paths: stable/10
X-SVN-Commit-Revision: 320691
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 05 Jul 2017 19:06:13 -0000

Author: bdrewery
Date: Wed Jul  5 19:06:12 2017
New Revision: 320691
URL: https://svnweb.freebsd.org/changeset/base/320691

Log:
  MFC r289861:
  
    native-xtools: Replace common path with NXBDESTDIR.

Modified:
  stable/10/Makefile.inc1
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/Makefile.inc1
==============================================================================
--- stable/10/Makefile.inc1	Wed Jul  5 17:39:17 2017	(r320690)
+++ stable/10/Makefile.inc1	Wed Jul  5 19:06:12 2017	(r320691)
@@ -1555,12 +1555,13 @@ cross-tools: .MAKE .PHONY
 		${MAKE} DIRPRFX=${_tool}/ DESTDIR=${MAKEOBJDIRPREFIX} install
 .endfor
 
+NXBDESTDIR=	${OBJTREE}/nxb-bin
 NXBENV=		MAKEOBJDIRPREFIX=${OBJTREE}/nxb \
 		INSTALL="sh ${.CURDIR}/tools/install.sh" \
 		VERSION="${VERSION}"
 NXBMAKE=	${NXBENV} ${MAKE} \
-		TBLGEN=${OBJTREE}/nxb-bin/usr/bin/tblgen \
-		CLANG_TBLGEN=${OBJTREE}/nxb-bin/usr/bin/clang-tblgen \
+		TBLGEN=${NXBDESTDIR}/usr/bin/tblgen \
+		CLANG_TBLGEN=${NXBDESTDIR}/usr/bin/clang-tblgen \
 		MACHINE=${TARGET} MACHINE_ARCH=${TARGET_ARCH} \
 		-DWITHOUT_GDB -DNO_TESTS \
 		SSP_CFLAGS= \
@@ -1570,13 +1571,11 @@ NXBMAKE=	${NXBENV} ${MAKE} \
 		-DWITHOUT_CLANG_FULL -DWITHOUT_LLDB
 
 native-xtools: .PHONY
-	mkdir -p ${OBJTREE}/nxb-bin/bin
-	mkdir -p ${OBJTREE}/nxb-bin/sbin
-	mkdir -p ${OBJTREE}/nxb-bin/usr
+	mkdir -p ${NXBDESTDIR}/bin ${NXBDESTDIR}/sbin ${NXBDESTDIR}/usr
 	mtree -deU -f ${.CURDIR}/etc/mtree/BSD.usr.dist \
-	    -p ${OBJTREE}/nxb-bin/usr >/dev/null
+	    -p ${NXBDESTDIR}/usr >/dev/null
 	mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \
-	    -p ${OBJTREE}/nxb-bin/usr/include >/dev/null
+	    -p ${NXBDESTDIR}/usr/include >/dev/null
 .for _tool in \
     bin/cat \
     bin/chmod \
@@ -1640,7 +1639,7 @@ native-xtools: .PHONY
 		${NXBMAKE} DIRPRFX=${_tool}/ obj; \
 		${NXBMAKE} DIRPRFX=${_tool}/ depend; \
 		${NXBMAKE} DIRPRFX=${_tool}/ all; \
-		${NXBMAKE} DIRPRFX=${_tool}/ DESTDIR=${OBJTREE}/nxb-bin install
+		${NXBMAKE} DIRPRFX=${_tool}/ DESTDIR=${NXBDESTDIR} install
 .endfor
 
 #

From owner-svn-src-stable@freebsd.org  Thu Jul  6 00:43:44 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id EA706D96137;
 Thu,  6 Jul 2017 00:43:44 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id C53697782C;
 Thu,  6 Jul 2017 00:43:44 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v660hhJQ095953;
 Thu, 6 Jul 2017 00:43:43 GMT (envelope-from gjb@FreeBSD.org)
Received: (from gjb@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v660hhjO095952;
 Thu, 6 Jul 2017 00:43:43 GMT (envelope-from gjb@FreeBSD.org)
Message-Id: <201707060043.v660hhjO095952@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org
 using -f
From: Glen Barber <gjb@FreeBSD.org>
Date: Thu, 6 Jul 2017 00:43:43 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320697 - in stable: 10/release/scripts 11/release/scripts
X-SVN-Group: stable-11
X-SVN-Commit-Author: gjb
X-SVN-Commit-Paths: in stable: 10/release/scripts 11/release/scripts
X-SVN-Commit-Revision: 320697
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Jul 2017 00:43:45 -0000

Author: gjb
Date: Thu Jul  6 00:43:43 2017
New Revision: 320697
URL: https://svnweb.freebsd.org/changeset/base/320697

Log:
  MFC r320599:
   Fix Vagrant image upload after recent API changes.
  
   - Update ATLAS_UPLOAD_URL to avoid various regular expressions
     from failing to match due to redirections.
   - Use ATLAS_UPLOAD_URL throughout the script.
   - Adjust several regular expression patterns.
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/11/release/scripts/atlas-upload.sh
Directory Properties:
  stable/11/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/10/release/scripts/atlas-upload.sh
Directory Properties:
  stable/10/   (props changed)

Modified: stable/11/release/scripts/atlas-upload.sh
==============================================================================
--- stable/11/release/scripts/atlas-upload.sh	Wed Jul  5 20:00:58 2017	(r320696)
+++ stable/11/release/scripts/atlas-upload.sh	Thu Jul  6 00:43:43 2017	(r320697)
@@ -27,7 +27,7 @@
 #
 
 ATLAS_API_URL=''
-ATLAS_UPLOAD_URL='https://binstore.hashicorp.com'
+ATLAS_UPLOAD_URL='https://app.vagrantup.com'
 DESCRIPTION="FreeBSD Snapshot Build"
 
 usage() {
@@ -76,7 +76,7 @@ main () {
 	fi
 
 	# Check to see if the box exists or create it
-	BOXRESULT=$(/usr/local/bin/curl -s "https://atlas.hashicorp.com/api/v1/box/${USERNAME}/${BOX}?access_token=${KEY}")
+	BOXRESULT=$(/usr/local/bin/curl -s "${ATLAS_UPLOAD_URL}/api/v1/box/${USERNAME}/${BOX}?access_token=${KEY}")
 	if [ $? != 0 ]; then
 		echo "Failed to connect to the API"
 		exit 2;
@@ -84,26 +84,26 @@ main () {
 	echo $BOXRESULT | grep "\"name\":\"${BOX}\"" > /dev/null
 	if [ $? != 0 ]; then
 		echo "Creating box: ${BOX}"
-		/usr/local/bin/curl -s https://atlas.hashicorp.com/api/v1/boxes -X POST -d "box[name]=${BOX}" -d "access_token=${KEY}" > /dev/null
-		/usr/local/bin/curl -s https://atlas.hashicorp.com/api/v1/box/${USERNAME}/${BOX} -X PUT -d "box[is_private]=false" -d "access_token=${KEY}" > /dev/null
-		/usr/local/bin/curl -s https://atlas.hashicorp.com/api/v1/box/${USERNAME}/${BOX} -X PUT -d "box[description]='${DESCRIPTION}'" -d "access_token=${KEY}" > /dev/null
+		/usr/local/bin/curl -s ${ATLAS_UPLOAD_URL}/api/v1/boxes -X POST -d "box[name]=${BOX}" -d "access_token=${KEY}" > /dev/null
+		/usr/local/bin/curl -s ${ATLAS_UPLOAD_URL}/api/v1/box/${USERNAME}/${BOX} -X PUT -d "box[is_private]=false" -d "access_token=${KEY}" > /dev/null
+		/usr/local/bin/curl -s ${ATLAS_UPLOAD_URL}/api/v1/box/${USERNAME}/${BOX} -X PUT -d "box[description]='${DESCRIPTION}'" -d "access_token=${KEY}" > /dev/null
 	else
 		echo "Box already exists"
 	fi
 
 	# Check to see if the version exists or create it
-	VERSIONRESULT=$(/usr/local/bin/curl -s "https://atlas.hashicorp.com/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}?access_token=${KEY}")
+	VERSIONRESULT=$(/usr/local/bin/curl -s "${ATLAS_UPLOAD_URL}/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}?access_token=${KEY}")
 	if [ $? != 0 ]; then
 		echo "Failed to connect to the API"
 		exit 2;
 	fi
-	echo $VERSIONRESULT | grep "\"version\":\"${VERSION}\"" > /dev/null
+	echo $VERSIONRESULT | grep "version/${VERSION}" > /dev/null
 	if [ $? != 0 ]; then
 		echo "Creating version: ${VERSION}"
-		/usr/local/bin/curl -s https://atlas.hashicorp.com/api/v1/box/${USERNAME}/${BOX}/versions -X POST -d "version[version]=${VERSION}" -d "access_token=${KEY}" > /dev/null
-		/usr/local/bin/curl -s https://atlas.hashicorp.com/api/v1/box/${USERNAME}/${BOX}/version/${VERSION} -X PUT -d "version[description]=${DESCRIPTION}" -d "access_token=${KEY}" > /dev/null
-		VERSIONRESULT=$(/usr/local/bin/curl -s "https://atlas.hashicorp.com/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}?access_token=${KEY}")
-		echo $VERSIONRESULT | grep "\"version\":\"${VERSION}\"" > /dev/null
+		/usr/local/bin/curl -s ${ATLAS_UPLOAD_URL}/api/v1/box/${USERNAME}/${BOX}/versions -X POST -d "version[version]=${VERSION}" -d "access_token=${KEY}" > /dev/null
+		/usr/local/bin/curl -s ${ATLAS_UPLOAD_URL}/api/v1/box/${USERNAME}/${BOX}/version/${VERSION} -X PUT -d "version[description]=${DESCRIPTION}" -d "access_token=${KEY}" > /dev/null
+		VERSIONRESULT=$(/usr/local/bin/curl -s "${ATLAS_UPLOAD_URL}/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}?access_token=${KEY}")
+		echo $VERSIONRESULT | grep "version/${VERSION}" > /dev/null
 		if [ $? != 0 ]; then
 			echo "Failed to create version"
 			exit 2
@@ -113,37 +113,37 @@ main () {
 	fi
 
 	# Check to see if the provider exists or create it
-	PROVIDERRESULT=$(/usr/local/bin/curl -s "https://atlas.hashicorp.com/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}/provider/${PROVIDER}?access_token=${KEY}")
+	PROVIDERRESULT=$(/usr/local/bin/curl -s "${ATLAS_UPLOAD_URL}/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}/provider/${PROVIDER}?access_token=${KEY}")
 	if [ $? != 0 ]; then
 		echo "Failed to connect to the API"
 		exit 2;
 	fi
-	echo $PROVIDERRESULT | grep "\"name\":\"${PROVIDER}\"" > /dev/null
+	echo $PROVIDERRESULT | grep "provider/${PROVIDER}" > /dev/null
 	if [ $? != 0 ]; then
 		echo "Creating provider: ${PROVIDER}"
-		/usr/local/bin/curl -s https://atlas.hashicorp.com/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}/providers -X POST -d "provider[name]=${PROVIDER}" -d "access_token=${KEY}" > /dev/null
+		/usr/local/bin/curl -s ${ATLAS_UPLOAD_URL}/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}/providers -X POST -d "provider[name]=${PROVIDER}" -d "access_token=${KEY}" > /dev/null
 	else
 		echo "Provider already exists"
 	fi
 
 	# Request an upload token
-	TOKENRESULT=$(/usr/local/bin/curl -s "https://atlas.hashicorp.com/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}/provider/${PROVIDER}/upload?access_token=${KEY}")
+	TOKENRESULT=$(/usr/local/bin/curl -s "${ATLAS_UPLOAD_URL}/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}/provider/${PROVIDER}/upload?access_token=${KEY}")
 	if [ $? != 0 ]; then
 		echo "Failed to get the token from the API"
 		exit 2;
 	fi
-	echo ${TOKENRESULT} | grep -E "\"(token|upload_path)\":" > /dev/null
+	echo ${TOKENRESULT} | grep -E "upload_path" > /dev/null
 	if [ $? != 0 ]; then
 		echo "No token found from the API"
 		exit 2
 	else
 		TOKEN=$(echo $TOKENRESULT | sed -e 's/.*token":"//' -e 's/.*upload_path":"//' -e 's/}$//g' -e 's/"//g')
 		echo "Uploading to Atlas"
-		UPLOADRESULT=$(/usr/local/bin/curl -s -X PUT --upload-file ${FILE} ${TOKEN})
+		UPLOADRESULT=$(/usr/local/bin/curl -s -X PUT --upload-file ${FILE} "${TOKEN}")
 
 		# Validate the Upload
 		echo "Validating"
-		VALIDRESULT=$(/usr/local/bin/curl -s "https://atlas.hashicorp.com/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}/provider/${PROVIDER}?access_token=${KEY}")
+		VALIDRESULT=$(/usr/local/bin/curl -s "${ATLAS_UPLOAD_URL}/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}/provider/${PROVIDER}?access_token=${KEY}")
 		HOSTED_TOKEN=$(echo $VALIDRESULT | sed -e 's/.*"hosted"://' -e 's/,.*$//')
 		if [ ! -z ${TOKEN} -a "${HOSTED_TOKEN}" != "true" ]; then
 			echo "Upload failed, try again."
@@ -152,7 +152,7 @@ main () {
 
 		# Release the version
 		echo "Releasing ${VERSION} of ${BOX} in Atlas"
-		/usr/local/bin/curl -s https://atlas.hashicorp.com/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}/release -X PUT -d "access_token=${KEY}" > /dev/null
+		/usr/local/bin/curl -s ${ATLAS_UPLOAD_URL}/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}/release -X PUT -d "access_token=${KEY}" > /dev/null
 	fi
 }
 

From owner-svn-src-stable@freebsd.org  Thu Jul  6 00:43:44 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id A3AB9D96132;
 Thu,  6 Jul 2017 00:43:44 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 7E1C87782A;
 Thu,  6 Jul 2017 00:43:44 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v660hhLc095947;
 Thu, 6 Jul 2017 00:43:43 GMT (envelope-from gjb@FreeBSD.org)
Received: (from gjb@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v660hhuM095946;
 Thu, 6 Jul 2017 00:43:43 GMT (envelope-from gjb@FreeBSD.org)
Message-Id: <201707060043.v660hhuM095946@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org
 using -f
From: Glen Barber <gjb@FreeBSD.org>
Date: Thu, 6 Jul 2017 00:43:43 +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: r320697 - in stable: 10/release/scripts 11/release/scripts
X-SVN-Group: stable-10
X-SVN-Commit-Author: gjb
X-SVN-Commit-Paths: in stable: 10/release/scripts 11/release/scripts
X-SVN-Commit-Revision: 320697
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Jul 2017 00:43:44 -0000

Author: gjb
Date: Thu Jul  6 00:43:43 2017
New Revision: 320697
URL: https://svnweb.freebsd.org/changeset/base/320697

Log:
  MFC r320599:
   Fix Vagrant image upload after recent API changes.
  
   - Update ATLAS_UPLOAD_URL to avoid various regular expressions
     from failing to match due to redirections.
   - Use ATLAS_UPLOAD_URL throughout the script.
   - Adjust several regular expression patterns.
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/10/release/scripts/atlas-upload.sh
Directory Properties:
  stable/10/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/11/release/scripts/atlas-upload.sh
Directory Properties:
  stable/11/   (props changed)

Modified: stable/10/release/scripts/atlas-upload.sh
==============================================================================
--- stable/10/release/scripts/atlas-upload.sh	Wed Jul  5 20:00:58 2017	(r320696)
+++ stable/10/release/scripts/atlas-upload.sh	Thu Jul  6 00:43:43 2017	(r320697)
@@ -27,7 +27,7 @@
 #
 
 ATLAS_API_URL=''
-ATLAS_UPLOAD_URL='https://binstore.hashicorp.com'
+ATLAS_UPLOAD_URL='https://app.vagrantup.com'
 DESCRIPTION="FreeBSD Snapshot Build"
 
 usage() {
@@ -76,7 +76,7 @@ main () {
 	fi
 
 	# Check to see if the box exists or create it
-	BOXRESULT=$(/usr/local/bin/curl -s "https://atlas.hashicorp.com/api/v1/box/${USERNAME}/${BOX}?access_token=${KEY}")
+	BOXRESULT=$(/usr/local/bin/curl -s "${ATLAS_UPLOAD_URL}/api/v1/box/${USERNAME}/${BOX}?access_token=${KEY}")
 	if [ $? != 0 ]; then
 		echo "Failed to connect to the API"
 		exit 2;
@@ -84,26 +84,26 @@ main () {
 	echo $BOXRESULT | grep "\"name\":\"${BOX}\"" > /dev/null
 	if [ $? != 0 ]; then
 		echo "Creating box: ${BOX}"
-		/usr/local/bin/curl -s https://atlas.hashicorp.com/api/v1/boxes -X POST -d "box[name]=${BOX}" -d "access_token=${KEY}" > /dev/null
-		/usr/local/bin/curl -s https://atlas.hashicorp.com/api/v1/box/${USERNAME}/${BOX} -X PUT -d "box[is_private]=false" -d "access_token=${KEY}" > /dev/null
-		/usr/local/bin/curl -s https://atlas.hashicorp.com/api/v1/box/${USERNAME}/${BOX} -X PUT -d "box[description]='${DESCRIPTION}'" -d "access_token=${KEY}" > /dev/null
+		/usr/local/bin/curl -s ${ATLAS_UPLOAD_URL}/api/v1/boxes -X POST -d "box[name]=${BOX}" -d "access_token=${KEY}" > /dev/null
+		/usr/local/bin/curl -s ${ATLAS_UPLOAD_URL}/api/v1/box/${USERNAME}/${BOX} -X PUT -d "box[is_private]=false" -d "access_token=${KEY}" > /dev/null
+		/usr/local/bin/curl -s ${ATLAS_UPLOAD_URL}/api/v1/box/${USERNAME}/${BOX} -X PUT -d "box[description]='${DESCRIPTION}'" -d "access_token=${KEY}" > /dev/null
 	else
 		echo "Box already exists"
 	fi
 
 	# Check to see if the version exists or create it
-	VERSIONRESULT=$(/usr/local/bin/curl -s "https://atlas.hashicorp.com/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}?access_token=${KEY}")
+	VERSIONRESULT=$(/usr/local/bin/curl -s "${ATLAS_UPLOAD_URL}/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}?access_token=${KEY}")
 	if [ $? != 0 ]; then
 		echo "Failed to connect to the API"
 		exit 2;
 	fi
-	echo $VERSIONRESULT | grep "\"version\":\"${VERSION}\"" > /dev/null
+	echo $VERSIONRESULT | grep "version/${VERSION}" > /dev/null
 	if [ $? != 0 ]; then
 		echo "Creating version: ${VERSION}"
-		/usr/local/bin/curl -s https://atlas.hashicorp.com/api/v1/box/${USERNAME}/${BOX}/versions -X POST -d "version[version]=${VERSION}" -d "access_token=${KEY}" > /dev/null
-		/usr/local/bin/curl -s https://atlas.hashicorp.com/api/v1/box/${USERNAME}/${BOX}/version/${VERSION} -X PUT -d "version[description]=${DESCRIPTION}" -d "access_token=${KEY}" > /dev/null
-		VERSIONRESULT=$(/usr/local/bin/curl -s "https://atlas.hashicorp.com/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}?access_token=${KEY}")
-		echo $VERSIONRESULT | grep "\"version\":\"${VERSION}\"" > /dev/null
+		/usr/local/bin/curl -s ${ATLAS_UPLOAD_URL}/api/v1/box/${USERNAME}/${BOX}/versions -X POST -d "version[version]=${VERSION}" -d "access_token=${KEY}" > /dev/null
+		/usr/local/bin/curl -s ${ATLAS_UPLOAD_URL}/api/v1/box/${USERNAME}/${BOX}/version/${VERSION} -X PUT -d "version[description]=${DESCRIPTION}" -d "access_token=${KEY}" > /dev/null
+		VERSIONRESULT=$(/usr/local/bin/curl -s "${ATLAS_UPLOAD_URL}/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}?access_token=${KEY}")
+		echo $VERSIONRESULT | grep "version/${VERSION}" > /dev/null
 		if [ $? != 0 ]; then
 			echo "Failed to create version"
 			exit 2
@@ -113,37 +113,37 @@ main () {
 	fi
 
 	# Check to see if the provider exists or create it
-	PROVIDERRESULT=$(/usr/local/bin/curl -s "https://atlas.hashicorp.com/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}/provider/${PROVIDER}?access_token=${KEY}")
+	PROVIDERRESULT=$(/usr/local/bin/curl -s "${ATLAS_UPLOAD_URL}/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}/provider/${PROVIDER}?access_token=${KEY}")
 	if [ $? != 0 ]; then
 		echo "Failed to connect to the API"
 		exit 2;
 	fi
-	echo $PROVIDERRESULT | grep "\"name\":\"${PROVIDER}\"" > /dev/null
+	echo $PROVIDERRESULT | grep "provider/${PROVIDER}" > /dev/null
 	if [ $? != 0 ]; then
 		echo "Creating provider: ${PROVIDER}"
-		/usr/local/bin/curl -s https://atlas.hashicorp.com/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}/providers -X POST -d "provider[name]=${PROVIDER}" -d "access_token=${KEY}" > /dev/null
+		/usr/local/bin/curl -s ${ATLAS_UPLOAD_URL}/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}/providers -X POST -d "provider[name]=${PROVIDER}" -d "access_token=${KEY}" > /dev/null
 	else
 		echo "Provider already exists"
 	fi
 
 	# Request an upload token
-	TOKENRESULT=$(/usr/local/bin/curl -s "https://atlas.hashicorp.com/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}/provider/${PROVIDER}/upload?access_token=${KEY}")
+	TOKENRESULT=$(/usr/local/bin/curl -s "${ATLAS_UPLOAD_URL}/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}/provider/${PROVIDER}/upload?access_token=${KEY}")
 	if [ $? != 0 ]; then
 		echo "Failed to get the token from the API"
 		exit 2;
 	fi
-	echo ${TOKENRESULT} | grep -E "\"(token|upload_path)\":" > /dev/null
+	echo ${TOKENRESULT} | grep -E "upload_path" > /dev/null
 	if [ $? != 0 ]; then
 		echo "No token found from the API"
 		exit 2
 	else
 		TOKEN=$(echo $TOKENRESULT | sed -e 's/.*token":"//' -e 's/.*upload_path":"//' -e 's/}$//g' -e 's/"//g')
 		echo "Uploading to Atlas"
-		UPLOADRESULT=$(/usr/local/bin/curl -s -X PUT --upload-file ${FILE} ${TOKEN})
+		UPLOADRESULT=$(/usr/local/bin/curl -s -X PUT --upload-file ${FILE} "${TOKEN}")
 
 		# Validate the Upload
 		echo "Validating"
-		VALIDRESULT=$(/usr/local/bin/curl -s "https://atlas.hashicorp.com/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}/provider/${PROVIDER}?access_token=${KEY}")
+		VALIDRESULT=$(/usr/local/bin/curl -s "${ATLAS_UPLOAD_URL}/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}/provider/${PROVIDER}?access_token=${KEY}")
 		HOSTED_TOKEN=$(echo $VALIDRESULT | sed -e 's/.*"hosted"://' -e 's/,.*$//')
 		if [ ! -z ${TOKEN} -a "${HOSTED_TOKEN}" != "true" ]; then
 			echo "Upload failed, try again."
@@ -152,7 +152,7 @@ main () {
 
 		# Release the version
 		echo "Releasing ${VERSION} of ${BOX} in Atlas"
-		/usr/local/bin/curl -s https://atlas.hashicorp.com/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}/release -X PUT -d "access_token=${KEY}" > /dev/null
+		/usr/local/bin/curl -s ${ATLAS_UPLOAD_URL}/api/v1/box/${USERNAME}/${BOX}/version/${VERSION}/release -X PUT -d "access_token=${KEY}" > /dev/null
 	fi
 }
 

From owner-svn-src-stable@freebsd.org  Thu Jul  6 05:20:31 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3FB1DD9EB8E;
 Thu,  6 Jul 2017 05:20:31 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 0DC07806DD;
 Thu,  6 Jul 2017 05:20:30 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v665KUfS010071;
 Thu, 6 Jul 2017 05:20:30 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v665KU3m010070;
 Thu, 6 Jul 2017 05:20:30 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201707060520.v665KU3m010070@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Thu, 6 Jul 2017 05:20:30 +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: r320706 - stable/10/usr.bin/pr/tests
X-SVN-Group: stable-10
X-SVN-Commit-Author: ngie
X-SVN-Commit-Paths: stable/10/usr.bin/pr/tests
X-SVN-Commit-Revision: 320706
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Jul 2017 05:20:31 -0000

Author: ngie
Date: Thu Jul  6 05:20:30 2017
New Revision: 320706
URL: https://svnweb.freebsd.org/changeset/base/320706

Log:
  Fix up r319257
  
  PACKAGE support doesn't exist on ^/stable/10, so FILES must be used instead.
  Furthermore, BINDIR isn't automatically set to ${TESTSDIR} on this branch.
  
  This is a direct commit to ^/stable/10.

Modified:
  stable/10/usr.bin/pr/tests/Makefile

Modified: stable/10/usr.bin/pr/tests/Makefile
==============================================================================
--- stable/10/usr.bin/pr/tests/Makefile	Thu Jul  6 05:16:06 2017	(r320705)
+++ stable/10/usr.bin/pr/tests/Makefile	Thu Jul  6 05:20:30 2017	(r320706)
@@ -1,16 +1,16 @@
 # $FreeBSD$
 
-PACKAGE=	tests
-
 ATF_TESTS_SH+=    	basic2_test
 NETBSD_ATF_TESTS_SH=    basic
 
-${PACKAGE}FILES+=	across.out
-${PACKAGE}FILES+=	d_basic.in
-${PACKAGE}FILES+=	d_basic.out
-${PACKAGE}FILES+=	merge.out
-${PACKAGE}FILES+=	other.in
-${PACKAGE}FILES+=	threecol.out
+FILES+=	across.out
+FILES+=	d_basic.in
+FILES+=	d_basic.out
+FILES+=	merge.out
+FILES+=	other.in
+FILES+=	threecol.out
+
+BINDIR=	${TESTSDIR}
 
 .include <netbsd-tests.test.mk>
 

From owner-svn-src-stable@freebsd.org  Thu Jul  6 05:22:12 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 07522D9EFC2;
 Thu,  6 Jul 2017 05:22:12 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id D66DD80A53;
 Thu,  6 Jul 2017 05:22:11 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v665MBDZ014063;
 Thu, 6 Jul 2017 05:22:11 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v665MAWc014040;
 Thu, 6 Jul 2017 05:22:10 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201707060522.v665MAWc014040@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Thu, 6 Jul 2017 05:22:10 +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: r320708 - in stable/10: bin/cat/tests
 contrib/netbsd-tests/bin/cat
X-SVN-Group: stable-10
X-SVN-Commit-Author: ngie
X-SVN-Commit-Paths: in stable/10: bin/cat/tests contrib/netbsd-tests/bin/cat
X-SVN-Commit-Revision: 320708
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Jul 2017 05:22:12 -0000

Author: ngie
Date: Thu Jul  6 05:22:10 2017
New Revision: 320708
URL: https://svnweb.freebsd.org/changeset/base/320708

Log:
  MFC r319634:
  
  Add additional testcases for cat(1)
  
  Verify the following additional cases:
  - -s (in isolation, in addition to the -se testcase obtained via the
        NetBSD test).
  - -vt

Added:
  stable/10/contrib/netbsd-tests/bin/cat/d_s_output.in
     - copied unchanged from r319634, head/contrib/netbsd-tests/bin/cat/d_s_output.in
  stable/10/contrib/netbsd-tests/bin/cat/d_s_output.out
     - copied unchanged from r319634, head/contrib/netbsd-tests/bin/cat/d_s_output.out
  stable/10/contrib/netbsd-tests/bin/cat/d_vt_output.in
     - copied unchanged from r319634, head/contrib/netbsd-tests/bin/cat/d_vt_output.in
  stable/10/contrib/netbsd-tests/bin/cat/d_vt_output.out
     - copied unchanged from r319634, head/contrib/netbsd-tests/bin/cat/d_vt_output.out
Modified:
  stable/10/bin/cat/tests/Makefile
  stable/10/contrib/netbsd-tests/bin/cat/t_cat.sh
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/bin/cat/tests/Makefile
==============================================================================
--- stable/10/bin/cat/tests/Makefile	Thu Jul  6 05:22:02 2017	(r320707)
+++ stable/10/bin/cat/tests/Makefile	Thu Jul  6 05:22:10 2017	(r320708)
@@ -3,6 +3,10 @@
 NETBSD_ATF_TESTS_SH=		cat_test
 
 FILESDIR=	${TESTSDIR}
+${PACKAGE}FILES+=		d_s_output.in
+${PACKAGE}FILES+=		d_s_output.out
+${PACKAGE}FILES+=		d_vt_output.in
+${PACKAGE}FILES+=		d_vt_output.out
 
 FILES+=		d_align.in
 FILES+=		d_align.out

Copied: stable/10/contrib/netbsd-tests/bin/cat/d_s_output.in (from r319634, head/contrib/netbsd-tests/bin/cat/d_s_output.in)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/10/contrib/netbsd-tests/bin/cat/d_s_output.in	Thu Jul  6 05:22:10 2017	(r320708, copy of r319634, head/contrib/netbsd-tests/bin/cat/d_s_output.in)
@@ -0,0 +1,6 @@
+a b c
+
+
+1 2 3
+
+x y z

Copied: stable/10/contrib/netbsd-tests/bin/cat/d_s_output.out (from r319634, head/contrib/netbsd-tests/bin/cat/d_s_output.out)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/10/contrib/netbsd-tests/bin/cat/d_s_output.out	Thu Jul  6 05:22:10 2017	(r320708, copy of r319634, head/contrib/netbsd-tests/bin/cat/d_s_output.out)
@@ -0,0 +1,5 @@
+a b c
+
+1 2 3
+
+x y z

Copied: stable/10/contrib/netbsd-tests/bin/cat/d_vt_output.in (from r319634, head/contrib/netbsd-tests/bin/cat/d_vt_output.in)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/10/contrib/netbsd-tests/bin/cat/d_vt_output.in	Thu Jul  6 05:22:10 2017	(r320708, copy of r319634, head/contrib/netbsd-tests/bin/cat/d_vt_output.in)
@@ -0,0 +1,3 @@
+	
+<BS>
+á

Copied: stable/10/contrib/netbsd-tests/bin/cat/d_vt_output.out (from r319634, head/contrib/netbsd-tests/bin/cat/d_vt_output.out)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/10/contrib/netbsd-tests/bin/cat/d_vt_output.out	Thu Jul  6 05:22:10 2017	(r320708, copy of r319634, head/contrib/netbsd-tests/bin/cat/d_vt_output.out)
@@ -0,0 +1,3 @@
+^I
+^X<BS>
+M-a

Modified: stable/10/contrib/netbsd-tests/bin/cat/t_cat.sh
==============================================================================
--- stable/10/contrib/netbsd-tests/bin/cat/t_cat.sh	Thu Jul  6 05:22:02 2017	(r320707)
+++ stable/10/contrib/netbsd-tests/bin/cat/t_cat.sh	Thu Jul  6 05:22:10 2017	(r320708)
@@ -63,9 +63,50 @@ se_output_body() {
 		-x "cat -se $(atf_get_srcdir)/d_se_output.in"
 }
 
+# Begin FreeBSD
+atf_test_case s_output
+s_output_head() {
+	atf_set "descr" "Test that cat(1) squeezes multiple adjacent " \
+			"empty lines producing a single spaced output with option '-s'"
+}
+
+s_output_body() {
+	atf_check -s ignore -o file:$(atf_get_srcdir)/d_s_output.out \
+		cat -s $(atf_get_srcdir)/d_s_output.in
+}
+
+atf_test_case e_output
+e_output_head() {
+	atf_set "descr" "Test that cat(1) prints a $ sign " \
+			"on blank lines with option '-e'"
+}
+
+e_output_body() {
+	atf_check -s ignore -o file:$(atf_get_srcdir)/d_se_output.out \
+		cat -e $(atf_get_srcdir)/d_se_output.in
+}
+
+atf_test_case vt_output
+vt_output_head() {
+	atf_set "descr" "Test that cat(1) displays non-printing characters, " \
+			"namely control characters, tab character and meta-characters " \
+			"using options '-vt'"
+}
+
+vt_output_body() {
+	atf_check -s ignore -o file:$(atf_get_srcdir)/d_vt_output.out \
+		cat -vt $(atf_get_srcdir)/d_vt_output.in
+}
+# End FreeBSD
+
 atf_init_test_cases()
 {
 	atf_add_test_case align
 	atf_add_test_case nonexistent
 	atf_add_test_case se_output
+# Begin FreeBSD
+	atf_add_test_case s_output
+	atf_add_test_case e_output
+	atf_add_test_case vt_output
+# End FreeBSD
 }

From owner-svn-src-stable@freebsd.org  Thu Jul  6 05:22:04 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 673ADD9EF96;
 Thu,  6 Jul 2017 05:22:04 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 4366980A2D;
 Thu,  6 Jul 2017 05:22:04 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v665M3N5011716;
 Thu, 6 Jul 2017 05:22:03 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v665M2A3011710;
 Thu, 6 Jul 2017 05:22:02 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201707060522.v665M2A3011710@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Thu, 6 Jul 2017 05:22:02 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320707 - in stable/11: bin/cat/tests
 contrib/netbsd-tests/bin/cat
X-SVN-Group: stable-11
X-SVN-Commit-Author: ngie
X-SVN-Commit-Paths: in stable/11: bin/cat/tests contrib/netbsd-tests/bin/cat
X-SVN-Commit-Revision: 320707
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Jul 2017 05:22:04 -0000

Author: ngie
Date: Thu Jul  6 05:22:02 2017
New Revision: 320707
URL: https://svnweb.freebsd.org/changeset/base/320707

Log:
  MFC r319634:
  
  Add additional testcases for cat(1)
  
  Verify the following additional cases:
  - -s (in isolation, in addition to the -se testcase obtained via the
        NetBSD test).
  - -vt

Added:
  stable/11/contrib/netbsd-tests/bin/cat/d_s_output.in
     - copied unchanged from r319634, head/contrib/netbsd-tests/bin/cat/d_s_output.in
  stable/11/contrib/netbsd-tests/bin/cat/d_s_output.out
     - copied unchanged from r319634, head/contrib/netbsd-tests/bin/cat/d_s_output.out
  stable/11/contrib/netbsd-tests/bin/cat/d_vt_output.in
     - copied unchanged from r319634, head/contrib/netbsd-tests/bin/cat/d_vt_output.in
  stable/11/contrib/netbsd-tests/bin/cat/d_vt_output.out
     - copied unchanged from r319634, head/contrib/netbsd-tests/bin/cat/d_vt_output.out
Modified:
  stable/11/bin/cat/tests/Makefile
  stable/11/contrib/netbsd-tests/bin/cat/t_cat.sh
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/bin/cat/tests/Makefile
==============================================================================
--- stable/11/bin/cat/tests/Makefile	Thu Jul  6 05:20:30 2017	(r320706)
+++ stable/11/bin/cat/tests/Makefile	Thu Jul  6 05:22:02 2017	(r320707)
@@ -8,6 +8,10 @@ ${PACKAGE}FILES+=		d_align.in
 ${PACKAGE}FILES+=		d_align.out
 ${PACKAGE}FILES+=		d_se_output.in
 ${PACKAGE}FILES+=		d_se_output.out
+${PACKAGE}FILES+=		d_s_output.in
+${PACKAGE}FILES+=		d_s_output.out
+${PACKAGE}FILES+=		d_vt_output.in
+${PACKAGE}FILES+=		d_vt_output.out
 
 .include <netbsd-tests.test.mk>
 

Copied: stable/11/contrib/netbsd-tests/bin/cat/d_s_output.in (from r319634, head/contrib/netbsd-tests/bin/cat/d_s_output.in)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/11/contrib/netbsd-tests/bin/cat/d_s_output.in	Thu Jul  6 05:22:02 2017	(r320707, copy of r319634, head/contrib/netbsd-tests/bin/cat/d_s_output.in)
@@ -0,0 +1,6 @@
+a b c
+
+
+1 2 3
+
+x y z

Copied: stable/11/contrib/netbsd-tests/bin/cat/d_s_output.out (from r319634, head/contrib/netbsd-tests/bin/cat/d_s_output.out)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/11/contrib/netbsd-tests/bin/cat/d_s_output.out	Thu Jul  6 05:22:02 2017	(r320707, copy of r319634, head/contrib/netbsd-tests/bin/cat/d_s_output.out)
@@ -0,0 +1,5 @@
+a b c
+
+1 2 3
+
+x y z

Copied: stable/11/contrib/netbsd-tests/bin/cat/d_vt_output.in (from r319634, head/contrib/netbsd-tests/bin/cat/d_vt_output.in)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/11/contrib/netbsd-tests/bin/cat/d_vt_output.in	Thu Jul  6 05:22:02 2017	(r320707, copy of r319634, head/contrib/netbsd-tests/bin/cat/d_vt_output.in)
@@ -0,0 +1,3 @@
+	
+<BS>
+á

Copied: stable/11/contrib/netbsd-tests/bin/cat/d_vt_output.out (from r319634, head/contrib/netbsd-tests/bin/cat/d_vt_output.out)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/11/contrib/netbsd-tests/bin/cat/d_vt_output.out	Thu Jul  6 05:22:02 2017	(r320707, copy of r319634, head/contrib/netbsd-tests/bin/cat/d_vt_output.out)
@@ -0,0 +1,3 @@
+^I
+^X<BS>
+M-a

Modified: stable/11/contrib/netbsd-tests/bin/cat/t_cat.sh
==============================================================================
--- stable/11/contrib/netbsd-tests/bin/cat/t_cat.sh	Thu Jul  6 05:20:30 2017	(r320706)
+++ stable/11/contrib/netbsd-tests/bin/cat/t_cat.sh	Thu Jul  6 05:22:02 2017	(r320707)
@@ -63,9 +63,50 @@ se_output_body() {
 		-x "cat -se $(atf_get_srcdir)/d_se_output.in"
 }
 
+# Begin FreeBSD
+atf_test_case s_output
+s_output_head() {
+	atf_set "descr" "Test that cat(1) squeezes multiple adjacent " \
+			"empty lines producing a single spaced output with option '-s'"
+}
+
+s_output_body() {
+	atf_check -s ignore -o file:$(atf_get_srcdir)/d_s_output.out \
+		cat -s $(atf_get_srcdir)/d_s_output.in
+}
+
+atf_test_case e_output
+e_output_head() {
+	atf_set "descr" "Test that cat(1) prints a $ sign " \
+			"on blank lines with option '-e'"
+}
+
+e_output_body() {
+	atf_check -s ignore -o file:$(atf_get_srcdir)/d_se_output.out \
+		cat -e $(atf_get_srcdir)/d_se_output.in
+}
+
+atf_test_case vt_output
+vt_output_head() {
+	atf_set "descr" "Test that cat(1) displays non-printing characters, " \
+			"namely control characters, tab character and meta-characters " \
+			"using options '-vt'"
+}
+
+vt_output_body() {
+	atf_check -s ignore -o file:$(atf_get_srcdir)/d_vt_output.out \
+		cat -vt $(atf_get_srcdir)/d_vt_output.in
+}
+# End FreeBSD
+
 atf_init_test_cases()
 {
 	atf_add_test_case align
 	atf_add_test_case nonexistent
 	atf_add_test_case se_output
+# Begin FreeBSD
+	atf_add_test_case s_output
+	atf_add_test_case e_output
+	atf_add_test_case vt_output
+# End FreeBSD
 }

From owner-svn-src-stable@freebsd.org  Thu Jul  6 05:26:29 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 815BFDA075C;
 Thu,  6 Jul 2017 05:26:29 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 5B12B8133A;
 Thu,  6 Jul 2017 05:26:29 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v665QSHs014339;
 Thu, 6 Jul 2017 05:26:28 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v665QSAi014336;
 Thu, 6 Jul 2017 05:26:28 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201707060526.v665QSAi014336@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Thu, 6 Jul 2017 05:26: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: r320710 - in stable/10: bin/cat/tests
 contrib/netbsd-tests/bin/cat
X-SVN-Group: stable-10
X-SVN-Commit-Author: ngie
X-SVN-Commit-Paths: in stable/10: bin/cat/tests contrib/netbsd-tests/bin/cat
X-SVN-Commit-Revision: 320710
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Jul 2017 05:26:29 -0000

Author: ngie
Date: Thu Jul  6 05:26:27 2017
New Revision: 320710
URL: https://svnweb.freebsd.org/changeset/base/320710

Log:
  MFC r319637:
  
  Add testcases for `cat -b`

Added:
  stable/10/contrib/netbsd-tests/bin/cat/d_b_output.in
     - copied unchanged from r319637, head/contrib/netbsd-tests/bin/cat/d_b_output.in
  stable/10/contrib/netbsd-tests/bin/cat/d_b_output.out
     - copied unchanged from r319637, head/contrib/netbsd-tests/bin/cat/d_b_output.out
Modified:
  stable/10/bin/cat/tests/Makefile
  stable/10/contrib/netbsd-tests/bin/cat/t_cat.sh
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/bin/cat/tests/Makefile
==============================================================================
--- stable/10/bin/cat/tests/Makefile	Thu Jul  6 05:26:24 2017	(r320709)
+++ stable/10/bin/cat/tests/Makefile	Thu Jul  6 05:26:27 2017	(r320710)
@@ -3,15 +3,17 @@
 NETBSD_ATF_TESTS_SH=		cat_test
 
 FILESDIR=	${TESTSDIR}
-${PACKAGE}FILES+=		d_s_output.in
-${PACKAGE}FILES+=		d_s_output.out
-${PACKAGE}FILES+=		d_vt_output.in
-${PACKAGE}FILES+=		d_vt_output.out
 
 FILES+=		d_align.in
 FILES+=		d_align.out
+FILES+=		d_b_output.in
+FILES+=		d_b_output.out
 FILES+=		d_se_output.in
 FILES+=		d_se_output.out
+FILES+=		d_s_output.in
+FILES+=		d_s_output.out
+FILES+=		d_vt_output.in
+FILES+=		d_vt_output.out
 
 .include <netbsd-tests.test.mk>
 

Copied: stable/10/contrib/netbsd-tests/bin/cat/d_b_output.in (from r319637, head/contrib/netbsd-tests/bin/cat/d_b_output.in)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/10/contrib/netbsd-tests/bin/cat/d_b_output.in	Thu Jul  6 05:26:27 2017	(r320710, copy of r319637, head/contrib/netbsd-tests/bin/cat/d_b_output.in)
@@ -0,0 +1,4 @@
+This is a line
+
+The line before this was a blank line.
+    This line has leading whitespace.

Copied: stable/10/contrib/netbsd-tests/bin/cat/d_b_output.out (from r319637, head/contrib/netbsd-tests/bin/cat/d_b_output.out)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/10/contrib/netbsd-tests/bin/cat/d_b_output.out	Thu Jul  6 05:26:27 2017	(r320710, copy of r319637, head/contrib/netbsd-tests/bin/cat/d_b_output.out)
@@ -0,0 +1,4 @@
+     1	This is a line
+
+     2	The line before this was a blank line.
+     3	    This line has leading whitespace.

Modified: stable/10/contrib/netbsd-tests/bin/cat/t_cat.sh
==============================================================================
--- stable/10/contrib/netbsd-tests/bin/cat/t_cat.sh	Thu Jul  6 05:26:24 2017	(r320709)
+++ stable/10/contrib/netbsd-tests/bin/cat/t_cat.sh	Thu Jul  6 05:26:27 2017	(r320710)
@@ -52,6 +52,19 @@ nonexistent_body() {
 		-x "cat /some/name/that/does/not/exist"
 }
 
+# Begin FreeBSD
+atf_test_case b_output
+b_output_head() {
+	atf_set "descr" "Test that cat(1) prints out numbers on non-blank "\
+			"lines with '-b'"
+}
+
+b_output_body() {
+	atf_check -o file:$(atf_get_srcdir)/d_b_output.out \
+		cat -b $(atf_get_srcdir)/d_b_output.in
+}
+# End FreeBSD
+
 atf_test_case se_output
 se_output_head() {
 	atf_set "descr" "Test that cat(1) prints a $ sign " \
@@ -103,6 +116,9 @@ atf_init_test_cases()
 {
 	atf_add_test_case align
 	atf_add_test_case nonexistent
+# Begin FreeBSD
+	atf_add_test_case b_output
+# End FreeBSD
 	atf_add_test_case se_output
 # Begin FreeBSD
 	atf_add_test_case s_output

From owner-svn-src-stable@freebsd.org  Thu Jul  6 05:28:33 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 6CC62DA096C;
 Thu,  6 Jul 2017 05:28:33 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 39475814F8;
 Thu,  6 Jul 2017 05:28:33 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v665SWIg014521;
 Thu, 6 Jul 2017 05:28:32 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v665SWRR014519;
 Thu, 6 Jul 2017 05:28:32 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201707060528.v665SWRR014519@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Thu, 6 Jul 2017 05:28:32 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320711 - in stable/11: bin/echo bin/echo/tests etc/mtree
X-SVN-Group: stable-11
X-SVN-Commit-Author: ngie
X-SVN-Commit-Paths: in stable/11: bin/echo bin/echo/tests etc/mtree
X-SVN-Commit-Revision: 320711
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Jul 2017 05:28:33 -0000

Author: ngie
Date: Thu Jul  6 05:28:32 2017
New Revision: 320711
URL: https://svnweb.freebsd.org/changeset/base/320711

Log:
  MFC r319626:
  
  Add basic tests for echo(1)
  
  Verify that echo(1) does not...
  - ... print the trailing newline character with option '-n'.
  - ... print the trailing newline character when '\c' is appended to
        the end of the string.

Added:
  stable/11/bin/echo/tests/
     - copied from r319626, head/bin/echo/tests/
Modified:
  stable/11/bin/echo/Makefile
  stable/11/etc/mtree/BSD.tests.dist
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/bin/echo/Makefile
==============================================================================
--- stable/11/bin/echo/Makefile	Thu Jul  6 05:26:27 2017	(r320710)
+++ stable/11/bin/echo/Makefile	Thu Jul  6 05:28:32 2017	(r320711)
@@ -1,7 +1,13 @@
 #	@(#)Makefile	8.1 (Berkeley) 5/31/93
 # $FreeBSD$
 
+.include <src.opts.mk>
+
 PACKAGE=runtime
 PROG=	echo
+
+.if ${MK_TESTS} != "no"
+SUBDIR+= 	tests
+.endif
 
 .include <bsd.prog.mk>

Modified: stable/11/etc/mtree/BSD.tests.dist
==============================================================================
--- stable/11/etc/mtree/BSD.tests.dist	Thu Jul  6 05:26:27 2017	(r320710)
+++ stable/11/etc/mtree/BSD.tests.dist	Thu Jul  6 05:28:32 2017	(r320711)
@@ -14,6 +14,8 @@
         ..
         dd
         ..
+        echo
+        ..
         expr
         ..
         ln

From owner-svn-src-stable@freebsd.org  Thu Jul  6 05:28:36 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id E6627DA0989;
 Thu,  6 Jul 2017 05:28:36 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id B3179814FA;
 Thu,  6 Jul 2017 05:28:36 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v665SZiq014569;
 Thu, 6 Jul 2017 05:28:35 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v665SZsa014567;
 Thu, 6 Jul 2017 05:28:35 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201707060528.v665SZsa014567@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Thu, 6 Jul 2017 05:28:35 +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: r320712 - in stable/10: bin/echo bin/echo/tests etc/mtree
X-SVN-Group: stable-10
X-SVN-Commit-Author: ngie
X-SVN-Commit-Paths: in stable/10: bin/echo bin/echo/tests etc/mtree
X-SVN-Commit-Revision: 320712
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Jul 2017 05:28:37 -0000

Author: ngie
Date: Thu Jul  6 05:28:35 2017
New Revision: 320712
URL: https://svnweb.freebsd.org/changeset/base/320712

Log:
  MFC r319626:
  
  Add basic tests for echo(1)
  
  Verify that echo(1) does not...
  - ... print the trailing newline character with option '-n'.
  - ... print the trailing newline character when '\c' is appended to
        the end of the string.

Added:
  stable/10/bin/echo/tests/
     - copied from r319626, head/bin/echo/tests/
Modified:
  stable/10/bin/echo/Makefile
  stable/10/etc/mtree/BSD.tests.dist
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/bin/echo/Makefile
==============================================================================
--- stable/10/bin/echo/Makefile	Thu Jul  6 05:28:32 2017	(r320711)
+++ stable/10/bin/echo/Makefile	Thu Jul  6 05:28:35 2017	(r320712)
@@ -1,6 +1,12 @@
 #	@(#)Makefile	8.1 (Berkeley) 5/31/93
 # $FreeBSD$
 
+.include <bsd.own.mk>
+
 PROG=	echo
+
+.if ${MK_TESTS} != "no"
+SUBDIR+= 	tests
+.endif
 
 .include <bsd.prog.mk>

Modified: stable/10/etc/mtree/BSD.tests.dist
==============================================================================
--- stable/10/etc/mtree/BSD.tests.dist	Thu Jul  6 05:28:32 2017	(r320711)
+++ stable/10/etc/mtree/BSD.tests.dist	Thu Jul  6 05:28:35 2017	(r320712)
@@ -14,6 +14,8 @@
         ..
         dd
         ..
+        echo
+        ..
         expr
         ..
         ls

From owner-svn-src-stable@freebsd.org  Thu Jul  6 05:30:12 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7CA12DA0ABC;
 Thu,  6 Jul 2017 05:30:12 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 48E4E816B0;
 Thu,  6 Jul 2017 05:30:12 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v665UBsa014760;
 Thu, 6 Jul 2017 05:30:11 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v665UBi9014759;
 Thu, 6 Jul 2017 05:30:11 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201707060530.v665UBi9014759@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Thu, 6 Jul 2017 05:30:11 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320713 - stable/11/sys
X-SVN-Group: stable-11
X-SVN-Commit-Author: ngie
X-SVN-Commit-Paths: stable/11/sys
X-SVN-Commit-Revision: 320713
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Jul 2017 05:30:12 -0000

Author: ngie
Date: Thu Jul  6 05:30:11 2017
New Revision: 320713
URL: https://svnweb.freebsd.org/changeset/base/320713

Log:
  MFC r318651:
  
  Remove glimpse make target added in r181432
  
  The textproc/glimpse port expired over 3 years ago because there weren't any
  more publicly available distfiles, and because it lacked a maintainer. Remove
  the target as it's no longer executable on FreeBSD.

Modified:
  stable/11/sys/Makefile
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/Makefile
==============================================================================
--- stable/11/sys/Makefile	Thu Jul  6 05:28:35 2017	(r320712)
+++ stable/11/sys/Makefile	Thu Jul  6 05:30:11 2017	(r320713)
@@ -59,19 +59,7 @@ TAGS ${.CURDIR}/TAGS: ${.CURDIR}/cscope.files
 	rm -f ${.CURDIR}/TAGS
 	cd ${.CURDIR}; xargs etags -a < ${.CURDIR}/cscope.files
 
-# You need the textproc/glimpse ports for this.
-glimpse:
-.if !exists(${.CURDIR}/.glimpse_exclude)
-	echo .svn > ${.CURDIR}/.glimpse_exclude
-	echo /compile/ >> ${.CURDIR}/.glimpse_exclude
-.endif
-	cd ${.CURDIR}; glimpseindex -H . -B -f -o .
-
-glimpse-clean:
-	cd ${.CURDIR}; rm -f .glimpse_*
-
-.if !(make(cscope) || make(cscope-clean) || make(cscope-hook) || make(TAGS) || \
-    make(glimpse) || make(glimpse-clean))
+.if !(make(cscope) || make(cscope-clean) || make(cscope-hook) || make(TAGS))
 .include <src.opts.mk>
 
 # The boot loader

From owner-svn-src-stable@freebsd.org  Thu Jul  6 05:26:26 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 19364DA0741;
 Thu,  6 Jul 2017 05:26:26 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id E798681339;
 Thu,  6 Jul 2017 05:26:25 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v665QPxU014288;
 Thu, 6 Jul 2017 05:26:25 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v665QOt0014284;
 Thu, 6 Jul 2017 05:26:24 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201707060526.v665QOt0014284@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Thu, 6 Jul 2017 05:26:24 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320709 - in stable/11: bin/cat/tests
 contrib/netbsd-tests/bin/cat
X-SVN-Group: stable-11
X-SVN-Commit-Author: ngie
X-SVN-Commit-Paths: in stable/11: bin/cat/tests contrib/netbsd-tests/bin/cat
X-SVN-Commit-Revision: 320709
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Jul 2017 05:26:26 -0000

Author: ngie
Date: Thu Jul  6 05:26:24 2017
New Revision: 320709
URL: https://svnweb.freebsd.org/changeset/base/320709

Log:
  MFC r319637:
  
  Add testcases for `cat -b`

Added:
  stable/11/contrib/netbsd-tests/bin/cat/d_b_output.in
     - copied unchanged from r319637, head/contrib/netbsd-tests/bin/cat/d_b_output.in
  stable/11/contrib/netbsd-tests/bin/cat/d_b_output.out
     - copied unchanged from r319637, head/contrib/netbsd-tests/bin/cat/d_b_output.out
Modified:
  stable/11/bin/cat/tests/Makefile
  stable/11/contrib/netbsd-tests/bin/cat/t_cat.sh
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/bin/cat/tests/Makefile
==============================================================================
--- stable/11/bin/cat/tests/Makefile	Thu Jul  6 05:22:10 2017	(r320708)
+++ stable/11/bin/cat/tests/Makefile	Thu Jul  6 05:26:24 2017	(r320709)
@@ -6,6 +6,8 @@ NETBSD_ATF_TESTS_SH=		cat_test
 
 ${PACKAGE}FILES+=		d_align.in
 ${PACKAGE}FILES+=		d_align.out
+${PACKAGE}FILES+=		d_b_output.in
+${PACKAGE}FILES+=		d_b_output.out
 ${PACKAGE}FILES+=		d_se_output.in
 ${PACKAGE}FILES+=		d_se_output.out
 ${PACKAGE}FILES+=		d_s_output.in

Copied: stable/11/contrib/netbsd-tests/bin/cat/d_b_output.in (from r319637, head/contrib/netbsd-tests/bin/cat/d_b_output.in)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/11/contrib/netbsd-tests/bin/cat/d_b_output.in	Thu Jul  6 05:26:24 2017	(r320709, copy of r319637, head/contrib/netbsd-tests/bin/cat/d_b_output.in)
@@ -0,0 +1,4 @@
+This is a line
+
+The line before this was a blank line.
+    This line has leading whitespace.

Copied: stable/11/contrib/netbsd-tests/bin/cat/d_b_output.out (from r319637, head/contrib/netbsd-tests/bin/cat/d_b_output.out)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/11/contrib/netbsd-tests/bin/cat/d_b_output.out	Thu Jul  6 05:26:24 2017	(r320709, copy of r319637, head/contrib/netbsd-tests/bin/cat/d_b_output.out)
@@ -0,0 +1,4 @@
+     1	This is a line
+
+     2	The line before this was a blank line.
+     3	    This line has leading whitespace.

Modified: stable/11/contrib/netbsd-tests/bin/cat/t_cat.sh
==============================================================================
--- stable/11/contrib/netbsd-tests/bin/cat/t_cat.sh	Thu Jul  6 05:22:10 2017	(r320708)
+++ stable/11/contrib/netbsd-tests/bin/cat/t_cat.sh	Thu Jul  6 05:26:24 2017	(r320709)
@@ -52,6 +52,19 @@ nonexistent_body() {
 		-x "cat /some/name/that/does/not/exist"
 }
 
+# Begin FreeBSD
+atf_test_case b_output
+b_output_head() {
+	atf_set "descr" "Test that cat(1) prints out numbers on non-blank "\
+			"lines with '-b'"
+}
+
+b_output_body() {
+	atf_check -o file:$(atf_get_srcdir)/d_b_output.out \
+		cat -b $(atf_get_srcdir)/d_b_output.in
+}
+# End FreeBSD
+
 atf_test_case se_output
 se_output_head() {
 	atf_set "descr" "Test that cat(1) prints a $ sign " \
@@ -103,6 +116,9 @@ atf_init_test_cases()
 {
 	atf_add_test_case align
 	atf_add_test_case nonexistent
+# Begin FreeBSD
+	atf_add_test_case b_output
+# End FreeBSD
 	atf_add_test_case se_output
 # Begin FreeBSD
 	atf_add_test_case s_output

From owner-svn-src-stable@freebsd.org  Thu Jul  6 05:51:22 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1F530DA2E5A;
 Thu,  6 Jul 2017 05:51:22 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id E0888824BF;
 Thu,  6 Jul 2017 05:51:21 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v665pLiM023926;
 Thu, 6 Jul 2017 05:51:21 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v665pKnD023912;
 Thu, 6 Jul 2017 05:51:20 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201707060551.v665pKnD023912@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Thu, 6 Jul 2017 05:51:20 +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: r320717 - stable/10/tools/build/options
X-SVN-Group: stable-10
X-SVN-Commit-Author: ngie
X-SVN-Commit-Paths: stable/10/tools/build/options
X-SVN-Commit-Revision: 320717
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Jul 2017 05:51:22 -0000

Author: ngie
Date: Thu Jul  6 05:51:20 2017
New Revision: 320717
URL: https://svnweb.freebsd.org/changeset/base/320717

Log:
  MFC r317179:
  
  Clean up WITH*_PROFILE
  
  - Clarify that profiled libraries are usable with gprof(8).
  - Add WITH_PROFILE to complement WITHOUT_PROFILE and placate makeman.

Added:
  stable/10/tools/build/options/WITH_PROFILE
     - copied unchanged from r317179, head/tools/build/options/WITH_PROFILE
Modified:
  stable/10/tools/build/options/WITHOUT_PROFILE
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/tools/build/options/WITHOUT_PROFILE
==============================================================================
--- stable/10/tools/build/options/WITHOUT_PROFILE	Thu Jul  6 05:43:04 2017	(r320716)
+++ stable/10/tools/build/options/WITHOUT_PROFILE	Thu Jul  6 05:51:20 2017	(r320717)
@@ -1,2 +1,3 @@
 .\" $FreeBSD$
-Set to avoid compiling profiled libraries.
+Set to not build profiled libraries for use with
+.Xr gprof 8 .

Copied: stable/10/tools/build/options/WITH_PROFILE (from r317179, head/tools/build/options/WITH_PROFILE)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/10/tools/build/options/WITH_PROFILE	Thu Jul  6 05:51:20 2017	(r320717, copy of r317179, head/tools/build/options/WITH_PROFILE)
@@ -0,0 +1,3 @@
+.\" $FreeBSD$
+Set to build profiled libraries for use with
+.Xr gprof 8 .

From owner-svn-src-stable@freebsd.org  Thu Jul  6 05:53:39 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id E95CADA31E8;
 Thu,  6 Jul 2017 05:53:39 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id B723F82875;
 Thu,  6 Jul 2017 05:53:39 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v665rc5E027334;
 Thu, 6 Jul 2017 05:53:38 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v665rcZ2027333;
 Thu, 6 Jul 2017 05:53:38 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201707060553.v665rcZ2027333@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Thu, 6 Jul 2017 05:53:38 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320720 - stable/11/share/man/man5
X-SVN-Group: stable-11
X-SVN-Commit-Author: ngie
X-SVN-Commit-Paths: stable/11/share/man/man5
X-SVN-Commit-Revision: 320720
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Jul 2017 05:53:40 -0000

Author: ngie
Date: Thu Jul  6 05:53:38 2017
New Revision: 320720
URL: https://svnweb.freebsd.org/changeset/base/320720

Log:
  Regenerate src.conf(5)

Modified:
  stable/11/share/man/man5/src.conf.5

Modified: stable/11/share/man/man5/src.conf.5
==============================================================================
--- stable/11/share/man/man5/src.conf.5	Thu Jul  6 05:53:23 2017	(r320719)
+++ stable/11/share/man/man5/src.conf.5	Thu Jul  6 05:53:38 2017	(r320720)
@@ -1,6 +1,6 @@
 .\" DO NOT EDIT-- this file is generated by tools/build/options/makeman.
 .\" $FreeBSD$
-.Dd May 31, 2017
+.Dd July 5, 2017
 .Dt SRC.CONF 5
 .Os
 .Sh NAME
@@ -1233,7 +1233,8 @@ Set to not build
 .Xr ppp 8
 and related programs.
 .It Va WITHOUT_PROFILE
-Set to avoid compiling profiled libraries.
+Set to not build profiled libraries for use with
+.Xr gprof 8 .
 .It Va WITHOUT_QUOTAS
 Set to not build
 .Xr quota 1

From owner-svn-src-stable@freebsd.org  Thu Jul  6 05:51:24 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 84659DA2E6B;
 Thu,  6 Jul 2017 05:51:24 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 535B3824CB;
 Thu,  6 Jul 2017 05:51:24 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v665pNls023976;
 Thu, 6 Jul 2017 05:51:23 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v665pNEv023974;
 Thu, 6 Jul 2017 05:51:23 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201707060551.v665pNEv023974@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Thu, 6 Jul 2017 05:51:23 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320718 - stable/11/tools/build/options
X-SVN-Group: stable-11
X-SVN-Commit-Author: ngie
X-SVN-Commit-Paths: stable/11/tools/build/options
X-SVN-Commit-Revision: 320718
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Jul 2017 05:51:24 -0000

Author: ngie
Date: Thu Jul  6 05:51:23 2017
New Revision: 320718
URL: https://svnweb.freebsd.org/changeset/base/320718

Log:
  MFC r317179:
  
  Clean up WITH*_PROFILE
  
  - Clarify that profiled libraries are usable with gprof(8).
  - Add WITH_PROFILE to complement WITHOUT_PROFILE and placate makeman.

Added:
  stable/11/tools/build/options/WITH_PROFILE
     - copied unchanged from r317179, head/tools/build/options/WITH_PROFILE
Modified:
  stable/11/tools/build/options/WITHOUT_PROFILE
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/tools/build/options/WITHOUT_PROFILE
==============================================================================
--- stable/11/tools/build/options/WITHOUT_PROFILE	Thu Jul  6 05:51:20 2017	(r320717)
+++ stable/11/tools/build/options/WITHOUT_PROFILE	Thu Jul  6 05:51:23 2017	(r320718)
@@ -1,2 +1,3 @@
 .\" $FreeBSD$
-Set to avoid compiling profiled libraries.
+Set to not build profiled libraries for use with
+.Xr gprof 8 .

Copied: stable/11/tools/build/options/WITH_PROFILE (from r317179, head/tools/build/options/WITH_PROFILE)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/11/tools/build/options/WITH_PROFILE	Thu Jul  6 05:51:23 2017	(r320718, copy of r317179, head/tools/build/options/WITH_PROFILE)
@@ -0,0 +1,3 @@
+.\" $FreeBSD$
+Set to build profiled libraries for use with
+.Xr gprof 8 .

From owner-svn-src-stable@freebsd.org  Thu Jul  6 05:53:24 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id A1DE2DA319A;
 Thu,  6 Jul 2017 05:53:24 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 6E263827CE;
 Thu,  6 Jul 2017 05:53:24 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v665rN3k027268;
 Thu, 6 Jul 2017 05:53:23 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v665rNc0027267;
 Thu, 6 Jul 2017 05:53:23 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201707060553.v665rNc0027267@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Thu, 6 Jul 2017 05:53: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: r320719 - stable/10/share/man/man5
X-SVN-Group: stable-10
X-SVN-Commit-Author: ngie
X-SVN-Commit-Paths: stable/10/share/man/man5
X-SVN-Commit-Revision: 320719
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Jul 2017 05:53:24 -0000

Author: ngie
Date: Thu Jul  6 05:53:23 2017
New Revision: 320719
URL: https://svnweb.freebsd.org/changeset/base/320719

Log:
  Regenerate src.conf(5)

Modified:
  stable/10/share/man/man5/src.conf.5

Modified: stable/10/share/man/man5/src.conf.5
==============================================================================
--- stable/10/share/man/man5/src.conf.5	Thu Jul  6 05:51:23 2017	(r320718)
+++ stable/10/share/man/man5/src.conf.5	Thu Jul  6 05:53:23 2017	(r320719)
@@ -1,7 +1,7 @@
 .\" DO NOT EDIT-- this file is automatically generated.
 .\" from FreeBSD: stable/10/tools/build/options/makeman 318614 2017-05-22 06:08:20Z ngie
 .\" $FreeBSD$
-.Dd June 1, 2017
+.Dd July 5, 2017
 .Dt SRC.CONF 5
 .Os
 .Sh NAME
@@ -966,8 +966,9 @@ Set to not build
 .Xr ppp 8
 and related programs.
 .It Va WITHOUT_PROFILE
-.\" from FreeBSD: stable/10/tools/build/options/WITHOUT_PROFILE 228196 2011-12-02 09:09:54Z fjoe
-Set to avoid compiling profiled libraries.
+.\" from FreeBSD: stable/10/tools/build/options/WITHOUT_PROFILE 320717 2017-07-06 05:51:20Z ngie
+Set to not build profiled libraries for use with
+.Xr gprof 8 .
 .It Va WITHOUT_QUOTAS
 .\" from FreeBSD: stable/10/tools/build/options/WITHOUT_QUOTAS 183242 2008-09-21 22:02:26Z sam
 Set to not build

From owner-svn-src-stable@freebsd.org  Thu Jul  6 05:59:23 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9EDF2DA3888;
 Thu,  6 Jul 2017 05:59:23 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 6A92382A55;
 Thu,  6 Jul 2017 05:59:23 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v665xMfZ027790;
 Thu, 6 Jul 2017 05:59:22 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v665xM1e027789;
 Thu, 6 Jul 2017 05:59:22 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201707060559.v665xM1e027789@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Thu, 6 Jul 2017 05:59:22 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320721 - stable/11/usr.bin/which
X-SVN-Group: stable-11
X-SVN-Commit-Author: ngie
X-SVN-Commit-Paths: stable/11/usr.bin/which
X-SVN-Commit-Revision: 320721
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Jul 2017 05:59:23 -0000

Author: ngie
Date: Thu Jul  6 05:59:22 2017
New Revision: 320721
URL: https://svnweb.freebsd.org/changeset/base/320721

Log:
  MFC r317161:
  
  which(1): sort #includes
  
  No functional change [intended].

Modified:
  stable/11/usr.bin/which/which.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/usr.bin/which/which.c
==============================================================================
--- stable/11/usr.bin/which/which.c	Thu Jul  6 05:53:38 2017	(r320720)
+++ stable/11/usr.bin/which/which.c	Thu Jul  6 05:59:22 2017	(r320721)
@@ -28,9 +28,8 @@
 
 __FBSDID("$FreeBSD$");
 
-#include <sys/stat.h>
 #include <sys/param.h>
-
+#include <sys/stat.h>
 #include <err.h>
 #include <stdio.h>
 #include <stdlib.h>

From owner-svn-src-stable@freebsd.org  Thu Jul  6 05:59:28 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id D6A99DA3894;
 Thu,  6 Jul 2017 05:59:28 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id A394082A5B;
 Thu,  6 Jul 2017 05:59:28 +0000 (UTC)
 (envelope-from ngie@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v665xRg3027839;
 Thu, 6 Jul 2017 05:59:27 GMT (envelope-from ngie@FreeBSD.org)
Received: (from ngie@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v665xRg3027838;
 Thu, 6 Jul 2017 05:59:27 GMT (envelope-from ngie@FreeBSD.org)
Message-Id: <201707060559.v665xRg3027838@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: ngie set sender to
 ngie@FreeBSD.org using -f
From: Ngie Cooper <ngie@FreeBSD.org>
Date: Thu, 6 Jul 2017 05:59:27 +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: r320722 - stable/10/usr.bin/which
X-SVN-Group: stable-10
X-SVN-Commit-Author: ngie
X-SVN-Commit-Paths: stable/10/usr.bin/which
X-SVN-Commit-Revision: 320722
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Jul 2017 05:59:28 -0000

Author: ngie
Date: Thu Jul  6 05:59:27 2017
New Revision: 320722
URL: https://svnweb.freebsd.org/changeset/base/320722

Log:
  MFC r317161:
  
  which(1): sort #includes
  
  No functional change [intended].

Modified:
  stable/10/usr.bin/which/which.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/usr.bin/which/which.c
==============================================================================
--- stable/10/usr.bin/which/which.c	Thu Jul  6 05:59:22 2017	(r320721)
+++ stable/10/usr.bin/which/which.c	Thu Jul  6 05:59:27 2017	(r320722)
@@ -28,9 +28,8 @@
 
 __FBSDID("$FreeBSD$");
 
-#include <sys/stat.h>
 #include <sys/param.h>
-
+#include <sys/stat.h>
 #include <err.h>
 #include <stdio.h>
 #include <stdlib.h>

From owner-svn-src-stable@freebsd.org  Thu Jul  6 11:45:14 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id BDE33DAB44A;
 Thu,  6 Jul 2017 11:45:14 +0000 (UTC) (envelope-from zbb@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 68768677FF;
 Thu,  6 Jul 2017 11:45:14 +0000 (UTC) (envelope-from zbb@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v66BjDUO070207;
 Thu, 6 Jul 2017 11:45:13 GMT (envelope-from zbb@FreeBSD.org)
Received: (from zbb@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v66BjDGV070203;
 Thu, 6 Jul 2017 11:45:13 GMT (envelope-from zbb@FreeBSD.org)
Message-Id: <201707061145.v66BjDGV070203@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: zbb set sender to zbb@FreeBSD.org
 using -f
From: Zbigniew Bodek <zbb@FreeBSD.org>
Date: Thu, 6 Jul 2017 11:45:13 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320731 - in stable/11: share/man/man4 sys/conf
 sys/contrib/ena-com sys/dev/ena sys/modules sys/modules/ena
X-SVN-Group: stable-11
X-SVN-Commit-Author: zbb
X-SVN-Commit-Paths: in stable/11: share/man/man4 sys/conf sys/contrib/ena-com
 sys/dev/ena sys/modules sys/modules/ena
X-SVN-Commit-Revision: 320731
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Jul 2017 11:45:15 -0000

Author: zbb
Date: Thu Jul  6 11:45:13 2017
New Revision: 320731
URL: https://svnweb.freebsd.org/changeset/base/320731

Log:
  MFC r317518, r318647, r319197, r319198, r319199, r319200, r320625, r320626,
  r320628, r319201, r320629, r320630, r320631, r320632.
  
  r317518:
  Import Amazon Elastic Network Adapter (ENA) HAL to sys/contrib/
  
  Import from vendor-sys/ena-com/1.1.4.1
  SVN rev.: 317516
  Version: 1.1.4.1
  
  r318647:
  Add support for Amazon Elastic Network Adapter (ENA) NIC
  
  ENA is a networking interface designed to make good use of modern CPU
  features and system architectures.
  
  The ENA device exposes a lightweight management interface with a
  minimal set of memory mapped registers and extendable command set
  through an Admin Queue.
  
  The driver supports a range of ENA devices, is link-speed independent
  (i.e., the same driver is used for 10GbE, 25GbE, 40GbE, etc.), and has
  a negotiated and extendable feature set.
  
  Some ENA devices support SR-IOV. This driver is used for both the
  SR-IOV Physical Function (PF) and Virtual Function (VF) devices.
  
  ENA devices enable high speed and low overhead network traffic
  processing by providing multiple Tx/Rx queue pairs (the maximum number
  is advertised by the device via the Admin Queue), a dedicated MSI-X
  interrupt vector per Tx/Rx queue pair, and CPU cacheline optimized
  data placement.
  
  The ENA driver supports industry standard TCP/IP offload features such
  as checksum offload and TCP transmit segmentation offload (TSO).
  Receive-side scaling (RSS) is supported for multi-core scaling.
  
  The ENA driver and its corresponding devices implement health
  monitoring mechanisms such as watchdog, enabling the device and driver
  to recover in a manner transparent to the application, as well as
  debug logs.
  
  Some of the ENA devices support a working mode called Low-latency
  Queue (LLQ), which saves several more microseconds. This feature will
  be implemented for driver in future releases.
  
  r319197:
  Add mbuf defragmentation to the ENA driver
  
  When mbuf chain is too long and device cannot handle that number
  of segments in DMA transaction, mbuf chain will be defragmented.
  Initially, driver was dropping all mbuf chains that were exceeding
  supported number of segments.
  
  r319198:
  Add locks before each ena_up and ena_down
  
  Lock only ena_up and ena_down calls in ioctl handler, instead of whole
  ioctl. Locking ioctl with sx lock that is sleepable, is not allowed in
  some cases, e.g. when multicast options are being changed.
  Additional locking was added in deatch function to prevent race condition
  with ioctl function.
  
  r319199:
  Add error handling to the ENA driver if init of the reset task fails
  
  Also, to simplify cleaning routine, reset task is initialized before
  allocating statistics and other resources.
  
  r319200:
  Move ENA's hw stats updating routine to separate task
  
  Initially, stats were being updated each time OS was requesting for
  the first statistic.
  To read statistics from hw, condvar was used. cv_timedwait cannot be
  called when unsleepable lock is held, and this happens when FreeBSD
  is requesting statistic.
  Seperate task is reading statistics from NIC each 1 second.
  
  r319201:
  Introduce additional locks when releasing TX resources and buffers in ENA
  
  There could be race condition with TX cleaning routine when cleaning mbufs,
  when it was called directly from main sending thread (ena_mq_start).
  
  r320625:
  Add missing lock upon initialization of the interface
  
  Lack of this lock was causing crash if down was called in
  parallel with the initialization routine.
  
  r320626:
  Acquire locks before calling drbr_flush()
  
  It is required to hold lock that is associated with buffer ring before
  flushing drbr.
  
  r320628:
  Unmask all IO irqs after driver state is set as running
  
  If driver left MSI-x handlling routine because interface was put down,
  it is not unmasking IRQs, so any requesting interrupt will be awaiting
  for unmasking.
  
  On ena_up() routine all interrupts are being unmasked and any awaiting
  interrupt will be handled right away.
  
  If handler was executed before driver state was set as running, handling
  routine is being ended immediately, leaving IO irqs for given queue
  masked.
  
  r320629:
  Call drbr_advance() before leaving TX routine
  
  If drbr_advance() is not called before doing cleanup and packet is
  already enqueued for sending (tx_info is holding pointer to mbuf), then
  mbuf is cleaned both in drbr_flush() and in cleanup routine, when all
  mbufs hold by tx_buffer_info are being released.
  
  This causes panic, because mbuf is released twice.
  
  r320630:
  Remove RX mtx from ENA driver
  
  RX lock is no longer required. There can only be one RX cleanup task
  running at a time, RX cleanup cannot be executed if interface is not
  yet initialized and ena_down() will not free any RX resources if any io
  interrupt is being handled - RX cleanup task is only called from an
  interrupt handler.
  
  r320631:
  Fix creation of dma tags and TSO settings
  
  TSO settings were not reflecting real HW capabilities.
  
  DMA tags were created with wrong window - high address was the same as
  low, so excluding window was not working.
  
  Capabilities of TX dma transaction were not set properly - TSO max size
  had been increased and size of one segment had been adjusted.
  
  r320632:
  Replace mbuf defragmentation with collapse
  
  Collapse should be more effective than defragmentation.
  Added missing declaration of ena_check_and_collapse_mbuf().
  
  Submitted by:	Michal Krawczyk <mk@semihalf.com>
  		Jakub Palider <jpa@semihalf.com>
  		Jan Medala <jan@semihalf.com>
  Obtained from: Semihalf, Amazon.com Inc.
  Sponsored by: Amazon.com Inc.

Added:
  stable/11/share/man/man4/ena.4   (contents, props changed)
  stable/11/sys/contrib/ena-com/
  stable/11/sys/contrib/ena-com/ena_admin_defs.h   (contents, props changed)
  stable/11/sys/contrib/ena-com/ena_com.c   (contents, props changed)
  stable/11/sys/contrib/ena-com/ena_com.h   (contents, props changed)
  stable/11/sys/contrib/ena-com/ena_common_defs.h   (contents, props changed)
  stable/11/sys/contrib/ena-com/ena_eth_com.c   (contents, props changed)
  stable/11/sys/contrib/ena-com/ena_eth_com.h   (contents, props changed)
  stable/11/sys/contrib/ena-com/ena_eth_io_defs.h   (contents, props changed)
  stable/11/sys/contrib/ena-com/ena_plat.h   (contents, props changed)
  stable/11/sys/contrib/ena-com/ena_regs_defs.h   (contents, props changed)
  stable/11/sys/dev/ena/
  stable/11/sys/dev/ena/ena.c   (contents, props changed)
  stable/11/sys/dev/ena/ena.h   (contents, props changed)
  stable/11/sys/dev/ena/ena_sysctl.c   (contents, props changed)
  stable/11/sys/dev/ena/ena_sysctl.h   (contents, props changed)
  stable/11/sys/modules/ena/
  stable/11/sys/modules/ena/Makefile   (contents, props changed)
Modified:
  stable/11/sys/conf/files
  stable/11/sys/modules/Makefile

Added: stable/11/share/man/man4/ena.4
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/11/share/man/man4/ena.4	Thu Jul  6 11:45:13 2017	(r320731)
@@ -0,0 +1,255 @@
+.\" Copyright (c) 2015-2017 Amazon.com, Inc. or its affiliates.
+.\" 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 COPYRIGHT HOLDERS AND CONTRIBUTORS
+.\" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+.\" A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+.\" OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+.\" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+.\" OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+.\"
+.\" $FreeBSD$
+.\"
+.Dd May 04, 2017
+.Dt ENA 4
+.Os
+.Sh NAME
+.Nm ena
+.Nd "FreeBSD kernel driver for Elastic Network Adapter (ENA) family"
+.Sh SYNOPSIS
+To compile this driver into the kernel,
+place the following line in your
+kernel configuration file:
+.Bd -ragged -offset indent
+.Cd "device ena"
+.Ed
+.Pp
+Alternatively, to load the driver as a
+module at boot time, place the following line in
+.Xr loader.conf 5 :
+.Bd -literal -offset indent
+if_ena_load="YES"
+.Ed
+.Sh DESCRIPTION
+The ENA is a networking interface designed to make good use of modern CPU
+features and system architectures.
+.Pp
+The ENA device exposes a lightweight management interface with a
+minimal set of memory mapped registers and extendable command set
+through an Admin Queue.
+.Pp
+The driver supports a range of ENA devices, is link-speed independent
+(i.e., the same driver is used for 10GbE, 25GbE, 40GbE, etc.), and has
+a negotiated and extendable feature set.
+.Pp
+Some ENA devices support SR-IOV. This driver is used for both the
+SR-IOV Physical Function (PF) and Virtual Function (VF) devices.
+.Pp
+The ENA devices enable high speed and low overhead network traffic
+processing by providing multiple Tx/Rx queue pairs (the maximum number
+is advertised by the device via the Admin Queue), a dedicated MSI-X
+interrupt vector per Tx/Rx queue pair, and CPU cacheline optimized
+data placement.
+.Pp
+The
+.Nm
+driver supports industry standard TCP/IP offload features such
+as checksum offload and TCP transmit segmentation offload (TSO).
+Receive-side scaling (RSS) is supported for multi-core scaling.
+.Pp
+The
+.Nm
+driver and its corresponding devices implement health
+monitoring mechanisms such as watchdog, enabling the device and driver
+to recover in a manner transparent to the application, as well as
+debug logs.
+.Pp
+Some of the ENA devices support a working mode called Low-latency
+Queue (LLQ), which saves several more microseconds. This feature will
+be implemented for driver in future releases.
+.Sh HARDWARE
+Supported PCI vendor ID/device IDs:
+.Pp
+.Bl -bullet -compact
+.It
+1d0f:0ec2 - ENA PF
+.It
+1d0f:1ec2 - ENA PF with LLQ support
+.It
+1d0f:ec20 - ENA VF
+.It
+1d0f:ec21 - ENA VF with LLQ support
+.El
+.Sh DIAGNOSTICS
+.Ss Device initialization phase:
+.Bl -diag
+.It ena%d: failed to init mmio read less
+.Pp
+Error occured during initialization of the mmio register read request.
+.It ena%d: Can not reset device
+.Pp
+Device could not be reset; device may not be responding or is already
+during reset.
+.It ena%d: device version is too low
+.Pp
+Version of the controller is too low and it is not supported by the driver.
+.It ena%d: Invalid dma width value %d
+.Pp
+The controller is able to request dma transcation width. Device stopped
+responding or it demanded invalid value.
+.It ena%d: Can not initialize ena admin queue with device
+.Pp
+Initialization of the Admin Queue failed; device may not be responding or there
+was a problem with initialization of the resources.
+.It ena%d: Cannot get attribute for ena device rc: %d
+.Pp
+Failed to get attributes of the device from the controller.
+.It ena%d: Cannot configure aenq groups rc: %d
+.Pp
+Errors occured when trying to configure AENQ groups.
+.El
+.Ss Driver initialisation/shutdown phase:
+.Bl -diag
+.It ena%d: PCI resource allocation failed!
+.It ena%d: allocating ena_dev failed
+.It ena%d: failed to pmap registers bar
+.It ena%d: Error while setting up bufring
+.It ena%d: Error with initialization of IO rings
+.It ena%d: can not allocate ifnet structure
+.It ena%d: Error with network interface setup
+.It ena%d: Failed to enable and set the admin interrupts
+.It ena%d: Failed to allocate %d, vectors %d
+.It ena%d: Failed to enable MSIX, vectors %d rc %d
+.It ena%d: Error with MSI-X enablement
+.It ena%d: could not allocate irq vector: %d
+.It ena%d: Unable to allocate bus resource: registers
+.Pp
+Resource allocation failed when initializing the device; driver will not
+be attached.
+.It ena%d: ENA device init failed (err: %d)
+.Pp
+Device initialization failed; driver will not be attached.
+.It ena%d: could not activate irq vector: %d
+.Pp
+Error occured when trying to activate interrupt vectors for Admin Queue.
+.It ena%d: failed to register interrupt handler for irq %ju: %d
+.Pp
+Error occured when trying to register Admin Queue interrupt handler.
+.It ena%d: Cannot setup mgmnt queue intr
+.Pp
+Error occured during configuration of the Admin Queue interrupts.
+.It ena%d: Enable MSI-X failed
+.Pp
+Configuration of the MSI-X for Admin Queue failed; there could be lack
+of resources or interrupts could not have been configured; driver will
+not be attached.
+.It ena%d: VLAN is in use, detach first
+.Pp
+VLANs are being used when trying to detach the driver; VLANs should be detached
+first and then detach routine should be called again.
+.It ena%d: Unmapped RX DMA tag associations
+.It ena%d: Unmapped TX DMA tag associations
+.Pp
+Error occured when trying to destroy RX/TX DMA tag.
+.It ena%d: Cannot init RSS
+.It ena%d: Cannot fill indirect table
+.It ena%d: Cannot fill indirect table
+.It ena%d: Cannot fill hash function
+.It ena%d: Cannot fill hash control
+.It ena%d: WARNING: RSS was not properly initialized, it will affect bandwidth
+.Pp
+Error occured during initialization of one of RSS resources; device is still
+going to work but it will affect performance because all RX packets will be
+passed to queue 0 and there will be no hash information.
+.It ena%d: failed to tear down irq: %d
+.It ena%d: dev has no parent while releasing res for irq: %d
+Release of the interrupts failed.
+.El
+.Ss Additional diagnostic:
+.Bl -diag
+.It ena%d: Cannot get attribute for ena device
+.Pp
+This message appears when trying to change MTU and driver is unable to get
+attributes from the device.
+.It ena%d: Invalid MTU setting. new_mtu: %d
+.Pp
+Requested MTU value is not supported and will not be set.
+.It ena%d: keep alive watchdog timeout
+.Pp
+Device stopped responding and will be reset.
+.It ena%d: Found a Tx that wasn't completed on time, qid %d, index %d.
+.Pp
+Packet was pushed to the NIC but not sent within given time limit; it may
+be caused by hang of the IO queue.
+.It ena%d: The number of lost tx completion is aboce the threshold (%d > %d). Reset the device
+.Pp
+If too many Tx wasn't completed on time the device is going to be reset; it may
+be caused by hanged queue or device.
+.It ena%d: trigger reset is on
+.Pp
+Device will be reset; reset is triggered either by watchdog or if too many TX
+packets were not completed on time.
+.It ena%d: invalid value recvd
+.Pp
+Link status received from the device in the AENQ handler is invalid.
+.It ena%d: Allocation for Tx Queue %u failed
+.It ena%d: Allocation for Rx Queue %u failed
+.It ena%d: Unable to create Rx DMA map for buffer %d
+.It ena%d: Failed to create io TX queue #%d rc: %d
+.It ena%d: Failed to get TX queue handlers. TX queue num %d rc: %d
+.It ena%d: Failed to create io RX queue[%d] rc: %d
+.It ena%d: Failed to get RX queue handlers. RX queue num %d rc: %d
+.It ena%d: failed to request irq
+.It ena%d: could not allocate irq vector: %d
+.It ena%d: failed to register interrupt handler for irq %ju: %d
+.Pp
+IO resources initialization failed. Interface will not be brought up.
+.It ena%d: LRO[%d] Initialization failed!
+.Pp
+Initialization of the LRO for the RX ring failed.
+.It ena%d: failed to alloc buffer for rx queue
+.It ena%d: failed to add buffer for rx queue %d
+.It ena%d: refilled rx queue %d with %d pages only
+.Pp
+Allocation of resources used on RX path failed; if happened during
+initialization of the IO queue, the interface will not be brought up.
+.It ena%d: ioctl promisc/allmulti
+.Pp
+IOCTL request for the device to work in promiscuous/allmulti mode; see
+.Xr ifconfig 8
+for more details.
+.It ena%d: too many fragments. Last fragment: %d!
+.Pp
+Packet with unsupported number of segments was queued for sending to the
+device; packet will be dropped.
+.Sh SUPPORT
+If an issue is identified with the released source code with a supported adapter
+email the specific information related to the issue to
+.Aq Mt mk@semihalf.com
+and
+.Aq Mt mw@semihalf.com .
+.Sh SEE ALSO
+.Xr vlan 4 ,
+.Xr ifconfig 8
+.Sh AUTHORS
+The
+.Nm
+driver was written by
+.An Semihalf.

Modified: stable/11/sys/conf/files
==============================================================================
--- stable/11/sys/conf/files	Thu Jul  6 09:05:38 2017	(r320730)
+++ stable/11/sys/conf/files	Thu Jul  6 11:45:13 2017	(r320731)
@@ -1547,6 +1547,12 @@ dev/e1000/e1000_mbx.c		optional em | igb \
 dev/e1000/e1000_osdep.c		optional em | igb \
 	compile-with "${NORMAL_C} -I$S/dev/e1000"
 dev/et/if_et.c			optional et
+dev/ena/ena.c			optional ena \
+	compile-with "${NORMAL_C} -I$S/contrib"
+dev/ena/ena_sysctl.c 		optional ena \
+	compile-with "${NORMAL_C} -I$S/contrib"
+contrib/ena-com/ena_com.c	optional ena
+contrib/ena-com/ena_eth_com.c	optional ena
 dev/en/if_en_pci.c		optional en pci
 dev/en/midway.c			optional en
 dev/ep/if_ep.c			optional ep

Added: stable/11/sys/contrib/ena-com/ena_admin_defs.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/11/sys/contrib/ena-com/ena_admin_defs.h	Thu Jul  6 11:45:13 2017	(r320731)
@@ -0,0 +1,1412 @@
+/*-
+ * BSD LICENSE
+ *
+ * Copyright (c) 2015-2017 Amazon.com, Inc. or its affiliates.
+ * All rights reserved.
+ *
+ * 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.
+ * * Neither the name of copyright holder nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _ENA_ADMIN_H_
+#define _ENA_ADMIN_H_
+
+enum ena_admin_aq_opcode {
+	ENA_ADMIN_CREATE_SQ	= 1,
+
+	ENA_ADMIN_DESTROY_SQ	= 2,
+
+	ENA_ADMIN_CREATE_CQ	= 3,
+
+	ENA_ADMIN_DESTROY_CQ	= 4,
+
+	ENA_ADMIN_GET_FEATURE	= 8,
+
+	ENA_ADMIN_SET_FEATURE	= 9,
+
+	ENA_ADMIN_GET_STATS	= 11,
+};
+
+enum ena_admin_aq_completion_status {
+	ENA_ADMIN_SUCCESS			= 0,
+
+	ENA_ADMIN_RESOURCE_ALLOCATION_FAILURE	= 1,
+
+	ENA_ADMIN_BAD_OPCODE			= 2,
+
+	ENA_ADMIN_UNSUPPORTED_OPCODE		= 3,
+
+	ENA_ADMIN_MALFORMED_REQUEST		= 4,
+
+	/* Additional status is provided in ACQ entry extended_status */
+	ENA_ADMIN_ILLEGAL_PARAMETER		= 5,
+
+	ENA_ADMIN_UNKNOWN_ERROR			= 6,
+};
+
+enum ena_admin_aq_feature_id {
+	ENA_ADMIN_DEVICE_ATTRIBUTES		= 1,
+
+	ENA_ADMIN_MAX_QUEUES_NUM		= 2,
+
+	ENA_ADMIN_HW_HINTS			= 3,
+
+	ENA_ADMIN_RSS_HASH_FUNCTION		= 10,
+
+	ENA_ADMIN_STATELESS_OFFLOAD_CONFIG	= 11,
+
+	ENA_ADMIN_RSS_REDIRECTION_TABLE_CONFIG	= 12,
+
+	ENA_ADMIN_MTU				= 14,
+
+	ENA_ADMIN_RSS_HASH_INPUT		= 18,
+
+	ENA_ADMIN_INTERRUPT_MODERATION		= 20,
+
+	ENA_ADMIN_AENQ_CONFIG			= 26,
+
+	ENA_ADMIN_LINK_CONFIG			= 27,
+
+	ENA_ADMIN_HOST_ATTR_CONFIG		= 28,
+
+	ENA_ADMIN_FEATURES_OPCODE_NUM		= 32,
+};
+
+enum ena_admin_placement_policy_type {
+	/* descriptors and headers are in host memory */
+	ENA_ADMIN_PLACEMENT_POLICY_HOST	= 1,
+
+	/* descriptors and headers are in device memory (a.k.a Low Latency
+	 * Queue)
+	 */
+	ENA_ADMIN_PLACEMENT_POLICY_DEV	= 3,
+};
+
+enum ena_admin_link_types {
+	ENA_ADMIN_LINK_SPEED_1G		= 0x1,
+
+	ENA_ADMIN_LINK_SPEED_2_HALF_G	= 0x2,
+
+	ENA_ADMIN_LINK_SPEED_5G		= 0x4,
+
+	ENA_ADMIN_LINK_SPEED_10G	= 0x8,
+
+	ENA_ADMIN_LINK_SPEED_25G	= 0x10,
+
+	ENA_ADMIN_LINK_SPEED_40G	= 0x20,
+
+	ENA_ADMIN_LINK_SPEED_50G	= 0x40,
+
+	ENA_ADMIN_LINK_SPEED_100G	= 0x80,
+
+	ENA_ADMIN_LINK_SPEED_200G	= 0x100,
+
+	ENA_ADMIN_LINK_SPEED_400G	= 0x200,
+};
+
+enum ena_admin_completion_policy_type {
+	/* completion queue entry for each sq descriptor */
+	ENA_ADMIN_COMPLETION_POLICY_DESC		= 0,
+
+	/* completion queue entry upon request in sq descriptor */
+	ENA_ADMIN_COMPLETION_POLICY_DESC_ON_DEMAND	= 1,
+
+	/* current queue head pointer is updated in OS memory upon sq
+	 * descriptor request
+	 */
+	ENA_ADMIN_COMPLETION_POLICY_HEAD_ON_DEMAND	= 2,
+
+	/* current queue head pointer is updated in OS memory for each sq
+	 * descriptor
+	 */
+	ENA_ADMIN_COMPLETION_POLICY_HEAD		= 3,
+};
+
+/* basic stats return ena_admin_basic_stats while extanded stats return a
+ * buffer (string format) with additional statistics per queue and per
+ * device id
+ */
+enum ena_admin_get_stats_type {
+	ENA_ADMIN_GET_STATS_TYPE_BASIC		= 0,
+
+	ENA_ADMIN_GET_STATS_TYPE_EXTENDED	= 1,
+};
+
+enum ena_admin_get_stats_scope {
+	ENA_ADMIN_SPECIFIC_QUEUE	= 0,
+
+	ENA_ADMIN_ETH_TRAFFIC		= 1,
+};
+
+struct ena_admin_aq_common_desc {
+	/* 11:0 : command_id
+	 * 15:12 : reserved12
+	 */
+	uint16_t command_id;
+
+	/* as appears in ena_admin_aq_opcode */
+	uint8_t opcode;
+
+	/* 0 : phase
+	 * 1 : ctrl_data - control buffer address valid
+	 * 2 : ctrl_data_indirect - control buffer address
+	 *    points to list of pages with addresses of control
+	 *    buffers
+	 * 7:3 : reserved3
+	 */
+	uint8_t flags;
+};
+
+/* used in ena_admin_aq_entry. Can point directly to control data, or to a
+ * page list chunk. Used also at the end of indirect mode page list chunks,
+ * for chaining.
+ */
+struct ena_admin_ctrl_buff_info {
+	uint32_t length;
+
+	struct ena_common_mem_addr address;
+};
+
+struct ena_admin_sq {
+	uint16_t sq_idx;
+
+	/* 4:0 : reserved
+	 * 7:5 : sq_direction - 0x1 - Tx; 0x2 - Rx
+	 */
+	uint8_t sq_identity;
+
+	uint8_t reserved1;
+};
+
+struct ena_admin_aq_entry {
+	struct ena_admin_aq_common_desc aq_common_descriptor;
+
+	union {
+		uint32_t inline_data_w1[3];
+
+		struct ena_admin_ctrl_buff_info control_buffer;
+	} u;
+
+	uint32_t inline_data_w4[12];
+};
+
+struct ena_admin_acq_common_desc {
+	/* command identifier to associate it with the aq descriptor
+	 * 11:0 : command_id
+	 * 15:12 : reserved12
+	 */
+	uint16_t command;
+
+	uint8_t status;
+
+	/* 0 : phase
+	 * 7:1 : reserved1
+	 */
+	uint8_t flags;
+
+	uint16_t extended_status;
+
+	/* serves as a hint what AQ entries can be revoked */
+	uint16_t sq_head_indx;
+};
+
+struct ena_admin_acq_entry {
+	struct ena_admin_acq_common_desc acq_common_descriptor;
+
+	uint32_t response_specific_data[14];
+};
+
+struct ena_admin_aq_create_sq_cmd {
+	struct ena_admin_aq_common_desc aq_common_descriptor;
+
+	/* 4:0 : reserved0_w1
+	 * 7:5 : sq_direction - 0x1 - Tx, 0x2 - Rx
+	 */
+	uint8_t sq_identity;
+
+	uint8_t reserved8_w1;
+
+	/* 3:0 : placement_policy - Describing where the SQ
+	 *    descriptor ring and the SQ packet headers reside:
+	 *    0x1 - descriptors and headers are in OS memory,
+	 *    0x3 - descriptors and headers in device memory
+	 *    (a.k.a Low Latency Queue)
+	 * 6:4 : completion_policy - Describing what policy
+	 *    to use for generation completion entry (cqe) in
+	 *    the CQ associated with this SQ: 0x0 - cqe for each
+	 *    sq descriptor, 0x1 - cqe upon request in sq
+	 *    descriptor, 0x2 - current queue head pointer is
+	 *    updated in OS memory upon sq descriptor request
+	 *    0x3 - current queue head pointer is updated in OS
+	 *    memory for each sq descriptor
+	 * 7 : reserved15_w1
+	 */
+	uint8_t sq_caps_2;
+
+	/* 0 : is_physically_contiguous - Described if the
+	 *    queue ring memory is allocated in physical
+	 *    contiguous pages or split.
+	 * 7:1 : reserved17_w1
+	 */
+	uint8_t sq_caps_3;
+
+	/* associated completion queue id. This CQ must be created prior to
+	 *    SQ creation
+	 */
+	uint16_t cq_idx;
+
+	/* submission queue depth in entries */
+	uint16_t sq_depth;
+
+	/* SQ physical base address in OS memory. This field should not be
+	 * used for Low Latency queues. Has to be page aligned.
+	 */
+	struct ena_common_mem_addr sq_ba;
+
+	/* specifies queue head writeback location in OS memory. Valid if
+	 * completion_policy is set to completion_policy_head_on_demand or
+	 * completion_policy_head. Has to be cache aligned
+	 */
+	struct ena_common_mem_addr sq_head_writeback;
+
+	uint32_t reserved0_w7;
+
+	uint32_t reserved0_w8;
+};
+
+enum ena_admin_sq_direction {
+	ENA_ADMIN_SQ_DIRECTION_TX	= 1,
+
+	ENA_ADMIN_SQ_DIRECTION_RX	= 2,
+};
+
+struct ena_admin_acq_create_sq_resp_desc {
+	struct ena_admin_acq_common_desc acq_common_desc;
+
+	uint16_t sq_idx;
+
+	uint16_t reserved;
+
+	/* queue doorbell address as an offset to PCIe MMIO REG BAR */
+	uint32_t sq_doorbell_offset;
+
+	/* low latency queue ring base address as an offset to PCIe MMIO
+	 * LLQ_MEM BAR
+	 */
+	uint32_t llq_descriptors_offset;
+
+	/* low latency queue headers' memory as an offset to PCIe MMIO
+	 * LLQ_MEM BAR
+	 */
+	uint32_t llq_headers_offset;
+};
+
+struct ena_admin_aq_destroy_sq_cmd {
+	struct ena_admin_aq_common_desc aq_common_descriptor;
+
+	struct ena_admin_sq sq;
+};
+
+struct ena_admin_acq_destroy_sq_resp_desc {
+	struct ena_admin_acq_common_desc acq_common_desc;
+};
+
+struct ena_admin_aq_create_cq_cmd {
+	struct ena_admin_aq_common_desc aq_common_descriptor;
+
+	/* 4:0 : reserved5
+	 * 5 : interrupt_mode_enabled - if set, cq operates
+	 *    in interrupt mode, otherwise - polling
+	 * 7:6 : reserved6
+	 */
+	uint8_t cq_caps_1;
+
+	/* 4:0 : cq_entry_size_words - size of CQ entry in
+	 *    32-bit words, valid values: 4, 8.
+	 * 7:5 : reserved7
+	 */
+	uint8_t cq_caps_2;
+
+	/* completion queue depth in # of entries. must be power of 2 */
+	uint16_t cq_depth;
+
+	/* msix vector assigned to this cq */
+	uint32_t msix_vector;
+
+	/* cq physical base address in OS memory. CQ must be physically
+	 * contiguous
+	 */
+	struct ena_common_mem_addr cq_ba;
+};
+
+struct ena_admin_acq_create_cq_resp_desc {
+	struct ena_admin_acq_common_desc acq_common_desc;
+
+	uint16_t cq_idx;
+
+	/* actual cq depth in number of entries */
+	uint16_t cq_actual_depth;
+
+	uint32_t numa_node_register_offset;
+
+	uint32_t cq_head_db_register_offset;
+
+	uint32_t cq_interrupt_unmask_register_offset;
+};
+
+struct ena_admin_aq_destroy_cq_cmd {
+	struct ena_admin_aq_common_desc aq_common_descriptor;
+
+	uint16_t cq_idx;
+
+	uint16_t reserved1;
+};
+
+struct ena_admin_acq_destroy_cq_resp_desc {
+	struct ena_admin_acq_common_desc acq_common_desc;
+};
+
+/* ENA AQ Get Statistics command. Extended statistics are placed in control
+ * buffer pointed by AQ entry
+ */
+struct ena_admin_aq_get_stats_cmd {
+	struct ena_admin_aq_common_desc aq_common_descriptor;
+
+	union {
+		/* command specific inline data */
+		uint32_t inline_data_w1[3];
+
+		struct ena_admin_ctrl_buff_info control_buffer;
+	} u;
+
+	/* stats type as defined in enum ena_admin_get_stats_type */
+	uint8_t type;
+
+	/* stats scope defined in enum ena_admin_get_stats_scope */
+	uint8_t scope;
+
+	uint16_t reserved3;
+
+	/* queue id. used when scope is specific_queue */
+	uint16_t queue_idx;
+
+	/* device id, value 0xFFFF means mine. only privileged device can get
+	 *    stats of other device
+	 */
+	uint16_t device_id;
+};
+
+/* Basic Statistics Command. */
+struct ena_admin_basic_stats {
+	uint32_t tx_bytes_low;
+
+	uint32_t tx_bytes_high;
+
+	uint32_t tx_pkts_low;
+
+	uint32_t tx_pkts_high;
+
+	uint32_t rx_bytes_low;
+
+	uint32_t rx_bytes_high;
+
+	uint32_t rx_pkts_low;
+
+	uint32_t rx_pkts_high;
+
+	uint32_t rx_drops_low;
+
+	uint32_t rx_drops_high;
+};
+
+struct ena_admin_acq_get_stats_resp {
+	struct ena_admin_acq_common_desc acq_common_desc;
+
+	struct ena_admin_basic_stats basic_stats;
+};
+
+struct ena_admin_get_set_feature_common_desc {
+	/* 1:0 : select - 0x1 - current value; 0x3 - default
+	 *    value
+	 * 7:3 : reserved3
+	 */
+	uint8_t flags;
+
+	/* as appears in ena_admin_aq_feature_id */
+	uint8_t feature_id;
+
+	uint16_t reserved16;
+};
+
+struct ena_admin_device_attr_feature_desc {
+	uint32_t impl_id;
+
+	uint32_t device_version;
+
+	/* bitmap of ena_admin_aq_feature_id */
+	uint32_t supported_features;
+
+	uint32_t reserved3;
+
+	/* Indicates how many bits are used physical address access. */
+	uint32_t phys_addr_width;
+
+	/* Indicates how many bits are used virtual address access. */
+	uint32_t virt_addr_width;
+
+	/* unicast MAC address (in Network byte order) */
+	uint8_t mac_addr[6];
+
+	uint8_t reserved7[2];
+
+	uint32_t max_mtu;
+};
+
+struct ena_admin_queue_feature_desc {
+	/* including LLQs */
+	uint32_t max_sq_num;
+
+	uint32_t max_sq_depth;
+
+	uint32_t max_cq_num;
+
+	uint32_t max_cq_depth;
+
+	uint32_t max_llq_num;
+
+	uint32_t max_llq_depth;
+
+	uint32_t max_header_size;
+
+	/* Maximum Descriptors number, including meta descriptor, allowed for
+	 *    a single Tx packet
+	 */
+	uint16_t max_packet_tx_descs;
+
+	/* Maximum Descriptors number allowed for a single Rx packet */
+	uint16_t max_packet_rx_descs;
+};
+
+struct ena_admin_set_feature_mtu_desc {
+	/* exclude L2 */
+	uint32_t mtu;
+};
+
+struct ena_admin_set_feature_host_attr_desc {
+	/* host OS info base address in OS memory. host info is 4KB of
+	 * physically contiguous
+	 */
+	struct ena_common_mem_addr os_info_ba;
+
+	/* host debug area base address in OS memory. debug area must be
+	 * physically contiguous
+	 */
+	struct ena_common_mem_addr debug_ba;
+
+	/* debug area size */
+	uint32_t debug_area_size;
+};
+
+struct ena_admin_feature_intr_moder_desc {
+	/* interrupt delay granularity in usec */
+	uint16_t intr_delay_resolution;
+
+	uint16_t reserved;
+};
+
+struct ena_admin_get_feature_link_desc {
+	/* Link speed in Mb */
+	uint32_t speed;
+
+	/* bit field of enum ena_admin_link types */
+	uint32_t supported;
+
+	/* 0 : autoneg
+	 * 1 : duplex - Full Duplex
+	 * 31:2 : reserved2
+	 */
+	uint32_t flags;
+};
+
+struct ena_admin_feature_aenq_desc {
+	/* bitmask for AENQ groups the device can report */
+	uint32_t supported_groups;
+
+	/* bitmask for AENQ groups to report */
+	uint32_t enabled_groups;
+};
+
+struct ena_admin_feature_offload_desc {
+	/* 0 : TX_L3_csum_ipv4
+	 * 1 : TX_L4_ipv4_csum_part - The checksum field
+	 *    should be initialized with pseudo header checksum
+	 * 2 : TX_L4_ipv4_csum_full
+	 * 3 : TX_L4_ipv6_csum_part - The checksum field
+	 *    should be initialized with pseudo header checksum
+	 * 4 : TX_L4_ipv6_csum_full
+	 * 5 : tso_ipv4
+	 * 6 : tso_ipv6
+	 * 7 : tso_ecn
+	 */
+	uint32_t tx;
+
+	/* Receive side supported stateless offload
+	 * 0 : RX_L3_csum_ipv4 - IPv4 checksum
+	 * 1 : RX_L4_ipv4_csum - TCP/UDP/IPv4 checksum
+	 * 2 : RX_L4_ipv6_csum - TCP/UDP/IPv6 checksum
+	 * 3 : RX_hash - Hash calculation
+	 */
+	uint32_t rx_supported;
+
+	uint32_t rx_enabled;
+};
+
+enum ena_admin_hash_functions {
+	ENA_ADMIN_TOEPLITZ	= 1,
+
+	ENA_ADMIN_CRC32		= 2,
+};
+
+struct ena_admin_feature_rss_flow_hash_control {
+	uint32_t keys_num;
+
+	uint32_t reserved;
+
+	uint32_t key[10];
+};
+
+struct ena_admin_feature_rss_flow_hash_function {
+	/* 7:0 : funcs - bitmask of ena_admin_hash_functions */
+	uint32_t supported_func;
+
+	/* 7:0 : selected_func - bitmask of
+	 *    ena_admin_hash_functions
+	 */
+	uint32_t selected_func;
+
+	/* initial value */
+	uint32_t init_val;
+};
+
+/* RSS flow hash protocols */
+enum ena_admin_flow_hash_proto {
+	ENA_ADMIN_RSS_TCP4	= 0,
+
+	ENA_ADMIN_RSS_UDP4	= 1,
+
+	ENA_ADMIN_RSS_TCP6	= 2,
+
+	ENA_ADMIN_RSS_UDP6	= 3,
+
+	ENA_ADMIN_RSS_IP4	= 4,
+
+	ENA_ADMIN_RSS_IP6	= 5,
+
+	ENA_ADMIN_RSS_IP4_FRAG	= 6,
+
+	ENA_ADMIN_RSS_NOT_IP	= 7,
+
+	/* TCPv6 with extension header */
+	ENA_ADMIN_RSS_TCP6_EX	= 8,
+
+	/* IPv6 with extension header */
+	ENA_ADMIN_RSS_IP6_EX	= 9,
+
+	ENA_ADMIN_RSS_PROTO_NUM	= 16,
+};
+
+/* RSS flow hash fields */
+enum ena_admin_flow_hash_fields {
+	/* Ethernet Dest Addr */
+	ENA_ADMIN_RSS_L2_DA	= BIT(0),
+
+	/* Ethernet Src Addr */
+	ENA_ADMIN_RSS_L2_SA	= BIT(1),
+
+	/* ipv4/6 Dest Addr */
+	ENA_ADMIN_RSS_L3_DA	= BIT(2),
+
+	/* ipv4/6 Src Addr */
+	ENA_ADMIN_RSS_L3_SA	= BIT(3),
+
+	/* tcp/udp Dest Port */
+	ENA_ADMIN_RSS_L4_DP	= BIT(4),
+
+	/* tcp/udp Src Port */
+	ENA_ADMIN_RSS_L4_SP	= BIT(5),
+};
+
+struct ena_admin_proto_input {
+	/* flow hash fields (bitwise according to ena_admin_flow_hash_fields) */
+	uint16_t fields;
+
+	uint16_t reserved2;
+};
+
+struct ena_admin_feature_rss_hash_control {
+	struct ena_admin_proto_input supported_fields[ENA_ADMIN_RSS_PROTO_NUM];
+
+	struct ena_admin_proto_input selected_fields[ENA_ADMIN_RSS_PROTO_NUM];
+
+	struct ena_admin_proto_input reserved2[ENA_ADMIN_RSS_PROTO_NUM];
+
+	struct ena_admin_proto_input reserved3[ENA_ADMIN_RSS_PROTO_NUM];
+};
+
+struct ena_admin_feature_rss_flow_hash_input {
+	/* supported hash input sorting
+	 * 1 : L3_sort - support swap L3 addresses if DA is
+	 *    smaller than SA
+	 * 2 : L4_sort - support swap L4 ports if DP smaller
+	 *    SP
+	 */
+	uint16_t supported_input_sort;
+
+	/* enabled hash input sorting
+	 * 1 : enable_L3_sort - enable swap L3 addresses if
+	 *    DA smaller than SA
+	 * 2 : enable_L4_sort - enable swap L4 ports if DP
+	 *    smaller than SP
+	 */
+	uint16_t enabled_input_sort;
+};
+
+enum ena_admin_os_type {
+	ENA_ADMIN_OS_LINUX	= 1,
+
+	ENA_ADMIN_OS_WIN	= 2,
+
+	ENA_ADMIN_OS_DPDK	= 3,
+
+	ENA_ADMIN_OS_FREEBSD	= 4,
+
+	ENA_ADMIN_OS_IPXE	= 5,
+};
+
+struct ena_admin_host_info {
+	/* defined in enum ena_admin_os_type */
+	uint32_t os_type;
+
+	/* os distribution string format */
+	uint8_t os_dist_str[128];
+
+	/* OS distribution numeric format */
+	uint32_t os_dist;
+
+	/* kernel version string format */
+	uint8_t kernel_ver_str[32];
+
+	/* Kernel version numeric format */
+	uint32_t kernel_ver;
+

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***

From owner-svn-src-stable@freebsd.org  Thu Jul  6 17:20:37 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2F7D4D8B5FB;
 Thu,  6 Jul 2017 17:20:37 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id F06CF77BA7;
 Thu,  6 Jul 2017 17:20:36 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v66HKagH011907;
 Thu, 6 Jul 2017 17:20:36 GMT (envelope-from markj@FreeBSD.org)
Received: (from markj@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v66HKauI011906;
 Thu, 6 Jul 2017 17:20:36 GMT (envelope-from markj@FreeBSD.org)
Message-Id: <201707061720.v66HKauI011906@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: markj set sender to
 markj@FreeBSD.org using -f
From: Mark Johnston <markj@FreeBSD.org>
Date: Thu, 6 Jul 2017 17:20:36 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320744 - stable/11/sys/dev/acpica/Osd
X-SVN-Group: stable-11
X-SVN-Commit-Author: markj
X-SVN-Commit-Paths: stable/11/sys/dev/acpica/Osd
X-SVN-Commit-Revision: 320744
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Jul 2017 17:20:37 -0000

Author: markj
Date: Thu Jul  6 17:20:35 2017
New Revision: 320744
URL: https://svnweb.freebsd.org/changeset/base/320744

Log:
  MFC r320690:
  Defer ACPI taskqueue creation to SI_SUB_KICK_SCHEDULER.
  
  PR:	220277

Modified:
  stable/11/sys/dev/acpica/Osd/OsdSchedule.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/acpica/Osd/OsdSchedule.c
==============================================================================
--- stable/11/sys/dev/acpica/Osd/OsdSchedule.c	Thu Jul  6 17:03:22 2017	(r320743)
+++ stable/11/sys/dev/acpica/Osd/OsdSchedule.c	Thu Jul  6 17:20:35 2017	(r320744)
@@ -128,7 +128,7 @@ acpi_taskq_init(void *arg)
     acpi_taskq_started = 1;
 }
 
-SYSINIT(acpi_taskq, SI_SUB_CONFIGURE, SI_ORDER_SECOND, acpi_taskq_init, NULL);
+SYSINIT(acpi_taskq, SI_SUB_KICK_SCHEDULER, SI_ORDER_ANY, acpi_taskq_init, NULL);
 
 /*
  * Bounce through this wrapper function since ACPI-CA doesn't understand

From owner-svn-src-stable@freebsd.org  Thu Jul  6 17:34:54 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id F010DD8BB29;
 Thu,  6 Jul 2017 17:34:54 +0000 (UTC)
 (envelope-from asomers@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id A32D27865E;
 Thu,  6 Jul 2017 17:34:54 +0000 (UTC)
 (envelope-from asomers@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v66HYrqE017960;
 Thu, 6 Jul 2017 17:34:53 GMT (envelope-from asomers@FreeBSD.org)
Received: (from asomers@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v66HYrai017957;
 Thu, 6 Jul 2017 17:34:53 GMT (envelope-from asomers@FreeBSD.org)
Message-Id: <201707061734.v66HYrai017957@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: asomers set sender to
 asomers@FreeBSD.org using -f
From: Alan Somers <asomers@FreeBSD.org>
Date: Thu, 6 Jul 2017 17:34:53 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320747 - in stable/11: cddl/usr.sbin/zfsd sbin/devd
 sbin/devd/tests
X-SVN-Group: stable-11
X-SVN-Commit-Author: asomers
X-SVN-Commit-Paths: in stable/11: cddl/usr.sbin/zfsd sbin/devd sbin/devd/tests
X-SVN-Commit-Revision: 320747
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Jul 2017 17:34:55 -0000

Author: asomers
Date: Thu Jul  6 17:34:53 2017
New Revision: 320747
URL: https://svnweb.freebsd.org/changeset/base/320747

Log:
  MFC r320165-r320167
  
  r320165:
  devd(8): Remove pidfile on shutdown
  
  Sponsored by:	Spectra Logic Corp
  
  r320166:
  Require devd to be running for its ATF tests to run
  
  The ATF tests communicate with the system's running devd
  
  PR:		220169
  Reported by:	gjb
  Sponsored by:	Spectra Logic Corp
  
  r320167:
  zfsd(8): Remove pidfile on shutdown
  
  Sponsored by:	Spectra Logic Corp

Modified:
  stable/11/cddl/usr.sbin/zfsd/zfsd.cc
  stable/11/sbin/devd/devd.cc
  stable/11/sbin/devd/tests/Makefile
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/cddl/usr.sbin/zfsd/zfsd.cc
==============================================================================
--- stable/11/cddl/usr.sbin/zfsd/zfsd.cc	Thu Jul  6 17:31:38 2017	(r320746)
+++ stable/11/cddl/usr.sbin/zfsd/zfsd.cc	Thu Jul  6 17:34:53 2017	(r320747)
@@ -437,7 +437,7 @@ void
 ZfsDaemon::ClosePIDFile()
 {
 	if (s_pidFH != NULL)
-		pidfile_close(s_pidFH);
+		pidfile_remove(s_pidFH);
 }
 
 void

Modified: stable/11/sbin/devd/devd.cc
==============================================================================
--- stable/11/sbin/devd/devd.cc	Thu Jul  6 17:31:38 2017	(r320746)
+++ stable/11/sbin/devd/devd.cc	Thu Jul  6 17:34:53 2017	(r320747)
@@ -1085,6 +1085,7 @@ event_loop(void)
 		if (FD_ISSET(seqpacket_fd, &fds))
 			new_client(seqpacket_fd, SOCK_SEQPACKET);
 	}
+	cfg.remove_pidfile();
 	close(seqpacket_fd);
 	close(stream_fd);
 	close(fd);

Modified: stable/11/sbin/devd/tests/Makefile
==============================================================================
--- stable/11/sbin/devd/tests/Makefile	Thu Jul  6 17:31:38 2017	(r320746)
+++ stable/11/sbin/devd/tests/Makefile	Thu Jul  6 17:34:53 2017	(r320747)
@@ -1,7 +1,8 @@
 # $FreeBSD$
 
 ATF_TESTS_C=	client_test
-TEST_METADATA.client_test=	required_programs="devd"
+TEST_METADATA.client_test=	required_files="/var/run/devd.pid"
+TEST_METADATA.client_test+=	required_programs="devd"
 TEST_METADATA.client_test+=	required_user="root"
 TEST_METADATA.client_test+=	timeout=15
 

From owner-svn-src-stable@freebsd.org  Thu Jul  6 18:08:39 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id F31D3D8C596;
 Thu,  6 Jul 2017 18:08:39 +0000 (UTC)
 (envelope-from cperciva@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id CF1EA79562;
 Thu,  6 Jul 2017 18:08:39 +0000 (UTC)
 (envelope-from cperciva@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v66I8dDN030507;
 Thu, 6 Jul 2017 18:08:39 GMT (envelope-from cperciva@FreeBSD.org)
Received: (from cperciva@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v66I8chE030505;
 Thu, 6 Jul 2017 18:08:38 GMT (envelope-from cperciva@FreeBSD.org)
Message-Id: <201707061808.v66I8chE030505@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: cperciva set sender to
 cperciva@FreeBSD.org using -f
From: Colin Percival <cperciva@FreeBSD.org>
Date: Thu, 6 Jul 2017 18:08:38 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320749 - stable/11/sys/dev/ena
X-SVN-Group: stable-11
X-SVN-Commit-Author: cperciva
X-SVN-Commit-Paths: stable/11/sys/dev/ena
X-SVN-Commit-Revision: 320749
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Jul 2017 18:08:40 -0000

Author: cperciva
Date: Thu Jul  6 18:08:38 2017
New Revision: 320749
URL: https://svnweb.freebsd.org/changeset/base/320749

Log:
  Fix up r320731:
  * Record mergeinfo for merges of r317518, r318647, r319197, r319198,
  r319199, r319201, r320625, r320626, r320628, r320629, r320630, r320631,
  r320632.
  * Merge r319200, which (commit message notwithstanding) seems to have
  gotten lost from the r320731 merge.

Modified:
  stable/11/sys/dev/ena/ena.c
  stable/11/sys/dev/ena/ena.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/ena/ena.c
==============================================================================
--- stable/11/sys/dev/ena/ena.c	Thu Jul  6 17:54:03 2017	(r320748)
+++ stable/11/sys/dev/ena/ena.c	Thu Jul  6 18:08:38 2017	(r320749)
@@ -141,6 +141,7 @@ static void	ena_free_irqs(struct ena_adapter*);
 static void	ena_disable_msix(struct ena_adapter *);
 static void	ena_unmask_all_io_irqs(struct ena_adapter *);
 static int	ena_rss_configure(struct ena_adapter *);
+static void	ena_update_hw_stats(void *, int);
 static int	ena_up_complete(struct ena_adapter *);
 static int	ena_up(struct ena_adapter *);
 static void	ena_down(struct ena_adapter *);
@@ -2062,6 +2063,25 @@ static int ena_rss_configure(struct ena_adapter *adapt
 	return 0;
 }
 
+static void
+ena_update_hw_stats(void *arg, int pending)
+{
+	struct ena_adapter *adapter = arg;
+	int rc;
+
+	for (;;) {
+		if (!adapter->up)
+			return;
+
+		rc = ena_update_stats_counters(adapter);
+		if (rc)
+			ena_trace(ENA_WARNING,
+			    "Error updating stats counters, rc = %d", rc);
+
+		pause("ena update hw stats", hz);
+	}
+}
+
 static int
 ena_up_complete(struct ena_adapter *adapter)
 {
@@ -2144,6 +2164,8 @@ ena_up(struct ena_adapter *adapter)
 		callout_reset_sbt(&adapter->timer_service, SBT_1S, SBT_1S,
 		    ena_timer_service, (void *)adapter, 0);
 
+		taskqueue_enqueue(adapter->stats_tq, &adapter->stats_task);
+
 		adapter->up = true;
 
 		ena_unmask_all_io_irqs(adapter);
@@ -2198,24 +2220,8 @@ ena_get_counter(if_t ifp, ift_counter cnt)
 {
 	struct ena_adapter *adapter;
 	struct ena_hw_stats *stats;
-	int rc;
 
 	adapter = if_getsoftc(ifp);
-
-	/*
-	 * Update only when asking for first counter and interface is up.
-	 * Usually asks for all statistics in sequence.
-	 */
-	if (adapter->up) {
-		if (cnt == 0) {
-			rc = ena_update_stats_counters(adapter);
-			if (rc) {
-				ena_trace(ENA_WARNING,
-				    "Error updating stats counters, rc = %d",
-				    rc);
-			}
-		}
-	}
 	stats = &adapter->hw_stats;
 
 	switch (cnt) {
@@ -2510,6 +2516,10 @@ ena_down(struct ena_adapter *adapter)
 		if_setdrvflagbits(adapter->ifp, IFF_DRV_OACTIVE,
 		    IFF_DRV_RUNNING);
 
+		/* Drain task responsible for updating hw stats */
+		while (taskqueue_cancel(adapter->stats_tq, &adapter->stats_task, NULL))
+			taskqueue_drain(adapter->stats_tq, &adapter->stats_task);
+
 		ena_free_io_irq(adapter);
 
 		ena_destroy_all_io_queues(adapter);
@@ -3627,6 +3637,18 @@ ena_attach(device_t pdev)
 	taskqueue_start_threads(&adapter->reset_tq, 1, PI_NET,
 	    "%s rstq", device_get_nameunit(adapter->pdev));
 
+	/* Initialize task queue responsible for updating hw stats */
+	TASK_INIT(&adapter->stats_task, 0, ena_update_hw_stats, adapter);
+	adapter->stats_tq = taskqueue_create_fast("ena_stats_update",
+	    M_WAITOK | M_ZERO, taskqueue_thread_enqueue, &adapter->stats_tq);
+	if (adapter->stats_tq == NULL) {
+		device_printf(adapter->pdev,
+		    "Unable to create taskqueue for updating hw stats\n");
+		goto err_stats_tq;
+	}
+	taskqueue_start_threads(&adapter->stats_tq, 1, PI_REALTIME,
+	    "%s stats tq", device_get_nameunit(adapter->pdev));
+
 	/* Initialize statistics */
 	ena_alloc_counters((counter_u64_t *)&adapter->dev_stats,
 	    sizeof(struct ena_stats_dev));
@@ -3639,6 +3661,8 @@ ena_attach(device_t pdev)
 	adapter->running = true;
 	return (0);
 
+err_stats_tq:
+	taskqueue_free(adapter->reset_tq);
 err_reset_tq:
 	ena_free_mgmnt_irq(adapter);
 	ena_disable_msix(adapter);
@@ -3693,6 +3717,8 @@ ena_detach(device_t pdev)
 	sx_xlock(&adapter->ioctl_sx);
 	ena_down(adapter);
 	sx_unlock(&adapter->ioctl_sx);
+
+	taskqueue_free(adapter->stats_tq);
 
 	if (adapter->ifp != NULL) {
 		ether_ifdetach(adapter->ifp);

Modified: stable/11/sys/dev/ena/ena.h
==============================================================================
--- stable/11/sys/dev/ena/ena.h	Thu Jul  6 17:54:03 2017	(r320748)
+++ stable/11/sys/dev/ena/ena.h	Thu Jul  6 18:08:38 2017	(r320749)
@@ -403,6 +403,10 @@ struct ena_adapter {
 	uint32_t missing_tx_max_queues;
 	uint32_t missing_tx_threshold;
 
+	/* Task updating hw stats */
+	struct task stats_task;
+	struct taskqueue *stats_tq;
+
 	/* Statistics */
 	struct ena_stats_dev dev_stats;
 	struct ena_hw_stats hw_stats;

From owner-svn-src-stable@freebsd.org  Thu Jul  6 18:09:44 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1DE3AD8C649;
 Thu,  6 Jul 2017 18:09:44 +0000 (UTC)
 (envelope-from carpeddiem@gmail.com)
Received: from mail-it0-x236.google.com (mail-it0-x236.google.com
 [IPv6:2607:f8b0:4001:c0b::236])
 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
 (Client CN "smtp.gmail.com",
 Issuer "Google Internet Authority G2" (verified OK))
 by mx1.freebsd.org (Postfix) with ESMTPS id E347F7968D;
 Thu,  6 Jul 2017 18:09:43 +0000 (UTC)
 (envelope-from carpeddiem@gmail.com)
Received: by mail-it0-x236.google.com with SMTP id k192so11705195ith.1;
 Thu, 06 Jul 2017 11:09:43 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=mime-version:sender:in-reply-to:references:from:date:message-id
 :subject:to; bh=JN6B8IBQfZo8ncnqxJbo5Xzq3HVSHOwPbZSol1jt8s0=;
 b=MdYqhJp5QEao5EuSlwq85FDUIN8k/cADfsaD/aeb0pBl73kEzV6YTVdxEeF5vitHGk
 wS3APi+iwbT5sHlI716gz0FnO9mky53WaGmA0Pe3PkBx+LU2+WxvbSk19454z8ansKWZ
 ocjzgatPUQCjTtqBzK9HKWutaiTpxqPlpDytp0qkL18sSw7qUdty7fgMDr+JVeSXBs+z
 /0wHD6tpH5tN1UvnvfbI0SvwTKvSYmUb2/meSGHtWNAU6A1KhwhznQW8l3GUoDcGgn2h
 dPZYd1YFZ/pzcgGBqKfvUGLD0K9tS2WmsyNKee47LSrfTh1GRrFc2fF0hZxLegX1yS4W
 rq9w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:sender:in-reply-to:references:from
 :date:message-id:subject:to;
 bh=JN6B8IBQfZo8ncnqxJbo5Xzq3HVSHOwPbZSol1jt8s0=;
 b=LJGyLoUU7rBoyPPkskBi4zFGZfw+8MzB2D2NDLaKK1rJCZJXYThYGLwLtEcbsmaWIq
 XPwigum2T/vjd3YNxFpVGJFk1SrdvJCKslm+5TJy9JnsEorEzYaBOok5hMyy0C6OVSHY
 ULYFz/MGLTx199oEi8cjo3EtNGHbYwJNDEVugmqvvx6XiTO7eveQ0QzlfLTnGkPTn3Z6
 9kLIVn0b50Fkmd4Bo5uYbg+kiwqCbgPF4LebWZugyuObj+1f+MTEy2cVfbFgupUBeECY
 2KGCn5ddW/C+fJZKtIoLqOo3KniWKkhJKAaG4GuKh/N1WLRIy2s1RjbQ4t9ZeYVm0MO1
 Gnsg==
X-Gm-Message-State: AIVw111JiOVGGaZhWHjuLwD+IOfMMrLKSqe6uyZEuPDCvWjPoiwMyaCX
 MFVFC05WyRsMi72W1Pp7QHEPN3MtCWzudSo=
X-Received: by 10.36.7.197 with SMTP id f188mr790788itf.28.1499364582850; Thu,
 06 Jul 2017 11:09:42 -0700 (PDT)
MIME-Version: 1.0
Sender: carpeddiem@gmail.com
Received: by 10.107.10.85 with HTTP; Thu, 6 Jul 2017 11:09:22 -0700 (PDT)
In-Reply-To: <201707051639.v65GdTeK093543@repo.freebsd.org>
References: <201707051639.v65GdTeK093543@repo.freebsd.org>
From: Ed Maste <emaste@freebsd.org>
Date: Thu, 6 Jul 2017 14:09:22 -0400
X-Google-Sender-Auth: vZbnouBDHmjqt0s0mx7_wV7fc8k
Message-ID: <CAPyFy2DGSwT2gAY81sTh0B2X7t7gJ7TncX5+CYJ9W=N5Eu6MTg@mail.gmail.com>
Subject: Re: svn commit: r320685 - in stable/11: contrib/elftoolchain/elfdump
 contrib/elftoolchain/libelftc lib/libelftc
To: "src-committers@freebsd.org" <src-committers@freebsd.org>, 
 "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, svn-src-stable@freebsd.org,
 svn-src-stable-11@freebsd.org
Content-Type: text/plain; charset="UTF-8"
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Jul 2017 18:09:44 -0000

On 5 July 2017 at 12:39, Ed Maste <emaste@freebsd.org> wrote:
> Author: emaste
> Date: Wed Jul  5 16:39:29 2017
> New Revision: 320685
> URL: https://svnweb.freebsd.org/changeset/base/320685
>
> Log:
>   This update is primarily bug fixes in C++ symbol demangling, including:

I accidentally deleted the first line of the commit message, which
should have been:
MFC r320343: Update to ELF Tool Chain snapshot at r3561

From owner-svn-src-stable@freebsd.org  Thu Jul  6 18:33:34 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 933B7D8CEBE;
 Thu,  6 Jul 2017 18:33:34 +0000 (UTC) (envelope-from gnn@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 6CF4B7A4A1;
 Thu,  6 Jul 2017 18:33:34 +0000 (UTC) (envelope-from gnn@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v66IXXcX042581;
 Thu, 6 Jul 2017 18:33:33 GMT (envelope-from gnn@FreeBSD.org)
Received: (from gnn@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v66IXXon042580;
 Thu, 6 Jul 2017 18:33:33 GMT (envelope-from gnn@FreeBSD.org)
Message-Id: <201707061833.v66IXXon042580@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: gnn set sender to gnn@FreeBSD.org
 using -f
From: "George V. Neville-Neil" <gnn@FreeBSD.org>
Date: Thu, 6 Jul 2017 18:33:33 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320752 - stable/11/share/man/man4
X-SVN-Group: stable-11
X-SVN-Commit-Author: gnn
X-SVN-Commit-Paths: stable/11/share/man/man4
X-SVN-Commit-Revision: 320752
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Jul 2017 18:33:34 -0000

Author: gnn
Date: Thu Jul  6 18:33:33 2017
New Revision: 320752
URL: https://svnweb.freebsd.org/changeset/base/320752

Log:
  MFC 319803
  
  Manual page for the DTrace lockstat provider
  
  Reviewed by:	markj

Added:
  stable/11/share/man/man4/dtrace_lockstat.4
     - copied unchanged from r319803, head/share/man/man4/dtrace_lockstat.4
Modified:
Directory Properties:
  stable/11/   (props changed)

Copied: stable/11/share/man/man4/dtrace_lockstat.4 (from r319803, head/share/man/man4/dtrace_lockstat.4)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/11/share/man/man4/dtrace_lockstat.4	Thu Jul  6 18:33:33 2017	(r320752, copy of r319803, head/share/man/man4/dtrace_lockstat.4)
@@ -0,0 +1,251 @@
+.\" Copyright (c) 2017 George V. Neville-Neil <gnn@FreeBSD.org>
+.\" 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$
+.\"
+.Dd June 9, 2017
+.Dt DTRACE_LOCKSTAT 4
+.Os
+.Sh NAME
+.Nm dtrace_lockstat
+.Nd a DTrace provider for tracing CPU scheduling events
+.Sh SYNOPSIS
+.Fn lockstat:::adaptive-acquire "struct mtx *"
+.Fn lockstat:::adaptive-release "struct mtx *"
+.Fn lockstat:::adaptive-spin "struct mtx *" "uint64_t"
+.Fn lockstat:::adaptive-block "struct mtx *" "uint64_t"
+.Fn lockstat:::spin-acquire "struct mtx *"
+.Fn lockstat:::spin-release "struct mtx *"
+.Fn lockstat:::spin-spin "struct mtx *" "uint64_t"
+.Fn lockstat:::rw-acquire "struct rwlock *" "int"
+.Fn lockstat:::rw-release "struct rwlock *" "int"
+.Fn lockstat:::rw-block "struct rwlock *" "uint64_t" "int" "int" "int"
+.Fn lockstat:::rw-spin "struct rwlock *" "uint64_t"
+.Fn lockstat:::rw-upgrade "struct rwlock *"
+.Fn lockstat:::rw-downgrade "struct rwlock *"
+.Fn lockstat:::sx-acquire "struct sx *" "int"
+.Fn lockstat:::sx-release "struct sx *" "int"
+.Fn lockstat:::sx-block "struct sx *" "uint64_t" "int" "int" "int"
+.Fn lockstat:::sx-spin "struct sx *" "uint64_t"
+.Fn lockstat:::sx-upgrade "struct sx *"
+.Fn lockstat:::sx-downgrade "struct sx *"
+.Fn lockstat:::thread-spin "struct mtx *" "uint64"
+.Sh DESCRIPTION
+The DTrace
+.Nm lockstat
+provider allows the tracing of events related to locking on FreeBSD.
+.Pp
+The
+.Nm lockstat
+provider contains DTrace probe for inspecting the kernel's lock
+state transitions.
+Tracepoints exist for several types of kernel
+locking primitives, including mutexes, spin, reader-writer, 
+and shared exclusive locks.
+An attempt has been made to provide a regular and easy to understand
+interface to the
+.Nm lockstat
+provider.
+Each type of lock has an
+.Fn acquire
+and
+.Fn release
+probe which exposes the lock structure that is being operated upon.
+.Pp
+Whenever an MTX_DEF mutex is acquired the
+.Fn lockstat:::adaptive-acquire
+probe fires.
+The only argument is a pointer to the lock structure which describes
+the lock that is being acquired.
+.Pp
+The
+.Fn lockstat:::adaptive-release
+probe fires whenever an adaptive lock is released.
+The only argument is a pointer to the lock structure which describes
+the lock that is being released.
+.Pp
+The
+.Fn lockstat:::adaptive-spin
+probe fires when an adaptive lock is acquired.
+The first argument is a pointer to the lock structure that describes
+the lock and the second argument is the amount of time,
+in nanoseconds,
+that the mutex spent spinning.
+.Pp
+The
+.Fn lockstat:::adaptive-block
+probe fires whenever thread takes itself off of the CPU
+while trying to acquire the lock.
+The first argument is a pointer to the lock structure that describes
+the lock and the second argument is the length of time,
+in nanoseconds,
+that the waiting thread was blocked.
+The 
+.Fn lockstat:::adaptive-block
+probe fires only after the lock has been successfully acquired,
+after the adaptive-acquire probe fires.
+.Pp
+Whenever a spin mutex is acquired the
+.Fn lockstat:::spin-acquire
+probe fires.
+The only argument is a pointer to the lock structure which describes
+the lock that is being acquired.
+.Pp
+The
+.Fn lockstat:::spin-release
+probe fires whenever a spin mutex is released.
+The only argument is a pointer to the lock structure which describes
+the lock that is being released.
+.Pp
+The
+.Fn lockstat:::spin-spin
+probe fires when a thread stops spinning waiting for a spin mutex.
+The first argument is a pointer to the lock structure that describes
+the lock and the second argument is the length of the time
+spent spinning, in nanoseconds.
+.Pp
+Whenever a reader-writer lock is acquired the
+.Fn lockstat:::rw-acquire
+probe fires.
+The only argument is a pointer to the structure which describes
+the lock that is being acquired.
+.Pp
+The
+.Fn lockstat:::rw-release
+probe fires whenever a reader-writer lock is released.
+.Pp
+The
+.Fn lockstat:::rw-block
+probe fires whenever a thread removes itself from the CPU while
+waiting to acquire the lock.
+The first argument is a pointer to the lock structure that describes
+the lock and the second argument is the length of time,
+in nanoseconds,
+that the waiting thread was blocked.
+The third argument is 1 if the thread was were spinning while
+trying to acquire a read lock, 
+otherwise it will be 0 indicating that we were spinning for the write lock.
+The fourth argument is 1 if we were waiting for a reader to release the lock,
+otherwise it will be  0 indicating that we were waiting for a writer 
+to release the lock.
+The fifth argument is the number of readers that held the lock when 
+we started spinning; in particular, argument 5 is non-zero only 
+if the fourth argument is 1.
+.Pp
+The
+.Fn lockstat:::rw-spin
+probe fires when a reader-writer lock takes itself off the CPU
+while waiting for the lock.
+The first argument is a pointer to the lock structure that describes
+the lock and the second argument returns an integer count of the
+number of spins that were completed.
+.Pp
+The
+.Fn lockstat:::rw-upgrade
+probe fires whenever a thread tries to upgrade a lock from a
+read lock to a write lock.
+The only argument is a pointer to the structure which describes
+the lock that is being acquired.
+.Pp
+.Fn lockstat:::rw-downgrade
+probe fires whenever a thread tries downgrades a lock from a
+read and write lock to a read lock.
+The only argument is a pointer to the structure which describes
+the lock that is being acquired.
+.Pp
+Whenever a shared-exclusive lock is acquired the
+.Fn lockstat:::sx-acquire
+probe fires.
+The only argument is a pointer to the structure which describes
+the lock that is being acquired.
+.Pp
+The
+.Fn lockstat:::sx-release
+probe fires whenever an adaptive lock is released.
+The only argument is a pointer to the lock structure which describes
+the lock that is being released.
+.Pp
+The
+.Fn lockstat:::sx-block
+probe fires whenever a thread takes itself off the CPU while
+waiting for the lock.
+The first argument is a pointer to the structure that describes
+the lock and the second argument is the length of time,
+in nanoseconds,
+that the waiting thread was blocked.
+The third argument is 1 if the thread was were spinning while
+trying to acquire a read lock, 
+otherwise it will be 0 indicating that we were spinning for the write lock.
+The fourth argument is 1 if we were waiting for a reader to release the lock,
+otherwise it will be  0 indicating that we were waiting for a writer 
+to release the lock.
+The fifth argument is the number of readers that held the lock when 
+we started spinning; in particular, argument 5 is non-zero only 
+if the fourth argument is 1.
+.Pp
+The
+.Fn lockstat:::sx-spin
+probe fires when a thread takes itself off of the CPU while
+waiting for the lock.
+The first argument is a pointer to the structure that describes
+the lock and the second argument returns an integer count of the
+number of spins that were completed.
+.Pp
+The
+.Fn lockstat:::sx-upgrade
+probe fires whenever a thread tries to upgrade a lock from a
+shared lock to a shared-exclusive lock.
+The only argument is a pointer to the structure which describes
+the lock that is being upgraded.
+.Pp
+The
+.Fn lockstat:::sx-downgrade
+probe fires whenever a thread downgrades a lock from a
+shared-exclusive lock to a shared lock.
+The only argument is a pointer to the structure which describes
+the lock that is being downgraded.
+.Pp
+The
+.Fn lockstat:::thread-spin
+probe fires whenever a thread spins on a spin lock.
+The first argument is a pointer to the structure that describes
+the lock and the second argument is the length of time,
+in nanoseconds,
+that the thread was spinning.
+.Sh SEE ALSO
+.Xr dtrace 1 ,
+.Xr lockstat 1 ,
+.Xr locking 9 ,
+.Xr SDT 9 ,
+.Sh HISTORY
+The
+.Nm lockstat
+provider first appeared in OpenSolaris.
+The FreeBSD implementation of the
+.Nm lockstat
+provider first appeared in
+.Fx 9.
+.Sh AUTHORS
+This manual page was written by
+.An George V. Neville-Neil Aq Mt gnn@FreeBSD.org .

From owner-svn-src-stable@freebsd.org  Thu Jul  6 18:46:34 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id CA4C4D8D18D;
 Thu,  6 Jul 2017 18:46:34 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 979C07A9AB;
 Thu,  6 Jul 2017 18:46:34 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v66IkXpu046907;
 Thu, 6 Jul 2017 18:46:33 GMT (envelope-from gjb@FreeBSD.org)
Received: (from gjb@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v66IkXFX046906;
 Thu, 6 Jul 2017 18:46:33 GMT (envelope-from gjb@FreeBSD.org)
Message-Id: <201707061846.v66IkXFX046906@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org
 using -f
From: Glen Barber <gjb@FreeBSD.org>
Date: Thu, 6 Jul 2017 18:46:33 +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: r320753 - in stable: 10/release 11/release
X-SVN-Group: stable-10
X-SVN-Commit-Author: gjb
X-SVN-Commit-Paths: in stable: 10/release 11/release
X-SVN-Commit-Revision: 320753
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Jul 2017 18:46:34 -0000

Author: gjb
Date: Thu Jul  6 18:46:33 2017
New Revision: 320753
URL: https://svnweb.freebsd.org/changeset/base/320753

Log:
  MFC r320748:
   Allow passing NOPKG= to make(1) to enable the pkg-stage target
   from getting executed when NOPKG is defined but empty.
  
  Approved by:	re (kib, insta-MFC)
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/10/release/Makefile
Directory Properties:
  stable/10/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/11/release/Makefile
Directory Properties:
  stable/11/   (props changed)

Modified: stable/10/release/Makefile
==============================================================================
--- stable/10/release/Makefile	Thu Jul  6 18:33:33 2017	(r320752)
+++ stable/10/release/Makefile	Thu Jul  6 18:46:33 2017	(r320753)
@@ -306,7 +306,7 @@ packagesystem: base.txz kernel.txz ${EXTRA_PACKAGES}
 	touch ${.TARGET}
 
 pkg-stage:
-.if !defined(NOPKG)
+.if !defined(NOPKG) || empty(NOPKG)
 	env PORTSDIR=${PORTSDIR} REPOS_DIR=${.CURDIR}/pkg_repos/ \
 		sh ${.CURDIR}/scripts/pkg-stage.sh
 	mkdir -p ${.OBJDIR}/dvd/packages/repos/

From owner-svn-src-stable@freebsd.org  Thu Jul  6 18:46:35 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 03D5CD8D193;
 Thu,  6 Jul 2017 18:46:35 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id C6CB47A9AC;
 Thu,  6 Jul 2017 18:46:34 +0000 (UTC) (envelope-from gjb@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v66IkYsV046913;
 Thu, 6 Jul 2017 18:46:34 GMT (envelope-from gjb@FreeBSD.org)
Received: (from gjb@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v66IkYqw046912;
 Thu, 6 Jul 2017 18:46:34 GMT (envelope-from gjb@FreeBSD.org)
Message-Id: <201707061846.v66IkYqw046912@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: gjb set sender to gjb@FreeBSD.org
 using -f
From: Glen Barber <gjb@FreeBSD.org>
Date: Thu, 6 Jul 2017 18:46:34 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320753 - in stable: 10/release 11/release
X-SVN-Group: stable-11
X-SVN-Commit-Author: gjb
X-SVN-Commit-Paths: in stable: 10/release 11/release
X-SVN-Commit-Revision: 320753
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Jul 2017 18:46:35 -0000

Author: gjb
Date: Thu Jul  6 18:46:33 2017
New Revision: 320753
URL: https://svnweb.freebsd.org/changeset/base/320753

Log:
  MFC r320748:
   Allow passing NOPKG= to make(1) to enable the pkg-stage target
   from getting executed when NOPKG is defined but empty.
  
  Approved by:	re (kib, insta-MFC)
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/11/release/Makefile
Directory Properties:
  stable/11/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/10/release/Makefile
Directory Properties:
  stable/10/   (props changed)

Modified: stable/11/release/Makefile
==============================================================================
--- stable/11/release/Makefile	Thu Jul  6 18:33:33 2017	(r320752)
+++ stable/11/release/Makefile	Thu Jul  6 18:46:33 2017	(r320753)
@@ -265,7 +265,7 @@ packagesystem: base.txz kernel.txz ${EXTRA_PACKAGES}
 	touch ${.TARGET}
 
 pkg-stage:
-.if !defined(NOPKG)
+.if !defined(NOPKG) || empty(NOPKG)
 	env PORTSDIR=${PORTSDIR} REPOS_DIR=${.CURDIR}/pkg_repos/ \
 		sh ${.CURDIR}/scripts/pkg-stage.sh
 	mkdir -p ${.OBJDIR}/dvd/packages/repos/

From owner-svn-src-stable@freebsd.org  Thu Jul  6 22:03:59 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id CCA51D93292;
 Thu,  6 Jul 2017 22:03:59 +0000 (UTC) (envelope-from mjg@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 9FCA48176C;
 Thu,  6 Jul 2017 22:03:59 +0000 (UTC) (envelope-from mjg@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v66M3w52031687;
 Thu, 6 Jul 2017 22:03:58 GMT (envelope-from mjg@FreeBSD.org)
Received: (from mjg@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v66M3wGi031686;
 Thu, 6 Jul 2017 22:03:58 GMT (envelope-from mjg@FreeBSD.org)
Message-Id: <201707062203.v66M3wGi031686@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: mjg set sender to mjg@FreeBSD.org
 using -f
From: Mateusz Guzik <mjg@FreeBSD.org>
Date: Thu, 6 Jul 2017 22:03:58 +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: r320756 - stable/10/sys/kern
X-SVN-Group: stable-10
X-SVN-Commit-Author: mjg
X-SVN-Commit-Paths: stable/10/sys/kern
X-SVN-Commit-Revision: 320756
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Jul 2017 22:03:59 -0000

Author: mjg
Date: Thu Jul  6 22:03:58 2017
New Revision: 320756
URL: https://svnweb.freebsd.org/changeset/base/320756

Log:
  MFC r293295:
  
  cache: ansify functions and fix some style issues
  
  No functional changes.

Modified:
  stable/10/sys/kern/vfs_cache.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/kern/vfs_cache.c
==============================================================================
--- stable/10/sys/kern/vfs_cache.c	Thu Jul  6 21:47:17 2017	(r320755)
+++ stable/10/sys/kern/vfs_cache.c	Thu Jul  6 22:03:58 2017	(r320756)
@@ -289,7 +289,7 @@ static u_long nummiss; STATNODE(CTLFLAG_RD, nummiss, &
     "Number of cache misses");
 static u_long nummisszap; STATNODE(CTLFLAG_RD, nummisszap, &nummisszap,
     "Number of cache misses we do not want to cache");
-static u_long numposzaps; STATNODE(CTLFLAG_RD, numposzaps, &numposzaps, 
+static u_long numposzaps; STATNODE(CTLFLAG_RD, numposzaps, &numposzaps,
     "Number of cache hits (positive) we do not want to cache");
 static u_long numposhits; STATNODE(CTLFLAG_RD, numposhits, &numposhits,
     "Number of cache hits (positive)");
@@ -304,8 +304,6 @@ SYSCTL_OPAQUE(_vfs_cache, OID_AUTO, nchstats, CTLFLAG_
     &nchstats, sizeof(nchstats), "LU",
     "VFS cache effectiveness statistics");
 
-
-
 static void cache_zap(struct namecache *ncp);
 static int vn_vptocnp_locked(struct vnode **vp, struct ucred *cred, char *buf,
     u_int *buflen);
@@ -411,8 +409,7 @@ SYSCTL_PROC(_debug_hashstat, OID_AUTO, nchash, CTLTYPE
  *   pointer to a vnode or if it is just a negative cache entry.
  */
 static void
-cache_zap(ncp)
-	struct namecache *ncp;
+cache_zap(struct namecache *ncp)
 {
 	struct vnode *vp;
 
@@ -447,7 +444,7 @@ cache_zap(ncp)
 	}
 	numcache--;
 	cache_free(ncp);
-	if (vp)
+	if (vp != NULL)
 		vdrop(vp);
 }
 
@@ -469,12 +466,8 @@ cache_zap(ncp)
  */
 
 int
-cache_lookup(dvp, vpp, cnp, tsp, ticksp)
-	struct vnode *dvp;
-	struct vnode **vpp;
-	struct componentname *cnp;
-	struct timespec *tsp;
-	int *ticksp;
+cache_lookup(struct vnode *dvp, struct vnode **vpp, struct componentname *cnp,
+    struct timespec *tsp, int *ticksp)
 {
 	struct namecache *ncp;
 	uint32_t hash;
@@ -702,12 +695,8 @@ unlock:
  * Add an entry to the cache.
  */
 void
-cache_enter_time(dvp, vp, cnp, tsp, dtsp)
-	struct vnode *dvp;
-	struct vnode *vp;
-	struct componentname *cnp;
-	struct timespec *tsp;
-	struct timespec *dtsp;
+cache_enter_time(struct vnode *dvp, struct vnode *vp, struct componentname *cnp,
+    struct timespec *tsp, struct timespec *dtsp)
 {
 	struct namecache *ncp, *n2;
 	struct namecache_ts *n3;
@@ -837,9 +826,9 @@ cache_enter_time(dvp, vp, cnp, tsp, dtsp)
 		 * has populated v_cache_dd pointer already.
 		 */
 		if (dvp->v_cache_dd != NULL) {
-		    CACHE_WUNLOCK();
-		    cache_free(ncp);
-		    return;
+			CACHE_WUNLOCK();
+			cache_free(ncp);
+			return;
 		}
 		KASSERT(vp == NULL || vp->v_type == VDIR,
 		    ("wrong vnode type %p", vp));
@@ -847,7 +836,7 @@ cache_enter_time(dvp, vp, cnp, tsp, dtsp)
 	}
 
 	numcache++;
-	if (!vp) {
+	if (vp == NULL) {
 		numneg++;
 		if (cnp->cn_flags & ISWHITEOUT)
 			ncp->nc_flag |= NCF_WHITE;
@@ -885,7 +874,7 @@ cache_enter_time(dvp, vp, cnp, tsp, dtsp)
 	 * "negative" cache queue, otherwise, we place it into the
 	 * destination vnode's cache entries queue.
 	 */
-	if (vp) {
+	if (vp != NULL) {
 		TAILQ_INSERT_HEAD(&vp->v_cache_dst, ncp, nc_dst);
 		SDT_PROBE3(vfs, namecache, enter, done, dvp, nc_get_name(ncp),
 		    vp);
@@ -976,8 +965,7 @@ cache_changesize(int newmaxvnodes)
  * Invalidate all entries to a particular vnode.
  */
 void
-cache_purge(vp)
-	struct vnode *vp;
+cache_purge(struct vnode *vp)
 {
 
 	CTR1(KTR_VFS, "cache_purge(%p)", vp);
@@ -1000,8 +988,7 @@ cache_purge(vp)
  * Invalidate all negative entries for a particular directory vnode.
  */
 void
-cache_purge_negative(vp)
-	struct vnode *vp;
+cache_purge_negative(struct vnode *vp)
 {
 	struct namecache *cp, *ncp;
 
@@ -1019,8 +1006,7 @@ cache_purge_negative(vp)
  * Flush all entries referencing a particular filesystem.
  */
 void
-cache_purgevfs(mp)
-	struct mount *mp;
+cache_purgevfs(struct mount *mp)
 {
 	struct nchashhead *ncpp;
 	struct namecache *ncp, *nnp;
@@ -1043,12 +1029,7 @@ cache_purgevfs(mp)
  */
 
 int
-vfs_cache_lookup(ap)
-	struct vop_lookup_args /* {
-		struct vnode *a_dvp;
-		struct vnode **a_vpp;
-		struct componentname *a_cnp;
-	} */ *ap;
+vfs_cache_lookup(struct vop_lookup_args *ap)
 {
 	struct vnode *dvp;
 	int error;
@@ -1089,9 +1070,7 @@ SYSCTL_INT(_debug, OID_AUTO, disablecwd, CTLFLAG_RW, &
 
 /* Implementation of the getcwd syscall. */
 int
-sys___getcwd(td, uap)
-	struct thread *td;
-	struct __getcwd_args *uap;
+sys___getcwd(struct thread *td, struct __getcwd_args *uap)
 {
 
 	return (kern___getcwd(td, uap->buf, UIO_USERSPACE, uap->buflen));

From owner-svn-src-stable@freebsd.org  Thu Jul  6 22:34:56 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 48D78D93B0E;
 Thu,  6 Jul 2017 22:34:56 +0000 (UTC)
 (envelope-from cperciva@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 1752282586;
 Thu,  6 Jul 2017 22:34:56 +0000 (UTC)
 (envelope-from cperciva@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v66MYtng043998;
 Thu, 6 Jul 2017 22:34:55 GMT (envelope-from cperciva@FreeBSD.org)
Received: (from cperciva@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v66MYttp043996;
 Thu, 6 Jul 2017 22:34:55 GMT (envelope-from cperciva@FreeBSD.org)
Message-Id: <201707062234.v66MYttp043996@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: cperciva set sender to
 cperciva@FreeBSD.org using -f
From: Colin Percival <cperciva@FreeBSD.org>
Date: Thu, 6 Jul 2017 22:34:55 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320759 - in stable/11/release: . tools
X-SVN-Group: stable-11
X-SVN-Commit-Author: cperciva
X-SVN-Commit-Paths: in stable/11/release: . tools
X-SVN-Commit-Revision: 320759
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Jul 2017 22:34:56 -0000

Author: cperciva
Date: Thu Jul  6 22:34:54 2017
New Revision: 320759
URL: https://svnweb.freebsd.org/changeset/base/320759

Log:
  MFC r318894: Enable Amazon's "Elastic Network Adapter" in EC2 AMIs.

Modified:
  stable/11/release/Makefile.ec2
  stable/11/release/tools/ec2.conf
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/release/Makefile.ec2
==============================================================================
--- stable/11/release/Makefile.ec2	Thu Jul  6 22:34:34 2017	(r320758)
+++ stable/11/release/Makefile.ec2	Thu Jul  6 22:34:54 2017	(r320759)
@@ -51,7 +51,7 @@ ec2ami: cw-ec2 ${CW_EC2_PORTINSTALL}
 	@echo "--------------------------------------------------------------"
 	@false
 .endif
-	/usr/local/bin/bsdec2-image-upload ${PUBLISH} --sriov \
+	/usr/local/bin/bsdec2-image-upload ${PUBLISH} --sriov --ena \
 	    ${.OBJDIR}/ec2.raw \
 	    "${TYPE} ${REVISION}-${BRANCH}-${TARGET}${AMINAMESUFFIX}" \
 	    "${TYPE} ${REVISION}-${BRANCH}-${TARGET}" \

Modified: stable/11/release/tools/ec2.conf
==============================================================================
--- stable/11/release/tools/ec2.conf	Thu Jul  6 22:34:34 2017	(r320758)
+++ stable/11/release/tools/ec2.conf	Thu Jul  6 22:34:54 2017	(r320759)
@@ -78,6 +78,9 @@ vm_extra_pre_umount() {
 	# nodes, but apply the workaround just in case.
 	echo 'hw.broken_txfifo="1"' >> ${DESTDIR}/boot/loader.conf
 
+	# Load the kernel module for the Amazon "Elastic Network Adapter"
+	echo 'if_ena_load="YES"' >> ${DESTDIR}/boot/loader.conf
+
 	# The first time the AMI boots, the installed "first boot" scripts
 	# should be allowed to run:
 	# * ec2_configinit (download and process EC2 user-data)

From owner-svn-src-stable@freebsd.org  Fri Jul  7 08:49:39 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 25959D9DE06;
 Fri,  7 Jul 2017 08:49:39 +0000 (UTC)
 (envelope-from sephe@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id D6DF871B60;
 Fri,  7 Jul 2017 08:49:38 +0000 (UTC)
 (envelope-from sephe@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v678nc3s098899;
 Fri, 7 Jul 2017 08:49:38 GMT (envelope-from sephe@FreeBSD.org)
Received: (from sephe@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v678ncEr098898;
 Fri, 7 Jul 2017 08:49:38 GMT (envelope-from sephe@FreeBSD.org)
Message-Id: <201707070849.v678ncEr098898@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: sephe set sender to
 sephe@FreeBSD.org using -f
From: Sepherosa Ziehau <sephe@FreeBSD.org>
Date: Fri, 7 Jul 2017 08:49:38 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320765 - stable/11/sys/dev/hyperv/input
X-SVN-Group: stable-11
X-SVN-Commit-Author: sephe
X-SVN-Commit-Paths: stable/11/sys/dev/hyperv/input
X-SVN-Commit-Revision: 320765
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 07 Jul 2017 08:49:39 -0000

Author: sephe
Date: Fri Jul  7 08:49:37 2017
New Revision: 320765
URL: https://svnweb.freebsd.org/changeset/base/320765

Log:
  MFC 320490
  
      hyperv/input: Remove unnecessary inclusion.
  
      The unbreaks gcc compilation.
  
      Submitted by:   Ryan Libby
      Sponsored by:   Microsoft
      Differential Revision:  https://reviews.freebsd.org/D11415

Modified:
  stable/11/sys/dev/hyperv/input/hv_kbdc.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/dev/hyperv/input/hv_kbdc.c
==============================================================================
--- stable/11/sys/dev/hyperv/input/hv_kbdc.c	Fri Jul  7 06:37:19 2017	(r320764)
+++ stable/11/sys/dev/hyperv/input/hv_kbdc.c	Fri Jul  7 08:49:37 2017	(r320765)
@@ -49,7 +49,6 @@ __FBSDID("$FreeBSD$");
 
 #include <sys/kbio.h>
 #include <dev/kbd/kbdreg.h>
-#include <dev/kbd/kbdtables.h>
 
 #include <dev/hyperv/include/hyperv.h>
 #include <dev/hyperv/utilities/hv_utilreg.h>

From owner-svn-src-stable@freebsd.org  Fri Jul  7 09:38:41 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id BAD6FD9ECF3;
 Fri,  7 Jul 2017 09:38:41 +0000 (UTC)
 (envelope-from sephe@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 86D3573301;
 Fri,  7 Jul 2017 09:38:41 +0000 (UTC)
 (envelope-from sephe@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v679cekl020002;
 Fri, 7 Jul 2017 09:38:40 GMT (envelope-from sephe@FreeBSD.org)
Received: (from sephe@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v679ceQL020001;
 Fri, 7 Jul 2017 09:38:40 GMT (envelope-from sephe@FreeBSD.org)
Message-Id: <201707070938.v679ceQL020001@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: sephe set sender to
 sephe@FreeBSD.org using -f
From: Sepherosa Ziehau <sephe@FreeBSD.org>
Date: Fri, 7 Jul 2017 09:38:40 +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: r320766 - stable/10/sys/dev/hyperv/input
X-SVN-Group: stable-10
X-SVN-Commit-Author: sephe
X-SVN-Commit-Paths: stable/10/sys/dev/hyperv/input
X-SVN-Commit-Revision: 320766
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 07 Jul 2017 09:38:41 -0000

Author: sephe
Date: Fri Jul  7 09:38:40 2017
New Revision: 320766
URL: https://svnweb.freebsd.org/changeset/base/320766

Log:
  MFC 320490
  
      hyperv/input: Remove unnecessary inclusion.
  
      The unbreaks gcc compilation.
  
      Submitted by:   Ryan Libby
      Sponsored by:   Microsoft
      Differential Revision:  https://reviews.freebsd.org/D11415

Modified:
  stable/10/sys/dev/hyperv/input/hv_kbdc.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/dev/hyperv/input/hv_kbdc.c
==============================================================================
--- stable/10/sys/dev/hyperv/input/hv_kbdc.c	Fri Jul  7 08:49:37 2017	(r320765)
+++ stable/10/sys/dev/hyperv/input/hv_kbdc.c	Fri Jul  7 09:38:40 2017	(r320766)
@@ -49,7 +49,6 @@ __FBSDID("$FreeBSD$");
 
 #include <sys/kbio.h>
 #include <dev/kbd/kbdreg.h>
-#include <dev/kbd/kbdtables.h>
 
 #include <dev/hyperv/include/hyperv.h>
 #include <dev/hyperv/utilities/hv_utilreg.h>

From owner-svn-src-stable@freebsd.org  Fri Jul  7 11:54:47 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 11C06DA1153;
 Fri,  7 Jul 2017 11:54:47 +0000 (UTC)
 (envelope-from eugen@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id E17D5771E7;
 Fri,  7 Jul 2017 11:54:46 +0000 (UTC)
 (envelope-from eugen@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v67Bskfu077811;
 Fri, 7 Jul 2017 11:54:46 GMT (envelope-from eugen@FreeBSD.org)
Received: (from eugen@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v67Bsk3a077810;
 Fri, 7 Jul 2017 11:54:46 GMT (envelope-from eugen@FreeBSD.org)
Message-Id: <201707071154.v67Bsk3a077810@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: eugen set sender to
 eugen@FreeBSD.org using -f
From: Eugene Grosbein <eugen@FreeBSD.org>
Date: Fri, 7 Jul 2017 11:54:46 +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: r320772 - stable/10/usr.sbin/syslogd
X-SVN-Group: stable-10
X-SVN-Commit-Author: eugen
X-SVN-Commit-Paths: stable/10/usr.sbin/syslogd
X-SVN-Commit-Revision: 320772
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 07 Jul 2017 11:54:47 -0000

Author: eugen (ports committer)
Date: Fri Jul  7 11:54:45 2017
New Revision: 320772
URL: https://svnweb.freebsd.org/changeset/base/320772

Log:
  MFC r310888:
  
    Retry to open an F_PIPE process when it dies unexpectedly.
  
  PR:		215335
  Reviewed by:	ae
  Approved by:	az (mentor)

Modified:
  stable/10/usr.sbin/syslogd/syslogd.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/usr.sbin/syslogd/syslogd.c
==============================================================================
--- stable/10/usr.sbin/syslogd/syslogd.c	Fri Jul  7 11:27:12 2017	(r320771)
+++ stable/10/usr.sbin/syslogd/syslogd.c	Fri Jul  7 11:54:45 2017	(r320772)
@@ -349,9 +349,19 @@ close_filed(struct filed *f)
 	if (f == NULL || f->f_file == -1)
 		return;
 
+	switch (f->f_type) {
+	case F_FILE:
+	case F_TTY:
+	case F_CONSOLE:
+	case F_FORW:
+		f->f_type = F_UNUSED;
+		break;
+	case F_PIPE:
+		f->f_un.f_pipe.f_pid = 0;
+		break;
+	}
 	(void)close(f->f_file);
 	f->f_file = -1;
-	f->f_type = F_UNUSED;
 }
 
 int
@@ -1311,18 +1321,16 @@ fprintlog(struct filed *f, int flags, const char *msg)
 		if (f->f_un.f_pipe.f_pid == 0) {
 			if ((f->f_file = p_open(f->f_un.f_pipe.f_pname,
 						&f->f_un.f_pipe.f_pid)) < 0) {
-				f->f_type = F_UNUSED;
 				logerror(f->f_un.f_pipe.f_pname);
 				break;
 			}
 		}
 		if (writev(f->f_file, iov, IOV_SIZE) < 0) {
 			int e = errno;
+
 			close_filed(f);
-			if (f->f_un.f_pipe.f_pid > 0)
-				deadq_enter(f->f_un.f_pipe.f_pid,
-					    f->f_un.f_pipe.f_pname);
-			f->f_un.f_pipe.f_pid = 0;
+			deadq_enter(f->f_un.f_pipe.f_pid,
+				    f->f_un.f_pipe.f_pname);
 			errno = e;
 			logerror(f->f_un.f_pipe.f_pname);
 		}
@@ -1427,7 +1435,6 @@ reapchild(int signo __unused)
 			if (f->f_type == F_PIPE &&
 			    f->f_un.f_pipe.f_pid == pid) {
 				close_filed(f);
-				f->f_un.f_pipe.f_pid = 0;
 				log_deadchild(pid, status,
 					      f->f_un.f_pipe.f_pname);
 				break;
@@ -1529,10 +1536,8 @@ die(int signo)
 		/* flush any pending output */
 		if (f->f_prevcount)
 			fprintlog(f, 0, (char *)NULL);
-		if (f->f_type == F_PIPE && f->f_un.f_pipe.f_pid > 0) {
+		if (f->f_type == F_PIPE && f->f_un.f_pipe.f_pid > 0)
 			close_filed(f);
-			f->f_un.f_pipe.f_pid = 0;
-		}
 	}
 	Initialized = was_initialized;
 	if (signo) {
@@ -1599,12 +1604,9 @@ init(int signo)
 			close_filed(f);
 			break;
 		case F_PIPE:
-			if (f->f_un.f_pipe.f_pid > 0) {
-				close_filed(f);
-				deadq_enter(f->f_un.f_pipe.f_pid,
-					    f->f_un.f_pipe.f_pname);
-			}
-			f->f_un.f_pipe.f_pid = 0;
+			close_filed(f);
+			deadq_enter(f->f_un.f_pipe.f_pid,
+				    f->f_un.f_pipe.f_pname);
 			break;
 		}
 		next = f->f_next;
@@ -2582,6 +2584,8 @@ deadq_enter(pid_t pid, const char *name)
 	dq_t p;
 	int status;
 
+	if (pid == 0)
+		return;
 	/*
 	 * Be paranoid, if we can't signal the process, don't enter it
 	 * into the dead queue (perhaps it's already dead).  If possible,

From owner-svn-src-stable@freebsd.org  Fri Jul  7 13:44:20 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 69363DA3ABA;
 Fri,  7 Jul 2017 13:44:20 +0000 (UTC)
 (envelope-from eugen@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 2C5757AD59;
 Fri,  7 Jul 2017 13:44:20 +0000 (UTC)
 (envelope-from eugen@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v67DiJO0024543;
 Fri, 7 Jul 2017 13:44:19 GMT (envelope-from eugen@FreeBSD.org)
Received: (from eugen@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v67DiJiX024542;
 Fri, 7 Jul 2017 13:44:19 GMT (envelope-from eugen@FreeBSD.org)
Message-Id: <201707071344.v67DiJiX024542@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: eugen set sender to
 eugen@FreeBSD.org using -f
From: Eugene Grosbein <eugen@FreeBSD.org>
Date: Fri, 7 Jul 2017 13:44:19 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320776 - stable/11/usr.sbin/syslogd
X-SVN-Group: stable-11
X-SVN-Commit-Author: eugen
X-SVN-Commit-Paths: stable/11/usr.sbin/syslogd
X-SVN-Commit-Revision: 320776
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 07 Jul 2017 13:44:20 -0000

Author: eugen (ports committer)
Date: Fri Jul  7 13:44:18 2017
New Revision: 320776
URL: https://svnweb.freebsd.org/changeset/base/320776

Log:
  MFC r310888:
  
    Retry to open an F_PIPE process when it dies unexpectedly.
  
  PR:           215335
  Reviewed by:  ae
  Approved by:  az (mentor)

Modified:
  stable/11/usr.sbin/syslogd/syslogd.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/usr.sbin/syslogd/syslogd.c
==============================================================================
--- stable/11/usr.sbin/syslogd/syslogd.c	Fri Jul  7 13:44:14 2017	(r320775)
+++ stable/11/usr.sbin/syslogd/syslogd.c	Fri Jul  7 13:44:18 2017	(r320776)
@@ -362,9 +362,19 @@ close_filed(struct filed *f)
 	if (f == NULL || f->f_file == -1)
 		return;
 
+	switch (f->f_type) {
+	case F_FILE:
+	case F_TTY:
+	case F_CONSOLE:
+	case F_FORW:
+		f->f_type = F_UNUSED;
+		break;
+	case F_PIPE:
+		f->f_un.f_pipe.f_pid = 0;
+		break;
+	}
 	(void)close(f->f_file);
 	f->f_file = -1;
-	f->f_type = F_UNUSED;
 }
 
 int
@@ -1346,18 +1356,16 @@ fprintlog(struct filed *f, int flags, const char *msg)
 		if (f->f_un.f_pipe.f_pid == 0) {
 			if ((f->f_file = p_open(f->f_un.f_pipe.f_pname,
 						&f->f_un.f_pipe.f_pid)) < 0) {
-				f->f_type = F_UNUSED;
 				logerror(f->f_un.f_pipe.f_pname);
 				break;
 			}
 		}
 		if (writev(f->f_file, iov, IOV_SIZE) < 0) {
 			int e = errno;
+
 			close_filed(f);
-			if (f->f_un.f_pipe.f_pid > 0)
-				deadq_enter(f->f_un.f_pipe.f_pid,
-					    f->f_un.f_pipe.f_pname);
-			f->f_un.f_pipe.f_pid = 0;
+			deadq_enter(f->f_un.f_pipe.f_pid,
+				    f->f_un.f_pipe.f_pname);
 			errno = e;
 			logerror(f->f_un.f_pipe.f_pname);
 		}
@@ -1485,7 +1493,6 @@ reapchild(int signo __unused)
 			if (f->f_type == F_PIPE &&
 			    f->f_un.f_pipe.f_pid == pid) {
 				close_filed(f);
-				f->f_un.f_pipe.f_pid = 0;
 				log_deadchild(pid, status,
 					      f->f_un.f_pipe.f_pname);
 				break;
@@ -1587,10 +1594,8 @@ die(int signo)
 		/* flush any pending output */
 		if (f->f_prevcount)
 			fprintlog(f, 0, (char *)NULL);
-		if (f->f_type == F_PIPE && f->f_un.f_pipe.f_pid > 0) {
+		if (f->f_type == F_PIPE && f->f_un.f_pipe.f_pid > 0)
 			close_filed(f);
-			f->f_un.f_pipe.f_pid = 0;
-		}
 	}
 	Initialized = was_initialized;
 	if (signo) {
@@ -1823,12 +1828,9 @@ init(int signo)
 			close_filed(f);
 			break;
 		case F_PIPE:
-			if (f->f_un.f_pipe.f_pid > 0) {
-				close_filed(f);
-				deadq_enter(f->f_un.f_pipe.f_pid,
-					    f->f_un.f_pipe.f_pname);
-			}
-			f->f_un.f_pipe.f_pid = 0;
+			close_filed(f);
+			deadq_enter(f->f_un.f_pipe.f_pid,
+				    f->f_un.f_pipe.f_pname);
 			break;
 		}
 		next = f->f_next;
@@ -2730,6 +2732,8 @@ deadq_enter(pid_t pid, const char *name)
 	dq_t p;
 	int status;
 
+	if (pid == 0)
+		return;
 	/*
 	 * Be paranoid, if we can't signal the process, don't enter it
 	 * into the dead queue (perhaps it's already dead).  If possible,

From owner-svn-src-stable@freebsd.org  Fri Jul  7 15:09:10 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id F360FDA5390;
 Fri,  7 Jul 2017 15:09:09 +0000 (UTC)
 (envelope-from asomers@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id BBA627D948;
 Fri,  7 Jul 2017 15:09:09 +0000 (UTC)
 (envelope-from asomers@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v67F982P057908;
 Fri, 7 Jul 2017 15:09:08 GMT (envelope-from asomers@FreeBSD.org)
Received: (from asomers@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v67F98Z7057907;
 Fri, 7 Jul 2017 15:09:08 GMT (envelope-from asomers@FreeBSD.org)
Message-Id: <201707071509.v67F98Z7057907@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: asomers set sender to
 asomers@FreeBSD.org using -f
From: Alan Somers <asomers@FreeBSD.org>
Date: Fri, 7 Jul 2017 15:09:08 +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: r320780 - stable/10/usr.sbin/bootparamd/bootparamd
X-SVN-Group: stable-10
X-SVN-Commit-Author: asomers
X-SVN-Commit-Paths: stable/10/usr.sbin/bootparamd/bootparamd
X-SVN-Commit-Revision: 320780
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 07 Jul 2017 15:09:10 -0000

Author: asomers
Date: Fri Jul  7 15:09:08 2017
New Revision: 320780
URL: https://svnweb.freebsd.org/changeset/base/320780

Log:
  MFC r318790, r319336
  
  r318790:
  Fix a buffer overflow in bootparamd(8)
  
  If /etc/bootparams contains a line with an excessively long pathname, and a
  client asks for that path, then bootparamd will overflow a buffer and crash
  while parsing that line.  This is not remotely exploitable since it requires
  a malformed /etc/bootparams file.
  
  Reported by:	Coverity
  CID:		1305954
  Sponsored by:	Spectra Logic Corp
  
  r319336:
  Fix uninitialized variable in bootparamd.c
  
  Restore line that was accidentally deleted in change 318790
  
  Reported by:	Coverity
  CID:		1375855
  X-MFC-With:	318790
  Sponsored by:	Spectra Logic Corp

Modified:
  stable/10/usr.sbin/bootparamd/bootparamd/bootparamd.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/usr.sbin/bootparamd/bootparamd/bootparamd.c
==============================================================================
--- stable/10/usr.sbin/bootparamd/bootparamd/bootparamd.c	Fri Jul  7 15:01:10 2017	(r320779)
+++ stable/10/usr.sbin/bootparamd/bootparamd/bootparamd.c	Fri Jul  7 15:09:08 2017	(r320780)
@@ -199,7 +199,10 @@ int blen;
 
   int ch, pch, fid_len, res = 0;
   int match = 0;
-  char info[MAX_FILEID + MAX_PATH_LEN+MAX_MACHINE_NAME + 3];
+#define INFOLEN 1343
+  _Static_assert(INFOLEN >= MAX_FILEID + MAX_PATH_LEN+MAX_MACHINE_NAME + 3,
+		  "INFOLEN isn't large enough");
+  char info[INFOLEN + 1];
 
   bpf = fopen(bootpfile, "r");
   if ( ! bpf )
@@ -252,7 +255,9 @@ int blen;
 
   if (match) {
     fid_len = strlen(fileid);
-    while ( ! res && (fscanf(bpf,"%s", info)) > 0) { /* read a string */
+#define AS_FORMAT(d)	"%" #d "s"
+#define REXPAND(d) AS_FORMAT(d)	/* Force another preprocessor expansion */
+    while ( ! res && (fscanf(bpf, REXPAND(INFOLEN), info)) > 0) {
       ch = getc(bpf);                                /* and a character */
       if ( *info != '#' ) {                          /* Comment ? */
 	if (! strncmp(info, fileid, fid_len) && *(info + fid_len) == '=') {

From owner-svn-src-stable@freebsd.org  Fri Jul  7 15:22:30 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4AC03DA5943;
 Fri,  7 Jul 2017 15:22:30 +0000 (UTC)
 (envelope-from asomers@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 17D417E3D3;
 Fri,  7 Jul 2017 15:22:30 +0000 (UTC)
 (envelope-from asomers@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v67FMTUI066083;
 Fri, 7 Jul 2017 15:22:29 GMT (envelope-from asomers@FreeBSD.org)
Received: (from asomers@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v67FMTs9066082;
 Fri, 7 Jul 2017 15:22:29 GMT (envelope-from asomers@FreeBSD.org)
Message-Id: <201707071522.v67FMTs9066082@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: asomers set sender to
 asomers@FreeBSD.org using -f
From: Alan Somers <asomers@FreeBSD.org>
Date: Fri, 7 Jul 2017 15:22:29 +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: r320781 - stable/10/sbin/camcontrol
X-SVN-Group: stable-10
X-SVN-Commit-Author: asomers
X-SVN-Commit-Paths: stable/10/sbin/camcontrol
X-SVN-Commit-Revision: 320781
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 07 Jul 2017 15:22:30 -0000

Author: asomers
Date: Fri Jul  7 15:22:29 2017
New Revision: 320781
URL: https://svnweb.freebsd.org/changeset/base/320781

Log:
  MFC r319337:
  
  Fix integer overflow in "camcontrol format"
  
  Reported by:	Coverity
  CID:		1011426
  Sponsored by:	Spectra Logic Corp

Modified:
  stable/10/sbin/camcontrol/camcontrol.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sbin/camcontrol/camcontrol.c
==============================================================================
--- stable/10/sbin/camcontrol/camcontrol.c	Fri Jul  7 15:09:08 2017	(r320780)
+++ stable/10/sbin/camcontrol/camcontrol.c	Fri Jul  7 15:22:29 2017	(r320781)
@@ -6044,15 +6044,15 @@ doreport:
 				if ((scsi_get_sks(sense, ccb->csio.sense_len -
 				     ccb->csio.sense_resid, sks) == 0)
 				 && (quiet == 0)) {
-					int val;
+					uint32_t val;
 					u_int64_t percentage;
 
 					val = scsi_2btoul(&sks[1]);
-					percentage = 10000 * val;
+					percentage = 10000ull * val;
 
 					fprintf(stdout,
 						"\rFormatting:  %ju.%02u %% "
-						"(%d/%d) done",
+						"(%u/%d) done",
 						(uintmax_t)(percentage /
 						(0x10000 * 100)),
 						(unsigned)((percentage /

From owner-svn-src-stable@freebsd.org  Fri Jul  7 15:35:43 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 848C0DA5F41;
 Fri,  7 Jul 2017 15:35:43 +0000 (UTC)
 (envelope-from asomers@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 57DF67EBF1;
 Fri,  7 Jul 2017 15:35:43 +0000 (UTC)
 (envelope-from asomers@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v67FZgKT070880;
 Fri, 7 Jul 2017 15:35:42 GMT (envelope-from asomers@FreeBSD.org)
Received: (from asomers@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v67FZg4t070879;
 Fri, 7 Jul 2017 15:35:42 GMT (envelope-from asomers@FreeBSD.org)
Message-Id: <201707071535.v67FZg4t070879@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: asomers set sender to
 asomers@FreeBSD.org using -f
From: Alan Somers <asomers@FreeBSD.org>
Date: Fri, 7 Jul 2017 15:35:42 +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: r320782 - stable/10/sbin/ipfw
X-SVN-Group: stable-10
X-SVN-Commit-Author: asomers
X-SVN-Commit-Paths: stable/10/sbin/ipfw
X-SVN-Commit-Revision: 320782
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 07 Jul 2017 15:35:43 -0000

Author: asomers
Date: Fri Jul  7 15:35:42 2017
New Revision: 320782
URL: https://svnweb.freebsd.org/changeset/base/320782

Log:
  MFC r319900:
  
  sbin/ipfw: strcpy, strncpy => strlcpy
  
  Reported by:	Coverity
  CID:		1356162, 1356166
  Sponsored by:	Spectra Logic Corp
  Differential Revision:	https://reviews.freebsd.org/D10662

Modified:
  stable/10/sbin/ipfw/dummynet.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sbin/ipfw/dummynet.c
==============================================================================
--- stable/10/sbin/ipfw/dummynet.c	Fri Jul  7 15:22:29 2017	(r320781)
+++ stable/10/sbin/ipfw/dummynet.c	Fri Jul  7 15:35:42 2017	(r320782)
@@ -799,8 +799,7 @@ read_bandwidth(char *arg, int *bandwidth, char *if_nam
 			warn("interface name truncated");
 		namelen--;
 		/* interface name */
-		strncpy(if_name, arg, namelen);
-		if_name[namelen] = '\0';
+		strlcpy(if_name, arg, namelen);
 		*bandwidth = 0;
 	} else {	/* read bandwidth value */
 		int bw;
@@ -927,8 +926,7 @@ load_extra_delays(const char *filename, struct dn_prof
 		} else if (!strcasecmp(name, ED_TOK_NAME)) {
 		    if (profile_name[0] != '\0')
 			errx(ED_EFMT("duplicated token: %s"), name);
-		    strncpy(profile_name, arg, sizeof(profile_name) - 1);
-		    profile_name[sizeof(profile_name)-1] = '\0';
+		    strlcpy(profile_name, arg, sizeof(profile_name));
 		    do_points = 0;
 		} else if (!strcasecmp(name, ED_TOK_DELAY)) {
 		    if (do_points)
@@ -999,7 +997,7 @@ load_extra_delays(const char *filename, struct dn_prof
 	}
 	p->samples_no = samples;
 	p->loss_level = loss * samples;
-	strncpy(p->name, profile_name, sizeof(p->name));
+	strlcpy(p->name, profile_name, sizeof(p->name));
 }
 
 #ifdef NEW_AQM
@@ -1562,7 +1560,8 @@ end_mask:
 			fs->flags &= ~(DN_IS_RED|DN_IS_GENTLE_RED);
 			fs->flags |= DN_IS_AQM;
 
-			strcpy(aqm_extra->name,av[-1]);
+			strlcpy(aqm_extra->name, av[-1],
+			    sizeof(aqm_extra->name));
 			aqm_extra->oid.subtype = DN_AQM_PARAMS;
 
 			process_extra_parms(&ac, av, aqm_extra, tok);
@@ -1574,7 +1573,8 @@ end_mask:
 				errx(EX_DATAERR, "use type before fq_codel/fq_pie");
 
 			NEED(sch, "fq_codel/fq_pie is only for schd");
-			strcpy(sch_extra->name,av[-1]);
+			strlcpy(sch_extra->name, av[-1],
+			    sizeof(sch_extra->name));
 			sch_extra->oid.subtype = DN_SCH_PARAMS;
 			process_extra_parms(&ac, av, sch_extra, tok);
 			break;
@@ -1643,14 +1643,15 @@ end_mask:
 			l = strlen(av[0]);
 			if (l == 0 || l > 15)
 				errx(1, "type %s too long\n", av[0]);
-			strcpy(sch->name, av[0]);
+			strlcpy(sch->name, av[0], sizeof(sch->name));
 			sch->oid.subtype = 0; /* use string */
 #ifdef NEW_AQM
 			/* if fq_codel is selected, consider all tokens after it
 			 * as parameters
 			 */
 			if (!strcasecmp(av[0],"fq_codel") || !strcasecmp(av[0],"fq_pie")){
-				strcpy(sch_extra->name,av[0]);
+				strlcpy(sch_extra->name, av[0],
+				    sizeof(sch_extra->name));
 				sch_extra->oid.subtype = DN_SCH_PARAMS;
 				process_extra_parms(&ac, av, sch_extra, tok);
 			} else {

From owner-svn-src-stable@freebsd.org  Fri Jul  7 16:59:15 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9BB75DA7A6A;
 Fri,  7 Jul 2017 16:59:15 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 70EF78256A;
 Fri,  7 Jul 2017 16:59:15 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v67GxEk1006501;
 Fri, 7 Jul 2017 16:59:14 GMT (envelope-from markj@FreeBSD.org)
Received: (from markj@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v67GxEbZ006499;
 Fri, 7 Jul 2017 16:59:14 GMT (envelope-from markj@FreeBSD.org)
Message-Id: <201707071659.v67GxEbZ006499@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: markj set sender to
 markj@FreeBSD.org using -f
From: Mark Johnston <markj@FreeBSD.org>
Date: Fri, 7 Jul 2017 16:59:14 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320789 - stable/11/sys/vm
X-SVN-Group: stable-11
X-SVN-Commit-Author: markj
X-SVN-Commit-Paths: stable/11/sys/vm
X-SVN-Commit-Revision: 320789
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 07 Jul 2017 16:59:15 -0000

Author: markj
Date: Fri Jul  7 16:59:14 2017
New Revision: 320789
URL: https://svnweb.freebsd.org/changeset/base/320789

Log:
  MFC r312208, r312994:
  Optimize vm_object_madvise().

Modified:
  stable/11/sys/vm/vm_object.c
  stable/11/sys/vm/vm_page.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/vm/vm_object.c
==============================================================================
--- stable/11/sys/vm/vm_object.c	Fri Jul  7 16:58:40 2017	(r320788)
+++ stable/11/sys/vm/vm_object.c	Fri Jul  7 16:59:14 2017	(r320789)
@@ -1075,6 +1075,33 @@ vm_object_sync(vm_object_t object, vm_ooffset_t offset
 }
 
 /*
+ * Determine whether the given advice can be applied to the object.  Advice is
+ * not applied to unmanaged pages since they never belong to page queues, and
+ * since MADV_FREE is destructive, it can apply only to anonymous pages that
+ * have been mapped at most once.
+ */
+static bool
+vm_object_advice_applies(vm_object_t object, int advice)
+{
+
+	if ((object->flags & OBJ_UNMANAGED) != 0)
+		return (false);
+	if (advice != MADV_FREE)
+		return (true);
+	return ((object->type == OBJT_DEFAULT || object->type == OBJT_SWAP) &&
+	    (object->flags & OBJ_ONEMAPPING) != 0);
+}
+
+static void
+vm_object_madvise_freespace(vm_object_t object, int advice, vm_pindex_t pindex,
+    vm_size_t size)
+{
+
+	if (advice == MADV_FREE && object->type == OBJT_SWAP)
+		swap_pager_freespace(object, pindex, size);
+}
+
+/*
  *	vm_object_madvise:
  *
  *	Implements the madvise function at the object/page level.
@@ -1097,96 +1124,109 @@ vm_object_sync(vm_object_t object, vm_ooffset_t offset
  */
 void
 vm_object_madvise(vm_object_t object, vm_pindex_t pindex, vm_pindex_t end,
-    int advise)
+    int advice)
 {
 	vm_pindex_t tpindex;
 	vm_object_t backing_object, tobject;
-	vm_page_t m;
+	vm_page_t m, tm;
 
 	if (object == NULL)
 		return;
-	VM_OBJECT_WLOCK(object);
-	/*
-	 * Locate and adjust resident pages
-	 */
-	for (; pindex < end; pindex += 1) {
+
 relookup:
+	VM_OBJECT_WLOCK(object);
+	if (!vm_object_advice_applies(object, advice)) {
+		VM_OBJECT_WUNLOCK(object);
+		return;
+	}
+	for (m = vm_page_find_least(object, pindex); pindex < end; pindex++) {
 		tobject = object;
-		tpindex = pindex;
-shadowlookup:
+
 		/*
-		 * MADV_FREE only operates on OBJT_DEFAULT or OBJT_SWAP pages
-		 * and those pages must be OBJ_ONEMAPPING.
+		 * If the next page isn't resident in the top-level object, we
+		 * need to search the shadow chain.  When applying MADV_FREE, we
+		 * take care to release any swap space used to store
+		 * non-resident pages.
 		 */
-		if (advise == MADV_FREE) {
-			if ((tobject->type != OBJT_DEFAULT &&
-			     tobject->type != OBJT_SWAP) ||
-			    (tobject->flags & OBJ_ONEMAPPING) == 0) {
-				goto unlock_tobject;
-			}
-		} else if ((tobject->flags & OBJ_UNMANAGED) != 0)
-			goto unlock_tobject;
-		m = vm_page_lookup(tobject, tpindex);
-		if (m == NULL) {
+		if (m == NULL || pindex < m->pindex) {
 			/*
-			 * There may be swap even if there is no backing page
+			 * Optimize a common case: if the top-level object has
+			 * no backing object, we can skip over the non-resident
+			 * range in constant time.
 			 */
-			if (advise == MADV_FREE && tobject->type == OBJT_SWAP)
-				swap_pager_freespace(tobject, tpindex, 1);
-			/*
-			 * next object
-			 */
-			backing_object = tobject->backing_object;
-			if (backing_object == NULL)
-				goto unlock_tobject;
-			VM_OBJECT_WLOCK(backing_object);
-			tpindex += OFF_TO_IDX(tobject->backing_object_offset);
-			if (tobject != object)
-				VM_OBJECT_WUNLOCK(tobject);
-			tobject = backing_object;
-			goto shadowlookup;
-		} else if (m->valid != VM_PAGE_BITS_ALL)
-			goto unlock_tobject;
+			if (object->backing_object == NULL) {
+				tpindex = (m != NULL && m->pindex < end) ?
+				    m->pindex : end;
+				vm_object_madvise_freespace(object, advice,
+				    pindex, tpindex - pindex);
+				if ((pindex = tpindex) == end)
+					break;
+				goto next_page;
+			}
+
+			tpindex = pindex;
+			do {
+				vm_object_madvise_freespace(tobject, advice,
+				    tpindex, 1);
+				/*
+				 * Prepare to search the next object in the
+				 * chain.
+				 */
+				backing_object = tobject->backing_object;
+				if (backing_object == NULL)
+					goto next_pindex;
+				VM_OBJECT_WLOCK(backing_object);
+				tpindex +=
+				    OFF_TO_IDX(tobject->backing_object_offset);
+				if (tobject != object)
+					VM_OBJECT_WUNLOCK(tobject);
+				tobject = backing_object;
+				if (!vm_object_advice_applies(tobject, advice))
+					goto next_pindex;
+			} while ((tm = vm_page_lookup(tobject, tpindex)) ==
+			    NULL);
+		} else {
+next_page:
+			tm = m;
+			m = TAILQ_NEXT(m, listq);
+		}
+
 		/*
 		 * If the page is not in a normal state, skip it.
 		 */
-		vm_page_lock(m);
-		if (m->hold_count != 0 || m->wire_count != 0) {
-			vm_page_unlock(m);
-			goto unlock_tobject;
+		if (tm->valid != VM_PAGE_BITS_ALL)
+			goto next_pindex;
+		vm_page_lock(tm);
+		if (tm->hold_count != 0 || tm->wire_count != 0) {
+			vm_page_unlock(tm);
+			goto next_pindex;
 		}
-		KASSERT((m->flags & PG_FICTITIOUS) == 0,
-		    ("vm_object_madvise: page %p is fictitious", m));
-		KASSERT((m->oflags & VPO_UNMANAGED) == 0,
-		    ("vm_object_madvise: page %p is not managed", m));
-		if (vm_page_busied(m)) {
-			if (advise == MADV_WILLNEED) {
+		KASSERT((tm->flags & PG_FICTITIOUS) == 0,
+		    ("vm_object_madvise: page %p is fictitious", tm));
+		KASSERT((tm->oflags & VPO_UNMANAGED) == 0,
+		    ("vm_object_madvise: page %p is not managed", tm));
+		if (vm_page_busied(tm)) {
+			if (object != tobject)
+				VM_OBJECT_WUNLOCK(tobject);
+			VM_OBJECT_WUNLOCK(object);
+			if (advice == MADV_WILLNEED) {
 				/*
 				 * Reference the page before unlocking and
 				 * sleeping so that the page daemon is less
-				 * likely to reclaim it. 
+				 * likely to reclaim it.
 				 */
-				vm_page_aflag_set(m, PGA_REFERENCED);
+				vm_page_aflag_set(tm, PGA_REFERENCED);
 			}
-			if (object != tobject)
-				VM_OBJECT_WUNLOCK(object);
-			VM_OBJECT_WUNLOCK(tobject);
-			vm_page_busy_sleep(m, "madvpo", false);
-			VM_OBJECT_WLOCK(object);
+			vm_page_busy_sleep(tm, "madvpo", false);
   			goto relookup;
 		}
-		if (advise == MADV_WILLNEED) {
-			vm_page_activate(m);
-		} else {
-			vm_page_advise(m, advise);
-		}
-		vm_page_unlock(m);
-		if (advise == MADV_FREE && tobject->type == OBJT_SWAP)
-			swap_pager_freespace(tobject, tpindex, 1);
-unlock_tobject:
+		vm_page_advise(tm, advice);
+		vm_page_unlock(tm);
+		vm_object_madvise_freespace(tobject, advice, tm->pindex, 1);
+next_pindex:
 		if (tobject != object)
 			VM_OBJECT_WUNLOCK(tobject);
-	}	
+	}
 	VM_OBJECT_WUNLOCK(object);
 }
 

Modified: stable/11/sys/vm/vm_page.c
==============================================================================
--- stable/11/sys/vm/vm_page.c	Fri Jul  7 16:58:40 2017	(r320788)
+++ stable/11/sys/vm/vm_page.c	Fri Jul  7 16:59:14 2017	(r320789)
@@ -3027,7 +3027,7 @@ vm_page_try_to_free(vm_page_t m)
 /*
  * vm_page_advise
  *
- * 	Deactivate or do nothing, as appropriate.
+ * 	Apply the specified advice to the given page.
  *
  *	The object and page must be locked.
  */
@@ -3045,8 +3045,11 @@ vm_page_advise(vm_page_t m, int advice)
 		 * would result in a page fault on a later access.
 		 */
 		vm_page_undirty(m);
-	else if (advice != MADV_DONTNEED)
+	else if (advice != MADV_DONTNEED) {
+		if (advice == MADV_WILLNEED)
+			vm_page_activate(m);
 		return;
+	}
 
 	/*
 	 * Clear any references to the page.  Otherwise, the page daemon will

From owner-svn-src-stable@freebsd.org  Fri Jul  7 21:26:28 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8BAB6DABEAF;
 Fri,  7 Jul 2017 21:26:28 +0000 (UTC)
 (envelope-from rmacklem@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 65B4A3F42;
 Fri,  7 Jul 2017 21:26:28 +0000 (UTC)
 (envelope-from rmacklem@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v67LQRZS016701;
 Fri, 7 Jul 2017 21:26:27 GMT (envelope-from rmacklem@FreeBSD.org)
Received: (from rmacklem@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v67LQRhk016700;
 Fri, 7 Jul 2017 21:26:27 GMT (envelope-from rmacklem@FreeBSD.org)
Message-Id: <201707072126.v67LQRhk016700@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to
 rmacklem@FreeBSD.org using -f
From: Rick Macklem <rmacklem@FreeBSD.org>
Date: Fri, 7 Jul 2017 21:26:27 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320794 - stable/11/sys/fs/nfsclient
X-SVN-Group: stable-11
X-SVN-Commit-Author: rmacklem
X-SVN-Commit-Paths: stable/11/sys/fs/nfsclient
X-SVN-Commit-Revision: 320794
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 07 Jul 2017 21:26:28 -0000

Author: rmacklem
Date: Fri Jul  7 21:26:27 2017
New Revision: 320794
URL: https://svnweb.freebsd.org/changeset/base/320794

Log:
  MFC: r320208
  Ensure that the credentials field of the NFSv4 client open structure is
  initialized.
  
  bdrewery@ has reported panics "newnfs_copycred: negative nfsc_ngroups".
  The only way I can see that this occurs is that the credentials field of
  the open structure gets used before being filled in.
  I am not sure quite how this happens, but for the file create case, the
  code is serialized via the vnode lock on the directory. If, somehow, a
  link to the same file gets created just after file creation, this might
  occur.
  
  This patch ensures that the credentials field is initialized to a reasonable
  set of credentials before the structure is linked into any list, so I
  this should ensure it is initialized before use.
  I am committing the patch now, since bdrewery@ notes that the panics
  are intermittent and it may be months before he knows if the patch fixes
  his problem.

Modified:
  stable/11/sys/fs/nfsclient/nfs_clstate.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/fs/nfsclient/nfs_clstate.c
==============================================================================
--- stable/11/sys/fs/nfsclient/nfs_clstate.c	Fri Jul  7 21:23:37 2017	(r320793)
+++ stable/11/sys/fs/nfsclient/nfs_clstate.c	Fri Jul  7 21:26:27 2017	(r320794)
@@ -133,7 +133,7 @@ static int nfscl_localconflict(struct nfsclclient *, u
     struct nfscllock *, u_int8_t *, struct nfscldeleg *, struct nfscllock **);
 static void nfscl_newopen(struct nfsclclient *, struct nfscldeleg *,
     struct nfsclowner **, struct nfsclowner **, struct nfsclopen **,
-    struct nfsclopen **, u_int8_t *, u_int8_t *, int, int *);
+    struct nfsclopen **, u_int8_t *, u_int8_t *, int, struct ucred *, int *);
 static int nfscl_moveopen(vnode_t , struct nfsclclient *,
     struct nfsmount *, struct nfsclopen *, struct nfsclowner *,
     struct nfscldeleg *, struct ucred *, NFSPROC_T *);
@@ -287,7 +287,7 @@ nfscl_open(vnode_t vp, u_int8_t *nfhp, int fhlen, u_in
 	 * Create a new open, as required.
 	 */
 	nfscl_newopen(clp, dp, &owp, &nowp, &op, &nop, own, nfhp, fhlen,
-	    newonep);
+	    cred, newonep);
 
 	/*
 	 * Now, check the mode on the open and return the appropriate
@@ -346,7 +346,7 @@ static void
 nfscl_newopen(struct nfsclclient *clp, struct nfscldeleg *dp,
     struct nfsclowner **owpp, struct nfsclowner **nowpp, struct nfsclopen **opp,
     struct nfsclopen **nopp, u_int8_t *own, u_int8_t *fhp, int fhlen,
-    int *newonep)
+    struct ucred *cred, int *newonep)
 {
 	struct nfsclowner *owp = *owpp, *nowp;
 	struct nfsclopen *op, *nop;
@@ -399,6 +399,8 @@ nfscl_newopen(struct nfsclclient *clp, struct nfscldel
 			nop->nfso_stateid.other[0] = 0;
 			nop->nfso_stateid.other[1] = 0;
 			nop->nfso_stateid.other[2] = 0;
+			KASSERT(cred != NULL, ("%s: cred NULL\n", __func__));
+			newnfs_copyincred(cred, &nop->nfso_cred);
 			if (dp != NULL) {
 				TAILQ_REMOVE(&clp->nfsc_deleg, dp, nfsdl_list);
 				TAILQ_INSERT_HEAD(&clp->nfsc_deleg, dp,
@@ -3970,7 +3972,7 @@ nfscl_recalldeleg(struct nfsclclient *clp, struct nfsm
 				    M_WAITOK);
 				nfscl_newopen(clp, NULL, &owp, &nowp, &op, 
 				    NULL, lowp->nfsow_owner, dp->nfsdl_fh,
-				    dp->nfsdl_fhlen, NULL);
+				    dp->nfsdl_fhlen, NULL, NULL);
 				newnfs_copycred(&dp->nfsdl_cred, cred);
 				ret = nfscl_moveopen(vp, clp, nmp, lop,
 				    owp, dp, cred, p);
@@ -4052,7 +4054,7 @@ nfscl_moveopen(vnode_t vp, struct nfsclclient *clp, st
 	    lop->nfso_fhlen - 1, M_NFSCLOPEN, M_WAITOK);
 	newone = 0;
 	nfscl_newopen(clp, NULL, &owp, NULL, &op, &nop, owp->nfsow_owner,
-	    lop->nfso_fh, lop->nfso_fhlen, &newone);
+	    lop->nfso_fh, lop->nfso_fhlen, cred, &newone);
 	ndp = dp;
 	error = nfscl_tryopen(nmp, vp, np->n_v4->n4_data, np->n_v4->n4_fhlen,
 	    lop->nfso_fh, lop->nfso_fhlen, lop->nfso_mode, op,
@@ -4061,8 +4063,6 @@ nfscl_moveopen(vnode_t vp, struct nfsclclient *clp, st
 		if (newone)
 			nfscl_freeopen(op, 0);
 	} else {
-		if (newone)
-			newnfs_copyincred(cred, &op->nfso_cred);
 		op->nfso_mode |= lop->nfso_mode;
 		op->nfso_opencnt += lop->nfso_opencnt;
 		nfscl_freeopen(lop, 1);

From owner-svn-src-stable@freebsd.org  Fri Jul  7 21:33:07 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 9A2B8DAC0F2;
 Fri,  7 Jul 2017 21:33:07 +0000 (UTC)
 (envelope-from rmacklem@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 6AF866431B;
 Fri,  7 Jul 2017 21:33:07 +0000 (UTC)
 (envelope-from rmacklem@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v67LX6PF020733;
 Fri, 7 Jul 2017 21:33:06 GMT (envelope-from rmacklem@FreeBSD.org)
Received: (from rmacklem@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v67LX64I020732;
 Fri, 7 Jul 2017 21:33:06 GMT (envelope-from rmacklem@FreeBSD.org)
Message-Id: <201707072133.v67LX64I020732@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: rmacklem set sender to
 rmacklem@FreeBSD.org using -f
From: Rick Macklem <rmacklem@FreeBSD.org>
Date: Fri, 7 Jul 2017 21:33:06 +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: r320795 - stable/10/sys/fs/nfsclient
X-SVN-Group: stable-10
X-SVN-Commit-Author: rmacklem
X-SVN-Commit-Paths: stable/10/sys/fs/nfsclient
X-SVN-Commit-Revision: 320795
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Fri, 07 Jul 2017 21:33:07 -0000

Author: rmacklem
Date: Fri Jul  7 21:33:06 2017
New Revision: 320795
URL: https://svnweb.freebsd.org/changeset/base/320795

Log:
  MFC: r320208
  Ensure that the credentials field of the NFSv4 client open structure is
  initialized.
  
  bdrewery@ has reported panics "newnfs_copycred: negative nfsc_ngroups".
  The only way I can see that this occurs is that the credentials field of
  the open structure gets used before being filled in.
  I am not sure quite how this happens, but for the file create case, the
  code is serialized via the vnode lock on the directory. If, somehow, a
  link to the same file gets created just after file creation, this might
  occur.
  
  This patch ensures that the credentials field is initialized to a reasonable
  set of credentials before the structure is linked into any list, so I
  this should ensure it is initialized before use.
  I am committing the patch now, since bdrewery@ notes that the panics
  are intermittent and it may be months before he knows if the patch fixes
  his problem.

Modified:
  stable/10/sys/fs/nfsclient/nfs_clstate.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/fs/nfsclient/nfs_clstate.c
==============================================================================
--- stable/10/sys/fs/nfsclient/nfs_clstate.c	Fri Jul  7 21:26:27 2017	(r320794)
+++ stable/10/sys/fs/nfsclient/nfs_clstate.c	Fri Jul  7 21:33:06 2017	(r320795)
@@ -133,7 +133,7 @@ static int nfscl_localconflict(struct nfsclclient *, u
     struct nfscllock *, u_int8_t *, struct nfscldeleg *, struct nfscllock **);
 static void nfscl_newopen(struct nfsclclient *, struct nfscldeleg *,
     struct nfsclowner **, struct nfsclowner **, struct nfsclopen **,
-    struct nfsclopen **, u_int8_t *, u_int8_t *, int, int *);
+    struct nfsclopen **, u_int8_t *, u_int8_t *, int, struct ucred *, int *);
 static int nfscl_moveopen(vnode_t , struct nfsclclient *,
     struct nfsmount *, struct nfsclopen *, struct nfsclowner *,
     struct nfscldeleg *, struct ucred *, NFSPROC_T *);
@@ -287,7 +287,7 @@ nfscl_open(vnode_t vp, u_int8_t *nfhp, int fhlen, u_in
 	 * Create a new open, as required.
 	 */
 	nfscl_newopen(clp, dp, &owp, &nowp, &op, &nop, own, nfhp, fhlen,
-	    newonep);
+	    cred, newonep);
 
 	/*
 	 * Now, check the mode on the open and return the appropriate
@@ -346,7 +346,7 @@ static void
 nfscl_newopen(struct nfsclclient *clp, struct nfscldeleg *dp,
     struct nfsclowner **owpp, struct nfsclowner **nowpp, struct nfsclopen **opp,
     struct nfsclopen **nopp, u_int8_t *own, u_int8_t *fhp, int fhlen,
-    int *newonep)
+    struct ucred *cred, int *newonep)
 {
 	struct nfsclowner *owp = *owpp, *nowp;
 	struct nfsclopen *op, *nop;
@@ -399,6 +399,8 @@ nfscl_newopen(struct nfsclclient *clp, struct nfscldel
 			nop->nfso_stateid.other[0] = 0;
 			nop->nfso_stateid.other[1] = 0;
 			nop->nfso_stateid.other[2] = 0;
+			KASSERT(cred != NULL, ("%s: cred NULL\n", __func__));
+			newnfs_copyincred(cred, &nop->nfso_cred);
 			if (dp != NULL) {
 				TAILQ_REMOVE(&clp->nfsc_deleg, dp, nfsdl_list);
 				TAILQ_INSERT_HEAD(&clp->nfsc_deleg, dp,
@@ -3970,7 +3972,7 @@ nfscl_recalldeleg(struct nfsclclient *clp, struct nfsm
 				    M_WAITOK);
 				nfscl_newopen(clp, NULL, &owp, &nowp, &op, 
 				    NULL, lowp->nfsow_owner, dp->nfsdl_fh,
-				    dp->nfsdl_fhlen, NULL);
+				    dp->nfsdl_fhlen, NULL, NULL);
 				newnfs_copycred(&dp->nfsdl_cred, cred);
 				ret = nfscl_moveopen(vp, clp, nmp, lop,
 				    owp, dp, cred, p);
@@ -4052,7 +4054,7 @@ nfscl_moveopen(vnode_t vp, struct nfsclclient *clp, st
 	    lop->nfso_fhlen - 1, M_NFSCLOPEN, M_WAITOK);
 	newone = 0;
 	nfscl_newopen(clp, NULL, &owp, NULL, &op, &nop, owp->nfsow_owner,
-	    lop->nfso_fh, lop->nfso_fhlen, &newone);
+	    lop->nfso_fh, lop->nfso_fhlen, cred, &newone);
 	ndp = dp;
 	error = nfscl_tryopen(nmp, vp, np->n_v4->n4_data, np->n_v4->n4_fhlen,
 	    lop->nfso_fh, lop->nfso_fhlen, lop->nfso_mode, op,
@@ -4061,8 +4063,6 @@ nfscl_moveopen(vnode_t vp, struct nfsclclient *clp, st
 		if (newone)
 			nfscl_freeopen(op, 0);
 	} else {
-		if (newone)
-			newnfs_copyincred(cred, &op->nfso_cred);
 		op->nfso_mode |= lop->nfso_mode;
 		op->nfso_opencnt += lop->nfso_opencnt;
 		nfscl_freeopen(lop, 1);

From owner-svn-src-stable@freebsd.org  Sat Jul  8 01:56:50 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3E06DDB057C;
 Sat,  8 Jul 2017 01:56:50 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 183C26E920;
 Sat,  8 Jul 2017 01:56:50 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v681unnH027203;
 Sat, 8 Jul 2017 01:56:49 GMT (envelope-from markj@FreeBSD.org)
Received: (from markj@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v681umTn027198;
 Sat, 8 Jul 2017 01:56:48 GMT (envelope-from markj@FreeBSD.org)
Message-Id: <201707080156.v681umTn027198@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: markj set sender to
 markj@FreeBSD.org using -f
From: Mark Johnston <markj@FreeBSD.org>
Date: Sat, 8 Jul 2017 01:56:48 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320797 - in stable/11/sys: kern sys vm
X-SVN-Group: stable-11
X-SVN-Commit-Author: markj
X-SVN-Commit-Paths: in stable/11/sys: kern sys vm
X-SVN-Commit-Revision: 320797
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 08 Jul 2017 01:56:50 -0000

Author: markj
Date: Sat Jul  8 01:56:48 2017
New Revision: 320797
URL: https://svnweb.freebsd.org/changeset/base/320797

Log:
  MFC r311346, r311352, r313756:
  Add an allocator for KVA for execve arguments.

Modified:
  stable/11/sys/kern/kern_exec.c
  stable/11/sys/sys/imgact.h
  stable/11/sys/vm/vm_init.c
  stable/11/sys/vm/vm_kern.c
  stable/11/sys/vm/vm_kern.h
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/kern/kern_exec.c
==============================================================================
--- stable/11/sys/kern/kern_exec.c	Fri Jul  7 22:00:39 2017	(r320796)
+++ stable/11/sys/kern/kern_exec.c	Sat Jul  8 01:56:48 2017	(r320797)
@@ -50,6 +50,11 @@ __FBSDID("$FreeBSD$");
 #include <sys/imgact_elf.h>
 #include <sys/wait.h>
 #include <sys/malloc.h>
+#include <sys/mman.h>
+#include <sys/mount.h>
+#include <sys/mutex.h>
+#include <sys/namei.h>
+#include <sys/pioctl.h>
 #include <sys/priv.h>
 #include <sys/proc.h>
 #include <sys/pioctl.h>
@@ -63,6 +68,10 @@ __FBSDID("$FreeBSD$");
 #include <sys/syscallsubr.h>
 #include <sys/sysent.h>
 #include <sys/shm.h>
+#include <sys/signalvar.h>
+#include <sys/smp.h>
+#include <sys/stat.h>
+#include <sys/syscallsubr.h>
 #include <sys/sysctl.h>
 #include <sys/vnode.h>
 #include <sys/stat.h>
@@ -1315,17 +1324,124 @@ err_exit:
 	return (error);
 }
 
+struct exec_args_kva {
+	vm_offset_t addr;
+	u_int gen;
+	SLIST_ENTRY(exec_args_kva) next;
+};
+
+static DPCPU_DEFINE(struct exec_args_kva *, exec_args_kva);
+
+static SLIST_HEAD(, exec_args_kva) exec_args_kva_freelist;
+static struct mtx exec_args_kva_mtx;
+static u_int exec_args_gen;
+
+static void
+exec_prealloc_args_kva(void *arg __unused)
+{
+	struct exec_args_kva *argkva;
+	u_int i;
+
+	SLIST_INIT(&exec_args_kva_freelist);
+	mtx_init(&exec_args_kva_mtx, "exec args kva", NULL, MTX_DEF);
+	for (i = 0; i < exec_map_entries; i++) {
+		argkva = malloc(sizeof(*argkva), M_PARGS, M_WAITOK);
+		argkva->addr = kmap_alloc_wait(exec_map, exec_map_entry_size);
+		argkva->gen = exec_args_gen;
+		SLIST_INSERT_HEAD(&exec_args_kva_freelist, argkva, next);
+	}
+}
+SYSINIT(exec_args_kva, SI_SUB_EXEC, SI_ORDER_ANY, exec_prealloc_args_kva, NULL);
+
+static vm_offset_t
+exec_alloc_args_kva(void **cookie)
+{
+	struct exec_args_kva *argkva;
+
+	argkva = (void *)atomic_readandclear_ptr(
+	    (uintptr_t *)DPCPU_PTR(exec_args_kva));
+	if (argkva == NULL) {
+		mtx_lock(&exec_args_kva_mtx);
+		while ((argkva = SLIST_FIRST(&exec_args_kva_freelist)) == NULL)
+			(void)mtx_sleep(&exec_args_kva_freelist,
+			    &exec_args_kva_mtx, 0, "execkva", 0);
+		SLIST_REMOVE_HEAD(&exec_args_kva_freelist, next);
+		mtx_unlock(&exec_args_kva_mtx);
+	}
+	*(struct exec_args_kva **)cookie = argkva;
+	return (argkva->addr);
+}
+
+static void
+exec_release_args_kva(struct exec_args_kva *argkva, u_int gen)
+{
+	vm_offset_t base;
+
+	base = argkva->addr;
+	if (argkva->gen != gen) {
+		vm_map_madvise(exec_map, base, base + exec_map_entry_size,
+		    MADV_FREE);
+		argkva->gen = gen;
+	}
+	if (!atomic_cmpset_ptr((uintptr_t *)DPCPU_PTR(exec_args_kva),
+	    (uintptr_t)NULL, (uintptr_t)argkva)) {
+		mtx_lock(&exec_args_kva_mtx);
+		SLIST_INSERT_HEAD(&exec_args_kva_freelist, argkva, next);
+		wakeup_one(&exec_args_kva_freelist);
+		mtx_unlock(&exec_args_kva_mtx);
+	}
+}
+
+static void
+exec_free_args_kva(void *cookie)
+{
+
+	exec_release_args_kva(cookie, exec_args_gen);
+}
+
+static void
+exec_args_kva_lowmem(void *arg __unused)
+{
+	SLIST_HEAD(, exec_args_kva) head;
+	struct exec_args_kva *argkva;
+	u_int gen;
+	int i;
+
+	gen = atomic_fetchadd_int(&exec_args_gen, 1) + 1;
+
+	/*
+	 * Force an madvise of each KVA range. Any currently allocated ranges
+	 * will have MADV_FREE applied once they are freed.
+	 */
+	SLIST_INIT(&head);
+	mtx_lock(&exec_args_kva_mtx);
+	SLIST_SWAP(&head, &exec_args_kva_freelist, exec_args_kva);
+	mtx_unlock(&exec_args_kva_mtx);
+	while ((argkva = SLIST_FIRST(&head)) != NULL) {
+		SLIST_REMOVE_HEAD(&head, next);
+		exec_release_args_kva(argkva, gen);
+	}
+
+	CPU_FOREACH(i) {
+		argkva = (void *)atomic_readandclear_ptr(
+		    (uintptr_t *)DPCPU_ID_PTR(i, exec_args_kva));
+		if (argkva != NULL)
+			exec_release_args_kva(argkva, gen);
+	}
+}
+EVENTHANDLER_DEFINE(vm_lowmem, exec_args_kva_lowmem, NULL,
+    EVENTHANDLER_PRI_ANY);
+
 /*
  * Allocate temporary demand-paged, zero-filled memory for the file name,
- * argument, and environment strings.  Returns zero if the allocation succeeds
- * and ENOMEM otherwise.
+ * argument, and environment strings.
  */
 int
 exec_alloc_args(struct image_args *args)
 {
 
-	args->buf = (char *)kmap_alloc_wait(exec_map, PATH_MAX + ARG_MAX);
-	return (args->buf != NULL ? 0 : ENOMEM);
+	args->buf = (char *)exec_alloc_args_kva(&args->bufkva);
+	return (0);
 }
 
 void
@@ -1333,8 +1449,7 @@ exec_free_args(struct image_args *args)
 {
 
 	if (args->buf != NULL) {
-		kmap_free_wakeup(exec_map, (vm_offset_t)args->buf,
-		    PATH_MAX + ARG_MAX);
+		exec_free_args_kva(args->bufkva);
 		args->buf = NULL;
 	}
 	if (args->fname_buf != NULL) {

Modified: stable/11/sys/sys/imgact.h
==============================================================================
--- stable/11/sys/sys/imgact.h	Fri Jul  7 22:00:39 2017	(r320796)
+++ stable/11/sys/sys/imgact.h	Sat Jul  8 01:56:48 2017	(r320797)
@@ -42,6 +42,7 @@ struct ucred;
 
 struct image_args {
 	char *buf;		/* pointer to string buffer */
+	void *bufkva;		/* cookie for string buffer KVA */
 	char *begin_argv;	/* beginning of argv in buf */
 	char *begin_envv;	/* beginning of envv in buf */
 	char *endp;		/* current `end' pointer of arg & env strings */

Modified: stable/11/sys/vm/vm_init.c
==============================================================================
--- stable/11/sys/vm/vm_init.c	Fri Jul  7 22:00:39 2017	(r320796)
+++ stable/11/sys/vm/vm_init.c	Sat Jul  8 01:56:48 2017	(r320797)
@@ -91,10 +91,6 @@ __FBSDID("$FreeBSD$");
 
 long physmem;
 
-static int exec_map_entries = 16;
-SYSCTL_INT(_vm, OID_AUTO, exec_map_entries, CTLFLAG_RDTUN, &exec_map_entries, 0,
-    "Maximum number of simultaneous execs");
-
 /*
  * System initialization
  */
@@ -261,10 +257,19 @@ again:
 		panic("Clean map calculation incorrect");
 
 	/*
- 	 * Allocate the pageable submaps.
+	 * Allocate the pageable submaps.  We may cache an exec map entry per
+	 * CPU, so we therefore need to reserve space for at least ncpu+1
+	 * entries to avoid deadlock.  The exec map is also used by some image
+	 * activators, so we leave a fixed number of pages for their use.
 	 */
+#ifdef __LP64__
+	exec_map_entries = 8 * mp_ncpus;
+#else
+	exec_map_entries = 2 * mp_ncpus + 4;
+#endif
+	exec_map_entry_size = round_page(PATH_MAX + ARG_MAX);
 	exec_map = kmem_suballoc(kernel_map, &minaddr, &maxaddr,
-	    exec_map_entries * round_page(PATH_MAX + ARG_MAX), FALSE);
+	    exec_map_entries * exec_map_entry_size + 64 * PAGE_SIZE, FALSE);
 	pipe_map = kmem_suballoc(kernel_map, &minaddr, &maxaddr, maxpipekva,
 	    FALSE);
 }

Modified: stable/11/sys/vm/vm_kern.c
==============================================================================
--- stable/11/sys/vm/vm_kern.c	Fri Jul  7 22:00:39 2017	(r320796)
+++ stable/11/sys/vm/vm_kern.c	Sat Jul  8 01:56:48 2017	(r320797)
@@ -97,6 +97,9 @@ CTASSERT((ZERO_REGION_SIZE & PAGE_MASK) == 0);
 /* NB: Used by kernel debuggers. */
 const u_long vm_maxuser_address = VM_MAXUSER_ADDRESS;
 
+u_int exec_map_entry_size;
+u_int exec_map_entries;
+
 SYSCTL_ULONG(_vm, OID_AUTO, min_kernel_address, CTLFLAG_RD,
     SYSCTL_NULL_ULONG_PTR, VM_MIN_KERNEL_ADDRESS, "Min kernel address");
 

Modified: stable/11/sys/vm/vm_kern.h
==============================================================================
--- stable/11/sys/vm/vm_kern.h	Fri Jul  7 22:00:39 2017	(r320796)
+++ stable/11/sys/vm/vm_kern.h	Sat Jul  8 01:56:48 2017	(r320797)
@@ -61,7 +61,7 @@
  */
 
 #ifndef _VM_VM_KERN_H_
-#define _VM_VM_KERN_H_ 1
+#define	_VM_VM_KERN_H_
 
 /* Kernel memory management definitions. */
 extern vm_map_t kernel_map;
@@ -74,5 +74,7 @@ extern struct vmem *transient_arena;
 extern struct vmem *memguard_arena;
 extern vm_offset_t swapbkva;
 extern u_long vm_kmem_size;
+extern u_int exec_map_entries;
+extern u_int exec_map_entry_size;
 
-#endif				/* _VM_VM_KERN_H_ */
+#endif /* _VM_VM_KERN_H_ */

From owner-svn-src-stable@freebsd.org  Sat Jul  8 02:02:51 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1D4A3DB0971;
 Sat,  8 Jul 2017 02:02:51 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id DED0C6EEA9;
 Sat,  8 Jul 2017 02:02:50 +0000 (UTC)
 (envelope-from markj@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v6822oeg031492;
 Sat, 8 Jul 2017 02:02:50 GMT (envelope-from markj@FreeBSD.org)
Received: (from markj@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v6822ock031491;
 Sat, 8 Jul 2017 02:02:50 GMT (envelope-from markj@FreeBSD.org)
Message-Id: <201707080202.v6822ock031491@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: markj set sender to
 markj@FreeBSD.org using -f
From: Mark Johnston <markj@FreeBSD.org>
Date: Sat, 8 Jul 2017 02:02:50 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320798 - stable/11/sys/kern
X-SVN-Group: stable-11
X-SVN-Commit-Author: markj
X-SVN-Commit-Paths: stable/11/sys/kern
X-SVN-Commit-Revision: 320798
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 08 Jul 2017 02:02:51 -0000

Author: markj
Date: Sat Jul  8 02:02:49 2017
New Revision: 320798
URL: https://svnweb.freebsd.org/changeset/base/320798

Log:
  Direct commit to fix a mismerge in r320797.

Modified:
  stable/11/sys/kern/kern_exec.c

Modified: stable/11/sys/kern/kern_exec.c
==============================================================================
--- stable/11/sys/kern/kern_exec.c	Sat Jul  8 01:56:48 2017	(r320797)
+++ stable/11/sys/kern/kern_exec.c	Sat Jul  8 02:02:49 2017	(r320798)
@@ -51,10 +51,6 @@ __FBSDID("$FreeBSD$");
 #include <sys/wait.h>
 #include <sys/malloc.h>
 #include <sys/mman.h>
-#include <sys/mount.h>
-#include <sys/mutex.h>
-#include <sys/namei.h>
-#include <sys/pioctl.h>
 #include <sys/priv.h>
 #include <sys/proc.h>
 #include <sys/pioctl.h>
@@ -68,10 +64,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/syscallsubr.h>
 #include <sys/sysent.h>
 #include <sys/shm.h>
-#include <sys/signalvar.h>
 #include <sys/smp.h>
-#include <sys/stat.h>
-#include <sys/syscallsubr.h>
 #include <sys/sysctl.h>
 #include <sys/vnode.h>
 #include <sys/stat.h>

From owner-svn-src-stable@freebsd.org  Sat Jul  8 04:30:13 2017
Return-Path: <owner-svn-src-stable@freebsd.org>
Delivered-To: svn-src-stable@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org
 [IPv6:2001:1900:2254:206a::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5B701D9000B;
 Sat,  8 Jul 2017 04:30:13 +0000 (UTC)
 (envelope-from delphij@FreeBSD.org)
Received: from repo.freebsd.org (repo.freebsd.org
 [IPv6:2610:1c1:1:6068::e6a:0])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (Client did not present a certificate)
 by mx1.freebsd.org (Postfix) with ESMTPS id 240A77382A;
 Sat,  8 Jul 2017 04:30:13 +0000 (UTC)
 (envelope-from delphij@FreeBSD.org)
Received: from repo.freebsd.org ([127.0.1.37])
 by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v684UCmp090876;
 Sat, 8 Jul 2017 04:30:12 GMT (envelope-from delphij@FreeBSD.org)
Received: (from delphij@localhost)
 by repo.freebsd.org (8.15.2/8.15.2/Submit) id v684UCgL090875;
 Sat, 8 Jul 2017 04:30:12 GMT (envelope-from delphij@FreeBSD.org)
Message-Id: <201707080430.v684UCgL090875@repo.freebsd.org>
X-Authentication-Warning: repo.freebsd.org: delphij set sender to
 delphij@FreeBSD.org using -f
From: Xin LI <delphij@FreeBSD.org>
Date: Sat, 8 Jul 2017 04:30:12 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject: svn commit: r320799 - stable/11/libexec/rtld-elf
X-SVN-Group: stable-11
X-SVN-Commit-Author: delphij
X-SVN-Commit-Paths: stable/11/libexec/rtld-elf
X-SVN-Commit-Revision: 320799
X-SVN-Commit-Repository: base
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-BeenThere: svn-src-stable@freebsd.org
X-Mailman-Version: 2.1.23
Precedence: list
List-Id: SVN commit messages for all the -stable branches of the src tree
 <svn-src-stable.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/svn-src-stable>, 
 <mailto:svn-src-stable-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-stable/>
List-Post: <mailto:svn-src-stable@freebsd.org>
List-Help: <mailto:svn-src-stable-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/svn-src-stable>,
 <mailto:svn-src-stable-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Sat, 08 Jul 2017 04:30:13 -0000

Author: delphij
Date: Sat Jul  8 04:30:11 2017
New Revision: 320799
URL: https://svnweb.freebsd.org/changeset/base/320799

Log:
  MFC r320665:
  
  In open_binary_fd: when using buffer size for strl* and snprintf,
  always use >= instead of > to avoid truncation.
  
  releng/11.1 candidate.

Modified:
  stable/11/libexec/rtld-elf/rtld.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/libexec/rtld-elf/rtld.c
==============================================================================
--- stable/11/libexec/rtld-elf/rtld.c	Sat Jul  8 02:02:49 2017	(r320798)
+++ stable/11/libexec/rtld-elf/rtld.c	Sat Jul  8 04:30:11 2017	(r320799)
@@ -5295,14 +5295,14 @@ open_binary_fd(const char *argv0, bool search_in_path)
 		fd = -1;
 		errno = ENOENT;
 		while ((pe = strsep(&pathenv, ":")) != NULL) {
-			if (strlcpy(binpath, pe, sizeof(binpath)) >
+			if (strlcpy(binpath, pe, sizeof(binpath)) >=
 			    sizeof(binpath))
 				continue;
 			if (binpath[0] != '\0' &&
-			    strlcat(binpath, "/", sizeof(binpath)) >
+			    strlcat(binpath, "/", sizeof(binpath)) >=
 			    sizeof(binpath))
 				continue;
-			if (strlcat(binpath, argv0, sizeof(binpath)) >
+			if (strlcat(binpath, argv0, sizeof(binpath)) >=
 			    sizeof(binpath))
 				continue;
 			fd = open(binpath, O_RDONLY | O_CLOEXEC | O_VERIFY);