From nobody Sat Aug 12 19:11:53 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RNVdj47TDz4qR7R;
	Sat, 12 Aug 2023 19:11:53 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RNVdj3Yf0z3fj4;
	Sat, 12 Aug 2023 19:11:53 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1691867513;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=X6uyt9fLXGEjA74pZBFpDO/o/9EyicYxTFSwn1oIfXM=;
	b=HQfT7d0cVGR1v3ltWxyKKWnUKzHrJ9+npwlve7XjcpynbeUoK+wa4YOJkAVm9PIrxbN7+A
	kJUFQqoIalguUGvPN5VHzc473qovxSAy4J4OT8pA832Gaw8RRHG8cmzkbwNte5qD9+n/1k
	183ZbTLiqTajkNRjh9WWuBGNJ0XcJ3SYR/AadyFHpqBTNZQiNvX0rWNya0Bmp3Wk8Q98lk
	5o8hIyL0pgzWMKx9k8QU90CBmijFNnQrbRjelqAwy8gzRxztdaYbAJ8wvEcUM5Xg4ZMtGK
	Lbo2WMji/s44cMQB7q0C0jP3M8dbrmsHAVb8jgABLHATSKbRhpBxF/sGNw2WCQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1691867513;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=X6uyt9fLXGEjA74pZBFpDO/o/9EyicYxTFSwn1oIfXM=;
	b=mgInKbY6mKx9T5ER9S6MGuGosBK7/BPiruaVxiLPcPO8wFmD8ywgM8ZnIgIPISXgBdb10E
	mkqKEe8XXvKt54cfevSMbHgVYvt7v1pFXWI59ndH8nwpe9wAyjWzgOFX3ILvF+ePKwufi5
	VA4+qnfgzIMo6RbVNPL0krg98rKF8dmkjbeGhcY4qoQV7DkifDcfD+STuMBI6NeTyWSvD8
	SZlEKIYre+1wtNdzLuc5KeRhlIWoDhYgiisDHmgJOMqI9W4PBANHEoX7pB+0NQwfgKWrwN
	XFnPFgZMfpQDBdR/ge3PK/Itmz4SyGeB7Xn9oVzx4DNq9SgWSLZJR2FhxAvAIA==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1691867513; a=rsa-sha256; cv=none;
	b=xECIPgkoUSDb6guJQl7CspK4lazaLNb1vpYgcGuwDZobihGu47NJkCVABafN8FvKyyG8bJ
	0wrm+GWZrAdqgMZ/7lBcS267F01OHNeOhhLZPtRn7qbZClDD+cEDg04T9rCzRCWVf7X6OU
	o7AFgJZqeHweC6mb45yhMXaTrpvpLdWYyXeW9UZOBSO8iAnyjGn7dNa0W1QMTjZEpHMJ76
	fo47s8URmqRhbB9M1/uKqrzCVSc32OQEieFjAgLdrLmrd0Zp+HGoWWwmS7rWS9O+8ZwOx6
	fWnCLil+VIpI9nlvx9Zsfs24tG2KvkpwiMS0IJDzitQ0ZL5BAiLzZ9h7IsB4OA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RNVdj2KhdzXtg;
	Sat, 12 Aug 2023 19:11:53 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37CJBrZI001501;
	Sat, 12 Aug 2023 19:11:53 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37CJBrah001498;
	Sat, 12 Aug 2023 19:11:53 GMT
	(envelope-from git)
Date: Sat, 12 Aug 2023 19:11:53 GMT
Message-Id: <202308121911.37CJBrah001498@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Kirk McKusick <mckusick@FreeBSD.org>
Subject: git: db25f7b14097 - stable/13 - Improve dumpfs(8) error
  messages when a cylinder group read fails.
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: mckusick
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: db25f7b14097522eb0177cace29a38c1abe4c7dc
Auto-Submitted: auto-generated

The branch stable/13 has been updated by mckusick:

URL: https://cgit.FreeBSD.org/src/commit/?id=db25f7b14097522eb0177cace29a38c1abe4c7dc

commit db25f7b14097522eb0177cace29a38c1abe4c7dc
Author:     Kirk McKusick <mckusick@FreeBSD.org>
AuthorDate: 2023-08-06 06:09:18 +0000
Commit:     Kirk McKusick <mckusick@FreeBSD.org>
CommitDate: 2023-08-12 19:11:42 +0000

    Improve dumpfs(8) error messages when a cylinder group read fails.
    
    Sponsored-by: The FreeBSD Foundation
    (cherry picked from commit 02b7bf07c5d2ec578fc044b60229c6e951f26087)
---
 sbin/dumpfs/dumpfs.c | 61 +++++++++++++++++++++++++++++-----------------------
 1 file changed, 34 insertions(+), 27 deletions(-)

diff --git a/sbin/dumpfs/dumpfs.c b/sbin/dumpfs/dumpfs.c
index f93047b8803f..7f3e7bb3e910 100644
--- a/sbin/dumpfs/dumpfs.c
+++ b/sbin/dumpfs/dumpfs.c
@@ -74,6 +74,7 @@ static const char rcsid[] =
 #include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 #include <unistd.h>
 
 #define	afs	disk.d_fs
@@ -89,7 +90,7 @@ static void	dumpfreespacecg(int);
 static int	marshal(const char *);
 static void	pbits(void *, int);
 static void	pblklist(void *, int, off_t, int);
-static void	ufserr(const char *);
+static const char *ufserr(void);
 static void	usage(void) __dead2;
 
 int
@@ -131,7 +132,7 @@ main(int argc, char *argv[])
 
 	while ((name = *argv++) != NULL) {
 		if (ufs_disk_fillout(&disk, name) == -1) {
-			ufserr(name);
+			printf("\n%s: %s\n", name, ufserr());
 			eval |= 1;
 			continue;
 		}
@@ -162,7 +163,7 @@ dumpfs(const char *name, int dosb)
 	time_t fstime, fsmtime;
 	int64_t fssize;
 	int32_t fsflags;
-	int i;
+	int i, ret;
 
 	switch (disk.d_ufs) {
 	case 2:
@@ -187,7 +188,8 @@ dumpfs(const char *name, int dosb)
 		    afs.fs_ncg, (intmax_t)fssize, (intmax_t)afs.fs_dsize);
 		break;
 	default:
-		goto err;
+		printf("Unknown filesystem type %d\n", disk.d_ufs);
+		return (1);
 	}
 	printf("bsize\t%d\tshift\t%d\tmask\t0x%08x\n",
 	    afs.fs_bsize, afs.fs_bshift, afs.fs_bmask);
@@ -242,7 +244,8 @@ dumpfs(const char *name, int dosb)
 		    afs.fs_old_nsect, afs.fs_old_npsect, afs.fs_old_spc);
 		break;
 	default:
-		goto err;
+		printf("Unknown filesystem type %d\n", disk.d_ufs);
+		return (1);
 	}
 	printf("old_cpg\t%d\tsize_cg\t%zu\tCGSIZE\t%zu\n",
 	    afs.fs_old_cpg, sizeof(struct cg), CGSIZE(&afs));
@@ -310,9 +313,6 @@ dumpfs(const char *name, int dosb)
 		afs.fs_volname, (uintmax_t)afs.fs_swuid,
 		(uintmax_t)afs.fs_providersize);
 	printf("\ncs[].cs_(nbfree,ndir,nifree,nffree):\n\t");
-	afs.fs_csp = calloc(1, afs.fs_cssize);
-	if (bread(&disk, fsbtodb(&afs, afs.fs_csaddr), afs.fs_csp, afs.fs_cssize) == -1)
-		goto err;
 	for (i = 0; i < afs.fs_ncg; i++) {
 		struct csum *cs = &afs.fs_cs(&afs, i);
 		if (i && i % 4 == 0)
@@ -331,14 +331,15 @@ dumpfs(const char *name, int dosb)
 	}
 	if (dosb)
 		return (0);
+	ret = 0;
 	while ((i = cgread(&disk)) != 0) {
-		if (i == -1 || dumpcg())
-			goto err;
+		if (i == -1) {
+			ret = 1;
+			printf("\ncg %d: %s\n", disk.d_lcg, ufserr());
+		} else if (dumpcg())
+			ret = 1;
 	}
-	return (0);
-
-err:	ufserr(name);
-	return (1);
+	return (ret);
 }
 
 static int
@@ -404,17 +405,22 @@ dumpcg(void)
 static int
 dumpfreespace(const char *name, int fflag)
 {
-	int i;
+	intmax_t startblkno;
+	int i, ret;
 
+	ret = 0;
 	while ((i = cgread(&disk)) != 0) {
-		if (i == -1)
-			goto err;
-		dumpfreespacecg(fflag);
+		if (i != -1) {
+			dumpfreespacecg(fflag);
+		} else {
+			startblkno = disk.d_lcg * afs.fs_fpg;
+			printf("\nBlocks %jd-%jd of cg %d skipped: %s\n",
+			    startblkno, startblkno + afs.fs_fpg - 1,
+			    disk.d_lcg, ufserr());
+			ret = 1;
+		}
 	}
-	return (0);
-err:
-	ufserr(name);
-	return (1);
+	return (ret);
 }
 
 static void
@@ -523,13 +529,14 @@ pblklist(void *vp, int max, off_t offset, int fflag)
 	}
 }
 
-static void
-ufserr(const char *name)
+static const char *
+ufserr(void)
 {
 	if (disk.d_error != NULL)
-		warnx("%s: %s", name, disk.d_error);
-	else if (errno)
-		warn("%s", name);
+		return(disk.d_error);
+	if (errno)
+		return (strerror(errno));
+	return ("unknown error");
 }
 
 static void

From nobody Sun Aug 13 04:37:54 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RNlBp3c9Jz4mSLx;
	Sun, 13 Aug 2023 04:37:54 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RNlBp2vqZz3YFP;
	Sun, 13 Aug 2023 04:37:54 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1691901474;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=zZa6kpdEXXNTDwhRl/XrzTLMn6ZU7Vdvq2C7TTQpWZY=;
	b=EjRsQmQqVP6Eqv7s8Oztk0C3oVm3luRhCMyhA6PgPBrzy79mUu3TrLoepGBSH4uh3nJr/A
	UudDlwe5TxEFJyF2eomxY+jTY+oksBAh9s3C6nBNs5/++UVX1YM+qqmlDFVxUfwc9HS2a6
	4A/zqoKrVRpY3974lixhOvUUzdmfHMaocES0LgVC4hCWhVDKYcbS+QAnQOF+Ilo4rAlcKU
	2UR8fEqPdR6t3K6kmjvtQReCgfkM3WER9Ai+8FU29LuuKScU8NAXoCHcGLAdZnaBcL1yhV
	jcMnwaObi1SP0x7qXI0alwKxAA3eZnlmCP3JOba+iSzTtsSoHn07/cbzcu02GA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1691901474;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=zZa6kpdEXXNTDwhRl/XrzTLMn6ZU7Vdvq2C7TTQpWZY=;
	b=R4vobahg6vAND5C1bJ4R0zv2aReizSWziG50y4SZFgIS5PZhPqk/Vos1Akqh0ehu4tVdET
	kvtsRBD8Muz8gPl0OvW068iU5LcfgmTNgyYnIclXfOM13zYjKXrgyNxXZX59OZ75bTpZxt
	wKBh7KMjImk6bKMIt8Gfta8Lux8zF9IqxRWy2qjjWM4VkuDHm705svnm03vCxMICARQtmo
	Do4GTrU0qxrONH8+/49+HR2vW4Ug630CBpB9UiPO9TZq10xQj+3kj74reIdkYGN1lFM4uH
	08yEF60ein2Y24VuR0OeCf4HIup/uRG/m/XfvzJw+MXwZj2iZS8f65lGmXjsIQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1691901474; a=rsa-sha256; cv=none;
	b=khPIdjE2cY0BVUTssbCaJB8o153JI6p/9eblq84+ehbzLJpbg1TH2iDpwydy52ek7LYadG
	pAHVxKH5VIMJIgCd+LHVQFoiPHrZ2P0pRWAk3Pa9SVuVbQLhomHc2FlVZihWoNHGQ4mZUB
	KO4AQ3fpNN7cK9LU7HQBN2+r3ENYX5w0p4ONgC1sVylc+CbM3iWXaJ67l4G+Hbi43pIt7K
	F5RtKf7y3lVIvgvrygngPXoxIruk6K6GBoyISGf8LGDwLwRe13I1SSIZFopKB0C1nPmdQ/
	uud47wYubwDq4++yAh/jTCSCtOZrO6++E5BWD5ZdRq+d1qijskXI9INY2UtTyA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RNlBp1jlxzp7f;
	Sun, 13 Aug 2023 04:37:54 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37D4bsSa035874;
	Sun, 13 Aug 2023 04:37:54 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37D4bs0X035871;
	Sun, 13 Aug 2023 04:37:54 GMT
	(envelope-from git)
Date: Sun, 13 Aug 2023 04:37:54 GMT
Message-Id: <202308130437.37D4bs0X035871@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Konstantin Belousov <kib@FreeBSD.org>
Subject: git: 79757c0a33ca - stable/13 - Update comment describing
  struct vm_map
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: kib
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 79757c0a33ca0da0f079c7250b820c81520649d9
Auto-Submitted: auto-generated

The branch stable/13 has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=79757c0a33ca0da0f079c7250b820c81520649d9

commit 79757c0a33ca0da0f079c7250b820c81520649d9
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2023-08-10 05:01:39 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2023-08-13 04:35:41 +0000

    Update comment describing struct vm_map
    
    (cherry picked from commit 9da33e8d10736c255bf63d408837c6942bd28e04)
---
 sys/vm/vm_map.h | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/sys/vm/vm_map.h b/sys/vm/vm_map.h
index 7854a91f36a9..21f9b48e9b4e 100644
--- a/sys/vm/vm_map.h
+++ b/sys/vm/vm_map.h
@@ -179,12 +179,11 @@ vm_map_entry_system_wired_count(vm_map_entry_t entry)
 
 /*
  *	A map is a set of map entries.  These map entries are
- *	organized as a threaded binary search tree.  Both structures
- *	are ordered based upon the start and end addresses contained
+ *	organized as a threaded binary search tree.  The tree is
+ *	ordered based upon the start and end addresses contained
  *	within each map entry.  The largest gap between an entry in a
  *	subtree and one of its neighbors is saved in the max_free
- *	field, and that field is updated when the tree is
- *	restructured.
+ *	field, and that field is updated when the tree is restructured.
  *
  *	Sleator and Tarjan's top-down splay algorithm is employed to
  *	control height imbalance in the binary search tree.

From nobody Sun Aug 13 04:37:55 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RNlBq3f2Dz4mSP5;
	Sun, 13 Aug 2023 04:37:55 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RNlBq2yWfz3YCY;
	Sun, 13 Aug 2023 04:37:55 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1691901475;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=M9JfjTf5CgKSI9u9d3TUZk4LiUE4CSDrshf0lBn0rSQ=;
	b=rD/C6E6u/dNf1wCTRJeQqSlc/BilasNSOH4iTJmTnyi5rGISQha9bqMe2ApkM4sCys7ps2
	cNN+BK9VXPggL+6Ige6KDsoscEhZfsj3TrLPUD1s4nbA23FOKe1Bqx7ypaxNE/xJKW153D
	munSDWF2eigU/th5/cqYwNiGlh7QgbOJHsHs4hMYRNJ4qGiVjkVmFCXP+BZtprbzsdjfa7
	x6OiuPG6htmkdghRRKEaJ8XRIsUL2jlM4hVeJewG0piv22gUd8ITdAWFlJHmNrbNJCKZmP
	tXAYXuTYmYNKFhG44ifrzZuoZOZyiLeX15qgrCfvrzPPbZk5LSHtRcm2YR2KYg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1691901475;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=M9JfjTf5CgKSI9u9d3TUZk4LiUE4CSDrshf0lBn0rSQ=;
	b=rxkwbKMtTa5a5M7Zo4Dk3bVgVarQPYzUaY679RMR42KXHP6BaoNjeNLSgsuUb8v4UGVbpQ
	U84DD5U+TeZ9m+AUIS50iSySYojZ+QncvOKwpOf/fXhjlMKhxUDOiLVahLsOkB8aB2hkSD
	ZEigrq8tDjLB5JQ6InFSx1poxbb0iSsVXfwolASjL4vHZLKnFAv1ZqCjAmnXaJbxqM2FFY
	48owdR/ZGeos6s2UibQ/BBw+lBfx7mLOrV580EHYoicMh0hV8K0d+bx+AcVqkZ84XZ3v+8
	Enk1RDyouGC/AQLgyz01RiLnPcB524ovGnuJAvZBqXTkK3rSzj9D568SX8ce8Q==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1691901475; a=rsa-sha256; cv=none;
	b=ieve2oDYA79H5U6pP7qKSaS8dMxobF/pqIDRGcr0C6vVoOwmOKxSJ23LwWrwD5Wpv7IClt
	1y9LyVeNnq117EDtMYtL7WKsGnIAAwXxyYnglIBIIIHhU6cwaNBm15HksoqWBEEVQcXTFw
	aTuGCj08OebNnZFiiRkqk/hDJl4AiYrqYf3LG/ceJJdhZ3DB/jbRkaaPwQ+4LCg2SkeV1I
	zAYtLdOLmX9NB8fcl0KnSc5FOZ1f3v9ZrjbRb03oTeOXA/FFt3qcyu1KGEgSmWNlpHYgMr
	cI1DtwVuyfNLRIDqwutLCJ4x06BqmHK6uS9tQ3zE4BHib1QgQ+LdbF4Kb7BVFg==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RNlBq1s9KzncB;
	Sun, 13 Aug 2023 04:37:55 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37D4btgI035927;
	Sun, 13 Aug 2023 04:37:55 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37D4btvW035924;
	Sun, 13 Aug 2023 04:37:55 GMT
	(envelope-from git)
Date: Sun, 13 Aug 2023 04:37:55 GMT
Message-Id: <202308130437.37D4btvW035924@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Konstantin Belousov <kib@FreeBSD.org>
Subject: git: 4e94219d5582 - stable/13 - sys/cdefs.h: fix for use
  __restrict in C++
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: kib
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 4e94219d55824b19693287052edd8a1da76e3541
Auto-Submitted: auto-generated

The branch stable/13 has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=4e94219d55824b19693287052edd8a1da76e3541

commit 4e94219d55824b19693287052edd8a1da76e3541
Author:     Sebastian Huber <sebastian.huber@embedded-brains.de>
AuthorDate: 2023-08-06 13:27:27 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2023-08-13 04:35:41 +0000

    sys/cdefs.h: fix for use __restrict in C++
    
    PR:     272723
    
    (cherry picked from commit 15876d9fd83fdfa7d541ea747eb40faeade975d2)
---
 sys/sys/cdefs.h | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/sys/sys/cdefs.h b/sys/sys/cdefs.h
index 28e464122e58..3fde24f0b9e9 100644
--- a/sys/sys/cdefs.h
+++ b/sys/sys/cdefs.h
@@ -404,17 +404,15 @@
 #endif
 
 /*
- * GCC 2.95 provides `__restrict' as an extension to C90 to support the
- * C99-specific `restrict' type qualifier.  We happen to use `__restrict' as
- * a way to define the `restrict' type qualifier without disturbing older
- * software that is unaware of C99 keywords.
+ * We use `__restrict' as a way to define the `restrict' type qualifier
+ * without disturbing older software that is unaware of C99 keywords.
+ * GCC also provides `__restrict' as an extension to support C99-style
+ * restricted pointers in other language modes.
  */
-#if !(__GNUC__ == 2 && __GNUC_MINOR__ == 95)
-#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901
-#define	__restrict
-#else
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901
 #define	__restrict	restrict
-#endif
+#elif !__GNUC_PREREQ__(2, 95)
+#define	__restrict
 #endif
 
 /*

From nobody Sun Aug 13 04:37:56 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RNlBs0T6tz4mSP7;
	Sun, 13 Aug 2023 04:37:57 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RNlBr44bHz3YTZ;
	Sun, 13 Aug 2023 04:37:56 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1691901476;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=hU3sv8Ea8PamUnLAvVkq3yhizqFyh3eVcVg7X6re4Uc=;
	b=b4kIA+MGObAvkWE6x0TG4DXpEUIxsy9JiCVYxFUX6TRmsnmvBkeJPK5OraS+xFTxR0sazM
	SuXok91WvVySFl7r3mid+bM6Ht0UK5Vtknv+Bd8NH8Z1GFKLmPJ2lHhPcgWl4Xdkm9p6as
	3ahcKFND5I9+WSGerQb73Jup0/5JHpn1GlEaPepPNJTvvul6GLJcRYhSKa5bNq0MI3Ybkr
	QRzlM3paBqHcJA+QQwIYGxf5zVe8o0/hwkF/eCHy+Vt0GiVnQ9rmm6N4Vo6d92l/R/vtXm
	2076OpJggHE4FEeqN3bbbaaT6dwacVhI0O83j85NTVsB2UHF0r/bDrG1PZeXsA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1691901476;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=hU3sv8Ea8PamUnLAvVkq3yhizqFyh3eVcVg7X6re4Uc=;
	b=Tkyzwrv6MlVWzpIvAgC0eBtzZD4r551J2QKkjhHdRrM7GkWxL7vYTawkLYkXcdRwrQCp/Y
	kcBe9tCOLZFx71zgdrALekJ43ERp27AaUhEUY2+vA5GIXQTmbCVfY5r6SB3nBQoX4yBZ3y
	N8WEujCNkiiSfsApFn/eWLVf+YC+lNCk08ppTXRrhDRdhgKFvhrTQ4CvxUp3iNXmKn9qin
	4FtPcD7AmLrE4YvaemSyyzAyG/pB7ws1ze6N2sWPPHQkg/ERaCsZtmXgWKmOg0u760DHtc
	li24gEj5z3zozTuCN5XAZxBMapV/JN0dqi1qADZ9/AIloGKQ1TRhEu81ib6xJA==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1691901476; a=rsa-sha256; cv=none;
	b=quaOhGNH9VJUT3mQx1H6e2q/5qXWDhKR2geX9WQZz//KtOg7E4PlGSiBMnG4HoQzYXgTeA
	XTp6/ouNIqCCrqbxN/Vva+Qy9E/TeLqNBUggkl+FycHfJjlFp5ml35z/e9o0jAyQdcQud8
	0rcNZxFWqjmpuR6HTOjgDg1CJVTm/oqt07pqN8OS6Nc3omgk06JdVKS+jIj+fvzEaoZyyx
	3MU0KZb0FGhYsb3BRkz5Z+FhhPKzJhnOWP5QtJtewroLkwmvwE3EY7M14Apo5yjXxZ8Ba1
	Q1xsmzxRjoCB5V9Fe1WFe3kPFfl7S6NTAsc/vn6okEQlhh5aghkJxi3K/MHGYg==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RNlBr2vhTzpM4;
	Sun, 13 Aug 2023 04:37:56 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37D4bu4d035978;
	Sun, 13 Aug 2023 04:37:56 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37D4buaH035975;
	Sun, 13 Aug 2023 04:37:56 GMT
	(envelope-from git)
Date: Sun, 13 Aug 2023 04:37:56 GMT
Message-Id: <202308130437.37D4buaH035975@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Konstantin Belousov <kib@FreeBSD.org>
Subject: git: b53ecd5cf63b - stable/13 - libc dlfcn.c: make
  dl_iterate_phdr() from libc more useful
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: kib
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: b53ecd5cf63b90a72436642056733b686d881eb1
Auto-Submitted: auto-generated

The branch stable/13 has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=b53ecd5cf63b90a72436642056733b686d881eb1

commit b53ecd5cf63b90a72436642056733b686d881eb1
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2023-08-09 05:07:05 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2023-08-13 04:35:41 +0000

    libc dlfcn.c: make dl_iterate_phdr() from libc more useful
    
    PR:     272992
    
    (cherry picked from commit 21a52f99440c9bec7679f3b0c5c9d888901c3694)
---
 lib/libc/gen/dlfcn.c | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/lib/libc/gen/dlfcn.c b/lib/libc/gen/dlfcn.c
index 61984e2fe86c..f1ee86ec1934 100644
--- a/lib/libc/gen/dlfcn.c
+++ b/lib/libc/gen/dlfcn.c
@@ -169,7 +169,9 @@ _rtld_thread_init(void *li __unused)
 #ifndef IN_LIBDL
 static pthread_once_t dl_phdr_info_once = PTHREAD_ONCE_INIT;
 static struct dl_phdr_info phdr_info;
+#ifndef PIC
 static mutex_t dl_phdr_info_lock = MUTEX_INITIALIZER;
+#endif
 
 static void
 dl_init_phdr_info(void)
@@ -208,7 +210,16 @@ int
 dl_iterate_phdr(int (*callback)(struct dl_phdr_info *, size_t, void *) __unused,
     void *data __unused)
 {
-#ifndef IN_LIBDL
+#if defined IN_LIBDL
+	return (0);
+#elif defined PIC
+	int (*r)(int (*)(struct dl_phdr_info *, size_t, void *), void *);
+
+	r = dlsym(RTLD_DEFAULT, "dl_iterate_phdr");
+	if (r == NULL)
+		return (0);
+	return (r(callback, data));
+#else
 	tls_index ti;
 	int ret;
 
@@ -223,8 +234,6 @@ dl_iterate_phdr(int (*callback)(struct dl_phdr_info *, size_t, void *) __unused,
 	ret = callback(&phdr_info, sizeof(phdr_info), data);
 	mutex_unlock(&dl_phdr_info_lock);
 	return (ret);
-#else
-	return (0);
 #endif
 }
 

From nobody Sun Aug 13 08:42:57 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RNrdY2WYrz4qDtj;
	Sun, 13 Aug 2023 08:42:57 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RNrdY262tz4ShF;
	Sun, 13 Aug 2023 08:42:57 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1691916177;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=pfYklILFDdwvaKcTz//Z823APliB6Rtdnb0NJlfTOsE=;
	b=UV90RGJvg/KZ0n9jd32ec0k0qX8rX5D0LhlsaUfE1NNwOP8kYnt3KQuRWhKUtVxl50EmJq
	WZ9aYFpcCmpL5Dug9NzrKuTdDgUcNhQO3xS9NEDNQRW/pgjyU6avDae7d+GOEWQqACWq+H
	Y68SdQjs2PDBE3aNmwu7qTpnraFtrmwymxREwo5Bhp9hTZBXfU7iTADpJrbPOioiVKO3gr
	wVw1AQVTUaEDb9Qbgl4lpcStjBRsg8kxpldm22LBKjU0v5VBJYgkjn6TvJd5OSWRYkhabg
	JyAgEfLNiw8O5OVQ6u6iKw/ButJyyYlKpCBE/KzePdCv5CeHcDLBYjGBoi8tfg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1691916177;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=pfYklILFDdwvaKcTz//Z823APliB6Rtdnb0NJlfTOsE=;
	b=jFEhDa7fVDUxUm8VDgiDhzVl7dTosc7/YlSKW1LC1muI95/fyDdar0TN5xEe2dYQYW6b0E
	V76goHUxATFgAGeuj2JCuBEzNu+WtRDhSnFSc/v0gIHxJc59PKsdUAaVoMtVC72aPIhQFB
	+HcEh4J8QCcbKpRMc2vT2qZ+3z09sdckiKvJ1nXIyxuZf24NlmZfsAPo5mqzyABluxmKG1
	ALutZzfYp6HAcvLrIsEiBc2OT8VURZX8sYzhkVItAucNAbWdx8YQqBun8TAS5irFQYiUfv
	8P60y+jYRq1SEwFu6yogujezAfG3GaED8nwv/A8zqt4TlXSYsb0MfzFeNkuy+w==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1691916177; a=rsa-sha256; cv=none;
	b=xo9o1o5zRw+U7VvcB6HA1QQcILevKe3NBo9QVd5zS5UIm77yyd3WFrZQdkJfTMyieYjFpU
	PMrgXxWmxY6Rt806Q7ZQByzqSldlR4UET0yUQmI5tNiSnN6my/xgRzckLG2G9eG6EeZ7Wi
	0aNfgoq05s1qzjwTb0pBrSu8PKi2933mUmJUIrnpi18ORLvzx6LtHXv+XT6x3ecSo0k5SZ
	zpDM1A2zwSa3DI6ADUUXDUdIDniePzVeA54BmH3RscBp1gMFXnpSRfePftG81GfVOFvB+7
	b7ZmSPg9VTJafq/LMLG2V7vC+zeGezyoKMn4fCTAuv9JV9EjBq+PosgwV71PoQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RNrdY190jzvlJ;
	Sun, 13 Aug 2023 08:42:57 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37D8gvu5051321;
	Sun, 13 Aug 2023 08:42:57 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37D8gvfD051319;
	Sun, 13 Aug 2023 08:42:57 GMT
	(envelope-from git)
Date: Sun, 13 Aug 2023 08:42:57 GMT
Message-Id: <202308130842.37D8gvfD051319@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Dimitry Andric <dim@FreeBSD.org>
Subject: git: e0a003552650 - stable/13 - Clean up libm use of the
  __ieee754_ prefix
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: dim
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: e0a00355265097ac916398bdc58cbe94fa2fbc10
Auto-Submitted: auto-generated

The branch stable/13 has been updated by dim:

URL: https://cgit.FreeBSD.org/src/commit/?id=e0a00355265097ac916398bdc58cbe94fa2fbc10

commit e0a00355265097ac916398bdc58cbe94fa2fbc10
Author:     Steve Kargl <kargl@FreeBSD.org>
AuthorDate: 2023-08-03 19:51:17 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2023-08-13 08:38:17 +0000

    Clean up libm use of the __ieee754_ prefix
    
    This removes the __ieee754_ prefix from a number of the math functions.
    msun/src/math_private.h contains the statement that
    
      /*
       * ieee style elementary functions
       *
       * We rename functions here to improve other sources' diffability
       * against fdlibm.
       */
       #define        __ieee754_sqrt  sqrt
       ...
    
    Here, fdlibm refers to https://netlib.org/fdlibm. It is seen from
    https://netlib.org/fdlibm/readme that this prefix was used to
    differentiate between different standards:
    
       Wrapper functions will twist the result of the ieee754
       function to comply to the standard specified by the value
       of _LIB_VERSION
          if _LIB_VERSION = _IEEE_, return the ieee754 result;
          if _LIB_VERSION = _SVID_, return SVID result;
          if _LIB_VERSION = _XOPEN_, return XOPEN result;
          if _LIB_VERSION = _POSIX_, return POSIX/ANSI result.
       (These are macros, see fdlibm.h for their definition.)
    
    AFAICT, FreeBSD has never supported these wrappers. In addition, as C99,
    principally the long double, functions were added to libm, this
    convention was not maintained. Given that only 148 of 324 files under
    lib/msun contain a "Copyright (C) 1993 by Sun Microsystems" statement,
    the removal of the __ieee754_ prefix provides consistency across all
    source files.
    
    The last time someone compared lib/msun to fdlibm appears to be
    
      commit 3f70824172feb82ea3dcdb3866b54fe0eb7cd890
      Author: David Schultz <das@FreeBSD.org>
      Date:   Fri Feb 4 18:26:06 2005 +0000
    
      Reduce diffs against vendor source (Sun fdlibm 5.3).
    
    The most recent fdlibm RCS string that appears in a Sun Microsystem
    copyrighted file is date "95/01/18". With Oracle Corporation's
    acquisition of Sun Microsystems in 2009, it is unlikely that fdlibm will
    ever be updated. A search for fdlibm at https://opensource.oracle.com/
    yields no hits.
    
    Finally, OpenBSD removed the use of this prefix over 21 years ago. pSee
    revision 1.6 of OpenBSD's math_private.h.
    
    Note: this does not drop the __ieee754_ prefix from the trigonometric
    argument reduction functions, e.g., __ieee754_rem_pio2. These functions
    are internal to the libm and exported through Symbol.map; and thus,
    reserved for the implementation.
    
    PR:             272783
    MFC after:      1 week
    
    (cherry picked from commit 99843eb89954dac76afe7cf18d962eddfe7a7987)
---
 lib/msun/src/e_acos.c         |  4 +--
 lib/msun/src/e_acosf.c        |  2 +-
 lib/msun/src/e_acosh.c        |  8 +++---
 lib/msun/src/e_acoshf.c       |  8 +++---
 lib/msun/src/e_asin.c         |  4 +--
 lib/msun/src/e_asinf.c        |  2 +-
 lib/msun/src/e_atan2.c        |  4 +--
 lib/msun/src/e_atan2f.c       |  2 +-
 lib/msun/src/e_atanh.c        |  4 +--
 lib/msun/src/e_atanhf.c       |  2 +-
 lib/msun/src/e_cosh.c         |  8 +++---
 lib/msun/src/e_coshf.c        |  6 ++---
 lib/msun/src/e_exp.c          |  4 +--
 lib/msun/src/e_expf.c         |  2 +-
 lib/msun/src/e_fmod.c         |  4 +--
 lib/msun/src/e_fmodf.c        |  4 +--
 lib/msun/src/e_gamma.c        |  8 +++---
 lib/msun/src/e_gamma_r.c      |  8 +++---
 lib/msun/src/e_gammaf.c       |  8 +++---
 lib/msun/src/e_gammaf_r.c     |  8 +++---
 lib/msun/src/e_hypot.c        |  4 +--
 lib/msun/src/e_hypotf.c       |  6 ++---
 lib/msun/src/e_j0.c           | 10 +++----
 lib/msun/src/e_j0f.c          |  8 +++---
 lib/msun/src/e_j1.c           |  8 +++---
 lib/msun/src/e_j1f.c          |  6 ++---
 lib/msun/src/e_jn.c           | 28 ++++++++++----------
 lib/msun/src/e_jnf.c          | 26 +++++++++---------
 lib/msun/src/e_lgamma.c       |  8 +++---
 lib/msun/src/e_lgamma_r.c     | 16 ++++++------
 lib/msun/src/e_lgammaf.c      |  8 +++---
 lib/msun/src/e_lgammaf_r.c    | 14 +++++-----
 lib/msun/src/e_log.c          |  4 +--
 lib/msun/src/e_log10.c        |  2 +-
 lib/msun/src/e_log10f.c       |  2 +-
 lib/msun/src/e_log2.c         |  2 +-
 lib/msun/src/e_log2f.c        |  2 +-
 lib/msun/src/e_logf.c         |  2 +-
 lib/msun/src/e_pow.c          |  4 +--
 lib/msun/src/e_powf.c         |  4 +--
 lib/msun/src/e_remainder.c    |  6 ++---
 lib/msun/src/e_remainderf.c   |  4 +--
 lib/msun/src/e_scalb.c        |  6 ++---
 lib/msun/src/e_scalbf.c       |  4 +--
 lib/msun/src/e_sinh.c         |  6 ++---
 lib/msun/src/e_sinhf.c        |  4 +--
 lib/msun/src/e_sqrt.c         |  6 ++---
 lib/msun/src/e_sqrtf.c        |  4 +--
 lib/msun/src/math_private.h   | 61 -------------------------------------------
 lib/msun/src/s_asinh.c        |  6 ++---
 lib/msun/src/s_asinhf.c       |  6 ++---
 lib/msun/src/s_erf.c          |  4 +--
 lib/msun/src/s_significand.c  |  2 +-
 lib/msun/src/s_significandf.c |  2 +-
 54 files changed, 162 insertions(+), 223 deletions(-)

diff --git a/lib/msun/src/e_acos.c b/lib/msun/src/e_acos.c
index 1f6dca5bb5cb..6623355baa7c 100644
--- a/lib/msun/src/e_acos.c
+++ b/lib/msun/src/e_acos.c
@@ -14,7 +14,7 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_acos(x)
+/* acos(x)
  * Method :                  
  *	acos(x)  = pi/2 - asin(x)
  *	acos(-x) = pi/2 + asin(x)
@@ -62,7 +62,7 @@ qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */
 qS4 =  7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */
 
 double
-__ieee754_acos(double x)
+acos(double x)
 {
 	double z,p,q,r,w,s,c,df;
 	int32_t hx,ix;
diff --git a/lib/msun/src/e_acosf.c b/lib/msun/src/e_acosf.c
index c9f62cc40f5c..64f1c5afb182 100644
--- a/lib/msun/src/e_acosf.c
+++ b/lib/msun/src/e_acosf.c
@@ -32,7 +32,7 @@ pS2 = -8.6563630030e-03,
 qS1 = -7.0662963390e-01;
 
 float
-__ieee754_acosf(float x)
+acosf(float x)
 {
 	float z,p,q,r,w,s,c,df;
 	int32_t hx,ix;
diff --git a/lib/msun/src/e_acosh.c b/lib/msun/src/e_acosh.c
index 358c8bd6a636..7947995820d0 100644
--- a/lib/msun/src/e_acosh.c
+++ b/lib/msun/src/e_acosh.c
@@ -15,7 +15,7 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_acosh(x)
+/* acosh(x)
  * Method :
  *	Based on 
  *		acosh(x) = log [ x + sqrt(x*x-1) ]
@@ -39,7 +39,7 @@ one	= 1.0,
 ln2	= 6.93147180559945286227e-01;  /* 0x3FE62E42, 0xFEFA39EF */
 
 double
-__ieee754_acosh(double x)
+acosh(double x)
 {
 	double t;
 	int32_t hx;
@@ -51,12 +51,12 @@ __ieee754_acosh(double x)
 	    if(hx >=0x7ff00000) {	/* x is inf of NaN */
 	        return x+x;
 	    } else 
-		return __ieee754_log(x)+ln2;	/* acosh(huge)=log(2x) */
+		return log(x)+ln2;	/* acosh(huge)=log(2x) */
 	} else if(((hx-0x3ff00000)|lx)==0) {
 	    return 0.0;			/* acosh(1) = 0 */
 	} else if (hx > 0x40000000) {	/* 2**28 > x > 2 */
 	    t=x*x;
-	    return __ieee754_log(2.0*x-one/(x+sqrt(t-one)));
+	    return log(2.0*x-one/(x+sqrt(t-one)));
 	} else {			/* 1<x<2 */
 	    t = x-one;
 	    return log1p(t+sqrt(2.0*t+t*t));
diff --git a/lib/msun/src/e_acoshf.c b/lib/msun/src/e_acoshf.c
index f529b20d1219..781ccf2a1151 100644
--- a/lib/msun/src/e_acoshf.c
+++ b/lib/msun/src/e_acoshf.c
@@ -24,7 +24,7 @@ one	= 1.0,
 ln2	= 6.9314718246e-01;  /* 0x3f317218 */
 
 float
-__ieee754_acoshf(float x)
+acoshf(float x)
 {
 	float t;
 	int32_t hx;
@@ -35,14 +35,14 @@ __ieee754_acoshf(float x)
 	    if(hx >=0x7f800000) {	/* x is inf of NaN */
 	        return x+x;
 	    } else
-		return __ieee754_logf(x)+ln2;	/* acosh(huge)=log(2x) */
+		return logf(x)+ln2;	/* acosh(huge)=log(2x) */
 	} else if (hx==0x3f800000) {
 	    return 0.0;			/* acosh(1) = 0 */
 	} else if (hx > 0x40000000) {	/* 2**28 > x > 2 */
 	    t=x*x;
-	    return __ieee754_logf((float)2.0*x-one/(x+__ieee754_sqrtf(t-one)));
+	    return logf((float)2.0*x-one/(x+sqrtf(t-one)));
 	} else {			/* 1<x<2 */
 	    t = x-one;
-	    return log1pf(t+__ieee754_sqrtf((float)2.0*t+t*t));
+	    return log1pf(t+sqrtf((float)2.0*t+t*t));
 	}
 }
diff --git a/lib/msun/src/e_asin.c b/lib/msun/src/e_asin.c
index 931b270498e6..fa180ab5701b 100644
--- a/lib/msun/src/e_asin.c
+++ b/lib/msun/src/e_asin.c
@@ -14,7 +14,7 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_asin(x)
+/* asin(x)
  * Method :                  
  *	Since  asin(x) = x + x^3/6 + x^5*3/40 + x^7*15/336 + ...
  *	we approximate asin(x) on [0,0.5] by
@@ -68,7 +68,7 @@ qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */
 qS4 =  7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */
 
 double
-__ieee754_asin(double x)
+asin(double x)
 {
 	double t=0.0,w,p,q,c,r,s;
 	int32_t hx,ix;
diff --git a/lib/msun/src/e_asinf.c b/lib/msun/src/e_asinf.c
index deaabb6a326e..db4b9b6034f7 100644
--- a/lib/msun/src/e_asinf.c
+++ b/lib/msun/src/e_asinf.c
@@ -32,7 +32,7 @@ static const double
 pio2 =  1.570796326794896558e+00;
 
 float
-__ieee754_asinf(float x)
+asinf(float x)
 {
 	double s;
 	float t,w,p,q;
diff --git a/lib/msun/src/e_atan2.c b/lib/msun/src/e_atan2.c
index 231a1611ee12..0b2e72102edb 100644
--- a/lib/msun/src/e_atan2.c
+++ b/lib/msun/src/e_atan2.c
@@ -15,7 +15,7 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_atan2(y,x)
+/* atan2(y,x)
  * Method :
  *	1. Reduce y to positive by atan2(y,x)=-atan2(-y,x).
  *	2. Reduce x to positive by (if x and y are unexceptional): 
@@ -58,7 +58,7 @@ static volatile double
 pi_lo   = 1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */
 
 double
-__ieee754_atan2(double y, double x)
+atan2(double y, double x)
 {
 	double z;
 	int32_t k,m,hx,hy,ix,iy;
diff --git a/lib/msun/src/e_atan2f.c b/lib/msun/src/e_atan2f.c
index 346d76746c05..4ea001df974a 100644
--- a/lib/msun/src/e_atan2f.c
+++ b/lib/msun/src/e_atan2f.c
@@ -30,7 +30,7 @@ static volatile float
 pi_lo   = -8.7422776573e-08; /* 0xb3bbbd2e */
 
 float
-__ieee754_atan2f(float y, float x)
+atan2f(float y, float x)
 {
 	float z;
 	int32_t k,m,hx,hy,ix,iy;
diff --git a/lib/msun/src/e_atanh.c b/lib/msun/src/e_atanh.c
index 422ff2698067..41f3bcaca26d 100644
--- a/lib/msun/src/e_atanh.c
+++ b/lib/msun/src/e_atanh.c
@@ -15,7 +15,7 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_atanh(x)
+/* atanh(x)
  * Method :
  *    1.Reduced x to positive by atanh(-x) = -atanh(x)
  *    2.For x>=0.5
@@ -42,7 +42,7 @@ static const double one = 1.0, huge = 1e300;
 static const double zero = 0.0;
 
 double
-__ieee754_atanh(double x)
+atanh(double x)
 {
 	double t;
 	int32_t hx,ix;
diff --git a/lib/msun/src/e_atanhf.c b/lib/msun/src/e_atanhf.c
index 4bd6a8f9b9c6..46643beb5ab0 100644
--- a/lib/msun/src/e_atanhf.c
+++ b/lib/msun/src/e_atanhf.c
@@ -24,7 +24,7 @@ static const float one = 1.0, huge = 1e30;
 static const float zero = 0.0;
 
 float
-__ieee754_atanhf(float x)
+atanhf(float x)
 {
 	float t;
 	int32_t hx,ix;
diff --git a/lib/msun/src/e_cosh.c b/lib/msun/src/e_cosh.c
index 246b5fbec860..071663eb4e15 100644
--- a/lib/msun/src/e_cosh.c
+++ b/lib/msun/src/e_cosh.c
@@ -14,7 +14,7 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_cosh(x)
+/* cosh(x)
  * Method : 
  * mathematically cosh(x) if defined to be (exp(x)+exp(-x))/2
  *	1. Replace x by |x| (cosh(x) = cosh(-x)). 
@@ -43,7 +43,7 @@ __FBSDID("$FreeBSD$");
 static const double one = 1.0, half=0.5, huge = 1.0e300;
 
 double
-__ieee754_cosh(double x)
+cosh(double x)
 {
 	double t,w;
 	int32_t ix;
@@ -65,12 +65,12 @@ __ieee754_cosh(double x)
 
     /* |x| in [0.5*ln2,22], return (exp(|x|)+1/exp(|x|)/2; */
 	if (ix < 0x40360000) {
-		t = __ieee754_exp(fabs(x));
+		t = exp(fabs(x));
 		return half*t+half/t;
 	}
 
     /* |x| in [22, log(maxdouble)] return half*exp(|x|) */
-	if (ix < 0x40862E42)  return half*__ieee754_exp(fabs(x));
+	if (ix < 0x40862E42)  return half*exp(fabs(x));
 
     /* |x| in [log(maxdouble), overflowthresold] */
 	if (ix<=0x408633CE)
diff --git a/lib/msun/src/e_coshf.c b/lib/msun/src/e_coshf.c
index 95a0d6ee68ba..1673315d7b31 100644
--- a/lib/msun/src/e_coshf.c
+++ b/lib/msun/src/e_coshf.c
@@ -22,7 +22,7 @@ __FBSDID("$FreeBSD$");
 static const float one = 1.0, half=0.5, huge = 1.0e30;
 
 float
-__ieee754_coshf(float x)
+coshf(float x)
 {
 	float t,w;
 	int32_t ix;
@@ -43,12 +43,12 @@ __ieee754_coshf(float x)
 
     /* |x| in [0.5*ln2,9], return (exp(|x|)+1/exp(|x|))/2; */
 	if (ix < 0x41100000) {
-		t = __ieee754_expf(fabsf(x));
+		t = expf(fabsf(x));
 		return half*t+half/t;
 	}
 
     /* |x| in [9, log(maxfloat)] return half*exp(|x|) */
-	if (ix < 0x42b17217)  return half*__ieee754_expf(fabsf(x));
+	if (ix < 0x42b17217)  return half*expf(fabsf(x));
 
     /* |x| in [log(maxfloat), overflowthresold] */
 	if (ix<=0x42b2d4fc)
diff --git a/lib/msun/src/e_exp.c b/lib/msun/src/e_exp.c
index dd04d8e839d5..59da39217391 100644
--- a/lib/msun/src/e_exp.c
+++ b/lib/msun/src/e_exp.c
@@ -13,7 +13,7 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_exp(x)
+/* exp(x)
  * Returns the exponential of x.
  *
  * Method
@@ -102,7 +102,7 @@ huge	= 1.0e+300,
 twom1000= 9.33263618503218878990e-302;     /* 2**-1000=0x01700000,0*/
 
 double
-__ieee754_exp(double x)	/* default IEEE double exp */
+exp(double x)	/* default IEEE double exp */
 {
 	double y,hi=0.0,lo=0.0,c,t,twopk;
 	int32_t k=0,xsb;
diff --git a/lib/msun/src/e_expf.c b/lib/msun/src/e_expf.c
index 4903d55c5ab3..620d341be274 100644
--- a/lib/msun/src/e_expf.c
+++ b/lib/msun/src/e_expf.c
@@ -43,7 +43,7 @@ huge	= 1.0e+30,
 twom100 = 7.8886090522e-31;      /* 2**-100=0x0d800000 */
 
 float
-__ieee754_expf(float x)
+expf(float x)
 {
 	float y,hi=0.0,lo=0.0,c,t,twopk;
 	int32_t k=0,xsb;
diff --git a/lib/msun/src/e_fmod.c b/lib/msun/src/e_fmod.c
index 3a28dc4ff1f3..6d5f5332cb85 100644
--- a/lib/msun/src/e_fmod.c
+++ b/lib/msun/src/e_fmod.c
@@ -15,7 +15,7 @@
 __FBSDID("$FreeBSD$");
 
 /* 
- * __ieee754_fmod(x,y)
+ * fmod(x,y)
  * Return x mod y in exact arithmetic
  * Method: shift and subtract
  */
@@ -28,7 +28,7 @@ __FBSDID("$FreeBSD$");
 static const double one = 1.0, Zero[] = {0.0, -0.0,};
 
 double
-__ieee754_fmod(double x, double y)
+fmod(double x, double y)
 {
 	int32_t n,hx,hy,hz,ix,iy,sx,i;
 	u_int32_t lx,ly,lz;
diff --git a/lib/msun/src/e_fmodf.c b/lib/msun/src/e_fmodf.c
index 1b6bf36f9cba..3cef9213c1e5 100644
--- a/lib/msun/src/e_fmodf.c
+++ b/lib/msun/src/e_fmodf.c
@@ -17,7 +17,7 @@
 __FBSDID("$FreeBSD$");
 
 /*
- * __ieee754_fmodf(x,y)
+ * fmodf(x,y)
  * Return x mod y in exact arithmetic
  * Method: shift and subtract
  */
@@ -28,7 +28,7 @@ __FBSDID("$FreeBSD$");
 static const float one = 1.0, Zero[] = {0.0, -0.0,};
 
 float
-__ieee754_fmodf(float x, float y)
+fmodf(float x, float y)
 {
 	int32_t n,hx,hy,hz,ix,iy,sx,i;
 
diff --git a/lib/msun/src/e_gamma.c b/lib/msun/src/e_gamma.c
index 28fb5ccba6d6..a13f3e22c08b 100644
--- a/lib/msun/src/e_gamma.c
+++ b/lib/msun/src/e_gamma.c
@@ -15,10 +15,10 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_gamma(x)
+/* gamma(x)
  * Return the logarithm of the Gamma function of x.
  *
- * Method: call __ieee754_gamma_r
+ * Method: call gamma_r
  */
 
 #include "math.h"
@@ -27,7 +27,7 @@ __FBSDID("$FreeBSD$");
 extern int signgam;
 
 double
-__ieee754_gamma(double x)
+gamma(double x)
 {
-	return __ieee754_gamma_r(x,&signgam);
+	return gamma_r(x,&signgam);
 }
diff --git a/lib/msun/src/e_gamma_r.c b/lib/msun/src/e_gamma_r.c
index 2c423dce8558..2d996cabca20 100644
--- a/lib/msun/src/e_gamma_r.c
+++ b/lib/msun/src/e_gamma_r.c
@@ -15,18 +15,18 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_gamma_r(x, signgamp)
+/* gamma_r(x, signgamp)
  * Reentrant version of the logarithm of the Gamma function 
  * with user provide pointer for the sign of Gamma(x). 
  *
- * Method: See __ieee754_lgamma_r
+ * Method: See lgamma_r
  */
 
 #include "math.h"
 #include "math_private.h"
 
 double
-__ieee754_gamma_r(double x, int *signgamp)
+gamma_r(double x, int *signgamp)
 {
-	return __ieee754_lgamma_r(x,signgamp);
+	return lgamma_r(x,signgamp);
 }
diff --git a/lib/msun/src/e_gammaf.c b/lib/msun/src/e_gammaf.c
index c1b1668df975..563c1482282d 100644
--- a/lib/msun/src/e_gammaf.c
+++ b/lib/msun/src/e_gammaf.c
@@ -16,10 +16,10 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_gammaf(x)
+/* gammaf(x)
  * Return the logarithm of the Gamma function of x.
  *
- * Method: call __ieee754_gammaf_r
+ * Method: call gammaf_r
  */
 
 #include "math.h"
@@ -28,7 +28,7 @@ __FBSDID("$FreeBSD$");
 extern int signgam;
 
 float
-__ieee754_gammaf(float x)
+gammaf(float x)
 {
-	return __ieee754_gammaf_r(x,&signgam);
+	return gammaf_r(x,&signgam);
 }
diff --git a/lib/msun/src/e_gammaf_r.c b/lib/msun/src/e_gammaf_r.c
index 9d7831b5501b..d7fc2db1e96c 100644
--- a/lib/msun/src/e_gammaf_r.c
+++ b/lib/msun/src/e_gammaf_r.c
@@ -16,18 +16,18 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_gammaf_r(x, signgamp)
+/* gammaf_r(x, signgamp)
  * Reentrant version of the logarithm of the Gamma function
  * with user provide pointer for the sign of Gamma(x).
  *
- * Method: See __ieee754_lgammaf_r
+ * Method: See lgammaf_r
  */
 
 #include "math.h"
 #include "math_private.h"
 
 float
-__ieee754_gammaf_r(float x, int *signgamp)
+gammaf_r(float x, int *signgamp)
 {
-	return __ieee754_lgammaf_r(x,signgamp);
+	return lgammaf_r(x,signgamp);
 }
diff --git a/lib/msun/src/e_hypot.c b/lib/msun/src/e_hypot.c
index 7c455bb6652f..8e3f9317b3a6 100644
--- a/lib/msun/src/e_hypot.c
+++ b/lib/msun/src/e_hypot.c
@@ -14,7 +14,7 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_hypot(x,y)
+/* hypot(x,y)
  *
  * Method :                  
  *	If (assume round-to-nearest) z=x*x+y*y 
@@ -52,7 +52,7 @@ __FBSDID("$FreeBSD$");
 #include "math_private.h"
 
 double
-__ieee754_hypot(double x, double y)
+hypot(double x, double y)
 {
 	double a,b,t1,t2,y1,y2,w;
 	int32_t j,k,ha,hb;
diff --git a/lib/msun/src/e_hypotf.c b/lib/msun/src/e_hypotf.c
index 00610268fafb..a3b8c866697b 100644
--- a/lib/msun/src/e_hypotf.c
+++ b/lib/msun/src/e_hypotf.c
@@ -20,7 +20,7 @@ __FBSDID("$FreeBSD$");
 #include "math_private.h"
 
 float
-__ieee754_hypotf(float x, float y)
+hypotf(float x, float y)
 {
 	float a,b,t1,t2,y1,y2,w;
 	int32_t j,k,ha,hb;
@@ -67,14 +67,14 @@ __ieee754_hypotf(float x, float y)
 	if (w>b) {
 	    SET_FLOAT_WORD(t1,ha&0xfffff000);
 	    t2 = a-t1;
-	    w  = __ieee754_sqrtf(t1*t1-(b*(-b)-t2*(a+t1)));
+	    w  = sqrtf(t1*t1-(b*(-b)-t2*(a+t1)));
 	} else {
 	    a  = a+a;
 	    SET_FLOAT_WORD(y1,hb&0xfffff000);
 	    y2 = b - y1;
 	    SET_FLOAT_WORD(t1,(ha+0x00800000)&0xfffff000);
 	    t2 = a - t1;
-	    w  = __ieee754_sqrtf(t1*y1-(w*(-w)-(t1*y2+t2*b)));
+	    w  = sqrtf(t1*y1-(w*(-w)-(t1*y2+t2*b)));
 	}
 	if(k!=0) {
 	    SET_FLOAT_WORD(t1,(127+k)<<23);
diff --git a/lib/msun/src/e_j0.c b/lib/msun/src/e_j0.c
index 5d862b6f834d..c43ab6996b4a 100644
--- a/lib/msun/src/e_j0.c
+++ b/lib/msun/src/e_j0.c
@@ -13,7 +13,7 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_j0(x), __ieee754_y0(x)
+/* j0(x), y0(x)
  * Bessel function of the first and second kinds of order zero.
  * Method -- j0(x):
  *	1. For tiny x, we use j0(x) = 1 - x^2/4 + x^4/64 - ...
@@ -83,7 +83,7 @@ S04  =  1.16614003333790000205e-09; /* 0x3E1408BC, 0xF4745D8F */
 static const double zero = 0, qrtr = 0.25;
 
 double
-__ieee754_j0(double x)
+j0(double x)
 {
 	double z, s,c,ss,cc,r,u,v;
 	int32_t hx,ix;
@@ -143,7 +143,7 @@ v03  =  2.59150851840457805467e-07, /* 0x3E91642D, 0x7FF202FD */
 v04  =  4.41110311332675467403e-10; /* 0x3DFE5018, 0x3BD6D9EF */
 
 double
-__ieee754_y0(double x)
+y0(double x)
 {
 	double z, s,c,ss,cc,u,v;
 	int32_t hx,ix,lx;
@@ -192,12 +192,12 @@ __ieee754_y0(double x)
                 return z;
 	}
 	if(ix<=0x3e400000) {	/* x < 2**-27 */
-	    return(u00 + tpi*__ieee754_log(x));
+	    return(u00 + tpi*log(x));
 	}
 	z = x*x;
 	u = u00+z*(u01+z*(u02+z*(u03+z*(u04+z*(u05+z*u06)))));
 	v = one+z*(v01+z*(v02+z*(v03+z*v04)));
-	return(u/v + tpi*(__ieee754_j0(x)*__ieee754_log(x)));
+	return(u/v + tpi*(j0(x)*log(x)));
 }
 
 /* The asymptotic expansions of pzero is
diff --git a/lib/msun/src/e_j0f.c b/lib/msun/src/e_j0f.c
index 1c5ef4da1b49..290be04fc900 100644
--- a/lib/msun/src/e_j0f.c
+++ b/lib/msun/src/e_j0f.c
@@ -45,7 +45,7 @@ S04  =  1.1661400734e-09; /* 0x30a045e8 */
 static const float zero = 0, qrtr = 0.25;
 
 float
-__ieee754_j0f(float x)
+j0f(float x)
 {
 	float z, s,c,ss,cc,r,u,v;
 	int32_t hx,ix;
@@ -105,7 +105,7 @@ v03  =  2.5915085189e-07, /* 0x348b216c */
 v04  =  4.4111031494e-10; /* 0x2ff280c2 */
 
 float
-__ieee754_y0f(float x)
+y0f(float x)
 {
 	float z, s,c,ss,cc,u,v;
 	int32_t hx,ix;
@@ -147,12 +147,12 @@ __ieee754_y0f(float x)
                 return z;
 	}
 	if(ix<=0x39000000) {	/* x < 2**-13 */
-	    return(u00 + tpi*__ieee754_logf(x));
+	    return(u00 + tpi*logf(x));
 	}
 	z = x*x;
 	u = u00+z*(u01+z*(u02+z*(u03+z*(u04+z*(u05+z*u06)))));
 	v = one+z*(v01+z*(v02+z*(v03+z*v04)));
-	return(u/v + tpi*(__ieee754_j0f(x)*__ieee754_logf(x)));
+	return(u/v + tpi*(j0f(x)*logf(x)));
 }
 
 /* The asymptotic expansions of pzero is
diff --git a/lib/msun/src/e_j1.c b/lib/msun/src/e_j1.c
index fb4462738368..ee3f6fcc69d4 100644
--- a/lib/msun/src/e_j1.c
+++ b/lib/msun/src/e_j1.c
@@ -13,7 +13,7 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_j1(x), __ieee754_y1(x)
+/* j1(x), y1(x)
  * Bessel function of the first and second kinds of order zero.
  * Method -- j1(x):
  *	1. For tiny x, we use j1(x) = x/2 - x^3/16 + x^5/384 - ...
@@ -84,7 +84,7 @@ s05  =  1.23542274426137913908e-11; /* 0x3DAB2ACF, 0xCFB97ED8 */
 static const double zero    = 0.0;
 
 double
-__ieee754_j1(double x)
+j1(double x)
 {
 	double z, s,c,ss,cc,r,u,v,y;
 	int32_t hx,ix;
@@ -140,7 +140,7 @@ static const double V0[5] = {
 };
 
 double
-__ieee754_y1(double x)
+y1(double x)
 {
 	double z, s,c,ss,cc,u,v;
 	int32_t hx,ix,lx;
@@ -190,7 +190,7 @@ __ieee754_y1(double x)
         z = x*x;
         u = U0[0]+z*(U0[1]+z*(U0[2]+z*(U0[3]+z*U0[4])));
         v = one+z*(V0[0]+z*(V0[1]+z*(V0[2]+z*(V0[3]+z*V0[4]))));
-        return(x*(u/v) + tpi*(__ieee754_j1(x)*__ieee754_log(x)-one/x));
+        return(x*(u/v) + tpi*(j1(x)*log(x)-one/x));
 }
 
 /* For x >= 8, the asymptotic expansions of pone is
diff --git a/lib/msun/src/e_j1f.c b/lib/msun/src/e_j1f.c
index c6c45c107afa..e1f4498b71af 100644
--- a/lib/msun/src/e_j1f.c
+++ b/lib/msun/src/e_j1f.c
@@ -46,7 +46,7 @@ s05  =  1.2354227016e-11; /* 0x2d59567e */
 static const float zero    = 0.0;
 
 float
-__ieee754_j1f(float x)
+j1f(float x)
 {
 	float z, s,c,ss,cc,r,u,v,y;
 	int32_t hx,ix;
@@ -102,7 +102,7 @@ static const float V0[5] = {
 };
 
 float
-__ieee754_y1f(float x)
+y1f(float x)
 {
 	float z, s,c,ss,cc,u,v;
 	int32_t hx,ix;
@@ -145,7 +145,7 @@ __ieee754_y1f(float x)
         z = x*x;
         u = U0[0]+z*(U0[1]+z*(U0[2]+z*(U0[3]+z*U0[4])));
         v = one+z*(V0[0]+z*(V0[1]+z*(V0[2]+z*(V0[3]+z*V0[4]))));
-        return(x*(u/v) + tpi*(__ieee754_j1f(x)*__ieee754_logf(x)-one/x));
+        return(x*(u/v) + tpi*(j1f(x)*logf(x)-one/x));
 }
 
 /* For x >= 8, the asymptotic expansions of pone is
diff --git a/lib/msun/src/e_jn.c b/lib/msun/src/e_jn.c
index 5aaebd400065..6b876ce69554 100644
--- a/lib/msun/src/e_jn.c
+++ b/lib/msun/src/e_jn.c
@@ -14,7 +14,7 @@
 __FBSDID("$FreeBSD$");
 
 /*
- * __ieee754_jn(n, x), __ieee754_yn(n, x)
+ * jn(n, x), yn(n, x)
  * floating point Bessel's function of the 1st and 2nd kind
  * of order n
  *
@@ -51,7 +51,7 @@ one   =  1.00000000000000000000e+00; /* 0x3FF00000, 0x00000000 */
 static const double zero  =  0.00000000000000000000e+00;
 
 double
-__ieee754_jn(int n, double x)
+jn(int n, double x)
 {
 	int32_t i,hx,ix,lx, sgn;
 	double a, b, c, s, temp, di;
@@ -69,8 +69,8 @@ __ieee754_jn(int n, double x)
 		x = -x;
 		hx ^= 0x80000000;
 	}
-	if(n==0) return(__ieee754_j0(x));
-	if(n==1) return(__ieee754_j1(x));
+	if(n==0) return(j0(x));
+	if(n==1) return(j1(x));
 	sgn = (n&1)&(hx>>31);	/* even n -- 0, odd n -- sign(x) */
 	x = fabs(x);
 	if((ix|lx)==0||ix>=0x7ff00000) 	/* if x is 0 or inf */
@@ -100,8 +100,8 @@ __ieee754_jn(int n, double x)
 		}
 		b = invsqrtpi*temp/sqrt(x);
 	    } else {
-	        a = __ieee754_j0(x);
-	        b = __ieee754_j1(x);
+	        a = j0(x);
+	        b = j1(x);
 	        for(i=1;i<n;i++){
 		    temp = b;
 		    b = b*((double)(i+i)/x) - a; /* avoid underflow */
@@ -177,7 +177,7 @@ __ieee754_jn(int n, double x)
 		 */
 		tmp = n;
 		v = two/x;
-		tmp = tmp*__ieee754_log(fabs(v*tmp));
+		tmp = tmp*log(fabs(v*tmp));
 		if(tmp<7.09782712893383973096e+02) {
 	    	    for(i=n-1,di=(double)(i+i);i>0;i--){
 		        temp = b;
@@ -201,8 +201,8 @@ __ieee754_jn(int n, double x)
 			}
 	     	    }
 		}
-		z = __ieee754_j0(x);
-		w = __ieee754_j1(x);
+		z = j0(x);
+		w = j1(x);
 		if (fabs(z) >= fabs(w))
 		    b = (t*z/b);
 		else
@@ -213,7 +213,7 @@ __ieee754_jn(int n, double x)
 }
 
 double
-__ieee754_yn(int n, double x)
+yn(int n, double x)
 {
 	int32_t i,hx,ix,lx;
 	int32_t sign;
@@ -232,8 +232,8 @@ __ieee754_yn(int n, double x)
 		n = -n;
 		sign = 1 - ((n&1)<<1);
 	}
-	if(n==0) return(__ieee754_y0(x));
-	if(n==1) return(sign*__ieee754_y1(x));
+	if(n==0) return(y0(x));
+	if(n==1) return(sign*y1(x));
 	if(ix==0x7ff00000) return zero;
 	if(ix>=0x52D00000) { /* x > 2**302 */
     /* (x >> n**2)
@@ -259,8 +259,8 @@ __ieee754_yn(int n, double x)
 		b = invsqrtpi*temp/sqrt(x);
 	} else {
 	    u_int32_t high;
-	    a = __ieee754_y0(x);
-	    b = __ieee754_y1(x);
+	    a = y0(x);
+	    b = y1(x);
 	/* quit if b is -inf */
 	    GET_HIGH_WORD(high,b);
 	    for(i=1;i<n&&high!=0xfff00000;i++){
diff --git a/lib/msun/src/e_jnf.c b/lib/msun/src/e_jnf.c
index 965feeb666d4..ba586226dae5 100644
--- a/lib/msun/src/e_jnf.c
+++ b/lib/msun/src/e_jnf.c
@@ -32,7 +32,7 @@ one   =  1.0000000000e+00; /* 0x3F800000 */
 static const float zero  =  0.0000000000e+00;
 
 float
-__ieee754_jnf(int n, float x)
+jnf(int n, float x)
 {
 	int32_t i,hx,ix, sgn;
 	float a, b, temp, di;
@@ -50,16 +50,16 @@ __ieee754_jnf(int n, float x)
 		x = -x;
 		hx ^= 0x80000000;
 	}
-	if(n==0) return(__ieee754_j0f(x));
-	if(n==1) return(__ieee754_j1f(x));
+	if(n==0) return(j0f(x));
+	if(n==1) return(j1f(x));
 	sgn = (n&1)&(hx>>31);	/* even n -- 0, odd n -- sign(x) */
 	x = fabsf(x);
 	if(ix==0||ix>=0x7f800000) 	/* if x is 0 or inf */
 	    b = zero;
 	else if((float)n<=x) {
 		/* Safe to use J(n+1,x)=2n/x *J(n,x)-J(n-1,x) */
-	    a = __ieee754_j0f(x);
-	    b = __ieee754_j1f(x);
+	    a = j0f(x);
+	    b = j1f(x);
 	    for(i=1;i<n;i++){
 		temp = b;
 		b = b*((float)(i+i)/x) - a; /* avoid underflow */
@@ -134,7 +134,7 @@ __ieee754_jnf(int n, float x)
 		 */
 		tmp = n;
 		v = two/x;
-		tmp = tmp*__ieee754_logf(fabsf(v*tmp));
+		tmp = tmp*logf(fabsf(v*tmp));
 		if(tmp<(float)8.8721679688e+01) {
 	    	    for(i=n-1,di=(float)(i+i);i>0;i--){
 		        temp = b;
@@ -158,8 +158,8 @@ __ieee754_jnf(int n, float x)
 			}
 	     	    }
 		}
-		z = __ieee754_j0f(x);
-		w = __ieee754_j1f(x);
+		z = j0f(x);
+		w = j1f(x);
 		if (fabsf(z) >= fabsf(w))
 		    b = (t*z/b);
 		else
@@ -170,7 +170,7 @@ __ieee754_jnf(int n, float x)
 }
 
 float
-__ieee754_ynf(int n, float x)
+ynf(int n, float x)
 {
 	int32_t i,hx,ix,ib;
 	int32_t sign;
@@ -186,12 +186,12 @@ __ieee754_ynf(int n, float x)
 		n = -n;
 		sign = 1 - ((n&1)<<1);
 	}
-	if(n==0) return(__ieee754_y0f(x));
-	if(n==1) return(sign*__ieee754_y1f(x));
+	if(n==0) return(y0f(x));
+	if(n==1) return(sign*y1f(x));
 	if(ix==0x7f800000) return zero;
 
-	a = __ieee754_y0f(x);
-	b = __ieee754_y1f(x);
+	a = y0f(x);
+	b = y1f(x);
 	/* quit if b is -inf */
 	GET_FLOAT_WORD(ib,b);
 	for(i=1;i<n&&ib!=0xff800000;i++){
diff --git a/lib/msun/src/e_lgamma.c b/lib/msun/src/e_lgamma.c
index 43f5175603ec..9c4a30e6e135 100644
--- a/lib/msun/src/e_lgamma.c
+++ b/lib/msun/src/e_lgamma.c
@@ -15,10 +15,10 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_lgamma(x)
+/* lgamma(x)
  * Return the logarithm of the Gamma function of x.
  *
- * Method: call __ieee754_lgamma_r
+ * Method: call lgamma_r
  */
 
 #include <float.h>
@@ -29,9 +29,9 @@ __FBSDID("$FreeBSD$");
*** 659 LINES SKIPPED ***

From nobody Sun Aug 13 08:43:32 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RNrfD2YgWz4qDlb;
	Sun, 13 Aug 2023 08:43:32 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RNrfD1kymz4T9r;
	Sun, 13 Aug 2023 08:43:32 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1691916212;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=1AvTTIuyx6hlFHe8kw0wseGmtPqT/sbi2hvb8w6anEY=;
	b=eH9TDdu6VPmsRjJ2vMWhO/cUNoUNnr86lCduJvY5uc7TOEYmEoPhXYe5JC2Ri4J/H0h3Nl
	ApwFGWHqxMubzoF2rzaj41Oc+sTsguxQ038qYVT7LMrIc+ijP+aNO1QdCw/mj2VUJKG0cK
	6ZIqbJDACFpmn4jt93IY2og2qjOgfAYpfFjs4oMR/GKCV2W+RGZMbcDGDsG9tabJp2lABA
	6RISjRt1ZXXOoxEllRKaOqG8HswrmcbyjtzkY+wQ+KoJXeSGGyPp/3Wt+hBvFQ4yiebKkz
	G3t6+aXUccrv0wTaO4X4f65sLSl08xxuD13wqrsQEO/i/JYYROjI4+e7CrHmYw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1691916212;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=1AvTTIuyx6hlFHe8kw0wseGmtPqT/sbi2hvb8w6anEY=;
	b=whXKNSzVYyktdxpCdm7bdJqTOvkc+jtenBxwTrMOVyOEFxjIniXw8jYrEb6uHP2mjSvaO7
	Kgoq7h+c3P3BXmeDKdZSq76V0y/A/xRK7z9sFxdONZF6XyAbaIaft+lwchnnNxRDeFAUX9
	H//DrUzpmFGC59BgvMQlWrTUxhdRWvYlWS9eJOKjMUzzTHAeSLM0iN3tNCCHHNj3fsKTmT
	8H6TITfwBGBBBR4qpEtEzyG/8MMFMkYPLej3OTkriWSi+j4Rhe3SqwlxGmdjftpJ/P9WvH
	Jp3KKBOLd2F1JWogy4zud5ngjgqPRTP1eiOpeelulNIF9qDmGMS+L3FmIQPJgA==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1691916212; a=rsa-sha256; cv=none;
	b=iySbvloMfcIZvJlTjbrvy2WMPNu7nuWCqosjrIvvCk7N1PCtuT33FQVGSHQ6K0ypIaphUD
	ft1OWkvN85bne9vHtB521Nqjic+AFhpplrsgmWb7zsB8cjoQSJ+C+AWObExZspEhPYDuh8
	8XM+nvKgZDUcSiNCMCVC/MUzJiV4j6DPO0WfF5mYgplw7hydfUfoPnUULVUflkhtP0PsAk
	lySAQ79wsr64W8vlM7M5NNtO7RCkWa636ug+47xehoeXZ2n3Y7zsjJcycTmcTMx/9JHw8b
	PkMi35N3pBmfvXbn+uJYU1o+3+SF0ITVo3mcew5EioY4Q5OS6jKObu0yZ1Xn0w==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RNrfD0pHBzwHQ;
	Sun, 13 Aug 2023 08:43:32 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37D8hWbO051548;
	Sun, 13 Aug 2023 08:43:32 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37D8hWER051545;
	Sun, 13 Aug 2023 08:43:32 GMT
	(envelope-from git)
Date: Sun, 13 Aug 2023 08:43:32 GMT
Message-Id: <202308130843.37D8hWER051545@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Dimitry Andric <dim@FreeBSD.org>
Subject: git: dd565d99901a - stable/12 - Use a builtin where possible
  in msun
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: dim
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/12
X-Git-Reftype: branch
X-Git-Commit: dd565d99901a891192e0b821cab5f9523c603f38
Auto-Submitted: auto-generated

The branch stable/12 has been updated by dim:

URL: https://cgit.FreeBSD.org/src/commit/?id=dd565d99901a891192e0b821cab5f9523c603f38

commit dd565d99901a891192e0b821cab5f9523c603f38
Author:     Andrew Turner <andrew@FreeBSD.org>
AuthorDate: 2021-11-02 11:31:17 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2023-08-13 08:39:08 +0000

    Use a builtin where possible in msun
    
    Some of the functions in msun can be implemented using a compiler
    builtin function to generate a small number of instructions. Implement
    this support in fma, fmax, fmin, and sqrt on arm64.
    
    Care must be taken as the builtin can be implemented as a function
    call on some architectures that lack direct support. In these cases
    we need to use the original code path.
    
    As we don't set errno on failure build with -fno-math-errno so the
    toolchain doesn't convert a builtin into a function call when it
    detects a failure, e.g. gcc will add a call to sqrt when the input
    is negative leading to an infinite loop.
    
    Sponsored by:   The FreeBSD Foundation
    Differential Revision: https://reviews.freebsd.org/D32801
    
    (cherry picked from commit b2e843161dc3b79777e873183447c92ed9c3703a)
---
 lib/msun/Makefile             |  5 +++++
 lib/msun/aarch64/Makefile.inc | 12 ++++++++++++
 lib/msun/src/e_sqrt.c         | 18 +++++++++++++-----
 lib/msun/src/e_sqrtf.c        |  8 ++++++++
 lib/msun/src/s_fma.c          |  8 ++++++++
 lib/msun/src/s_fmaf.c         |  8 ++++++++
 lib/msun/src/s_fmax.c         |  8 ++++++++
 lib/msun/src/s_fmaxf.c        |  8 ++++++++
 lib/msun/src/s_fmin.c         |  8 ++++++++
 lib/msun/src/s_fminf.c        |  8 ++++++++
 10 files changed, 86 insertions(+), 5 deletions(-)

diff --git a/lib/msun/Makefile b/lib/msun/Makefile
index ae8b42bebe40..4771de91c561 100644
--- a/lib/msun/Makefile
+++ b/lib/msun/Makefile
@@ -45,6 +45,11 @@ CFLAGS+=	-I${.CURDIR}/${ARCH_SUBDIR}
 CFLAGS+=	-ffp-exception-behavior=maytrap
 .endif
 
+# Tell the compiler we don't set errno in any of the math functions. This
+# stops gcc from trying to generate a function call to set errno when using
+# a builtin in the implementation
+CFLAGS+=	-fno-math-errno
+
 .PATH:	${.CURDIR}/bsdsrc
 .PATH:	${.CURDIR}/src
 .PATH:	${.CURDIR}/man
diff --git a/lib/msun/aarch64/Makefile.inc b/lib/msun/aarch64/Makefile.inc
index 286a60859591..b0e01488b0bb 100644
--- a/lib/msun/aarch64/Makefile.inc
+++ b/lib/msun/aarch64/Makefile.inc
@@ -2,3 +2,15 @@
 
 LDBL_PREC = 113
 
+# Use a builtin when it generates the needed instruction
+CFLAGS+=-DUSE_BUILTIN_FMAF
+CFLAGS+=-DUSE_BUILTIN_FMA
+
+CFLAGS+=-DUSE_BUILTIN_FMAXF
+CFLAGS+=-DUSE_BUILTIN_FMAX
+
+CFLAGS+=-DUSE_BUILTIN_FMINF
+CFLAGS+=-DUSE_BUILTIN_FMIN
+
+CFLAGS+=-DUSE_BUILTIN_SQRTF
+CFLAGS+=-DUSE_BUILTIN_SQRT
diff --git a/lib/msun/src/e_sqrt.c b/lib/msun/src/e_sqrt.c
index 12fb56e1340b..37351a425ce4 100644
--- a/lib/msun/src/e_sqrt.c
+++ b/lib/msun/src/e_sqrt.c
@@ -14,6 +14,18 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
+#include <float.h>
+
+#include "math.h"
+#include "math_private.h"
+
+#ifdef USE_BUILTIN_SQRT
+double
+__ieee754_sqrt(double x)
+{
+	return (__builtin_sqrt(x));
+}
+#else
 /* __ieee754_sqrt(x)
  * Return correctly rounded sqrt.
  *           ------------------------------------------
@@ -84,11 +96,6 @@ __FBSDID("$FreeBSD$");
  *---------------
  */
 
-#include <float.h>
-
-#include "math.h"
-#include "math_private.h"
-
 static	const double	one	= 1.0, tiny=1.0e-300;
 
 double
@@ -187,6 +194,7 @@ __ieee754_sqrt(double x)
 	INSERT_WORDS(z,ix0,ix1);
 	return z;
 }
+#endif
 
 #if (LDBL_MANT_DIG == 53)
 __weak_reference(sqrt, sqrtl);
diff --git a/lib/msun/src/e_sqrtf.c b/lib/msun/src/e_sqrtf.c
index 7eba4d07f92c..06e5d62fa5f9 100644
--- a/lib/msun/src/e_sqrtf.c
+++ b/lib/msun/src/e_sqrtf.c
@@ -20,6 +20,13 @@ static char rcsid[] = "$FreeBSD$";
 #include "math.h"
 #include "math_private.h"
 
+#ifdef USE_BUILTIN_SQRTF
+float
+__ieee754_sqrtf(float x)
+{
+	return (__builtin_sqrtf(x));
+}
+#else
 static	const float	one	= 1.0, tiny=1.0e-30;
 
 float
@@ -87,3 +94,4 @@ __ieee754_sqrtf(float x)
 	SET_FLOAT_WORD(z,ix);
 	return z;
 }
+#endif
diff --git a/lib/msun/src/s_fma.c b/lib/msun/src/s_fma.c
index 41a6424fdf7f..95cffd0ba36d 100644
--- a/lib/msun/src/s_fma.c
+++ b/lib/msun/src/s_fma.c
@@ -35,6 +35,13 @@ __FBSDID("$FreeBSD$");
 
 #include "math_private.h"
 
+#ifdef USE_BUILTIN_FMA
+double
+fma(double x, double y, double z)
+{
+	return (__builtin_fma(x, y, z));
+}
+#else
 /*
  * A struct dd represents a floating-point number with twice the precision
  * of a double.  We maintain the invariant that "hi" stores the 53 high-order
@@ -284,6 +291,7 @@ fma(double x, double y, double z)
 	else
 		return (add_and_denormalize(r.hi, adj, spread));
 }
+#endif /* !USE_BUILTIN_FMA */
 
 #if (LDBL_MANT_DIG == 53)
 __weak_reference(fma, fmal);
diff --git a/lib/msun/src/s_fmaf.c b/lib/msun/src/s_fmaf.c
index 389cf1b11bee..4591cc219bbb 100644
--- a/lib/msun/src/s_fmaf.c
+++ b/lib/msun/src/s_fmaf.c
@@ -34,6 +34,13 @@ __FBSDID("$FreeBSD$");
 #include "math.h"
 #include "math_private.h"
 
+#ifdef USE_BUILTIN_FMAF
+float
+fmaf(float x, float y, float z)
+{
+	return (__builtin_fmaf(x, y, z));
+}
+#else
 /*
  * Fused multiply-add: Compute x * y + z with a single rounding error.
  *
@@ -69,3 +76,4 @@ fmaf(float x, float y, float z)
 		SET_LOW_WORD(adjusted_result, lr + 1);
 	return (adjusted_result);
 }
+#endif /* !USE_BUILTIN_FMAF */
diff --git a/lib/msun/src/s_fmax.c b/lib/msun/src/s_fmax.c
index 0c234bcc5f7f..b53b1e64da04 100644
--- a/lib/msun/src/s_fmax.c
+++ b/lib/msun/src/s_fmax.c
@@ -34,6 +34,13 @@ __FBSDID("$FreeBSD$");
 
 #include "fpmath.h"
 
+#ifdef USE_BUILTIN_FMAX
+double
+fmax(double x, double y)
+{
+	return (__builtin_fmax(x, y));
+}
+#else
 double
 fmax(double x, double y)
 {
@@ -54,6 +61,7 @@ fmax(double x, double y)
 
 	return (x > y ? x : y);
 }
+#endif
 
 #if (LDBL_MANT_DIG == 53)
 __weak_reference(fmax, fmaxl);
diff --git a/lib/msun/src/s_fmaxf.c b/lib/msun/src/s_fmaxf.c
index 8e9d1baf3e8e..8d3d14f4b52a 100644
--- a/lib/msun/src/s_fmaxf.c
+++ b/lib/msun/src/s_fmaxf.c
@@ -33,6 +33,13 @@ __FBSDID("$FreeBSD$");
 
 #include "fpmath.h"
 
+#ifdef USE_BUILTIN_FMAXF
+float
+fmaxf(float x, float y)
+{
+	return (__builtin_fmaxf(x, y));
+}
+#else
 float
 fmaxf(float x, float y)
 {
@@ -53,3 +60,4 @@ fmaxf(float x, float y)
 
 	return (x > y ? x : y);
 }
+#endif
diff --git a/lib/msun/src/s_fmin.c b/lib/msun/src/s_fmin.c
index d7f24c121fb2..53f36c1c2d3d 100644
--- a/lib/msun/src/s_fmin.c
+++ b/lib/msun/src/s_fmin.c
@@ -34,6 +34,13 @@ __FBSDID("$FreeBSD$");
 
 #include "fpmath.h"
 
+#ifdef USE_BUILTIN_FMIN
+double
+fmin(double x, double y)
+{
+	return (__builtin_fmin(x, y));
+}
+#else
 double
 fmin(double x, double y)
 {
@@ -54,6 +61,7 @@ fmin(double x, double y)
 
 	return (x < y ? x : y);
 }
+#endif
 
 #if (LDBL_MANT_DIG == 53)
 __weak_reference(fmin, fminl);
diff --git a/lib/msun/src/s_fminf.c b/lib/msun/src/s_fminf.c
index 258316725ddd..58b6a489b820 100644
--- a/lib/msun/src/s_fminf.c
+++ b/lib/msun/src/s_fminf.c
@@ -33,6 +33,13 @@ __FBSDID("$FreeBSD$");
 
 #include "fpmath.h"
 
+#ifdef USE_BUILTIN_FMINF
+float
+fminf(float x, float y)
+{
+	return (__builtin_fminf(x, y));
+}
+#else
 float
 fminf(float x, float y)
 {
@@ -53,3 +60,4 @@ fminf(float x, float y)
 
 	return (x < y ? x : y);
 }
+#endif

From nobody Sun Aug 13 08:43:33 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RNrfF3MhYz4qDgH;
	Sun, 13 Aug 2023 08:43:33 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RNrfF36cKz4T5V;
	Sun, 13 Aug 2023 08:43:33 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1691916213;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=L4GAy3kkgWlr4LIQWGcPUg+al9ge6GZozmbkvvSs9+k=;
	b=YahTjOuIJgTAcsQ69CMIJyE9DQEhnJZAFX+v8HpUVIbOF2ysayhJZn/vxxjK55eLkwe2ru
	FK86xw5QzSYft28dlHQIZ5QqXgi0qA1Lm4Y2ZmwnpY7ActLQ2fvXfz980cCUSh0fkXOyu3
	Sf2x05RP+oWt8MZ3o82fPGJU2698o+KQiLvQnqTi8+MGeadfOCdkCYq7Ix3rChfowPNVTa
	wctKIM5dyvuUN+0zBb6WlhLTeFyKET+yfTerIYNeUnN6MPGpBqpIs1SSHrF77u303UtzpO
	SWYEKyeJW8fDsiyXZXkc2S0y+UfvUUNrd7GZWH69jDG4eVi7y7W6f25CtOkqVA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1691916213;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=L4GAy3kkgWlr4LIQWGcPUg+al9ge6GZozmbkvvSs9+k=;
	b=Sh1zAS70UyZV6/hiZnLF4oi1wJKBFe0czzFMF+RhrkQybWxyJUHiZt/3gmoqvAep/SuEzI
	XB/LPB19Xj6kHO82xM/yJg+CVWPCNhvoqLeOEUA623ffz4Njnwnjf8vBBrtpb4aoWiCTIy
	b5ML2K1lBIoABzk0iAsVibRFsfGo4lLVBl81GJrcDeZjWKIWoHRZuru4Yc0Dd5xwXP3UkR
	jK6UQqed0Gnn1N+cDZnFrdYompHOwPNnIPBYVXdDmrsa4xdtUN4Y9x4cBn/ZdmxOXFOARM
	IlG/RqwXQeQPqtD/0nhOz9+55SZNokJqERItkAicTY8ebvRxN9YKql3MmJdHYA==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1691916213; a=rsa-sha256; cv=none;
	b=qJVD9MO8WiNL2C463I8pR19TlV3FBc+1vPFE9npK8p7WscPcYjAZAFsNwxwi3hE5y3u4P0
	M1Mrcd8Cz3lSrWos327Ul5HllKPb8TKyBHP3i9QsCehfNJKGDsijXsNDNpLRHfWoXaiPgs
	2K0t7KZvY8kJIw0UlSXVNczhpkGGKIsk3rsCcKZSHViTRu54vsPHW7LrSaxLhN8BozMnd1
	JQbEP2D11fSClWdJbjqeLAKgz0nOXgxMDmw58kRaB01XCgRo0RJtK7G2RWqKLuHJyr5FZJ
	1bBP+mqgQtuDQMMmlwtMeyFHlqz5naSTLLem3s/adiQTrWT/ypQbrbAIlfhP8w==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RNrfF1dWpzw7T;
	Sun, 13 Aug 2023 08:43:33 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37D8hXta051599;
	Sun, 13 Aug 2023 08:43:33 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37D8hXZQ051596;
	Sun, 13 Aug 2023 08:43:33 GMT
	(envelope-from git)
Date: Sun, 13 Aug 2023 08:43:33 GMT
Message-Id: <202308130843.37D8hXZQ051596@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Dimitry Andric <dim@FreeBSD.org>
Subject: git: afa7546359d3 - stable/12 - Clean up libm use of the
  __ieee754_ prefix
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: dim
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/12
X-Git-Reftype: branch
X-Git-Commit: afa7546359d3ad1c82d46a5a99f3cef36229ea71
Auto-Submitted: auto-generated

The branch stable/12 has been updated by dim:

URL: https://cgit.FreeBSD.org/src/commit/?id=afa7546359d3ad1c82d46a5a99f3cef36229ea71

commit afa7546359d3ad1c82d46a5a99f3cef36229ea71
Author:     Steve Kargl <kargl@FreeBSD.org>
AuthorDate: 2023-08-03 19:51:17 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2023-08-13 08:39:13 +0000

    Clean up libm use of the __ieee754_ prefix
    
    This removes the __ieee754_ prefix from a number of the math functions.
    msun/src/math_private.h contains the statement that
    
      /*
       * ieee style elementary functions
       *
       * We rename functions here to improve other sources' diffability
       * against fdlibm.
       */
       #define        __ieee754_sqrt  sqrt
       ...
    
    Here, fdlibm refers to https://netlib.org/fdlibm. It is seen from
    https://netlib.org/fdlibm/readme that this prefix was used to
    differentiate between different standards:
    
       Wrapper functions will twist the result of the ieee754
       function to comply to the standard specified by the value
       of _LIB_VERSION
          if _LIB_VERSION = _IEEE_, return the ieee754 result;
          if _LIB_VERSION = _SVID_, return SVID result;
          if _LIB_VERSION = _XOPEN_, return XOPEN result;
          if _LIB_VERSION = _POSIX_, return POSIX/ANSI result.
       (These are macros, see fdlibm.h for their definition.)
    
    AFAICT, FreeBSD has never supported these wrappers. In addition, as C99,
    principally the long double, functions were added to libm, this
    convention was not maintained. Given that only 148 of 324 files under
    lib/msun contain a "Copyright (C) 1993 by Sun Microsystems" statement,
    the removal of the __ieee754_ prefix provides consistency across all
    source files.
    
    The last time someone compared lib/msun to fdlibm appears to be
    
      commit 3f70824172feb82ea3dcdb3866b54fe0eb7cd890
      Author: David Schultz <das@FreeBSD.org>
      Date:   Fri Feb 4 18:26:06 2005 +0000
    
      Reduce diffs against vendor source (Sun fdlibm 5.3).
    
    The most recent fdlibm RCS string that appears in a Sun Microsystem
    copyrighted file is date "95/01/18". With Oracle Corporation's
    acquisition of Sun Microsystems in 2009, it is unlikely that fdlibm will
    ever be updated. A search for fdlibm at https://opensource.oracle.com/
    yields no hits.
    
    Finally, OpenBSD removed the use of this prefix over 21 years ago. pSee
    revision 1.6 of OpenBSD's math_private.h.
    
    Note: this does not drop the __ieee754_ prefix from the trigonometric
    argument reduction functions, e.g., __ieee754_rem_pio2. These functions
    are internal to the libm and exported through Symbol.map; and thus,
    reserved for the implementation.
    
    PR:             272783
    MFC after:      1 week
    
    (cherry picked from commit 99843eb89954dac76afe7cf18d962eddfe7a7987)
---
 lib/msun/src/e_acos.c         |  4 +--
 lib/msun/src/e_acosf.c        |  2 +-
 lib/msun/src/e_acosh.c        |  8 +++---
 lib/msun/src/e_acoshf.c       |  8 +++---
 lib/msun/src/e_asin.c         |  4 +--
 lib/msun/src/e_asinf.c        |  2 +-
 lib/msun/src/e_atan2.c        |  4 +--
 lib/msun/src/e_atan2f.c       |  2 +-
 lib/msun/src/e_atanh.c        |  4 +--
 lib/msun/src/e_atanhf.c       |  2 +-
 lib/msun/src/e_cosh.c         |  8 +++---
 lib/msun/src/e_coshf.c        |  6 ++---
 lib/msun/src/e_exp.c          |  4 +--
 lib/msun/src/e_expf.c         |  2 +-
 lib/msun/src/e_fmod.c         |  4 +--
 lib/msun/src/e_fmodf.c        |  4 +--
 lib/msun/src/e_gamma.c        |  8 +++---
 lib/msun/src/e_gamma_r.c      |  8 +++---
 lib/msun/src/e_gammaf.c       |  8 +++---
 lib/msun/src/e_gammaf_r.c     |  8 +++---
 lib/msun/src/e_hypot.c        |  4 +--
 lib/msun/src/e_hypotf.c       |  6 ++---
 lib/msun/src/e_j0.c           | 10 +++----
 lib/msun/src/e_j0f.c          |  8 +++---
 lib/msun/src/e_j1.c           |  8 +++---
 lib/msun/src/e_j1f.c          |  6 ++---
 lib/msun/src/e_jn.c           | 28 ++++++++++----------
 lib/msun/src/e_jnf.c          | 26 +++++++++---------
 lib/msun/src/e_lgamma.c       |  8 +++---
 lib/msun/src/e_lgamma_r.c     | 16 ++++++------
 lib/msun/src/e_lgammaf.c      |  8 +++---
 lib/msun/src/e_lgammaf_r.c    | 14 +++++-----
 lib/msun/src/e_log.c          |  4 +--
 lib/msun/src/e_log10.c        |  2 +-
 lib/msun/src/e_log10f.c       |  2 +-
 lib/msun/src/e_log2.c         |  2 +-
 lib/msun/src/e_log2f.c        |  2 +-
 lib/msun/src/e_logf.c         |  2 +-
 lib/msun/src/e_pow.c          |  4 +--
 lib/msun/src/e_powf.c         |  4 +--
 lib/msun/src/e_remainder.c    |  6 ++---
 lib/msun/src/e_remainderf.c   |  4 +--
 lib/msun/src/e_scalb.c        |  6 ++---
 lib/msun/src/e_scalbf.c       |  4 +--
 lib/msun/src/e_sinh.c         |  6 ++---
 lib/msun/src/e_sinhf.c        |  4 +--
 lib/msun/src/e_sqrt.c         |  6 ++---
 lib/msun/src/e_sqrtf.c        |  4 +--
 lib/msun/src/math_private.h   | 61 -------------------------------------------
 lib/msun/src/s_asinh.c        |  6 ++---
 lib/msun/src/s_asinhf.c       |  6 ++---
 lib/msun/src/s_erf.c          |  4 +--
 lib/msun/src/s_significand.c  |  2 +-
 lib/msun/src/s_significandf.c |  2 +-
 54 files changed, 162 insertions(+), 223 deletions(-)

diff --git a/lib/msun/src/e_acos.c b/lib/msun/src/e_acos.c
index 1f6dca5bb5cb..6623355baa7c 100644
--- a/lib/msun/src/e_acos.c
+++ b/lib/msun/src/e_acos.c
@@ -14,7 +14,7 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_acos(x)
+/* acos(x)
  * Method :                  
  *	acos(x)  = pi/2 - asin(x)
  *	acos(-x) = pi/2 + asin(x)
@@ -62,7 +62,7 @@ qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */
 qS4 =  7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */
 
 double
-__ieee754_acos(double x)
+acos(double x)
 {
 	double z,p,q,r,w,s,c,df;
 	int32_t hx,ix;
diff --git a/lib/msun/src/e_acosf.c b/lib/msun/src/e_acosf.c
index c9f62cc40f5c..64f1c5afb182 100644
--- a/lib/msun/src/e_acosf.c
+++ b/lib/msun/src/e_acosf.c
@@ -32,7 +32,7 @@ pS2 = -8.6563630030e-03,
 qS1 = -7.0662963390e-01;
 
 float
-__ieee754_acosf(float x)
+acosf(float x)
 {
 	float z,p,q,r,w,s,c,df;
 	int32_t hx,ix;
diff --git a/lib/msun/src/e_acosh.c b/lib/msun/src/e_acosh.c
index 358c8bd6a636..7947995820d0 100644
--- a/lib/msun/src/e_acosh.c
+++ b/lib/msun/src/e_acosh.c
@@ -15,7 +15,7 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_acosh(x)
+/* acosh(x)
  * Method :
  *	Based on 
  *		acosh(x) = log [ x + sqrt(x*x-1) ]
@@ -39,7 +39,7 @@ one	= 1.0,
 ln2	= 6.93147180559945286227e-01;  /* 0x3FE62E42, 0xFEFA39EF */
 
 double
-__ieee754_acosh(double x)
+acosh(double x)
 {
 	double t;
 	int32_t hx;
@@ -51,12 +51,12 @@ __ieee754_acosh(double x)
 	    if(hx >=0x7ff00000) {	/* x is inf of NaN */
 	        return x+x;
 	    } else 
-		return __ieee754_log(x)+ln2;	/* acosh(huge)=log(2x) */
+		return log(x)+ln2;	/* acosh(huge)=log(2x) */
 	} else if(((hx-0x3ff00000)|lx)==0) {
 	    return 0.0;			/* acosh(1) = 0 */
 	} else if (hx > 0x40000000) {	/* 2**28 > x > 2 */
 	    t=x*x;
-	    return __ieee754_log(2.0*x-one/(x+sqrt(t-one)));
+	    return log(2.0*x-one/(x+sqrt(t-one)));
 	} else {			/* 1<x<2 */
 	    t = x-one;
 	    return log1p(t+sqrt(2.0*t+t*t));
diff --git a/lib/msun/src/e_acoshf.c b/lib/msun/src/e_acoshf.c
index f529b20d1219..781ccf2a1151 100644
--- a/lib/msun/src/e_acoshf.c
+++ b/lib/msun/src/e_acoshf.c
@@ -24,7 +24,7 @@ one	= 1.0,
 ln2	= 6.9314718246e-01;  /* 0x3f317218 */
 
 float
-__ieee754_acoshf(float x)
+acoshf(float x)
 {
 	float t;
 	int32_t hx;
@@ -35,14 +35,14 @@ __ieee754_acoshf(float x)
 	    if(hx >=0x7f800000) {	/* x is inf of NaN */
 	        return x+x;
 	    } else
-		return __ieee754_logf(x)+ln2;	/* acosh(huge)=log(2x) */
+		return logf(x)+ln2;	/* acosh(huge)=log(2x) */
 	} else if (hx==0x3f800000) {
 	    return 0.0;			/* acosh(1) = 0 */
 	} else if (hx > 0x40000000) {	/* 2**28 > x > 2 */
 	    t=x*x;
-	    return __ieee754_logf((float)2.0*x-one/(x+__ieee754_sqrtf(t-one)));
+	    return logf((float)2.0*x-one/(x+sqrtf(t-one)));
 	} else {			/* 1<x<2 */
 	    t = x-one;
-	    return log1pf(t+__ieee754_sqrtf((float)2.0*t+t*t));
+	    return log1pf(t+sqrtf((float)2.0*t+t*t));
 	}
 }
diff --git a/lib/msun/src/e_asin.c b/lib/msun/src/e_asin.c
index 931b270498e6..fa180ab5701b 100644
--- a/lib/msun/src/e_asin.c
+++ b/lib/msun/src/e_asin.c
@@ -14,7 +14,7 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_asin(x)
+/* asin(x)
  * Method :                  
  *	Since  asin(x) = x + x^3/6 + x^5*3/40 + x^7*15/336 + ...
  *	we approximate asin(x) on [0,0.5] by
@@ -68,7 +68,7 @@ qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */
 qS4 =  7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */
 
 double
-__ieee754_asin(double x)
+asin(double x)
 {
 	double t=0.0,w,p,q,c,r,s;
 	int32_t hx,ix;
diff --git a/lib/msun/src/e_asinf.c b/lib/msun/src/e_asinf.c
index deaabb6a326e..db4b9b6034f7 100644
--- a/lib/msun/src/e_asinf.c
+++ b/lib/msun/src/e_asinf.c
@@ -32,7 +32,7 @@ static const double
 pio2 =  1.570796326794896558e+00;
 
 float
-__ieee754_asinf(float x)
+asinf(float x)
 {
 	double s;
 	float t,w,p,q;
diff --git a/lib/msun/src/e_atan2.c b/lib/msun/src/e_atan2.c
index 231a1611ee12..0b2e72102edb 100644
--- a/lib/msun/src/e_atan2.c
+++ b/lib/msun/src/e_atan2.c
@@ -15,7 +15,7 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_atan2(y,x)
+/* atan2(y,x)
  * Method :
  *	1. Reduce y to positive by atan2(y,x)=-atan2(-y,x).
  *	2. Reduce x to positive by (if x and y are unexceptional): 
@@ -58,7 +58,7 @@ static volatile double
 pi_lo   = 1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */
 
 double
-__ieee754_atan2(double y, double x)
+atan2(double y, double x)
 {
 	double z;
 	int32_t k,m,hx,hy,ix,iy;
diff --git a/lib/msun/src/e_atan2f.c b/lib/msun/src/e_atan2f.c
index 346d76746c05..4ea001df974a 100644
--- a/lib/msun/src/e_atan2f.c
+++ b/lib/msun/src/e_atan2f.c
@@ -30,7 +30,7 @@ static volatile float
 pi_lo   = -8.7422776573e-08; /* 0xb3bbbd2e */
 
 float
-__ieee754_atan2f(float y, float x)
+atan2f(float y, float x)
 {
 	float z;
 	int32_t k,m,hx,hy,ix,iy;
diff --git a/lib/msun/src/e_atanh.c b/lib/msun/src/e_atanh.c
index 422ff2698067..41f3bcaca26d 100644
--- a/lib/msun/src/e_atanh.c
+++ b/lib/msun/src/e_atanh.c
@@ -15,7 +15,7 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_atanh(x)
+/* atanh(x)
  * Method :
  *    1.Reduced x to positive by atanh(-x) = -atanh(x)
  *    2.For x>=0.5
@@ -42,7 +42,7 @@ static const double one = 1.0, huge = 1e300;
 static const double zero = 0.0;
 
 double
-__ieee754_atanh(double x)
+atanh(double x)
 {
 	double t;
 	int32_t hx,ix;
diff --git a/lib/msun/src/e_atanhf.c b/lib/msun/src/e_atanhf.c
index 4bd6a8f9b9c6..46643beb5ab0 100644
--- a/lib/msun/src/e_atanhf.c
+++ b/lib/msun/src/e_atanhf.c
@@ -24,7 +24,7 @@ static const float one = 1.0, huge = 1e30;
 static const float zero = 0.0;
 
 float
-__ieee754_atanhf(float x)
+atanhf(float x)
 {
 	float t;
 	int32_t hx,ix;
diff --git a/lib/msun/src/e_cosh.c b/lib/msun/src/e_cosh.c
index 246b5fbec860..071663eb4e15 100644
--- a/lib/msun/src/e_cosh.c
+++ b/lib/msun/src/e_cosh.c
@@ -14,7 +14,7 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_cosh(x)
+/* cosh(x)
  * Method : 
  * mathematically cosh(x) if defined to be (exp(x)+exp(-x))/2
  *	1. Replace x by |x| (cosh(x) = cosh(-x)). 
@@ -43,7 +43,7 @@ __FBSDID("$FreeBSD$");
 static const double one = 1.0, half=0.5, huge = 1.0e300;
 
 double
-__ieee754_cosh(double x)
+cosh(double x)
 {
 	double t,w;
 	int32_t ix;
@@ -65,12 +65,12 @@ __ieee754_cosh(double x)
 
     /* |x| in [0.5*ln2,22], return (exp(|x|)+1/exp(|x|)/2; */
 	if (ix < 0x40360000) {
-		t = __ieee754_exp(fabs(x));
+		t = exp(fabs(x));
 		return half*t+half/t;
 	}
 
     /* |x| in [22, log(maxdouble)] return half*exp(|x|) */
-	if (ix < 0x40862E42)  return half*__ieee754_exp(fabs(x));
+	if (ix < 0x40862E42)  return half*exp(fabs(x));
 
     /* |x| in [log(maxdouble), overflowthresold] */
 	if (ix<=0x408633CE)
diff --git a/lib/msun/src/e_coshf.c b/lib/msun/src/e_coshf.c
index 95a0d6ee68ba..1673315d7b31 100644
--- a/lib/msun/src/e_coshf.c
+++ b/lib/msun/src/e_coshf.c
@@ -22,7 +22,7 @@ __FBSDID("$FreeBSD$");
 static const float one = 1.0, half=0.5, huge = 1.0e30;
 
 float
-__ieee754_coshf(float x)
+coshf(float x)
 {
 	float t,w;
 	int32_t ix;
@@ -43,12 +43,12 @@ __ieee754_coshf(float x)
 
     /* |x| in [0.5*ln2,9], return (exp(|x|)+1/exp(|x|))/2; */
 	if (ix < 0x41100000) {
-		t = __ieee754_expf(fabsf(x));
+		t = expf(fabsf(x));
 		return half*t+half/t;
 	}
 
     /* |x| in [9, log(maxfloat)] return half*exp(|x|) */
-	if (ix < 0x42b17217)  return half*__ieee754_expf(fabsf(x));
+	if (ix < 0x42b17217)  return half*expf(fabsf(x));
 
     /* |x| in [log(maxfloat), overflowthresold] */
 	if (ix<=0x42b2d4fc)
diff --git a/lib/msun/src/e_exp.c b/lib/msun/src/e_exp.c
index dd04d8e839d5..59da39217391 100644
--- a/lib/msun/src/e_exp.c
+++ b/lib/msun/src/e_exp.c
@@ -13,7 +13,7 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_exp(x)
+/* exp(x)
  * Returns the exponential of x.
  *
  * Method
@@ -102,7 +102,7 @@ huge	= 1.0e+300,
 twom1000= 9.33263618503218878990e-302;     /* 2**-1000=0x01700000,0*/
 
 double
-__ieee754_exp(double x)	/* default IEEE double exp */
+exp(double x)	/* default IEEE double exp */
 {
 	double y,hi=0.0,lo=0.0,c,t,twopk;
 	int32_t k=0,xsb;
diff --git a/lib/msun/src/e_expf.c b/lib/msun/src/e_expf.c
index 4903d55c5ab3..620d341be274 100644
--- a/lib/msun/src/e_expf.c
+++ b/lib/msun/src/e_expf.c
@@ -43,7 +43,7 @@ huge	= 1.0e+30,
 twom100 = 7.8886090522e-31;      /* 2**-100=0x0d800000 */
 
 float
-__ieee754_expf(float x)
+expf(float x)
 {
 	float y,hi=0.0,lo=0.0,c,t,twopk;
 	int32_t k=0,xsb;
diff --git a/lib/msun/src/e_fmod.c b/lib/msun/src/e_fmod.c
index 3a28dc4ff1f3..6d5f5332cb85 100644
--- a/lib/msun/src/e_fmod.c
+++ b/lib/msun/src/e_fmod.c
@@ -15,7 +15,7 @@
 __FBSDID("$FreeBSD$");
 
 /* 
- * __ieee754_fmod(x,y)
+ * fmod(x,y)
  * Return x mod y in exact arithmetic
  * Method: shift and subtract
  */
@@ -28,7 +28,7 @@ __FBSDID("$FreeBSD$");
 static const double one = 1.0, Zero[] = {0.0, -0.0,};
 
 double
-__ieee754_fmod(double x, double y)
+fmod(double x, double y)
 {
 	int32_t n,hx,hy,hz,ix,iy,sx,i;
 	u_int32_t lx,ly,lz;
diff --git a/lib/msun/src/e_fmodf.c b/lib/msun/src/e_fmodf.c
index 1b6bf36f9cba..3cef9213c1e5 100644
--- a/lib/msun/src/e_fmodf.c
+++ b/lib/msun/src/e_fmodf.c
@@ -17,7 +17,7 @@
 __FBSDID("$FreeBSD$");
 
 /*
- * __ieee754_fmodf(x,y)
+ * fmodf(x,y)
  * Return x mod y in exact arithmetic
  * Method: shift and subtract
  */
@@ -28,7 +28,7 @@ __FBSDID("$FreeBSD$");
 static const float one = 1.0, Zero[] = {0.0, -0.0,};
 
 float
-__ieee754_fmodf(float x, float y)
+fmodf(float x, float y)
 {
 	int32_t n,hx,hy,hz,ix,iy,sx,i;
 
diff --git a/lib/msun/src/e_gamma.c b/lib/msun/src/e_gamma.c
index 28fb5ccba6d6..a13f3e22c08b 100644
--- a/lib/msun/src/e_gamma.c
+++ b/lib/msun/src/e_gamma.c
@@ -15,10 +15,10 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_gamma(x)
+/* gamma(x)
  * Return the logarithm of the Gamma function of x.
  *
- * Method: call __ieee754_gamma_r
+ * Method: call gamma_r
  */
 
 #include "math.h"
@@ -27,7 +27,7 @@ __FBSDID("$FreeBSD$");
 extern int signgam;
 
 double
-__ieee754_gamma(double x)
+gamma(double x)
 {
-	return __ieee754_gamma_r(x,&signgam);
+	return gamma_r(x,&signgam);
 }
diff --git a/lib/msun/src/e_gamma_r.c b/lib/msun/src/e_gamma_r.c
index 2c423dce8558..2d996cabca20 100644
--- a/lib/msun/src/e_gamma_r.c
+++ b/lib/msun/src/e_gamma_r.c
@@ -15,18 +15,18 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_gamma_r(x, signgamp)
+/* gamma_r(x, signgamp)
  * Reentrant version of the logarithm of the Gamma function 
  * with user provide pointer for the sign of Gamma(x). 
  *
- * Method: See __ieee754_lgamma_r
+ * Method: See lgamma_r
  */
 
 #include "math.h"
 #include "math_private.h"
 
 double
-__ieee754_gamma_r(double x, int *signgamp)
+gamma_r(double x, int *signgamp)
 {
-	return __ieee754_lgamma_r(x,signgamp);
+	return lgamma_r(x,signgamp);
 }
diff --git a/lib/msun/src/e_gammaf.c b/lib/msun/src/e_gammaf.c
index c1b1668df975..563c1482282d 100644
--- a/lib/msun/src/e_gammaf.c
+++ b/lib/msun/src/e_gammaf.c
@@ -16,10 +16,10 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_gammaf(x)
+/* gammaf(x)
  * Return the logarithm of the Gamma function of x.
  *
- * Method: call __ieee754_gammaf_r
+ * Method: call gammaf_r
  */
 
 #include "math.h"
@@ -28,7 +28,7 @@ __FBSDID("$FreeBSD$");
 extern int signgam;
 
 float
-__ieee754_gammaf(float x)
+gammaf(float x)
 {
-	return __ieee754_gammaf_r(x,&signgam);
+	return gammaf_r(x,&signgam);
 }
diff --git a/lib/msun/src/e_gammaf_r.c b/lib/msun/src/e_gammaf_r.c
index 9d7831b5501b..d7fc2db1e96c 100644
--- a/lib/msun/src/e_gammaf_r.c
+++ b/lib/msun/src/e_gammaf_r.c
@@ -16,18 +16,18 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_gammaf_r(x, signgamp)
+/* gammaf_r(x, signgamp)
  * Reentrant version of the logarithm of the Gamma function
  * with user provide pointer for the sign of Gamma(x).
  *
- * Method: See __ieee754_lgammaf_r
+ * Method: See lgammaf_r
  */
 
 #include "math.h"
 #include "math_private.h"
 
 float
-__ieee754_gammaf_r(float x, int *signgamp)
+gammaf_r(float x, int *signgamp)
 {
-	return __ieee754_lgammaf_r(x,signgamp);
+	return lgammaf_r(x,signgamp);
 }
diff --git a/lib/msun/src/e_hypot.c b/lib/msun/src/e_hypot.c
index 7c455bb6652f..8e3f9317b3a6 100644
--- a/lib/msun/src/e_hypot.c
+++ b/lib/msun/src/e_hypot.c
@@ -14,7 +14,7 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_hypot(x,y)
+/* hypot(x,y)
  *
  * Method :                  
  *	If (assume round-to-nearest) z=x*x+y*y 
@@ -52,7 +52,7 @@ __FBSDID("$FreeBSD$");
 #include "math_private.h"
 
 double
-__ieee754_hypot(double x, double y)
+hypot(double x, double y)
 {
 	double a,b,t1,t2,y1,y2,w;
 	int32_t j,k,ha,hb;
diff --git a/lib/msun/src/e_hypotf.c b/lib/msun/src/e_hypotf.c
index 00610268fafb..a3b8c866697b 100644
--- a/lib/msun/src/e_hypotf.c
+++ b/lib/msun/src/e_hypotf.c
@@ -20,7 +20,7 @@ __FBSDID("$FreeBSD$");
 #include "math_private.h"
 
 float
-__ieee754_hypotf(float x, float y)
+hypotf(float x, float y)
 {
 	float a,b,t1,t2,y1,y2,w;
 	int32_t j,k,ha,hb;
@@ -67,14 +67,14 @@ __ieee754_hypotf(float x, float y)
 	if (w>b) {
 	    SET_FLOAT_WORD(t1,ha&0xfffff000);
 	    t2 = a-t1;
-	    w  = __ieee754_sqrtf(t1*t1-(b*(-b)-t2*(a+t1)));
+	    w  = sqrtf(t1*t1-(b*(-b)-t2*(a+t1)));
 	} else {
 	    a  = a+a;
 	    SET_FLOAT_WORD(y1,hb&0xfffff000);
 	    y2 = b - y1;
 	    SET_FLOAT_WORD(t1,(ha+0x00800000)&0xfffff000);
 	    t2 = a - t1;
-	    w  = __ieee754_sqrtf(t1*y1-(w*(-w)-(t1*y2+t2*b)));
+	    w  = sqrtf(t1*y1-(w*(-w)-(t1*y2+t2*b)));
 	}
 	if(k!=0) {
 	    SET_FLOAT_WORD(t1,(127+k)<<23);
diff --git a/lib/msun/src/e_j0.c b/lib/msun/src/e_j0.c
index 5d862b6f834d..c43ab6996b4a 100644
--- a/lib/msun/src/e_j0.c
+++ b/lib/msun/src/e_j0.c
@@ -13,7 +13,7 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_j0(x), __ieee754_y0(x)
+/* j0(x), y0(x)
  * Bessel function of the first and second kinds of order zero.
  * Method -- j0(x):
  *	1. For tiny x, we use j0(x) = 1 - x^2/4 + x^4/64 - ...
@@ -83,7 +83,7 @@ S04  =  1.16614003333790000205e-09; /* 0x3E1408BC, 0xF4745D8F */
 static const double zero = 0, qrtr = 0.25;
 
 double
-__ieee754_j0(double x)
+j0(double x)
 {
 	double z, s,c,ss,cc,r,u,v;
 	int32_t hx,ix;
@@ -143,7 +143,7 @@ v03  =  2.59150851840457805467e-07, /* 0x3E91642D, 0x7FF202FD */
 v04  =  4.41110311332675467403e-10; /* 0x3DFE5018, 0x3BD6D9EF */
 
 double
-__ieee754_y0(double x)
+y0(double x)
 {
 	double z, s,c,ss,cc,u,v;
 	int32_t hx,ix,lx;
@@ -192,12 +192,12 @@ __ieee754_y0(double x)
                 return z;
 	}
 	if(ix<=0x3e400000) {	/* x < 2**-27 */
-	    return(u00 + tpi*__ieee754_log(x));
+	    return(u00 + tpi*log(x));
 	}
 	z = x*x;
 	u = u00+z*(u01+z*(u02+z*(u03+z*(u04+z*(u05+z*u06)))));
 	v = one+z*(v01+z*(v02+z*(v03+z*v04)));
-	return(u/v + tpi*(__ieee754_j0(x)*__ieee754_log(x)));
+	return(u/v + tpi*(j0(x)*log(x)));
 }
 
 /* The asymptotic expansions of pzero is
diff --git a/lib/msun/src/e_j0f.c b/lib/msun/src/e_j0f.c
index 1c5ef4da1b49..290be04fc900 100644
--- a/lib/msun/src/e_j0f.c
+++ b/lib/msun/src/e_j0f.c
@@ -45,7 +45,7 @@ S04  =  1.1661400734e-09; /* 0x30a045e8 */
 static const float zero = 0, qrtr = 0.25;
 
 float
-__ieee754_j0f(float x)
+j0f(float x)
 {
 	float z, s,c,ss,cc,r,u,v;
 	int32_t hx,ix;
@@ -105,7 +105,7 @@ v03  =  2.5915085189e-07, /* 0x348b216c */
 v04  =  4.4111031494e-10; /* 0x2ff280c2 */
 
 float
-__ieee754_y0f(float x)
+y0f(float x)
 {
 	float z, s,c,ss,cc,u,v;
 	int32_t hx,ix;
@@ -147,12 +147,12 @@ __ieee754_y0f(float x)
                 return z;
 	}
 	if(ix<=0x39000000) {	/* x < 2**-13 */
-	    return(u00 + tpi*__ieee754_logf(x));
+	    return(u00 + tpi*logf(x));
 	}
 	z = x*x;
 	u = u00+z*(u01+z*(u02+z*(u03+z*(u04+z*(u05+z*u06)))));
 	v = one+z*(v01+z*(v02+z*(v03+z*v04)));
-	return(u/v + tpi*(__ieee754_j0f(x)*__ieee754_logf(x)));
+	return(u/v + tpi*(j0f(x)*logf(x)));
 }
 
 /* The asymptotic expansions of pzero is
diff --git a/lib/msun/src/e_j1.c b/lib/msun/src/e_j1.c
index fb4462738368..ee3f6fcc69d4 100644
--- a/lib/msun/src/e_j1.c
+++ b/lib/msun/src/e_j1.c
@@ -13,7 +13,7 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_j1(x), __ieee754_y1(x)
+/* j1(x), y1(x)
  * Bessel function of the first and second kinds of order zero.
  * Method -- j1(x):
  *	1. For tiny x, we use j1(x) = x/2 - x^3/16 + x^5/384 - ...
@@ -84,7 +84,7 @@ s05  =  1.23542274426137913908e-11; /* 0x3DAB2ACF, 0xCFB97ED8 */
 static const double zero    = 0.0;
 
 double
-__ieee754_j1(double x)
+j1(double x)
 {
 	double z, s,c,ss,cc,r,u,v,y;
 	int32_t hx,ix;
@@ -140,7 +140,7 @@ static const double V0[5] = {
 };
 
 double
-__ieee754_y1(double x)
+y1(double x)
 {
 	double z, s,c,ss,cc,u,v;
 	int32_t hx,ix,lx;
@@ -190,7 +190,7 @@ __ieee754_y1(double x)
         z = x*x;
         u = U0[0]+z*(U0[1]+z*(U0[2]+z*(U0[3]+z*U0[4])));
         v = one+z*(V0[0]+z*(V0[1]+z*(V0[2]+z*(V0[3]+z*V0[4]))));
-        return(x*(u/v) + tpi*(__ieee754_j1(x)*__ieee754_log(x)-one/x));
+        return(x*(u/v) + tpi*(j1(x)*log(x)-one/x));
 }
 
 /* For x >= 8, the asymptotic expansions of pone is
diff --git a/lib/msun/src/e_j1f.c b/lib/msun/src/e_j1f.c
index c6c45c107afa..e1f4498b71af 100644
--- a/lib/msun/src/e_j1f.c
+++ b/lib/msun/src/e_j1f.c
@@ -46,7 +46,7 @@ s05  =  1.2354227016e-11; /* 0x2d59567e */
 static const float zero    = 0.0;
 
 float
-__ieee754_j1f(float x)
+j1f(float x)
 {
 	float z, s,c,ss,cc,r,u,v,y;
 	int32_t hx,ix;
@@ -102,7 +102,7 @@ static const float V0[5] = {
 };
 
 float
-__ieee754_y1f(float x)
+y1f(float x)
 {
 	float z, s,c,ss,cc,u,v;
 	int32_t hx,ix;
@@ -145,7 +145,7 @@ __ieee754_y1f(float x)
         z = x*x;
         u = U0[0]+z*(U0[1]+z*(U0[2]+z*(U0[3]+z*U0[4])));
         v = one+z*(V0[0]+z*(V0[1]+z*(V0[2]+z*(V0[3]+z*V0[4]))));
-        return(x*(u/v) + tpi*(__ieee754_j1f(x)*__ieee754_logf(x)-one/x));
+        return(x*(u/v) + tpi*(j1f(x)*logf(x)-one/x));
 }
 
 /* For x >= 8, the asymptotic expansions of pone is
diff --git a/lib/msun/src/e_jn.c b/lib/msun/src/e_jn.c
index c7ba7da6567b..b70c496e6735 100644
--- a/lib/msun/src/e_jn.c
+++ b/lib/msun/src/e_jn.c
@@ -14,7 +14,7 @@
 __FBSDID("$FreeBSD$");
 
 /*
- * __ieee754_jn(n, x), __ieee754_yn(n, x)
+ * jn(n, x), yn(n, x)
  * floating point Bessel's function of the 1st and 2nd kind
  * of order n
  *
@@ -51,7 +51,7 @@ one   =  1.00000000000000000000e+00; /* 0x3FF00000, 0x00000000 */
 static const double zero  =  0.00000000000000000000e+00;
 
 double
-__ieee754_jn(int n, double x)
+jn(int n, double x)
 {
 	int32_t i,hx,ix,lx, sgn;
 	double a, b, c, s, temp, di;
@@ -69,8 +69,8 @@ __ieee754_jn(int n, double x)
 		x = -x;
 		hx ^= 0x80000000;
 	}
-	if(n==0) return(__ieee754_j0(x));
-	if(n==1) return(__ieee754_j1(x));
+	if(n==0) return(j0(x));
+	if(n==1) return(j1(x));
 	sgn = (n&1)&(hx>>31);	/* even n -- 0, odd n -- sign(x) */
 	x = fabs(x);
 	if((ix|lx)==0||ix>=0x7ff00000) 	/* if x is 0 or inf */
@@ -100,8 +100,8 @@ __ieee754_jn(int n, double x)
 		}
 		b = invsqrtpi*temp/sqrt(x);
 	    } else {
-	        a = __ieee754_j0(x);
-	        b = __ieee754_j1(x);
+	        a = j0(x);
+	        b = j1(x);
 	        for(i=1;i<n;i++){
 		    temp = b;
 		    b = b*((double)(i+i)/x) - a; /* avoid underflow */
@@ -177,7 +177,7 @@ __ieee754_jn(int n, double x)
 		 */
 		tmp = n;
 		v = two/x;
-		tmp = tmp*__ieee754_log(fabs(v*tmp));
+		tmp = tmp*log(fabs(v*tmp));
 		if(tmp<7.09782712893383973096e+02) {
 	    	    for(i=n-1,di=(double)(i+i);i>0;i--){
 		        temp = b;
@@ -201,8 +201,8 @@ __ieee754_jn(int n, double x)
 			}
 	     	    }
 		}
-		z = __ieee754_j0(x);
-		w = __ieee754_j1(x);
+		z = j0(x);
+		w = j1(x);
 		if (fabs(z) >= fabs(w))
 		    b = (t*z/b);
 		else
@@ -213,7 +213,7 @@ __ieee754_jn(int n, double x)
 }
 
 double
-__ieee754_yn(int n, double x)
+yn(int n, double x)
 {
 	int32_t i,hx,ix,lx;
 	int32_t sign;
@@ -232,8 +232,8 @@ __ieee754_yn(int n, double x)
 		n = -n;
 		sign = 1 - ((n&1)<<1);
 	}
-	if(n==0) return(__ieee754_y0(x));
-	if(n==1) return(sign*__ieee754_y1(x));
+	if(n==0) return(y0(x));
+	if(n==1) return(sign*y1(x));
 	if(ix==0x7ff00000) return zero;
 	if(ix>=0x52D00000) { /* x > 2**302 */
     /* (x >> n**2)
@@ -259,8 +259,8 @@ __ieee754_yn(int n, double x)
 		b = invsqrtpi*temp/sqrt(x);
 	} else {
 	    u_int32_t high;
-	    a = __ieee754_y0(x);
-	    b = __ieee754_y1(x);
+	    a = y0(x);
+	    b = y1(x);
 	/* quit if b is -inf */
 	    GET_HIGH_WORD(high,b);
 	    for(i=1;i<n&&high!=0xfff00000;i++){
diff --git a/lib/msun/src/e_jnf.c b/lib/msun/src/e_jnf.c
index 965feeb666d4..ba586226dae5 100644
--- a/lib/msun/src/e_jnf.c
+++ b/lib/msun/src/e_jnf.c
@@ -32,7 +32,7 @@ one   =  1.0000000000e+00; /* 0x3F800000 */
 static const float zero  =  0.0000000000e+00;
 
 float
-__ieee754_jnf(int n, float x)
+jnf(int n, float x)
 {
 	int32_t i,hx,ix, sgn;
 	float a, b, temp, di;
@@ -50,16 +50,16 @@ __ieee754_jnf(int n, float x)
 		x = -x;
 		hx ^= 0x80000000;
 	}
-	if(n==0) return(__ieee754_j0f(x));
-	if(n==1) return(__ieee754_j1f(x));
+	if(n==0) return(j0f(x));
+	if(n==1) return(j1f(x));
 	sgn = (n&1)&(hx>>31);	/* even n -- 0, odd n -- sign(x) */
 	x = fabsf(x);
 	if(ix==0||ix>=0x7f800000) 	/* if x is 0 or inf */
 	    b = zero;
 	else if((float)n<=x) {
 		/* Safe to use J(n+1,x)=2n/x *J(n,x)-J(n-1,x) */
-	    a = __ieee754_j0f(x);
-	    b = __ieee754_j1f(x);
+	    a = j0f(x);
+	    b = j1f(x);
 	    for(i=1;i<n;i++){
 		temp = b;
 		b = b*((float)(i+i)/x) - a; /* avoid underflow */
@@ -134,7 +134,7 @@ __ieee754_jnf(int n, float x)
 		 */
 		tmp = n;
 		v = two/x;
-		tmp = tmp*__ieee754_logf(fabsf(v*tmp));
+		tmp = tmp*logf(fabsf(v*tmp));
 		if(tmp<(float)8.8721679688e+01) {
 	    	    for(i=n-1,di=(float)(i+i);i>0;i--){
 		        temp = b;
@@ -158,8 +158,8 @@ __ieee754_jnf(int n, float x)
 			}
 	     	    }
 		}
-		z = __ieee754_j0f(x);
-		w = __ieee754_j1f(x);
+		z = j0f(x);
+		w = j1f(x);
 		if (fabsf(z) >= fabsf(w))
 		    b = (t*z/b);
 		else
@@ -170,7 +170,7 @@ __ieee754_jnf(int n, float x)
 }
 
 float
-__ieee754_ynf(int n, float x)
+ynf(int n, float x)
 {
 	int32_t i,hx,ix,ib;
 	int32_t sign;
@@ -186,12 +186,12 @@ __ieee754_ynf(int n, float x)
 		n = -n;
 		sign = 1 - ((n&1)<<1);
 	}
-	if(n==0) return(__ieee754_y0f(x));
-	if(n==1) return(sign*__ieee754_y1f(x));
+	if(n==0) return(y0f(x));
+	if(n==1) return(sign*y1f(x));
 	if(ix==0x7f800000) return zero;
 
-	a = __ieee754_y0f(x);
-	b = __ieee754_y1f(x);
+	a = y0f(x);
+	b = y1f(x);
 	/* quit if b is -inf */
 	GET_FLOAT_WORD(ib,b);
 	for(i=1;i<n&&ib!=0xff800000;i++){
diff --git a/lib/msun/src/e_lgamma.c b/lib/msun/src/e_lgamma.c
index 43f5175603ec..9c4a30e6e135 100644
--- a/lib/msun/src/e_lgamma.c
+++ b/lib/msun/src/e_lgamma.c
@@ -15,10 +15,10 @@
 #include <sys/cdefs.h>
 __FBSDID("$FreeBSD$");
 
-/* __ieee754_lgamma(x)
+/* lgamma(x)
  * Return the logarithm of the Gamma function of x.
  *
- * Method: call __ieee754_lgamma_r
+ * Method: call lgamma_r
  */
 
 #include <float.h>
@@ -29,9 +29,9 @@ __FBSDID("$FreeBSD$");
*** 659 LINES SKIPPED ***

From nobody Mon Aug 14 09:35:23 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RPTlb4dgsz4qD02;
	Mon, 14 Aug 2023 09:35:23 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RPTlb3v1Qz4My4;
	Mon, 14 Aug 2023 09:35:23 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692005723;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=Q2jqxhYpL9UqU3SS/FHH1mSBrx7dSEeJRyJuKEGE14o=;
	b=QAwakrhGKq51MIzVpNOkEfz22hxY8DHpxFrEjRHv4wiG1XwTW/6lltpuhy37yudxeuNDYt
	6FlX7zgImoBXYRVYl7gmV3Y5lTNGcSpahNrYunlxa6yuamy8UF65otYNA4H3Vt2zQ0wr0a
	wOzC1Rc69MwN74sd9Ao7eQdh6vmUUwy7QcachIoAf3UozMFVA+i9nkGxXB/FSEU0soQGT0
	L20u5TRK3KizJ2/YGFyhuVT/cX10urn94Y1bPnbPwknOwP8b1yGnZpf7+8qoE3+BFAQo9j
	qgUdyPAPfo+KH33U5eVz/w2PPnLPMYokfXMWLw5NPA0rVUnXtS6pevU8tWbDkQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692005723;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=Q2jqxhYpL9UqU3SS/FHH1mSBrx7dSEeJRyJuKEGE14o=;
	b=Nw7n0SOxs6gSKbfkAVlWKypiJVpHlT0ZfEIFg4YzYZIV56gOJcJo7y0qF3pcJvY3DMXMxf
	DRM+9VcM2K7AsMvwsE8RRd34DL11XzLH+TEl4g6M3pzhrKpjJWm6ZiigUJh0eS/tD+Uuvz
	sQp4r8R4+M+Z56k5OYXmQo7K1WJc/aRSIPk5Q1Y+LjDtWHRxwJQSieJwPj/R48kR+oC+Oi
	xhpXEgiRKGpssKhgh7/As+FXVrSC5+wCH78KsTMTqAWTvk5BSnW7cH5cgwOtSow9bI6mES
	VjWjHgQR0FnErw2FlPkwX/ey+nxJKCMowabwP5FSjJP1XNdTTeFed2CPRNrVIg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692005723; a=rsa-sha256; cv=none;
	b=lsHFrkeRNjE0GJ3vgp/nHAKlSJYlO7dX7QNFvvXC3d5AJyqOTaea5qp27wMWnHsmNklBsa
	6H85x7Odve641mjyd0c3NtAPT4DoU66SNA7JRitvMnMi0PYR+ycuwjPBqV+TiIJv6+5Ky+
	1xkk8t5KRRoqVtR42qpGMRpvUEk9sQXNGm3v9zaiHEiL6f2+YlOYBZ7y2NSphYNJkrB4LR
	0xM0+pCazByBBroPCGq8Pbr5q8mxaUMbIoWlBXCVlMcRVUA00vjeL/3mhj+pBfhYKSDOeN
	+G8p6pAMhno/2TaBhb0YGw6iAOSpHYbO89HK6orySV7cgrP2mESbJMzd3mURJw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RPTlb2wwJz7rD;
	Mon, 14 Aug 2023 09:35:23 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37E9ZNP2028730;
	Mon, 14 Aug 2023 09:35:23 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37E9ZN6X028727;
	Mon, 14 Aug 2023 09:35:23 GMT
	(envelope-from git)
Date: Mon, 14 Aug 2023 09:35:23 GMT
Message-Id: <202308140935.37E9ZN6X028727@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Richard Scheffenegger <rscheff@FreeBSD.org>
Subject: git: 110b2f4d47dd - stable/13 - tcp: Handle <RST,ACK> in
  SYN-RCVD
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: rscheff
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 110b2f4d47dddadebd71ed327bd9a10f9acbbbfe
Auto-Submitted: auto-generated

The branch stable/13 has been updated by rscheff:

URL: https://cgit.FreeBSD.org/src/commit/?id=110b2f4d47dddadebd71ed327bd9a10f9acbbbfe

commit 110b2f4d47dddadebd71ed327bd9a10f9acbbbfe
Author:     Richard Scheffenegger <rscheff@FreeBSD.org>
AuthorDate: 2023-07-26 22:41:25 +0000
Commit:     Richard Scheffenegger <rscheff@FreeBSD.org>
CommitDate: 2023-08-14 08:48:52 +0000

    tcp: Handle <RST,ACK> in SYN-RCVD
    
    Patch base stack to correctly handle the RST bit independently
    of other header flags per TCP RFC.
    
    MFC after: 1 week
    Reviewed By: tuexen, #transport
    Sponsored by: NetApp, Inc.
    Differential Revision: https://reviews.freebsd.org/D40982
    
    (cherry picked from commit b352ef58c29b1f2967e358c147e0f7faf8cfbef3)
---
 sys/netinet/tcp_input.c    |  4 ++++
 sys/netinet/tcp_syncache.c | 12 ------------
 2 files changed, 4 insertions(+), 12 deletions(-)

diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c
index bb2a0e497dcf..f2890dff7290 100644
--- a/sys/netinet/tcp_input.c
+++ b/sys/netinet/tcp_input.c
@@ -2021,6 +2021,10 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, struct socket *so,
 	 *	if seg contains an ACK, but not for our SYN/ACK, send a RST.
 	 */
 	case TCPS_SYN_RECEIVED:
+		if (thflags & TH_RST) {
+			/* Handle RST segments later. */
+			break;
+		}
 		if ((thflags & TH_ACK) &&
 		    (SEQ_LEQ(th->th_ack, tp->snd_una) ||
 		     SEQ_GT(th->th_ack, tp->snd_max))) {
diff --git a/sys/netinet/tcp_syncache.c b/sys/netinet/tcp_syncache.c
index b3c2fbeb927e..59a8df134f80 100644
--- a/sys/netinet/tcp_syncache.c
+++ b/sys/netinet/tcp_syncache.c
@@ -619,18 +619,6 @@ syncache_chkrst(struct in_conninfo *inc, struct tcphdr *th, struct mbuf *m,
 	sc = syncache_lookup(inc, &sch);	/* returns locked sch */
 	SCH_LOCK_ASSERT(sch);
 
-	/*
-	 * Any RST to our SYN|ACK must not carry ACK, SYN or FIN flags.
-	 * See RFC 793 page 65, section SEGMENT ARRIVES.
-	 */
-	if (th->th_flags & (TH_ACK|TH_SYN|TH_FIN)) {
-		if ((s = tcp_log_addrs(inc, th, NULL, NULL)))
-			log(LOG_DEBUG, "%s; %s: Spurious RST with ACK, SYN or "
-			    "FIN flag set, segment ignored\n", s, __func__);
-		TCPSTAT_INC(tcps_badrst);
-		goto done;
-	}
-
 	/*
 	 * No corresponding connection was found in syncache.
 	 * If syncookies are enabled and possibly exclusively

From nobody Mon Aug 14 09:39:30 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RPTrM14QLz4qDdt;
	Mon, 14 Aug 2023 09:39:31 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RPTrM0Zstz4Njt;
	Mon, 14 Aug 2023 09:39:31 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692005971;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=3UvcGgW4tIctWg23J9Zdk5yrZELKFmSkHnYx/NtfN0I=;
	b=rd+yikvwNnXKN1XqKkNjXJPBL44Sp64lsOJ4BsrW5w/ep1TrUQsS4BEicuf5ngHdarC8i3
	75FYbXhoy0lFmbfGu45/+mDLBDIRV5ON9rTqNoyYPkv2PpKPYqLJTb+6GRPCzuA6zSCSY2
	Cg8pbSPzlZs+HUVrSP0qpfUayaweu7aqUx4gcr6NcTUBPtxERLqEWhP04cFKlluD1VRTgD
	QoWsel8XPr17O4Yf2+orbZGN9ElfIVdXEgJ+2pg+vLAr//n65KPHJIP1VzWTALVUNS/NMB
	yHDuv8EzQEnRg54aTwQfdUd4qV9YfwW2XIZvimQEBmcHqnYiEighQFrXG1O1Xg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692005971;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=3UvcGgW4tIctWg23J9Zdk5yrZELKFmSkHnYx/NtfN0I=;
	b=im8vkTj14Avziq56wkag8QPSdfQIsG5AFrCSD+O8z+J9fWjv4acz4duwKDwegLZZClWnxU
	Yl7W09yFHLhEVn6zqOFQg7m/iOUSJaJv4A35PqqedgkFFBxoqm4Br3FbVJxDqyBnmdWzfr
	YQYxgx9hRGvyuLQcbj1JHWeeQxim/RcPrNlbChOfHfcmcN9NDTg7uECikc2myRDndxa2Jw
	skr974llLXfjXvRywLC1dY+seG85zIN7/CdOFUszTcMwU9wiNmnqqDCnEdaZ4iKepSmWdA
	MjUJpmV9d7B52+e4a/xXX0H5qAQBIT+ePUZtbWTTlo9erdOYw2Fv673HXvrSpQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692005971; a=rsa-sha256; cv=none;
	b=VChcj/wOKy8uCI051e6EKqLNt0wQ+vyrABNKPHBPLI1SzFFpy1NGx70KpEGQfDWOC51KLR
	5TLP/x9uhXgv0b2aS5aA9yvvk9CMw44n6HeBxFOuh479XAB5PFp4HFvsjlmLSLheR8dEZR
	ie6MwJ2rC2oAswsyOWmEHh6lHS/VSw6dDIdD+/WZQmMRZNWPLI68mijzh0E5kvy+xppsvE
	Zpzc5robbdzTCaEliK8mqpX7q00mpcx7urG6AFEDTbSq3zpORt5UilgvWQ6dHmziAaaVmL
	8ewTDy8ha+5KmerKqnhbgOvoW0T57GOv/ITgdAi9mALmopvf9NdgPssIuryRGQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RPTrL6g08z8M4;
	Mon, 14 Aug 2023 09:39:30 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37E9dUxQ029447;
	Mon, 14 Aug 2023 09:39:30 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37E9dUfL029444;
	Mon, 14 Aug 2023 09:39:30 GMT
	(envelope-from git)
Date: Mon, 14 Aug 2023 09:39:30 GMT
Message-Id: <202308140939.37E9dUfL029444@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Richard Scheffenegger <rscheff@FreeBSD.org>
Subject: git: b2d895f70ded - stable/12 - tcp: Handle <RST,ACK> in
  SYN-RCVD
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: rscheff
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/12
X-Git-Reftype: branch
X-Git-Commit: b2d895f70ded2c7c179d6380efb1423fabad5564
Auto-Submitted: auto-generated

The branch stable/12 has been updated by rscheff:

URL: https://cgit.FreeBSD.org/src/commit/?id=b2d895f70ded2c7c179d6380efb1423fabad5564

commit b2d895f70ded2c7c179d6380efb1423fabad5564
Author:     Richard Scheffenegger <rscheff@FreeBSD.org>
AuthorDate: 2023-07-26 22:41:25 +0000
Commit:     Richard Scheffenegger <rscheff@FreeBSD.org>
CommitDate: 2023-08-14 09:38:03 +0000

    tcp: Handle <RST,ACK> in SYN-RCVD
    
    Patch base stack to correctly handle the RST bit independently
    of other header flags per TCP RFC.
    
    MFC after: 1 week
    Reviewed By: tuexen, #transport
    Sponsored by: NetApp, Inc.
    Differential Revision: https://reviews.freebsd.org/D40982
    
    (cherry picked from commit b352ef58c29b1f2967e358c147e0f7faf8cfbef3)
---
 sys/netinet/tcp_input.c    |  4 ++++
 sys/netinet/tcp_syncache.c | 12 ------------
 2 files changed, 4 insertions(+), 12 deletions(-)

diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c
index fd55a5a09369..0fa2c7ac6562 100644
--- a/sys/netinet/tcp_input.c
+++ b/sys/netinet/tcp_input.c
@@ -1966,6 +1966,10 @@ tcp_do_segment(struct mbuf *m, struct tcphdr *th, struct socket *so,
 	 *	if seg contains an ACK, but not for our SYN/ACK, send a RST.
 	 */
 	case TCPS_SYN_RECEIVED:
+		if (thflags & TH_RST) {
+			/* Handle RST segments later. */
+			break;
+		}
 		if ((thflags & TH_ACK) &&
 		    (SEQ_LEQ(th->th_ack, tp->snd_una) ||
 		     SEQ_GT(th->th_ack, tp->snd_max))) {
diff --git a/sys/netinet/tcp_syncache.c b/sys/netinet/tcp_syncache.c
index d06b54cffc1c..a530bbbabb2a 100644
--- a/sys/netinet/tcp_syncache.c
+++ b/sys/netinet/tcp_syncache.c
@@ -558,18 +558,6 @@ syncache_chkrst(struct in_conninfo *inc, struct tcphdr *th, struct mbuf *m)
 	sc = syncache_lookup(inc, &sch);	/* returns locked sch */
 	SCH_LOCK_ASSERT(sch);
 
-	/*
-	 * Any RST to our SYN|ACK must not carry ACK, SYN or FIN flags.
-	 * See RFC 793 page 65, section SEGMENT ARRIVES.
-	 */
-	if (th->th_flags & (TH_ACK|TH_SYN|TH_FIN)) {
-		if ((s = tcp_log_addrs(inc, th, NULL, NULL)))
-			log(LOG_DEBUG, "%s; %s: Spurious RST with ACK, SYN or "
-			    "FIN flag set, segment ignored\n", s, __func__);
-		TCPSTAT_INC(tcps_badrst);
-		goto done;
-	}
-
 	/*
 	 * No corresponding connection was found in syncache.
 	 * If syncookies are enabled and possibly exclusively

From nobody Wed Aug 16 09:17:30 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RQjG24Sh4z4qS3F;
	Wed, 16 Aug 2023 09:17:30 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RQjG23b66z4Dx2;
	Wed, 16 Aug 2023 09:17:30 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692177450;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=7CCQT8BGE1y7XcV4MQ+skuc1Q9vWccxNFB3q9DMbKZQ=;
	b=anIMTH26VbPBzmdpHzYcnl5m374UoHlAKg+1eg9IhlomroRX5gAd890DFwHbg7/wAMqFzi
	oKBElsFTv8gUVKraQse4QsOhddA8+faJf7iTZzzuK8knNd0rFIX3mbB8Vbz+eEKIMZYd/e
	/IT3oodZp7zvdJ+lnm1DjykeF/prqOCKaX38sxtiA45FQaWwCrbQGBUa7pnWC+UTWke3tt
	K21L/2Fj36wV3MjykeM1SqYyrTqVOvnwY6N0UD2xOp0Uq0L85WxPPWRHtgv97HPao838Ud
	hb4fShlH6Xyi7+ob0hdRXxf0EvhNW8oiDI23YQOGrrnSLWuSfAIkRDzH4Tb3Jw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692177450;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=7CCQT8BGE1y7XcV4MQ+skuc1Q9vWccxNFB3q9DMbKZQ=;
	b=WmIPhDgbnkDLYDK7x9KhXTbx1VIK9rz0sBa2umRGo0d4Y+PT5GCBop5S8uE0PhJulPGmen
	Kjrqk0V/AcCr/v/oCnpfeYZRztId+GQrnH+aIutOjb6Qprov+8WYw6wL2tmgzuK+6uQ7X2
	cP5PyeJjvL2SeTvNewKY8y8JZDVfVx/X7OmkSfICQdhRaP692wMh35gMdBpOd2mQr/9447
	ON8RusDkJaJL42E3Gf7McSGWWFmOumwLovFL0AXG7C+QLvTXijfPm/Ti8cyQd5QBIx6u+4
	gQHDemVzrRJ9+ULB1Jsu2ZZ5eY9VXGii9Hn02sx+x36NEpkonlU14AwC30GhHg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692177450; a=rsa-sha256; cv=none;
	b=fpV0IuLCUlfILSKO15gSwljA/KkKnVrIVTDOIAxVixfdfBimNZeXqXwwk2Qhr5HHeK0wMy
	VHoRPOXay8F7fvexd/wjxBiVas5C4Dqs2+/aYt7PJk0mbBW7h8olcBd+bFB45QwJ/XMcY/
	cgKZEeyB+1BmJ/PvnXCwVSIlogvnHdFC5e6GvnCEpG80df0f8iRsfxFjyS+KxjWm7P38uO
	mTErgSUEgZvvUzukDahwP9sGEPTJp2BlYv3vIb+3LBKZFLv5oQEgQcYi8cN9JpdCBy7rPv
	iMGh4rR7nVu+mBEt0i+DE/VVX74k6yTnzQ2lRmHaoiDZQlkX30I2d26OqhELaA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RQjG22Q79zm5D;
	Wed, 16 Aug 2023 09:17:30 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37G9HU5O093611;
	Wed, 16 Aug 2023 09:17:30 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37G9HUnt093608;
	Wed, 16 Aug 2023 09:17:30 GMT
	(envelope-from git)
Date: Wed, 16 Aug 2023 09:17:30 GMT
Message-Id: <202308160917.37G9HUnt093608@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Konstantin Belousov <kib@FreeBSD.org>
Subject: git: b9ccef49d02c - stable/13 - vnode read(2)/write(2):
  acquire rangelock regardless of do_vn_io_fault()
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: kib
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: b9ccef49d02c9ad9e3b986347562408d80271b6c
Auto-Submitted: auto-generated

The branch stable/13 has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=b9ccef49d02c9ad9e3b986347562408d80271b6c

commit b9ccef49d02c9ad9e3b986347562408d80271b6c
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2023-07-23 15:55:50 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2023-08-16 09:16:09 +0000

    vnode read(2)/write(2): acquire rangelock regardless of do_vn_io_fault()
    
    PR:     272678
    
    (cherry picked from commit 5b353925ff61b9ddb97bb453ba75278b578ed7d9)
---
 sys/kern/vfs_vnops.c | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c
index 8f618a9ad46d..42080181d094 100644
--- a/sys/kern/vfs_vnops.c
+++ b/sys/kern/vfs_vnops.c
@@ -1442,6 +1442,7 @@ vn_io_fault(struct file *fp, struct uio *uio, struct ucred *active_cred,
 	void *rl_cookie;
 	struct vn_io_fault_args args;
 	int error;
+	bool rl_locked;
 
 	doio = uio->uio_rw == UIO_READ ? vn_read : vn_write;
 	vp = fp->f_vnode;
@@ -1464,12 +1465,7 @@ vn_io_fault(struct file *fp, struct uio *uio, struct ucred *active_cred,
 	}
 
 	foffset_lock_uio(fp, uio, flags);
-	if (do_vn_io_fault(vp, uio)) {
-		args.kind = VN_IO_FAULT_FOP;
-		args.args.fop_args.fp = fp;
-		args.args.fop_args.doio = doio;
-		args.cred = active_cred;
-		args.flags = flags | FOF_OFFSET;
+	if (vp->v_type == VREG) {
 		if (uio->uio_rw == UIO_READ) {
 			rl_cookie = vn_rangelock_rlock(vp, uio->uio_offset,
 			    uio->uio_offset + uio->uio_resid);
@@ -1481,11 +1477,22 @@ vn_io_fault(struct file *fp, struct uio *uio, struct ucred *active_cred,
 			rl_cookie = vn_rangelock_wlock(vp, uio->uio_offset,
 			    uio->uio_offset + uio->uio_resid);
 		}
+		rl_locked = true;
+	} else {
+		rl_locked = false;
+	}
+	if (do_vn_io_fault(vp, uio)) {
+		args.kind = VN_IO_FAULT_FOP;
+		args.args.fop_args.fp = fp;
+		args.args.fop_args.doio = doio;
+		args.cred = active_cred;
+		args.flags = flags | FOF_OFFSET;
 		error = vn_io_fault1(vp, uio, &args, td);
-		vn_rangelock_unlock(vp, rl_cookie);
 	} else {
 		error = doio(fp, uio, active_cred, flags | FOF_OFFSET, td);
 	}
+	if (rl_locked)
+		vn_rangelock_unlock(vp, rl_cookie);
 	foffset_unlock_uio(fp, uio, flags);
 	return (error);
 }

From nobody Wed Aug 16 09:17:31 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RQjG34mnDz4qS3G;
	Wed, 16 Aug 2023 09:17:31 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RQjG3492hz4FH4;
	Wed, 16 Aug 2023 09:17:31 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692177451;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=QubN6wewfC3qcBT537985FxaZ167GqdaNitI/xK+JsA=;
	b=kPlJ9p6QBDOWZNVno60bQmwwKx5OjoxBKtATTz4Khg1c3Tkxk/ce7bWGt5CUPB9uM3RVUE
	RJcaweS/vI2VWYqCTgAQ5/oBHxAvaFjr5LbE7znnwx3G1iX6GJ7UA6b+MNCnZ49sJeYGSE
	1V7gtrtM7XRrR0YJ703A5PDP6Odzi7rme9SCFBkd1SxZIulHZfIrxcWU2Ku2rKKO9xGh2A
	6b4QmvpxIMmUmdRWjgiAP9ZrY5JWIzvGGkussxVMDOGbIfpZLO24reRwDiWgbsW1+vZJka
	DCoQJcdBbi5OkMmKguA49HfTlR/lioun4vBlGlTDpYp/nzk3cvRIj8oYDAaGzw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692177451;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=QubN6wewfC3qcBT537985FxaZ167GqdaNitI/xK+JsA=;
	b=d7tgYvtZoqkyasq1kHqf53LXhbC1jioIOGNVUwFUhqLxSpi/MmVe+NdIja3zcNn8oNoJov
	bN6Z2FXUY/LxK2eN6llKSTUQAtCi/hJ4Kp3rV12jnYsDqSlYyfZsP3FaXzP0ed37Xyv+V1
	xBC6dKvaN16WvPB4m3TgthoWFx34UvauQEHnoFm34ZtEj64KXNt7cCMwmUmYhh4I3J2WTG
	lNPfBG310dO4bw8MpIixtqE0No8oXiau8kASZwv3oK5PrTusqdYSSBXGTit6fCFnON93CE
	lex10RgwA/p9USWVpWu20efQIqVY+hiM/VOB1gZ7ozXS7w3taKz9yw4NeASnxw==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692177451; a=rsa-sha256; cv=none;
	b=XHn75NPakuoUXdalrDN9/OCTMAH7PV0HmhPEA4yVdxEQfxgBDl/4XDr7Z7S+UdI8hkZZfm
	BBphvYsvJd+xHsIqmdagrwNaOeHmH5RKgAL7vgvY4E2g8GBg2rChnW+rST1iNF+0Pqh28m
	0K0dg9Vu4w5LuYh4+8cKitLW8TeVjQypIWQHStvzJBwsCjhmvzRVWN1yVneyWDmhoYUH7k
	eslpOwnglD4IRwRkGxrInqrvxqbJAWPF/ga3M1JNt1ZZ8rkBqyh2eNfHwofg5H3jQC4k7o
	sPFlzyALYXiQvXdddSGEktbWBgG2SMMqk/FfQ2dudwc8p9vcV9JntgvLtcXhbw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RQjG32wBMzmVD;
	Wed, 16 Aug 2023 09:17:31 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37G9HVMm093662;
	Wed, 16 Aug 2023 09:17:31 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37G9HVdr093659;
	Wed, 16 Aug 2023 09:17:31 GMT
	(envelope-from git)
Date: Wed, 16 Aug 2023 09:17:31 GMT
Message-Id: <202308160917.37G9HVdr093659@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Konstantin Belousov <kib@FreeBSD.org>
Subject: git: febdac6a879a - stable/13 - Revert "vnode read(2)/write(2):
  acquire rangelock regardless of do_vn_io_fault()"
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: kib
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: febdac6a879ab5727d00086fc7c6f295b3036896
Auto-Submitted: auto-generated

The branch stable/13 has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=febdac6a879ab5727d00086fc7c6f295b3036896

commit febdac6a879ab5727d00086fc7c6f295b3036896
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2023-08-06 01:23:42 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2023-08-16 09:16:09 +0000

    Revert "vnode read(2)/write(2): acquire rangelock regardless of do_vn_io_fault()"
    
    (cherry picked from commit 651fdc3d198d066b18823db3b74cf38a0144dfac)
---
 sys/kern/vfs_vnops.c | 21 +++++++--------------
 1 file changed, 7 insertions(+), 14 deletions(-)

diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c
index 42080181d094..8f618a9ad46d 100644
--- a/sys/kern/vfs_vnops.c
+++ b/sys/kern/vfs_vnops.c
@@ -1442,7 +1442,6 @@ vn_io_fault(struct file *fp, struct uio *uio, struct ucred *active_cred,
 	void *rl_cookie;
 	struct vn_io_fault_args args;
 	int error;
-	bool rl_locked;
 
 	doio = uio->uio_rw == UIO_READ ? vn_read : vn_write;
 	vp = fp->f_vnode;
@@ -1465,7 +1464,12 @@ vn_io_fault(struct file *fp, struct uio *uio, struct ucred *active_cred,
 	}
 
 	foffset_lock_uio(fp, uio, flags);
-	if (vp->v_type == VREG) {
+	if (do_vn_io_fault(vp, uio)) {
+		args.kind = VN_IO_FAULT_FOP;
+		args.args.fop_args.fp = fp;
+		args.args.fop_args.doio = doio;
+		args.cred = active_cred;
+		args.flags = flags | FOF_OFFSET;
 		if (uio->uio_rw == UIO_READ) {
 			rl_cookie = vn_rangelock_rlock(vp, uio->uio_offset,
 			    uio->uio_offset + uio->uio_resid);
@@ -1477,22 +1481,11 @@ vn_io_fault(struct file *fp, struct uio *uio, struct ucred *active_cred,
 			rl_cookie = vn_rangelock_wlock(vp, uio->uio_offset,
 			    uio->uio_offset + uio->uio_resid);
 		}
-		rl_locked = true;
-	} else {
-		rl_locked = false;
-	}
-	if (do_vn_io_fault(vp, uio)) {
-		args.kind = VN_IO_FAULT_FOP;
-		args.args.fop_args.fp = fp;
-		args.args.fop_args.doio = doio;
-		args.cred = active_cred;
-		args.flags = flags | FOF_OFFSET;
 		error = vn_io_fault1(vp, uio, &args, td);
+		vn_rangelock_unlock(vp, rl_cookie);
 	} else {
 		error = doio(fp, uio, active_cred, flags | FOF_OFFSET, td);
 	}
-	if (rl_locked)
-		vn_rangelock_unlock(vp, rl_cookie);
 	foffset_unlock_uio(fp, uio, flags);
 	return (error);
 }

From nobody Wed Aug 16 09:17:32 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RQjG53F7Rz4qSD0;
	Wed, 16 Aug 2023 09:17:33 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RQjG455P4z4F0g;
	Wed, 16 Aug 2023 09:17:32 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692177452;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=GrddOUuFDRXzRRSz0Bd0x1Wib4Fc4ioI4HCIQO9dz5Q=;
	b=elN5eeFEXLS9d+gPXEZRKSlVZ0+JMhL9S6RNu1Uy52Gq/z/GPOvORzAVRrgUgFY3XnOUgt
	0veirPEz9eWR6CohOncN6LSet2VDpBhpr5KLEsa7C4xH4PuhfSmCU8jADQ4S83PSWisxVB
	X1bzlQqk+IOipPLeRDX73VJ+Hj+8LA8i23Lk1aPOOM37VK2K9x+uGCylPO5I5Ay3OH7xV2
	zlrapBFxFb0ko4602h1A7SUGBhz2yC5VwXVqDztdmo4x5J8uR/fojyXBpvCNwgV/Ury/kU
	NkK+nhLm4tBZy4hM66yTFFqZgMtb2Xvr0TTRhCSsh9C7V0ZMzJ8UvhlcTgFHkQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692177452;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=GrddOUuFDRXzRRSz0Bd0x1Wib4Fc4ioI4HCIQO9dz5Q=;
	b=skpssNCgHNRk1SOPFcstmkKi8715wat1RxhcF2pew2se+pOix3sokEOS8K4QzU4mq5aP9j
	GrVm4KMzXYykFOHSBSFAkV/cvL7BkJ8Cw9fdeTRULSL/57Un76kpyMAFUeMTcDDcVhAxRd
	jryO0c3hnn+y+00Gc4Y67kbbTYvYlCqUyioL5oBoSh4tWkSrC6LmVHRhuwmjQWRVTPAWUY
	GO7RSYbonmidYqjmsYtJkRQ49tWKwkSsdo7hfzeHUm0zFCm68iXRAlhm3vExr6jV8GQOUu
	nIyhVKpi0whzselUDgybNN/FShoxpE7PhSRgUOk0PbuHT74SnOWlfcSjzPapeg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692177452; a=rsa-sha256; cv=none;
	b=oWWK5ZHcfC/qzMo6U7zmzatOArnzL1L/iW/ADA58YtKdcUw3R0KR2vO/sgSbIzg5D0ySK7
	E1nZEH0YZLgpIUqio5Q14ZoNr46aFg7xpwmcdURrAsVPe5XG2LVwK5cc66j1jTJTeRxHeM
	8W/YwU3dPV/OM2Npf8orBBzQZBoLRbajhfLuQ5aAC3bJvoSdfbfV5LDeZdX3xCjo9lsJOG
	KDfcqti1D0Rg8tUfp8Y1sU2FxfWQgBg7B7YTFuKOJ7/wHB0E1Kho4qu4/iNEhyYtgT7ADk
	dvOl2XZy1evLhTzLNlPf/Elhz6epKEh+BcsoqFbzn5nkI8c/IznJh4faJj+/rA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RQjG43yq5zm5F;
	Wed, 16 Aug 2023 09:17:32 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37G9HWvB093716;
	Wed, 16 Aug 2023 09:17:32 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37G9HWej093713;
	Wed, 16 Aug 2023 09:17:32 GMT
	(envelope-from git)
Date: Wed, 16 Aug 2023 09:17:32 GMT
Message-Id: <202308160917.37G9HWej093713@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Konstantin Belousov <kib@FreeBSD.org>
Subject: git: ee3b3146293c - stable/13 - vnode io: request range-locking
  when pgcache reads are enabled
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: kib
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: ee3b3146293c0dd2e8a779ebb0a3ee65318e8c3b
Auto-Submitted: auto-generated

The branch stable/13 has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=ee3b3146293c0dd2e8a779ebb0a3ee65318e8c3b

commit ee3b3146293c0dd2e8a779ebb0a3ee65318e8c3b
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2023-08-06 01:23:35 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2023-08-16 09:16:09 +0000

    vnode io: request range-locking when pgcache reads are enabled
    
    PR:     272678
    
    (cherry picked from commit 821dec4d56a876db56a82cf1dc54a84905b74f5b)
---
 sys/kern/vfs_vnops.c | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/sys/kern/vfs_vnops.c b/sys/kern/vfs_vnops.c
index 8f618a9ad46d..d9bd52c2822e 100644
--- a/sys/kern/vfs_vnops.c
+++ b/sys/kern/vfs_vnops.c
@@ -1442,6 +1442,7 @@ vn_io_fault(struct file *fp, struct uio *uio, struct ucred *active_cred,
 	void *rl_cookie;
 	struct vn_io_fault_args args;
 	int error;
+	bool do_io_fault, do_rangelock;
 
 	doio = uio->uio_rw == UIO_READ ? vn_read : vn_write;
 	vp = fp->f_vnode;
@@ -1463,13 +1464,10 @@ vn_io_fault(struct file *fp, struct uio *uio, struct ucred *active_cred,
 			return (EISDIR);
 	}
 
+	do_io_fault = do_vn_io_fault(vp, uio);
+	do_rangelock = do_io_fault || (vn_irflag_read(vp) & VIRF_PGREAD) != 0;
 	foffset_lock_uio(fp, uio, flags);
-	if (do_vn_io_fault(vp, uio)) {
-		args.kind = VN_IO_FAULT_FOP;
-		args.args.fop_args.fp = fp;
-		args.args.fop_args.doio = doio;
-		args.cred = active_cred;
-		args.flags = flags | FOF_OFFSET;
+	if (do_rangelock) {
 		if (uio->uio_rw == UIO_READ) {
 			rl_cookie = vn_rangelock_rlock(vp, uio->uio_offset,
 			    uio->uio_offset + uio->uio_resid);
@@ -1481,11 +1479,19 @@ vn_io_fault(struct file *fp, struct uio *uio, struct ucred *active_cred,
 			rl_cookie = vn_rangelock_wlock(vp, uio->uio_offset,
 			    uio->uio_offset + uio->uio_resid);
 		}
+	}
+	if (do_io_fault) {
+		args.kind = VN_IO_FAULT_FOP;
+		args.args.fop_args.fp = fp;
+		args.args.fop_args.doio = doio;
+		args.cred = active_cred;
+		args.flags = flags | FOF_OFFSET;
 		error = vn_io_fault1(vp, uio, &args, td);
-		vn_rangelock_unlock(vp, rl_cookie);
 	} else {
 		error = doio(fp, uio, active_cred, flags | FOF_OFFSET, td);
 	}
+	if (do_rangelock)
+		vn_rangelock_unlock(vp, rl_cookie);
 	foffset_unlock_uio(fp, uio, flags);
 	return (error);
 }

From nobody Wed Aug 16 09:17:33 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RQjG64zfDz4qS5P;
	Wed, 16 Aug 2023 09:17:34 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RQjG55pG2z4FHS;
	Wed, 16 Aug 2023 09:17:33 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692177453;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=fjPdlh0wXyP22A9Kyv/oxrrEjvBt+dTRzVKU3KD/8uY=;
	b=xEB1IYIM4YqkcVE1NHRzNg8RMGLRkWiE3en84a9OLzvQpXNrEfEpf7X1I6RGovWIC2DdNj
	RAhpV+IpHXVlyg9hO8gAF5sMkWeKWFzhIrW5pMrrFRtSJG6PRqc2vjbpcJdAaC9mcGy7ST
	twz+Vb1Zk8pQk6/kO3fBty2V7sN5pkP1xTLv4pIQJJ/2gsglzm9rW+UcWViFJR5YOx4chX
	A026rSLNTZ5XjQ+54MDXKo/Tw+Ws9tn8yt0mHWoK/BO2Dz8rxOBJrpPVMH1p1eha4xuhWX
	HgLPk4UvTFp9NhcgpVS2BmtCzcmvdUturAcZhMgwC/GF00GolelzCbII/uv2+w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692177453;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=fjPdlh0wXyP22A9Kyv/oxrrEjvBt+dTRzVKU3KD/8uY=;
	b=YQlNaLIpdd4I4veRXQ2rd+tAgVq7T66tXvJrp9uikkcj1XStc+cIzRiHSI/qvOmsK8Pf+W
	yOPwkJJs7sG9ZPmBrlw/crkqoMnFQj9BL/W85WftXKuOqsX2VVvE+JzPJG2zVcEmdjTcfU
	PejyeTc9zoXcRRP+wniqL4OPeK/EDZPGgjvpoLl6Ku2GKvXR6Ymo2C0JRlr7hDUDpUerN3
	q8nAtV7x3FiyOi2KA6gyLodRqtzfCKX1OoBjVCkhIRf44A1OnRWx1VkGIwF77re25i1gh8
	c+l1lLw6aeTIggXwFqYCGIi/i7c4t+bkLsF3Wa/7Xvv3Muuq+hBnZh5wjy0f5Q==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692177453; a=rsa-sha256; cv=none;
	b=MU5NwtbROlKCV6vlXzzrUQ+8MJYTbSzP334lvl8AJeaVh+ER1bgDCuYuH9ayTlnqMKrenr
	GrK8UP8jr6yTJD9PytdY4hsUFvmnqKrVvCgKBHAcwXjoK3X8BZlbnqDZnqoaISQCoRqcTy
	OF4QSxQfIdwUnVmAdgAah0abwfi6WpLJnfeDtRdrSXLZOio5Edj67Cm3zXVQASBqRmi9Hr
	JelinOp1mytcMqmV1fT4Uk6FusXMMs4XnCz4qf94L8hXbCV8XYsTdF7imenta8HTctUbGl
	1swsYBlJBj3qw4+NthzWm5/7dkBSa7yqD9/MhKayJAgK2bI5Cu/rmJpYbo+WLA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RQjG54YMRzm0M;
	Wed, 16 Aug 2023 09:17:33 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37G9HX5h093775;
	Wed, 16 Aug 2023 09:17:33 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37G9HXEm093772;
	Wed, 16 Aug 2023 09:17:33 GMT
	(envelope-from git)
Date: Wed, 16 Aug 2023 09:17:33 GMT
Message-Id: <202308160917.37G9HXEm093772@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Konstantin Belousov <kib@FreeBSD.org>
Subject: git: 14e8b328e324 - stable/13 - tmpfs: add a knob to enable
  pgcache read for mount
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: kib
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 14e8b328e3245d9260212ec9e108f7fe23158cd8
Auto-Submitted: auto-generated

The branch stable/13 has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=14e8b328e3245d9260212ec9e108f7fe23158cd8

commit 14e8b328e3245d9260212ec9e108f7fe23158cd8
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2023-08-06 01:35:36 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2023-08-16 09:16:09 +0000

    tmpfs: add a knob to enable pgcache read for mount
    
    (cherry picked from commit 0f613ab85e5a5274704d179f39fb15163d46e7c4)
---
 sys/fs/tmpfs/tmpfs.h        | 3 +++
 sys/fs/tmpfs/tmpfs_subr.c   | 2 +-
 sys/fs/tmpfs/tmpfs_vfsops.c | 4 +++-
 3 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/sys/fs/tmpfs/tmpfs.h b/sys/fs/tmpfs/tmpfs.h
index 8d2ec4354d3e..a56fdfa6c408 100644
--- a/sys/fs/tmpfs/tmpfs.h
+++ b/sys/fs/tmpfs/tmpfs.h
@@ -405,6 +405,9 @@ struct tmpfs_mount {
 	bool			tm_nonc;
 	/* Do not update mtime on writes through mmaped areas. */
 	bool			tm_nomtime;
+
+	/* Read from page cache directly. */
+	bool			tm_pgread;
 };
 #define	TMPFS_LOCK(tm) mtx_lock(&(tm)->tm_allnode_lock)
 #define	TMPFS_UNLOCK(tm) mtx_unlock(&(tm)->tm_allnode_lock)
diff --git a/sys/fs/tmpfs/tmpfs_subr.c b/sys/fs/tmpfs/tmpfs_subr.c
index 49c1b729d753..98f28ead23e6 100644
--- a/sys/fs/tmpfs/tmpfs_subr.c
+++ b/sys/fs/tmpfs/tmpfs_subr.c
@@ -1069,7 +1069,7 @@ loop:
 		VI_LOCK(vp);
 		KASSERT(vp->v_object == NULL, ("Not NULL v_object in tmpfs"));
 		vp->v_object = object;
-		vn_irflag_set_locked(vp, VIRF_PGREAD);
+		vn_irflag_set_locked(vp, (tm->tm_pgread ? VIRF_PGREAD : 0));
 		VI_UNLOCK(vp);
 		VM_OBJECT_WUNLOCK(object);
 		break;
diff --git a/sys/fs/tmpfs/tmpfs_vfsops.c b/sys/fs/tmpfs/tmpfs_vfsops.c
index 32c26823efc1..9a9c3f4570de 100644
--- a/sys/fs/tmpfs/tmpfs_vfsops.c
+++ b/sys/fs/tmpfs/tmpfs_vfsops.c
@@ -329,7 +329,7 @@ tmpfs_mount(struct mount *mp)
 	struct tmpfs_mount *tmp;
 	struct tmpfs_node *root;
 	int error;
-	bool nomtime, nonc;
+	bool nomtime, nonc, pgread;
 	/* Size counters. */
 	u_quad_t pages;
 	off_t nodes_max, size_max, maxfilesize;
@@ -407,6 +407,7 @@ tmpfs_mount(struct mount *mp)
 		maxfilesize = 0;
 	nonc = vfs_getopt(mp->mnt_optnew, "nonc", NULL, NULL) == 0;
 	nomtime = vfs_getopt(mp->mnt_optnew, "nomtime", NULL, NULL) == 0;
+	pgread = vfs_getopt(mp->mnt_optnew, "pgread", NULL, NULL) == 0;
 
 	/* Do not allow mounts if we do not have enough memory to preserve
 	 * the minimum reserved pages. */
@@ -454,6 +455,7 @@ tmpfs_mount(struct mount *mp)
 	tmp->tm_ronly = (mp->mnt_flag & MNT_RDONLY) != 0;
 	tmp->tm_nonc = nonc;
 	tmp->tm_nomtime = nomtime;
+	tmp->tm_pgread = pgread;
 
 	/* Allocate the root node. */
 	error = tmpfs_alloc_node(mp, tmp, VDIR, root_uid, root_gid,

From nobody Wed Aug 16 09:17:34 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RQjG70BKWz4qSD3;
	Wed, 16 Aug 2023 09:17:35 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RQjG66n9tz4F5s;
	Wed, 16 Aug 2023 09:17:34 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692177454;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=hWEsrRdGkDFj2CHbGYtXBuh2oswwBRuYV6MLVR0nZEA=;
	b=rjXb5iObbpbzS3DGIw2ghZAqMkTMD0WheD/QOklSV6ErIkbY2+YolNloUjHUdwJb39vTbm
	Z9rT7yv99nKAfGxblQTd2veiv6kWXQbL9uWyRM0JekdS/oeHvgrDclNGqqaVCsELjQY2aQ
	VR/6ipNleLjENnlK2Qh0KNjNk6zgRVcCoKoycVXEMoaH1c9TOwRrzFXl4U4ZnDy3IYENmA
	qQv9CzPCn5vGzgLJf8NPGeITB5Aq0XhfaS9Y3oY+VF8G+bqvP+xQXBy8HMbZzxEgWM3y1O
	hKBTdJHB20+Uv4NiI5URPTL8sqFfU+5AADCBUdvddfko/e7gqCdzl4WeOorW4A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692177454;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=hWEsrRdGkDFj2CHbGYtXBuh2oswwBRuYV6MLVR0nZEA=;
	b=mqHNYq2I/8XpHW2oQDEQWXRS/y8vvir6VaD9Q224nXOGpvIcZA2NQUKNEPVCqg4OXs1two
	R5zurm81ZcSSX9IqX26fQyAqZJGMI6mND7jmnMyhb/TiCk+wD95zpY23YgaE80DlT/QbtI
	20PJKggpd91INBh7c7DMJeW2R8JxccZawtk0bK+yDDsoQwFr5Xlp8xwPrWJjiJqIZXRCno
	YkQdQ0H8HBb7b77CGwsmy796tpZTiTflcb8MJph61ZgcnZphxU+LApfo6MlsFeHQHF0Qam
	DfvhUZ7dN65r68GRsqPfVDenBR+PAaZSCiwQ3AlsCEY6ZznijfYBj/Cymgc1Ug==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692177455; a=rsa-sha256; cv=none;
	b=Utb+8eiZ9SMSM083oM4g3LoIZXtukoOiusUmxMTN+s1zko/e1vzw2BcEuL3+ZB5LsrAvPQ
	rlhSFk1NmFJErnpye+AX5PVW+P4uXJlllZJuOkKIBHaDjPRwlPU8fjSFJ9zyWY55WIZqg+
	WRGk3vNnN9nMnNMAGsFgC85oUW/VtiI4iBzhAVP2wtNvqwCVRty+DC6KZIlSB4kpvY0cL+
	mTJfLbhuh+nbygbDC+P8HQdJ8bWlUzxDU3sD7Jja17VdjaMGk5WyUYkNaAy86LiTrzZazw
	/TshoL/uez9sp1+J/YUaCici3NC/G//uxUOcauNIVcdl30Zlw4xj/DIs91vkOg==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RQjG65tSRzmMn;
	Wed, 16 Aug 2023 09:17:34 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37G9HYNj093841;
	Wed, 16 Aug 2023 09:17:34 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37G9HYHv093838;
	Wed, 16 Aug 2023 09:17:34 GMT
	(envelope-from git)
Date: Wed, 16 Aug 2023 09:17:34 GMT
Message-Id: <202308160917.37G9HYHv093838@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Konstantin Belousov <kib@FreeBSD.org>
Subject: git: 0fbf21482f5a - stable/13 - tmpfs: add the "pgread"
  mount option to the allowed options list for mount
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: kib
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 0fbf21482f5a594d26314e1354df4dd691bc6401
Auto-Submitted: auto-generated

The branch stable/13 has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=0fbf21482f5a594d26314e1354df4dd691bc6401

commit 0fbf21482f5a594d26314e1354df4dd691bc6401
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2023-08-11 18:00:44 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2023-08-16 09:16:09 +0000

    tmpfs: add the "pgread" mount option to the allowed options list for mount
    
    (cherry picked from commit 765ad5b28d3fa272208aedc3047a6a3dff561037)
---
 sys/fs/tmpfs/tmpfs_vfsops.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys/fs/tmpfs/tmpfs_vfsops.c b/sys/fs/tmpfs/tmpfs_vfsops.c
index 9a9c3f4570de..af0b158988f7 100644
--- a/sys/fs/tmpfs/tmpfs_vfsops.c
+++ b/sys/fs/tmpfs/tmpfs_vfsops.c
@@ -93,7 +93,7 @@ static int	tmpfs_statfs(struct mount *, struct statfs *);
 
 static const char *tmpfs_opts[] = {
 	"from", "size", "maxfilesize", "inodes", "uid", "gid", "mode", "export",
-	"union", "nonc", "nomtime", "nosymfollow", NULL
+	"union", "nonc", "nomtime", "nosymfollow", "pgread", NULL
 };
 
 static const char *tmpfs_updateopts[] = {

From nobody Wed Aug 16 12:32:13 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RQnZk2Pw2z4qd54;
	Wed, 16 Aug 2023 12:32:14 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RQnZj6zhwz4TFk;
	Wed, 16 Aug 2023 12:32:13 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692189134;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=L4ut3NxO5Ny/TpOt1kPCkpi83B4YQUIM8ZSBiFJyZ0Q=;
	b=hptau+XfLICKo27BR50DdvteXgXdQonYOazsdTJiTlKijT8sT154oyojjHkejvpZwQfK9m
	lXbH9R88Sh3aCJyJAoE7mijdtjhO+O4qSdRczNow0OPKBIOj4EAhfOmUs6DsIB7+HSNNn9
	voMvjSX+HGz6BF/SJrMJHr7Y8Q+aKGZmSzqC/0rtd5RO8LBS1WnuY0G5l3UC0xvc94zXwO
	noS4M9P5hwhe5e9r5Lm5uZPx5blGSggJPvyHtHe+edHPHCk/BOy6d9emfsIvPjskenfUhp
	LglOz/eX5Q+sejqCvVN9323sE7+HHRlqFI/Sf0Mbuq+4EtnLUnv2SPmpHOentg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692189134;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=L4ut3NxO5Ny/TpOt1kPCkpi83B4YQUIM8ZSBiFJyZ0Q=;
	b=ZRiOK8vrvdu59SCxh1ukhdrT3ddOUnJqxj2u81TMzlV6LFGSbTKSCVfb2osEOkf3NAfoUJ
	J5IhX0Xhks04ZXi2ENa6fMRydSb2F3Guy/ty2O7Hmdpurgrf1SV203PvtAER59qR3N44FV
	u9nRFaU8dkiyYc5SYg7HaZee2Jem/CLntJFR5g3lM5D55bbN3C8t5xPlfA7kXX7n74xWJ9
	y7fLQej3C+DT5tFw14v+bEboEehX+EF00S8iR5ooBZGtv5ZKCF27jHhKT3DFopqDavJpw7
	nRiCLXfdsYBBvC3TJTJqQeUqdkhEi2dLiXmpCqfpelWd1mZ4rPKZa3/ecHMdfw==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692189134; a=rsa-sha256; cv=none;
	b=VLeEbs+AH9EOZDOaBJjP2yRnGunPz9e1HLZZKxjPIt1Xs7JNTmG2e7Zbpa3uaivAU90PeA
	LP8IVtdf4R/Gx8mmA2PgeEH3P3N4uF9dHMLT33CFu8FEXqXeIcXsL8hSL8uTzkyfTgGh12
	lW75veb7/DigJBzPUGOeAWIdBzbXPqxRv4wdO+pQxOlBhsv5I+2oRQzGsy6wTJUWuXIkEs
	x/xtbBklpIqFN+Norv5OxR8WVuS9j7RCFUN9GJUNWPukVUQzd3Vl+SkAT2plh9e/pv/d2H
	dG14g/zBcdUTglwdy/nTOY4qCDzCCwyk4koRUXMWMMMFcf4wDX8METLO+0FHBQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RQnZj64Z3zs4l;
	Wed, 16 Aug 2023 12:32:13 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37GCWD10023359;
	Wed, 16 Aug 2023 12:32:13 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37GCWDrb023356;
	Wed, 16 Aug 2023 12:32:13 GMT
	(envelope-from git)
Date: Wed, 16 Aug 2023 12:32:13 GMT
Message-Id: <202308161232.37GCWDrb023356@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Doug Rabson <dfr@FreeBSD.org>
Subject: git: 3af770071046 - stable/13 - ifconfig(8): Teach ifconfig
  to attach and run itself in a jail
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: dfr
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 3af7700710466b330e54307ff5bc5ea6bb91fec4
Auto-Submitted: auto-generated

The branch stable/13 has been updated by dfr:

URL: https://cgit.FreeBSD.org/src/commit/?id=3af7700710466b330e54307ff5bc5ea6bb91fec4

commit 3af7700710466b330e54307ff5bc5ea6bb91fec4
Author:     Yan Ka Chiu <nyan@myuji.xyz>
AuthorDate: 2023-05-23 20:39:22 +0000
Commit:     Doug Rabson <dfr@FreeBSD.org>
CommitDate: 2023-08-16 12:25:57 +0000

    ifconfig(8): Teach ifconfig to attach and run itself in a jail
    
    Add -j <jail> flag to ifconfig to allow ifconfig to attach and run inside a
    jail. This allow parent to configure network interfaces of its children
    even if ifconfig is not available in child's tree (e.g. Linux Jails)
    
    Reviewed by:    emaste, khng, melifaro
    Event:          Kitchener-Waterloo Hackathon 202305
    MFC after:      1 week
    Differential Revision:  https://reviews.freebsd.org/D40213
    
    (cherry picked from commit 7e49aa86a2824e76e9d9becf61db12066bc0d79d)
---
 sbin/ifconfig/ifconfig.8 | 22 ++++++++++++++++++++++
 sbin/ifconfig/ifconfig.c | 40 ++++++++++++++++++++++++++++++++++------
 2 files changed, 56 insertions(+), 6 deletions(-)

diff --git a/sbin/ifconfig/ifconfig.8 b/sbin/ifconfig/ifconfig.8
index e7d41da45bec..651d64fb31df 100644
--- a/sbin/ifconfig/ifconfig.8
+++ b/sbin/ifconfig/ifconfig.8
@@ -36,6 +36,7 @@
 .Nd configure network interface parameters
 .Sh SYNOPSIS
 .Nm
+.Op Fl j Ar jail
 .Op Fl kLmn
 .Op Fl f Ar type Ns Cm \&: Ns Ar format
 .Ar interface
@@ -49,9 +50,11 @@
 .Oc
 .Op Ar parameters
 .Nm
+.Op Fl j Ar jail
 .Ar interface
 .Cm destroy
 .Nm
+.Op Fl j Ar jail
 .Fl a
 .Op Fl dkLmuv
 .Op Fl f Ar type Ns Cm \&: Ns Ar format
@@ -61,13 +64,16 @@
 .Nm
 .Fl C
 .Nm
+.Op Fl j Ar jail
 .Fl g Ar groupname
 .Nm
+.Op Fl j Ar jail
 .Fl l
 .Op Fl du
 .Op Fl g Ar groupname
 .Op Ar address_family
 .Nm
+.Op Fl j Ar jail
 .Op Fl dkLmuv
 .Op Fl f Ar type Ns Cm \&: Ns Ar format
 .Sh DESCRIPTION
@@ -233,6 +239,22 @@ Setting
 to
 .Cm all
 selects all interfaces.
+.It Fl j Ar jail
+Perform the actions inside the
+.Ar jail .
+.Pp
+The
+.Cm ifconfig
+will first attach to the
+.Ar jail
+(by jail id or jail name) before performing the effects.
+.Pp
+This allow network interfaces of
+.Ar jail
+to be configured even if the
+.Cm ifconfig
+binary is not available in
+.Ar jail .
 .It Fl k
 Print keying information for the
 .Ar interface ,
diff --git a/sbin/ifconfig/ifconfig.c b/sbin/ifconfig/ifconfig.c
index 6deeebba9f01..f93a97572a78 100644
--- a/sbin/ifconfig/ifconfig.c
+++ b/sbin/ifconfig/ifconfig.c
@@ -42,6 +42,9 @@ static const char rcsid[] =
 
 #include <sys/param.h>
 #include <sys/ioctl.h>
+#ifdef JAIL
+#include <sys/jail.h>
+#endif
 #include <sys/module.h>
 #include <sys/linker.h>
 #include <sys/queue.h>
@@ -189,12 +192,12 @@ usage(void)
 	}
 
 	fprintf(stderr,
-	"usage: ifconfig [-f type:format] %sinterface address_family\n"
+	"usage: ifconfig [-j jail] [-f type:format] %sinterface address_family\n"
 	"                [address [dest_address]] [parameters]\n"
-	"       ifconfig interface create\n"
-	"       ifconfig -a %s[-d] [-m] [-u] [-v] [address_family]\n"
-	"       ifconfig -l [-d] [-u] [address_family]\n"
-	"       ifconfig %s[-d] [-m] [-u] [-v]\n",
+	"       ifconfig [-j jail] interface create\n"
+	"       ifconfig [-j jail] -a %s[-d] [-m] [-u] [-v] [address_family]\n"
+	"       ifconfig [-j jail] -l [-d] [-u] [address_family]\n"
+	"       ifconfig [-j jail] %s[-d] [-m] [-u] [-v]\n",
 		options, options, options);
 	exit(1);
 }
@@ -412,12 +415,18 @@ main(int argc, char *argv[])
 	struct ifreq paifr;
 	const struct sockaddr_dl *sdl;
 	char options[1024], *cp, *envformat, *namecp = NULL;
+#ifdef JAIL
+	char *jail_name = NULL;
+#endif
 	struct ifa_queue q = TAILQ_HEAD_INITIALIZER(q);
 	struct ifa_order_elt *cur, *tmp;
 	const char *ifname, *matchgroup, *nogroup;
 	struct option *p;
 	size_t iflen;
 	int flags;
+#ifdef JAIL
+        int jid;
+#endif
 
 	all = downonly = uponly = namesonly = noload = verbose = 0;
 	f_inet = f_inet6 = f_ether = f_addr = NULL;
@@ -438,7 +447,7 @@ main(int argc, char *argv[])
 	atexit(printifnamemaybe);
 
 	/* Parse leading line options */
-	strlcpy(options, "G:adf:klmnuv", sizeof(options));
+	strlcpy(options, "G:adf:j:klmnuv", sizeof(options));
 	for (p = opts; p != NULL; p = p->next)
 		strlcat(options, p->opt, sizeof(options));
 	while ((c = getopt(argc, argv, options)) != -1) {
@@ -459,6 +468,15 @@ main(int argc, char *argv[])
 				usage();
 			nogroup = optarg;
 			break;
+		case 'j':
+#ifdef JAIL
+			if (optarg == NULL)
+				usage();
+			jail_name = optarg;
+#else
+			Perror("not built with jail support");
+#endif
+			break;
 		case 'k':
 			printkeys++;
 			break;
@@ -511,6 +529,16 @@ main(int argc, char *argv[])
 	if (!namesonly && argc < 1)
 		all = 1;
 
+#ifdef JAIL
+	if (jail_name) {
+		jid = jail_getid(jail_name);
+		if (jid == -1)
+			Perror("jail not found");
+		if (jail_attach(jid) != 0)
+			Perror("cannot attach to jail");
+	}
+#endif
+
 	/* -a and -l allow an address family arg to limit the output */
 	if (all || namesonly) {
 		if (argc > 1)

From nobody Wed Aug 16 12:32:14 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RQnZl2MRDz4qd23;
	Wed, 16 Aug 2023 12:32:15 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RQnZl1VQsz4Tcm;
	Wed, 16 Aug 2023 12:32:15 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692189135;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=I49I65jSVruZZAG9XuyCMaNgy5irzS4ogkDUkLI5Eu4=;
	b=wDsxz8y34r+Kc08MlQZWHlSIoLcB3T/hGiaMHiow6MR9rC5K9NWBwnVOEcaBGf8559wTvw
	Bv/h7uxCjlxeuHddQ93402jEg0FeoAqlKy0cTLulIUKaUCVUvdxJo0fY8MruW3QZsLDLHy
	eeY7kYEXqxAfydMvflh6RqDpIi4sKBglY7oPvo87NxgJXirI+nHMtAnCp9uZVJIA+owEGZ
	pMNYxExsiA5vEV6l5++vqnXpO1qVcfnhX1bKkuNWso8VBRFaiPML2YuVRPfRn/GZB5GwUF
	bkDqhsDE8jCjrNLARfMKHufq/HdHj5QqU0aHD8qYE1npHyYgFxs9wNw4YppxiA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692189135;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=I49I65jSVruZZAG9XuyCMaNgy5irzS4ogkDUkLI5Eu4=;
	b=wNdPadCauUk94lLHJhMS6B3P2gRfbnlrLDtwomGtd3fIafsBhMJFOiDeceEsiWCb4MvXR5
	UoOxlx4I7Zrd0nWlbE82eGhlSiyXveu7kL7XZ+B1oVc8GYoRVslVwy4PLfn1Arl40uZdSN
	1HCe3aXqmbwkvssXX3UrN1EbW8YLFDkR/6fxUwp4MnC+mAnIWIdXqu/tODqkMEzWZl3TOO
	euSrL9xEkclghCpTJxX2BkvP/zOycKBK5JBuz+5dFu5Zzt9GnGE0jJkXdgzeGTNIS6qtCp
	BSaWF4ao0+UxzzGP7ssPLRqHIeNnE2KKm+lpAuA1wZjgkqpl4TSjL+qEqaCpIA==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692189135; a=rsa-sha256; cv=none;
	b=mrD7sK19PV4k6cIGamQl4E6phVEc8MxamjIPGjlj+cH3XhELG2SOAkPVtFV3QBupFQRX1Q
	uGTZsGY9HM7dYPZfeqXybYaYQ0h7y83Wu2imeJwpqSwqim+6zUAhhu9ntwHVnBcV6R2l6k
	LN9oBafK3NeijU6neQlQcbIqrY2TVtNy1e7yHwyTCVslPGX5UIa++Y4/ddVWf+Sx8gdBkN
	PkzVyVBmqwSeEXDdWCURrlf2OLscJc1m5DKO/itfRxNZUKTWiPixr1XN1tU/VBjHhnAvJu
	BwS7w4psXoc8OSdJarQAIg6PFnEML/camSbdIi6cKEj50sAAg5mElNEG4eBc/g==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RQnZl06Lczs4m;
	Wed, 16 Aug 2023 12:32:15 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37GCWEU1023412;
	Wed, 16 Aug 2023 12:32:14 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37GCWEsT023408;
	Wed, 16 Aug 2023 12:32:14 GMT
	(envelope-from git)
Date: Wed, 16 Aug 2023 12:32:14 GMT
Message-Id: <202308161232.37GCWEsT023408@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Doug Rabson <dfr@FreeBSD.org>
Subject: git: 07cbc2f943ff - stable/13 - route(8): teach route to
  attach to jails
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: dfr
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 07cbc2f943ff32bee33c4405903795d5545d57ea
Auto-Submitted: auto-generated

The branch stable/13 has been updated by dfr:

URL: https://cgit.FreeBSD.org/src/commit/?id=07cbc2f943ff32bee33c4405903795d5545d57ea

commit 07cbc2f943ff32bee33c4405903795d5545d57ea
Author:     Yan Ka, Chiu <nyan@myuji.xyz>
AuthorDate: 2023-06-13 06:05:17 +0000
Commit:     Doug Rabson <dfr@FreeBSD.org>
CommitDate: 2023-08-16 12:25:57 +0000

    route(8): teach route to attach to jails
    
    Add -j <jail> flag to route(8) to allow route to perform actions in
    a Jail.
    
    Differential Revision: https://reviews.freebsd.org/D40377
    MFC after:      2 weeks
    
    (cherry picked from commit ab4d1b73cbf8980dbe05cde7d822010042db8344)
---
 sbin/route/Makefile |  5 +++++
 sbin/route/route.8  |  5 ++++-
 sbin/route/route.c  | 36 ++++++++++++++++++++++++++++++++++--
 3 files changed, 43 insertions(+), 3 deletions(-)

diff --git a/sbin/route/Makefile b/sbin/route/Makefile
index e65030f805bb..2cecadd24a72 100644
--- a/sbin/route/Makefile
+++ b/sbin/route/Makefile
@@ -19,6 +19,11 @@ CFLAGS+= -DINET6
 .endif
 CFLAGS+= -I.
 
+.if ${MK_JAIL} != "no" && !defined(RESCUE)
+CFLAGS+= -DJAIL
+LIBADD+= jail
+.endif
+
 HAS_TESTS=
 SUBDIR.${MK_TESTS}+= tests
 
diff --git a/sbin/route/route.8 b/sbin/route/route.8
index afcf55ab44c7..72c22bee23ed 100644
--- a/sbin/route/route.8
+++ b/sbin/route/route.8
@@ -28,7 +28,7 @@
 .\"     @(#)route.8	8.3 (Berkeley) 3/19/94
 .\" $FreeBSD$
 .\"
-.Dd March 14, 2023
+.Dd June 13, 2023
 .Dt ROUTE 8
 .Os
 .Sh NAME
@@ -36,6 +36,7 @@
 .Nd manually manipulate the routing tables
 .Sh SYNOPSIS
 .Nm
+.Op Fl j Ar jail
 .Op Fl dnqtv
 .Ar command
 .Oo
@@ -91,6 +92,8 @@ Suppress all output from the
 and
 .Cm flush
 commands.
+.It Fl j Ar jail
+Run inside a jail.
 .El
 .Pp
 The
diff --git a/sbin/route/route.c b/sbin/route/route.c
index 5f33cecb1b20..e10d0b18ee40 100644
--- a/sbin/route/route.c
+++ b/sbin/route/route.c
@@ -48,6 +48,9 @@ __FBSDID("$FreeBSD$");
 #include <sys/file.h>
 #include <sys/socket.h>
 #include <sys/ioctl.h>
+#ifdef JAIL
+#include <sys/jail.h>
+#endif
 #include <sys/sysctl.h>
 #include <sys/types.h>
 #include <sys/queue.h>
@@ -63,6 +66,9 @@ __FBSDID("$FreeBSD$");
 #include <ctype.h>
 #include <err.h>
 #include <errno.h>
+#ifdef JAIL
+#include <jail.h>
+#endif
 #include <paths.h>
 #include <signal.h>
 #include <stdbool.h>
@@ -90,6 +96,9 @@ static struct keytab {
 	{0, 0}
 };
 
+#ifdef JAIL
+char * jail_name;
+#endif
 static struct sockaddr_storage so[RTAX_MAX];
 static int	pid, rtm_addrs;
 static int	s;
@@ -161,7 +170,7 @@ usage(const char *cp)
 {
 	if (cp != NULL)
 		warnx("bad keyword: %s", cp);
-	errx(EX_USAGE, "usage: route [-46dnqtv] command [[modifiers] args]");
+	errx(EX_USAGE, "usage: route [-j jail] [-46dnqtv] command [[modifiers] args]");
 	/* NOTREACHED */
 }
 
@@ -169,12 +178,15 @@ int
 main(int argc, char **argv)
 {
 	int ch;
+#ifdef JAIL
+	int jid;
+#endif
 	size_t len;
 
 	if (argc < 2)
 		usage(NULL);
 
-	while ((ch = getopt(argc, argv, "46nqdtv")) != -1)
+	while ((ch = getopt(argc, argv, "46nqdtvj:")) != -1)
 		switch(ch) {
 		case '4':
 #ifdef INET
@@ -207,6 +219,15 @@ main(int argc, char **argv)
 		case 'd':
 			debugonly = 1;
 			break;
+		case 'j':
+#ifdef JAIL
+			if (optarg == NULL)
+				usage(NULL);
+			jail_name = optarg;
+#else
+			errx(1, "Jail support is not compiled in");
+#endif
+			break;
 		case '?':
 		default:
 			usage(NULL);
@@ -216,6 +237,17 @@ main(int argc, char **argv)
 
 	pid = getpid();
 	uid = geteuid();
+
+#ifdef JAIL
+	if (jail_name != NULL) {
+		jid = jail_getid(jail_name);
+		if (jid == -1)
+			errx(1, "Jail not found");
+		if (jail_attach(jid) != 0)
+			errx(1, "Cannot attach to jail");
+	}
+#endif
+
 	if (tflag)
 		s = open(_PATH_DEVNULL, O_WRONLY, 0);
 	else

From nobody Wed Aug 16 17:48:08 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RQwbD4prSz4qtyk;
	Wed, 16 Aug 2023 17:48:08 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RQwbD48bmz3TBJ;
	Wed, 16 Aug 2023 17:48:08 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692208088;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=5p09CQyEpR+OMoJV/MeyGnJj67E2pGrjSF3Q/knDbZk=;
	b=FTO4c/IAMqdZBb5rWID60+jbA3Sgtc9Iyz+xZm5l7oBYxhKQygDFm4jsjbnrU1obYw3Psm
	pBdPVvFngR48hAdhMNBsGmQF/2+Q2emx6BInNFVHc9iLArOma0nSO2Kq0VlAJObpl/nBFN
	isRrzDQ4DFrSFt5sr4E7uT0sLwRZIKbirr6eJS4UqcN5MzcAFoo8Llw+1nExXALaZMaK16
	kT6Dbe8ef7/wCZJQUH+GtGlmtGH4y2C1L3h+joCcAuZye9fT/dZr7xWoLQTcHRRKXV4TQm
	tr8AwwNrmZcDOiExdxlKjYindm2dLN4f28FROhZ4lclxiTpCqKcRmcCtgOQj/A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692208088;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=5p09CQyEpR+OMoJV/MeyGnJj67E2pGrjSF3Q/knDbZk=;
	b=r4LaXcv9+EPZYrxkIN2dsb4rWGrcQ1FDJSKeDUC65knVzg4vaa9uG+JMeZZH7zAhzJA1UC
	6rkxJoHEOesy2NuxuLatGD0gN+2B+ujntuq1tzdT+wYXlQiv9qFE1CwJ2h7oXi/IJwHd3C
	gZDChFfwAxCWXKngA0i63vadEm+3UcOw1O4reiytDRNJIAJ0slJJHZ0RGbjme8WTDuHLJr
	IkAWgMwLKeiI4M6t6jhF3e8cIz7g5dk5/5/RegjJGECezcyR6Jq8m6AmKZtEsWqy4Amh6v
	GDyblwIKzh5gkwtOwFT0xE0OC0yxkQrjZziY023DFyzeUxPM8WpdHPiWgTl/oQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692208088; a=rsa-sha256; cv=none;
	b=rUoqJkuSktCpnvty/oVNtHDCnREvy5Xy/I4vwVcRW5jjBUQCxLjKRouu1BW2mbwGs+V8Tx
	2MLViRcfJg9sNzjUZ0P+eDgvJ/Wk4GTj934tmcZGGYbeKqo+tKcEz9Z7WtfudFUG/M13Lf
	iVVQK/KKESLO38cNMn7QTqXL3T6rlAQVaFxLyxgGATwCSyi/vdWHhS3V+iF2xgJmz4QL9G
	IkNJ0DMxS9qQkWw5cY6bSoi/BQ9kCNdhHYZYENIUs8PMRVVKud82O1YRsgfVxwsth/7J9R
	kN4BS3NPJEfpfbWlI3P2KrWBoK1E64oj/vEvRc/ZwjHr/XgYJ9GsCzLfuEHGIg==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RQwbD31fnz11Pv;
	Wed, 16 Aug 2023 17:48:08 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37GHm81u042031;
	Wed, 16 Aug 2023 17:48:08 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37GHm8cE042028;
	Wed, 16 Aug 2023 17:48:08 GMT
	(envelope-from git)
Date: Wed, 16 Aug 2023 17:48:08 GMT
Message-Id: <202308161748.37GHm8cE042028@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Kristof Provost <kp@FreeBSD.org>
Subject: git: 31d385e78eba - stable/13 - ping: use the in6_addr
  buffer when parsing src address as AF_INET6
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: kp
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 31d385e78eba5d0fd8a3d13fde86e345917a2588
Auto-Submitted: auto-generated

The branch stable/13 has been updated by kp:

URL: https://cgit.FreeBSD.org/src/commit/?id=31d385e78eba5d0fd8a3d13fde86e345917a2588

commit 31d385e78eba5d0fd8a3d13fde86e345917a2588
Author:     R. Christian McDonald <rcm@rcm.sh>
AuthorDate: 2023-08-08 18:40:02 +0000
Commit:     Kristof Provost <kp@FreeBSD.org>
CommitDate: 2023-08-16 15:04:04 +0000

    ping: use the in6_addr buffer when parsing src address as AF_INET6
    
    Reviewed by:    kp
    MFC after:      1 week
    Sponsored by:   Rubicon Communications, LLC ("Netgate")
    
    (cherry picked from commit 9f2cddd261d09b736893454cb8b7aa0651ac5211)
---
 sbin/ping/main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sbin/ping/main.c b/sbin/ping/main.c
index 2f94b5d3227d..bfe19e0ff442 100644
--- a/sbin/ping/main.c
+++ b/sbin/ping/main.c
@@ -102,7 +102,7 @@ main(int argc, char *argv[])
 			 */
 			if (inet_pton(AF_INET, optarg, &a) == 1)
 				ipv4 = true;
-			else if (inet_pton(AF_INET6, optarg, &a) == 1)
+			else if (inet_pton(AF_INET6, optarg, &a6) == 1)
 				ipv6 = true;
 			break;
 #endif

From nobody Thu Aug 17 00:30:57 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RR5X12lH7z4mQl9;
	Thu, 17 Aug 2023 00:30:57 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RR5X12J7Wz4TlK;
	Thu, 17 Aug 2023 00:30:57 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692232257;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=7UzBDUvOOZ/3JY8Ww7qvNRmDO36NXUZtZJ9OUjdtWAw=;
	b=t0ApJ0r+LOtDzGIOEO+ag6DLXJvuZjmwrVBlDjUjKWfDTAIdDdGh3Q777EusdhHw10wFwW
	dTIxv6INNcZ2ePwzGsS8jBDQyBqTTN7M2kVAK6MdPBvw3tzIFU8Xnebgbgsjo8zJKPy43t
	sUZ4FED4lux/SwbxVQjABBcC5uoMqn6pzPhE+PcBTS/u0Qk/PsDC6W1ZGFP/BD89LFNvFZ
	9xr1s41b/iLgbBOZF1Bdkq03u5fnkUxo571K/2ZRvFi8Jz5zOmmmKLGRSqpqMMzOvuduSs
	4eREIj3boLqhIU4H9CNNIR3naglvFBp1RN8GdsUnC2fBTCkX0kSIBdHiwCnbrA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692232257;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=7UzBDUvOOZ/3JY8Ww7qvNRmDO36NXUZtZJ9OUjdtWAw=;
	b=vSMEJE0oZmwgEjQ/RAxLDSHfnZ2bitAZdowb7XzrBWozet4cOu044ZKrao4mgyJ+OEewQY
	bhHOPYpe+niWTa/sp+Esyt75XUwaLSLsR+apDpSg/kg9qFeT7AqLb5koV2Sy9Ge8Hq0jRn
	7EviIDkRPGoy3bLxuKaPXReVSeg0aYLcUX0ry37yZbRXkXCTtkfoLwGacI95f16zjt1v6q
	45iIFi9tQMNEM50mx2OGgawssDpX8s6v/4HkPJ7mW89RH3BZTv+pufoZJ0dGuFyjhqUPXC
	YQkRVLdAWgnAfBMwRUgY2xJp9vTw84L51WE34J11jf1EUxgaCohz3W0AeefHyA==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692232257; a=rsa-sha256; cv=none;
	b=rcuaTdERzHkb85wC2kWikNhOe5W0DTFMysMggf1dadi4MYqib9xHBejpVPypRDjGHEMmGh
	+MPEcP9+JQpl0KVADYpEZI7PhjAN5WVFDUj3ZifJqC9f9G0khFBKGPE8yIqLifainXFxjh
	Xsh3m6nvZwaftv0mwa5XE6BH2SFtN4wJ2hW1GVHao9zvtT8WongBjxRZouAwLonsQSLn5Y
	AnTeqsCEg0Q5i1We2V7Ntv22A/E5CPLe4Ykl/8MzV99l09b99KPra1hqhr/Zg3j7h2Gba4
	KeECQcFsvWgGFwzEyc7tajDBoi2QNA07dpJ8ajqXSyqa20W8aovo1x8u3kJdXg==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RR5X11LwVz1ByJ;
	Thu, 17 Aug 2023 00:30:57 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37H0Uvm9037277;
	Thu, 17 Aug 2023 00:30:57 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37H0UvCG037274;
	Thu, 17 Aug 2023 00:30:57 GMT
	(envelope-from git)
Date: Thu, 17 Aug 2023 00:30:57 GMT
Message-Id: <202308170030.37H0UvCG037274@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Kevin Bowling <kbowling@FreeBSD.org>
Subject: git: a1c25461c6d1 - stable/13 - ixgbe: Add support for
  82599 LS
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: kbowling
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: a1c25461c6d16987b0e1eee60a8a1a0b0618574f
Auto-Submitted: auto-generated

The branch stable/13 has been updated by kbowling:

URL: https://cgit.FreeBSD.org/src/commit/?id=a1c25461c6d16987b0e1eee60a8a1a0b0618574f

commit a1c25461c6d16987b0e1eee60a8a1a0b0618574f
Author:     Kevin Bowling <kbowling@FreeBSD.org>
AuthorDate: 2023-08-10 01:30:15 +0000
Commit:     Kevin Bowling <kbowling@FreeBSD.org>
CommitDate: 2023-08-17 00:30:19 +0000

    ixgbe: Add support for 82599 LS
    
    Obtained from:  DPDK 549ccd3dc01539e060597b503f2b65b272de3347
    
    (cherry picked from commit 9228ac3a69c4c7401a743e6465e118101a2beeb0)
---
 sys/dev/ixgbe/if_ix.c       | 1 +
 sys/dev/ixgbe/ixgbe_82599.c | 3 +++
 sys/dev/ixgbe/ixgbe_type.h  | 2 ++
 3 files changed, 6 insertions(+)

diff --git a/sys/dev/ixgbe/if_ix.c b/sys/dev/ixgbe/if_ix.c
index 54bc16e73763..150fdff03d05 100644
--- a/sys/dev/ixgbe/if_ix.c
+++ b/sys/dev/ixgbe/if_ix.c
@@ -76,6 +76,7 @@ static pci_vendor_info_t ixgbe_vendor_info_array[] =
   PVID(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_XAUI_LOM,  "Intel(R) X520 82599 (XAUI/BX4)"),
   PVID(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_CX4,  "Intel(R) X520 82599 (Dual CX4)"),
   PVID(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_T3_LOM,  "Intel(R) X520-T 82599 LOM"),
+  PVID(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_LS,  "Intel(R) X520 82599 LS"),
   PVID(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_COMBO_BACKPLANE,  "Intel(R) X520 82599 (Combined Backplane)"),
   PVID(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_BACKPLANE_FCOE,  "Intel(R) X520 82599 (Backplane w/FCoE)"),
   PVID(IXGBE_INTEL_VENDOR_ID, IXGBE_DEV_ID_82599_SFP_SF2,  "Intel(R) X520 82599 (Dual SFP+)"),
diff --git a/sys/dev/ixgbe/ixgbe_82599.c b/sys/dev/ixgbe/ixgbe_82599.c
index 698602080592..7afb440b556d 100644
--- a/sys/dev/ixgbe/ixgbe_82599.c
+++ b/sys/dev/ixgbe/ixgbe_82599.c
@@ -568,6 +568,9 @@ enum ixgbe_media_type ixgbe_get_media_type_82599(struct ixgbe_hw *hw)
 	case IXGBE_DEV_ID_82599_T3_LOM:
 		media_type = ixgbe_media_type_copper;
 		break;
+	case IXGBE_DEV_ID_82599_LS:
+		media_type = ixgbe_media_type_fiber_lco;
+		break;
 	case IXGBE_DEV_ID_82599_QSFP_SF_QP:
 		media_type = ixgbe_media_type_fiber_qsfp;
 		break;
diff --git a/sys/dev/ixgbe/ixgbe_type.h b/sys/dev/ixgbe/ixgbe_type.h
index 9fb800560e43..7d39e391855a 100644
--- a/sys/dev/ixgbe/ixgbe_type.h
+++ b/sys/dev/ixgbe/ixgbe_type.h
@@ -100,6 +100,7 @@
 #define IXGBE_DEV_ID_82599_KR			0x1517
 #define IXGBE_DEV_ID_82599_COMBO_BACKPLANE	0x10F8
 #define IXGBE_SUBDEV_ID_82599_KX4_KR_MEZZ	0x000C
+#define IXGBE_DEV_ID_82599_LS			0x154F
 #define IXGBE_DEV_ID_82599_CX4			0x10F9
 #define IXGBE_DEV_ID_82599_SFP			0x10FB
 #define IXGBE_SUBDEV_ID_82599_SFP		0x11A9
@@ -3758,6 +3759,7 @@ enum ixgbe_media_type {
 	ixgbe_media_type_fiber,
 	ixgbe_media_type_fiber_fixed,
 	ixgbe_media_type_fiber_qsfp,
+	ixgbe_media_type_fiber_lco,
 	ixgbe_media_type_copper,
 	ixgbe_media_type_backplane,
 	ixgbe_media_type_cx4,

From nobody Thu Aug 17 00:30:58 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RR5X24DJYz4mQnb;
	Thu, 17 Aug 2023 00:30:58 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RR5X23GgXz4Tdb;
	Thu, 17 Aug 2023 00:30:58 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692232258;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=TzEtOTz0ziNnCjzIdpzcT7xWQ6gm7+jX0X2owgWTuTg=;
	b=mYAdw6vAhwSGFJ4R+709wMIm+6cQDZO/aiogSIJuCeWbFAr8WGeG1me4wWJUy1xn3Nm1mo
	O8oozzo7iMmHlqby47zRbwBlDiiu2kxIGODDJCzNC6N6HyL1EUUJ88YEfKMXgb6NFsxpMZ
	1I//dWNJt5nxVvFwmhSb3UOoolo/9VqZGT9ieHTKS8hhGHh49sb7JnCDIBLc4X6IQTvwyP
	LrHNUcJ5A3eJ1aNgZ1XvTjMBI5L8mSabPV2xLPj39i1VfTPNctDBhHi6Xpx1AaqpsncRgd
	ZRxEizMsnzgtvuK0tCQ/8mgcKIE6Vkj1HJZ+eg/pUVEmW0vz+ja/MHK9XJELag==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692232258;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=TzEtOTz0ziNnCjzIdpzcT7xWQ6gm7+jX0X2owgWTuTg=;
	b=HnuHX0IrmnHJ4vMWaXCTfHya/sy2BIQKOIZhtYEAos7HNhrF5lole4tF7xzAiZcv+m32LX
	8zbi8F85DZpkAH3+dDiTHq3VKefxmzZcs5hho6FKsmqrWwJH+kdNYunxTSGsavsYmJc12k
	t5HS/lBcJLB3E6SWsMzFIjkzAxvKv6ztOP63NQ8ZM0hbSieqTXwzeHv1cU0sEwyxkLyrGr
	egbqh11BfcTk7OsKN1zWFWwHf26QExVOjXMaVwRRkWyYtZ6OxeWv0QU/x9AWmKPE5yj6TQ
	XTexVxGOX4NxhwT6o7vBMioM3vKi9AjvmdRYHEmf5uKWvNgeTzezMhGXth9Dug==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692232258; a=rsa-sha256; cv=none;
	b=I5sbvZgdpDepOt6yPdK2XtGbl4slFmRyySuegf6T5O2GeckwCAjqsAJwxbPz5dqUm/DFud
	3+Twd0JffzS185Ih0e+U7Hu+c+RVYZU0twyl3ZaFqrrqnNKeh+6bnsFI7PWR0fUdd/UvHP
	N/V8bPiWxhwqxFhEFi3smJ6c07PK6ERpQPAIUc6NIo9Rg95EkX2P8kKf804p6rSaxPVIpG
	10VkyoiFiwpu5hw36qlceIvaXy6Mr/2hI/GUnO2bqoH4nqyHLxyqUfiGbMc5u8c4ChQEUl
	YYGyP5oWs2To/OmrVtKbwvrfYAA+JNcW5gSuOlBRyHmi5IcBfWYJELbwZ9tDpw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RR5X22LyVz1CNS;
	Thu, 17 Aug 2023 00:30:58 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37H0Uw4v037327;
	Thu, 17 Aug 2023 00:30:58 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37H0UwD0037324;
	Thu, 17 Aug 2023 00:30:58 GMT
	(envelope-from git)
Date: Thu, 17 Aug 2023 00:30:58 GMT
Message-Id: <202308170030.37H0UwD0037324@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Kevin Bowling <kbowling@FreeBSD.org>
Subject: git: f09f2763b67f - stable/13 - igc: sync srrctl buffer
  sizing with e1000
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: kbowling
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: f09f2763b67fcbf65d7cac5b114eab72308cde60
Auto-Submitted: auto-generated

The branch stable/13 has been updated by kbowling:

URL: https://cgit.FreeBSD.org/src/commit/?id=f09f2763b67fcbf65d7cac5b114eab72308cde60

commit f09f2763b67fcbf65d7cac5b114eab72308cde60
Author:     Kevin Bowling <kbowling@FreeBSD.org>
AuthorDate: 2023-08-10 14:41:21 +0000
Commit:     Kevin Bowling <kbowling@FreeBSD.org>
CommitDate: 2023-08-17 00:30:32 +0000

    igc: sync srrctl buffer sizing with e1000
    
    Approved by:    grehan
    Differential Revision:  https://reviews.freebsd.org/D31493
    
    (cherry picked from commit 0eb8cd1de26849cbaefaf3bc59aa9612fa0dfa52)
---
 sys/dev/igc/if_igc.c | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

diff --git a/sys/dev/igc/if_igc.c b/sys/dev/igc/if_igc.c
index 826a35e7e15e..49d4755d057c 100644
--- a/sys/dev/igc/if_igc.c
+++ b/sys/dev/igc/if_igc.c
@@ -1986,6 +1986,7 @@ igc_initialize_transmit_unit(if_ctx_t ctx)
  *  Enable receive unit.
  *
  **********************************************************************/
+#define BSIZEPKT_ROUNDUP	((1<<IGC_SRRCTL_BSIZEPKT_SHIFT)-1)
 
 static void
 igc_initialize_receive_unit(if_ctx_t ctx)
@@ -2051,24 +2052,19 @@ igc_initialize_receive_unit(if_ctx_t ctx)
 		igc_initialize_rss_mapping(adapter);
 
 	if (if_getmtu(ifp) > ETHERMTU) {
-		/* Set maximum packet len */
-		if (adapter->rx_mbuf_sz <= 4096) {
-			srrctl |= 4096 >> IGC_SRRCTL_BSIZEPKT_SHIFT;
-			rctl |= IGC_RCTL_SZ_4096 | IGC_RCTL_BSEX;
-		} else if (adapter->rx_mbuf_sz > 4096) {
-			srrctl |= 8192 >> IGC_SRRCTL_BSIZEPKT_SHIFT;
-			rctl |= IGC_RCTL_SZ_8192 | IGC_RCTL_BSEX;
-		}
 		psize = scctx->isc_max_frame_size;
 		/* are we on a vlan? */
 		if (ifp->if_vlantrunk != NULL)
 			psize += VLAN_TAG_SIZE;
 		IGC_WRITE_REG(&adapter->hw, IGC_RLPML, psize);
-	} else {
-		srrctl |= 2048 >> IGC_SRRCTL_BSIZEPKT_SHIFT;
-		rctl |= IGC_RCTL_SZ_2048;
 	}
 
+	/* Set maximum packet buffer len */
+	srrctl |= (adapter->rx_mbuf_sz + BSIZEPKT_ROUNDUP) >>
+	    IGC_SRRCTL_BSIZEPKT_SHIFT;
+	/* srrctl above overrides this but set the register to a sane value */
+	rctl |= IGC_RCTL_SZ_2048;
+
 	/*
 	 * If TX flow control is disabled and there's >1 queue defined,
 	 * enable DROP.

From nobody Thu Aug 17 00:30:59 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RR5X40hnzz4mQsX;
	Thu, 17 Aug 2023 00:31:00 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RR5X34r8bz4Tf8;
	Thu, 17 Aug 2023 00:30:59 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692232259;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=Oh+1pS38PdRpd/YXNx6y5ObiHeDcXmky12EUL3+wTGg=;
	b=YrqM3tOIgpc9nROkAOxU4oVxhx9oV/FdEbMXbKcEMCsuLB94E2lpTop+45pUANgIuQPv5+
	e+J4cvxJMbMy5W5+DBWMKZPiUbmoFbvrtO49v1AgT3IDO6/WvxCYO0rasG+u9a5VLQE6vp
	Fcj+Fe2g+Cs26LeJvxPJw6cQnpGYsC6Iwkk5ncu8VF7ZMBHOUZXd2W3czZ9qf67zxHNZjn
	Ehd/k0zY4UoJZjtwreiIuqE+gX/73BMjEVuSmF7MGVW6mCSvScnXucI7HsfKWAYU2Y0L1s
	k1GnW/F5itNePIw2zcFyYHMYd0HQnMS6OBRMHUNK93wrmTMSR+9rvESQLMP9Gg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692232259;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=Oh+1pS38PdRpd/YXNx6y5ObiHeDcXmky12EUL3+wTGg=;
	b=ZtRq7YiWurLVVXOHVMAi+Jh1zSe1TTHUfzYYrEQphFQZg1cP7pldxuJYrSqZd3zjmq+VSO
	WtbmIt8HdJydJOr5LoxCGDakflgzESF43hCcPGcx0LS1OC/jUJ/dov2usKbgFA14tFSytW
	PQkrcTR6qgAJEjZDVDxkc42Xxh5TWDsG9kqUg8qhBQ2eYDS8oyeOb2k5arh1eNj/urnZ5J
	JZDaT286el5FWPrPoXsWZa6j6KNiBBn25NBEeHpZZIqFkooHS01ZqnHcqxL1HEwCwnaDlG
	v80ryjvFDCdI5nXhmRNKtyQz7WOEMAzYm/sF9FaLRsEzWrZOTl4eU2ITrfay4g==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692232259; a=rsa-sha256; cv=none;
	b=jKEDU0P5K0XGGDK8w2Rn9/22vc0c9jp1+RTrVX5o/wwb3e/lmv2mRvEbdIkT+OkPxNMGs4
	I3U6IuulF01vhU1kwQYR2WCLLRw6ZAkWHXBWRzUefql1RW8ZvZsjaCQBQz2kbBBCUGriex
	YVvqABQ+F8pv/k7xKSOobH3gAbeOzRiNI66z4KxHh3XD10XjEnDpQll4ZFuwg7frHwDQH0
	OPsYC4NDh5icfFxw+Ll7SD7aY9z/ez3aK/zluBgDXI9p4B8z23JkoivBNW++pWo4zjZx36
	+UU8WOVXodXCd2JWXgzM7nqxQaNin5NXGUankqnepwmEI1uTO0E3fS7JrfPTzQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RR5X33KRXz1C9R;
	Thu, 17 Aug 2023 00:30:59 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37H0UxlJ037375;
	Thu, 17 Aug 2023 00:30:59 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37H0Ux5U037371;
	Thu, 17 Aug 2023 00:30:59 GMT
	(envelope-from git)
Date: Thu, 17 Aug 2023 00:30:59 GMT
Message-Id: <202308170030.37H0Ux5U037371@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Kevin Bowling <kbowling@FreeBSD.org>
Subject: git: a6b804a4f6f4 - stable/13 - ixgbe: Check for fw_recovery
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: kbowling
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: a6b804a4f6f499a63f428f73fba67ea8ccacb07a
Auto-Submitted: auto-generated

The branch stable/13 has been updated by kbowling:

URL: https://cgit.FreeBSD.org/src/commit/?id=a6b804a4f6f499a63f428f73fba67ea8ccacb07a

commit a6b804a4f6f499a63f428f73fba67ea8ccacb07a
Author:     Kevin Bowling <kbowling@FreeBSD.org>
AuthorDate: 2023-08-10 00:31:49 +0000
Commit:     Kevin Bowling <kbowling@FreeBSD.org>
CommitDate: 2023-08-17 00:30:47 +0000

    ixgbe: Check for fw_recovery
    
    The x550 uses an upgradable flash code.  Check for recovery condition
    like other flashable intel cards do in case of fw errors.
    
    Differential Revision:  https://reviews.freebsd.org/D31869
    
    (cherry picked from commit 8b4a3fbdd57215cffde530e2fa3098c272a985fe)
---
 sys/dev/ixgbe/if_ix.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/sys/dev/ixgbe/if_ix.c b/sys/dev/ixgbe/if_ix.c
index 150fdff03d05..4245f4f08eb7 100644
--- a/sys/dev/ixgbe/if_ix.c
+++ b/sys/dev/ixgbe/if_ix.c
@@ -921,6 +921,15 @@ ixgbe_if_attach_pre(if_ctx_t ctx)
 		goto err_pci;
 	}
 
+	if (hw->mac.ops.fw_recovery_mode && hw->mac.ops.fw_recovery_mode(hw)) {
+		device_printf(dev, "Firmware recovery mode detected. Limiting "
+		    "functionality.\nRefer to the Intel(R) Ethernet Adapters "
+		    "and Devices User Guide for details on firmware recovery "
+		    "mode.");
+		error = ENOSYS;
+		goto err_pci;
+	}
+
 	if (hw->mbx.ops.init_params)
 		hw->mbx.ops.init_params(hw);
 

From nobody Thu Aug 17 13:02:59 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRQCm0Nj4z4qdt1;
	Thu, 17 Aug 2023 13:03:00 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRQCl6cnbz4h0V;
	Thu, 17 Aug 2023 13:02:59 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692277379;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=sSpH0zC/SGVq0m6HXHBfb6NXg/wSH4BmDMJf9TUgYc8=;
	b=cPgklM5rCjtvrEOUzzhr8CTqifPRK1CYlbLjg5LsNEzrpnGCVNK4qLCexSOPdzt5C4p/7l
	DfvFsTaYwJ4Nj1rPyC2hDmcY5Jp2Z7wLQs+Hlk9Ax6ojovmD6Iq2owrFbhDiWSX6hjrDTZ
	tEJ+5gCX0eF1BjTc3JXWi++NF5eYe7jR2a6VRswKy0J68JFokavW2CIuLwycOEDkjQ7/g/
	/cYJSflWGWFF9D5PLK6KUFEnZ2mp2uDqcZMt2RQogI2bQDoW7EkCiscnGEaXwoITsfhIbk
	IpMGyg1BOeNUNfvDnGMstRxu+F1bA0ipp/0+FMueqSq8TsvbfptZRR5hgVO1zg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692277379;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=sSpH0zC/SGVq0m6HXHBfb6NXg/wSH4BmDMJf9TUgYc8=;
	b=FvJzoDwCGXXma8ihlbqmneovpG1Fhz3xPNLAco9c41tG+70voI9B8ZrRaU4yqpfrcq3dO5
	e/VuwQuw8uOoXQ7+6LTK5RrZZwpxiEk1DZkgZBHp3YE/Bu7RRfEinzqZ7ML6YK/j5aS6EQ
	WkACIDTG89uc4cgq+sVhd2PGB58fG8ELGR7LQCuZHMvsR6WWlq/X+YmyVG8I8V8E7wOibv
	dpSELvFLU/UCO5eNec2Nwh0zOTBDLSYmutS71O8Hf1BQtazUOklkE84fEAg3a5TihWQxwL
	kxyeymegOn5Y7Oz/+sO+6ZvLCsjJk7DXqFeB4A0jx7jHHzsQSqHF3U+igF/EYg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692277379; a=rsa-sha256; cv=none;
	b=JMxtfYtGZ0Lb43lYIFlPAs34scy0okOGRfp6CLO8iR2oPGm0aiApFNr4nkmVCtaYmaegF6
	JKHzOSlpqgm+f/Gzr9JlMXvvNFhzy+B9/ft8z9AgLpyoNhT5QhKXk+q1MfkOCNDV0VrBVi
	q25tsMTKI0+L3CfmWAYj1HwYlHF3H4x6TdhEVt0C9wI+VfqYZSg/zEBERcUFjinh6Bab07
	eVAIVMoG78z8F1y1i0t8DwmkrBdEjQYExng9DYYEZYXJyDSgjxfTVii1+5WlRigTmG/AKJ
	rQP+hCW8lDHtxZDR0DNIZ0d11RdO5HfFsvPtZozVl0iz52JM+7SZAdRiJBvEfA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRQCl5dThzZgH;
	Thu, 17 Aug 2023 13:02:59 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37HD2xPD096711;
	Thu, 17 Aug 2023 13:02:59 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37HD2xe7096708;
	Thu, 17 Aug 2023 13:02:59 GMT
	(envelope-from git)
Date: Thu, 17 Aug 2023 13:02:59 GMT
Message-Id: <202308171302.37HD2xe7096708@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org>
Subject: git: 3152cbdd1657 - stable/13 - bhyve: don't panic if e820
  finds no available memory
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: corvink
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 3152cbdd16572e0580588b349165c680ce8bc87b
Auto-Submitted: auto-generated

The branch stable/13 has been updated by corvink:

URL: https://cgit.FreeBSD.org/src/commit/?id=3152cbdd16572e0580588b349165c680ce8bc87b

commit 3152cbdd16572e0580588b349165c680ce8bc87b
Author:     Corvin Köhne <corvink@FreeBSD.org>
AuthorDate: 2023-05-09 12:32:33 +0000
Commit:     Corvin Köhne <corvink@FreeBSD.org>
CommitDate: 2023-08-17 12:58:04 +0000

    bhyve: don't panic if e820 finds no available memory
    
    The GVT-d emulation tries to allocate some specific memory. It could
    happen that this address doesn't exist. In that case, GVT-d will fall
    back to allocate any address. Nevertheless, this only works if the e820
    fails with an error instead of exiting on an assertion.
    
    Reviewed by:            markj
    MFC after:              1 week
    Sponsored by:           Beckhoff Automation GmbH & Co. KG
    Differential Revision:  https://reviews.freebsd.org/D40034
    
    (cherry picked from commit 99aeb28b2f7e28c516dd6434db63a9bc1c1f3218)
---
 usr.sbin/bhyve/e820.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/usr.sbin/bhyve/e820.c b/usr.sbin/bhyve/e820.c
index 6c43e6eda3a5..99a66645f70f 100644
--- a/usr.sbin/bhyve/e820.c
+++ b/usr.sbin/bhyve/e820.c
@@ -197,11 +197,17 @@ e820_add_entry(const uint64_t base, const uint64_t end,
 		return (0);
 	}
 
-	assert(element != NULL);
-	/* Non system memory should be allocated inside system memory. */
-	assert(element->type == E820_TYPE_MEMORY);
-	/* New element should fit into existing system memory element. */
-	assert(base >= element->base && end <= element->end);
+	/*
+	 * If some one tries to allocate a specific address, it could happen, that
+	 * this address is not allocatable. Therefore, do some checks. If the
+	 * address is not allocatable, don't panic. The user may have a fallback and
+	 * tries to allocate another address. This is true for the GVT-d emulation
+	 * which tries to reuse the host address of the graphics stolen memory and
+	 * falls back to allocating the highest address below 4 GB.
+	 */
+	if (element == NULL || element->type != E820_TYPE_MEMORY ||
+	    (base < element->base || end > element->end))
+		return (ENOMEM);
 
 	if (base == element->base) {
 		/*

From nobody Thu Aug 17 13:29:31 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRQpN1ZjGz4qgHv;
	Thu, 17 Aug 2023 13:29:32 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRQpN0zs2z4jYG;
	Thu, 17 Aug 2023 13:29:32 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692278972;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=m7ePx43WafxkO2Zaizyxktaba5T/5g3cpsw33bJRaZg=;
	b=rZa5W0LD13DBoI44hSWxvoSmqHYd51Dk5/aVgHz80zr4Js0XzgZPBzlz/IMGfpuoVLBjp4
	M7X0dpwPxoLVAjPTy0pHPBgKEFmNevXdOdcZ8qngzY3e2adaKiFd4zs+DPFR8gYrlPbW2G
	AN5Dyov6nnBbBX5n3tDvbXdnJgFmmRSmNj3VVxQprIsjro7uLcbJB3EBZ89nm9i5EQDszl
	wTMpnvbIyyto8dgQmFy0WPg0oSXkgaAPpzbO3USWbMDjK2NXTMMGpEhCk7IRBHiYmcWpE1
	IiY7A8/uitl5O29pdpzQ4ooNfQ99xdTPtOGARofrJN4TTVq7IEdwasZ62+jiPA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692278972;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=m7ePx43WafxkO2Zaizyxktaba5T/5g3cpsw33bJRaZg=;
	b=MwqFmYqlHaYhT1WYvXmV1dBZStjbekHmMwgDpspB1w31M3x/k1El3DM+TxeiM/sBp2/mSa
	C1vU8wOTA/oEKFmuPfXFhPRGhd1iOC58MkQvkjfyEEz80nJO9H7MbfQ48wl8oQOo3eUTiq
	rp4/OPf80iX+971iAyjoGCmQI5Wpv3vU/dDy7r42VLGJuF57b8Y1VPmrmJ6XRYvB+pABqs
	4wfoY5I9ffOVRKKq5TEGomI41ku5WrW+k4pbD/PoBd7ItF7QqSvLEUnfSInfkrAGzDmSIK
	XyKcfEIWo/7IAiHZ8qBMZJYnhNZ5TMkv0U2s+50Kyc7qx3xl9QbrSQKPuslKDg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692278972; a=rsa-sha256; cv=none;
	b=NZ1v1F0ZuYMTZur7tYNItf4nlmasHlaXebsqoAaSv4PaNbpfVpx5q0xTKBS4K+ShXVGS5v
	ZTmFeRhjUW2QVmuCvpaaWL6YPauBadsWhnLmavXT3+rvPYbCnZGEoBWdtrTSYuveG4KigU
	25GYmd24U3/4GXa3qlIazJGDtQNtkg/gIzy02DlUmQ5F5sS7L30YSY6cQmr9Styy/JOa7c
	VNGueMCy0xdlNJQ9Af8fb+3iu6SAeaIqcGXqhCkBSd6fEHz9KG4UGFwwPW9moa5FJ2XOpq
	kJsGqIjypGr1VIRqlCc2nwkMkHLekao3Hw3cwVjrb+2VpCu8B5RTHFHw8/FqxA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRQpN00fSzbk7;
	Thu, 17 Aug 2023 13:29:32 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37HDTVsX030652;
	Thu, 17 Aug 2023 13:29:31 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37HDTVsp030649;
	Thu, 17 Aug 2023 13:29:31 GMT
	(envelope-from git)
Date: Thu, 17 Aug 2023 13:29:31 GMT
Message-Id: <202308171329.37HDTVsp030649@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org>
Subject: git: 82eece443ee3 - stable/13 - bhyve: fix vCPU single-stepping
  on VMX
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: corvink
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 82eece443ee3eed9a04481e7127271985734ddff
Auto-Submitted: auto-generated

The branch stable/13 has been updated by corvink:

URL: https://cgit.FreeBSD.org/src/commit/?id=82eece443ee3eed9a04481e7127271985734ddff

commit 82eece443ee3eed9a04481e7127271985734ddff
Author:     Bojan Novković <bojan.novkovic@fer.hr>
AuthorDate: 2023-05-09 07:02:04 +0000
Commit:     Corvin Köhne <corvink@FreeBSD.org>
CommitDate: 2023-08-17 13:06:29 +0000

    bhyve: fix vCPU single-stepping on VMX
    
    This patch fixes virtual machine single stepping on VMX hosts.
    
    Currently, when using bhyve's gdb stub, each attempt at single-stepping
    a vCPU lands in a timer interrupt. The current single-stepping mechanism
    uses the Monitor Trap Flag feature to cause VMEXIT after a single
    instruction is executed. Unfortunately, the SDM states that MTF causes
    VMEXITs for the next instruction that gets executed, which is often not
    what the person using the debugger expects. [1]
    
    This patch adds a new VM capability that masks interrupts on a vCPU by
    blocking interrupt injection and modifies the gdb stub to use the newly
    added capability while single-stepping a vCPU.
    
    [1] Intel SDM 26.5.2 Vol. 3C
    
    Reviewed by:            corvink, jbh
    MFC after:              1 week
    Differential Revision:  https://reviews.freebsd.org/D39949
    
    (cherry picked from commit fefac543590db4e1461235b7c936f46026d0f318)
---
 sys/amd64/include/vmm.h   | 1 +
 sys/amd64/vmm/intel/vmx.c | 7 +++++++
 usr.sbin/bhyve/gdb.c      | 5 +++++
 3 files changed, 13 insertions(+)

diff --git a/sys/amd64/include/vmm.h b/sys/amd64/include/vmm.h
index 29797ad04e0d..84b689dd7391 100644
--- a/sys/amd64/include/vmm.h
+++ b/sys/amd64/include/vmm.h
@@ -500,6 +500,7 @@ enum vm_cap_type {
 	VM_CAP_RDPID,
 	VM_CAP_RDTSCP,
 	VM_CAP_IPI_EXIT,
+	VM_CAP_MASK_HWINTR,
 	VM_CAP_MAX
 };
 
diff --git a/sys/amd64/vmm/intel/vmx.c b/sys/amd64/vmm/intel/vmx.c
index 3a0693a29e80..9c2672c9ae23 100644
--- a/sys/amd64/vmm/intel/vmx.c
+++ b/sys/amd64/vmm/intel/vmx.c
@@ -1439,6 +1439,10 @@ vmx_inject_interrupts(struct vmx_vcpu *vcpu, struct vlapic *vlapic,
 	uint64_t rflags, entryinfo;
 	uint32_t gi, info;
 
+	if (vcpu->cap.set & (1 << VM_CAP_MASK_HWINTR)) {
+		return;
+	}
+
 	if (vcpu->state.nextrip != guestrip) {
 		gi = vmcs_read(VMCS_GUEST_INTERRUPTIBILITY);
 		if (gi & HWINTR_BLOCKING) {
@@ -3634,6 +3638,9 @@ vmx_setcap(void *vcpui, int type, int val)
 		vlapic = vm_lapic(vcpu->vcpu);
 		vlapic->ipi_exit = val;
 		break;
+	case VM_CAP_MASK_HWINTR:		
+		retval = 0;
+		break;
 	default:
 		break;
 	}
diff --git a/usr.sbin/bhyve/gdb.c b/usr.sbin/bhyve/gdb.c
index 6c1315a8371d..03f684e002ce 100644
--- a/usr.sbin/bhyve/gdb.c
+++ b/usr.sbin/bhyve/gdb.c
@@ -795,6 +795,9 @@ gdb_cpu_resume(int vcpu)
 	if (vs->stepping) {
 		error = vm_set_capability(ctx, vcpu, VM_CAP_MTRAP_EXIT, 1);
 		assert(error == 0);
+
+		error = vm_set_capability(ctx, vcpu, VM_CAP_MASK_HWINTR, 1);
+		assert(error == 0);
 	}
 }
 
@@ -845,6 +848,8 @@ gdb_cpu_mtrap(int vcpu)
 		vs->stepping = false;
 		vs->stepped = true;
 		vm_set_capability(ctx, vcpu, VM_CAP_MTRAP_EXIT, 0);
+		vm_set_capability(ctx, vcpu, VM_CAP_MASK_HWINTR, 0);
+
 		while (vs->stepped) {
 			if (stopped_vcpu == -1) {
 				debug("$vCPU %d reporting step\n", vcpu);

From nobody Thu Aug 17 13:29:33 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRQpP2fwJz4qgHx;
	Thu, 17 Aug 2023 13:29:33 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRQpP20Qvz4jYW;
	Thu, 17 Aug 2023 13:29:33 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692278973;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=eW4keyDRKKjDpuvBQrnfYv0dJsUgLOsS18lyN37WS/4=;
	b=Fw3jocyS5zVMhYbLI94ZZKLHEpBWJPiIZBQDEaPXAHSx66yHFGwQCwaZtK1m47V447NKhy
	8L61nqQGtGOQMI1iWVFdchNe97Rty76VZJpqvmc5rTLY571BkQRPE5sKUHS5VqLJVPWVja
	3NZGxENQ5hlboCZs247m5IFe92TzOqU5gcwvcJvThSMOXjTy2lU0ZJGoTZ/bqJxO/X3Z9R
	HZcreNiKlYK7KGtiJzREm6JXDeT3xZX6DwgFHY72BtUAxGh7sQrTe16IwBRDxUf1+xJuSa
	zLRyzP7JX/pPofYHOwiLFEMYldpyh2/9YdRCFzZXAgm0hR12//rZ2QDuaPAFlA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692278973;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=eW4keyDRKKjDpuvBQrnfYv0dJsUgLOsS18lyN37WS/4=;
	b=O80N2d7h+LyBGVyHhMjsjqDgfMcLKhVjI6nqH8D/nyElpn+zMsN3jw09pS8xHBOc9WQGgJ
	X/9AnXgrRgRvbYAbYlFWdVEDFzgjN4wTVBGOxRdvOIlddKGpjqcKAlU3VDSsjB9MazIR/y
	dTN8qhq4Nie5105F2gy/mxnulZo69C7MkzGfFj0FEVhgVHM/9Cs3hDPM9j4E7+f1k7QBRs
	zLZH3qRjeKuiuRi6CSNh8QUVn00RsrQPnqCNt67pkT9nOh0atObTSdZaQPBZuVDX41OvaE
	y69n2xdCkpfq2lEnvSHYXKRKOAajEWeGM3YJKD+LMEVzxC7nyplbkiRFKleP9g==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692278973; a=rsa-sha256; cv=none;
	b=k7zKSAshjkqXJYJOuBbqyooorphdF/iB6JMb0ycSUoBZBbGlP5PQw/5gevOBt4p1i5gUWr
	LJFCM8YMqN2zV/PdvoBvSc92Cgl6fY/+9+00+Dm9KCHoEJ3sqF2aJysOtmKT29pPWg3lIG
	3jYvN7oGz5vjw3QLbXmwzN7EFmk8QPtd954fzTmdmXwE5clcXLNuQbtGMfUjM+d4irvto9
	qsn7TmxOsn9eLdrVVDmahekVbcpbrE3hfdeD7GcxxfLGNKFxZBX6kEIM5JKwWD7kMKXVhm
	nDi/BG3Ih4C31vvDWzAMhwnA7x9959BYeJRddeRp74HneAFcXV23KeqN9z0AMg==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRQpP0ylyzZyh;
	Thu, 17 Aug 2023 13:29:33 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37HDTXl8030713;
	Thu, 17 Aug 2023 13:29:33 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37HDTXQJ030710;
	Thu, 17 Aug 2023 13:29:33 GMT
	(envelope-from git)
Date: Thu, 17 Aug 2023 13:29:33 GMT
Message-Id: <202308171329.37HDTXQJ030710@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org>
Subject: git: 320ce3c3c56b - stable/13 - bhyve: Remove vestigial
  support for setting max vCPUs.
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: corvink
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 320ce3c3c56bb0b52236d67c995a9d669e7a5bd2
Auto-Submitted: auto-generated

The branch stable/13 has been updated by corvink:

URL: https://cgit.FreeBSD.org/src/commit/?id=320ce3c3c56bb0b52236d67c995a9d669e7a5bd2

commit 320ce3c3c56bb0b52236d67c995a9d669e7a5bd2
Author:     John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2023-06-12 10:47:35 +0000
Commit:     Corvin Köhne <corvink@FreeBSD.org>
CommitDate: 2023-08-17 13:06:51 +0000

    bhyve: Remove vestigial support for setting max vCPUs.
    
    The kernel part of the hypervisor is not going to support per-VM maxcpu
    limits. The topology is only used to control the values returned by
    CPUID leaves for which max vCPUs is not relevant.
    
    Reviewed by:            corvink, markj
    MFC after:              1 week
    Differential Revision:  https://reviews.freebsd.org/D37176
    
    (cherry picked from commit bb1770105022e7d65bef0f32988c08ee9676b68e)
---
 usr.sbin/bhyve/bhyverun.c | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/usr.sbin/bhyve/bhyverun.c b/usr.sbin/bhyve/bhyverun.c
index 14a4eb9cabec..63ca9439d6e6 100644
--- a/usr.sbin/bhyve/bhyverun.c
+++ b/usr.sbin/bhyve/bhyverun.c
@@ -293,10 +293,6 @@ topology_parse(const char *opt)
 			set_config_value("cores", cp + strlen("cores="));
 		else if (strncmp(cp, "threads=", strlen("threads=")) == 0)
 			set_config_value("threads", cp + strlen("threads="));
-#ifdef notyet  /* Do not expose this until vmm.ko implements it */
-		else if (strncmp(cp, "maxcpus=", strlen("maxcpus=")) == 0)
-			set_config_value("maxcpus", cp + strlen("maxcpus="));
-#endif
 		else if (strchr(cp, '=') != NULL)
 			goto out;
 		else
@@ -1136,8 +1132,7 @@ do_open(const char *vmname)
 			exit(4);
 		}
 	}
-	error = vm_set_topology(ctx, cpu_sockets, cpu_cores, cpu_threads,
-	    0 /* maxcpus, unimplemented */);
+	error = vm_set_topology(ctx, cpu_sockets, cpu_cores, cpu_threads, 0);
 	if (error)
 		errx(EX_OSERR, "vm_set_topology");
 	return (ctx);

From nobody Thu Aug 17 13:29:34 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRQpQ3ZNPz4qgFQ;
	Thu, 17 Aug 2023 13:29:34 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRQpQ2tFHz4jvT;
	Thu, 17 Aug 2023 13:29:34 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692278974;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=D4l6eSc8+JPUi5CGDCCUqk1n1j+sFkqULVc9IrLLBQI=;
	b=ks02CuX9Dh00fynGCwlA+whHEMRl9uFYeOKzwO5rm3+xEGa7GJbQB2goOS+gn9f5U2OEu3
	Qlg/iKH9NxvLvgnGWFCakbgoXxyA2BQ1s+YSj8QZJkd7HGWWWIFjygmZ8qmNNRALdSLknz
	g4qAYiq0gpduCXaZD03pUju3rbYi0drJ0x2jUHgkMts9asb2hT1gLO6GtXLUCRPpjt4QD/
	b2PbtnNsA7GhxC5zOOP92dbFYs/exMsJesMEjqBhu/XPuWt8MQebqLfUBD0xgwo3knop8t
	5G5BuvCdTykSj4plxFCw1vskMB8YGCY8WrZQ2I7/7NGZfUtOLReda7TaNKlybQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692278974;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=D4l6eSc8+JPUi5CGDCCUqk1n1j+sFkqULVc9IrLLBQI=;
	b=tgpvyZmqFu9ClvkPMdI8F3zWlMH7l9mg+TXZwymKY4M38TsRQ0UD8paMkMbCIX/f9tw14N
	sbPdBvZJ0KS5Jb2exkJ2HAuYkRms60VdsNcMcBugPYvlNIdoHJK0yFiyj9H923PAKQL4LA
	Uaz7SuG8G2WBxg/TJJ1ccuGMjssDHxwZQR7Tvme/juFyxgXV8/xgxqTUbbV8XkHvFn6KVY
	KGrbXeUYDZ37k5Ay1zVfRiyvN3c+pcPBB5/C3el/oUwyP0fg2p+zIpKC/5YctGeaywG7zO
	1yGy1gJm+bUYcPiJSzRiDSnrAOkMdfqpspZV44Ss6oCE3epbOuFudI1q28mf7g==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692278974; a=rsa-sha256; cv=none;
	b=oquY3yGSaVJPMrAzTkI9OtlNF5vaz29GWsl3i/a6YIEphBG5GlkvsVNX6Z9RMZ8tdUMPA6
	cOjjBWoaNapnkLzPT9dRdzfhHsqW4FkSq4PGQzoaBN00VFza8JdRnAgvZmsjsUSnz/7+8p
	x2n2hY54GKyGi6C5cfhR0GMF51aU1LiSlXdJOEITjjkSTV8muETXQyfeWHPkW9YeIztoYj
	u1pJw4bvvOx8WEklIyXiVbEr2Za7hVaVvUa/uhHni5U9h7ji7i1SBUkeuPrBvK4pXM7j+H
	Q6ogv/Hfj7zfCWVRiKurX+SsbUIkuY1IOphPebkKLQXcRxAuYOgFm4ySQUNeZw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRQpQ1yfnzbsQ;
	Thu, 17 Aug 2023 13:29:34 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37HDTYKN030754;
	Thu, 17 Aug 2023 13:29:34 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37HDTYAI030751;
	Thu, 17 Aug 2023 13:29:34 GMT
	(envelope-from git)
Date: Thu, 17 Aug 2023 13:29:34 GMT
Message-Id: <202308171329.37HDTYAI030751@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org>
Subject: git: 1fb7c59981bc - stable/13 - linuxkpi: advance
  platform_device
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: corvink
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 1fb7c59981bc5d4c522521df067caaaa85c42cdb
Auto-Submitted: auto-generated

The branch stable/13 has been updated by corvink:

URL: https://cgit.FreeBSD.org/src/commit/?id=1fb7c59981bc5d4c522521df067caaaa85c42cdb

commit 1fb7c59981bc5d4c522521df067caaaa85c42cdb
Author:     Corvin Köhne <corvink@FreeBSD.org>
AuthorDate: 2023-01-31 08:18:38 +0000
Commit:     Corvin Köhne <corvink@FreeBSD.org>
CommitDate: 2023-08-17 13:06:53 +0000

    linuxkpi: advance platform_device
    
    These are required by some linux driver like:
    https://github.com/beckhoff/bbapi
    
    Reviewed by:            manu
    MFC after:              1 week
    Sponsored by:           Beckhoff Automation GmbH & Co. KG
    Differential Revision:  https://reviews.freebsd.org/D39554
    
    (cherry picked from commit 740d76544ad8a59f1be53584a0aa5bbbe00833ee)
---
 sys/compat/linuxkpi/common/include/linux/platform_device.h | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/sys/compat/linuxkpi/common/include/linux/platform_device.h b/sys/compat/linuxkpi/common/include/linux/platform_device.h
index f45cdce829c4..0d7aebfa4037 100644
--- a/sys/compat/linuxkpi/common/include/linux/platform_device.h
+++ b/sys/compat/linuxkpi/common/include/linux/platform_device.h
@@ -34,6 +34,9 @@
 #include <linux/device.h>
 
 struct platform_device {
+	const char			*name;
+	int				id;
+	bool				id_auto;
 	struct device			dev;
 };
 
@@ -78,6 +81,13 @@ platform_driver_unregister(struct platform_driver *pdrv)
 	return;
 }
 
+static __inline int
+platform_device_register(struct platform_device *pdev)
+{
+	pr_debug("%s: TODO\n", __func__);
+	return (0);
+}
+
 static __inline void
 platform_device_unregister(struct platform_device *pdev)
 {

From nobody Thu Aug 17 14:07:30 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRRfB4mhtz4qhy6;
	Thu, 17 Aug 2023 14:07:30 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRRfB4GJJz4mj8;
	Thu, 17 Aug 2023 14:07:30 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692281250;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=qXp4KN7qg6duBg5nf+VSqN14PHHq3MNkjfbwPLZUnXk=;
	b=HSqokwdMzdHLPKir5lSPV+/LyUCXX9clO8KTzEAWClHiys92KHVDo6NFUInC5lE3Ayi0o2
	mh/qPZDKSFgidn7EkMVwnkN5oeW/jj05DIlRvNwrzGPRsTNO1gGRQ5+3v7zqk6/4OaT7IN
	YTmr/NqdsiwEbEp0xa5l6Pn6gtfYRnuy8mPgYXtTy8igXdoHkX2gZ/kU3NnjMg1uVMnfS9
	bsm1u/oX41ypn6QWdx681pWczCk54qRDq5qJdqc/keFWc4DxglRG5M5/5WFcTBBEI4T4OC
	JDypnEYjGw3mQy5DEZHsWbRk+j9n3n9cAjAH+l76LgsJrzcwLN7n33r7bIlfqw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692281250;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=qXp4KN7qg6duBg5nf+VSqN14PHHq3MNkjfbwPLZUnXk=;
	b=IUYjhIAX9iFY01J2n1kud5LdMwRlg56uPhto036VzAiQOFJKSzZRK/jlZY2nQzYFXR9B1K
	P5FfVcQQ2kOped95ugDcTNO5nYsDIDa58XVbSMJ1AA2JKd4hRwbQ7zKWWmKSo32b3DLq0T
	J4wqB4FUu1f4h0wR2gLPwVTBDyg9oWg6m3uW05sPBrIcVHpvzWQjiBf4mNZG14Xn3zwkGV
	DkZ1HM9zZiISHSN9JzYh3f1JsYx7fPdLrOzbYbnVGoDqz0Vk7SqKx4tgHPGc/HqybqMWjo
	R3SbAAj+myBDITiM7YEbYZYVTZeS6UndJ/LcIfhYaPkMgpINLAidQQwlS1bnQw==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692281250; a=rsa-sha256; cv=none;
	b=pXD+RqAWpX78a+L/VESY20lKFWcfvWaUQB596qrb1p4iZOAO8PFV38znYP862g+HfXG3EE
	d0HIpTg7Rzp6UAAojPKadJO0XX9hWwSSX/u6F6EOKFCfNBvjVPra0ww0qM0zb6eJxildSz
	Gf4NmgHXcAV16y2b5W56ZHc9gbeIaj12kJKUuTZAzETlhiwIRm5VxDQxv66eGp4G/Wyra5
	5fFJrTxb21nH7or4rf+5Oh9+r8XcPweoL2MGjN/iwV2eh+H1+qCyav3jO/K/8kV3Ko8CvH
	1ShpHuVmNnv4fcrFPNlbvu0cdL53421UBgVfdO2D2P8MhbYcAEGddKR6xK6vaw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRRfB3K4Vzclw;
	Thu, 17 Aug 2023 14:07:30 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37HE7U98097159;
	Thu, 17 Aug 2023 14:07:30 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37HE7Uil097156;
	Thu, 17 Aug 2023 14:07:30 GMT
	(envelope-from git)
Date: Thu, 17 Aug 2023 14:07:30 GMT
Message-Id: <202308171407.37HE7Uil097156@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Ed Maste <emaste@FreeBSD.org>
Subject: git: 044dfb356bb6 - stable/13 - msi: report error for
  attempt to use APIC ID > 255
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: emaste
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 044dfb356bb6481af4de4ed0f7ef04c3b638bf71
Auto-Submitted: auto-generated

The branch stable/13 has been updated by emaste:

URL: https://cgit.FreeBSD.org/src/commit/?id=044dfb356bb6481af4de4ed0f7ef04c3b638bf71

commit 044dfb356bb6481af4de4ed0f7ef04c3b638bf71
Author:     Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2023-08-08 23:42:09 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2023-08-17 14:06:39 +0000

    msi: report error for attempt to use APIC ID > 255
    
    The MSI/MSI-X address includes 8 bits to encode the Destination ID.
    Previously IDs over 255 overlapped with the fixed portion of the
    address, resulting in an invalid value (and a nonfunctional interrupt).
    
    Instead, print an error message and return EINVAL.  The interrupt will
    still not work, but the user will have a clue as to why.
    
    PR:             273022
    Reviewed by:    jhb
    Sponsored by:   The FreeBSD Foundation
    Differential Revision:  https://reviews.freebsd.org/D41395
    
    (cherry picked from commit cbf845052f1c2862a64e66dbaf38e887a7592474)
---
 sys/x86/x86/msi.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/sys/x86/x86/msi.c b/sys/x86/x86/msi.c
index f85d4a5161e5..de8f42c0fa68 100644
--- a/sys/x86/x86/msi.c
+++ b/sys/x86/x86/msi.c
@@ -620,6 +620,11 @@ msi_map(int irq, uint64_t *addr, uint32_t *data)
 	mtx_unlock(&msi_lock);
 	error = EOPNOTSUPP;
 #endif
+	if (error == EOPNOTSUPP && msi->msi_cpu > 0xff) {
+		printf("%s: unsupported destination APIC ID %u\n", __func__,
+		    msi->msi_cpu);
+		error = EINVAL;
+	}
 	if (error == EOPNOTSUPP) {
 		*addr = INTEL_ADDR(msi);
 		*data = INTEL_DATA(msi);

From nobody Fri Aug 18 00:33:18 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRjXG46lCz4qNdD;
	Fri, 18 Aug 2023 00:33:18 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRjXG3Pgqz3Gpr;
	Fri, 18 Aug 2023 00:33:18 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692318798;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=4hlUqt1PIXafAPoMNE0UI7k4OBUzTpcTTBss4tMyjfw=;
	b=bg6yOwwxJo1L6L0w6cN+ZsLgSsv9y1wLRjY/v8c/w2Tx1LPUgRG/b0ofTZiTOH8+HUi2JT
	EGL/rWcRTwibjtv0WpgFTaoMn30MXZCagO2uI5+KemWyQjwf5h065kaIOYAQ+xuF4D+tb3
	VcAor14eJwwqME2oLJl6OBMaQkv0ua25aYpVMuW+wGUKZo0An70ZrA9hyjGE+1L1nEer9f
	eSNzoPSutYi2/K33GM0PpwhzyMQVo1jm9j35RqDxAAoIdMD+hZ8O3wD1TsSBEETVdYQgBR
	gsjfclv529+AzK5eKjn3MKk1Yxm6Coy+eXOKN/XX6B1IGHxPmQQkZzpJNqjaow==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692318798;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=4hlUqt1PIXafAPoMNE0UI7k4OBUzTpcTTBss4tMyjfw=;
	b=YiHdS8eixwNgzZeirxSdzp5r14Zy06ezpYSaNirvdPoHVMdqkHLmw5m2oaVLvKW0cFbhPI
	2tAnasGXT2If6/ovqe//Snu8QcUf1QmCS798COBeqX0jf56ltHKm4U7Kb4rHHFjEannHsc
	9aHLXYAiJvHThqJWd6Txyhm5NNcn2RkY1l7rNQfsrm63eu0vt/8V3Ug7IIMe08udVUP818
	Ot1Z4Lx1/WagmeQORZPw+VaVbwys2ZKnDFCq4rVulsWbBaYZuaiSJk6Tp5yBItFX4d7YzY
	ip54hyvWjpD9cwfXxOHiRCjVOmqMUx+tQZAXo6fiX0WjHOEl4uSS4y29tMPmVg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692318798; a=rsa-sha256; cv=none;
	b=S1B5z8YgPTMSh8IhhIL3DtgIW2150XPgapnju4WVJir20qUk9Z0XqeEWphHNYjaR85T5oJ
	Q7fFQ96dgEiGygX9Ts0xMdC5/mstpOd7juj9ATUXGaPympB/B06umbRYSMl925nLh0FmAJ
	/u/kOFU9ywL6NzsYQwbQTW6po1IVoCs+2sF+3zTNsR46E0Bvr1XM89lCJBMfFkk456dUh2
	VtQ0HQseihHZmZQ1KbeVBbSSQnoJoxoP9SjyNJh31iUGf6KKI57o9E+RprwrtPAk0tUW75
	CGuzQCfIZt7He2PsNeKOd97tTU4PrAA01NX5iDaXRMYzotuEy/3b5m1ujsoTwQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRjXG2QLWzvML;
	Fri, 18 Aug 2023 00:33:18 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37I0XIaQ046225;
	Fri, 18 Aug 2023 00:33:18 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I0XIBW046222;
	Fri, 18 Aug 2023 00:33:18 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 00:33:18 GMT
Message-Id: <202308180033.37I0XIBW046222@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Kevin Bowling <kbowling@FreeBSD.org>
Subject: git: 3bbf655b2826 - stable/13 - e1000: Fix off by one ipcse
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: kbowling
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 3bbf655b282690a70051f386c64aa95430b5fb64
Auto-Submitted: auto-generated

The branch stable/13 has been updated by kbowling:

URL: https://cgit.FreeBSD.org/src/commit/?id=3bbf655b282690a70051f386c64aa95430b5fb64

commit 3bbf655b282690a70051f386c64aa95430b5fb64
Author:     Kevin Bowling <kbowling@FreeBSD.org>
AuthorDate: 2023-08-15 21:37:43 +0000
Commit:     Kevin Bowling <kbowling@FreeBSD.org>
CommitDate: 2023-08-18 00:33:08 +0000

    e1000: Fix off by one ipcse
    
    This has been off by one in the FreeBSD drivers as far back as I've
    looked.  Emperically HW and SW emulations I have available don't seem to
    mind.  Noticed while debugging other issues.
    
    (cherry picked from commit eac761e967b34066aa7183474249df87d79a2f32)
---
 sys/dev/e1000/em_txrx.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys/dev/e1000/em_txrx.c b/sys/dev/e1000/em_txrx.c
index b90ab21cd825..765458d621f9 100644
--- a/sys/dev/e1000/em_txrx.c
+++ b/sys/dev/e1000/em_txrx.c
@@ -290,7 +290,7 @@ em_transmit_checksum_setup(struct e1000_softc *sc, if_pkt_info_t pi,
 	    offsetof(struct ip, ip_sum);
 	if (csum_flags & CSUM_IP) {
 		*txd_upper |= E1000_TXD_POPTS_IXSM << 8;
-		TXD->lower_setup.ip_fields.ipcse = htole16(hdr_len);
+		TXD->lower_setup.ip_fields.ipcse = htole16(hdr_len - 1);
 		cmd |= E1000_TXD_CMD_IP;
 	} else if (csum_flags & (CSUM_IP6_TCP | CSUM_IP6_UDP))
 		TXD->lower_setup.ip_fields.ipcse = htole16(0);

From nobody Fri Aug 18 00:56:48 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRk3N5VH8z4qPxD;
	Fri, 18 Aug 2023 00:56:48 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRk3N51L4z3JPL;
	Fri, 18 Aug 2023 00:56:48 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692320208;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=0LTxpd/O6SRTx3OKhMfHqi+1CuqR+yie7Uh2Vus3f6w=;
	b=XTzMofhXxVqaGqfFYiCi6xwLCQriZL+ECmHEkeuJpDZSKh6hALKqLcg1OeZKG4xMf2R7SX
	53rVr6a7l9Bjgp97g2n0heehQxyjn+rrHa9H1tSZvoncXpJ4aH8mdLjRFwPef1nGCUKaa+
	geizpIlKPJEGKn39EzaqskvIHxLqVq2PQY+Jdp69Rv2mCUuGlW43BaITU82Kk4vkTH/hZH
	dZ5MJqHovznUnMRiOtMB6uNd5v3LUXruVO5iqH/zxDRkdDy9hIt8e8bSbnPOMDenkknIkn
	9OOrTX59EcC3VRG9K/DHV9S3+lgEbwOF0LQIWqNfhu6CNLIkIySYk5f665kkXQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692320208;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=0LTxpd/O6SRTx3OKhMfHqi+1CuqR+yie7Uh2Vus3f6w=;
	b=Vr3CtZ+zuEGATvV7r5t4UBjCQ0gvRKrXc1SBWxD+4npOrerHKzgLCE6Er1RQNV283yRhfy
	NJQ9AfzvDMYSUM5Vzw5fQSTMMfvgCG5XgrO8ugpKL+30LaRWS0MnKSIiMY5wYssXNkprSm
	xQCCJv1WKhuHs3KwpGr3CCQt7k/bmb6gRNxdrPRdGLAhkiBFluCCXoIu6rcORturRA/G1o
	ey/hSgHeOeTLcGY8H27KrpQx9HL8jwW3zhivnk8WiPx++ztPOyvqqv8a5q6EfKCrRmmrOt
	EH3gwx2kBwgrtGcHObAb2Cb53i/cJuibm4Pdn3bS1VX28VEvwPbBLDJ+2+n5MQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692320208; a=rsa-sha256; cv=none;
	b=V7dzT03XmZ7Yszw+b49upWDzDd2NXoFruzqb0jXkVxnm7GpIHRJwWL5u5TUYsO0TbmbFEs
	tSqQd75TvJNrz1PGeOqVGweejFko0ObtYai7DXzCmpcTraQI/boGgPQOtAwlK3+jCDushs
	SmZLDEQJqf4+AuNj53WmFd7vNWx9rb+PYAbGNj8ER2mdB56LmlnWCMA9xh2hYRBqo5cWKo
	JB6Ksw4UbZ7mhX/cWyK5hAM5HbGlMs6F8c5z5rQ1waszR0mI99UbjISp9Sufr73aWVjN15
	8OkGKpGE3VBAmTVUjbWpO5+PyVjnWAEZhImEHRYYyf9b4Ho+YfTUBoyoiC5YcA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRk3N44rJzw9d;
	Fri, 18 Aug 2023 00:56:48 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37I0umlt079880;
	Fri, 18 Aug 2023 00:56:48 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I0umh9079877;
	Fri, 18 Aug 2023 00:56:48 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 00:56:48 GMT
Message-Id: <202308180056.37I0umh9079877@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Kevin Bowling <kbowling@FreeBSD.org>
Subject: git: b8e5efdd24b0 - stable/13 - e1000: Some fixes for
  hardware capabilities
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: kbowling
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: b8e5efdd24b09fffa345a64db585ed9d66b00f84
Auto-Submitted: auto-generated

The branch stable/13 has been updated by kbowling:

URL: https://cgit.FreeBSD.org/src/commit/?id=b8e5efdd24b09fffa345a64db585ed9d66b00f84

commit b8e5efdd24b09fffa345a64db585ed9d66b00f84
Author:     Kevin Bowling <kbowling@FreeBSD.org>
AuthorDate: 2023-08-03 20:49:15 +0000
Commit:     Kevin Bowling <kbowling@FreeBSD.org>
CommitDate: 2023-08-18 00:54:54 +0000

    e1000: Some fixes for hardware capabilities
    
    This MFC squash retains disabled TSO ultimately, but contains some
    capability fixes.
    
    f1b5488f:
    e1000: Enable TSO for lem(4) and em(4)
    
    Most em(4) devices now enjoy TSO and TSO6, matching NetBSD and Linux
    defaults.
    
    A prior commit automasks TSO on 10/100 Ethernet due to errata and other
    bugs for IPv6 were fixed recently allowing this.
    
    Mike Karels identified a performance anomaly on Intel 82574L devices.
    These are multiqueue enabled on FreeBSD since the conversion to
    iflib.  I am investigating whether this can be fixed, in the mean time
    MSI-X with checksum offloads remain default.
    
    i219 SPT devices have an errata that downclocks the DMA engine, which
    results in TSO not being able to acheive line rate.  Therefore, it is
    disabled on:
    * Intel(R) I219-LM and I219-V SPT
    * Intel(R) I219-LM and I219-V SPT-H (2)
    * Intel(R) I219-LM and I219-V LBG (3)
    * Intel(R) I219-LM and I219-V SPT (4)
    * Intel(R) I219-LM and I219-V SPT (5)
    
    Many lem(4) devices enjoy TSO, exceptions being 82542, 82543, 82547.
    TSO6 may be possible for some chipsets but I am still working through
    my testing matrix and that is hidden behind hw.em.unsupported_tso.
    
    If you encounter issues, you may disable TSO with for example:
    ifconfig em0 -tso -tso6.
    I ask to be informed of any deviations from normal operation requiring
    this.
    
    Thanks to cc@ for access to emulab.net.
    
    On a sample I219 system it saves about 16% CPU on IPv4 and 19% on IPv6.
    
    iperf3 -Vc reported numbers:
    total%  user%   system%
    
    IPv4 TSO
    21.3    7       14.4
    21.4    6       15.4
    21.5    6       15.5
    
    IPv4 no TSO
    36.8    5.4     31.4
    38.5    5.1     33.5
    38.2    5.7     32.6
    
    IPv4 no TSO no TXCSUM
    45.1    5.8     39.3
    46      6.3     39.7
    46.2    5.9     40.4
    
    IPv6 TSO6
    21.7    5.4     16.3
    21.6    5.1     16.5
    21.9    5.6     16.3
    
    IPv6 no TSO6
    41.2    5.2     36
    41      5.1     36
    40.8    5.2     35.7
    
    IPv6 no TSO6 no TXCSUM6
    49      5.9     43.1
    48.8    4.9     43.9
    49      5.6     43.4
    
    Tested by:      cc (lem(4)), karels (82574L)
    Relnotes:       yes
    Sponsored by:   BBOX.io
    Differential Revision:  https://reviews.freebsd.org/D41170
    
    13da8423:
    e1000: Enable TSO on 82574
    
    Further testing indicates something wrong with particular reciever,
    enabling TSO 82574 for wider testing.
    
    Tested by:      karels
    
    797e480c:
    e1000: disable TSO on lem(4) and em(4)
    
    Disable TSO on lem(4) and em(4) until a ring stall can be debugged.
    
    I am not able to reproduce the issue on lem(4) but disabling there in
    abundance of caution in case the issue is not specific to em(4).
    
    Reported by:    grog
    
    (cherry picked from commit f1b5488f7bba7f25a57750f87cbcbccbd5b9d16b)
    (cherry picked from commit 13da84237a37961938e9e237171ac111ddc1897c)
    (cherry picked from commit 797e480cba8834e584062092c098e60956d28180)
---
 sys/dev/e1000/if_em.c | 69 +++++++++++++++++++++++++++++----------------------
 1 file changed, 40 insertions(+), 29 deletions(-)

diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c
index bf5fec7e9e3a..7f72ae53d0a2 100644
--- a/sys/dev/e1000/if_em.c
+++ b/sys/dev/e1000/if_em.c
@@ -905,25 +905,19 @@ em_if_attach_pre(if_ctx_t ctx)
 		scctx->isc_tx_tso_size_max = EM_TSO_SIZE;
 		scctx->isc_tx_tso_segsize_max = EM_TSO_SEG_SIZE;
 		scctx->isc_capabilities = scctx->isc_capenable = EM_CAPS;
-		/*
-		 * For EM-class devices, don't enable IFCAP_{TSO4,VLAN_HWTSO,TSO6}
-		 * by default as we don't have workarounds for all associated
-		 * silicon errata.  E. g., with several MACs such as 82573E,
-		 * TSO only works at Gigabit speed and otherwise can cause the
-		 * hardware to hang (which also would be next to impossible to
-		 * work around given that already queued TSO-using descriptors
-		 * would need to be flushed and vlan(4) reconfigured at runtime
-		 * in case of a link speed change).  Moreover, MACs like 82579
-		 * still can hang at Gigabit even with all publicly documented
-		 * TSO workarounds implemented.  Generally, the penality of
-		 * these workarounds is rather high and may involve copying
-		 * mbuf data around so advantages of TSO lapse.  Still, TSO may
-		 * work for a few MACs of this class - at least when sticking
-		 * with Gigabit - in which case users may enable TSO manually.
-		 */
-		scctx->isc_capenable &= ~(IFCAP_TSO4 | IFCAP_VLAN_HWTSO | IFCAP_TSO6);
 		scctx->isc_tx_csum_flags = CSUM_TCP | CSUM_UDP | CSUM_IP_TSO |
 		    CSUM_IP6_TCP | CSUM_IP6_UDP;
+
+		/* Disable TSO on all em(4) until ring stalls can be debugged */
+		scctx->isc_capenable &= ~IFCAP_TSO;
+
+		/*
+		 * Disable TSO on SPT due to errata that downclocks DMA performance
+		 * i218-i219 Specification Update 1.5.4.5
+		 */
+		if (hw->mac.type == e1000_pch_spt)
+			scctx->isc_capenable &= ~IFCAP_TSO;
+
 		/*
 		 * We support MSI-X with 82574 only, but indicate to iflib(4)
 		 * that it shall give MSI at least a try with other devices.
@@ -946,24 +940,41 @@ em_if_attach_pre(if_ctx_t ctx)
 		scctx->isc_capabilities = scctx->isc_capenable = LEM_CAPS;
 		if (em_unsupported_tso)
 			scctx->isc_capabilities |= IFCAP_TSO6;
-		/*
-		 * For LEM-class devices, don't enable IFCAP_{TSO4,VLAN_HWTSO}
-		 * by default as we don't have workarounds for all associated
-		 * silicon errata.  TSO4 may work on > 82544 but its status
-		 * is unknown by the authors.  Please report any success or failures.
-		 */
-		scctx->isc_capenable &= ~(IFCAP_TSO4 | IFCAP_VLAN_HWTSO);
 		scctx->isc_tx_csum_flags = CSUM_TCP | CSUM_UDP | CSUM_IP_TSO |
 		    CSUM_IP6_TCP | CSUM_IP6_UDP;
 
+		/* Disable TSO on all lem(4) until ring stalls can be debugged */
+		scctx->isc_capenable &= ~IFCAP_TSO;
+
+		/* 82541ER doesn't do HW tagging */
+		if (hw->device_id == E1000_DEV_ID_82541ER ||
+		    hw->device_id == E1000_DEV_ID_82541ER_LOM) {
+			scctx->isc_capabilities &= ~IFCAP_VLAN_HWTAGGING;
+			scctx->isc_capenable = scctx->isc_capabilities;
+		}
+		/* This is the first e1000 chip and it does not do offloads */
+		if (hw->mac.type == e1000_82542) {
+			scctx->isc_capabilities &= ~(IFCAP_HWCSUM | IFCAP_VLAN_HWCSUM |
+			    IFCAP_HWCSUM_IPV6 | IFCAP_VLAN_HWTAGGING |
+			    IFCAP_VLAN_HWFILTER | IFCAP_TSO | IFCAP_VLAN_HWTSO);
+			scctx->isc_capenable = scctx->isc_capabilities;
+		}
+		/* These can't do TSO for various reasons */
+		if (hw->mac.type < e1000_82544 || hw->mac.type == e1000_82547 ||
+		    hw->mac.type == e1000_82547_rev_2) {
+			scctx->isc_capabilities &= ~(IFCAP_TSO | IFCAP_VLAN_HWTSO);
+			scctx->isc_capenable = scctx->isc_capabilities;
+		}
+		/* XXXKB: No IPv6 before this? */
+		if (hw->mac.type < e1000_82545){
+			scctx->isc_capabilities &= ~IFCAP_HWCSUM_IPV6;
+			scctx->isc_capenable = scctx->isc_capabilities;
+		}
 		/* "PCI/PCI-X SDM 4.0" page 33 (b) - FDX requirement on these chips */
-		if (hw->mac.type == e1000_82542 || hw->mac.type == e1000_82547 ||
-		    hw->mac.type == e1000_82547_rev_2)
+		if (hw->mac.type == e1000_82547 || hw->mac.type == e1000_82547_rev_2)
 			scctx->isc_capenable &= ~(IFCAP_HWCSUM | IFCAP_VLAN_HWCSUM |
 			    IFCAP_HWCSUM_IPV6);
-		/* 82541ER doesn't do HW tagging */
-		if (hw->device_id == E1000_DEV_ID_82541ER || hw->device_id == E1000_DEV_ID_82541ER_LOM)
-			scctx->isc_capenable &= ~IFCAP_VLAN_HWTAGGING;
+
 		/* INTx only */
 		scctx->isc_msix_bar = 0;
 	}

From nobody Fri Aug 18 00:59:42 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRk6l1Kh8z4qPsj;
	Fri, 18 Aug 2023 00:59:43 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRk6k6CmFz3KZm;
	Fri, 18 Aug 2023 00:59:42 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692320382;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=3NumkOSnyM14tqEMz6hRwJrN0QIMkq+rNXoisDiunHk=;
	b=yHXQu3oBNyVEvrKdgEVTN2BmFNgkt7sEkEaVOhHxMmFESqRPE6uNGHTigNRhHDZcATgpVj
	IKXoddvDbqq/E7JQkZ8Fd6oyEUupPbw0b+lusFWG0dwbMJSozP8+/qlyrhwKHEws876dYE
	3vMJUDKgyiG9Yuej9EDjf/KY7mymD06qcCmX2x0CmHzYR3rsC1MAYfA2r47W1ddMN9RNaB
	jewuKqUmF+LvWSxIZQgnGMkonu9pW8wNzubVBnWyJsDJWAWyrPOljW+nlm8mIxz1GM9kXn
	hrkAiRbRHOpYCyUFbG7e6Hu+lBubXcVugYO8ZiKUfmuEfWMJe6htz5bohaj2rQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692320382;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=3NumkOSnyM14tqEMz6hRwJrN0QIMkq+rNXoisDiunHk=;
	b=CZri242y1KwIfLPI7fxfulMXpGhfpXWWT9Qqn2jr0XQ77QZgZ6eeCiFYygnglRoUhYBEnS
	5zOYWtmTuf8GrtcGRhxQKFz+eTMlnHyBS3s3kuruc3jfF9Do6t26xNBmBFB/zvR6RHcDLW
	kIpsqbFFCshhdto/jb40UoA1aHCpXhxqBx3wj4fNWNUx8R6B2UkshhlM+49V/wRF2I64A6
	0di/KyAo+SAGLVESrXhq/hwPyBovw9yngECnPpddLe4qzqN5tcA0vWFkE/ynnzyeRT3qfB
	lpwX2sGZodwpTWYGHwlg0DYu7/PBF/XGRucFOqmrdDkiV67b+Tja2priz8I19w==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692320382; a=rsa-sha256; cv=none;
	b=FZqOzFn/Sj1Sf2XGL2ICi8W3RxUfth/6NZbsbMXAxmvPba0bvpWd5aR40MCja4TmaByKSy
	Qph74oQvZVQYG0+r4+VpjEMJJJehdG2oF8sdgB8GwIdG0XyG4bUtZ3tFoJ7Nzj/NG7ojzn
	kSYquGaR3RMHjj/VhWPoe0VMD/FlX902oeFMbZi1XGF38dqK6wy+BEwflOREKHndqtpVCv
	RVMC2oUvROV/z0BQjI57XBKCfEdSvvF6zumhH34lnauu1e9GBbPImg62HI2JbHjWN+tJXr
	eBdZ7YzzJvMpH9ZH2OyNatUyONglGOQQ+sOnTJtJHeVzxs51YSKlyKP6DXfXhA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRk6k5HGrzvxS;
	Fri, 18 Aug 2023 00:59:42 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37I0xgEP080385;
	Fri, 18 Aug 2023 00:59:42 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I0xgjR080382;
	Fri, 18 Aug 2023 00:59:42 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 00:59:42 GMT
Message-Id: <202308180059.37I0xgjR080382@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Kevin Bowling <kbowling@FreeBSD.org>
Subject: git: f73eb35106cc - stable/13 - vlan: Respect IFCAP_LRO
  mask
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: kbowling
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: f73eb35106cc65d19af0f2e82a111308c5090c3a
Auto-Submitted: auto-generated

The branch stable/13 has been updated by kbowling:

URL: https://cgit.FreeBSD.org/src/commit/?id=f73eb35106cc65d19af0f2e82a111308c5090c3a

commit f73eb35106cc65d19af0f2e82a111308c5090c3a
Author:     Kevin Bowling <kbowling@FreeBSD.org>
AuthorDate: 2023-08-12 16:31:22 +0000
Commit:     Kevin Bowling <kbowling@FreeBSD.org>
CommitDate: 2023-08-18 00:59:30 +0000

    vlan: Respect IFCAP_LRO mask
    
    vlan_capabilities(), used by the IFCAP ioctl, was not respecting the
    IFCAP_LRO bit if it was masked by the requestor.
    
    This prevented if_bridge(4) from automasking LRO with a message like:
    bridge0: can't disable some capabilities on em3.11: 0x400
    
    This also prevented manually disabling LRO from any vlan interface.
    
    PR:             254596
    Reported by:    Paul Vixie <paul@redbarn.org>
    
    (cherry picked from commit b1a39c31a3569bd045a0f40057c3773fc8166f6d)
---
 sys/net/if_vlan.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys/net/if_vlan.c b/sys/net/if_vlan.c
index 21082f2d5741..d34575dd61fc 100644
--- a/sys/net/if_vlan.c
+++ b/sys/net/if_vlan.c
@@ -1850,7 +1850,7 @@ vlan_capabilities(struct ifvlan *ifv)
 	if (p->if_capabilities & IFCAP_VLAN_HWCSUM)
 		cap |= p->if_capabilities & IFCAP_LRO;
 	if (p->if_capenable & IFCAP_VLAN_HWCSUM)
-		ena |= p->if_capenable & IFCAP_LRO;
+		ena |= mena & IFCAP_LRO;
 
 	/*
 	 * If the parent interface can offload TCP connections over VLANs then

From nobody Fri Aug 18 01:00:18 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRk7R3br8z4qPpX;
	Fri, 18 Aug 2023 01:00:19 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRk7R18z2z3L7b;
	Fri, 18 Aug 2023 01:00:19 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692320419;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=5CflBasuSv/jedMjuZpWZCVjUcnnIiKj0w5KRw1VUmM=;
	b=wN6/mxoaa8TtHsxbJOXtkafmGVPHD3NFegEUgJF9OxjyKPbE6O1t5OjC/JjNrEFbKXm0Ej
	F/A6PpM5vAqk3jQC5qnqVdexPwRQVOsG3nTagkH3bLTwaqUeio9hgpNlFowvn0dP+7iSHQ
	4hjwCtd/ekPd7BZqBqsUKZs+DF9w2PIk3wIEkvhXHSUPbrTYhwz3tn/DBv4RuxmMzhY+8o
	o8x3WYIsa9tbJoUc0W2ES89mLVcSbPoJJR3jo1xHOQtGqSUyQWWF39vtzXdsGQYAMXBrf4
	gWrIY+uE6TIk3mMqgoV6hLHLARdWnf+PQmiKZWubNilyQkegShLWdjBCFQXXRg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692320419;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=5CflBasuSv/jedMjuZpWZCVjUcnnIiKj0w5KRw1VUmM=;
	b=i+ezwrEcWqRxHfHxW2yWF+dY2elZ6RBeh//Rcbf9EoI+UFchZXNqMNWDV78162RRVFiCE5
	eVEJn+DP9ZHtWQxTBAIhgZIHT6o2MRwXyU/e7WOPEldo6VuiLIk46f3tLQxxVrClNUj/x+
	H0jL5T7NfHW4yAos+M6/gFj3tYGAncM7TNIrECkc9D6BdJJ2TCWkDPeuVABwujtxOMHYRA
	Leq5UIOiAf9+QvSolEAFoqg5zRPPcpKfo2QH6kB1Aj6TJIgxOpgsdxmUZ97o2Qq4s9Wugc
	zObxgYkdMRXa/gIoVaXqMmBLTFX6oTRq54uECSMRu03Kj2DcsDQsPDKeiYZlCQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692320419; a=rsa-sha256; cv=none;
	b=rY7R2ci+cZvbCQiGBzehuEVRgCFCdw+Sy9NiFcTcUc6qfVh4LyMKY82qRnE8qQyzpjvZtq
	4qiXh1f5Ej1LJgomP9Mhbw9zwNuNvY1i9LYezS6AYF6St7CrLHpZH+F7HxU9KiNVkE/Vln
	90hZMwzwMYLvvP1689UaJ6+yaZTMXyUyFlCXO6bPGqOajmJFdAVavMHFfG13SfcKmOnRWq
	vQeA3/qSGvtSdpdKT0VrIdE8qzsmIRqNSY8Ut7OAgZzq2wLoZlGBzHashG5iodDByMH1/A
	oek1pQUvuyyT1KPmJBvc66gainaR8ABp1bffK3LqYefaU4Y7/lSIsmnwJj2QxQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRk7R05m8zwSN;
	Fri, 18 Aug 2023 01:00:19 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37I10Ieu090137;
	Fri, 18 Aug 2023 01:00:18 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I10IEh090134;
	Fri, 18 Aug 2023 01:00:18 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 01:00:18 GMT
Message-Id: <202308180100.37I10IEh090134@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Kevin Bowling <kbowling@FreeBSD.org>
Subject: git: 50b52fe14b89 - stable/12 - vlan: Respect IFCAP_LRO
  mask
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: kbowling
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/12
X-Git-Reftype: branch
X-Git-Commit: 50b52fe14b8949539e7fe583d4578b1f2c96dc59
Auto-Submitted: auto-generated

The branch stable/12 has been updated by kbowling:

URL: https://cgit.FreeBSD.org/src/commit/?id=50b52fe14b8949539e7fe583d4578b1f2c96dc59

commit 50b52fe14b8949539e7fe583d4578b1f2c96dc59
Author:     Kevin Bowling <kbowling@FreeBSD.org>
AuthorDate: 2023-08-12 16:31:22 +0000
Commit:     Kevin Bowling <kbowling@FreeBSD.org>
CommitDate: 2023-08-18 01:00:07 +0000

    vlan: Respect IFCAP_LRO mask
    
    vlan_capabilities(), used by the IFCAP ioctl, was not respecting the
    IFCAP_LRO bit if it was masked by the requestor.
    
    This prevented if_bridge(4) from automasking LRO with a message like:
    bridge0: can't disable some capabilities on em3.11: 0x400
    
    This also prevented manually disabling LRO from any vlan interface.
    
    PR:             254596
    Reported by:    Paul Vixie <paul@redbarn.org>
    
    (cherry picked from commit b1a39c31a3569bd045a0f40057c3773fc8166f6d)
---
 sys/net/if_vlan.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys/net/if_vlan.c b/sys/net/if_vlan.c
index 491c1a4fa371..5c84480e15d3 100644
--- a/sys/net/if_vlan.c
+++ b/sys/net/if_vlan.c
@@ -1748,7 +1748,7 @@ vlan_capabilities(struct ifvlan *ifv)
 	if (p->if_capabilities & IFCAP_VLAN_HWCSUM)
 		cap |= p->if_capabilities & IFCAP_LRO;
 	if (p->if_capenable & IFCAP_VLAN_HWCSUM)
-		ena |= p->if_capenable & IFCAP_LRO;
+		ena |= mena & IFCAP_LRO;
 
 	/*
 	 * If the parent interface can offload TCP connections over VLANs then

From nobody Fri Aug 18 04:03:57 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRpCK559kz4qc3Z;
	Fri, 18 Aug 2023 04:03:57 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRpCK4Pbzz3ddR;
	Fri, 18 Aug 2023 04:03:57 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692331437;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=pAejLlSelIxx13AFby1jK4GVIbgfmmAXRnyHTrZVojY=;
	b=Zk/nDbe+Sp4m6TeQPBePpkCbuGDDyw2uELOjcjMMlR3BiN7l75FwTWMBIBXRynbI7ae1Bj
	OUpi1Vo/T2mts4gcRPq51K3uKEfx7Y9L3hrEWZub98D0U9hk/SYtTl2Obr4VU8tO7aM6Ks
	CD+DCbvX4dqYdsfejX1yw2byx9uJSnDF3waT0eQXBrU/yk7LIEIV5xhVHhxJx/8Rz4AZeL
	x1Fkbs0g5zQL6iiq9OypfULBkVxm7VUzkBCtLBwOCOYA4og2FK3lhJAsg67u8HT02LXCoG
	bvs97mE/AlE6tRVvshebN4+JEwIFE255RGOBgbFcixFpaXVk7z2gJR6wkhsS1g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692331437;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=pAejLlSelIxx13AFby1jK4GVIbgfmmAXRnyHTrZVojY=;
	b=dqHx5I6Cjw5I1UfVv93RN8WotEwYdh1oe6sWStn9vgB+UZ3HL3THesS0IFZ3TW1E53oMgC
	Op7+pOZXDYy8EiEqsfwgSjhKIu/HwlZ+OOkR8qVFbSWrxnIzCEWlVe9agjvNNiCWOGiMpD
	/l2hs0X0MWumjkcYPRr7Xe8GoMJS8j1PVinToHPq8vvfKVSacpak5BctbDqjkmP/gtnvEq
	FfqK8GNur5B9wQGZowf4pBCu/fELEio5y4GSXLivT1ph+R0cxTKRW/QeUAAnDdhQ1GvzCU
	v+1gRah1VK+FHbS6S09+ckOPj06exdIhAlPBkkIsdc5U9YQ8AYNOCmjp7KHZ8g==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692331437; a=rsa-sha256; cv=none;
	b=t98YozohKEJ7RSadbJwoHQhuT90QR11EOp8oAef8rsrfVTyF563C/J1QjSlxy9n1h5yuNj
	BJ7wWGCpfHWC5rucbUvH9Wl2sjI6sfCnV/zoOXYrtBQtl8f9AEe0aTXae4kuyKdTtRTn4t
	amoZ/q01VnZUmcf1HzJTZsRP67S736xXTyjIBCEymvOwmev4VEymPt9YFaV0j608bmxzRi
	1bVesVRTbBmr6QPTHQLG3HfOwH1u0wRCJGSPe6xs/FAkdBK95mT2OYoJoUN5Tip8rLlJtY
	jJGfd8yUcWKN/bT9b5c1LwbIy8tnSv6da53xJRW4xR1njygg1fR9bCr0OLpAyg==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRpCK3Gbcz11kP;
	Fri, 18 Aug 2023 04:03:57 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37I43vfG098758;
	Fri, 18 Aug 2023 04:03:57 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I43vjm098755;
	Fri, 18 Aug 2023 04:03:57 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 04:03:57 GMT
Message-Id: <202308180403.37I43vjm098755@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Kyle Evans <kevans@FreeBSD.org>
Subject: git: f0ebed6a313b - stable/13 - kern: osd: avoid dereferencing
  freed slots
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: kevans
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: f0ebed6a313b8cdd91859287aad8015392352bc1
Auto-Submitted: auto-generated

The branch stable/13 has been updated by kevans:

URL: https://cgit.FreeBSD.org/src/commit/?id=f0ebed6a313b8cdd91859287aad8015392352bc1

commit f0ebed6a313b8cdd91859287aad8015392352bc1
Author:     Kyle Evans <kevans@FreeBSD.org>
AuthorDate: 2023-08-10 17:32:33 +0000
Commit:     Kyle Evans <kevans@FreeBSD.org>
CommitDate: 2023-08-18 04:02:46 +0000

    kern: osd: avoid dereferencing freed slots
    
    If a slot is freed that isn't the last one, we'll set its destructor to
    NULL to indicate that it's been freed and leave a hole in the slot map.
    Check osd_destructors in osd_call() to avoid dereferencing a method that
    is potentially from a module that's been unloaded.
    
    This scenario would most commonly surface when two modules are loaded
    that osd_register(), then the earlier one deregisters and an osd_call()
    is made after the fact.  In the specific report that triggered the
    investigation, kldload if_wg -> kldload linux* -> kldunload if_wg ->
    destroy a jail -> panic.
    
    Noted in the review, but left for follow-up work, is that the realloc
    that may happen in osd_deregister() should likely go away and the
    assumption that reallocating to a smaller size cannot fail is actually
    not correct.
    
    Reported by:    dim
    
    (cherry picked from commit 2bd446d7f1a03fbf6d98ace4548f8793599f48fb)
---
 sys/kern/kern_osd.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/sys/kern/kern_osd.c b/sys/kern/kern_osd.c
index 23178731b899..ced6df31cf44 100644
--- a/sys/kern/kern_osd.c
+++ b/sys/kern/kern_osd.c
@@ -396,6 +396,9 @@ osd_call(u_int type, u_int method, void *obj, void *data)
 	error = 0;
 	sx_slock(&osdm[type].osd_module_lock);
 	for (i = 0; i < osdm[type].osd_ntslots; i++) {
+		/* Hole in the slot map; avoid dereferencing. */
+		if (osdm[type].osd_destructors[i] == NULL)
+			continue;
 		methodfun = osdm[type].osd_methods[i * osdm[type].osd_nmethods +
 		    method];
 		if (methodfun != NULL && (error = methodfun(obj, data)) != 0)

From nobody Fri Aug 18 07:18:43 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRtX41PyHz4qq2q;
	Fri, 18 Aug 2023 07:18:44 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRtX36NT4z4dkx;
	Fri, 18 Aug 2023 07:18:43 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692343123;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=bXy7fWdYTNwjarIi7BFafJMCqS4DnTPJBXylUs1pY+8=;
	b=KOuzIrr0VVHVVzf7w1ARchXXuMd1miYBBJ4pdQGimsL6cmnXu8rtIpDXZdj33H4lQvXb56
	lkFlB6VRV9xeP80hop3F1CamhJCVXmHDwBqGHSUznTOYfW04AOeYgTNsbsgbV/wc2qGDgY
	nmP+jddQ035zayxKzIeqxkr24eKOu+FOzzAAZ4wNMS6Bb9GtTYTjWgTjcXRGh6q+dJmgto
	GMglbzOtmll+AxbZzhHyHini9lmzDVlcBPaeCXt7N66LoEtDa/LHr+6avQcqzD6SEOKOh6
	N/ZrzPBIPFfo/NAp/misgKJU0bjprtWGDqiImqHkVncIiotuJJK0GPb2xi5fRQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692343123;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=bXy7fWdYTNwjarIi7BFafJMCqS4DnTPJBXylUs1pY+8=;
	b=Q/pVk779yYWzMhzT45Zsz1MXDLCGYuDtiaMZiawSbemB5+TVmnUbKYtGcxDF95ZtMf+dGI
	/3+/Vaej7thMC7QXhMF1tBPmMoASRa7SE0bI0j9MAORdrcoVAAvWt5ihZjkAD53S6bs5cV
	XIN3B0qmzlgQ4w/IpVYlfE0b5aLJp+5uLePT6HG70Nt6/CwjbQyS67J5I12IQWZi2kOpji
	ZDJSEQZSlhBnLYWTke/oLiTPsdS1nzGTgLDLd0O1J2gmaNJmuLKYF12IrPXA5xDciT9hnN
	69aVO3J9OUYKLcGQRT383IRQA5aO/SA6GeV0SzHAzCeCujrDDiJSZSznKOw/lg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692343123; a=rsa-sha256; cv=none;
	b=QSsnbBavWlAUVLoPZv4asYaVlYQtoLsvB22P6tSmz2ojJx0vERDxNsq65P8L9Is4cTEHCy
	NDoYah37XyA4GlSgyFJB3/0eg/VnOfE3a2tExOao/R+iYeVdITmyD1v+u2NY6JDf6/nzKB
	LW0VUXZzWV+CLgk1Uzz7mnXTutefkvcbxUh6ZqhO6tmTZ9FftBdLePED5tnh6U6jMTW0pU
	j083ChTMzclrv7vOi1v3HmnB37mzPvAxS1jJYX1psK3sYqU/Js10PDSIpEDfKXoCL58DN1
	P/t+4l8hi71ZA+WkMt8ZTnbiZam23KFUo1lBY5eIwjy8hXhXspN2/MtqDVWj7g==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRtX35Rqpz16KX;
	Fri, 18 Aug 2023 07:18:43 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37I7IhvH017495;
	Fri, 18 Aug 2023 07:18:43 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7Ih2M017492;
	Fri, 18 Aug 2023 07:18:43 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 07:18:43 GMT
Message-Id: <202308180718.37I7Ih2M017492@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org>
Subject: git: 3e520a8fc711 - stable/13 - bhyve: save/restore pir_desc
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: corvink
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 3e520a8fc7115f0e5015e5c3ce4a13b6d9cf00e4
Auto-Submitted: auto-generated

The branch stable/13 has been updated by corvink:

URL: https://cgit.FreeBSD.org/src/commit/?id=3e520a8fc7115f0e5015e5c3ce4a13b6d9cf00e4

commit 3e520a8fc7115f0e5015e5c3ce4a13b6d9cf00e4
Author:     Vitaliy Gusev <gusev.vitaliy@gmail.com>
AuthorDate: 2023-05-09 08:27:29 +0000
Commit:     Corvin Köhne <corvink@FreeBSD.org>
CommitDate: 2023-08-18 07:04:25 +0000

    bhyve: save/restore pir_desc
    
    Failing to preserve pir_desc can result in pending interrupts being lost
    on resume leading to a hung VM.
    
    Reviewed by:            corvink, jhb
    MFC after:              1 week
    Sponsored by:           vStack
    Differential Revision:  https://reviews.freebsd.org/D35447
    
    (cherry picked from commit c543e09f1f8ef98f201f7dd3f34ae023d61dfa83)
---
 sys/amd64/vmm/intel/vmx.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/sys/amd64/vmm/intel/vmx.c b/sys/amd64/vmm/intel/vmx.c
index 9c2672c9ae23..6d9e11972948 100644
--- a/sys/amd64/vmm/intel/vmx.c
+++ b/sys/amd64/vmm/intel/vmx.c
@@ -4179,6 +4179,9 @@ vmx_vcpu_snapshot(void *vcpui, struct vm_snapshot_meta *meta)
 	SNAPSHOT_BUF_OR_LEAVE(vcpu->guest_msrs,
 	    sizeof(vcpu->guest_msrs), meta, err, done);
 
+	SNAPSHOT_BUF_OR_LEAVE(vcpu->pir_desc,
+	    sizeof(*vcpu->pir_desc), meta, err, done);
+
 	vmxctx = &vcpu->ctx;
 	SNAPSHOT_VAR_OR_LEAVE(vmxctx->guest_rdi, meta, err, done);
 	SNAPSHOT_VAR_OR_LEAVE(vmxctx->guest_rsi, meta, err, done);

From nobody Fri Aug 18 07:18:44 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRtX53MGVz4qph6;
	Fri, 18 Aug 2023 07:18:45 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRtX51gS9z4dl7;
	Fri, 18 Aug 2023 07:18:45 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692343125;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=d9JJRb+rz9swNBWwVN6cy7sl6nZOmsnZwQhcolxynt4=;
	b=wZBZ0dR3FVeQV0b3+bI+1IZewD1jum5bLOdgpgYvWCt8tLXdAxWDlonsBfJ5KcDQmLDLAj
	m1IGfpDzH0JC9JTbK5xBV4BLOsADy6zt3QrCXW0Yvg5FYfkxdWNkBqAz5id3SgNxSpXTnb
	j/GJ+5JHDG7WpyJh6GpM7h2XonPK31YZ9rvRI6ECWt7ckefYy052tdwJvj+NGxaF40zOzw
	3NNbgO2dksfrpSRbMcLoVAX/lYZfe1Us6pz1iGMSrztKxwsWh/55TIDuIH3hGCQRY1zGlD
	1RK1dufwqs980sHZNhfxbsRTAC2/hUFlG9OmnJcBPZmRQPuuYVJHiMIBw0W11w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692343125;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=d9JJRb+rz9swNBWwVN6cy7sl6nZOmsnZwQhcolxynt4=;
	b=mLkgr53yyxka3fvNTXiNTZWggNajHfh7FiMEhK/OggoI3T6xk9blUdzJt+MFqoc8qT2tqC
	S7W+A/8FxAGcslF6uC7ngWDqOtmgiCdMauTjQtpiqBjDU+qDra5uvMH7GnUok4IakvXh+a
	RsKvJLeA7MXrBRyuBSOHN9ci7WnC2MrjtWiOCLqeXKr+Ih7Y2/gAuiodAAx3XBWiV9QPSJ
	s7D7EYc+YntaCwwzt1nIsddh8JdA7KKQC9be294PeBQ1HZnaexkbT+GdNmxXgh8ZvyW7Dx
	7qRZqtYpcr7e3uttAYw6RELvIJtIDTJo79lKetuHmCp984W7aplUhyIhitOv4Q==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692343125; a=rsa-sha256; cv=none;
	b=mLSGRZhMlqQzUz/NZahl5dI/YcgdUE6jJPTZgmxL09pEh9Cw1cNtQtRaleaj6H36L3NRA5
	bBAtxSN9t46rqQd+UjnpFypGXPp6K0qwl7/rDrPDxnRyyRtygIIjmWqY8xd5wsPOIqHbNF
	q5UNGePeMp478OBOzLOWqIDXry4R/8krs9Gscp46z4L4b0V/qSgAoNSH3bWajxaoXRkvwp
	pil1TGc4p5MV3/5NGP6Q3Mu7rzLKc3gLTcE3JIuRhoIBq9yLwh+FR5eBApMWi6JtOnXG0v
	iQsbJ3MZEE8iaFXG1SFrNn/1XxPQMloKBLSeUWXta83b2fIObyQWW2Lxf2KFlw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRtX46dkhz16gx;
	Fri, 18 Aug 2023 07:18:44 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37I7IiN2017546;
	Fri, 18 Aug 2023 07:18:44 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7IiWT017543;
	Fri, 18 Aug 2023 07:18:44 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 07:18:44 GMT
Message-Id: <202308180718.37I7IiWT017543@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org>
Subject: git: 5573404166b0 - stable/13 - bhyve: rename 'user_dev'
  with 'devices'
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: corvink
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 5573404166b090ccf8556888efd9657657b54032
Auto-Submitted: auto-generated

The branch stable/13 has been updated by corvink:

URL: https://cgit.FreeBSD.org/src/commit/?id=5573404166b090ccf8556888efd9657657b54032

commit 5573404166b090ccf8556888efd9657657b54032
Author:     Vitaliy Gusev <gusev.vitaliy@gmail.com>
AuthorDate: 2023-05-15 14:28:14 +0000
Commit:     Corvin Köhne <corvink@FreeBSD.org>
CommitDate: 2023-08-18 07:04:25 +0000

    bhyve: rename 'user_dev' with 'devices'
    
    Bhyve don't use 'user' specifier for emulated devices. And
    using 'user' adds duality.
    
    Reviewed by:            corvink, rew
    MFC after:              1 week
    Sponsored by:           vStack
    Differential Revision:  https://reviews.freebsd.org/D40106
    
    (cherry picked from commit b10d65a420f068bccf6aaf2942157a5347211dc5)
---
 usr.sbin/bhyve/bhyverun.c |  6 +++---
 usr.sbin/bhyve/snapshot.c | 23 +++++++++++------------
 usr.sbin/bhyve/snapshot.h |  6 +++---
 3 files changed, 17 insertions(+), 18 deletions(-)

diff --git a/usr.sbin/bhyve/bhyverun.c b/usr.sbin/bhyve/bhyverun.c
index 63ca9439d6e6..4db8274335cd 100644
--- a/usr.sbin/bhyve/bhyverun.c
+++ b/usr.sbin/bhyve/bhyverun.c
@@ -1520,7 +1520,7 @@ main(int argc, char *argv[])
 #ifdef BHYVE_SNAPSHOT
 	if (restore_file != NULL) {
 		fprintf(stdout, "Pausing pci devs...\r\n");
-		if (vm_pause_user_devs() != 0) {
+		if (vm_pause_devices() != 0) {
 			fprintf(stderr, "Failed to pause PCI device state.\n");
 			exit(1);
 		}
@@ -1532,7 +1532,7 @@ main(int argc, char *argv[])
 		}
 
 		fprintf(stdout, "Restoring pci devs...\r\n");
-		if (vm_restore_user_devs(ctx, &rstate) != 0) {
+		if (vm_restore_devices(ctx, &rstate) != 0) {
 			fprintf(stderr, "Failed to restore PCI device state.\n");
 			exit(1);
 		}
@@ -1544,7 +1544,7 @@ main(int argc, char *argv[])
 		}
 
 		fprintf(stdout, "Resuming pci devs...\r\n");
-		if (vm_resume_user_devs() != 0) {
+		if (vm_resume_devices() != 0) {
 			fprintf(stderr, "Failed to resume PCI device state.\n");
 			exit(1);
 		}
diff --git a/usr.sbin/bhyve/snapshot.c b/usr.sbin/bhyve/snapshot.c
index 5f9ef2053990..451839944bd6 100644
--- a/usr.sbin/bhyve/snapshot.c
+++ b/usr.sbin/bhyve/snapshot.c
@@ -926,7 +926,7 @@ vm_restore_kern_structs(struct vmctx *ctx, struct restore_state *rstate)
 }
 
 static int
-vm_restore_user_dev(struct vmctx *ctx, struct restore_state *rstate,
+vm_restore_device(struct vmctx *ctx, struct restore_state *rstate,
 		    const struct vm_snapshot_dev_info *info)
 {
 	void *dev_ptr;
@@ -971,15 +971,14 @@ vm_restore_user_dev(struct vmctx *ctx, struct restore_state *rstate,
 	return (0);
 }
 
-
 int
-vm_restore_user_devs(struct vmctx *ctx, struct restore_state *rstate)
+vm_restore_devices(struct vmctx *ctx, struct restore_state *rstate)
 {
 	size_t i;
 	int ret;
 
 	for (i = 0; i < nitems(snapshot_devs); i++) {
-		ret = vm_restore_user_dev(ctx, rstate, &snapshot_devs[i]);
+		ret = vm_restore_device(ctx, rstate, &snapshot_devs[i]);
 		if (ret != 0)
 			return (ret);
 	}
@@ -988,7 +987,7 @@ vm_restore_user_devs(struct vmctx *ctx, struct restore_state *rstate)
 }
 
 int
-vm_pause_user_devs(void)
+vm_pause_devices(void)
 {
 	const struct vm_snapshot_dev_info *info;
 	size_t i;
@@ -1008,7 +1007,7 @@ vm_pause_user_devs(void)
 }
 
 int
-vm_resume_user_devs(void)
+vm_resume_devices(void)
 {
 	const struct vm_snapshot_dev_info *info;
 	size_t i;
@@ -1163,7 +1162,7 @@ vm_snapshot_dev_write_data(int data_fd, xo_handle_t *xop, const char *array_key,
 }
 
 static int
-vm_snapshot_user_dev(const struct vm_snapshot_dev_info *info,
+vm_snapshot_device(const struct vm_snapshot_dev_info *info,
 		     int data_fd, xo_handle_t *xop,
 		     struct vm_snapshot_meta *meta, off_t *offset)
 {
@@ -1185,7 +1184,7 @@ vm_snapshot_user_dev(const struct vm_snapshot_dev_info *info,
 }
 
 static int
-vm_snapshot_user_devs(struct vmctx *ctx, int data_fd, xo_handle_t *xop)
+vm_snapshot_devices(struct vmctx *ctx, int data_fd, xo_handle_t *xop)
 {
 	int ret;
 	off_t offset;
@@ -1227,7 +1226,7 @@ vm_snapshot_user_devs(struct vmctx *ctx, int data_fd, xo_handle_t *xop)
 		meta->buffer.buf = meta->buffer.buf_start;
 		meta->buffer.buf_rem = meta->buffer.buf_size;
 
-		ret = vm_snapshot_user_dev(&snapshot_devs[i], data_fd, xop,
+		ret = vm_snapshot_device(&snapshot_devs[i], data_fd, xop,
 					   meta, &offset);
 		if (ret != 0)
 			goto snapshot_err;
@@ -1365,7 +1364,7 @@ vm_checkpoint(struct vmctx *ctx, const char *checkpoint_file, bool stop_vm)
 
 	vm_vcpu_pause(ctx);
 
-	ret = vm_pause_user_devs();
+	ret = vm_pause_devices();
 	if (ret != 0) {
 		fprintf(stderr, "Could not pause devices\r\n");
 		error = ret;
@@ -1394,7 +1393,7 @@ vm_checkpoint(struct vmctx *ctx, const char *checkpoint_file, bool stop_vm)
 		goto done;
 	}
 
-	ret = vm_snapshot_user_devs(ctx, kdata_fd, xop);
+	ret = vm_snapshot_devices(ctx, kdata_fd, xop);
 	if (ret != 0) {
 		fprintf(stderr, "Failed to snapshot device state.\n");
 		error = -1;
@@ -1409,7 +1408,7 @@ vm_checkpoint(struct vmctx *ctx, const char *checkpoint_file, bool stop_vm)
 	}
 
 done:
-	ret = vm_resume_user_devs();
+	ret = vm_resume_devices();
 	if (ret != 0)
 		fprintf(stderr, "Could not resume devices\r\n");
 	vm_vcpu_resume(ctx);
diff --git a/usr.sbin/bhyve/snapshot.h b/usr.sbin/bhyve/snapshot.h
index 9bf881fded92..5f98be875544 100644
--- a/usr.sbin/bhyve/snapshot.h
+++ b/usr.sbin/bhyve/snapshot.h
@@ -95,9 +95,9 @@ void checkpoint_cpu_suspend(int vcpu);
 int restore_vm_mem(struct vmctx *ctx, struct restore_state *rstate);
 int vm_restore_kern_structs(struct vmctx *ctx, struct restore_state *rstate);
 
-int vm_restore_user_devs(struct vmctx *ctx, struct restore_state *rstate);
-int vm_pause_user_devs(void);
-int vm_resume_user_devs(void);
+int vm_restore_devices(struct vmctx *ctx, struct restore_state *rstate);
+int vm_pause_devices(void);
+int vm_resume_devices(void);
 
 int get_checkpoint_msg(int conn_fd, struct vmctx *ctx);
 void *checkpoint_thread(void *param);

From nobody Fri Aug 18 07:18:45 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRtX64NMtz4qpkb;
	Fri, 18 Aug 2023 07:18:46 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRtX62sWDz4djH;
	Fri, 18 Aug 2023 07:18:46 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692343126;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=kAL9+JpVi7ASGwQrAjwIqGFd2/c1PwIhMDrZmdL3HGM=;
	b=jaJZoBftBnP5jNItIaRHz8fd0uCXUFbeoErzIXYEvVZjLH1nN+v/l2Fdnqb9Fh3Xs7Yaiy
	4teUUaRS5r6tj/9InzAaWn6QWfJOrSQ9U1jEbWLh0sknjoX3rGezZlq3dQanwykiEtse1r
	+jNwKyh0j3KozWk1qmtC6fHbzw543AQ6xKlpbM6l0CQWc7l6PHoHEmu/pDw20D3Up1+Hgz
	madistXxWfPBVXsqMrc5Ec2bHw88YbsA9OHPZEutYP84/7It27nZFGvX3kz4FiQc5jkHAW
	hu2yU3+1o2xQYBE9nc4LJHE3l79ZIm7hknI6cItQx7tyduVwqo5uDWwf/m5qAg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692343126;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=kAL9+JpVi7ASGwQrAjwIqGFd2/c1PwIhMDrZmdL3HGM=;
	b=sQHSahODMXnuslooFnNduDtWXKHsgn1s5YdgkZeIux6mrjAf8wmEEkZUZi8o/PpzrhaGuX
	XS8XdOGsItz9VaO5EpcxmoXkvbBmJfLm6LHjUbAMskX7Sr0mjjvhFl0AxS2clEW3n1upNn
	vLQhvzYSBRSVM8qwYVfoLym2SWNjXwZ0EOzis0c0f2zhTMd/8LukISbTEXDS2cfVAZdgY3
	adqA9m4c/nfg3V5cqQVXHRbQQIHvzT64lNXgFsUrTxU8KpiL3jknUuqo73gVNT1x9sow1W
	huq4N7vLygSkAZQilQT7atcqPPa1vUtFMAEbGPECfsQgFKRUXOoWX4byGC/1gw==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692343126; a=rsa-sha256; cv=none;
	b=um1o+DOqkXCXShXRaDBALEHoIwsjUtcgq7lSGM/2yCZAqjR7qVWdmW3cpLJafkOzsTFf51
	8mnCAZB6te0/l0l+KX5hhP/a1e/kTq3U5hEeCHR6xCxhE6PAzBYUKSUVk6wWBXRpmSYxHJ
	1KkjqVGD+d15BH4mZqh+wAFQltS3dvoUfe8/v5rnDug3LHzgnvgM1/u0sCg/zRsgVZ6av2
	62JSjA70bnj4XA3eeNWKs39RVyMGbEnfJCVPKVyVZDR7b/di+OddMyQuWSC7aFiTgxZ3Nd
	Ap7zUui0IAAxTxsggSuJGgmdc5WrjBeoUU/RFrgSxxNy/51pxJIT+SN2g3bD/A==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRtX60Yckz16Mv;
	Fri, 18 Aug 2023 07:18:46 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37I7Ijep017603;
	Fri, 18 Aug 2023 07:18:45 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7Ijfw017600;
	Fri, 18 Aug 2023 07:18:45 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 07:18:45 GMT
Message-Id: <202308180718.37I7Ijfw017600@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org>
Subject: git: 51e32fe73405 - stable/13 - bhyve: add bus, slot and
  func to device name
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: corvink
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 51e32fe73405a20caed05cd24310d4e6bb718507
Auto-Submitted: auto-generated

The branch stable/13 has been updated by corvink:

URL: https://cgit.FreeBSD.org/src/commit/?id=51e32fe73405a20caed05cd24310d4e6bb718507

commit 51e32fe73405a20caed05cd24310d4e6bb718507
Author:     Vitaliy Gusev <gusev.vitaliy@gmail.com>
AuthorDate: 2023-05-15 14:28:45 +0000
Commit:     Corvin Köhne <corvink@FreeBSD.org>
CommitDate: 2023-08-18 07:04:26 +0000

    bhyve: add bus, slot and func to device name
    
    Each device needs a unique identifier to store and restore snapshots
    properly. Adding the pci bsf information to the device name creates a
    unique identifier as a bsf can't be occupied twice.
    
    Reviewed by:            corvink
    MFC after:              1 week
    Sponsored by:           vStack
    Differential Revision:  https://reviews.freebsd.org/D40107
    
    (cherry picked from commit 14c80457b0f6a5eb6ff9a1db573462410c64a454)
---
 usr.sbin/bhyve/pci_emul.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/usr.sbin/bhyve/pci_emul.c b/usr.sbin/bhyve/pci_emul.c
index 47ddf3f1809c..f52bf94b7c3d 100644
--- a/usr.sbin/bhyve/pci_emul.c
+++ b/usr.sbin/bhyve/pci_emul.c
@@ -1023,7 +1023,8 @@ pci_emul_init(struct vmctx *ctx, struct pci_devemu *pde, int bus, int slot,
 	pdi->pi_lintr.pirq_pin = 0;
 	pdi->pi_lintr.ioapic_irq = 0;
 	pdi->pi_d = pde;
-	snprintf(pdi->pi_name, PI_NAMESZ, "%s-pci-%d", pde->pe_emu, slot);
+	snprintf(pdi->pi_name, PI_NAMESZ, "%s@pci.%d.%d.%d", pde->pe_emu, bus,
+	    slot, func);
 
 	/* Disable legacy interrupts */
 	pci_set_cfgdata8(pdi, PCIR_INTLINE, 255);

From nobody Fri Aug 18 07:18:47 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRtX73f6Sz4qq2y;
	Fri, 18 Aug 2023 07:18:47 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRtX72VLHz4f3w;
	Fri, 18 Aug 2023 07:18:47 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692343127;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=fJdwswUkcrEudALMkMv+HFKCp/UFLQB4YJV6gMEAozY=;
	b=i8vODGjxCDCJnJ7fy7bfffDk+imus0+WE8Ha3wWyPObFx7HjCDrPlfOO8L+G8tGv1sC0AS
	GXIWkqWMaBsY6Ei7UKSk9e7pF6iyBd4lcgTnLtA5fY00583yhoZHZWB4/JugnahGDCFM3I
	Lee0xayw4DYuBo392cdkLWj4Q6SV7fHnv0XQpalZ7t21SqTlewtSic73VjinQWZ+ytXlYL
	oL8QsMlnNqbKaIjMPis1JNiT2X+geakoWEgRiCtug3LJhIb/IGQzv9Kk+05M26Pa+PRAUF
	IRiucgzD80kSoRiyFbavyOsKVQoaexlv8aQiWOAikPLyH/e0kqvP80l2Lg+KPA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692343127;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=fJdwswUkcrEudALMkMv+HFKCp/UFLQB4YJV6gMEAozY=;
	b=BUVjYxsZQXnvE7RxZjS4aO1D7bc4OFSvnXh0KL0+2hV/2t2Z6lNB0sPjHJX/Dtrg3UuMJF
	2ODP8TRFlmYGclFErt6+MJiBTGOTfG1WoBzbFVFDTG4smcntWtMU3ysAi49grSyDXwWsoF
	vuhcpHQH3Vb2sIndnFGhouudIL7XgnWpx1qDUW53wVO2X7QGV8uIESvzhWlGH8llcdcbCC
	mF9ywTbPaKShrwWf49l0wWEBtmHu611q8vWLKfR84syC7ulmn1gTxRgqaGB65IHEYdF90v
	24erN3M7yYMitJxgKayl+UG/kRBTNBy3zm+wWxPeIgzKpwXbclbfZPMUCaUlGA==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692343127; a=rsa-sha256; cv=none;
	b=jrxvXpyO9bn3wwM1a8XRVOktcXf7RVEPt1zeXJbeEknGMqNpehiIXlATUYiKrj9uAkNBgw
	0ZL1Twdxva5HkVhk+KYkI4dkM1NFn3iLRXAu8ILNrfxsN4/h8lHQ+zkbAmpDygyaBmCDdj
	9ic2kN80HIviGg7JHqi9dvsyoisKrvltxD0Hos7J3ORIMl1bRkGYzQ13EfHHj9Sptvzfou
	1qOUSCq3Tg+Urxp1T7fEHR4UNI8pDDEU1dsQbRaV8BO+d4hQwbomSpfCe6xqendJz2DGEu
	nZaC4QSs5fgYHjYl03s2TOKxzDwe/QA9Pocw0krLgnnLJRpL8yPfjBzG+FFp1w==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRtX71Zpqz16Mw;
	Fri, 18 Aug 2023 07:18:47 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37I7Ilpn017656;
	Fri, 18 Aug 2023 07:18:47 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7IlSb017653;
	Fri, 18 Aug 2023 07:18:47 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 07:18:47 GMT
Message-Id: <202308180718.37I7IlSb017653@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org>
Subject: git: 295d69c8b00f - stable/13 - bhyve: add .pe_snapshot
  method for PCI 'hostbridge'
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: corvink
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 295d69c8b00f99e97eebd1858f99c037942c5c96
Auto-Submitted: auto-generated

The branch stable/13 has been updated by corvink:

URL: https://cgit.FreeBSD.org/src/commit/?id=295d69c8b00f99e97eebd1858f99c037942c5c96

commit 295d69c8b00f99e97eebd1858f99c037942c5c96
Author:     Vitaliy Gusev <gusev.vitaliy@gmail.com>
AuthorDate: 2023-05-15 16:29:56 +0000
Commit:     Corvin Köhne <corvink@FreeBSD.org>
CommitDate: 2023-08-18 07:04:26 +0000

    bhyve: add .pe_snapshot method for PCI 'hostbridge'
    
    There is no error when dump doesn't have it, but to be more
    consistent this PCI devices should be saved as well.
    
    Reviewed by:            corvink, rew
    MFC after:              1 week
    Sponsored by:           vStack
    Differential Revision:  https://reviews.freebsd.org/D40108
    
    (cherry picked from commit 6f7d2cf8bbb5ce6c4dbe0153d54cdc474b5266f4)
---
 usr.sbin/bhyve/pci_hostbridge.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/usr.sbin/bhyve/pci_hostbridge.c b/usr.sbin/bhyve/pci_hostbridge.c
index 03eacc5e134a..90ccda0a79cd 100644
--- a/usr.sbin/bhyve/pci_hostbridge.c
+++ b/usr.sbin/bhyve/pci_hostbridge.c
@@ -86,6 +86,14 @@ pci_amd_hostbridge_legacy_config(nvlist_t *nvl, const char *opts __unused)
 	return (0);
 }
 
+#ifdef BHYVE_SNAPSHOT
+static int
+pci_de_snapshot(struct vm_snapshot_meta *meta __unused)
+{
+	return (0);
+}
+#endif
+
 static const struct pci_devemu pci_de_amd_hostbridge = {
 	.pe_emu = "amd_hostbridge",
 	.pe_legacy_config = pci_amd_hostbridge_legacy_config,
@@ -96,5 +104,8 @@ PCI_EMUL_SET(pci_de_amd_hostbridge);
 static const struct pci_devemu pci_de_hostbridge = {
 	.pe_emu = "hostbridge",
 	.pe_init = pci_hostbridge_init,
+#ifdef BHYVE_SNAPSHOT
+	.pe_snapshot =	pci_de_snapshot,
+#endif
 };
 PCI_EMUL_SET(pci_de_hostbridge);

From nobody Fri Aug 18 07:18:48 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRtX84dbyz4qpdt;
	Fri, 18 Aug 2023 07:18:48 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRtX83Tvfz4f5q;
	Fri, 18 Aug 2023 07:18:48 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692343128;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=62SqdEQAmQCyO4Ho27ykRNwuM78gUqEyMG04uFyS12Y=;
	b=Kntpl98EZ0ULLw9bbU/sx6i4iq2teXzeH4wj2eFFtqmB1btm3N+veJzpI7vgWg71nU3vcw
	Ws0cw4G4jrMQVEk5eC2yeqNwl9NMlWv5gLpBiJIrxTcW9INyoRWIg+ZoMT8z7E1l9Wa4r8
	iwmeDcofnCBtXkjKUjcwpZ4zPTfBSE4tu/nA12X9vbSOeIjTmwZnsd9Ej4kHVEHwgIQg4C
	rEibgkPY2cngGztHYZk3hfnIg/2FsgDuBbUN3dt3FDMur52c61NPvxtwgrff1noPYSMYkb
	gA3IWUVf1XhVleh9LmigIwZF+ddV6I6+HZ07o3Y3+IIEd16yFacLj8j6KjyyYg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692343128;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=62SqdEQAmQCyO4Ho27ykRNwuM78gUqEyMG04uFyS12Y=;
	b=c0JIXe9+Q2H/BMIxMZ2W/QQ6pQQcZ4nnc7w47Ba6Bj+mWsZYLI9nhKp+wLYTu43nrb5WxJ
	rOz9xW0rkzuxumDbOMqnOoEj6QlBRLq6GL+r84QRj9AbK/fz333fQIkgt2lfV6GobhyLYQ
	o1bp677kAb+rmKHW5xOK3aNa4VfeKhOKXOfjRhP6CYZpaTxVvhIgzNJQOWi8j9YTm/C2sm
	KsbknD4v6mdw7kRB13N6s3/dy3E3Qk9Q7GMYspmvHkw1cyvoMMn3U3i/f9cO2aKKEF84UX
	Biwhh0+BXcj/SqWmKHsr6axazwHBLIVRggiWei2iCl+w3eJBHviVsyisFxwq6A==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692343128; a=rsa-sha256; cv=none;
	b=MMuBcdtmPBqmcNQqN/uaFXE8gu65spEKy25RauyH4mJrSLzvbkwPJ8d72Zy3eMM2ESZP27
	JNpLU1YFKYtU97Kl6mgmN/gTP7E1/k2QJSQKyB5KKPtsuRewuJUk5udZQoNra1K6AaeVNj
	BFOSIgKm20OsoH3SytMd6QWO0SCbjqdEYTXXdMOfLyF04N0JmkjZ3aw4tqrJihPqUXCgF6
	A9sz11Oh5DY8u6gsQ2dm8p8QVVBwu2rC++y2+0WfZsaMp5+qCCpRpfBeYbKkXEccPPg0U7
	5f63EDHPvk3Oe90Xg3y/IhhB9L+4HFoL0+LQbxcn0NLgcKbNB9NZWIyyfMSC2g==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRtX82bmqz16gy;
	Fri, 18 Aug 2023 07:18:48 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37I7ImF1017710;
	Fri, 18 Aug 2023 07:18:48 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7ImDx017707;
	Fri, 18 Aug 2023 07:18:48 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 07:18:48 GMT
Message-Id: <202308180718.37I7ImDx017707@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org>
Subject: git: 5a07451f796f - stable/13 - bhyve: rename 'structs'
  snapshot key with 'kern_structs'
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: corvink
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 5a07451f796f9f619ee8c2da9aaa314c5b570992
Auto-Submitted: auto-generated

The branch stable/13 has been updated by corvink:

URL: https://cgit.FreeBSD.org/src/commit/?id=5a07451f796f9f619ee8c2da9aaa314c5b570992

commit 5a07451f796f9f619ee8c2da9aaa314c5b570992
Author:     Vitaliy Gusev <gusev.vitaliy@gmail.com>
AuthorDate: 2023-05-15 14:25:15 +0000
Commit:     Corvin Köhne <corvink@FreeBSD.org>
CommitDate: 2023-08-18 07:04:26 +0000

    bhyve: rename 'structs' snapshot key with 'kern_structs'
    
    Using key 'structs' is ambiguous. This section contains data
    related to the kernel. It should use a more informative naming.
    
    Reviewed by:            corvink, rew
    MFC after:              1 week
    Sponsored by:           vStack
    Differential Revision:  https://reviews.freebsd.org/D40104
    
    (cherry picked from commit 50aef9f62c1be9e723169ef57920c3fca07bd2fb)
---
 usr.sbin/bhyve/snapshot.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/usr.sbin/bhyve/snapshot.c b/usr.sbin/bhyve/snapshot.c
index 451839944bd6..9cd1ce34eeea 100644
--- a/usr.sbin/bhyve/snapshot.c
+++ b/usr.sbin/bhyve/snapshot.c
@@ -118,10 +118,10 @@ static sig_t old_winch_handler;
 
 #define	SNAPSHOT_BUFFER_SIZE (20 * MB)
 
-#define	JSON_STRUCT_ARR_KEY		"structs"
+#define	JSON_KERNEL_ARR_KEY		"kern_structs"
 #define	JSON_DEV_ARR_KEY		"devices"
 #define	JSON_BASIC_METADATA_KEY 	"basic metadata"
-#define	JSON_SNAPSHOT_REQ_KEY		"snapshot_req"
+#define	JSON_SNAPSHOT_REQ_KEY		"device"
 #define	JSON_SIZE_KEY			"size"
 #define	JSON_FILE_OFFSET_KEY		"file_offset"
 
@@ -422,16 +422,16 @@ lookup_struct(enum snapshot_req struct_id, struct restore_state *rstate,
 	ucl_object_iter_t it = NULL;
 	int64_t snapshot_req, size, file_offset;
 
-	structs = ucl_object_lookup(rstate->meta_root_obj, JSON_STRUCT_ARR_KEY);
+	structs = ucl_object_lookup(rstate->meta_root_obj, JSON_KERNEL_ARR_KEY);
 	if (structs == NULL) {
 		fprintf(stderr, "Failed to find '%s' object.\n",
-			JSON_STRUCT_ARR_KEY);
+			JSON_KERNEL_ARR_KEY);
 		return (NULL);
 	}
 
 	if (ucl_object_type(structs) != UCL_ARRAY) {
 		fprintf(stderr, "Object '%s' is not an array.\n",
-		JSON_STRUCT_ARR_KEY);
+		JSON_KERNEL_ARR_KEY);
 		return (NULL);
 	}
 
@@ -1059,7 +1059,7 @@ vm_snapshot_kern_struct(int data_fd, xo_handle_t *xop, const char *array_key,
 		  meta->dev_req);
 	xo_emit_h(xop, "{:" JSON_SIZE_KEY "/%lu}\n", data_size);
 	xo_emit_h(xop, "{:" JSON_FILE_OFFSET_KEY "/%lu}\n", *offset);
-	xo_close_instance_h(xop, JSON_STRUCT_ARR_KEY);
+	xo_close_instance_h(xop, JSON_KERNEL_ARR_KEY);
 
 	*offset += data_size;
 
@@ -1095,7 +1095,7 @@ vm_snapshot_kern_structs(struct vmctx *ctx, int data_fd, xo_handle_t *xop)
 		.op = VM_SNAPSHOT_SAVE,
 	};
 
-	xo_open_list_h(xop, JSON_STRUCT_ARR_KEY);
+	xo_open_list_h(xop, JSON_KERNEL_ARR_KEY);
 	for (i = 0; i < nitems(snapshot_kern_structs); i++) {
 		meta->dev_name = snapshot_kern_structs[i].struct_name;
 		meta->dev_req  = snapshot_kern_structs[i].req;
@@ -1111,7 +1111,7 @@ vm_snapshot_kern_structs(struct vmctx *ctx, int data_fd, xo_handle_t *xop)
 			goto err_vm_snapshot_kern_data;
 		}
 	}
-	xo_close_list_h(xop, JSON_STRUCT_ARR_KEY);
+	xo_close_list_h(xop, JSON_KERNEL_ARR_KEY);
 
 err_vm_snapshot_kern_data:
 	if (buffer != NULL)

From nobody Fri Aug 18 07:18:49 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRtX962tYz4qq32;
	Fri, 18 Aug 2023 07:18:49 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRtX94Yv9z4fBB;
	Fri, 18 Aug 2023 07:18:49 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692343129;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=0PdCezLeZANGrksxA6NZCbHO58IM6FZDbVAOpzoDGOw=;
	b=hyQXPDv+JtX1upvcb+IsIrFKEYprbElKHxK6vki5cWYvi4UdUh74BH0xqCu5gA2nd949nN
	ZyDgqJjE+fcSmRwzFvRtaOPURnrei7YQKh2TPjuvuL4C3elb9BfTv6HCtmNCtM4CI5zgDD
	rq4/mfTR3nqvh/nXsIwb+BFUMdWsfHXUhh86K6rNMxoSNfCkGhmyOb32g1YY60fN6GcEUR
	lB0YFEFvAD6iB+k8vWDEDqF7V499pDK25UsDECDfBxo14xXNIIrTIVcvWmzM/AgHnnYL0I
	xrvR69McvSxDQOnW3pdvpEjXN/lwaFKqS1Ev6LFCTyhdemdDIAWPZ5GLkvCriA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692343129;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=0PdCezLeZANGrksxA6NZCbHO58IM6FZDbVAOpzoDGOw=;
	b=a7Mh0GUCr18GuJSozt1iz1r6sja5SO7SUUR3eOY/uzOnkF0znR3gKN5zfnsKj7g3ktjJn5
	/sxDsoPiBTv5Ipj8viWNSRTlFFkdUF1X4YDSmmBytmOCrvrKo5t0tx2yH14QkEl2ozlpNG
	mRfxFOrZAnHLXZl+ycV09p/p2jwkXzw52NMVNYwKpE+NU2MAsXGge36lXbIZ4IcM6kT9uL
	T4/mQylxrX61iYzVfs4Nz1Bd/wVcR/Tct81j0r5FcN/1nSVRo9EldcKrFOEmQ67THN3gQM
	GqYYjt/BzqwW7aYLp1/m99k6cY3MP2VbCF63+LBzI2tcGcgI/dumY1VPTphFCQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692343129; a=rsa-sha256; cv=none;
	b=UPa99R4QeNm878KNYq37jCD2U4UZrL2Y2XCeVRFuFuE1jQlMoaF6tYW2gzE6oXpVpgIWNx
	LeJlyY+49nF0sYdTy1mp4sbpYTfkz/RbyxWS/+eDGrW4xJPPDNsWat/onuDgh2MguHg+DV
	6Uol81sDgADvkZi9GTmPqDSvqmYbipQw1lTXaiEVx+SSTVL/eFdVqPU1RST4H0Y4albZ8k
	J6xDXwArAJeUpmMwbtBnKUfzsFZh2zcl0p4WzA3/hGeYwkwqMhzyuvMFfdW2Dq1e0VTW+w
	KcobYJZcsAFG+9eYDRT2gZgY+Ebdbdhs5UVDg1AHkvbdLElrRPCj7aaj+f+tdA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRtX93fmcz16Sb;
	Fri, 18 Aug 2023 07:18:49 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37I7Inn0017752;
	Fri, 18 Aug 2023 07:18:49 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7In4P017749;
	Fri, 18 Aug 2023 07:18:49 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 07:18:49 GMT
Message-Id: <202308180718.37I7In4P017749@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org>
Subject: git: 8caac07ce933 - stable/13 - bhyvectl: Add '--get-debug-cpus'
  command
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: corvink
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 8caac07ce933a5d8c3a57e12d6b1537c6235d712
Auto-Submitted: auto-generated

The branch stable/13 has been updated by corvink:

URL: https://cgit.FreeBSD.org/src/commit/?id=8caac07ce933a5d8c3a57e12d6b1537c6235d712

commit 8caac07ce933a5d8c3a57e12d6b1537c6235d712
Author:     Vitaliy Gusev <gusev.vitaliy@gmail.com>
AuthorDate: 2023-07-25 12:03:54 +0000
Commit:     Corvin Köhne <corvink@FreeBSD.org>
CommitDate: 2023-08-18 07:04:26 +0000

    bhyvectl: Add '--get-debug-cpus' command
    
    vmm and libvmmapi already have handlers for that. When adding debug
    cpus, they were only used for the debug stub. Over time, they were
    reused by other parts like snapshots or idle APs.
    
    Reviewed by:            corvink, jhb
    MFC after:              1 week
    Sponsored by:           vStack
    Differential Revision:  https://reviews.freebsd.org/D40804
    
    (cherry picked from commit 65f8467e3351c38a9d57b538b85cf6c5fab5818e)
---
 usr.sbin/bhyvectl/bhyvectl.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/usr.sbin/bhyvectl/bhyvectl.c b/usr.sbin/bhyvectl/bhyvectl.c
index 2a022c550d54..dfa523ea16c8 100644
--- a/usr.sbin/bhyvectl/bhyvectl.c
+++ b/usr.sbin/bhyvectl/bhyvectl.c
@@ -190,6 +190,7 @@ usage(bool cpu_intel)
 	"       [--set-rtc-nvram=<val>]\n"
 	"       [--rtc-nvram-offset=<offset>]\n"
 	"       [--get-active-cpus]\n"
+	"       [--get-debug-cpus]\n"
 	"       [--get-suspended-cpus]\n"
 	"       [--get-intinfo]\n"
 	"       [--get-eptp]\n"
@@ -265,7 +266,7 @@ static int force_reset, force_poweroff;
 static const char *capname;
 static int create, destroy, get_memmap, get_memseg;
 static int get_intinfo;
-static int get_active_cpus, get_suspended_cpus;
+static int get_active_cpus, get_debug_cpus, get_suspended_cpus;
 static uint64_t memsize;
 static int set_cr0, get_cr0, set_cr2, get_cr2, set_cr3, get_cr3;
 static int set_cr4, get_cr4;
@@ -1450,6 +1451,7 @@ setup_options(bool cpu_intel)
 		{ "force-reset",	NO_ARG,	&force_reset,		1 },
 		{ "force-poweroff", 	NO_ARG,	&force_poweroff, 	1 },
 		{ "get-active-cpus", 	NO_ARG,	&get_active_cpus, 	1 },
+		{ "get-debug-cpus",	NO_ARG,	&get_debug_cpus,	1 },
 		{ "get-suspended-cpus", NO_ARG,	&get_suspended_cpus, 	1 },
 		{ "get-intinfo", 	NO_ARG,	&get_intinfo,		1 },
 		{ "get-cpu-topology",	NO_ARG, &get_cpu_topology,	1 },
@@ -2324,6 +2326,12 @@ main(int argc, char *argv[])
 			print_cpus("active cpus", &cpus);
 	}
 
+	if (!error && (get_debug_cpus || get_all)) {
+		error = vm_debug_cpus(ctx, &cpus);
+		if (!error)
+			print_cpus("debug cpus", &cpus);
+	}
+
 	if (!error && (get_suspended_cpus || get_all)) {
 		error = vm_suspended_cpus(ctx, &cpus);
 		if (!error)

From nobody Fri Aug 18 07:28:40 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRtlY0H6Xz4qqhJ;
	Fri, 18 Aug 2023 07:28:41 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRtlX5Fhtz3DdR;
	Fri, 18 Aug 2023 07:28:40 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692343720;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=sftZjTwyoKzOtiL9J6Eqq3IUEULtEck8gV68l0+3nXg=;
	b=QH1dZeYkLb9yNAiGfApjFz5geAReQzxGYsBtI9kd963r1jigYqclMVHJhXhwpV7owoBOl6
	jLoRu5DtRYksXWvfmtdd9xQdzIYxd7dmK2LruHEjJd6vKPXcfN4lKNrGNSoRh4MoR7IGPk
	QTxA4MnJtbwBBWx13fz5pJRK/Y2ynyhDjfLkR8YSR8JXLq4ewFD82C/Jr59+X7xg6VB06q
	g5t4P7d9hz6N7whDkuMNn7No+2hvGIDLnsWLlb35pTQJX2Q3JYQG4o1W7ouDNjb92GtZ4F
	zjLfNoIJCN8IOdfnvOLucDQ7NhAPv9mQqh6ejUS79vpgMXtndC3BjZ5EKeJ/Pw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692343720;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=sftZjTwyoKzOtiL9J6Eqq3IUEULtEck8gV68l0+3nXg=;
	b=H2n4GSjxUPtReMuUjnMx7bcGiCxWWFMuyjNx+sUQuB6Nii2IqY1B+iioLMQMEEJZ3Rykr0
	hiGdngY36UhZluktmIf43HbN4BxXcveHGoSErt8Jv3yjvm+0VxRlrhsGAwDl435DZk/0uj
	e6cVEssPFr68sdQRPkxtI4A7S6oh/RbRFZpM+3DqvbOOy4vAZI2I3H8UEhG3jeRRl+tFYd
	PYN7XjJfTKY0pGcn1g30OxKmeTLZVB9kOPO7aXOpdqdxungAywC8EuUveVbb0zRLFn2QYU
	C+nAJHN2Umpt79EcvYfuc12HOxENz955/tWQjT0+zxnqF+DGsvxS9TseLdi98g==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692343720; a=rsa-sha256; cv=none;
	b=r+F6KWmegyPGcuWjSrB3efW2jbZmFPI2zVPft6tNaVUwX0FeL/I47uwKkJ+59iddPTFS7A
	/9bXLYdoaLYosgONeSyvcSC3YD0Ol5Fzz0IriaY6tZ2pnK5gaJuRY8vZWt7ev5R38qSwpa
	PMdK065tYjoDYHnYt7S2b9l0FdSzDJT0VvelG2TndoXRy3gnm6DzjpX3QXGHcBiXoS9fc1
	B3c8RvS3JvkwhAPMjoIu5577JF8Sif3Wmen5Jx0gKAZkjYICv7gt0Qu+mRtYymxnJXI4gT
	UmgpjGSsffI3zjuFaFfvbTKY7HKQRl+lv8ljl0HAPPJ354MWiDdSE4gxPL0ZvQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRtlX4LDhz16Wc;
	Fri, 18 Aug 2023 07:28:40 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37I7Sejh034238;
	Fri, 18 Aug 2023 07:28:40 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7SelL034235;
	Fri, 18 Aug 2023 07:28:40 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 07:28:40 GMT
Message-Id: <202308180728.37I7SelL034235@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org>
Subject: git: b1fffed683ab - stable/13 - bhyve: add cmdline option
  for user defined fw_cfg items
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: corvink
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: b1fffed683ab82b2693e7b5bb81ca72be4d348ba
Auto-Submitted: auto-generated

The branch stable/13 has been updated by corvink:

URL: https://cgit.FreeBSD.org/src/commit/?id=b1fffed683ab82b2693e7b5bb81ca72be4d348ba

commit b1fffed683ab82b2693e7b5bb81ca72be4d348ba
Author:     Corvin Köhne <corvink@FreeBSD.org>
AuthorDate: 2021-09-08 09:31:21 +0000
Commit:     Corvin Köhne <corvink@FreeBSD.org>
CommitDate: 2023-08-18 07:24:54 +0000

    bhyve: add cmdline option for user defined fw_cfg items
    
    Some guest allow to configure themself by fw_cfg. E.g. Fedora CoreOs can
    be provisioned by adding a JSON file as fw_cfg item.
    
    Reviewed by:            jhb
    MFC after:              1 week
    Sponsored by:           Beckhoff Automation GmbH & Co. KG
    Differential Revision:  https://reviews.freebsd.org/D38338
    
    (cherry picked from commit ca14781c8170f3517ae79e198c0c880dbc3142dd)
    
    bhyve: error out if fwcfg user file isn't read completely
    
    At the moment, fwcfg reads the file once at startup and passes these
    data to the guest. Therefore, we should always read the whole file.
    Otherwise we should error out.
    
    Additionally, GCC12 complains that the comparison whether
    fwcfg_file->size is lower than 0 is always false due to the limited
    range of data type.
    
    Reviewed by:            markj
    Fixes:                  ca14781c8170f3517ae79e198c0c880dbc3142dd ("bhyve: add cmdline option for user defined fw_cfg items")
    MFC after:              1 week
    Sponsored by:           Beckhoff Automation GmbH & Co. KG
    Differential Revision:  https://reviews.freebsd.org/D40076
    
    (cherry picked from commit 26d9f973d8691eccc098ded7326137d6f76ad243)
---
 usr.sbin/bhyve/bhyve.8      |  19 ++++++
 usr.sbin/bhyve/bhyverun.c   |   9 ++-
 usr.sbin/bhyve/qemu_fwcfg.c | 145 ++++++++++++++++++++++++++++++++++++++++++++
 usr.sbin/bhyve/qemu_fwcfg.h |   1 +
 4 files changed, 172 insertions(+), 2 deletions(-)

diff --git a/usr.sbin/bhyve/bhyve.8 b/usr.sbin/bhyve/bhyve.8
index ed9c045c3159..b764807c7980 100644
--- a/usr.sbin/bhyve/bhyve.8
+++ b/usr.sbin/bhyve/bhyve.8
@@ -45,6 +45,15 @@
 .Op Cm ,threads= Ar n
 .Oc
 .Sm on
+.Oo Fl f
+.Sm off
+.Ar name Cm \&,
+.Oo
+.Cm string No | Cm file
+.Oc
+.Cm \&= Ar data
+.Sm on
+.Oc
 .Oo
 .Sm off
 .Fl G\~
@@ -145,6 +154,16 @@ Force
 .Nm
 to exit when a guest issues an access to an I/O port that is not emulated.
 This is intended for debug purposes.
+.It Fl f Ar name Ns Cm \&, Ns Oo Cm string Ns No | Ns Cm file Ns Oc Ns Cm \&= Ns Ar data
+Add a fw_cfg file
+.Ar name
+to the fw_cfg interface.
+If a
+.Cm string
+is specified, the fw_cfg file contains the string as data.
+If a
+.Cm file
+is specified, bhyve reads the file and adds the file content as fw_cfg data.
 .It Fl G Xo
 .Sm off
 .Oo Ar w Oc
diff --git a/usr.sbin/bhyve/bhyverun.c b/usr.sbin/bhyve/bhyverun.c
index 4db8274335cd..7cc293827518 100644
--- a/usr.sbin/bhyve/bhyverun.c
+++ b/usr.sbin/bhyve/bhyverun.c
@@ -1258,9 +1258,9 @@ main(int argc, char *argv[])
 	progname = basename(argv[0]);
 
 #ifdef BHYVE_SNAPSHOT
-	optstr = "aehuwxACDHIPSWYk:o:p:G:c:s:m:l:K:U:r:";
+	optstr = "aehuwxACDHIPSWYk:f:o:p:G:c:s:m:l:K:U:r:";
 #else
-	optstr = "aehuwxACDHIPSWYk:o:p:G:c:s:m:l:K:U:";
+	optstr = "aehuwxACDHIPSWYk:f:o:p:G:c:s:m:l:K:U:";
 #endif
 	while ((c = getopt(argc, argv, optstr)) != -1) {
 		switch (c) {
@@ -1288,6 +1288,11 @@ main(int argc, char *argv[])
 		case 'C':
 			set_config_bool("memory.guest_in_core", true);
 			break;
+		case 'f':
+			if (qemu_fwcfg_parse_cmdline_arg(optarg) != 0) {
+			    errx(EX_USAGE, "invalid fwcfg item '%s'", optarg);
+			}
+			break;
 		case 'G':
 			parse_gdb_options(optarg);
 			break;
diff --git a/usr.sbin/bhyve/qemu_fwcfg.c b/usr.sbin/bhyve/qemu_fwcfg.c
index e88608d90cae..e845c70950b1 100644
--- a/usr.sbin/bhyve/qemu_fwcfg.c
+++ b/usr.sbin/bhyve/qemu_fwcfg.c
@@ -7,13 +7,18 @@
 
 #include <sys/param.h>
 #include <sys/endian.h>
+#include <sys/queue.h>
+#include <sys/stat.h>
 
 #include <machine/vmm.h>
 
 #include <err.h>
 #include <errno.h>
+#include <fcntl.h>
+#include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <unistd.h>
 
 #include "acpi_device.h"
 #include "bhyverun.h"
@@ -98,6 +103,15 @@ struct qemu_fwcfg_softc {
 
 static struct qemu_fwcfg_softc fwcfg_sc;
 
+struct qemu_fwcfg_user_file {
+	STAILQ_ENTRY(qemu_fwcfg_user_file) chain;
+	uint8_t name[QEMU_FWCFG_MAX_NAME];
+	uint32_t size;
+	void *data;
+};
+static STAILQ_HEAD(qemu_fwcfg_user_file_list,
+    qemu_fwcfg_user_file) user_files = STAILQ_HEAD_INITIALIZER(user_files);
+
 static int
 qemu_fwcfg_selector_port_handler(struct vmctx *const ctx __unused, const int in,
     const int port __unused, const int bytes, uint32_t *const eax,
@@ -384,6 +398,22 @@ qemu_fwcfg_add_file(const char *name, const uint32_t size, void *const data)
 	return (0);
 }
 
+static int
+qemu_fwcfg_add_user_files(void)
+{
+	const struct qemu_fwcfg_user_file *fwcfg_file;
+	int error;
+
+	STAILQ_FOREACH(fwcfg_file, &user_files, chain) {
+		error = qemu_fwcfg_add_file(fwcfg_file->name, fwcfg_file->size,
+		    fwcfg_file->data);
+		if (error)
+			return (error);
+	}
+
+	return (0);
+}
+
 static const struct acpi_device_emul qemu_fwcfg_acpi_device_emul = {
 	.name = QEMU_FWCFG_ACPI_DEVICE_NAME,
 	.hid = QEMU_FWCFG_ACPI_HARDWARE_ID,
@@ -458,6 +488,11 @@ qemu_fwcfg_init(struct vmctx *const ctx)
 	}
 	if ((error = qemu_fwcfg_add_item_file_dir()) != 0) {
 		warnx("%s: Unable to add file_dir item", __func__);
+	}
+
+	/* add user defined fwcfg files */
+	if ((error = qemu_fwcfg_add_user_files()) != 0) {
+		warnx("%s: Unable to add user files", __func__);
 		goto done;
 	}
 
@@ -468,3 +503,113 @@ done:
 
 	return (error);
 }
+
+static void
+qemu_fwcfg_usage(const char *opt)
+{
+	warnx("Invalid fw_cfg option \"%s\"", opt);
+	warnx("-f [name=]<name>,(string|file)=<value>");
+}
+
+/*
+ * Parses the cmdline argument for user defined fw_cfg items. The cmdline
+ * argument has the format:
+ * "-f [name=]<name>,(string|file)=<value>"
+ *
+ * E.g.: "-f opt/com.page/example,string=Hello"
+ */
+int
+qemu_fwcfg_parse_cmdline_arg(const char *opt)
+{
+	struct qemu_fwcfg_user_file *fwcfg_file;
+	struct stat sb;
+	const char *opt_ptr, *opt_end;
+	ssize_t bytes_read;
+	int fd;
+	
+	fwcfg_file = malloc(sizeof(*fwcfg_file));
+	if (fwcfg_file == NULL) {
+		warnx("Unable to allocate fw_cfg_user_file");
+		return (ENOMEM);
+	}
+
+	/* get pointer to <name> */
+	opt_ptr = opt;
+	/* If [name=] is specified, skip it */
+	if (strncmp(opt_ptr, "name=", sizeof("name=") - 1) == 0) {
+		opt_ptr += sizeof("name=") - 1;
+	}
+
+	/* get the end of <name> */
+	opt_end = strchr(opt_ptr, ',');
+	if (opt_end == NULL) {
+		qemu_fwcfg_usage(opt);
+		return (EINVAL);
+	}
+
+	/* check if <name> is too long */
+	if (opt_end - opt_ptr >= QEMU_FWCFG_MAX_NAME) {
+		warnx("fw_cfg name too long: \"%s\"", opt);
+		return (EINVAL);
+	}
+
+	/* save <name> */
+	strncpy(fwcfg_file->name, opt_ptr, opt_end - opt_ptr);
+	fwcfg_file->name[opt_end - opt_ptr] = '\0';
+
+	/* set opt_ptr and opt_end to <value> */
+	opt_ptr = opt_end + 1;
+	opt_end = opt_ptr + strlen(opt_ptr);
+
+	if (strncmp(opt_ptr, "string=", sizeof("string=") - 1) == 0) {
+		opt_ptr += sizeof("string=") - 1;
+		fwcfg_file->data = strdup(opt_ptr);
+		if (fwcfg_file->data == NULL) {
+			warnx("Can't duplicate fw_cfg_user_file string \"%s\"",
+			    opt_ptr);
+			return (ENOMEM);
+		}
+		fwcfg_file->size = strlen(opt_ptr) + 1;
+	} else if (strncmp(opt_ptr, "file=", sizeof("file=") - 1) == 0) {
+		opt_ptr += sizeof("file=") - 1;
+
+		fd = open(opt_ptr, O_RDONLY);
+		if (fd < 0) {
+			warn("Can't open fw_cfg_user_file file \"%s\"",
+			    opt_ptr);
+			return (EINVAL);
+		}
+
+		if (fstat(fd, &sb) < 0) {
+			warn("Unable to get size of file \"%s\"", opt_ptr);
+			close(fd);
+			return (-1);
+		}
+
+		fwcfg_file->data = malloc(sb.st_size);
+		if (fwcfg_file->data == NULL) {
+			warnx(
+			    "Can't allocate fw_cfg_user_file file \"%s\" (size: 0x%16lx)",
+			    opt_ptr, sb.st_size);
+			close(fd);
+			return (ENOMEM);
+		}
+		bytes_read = read(fd, fwcfg_file->data, sb.st_size);
+		if (bytes_read < 0 || bytes_read != sb.st_size) {
+			warn("Unable to read file \"%s\"", opt_ptr);
+			free(fwcfg_file->data);
+			close(fd);
+			return (-1);
+		}
+		fwcfg_file->size = bytes_read;
+
+		close(fd);
+	} else {
+		qemu_fwcfg_usage(opt);
+		return (EINVAL);
+	}
+
+	STAILQ_INSERT_TAIL(&user_files, fwcfg_file, chain);
+
+	return (0);
+}
diff --git a/usr.sbin/bhyve/qemu_fwcfg.h b/usr.sbin/bhyve/qemu_fwcfg.h
index def0487fdf02..5c73e8309c6e 100644
--- a/usr.sbin/bhyve/qemu_fwcfg.h
+++ b/usr.sbin/bhyve/qemu_fwcfg.h
@@ -23,3 +23,4 @@ struct qemu_fwcfg_item {
 int qemu_fwcfg_add_file(const char *name,
     const uint32_t size, void *const data);
 int qemu_fwcfg_init(struct vmctx *const ctx);
+int qemu_fwcfg_parse_cmdline_arg(const char *opt);

From nobody Fri Aug 18 07:28:41 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRtlZ13X6z4qqbT;
	Fri, 18 Aug 2023 07:28:42 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRtlY6dR2z3DNK;
	Fri, 18 Aug 2023 07:28:41 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692343721;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=2xtYrA0BUl/eRSezIINUreKkNMlByNb5CjQBq2QdaEw=;
	b=GwXgu58DOsY1QKzxuZ/G+QTxhbJnUJLH6eyAMHG6Dc1OZWJdEIoom9gJ5cORtug0W0/Z/y
	tcRPXQPGLd+8iOJfMx/fur8RTbjiQOSLyYESl2gbq0lytKYaRkb97bEl41LOPp120AyvmY
	tQxeA7Rcj69hLytbnajsRcg+Ezd6cArHiz/ARPpfEhw0kTW0A6vO4hoBXOI4cAvQaTJoWr
	owBpULGX1vwsSX3DzbirZnM674TmBNqZRLKe58mORESXG1c3yYKk96KCC13C5c3ag4c0+y
	7TYgZ9HwjkZDvi4ZubpioUJTXT2z61REqDa0spQSh84Lvsn5WsqAwnYFLnJDEw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692343721;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=2xtYrA0BUl/eRSezIINUreKkNMlByNb5CjQBq2QdaEw=;
	b=S7tPOolnF7/+yh9jZoXBn2OigOjSRWGje3BsxlJehwH02C0ljUVqCabJ7/yXrpMwGOR3Hu
	MSpszdSR2BS8mh3EBkwd87l65AUMgB/pI4S6mOyjwTy3U92HTh5MeX+4GdsMzLbROgHYVl
	HOGpgIVUInPjdD0Re8jp7Pq00VNXF9uA6O1ev9J8uzEta3Rakz3P4wtWARqtFv9HOFszqT
	e4DrY8mmOG/p2+icYcXe+9+1LwmcEJzPe9eoL0MH7xQjg4ousPkrj9/EOQmkdt0vcwaSTR
	kV4sOdvBw/ydJzYo4lyYgpj6L3dRCU6SFXwc0UonNGfJNJUIlwX2OXJT2+SNlw==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692343721; a=rsa-sha256; cv=none;
	b=cfjWEhDLhb6+o2kjH0NdcNdNB+G4BGXt8AJnNIXDQUE5wdIL9P0b8gn19kN+8FWvrYvv17
	JzIAfm4ciEzizgt+iBF2ieMENRbGQUY6zArUZCZHiTWto9e7sHegDjHZUFdzb/scPCT00d
	i3pIUHznsuOQO2fYskMTZwBZuL0nweSAof6S9zs1BB+MtR+Wjy4YXYWNCHLLxxQWom2wFo
	l8WblQLAWi87arWAmXD0Jif1XO7IkbvY840DyhCu69MRvC+uLZw3rEkD4ooJTN3Ij7eopL
	asgjCOtMMkDmqLY6m2wwKgO06jpalFmyi0uPdeIemVLgKTWVjb5lFim5xCMwYg==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRtlY5Kp7z16RQ;
	Fri, 18 Aug 2023 07:28:41 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37I7SfN5034293;
	Fri, 18 Aug 2023 07:28:41 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7Sf7h034290;
	Fri, 18 Aug 2023 07:28:41 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 07:28:41 GMT
Message-Id: <202308180728.37I7Sf7h034290@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org>
Subject: git: b3f053b4f46e - stable/13 - bhyve: allow adding FwCfg
  items to ACPI tables
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: corvink
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: b3f053b4f46ef1b1c64b2e2870f7cd172941946b
Auto-Submitted: auto-generated

The branch stable/13 has been updated by corvink:

URL: https://cgit.FreeBSD.org/src/commit/?id=b3f053b4f46ef1b1c64b2e2870f7cd172941946b

commit b3f053b4f46ef1b1c64b2e2870f7cd172941946b
Author:     Corvin Köhne <corvink@FreeBSD.org>
AuthorDate: 2022-07-22 08:58:01 +0000
Commit:     Corvin Köhne <corvink@FreeBSD.org>
CommitDate: 2023-08-18 07:25:06 +0000

    bhyve: allow adding FwCfg items to ACPI tables
    
    A TPM has an event log. Therefore, qemu adds a FwCfg item and adds it to
    an ACPI table. We like to use the same OVMF driver as qemu, so we should
    do the same. This commit adds the ability to basl to do it.
    
    Reviewed by:            markj
    MFC after:              1 week
    Sponsored by:           Beckhoff Automation GmbH & Co. KG
    Differential Revision:  https://reviews.freebsd.org/D40451
    
    (cherry picked from commit 4e46ab0ebe96b56d4fa7ea7df4a81cd533109f07)
---
 usr.sbin/bhyve/basl.c | 17 +++++++++++++++++
 usr.sbin/bhyve/basl.h |  3 +++
 2 files changed, 20 insertions(+)

diff --git a/usr.sbin/bhyve/basl.c b/usr.sbin/bhyve/basl.c
index 348174c6520d..90cb608aecc6 100644
--- a/usr.sbin/bhyve/basl.c
+++ b/usr.sbin/bhyve/basl.c
@@ -490,6 +490,23 @@ basl_table_append_content(struct basl_table *table, void *data, uint32_t len)
 	    len - sizeof(ACPI_TABLE_HEADER)));
 }
 
+int
+basl_table_append_fwcfg(struct basl_table *const table,
+    const uint8_t *fwcfg_name, const uint32_t alignment, const uint8_t size)
+{
+	assert(table != NULL);
+	assert(fwcfg_name != NULL);
+	assert(size <= sizeof(uint64_t));
+
+	BASL_EXEC(qemu_loader_alloc(basl_loader, fwcfg_name, alignment,
+	    QEMU_LOADER_ALLOC_HIGH));
+	BASL_EXEC(qemu_loader_add_pointer(basl_loader, table->fwcfg_name,
+	    fwcfg_name, table->len, size));
+	BASL_EXEC(basl_table_append_int(table, 0, size));
+
+	return (0);
+}
+
 int
 basl_table_append_gas(struct basl_table *const table, const uint8_t space_id,
     const uint8_t bit_width, const uint8_t bit_offset,
diff --git a/usr.sbin/bhyve/basl.h b/usr.sbin/bhyve/basl.h
index 4d9ab4c589a8..e12173b701a2 100644
--- a/usr.sbin/bhyve/basl.h
+++ b/usr.sbin/bhyve/basl.h
@@ -82,6 +82,9 @@ int basl_table_append_checksum(struct basl_table *table, uint32_t start,
 /* Add an ACPI_TABLE_* to basl without its header. */
 int basl_table_append_content(struct basl_table *table, void *data,
     uint32_t len);
+int basl_table_append_fwcfg(struct basl_table *table,
+    const uint8_t *fwcfg_name, uint32_t alignment,
+    uint8_t size);
 int basl_table_append_gas(struct basl_table *table, uint8_t space_id,
     uint8_t bit_width, uint8_t bit_offset, uint8_t access_width,
     uint64_t address);

From nobody Fri Aug 18 07:41:43 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRv2b4rkmz4qrNm;
	Fri, 18 Aug 2023 07:41:43 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRv2b40d0z3FkB;
	Fri, 18 Aug 2023 07:41:43 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692344503;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=c5fOY8mgMLkxXhFnSbXMWiICihaN+Vx47XYnXHt5IxQ=;
	b=sa6uG1xYg+I+Vw0fKvksArdKoSEfCyT6kFbk0M33PS8mK/ZshkEUzWqi3KkD5/AP7qL/qe
	C+EJE8B2tf+xvNTKdCLHLpSgHrmLeguqgapwXA0/oe2u3E/TasFt4qWzog/BV9rBp82a8k
	VyEXOBQqwmqsAqN/JUGTv5jSU/pRU23E6fZGwkXL+rNHg/oh1Kq1EaBJBMICHyB0gMJ3ae
	4VPxeojZAGi/zNm7cn5WKUANw/FOKrXIfB73lMQ4Wd0gGSzEM1gq2fK/iOYzjuev1DJzwq
	/qfq1/8a0kFYqw/IYeg3gKvqPArNFDLFYssZ+M6HO1CFSaQAD/9+Cts/CAx0dA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692344503;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=c5fOY8mgMLkxXhFnSbXMWiICihaN+Vx47XYnXHt5IxQ=;
	b=CGjNvlIMtG2jShzSENt1YILW9UoLHzokvc0Rtl39h2OYMqHKKIQ45mD4LIIQGtFBgyyq1G
	anjJbBAC6ILCTw6GC8vtVBNdRthqeWdl/4l7BsJ+cAeEBy3KNYsPzde7BQC+g3fAwN01jF
	BtSr1MaVWH8CuLVTdXNFMGZVtT4meDLpxY0i6+8EkwvM0bFuW+eqQQBWug+2h7WGfkaJGc
	AF1c9MQChI7BXc/8p4RihXs0+hJjvlxnjio3Nt+gSbR9fS4GpGjc2m/cUKVgjTkmW4yra8
	/AOTFRudZqucwd29JHNcD1WJ9bjQcVLUoeumrSRnbe/nS9wISOPuoLZCP8v0FQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692344503; a=rsa-sha256; cv=none;
	b=AGmDLk3lkYsdTt/j+ks2XILns8nAwAVUh26Y5tfyEUgzytk54gXadLUHKw8KrmrJ8oCDvT
	PVkmjeGAbTr7cFsfRVZ+M6kv4qYlkdS2xZaDugnH3Gvb39iQpJDsKY/TzntG2pIWj5N9co
	c/2dIRWkOqR92oUfneDmnpv8xaJyN0lejGdpk8jkqoR5Dkjnsr3p9/MxnX5WOnDY3yXUex
	1jgYzQm7WR61YH5dfkja3E5YcgN7q2hPd8cENfV5qmB1EhRdA0+GlwayhQcuk2sOXFYnxG
	9Za1Rj5FNLiQHVxTvpPRZ+UFVUVJ85pOvHvPdjq0GgsvkE8d3Y79vmifGeudag==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRv2b33tdz16tD;
	Fri, 18 Aug 2023 07:41:43 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37I7fhJD065700;
	Fri, 18 Aug 2023 07:41:43 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7fhhR065697;
	Fri, 18 Aug 2023 07:41:43 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 07:41:43 GMT
Message-Id: <202308180741.37I7fhhR065697@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org>
Subject: git: 194d65b5f860 - stable/13 - bhyve: make passthru sel
  public available
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: corvink
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 194d65b5f86024a0d0e63b16710b0d04c74ad250
Auto-Submitted: auto-generated

The branch stable/13 has been updated by corvink:

URL: https://cgit.FreeBSD.org/src/commit/?id=194d65b5f86024a0d0e63b16710b0d04c74ad250

commit 194d65b5f86024a0d0e63b16710b0d04c74ad250
Author:     Corvin Köhne <corvink@FreeBSD.org>
AuthorDate: 2023-05-10 10:19:49 +0000
Commit:     Corvin Köhne <corvink@FreeBSD.org>
CommitDate: 2023-08-18 07:29:26 +0000

    bhyve: make passthru sel public available
    
    The GVT-d emulation requires access to this selector to read from the
    device.
    
    Reviewed by:            markj
    MFC after:              1 week
    Sponsored by:           Beckhoff Automation GmbH & Co. KG
    Differential Revision:  https://reviews.freebsd.org/D40035
    
    (cherry picked from commit 60793cee27993048864f60e3c19039386e4a4ab0)
---
 usr.sbin/bhyve/pci_passthru.c | 8 ++++++++
 usr.sbin/bhyve/pci_passthru.h | 1 +
 2 files changed, 9 insertions(+)

diff --git a/usr.sbin/bhyve/pci_passthru.c b/usr.sbin/bhyve/pci_passthru.c
index 2475a574249c..10e77990c283 100644
--- a/usr.sbin/bhyve/pci_passthru.c
+++ b/usr.sbin/bhyve/pci_passthru.c
@@ -660,6 +660,14 @@ done:
 	return (error);
 }
 
+struct pcisel *
+passthru_get_sel(struct passthru_softc *sc)
+{
+	assert(sc != NULL);
+
+	return (&sc->psc_sel);
+}
+
 int
 set_pcir_handler(struct passthru_softc *sc, int reg, int len,
     cfgread_handler rhandler, cfgwrite_handler whandler)
diff --git a/usr.sbin/bhyve/pci_passthru.h b/usr.sbin/bhyve/pci_passthru.h
index d18839e116fa..9b9293cdba7b 100644
--- a/usr.sbin/bhyve/pci_passthru.h
+++ b/usr.sbin/bhyve/pci_passthru.h
@@ -24,5 +24,6 @@ int passthru_cfgread_emulate(struct passthru_softc *sc, struct pci_devinst *pi,
     int coff, int bytes, uint32_t *rv);
 int passthru_cfgwrite_emulate(struct passthru_softc *sc, struct pci_devinst *pi,
     int coff, int bytes, uint32_t val);
+struct pcisel *passthru_get_sel(struct passthru_softc *sc);
 int set_pcir_handler(struct passthru_softc *sc, int reg, int len,
     cfgread_handler rhandler, cfgwrite_handler whandler);

From nobody Fri Aug 18 07:41:44 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRv2c71bhz4qrLK;
	Fri, 18 Aug 2023 07:41:44 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRv2c5XVMz3Fsf;
	Fri, 18 Aug 2023 07:41:44 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692344504;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=kiIxTNFiyYKiY4M6bICBw6Q1YQVl0kBZdDD+VE4CJt8=;
	b=ZY320oydF3Pq47gojvMGuJbk9ZFwc+EQzlKTxCYZfPmSqjsO9kRmvNMdHgqMsuJGeCmF1g
	68RtudJZjoSJxdDXC5e2G0lgpbWhoZr3yhclGJom/Fc7KZ8/Hbh+RTrIo6kR0VUX0imy0k
	VsYGY1TWQPl4fzD9ZauxBN+sk7cDFgPly+d3nAOhl/3Y60XyGJ3mxhYQc2oGyI7xJ3hxLR
	yR8aPcBU+PRITyAJ/R7HFtw2tmsloYpLGZgiD9tFEA3QXBGY8hHwhIyJwsmIDUQvpJZnMS
	4xE725c+pqmwTzHVE/pNmDetwQ1kMMoGdAuYxekLY8bkV4sQmz57fnOnNRxWMw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692344504;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=kiIxTNFiyYKiY4M6bICBw6Q1YQVl0kBZdDD+VE4CJt8=;
	b=iW+IISRPciF/4UFSIH/jJhiAY/8h04QMBvMpZOzmzLc2xvsrO9LqM1FZGPhN2FA4x3QiAr
	w2r6I3n6Ag93QKPbJpHVQZTgo2je7H6auJevr8ECnwpJTzovpPAH/kUScTWY2J0lrPTlRZ
	/K2SEzRnKpWEHhR7eOhAwTgs3/D1ETPYESd6ktQBW4N0Ww2DSKadGrAYJfkZYHtQodRK/u
	yqG850jMnYvpvwre5rQsBNJRdfr3Y83uUnJLGxbNDNGxQ2V1PsT4w39Xd0juBU3a9UM2hN
	xCWVPWrVXzirNJgZ3pNGP6HfMxJqTCKI0KsfArieZ2F8VHXQqeMg4sipJQg/CQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692344504; a=rsa-sha256; cv=none;
	b=V63L/oZxwIDb23CC94Nl9cZxc/Xu/g15SelKx9hMp4tA3bjoI8PL3ceU0GYT36iTP9EhCs
	cN28uttdaFcWmwA70Ma19mFkUvSH+gxe/4YPAlypLsChZx2Kc8/zl9mvfTCYIi2nXCiCkt
	r4stnjwRNuz6JXmkRbUAza0D6u+ICEboDnzl3TaFu2DyiJKZWhXlVD+iqPyGVelYYvYHR6
	/s9tgAaIY6MrmRzN5Q9MfnQN5zThbA8h5aq52Q/9y2SYQIeKIWmkJih0DxSAM2XndTJNx8
	n4RKJBlTzZt/RjAzyv+r/PuwYRN9Q4SEOycMBwprVDgOIc/75h47b2K0fcuZMA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRv2c43j6z176T;
	Fri, 18 Aug 2023 07:41:44 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37I7fieA065755;
	Fri, 18 Aug 2023 07:41:44 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7fi3E065752;
	Fri, 18 Aug 2023 07:41:44 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 07:41:44 GMT
Message-Id: <202308180741.37I7fi3E065752@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org>
Subject: git: 7ffa1d667f74 - stable/13 - bhyve: add helper for
  passthru specific mmio ranges
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: corvink
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 7ffa1d667f748bc6dd84a63ff5f805a1d99c9124
Auto-Submitted: auto-generated

The branch stable/13 has been updated by corvink:

URL: https://cgit.FreeBSD.org/src/commit/?id=7ffa1d667f748bc6dd84a63ff5f805a1d99c9124

commit 7ffa1d667f748bc6dd84a63ff5f805a1d99c9124
Author:     Corvin Köhne <corvink@FreeBSD.org>
AuthorDate: 2023-05-10 10:22:33 +0000
Commit:     Corvin Köhne <corvink@FreeBSD.org>
CommitDate: 2023-08-18 07:29:26 +0000

    bhyve: add helper for passthru specific mmio ranges
    
    Intel GPUs have two special memory regions. They are called Graphics
    Stolen Memory and OpRegion. bhyve has to emulate both of them. In order
    to keep track of those special regions, add generic mmio ranges to the
    passthru emulation.
    
    Reviewed by:            markj
    MFC after:              1 week
    Sponsored by:           Beckhoff Automation GmbH & Co. KG
    Differential Revision:  https://reviews.freebsd.org/D40036
    
    (cherry picked from commit 93cf93179c505cebbcdbeef196d523d36890ed4a)
---
 usr.sbin/bhyve/pci_passthru.c | 12 ++++++++++++
 usr.sbin/bhyve/pci_passthru.h | 10 ++++++++++
 2 files changed, 22 insertions(+)

diff --git a/usr.sbin/bhyve/pci_passthru.c b/usr.sbin/bhyve/pci_passthru.c
index 10e77990c283..d6978a1be822 100644
--- a/usr.sbin/bhyve/pci_passthru.c
+++ b/usr.sbin/bhyve/pci_passthru.c
@@ -78,6 +78,8 @@ __FBSDID("$FreeBSD$");
 #define MSIX_TABLE_COUNT(ctrl) (((ctrl) & PCIM_MSIXCTRL_TABLE_SIZE) + 1)
 #define MSIX_CAPLEN 12
 
+#define PASSTHRU_MMIO_MAX 2
+
 static int pcifd = -1;
 
 struct passthru_softc {
@@ -94,6 +96,7 @@ struct passthru_softc {
 	} psc_msix;
 	struct pcisel psc_sel;
 
+	struct passthru_mmio_mapping psc_mmio_map[PASSTHRU_MMIO_MAX];
 	cfgread_handler psc_pcir_rhandler[PCI_REGMAX + 1];
 	cfgwrite_handler psc_pcir_whandler[PCI_REGMAX + 1];
 };
@@ -660,6 +663,15 @@ done:
 	return (error);
 }
 
+struct passthru_mmio_mapping *
+passthru_get_mmio(struct passthru_softc *sc, int num)
+{
+	assert(sc != NULL);
+	assert(num < PASSTHRU_MMIO_MAX);
+
+	return (&sc->psc_mmio_map[num]);
+}
+
 struct pcisel *
 passthru_get_sel(struct passthru_softc *sc)
 {
diff --git a/usr.sbin/bhyve/pci_passthru.h b/usr.sbin/bhyve/pci_passthru.h
index 9b9293cdba7b..7ce12a27bba4 100644
--- a/usr.sbin/bhyve/pci_passthru.h
+++ b/usr.sbin/bhyve/pci_passthru.h
@@ -11,6 +11,14 @@
 
 #include "pci_emul.h"
 
+struct passthru_mmio_mapping {
+	vm_paddr_t gpa; /* guest physical address */
+	void *gva;	/* guest virtual address */
+	vm_paddr_t hpa; /* host physical address */
+	void *hva;	/* guest virtual address */
+	vm_paddr_t len;
+};
+
 struct passthru_softc;
 
 typedef int (*cfgread_handler)(struct passthru_softc *sc,
@@ -24,6 +32,8 @@ int passthru_cfgread_emulate(struct passthru_softc *sc, struct pci_devinst *pi,
     int coff, int bytes, uint32_t *rv);
 int passthru_cfgwrite_emulate(struct passthru_softc *sc, struct pci_devinst *pi,
     int coff, int bytes, uint32_t val);
+struct passthru_mmio_mapping *passthru_get_mmio(struct passthru_softc *sc,
+    int num);
 struct pcisel *passthru_get_sel(struct passthru_softc *sc);
 int set_pcir_handler(struct passthru_softc *sc, int reg, int len,
     cfgread_handler rhandler, cfgwrite_handler whandler);

From nobody Fri Aug 18 07:41:45 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRv2f1S5kz4qrFX;
	Fri, 18 Aug 2023 07:41:46 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRv2d6FCXz3FnZ;
	Fri, 18 Aug 2023 07:41:45 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692344505;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=l+zzv6VnZqQE6nigHleZHHbEjp8u3XCBrWCnj3Pl83o=;
	b=Sw8iuBfTYvk0dz5biQ52kQV9C0GFuqtFrqgkmZU0hA8iTaUpVJ9vip8BYE/FVYRewFK8Dk
	bwXzN+vSVEWYnfiSfEnxkb+48auHGIk00l2gHSqV23ZM/4QK0xEgBDZZSoUXKgK0LH+3cO
	nXJGwkaHd5vBEjJVP2nzUW+UADSRPbFBqFTW+iI3RumN2zBOy4Gty7dHMjeR7+ViftL3kC
	XFqVJ3bDOGtC6A9Ttm1a1rNzUviK8nguI5J9pUG5WIbsN3kpum7ciOGGyIVSD5Rbl9dhhB
	ivrqK1DZZ5foCcYSUCAs8ZltP5jLTodFo3A4UOrU0+qEmZQ1XvYvY6DHQ3VsSQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692344505;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=l+zzv6VnZqQE6nigHleZHHbEjp8u3XCBrWCnj3Pl83o=;
	b=RCnMGyRANzLg6XNu26b6DrgUlwg8Q2LxiMJsaZl9O54J6vEWN7SivQFmXcsCCpl14epoNO
	Cq3Y5BPa2VOG5ZZGlygCm5vHa/4WByKvWO6+zuE36VdxehtI2SNGfCIb5gFFh+ZMTvu+mo
	zUJ4AEJXMG9xH5VFx64SVc/gYMJswxYEe8z3om6pCCc729nHrUwJqJQ7pWWxMEZECzTV+g
	yIXh78S3d+TI6GlqLirGsUsmaiyj/nQbQwMoNwQYV0TLh4zMxqu45xzmduTePoucy9H13p
	o4VK0LBShgBpGjgq4Nx0t8yxpg/vb42PEApFBC2I5dt24BwPY3FUdyqC0SYv8w==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692344505; a=rsa-sha256; cv=none;
	b=Av033rs5qG1ifmDU/1s/RsYqJSYtFOuM7JJ1ntBz3lnCHpby40YdEG35kBOl6KXIX75XoT
	aZlrU4pXExUClOdGLiQwXCAbFQzGp327hk7xqtl3JcQtq7FckrMbNJSJIn+6deJp1ebuJL
	VoONVqGiJgYy+TzI+/0y3IJZBD70Lz72kcCFYP3XL4FpohSkmZqWwcdLHnE7tx7EPAaVdl
	/NppbiyFv6dMwa7wOsie9UzkefhJWbGKygMuVcH+8y+nsLS7k6IlkVC/0FKZoHxEgEcinr
	Mej8JznvfVmULCXc15ubCL/f6C0ws5yNperWOGx0sn5Om2vyr4inis8e8cl0VQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRv2d531rz176V;
	Fri, 18 Aug 2023 07:41:45 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37I7fjcK065797;
	Fri, 18 Aug 2023 07:41:45 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7fjqU065794;
	Fri, 18 Aug 2023 07:41:45 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 07:41:45 GMT
Message-Id: <202308180741.37I7fjqU065794@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org>
Subject: git: 6ae7ed9e3854 - stable/13 - bhyve: import OpRegion
  definitions
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: corvink
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 6ae7ed9e3854e92d776b650e12f54391432c6470
Auto-Submitted: auto-generated

The branch stable/13 has been updated by corvink:

URL: https://cgit.FreeBSD.org/src/commit/?id=6ae7ed9e3854e92d776b650e12f54391432c6470

commit 6ae7ed9e3854e92d776b650e12f54391432c6470
Author:     Corvin Köhne <corvink@FreeBSD.org>
AuthorDate: 2023-05-10 10:25:19 +0000
Commit:     Corvin Köhne <corvink@FreeBSD.org>
CommitDate: 2023-08-18 07:29:27 +0000

    bhyve: import OpRegion definitions
    
    Those definitions are required for the GVT-d emulation to parse the
    OpRegion.
    
    Reviewed by:            markj
    MFC after:              1 week
    Sponsored by:           Beckhoff Automation GmbH & Co. KG
    Differential Revision:  https://reviews.freebsd.org/D40037
    
    (cherry picked from commit b67f0d360b87d6e8a71ab5118a8acb350505c20a)
---
 usr.sbin/bhyve/pci_gvt-d-opregion.h | 186 ++++++++++++++++++++++++++++++++++++
 1 file changed, 186 insertions(+)

diff --git a/usr.sbin/bhyve/pci_gvt-d-opregion.h b/usr.sbin/bhyve/pci_gvt-d-opregion.h
new file mode 100644
index 000000000000..f506f1449e48
--- /dev/null
+++ b/usr.sbin/bhyve/pci_gvt-d-opregion.h
@@ -0,0 +1,186 @@
+/** @file
+  IGD OpRegion definition from Intel Integrated Graphics Device OpRegion
+  Specification.
+
+  https://01.org/sites/default/files/documentation/skl_opregion_rev0p5.pdf
+
+  Copyright (c) 2016 - 2019, Intel Corporation. All rights reserved.<BR>
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+/*
+ * See
+ * <https://github.com/tianocore/edk2-platforms/blob/82979ab1ca44101e0b92a9c4bda1dfe64a8249f6/Silicon/Intel/IntelSiliconPkg/Include/IndustryStandard/IgdOpRegion.h>
+ */
+
+#pragma once
+
+#include <sys/types.h>
+
+#define IGD_OPREGION_HEADER_SIGN "IntelGraphicsMem"
+#define IGD_OPREGION_HEADER_MBOX1 BIT0
+#define IGD_OPREGION_HEADER_MBOX2 BIT1
+#define IGD_OPREGION_HEADER_MBOX3 BIT2
+#define IGD_OPREGION_HEADER_MBOX4 BIT3
+#define IGD_OPREGION_HEADER_MBOX5 BIT4
+
+#define IGD_OPREGION_VBT_SIZE_6K (6 * 1024UL)
+
+/**
+  OpRegion structures:
+  Sub-structures define the different parts of the OpRegion followed by the
+  main structure representing the entire OpRegion.
+  @note These structures are packed to 1 byte offsets because the exact
+  data location is required by the supporting design specification due to
+  the fact that the data is used by ASL and Graphics driver code compiled
+  separately.
+**/
+
+///
+/// OpRegion Mailbox 0 Header structure. The OpRegion Header is used to
+/// identify a block of memory as the graphics driver OpRegion.
+/// Offset 0x0, Size 0x100
+///
+struct igd_opregion_header {
+	int8_t sign[0x10];  ///< Offset 0x00 OpRegion Signature
+	uint32_t size;	    ///< Offset 0x10 OpRegion Size
+	uint32_t over;	    ///< Offset 0x14 OpRegion Structure Version
+	uint8_t sver[0x20]; ///< Offset 0x18 System BIOS Build Version
+	uint8_t vver[0x10]; ///< Offset 0x38 Video BIOS Build Version
+	uint8_t gver[0x10]; ///< Offset 0x48 Graphic Driver Build Version
+	uint32_t mbox;	    ///< Offset 0x58 Supported Mailboxes
+	uint32_t dmod;	    ///< Offset 0x5C Driver Model
+	uint32_t pcon;	    ///< Offset 0x60 Platform Configuration
+	int16_t dver[0x10]; ///< Offset 0x64 GOP Version
+	uint8_t rm01[0x7C]; ///< Offset 0x84 Reserved Must be zero
+} __packed;
+
+///
+/// OpRegion Mailbox 1 - Public ACPI Methods
+/// Offset 0x100, Size 0x100
+///
+struct igd_opregion_mbox1 {
+	uint32_t drdy;	    ///< Offset 0x100 Driver Readiness
+	uint32_t csts;	    ///< Offset 0x104 Status
+	uint32_t cevt;	    ///< Offset 0x108 Current Event
+	uint8_t rm11[0x14]; ///< Offset 0x10C Reserved Must be Zero
+	uint32_t didl[8];   ///< Offset 0x120 Supported Display Devices ID List
+	uint32_t
+	    cpdl[8]; ///< Offset 0x140 Currently Attached Display Devices List
+	uint32_t
+	    cadl[8]; ///< Offset 0x160 Currently Active Display Devices List
+	uint32_t nadl[8];   ///< Offset 0x180 Next Active Devices List
+	uint32_t aslp;	    ///< Offset 0x1A0 ASL Sleep Time Out
+	uint32_t tidx;	    ///< Offset 0x1A4 Toggle Table Index
+	uint32_t chpd;	    ///< Offset 0x1A8 Current Hotplug Enable Indicator
+	uint32_t clid;	    ///< Offset 0x1AC Current Lid State Indicator
+	uint32_t cdck;	    ///< Offset 0x1B0 Current Docking State Indicator
+	uint32_t sxsw;	    ///< Offset 0x1B4 Display Switch Notification on Sx
+			    ///< StateResume
+	uint32_t evts;	    ///< Offset 0x1B8 Events supported by ASL
+	uint32_t cnot;	    ///< Offset 0x1BC Current OS Notification
+	uint32_t NRDY;	    ///< Offset 0x1C0 Driver Status
+	uint8_t did2[0x1C]; ///< Offset 0x1C4 Extended Supported Devices ID
+			    ///< List(DOD)
+	uint8_t
+	    cpd2[0x1C]; ///< Offset 0x1E0 Extended Attached Display Devices List
+	uint8_t rm12[4]; ///< Offset 0x1FC - 0x1FF Reserved Must be zero
+} __packed;
+
+///
+/// OpRegion Mailbox 2 - Software SCI Interface
+/// Offset 0x200, Size 0x100
+///
+struct igd_opregion_mbox2 {
+	uint32_t scic; ///< Offset 0x200 Software SCI Command / Status / Data
+	uint32_t parm; ///< Offset 0x204 Software SCI Parameters
+	uint32_t dslp; ///< Offset 0x208 Driver Sleep Time Out
+	uint8_t rm21[0xF4]; ///< Offset 0x20C - 0x2FF Reserved Must be zero
+} __packed;
+
+///
+/// OpRegion Mailbox 3 - BIOS/Driver Notification - ASLE Support
+/// Offset 0x300, Size 0x100
+///
+struct igd_opregion_mbox3 {
+	uint32_t ardy;	     ///< Offset 0x300 Driver Readiness
+	uint32_t aslc;	     ///< Offset 0x304 ASLE Interrupt Command / Status
+	uint32_t tche;	     ///< Offset 0x308 Technology Enabled Indicator
+	uint32_t alsi;	     ///< Offset 0x30C Current ALS Luminance Reading
+	uint32_t bclp;	     ///< Offset 0x310 Requested Backlight Brightness
+	uint32_t pfit;	     ///< Offset 0x314 Panel Fitting State or Request
+	uint32_t cblv;	     ///< Offset 0x318 Current Brightness Level
+	uint16_t bclm[0x14]; ///< Offset 0x31C Backlight Brightness Levels Duty
+			     ///< Cycle Mapping Table
+	uint32_t cpfm;	     ///< Offset 0x344 Current Panel Fitting Mode
+	uint32_t epfm;	     ///< Offset 0x348 Enabled Panel Fitting Modes
+	uint8_t plut[0x4A];  ///< Offset 0x34C Panel Look Up Table & Identifier
+	uint32_t pfmb; ///< Offset 0x396 PWM Frequency and Minimum Brightness
+	uint32_t ccdv; ///< Offset 0x39A Color Correction Default Values
+	uint32_t pcft; ///< Offset 0x39E Power Conservation Features
+	uint32_t srot; ///< Offset 0x3A2 Supported Rotation Angles
+	uint32_t iuer; ///< Offset 0x3A6 Intel Ultrabook(TM) Event Register
+	uint64_t fdss; ///< Offset 0x3AA DSS Buffer address allocated for IFFS
+		       ///< feature
+	uint32_t fdsp; ///< Offset 0x3B2 Size of DSS buffer
+	uint32_t stat; ///< Offset 0x3B6 State Indicator
+	uint64_t rvda; ///< Offset 0x3BA Absolute/Relative Address of Raw VBT
+		       ///< Data from OpRegion Base
+	uint32_t rvds;	     ///< Offset 0x3C2 Raw VBT Data Size
+	uint8_t rsvd2[0x3A]; ///< Offset 0x3C6 - 0x3FF  Reserved Must be zero.
+			     ///< Bug in spec 0x45(69)
+} __packed;
+
+///
+/// OpRegion Mailbox 4 - VBT Video BIOS Table
+/// Offset 0x400, Size 0x1800
+///
+struct igd_opregion_mbox4 {
+	uint8_t rvbt[IGD_OPREGION_VBT_SIZE_6K]; ///< Offset 0x400 - 0x1BFF Raw
+						///< VBT Data
+} __packed;
+
+///
+/// OpRegion Mailbox 5 - BIOS/Driver Notification - Data storage BIOS to Driver
+/// data sync Offset 0x1C00, Size 0x400
+///
+struct igd_opregion_mbox5 {
+	uint32_t phed;	     ///< Offset 0x1C00 Panel Header
+	uint8_t bddc[0x100]; ///< Offset 0x1C04 Panel EDID (DDC data)
+	uint8_t rm51[0x2FC]; ///< Offset 0x1D04 - 0x1FFF Reserved Must be zero
+} __packed;
+
+///
+/// IGD OpRegion Structure
+///
+struct igd_opregion {
+	struct igd_opregion_header
+	    header; ///< OpRegion header (Offset 0x0, Size 0x100)
+	struct igd_opregion_mbox1 mbox1; ///< Mailbox 1: Public ACPI Methods
+					 ///< (Offset 0x100, Size 0x100)
+	struct igd_opregion_mbox2 mbox2; ///< Mailbox 2: Software SCI Interface
+					 ///< (Offset 0x200, Size 0x100)
+	struct igd_opregion_mbox3
+	    mbox3; ///< Mailbox 3: BIOS to Driver Notification (Offset 0x300,
+		   ///< Size 0x100)
+	struct igd_opregion_mbox4 mbox4; ///< Mailbox 4: Video BIOS Table (VBT)
+					 ///< (Offset 0x400, Size 0x1800)
+	struct igd_opregion_mbox5
+	    mbox5; ///< Mailbox 5: BIOS to Driver Notification Extension (Offset
+		   ///< 0x1C00, Size 0x400)
+} __packed;
+
+///
+/// VBT Header Structure
+///
+struct vbt_header {
+	uint8_t product_string[20];
+	uint16_t version;
+	uint16_t header_size;
+	uint16_t table_size;
+	uint8_t checksum;
+	uint8_t reserved1;
+	uint32_t bios_data_offset;
+	uint32_t aim_data_offset[4];
+} __packed;

From nobody Fri Aug 18 07:41:46 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRv2g0wSmz4qrNn;
	Fri, 18 Aug 2023 07:41:47 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRv2f6yPmz3G6n;
	Fri, 18 Aug 2023 07:41:46 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692344507;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=2HjHZHn1FfIFIfOKZq3WRXpUiPt/z7Nsdae3N/7PZNc=;
	b=iGwlbqRBCPCneISzxZouuD0k54X9iEiQjvAXef10AQDOPdw8c6DnfoISM9FrRvzwIXBGL/
	AXcbxndAEGXv5V31yN/9SQKls934vzAy+JjHbgsylOHOcB/DnYzBRQLJ64dTrotA38MkPs
	MtybGs50OyLpS4lufTt3UKghrc/MALzkAC/0SLifvS9SzIgwD1qgGmKfZDCxI7MC9AE9zF
	UjqhLdMgdY8ZVn3+1WIthKlnoQ+2TLWwGKRv9bpDJgOlaVpvFz4ESwjzNZ3v8FDINJhbr5
	M8xqWBFZEyjTq7wyEdbjoko1+YCrCBXsSE6u0UMhxjQccJDQ5oa2BL92TToGwA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692344507;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=2HjHZHn1FfIFIfOKZq3WRXpUiPt/z7Nsdae3N/7PZNc=;
	b=OEJyLAA2WL+CUwfw3ZmKI+Tt4OiYfXHBQV40E/6PIlr7NtSn+rPLT0x0Zw8HSObPluBH8W
	gjnXl+MoGVzMOwmB3EwW+p8ompoLidcA1YNyyXa5EfY3sM/MIV3uahgX4/UmW4RgARmoPF
	NvwIFZsPSHbbSgaJphDGT8A89pDcUDX61eAQPbdyxgZOtGEv1QVGSxziwNj/9JU2O7fJ69
	BirxU/OPNpCr3YiBpy9cl3Ewcm+OwbmS1TZlQAgOTGFODgTOEqGu5+Xp7Rk9RZ90b0vvFv
	nrvQKtzHZtzq53jzyu980FpXruTG+KSO06oT2CozzsJlJn0KcWP6yF2A7PcHQQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692344507; a=rsa-sha256; cv=none;
	b=w1+p9pGoGuULma/yQcMFSwlGCNu2B2vV7LmHleDtRvjAVeSNUahqzZ+TXq7mv0qKguTzyg
	7cdGINlszrsR5SBXZeyvpUS9T2nV6eYI6pRMP7IsuLlep6ez1RycNd223g1RkZdNigR92U
	nQzwyO8m7dFyg15ANEbsz4W3I3Vqdu4X4CTbMYzLtuwdrxqrfZsOC6kIZgHHJprcIXkfiy
	T6pTE8+ytyidZGlTFEAWY4w0K3wkET4ykbFXsRg3srW1mR/FZO1dCZuxbLY5nB2TK6PJIS
	W8t0JnNWCwi/EhoO4MxGPrJL7SEhZEhL6RBriHIjyAMkVmJMPEGBAmYLtJw+2Q==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRv2f63HWz16tG;
	Fri, 18 Aug 2023 07:41:46 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37I7fkRM065842;
	Fri, 18 Aug 2023 07:41:46 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7fkYM065839;
	Fri, 18 Aug 2023 07:41:46 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 07:41:46 GMT
Message-Id: <202308180741.37I7fkYM065839@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org>
Subject: git: 3b81aa26ab4c - stable/13 - bhyve: add empty GVT-d
  emulation
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: corvink
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 3b81aa26ab4c8fb360d25a6cd2fedc49cff67e51
Auto-Submitted: auto-generated

The branch stable/13 has been updated by corvink:

URL: https://cgit.FreeBSD.org/src/commit/?id=3b81aa26ab4c8fb360d25a6cd2fedc49cff67e51

commit 3b81aa26ab4c8fb360d25a6cd2fedc49cff67e51
Author:     Corvin Köhne <corvink@FreeBSD.org>
AuthorDate: 2023-05-10 10:31:50 +0000
Commit:     Corvin Köhne <corvink@FreeBSD.org>
CommitDate: 2023-08-18 07:32:05 +0000

    bhyve: add empty GVT-d emulation
    
    Don't emulate anything yet. Just check if the user would like to pass an
    Intel GPU to the guest.
    
    Reviewed by:            jhb, markj
    MFC after:              1 week
    Sponsored by:           Beckhoff Automation GmbH & Co. KG
    Differential Revision:  https://reviews.freebsd.org/D40038
    
    (cherry picked from commit 90c3a1b6629c80a7e4c3fa86d6b794596fdf06b4)
---
 usr.sbin/bhyve/Makefile       |  1 +
 usr.sbin/bhyve/pci_gvt-d.c    | 55 +++++++++++++++++++++++++++++++++++++++++++
 usr.sbin/bhyve/pci_passthru.c | 22 ++++++++++++++++-
 usr.sbin/bhyve/pci_passthru.h | 10 ++++++++
 4 files changed, 87 insertions(+), 1 deletion(-)

diff --git a/usr.sbin/bhyve/Makefile b/usr.sbin/bhyve/Makefile
index c2b426359c22..2f282567eb87 100644
--- a/usr.sbin/bhyve/Makefile
+++ b/usr.sbin/bhyve/Makefile
@@ -45,6 +45,7 @@ SRCS=	\
 	pci_emul.c		\
 	pci_hda.c		\
 	pci_fbuf.c		\
+	pci_gvt-d.c		\
 	pci_hostbridge.c	\
 	pci_irq.c		\
 	pci_lpc.c		\
diff --git a/usr.sbin/bhyve/pci_gvt-d.c b/usr.sbin/bhyve/pci_gvt-d.c
new file mode 100644
index 000000000000..767b8ee3127f
--- /dev/null
+++ b/usr.sbin/bhyve/pci_gvt-d.c
@@ -0,0 +1,55 @@
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (c) 2020 Beckhoff Automation GmbH & Co. KG
+ * Author: Corvin Köhne <c.koehne@beckhoff.com>
+ */
+
+#include <sys/types.h>
+
+#include <dev/pci/pcireg.h>
+
+#include <errno.h>
+
+#include "pci_gvt-d-opregion.h"
+#include "pci_passthru.h"
+
+#define PCI_VENDOR_INTEL 0x8086
+
+static int
+gvt_d_probe(struct pci_devinst *const pi)
+{
+	struct passthru_softc *sc;
+	uint16_t vendor;
+	uint8_t class;
+
+	sc = pi->pi_arg;
+
+	vendor = read_config(passthru_get_sel(sc), PCIR_VENDOR, 0x02);
+	if (vendor != PCI_VENDOR_INTEL)
+		return (ENXIO);
+
+	class = read_config(passthru_get_sel(sc), PCIR_CLASS, 0x01);
+	if (class != PCIC_DISPLAY)
+		return (ENXIO);
+
+	return (0);
+}
+
+static int
+gvt_d_init(struct pci_devinst *const pi __unused, nvlist_t *const nvl __unused)
+{
+	return (0);
+}
+
+static void
+gvt_d_deinit(struct pci_devinst *const pi __unused)
+{
+}
+
+static struct passthru_dev gvt_d_dev = {
+	.probe = gvt_d_probe,
+	.init = gvt_d_init,
+	.deinit = gvt_d_deinit,
+};
+PASSTHRU_DEV_SET(gvt_d_dev);
diff --git a/usr.sbin/bhyve/pci_passthru.c b/usr.sbin/bhyve/pci_passthru.c
index d6978a1be822..793fe3762530 100644
--- a/usr.sbin/bhyve/pci_passthru.c
+++ b/usr.sbin/bhyve/pci_passthru.c
@@ -64,7 +64,6 @@ __FBSDID("$FreeBSD$");
 
 #include <machine/vmm.h>
 
-#include "config.h"
 #include "debug.h"
 #include "mem.h"
 #include "pci_passthru.h"
@@ -82,6 +81,8 @@ __FBSDID("$FreeBSD$");
 
 static int pcifd = -1;
 
+SET_DECLARE(passthru_dev_set, struct passthru_dev);
+
 struct passthru_softc {
 	struct pci_devinst *psc_pi;
 	/* ROM is handled like a BAR */
@@ -856,6 +857,8 @@ passthru_init(struct pci_devinst *pi, nvlist_t *nvl)
 {
 	int bus, slot, func, error, memflags;
 	struct passthru_softc *sc;
+	struct passthru_dev **devpp;
+	struct passthru_dev *devp, *dev = NULL;
 	const char *value;
 
 	sc = NULL;
@@ -919,9 +922,26 @@ passthru_init(struct pci_devinst *pi, nvlist_t *nvl)
 	if ((error = set_pcir_handler(sc, PCIR_COMMAND, 0x04, NULL, NULL)) != 0)
 		goto done;
 
+	SET_FOREACH(devpp, passthru_dev_set) {
+		devp = *devpp;
+		assert(devp->probe != NULL);
+		if (devp->probe(pi) == 0) {
+			dev = devp;
+			break;
+		}
+	}
+
+	if (dev != NULL) {
+		error = dev->init(pi, nvl);
+		if (error != 0)
+			goto done;
+	}
+
 	error = 0;		/* success */
 done:
 	if (error) {
+		if (dev != NULL)
+			dev->deinit(pi);
 		free(sc);
 		vm_unassign_pptdev(pi->pi_vmctx, bus, slot, func);
 	}
diff --git a/usr.sbin/bhyve/pci_passthru.h b/usr.sbin/bhyve/pci_passthru.h
index 7ce12a27bba4..49d2bb309f71 100644
--- a/usr.sbin/bhyve/pci_passthru.h
+++ b/usr.sbin/bhyve/pci_passthru.h
@@ -7,8 +7,11 @@
 
 #pragma once
 
+#include <sys/linker_set.h>
+
 #include <vmmapi.h>
 
+#include "config.h"
 #include "pci_emul.h"
 
 struct passthru_mmio_mapping {
@@ -21,6 +24,13 @@ struct passthru_mmio_mapping {
 
 struct passthru_softc;
 
+struct passthru_dev {
+    int (*probe)(struct pci_devinst *pi);
+    int (*init)(struct pci_devinst *pi, nvlist_t *nvl);
+    void (*deinit)(struct pci_devinst *pi);
+};
+#define PASSTHRU_DEV_SET(x) DATA_SET(passthru_dev_set, x)
+
 typedef int (*cfgread_handler)(struct passthru_softc *sc,
     struct pci_devinst *pi, int coff, int bytes, uint32_t *rv);
 typedef int (*cfgwrite_handler)(struct passthru_softc *sc,

From nobody Fri Aug 18 07:41:47 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRv2h2Bfdz4qrXp;
	Fri, 18 Aug 2023 07:41:48 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRv2h0gP8z3G2c;
	Fri, 18 Aug 2023 07:41:48 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692344508;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=DXcT1ky1AAwKgPOSoDpEQKq31hGqMA7uiP8jebZb8Yw=;
	b=qM/Qt9KMCDc7r/mX6DbN+j8WdFO8b9qVt7rsAlTWC/fdxS5JSK9mpafZKEiQnngWnQBQhI
	4QRl2+sTk7LtT3m/MFczTn9QTVHGZ+Y64IfRKE8lQRtwd68tvKsJpFyUo+RFgaRnHTp6yV
	PwApienxv4EA/j9dVECt6gQTN0aof6ZazaSbBUa9HX4/8xgh2kCR5DMUIkVPic8z57g/UB
	/olYrDTcOBJDFCakj69NVfplPZ5KYngj1lTzlYPZV+nlnsrGwikKZF2TyNzbz66ZtrkoCE
	TnLrF3H/fkLQlgZsuLLgrOueBAMjIFyK9UQKSZ9kG8PB0ZpezSPv4S7F+gKJoQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692344508;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=DXcT1ky1AAwKgPOSoDpEQKq31hGqMA7uiP8jebZb8Yw=;
	b=HkOWWDFlr9qW4FK5X7+dlsLohDUS0w5jSICY5gCn7CseavVINXJu5hRz1ymWL4MSEu/cwS
	7G2BFgsJYuVZBTgiqkyglxNcmNd5gwTj2n+952u/oyja9YSvWZ/IdqJw5EgGHT4y7Wiq5B
	FomJwT7Y/oS8fc8qktQ4Fjlv0PfBuux5DYgT+yIZutQIZ8OIOP9z4xRBColHJh1C8GRzsj
	beFofZCGAyJve/CPYjMKx0KbYeIYMGyhWxVzxLE8hunQGcWIJQ2N7vzZXQMIYy7S1yEZdr
	dRAd278iSQPxev4CHMzbRz7sR/jB55lgmZOXS7GqJWmFXRLTOutP5nK/yXSsMQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692344508; a=rsa-sha256; cv=none;
	b=C0phaawJDG4Br7oEkseeu/6n4qUEWO10Xrtm0tySUApMIkhhgBVx3khrcJU1bcV3gN7cu9
	u4HSGD3WrtbD2PkWJQgAfHkZr4rAIB/RxtU14Q1wWI6VBjjSFuRSflng4Ip+T0AaygVKvh
	6cJTMO4oLeivuvFAOK+ELjwdTRKpsJ8P/1nMzuw6FClk+sbWoUCsnOa2ZcMqhDADHT7Z3b
	2uvMWV+FwafrMbEkuBGLLhCc/ccEwYAmG1i6g8f4R139nMfyjvcVIfNeIbtun3LuFMoOvG
	e0YrFWqCPVknbmGdgs0GZl0kVcZKBG6l72rtsMI2Q+4quPVwdmXTT/Qzg2mfng==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRv2g6rfcz174m;
	Fri, 18 Aug 2023 07:41:47 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37I7flgd066506;
	Fri, 18 Aug 2023 07:41:47 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7flI6066501;
	Fri, 18 Aug 2023 07:41:47 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 07:41:47 GMT
Message-Id: <202308180741.37I7flI6066501@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org>
Subject: git: 13a371bcdfdd - stable/13 - bhyve: read out graphics
  stolen memory address and size
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: corvink
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 13a371bcdfdde22344f01fbbb04e713c27424c32
Auto-Submitted: auto-generated

The branch stable/13 has been updated by corvink:

URL: https://cgit.FreeBSD.org/src/commit/?id=13a371bcdfdde22344f01fbbb04e713c27424c32

commit 13a371bcdfdde22344f01fbbb04e713c27424c32
Author:     Corvin Köhne <corvink@FreeBSD.org>
AuthorDate: 2023-05-11 08:53:15 +0000
Commit:     Corvin Köhne <corvink@FreeBSD.org>
CommitDate: 2023-08-18 07:32:07 +0000

    bhyve: read out graphics stolen memory address and size
    
    This is the first step to emulate the graphics stolen memory register.
    
    Note that the graphics stolen memory is somehow confusing. On the one
    hand the Intel Open Source HD Graphics Programmers' Reference Manual
    states that it's only GPU accessible. As the CPU can't access the area,
    the guest shouldn't need it. On the other hand, the Intel GOP driver
    refuses to work properly, if it's not set to a proper address.
    
    Intel itself maps it into the guest by EPT [1]. At the moment, we're not
    aware of any situation where this EPT mapping is required, so we don't
    do it yet.
    
    Intel also states that the Windows driver for Tiger Lake reads the
    address of the graphics stolen memory [2]. As the GVT-d code doesn't
    support Tiger Lake in its first implementation, we can't check how it
    behaves. We should keep an eye on it.
    
    [1]
    https://github.com/projectacrn/acrn-hypervisor/blob/e28d6fbfdfd556ff1bc3ff330e41d4ddbaa0f897/devicemodel/hw/pci/passthrough.c#L655-L657
    [2]
    https://github.com/projectacrn/acrn-hypervisor/blob/e28d6fbfdfd556ff1bc3ff330e41d4ddbaa0f897/devicemodel/hw/pci/passthrough.c#L626-L629
    
    Reviewed by:            markj
    MFC after:              1 week
    Sponsored by:           Beckhoff Automation GmbH & Co. KG
    Differential Revision:  https://reviews.freebsd.org/D40039
    
    (cherry picked from commit 4a9bf50f408eb9f1acc220dba2b260ec610fd15b)
---
 usr.sbin/bhyve/pci_gvt-d.c | 73 +++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 72 insertions(+), 1 deletion(-)

diff --git a/usr.sbin/bhyve/pci_gvt-d.c b/usr.sbin/bhyve/pci_gvt-d.c
index 767b8ee3127f..0be740921c92 100644
--- a/usr.sbin/bhyve/pci_gvt-d.c
+++ b/usr.sbin/bhyve/pci_gvt-d.c
@@ -6,6 +6,9 @@
  */
 
 #include <sys/types.h>
+#include <sys/sysctl.h>
+
+#include <err.h>
 
 #include <dev/pci/pcireg.h>
 
@@ -16,6 +19,8 @@
 
 #define PCI_VENDOR_INTEL 0x8086
 
+#define GVT_D_MAP_GSM 0
+
 static int
 gvt_d_probe(struct pci_devinst *const pi)
 {
@@ -36,12 +41,78 @@ gvt_d_probe(struct pci_devinst *const pi)
 	return (0);
 }
 
+/*
+ * Note that the graphics stolen memory is somehow confusing. On the one hand
+ * the Intel Open Source HD Graphics Programmers' Reference Manual states that
+ * it's only GPU accessible. As the CPU can't access the area, the guest
+ * shouldn't need it. On the other hand, the Intel GOP driver refuses to work
+ * properly, if it's not set to a proper address.
+ *
+ * Intel itself maps it into the guest by EPT [1]. At the moment, we're not
+ * aware of any situation where this EPT mapping is required, so we don't do it
+ * yet.
+ *
+ * Intel also states that the Windows driver for Tiger Lake reads the address of
+ * the graphics stolen memory [2]. As the GVT-d code doesn't support Tiger Lake
+ * in its first implementation, we can't check how it behaves. We should keep an
+ * eye on it.
+ *
+ * [1]
+ * https://github.com/projectacrn/acrn-hypervisor/blob/e28d6fbfdfd556ff1bc3ff330e41d4ddbaa0f897/devicemodel/hw/pci/passthrough.c#L655-L657
+ * [2]
+ * https://github.com/projectacrn/acrn-hypervisor/blob/e28d6fbfdfd556ff1bc3ff330e41d4ddbaa0f897/devicemodel/hw/pci/passthrough.c#L626-L629
+ */
 static int
-gvt_d_init(struct pci_devinst *const pi __unused, nvlist_t *const nvl __unused)
+gvt_d_setup_gsm(struct pci_devinst *const pi)
 {
+	struct passthru_softc *sc;
+	struct passthru_mmio_mapping *gsm;
+	size_t sysctl_len;
+	int error;
+
+	sc = pi->pi_arg;
+
+	gsm = passthru_get_mmio(sc, GVT_D_MAP_GSM);
+	if (gsm == NULL) {
+		warnx("%s: Unable to access gsm", __func__);
+		return (-1);
+	}
+
+	sysctl_len = sizeof(gsm->hpa);
+	error = sysctlbyname("hw.intel_graphics_stolen_base", &gsm->hpa,
+	    &sysctl_len, NULL, 0);
+	if (error) {
+		warn("%s: Unable to get graphics stolen memory base",
+		    __func__);
+		return (-1);
+	}
+	sysctl_len = sizeof(gsm->len);
+	error = sysctlbyname("hw.intel_graphics_stolen_size", &gsm->len,
+	    &sysctl_len, NULL, 0);
+	if (error) {
+		warn("%s: Unable to get graphics stolen memory length",
+		    __func__);
+		return (-1);
+	}
+	gsm->hva = NULL; /* unused */
+
 	return (0);
 }
 
+static int
+gvt_d_init(struct pci_devinst *const pi, nvlist_t *const nvl __unused)
+{
+	int error;
+
+	if ((error = gvt_d_setup_gsm(pi)) != 0) {
+		warnx("%s: Unable to setup Graphics Stolen Memory", __func__);
+		goto done;
+	}
+
+done:
+	return (error);
+}
+
 static void
 gvt_d_deinit(struct pci_devinst *const pi __unused)
 {

From nobody Fri Aug 18 07:41:49 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRv2j3jTsz4qrFc;
	Fri, 18 Aug 2023 07:41:49 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRv2j28Nzz3G7q;
	Fri, 18 Aug 2023 07:41:49 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692344509;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=/+mkzK61223kZRJvmZqq/HdmSXHVJlhtXHUIe9ZTfRg=;
	b=GmeLiIxAt2EVQZPsIA2t1al1/gtR+Oxx2NYZYSm6orM5NCqhsX9lcbYurXTZb6mUjhIwc8
	1MB0svYoeNw05HEXciFulWlNI3ncA09wY4CGfOmOs7VjT8JWaSLu5nsAv5ViGOciVuAmPT
	18rnE3jZuLQ6MFSdJXQQu2cBtgGfvr2GGwhJruQDOloWINdpeXkP5Ufw/cDH0ovGA8AhCM
	nlshikUrrQCBBU+lD7kdg8mZMUXjsvgRmxBRDkb6vhxVhZL2iYP/h5RVjMIOeAaUWQ4HFm
	JX+w97pwrFrWaU9VtxFWnd+Ee+kwqLjyBjtvzqdzgDlP9RViR2CpUiw05iVgLw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692344509;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=/+mkzK61223kZRJvmZqq/HdmSXHVJlhtXHUIe9ZTfRg=;
	b=NTHwVOjWkhZHsDs7Jfr4cQI8bHm4c6sc/XU/7h3WN1qAiZ90XTpKtR61FYnVYSrfrUQDxV
	Kwkirk8j9f/6CZKg4MKV6TqbCX8f3E7A1Y3hNaNs/ftSMPUWSN0asbTBsXX73EzLHSaBLP
	DoqAR3O6ucoJ2fabN9a8lcwZ5cjq1wKxu5kpXWYpxQSgRZ8Z1Oj3ICthR/guyU8hUiTBCv
	bpsFMC/7SgBtiAoDliV0EmCC4+djoY9X8G1h9Y3bZO+ftSaULLdYFJbhEqINu9k6v7oVNZ
	hL8GvINiXQUgFAsl/+cAiQRCeC8pfkWZFqDM0zBmKogoop21Dk1oJkF6lPMx5A==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692344509; a=rsa-sha256; cv=none;
	b=eTiwW69d+BhbMaw1tdA4FkxuI+Wvh6KQPpWWsttG/3Awi4hgi0E6tCc7IfMTc3yBdTRJ6b
	perhthTRoe70PQpRy9MVSz0qj5YKy46dKnXpfCHCtmI3nJ0GZyBJYXkYvaPrAq45hoQWk9
	2KJMdxYhEB1CXsFy08LUGXIHlk6Ws2Ug6iB70HoDiA3/8T2IyV1Iwr8/Waw3/ZjUg2NqOR
	BPXkb9zq+7zdX+zTZD203ybccTUoS6h6JN1HHpPv+7rlgkpvv6TLk2ftS/dDG93B9Im+lh
	zzOnYCzHRwaUDsslRCQcA1oJPOk6izF0jtpZ/Y2poSgd01pQkkJx0HLioqDyzw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRv2j0ybfz16wF;
	Fri, 18 Aug 2023 07:41:49 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37I7fnOt066782;
	Fri, 18 Aug 2023 07:41:49 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7fnmO066779;
	Fri, 18 Aug 2023 07:41:49 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 07:41:49 GMT
Message-Id: <202308180741.37I7fnmO066779@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org>
Subject: git: aa598e677a7c - stable/13 - bhyve: allocate guest
  memory for graphics stolen memory
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: corvink
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: aa598e677a7c3e6cf8e8524e9e8015df9c28a9f9
Auto-Submitted: auto-generated

The branch stable/13 has been updated by corvink:

URL: https://cgit.FreeBSD.org/src/commit/?id=aa598e677a7c3e6cf8e8524e9e8015df9c28a9f9

commit aa598e677a7c3e6cf8e8524e9e8015df9c28a9f9
Author:     Corvin Köhne <corvink@FreeBSD.org>
AuthorDate: 2023-05-11 09:10:07 +0000
Commit:     Corvin Köhne <corvink@FreeBSD.org>
CommitDate: 2023-08-18 07:32:07 +0000

    bhyve: allocate guest memory for graphics stolen memory
    
    The graphics stolen memory is only GPU accessible. So, we don't have to
    copy any data to it as the guest will be unable to access it anyway. We
    just have to allocate and reserve some memory. That's done by adding an
    E820 entry for the graphics stolen memory. The guest firmware will pick
    up the E820 and reserve this range.
    
    Note that we try to reuse the host address as Intel states that newer
    Tiger Lake platforms need this [1].
    
    [1]
    https://github.com/projectacrn/acrn-hypervisor/blob/e28d6fbfdfd556ff1bc3ff330e41d4ddbaa0f897/devicemodel/hw/pci/passthrough.c#L626-L629
    
    Reviewed by:            markj
    MFC after:              1 week
    Sponsored by:           Beckhoff Automation GmbH & Co. KG
    Differential Revision:  https://reviews.freebsd.org/D40059
    
    (cherry picked from commit 1bd361eea28ae74b42d49bfc96b109a7eae9f3d3)
---
 usr.sbin/bhyve/pci_gvt-d.c | 64 ++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 62 insertions(+), 2 deletions(-)

diff --git a/usr.sbin/bhyve/pci_gvt-d.c b/usr.sbin/bhyve/pci_gvt-d.c
index 0be740921c92..9c5b0906ec29 100644
--- a/usr.sbin/bhyve/pci_gvt-d.c
+++ b/usr.sbin/bhyve/pci_gvt-d.c
@@ -8,17 +8,24 @@
 #include <sys/types.h>
 #include <sys/sysctl.h>
 
-#include <err.h>
-
 #include <dev/pci/pcireg.h>
 
+#include <err.h>
 #include <errno.h>
 
+#include "e820.h"
 #include "pci_gvt-d-opregion.h"
 #include "pci_passthru.h"
 
+#define KB (1024UL)
+#define MB (1024 * KB)
+#define GB (1024 * MB)
+
 #define PCI_VENDOR_INTEL 0x8086
 
+#define PCIM_BDSM_GSM_ALIGNMENT \
+	0x00100000 /* Graphics Stolen Memory is 1 MB aligned */
+
 #define GVT_D_MAP_GSM 0
 
 static int
@@ -41,6 +48,27 @@ gvt_d_probe(struct pci_devinst *const pi)
 	return (0);
 }
 
+static vm_paddr_t
+gvt_d_alloc_mmio_memory(const vm_paddr_t host_address, const vm_paddr_t length,
+    const vm_paddr_t alignment, const enum e820_memory_type type)
+{
+	vm_paddr_t address;
+
+	/* Try to reuse host address. */
+	address = e820_alloc(host_address, length, E820_ALIGNMENT_NONE, type,
+	    E820_ALLOCATE_SPECIFIC);
+	if (address != 0) {
+		return (address);
+	}
+
+	/*
+	 * We're not able to reuse the host address. Fall back to the highest usable
+	 * address below 4 GB.
+	 */
+	return (
+	    e820_alloc(4 * GB, length, alignment, type, E820_ALLOCATE_HIGHEST));
+}
+
 /*
  * Note that the graphics stolen memory is somehow confusing. On the one hand
  * the Intel Open Source HD Graphics Programmers' Reference Manual states that
@@ -95,6 +123,38 @@ gvt_d_setup_gsm(struct pci_devinst *const pi)
 		return (-1);
 	}
 	gsm->hva = NULL; /* unused */
+	gsm->gva = NULL; /* unused */
+	gsm->gpa = gvt_d_alloc_mmio_memory(gsm->hpa, gsm->len,
+	    PCIM_BDSM_GSM_ALIGNMENT, E820_TYPE_RESERVED);
+	if (gsm->gpa == 0) {
+		warnx(
+		    "%s: Unable to add Graphics Stolen Memory to E820 table (hpa 0x%lx len 0x%lx)",
+		    __func__, gsm->hpa, gsm->len);
+		e820_dump_table();
+		return (-1);
+	}
+	if (gsm->gpa != gsm->hpa) {
+		/*
+		 * ACRN source code implies that graphics driver for newer Intel
+		 * platforms like Tiger Lake will read the Graphics Stolen Memory
+		 * address from an MMIO register. We have three options to solve this
+		 * issue:
+		 *    1. Patch the value in the MMIO register
+		 *       This could have unintended side effects. Without any
+		 *       documentation how this register is used by the GPU, don't do
+		 *       it.
+		 *    2. Trap the MMIO register
+		 *       It's not possible to trap a single MMIO register. We need to
+		 *       trap a whole page. Trapping a bunch of MMIO register could
+		 *       degrade the performance noticeably. We have to test it.
+		 *    3. Use an 1:1 host to guest mapping
+		 *       Maybe not always possible. As far as we know, no supported
+		 *       platform requires a 1:1 mapping. For that reason, just log a
+		 *       warning.
+		 */
+		warnx(
+		    "Warning: Unable to reuse host address of Graphics Stolen Memory. GPU passthrough might not work properly.");
+	}
 
 	return (0);
 }

From nobody Fri Aug 18 07:41:50 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRv2k6zWPz4qrZ8;
	Fri, 18 Aug 2023 07:41:50 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRv2k37Bmz3G3B;
	Fri, 18 Aug 2023 07:41:50 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692344510;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=ODmjbrFXg+j7arGU2KxCNzzbYP7xKrGi5i/P0kxsmyI=;
	b=l8btvmPuPLuPU7fCIBWuk99sc9YarsJAV7LyIrh2xIJbQPPyDQEBuWOz/di5Y5H+zE1wL9
	xeSzabOS8FB7eYzNF1jftUfXSPkl9Re8lyI5H+QCTe6N8Yn0/JzEoaNYSChI7qCXqdAl/i
	IYI6ltEBdA1obzAi8vB0tGatbsOEQCTG/OQsGF/JQTKM6EzVsAtkTUiOpPd9pABH8A0Dbf
	mRdSmKtm+17G1wtyCynWWAFv5lvFKTdkf5BGl7jtozA8BsVanXysHIPudg4daqzR3BowNj
	8xy9odeqt4pxzvG66fdAtRQUqGBVFT1MonFoC5P5hNZBBP3P3bg+kkF4WcX0/g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692344510;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=ODmjbrFXg+j7arGU2KxCNzzbYP7xKrGi5i/P0kxsmyI=;
	b=Rr+xF0EFIiahipc0BPiMhQdr7JklnbgBYiZYuEdFMAijNS7qhmP695oymiZvXLu4sc0RwV
	KO9x8KCpQyJoGW513Qt4gWkieY8OG3wIfSSxGqugSN7rsKkmMa+oQVmdLni3CFH/CQeSA2
	8ptbtYKgs4l4k32+cGma5TmyG7kGcY+72JC+U6EQqN7c8y4soFj5ZO/4FSmiGmfTFx5u4C
	72IerrCtyKPLn1mvJy9aendmAwAqWrwBmSE85mJ1ZzOF9c1xJKYmMIn7+BDo2094p0jZps
	rlC1+wIVuSEperptO9I+OFYRXEvU3KWPbxDA/fe7A3xsqYaQyCbHRR3rfsYH8g==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692344510; a=rsa-sha256; cv=none;
	b=wpk4BtRQYF6NmQ2QIQZieD7d1SIWZ/1aXWk1Rfr4fPoSbgQziNud4zqF8FQ4Tc6Y/q3gPf
	msi8YRIYWynQZOEvYynQezASS/u11hyOFT0Gi2fGz0XQay1McdZFMsLYUa8vUuwrk2IrTk
	+/GgTKwr85c6wcPWQMq8Hwd9kmqcG/GU1yAOlIIB9cviPz9Mrf7bNQZKZV291feYZjksfN
	Gdv2OXG5YRgqL6yWt7DsFKapHd5e+zbB7OT/QBUrVtAbnGc/DyYjJBn5F27REQjuzzKveR
	MnAMiiGf9MBGNImPjIJTGT8DlwLiUYv2NgOF+fdm6aaQCGXUneE8zDLFy8j+2w==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRv2k1zCCz174n;
	Fri, 18 Aug 2023 07:41:50 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37I7foTA066830;
	Fri, 18 Aug 2023 07:41:50 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7fo81066827;
	Fri, 18 Aug 2023 07:41:50 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 07:41:50 GMT
Message-Id: <202308180741.37I7fo81066827@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org>
Subject: git: 6d037b69ee62 - stable/13 - bhyve: emulate graphics
  stolen memory register
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: corvink
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 6d037b69ee623ffee05864d6f01712c875409be0
Auto-Submitted: auto-generated

The branch stable/13 has been updated by corvink:

URL: https://cgit.FreeBSD.org/src/commit/?id=6d037b69ee623ffee05864d6f01712c875409be0

commit 6d037b69ee623ffee05864d6f01712c875409be0
Author:     Corvin Köhne <corvink@FreeBSD.org>
AuthorDate: 2023-05-11 09:18:56 +0000
Commit:     Corvin Köhne <corvink@FreeBSD.org>
CommitDate: 2023-08-18 07:32:07 +0000

    bhyve: emulate graphics stolen memory register
    
    This register contains a host physical address. This address is
    meaningless for the guest. We have to emulate it and set it to a valid
    guest physical address.
    
    Reviewed by:            markj
    MFC after:              1 week
    Sponsored by:           Beckhoff Automation GmbH & Co. KG
    Differential Revision:  https://reviews.freebsd.org/D40060
    
    (cherry picked from commit d9fa7c113df254b237e5a573d0567eb686e5fcde)
---
 usr.sbin/bhyve/pci_gvt-d.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/usr.sbin/bhyve/pci_gvt-d.c b/usr.sbin/bhyve/pci_gvt-d.c
index 9c5b0906ec29..3109bc06be82 100644
--- a/usr.sbin/bhyve/pci_gvt-d.c
+++ b/usr.sbin/bhyve/pci_gvt-d.c
@@ -23,6 +23,8 @@
 
 #define PCI_VENDOR_INTEL 0x8086
 
+#define PCIR_BDSM 0x5C /* Base of Data Stolen Memory register */
+
 #define PCIM_BDSM_GSM_ALIGNMENT \
 	0x00100000 /* Graphics Stolen Memory is 1 MB aligned */
 
@@ -96,6 +98,7 @@ gvt_d_setup_gsm(struct pci_devinst *const pi)
 	struct passthru_softc *sc;
 	struct passthru_mmio_mapping *gsm;
 	size_t sysctl_len;
+	uint32_t bdsm;
 	int error;
 
 	sc = pi->pi_arg;
@@ -156,7 +159,12 @@ gvt_d_setup_gsm(struct pci_devinst *const pi)
 		    "Warning: Unable to reuse host address of Graphics Stolen Memory. GPU passthrough might not work properly.");
 	}
 
-	return (0);
+	bdsm = read_config(passthru_get_sel(sc), PCIR_BDSM, 4);
+	pci_set_cfgdata32(pi, PCIR_BDSM,
+	    gsm->gpa | (bdsm & (PCIM_BDSM_GSM_ALIGNMENT - 1)));
+
+	return (set_pcir_handler(sc, PCIR_BDSM, 4, passthru_cfgread_emulate,
+	    passthru_cfgwrite_emulate));
 }
 
 static int

From nobody Fri Aug 18 07:41:51 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRv2m1Y7mz4qrLc;
	Fri, 18 Aug 2023 07:41:52 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRv2l40gfz3GMg;
	Fri, 18 Aug 2023 07:41:51 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692344511;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=1mLJ5QA3CNtmW8X5IBB+lWX2j0pSJdB4jQc+2SQMhX8=;
	b=X7N6xr7Nrd14qgLP/3jzqikmEqcKmbyBecYeOZpL6F8phk6Ncoq137PP3J6WcYxgghuNs1
	UpKIHAjV+Y+Mc+YXAalD+l2GpWQcBwE+NmDVmvgHhaBHHAfbfPeaDT6Mv+glU14SeHbh2x
	z1zmQkSBGGmhNpIGCLOyQbh6ixcBg4LWBwze+gtj7jStHT89bNxn9psaasVtncFdsViIWf
	/oiz4zkGi5HqDQg+vf0XaAt1aFqmeaFmZH2UBAa7ofzeDtsLRETZ5pailFMr9VvkDGNR0e
	MohG6QwKI9dYSyJfTf6oZD//qiA3YWDSQq6vevDpnbIWba9QQvdn7Q4+nfvnzw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692344511;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=1mLJ5QA3CNtmW8X5IBB+lWX2j0pSJdB4jQc+2SQMhX8=;
	b=uB35uZRLB4X7w3ytd//6tt109ei3zUBCDqH+oTQQ8g/G3LKyyIuiz5GCJGAtx48by+2boT
	lv0LrIdZQVi4+cphiJYjKmKOrahp//b36fskB1TuUqGXgZPT9fytm4CwEZkyPY2skEvo1n
	zQIXCc5kc7nvy+zZYSchUnDpCBjFb1/IJZSwIraBBgdGhQ1UxqE8C47AXZOogfMTIXvs4x
	Tjf0uru5A+5GrWQOqBDB4qz5F//ZmYrDOENPLZhc+m/jgx/84CPThBC0lKVwqRzEZhg7yD
	0ISW9ZimJDn1x4CnEORH4vRKFtkxdqd+/c5q5eGmr3wcFjDcKb4/yH/65Li4bQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692344511; a=rsa-sha256; cv=none;
	b=Eu1tchNMrtpuJWYhaoCO0/HPO5zl1PPYaosQWaC0589tWjcMjLWoXBxMzuONMxqigfyslo
	gJSdCfY4xl5UqKnwJO+ewjr7mUFwmje6BLyL2ryT4UL5MVDGMO8NNnbLAjVNTLax7iVAY0
	HIBEKVWAfN2zpafEPlWXmYfdruxvoOgFTNBaWeDqLiPhIBkR8MqfbPDp0efQTbnfE89VTH
	1CN4ErWkmMjmh/ACxzIGusRcE99G9lMy+K2LzI3EZTnQWGkF9yAMavPmr3gS9uZAgIvPHa
	tGPSBH2V/W/t+SwPxkz+P6uf77PlFVM/Cdj8K24dh9xuS4AQemlcuAPdKqLQog==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRv2l2mDtz179M;
	Fri, 18 Aug 2023 07:41:51 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37I7fpSv066884;
	Fri, 18 Aug 2023 07:41:51 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7fp9S066881;
	Fri, 18 Aug 2023 07:41:51 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 07:41:51 GMT
Message-Id: <202308180741.37I7fp9S066881@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org>
Subject: git: b260e413b4b7 - stable/13 - bhyve: read OpRegion address
  and size for GVT-d
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: corvink
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: b260e413b4b7053e4c7a4521e4e9823bb01515be
Auto-Submitted: auto-generated

The branch stable/13 has been updated by corvink:

URL: https://cgit.FreeBSD.org/src/commit/?id=b260e413b4b7053e4c7a4521e4e9823bb01515be

commit b260e413b4b7053e4c7a4521e4e9823bb01515be
Author:     Corvin Köhne <corvink@FreeBSD.org>
AuthorDate: 2023-05-10 11:38:02 +0000
Commit:     Corvin Köhne <corvink@FreeBSD.org>
CommitDate: 2023-08-18 07:32:07 +0000

    bhyve: read OpRegion address and size for GVT-d
    
    The OpRegion provides some configuration bits and ACPI methods used by
    some Intel drivers. The guest needs access to it. In the first step,
    we're reading it's address and size.
    
    Reviewed by:            jhb
    MFC after:              1 week
    Sponsored by:           Beckhoff Automation GmbH & Co. KG
    Differential Revision:  https://reviews.freebsd.org/D40040
    
    (cherry picked from commit 6952b9d25e18fd3a4bf0d1bb7d6b44ff6edf6737)
---
 usr.sbin/bhyve/pci_gvt-d.c | 67 +++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 66 insertions(+), 1 deletion(-)

diff --git a/usr.sbin/bhyve/pci_gvt-d.c b/usr.sbin/bhyve/pci_gvt-d.c
index 3109bc06be82..fd3b48c3e5b7 100644
--- a/usr.sbin/bhyve/pci_gvt-d.c
+++ b/usr.sbin/bhyve/pci_gvt-d.c
@@ -6,12 +6,16 @@
  */
 
 #include <sys/types.h>
+#include <sys/mman.h>
 #include <sys/sysctl.h>
 
 #include <dev/pci/pcireg.h>
 
 #include <err.h>
 #include <errno.h>
+#include <fcntl.h>
+#include <string.h>
+#include <unistd.h>
 
 #include "e820.h"
 #include "pci_gvt-d-opregion.h"
@@ -21,14 +25,20 @@
 #define MB (1024 * KB)
 #define GB (1024 * MB)
 
+#ifndef _PATH_MEM
+#define _PATH_MEM "/dev/mem"
+#endif
+
 #define PCI_VENDOR_INTEL 0x8086
 
-#define PCIR_BDSM 0x5C /* Base of Data Stolen Memory register */
+#define PCIR_BDSM 0x5C	   /* Base of Data Stolen Memory register */
+#define PCIR_ASLS_CTL 0xFC /* Opregion start address register */
 
 #define PCIM_BDSM_GSM_ALIGNMENT \
 	0x00100000 /* Graphics Stolen Memory is 1 MB aligned */
 
 #define GVT_D_MAP_GSM 0
+#define GVT_D_MAP_OPREGION 1
 
 static int
 gvt_d_probe(struct pci_devinst *const pi)
@@ -167,6 +177,56 @@ gvt_d_setup_gsm(struct pci_devinst *const pi)
 	    passthru_cfgwrite_emulate));
 }
 
+static int
+gvt_d_setup_opregion(struct pci_devinst *const pi)
+{
+	struct passthru_softc *sc;
+	struct passthru_mmio_mapping *opregion;
+	struct igd_opregion_header *header;
+	uint64_t asls;
+	int memfd;
+
+	sc = pi->pi_arg;
+
+	memfd = open(_PATH_MEM, O_RDONLY, 0);
+	if (memfd < 0) {
+		warn("%s: Failed to open %s", __func__, _PATH_MEM);
+		return (-1);
+	}
+
+	opregion = passthru_get_mmio(sc, GVT_D_MAP_OPREGION);
+	if (opregion == NULL) {
+		warnx("%s: Unable to access opregion", __func__);
+		close(memfd);
+		return (-1);
+	}
+
+	asls = read_config(passthru_get_sel(sc), PCIR_ASLS_CTL, 4);
+
+	header = mmap(NULL, sizeof(*header), PROT_READ, MAP_SHARED, memfd,
+	    asls);
+	if (header == MAP_FAILED) {
+		warn("%s: Unable to map OpRegion header", __func__);
+		close(memfd);
+		return (-1);
+	}
+	if (memcmp(header->sign, IGD_OPREGION_HEADER_SIGN,
+	    sizeof(header->sign)) != 0) {
+		warnx("%s: Invalid OpRegion signature", __func__);
+		munmap(header, sizeof(*header));
+		close(memfd);
+		return (-1);
+	}
+
+	opregion->hpa = asls;
+	opregion->len = header->size * KB;
+	munmap(header, sizeof(header));
+
+	close(memfd);
+
+	return (0);
+}
+
 static int
 gvt_d_init(struct pci_devinst *const pi, nvlist_t *const nvl __unused)
 {
@@ -177,6 +237,11 @@ gvt_d_init(struct pci_devinst *const pi, nvlist_t *const nvl __unused)
 		goto done;
 	}
 
+	if ((error = gvt_d_setup_opregion(pi)) != 0) {
+		warnx("%s: Unable to setup OpRegion", __func__);
+		goto done;
+	}
+
 done:
 	return (error);
 }

From nobody Fri Aug 18 07:41:52 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRv2n5NYXz4qrJ5;
	Fri, 18 Aug 2023 07:41:53 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRv2m4tQhz3GN3;
	Fri, 18 Aug 2023 07:41:52 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692344512;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=sUnZLy3KcVE+sdeo6K5RDBf3zzbeH64cHXM9lMNnVL4=;
	b=BGouMFjMGGnvuVZIWnD5/XliNmxP6sKQKwSJzKjeGnBnHiHAES7MCaIPDaBx0XXFm0bWO1
	ongB6Ul4Ixwel5G7Qn176cQbSG/SRUjklHCInaXb4ndEjgd4Y/kYoDLWes9/3rm1E2pzxh
	Uf1aNAZ2+a/JTnTNt/KIOGlSP4IAQqRpUSqght5aLticQJLWrprZxAWiW3x5JldHOw53dp
	c+KWVqkMm9v3j1tR05F9q1ND2y5jnMX32u4lTI43zSYnH6ShWutqADWbtkoOn26TRKqY1Z
	LCIXqPSGTv6/5axvpBwwdoarSO7eTRdhoOlcyhWYNR2NL52fJ5BNgtLvvhLeMw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692344512;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=sUnZLy3KcVE+sdeo6K5RDBf3zzbeH64cHXM9lMNnVL4=;
	b=RonSsoRu0+IOufBh2eyek3udCSvzUIf+gWHkk8I34ULHqCvJv9EUFJQicsCPz4mBiltTYf
	xt2C5isHL+baNsITeFuud2eK84LoHLnKAvq8cB+ejzsv8FD39IegrjaNN19p3ZTpw5+sYf
	AY+3qXJHE+3SVOXb6iQva7uL7IxniFodQ+H8VPhjNUBU2dXuP8P3G0hn7v3v5UfRj2xY+8
	h+xcN26NgxYKtfyq068sRT+ntEffLAjXjovy+xove/TeB1I+AnsVMUB0e9zmUDQ73HUVRR
	QwTMa7EEi1D/EI9JhXfZCOB+GcdacP4Y18AFYKh/EcVKpFeFM8tGIE668uvbZA==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692344512; a=rsa-sha256; cv=none;
	b=SFccRgmUCW204S51sz/VAC0IY8fh/em1dEojbtagu1JENt8hML/T5ruY+OOjaCsGRm3Y1e
	a509q/TQ3POL4exCKrwHFVRZjPvEVSD7I8q4uL8FQWAOnXC2Z1u0FOvxNPtysYxu6NCRAP
	NP8kxVurYII4WGuvOLYz/x8j+KfYm7ZYiHwkFwf26dYNH4smoWs/Zo3C2nkUYqyzeFgzYM
	kVJxYQAVk/ICM90bCk58mbTVBiMny4gbrXYq11m9v22Dk6ZcXncQVf7oTI/ATug0fLaz/L
	fES3Mxix256cntsl2wLtjGW2Spp3MPDtrTxgKaifUhVDTsMwig+2thzZ+q39fw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRv2m3zXRz16V3;
	Fri, 18 Aug 2023 07:41:52 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37I7fqeK066934;
	Fri, 18 Aug 2023 07:41:52 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7fqi5066931;
	Fri, 18 Aug 2023 07:41:52 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 07:41:52 GMT
Message-Id: <202308180741.37I7fqi5066931@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org>
Subject: git: 04e774846c9d - stable/13 - bhyve: copy OpRegion into
  guest memory
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: corvink
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 04e774846c9d2e37287a1ddd6e7b0cde5d994ed1
Auto-Submitted: auto-generated

The branch stable/13 has been updated by corvink:

URL: https://cgit.FreeBSD.org/src/commit/?id=04e774846c9d2e37287a1ddd6e7b0cde5d994ed1

commit 04e774846c9d2e37287a1ddd6e7b0cde5d994ed1
Author:     Corvin Köhne <corvink@FreeBSD.org>
AuthorDate: 2023-05-10 11:39:56 +0000
Commit:     Corvin Köhne <corvink@FreeBSD.org>
CommitDate: 2023-08-18 07:32:08 +0000

    bhyve: copy OpRegion into guest memory
    
    This makes the OpRegion accessible by the guest. However, the guest
    doesn't know the address of the OpRegion. This will be fixed by an
    upcoming commit.
    
    The range of the OpRegion is added to the e820 table. This allows the
    guest firmware to easily pick up this range and to reserve it properly.
    
    Reviewed by:            markj
    MFC after:              1 week
    Sponsored by:           Beckhoff Automation GmbH & Co. KG
    Differential Revision:  https://reviews.freebsd.org/D40041
    
    (cherry picked from commit 1115cdcf7af12fd06ca255b981cb579a7bb7a147)
---
 usr.sbin/bhyve/pci_gvt-d.c | 44 +++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 43 insertions(+), 1 deletion(-)

diff --git a/usr.sbin/bhyve/pci_gvt-d.c b/usr.sbin/bhyve/pci_gvt-d.c
index fd3b48c3e5b7..4616bc84d275 100644
--- a/usr.sbin/bhyve/pci_gvt-d.c
+++ b/usr.sbin/bhyve/pci_gvt-d.c
@@ -222,8 +222,40 @@ gvt_d_setup_opregion(struct pci_devinst *const pi)
 	opregion->len = header->size * KB;
 	munmap(header, sizeof(header));
 
+	opregion->hva = mmap(NULL, opregion->len * KB, PROT_READ, MAP_SHARED,
+	    memfd, opregion->hpa);
+	if (opregion->hva == MAP_FAILED) {
+		warn("%s: Unable to map host OpRegion", __func__);
+		close(memfd);
+		return (-1);
+	}
 	close(memfd);
 
+	opregion->gpa = gvt_d_alloc_mmio_memory(opregion->hpa, opregion->len,
+	    E820_ALIGNMENT_NONE, E820_TYPE_NVS);
+	if (opregion->gpa == 0) {
+		warnx(
+		    "%s: Unable to add OpRegion to E820 table (hpa 0x%lx len 0x%lx)",
+		    __func__, opregion->hpa, opregion->len);
+		e820_dump_table();
+		return (-1);
+	}
+	opregion->gva = vm_map_gpa(pi->pi_vmctx, opregion->gpa, opregion->len);
+	if (opregion->gva == NULL) {
+		warnx("%s: Unable to map guest OpRegion", __func__);
+		return (-1);
+	}
+	if (opregion->gpa != opregion->hpa) {
+		/*
+		 * A 1:1 host to guest mapping is not required but this could
+		 * change in the future.
+		 */
+		warnx(
+		    "Warning: Unable to reuse host address of OpRegion. GPU passthrough might not work properly.");
+	}
+
+	memcpy(opregion->gva, opregion->hva, opregion->len);
+
 	return (0);
 }
 
@@ -247,8 +279,18 @@ done:
 }
 
 static void
-gvt_d_deinit(struct pci_devinst *const pi __unused)
+gvt_d_deinit(struct pci_devinst *const pi)
 {
+	struct passthru_softc *sc;
+	struct passthru_mmio_mapping *opregion;
+
+	sc = pi->pi_arg;
+
+	opregion = passthru_get_mmio(sc, GVT_D_MAP_OPREGION);
+
+	/* HVA is only set, if it's initialized */
+	if (opregion->hva)
+		munmap((void *)opregion->hva, opregion->len);
 }
 
 static struct passthru_dev gvt_d_dev = {

From nobody Fri Aug 18 07:41:53 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRv2p0jcmz4qrFp;
	Fri, 18 Aug 2023 07:41:54 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRv2n5TPGz3GNF;
	Fri, 18 Aug 2023 07:41:53 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692344513;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=ZDHPP3Hm9Lyads0aGYbxcwv8aT+KrTYTKlCJ0jfkQWU=;
	b=UxDhUr+DRAilMKXoqRZEl2OPuHDv0sOnXWJZ2a8anqJ+w8pcC1yLAEh+rgFg8/gXS37vtY
	eloSSnf1QYvlyP9+HQuFXUlpUHRcbQZf81xGnjwSc4Rfw778j3JixYBfrJ0wNL4bAJhNmN
	pYQpqIBl2+Tq+NonMUGhu76HQeUla+RYuuBz6s6Xh429II/oKK3Y6S/03doI7wFjv8AbrT
	KvBVsa4ZijeteONPFxBew1UWJ1niR1FGkaJQJPUBeP0EXgKnGiTSyRqXLdEvjcu9ef5baP
	6MqHhuE8GejGAw6w+Ot3IGPZvvCmTyehSxXoBAyVwH/meLlbQn1dWyZoIKoq/Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692344513;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=ZDHPP3Hm9Lyads0aGYbxcwv8aT+KrTYTKlCJ0jfkQWU=;
	b=WnVYRMJoWWao4SF48JviFzfPWsAHU8MD5akzE37N/zGnHEOFskDsT4UVMtC6MNdqeenfj/
	G7W1MU+LVVNAODQ9sQGmE15vtnk0QmWXny/fC3Xxx0WvEsnadygQ6SB9wlzcgIEfX92Eqf
	AS/5clnzXvVJFYxn9jXOQCP/GQMpxly43vimqSqrK3UJK3VtxqEz7byzcRIu1/Yj7lnvV9
	kwlc8qtab9Ci6iwJsiwIw9BNIVgypEG8+rka9SIwvoUIzbigM+vexG6P6gvQVJI/rcvQ0U
	JGuDqSusqSH7MX/+yBGBsTn4MmYIoQDYD8oDD1IJGMYctG+yPMBDziR7agC+ww==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692344513; a=rsa-sha256; cv=none;
	b=h6r10Jo4zkFDWggtDN89XowH6wMB0drFYW7tDRuH4x8aeeEFJD8GivDSFAalNkuq5yHv3S
	Mi//ei7YP5RcCLdnaFmRuIDBg+sq7lUGsdmPAE3UztXCOP228AR1ZiDWrPzFAx4D2io7sO
	jzJDbjdm4C2MutqK1FbGNCAPoBhNJ+/Z/Ku5xk4AILeZlGU9zDr8DmWCWVj/DwhwhPCOS8
	yrObDkWJmjQQTVlsAdiWAzIVuVDYyA1i6FjNYRjnylzsZzbpcuqCE9aYk2TjJwVwUrc14S
	mi7iEZHs8Mf4Sk2FFHq/qMyagt2xA5eRgVpXEfn1WjjkbeOqudJ++/+Wn+AZzg==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRv2n4b5lz179W;
	Fri, 18 Aug 2023 07:41:53 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37I7frVj066996;
	Fri, 18 Aug 2023 07:41:53 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7frnQ066993;
	Fri, 18 Aug 2023 07:41:53 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 07:41:53 GMT
Message-Id: <202308180741.37I7frnQ066993@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org>
Subject: git: 50734f2ba36b - stable/13 - bhyve: pass address of
  OpRegion to the guest
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: corvink
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 50734f2ba36bb79d8472a71e6bd0ebb5399786a8
Auto-Submitted: auto-generated

The branch stable/13 has been updated by corvink:

URL: https://cgit.FreeBSD.org/src/commit/?id=50734f2ba36bb79d8472a71e6bd0ebb5399786a8

commit 50734f2ba36bb79d8472a71e6bd0ebb5399786a8
Author:     Corvin Köhne <corvink@FreeBSD.org>
AuthorDate: 2023-05-10 11:44:28 +0000
Commit:     Corvin Köhne <corvink@FreeBSD.org>
CommitDate: 2023-08-18 07:32:08 +0000

    bhyve: pass address of OpRegion to the guest
    
    Don't allow access to the physical ASLS register. It contains a host
    address which is meaningless for the guest. Additionally, it allows the
    guest to safely rewrite this register.
    
    This is the last commit required for GVT-d. Nevertheless, it might not
    work due to missing firmware support.
    
    MFC after:              1 week
    Sponsored by:           Beckhoff Automation GmbH & Co. KG
    Differential Revision:  https://reviews.freebsd.org/D26209
    
    (cherry picked from commit 71fb2dcb0023d49fc048e1f7b610ad05bd2efc32)
---
 usr.sbin/bhyve/pci_gvt-d.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/usr.sbin/bhyve/pci_gvt-d.c b/usr.sbin/bhyve/pci_gvt-d.c
index 4616bc84d275..35c7f30dd292 100644
--- a/usr.sbin/bhyve/pci_gvt-d.c
+++ b/usr.sbin/bhyve/pci_gvt-d.c
@@ -256,7 +256,10 @@ gvt_d_setup_opregion(struct pci_devinst *const pi)
 
 	memcpy(opregion->gva, opregion->hva, opregion->len);
 
-	return (0);
+	pci_set_cfgdata32(pi, PCIR_ASLS_CTL, opregion->gpa);
+
+	return (set_pcir_handler(sc, PCIR_ASLS_CTL, 4, passthru_cfgread_emulate,
+	    passthru_cfgwrite_emulate));
 }
 
 static int

From nobody Fri Aug 18 07:53:44 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRvJT0dDnz4qrv7;
	Fri, 18 Aug 2023 07:53:45 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRvJS4xXJz3L3X;
	Fri, 18 Aug 2023 07:53:44 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692345224;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=fl66+ET8WlxEbpcGbMnbajPRLcqv6iriU2dFNg/hqOg=;
	b=bhjIBEasgHcvYRlcoLvAhIQL4oGzcC7YOVAeLkN/Yg3IiZtQ3vsEJmD3Xl6BczrH25a6aM
	z4I+FnZUZaN6zLtXjpADkeSQyRxFU61WrqqXVoaPtf9unXnP5V5Aw+O3Z6TWDm4/oe5Q88
	0lMdKvKO4w4q2Xtowr/XxZ4eyNST/80Viht6Danl3vdrRV3s/ZOo9V+LLfHf/OgxPYFT5Z
	/lAJMG2G6aDkJi/uIVdCLNap2t6uFU5IM9X+cN3pe9slxBNxSqAIQbchRbQD+PV/4O99yr
	SOJYKaZtR0LM97bQt/cDcxPUUdXzqs0f22QhcdXtXrfUJS2CRZBUOvD/fRSrYw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692345224;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=fl66+ET8WlxEbpcGbMnbajPRLcqv6iriU2dFNg/hqOg=;
	b=RmIdfEV4v0RnpaTa5T87LTxPpViFMhNWOWnUb+Ye0DsVK+CmmPAzC4IhOuEo/hMn1Zn0ob
	GtaG4MEtGKoTFqXHprip96XlqljadDGrKptIBV3nqAEy4WJpG7Z5xR11C4kTeE5t8AaWBe
	Gw9DG7IGGfIT5eXe6plq4Wb+wVyrTLaYmi+OVIiWF0XuYgHnFXyWSArUH4F6wmsjwfmBTa
	85ohLnZkLH5zZXvtaIdF1er569ha7ujmlCTn4j7Pz5m/gQoyU2h1XzN1v4ojbk1B8+WgYw
	LFGbqTPuL6F73jTPLF8AXFjfllEqUUsy1KOvnW/ygiNoo8L0TVvzVBSmzNqjVg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692345224; a=rsa-sha256; cv=none;
	b=bV3uwraUyfY4BZhIpQCuFDtBQyTbFSr598O0cb+h6yTv8VvvXIblZYOGDBbYUA0XQrNQ5p
	lsrfq/OYl5roqnY4rMWe9SfOVqNwKBY2ebU1r40kY1VG2WeRRBnHKny/Q0SYZqBGHPUta+
	JqY4dZBlbCIy/2EJBBjYPzRIYCRxxqn0hwtvENFUxuS9IilkL7hja1TC5vY7Qg/Sg7Lbrc
	pI/+VPRJtYJhCqbapcWR+asr5MqtcoUEasGZD3VD2xfOLmGjmpug1xzOILuESJex/BrGhW
	GUtEpFTpjF+iIoW8Sy0G/GQ7QvA60rb9lhlCVPYTQA129uFpoJyS9ds8ozP38Q==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRvJS41Q9z16xP;
	Fri, 18 Aug 2023 07:53:44 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37I7riie083761;
	Fri, 18 Aug 2023 07:53:44 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7ri9i083758;
	Fri, 18 Aug 2023 07:53:44 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 07:53:44 GMT
Message-Id: <202308180753.37I7ri9i083758@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org>
Subject: git: c791a53c8026 - stable/13 - bhyve: add helper to create
  a bootorder
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: corvink
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: c791a53c8026951051be47cbd608915b6fa41845
Auto-Submitted: auto-generated

The branch stable/13 has been updated by corvink:

URL: https://cgit.FreeBSD.org/src/commit/?id=c791a53c8026951051be47cbd608915b6fa41845

commit c791a53c8026951051be47cbd608915b6fa41845
Author:     Corvin Köhne <corvink@FreeBSD.org>
AuthorDate: 2021-08-16 07:47:53 +0000
Commit:     Corvin Köhne <corvink@FreeBSD.org>
CommitDate: 2023-08-18 07:52:10 +0000

    bhyve: add helper to create a bootorder
    
    Qemu's fwcfg allows to define a bootorder. Therefore, the hypervisor has
    to create a fwcfg item named bootorder, which has a newline seperated
    list of boot entries. Qemu's OVMF will pick up the bootorder and applies
    it.
    
    Add the moment, bhyve's OVMF doesn't support a custom bootorder by
    qemu's fwcfg. However, in the future bhyve will gain support for qemu's
    OVMF. Additonally, we can port relevant parts from qemu's to bhyve's
    OVMF implementation.
    
    Reviewed by:            jhb, markj
    MFC after:              1 week
    Sponsored by:           Beckhoff Automation GmbH & Co. KG
    Differential Revision:  https://reviews.freebsd.org/D39284
    
    (cherry picked from commit 6632a0a4e3ab68b0e31b612e8aeca14de3fc8159)
---
 usr.sbin/bhyve/pci_emul.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++
 usr.sbin/bhyve/pci_emul.h |  2 ++
 2 files changed, 78 insertions(+)

diff --git a/usr.sbin/bhyve/pci_emul.c b/usr.sbin/bhyve/pci_emul.c
index f52bf94b7c3d..2f85e453ff17 100644
--- a/usr.sbin/bhyve/pci_emul.c
+++ b/usr.sbin/bhyve/pci_emul.c
@@ -62,6 +62,7 @@ __FBSDID("$FreeBSD$");
 #include "pci_irq.h"
 #include "pci_lpc.h"
 #include "pci_passthru.h"
+#include "qemu_fwcfg.h"
 
 #define CONF1_ADDR_PORT	   0x0cf8
 #define CONF1_DATA_PORT	   0x0cfc
@@ -121,6 +122,14 @@ struct pci_bar_allocation {
 static TAILQ_HEAD(pci_bar_list, pci_bar_allocation) pci_bars =
     TAILQ_HEAD_INITIALIZER(pci_bars);
 
+struct boot_device {
+	TAILQ_ENTRY(boot_device) boot_device_chain;
+	struct pci_devinst *pdi;
+	int bootindex;
+};
+static TAILQ_HEAD(boot_list, boot_device) boot_devices = TAILQ_HEAD_INITIALIZER(
+    boot_devices);
+
 #define	PCI_EMUL_IOBASE		0x2000
 #define	PCI_EMUL_IOLIMIT	0x10000
 
@@ -949,6 +958,45 @@ pci_emul_alloc_rom(struct pci_devinst *const pdi, const uint64_t size,
 	return (0);
 }
 
+int
+pci_emul_add_boot_device(struct pci_devinst *pi, int bootindex)
+{
+	struct boot_device *new_device, *device;
+
+	/* don't permit a negative bootindex */
+	if (bootindex < 0) {
+		errx(4, "Invalid bootindex %d for %s", bootindex, pi->pi_name);
+	}
+
+	/* alloc new boot device */
+	new_device = calloc(1, sizeof(struct boot_device));
+	if (new_device == NULL) {
+		return (ENOMEM);
+	}
+	new_device->pdi = pi;
+	new_device->bootindex = bootindex;
+
+	/* search for boot device with higher boot index */
+	TAILQ_FOREACH(device, &boot_devices, boot_device_chain) {
+		if (device->bootindex == bootindex) {
+			errx(4,
+			    "Could not set bootindex %d for %s. Bootindex already occupied by %s",
+			    bootindex, pi->pi_name, device->pdi->pi_name);
+		} else if (device->bootindex > bootindex) {
+			break;
+		}
+	}
+
+	/* add boot device to queue */
+	if (device == NULL) {
+		TAILQ_INSERT_TAIL(&boot_devices, new_device, boot_device_chain);
+	} else {
+		TAILQ_INSERT_BEFORE(device, new_device, boot_device_chain);
+	}
+
+	return (0);
+}
+
 #define	CAP_START_OFFSET	0x40
 static int
 pci_emul_add_capability(struct pci_devinst *pi, u_char *capdata, int caplen)
@@ -1357,6 +1405,27 @@ pci_ecfg_base(void)
 	return (PCI_EMUL_ECFG_BASE);
 }
 
+static int
+init_bootorder(void)
+{
+	struct boot_device *device;
+	FILE *fp;
+	char *bootorder;
+	size_t bootorder_len;
+
+	if (TAILQ_EMPTY(&boot_devices))
+		return (0);
+
+	fp = open_memstream(&bootorder, &bootorder_len);
+	TAILQ_FOREACH(device, &boot_devices, boot_device_chain) {
+		fprintf(fp, "/pci@i0cf8/pci@%d,%d\n",
+		    device->pdi->pi_slot, device->pdi->pi_func);
+	}
+	fclose(fp);
+
+	return (qemu_fwcfg_add_file("bootorder", bootorder_len, bootorder));
+}
+
 #define	BUSIO_ROUNDUP		32
 #define	BUSMEM32_ROUNDUP	(1024 * 1024)
 #define	BUSMEM64_ROUNDUP	(512 * 1024 * 1024)
@@ -1386,6 +1455,8 @@ init_pci(struct vmctx *ctx)
 	pci_emul_membase64 = roundup2(pci_emul_membase64, PCI_EMUL_MEMSIZE64);
 	pci_emul_memlim64 = pci_emul_membase64 + PCI_EMUL_MEMSIZE64;
 
+	TAILQ_INIT(&boot_devices);
+
 	for (bus = 0; bus < MAXBUSES; bus++) {
 		snprintf(node_name, sizeof(node_name), "pci.%d", bus);
 		nvl = find_config_node(node_name);
@@ -1493,6 +1564,11 @@ init_pci(struct vmctx *ctx)
 	}
 	lpc_pirq_routed();
 
+	if ((error = init_bootorder()) != 0) {
+		warnx("%s: Unable to init bootorder", __func__);
+		return (error);
+	}
+
 	/*
 	 * The guest physical memory map looks like the following:
 	 * [0,		    lowmem)		guest system memory
diff --git a/usr.sbin/bhyve/pci_emul.h b/usr.sbin/bhyve/pci_emul.h
index ce14f5e34889..2eb2e3a4e280 100644
--- a/usr.sbin/bhyve/pci_emul.h
+++ b/usr.sbin/bhyve/pci_emul.h
@@ -234,6 +234,8 @@ int	pci_emul_alloc_bar(struct pci_devinst *pdi, int idx,
 	    enum pcibar_type type, uint64_t size);
 int 	pci_emul_alloc_rom(struct pci_devinst *const pdi, const uint64_t size,
     	    void **const addr);
+int 	pci_emul_add_boot_device(struct pci_devinst *const pi,
+	    const int bootindex);
 int	pci_emul_add_msicap(struct pci_devinst *pi, int msgnum);
 int	pci_emul_add_pciecap(struct pci_devinst *pi, int pcie_device_type);
 void	pci_emul_capwrite(struct pci_devinst *pi, int offset, int bytes,

From nobody Fri Aug 18 07:53:45 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RRvJV4D3kz4qrvC;
	Fri, 18 Aug 2023 07:53:46 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RRvJT68LKz3L5n;
	Fri, 18 Aug 2023 07:53:45 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692345225;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=Z0bQxW15LyhH8BatU4BaA3TfQKU5kQilUFdsx79YUBk=;
	b=WSB5esJOLoFbay6c75NeeS/FbZPQ8Pzk5K+UfWdS1n6A2G5qP+6XIZGmSCPVVPaW7SO+oL
	zDuAcLybTJnpWTOootKB9T4RAgfRWWPMFsfajRQD+vZNlVPnEuqrnaJUVpe8PAzJnrPzqv
	aCrokSXkvDFc3XyaZtikl0l4mJLSKCa6z5vzrrjEHL7f+fxXmykcVOWaZI3RiYNJmmGXYT
	gkwQbF+Seu7atIKljpvBs1m8r965o8SG1rASq7+miPMlhaLo0tVycKJYA0bd2xnKk5PUSL
	CanX219wNUDu9l1mwBoZ3n1/Wvt16k0N+MCGxC05PloW05bVtCuCGGNU00LCYA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692345225;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=Z0bQxW15LyhH8BatU4BaA3TfQKU5kQilUFdsx79YUBk=;
	b=CHwAXZshSDqowIB4R8hZAYV9vTjy8ZDDsGp764Cc9BwqZ0zCX0ALiafQVuB51jAC0rGu8n
	1pwRdjXW2R4X3aCW/6hvlnQPxLd9Piydnq31PwPSocz9s3ClP5HdAlaHR6ee4mrjZsyxtL
	wBnKEWpBLTkWXQVJA4KFpB+ZqDGoPzrqGIUf31Txlkxx7B0EvU0thIOVJuRVkuWXzqKrPq
	N2gvGV20U2s85OtlCcIksMh+CYG80DY/FmSeoNURkNEr0AGCPzlZv0rUCcnoEadHkY3TBm
	uKNJ/pab6HmfcPbbJGQ36PKOy5bAHLtk08ylDLZPA/by7V664bvhTJdRYMg8Fg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692345225; a=rsa-sha256; cv=none;
	b=ypIo5k+DTLPQAdvMSMMeMcLq+U8PZ3HQIcqEpVz8s8kA7s3xzpT24ScyLuv4hJsB35vTWy
	WB945uA8y5AOnaDzXWFr47aqRiXNiHRYKfK5W2ASO/rPmX63h3nZehpZDSsCFGH/Fg8AcW
	Ab7xJBhsIxjUvjF/mFwQ514fvkBymq0yS8dx6yJQ7X2jsnujrcjrWgP+IOXOyhlMhSWrYf
	2v+j72PIHoIrJN623N/m6VIP+wd1cL6QaVec/Co8e9b1F9MvVXRcxwHnOESPJVeSrDlR2M
	AvW22vOCuHnxmbiDdzmtLkCGsuNuEh0Y3mZ1OWg6Lo1J5vg5Q/fw1nx6Q5xAIw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RRvJT4w6Xz17Sr;
	Fri, 18 Aug 2023 07:53:45 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37I7rjnk083812;
	Fri, 18 Aug 2023 07:53:45 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37I7rjaX083809;
	Fri, 18 Aug 2023 07:53:45 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 07:53:45 GMT
Message-Id: <202308180753.37I7rjaX083809@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Corvin =?utf-8?Q?K=C3=B6hne?= <corvink@FreeBSD.org>
Subject: git: b02e0f964028 - stable/13 - bhyve: add bootindex option
  for several devices
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: corvink
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: b02e0f96402830405c0812dc26b7492d487f795b
Auto-Submitted: auto-generated

The branch stable/13 has been updated by corvink:

URL: https://cgit.FreeBSD.org/src/commit/?id=b02e0f96402830405c0812dc26b7492d487f795b

commit b02e0f96402830405c0812dc26b7492d487f795b
Author:     Corvin Köhne <corvink@FreeBSD.org>
AuthorDate: 2021-08-16 07:50:15 +0000
Commit:     Corvin Köhne <corvink@FreeBSD.org>
CommitDate: 2023-08-18 07:52:10 +0000

    bhyve: add bootindex option for several devices
    
    The bootindex option creates an entry in the "bootorder" fwcfg file.
    This file can be picked up by the guest firmware to determine the
    bootorder. Nevertheless, it's not guaranteed that the guest firmware
    uses the bootorder. At the moment, our OVMF ignores the bootorder. This
    will change in the future.
    
    If guest firmware supports the "bootorder" fwcfg file and no device uses
    the bootindex option, the boot order is determined by the firmware
    itself. If one or more devices specify a bootindex, the first bootable
    device with the lowest bootindex will be booted. It's not garanteed that
    devices without a bootindex will be recognized as bootable from the
    firmware in that case.
    
    Reviewed by:            jhb
    MFC after:              1 week
    Sponsored by:           Beckhoff Automation GmbH & Co. KG
    Differential Revision:  https://reviews.freebsd.org/D39285
    
    (cherry picked from commit 480bef9481f0c44b19ac4b2adb09f6c3191acd41)
---
 usr.sbin/bhyve/bhyve.8            | 18 ++++++++++++++++++
 usr.sbin/bhyve/block_if.c         | 21 ++++++++++++++++++++-
 usr.sbin/bhyve/block_if.h         |  2 ++
 usr.sbin/bhyve/pci_ahci.c         |  7 +++++++
 usr.sbin/bhyve/pci_nvme.c         |  8 ++++++++
 usr.sbin/bhyve/pci_virtio_block.c |  5 +++++
 usr.sbin/bhyve/pci_virtio_scsi.c  |  9 +++++++++
 7 files changed, 69 insertions(+), 1 deletion(-)

diff --git a/usr.sbin/bhyve/bhyve.8 b/usr.sbin/bhyve/bhyve.8
index b764807c7980..819d2bb0ef81 100644
--- a/usr.sbin/bhyve/bhyve.8
+++ b/usr.sbin/bhyve/bhyve.8
@@ -482,6 +482,12 @@ if not explicitly specified.
 Disable emulation of guest trim requests via
 .Dv DIOCGDELETE
 requests.
+.It Li bootindex= Ns Ar index
+Add the device to the bootorder at
+.Ar index .
+A fwcfg file is used to specify the bootorder.
+The guest firmware may ignore or doesn't support this fwcfg file.
+In that case, this feature doesn't work as expected.
 .El
 .Pp
 SCSI device backends:
@@ -499,6 +505,12 @@ are:
 .It Cm iid= Ns Ar IID
 Initiator ID to use when sending requests to specified CTL port.
 The default value is 0.
+.It Li bootindex= Ns Ar index
+Add the device to the bootorder at
+.Ar index .
+A fwcfg file is used to specify the bootorder.
+The guest firmware may ignore or doesn't support this fwcfg file.
+In that case, this feature doesn't work as expected.
 .El
 .Pp
 9P device backends:
@@ -596,6 +608,12 @@ Add
 .Ar romfile
 as option ROM to the PCI device.
 The ROM will be loaded by firmware and should be capable of initializing the device.
+.It Li bootindex= Ns Ar index
+Add the device to the bootorder at
+.Ar index .
+A fwcfg file is used to specify the bootorder.
+The guest firmware may ignore or doesn't support this fwcfg file.
+In that case, this feature doesn't work as expected.
 .El
 .Pp
 Guest memory must be wired using the
diff --git a/usr.sbin/bhyve/block_if.c b/usr.sbin/bhyve/block_if.c
index 187a5ac55e09..8846c6032539 100644
--- a/usr.sbin/bhyve/block_if.c
+++ b/usr.sbin/bhyve/block_if.c
@@ -122,6 +122,7 @@ struct blockif_ctxt {
 	TAILQ_HEAD(, blockif_elem) bc_pendq;
 	TAILQ_HEAD(, blockif_elem) bc_busyq;
 	struct blockif_elem	bc_reqs[BLOCKIF_MAXREQ];
+	int			bc_bootindex;
 };
 
 static pthread_once_t blockif_once = PTHREAD_ONCE_INIT;
@@ -453,12 +454,22 @@ blockif_legacy_config(nvlist_t *nvl, const char *opts)
 	return (pci_parse_legacy_config(nvl, cp + 1));
 }
 
+int
+blockif_add_boot_device(struct pci_devinst *const pi,
+    struct blockif_ctxt *const bc)
+{
+	if (bc->bc_bootindex < 0)
+		return (0);
+
+	return (pci_emul_add_boot_device(pi, bc->bc_bootindex));
+}
+
 struct blockif_ctxt *
 blockif_open(nvlist_t *nvl, const char *ident)
 {
 	char tname[MAXCOMLEN + 1];
 	char name[MAXPATHLEN];
-	const char *path, *pssval, *ssval;
+	const char *path, *pssval, *ssval, *bootindex_val;
 	char *cp;
 	struct blockif_ctxt *bc;
 	struct stat sbuf;
@@ -467,6 +478,7 @@ blockif_open(nvlist_t *nvl, const char *ident)
 	int extra, fd, i, sectsz;
 	int ro, candelete, geom, ssopt, pssopt;
 	int nodelete;
+	int bootindex;
 
 #ifndef WITHOUT_CAPSICUM
 	cap_rights_t rights;
@@ -480,6 +492,7 @@ blockif_open(nvlist_t *nvl, const char *ident)
 	ssopt = 0;
 	ro = 0;
 	nodelete = 0;
+	bootindex = -1;
 
 	if (get_config_bool_node_default(nvl, "nocache", false))
 		extra |= O_DIRECT;
@@ -512,6 +525,11 @@ blockif_open(nvlist_t *nvl, const char *ident)
 		}
 	}
 
+	bootindex_val = get_config_value_node(nvl, "bootindex");
+	if (bootindex_val != NULL) {
+		bootindex = atoi(bootindex_val);
+	}
+
 	path = get_config_value_node(nvl, "path");
 	if (path == NULL) {
 		EPRINTLN("Missing \"path\" for block device.");
@@ -628,6 +646,7 @@ blockif_open(nvlist_t *nvl, const char *ident)
 	TAILQ_INIT(&bc->bc_freeq);
 	TAILQ_INIT(&bc->bc_pendq);
 	TAILQ_INIT(&bc->bc_busyq);
+	bc->bc_bootindex = bootindex;
 	for (i = 0; i < BLOCKIF_MAXREQ; i++) {
 		bc->bc_reqs[i].be_status = BST_FREE;
 		TAILQ_INSERT_HEAD(&bc->bc_freeq, &bc->bc_reqs[i], be_link);
diff --git a/usr.sbin/bhyve/block_if.h b/usr.sbin/bhyve/block_if.h
index b36d0c367890..52ebd8634b8e 100644
--- a/usr.sbin/bhyve/block_if.h
+++ b/usr.sbin/bhyve/block_if.h
@@ -62,11 +62,13 @@ struct blockif_req {
 	struct iovec	br_iov[BLOCKIF_IOV_MAX];
 };
 
+struct pci_devinst;
 struct blockif_ctxt;
 
 typedef void blockif_resize_cb(struct blockif_ctxt *, void *, size_t);
 
 int	blockif_legacy_config(nvlist_t *nvl, const char *opts);
+int 	blockif_add_boot_device(struct pci_devinst *const pi, struct blockif_ctxt *const bc);
 struct blockif_ctxt *blockif_open(nvlist_t *nvl, const char *ident);
 int	blockif_register_resize_callback(struct blockif_ctxt *bc,
     blockif_resize_cb *cb, void *cb_arg);
diff --git a/usr.sbin/bhyve/pci_ahci.c b/usr.sbin/bhyve/pci_ahci.c
index a263eae6ad49..90fcf2449b9d 100644
--- a/usr.sbin/bhyve/pci_ahci.c
+++ b/usr.sbin/bhyve/pci_ahci.c
@@ -2476,6 +2476,13 @@ pci_ahci_init(struct pci_devinst *pi, nvlist_t *nvl)
 			ret = 1;
 			goto open_fail;
 		}
+
+		ret = blockif_add_boot_device(pi, bctxt);
+		if (ret) {
+			sc->ports = p;
+			goto open_fail;
+		}
+
 		sc->port[p].bctx = bctxt;
 		sc->port[p].pr_sc = sc;
 		sc->port[p].port = p;
diff --git a/usr.sbin/bhyve/pci_nvme.c b/usr.sbin/bhyve/pci_nvme.c
index 4ff5243262fa..b446bc266716 100644
--- a/usr.sbin/bhyve/pci_nvme.c
+++ b/usr.sbin/bhyve/pci_nvme.c
@@ -3211,6 +3211,14 @@ pci_nvme_parse_config(struct pci_nvme_softc *sc, nvlist_t *nvl)
 			sc->dataset_management = NVME_DATASET_MANAGEMENT_DISABLE;
 	}
 
+	value = get_config_value_node(nvl, "bootindex");
+	if (value != NULL) {
+		if (pci_emul_add_boot_device(sc->nsc_pi, atoi(value))) {
+			EPRINTLN("Invalid bootindex %d", atoi(value));
+			return (-1);
+		}
+	}
+
 	value = get_config_value_node(nvl, "ram");
 	if (value != NULL) {
 		uint64_t sz = strtoull(value, NULL, 10);
diff --git a/usr.sbin/bhyve/pci_virtio_block.c b/usr.sbin/bhyve/pci_virtio_block.c
index 9fd6db41dba8..c8ec62a66793 100644
--- a/usr.sbin/bhyve/pci_virtio_block.c
+++ b/usr.sbin/bhyve/pci_virtio_block.c
@@ -471,6 +471,11 @@ pci_vtblk_init(struct pci_devinst *pi, nvlist_t *nvl)
 		return (1);
 	}
 
+	if (blockif_add_boot_device(pi, bctxt)) {
+		perror("Invalid boot device");
+		return (1);
+	}
+
 	size = blockif_size(bctxt);
 	sectsz = blockif_sectsz(bctxt);
 	blockif_psectsz(bctxt, &sts, &sto);
diff --git a/usr.sbin/bhyve/pci_virtio_scsi.c b/usr.sbin/bhyve/pci_virtio_scsi.c
index f5728c5c53c2..d9ad1382f0c5 100644
--- a/usr.sbin/bhyve/pci_virtio_scsi.c
+++ b/usr.sbin/bhyve/pci_virtio_scsi.c
@@ -707,6 +707,15 @@ pci_vtscsi_init(struct pci_devinst *pi, nvlist_t *nvl)
 	if (value != NULL)
 		sc->vss_iid = strtoul(value, NULL, 10);
 
+	value = get_config_value_node(nvl, "bootindex");
+	if (value != NULL) {
+		if (pci_emul_add_boot_device(pi, atoi(value))) {
+			EPRINTLN("Invalid bootindex %d", atoi(value));
+			free(sc);
+			return (-1);
+		}
+	}
+
 	devname = get_config_value_node(nvl, "dev");
 	if (devname == NULL)
 		devname = "/dev/cam/ctl";

From nobody Fri Aug 18 12:40:13 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RS1g14GQlz4qT0X;
	Fri, 18 Aug 2023 12:40:13 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RS1g11yNgz4N81;
	Fri, 18 Aug 2023 12:40:13 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692362413;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=/D81kOTt3MVJzxB0LUvEaqOleexI1ASsstJomVVmwJU=;
	b=Lp9cwlUUQSjXNMpnvi123lqODhI5IyFL3fe+Rp8Ai+76cFi5OQfgm0ZoW+vVG2v91ZFZCn
	OXUVAC+SR36TJyK6U1gWZt1vVnZ252BZ9dK9f4xPc82eOOS+eU78+n9egtgJODq5gI0tM3
	MJTYBcWyAB62OAr9qqY/gWsWl7LTxrqdkjCFawOp52dU7dOv0kRE/KlWtg2ZjvcfIENYq/
	21I7PBvll/jxQTGM1MgiGz1vGKFvBUoKUI9sBqV0tDM3lGdE8yYb0wt+sQT7SgzztIh4ss
	yjGSLG6KAN1LyZEft29b17P4DLxXFZ2vO+D2z2mmU0GllNdAFJElsF9gK7vjHQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692362413;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=/D81kOTt3MVJzxB0LUvEaqOleexI1ASsstJomVVmwJU=;
	b=rjj98mO2xpGWft5vKymWxREn93qrKJQklTParyRcjzHjwZ1g9wW2iuls+9rrAf5nxNhKpk
	OZZi6pova/pU2ncPnFWiRfsuOOlvBZrG2+uejIbxy99W9H2G7cO6s1uLp8rcN0AvfqDY4g
	6LRMAsfHUGXgkCDIuPUcpkEUV+J11N9xzdCXRGbpzSwBMJX4ltP4JKIp5gozQ9kpksH/tY
	a9YVde4opObvulyjC667zBsTXlM/eDBjXuH/1OMzMduch1WIC44DyGTGwWplsX3lHm3sLB
	37W9BPUH6RlsdpdiX1O7xkFO9Oh31y4JinlP/VGLqGkdMGKaWGUbEYJUrZ09mw==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692362413; a=rsa-sha256; cv=none;
	b=kFSzEJxY2d1/m1EVHvDoB1+gUpMNRHzkeHjGUN0/P5alqOfajwTiIFyMp5KKNxj0lhZsH1
	ut0YDoEeKIy6X/cDSEoxf7B8U3Tq3MabyXpGeVjRj7UV8k5zv44EofbxVXMa9EAFgSPPR4
	LYAK3PbLsl/tPXgzQ4CDmo0GF/GwL+SmFCxOAGacFHOLfZew62vrD3KaPS7E7BclnIyUUy
	+79N+gl4O+sBIJ8zklFlmPfKQdSfCxfA/WFq5/eRhn/MM0Hyz/yPVpgtfXKhJe4zfKTHV9
	YU+EcWekwS40/M22FOIrG/SIFKnr0bGkZZCbLvAts/Ha+5WZThUKwk1Lrd8gOA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RS1g10vsTz1M6;
	Fri, 18 Aug 2023 12:40:13 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37ICeDQe056750;
	Fri, 18 Aug 2023 12:40:13 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37ICeD9T056740;
	Fri, 18 Aug 2023 12:40:13 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 12:40:13 GMT
Message-Id: <202308181240.37ICeD9T056740@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Mike Karels <karels@FreeBSD.org>
Subject: git: 4aead44fa14f - stable/13 - md driver compat32: fix
  structure padding for arm, powerpc
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: karels
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 4aead44fa14fd089b8e3eeb48c24c2c14aea8f93
Auto-Submitted: auto-generated

The branch stable/13 has been updated by karels:

URL: https://cgit.FreeBSD.org/src/commit/?id=4aead44fa14fd089b8e3eeb48c24c2c14aea8f93

commit 4aead44fa14fd089b8e3eeb48c24c2c14aea8f93
Author:     Mike Karels <karels@FreeBSD.org>
AuthorDate: 2023-08-08 14:09:03 +0000
Commit:     Mike Karels <karels@FreeBSD.org>
CommitDate: 2023-08-18 12:39:55 +0000

    md driver compat32: fix structure padding for arm, powerpc
    
    Because the 32-bit md_ioctl structure contains 64-bit members, arm
    and powerpc add padding to a multiple of 8.  i386 doesn't do this.
    The md_ioctl32 definition was correct for amd64/i386 without padding,
    but wrong for arm64 and powerpc64.  Make __packed__ conditional on
    __amd64__, and test for the expected size on non-amd64.  Note that
    mdconfig is used in the ATF test suite.  Note, I verified the
    structure size for powerpc, but was unable to test.
    
    Reviewed by:    jrtc27
    Differential Revision:  https://reviews.freebsd.org/D41339
    Discussed with: jhibbits
    
    (cherry picked from commit 58a46cfd751ac726ddca8544bf73a290b0154a57)
---
 sys/dev/md/md.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/sys/dev/md/md.c b/sys/dev/md/md.c
index 52d64d6721cd..6878eb387fda 100644
--- a/sys/dev/md/md.c
+++ b/sys/dev/md/md.c
@@ -146,8 +146,16 @@ struct md_ioctl32 {
 	int		md_fwsectors;
 	uint32_t	md_label;
 	int		md_pad[MDNPAD];
-} __attribute__((__packed__));
+}
+#ifdef __amd64__
+__attribute__((__packed__))
+#endif
+;
+#ifndef __amd64__
+CTASSERT((sizeof(struct md_ioctl32)) == 440);
+#else
 CTASSERT((sizeof(struct md_ioctl32)) == 436);
+#endif
 
 #define	MDIOCATTACH_32	_IOC_NEWTYPE(MDIOCATTACH, struct md_ioctl32)
 #define	MDIOCDETACH_32	_IOC_NEWTYPE(MDIOCDETACH, struct md_ioctl32)

From nobody Fri Aug 18 12:41:17 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RS1hF62Gdz4qSmc;
	Fri, 18 Aug 2023 12:41:17 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RS1hF5TTwz4Ncv;
	Fri, 18 Aug 2023 12:41:17 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692362477;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=FfUoGNuvkozaCESijGNDbZVu//s89Y1bGSuIOthw+To=;
	b=JV7iNXDMewWyNhwYYrlkVefI/rYrmnGuBPKhtK8zbgE278ecbxXqSbm4D8h5zk5GKrBy6z
	WLviH63QwBWBOwXPulSqfI54DbEAqhReA74OmkazM+fy24hcFcR3SmHjV34bESpv9TLI28
	QMMthPjNRKNbWVnlKdM/6jOsKBfxfQGgPJD6Jrjr2kjqDT7YM1gL2dL8Yedx6oLhsEFQA/
	iFaMb1Hgpvnhhj8L77sbwN17i2uEYPNyGVKHWgj8FY72WHf6ENG/kXASNhIvf50K5S+A7l
	tElNSeU2Sv7E0FSkM8b2MSF3N4tP5LGM95OgEMxoJPh1ab/sh/8o6/YsfFbpGA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692362477;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=FfUoGNuvkozaCESijGNDbZVu//s89Y1bGSuIOthw+To=;
	b=Cj2EZxz1q2C+sW4s5dW2limaItu/eju2qh1nvDGCsYCj2wq3sf7A39fspKQJdN3sI0kYkT
	tTujfngYlQ63I71DFYF75ctLguYyalxqYcB96uPjWrRTCmpTJN4pvPIrL1qvgYFa8qKd9j
	0zje9fR1ZqJfluQQXbAFR6yptHW64LV+XID/LyA6UCMJPbC/BpFOfh7qyvirGy2kGmZ+jv
	v5QE3RRhf/Ja28cFlVhDbTup4VnBUz+CITJvHCotIS3GCbTdQv7wBGu7K1qUhfEWV+CZrk
	/sLtul83hrNdFc2HvNSWbsCHLywTNNAZ9sLbdL8kmiNqus+Xcw9fh6iIyxuNJQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692362477; a=rsa-sha256; cv=none;
	b=NLj6CYG9eEwb8N1kh8ry3x95gk778zluD80n7TT3b91/keAinZ7oMi50XAENe0Y2ihNzU0
	x2nWcu6li+OyBaL1z+AUm5KbS1bWN+o01jk/k1u/CLF9+nCfAhAS1BPzjlOrACA40hUvn3
	rd/rx1geMlTS1XxmR7HVmgsshHX4AqpndRuHHgvINgFzwCb3oLUB/TapL2xu9i1UqBKt4A
	auyighhspr6J+Ye+Q0JU+1SRuB1bdlprHJ+6ovwX0XyEhZDduL9ytnGKegWTWtHKXu3wZu
	E4nWex+c7PwrftTChU8EtemznrR5jt7GHV3AB7yQEfJGpAL0Eb3rEt2S3NlbqQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RS1hF4XD0z1qX;
	Fri, 18 Aug 2023 12:41:17 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37ICfHr8064250;
	Fri, 18 Aug 2023 12:41:17 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37ICfHtX064247;
	Fri, 18 Aug 2023 12:41:17 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 12:41:17 GMT
Message-Id: <202308181241.37ICfHtX064247@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Mike Karels <karels@FreeBSD.org>
Subject: git: 55b79ced0048 - stable/12 - md driver compat32: fix
  structure padding for arm, powerpc
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: karels
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/12
X-Git-Reftype: branch
X-Git-Commit: 55b79ced0048e9015053ccfd96cf7f38be49ecbf
Auto-Submitted: auto-generated

The branch stable/12 has been updated by karels:

URL: https://cgit.FreeBSD.org/src/commit/?id=55b79ced0048e9015053ccfd96cf7f38be49ecbf

commit 55b79ced0048e9015053ccfd96cf7f38be49ecbf
Author:     Mike Karels <karels@FreeBSD.org>
AuthorDate: 2023-08-08 14:09:03 +0000
Commit:     Mike Karels <karels@FreeBSD.org>
CommitDate: 2023-08-18 12:41:06 +0000

    md driver compat32: fix structure padding for arm, powerpc
    
    Because the 32-bit md_ioctl structure contains 64-bit members, arm
    and powerpc add padding to a multiple of 8.  i386 doesn't do this.
    The md_ioctl32 definition was correct for amd64/i386 without padding,
    but wrong for arm64 and powerpc64.  Make __packed__ conditional on
    __amd64__, and test for the expected size on non-amd64.  Note that
    mdconfig is used in the ATF test suite.  Note, I verified the
    structure size for powerpc, but was unable to test.
    
    Reviewed by:    jrtc27
    Differential Revision:  https://reviews.freebsd.org/D41339
    Discussed with: jhibbits
    
    (cherry picked from commit 58a46cfd751ac726ddca8544bf73a290b0154a57)
---
 sys/dev/md/md.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/sys/dev/md/md.c b/sys/dev/md/md.c
index 641dff4f45d3..73e3bf578019 100644
--- a/sys/dev/md/md.c
+++ b/sys/dev/md/md.c
@@ -145,8 +145,16 @@ struct md_ioctl32 {
 	int		md_fwsectors;
 	uint32_t	md_label;
 	int		md_pad[MDNPAD];
-} __attribute__((__packed__));
+}
+#ifdef __amd64__
+__attribute__((__packed__))
+#endif
+;
+#ifndef __amd64__
+CTASSERT((sizeof(struct md_ioctl32)) == 440);
+#else
 CTASSERT((sizeof(struct md_ioctl32)) == 436);
+#endif
 
 #define	MDIOCATTACH_32	_IOC_NEWTYPE(MDIOCATTACH, struct md_ioctl32)
 #define	MDIOCDETACH_32	_IOC_NEWTYPE(MDIOCDETACH, struct md_ioctl32)

From nobody Fri Aug 18 14:11:45 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RS3hf0D22z4qZhD;
	Fri, 18 Aug 2023 14:11:46 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RS3hd6nC1z4c6R;
	Fri, 18 Aug 2023 14:11:45 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692367906;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=hI/fjUofkn6+coWGW9JxF2/1WjqroyR0i/DwD+jvs0w=;
	b=Uv8nSFKbEhtcjxtnumxxJdB7bWZYGx+EMgdnAMZ8Dz74+23UlA49+g1z0pQssTP9kFaWIf
	vuxFqDfjJoKxifsfyQ6dZsJnyM0mSByPuMZlMRvwps34yi3X8Jd58rwcJHZ3ZuwiA3ubfn
	LrEYaOdf1fsWVZuUJlmOFQKXD1nkuQEvkFQIWRUdbDtSykEqnc8SZRLU79ZWr6kGESGcjM
	Y/KmYwCxTFwaJsAD40bNpDHBF4pPR46FBJOlZdIY5gAajDnNzc4ZJKbDasTZMLTuCCQ1qA
	AP8DVIHQVHcY2G9twSzuwkMXhBAPfYeyE6zmj2SDXbGnS6x3v+LC6cHy9Qyzxg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692367905;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=hI/fjUofkn6+coWGW9JxF2/1WjqroyR0i/DwD+jvs0w=;
	b=cGH7BUV/1lDupFiR5xDQrS8U6kCayTLFWEhRkPmTBENpbzVJZuVOIrhT91rx2ZCVGaB6BK
	R4b+cSBs52Rrx9MI08j+XY/44TaZ62l9s3tSqFGVAwUoOtRtHPBJCUUV4xWqf7YY3OHsL7
	S7y9SKC7ciT7jfEXV3osUWQwN5GaDCWzsGj396XdIgTRbWP9B7ZYSbrpcQ07pM2fCZR3qN
	71MH95Dm35kRImenx5FJEA9Ac4MluOE3PKDY427CDPY/Yz+K4T9+QTPl+Q++C1CHh0kZkt
	Rv6NyhthMUmOC2/hgdzDL0Y/pJeNx83xscQByNWvI+pYqTllT687GimAw3KDrg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692367906; a=rsa-sha256; cv=none;
	b=FdClEUxPPvlXLdrsm6akTcIU95jYUuZHLbc5k+3/6Ak3ZpUzqbKh6AU6bo+c0aepOnL70e
	6bHnmHvphKjQWuVLFwbeXccpxOSbDtvrRMKyyeIEDH/i2I6l63iooanXsGQLfr9KVqrN7S
	liy0plEm9bhX2JyYEr5pjKZpDsgV1LWu6yG0Dp6cruw4js0USL5VUxGP7PQsKTHA8IvGF2
	jJIgtH8kqse9qfN7YQVwUQrBF+sEGu077emw2gTFKX8e1QCLRSH2Y96nQoSiM0O5kb+SiO
	DQP/S7HOMKWhq6gnm891sGt1eK0hWjmIOLNfdDt4rkJHvq7xFFfex+KRFIvOng==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RS3hd5s7rz3m3;
	Fri, 18 Aug 2023 14:11:45 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37IEBjqW015447;
	Fri, 18 Aug 2023 14:11:45 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37IEBjdS015444;
	Fri, 18 Aug 2023 14:11:45 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 14:11:45 GMT
Message-Id: <202308181411.37IEBjdS015444@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Doug Rabson <dfr@FreeBSD.org>
Subject: git: ab3a78287800 - stable/13 - pkgbase: move libcom_err
  from kerberos to kerberos-lib
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: dfr
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: ab3a78287800f3f8ade899f4c1b6303c7d496117
Auto-Submitted: auto-generated

The branch stable/13 has been updated by dfr:

URL: https://cgit.FreeBSD.org/src/commit/?id=ab3a78287800f3f8ade899f4c1b6303c7d496117

commit ab3a78287800f3f8ade899f4c1b6303c7d496117
Author:     Doug Rabson <dfr@FreeBSD.org>
AuthorDate: 2023-08-09 07:42:16 +0000
Commit:     Doug Rabson <dfr@FreeBSD.org>
CommitDate: 2023-08-18 14:10:23 +0000

    pkgbase: move libcom_err from kerberos to kerberos-lib
    
    This makes it possible to install kerberos-lib (which is used by common
    utilities such as curl) without pulling in the rest of kerberos.
    
    MFC after:      1 week
    
    (cherry picked from commit 54cfeb848468b8086fd046bdb94a0ed30f6dec15)
---
 lib/libcom_err/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/libcom_err/Makefile b/lib/libcom_err/Makefile
index 4bb69614453e..fcc060a615fb 100644
--- a/lib/libcom_err/Makefile
+++ b/lib/libcom_err/Makefile
@@ -1,6 +1,6 @@
 # $FreeBSD$
 
-PACKAGE=	kerberos
+PACKAGE=	kerberos-lib
 
 LIB=	com_err
 SRCS=	com_err.c error.c

From nobody Fri Aug 18 15:42:16 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RS5j52GNpz4qhFF;
	Fri, 18 Aug 2023 15:42:17 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RS5j51clXz3HMq;
	Fri, 18 Aug 2023 15:42:17 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692373337;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=+3sWDiKdqsHkqmNOlSBPRc2trijc+yFLxUHLNNVXVrc=;
	b=ou5XWSZNdZK6AKLyzhjocgSk0KRjO8MSibSXDe6PVXU8/uA3zxWmcmzLSV8uEJNl00pd4s
	WYeIr2QeV+9/8SksPXnYAfE65nvzX3sqpvdUTYZDSA1TwaUDrRPICYLfOxgw+2gcEmXJt/
	1QA+6PKRff1fJf9hRt27+JZjijmJpHBkMfwAduDUSVJlmhTkvGsoI/GD99D2OxxeOxXVSg
	Uv/kJxE17JfcUhpjft92JPFT7qsNNTDyh59KUkHdT3ldVt3rIcJi/O76QVsWKGsufdPhZ0
	x8MiXIqqUIXHu85AqC/fAmfbrdYiVQXuqoDTpqDes/x4fln4t/6juBWZ8j0t3w==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692373337;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=+3sWDiKdqsHkqmNOlSBPRc2trijc+yFLxUHLNNVXVrc=;
	b=HiqSPh/e16TgGLCyB1p4TLDUhe6TCou2RhFiASH+In55OTKhuZOzZgQkyemmWiwdEiSvZK
	LqanPfnZdLDDaDCkXGPLlonSnndiqUpHk94EI4HdOt9SHWFOSOg2XRx9O77HwsVmVG28Bl
	Ftk7nME25uF63lkTQ2i42HoDwVW9KyiL3acKH5ibzkvM9crB/mJZsKd7H99gAxM/uTV/Zo
	TKhkMto4ZmIX80hvFp7uo6kTGe/2YFsnkFrvZufM4i4bq9wWyR8Od8y9sbdE4mu1fV9gUd
	E85PWce0lGssx3D5ffyYq1NNiTzboPnhoZgaxZPabXkCvtzckyZWTSYki6hKnQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692373337; a=rsa-sha256; cv=none;
	b=lMYv3oNnlkUPFQ40eHW0LPON8JUlDscUjADR6cfW5y4HkyRgBtAH+48MtfP5ZgYa5jQp++
	U6qB0DwKFl+8e6g3yovQWTLegNmWL/eH24C6zucj3nQektkD7IiXn0ksGjxctVKqTa8iOf
	d7URagKk8rbyV4DTfjTKghUv44dgOu7tBJ1Orgr1BCnTf1lAnsRszUTwfpQeCJHw/BFLby
	NjALRGhcUMWuMYhTG4TK2H5tn9bj5zvzaT9Gk6B2DeYSESvKO9tRHm6WSGwn2DFnw8qmdz
	6Wu5F9EzB1LLavVBKc22VRv6pqvfX+Mr4ut6V6lMnT5svMmzM/szExL08C4gdA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RS5j50gvQz5yT;
	Fri, 18 Aug 2023 15:42:17 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37IFgH2t066329;
	Fri, 18 Aug 2023 15:42:17 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37IFgGMt066326;
	Fri, 18 Aug 2023 15:42:16 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 15:42:16 GMT
Message-Id: <202308181542.37IFgGMt066326@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= <des@FreeBSD.org>
Subject: git: 7c35f64b635e - stable/13 - ldns: Upgrade to 1.8.3.
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: des
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 7c35f64b635e954b3391937fa5cfc72b6165b605
Auto-Submitted: auto-generated

The branch stable/13 has been updated by des:

URL: https://cgit.FreeBSD.org/src/commit/?id=7c35f64b635e954b3391937fa5cfc72b6165b605

commit 7c35f64b635e954b3391937fa5cfc72b6165b605
Author:     Dag-Erling Smørgrav <des@FreeBSD.org>
AuthorDate: 2023-05-24 15:50:18 +0000
Commit:     Dag-Erling Smørgrav <des@FreeBSD.org>
CommitDate: 2023-08-18 15:29:28 +0000

    ldns: Upgrade to 1.8.3.
    
    Merge commit 'cf3e3d5bd0a1fae39c74c7db5a4e8b10732d0766'
    
    Reviewed by:    emaste
    Differential Revision:  https://reviews.freebsd.org/D40226
    
    (cherry picked from commit 5afab0e5e56fe90a378fb57249600e7924e1cab2)
    
    ldns: Remove a set but unused variable.
    
    Reviewed by:    des
    Differential Revision:  https://reviews.freebsd.org/D40695
    
    (cherry picked from commit 2e1665ff345498c3f99ffd07b6e90669172d2df2)
---
 contrib/ldns/Changelog                             |  195 +-
 contrib/ldns/Makefile.in                           |  622 +-
 contrib/ldns/README                                |    5 +-
 contrib/ldns/README-Travis.md                      |  274 +
 contrib/ldns/aclocal.m4                            |    4 +-
 contrib/ldns/acx_nlnetlabs.m4                      |  126 +-
 contrib/ldns/ax_pkg_swig.m4                        |   14 +-
 contrib/ldns/ax_python_devel.m4                    |   39 +-
 contrib/ldns/buffer.c                              |    2 +-
 contrib/ldns/config.guess                          | 1646 ++--
 contrib/ldns/config.sub                            | 2649 +++---
 contrib/ldns/configure                             | 9584 ++++++++++++--------
 contrib/ldns/configure.ac                          |  256 +-
 contrib/ldns/dane.c                                |   65 +-
 contrib/ldns/dname.c                               |    2 +-
 contrib/ldns/dnssec.c                              |   91 +-
 contrib/ldns/dnssec_sign.c                         |  318 +-
 contrib/ldns/dnssec_verify.c                       |  208 +-
 contrib/ldns/dnssec_zone.c                         |  850 +-
 contrib/ldns/drill/ChangeLog.22-nov-2005           |    6 +-
 contrib/ldns/drill/Makefile.in                     |  119 -
 contrib/ldns/drill/chasetrace.c                    |    4 +-
 contrib/ldns/drill/config.h                        |  294 -
 contrib/ldns/drill/config.h.in                     |  293 -
 contrib/ldns/drill/configure                       | 6714 --------------
 contrib/ldns/drill/configure.ac                    |  276 -
 contrib/ldns/drill/dnssec.c                        |   16 +-
 contrib/ldns/drill/drill.1.in                      |   13 +-
 contrib/ldns/drill/drill.c                         |  221 +-
 contrib/ldns/drill/drill.h                         |    1 -
 contrib/ldns/drill/error.c                         |    2 +-
 contrib/ldns/drill/securetrace.c                   |   56 +-
 contrib/ldns/duration.c                            |  143 +-
 contrib/ldns/edns.c                                |  436 +
 contrib/ldns/error.c                               |   31 +-
 contrib/ldns/freebsd-configure.sh                  |    9 +-
 contrib/ldns/host2str.c                            | 1247 ++-
 contrib/ldns/host2wire.c                           |   63 +-
 contrib/ldns/install-sh                            |  181 +-
 contrib/ldns/keys.c                                |  253 +-
 contrib/ldns/ldns/buffer.h                         |   31 +
 contrib/ldns/ldns/common.h                         |    3 +
 contrib/ldns/ldns/common.h.in                      |    3 +
 contrib/ldns/ldns/config.h                         |  209 +-
 contrib/ldns/ldns/config.h.in                      |  199 +-
 contrib/ldns/ldns/dane.h                           |    4 +-
 contrib/ldns/ldns/dname.h                          |    2 +-
 contrib/ldns/ldns/dnssec.h                         |   52 +-
 contrib/ldns/ldns/dnssec_sign.h                    |   16 +-
 contrib/ldns/ldns/dnssec_verify.h                  |    6 +-
 contrib/ldns/ldns/dnssec_zone.h                    |   14 +-
 contrib/ldns/ldns/edns.h                           |  272 +
 contrib/ldns/ldns/error.h                          |   14 +-
 contrib/ldns/ldns/host2str.h                       |   38 +-
 contrib/ldns/ldns/host2wire.h                      |   15 +-
 contrib/ldns/ldns/internal.h                       |   14 +
 contrib/ldns/ldns/keys.h                           |   60 +-
 contrib/ldns/ldns/ldns.h                           |    1 +
 contrib/ldns/ldns/net.h                            |   63 +-
 contrib/ldns/ldns/net.h.in                         |   63 +-
 contrib/ldns/ldns/packet.h                         |   49 +-
 contrib/ldns/ldns/parse.h                          |   38 +-
 contrib/ldns/ldns/radix.h                          |    4 +-
 contrib/ldns/ldns/rbtree.h                         |    2 +-
 contrib/ldns/ldns/rdata.h                          |   28 +-
 contrib/ldns/ldns/resolver.h                       |    6 +-
 contrib/ldns/ldns/rr.h                             |   21 +-
 contrib/ldns/ldns/rr_functions.h                   |    4 +-
 contrib/ldns/ldns/sha1.h                           |    9 +-
 contrib/ldns/ldns/sha2.h                           |   27 +-
 contrib/ldns/ldns/str2host.h                       |   90 +-
 contrib/ldns/ldns/update.h                         |    2 +-
 contrib/ldns/ldns/util.h                           |   13 +-
 contrib/ldns/ldns/util.h.in                        |    9 +-
 contrib/ldns/ldns/wire2host.h                      |    8 +-
 contrib/ldns/ldns/zone.h                           |    6 +-
 contrib/ldns/{libdns.doxygen => libdns.doxygen.in} |  415 +-
 contrib/ldns/ltmain.sh                             |  219 +-
 contrib/ldns/m4/ax_config_feature.m4               |    6 +-
 contrib/ldns/m4/ax_have_poll.m4                    |    4 +-
 contrib/ldns/m4/libtool.m4                         |   31 +-
 contrib/ldns/makewin.sh                            |  263 +
 contrib/ldns/net.c                                 |  108 +-
 contrib/ldns/packaging/fedora/ldns.spec            |    4 +-
 contrib/ldns/packaging/ldns-config.in              |   17 +-
 contrib/ldns/packet.c                              |  114 +-
 contrib/ldns/parse.c                               |   97 +-
 contrib/ldns/radix.c                               |    5 +-
 contrib/ldns/rbtree.c                              |    2 +-
 contrib/ldns/rdata.c                               |    8 +-
 contrib/ldns/resolver.c                            |   22 +-
 contrib/ldns/rr.c                                  |  200 +-
 contrib/ldns/rr_functions.c                        |    8 +-
 contrib/ldns/sha1.c                                |    3 +-
 contrib/ldns/sha2.c                                |   21 +-
 contrib/ldns/str2host.c                            |  901 +-
 contrib/ldns/tsig.c                                |   16 +-
 contrib/ldns/util.c                                |   34 +-
 contrib/ldns/wire2host.c                           |   10 +-
 contrib/ldns/zone.c                                |   77 +-
 lib/libldns/Makefile                               |   11 +-
 usr.bin/drill/Makefile                             |    4 +-
 102 files changed, 15589 insertions(+), 15734 deletions(-)

diff --git a/contrib/ldns/Changelog b/contrib/ldns/Changelog
index 0bd3658e767d..aba41c88c5c8 100644
--- a/contrib/ldns/Changelog
+++ b/contrib/ldns/Changelog
@@ -1,3 +1,166 @@
+1.8.3	2022-08-15
+	* bugfix #183: Assertion failure with OPT record without rdata.
+	  This caused packet creation with only a DO bit (for DNSSEC OK)
+	  to crash. Thanks Anand Buddhdev and others for reporting this
+	  so quickly.
+	* Fix for syntax error in pyldns
+
+1.8.2	2022-08-12
+	* bugfix #147: Allow for tabs in whitespace before quoted rdata
+	  fields. Thanks Felipe Gasper
+	* bugfix #149: Add some missing [out] annotations to doxygen
+	  parameters. Thanks aldot.
+	* Fix build error on Solaris 10 with inet_ntop redeclaration error.
+	* Fix -U flag with ldns-signzone. Thanks Ulrich and Jonathan
+	* Enable compile of SVCB and HTTPS support by default.
+	* bugfix #179: Free line memory even if zone file parsing fails
+	  Thanks Claudius Zingerli
+	* bugfix #166: Grow buffer when writing chars and fixed size
+	  strings when converting to presentation format, preventing
+	  potential assersion errors.
+	* bugfix #46: Print network errors when secure tracing.
+	  Thanks reedjc
+	* EDNS0 Option handling and conversion into presentation format.
+	* bugfix #145: ldns-verify-zone should not call occluded records
+	  glue. Thanks Habbie
+
+1.8.1	2021-12-03
+	* bugfix #146: ldns-1.7.1 had soname 3.0, so ldns-1.8.x soname
+	  needs to larger. Thanks Leah Neukirchen & Felipe Gasper
+	* Undo PR#123 fix ldns.pc installation when building out-of-source
+	  Thanks Axel Xu
+
+1.8.0	2021-11-26
+	* bugfix #38: Print "line" before line number when printing
+	  zone parse errors. Thanks Petr Špaček.
+	* bugfix: Revert unused variables in ldns-config removal patch.
+	* bugfix #50: heap Out-of-bound Read vulnerability in
+	  rr_frm_str_internal reported by pokerfacett.
+	* bugfix #51: Heap Out-of-bound Read vulnerability in
+	  ldns_nsec3_salt_data reported by pokerfacett.
+	* Fix memory leak in examples/ldns-testns handle_tcp routine.
+	* Detect fixed time memory compare for openssl 0.9.8.
+	* Fix compile warning by variable initialisation for older gcc.
+	* Fix #92: ldns-testns.c:429:15: error: 'fork' is unavailable: not
+	  available on tvOS.
+	* Fix for #93: fix packaging/libldns.pc Makefile rule.
+	* ZONEMD support in ldns-signzone and ldns-verify-zone
+	* ldns-testns can answer several queries over one tcp connection,
+	  if they arrive within 100msec of each other.
+	* Fix so that ldns-testns does not leak sockets if the read fails.
+	* SVCB and HTTPS draft rrtypes.
+	  Enable with --enable-rrtype-svcb-https.
+	* bugfix #117: Assertion failure with DNSSEC validating of 
+	  non existence of RR types at the root.  Thanks ZjYwMj
+	* Set NSEC(3) ttls to the minimum of the MINIMUM field of the SOA
+	  record and the TTL of the SOA itself. draft-ietf-dnsop-nsec-ttl
+	* bugfix #119: Let example tools read longer RR's than
+	  LDNS_MAX_LINELEN
+	* Add SVCPARAMS to python ldns_rdf_type2str function.
+	* PR #134 Miscellaneous spelling fixes. Thanks jsoref!
+	* Fix that ldns-read-zone and ldns_zone_new_frm_fp_l properly return
+	  the $INCLUDE not implemented error.
+	* Fix that ldns-read-zone and ldns_zone_new_frm_fp_l count the line
+	  number for an empty line after a comment.
+	* Fix #135: Fix compile with OpenSSL-3.0.0-beta2.
+	* PR #107: Added ldns_pkt2buffer_wire_compress() to make dname 
+	  compression optional when converting packets to wire format.
+	  Thanks Eli Lindsey
+	* Option to ldns-keygen to create symlinks with known names 
+	  (i.e. without the key id) to the created files.
+	  Thanks Andreas Schulze
+	* Fix #121: Correct handling of centimetres by LOC parser.
+	  Thanks Felipe Gasper
+	* PR #126: Link with libldns.la in Makefile.in.
+	  Thanks orbea
+	* PR #127: Added option -Q to drill to give short answer.
+	  Thanks niknah
+	* PR #133: Update m4 files for python modules.
+	  Thanks Petr Menšík
+	* Bufix CAA value fields may be empty: Thanks Robert Mortimer
+	* PR #108: Fix for ldns-compare-zones net detecting when first zone
+	  has a RRset that shrinks from two to one RRs, or grows from one
+	  to two RRs. Thanks Emilio Caballero
+	* Fix #131: Drill sig chasing breaks with gcc-11 and
+	  strict-aliasing. Thanks Stanislav Levin
+	* Fix #130: Unless $TLL is defined, ttl defaults to the last
+	  explicitly stated value. Thanks Benno
+	* Fix #48: Missing UNSIGNED legend with drill. Thanks reedjc
+	* Fix #143: EVP_PKEY_base_id became a macro with OpenSSL > 3.0
+	  Thanks Daniel J. Luke
+	* Let ldns-signzone warn for high NSEC3 iteration counts.
+	  Thanks Andreas Schulze
+
+1.7.1	2019-07-26
+	* bugfix: Manage verification paths for OpenSSL >= 1.1.0
+	  Thanks Marco Davids
+	* bugfix #4106: find the SDK on MacOS X <= 10.6
+	  Thanks Bill Cole
+	* bugfix #4155: ldns-config contains never used variables
+	  Thanks Petr Menšík
+	* bugfix #4221: drill -x crashes with malformed IPv4 address 
+	  Thanks Oleksandr Tymoshenko
+	* bugfix #3437: CDS & CDNSKEY RRsets should be signed with the KSK
+	  Thanks Tony Finch
+	* bugfix #1566, #1568, #1569, #1570: Potential NULL Dereferences
+	  Thanks Bill Parker
+	* bugfix #1260: Anticipate strchr returning NULL on unfound char
+	  Thanks Stephan Zeisberg
+	* bugfix #1257: Free after reallocing to 0 size (CVE-2017-1000232)
+	  Thanks Stephan Zeisberg
+	* bugfix #1256: Check parse limit before t increment (CVE-2017-1000231)
+	  Thanks Stephan Zeisberg
+	* bugfix #1245: Only one signature per RRset needs to be valid with
+	  ldns-verify-zone.  Thanks Emil Natan.
+	* ldns-notify can use all supported hash algorithms with -y.
+	* bugfix #1209: make install ldns.pc file
+	  Thanks Oleksandr Natalenko
+	* bugfix #1218: Only chase DS if signer is parent of owner.
+	  Thanks Emil Natan
+	* bugfix #617: Retry WKS service and protocol names lower case.
+	  Thanks Siali Yan
+	* Spelling errors in binaries and man pages
+	  Thanks Andreas Schulze
+	* removed duplicate condition in ldns_udp_send_query.
+	* ldns_wire2pkt: fix null pointer dereference if pkt allocation fails
+	  and fix memory leak with more EDNS sections
+	  Thanks Jan Vcelak
+	* bugfix #1399: ldns_pkt2wire() Python binding is broken.
+	  Thanks James Raftery
+	* ED25519 and ED448 support. Default is to autodetect support in
+	  OpenSSL.  Disable with --disable-ed25519 and --disable-ed448.
+	* ldns-notify: can have IPv6 address as argument.
+	* Fix time sensitive TSIG compare vulnerability.
+	* Fix that ldns-testns ignores sigpipe.
+	* Fix that ldns-notify sets the query RR as question RR, this
+	  removes the wrong TTL and 0 rdata from the packet printout.
+	* Allow -T flag to be used together with drill -x
+	* Python bindings compile with swig 4.0
+	  Thanks Jitka Plesníková
+	* bugfix #4248: drill -DT fails for CNAME domain
+	  Thanks Thom Wiggers
+	* bugfix #4214: Various fixes and leaks found by coverity.
+	  Thanks Petr Menšík 
+	* Feature #3394: An -I option to ldns-notify to specify a source
+	  IP address to send to notify from.  Thanks Geert Hendrickx
+	* Bugfix #279: New API functions ldns_udp_connect2,
+	  ldns_tcp_connect2, ldns_udp_bgsend2 and ldns_tcp_bgsend2,
+	  that return -1 on failure and allow socket number 0
+	  to be returned too.  Thanks Joerg Sonnenberger
+	* Bugfix #1447: More verbose reporting of chasing problems with
+	  ldns-verify-zone.  Thanks Stephane Guedon
+	* OpenSSL engine support with ldns-signzone.
+	  See also https://penzin.net/ldns-signzone/
+	  Many thanks Vadim Penzin.
+	* Various improvements found with shellcheck.
+	  Thanks Jeffrey Walton
+	* PR #36 Update manpage of ldns-notify to mention algorithm
+	  support with TSIG.  Thanks Anand Buddhdev
+	* Compile warnings with signed char input to to_lower()
+	  and is_digit() with NetBSD.  Thanks HÃ¥vard Eidnes
+	* Missing Makefile.PL in DNS-LDNS perl module contribution.
+	  Thanks Jaap Akkerhuis
+
 1.7.0	2016-12-20
 	* Fix lookup of relative names in ldns_resolver_search.
 	* bugfix #548: Double free for answers > 4096 in ldns_resolver_send_pkt
@@ -98,7 +261,7 @@
 	  Thanks William King
 	* Use OpenSSL DANE functions for verification (unless explicitly
 	  disabled with --disable-dane-ta-usage).
-	* Bumb .so version
+	* Bump .so version
 	* Include OPENPGPKEY RR type by default
 	* rdata processing for SMIMEA RR type
 	* Fix crash in displaying TLSA RR's.
@@ -168,7 +331,7 @@
 	* bugfix #505: Manpage and usage output fixes (Thanks Tomas Hozza)
 	* Adjust ldns_sha1() so that the input data is not modified (Thanks
 	  Marc Buijsman)
-	* Messages to stderr are now off by default and can be reenabled with
+	* Messages to stderr are now off by default and can be re-enabled with
 	  the --enable-stderr-msgs configure option.
 
 1.6.16	2012-11-13
@@ -197,7 +360,7 @@
 	  in sync.
 	* Let ldns_pkt_push_rr now return false on (memory) errors.
 	* Make buffer_export comply to documentation and fix buffer2str
-	* Various improvements and fixes of pyldns from Katel Slany
+	* Various improvements and fixes of pyldns from Karel Slany
 	  now documented in their own Changelog.
 	* bugfix: Make ldns_resolver_pop_nameserver clear the array when
 	  there was only one.
@@ -236,7 +399,7 @@
 	* bugfix #433: Allocate rdf using ldns_rdf_new in ldns_dname_label
 	* bugfix #432: Use LDNS_MALLOC & LDNS_FREE i.s.o. malloc & free
 	* bugfix #431: Added error message for LDNS_STATUS_INVALID_B32_EXT
-	* bugfix #427: Explicitely link ssl with the programs that use it.
+	* bugfix #427: Explicitly link ssl with the programs that use it.
 	* Fix reading \DDD: Error on values that are outside range (>255).
 	* bugfix #429: fix doxyparse.pl fails on NetBSD because specified
 	  path to perl.
@@ -300,7 +463,7 @@
 	* Update of libdns.vim (thanks Miek Gieben)
 	* Added the ldnsx Python module to our contrib section, which adds even
 	  more pythonisticism to the usage of ldns with  Python. (Many thanks
-	  to Christpher Olah and Paul Wouters)
+	  to Christopher Olah and Paul Wouters)
 	  The ldnsx module is automatically installed when --with-pyldns is
 	  used with configuring, but may explicitly be excluded with the
 	  --without-pyldnsx option to configure.
@@ -328,7 +491,7 @@
 	* bugfix #380: Minimizing effect of discrepancies in sizeof(bool) at
 	  build time and when used.
 	* bugfix #383: Fix detection of empty nonterminals of multiple labels.
-	* Fixed the ommission of rrsets in nsec(3)s and rrsigs to all occluded
+	* Fixed the omission of rrsets in nsec(3)s and rrsigs to all occluded
 	  names (in stead of just the ones that contain glue only) and all
 	  occluded records on the delegation points (in stead of just the glue).
 	* Clarify the operation of ldns_dnssec_mark_glue and the usage of
@@ -511,7 +674,7 @@
 	* --enable-gost : use the GOST algorithm (experimental).
 	* Added some missing options to drill manpage
 	* Some fixes to --without-ssl option
-	* Fixed quote parsing withing strings
+	* Fixed quote parsing within strings
 	* Bitmask fix in EDNS handling
 	* Fixed non-fqdn domain name completion for rdata field domain
 	  names of length 1
@@ -618,7 +781,7 @@
 	  from Shane Kerr, bug id 188)
 	* zone.c memory leaks on error and allocation checks fixed (patch
 	from Shane Kerr, bug id 189)
-	* ldns-zplit output and error messages fixed (patch from Shane Kerr,
+	* ldns-zsplit output and error messages fixed (patch from Shane Kerr,
 	  bug id 190)
 	* Fixed potential buffer overflow in ldns_str2rdf_dname
 	* Signing code no longer signs delegation NS rrsets
@@ -647,7 +810,7 @@
 	* DLV RR type added
 	* TCP fallback system has been improved
 	* HMAC-SHA256 TSIG support has been added.
-	* TTLS are now correcly set in NSEC(3) records when signing zones
+	* TTLS are now correctly set in NSEC(3) records when signing zones
 
 	EXAMPLE TOOLS:
 	* New example: ldns-revoke to revoke DNSKEYs according to RFC5011
@@ -722,7 +885,7 @@
 28 Nov 2007 1.2.2:
 	* Added support for HMAC-MD5 keys in generator
 	* Added a new example tool (written by Ondrej Sury): ldns-compare-zones
-	* ldns-keygen now checks key sizes for rfc conformancy
+	* ldns-keygen now checks key sizes for rfc conformance
 	* ldns-signzone outputs SSL error if present
 	* Fixed manpages (thanks to Ondrej Sury)
 	* Fixed Makefile for -j <x>
@@ -800,7 +963,7 @@
 	* -r was killed in favor of -o <header bit mnemonic> which
 	  allows for a header bits setting (and maybe more in the
 	  future)
-	* DNSSEC is never automaticaly set, even when you query
+	* DNSSEC is never automatically set, even when you query
 	  for DNSKEY/RRSIG or DS.
 	* Implement a crude RTT check, it now distinguishes between
 	  reachable and unreachable.
@@ -812,7 +975,7 @@
 	* ldns-dpa was added to the examples - this is the Dns Packet
 	  Analyzer tool.
 	* ldnsd - as very, very simple nameserver impl.
-	* ldns-zsplit - split zones for parrallel signing
+	* ldns-zsplit - split zones for parallel signing
 	* ldns-zcat - cat split zones back together
 	* ldns-keyfetcher - Fetches DNSKEY records with a few (non-strong,
 	  non-DNSSEC) anti-spoofing techniques.
@@ -831,7 +994,7 @@
 	API:
 	Changed:
 	* renamed ldns/dns.h to ldns/ldns.h
-	* ldns_rr_new_frm_str() is extented with an extra variable which
+	* ldns_rr_new_frm_str() is extended with an extra variable which
 	  in common use may be NULL. This trickles through to:
 	  o ldns_rr_new_frm_fp
 	  o ldns_rr_new_frm_fp_l
@@ -872,7 +1035,7 @@
 	* char *_when was removed from the ldns_pkt structure
 
 18 Oct 2005: 1.0.0: ldns-team
-	* Commited a patch from HÃ¥kan Olsson
+	* Committed a patch from HÃ¥kan Olsson
 	* Added UPDATE support (Jakob Schlyter and HÃ¥kan Olsson)
 	* License change: ldns is now BSD licensed
 	* ldns now depends on SSL
@@ -905,7 +1068,7 @@
 13 Jun 2005: 0.65: ldns-team
 	* Repository is online at:
 	  http://www.nlnetlabs.nl/ldns/svn/
-	* Apply reference copying throuhgout ldns, except in 2
+	* Apply reference copying throughout ldns, except in 2
 	  places in the ldns_resolver structure (._domain and
 	 ._nameservers)
 	* Usual array of bugfixes
@@ -914,7 +1077,7 @@
 
 23 May 2005: 0.60: ldns-team
 	* Removed config.h from the header installed files
-	  (you're not supposed to include that in a libary)
+	  (you're not supposed to include that in a library)
 	* Further tweaking
 	  - DNSSEC signing/verification works
 	  - Assorted bug fixes and tweaks (memory management)
diff --git a/contrib/ldns/Makefile.in b/contrib/ldns/Makefile.in
index 04f683bf1197..57957d0844d3 100644
--- a/contrib/ldns/Makefile.in
+++ b/contrib/ldns/Makefile.in
@@ -40,15 +40,29 @@ edit = sed \
 # override $U variable which is used by autotools for deansification (for
 # K&R C compilers), but causes problems if $U is defined in the env).
 U=
+
+# set all of the tools due to cross-compiles. libtool uses most of them.
+# https://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html
 CC 		= @CC@
+CXX		= @CXX@
+CPP		= @CPP@
+LD 		= @LD@
+AS 		= @AS@
+AR 		= @AR@
+RANLIB	= @RANLIB@
+STRIP	= @STRIP@
+
+# Unbound project specific flags
 CFLAGS		= @CFLAGS@
 CPPFLAGS	= -I. -I$(srcdir) @CPPFLAGS@ @DEFS@ -DLDNS_TRUST_ANCHOR_FILE="\"$(LDNS_TRUST_ANCHOR_FILE)\""
+ARFLAGS		= @ARFLAGS@
 LDFLAGS		= @LDFLAGS@
+
 LIBS 		= @LIBS@
 LIBOBJDIR	= compat/
 LIBOBJS		= @LIBOBJS@
 PYTHON_CPPFLAGS	= @PYTHON_CPPFLAGS@
-PYTHON_LDFLAGS	= @PYTHON_LDFLAGS@
+PYTHON_LIBS	= @PYTHON_LIBS@
 PYTHON_X_CFLAGS = @PYTHON_X_CFLAGS@
 LIBSSL_CPPFLAGS = @LIBSSL_CPPFLAGS@
 LIBSSL_LDFLAGS  = @LIBSSL_LDFLAGS@
@@ -72,15 +86,15 @@ LINTFLAGS       += -D"__BEGIN_DECLS=" -D"__ssize_t=ssize_t" -D"__intptr_t=intptr
 LINTFLAGS       += -D"_RuneLocale=int"
 DEPFLAG		= @DEPFLAG@
 
-INSTALL		= $(srcdir)/install-sh 
+INSTALL		= $(srcdir)/install-sh
 
 LIBLOBJS	= $(LIBOBJS:.o=.lo)
-LDNS_LOBJS	= buffer.lo dane.lo dname.lo dnssec.lo dnssec_sign.lo dnssec_verify.lo dnssec_zone.lo duration.lo error.lo higher.lo host2str.lo host2wire.lo keys.lo net.lo packet.lo parse.lo radix.lo rbtree.lo rdata.lo resolver.lo rr.lo rr_functions.lo sha1.lo sha2.lo str2host.lo tsig.lo update.lo util.lo wire2host.lo zone.lo 
+LDNS_LOBJS	= buffer.lo dane.lo dname.lo dnssec.lo dnssec_sign.lo dnssec_verify.lo dnssec_zone.lo duration.lo error.lo higher.lo host2str.lo host2wire.lo keys.lo net.lo packet.lo parse.lo radix.lo rbtree.lo rdata.lo resolver.lo rr.lo rr_functions.lo sha1.lo sha2.lo str2host.lo tsig.lo update.lo util.lo wire2host.lo zone.lo edns.lo
 LDNS_LOBJS_EX	= ^linktest\.c$$
 LDNS_ALL_LOBJS	= $(LDNS_LOBJS) $(LIBLOBJS)
 LIB		= libldns.la
 
-LDNS_HEADERS	= buffer.h dane.h dname.h dnssec.h dnssec_sign.h dnssec_verify.h dnssec_zone.h duration.h error.h higher.h host2str.h host2wire.h keys.h ldns.h packet.h parse.h radix.h rbtree.h rdata.h resolver.h rr_functions.h rr.h sha1.h sha2.h str2host.h tsig.h update.h wire2host.h zone.h 
+LDNS_HEADERS	= buffer.h dane.h dname.h dnssec.h dnssec_sign.h dnssec_verify.h dnssec_zone.h duration.h error.h higher.h host2str.h host2wire.h keys.h ldns.h packet.h parse.h radix.h rbtree.h rdata.h resolver.h rr_functions.h rr.h sha1.h sha2.h str2host.h tsig.h update.h wire2host.h zone.h edns.h
 LDNS_HEADERS_EX	= ^config\.h|common\.h|util\.h|net\.h$$
 LDNS_HEADERS_GEN= common.h util.h net.h
 
@@ -89,8 +103,8 @@ PYLDNS_I_FILES	= $(pywrapdir)/file_py3.i $(pywrapdir)/ldns_buffer.i $(pywrapdir)
 DRILL_LOBJS	= drill/chasetrace.lo drill/dnssec.lo drill/drill.lo drill/drill_util.lo drill/error.lo drill/root.lo drill/securetrace.lo drill/work.lo
 
 EXAMPLE_LOBJS	= examples/ldns-chaos.lo examples/ldns-compare-zones.lo examples/ldns-dane.lo examples/ldnsd.lo examples/ldns-dpa.lo examples/ldns-gen-zone.lo examples/ldns-key2ds.lo examples/ldns-keyfetcher.lo examples/ldns-keygen.lo examples/ldns-mx.lo examples/ldns-notify.lo examples/ldns-nsec3-hash.lo examples/ldns-read-zone.lo examples/ldns-resolver.lo examples/ldns-revoke.lo examples/ldns-rrsig.lo examples/ldns-signzone.lo examples/ldns-test-edns.lo examples/ldns-testns.lo examples/ldns-testpkts.lo examples/ldns-update.lo examples/ldns-verify-zone.lo examples/ldns-version.lo examples/ldns-walk.lo examples/ldns-zcat.lo examples/ldns-zsplit.lo
-EXAMPLE_PROGS	= examples/ldns-chaos examples/ldns-compare-zones examples/ldnsd examples/ldns-gen-zone examples/ldns-key2ds examples/ldns-keyfetcher examples/ldns-keygen examples/ldns-mx examples/ldns-notify examples/ldns-read-zone examples/ldns-resolver examples/ldns-rrsig examples/ldns-test-edns examples/ldns-update examples/ldns-version examples/ldns-walk examples/ldns-zcat examples/ldns-zsplit 
-EX_PROGS_BASENM	= ldns-chaos ldns-compare-zones ldns-dane ldnsd ldns-dpa ldns-gen-zone ldns-key2ds ldns-keyfetcher ldns-keygen ldns-mx ldns-notify ldns-nsec3-hash ldns-read-zone ldns-resolver ldns-revoke ldns-rrsig ldns-signzone ldns-test-edns ldns-testns ldns-testpkts ldns-update ldns-verify-zone ldns-version ldns-walk ldns-zcat ldns-zsplit 
+EXAMPLE_PROGS	= examples/ldns-chaos examples/ldns-compare-zones examples/ldnsd examples/ldns-gen-zone examples/ldns-key2ds examples/ldns-keyfetcher examples/ldns-keygen examples/ldns-mx examples/ldns-notify examples/ldns-read-zone examples/ldns-resolver examples/ldns-rrsig examples/ldns-test-edns examples/ldns-update examples/ldns-version examples/ldns-walk examples/ldns-zcat examples/ldns-zsplit
+EX_PROGS_BASENM	= ldns-chaos ldns-compare-zones ldns-dane ldnsd ldns-dpa ldns-gen-zone ldns-key2ds ldns-keyfetcher ldns-keygen ldns-mx ldns-notify ldns-nsec3-hash ldns-read-zone ldns-resolver ldns-revoke ldns-rrsig ldns-signzone ldns-test-edns ldns-testns ldns-testpkts ldns-update ldns-verify-zone ldns-version ldns-walk ldns-zcat ldns-zsplit
 EXAMPLE_PROGS_EX= ^examples/ldns-testpkts\.c|examples/ldns-testns\.c|examples/ldns-dane\.c|examples/ldns-dpa\.c|examples/ldns-nsec3-hash\.c|examples/ldns-revoke\.c|examples/ldns-signzone\.c|examples/ldns-verify-zone\.c$$
 TESTNS		= examples/ldns-testns
 TESTNS_LOBJS	= examples/ldns-testns.lo examples/ldns-testpkts.lo
@@ -118,6 +132,10 @@ all:	setup-builddir lib linktest manpages @P5_DNS_LDNS@ @PYLDNS@ @DRILL@ @EXAMPL
 .c.lo:
 	$(COMP_LIB) $(LIBSSL_CPPFLAGS) -c $< -o $@
 
+# Need libtool compile
+.c.o:
+	$(COMP_LIB) $(LIBSSL_CPPFLAGS) -c $< -o $@
+
 $(LDNS_LOBJS) $(LIBLOBJS) $(DRILL_LOBJS) $(EXAMPLE_LOBJS):
 	$(COMP_LIB) $(LIBSSL_CPPFLAGS) -c $(srcdir)/$(@:.lo=.c) -o $@
 
@@ -130,14 +148,16 @@ setup-builddir:
 	@if test ! -d include ; then $(INSTALL) -d include; fi
 	@if test ! -h include/ldns ; then ln -s ../ldns include/ldns || echo "include/ldns exists"; fi
 
+# builddir/ is used by 60-compile-builddir
 putdown-builddir:
 	rm -f include/ldns lib config.h
 	test ! -d include  || rmdir include  || :
 	if test -d examples -a ! -f examples/README; then rmdir examples || : ; fi
 	if test -d drill    -a ! -f drill/README   ; then rmdir drill    || : ; fi
 	if test -d compat   -a ! -f compat/malloc.c; then rmdir compat   || : ; fi
+	rm -rf builddir/
 
-drill: no-drill-config-h drill/drill drill/drill.1
+drill: setup-builddir no-drill-config-h drill/drill drill/drill.1
 no-drill-config-h:
 	@if test -e $(srcdir)/drill/config.h -o -e drill/config.h ; \
 	then echo "A config.h was detected in the drill subdirectory." ; \
@@ -147,8 +167,8 @@ no-drill-config-h:
 	     exit -1 ; \
 	fi
 
-drill/drill: $(DRILL_LOBJS) $(LIB)
-	$(LINK_EXE) $(DRILL_LOBJS) $(LIBS) $(LIBSSL_LIBS) -lldns -o drill/drill
+drill/drill: $(DRILL_LOBJS) $(LIB) $(LIBLOBJS)
+	$(LINK_EXE) $(DRILL_LOBJS) $(LIBLOBJS) $(LIB) $(LIBSSL_LIBS) $(LIBS) -o drill/drill
 
 drill/drill.1: $(srcdir)/drill/drill.1.in
 	$(edit) $(srcdir)/drill/drill.1.in > drill/drill.1
@@ -168,7 +188,7 @@ uninstall-drill:
 clean-drill:
 	$(LIBTOOL) --mode clean rm -f $(DRILL_LOBJS) drill/drill drill/drill.1
 
-examples: no-examples-config-h $(EXAMPLE_PROGS) $(TESTNS) $(LDNS_DPA) $(LDNS_DANE) $(EX_SSL_PROGS) examples/ldns-dane.1 examples/ldns-verify-zone.1
+examples: setup-builddir no-examples-config-h $(LIB) $(EXAMPLE_PROGS) $(TESTNS) $(LDNS_DPA) $(LDNS_DANE) $(EX_SSL_PROGS) examples/ldns-dane.1 examples/ldns-verify-zone.1
 no-examples-config-h:
 	@if test -e $(srcdir)/examples/config.h -o -e examples/config.h ; \
 	then echo "A config.h was detected in the examples subdirectory." ; \
@@ -178,22 +198,25 @@ no-examples-config-h:
 	     exit -1 ; \
 	fi
 
+# Need LIBSSL_LIBS
 $(EXAMPLE_PROGS):
-	$(LINK_EXE) $@.lo $(LIBS) -lldns -o $@
+	$(LINK_EXE) $@.lo $(LIBLOBJS) $(LIB) $(LIBSSL_LIBS) $(LIBS) -o $@
 
+# Need LIBSSL_LIBS
 $(TESTNS):
-	$(LINK_EXE) $(TESTNS_LOBJS) $(LIBS) -lldns -o $(TESTNS)
+	$(LINK_EXE) $(TESTNS_LOBJS) $(LIBLOBJS) $(LIB) $(LIBSSL_LIBS) $(LIBS) -o $(TESTNS)
 
+# Need LIBSSL_LIBS
 $(LDNS_DPA):
-	$(LINK_EXE) $(LDNS_DPA_LOBJS) $(LIBS) $(LIBPCAP_LIBS) -lldns \
+	$(LINK_EXE) $(LDNS_DPA_LOBJS) $(LIBLOBJS) $(LIB) $(LIBPCAP_LIBS) $(LIBSSL_LIBS) $(LIBS) \
 		 -o $(LDNS_DPA)
 
 $(LDNS_DANE):
-	$(LINK_EXE) $(LDNS_DANE_LOBJS) $(LIBS) $(LIBSSL_SSL_LIBS) -lldns \
+	$(LINK_EXE) $(LDNS_DANE_LOBJS) $(LIBLOBJS) $(LIB) $(LIBSSL_SSL_LIBS) $(LIBS) \
 		 -o $(LDNS_DANE)
 
 $(EX_SSL_PROGS):
-	$(LINK_EXE) $@.lo $(LIBS) $(LIBSSL_LIBS) -lldns -o $@
+	$(LINK_EXE) $@.lo $(LIBLOBJS) $(LIB) $(LIBSSL_LIBS) $(LIBS) -o $@
 
 examples/ldns-dane.1: $(srcdir)/examples/ldns-dane.1.in
 	$(edit) $(srcdir)/examples/ldns-dane.1.in > examples/ldns-dane.1
@@ -221,14 +244,14 @@ uninstall-examples:
 	test ! -d $(DESTDIR)$(bindir) || rmdir -p $(DESTDIR)$(bindir) || : ;
 
 clean-examples:
-	$(LIBTOOL) --mode clean rm -f $(EXAMPLE_PROGS) 
+	$(LIBTOOL) --mode clean rm -f $(EXAMPLE_PROGS)
 	$(LIBTOOL) --mode clean rm -f $(TESTNS) $(LDNS_DPA) $(LDNS_DANE) $(EX_SSL_PROGS)
 	$(LIBTOOL) --mode clean rm -f $(EXAMPLE_LOBJS)
 	$(LIBTOOL) --mode clean rm -f examples/ldns-dane.1 examples/ldns-verify-zone.1
 
 linktest: $(srcdir)/linktest.c libldns.la
 	$(COMP_LIB) $(LIBSSL_CPPFLAGS) -c $(srcdir)/linktest.c -o linktest.lo
-	$(LINK_EXE) linktest.lo $(LIBS) $(LIBSSL_LIBS) -lldns -o linktest
+	$(LINK_EXE) linktest.lo $(LIB) $(LIBSSL_LIBS) $(LIBS) -o linktest
 
 lib: libldns.la
 
@@ -243,7 +266,7 @@ libldns.la-export-all: $(LDNS_ALL_LOBJS)
 mancheck:
 	sh -c 'find . -name \*.\[13\] -exec troff -z {} \;' 2>&1 | sed "s/^\.\///" | sed "s/\(:[0\-9]\+:\)/\1 warning:/g"
 
-doxygen: manpages
+doxygen:
 	@if test ! -e doc/header.html ; then \
 		$(INSTALL) -c -m 644 $(srcdir)/doc/header.html doc/ ; \
 	fi ;
@@ -252,14 +275,29 @@ doxygen: manpages
 doc: manpages $(doxygen)
 	@$(INSTALL) -d doc
 
-manpages: $(srcdir)/doc/function_manpages 
-	@$(INSTALL) -d doc
-	@cat $(srcdir)/ldns/*.h \
-	| $(srcdir)/doc/doxyparse.pl \
-		-m $(srcdir)/doc/function_manpages \
-	| grep -v ^doxygen | grep -v ^cat  > doc/ldns_manpages
+manpages: $(srcdir)/doc/function_manpages
+	@$(INSTALL) -d doc/man/man3
+	@if [ -f $(srcdir)/doc/man/man3/ldns_rr.3 ] ; \
+	then \
+		if test -d ldns ; then \
+			echo "is builddir srcdir" > ldns/YES ; \
+			if [ ! -f $(srcdir)/ldns/YES ]; then \
+				echo "Copying manpages..."; \
+				for m in $(srcdir)/doc/man/man3/*.3 ; \
+				do \
+					$(INSTALL) -c -C -m 444 $${m} doc/man/man3/ ; \
+				done; \
+			fi ;\
+			rm -f ldns/YES; \
+		fi; \
+	else \
+		echo "Generating manpages..."; \
+		cat $(srcdir)/ldns/*.h \
+			| $(srcdir)/doc/doxyparse.pl -m $(srcdir)/doc/function_manpages \
+			| grep -v ^doxygen | grep -v ^cat  > doc/ldns_manpages; \
+	fi
 
-manpage-create-errors: $(srcdir)/doc/function_manpages 
+manpage-create-errors: $(srcdir)/doc/function_manpages
 	@$(INSTALL) -d doc
 	@cat $(srcdir)/ldns/*.h \
 	| $(srcdir)/doc/doxyparse.pl -e \
@@ -276,7 +314,7 @@ manpage-errors:
 			echo doc/man/man3/$${m}.3: manpage-has-bad-whatis-entry; \
 		fi; \
 	done || echo "WARNING!: Cannot detect manpage errors on `uname`"
-	
+
 pyldns: _ldns.la
 
 $(pywrapdir)/ldns_wrapper.c: $(PYLDNS_I_FILES) ldns/config.h
@@ -285,8 +323,8 @@ $(pywrapdir)/ldns_wrapper.c: $(PYLDNS_I_FILES) ldns/config.h
 ldns_wrapper.lo: $(pywrapdir)/ldns_wrapper.c ldns/config.h
 	$(COMP_LIB) -I./include/ldns $(LIBSSL_CPPFLAGS) $(PYTHON_CPPFLAGS) $(PYTHON_X_CFLAGS) -c $(pywrapdir)/ldns_wrapper.c -o $@
 
-_ldns.la: ldns_wrapper.lo libldns.la 
-	$(LIBTOOL) --tag=CC --mode=link $(CC) $(CFLAGS) $(PYTHON_CFLAGS) $(LDFLAGS) $(PYTHON_LDFLAGS) -module -version-info $(version_info) -no-undefined -o $@ ldns_wrapper.lo -rpath $(python_site) -L. -L.libs -lldns $(LIBS)
+_ldns.la: ldns_wrapper.lo libldns.la
+	$(LIBTOOL) --tag=CC --mode=link $(CC) $(CFLAGS) $(PYTHON_CFLAGS) $(LDFLAGS) -module -version-info $(version_info) -no-undefined -o $@ ldns_wrapper.lo -rpath $(python_site) -L. -L.libs $(LIB) $(PYTHON_LIBS) $(LIBS)
 
 $(p5_dns_ldns_dir)/Makefile: $(p5_dns_ldns_dir)/Makefile.PL
 	BUILDDIR=`pwd`; cd $(p5_dns_ldns_dir); LD_LIBRARY_PATH="$$BUILDDIR/.libs:$$LD_LIBRARY_PATH" DYLD_LIBRARY_PATH="$$BUILDDIR/.libs:$$DYLD_LIBRARY_PATH" $(PERL) Makefile.PL LIBS="-L$$BUILDDIR/.libs -lldns" INC="-I$$BUILDDIR"
@@ -308,9 +346,9 @@ clean-p5-dns-ldns: $(p5_dns_ldns_dir)/Makefile
 test-p5-dns-ldns: $(p5_dns_ldns_dir)/Makefile
 	cd $(p5_dns_ldns_dir); $(MAKE) test
 
-install: install-h install-lib @INSTALL_CONFIG@ install-manpages $(pyldns_inst) $(pyldnsx_inst) @INSTALL_P5_DNS_LDNS@ @INSTALL_DRILL@ @INSTALL_EXAMPLES@
+install: install-h install-lib install-pc @INSTALL_CONFIG@ install-manpages $(pyldns_inst) $(pyldnsx_inst) @INSTALL_P5_DNS_LDNS@ @INSTALL_DRILL@ @INSTALL_EXAMPLES@
 
-uninstall: uninstall-manpages @UNINSTALL_CONFIG@ uninstall-h uninstall-lib $(pyldns_uninst) $(pyldnsx_uninst) @UNINSTALL_P5_DNS_LDNS@ @UNINSTALL_DRILL@ @UNINSTALL_EXAMPLES@
+uninstall: uninstall-manpages @UNINSTALL_CONFIG@ uninstall-h uninstall-lib uninstall-pc $(pyldns_uninst) $(pyldnsx_uninst) @UNINSTALL_P5_DNS_LDNS@ @UNINSTALL_DRILL@ @UNINSTALL_EXAMPLES@
 
 destclean: uninstall
 
@@ -355,12 +393,22 @@ uninstall-h:
 	test ! -d $(DESTDIR)$(includedir)/ldns || rmdir -p $(DESTDIR)$(includedir)/ldns || echo "ok, dir already gone"
 	exit 0
 
+packaging/libldns.pc: $(srcdir)/packaging/libldns.pc.in
+	./config.status --file=$@
+
+install-pc: packaging/libldns.pc
+	$(INSTALL) -m 644 packaging/libldns.pc $(DESTDIR)$(libdir)/pkgconfig/ldns.pc
+
+uninstall-pc:
+	$(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/pkgconfig/ldns.pc
+	test ! -d $(DESTDIR)$(libdir)/pkgconfig || rmdir -p $(DESTDIR)$(libdir)/pkgconfig || echo "ok, dir already gone"
+
 install-lib: lib
 	$(INSTALL) -m 755 -d $(DESTDIR)$(libdir)
 	$(LIBTOOL) --mode=install cp libldns.la $(DESTDIR)$(libdir)
 	$(LIBTOOL) --mode=finish $(DESTDIR)$(libdir)
 
-uninstall-lib:	
+uninstall-lib:
 	$(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/libldns.la
 	test ! -d $(DESTDIR)$(libdir) || rmdir -p $(DESTDIR)$(libdir) || echo "ok, dir already gone"
 
@@ -370,7 +418,7 @@ install-pyldns: @PYLDNS@
 	$(LIBTOOL) --mode=install cp _ldns.la $(DESTDIR)$(python_site)
 	$(LIBTOOL) --mode=finish $(DESTDIR)$(python_site)
 
-uninstall-pyldns:	
+uninstall-pyldns:
 	rm -f $(DESTDIR)$(python_site)/ldns/*
 	test ! -d $(DESTDIR)$(python_site)/ldns || rmdir $(DESTDIR)$(python_site)/ldns || echo "ok, dir already gone"
 
@@ -425,7 +473,7 @@ docclean:
 	rm -f doc/ldns_manpages
 
 distclean: realclean
-	rm -fr autom4te.cache 
+	rm -fr autom4te.cache
 	rm -f config.guess config.sub configure ltmain.sh ldns/config.h.in
 
 ## No need for changes here
@@ -457,8 +505,8 @@ allclean: test-clean clean
 test-clean:
 	tpkg -b test clean
 
-test: @TEST_P5_DNS_LDNS@
-	if test -x "`which bash`"; then bash test/test_all.sh; else sh test/test_all.sh; fi
+test: examples drill @TEST_P5_DNS_LDNS@
+	./test/test_all.sh
 
 
 # Recreate symbols file, only needed when API changes
@@ -538,129 +586,137 @@ depend:
 
 buffer.lo buffer.o: $(srcdir)/buffer.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
  $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
  $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
  $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
  $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
  $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
 dane.lo dane.o: $(srcdir)/dane.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
  $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
  $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
  $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
  $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
  $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
 dname.lo dname.o: $(srcdir)/dname.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
  $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
  $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
  $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
  $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
  $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
 dnssec.lo dnssec.o: $(srcdir)/dnssec.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
  $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
  $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
  $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
  $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
  $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
 dnssec_sign.lo dnssec_sign.o: $(srcdir)/dnssec_sign.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
  ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
+ $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
+ $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
+ $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
+ $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
+ $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
 dnssec_verify.lo dnssec_verify.o: $(srcdir)/dnssec_verify.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
  ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
+ $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
+ $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
+ $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
+ $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
+ $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
 dnssec_zone.lo dnssec_zone.o: $(srcdir)/dnssec_zone.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
  ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
+ $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
+ $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
+ $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
+ $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
+ $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+duration.lo duration.o: $(srcdir)/duration.c ldns/config.h $(srcdir)/ldns/duration.h
+edns.lo edns.o: $(srcdir)/edns.c $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h $(srcdir)/ldns/buffer.h \
+ $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h \
+ $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
+ $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
  $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
  $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
  $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
  $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
-duration.lo duration.o: $(srcdir)/duration.c ldns/config.h $(srcdir)/ldns/duration.h
 error.lo error.o: $(srcdir)/error.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
  $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
  $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
  $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
  $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
  $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
 higher.lo higher.o: $(srcdir)/higher.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
  $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
  $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
  $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
  $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
  $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
 host2str.lo host2str.o: $(srcdir)/host2str.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
  ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
+ $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
+ $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
+ $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
+ $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
+ $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
 host2wire.lo host2wire.o: $(srcdir)/host2wire.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
  ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
+ $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
+ $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
+ $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
+ $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
+ $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
 keys.lo keys.o: $(srcdir)/keys.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
  $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
  $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
  $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
  $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
  $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
 linktest.lo linktest.o: $(srcdir)/linktest.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
  ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
+ $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
+ $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
+ $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
+ $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
+ $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
 net.lo net.o: $(srcdir)/net.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
  $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
  $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
  $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
  $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
  $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
 packet.lo packet.o: $(srcdir)/packet.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
  $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
  $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
  $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
  $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
  $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
 parse.lo parse.o: $(srcdir)/parse.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
  $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
  $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
  $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
  $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
@@ -670,40 +726,40 @@ radix.lo radix.o: $(srcdir)/radix.c ldns/config.h $(srcdir)/ldns/radix.h $(srcdi
 rbtree.lo rbtree.o: $(srcdir)/rbtree.c ldns/config.h $(srcdir)/ldns/rbtree.h ldns/util.h ldns/common.h
 rdata.lo rdata.o: $(srcdir)/rdata.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
  $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
  $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
  $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
  $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
  $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
 resolver.lo resolver.o: $(srcdir)/resolver.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
  ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
+ $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
+ $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
+ $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
+ $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
+ $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
 rr.lo rr.o: $(srcdir)/rr.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
  $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
  $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
  $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
  $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
  $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
 rr_functions.lo rr_functions.o: $(srcdir)/rr_functions.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h \
  ldns/common.h $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h \
- $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h \
- $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
- $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
- $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
- $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h \
- $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
+ $(srcdir)/ldns/rr.h $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h \
+ $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h \
+ $(srcdir)/ldns/rbtree.h $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h \
+ $(srcdir)/ldns/duration.h $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h \
+ $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h $(srcdir)/ldns/wire2host.h $(srcdir)/ldns/rr_functions.h \
+ $(srcdir)/ldns/parse.h $(srcdir)/ldns/radix.h $(srcdir)/ldns/sha1.h $(srcdir)/ldns/sha2.h
 sha1.lo sha1.o: $(srcdir)/sha1.c ldns/config.h $(srcdir)/ldns/ldns.h ldns/util.h ldns/common.h \
  $(srcdir)/ldns/buffer.h $(srcdir)/ldns/error.h $(srcdir)/ldns/dane.h $(srcdir)/ldns/rdata.h $(srcdir)/ldns/rr.h \
- $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/keys.h $(srcdir)/ldns/zone.h \
- $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
+ $(srcdir)/ldns/dname.h $(srcdir)/ldns/dnssec.h $(srcdir)/ldns/packet.h $(srcdir)/ldns/edns.h $(srcdir)/ldns/keys.h \
+ $(srcdir)/ldns/zone.h $(srcdir)/ldns/resolver.h $(srcdir)/ldns/tsig.h $(srcdir)/ldns/dnssec_zone.h $(srcdir)/ldns/rbtree.h \
  $(srcdir)/ldns/host2str.h $(srcdir)/ldns/dnssec_verify.h $(srcdir)/ldns/dnssec_sign.h $(srcdir)/ldns/duration.h \
  $(srcdir)/ldns/higher.h $(srcdir)/ldns/host2wire.h ldns/net.h $(srcdir)/ldns/str2host.h $(srcdir)/ldns/update.h \
*** 44979 LINES SKIPPED ***

From nobody Fri Aug 18 16:23:25 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RS6cZ2L7Pz4qkrZ;
	Fri, 18 Aug 2023 16:23:26 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RS6cY4p4Jz3QgZ;
	Fri, 18 Aug 2023 16:23:25 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692375805;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=RV6zzNKeMvl7JHgEkzu02YQxuU7AjiPoPNvcdrN6TAQ=;
	b=CwwGp1rerci13FzrFphht9RrxeDnUFH3yweVqddnGXwRzWsXGQex3/ZgtYhI1xN7zv65Qd
	Kh4Vk+39eRH+qoWcXmvnK0VGmyIrmnZ27RdXexG52JkFoLe6Jyxl4qWVucC/wBNpZWH0/I
	3nz9c+auiDZgfluXrk5SToz2nUMQJWdIX/deaYc8mMerzWXl5Wq8Qxv2qf3uPcDSQPnOfD
	+aySOTWqMosmss3zWG4rY9ROwFkldS06j9XVqw0eq9/PATYXrnfefYSZMC13oyt+zQ1hcA
	pmibaCKr5YPHuSeg440Eiz/0drIGssXexgDd//NLzmIAXhB+YP/w9R14clIDmA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692375805;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=RV6zzNKeMvl7JHgEkzu02YQxuU7AjiPoPNvcdrN6TAQ=;
	b=KxazNgVjuLsFWjeV32Ap1XRoIgj0iCzrl/iUXZGC5R/IhN5KUlaPKVP46YRWGx4R3MlxDH
	7u3d3i6QVSZSb4uTWiTranEWHG/3WhYKx4+UpyNC76Y2xy5CMJoNCUEsPLVKa79os1b2v9
	G795GG87f66OPfkJwiphOmvRXa7QYS/j1Yb7L6O5Xv7F/UMShGcw0Wm3Sshcv84MXuXnbk
	jAreWg+dbafNrQ30CoICex7V3Iuq7Suny0PEuvfZltCm9j9f6Fn671jNG6VuvejlnOO/dx
	ASfEOrgmqN8I1VNKApkehQNisYkEIoMl83zLFm4k7SPnUPMq+SR3PSG4Q4iYBQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692375805; a=rsa-sha256; cv=none;
	b=vndhGWpoApnILJ+v5fEMTd93CHISHMXW26EsIW5jE8TlHKkuYrF6mU2dXB5eeChLnpgzBO
	awVbOnq1ygUOtVKE2zfbD+w5HtW+l1ITHiEX4ymO8yGkc+X1ImcDBt1E2zui7hVFQphiSN
	FAXou/8rp1GcOkZVWGkVRuIvjmOEsXhELqBhatZH4dh/Rv7wOcIQJsgdRsNfQLquECBV9y
	A0dpK5xia7dnLmqtdKmG1a3Y6vEblb6/Jg1+mGuuZMLO0g1XbwjArij1Qb30ehEy/M/U7G
	P8x+2ihUVluTvnd4yV92Yr4fgn5zH8lPJRKo2rwbykV27lheS8JZ8S3MsCcg2A==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RS6cY3sV3z7nd;
	Fri, 18 Aug 2023 16:23:25 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37IGNPV5033632;
	Fri, 18 Aug 2023 16:23:25 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37IGNP1p033629;
	Fri, 18 Aug 2023 16:23:25 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 16:23:25 GMT
Message-Id: <202308181623.37IGNP1p033629@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Ed Maste <emaste@FreeBSD.org>
Subject: git: 3bf46f880f43 - stable/13 - Cirrus update to new freebsd
  instance version
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: emaste
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 3bf46f880f439c85e906a5d4061b0ba9d94d26d8
Auto-Submitted: auto-generated

The branch stable/13 has been updated by emaste:

URL: https://cgit.FreeBSD.org/src/commit/?id=3bf46f880f439c85e906a5d4061b0ba9d94d26d8

commit 3bf46f880f439c85e906a5d4061b0ba9d94d26d8
Author:     QWERTIOX <qwertiox.kontakt@gmail.com>
AuthorDate: 2023-04-19 13:01:15 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2023-08-18 16:23:02 +0000

    Cirrus update to new freebsd instance version
    
    MFC after:      2 weeks
    Pull Request:   https://github.com/freebsd/freebsd-src/pull/718
    
    (cherry picked from commit 5e2ba9cb6b0bc097f6ed176894cfee3b5bd405f4)
---
 .cirrus.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.cirrus.yml b/.cirrus.yml
index fb0149a5d91b..bc53e2124259 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -5,7 +5,7 @@ compute_engine_instance:
   # gcloud compute images list --project freebsd-org-cloud-dev --no-standard-images
   platform: freebsd
   image_project: freebsd-org-cloud-dev
-  image: freebsd-13-1-release-amd64
+  image: freebsd-13-2-release-amd64
   cpu: 8
   memory: 8G
   disk: 40

From nobody Fri Aug 18 23:18:43 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RSHqm01lyz4fs5X;
	Fri, 18 Aug 2023 23:18:44 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RSHql6KfFz4nGY;
	Fri, 18 Aug 2023 23:18:43 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692400723;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=vRSHYDeUKPNPssvmepZklgBbz/joMb6CuldignuhBLk=;
	b=Cdfoz9YDw4/of8wLUwMmCb9BL0HtZ4wqDlhiMBbPdDHR8wE1cgdlHEOrDmfh+oHtEWKokL
	NSpNyuOARaBdLiVkAIh2JK68SEXHvihxicMSu5B0yn8ZbCL5TVrOKSv1y3lKLp6Yw8v4sQ
	n2Azw51ZAsXXENuZIeayZVSh/QStpAK4F16uCai5TfsdjKhA1GqYkKqxS8TnBrf19M/Tsl
	Ef/c9E9cz4CztHJ3/yFzbLYPcpmXRezz6lJzLium3KIGz7POEwpQRWNNeHhDWMbIc879TN
	mZHSQgkhvtVn80SuuyRc1B785c1iRoy3bYTfzhZ6BNTXqxpTZlLBG9KbGx8LHg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692400723;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=vRSHYDeUKPNPssvmepZklgBbz/joMb6CuldignuhBLk=;
	b=SU92uTchADdX8KuQYcAd+KlynCc8M6ogYq78jzlbFqUEUcJbkXfXWQLEZPzvIwZ5rBn4p4
	UKnEUrXWVIYXGWX9OJnWkee2vFanLTLBsZW7z/GlTG/CuwruwPmsVRI+RF1/u/WWLjyHl0
	a4RI08Lk6d5KB5DeOG50FGyN1UPIkKbWEQUojAW9ovo4Cl9qBo0bU2+LvR3/ya1VAWd6VQ
	F+YROJXJNEYWnBr9PX6C7apGGSI3dEHE+cfXvIHdaDzNtNStIwSG05h4oLhrPJL1nqaPG4
	N/d6C8zB5y7JwpOSZlVM5NcxhB3N9O/UHJCRBok/OMANWSq72qIT2sL3ofZgRA==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692400723; a=rsa-sha256; cv=none;
	b=XmYLo+DAVQKGSGL1GxTjhbQiWkVI3JPiZlR8KGLpWVtgq8QzIu1yc5jK3wfCUvRDmmVYaU
	NqOTwDBCOoD6hGk84cwm1iO4MZyEK+iDpfu1AmhN5hfTG8R/tAl+ISn1X9cmZFpVHdfquu
	6CpCbWCoY4BWRbZ23shIyvqvxc7zpYnTcaD6FI1KAlO1/veYu/WPYDDujG6rDdR2sTe2Ms
	2Gf7Owz/UlGDjYv4dR8HWcLGsSF9p1ZPnuR73CGnocIJaeCmAwnByqR3PY5piJ6q3/5Z7j
	vZS0+Yt5LbsGHoeXGhngA5PScos4OCUkLFzAlxLfLlJ3aO3kxtp/Q/WWn/YSlw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RSHql5Hxwzb6Q;
	Fri, 18 Aug 2023 23:18:43 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37INIhUE018505;
	Fri, 18 Aug 2023 23:18:43 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37INIh3a018502;
	Fri, 18 Aug 2023 23:18:43 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 23:18:43 GMT
Message-Id: <202308182318.37INIh3a018502@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Xin LI <delphij@FreeBSD.org>
Subject: git: 4e846759f0a3 - stable/13 - Add gve, the driver for
  Google Virtual NIC (gVNIC)
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: delphij
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 4e846759f0a327c8e150ab8910b06f93edecf0d9
Auto-Submitted: auto-generated

The branch stable/13 has been updated by delphij:

URL: https://cgit.FreeBSD.org/src/commit/?id=4e846759f0a327c8e150ab8910b06f93edecf0d9

commit 4e846759f0a327c8e150ab8910b06f93edecf0d9
Author:     Shailend Chand <shailend@google.com>
AuthorDate: 2023-06-02 18:58:24 +0000
Commit:     Xin LI <delphij@FreeBSD.org>
CommitDate: 2023-08-18 23:18:15 +0000

    Add gve, the driver for Google Virtual NIC (gVNIC)
    
    gVNIC is a virtual network interface designed specifically for
    Google Compute Engine (GCE). It is required to support per-VM Tier_1
    networking performance, and for using certain VM shapes on GCE.
    
    The NIC supports TSO, Rx and Tx checksum offloads, and RSS.
    It does not currently do hardware LRO, and thus the software-LRO
    in the host is used instead. It also supports jumbo frames.
    
    For each queue, the driver negotiates a set of pages with the NIC to
    serve as a fixed bounce buffer, this precludes the use of iflib.
    
    Reviewed-by:            markj
    Differential Revision: https://reviews.freebsd.org/D39873
    
    (cherry picked from commit 54dfc97b0bd99f1c3bcbb37357cf28cd81a7cf00)
---
 share/man/man4/Makefile    |   5 +
 share/man/man4/gve.4       | 215 ++++++++++++
 sys/conf/files             |   7 +
 sys/dev/gve/gve.h          | 459 ++++++++++++++++++++++++
 sys/dev/gve/gve_adminq.c   | 803 ++++++++++++++++++++++++++++++++++++++++++
 sys/dev/gve/gve_adminq.h   | 394 +++++++++++++++++++++
 sys/dev/gve/gve_desc.h     | 151 ++++++++
 sys/dev/gve/gve_main.c     | 853 +++++++++++++++++++++++++++++++++++++++++++++
 sys/dev/gve/gve_plat.h     |  94 +++++
 sys/dev/gve/gve_qpl.c      | 284 +++++++++++++++
 sys/dev/gve/gve_register.h |  54 +++
 sys/dev/gve/gve_rx.c       | 684 ++++++++++++++++++++++++++++++++++++
 sys/dev/gve/gve_sysctl.c   | 261 ++++++++++++++
 sys/dev/gve/gve_tx.c       | 806 ++++++++++++++++++++++++++++++++++++++++++
 sys/dev/gve/gve_utils.c    | 405 +++++++++++++++++++++
 sys/modules/Makefile       |   6 +
 sys/modules/gve/Makefile   |  36 ++
 17 files changed, 5517 insertions(+)

diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile
index 4fc01a6c4b1f..b7372ac63c2e 100644
--- a/share/man/man4/Makefile
+++ b/share/man/man4/Makefile
@@ -174,6 +174,7 @@ MAN=	aac.4 \
 	geom_map.4 \
 	geom_uzip.4 \
 	gif.4 \
+	${_gve.4} \
 	gpio.4 \
 	gpioiic.4 \
 	gpiokeys.4 \
@@ -922,6 +923,10 @@ _linux.4=	linux.4
 _ossl.4=	ossl.4
 .endif
 
+.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "aarch64"
+_gve.4=		gve.4
+.endif
+
 .if ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "aarch64" || \
 	 ${MACHINE_CPUARCH} == "riscv"
 _cgem.4=	cgem.4
diff --git a/share/man/man4/gve.4 b/share/man/man4/gve.4
new file mode 100644
index 000000000000..9bb1be1b9a53
--- /dev/null
+++ b/share/man/man4/gve.4
@@ -0,0 +1,215 @@
+.\" SPDX-License-Identifier: BSD-3-Clause
+.\"
+.\" Copyright (c) 2023 Google LLC
+.\"
+.\" Redistribution and use in source and binary forms, with or without modification,
+.\" are permitted provided that the following conditions are met:
+.\"
+.\" 1. Redistributions of source code must retain the above copyright notice, this
+.\"    list of conditions and the following disclaimer.
+.\"
+.\" 2. Redistributions in binary form must reproduce the above copyright notice,
+.\"    this list of conditions and the following disclaimer in the documentation
+.\"    and/or other materials provided with the distribution.
+.\"
+.\" 3. Neither the name of the 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 HOLDER 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.
+.Dd April 26, 2023
+.Dt GVE 4
+.Os
+.Sh NAME
+.Nm gve
+.Nd "Ethernet driver for Google Virtual NIC (gVNIC)"
+.Sh SYNOPSIS
+To compile this driver into the kernel,
+place the following lines in your
+kernel configuration file:
+.Bd -ragged -offset indent
+.Cd "device gve"
+.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_gve_load="YES"
+.Ed
+.Sh DESCRIPTION
+gVNIC is a virtual network interface designed specifically for Google Compute Engine (GCE).
+It is required to support per-VM Tier-1 networking performance, and for using certain VM shapes on GCE.
+.Pp
+.Nm
+is the driver for gVNIC.
+It supports the following features:
+.Pp
+.Bl -bullet -compact
+.It
+RX checksum offload
+.It
+TX chesksum offload
+.It
+TCP Segmentation Offload (TSO)
+.It
+Large Receive Offload (LRO) in software
+.It
+Jumbo frames
+.It
+Receive Side Scaling (RSS)
+.El
+.Pp
+For more information on configuring this device, see
+.Xr ifconfig 8 .
+.Sh HARDWARE
+.Nm
+binds to a single PCI device ID presented by gVNIC:
+.Pp
+.Bl -bullet -compact
+.It
+0x1AE0:0x0042
+.El
+.Sh DIAGNOSTICS
+The following messages are recorded during driver initialization:
+.Bl -diag
+.It "Enabled MSIX with %d vectors"
+.It "Configured device resources"
+.It "Successfully attached %s"
+.It "Deconfigured device resources"
+.El
+.Pp
+These messages are seen if driver initialization fails.
+Global (across-queues) allocation failures:
+.Bl -diag
+.It "Failed to configure device resources: err=%d"
+.It "No compatible queue formats"
+.It "Failed to allocate ifnet struct"
+.It "Failed to allocate admin queue mem"
+.It "Failed to alloc DMA mem for DescribeDevice"
+.It "Failed to allocate QPL page"
+.El
+.Pp
+irq and BAR allocation failures:
+.Bl -diag
+.It "Failed to acquire any msix vectors"
+.It "Tried to acquire %d msix vectors, got only %d"
+.It "Failed to setup irq %d for Tx queue %d "
+.It "Failed to setup irq %d for Rx queue %d "
+.It "Failed to allocate irq %d for mgmnt queue"
+.It "Failed to setup irq %d for mgmnt queue, err: %d"
+.It "Failed to allocate BAR0"
+.It "Failed to allocate BAR2"
+.It "Failed to allocate msix table"
+.El
+.Pp
+Rx queue-specific allocation failures:
+.Bl -diag
+.It "No QPL left for rx ring %d"
+.It "Failed to alloc queue resources for rx ring %d"
+.It "Failed to alloc desc ring for rx ring %d"
+.It "Failed to alloc data ring for rx ring %d"
+.El
+.Pp
+Tx queue-specific allocation failures:
+.Bl -diag
+.It "No QPL left for tx ring %d"
+.It "Failed to alloc queue resources for tx ring %d"
+.It "Failed to alloc desc ring for tx ring %d"
+.It "Failed to vmap fifo, qpl_id = %d"
+.El
+.El
+.Pp
+The following messages are recorded when the interface detach fails:
+.Bl -diag
+.It "Failed to deconfigure device resources: err=%d"
+.El
+.Pp
+If bootverbose is on, the following messages are recorded when the interface is being brought up:
+.Bl -diag
+.It "Created %d rx queues"
+.It "Created %d tx queues"
+.It "MTU set to %d"
+.El
+.Pp
+The following messages are recorded when the interface is being brought down:
+.Bl -diag
+.It "Destroyed %d rx queues"
+.It "Destroyed %d tx queues"
+.El
+.Pp
+These messages are seen if errors are encountered when bringing the interface up or down:
+.Bl -diag
+.It "Failed to destroy rxq %d, err: %d"
+.It "Failed to destroy txq %d, err: %d"
+.It "Failed to create rxq %d, err: %d"
+.It "Failed to create txq %d, err: %d"
+.It "Failed to set MTU to %d"
+.It "Invalid new MTU setting. new mtu: %d max mtu: %d min mtu: %d"
+.It "Cannot bring the iface up when detached"
+.It "Reached max number of registered pages %lu > %lu"
+.It "Failed to init lro for rx ring %d"
+.El
+.Pp
+These messages are seen if any admin queue command fails:
+.Bl -diag
+.It "AQ command(%u): failed with status %d"
+.It "AQ command(%u): unknown status code %d"
+.It "AQ commands timed out, need to reset AQ"
+.It "Unknown AQ command opcode %d"
+.El
+.Pp
+These messages are recorded when the device is being reset due to an error:
+.Bl -diag
+.It "Scheduling reset task!"
+.It "Waiting until admin queue is released."
+.It "Admin queue released"
+.El
+.Pp
+If it was the NIC that requested the reset, this message is recorded:
+.Bl -diag
+.It "Device requested reset"
+.El
+.Pp
+If the reset fails during the reinitialization phase, this message is recorded:
+.Bl -diag
+.It "Restore failed!"
+.El
+.Pp
+These two messages correspoond to the NIC alerting the driver to link state changes:
+.Bl -diag
+.It "Device link is up."
+.It "Device link is down."
+.El
+.Pp
+Apart from these messages, the driver exposes per-queue packet and error counters as sysctl nodes.
+Global (across queues) counters can be read using
+.Xr netstat 8 .
+.Sh LIMITATIONS
+.Nm
+does not support the transmission of VLAN-tagged packets.
+All VLAN-tagged traffic is dropped.
+.Sh SUPPORT
+Please email gvnic-drivers@google.com with the specifics of the issue encountered.
+.El
+.Sh SEE ALSO
+.Xr ifconfig 8 ,
+.Xr netstat 8
+.Sh HISTORY
+The
+.Nm
+device driver first appeared in
+.Fx 14.0 .
+.Sh AUTHORS
+The
+.Nm
+driver was written by Google.
diff --git a/sys/conf/files b/sys/conf/files
index b6b99253805e..2c0cbe38082d 100644
--- a/sys/conf/files
+++ b/sys/conf/files
@@ -1809,6 +1809,13 @@ dev/fxp/if_fxp.c		optional fxp
 dev/fxp/inphy.c			optional fxp
 dev/gem/if_gem.c		optional gem
 dev/gem/if_gem_pci.c		optional gem pci
+dev/gve/gve_adminq.c		optional gve
+dev/gve/gve_main.c		optional gve
+dev/gve/gve_qpl.c		optional gve
+dev/gve/gve_rx.c		optional gve
+dev/gve/gve_sysctl.c		optional gve
+dev/gve/gve_tx.c		optional gve
+dev/gve/gve_utils.c		optional gve
 dev/goldfish/goldfish_rtc.c	optional goldfish_rtc fdt
 dev/gpio/dwgpio/dwgpio.c	optional gpio dwgpio fdt
 dev/gpio/dwgpio/dwgpio_bus.c	optional gpio dwgpio fdt
diff --git a/sys/dev/gve/gve.h b/sys/dev/gve/gve.h
new file mode 100644
index 000000000000..61781cddee94
--- /dev/null
+++ b/sys/dev/gve/gve.h
@@ -0,0 +1,459 @@
+/*-
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Copyright (c) 2023 Google LLC
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ *    list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions and the following disclaimer in the documentation
+ *    and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of the 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 HOLDER 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 _GVE_FBSD_H
+#define _GVE_FBSD_H
+
+#include "gve_desc.h"
+#include "gve_plat.h"
+#include "gve_register.h"
+
+#ifndef PCI_VENDOR_ID_GOOGLE
+#define PCI_VENDOR_ID_GOOGLE	0x1ae0
+#endif
+
+#define PCI_DEV_ID_GVNIC	0x0042
+#define GVE_REGISTER_BAR	0
+#define GVE_DOORBELL_BAR	2
+
+/* Driver can alloc up to 2 segments for the header and 2 for the payload. */
+#define GVE_TX_MAX_DESCS	4
+#define GVE_TX_BUFRING_ENTRIES	4096
+
+#define ADMINQ_SIZE PAGE_SIZE
+
+#define GVE_DEFAULT_RX_BUFFER_SIZE 2048
+/* Each RX bounce buffer page can fit two packet buffers. */
+#define GVE_DEFAULT_RX_BUFFER_OFFSET (PAGE_SIZE / 2)
+
+/*
+ * Number of descriptors per queue page list.
+ * Page count AKA QPL size can be derived by dividing the number of elements in
+ * a page by the number of descriptors available.
+ */
+#define GVE_QPL_DIVISOR	16
+
+static MALLOC_DEFINE(M_GVE, "gve", "gve allocations");
+
+struct gve_dma_handle {
+	bus_addr_t	bus_addr;
+	void		*cpu_addr;
+	bus_dma_tag_t	tag;
+	bus_dmamap_t	map;
+};
+
+union gve_tx_desc {
+	struct gve_tx_pkt_desc pkt; /* first desc for a packet */
+	struct gve_tx_mtd_desc mtd; /* optional metadata descriptor */
+	struct gve_tx_seg_desc seg; /* subsequent descs for a packet */
+};
+
+/* Tracks the memory in the fifo occupied by a segment of a packet */
+struct gve_tx_iovec {
+	uint32_t iov_offset; /* offset into this segment */
+	uint32_t iov_len; /* length */
+	uint32_t iov_padding; /* padding associated with this segment */
+};
+
+/* Tracks allowed and current queue settings */
+struct gve_queue_config {
+	uint16_t max_queues;
+	uint16_t num_queues; /* current */
+};
+
+struct gve_irq_db {
+	__be32 index;
+} __aligned(CACHE_LINE_SIZE);
+
+/*
+ * GVE_QUEUE_FORMAT_UNSPECIFIED must be zero since 0 is the default value
+ * when the entire configure_device_resources command is zeroed out and the
+ * queue_format is not specified.
+ */
+enum gve_queue_format {
+	GVE_QUEUE_FORMAT_UNSPECIFIED	= 0x0,
+	GVE_GQI_RDA_FORMAT		= 0x1,
+	GVE_GQI_QPL_FORMAT		= 0x2,
+	GVE_DQO_RDA_FORMAT		= 0x3,
+};
+
+enum gve_state_flags_bit {
+	GVE_STATE_FLAG_ADMINQ_OK,
+	GVE_STATE_FLAG_RESOURCES_OK,
+	GVE_STATE_FLAG_QPLREG_OK,
+	GVE_STATE_FLAG_RX_RINGS_OK,
+	GVE_STATE_FLAG_TX_RINGS_OK,
+	GVE_STATE_FLAG_QUEUES_UP,
+	GVE_STATE_FLAG_LINK_UP,
+	GVE_STATE_FLAG_DO_RESET,
+	GVE_STATE_FLAG_IN_RESET,
+	GVE_NUM_STATE_FLAGS /* Not part of the enum space */
+};
+
+BITSET_DEFINE(gve_state_flags, GVE_NUM_STATE_FLAGS);
+
+#define GVE_DEVICE_STATUS_RESET (0x1 << 1)
+#define GVE_DEVICE_STATUS_LINK_STATUS (0x1 << 2)
+
+#define GVE_RING_LOCK(ring)	mtx_lock(&(ring)->ring_mtx)
+#define GVE_RING_TRYLOCK(ring)	mtx_trylock(&(ring)->ring_mtx)
+#define GVE_RING_UNLOCK(ring)	mtx_unlock(&(ring)->ring_mtx)
+#define GVE_RING_ASSERT(ring)	mtx_assert(&(ring)->ring_mtx, MA_OWNED)
+
+#define GVE_IFACE_LOCK_INIT(lock)     sx_init(&lock, "gve interface lock")
+#define GVE_IFACE_LOCK_DESTROY(lock)  sx_destroy(&lock)
+#define GVE_IFACE_LOCK_LOCK(lock)     sx_xlock(&lock)
+#define GVE_IFACE_LOCK_UNLOCK(lock)   sx_unlock(&lock)
+#define GVE_IFACE_LOCK_ASSERT(lock)   sx_assert(&lock, SA_XLOCKED)
+
+struct gve_queue_page_list {
+	uint32_t id;
+	uint32_t num_dmas;
+	uint32_t num_pages;
+	vm_offset_t kva;
+	vm_page_t *pages;
+	struct gve_dma_handle *dmas;
+};
+
+struct gve_irq {
+	struct resource *res;
+	void *cookie;
+};
+
+struct gve_rx_slot_page_info {
+	void *page_address;
+	vm_page_t page;
+	uint32_t page_offset;
+	uint16_t pad;
+};
+
+/*
+ * A single received packet split across multiple buffers may be
+ * reconstructed using the information in this structure.
+ */
+struct gve_rx_ctx {
+	/* head and tail of mbuf chain for the current packet */
+	struct mbuf *mbuf_head;
+	struct mbuf *mbuf_tail;
+	uint32_t total_size;
+	uint8_t frag_cnt;
+	bool drop_pkt;
+};
+
+struct gve_ring_com {
+	struct gve_priv *priv;
+	uint32_t id;
+
+	/*
+	 * BAR2 offset for this ring's doorbell and the
+	 * counter-array offset for this ring's counter.
+	 * Acquired from the device individually for each
+	 * queue in the queue_create adminq command.
+	 */
+	struct gve_queue_resources *q_resources;
+	struct gve_dma_handle q_resources_mem;
+
+	/* Byte offset into BAR2 where this ring's 4-byte irq doorbell lies. */
+	uint32_t irq_db_offset;
+	/* Byte offset into BAR2 where this ring's 4-byte doorbell lies. */
+	uint32_t db_offset;
+	/*
+	 * Index, not byte-offset, into the counter array where this ring's
+	 * 4-byte counter lies.
+	 */
+	uint32_t counter_idx;
+
+	/*
+	 * The index of the MSIX vector that was assigned to
+	 * this ring in `gve_alloc_irqs`.
+	 *
+	 * It is passed to the device in the queue_create adminq
+	 * command.
+	 *
+	 * Additionally, this also serves as the index into
+	 * `priv->irq_db_indices` where this ring's irq doorbell's
+	 * BAR2 offset, `irq_db_idx`, can be found.
+	 */
+	int ntfy_id;
+
+	/*
+	 * The fixed bounce buffer for this ring.
+	 * Once allocated, has to be offered to the device
+	 * over the register-page-list adminq command.
+	 */
+	struct gve_queue_page_list *qpl;
+
+	struct task cleanup_task;
+	struct taskqueue *cleanup_tq;
+} __aligned(CACHE_LINE_SIZE);
+
+struct gve_rxq_stats {
+	counter_u64_t rbytes;
+	counter_u64_t rpackets;
+	counter_u64_t rx_dropped_pkt;
+	counter_u64_t rx_copybreak_cnt;
+	counter_u64_t rx_frag_flip_cnt;
+	counter_u64_t rx_frag_copy_cnt;
+	counter_u64_t rx_dropped_pkt_desc_err;
+	counter_u64_t rx_dropped_pkt_mbuf_alloc_fail;
+};
+
+#define NUM_RX_STATS (sizeof(struct gve_rxq_stats) / sizeof(counter_u64_t))
+
+/* power-of-2 sized receive ring */
+struct gve_rx_ring {
+	struct gve_ring_com com;
+	struct gve_dma_handle desc_ring_mem;
+	struct gve_dma_handle data_ring_mem;
+
+	/* accessed in the receive hot path */
+	struct {
+		struct gve_rx_desc *desc_ring;
+		union gve_rx_data_slot *data_ring;
+		struct gve_rx_slot_page_info *page_info;
+
+		struct gve_rx_ctx ctx;
+		struct lro_ctrl lro;
+		uint8_t seq_no; /* helps traverse the descriptor ring */
+		uint32_t cnt; /* free-running total number of completed packets */
+		uint32_t fill_cnt; /* free-running total number of descs and buffs posted */
+		uint32_t mask; /* masks the cnt and fill_cnt to the size of the ring */
+		struct gve_rxq_stats stats;
+	} __aligned(CACHE_LINE_SIZE);
+
+} __aligned(CACHE_LINE_SIZE);
+
+/*
+ * A contiguous representation of the pages composing the Tx bounce buffer.
+ * The xmit taskqueue and the completion taskqueue both simultaneously use it.
+ * Both operate on `available`: the xmit tq lowers it and the completion tq
+ * raises it. `head` is the last location written at and so only the xmit tq
+ * uses it.
+ */
+struct gve_tx_fifo {
+	vm_offset_t base; /* address of base of FIFO */
+	uint32_t size; /* total size */
+	volatile int available; /* how much space is still available */
+	uint32_t head; /* offset to write at */
+};
+
+struct gve_tx_buffer_state {
+	struct mbuf *mbuf;
+	struct gve_tx_iovec iov[GVE_TX_MAX_DESCS];
+};
+
+struct gve_txq_stats {
+	counter_u64_t tbytes;
+	counter_u64_t tpackets;
+	counter_u64_t tso_packet_cnt;
+	counter_u64_t tx_dropped_pkt;
+	counter_u64_t tx_dropped_pkt_nospace_device;
+	counter_u64_t tx_dropped_pkt_nospace_bufring;
+	counter_u64_t tx_dropped_pkt_vlan;
+};
+
+#define NUM_TX_STATS (sizeof(struct gve_txq_stats) / sizeof(counter_u64_t))
+
+/* power-of-2 sized transmit ring */
+struct gve_tx_ring {
+	struct gve_ring_com com;
+	struct gve_dma_handle desc_ring_mem;
+
+	struct task xmit_task;
+	struct taskqueue *xmit_tq;
+
+	/* accessed in the transmit hot path */
+	struct {
+		union gve_tx_desc *desc_ring;
+		struct gve_tx_buffer_state *info;
+		struct buf_ring *br;
+
+		struct gve_tx_fifo fifo;
+		struct mtx ring_mtx;
+
+		uint32_t req; /* free-running total number of packets written to the nic */
+		uint32_t done; /* free-running total number of completed packets */
+		uint32_t mask; /* masks the req and done to the size of the ring */
+		struct gve_txq_stats stats;
+	} __aligned(CACHE_LINE_SIZE);
+
+} __aligned(CACHE_LINE_SIZE);
+
+struct gve_priv {
+	if_t ifp;
+	device_t dev;
+	struct ifmedia media;
+
+	uint8_t mac[ETHER_ADDR_LEN];
+
+	struct gve_dma_handle aq_mem;
+
+	struct resource *reg_bar; /* BAR0 */
+	struct resource *db_bar; /* BAR2 */
+	struct resource *msix_table;
+
+	uint32_t mgmt_msix_idx;
+	uint32_t rx_copybreak;
+
+	uint16_t num_event_counters;
+	uint16_t default_num_queues;
+	uint16_t tx_desc_cnt;
+	uint16_t rx_desc_cnt;
+	uint16_t rx_pages_per_qpl;
+	uint64_t max_registered_pages;
+	uint64_t num_registered_pages;
+	uint32_t supported_features;
+	uint16_t max_mtu;
+
+	struct gve_dma_handle counter_array_mem;
+	__be32 *counters;
+	struct gve_dma_handle irqs_db_mem;
+	struct gve_irq_db *irq_db_indices;
+
+	enum gve_queue_format queue_format;
+	struct gve_queue_page_list *qpls;
+	struct gve_queue_config tx_cfg;
+	struct gve_queue_config rx_cfg;
+	uint32_t num_queues;
+
+	struct gve_irq *irq_tbl;
+	struct gve_tx_ring *tx;
+	struct gve_rx_ring *rx;
+
+	/*
+	 * Admin queue - see gve_adminq.h
+	 * Since AQ cmds do not run in steady state, 32 bit counters suffice
+	 */
+	struct gve_adminq_command *adminq;
+	vm_paddr_t adminq_bus_addr;
+	uint32_t adminq_mask; /* masks prod_cnt to adminq size */
+	uint32_t adminq_prod_cnt; /* free-running count of AQ cmds executed */
+	uint32_t adminq_cmd_fail; /* free-running count of AQ cmds failed */
+	uint32_t adminq_timeouts; /* free-running count of AQ cmds timeouts */
+	/* free-running count of each distinct AQ cmd executed */
+	uint32_t adminq_describe_device_cnt;
+	uint32_t adminq_cfg_device_resources_cnt;
+	uint32_t adminq_register_page_list_cnt;
+	uint32_t adminq_unregister_page_list_cnt;
+	uint32_t adminq_create_tx_queue_cnt;
+	uint32_t adminq_create_rx_queue_cnt;
+	uint32_t adminq_destroy_tx_queue_cnt;
+	uint32_t adminq_destroy_rx_queue_cnt;
+	uint32_t adminq_dcfg_device_resources_cnt;
+	uint32_t adminq_set_driver_parameter_cnt;
+	uint32_t adminq_verify_driver_compatibility_cnt;
+
+	uint32_t interface_up_cnt;
+	uint32_t interface_down_cnt;
+	uint32_t reset_cnt;
+
+	struct task service_task;
+	struct taskqueue *service_tq;
+
+	struct gve_state_flags state_flags;
+	struct sx gve_iface_lock;
+};
+
+static inline bool
+gve_get_state_flag(struct gve_priv *priv, int pos)
+{
+	return (BIT_ISSET(GVE_NUM_STATE_FLAGS, pos, &priv->state_flags));
+}
+
+static inline void
+gve_set_state_flag(struct gve_priv *priv, int pos)
+{
+	BIT_SET_ATOMIC(GVE_NUM_STATE_FLAGS, pos, &priv->state_flags);
+}
+
+static inline void
+gve_clear_state_flag(struct gve_priv *priv, int pos)
+{
+	BIT_CLR_ATOMIC(GVE_NUM_STATE_FLAGS, pos, &priv->state_flags);
+}
+
+/* Defined in gve_main.c */
+void gve_schedule_reset(struct gve_priv *priv);
+
+/* Register access functions defined in gve_utils.c */
+uint32_t gve_reg_bar_read_4(struct gve_priv *priv, bus_size_t offset);
+void gve_reg_bar_write_4(struct gve_priv *priv, bus_size_t offset, uint32_t val);
+void gve_db_bar_write_4(struct gve_priv *priv, bus_size_t offset, uint32_t val);
+
+/* QPL (Queue Page List) functions defined in gve_qpl.c */
+int gve_alloc_qpls(struct gve_priv *priv);
+void gve_free_qpls(struct gve_priv *priv);
+int gve_register_qpls(struct gve_priv *priv);
+int gve_unregister_qpls(struct gve_priv *priv);
+
+/* TX functions defined in gve_tx.c */
+int gve_alloc_tx_rings(struct gve_priv *priv);
+void gve_free_tx_rings(struct gve_priv *priv);
+int gve_create_tx_rings(struct gve_priv *priv);
+int gve_destroy_tx_rings(struct gve_priv *priv);
+int gve_tx_intr(void *arg);
+int gve_xmit_ifp(if_t ifp, struct mbuf *mbuf);
+void gve_qflush(if_t ifp);
+void gve_xmit_tq(void *arg, int pending);
+void gve_tx_cleanup_tq(void *arg, int pending);
+
+/* RX functions defined in gve_rx.c */
+int gve_alloc_rx_rings(struct gve_priv *priv);
+void gve_free_rx_rings(struct gve_priv *priv);
+int gve_create_rx_rings(struct gve_priv *priv);
+int gve_destroy_rx_rings(struct gve_priv *priv);
+int gve_rx_intr(void *arg);
+void gve_rx_cleanup_tq(void *arg, int pending);
+
+/* DMA functions defined in gve_utils.c */
+int gve_dma_alloc_coherent(struct gve_priv *priv, int size, int align,
+    struct gve_dma_handle *dma);
+void gve_dma_free_coherent(struct gve_dma_handle *dma);
+int gve_dmamap_create(struct gve_priv *priv, int size, int align,
+    struct gve_dma_handle *dma);
+void gve_dmamap_destroy(struct gve_dma_handle *dma);
+
+/* IRQ functions defined in gve_utils.c */
+void gve_free_irqs(struct gve_priv *priv);
+int gve_alloc_irqs(struct gve_priv *priv);
+void gve_unmask_all_queue_irqs(struct gve_priv *priv);
+void gve_mask_all_queue_irqs(struct gve_priv *priv);
+
+/* Systcl functions defined in gve_sysctl.c*/
+void gve_setup_sysctl(struct gve_priv *priv);
+void gve_accum_stats(struct gve_priv *priv, uint64_t *rpackets,
+    uint64_t *rbytes, uint64_t *rx_dropped_pkt, uint64_t *tpackets,
+    uint64_t *tbytes, uint64_t *tx_dropped_pkt);
+
+/* Stats functions defined in gve_utils.c */
+void gve_alloc_counters(counter_u64_t *stat, int num_stats);
+void gve_free_counters(counter_u64_t *stat, int num_stats);
+
+#endif /* _GVE_FBSD_H_ */
diff --git a/sys/dev/gve/gve_adminq.c b/sys/dev/gve/gve_adminq.c
new file mode 100644
index 000000000000..3c332607ebd4
--- /dev/null
+++ b/sys/dev/gve/gve_adminq.c
@@ -0,0 +1,803 @@
+/*-
+ * SPDX-License-Identifier: BSD-3-Clause
+ *
+ * Copyright (c) 2023 Google LLC
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice, this
+ *    list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions and the following disclaimer in the documentation
+ *    and/or other materials provided with the distribution.
+ *
+ * 3. Neither the name of the 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 HOLDER 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.
+ */
+#include <sys/endian.h>
+#include <sys/socket.h>
+#include <sys/time.h>
+
+#include <net/ethernet.h>
+#include <net/if.h>
+#include <net/if_var.h>
+
+#include "gve.h"
+#include "gve_adminq.h"
+
+#define GVE_ADMINQ_SLEEP_LEN_MS 20
+#define GVE_MAX_ADMINQ_EVENT_COUNTER_CHECK 10
+#define GVE_ADMINQ_DEVICE_DESCRIPTOR_VERSION 1
+#define GVE_REG_ADMINQ_ADDR 16
+#define ADMINQ_SLOTS (ADMINQ_SIZE / sizeof(struct gve_adminq_command))
+
+#define GVE_DEVICE_OPTION_ERROR_FMT "%s option error:\n" \
+    "Expected: length=%d, feature_mask=%x.\n" \
+    "Actual: length=%d, feature_mask=%x.\n"
+
+#define GVE_DEVICE_OPTION_TOO_BIG_FMT "Length of %s option larger than expected." \
+    " Possible older version of guest driver.\n"
+
+static
+void gve_parse_device_option(struct gve_priv *priv,
+    struct gve_device_descriptor *device_descriptor,
+    struct gve_device_option *option,
+    struct gve_device_option_gqi_qpl **dev_op_gqi_qpl,
+    struct gve_device_option_jumbo_frames **dev_op_jumbo_frames)
+{
+	uint32_t req_feat_mask = be32toh(option->required_features_mask);
+	uint16_t option_length = be16toh(option->option_length);
+	uint16_t option_id = be16toh(option->option_id);
+
+	/*
+	 * If the length or feature mask doesn't match, continue without
+	 * enabling the feature.
+	 */
+	switch (option_id) {
+	case GVE_DEV_OPT_ID_GQI_QPL:
+		if (option_length < sizeof(**dev_op_gqi_qpl) ||
+		    req_feat_mask != GVE_DEV_OPT_REQ_FEAT_MASK_GQI_QPL) {
+			device_printf(priv->dev, GVE_DEVICE_OPTION_ERROR_FMT,
+			    "GQI QPL", (int)sizeof(**dev_op_gqi_qpl),
+			    GVE_DEV_OPT_REQ_FEAT_MASK_GQI_QPL,
+			    option_length, req_feat_mask);
+			break;
+		}
+
+		if (option_length > sizeof(**dev_op_gqi_qpl)) {
+			device_printf(priv->dev, GVE_DEVICE_OPTION_TOO_BIG_FMT,
+			    "GQI QPL");
+		}
+		*dev_op_gqi_qpl = (void *)(option + 1);
+		break;
+
+	case GVE_DEV_OPT_ID_JUMBO_FRAMES:
+		if (option_length < sizeof(**dev_op_jumbo_frames) ||
+		    req_feat_mask != GVE_DEV_OPT_REQ_FEAT_MASK_JUMBO_FRAMES) {
+			device_printf(priv->dev, GVE_DEVICE_OPTION_ERROR_FMT,
+			    "Jumbo Frames", (int)sizeof(**dev_op_jumbo_frames),
+			    GVE_DEV_OPT_REQ_FEAT_MASK_JUMBO_FRAMES,
+			    option_length, req_feat_mask);
+			break;
+		}
+
+		if (option_length > sizeof(**dev_op_jumbo_frames)) {
+			device_printf(priv->dev,
+			    GVE_DEVICE_OPTION_TOO_BIG_FMT, "Jumbo Frames");
+		}
+		*dev_op_jumbo_frames = (void *)(option + 1);
+		break;
+
+	default:
+		/*
+		 * If we don't recognize the option just continue
+		 * without doing anything.
+		 */
+		device_printf(priv->dev, "Unrecognized device option 0x%hx not enabled.\n",
+		    option_id);
+	}
+}
+
+/* Process all device options for a given describe device call. */
+static int
+gve_process_device_options(struct gve_priv *priv,
+    struct gve_device_descriptor *descriptor,
+    struct gve_device_option_gqi_qpl **dev_op_gqi_qpl,
+    struct gve_device_option_jumbo_frames **dev_op_jumbo_frames)
+{
+	char *desc_end = (char *)descriptor + be16toh(descriptor->total_length);
+	const int num_options = be16toh(descriptor->num_device_options);
+	struct gve_device_option *dev_opt;
+	int i;
+
+	/* The options struct directly follows the device descriptor. */
+	dev_opt = (void *)(descriptor + 1);
+	for (i = 0; i < num_options; i++) {
+		if ((char *)(dev_opt + 1) > desc_end ||
+		    (char *)(dev_opt + 1) + be16toh(dev_opt->option_length) > desc_end) {
+			device_printf(priv->dev,
+			    "options exceed device_descriptor's total length.\n");
+			return (EINVAL);
+		}
+
+		gve_parse_device_option(priv, descriptor, dev_opt,
+		    dev_op_gqi_qpl, dev_op_jumbo_frames);
+		dev_opt = (void *)((char *)(dev_opt + 1) + be16toh(dev_opt->option_length));
+	}
+
+	return (0);
+}
+
+static int gve_adminq_execute_cmd(struct gve_priv *priv,
+    struct gve_adminq_command *cmd);
+
+static int
+gve_adminq_destroy_tx_queue(struct gve_priv *priv, uint32_t id)
+{
+	struct gve_adminq_command cmd = (struct gve_adminq_command){};
+
+	cmd.opcode = htobe32(GVE_ADMINQ_DESTROY_TX_QUEUE);
+	cmd.destroy_tx_queue.queue_id = htobe32(id);
+
+	return (gve_adminq_execute_cmd(priv, &cmd));
+}
+
+static int
+gve_adminq_destroy_rx_queue(struct gve_priv *priv, uint32_t id)
+{
+	struct gve_adminq_command cmd = (struct gve_adminq_command){};
+
+	cmd.opcode = htobe32(GVE_ADMINQ_DESTROY_RX_QUEUE);
+	cmd.destroy_rx_queue.queue_id = htobe32(id);
+
+	return (gve_adminq_execute_cmd(priv, &cmd));
+}
+
+int
+gve_adminq_destroy_rx_queues(struct gve_priv *priv, uint32_t num_queues)
+{
+	int err;
+	int i;
+
+	for (i = 0; i < num_queues; i++) {
+		err = gve_adminq_destroy_rx_queue(priv, i);
+		if (err != 0) {
+			device_printf(priv->dev, "Failed to destroy rxq %d, err: %d\n",
+			    i, err);
+		}
+	}
+
+	if (err != 0)
+		return (err);
+
+	device_printf(priv->dev, "Destroyed %d rx queues\n", num_queues);
+	return (0);
+}
+
+int
+gve_adminq_destroy_tx_queues(struct gve_priv *priv, uint32_t num_queues)
+{
+	int err;
+	int i;
+
+	for (i = 0; i < num_queues; i++) {
+		err = gve_adminq_destroy_tx_queue(priv, i);
+		if (err != 0) {
+			device_printf(priv->dev, "Failed to destroy txq %d, err: %d\n",
+			    i, err);
+		}
+	}
+
+	if (err != 0)
+		return (err);
*** 4709 LINES SKIPPED ***

From nobody Fri Aug 18 23:18:44 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RSHqn19rkz4fs0W;
	Fri, 18 Aug 2023 23:18:45 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RSHqn0ZBmz4nGt;
	Fri, 18 Aug 2023 23:18:45 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692400725;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=orVgJWChtTOcFozdwFyzQPQb4fXMPE6+W6yCWY5Wenw=;
	b=ZxYjP2lmjYseYjPiEeL5tlLwPbUvLNS725EReJdVaUDIewrd4z9cPX6l09Ea0zFZDQC698
	rTtIjxXNK7VoIjjIoNQsgWK919br3n/IlADZfECWLYVkFE7YS4uKD3hsyjYpxX3xp+n2ek
	b3WR8bjI0QZQ7v2Cxx7M1znxlpKuTiLBZnayScikfXGCIEjvgP/6o3QEi8keGxfvqVOlbg
	hErsvaO4ms7lb9B/oWbACJwJH81Bp+JTJMi2OFBKP3Fo4YLHSTWwhl1/Y/29hDeQ6pikHa
	oZuzrdknDD93zTB/Zi1J+cBvWdZ9nymjwEPUUJ38WuoiURB8Rih0Ko3+vGFNmg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692400725;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=orVgJWChtTOcFozdwFyzQPQb4fXMPE6+W6yCWY5Wenw=;
	b=AYtJTgxw+09zVKixk3FJN3eeQkDzFFfko6+QiCcV1TMBwtPkquiNuBR0CX08Sknx398ppo
	JH4eOSa/7o1ruQ6eaPda6QmhwklPowW8nfSmJ1NdsttCFhRUpBisFyKgm8r9+63Ppm9yWf
	kxypVfxkReX3I8KcYgTfaIhj8irlhtglWz3rcp/SJzR+YmGCQVvKDUMdbOYBWpDC6TwpiW
	bQQmLmi1XUjpVwu1V3mE0hzvDrtQbANCIf9CdRFhODM3WzOoM9DDGWoV0+AwFWEXZFpQUw
	Nv5TQuj2A8PgP2lkSGTUzPHCR3WkKhmiLbi5hAN3g8oPsO2Xm+BHHDeM2seqPQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692400725; a=rsa-sha256; cv=none;
	b=I5z5Que3tkAYAmS5PKOxEM0k6DBOI5jrG3bRN/giL73XXqTFj4pDACA472JhvpwEXiuI6s
	/rf4f7mxNBn6Mb6pP8fz0rdysWAGdnEffSTtHYoGfTe+mhvYUPoFLFYd7phEL10eipMC4T
	h8NGCMyDaZU7nHS3wkt24wmjkNJi1LQ0fVlIjEhIYNQxxnNC+SyekOHIh4zJyMC/HfHyqq
	537O+hBe1OZ7JykRdfRyFnLxh/Vi16gpq+pq4L4f/BCSBxAgB4gygeeqJrhxuhfksGPDbo
	BvjQKUxQunEd6MSzPtBW0ks4fGcT5vB4h5Pg1HvJHsLlBz1ddXNU5gncDsiBjQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RSHqm64FKzb40;
	Fri, 18 Aug 2023 23:18:44 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37INIixP018560;
	Fri, 18 Aug 2023 23:18:44 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37INIipR018557;
	Fri, 18 Aug 2023 23:18:44 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 23:18:44 GMT
Message-Id: <202308182318.37INIipR018557@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Xin LI <delphij@FreeBSD.org>
Subject: git: 78f491c86d04 - stable/13 - gve: Fix build on i386 and
  enable LINT builds.
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: delphij
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 78f491c86d04b8938ff7b26481268b8f223d86e0
Auto-Submitted: auto-generated

The branch stable/13 has been updated by delphij:

URL: https://cgit.FreeBSD.org/src/commit/?id=78f491c86d04b8938ff7b26481268b8f223d86e0

commit 78f491c86d04b8938ff7b26481268b8f223d86e0
Author:     Xin LI <delphij@FreeBSD.org>
AuthorDate: 2023-06-04 23:35:00 +0000
Commit:     Xin LI <delphij@FreeBSD.org>
CommitDate: 2023-08-18 23:18:15 +0000

    gve: Fix build on i386 and enable LINT builds.
    
    Reviewed-by:    imp
    Differential Revision: https://reviews.freebsd.org/D40419
    
    (cherry picked from commit 4d779448adb32ef6424abb781dab87065964d42f)
---
 share/man/man4/Makefile  | 5 +----
 sys/amd64/conf/LINT-NOIP | 1 +
 sys/amd64/conf/NOTES     | 3 +++
 sys/arm64/conf/NOTES     | 3 +++
 sys/dev/gve/gve_qpl.c    | 6 +++---
 sys/i386/conf/LINT-NOIP  | 1 +
 sys/i386/conf/NOTES      | 3 +++
 sys/modules/Makefile     | 5 +----
 8 files changed, 16 insertions(+), 11 deletions(-)

diff --git a/share/man/man4/Makefile b/share/man/man4/Makefile
index b7372ac63c2e..46437362dd90 100644
--- a/share/man/man4/Makefile
+++ b/share/man/man4/Makefile
@@ -918,15 +918,12 @@ _nvme.4=	nvme.4
 
 .if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" || \
 	 ${MACHINE_CPUARCH} == "aarch64"
+_gve.4=		gve.4
 _ipmi.4=	ipmi.4
 _linux.4=	linux.4
 _ossl.4=	ossl.4
 .endif
 
-.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "aarch64"
-_gve.4=		gve.4
-.endif
-
 .if ${MACHINE_CPUARCH} == "arm" || ${MACHINE_CPUARCH} == "aarch64" || \
 	 ${MACHINE_CPUARCH} == "riscv"
 _cgem.4=	cgem.4
diff --git a/sys/amd64/conf/LINT-NOIP b/sys/amd64/conf/LINT-NOIP
index 544893cf1332..c99462fce081 100644
--- a/sys/amd64/conf/LINT-NOIP
+++ b/sys/amd64/conf/LINT-NOIP
@@ -13,6 +13,7 @@ nodevice ale
 nodevice bxe
 nodevice em
 nodevice fxp
+nodevice gve
 nodevice jme
 nodevice msk
 nodevice mxge
diff --git a/sys/amd64/conf/NOTES b/sys/amd64/conf/NOTES
index a72e9f2623bb..eacfd77fd7e1 100644
--- a/sys/amd64/conf/NOTES
+++ b/sys/amd64/conf/NOTES
@@ -506,6 +506,9 @@ device		virtio_console	# VirtIO Console device
 # Linux KVM paravirtualization support
 device		kvm_clock	# KVM paravirtual clock driver
 
+# Google Virtual NIC
+device		gve		# Google Virtual NIC (gVNIC) driver
+
 # Microsoft Hyper-V enhancement support
 device 		hyperv		# HyperV drivers
 device		hvhid		# HyperV HID device
diff --git a/sys/arm64/conf/NOTES b/sys/arm64/conf/NOTES
index 0d275c0fdd2c..aa69035f291f 100644
--- a/sys/arm64/conf/NOTES
+++ b/sys/arm64/conf/NOTES
@@ -63,6 +63,9 @@ device		virtio_mmio
 device		virtio_blk
 device		vtnet
 
+# Google Virtual NIC
+device		gve		# Google Virtual NIC (gVNIC) driver
+
 # CPU frequency control
 device		cpufreq
 
diff --git a/sys/dev/gve/gve_qpl.c b/sys/dev/gve/gve_qpl.c
index 891d132d2f10..3c6d9af6feee 100644
--- a/sys/dev/gve/gve_qpl.c
+++ b/sys/dev/gve/gve_qpl.c
@@ -101,9 +101,9 @@ gve_alloc_qpl(struct gve_priv *priv, uint32_t id, int npages, bool single_kva)
 	int i;
 
 	if (npages + priv->num_registered_pages > priv->max_registered_pages) {
-		device_printf(priv->dev, "Reached max number of registered pages %lu > %lu\n",
-		    npages + priv->num_registered_pages,
-		    priv->max_registered_pages);
+		device_printf(priv->dev, "Reached max number of registered pages %ju > %ju\n",
+		    (uintmax_t)npages + priv->num_registered_pages,
+		    (uintmax_t)priv->max_registered_pages);
 		return (EINVAL);
 	}
 
diff --git a/sys/i386/conf/LINT-NOIP b/sys/i386/conf/LINT-NOIP
index 1c91dae98baa..32c5af163381 100644
--- a/sys/i386/conf/LINT-NOIP
+++ b/sys/i386/conf/LINT-NOIP
@@ -12,6 +12,7 @@ nodevice ale
 nodevice bxe
 nodevice em
 nodevice fxp
+nodevice gve
 nodevice jme
 nodevice lio
 nodevice msk
diff --git a/sys/i386/conf/NOTES b/sys/i386/conf/NOTES
index 2c069e1c52b8..07255ff81165 100644
--- a/sys/i386/conf/NOTES
+++ b/sys/i386/conf/NOTES
@@ -723,6 +723,9 @@ device		virtio_console	# VirtIO Console device
 # Linux KVM paravirtualization support
 device 		kvm_clock	# KVM paravirtual clock driver
 
+# Google Virtual NIC
+device		gve		# Google Virtual NIC (gVNIC) driver
+
 options 	HYPERV
 device		hyperv		# HyperV drivers
 device		hvhid		# HyperV HID device
diff --git a/sys/modules/Makefile b/sys/modules/Makefile
index 079638c2f6cd..48d6328835e0 100644
--- a/sys/modules/Makefile
+++ b/sys/modules/Makefile
@@ -534,6 +534,7 @@ SUBDIR+=	linux_common
 .if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \
     ${MACHINE_CPUARCH} == "i386"
 _ena=		ena
+_gve=		gve
 .if ${MK_OFED} != "no" || defined(ALL_MODULES)
 _ibcore=	ibcore
 _ipoib=		ipoib
@@ -557,10 +558,6 @@ _mlx4ib=	mlx4ib
 _mlx5ib=	mlx5ib
 .endif
 
-.if ${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64"
-_gve=		gve
-.endif
-
 _ossl=		ossl
 _rtw88=		rtw88
 .if ${MK_SOURCELESS_UCODE} != "no"

From nobody Fri Aug 18 23:18:45 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RSHqp1Yrcz4frxM;
	Fri, 18 Aug 2023 23:18:46 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RSHqp0x7Tz4nYG;
	Fri, 18 Aug 2023 23:18:46 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692400726;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=VzCzvM0df/QNylriAJf8balj0vHywVKRCIDeUODjA+8=;
	b=TgtwFTKOThjA49wZTIX05YdkHsb3KokCLpJmkitJzAQWV9rH3zpKRm6mJduF7GsJJVqSJ6
	0fwvBTmDNbHLSwxshX+3/w+7MUjGVvpjPdOwi2hgVNIc5nxfLSNAd1LU6wxClhe4rOnXOF
	8ZFRbHupd38tt/kOBC5bSLI4AvYTJjwFXqZRuA8Capm6wb83KEGUQiFmhp+yAhd8CfyXld
	x9dIkGkMCM2z4sS1EVjD3vUnvy5CCMHt79hsKdg1yTgKTh7+OjpmScjhy2AoJrvsMwht8u
	M0mZ8/E4+t/zogvAJk4/iEXioIdMy73f0FzC7JYRZz5oScAOUmQen7N5mb66rg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692400726;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=VzCzvM0df/QNylriAJf8balj0vHywVKRCIDeUODjA+8=;
	b=Sa4grg/ltkDYkZyZ6YMmqYCIav7bYBnSgbcU/kNnTXF7/psliGlfQM4HtCkS+zdjF0aAI+
	JGXOe2BuRXgsFsMgUMbi2WUEStfoAUYJB8kLMp9TUW9VpbkYS+ppOIIj2GG7c0sUaEGlwf
	1RU+L27l4WkipIpfuEBfWeEgTq8lRWNipA1qQfmLEfrytjhI/vhH8nhDdxrhRooW0AY4Ec
	3Z1k6YlBOqeuSOvL4tw8bXZ5aYQKfO1MxB4CSWXyDGECgN5ltQ91CSaBzSW8L8q15NbUqy
	3ZlLVWE8/++sRqID7HW/QUG3m9l2Ix6+V63sA1Stcgo0kSA+PbFlPfEoAb2K8w==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692400726; a=rsa-sha256; cv=none;
	b=KjVMNFwQ13nB97xfsxH+9qW+NoJDUK9JcEWOOLKNCL1TJ2un7AYcd5T6b29fKI7kj6hIsr
	/GHGHabEKDcV43A5L0RgItaA6yOJNLZHwW9uSbL4tVb1Ev1wNnLaiC2MR8wL/ihBqUNgGP
	en7XltxTIsRQha4IvX3cAEwZDPUt37qX/LC4gQsZASJayAZ/lnDoVQ7mpos656vOIh1AHu
	vriZXScLgPl2zQlwFubyvRdw6G3mb4nJtkjMUBtg93TlBX3jW7vK72WiGb3RG9oZP/gDvY
	ORHawkV7ntzV2f4y6r+uROhmQtBNJnZ1HU9gw8Ws5LKyfhbkrV9+ctg+G7vZkw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RSHqp02ZFzbQv;
	Fri, 18 Aug 2023 23:18:46 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37INIjD2018617;
	Fri, 18 Aug 2023 23:18:45 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37INIjWu018614;
	Fri, 18 Aug 2023 23:18:45 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 23:18:45 GMT
Message-Id: <202308182318.37INIjWu018614@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Xin LI <delphij@FreeBSD.org>
Subject: git: 80a7ab5a4f79 - stable/13 - gve: Add PNP info to PCI
  attachment of gve(4) driver.
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: delphij
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 80a7ab5a4f7952c24f817ee8a21bc1d4a1fb2436
Auto-Submitted: auto-generated

The branch stable/13 has been updated by delphij:

URL: https://cgit.FreeBSD.org/src/commit/?id=80a7ab5a4f7952c24f817ee8a21bc1d4a1fb2436

commit 80a7ab5a4f7952c24f817ee8a21bc1d4a1fb2436
Author:     Xin LI <delphij@FreeBSD.org>
AuthorDate: 2023-06-06 00:58:43 +0000
Commit:     Xin LI <delphij@FreeBSD.org>
CommitDate: 2023-08-18 23:18:15 +0000

    gve: Add PNP info to PCI attachment of gve(4) driver.
    
    Reviewed-by:            imp
    Differential Revision:  https://reviews.freebsd.org/D40429
    
    (cherry picked from commit 1bbdfb0b438689a839e29094fcb582a104cbabd9)
---
 sys/dev/gve/gve_main.c | 28 ++++++++++++++++++++++++----
 1 file changed, 24 insertions(+), 4 deletions(-)

diff --git a/sys/dev/gve/gve_main.c b/sys/dev/gve/gve_main.c
index ae45a0cfc24a..383fd326d33a 100644
--- a/sys/dev/gve/gve_main.c
+++ b/sys/dev/gve/gve_main.c
@@ -38,6 +38,16 @@
 
 #define GVE_DEFAULT_RX_COPYBREAK 256
 
+/* Devices supported by this driver. */
+static struct gve_dev {
+        uint16_t vendor_id;
+        uint16_t device_id;
+        const char *name;
+} gve_devs[] = {
+	{ PCI_VENDOR_ID_GOOGLE, PCI_DEV_ID_GVNIC, "gVNIC" }
+};
+#define GVE_DEVS_COUNT nitems(gve_devs)
+
 struct sx gve_global_lock;
 
 static int
@@ -701,10 +711,18 @@ gve_service_task(void *arg, int pending)
 static int
 gve_probe(device_t dev)
 {
-	if (pci_get_vendor(dev) == PCI_VENDOR_ID_GOOGLE &&
-	    pci_get_device(dev) == PCI_DEV_ID_GVNIC) {
-		device_set_desc(dev, "gVNIC");
-		return (BUS_PROBE_DEFAULT);
+	uint16_t deviceid, vendorid;
+	int i;
+
+	vendorid = pci_get_vendor(dev);
+	deviceid = pci_get_device(dev);
+
+	for (i = 0; i < GVE_DEVS_COUNT; i++) {
+		if (vendorid == gve_devs[i].vendor_id &&
+		    deviceid == gve_devs[i].device_id) {
+			device_set_desc(dev, gve_devs[i].name);
+			return (BUS_PROBE_DEFAULT);
+		}
 	}
 	return (ENXIO);
 }
@@ -851,3 +869,5 @@ DRIVER_MODULE(gve, pci, gve_driver, gve_devclass, 0, 0);
 #else
 DRIVER_MODULE(gve, pci, gve_driver, 0, 0);
 #endif
+MODULE_PNP_INFO("U16:vendor;U16:device", pci, gve, gve_devs,
+    GVE_DEVS_COUNT);

From nobody Fri Aug 18 23:18:47 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RSHqq6jZNz4fs3B;
	Fri, 18 Aug 2023 23:18:47 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RSHqq23GLz4nNZ;
	Fri, 18 Aug 2023 23:18:47 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692400727;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=6UuCi8GqzM68uneb8rwSRdx4JXrz76Fodu+Ip2WwI8c=;
	b=IP9HLHT978tzQKbxQlE74ub60jxbCGpEzdyxkbIkuYAnj3lfSsjGxp98ACMon2iRz2IIRc
	8PC4w/g5a7tMqruLfVFA8TcinCgDBLdtHBAFmphSKo9e2+l5zeGpYGEhoVwtI7Yj45xeZ9
	6ZKydEI6qu0n6bmLpOC4AZwreLWrbNvr98jwoLB9CJ6tfjyLLJpQu9QXxFIA+XnG6jDHev
	Q4oCVTMW2o/fTW8LnG0LErysx3291Otd1Z7ByeCANArBamzA4hOlrIE+6SyvsP8N1B2aYQ
	FCNxSEujPOupRTR3s+Q9tz/Ok7/Gzpd+0sUgPaVlDY7j2Fk9pMKT8oyyQ6MFew==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692400727;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=6UuCi8GqzM68uneb8rwSRdx4JXrz76Fodu+Ip2WwI8c=;
	b=IHKYZuhxn31BHeGEH3/iuARvXRbCAMz9/EX4cuoY6ZQrus7QMKE8RBCNqxqJMOsBT7Sdwx
	cbpQ6dNaRyeR78tU1Iygg6p/WQT05sIrUZmJgM0MdPeMEfBgWWXcw3Y+aNnC8St7tu/Su8
	p2ql8608c7HkYoMwcdyqk8BPUUOpDkt2xaBabk6CxGDMEb8SQDQOMVQWzm0IgXjOr+i4vL
	bOYN4qUiYs7qikvBoyhOAAIBB+phm24TDLTL+7vQ6/94VtU+BTYL+DUVoH7E50RnnFY85y
	sucfU4MCIZ5PvZFx/usaJaYPpG3nUjDLN+X7u8AzPtjQB7KNa1JWRyF1Bfxrrw==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692400727; a=rsa-sha256; cv=none;
	b=pTrsuo8Te9QOoAp+ijixqmiev+tqFMX4zsWi+lHddhExdj7xz5C/LtycQc1yi96HGUmzhR
	EmJQwZ6duO8nKIY7e3zr9weK9Zll3jFJE3qzEewjbttue9IqboYTOJQSoeirSiOS2IJyDV
	xZeTAwZhyfVF9u0hTY2o54ksjJXkJ5r84id5cywN9gmT975+/sblz5WGYY1aSx/ZKVL2ZR
	Oc0ljfrbICok0jPEglZYV1G/6xsLya4fzaRUP0VIiOnNfdCngq0WnwHPRDCyIzpk3nKybD
	rJbDa3BjNaQXKblJpBXgyWUxKUMdOtOJEjEBhDy+DP//yE7IulZioE2cAotXsQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RSHqq15zjzb41;
	Fri, 18 Aug 2023 23:18:47 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37INIldN018671;
	Fri, 18 Aug 2023 23:18:47 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37INIlcJ018668;
	Fri, 18 Aug 2023 23:18:47 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 23:18:47 GMT
Message-Id: <202308182318.37INIlcJ018668@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Xin LI <delphij@FreeBSD.org>
Subject: git: 06d98c3bf47e - stable/13 - gve: Unobfuscate code by
  using nitems directly for loop.
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: delphij
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 06d98c3bf47ec79f2e0c2942088eade399ea78b5
Auto-Submitted: auto-generated

The branch stable/13 has been updated by delphij:

URL: https://cgit.FreeBSD.org/src/commit/?id=06d98c3bf47ec79f2e0c2942088eade399ea78b5

commit 06d98c3bf47ec79f2e0c2942088eade399ea78b5
Author:     Xin LI <delphij@FreeBSD.org>
AuthorDate: 2023-06-07 04:14:30 +0000
Commit:     Xin LI <delphij@FreeBSD.org>
CommitDate: 2023-08-18 23:18:15 +0000

    gve: Unobfuscate code by using nitems directly for loop.
    
    While there, also make MODULE_PNP_INFO to reflect that the device
    description is provided.
    
    Reported-by:    jrtc27
    Reviewed-by:    jrtc27, imp
    Differential Revision: https://reviews.freebsd.org/D40430
    
    (cherry picked from commit 1177a6c8dcfd6625c541d6ffc3c6915b8b6354f7)
---
 sys/dev/gve/gve_main.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/sys/dev/gve/gve_main.c b/sys/dev/gve/gve_main.c
index 383fd326d33a..c3ee6d5c3433 100644
--- a/sys/dev/gve/gve_main.c
+++ b/sys/dev/gve/gve_main.c
@@ -46,7 +46,6 @@ static struct gve_dev {
 } gve_devs[] = {
 	{ PCI_VENDOR_ID_GOOGLE, PCI_DEV_ID_GVNIC, "gVNIC" }
 };
-#define GVE_DEVS_COUNT nitems(gve_devs)
 
 struct sx gve_global_lock;
 
@@ -717,7 +716,7 @@ gve_probe(device_t dev)
 	vendorid = pci_get_vendor(dev);
 	deviceid = pci_get_device(dev);
 
-	for (i = 0; i < GVE_DEVS_COUNT; i++) {
+	for (i = 0; i < nitems(gve_devs); i++) {
 		if (vendorid == gve_devs[i].vendor_id &&
 		    deviceid == gve_devs[i].device_id) {
 			device_set_desc(dev, gve_devs[i].name);
@@ -869,5 +868,5 @@ DRIVER_MODULE(gve, pci, gve_driver, gve_devclass, 0, 0);
 #else
 DRIVER_MODULE(gve, pci, gve_driver, 0, 0);
 #endif
-MODULE_PNP_INFO("U16:vendor;U16:device", pci, gve, gve_devs,
-    GVE_DEVS_COUNT);
+MODULE_PNP_INFO("U16:vendor;U16:device;D:#", pci, gve, gve_devs,
+    nitems(gve_devs));

From nobody Fri Aug 18 23:18:48 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RSHqt0Ynwz4fs5j;
	Fri, 18 Aug 2023 23:18:50 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RSHqr3KWBz4nbh;
	Fri, 18 Aug 2023 23:18:48 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692400728;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=wKy0vfVKahljse/DD19vrmlUWd15UJ/0OlC0WUBPjJc=;
	b=r60z0HgjePPMn4paBWYM5OOdhqFEye+98Eiif667V4asxs58NvhAGnvcYs2xfvquJibkON
	pZcGCL5B9JIzyyTMufg3/HgrtF/iJXGHnkdFLb2Blr0z1vhDKiUCLQknmsVQxW/qpLHoLl
	/czPNgOIY/IZDM+29jGwNqofHCGEZvTO/Fm1/trxKbEZevTSSBfTubHwobhaViMN13oLeY
	tVdv7ApUag0drv+1EZ3P/ncfwdxB6vnDjRZ5GMnEvUkxFHUuhhBhF9HCuxYDQ9aq4vcZLM
	zXZCXthMC2S8hRBNIIMNPxRsEC+pzKH1f/ttUhsuKP9mcXYVoouLGASNRG/t8Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692400728;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=wKy0vfVKahljse/DD19vrmlUWd15UJ/0OlC0WUBPjJc=;
	b=Zp7lwxwf00ra6Mge5DnHVGrxQ3S3SGVtRloJB7Z5S1XBK9pycYRkg9CwFSpoELXfCCKk5V
	hDgiKqSpY69ZW3E99GhMM5GSZJsuh5xsC2se7aiI5TBZK5LlZhajq26QqJ0o8kdRb3J0rQ
	qpiIeXaarxwb0+kTs3eTRWKjfhw53rbfzJgaVsES3ITbympYKYFKAN9JFe1UjDe6y4YwHi
	YOaSkARsBSGKyX5nMbi2rHRQ8FpvxQdDO1a+5fTLdR1YMOC7Wl7Lcn0JX0ZVvp7ZPjSTGV
	7UXmMUjb1fPda33tQAmIXXvTSl4R1PTzICIvoT4WHRa/fTs0OPMLsPIBpmwXcg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692400728; a=rsa-sha256; cv=none;
	b=jHt/MJKtBOHy0L/9hjiZag0XhtH+U7Mg4S+oEDdU9PtHtB1DGLXVm8BdGoziNuFh1xCGmq
	s+q5XqIfo64rnMqKwtOuX0FPjpdOEG7sJ2RtZTwq81+nYZp76Rj3cwS/33pQE7kpNbwHQp
	qF40dl2gRI5CkcECilpEkqJ9F1r5m4O0AiMm2wcdr13ZLCehywgXGt5OYKY5Je2JtLGo3v
	hDWnEyHL2+HFKvFsEHXuR3Lcqk3uoLHIgaBmp8TcQpVjo+qqWrXieH6X7ylJYcb0q66SrE
	juEHNjd9K0fBRMLHoA1q1c1Q+4wT9kFq6mU/DlakJcLMRPEyOBdrZcCkrWQYYg==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RSHqr25xFzbQw;
	Fri, 18 Aug 2023 23:18:48 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37INImgl018718;
	Fri, 18 Aug 2023 23:18:48 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37INIm8C018715;
	Fri, 18 Aug 2023 23:18:48 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 23:18:48 GMT
Message-Id: <202308182318.37INIm8C018715@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Xin LI <delphij@FreeBSD.org>
Subject: git: 545ab0eb1993 - stable/13 - gve: Fix Tx tcpdump panic
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: delphij
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 545ab0eb19931d8b2e978da18811f16b97b94c78
Auto-Submitted: auto-generated

The branch stable/13 has been updated by delphij:

URL: https://cgit.FreeBSD.org/src/commit/?id=545ab0eb19931d8b2e978da18811f16b97b94c78

commit 545ab0eb19931d8b2e978da18811f16b97b94c78
Author:     Shailend Chand <shailend@google.com>
AuthorDate: 2023-07-27 05:22:31 +0000
Commit:     Xin LI <delphij@FreeBSD.org>
CommitDate: 2023-08-18 23:18:16 +0000

    gve: Fix Tx tcpdump panic
    
    Ringing the doorbell before making the BPF call can result in the
    mbuf being freed before the BPF call.
    
    Reviewed-by:            markj
    Differential Revision: https://reviews.freebsd.org/D41189
    
    (cherry picked from commit 74861578d95573e13a2099143f9d4e7edbb82806)
---
 sys/dev/gve/gve_tx.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/sys/dev/gve/gve_tx.c b/sys/dev/gve/gve_tx.c
index dd48bc35a258..db3f7415f412 100644
--- a/sys/dev/gve/gve_tx.c
+++ b/sys/dev/gve/gve_tx.c
@@ -706,12 +706,12 @@ gve_xmit_br(struct gve_tx_ring *tx)
 			break;
 		}
 
+		drbr_advance(ifp, tx->br);
+		BPF_MTAP(ifp, mbuf);
+
 		bus_dmamap_sync(tx->desc_ring_mem.tag, tx->desc_ring_mem.map,
 		    BUS_DMASYNC_PREWRITE);
 		gve_db_bar_write_4(priv, tx->com.db_offset, tx->req);
-
-		drbr_advance(ifp, tx->br);
-                BPF_MTAP(ifp, mbuf);
 	}
 }
 

From nobody Fri Aug 18 23:18:49 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RSHqt1Hhyz4fs0b;
	Fri, 18 Aug 2023 23:18:50 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RSHqs3xbWz4nNr;
	Fri, 18 Aug 2023 23:18:49 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692400729;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=XuO75da1Yroy7TYuvmRHpe7XRJqVlIqW1PxJkKPfWFE=;
	b=Tg65g4ILqHJ/Mc/HgZEVEJdiylTXXH6mWfR6PsOxheFdXtY2B7RdyIexi7wVBOWOJ3YN/W
	TaNxScpiTn1MGaxK342EUyp03zL45l+cSha+TnCraON6sYjciBfuEjvCHDRdLRZeY8bhIC
	EO6TF5andVpNYGXodOzesxMAOkqgXX5ftsM5pnuNIzezIXFNDfJxUWYYRdRu6ScoflQ8Ul
	VFI44987nsHjaXWyENQ69qb3gRTAnkX8Yg+SWHceHkTj6kduubHn0pbqy6ERdIGaZ2I5gZ
	c6HMxeWloLxzMlMU7Qj5kHjNNsIHd3LvH2Wgfwg4B0ZT+eiRcwNwHMCG3WuvGQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692400729;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=XuO75da1Yroy7TYuvmRHpe7XRJqVlIqW1PxJkKPfWFE=;
	b=PRWQi+DdAw7WIOPqvEecAeGERm0cMVx2veOQ7R3e3kpcJmGijw7ml2lva5iv0DhXoqzT+x
	Rm8RKl9AFtA8RuHPDeedx3n4FU1pbAOpj3fzzPTdzpFCUry+rUis1/b+IHAANseHzf35xw
	ovgdfH1SuSbjWsfqRweCc5E8+GYC3YyaIfAzYvHw2VHrAFUUQBpF4QHxFjdZ1QNvCRKDSz
	PXaRJcO49lcoUDjsMhALkGsJZQ93YdtfgeK9lqiBkRxDSjr2U6y+aX21+domoWD6wRtb2g
	XvNrgvC4m57z2zyhc+dapTZQFS733KAfTbYuRNsKg1FLuQeyXlMLuFPfJsh8SQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692400729; a=rsa-sha256; cv=none;
	b=N2mtFv4udi2Fvz6bBng1SmxsTBlbI1fSqnPvASePprA+XaTkqEI3GeK9cSTVaWwxJo6Gn6
	vMnoN7p7Z65UoUkWzqw6UyFHLzAeZTgRBJdhnyFTBsQPfNfdaOq3tul8pX7XsuM+OAygYE
	blqASoTq9UbrMV+V6KVxIsAi4wXqS6AiWbRik+BB4UonZiPpB20oGegowVIB22HqPyn63v
	Qt4Sus+WwG7tmClIJZg0ocNeQOdUvxBscd3k13ZHIsn1QkSTGnk97NraqOQKfDbAGt2Ak0
	jijAE140VNopstlTJXiNn2V1mAMxW5NT6rlGd12qfKxs/E306IclAS4OxS6Nzw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RSHqs32Czzb6R;
	Fri, 18 Aug 2023 23:18:49 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37INInEQ018773;
	Fri, 18 Aug 2023 23:18:49 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37INInfw018770;
	Fri, 18 Aug 2023 23:18:49 GMT
	(envelope-from git)
Date: Fri, 18 Aug 2023 23:18:49 GMT
Message-Id: <202308182318.37INInfw018770@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Xin LI <delphij@FreeBSD.org>
Subject: git: d3ca462c94b2 - stable/13 - gve: Simplify tx loop over
  buffer ring
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: delphij
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: d3ca462c94b268cfa04cb66101fa41a3c752651d
Auto-Submitted: auto-generated

The branch stable/13 has been updated by delphij:

URL: https://cgit.FreeBSD.org/src/commit/?id=d3ca462c94b268cfa04cb66101fa41a3c752651d

commit d3ca462c94b268cfa04cb66101fa41a3c752651d
Author:     Shailend Chand <shailend@google.com>
AuthorDate: 2023-08-12 07:59:26 +0000
Commit:     Xin LI <delphij@FreeBSD.org>
CommitDate: 2023-08-18 23:18:16 +0000

    gve: Simplify tx loop over buffer ring
    
    Reviewed by:    markj
    Differential Revision: https://reviews.freebsd.org/D41281
    
    (cherry picked from commit 543cf924bcdcf064fed417ec3d66000ef66194d2)
---
 sys/dev/gve/gve_tx.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/sys/dev/gve/gve_tx.c b/sys/dev/gve/gve_tx.c
index db3f7415f412..1e62e1226be1 100644
--- a/sys/dev/gve/gve_tx.c
+++ b/sys/dev/gve/gve_tx.c
@@ -696,10 +696,9 @@ gve_xmit_br(struct gve_tx_ring *tx)
 	struct ifnet *ifp = priv->ifp;
 	struct mbuf *mbuf;
 
-	while (!drbr_empty(ifp, tx->br) &&
-	    (if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0) {
+	while ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0 &&
+	    (mbuf = drbr_peek(ifp, tx->br)) != NULL) {
 
-		mbuf = drbr_peek(ifp, tx->br);
 		if (__predict_false(gve_xmit(tx, mbuf) != 0)) {
 			drbr_putback(ifp, tx->br, mbuf);
 			taskqueue_enqueue(tx->xmit_tq, &tx->xmit_task);

From nobody Sat Aug 19 00:35:56 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RSKXr37ynz4fy4S;
	Sat, 19 Aug 2023 00:35:56 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RSKXr2Xlfz3FnD;
	Sat, 19 Aug 2023 00:35:56 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692405356;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=CQgOiI+buD1Hy8d/y+2vO+Ri1JRzwWaqfZiwXL8rYsI=;
	b=YAtsmL2TZ3Ibdl9lmDlZVvqCNqs9iV6/qNAHqAfgthY7Qnmv6NUUK1iP6a0lm7RqSz4d52
	bq0rGPuyEh70InvOvJ83PyAHLZInL/kbk7nxKpxr1qWEZbHsKZGqWKxpi/WkBETUo2W4yy
	EGOr/aLaKsXFpV8ZlKRVS4qNyeA1IL2SsHWqUh8ft0dsXiIfEq1pie1zr1eWhh7Y9PBFqU
	UiXAOMLL0jRXOAd2VWEFHWqp1qRISYBZngpjPkrDTkso9kkl3LvoGMOti8e3Xbf5yZIwhw
	XNX3ZlTaz0RVE5it5Cbxc2OvUksKEmxacl2kcS2z7TbDcfvJarHcvMspYY5ZwA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692405356;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=CQgOiI+buD1Hy8d/y+2vO+Ri1JRzwWaqfZiwXL8rYsI=;
	b=aMcCOYpRRZ8sivpJWo9fsiuLel5iRLC4GLyjFT+ZHICtpqA2aFSOUI8NxcjdIVHXN2CTe4
	Oj1zZYmJcw4K7xX0JkXfCS1wef8XYOUeHdULQWiblsxIG1nO2DIZY3eTwgziKKmEEpymY4
	TsprsPU5U/k++BCM4+UGIHYCKuml0uTiAQR0MtAKZUVr2zYIAHyztH9+18Gt79LjfXetc+
	cp8lhajoZefPaPLVDW1QimdHgkcnFfZH/HAs33usolOaYKL4l1rEi4fP6YmmUz99eu3Xd5
	tEhPI4/dzzKTC5c3p8VxUxHF/yLHOlynwntxcvbWSKqbGDC0KUurh5Qqs8XlwQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692405356; a=rsa-sha256; cv=none;
	b=BuZIHIAZ1B44Ve52SW0FwsCgxgVp4TNOb6t/HSXMk/GPMya40j25FrkgObe8hHd3VyT9kV
	V3RNzshfxVQZ+N8zs/73kEkxpg6xMa6pR9Z+rk/KJdzMYA9VG8mne4Im5toAJDXKLsXVkE
	jnlUwdnPVp5GtjbgjGJHNdHAVVtGeA9e4IElQIrVv8nYPjbOpmcW2lkQCyDGoXlh/8MJ1V
	H7LbJ3DJ84hobTKT+FF879TP1qX9yjfmetutazGtzxTcxfu2P0vvxM+2e7j0nw5WSdVHTd
	VH00qz0HsJn4PkqDRXxYCWcjR6g2OQNbGYoeCYizz9o04+6ldv2vWKXBNXBaCw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RSKXr1bL9zd6K;
	Sat, 19 Aug 2023 00:35:56 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37J0ZuWb050582;
	Sat, 19 Aug 2023 00:35:56 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37J0ZuLn050579;
	Sat, 19 Aug 2023 00:35:56 GMT
	(envelope-from git)
Date: Sat, 19 Aug 2023 00:35:56 GMT
Message-Id: <202308190035.37J0ZuLn050579@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Konstantin Belousov <kib@FreeBSD.org>
Subject: git: 3b6a41e84994 - stable/13 - libc vdso time functions:
  correctly convert errors into errnos
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: kib
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 3b6a41e84994350767335a3e008f1a02a628689f
Auto-Submitted: auto-generated

The branch stable/13 has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=3b6a41e84994350767335a3e008f1a02a628689f

commit 3b6a41e84994350767335a3e008f1a02a628689f
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2023-08-12 15:45:43 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2023-08-19 00:35:29 +0000

    libc vdso time functions: correctly convert errors into errnos
    
    (cherry picked from commit 41acfee690da6289d570338e6365c1d7ef61dad5)
---
 lib/libc/sys/clock_gettime.c | 6 +++++-
 lib/libc/sys/gettimeofday.c  | 6 +++++-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/lib/libc/sys/clock_gettime.c b/lib/libc/sys/clock_gettime.c
index ec8ec13a754d..b2a414455245 100644
--- a/lib/libc/sys/clock_gettime.c
+++ b/lib/libc/sys/clock_gettime.c
@@ -48,7 +48,11 @@ __clock_gettime(clockid_t clock_id, struct timespec *ts)
 		error = __vdso_clock_gettime(clock_id, ts);
 	else
 		error = ENOSYS;
-	if (error == ENOSYS)
+	if (error == ENOSYS) {
 		error = __sys_clock_gettime(clock_id, ts);
+	} else if (error != 0) {
+		errno = error;
+		error = -1;
+	}
 	return (error);
 }
diff --git a/lib/libc/sys/gettimeofday.c b/lib/libc/sys/gettimeofday.c
index 22177b15a5c7..d955aaa907e2 100644
--- a/lib/libc/sys/gettimeofday.c
+++ b/lib/libc/sys/gettimeofday.c
@@ -44,7 +44,11 @@ __gettimeofday(struct timeval *tv, struct timezone *tz)
 	int error;
 
 	error = __vdso_gettimeofday(tv, tz);
-	if (error == ENOSYS)
+	if (error == ENOSYS) {
 		error = __sys_gettimeofday(tv, tz);
+	} else if (error != 0) {
+		errno = error;
+		error = -1;
+	}
 	return (error);
 }

From nobody Sat Aug 19 00:35:57 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RSKXs453Rz4fyRL;
	Sat, 19 Aug 2023 00:35:57 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RSKXs3S6wz3FYv;
	Sat, 19 Aug 2023 00:35:57 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692405357;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=khTtSBBXFiSZkarHKC03AIy5mDMtW0T8yGezViVivfs=;
	b=EWgZEfVt+LfPgN6Tnp8zXHHJYGBU7yOi/pZV8aDWCSJ/OwXzfCywD/F+Zc1aGt3G8N40vo
	JXEFRCfLNYMfedYwPMQhmMHeOmTVl6IM+wFkZPGs3K7JbU/EQCePwlTJczxALPb0A4cdYo
	n3qndVew8adQxCiuEii1HTBzR6Ec4m9FzzfgTOe3e8n3ixbApzYGG4p11oefT41hOFfoLX
	AyZZeyjNmdX/xVbGRdh/78vxs5b5HaQeNbTHf2qN7apzSuK8xH0+m00L3Iiu4UQ102BJ7J
	47eG2LzcAak6zb7JGDu9pkAQFUldVWwo7ldkmlACLP290VFYcau0D0TMbfjT8A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692405357;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=khTtSBBXFiSZkarHKC03AIy5mDMtW0T8yGezViVivfs=;
	b=tZdeeWfgQtcuK9hbvcDOBTrZ/8T3lLT82FdQZu5UfyuUMvG2ULi0oroBH/xU/Qd249tpii
	+SEWGv31QV95qos3nU6TL7PrwwIB01uaQpWflrkiXrlv//XqkvJ1av8IYWs4oyuR0i6Vcq
	Cqr4CMnGGiAZ5GtuOrRCNcE38HNAEa4uob7FZa/r8hYutrgG5vg84m4WAlpr/2VjL00qsn
	RLoHQXBUFc8RJEOOAan9BDts4DV3SpBd57ky0gagJ5nnelaYswr61HFGMPPMaPw0uUyR0e
	2uD8Awl+rMcAXH59ja7efA4RiH8E0ySKGYPMV8tPHOdTzyVmSMDaOgNuhIYX/Q==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692405357; a=rsa-sha256; cv=none;
	b=RXOlf92Iy82UA7aiaArQ5ACp3H2p7HQJSqkKbigvu7nGGRM0cBUU3VZtHfaO980n5GEnfj
	+qSNmmBQQ9TfnJKZTba9UiKSanr/z+lI+sNrzzYq3DDN1AJqeYgZn/wHP4lt9IZ5RulFGe
	pzKqLWM0FtECFN/vE9DHnFkQpPjuD7MO6zWHiJFNR2r85nP2rd4WDcQsPeP6sSglxMFLhJ
	rxodVCbjV/9cK1ZTEHZ0OpSwzjWWnKd00uobvLSSkCKr061XONTT1sqcqYFGN2CFQ+7Mq2
	Wn7af/uP4tbLBiMPHsyYJ+SDp1ys85aqPt6t5KSNcZgRl/iQAneNW8bhWJXLJw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RSKXs2HcXzd0C;
	Sat, 19 Aug 2023 00:35:57 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37J0ZvjE050615;
	Sat, 19 Aug 2023 00:35:57 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37J0Zv3B050612;
	Sat, 19 Aug 2023 00:35:57 GMT
	(envelope-from git)
Date: Sat, 19 Aug 2023 00:35:57 GMT
Message-Id: <202308190035.37J0Zv3B050612@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Konstantin Belousov <kib@FreeBSD.org>
Subject: git: 8fe73008036b - stable/13 - tc_fill_vdso_timehands32():
  fix
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: kib
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 8fe73008036b0770e3d0a5b41e9b845feb46bdf1
Auto-Submitted: auto-generated

The branch stable/13 has been updated by kib:

URL: https://cgit.FreeBSD.org/src/commit/?id=8fe73008036b0770e3d0a5b41e9b845feb46bdf1

commit 8fe73008036b0770e3d0a5b41e9b845feb46bdf1
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2023-08-12 19:51:37 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2023-08-19 00:35:29 +0000

    tc_fill_vdso_timehands32(): fix
    
    PR:     273085
    
    (cherry picked from commit 93626d54370292b09cd0ca604b144737109e9071)
---
 sys/dev/acpica/acpi_hpet.c | 3 ++-
 sys/x86/include/vdso.h     | 7 ++++++-
 sys/x86/x86/pvclock.c      | 2 +-
 sys/x86/x86/tsc.c          | 3 ++-
 4 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/sys/dev/acpica/acpi_hpet.c b/sys/dev/acpica/acpi_hpet.c
index e35e3808a980..e6f83512feed 100644
--- a/sys/dev/acpica/acpi_hpet.c
+++ b/sys/dev/acpica/acpi_hpet.c
@@ -173,7 +173,8 @@ hpet_vdso_timehands32(struct vdso_timehands32 *vdso_th32,
 	vdso_th32->th_algo = VDSO_TH_ALGO_X86_HPET;
 	vdso_th32->th_x86_shift = 0;
 	vdso_th32->th_x86_hpet_idx = device_get_unit(sc->dev);
-	vdso_th32->th_x86_pvc_last_systime = 0;
+	vdso_th32->th_x86_pvc_last_systime[0] = 0;
+	vdso_th32->th_x86_pvc_last_systime[1] = 0;
 	vdso_th32->th_x86_pvc_stable_mask = 0;
 	bzero(vdso_th32->th_res, sizeof(vdso_th32->th_res));
 	return (sc->mmap_allow != 0);
diff --git a/sys/x86/include/vdso.h b/sys/x86/include/vdso.h
index 546a92a47301..be90e26702f7 100644
--- a/sys/x86/include/vdso.h
+++ b/sys/x86/include/vdso.h
@@ -49,7 +49,12 @@
 #ifdef _KERNEL
 #ifdef COMPAT_FREEBSD32
 
-#define	VDSO_TIMEHANDS_MD32	VDSO_TIMEHANDS_MD
+#define	VDSO_TIMEHANDS_MD32			\
+	uint32_t	th_x86_shift;		\
+	uint32_t	th_x86_hpet_idx;	\
+	uint32_t	th_x86_pvc_last_systime[2];\
+	uint8_t		th_x86_pvc_stable_mask;	\
+	uint8_t		th_res[15];
 
 #endif
 #endif
diff --git a/sys/x86/x86/pvclock.c b/sys/x86/x86/pvclock.c
index 3da3373bb2ee..9d8ac99f5a8a 100644
--- a/sys/x86/x86/pvclock.c
+++ b/sys/x86/x86/pvclock.c
@@ -253,7 +253,7 @@ pvclock_tc_vdso_timehands32(struct vdso_timehands32 *vdso_th,
 	vdso_th->th_algo = VDSO_TH_ALGO_X86_PVCLK;
 	vdso_th->th_x86_shift = 0;
 	vdso_th->th_x86_hpet_idx = 0;
-	vdso_th->th_x86_pvc_last_systime =
+	*(uint64_t *)&vdso_th->th_x86_pvc_last_systime[0] =
 	    atomic_load_acq_64(&pvclock_last_systime);
 	vdso_th->th_x86_pvc_stable_mask = !pvc->vdso_force_unstable &&
 	    pvc->stable_flag_supported ? PVCLOCK_FLAG_TSC_STABLE : 0;
diff --git a/sys/x86/x86/tsc.c b/sys/x86/x86/tsc.c
index 94305dfdc82f..4eab4dc1692b 100644
--- a/sys/x86/x86/tsc.c
+++ b/sys/x86/x86/tsc.c
@@ -967,7 +967,8 @@ x86_tsc_vdso_timehands32(struct vdso_timehands32 *vdso_th32,
 	vdso_th32->th_algo = VDSO_TH_ALGO_X86_TSC;
 	vdso_th32->th_x86_shift = (int)(intptr_t)tc->tc_priv;
 	vdso_th32->th_x86_hpet_idx = 0xffffffff;
-	vdso_th32->th_x86_pvc_last_systime = 0;
+	vdso_th32->th_x86_pvc_last_systime[0] = 0;
+	vdso_th32->th_x86_pvc_last_systime[1] = 0;
 	vdso_th32->th_x86_pvc_stable_mask = 0;
 	bzero(vdso_th32->th_res, sizeof(vdso_th32->th_res));
 	return (1);

From nobody Sat Aug 19 06:37:55 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RSTZW5nVPz4qHmD;
	Sat, 19 Aug 2023 06:37:55 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RSTZW5Bccz4QG4;
	Sat, 19 Aug 2023 06:37:55 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692427075;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=WNlmUoMwgv2uk/OaWj1um+YRgk6vn1hxqNjgAuhJVSg=;
	b=xH0bJJwys9xp8fchjmGWJhMbf665eiwoiTdT6us4hid51BMFgkj5noxf9A1TN0x741ZcC+
	xqNUam8rPkONIduXTLlxUWfWuWu0Q1keI2ib+y0///VVsaGpQ/a6CXAj5TfzEIXg7QY/jU
	MOHfpzeGcs89ofY1vf+IPC5fCAE3gcWOmt2Gg3vuo7aA6vLbweVI8PTkjUUqnN6wDLsffQ
	kH+Z49xHHAOzq1devKsAiEPxtpDLVO+UxpbryAkZFYzvMP1SgXhc6BuRkbqQhLrKJFfOuf
	DVmB9bYe2kMqfMt+0QKNJoRpqb3tkUm6qx2nuIGEJE3Ytq01bkzJ4WJ3Uni7Vw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692427075;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=WNlmUoMwgv2uk/OaWj1um+YRgk6vn1hxqNjgAuhJVSg=;
	b=Rs8VsmUaKWu6JPov+0G6UqOSYELKZ7ZUkc/L0k+wHg6uPOjcqkEd53xQmxgbcrFhu93L6F
	aMCP0p38PJW13IQ2NvoD1Mm/xwRvaYWm91VvZVZOtQhgBSLgYZxWgjy/FSKx+EZYbEPmaq
	mlPvDjIJtQKDyCq80sSVeqBEDLoquavy/Jl10ebCqRNkSfCgX+XPrpCbA07VYh4jjucNqo
	TYGVJqv9X8OH+GftytXOx4QM2PFvojhimnvXqoDExyvmmuNr2ayWJ49JENWozmokV+m9yQ
	1f/51QwTpTaqVHip4aP++qfaam+S+AF97Y+RnoCNfobQKlCikTtyhdzIwQaSmw==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692427075; a=rsa-sha256; cv=none;
	b=M3dRSJpS2ftdcN3EZjvR5V12PKBllBs+QYX61IbFqs3p9sp45Hi8DaOOfUoM2RvghxwaiI
	Oy/clnZAHBPcP9A8m43FHY0Z/uyg+gV/FZn9DayD0g5Q5PwyszTnGBc6FuPAEHP4PuRewP
	0a2CXpEIGK19rEMNeJDmNm1BQqVvV0WVeTXbZa4Su/LoGYxM0bCbz91ug5K9PRzCoEK1aI
	BBxmNL5ES9kmxMTbR29X2srschUjszm81f5JT7BQz5EczH7FZI3Nt24fwj1O+Z9AVbqsz+
	3DjBlRRl8FqxbjIVR4YJI0Gi+bcAdMAdWG2eYaCuuuScsj9SYGfc9khTDVJp/w==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RSTZW3wQ4znj2;
	Sat, 19 Aug 2023 06:37:55 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37J6btq5052137;
	Sat, 19 Aug 2023 06:37:55 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37J6bt8P052134;
	Sat, 19 Aug 2023 06:37:55 GMT
	(envelope-from git)
Date: Sat, 19 Aug 2023 06:37:55 GMT
Message-Id: <202308190637.37J6bt8P052134@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Eugene Grosbein <eugen@FreeBSD.org>
Subject: git: b71dde1aeba2 - stable/13 - tftpd: introduce new option
  -S
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: eugen
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: b71dde1aeba2972522a6742bbae77c2c6497eb01
Auto-Submitted: auto-generated

The branch stable/13 has been updated by eugen:

URL: https://cgit.FreeBSD.org/src/commit/?id=b71dde1aeba2972522a6742bbae77c2c6497eb01

commit b71dde1aeba2972522a6742bbae77c2c6497eb01
Author:     Eugene Grosbein <eugen@FreeBSD.org>
AuthorDate: 2023-07-20 20:11:33 +0000
Commit:     Eugene Grosbein <eugen@FreeBSD.org>
CommitDate: 2023-08-19 06:35:58 +0000

    tftpd: introduce new option -S
    
    Historically, tftpd disallowed write requests to existing files
    that are not publicly writable. Such requirement is questionable at least.
    Let us make it possible to run tftpd in chrooted environment
    keeping files non-world writable.
    
    New option -S enables write requests to existing files
    for chrooted run according to generic file permissions.
    It is ignored unless tftpd runs chrooted.
    
    Requested by:   marck
    Differential:   https://reviews.freebsd.org/D41090 (based on)
    
    (cherry picked from commit 273a307d0b80743fb08e23237b3f74dc94a8fa2a)
    (cherry picked from commit 03c2616dc530e5b23f06f9aa421012154590e578)
---
 libexec/tftpd/tftpd.8 | 22 ++++++++++++++++++----
 libexec/tftpd/tftpd.c | 14 +++++++++++---
 2 files changed, 29 insertions(+), 7 deletions(-)

diff --git a/libexec/tftpd/tftpd.8 b/libexec/tftpd/tftpd.8
index e4f5ab94a2fe..a984cdc32c94 100644
--- a/libexec/tftpd/tftpd.8
+++ b/libexec/tftpd/tftpd.8
@@ -28,7 +28,7 @@
 .\"	@(#)tftpd.8	8.1 (Berkeley) 6/4/93
 .\" $FreeBSD$
 .\"
-.Dd March 2, 2020
+.Dd July 20, 2023
 .Dt TFTPD 8
 .Os
 .Sh NAME
@@ -72,7 +72,11 @@ Files containing the string
 or starting with
 .Dq Li "../"
 are not allowed.
-Files may be written only if they already exist and are publicly writable.
+Files may be written only if they already exist (unless the
+.Fl w
+option is used) and are publicly writable (unless chrooted and the
+.Fl S
+option is used).
 Note that this extends the concept of
 .Dq public
 to include
@@ -191,6 +195,12 @@ to change its root directory to
 After doing that but before accepting commands,
 .Nm
 will switch credentials to an unprivileged user.
+.It Fl S
+If
+.Nm
+runs chrooted, the option allows write requests according to generic
+file permissions, skipping requirement for files to be publicly writable.
+The option is ignored for non-chrooted run.
 .It Fl u Ar user
 Switch credentials to
 .Ar user
@@ -275,12 +285,16 @@ the
 .Fl c
 option was introduced in
 .Fx 4.3 ,
-and the
+the
 .Fl F
 and
 .Fl W
 options were introduced in
-.Fx 7.4 .
+.Fx 7.4 ,
+and the
+.Fl S
+option was introduced in
+.Fx 13.3 .
 .Pp
 Support for Timeout Interval and Transfer Size Options (RFC2349)
 was introduced in
diff --git a/libexec/tftpd/tftpd.c b/libexec/tftpd/tftpd.c
index 02fbaaf0d371..3b08fab33dca 100644
--- a/libexec/tftpd/tftpd.c
+++ b/libexec/tftpd/tftpd.c
@@ -98,6 +98,7 @@ static struct dirlist {
 static int	suppress_naks;
 static int	logging;
 static int	ipchroot;
+static int	check_woth = 1;
 static int	create_new = 0;
 static const char *newfile_format = "%Y%m%d";
 static int	increase_name = 0;
@@ -138,7 +139,7 @@ main(int argc, char *argv[])
 	acting_as_client = 0;
 
 	tftp_openlog("tftpd", LOG_PID | LOG_NDELAY, LOG_FTP);
-	while ((ch = getopt(argc, argv, "cCd:F:lnoOp:s:u:U:wW")) != -1) {
+	while ((ch = getopt(argc, argv, "cCd::F:lnoOp:s:Su:U:wW")) != -1) {
 		switch (ch) {
 		case 'c':
 			ipchroot = 1;
@@ -176,6 +177,9 @@ main(int argc, char *argv[])
 		case 's':
 			chroot_dir = optarg;
 			break;
+		case 'S':
+			check_woth = -1;
+			break;
 		case 'u':
 			chuser = optarg;
 			break;
@@ -385,7 +389,11 @@ main(int argc, char *argv[])
 			tftp_log(LOG_ERR, "setuid failed");
 			exit(1);
 		}
+		if (check_woth == -1)
+			check_woth = 0;
 	}
+	if (check_woth == -1)
+		check_woth = 1;
 
 	len = sizeof(me_sock);
 	if (getsockname(0, (struct sockaddr *)&me_sock, &len) == 0) {
@@ -727,7 +735,7 @@ validate_access(int peer, char **filep, int mode)
 			if ((stbuf.st_mode & S_IROTH) == 0)
 				return (EACCESS);
 		} else {
-			if ((stbuf.st_mode & S_IWOTH) == 0)
+			if (check_woth && ((stbuf.st_mode & S_IWOTH) == 0))
 				return (EACCESS);
 		}
 	} else {
@@ -757,7 +765,7 @@ validate_access(int peer, char **filep, int mode)
 					if ((stbuf.st_mode & S_IROTH) != 0)
 						break;
 				} else {
-					if ((stbuf.st_mode & S_IWOTH) != 0)
+					if (!check_woth || ((stbuf.st_mode & S_IWOTH) != 0))
 						break;
 				}
 				err = EACCESS;

From nobody Sat Aug 19 06:44:59 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RSTkg4gmbz4qJ9J;
	Sat, 19 Aug 2023 06:44:59 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RSTkg49nKz4Qrg;
	Sat, 19 Aug 2023 06:44:59 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692427499;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=oD71L/JyLiRE6Ar8hhmV1IWCNo6EUKzUAZ2M3XRYGmo=;
	b=rtHT33mNFF2hsHWOxK47ydTDqsL5jRMMpxY8Qp4kYbxLtH4xSgINjFdpJ1LtofJWoV/Psg
	zxBrzrCniktroXmYiRO9LH3MZdnUwV7n70HftuGWvXKnBu4lC+ZKFcV+82SvKZvnx6L059
	/8xWTIJ0Ff5txSOxPkxPadyNYKeBKgX8SZ7jCZWXdKxGCzDDObFSrOJOtJjUp7aPDdy3aJ
	HC0NbA8pDBf9bXsSPa+Z5fIZ7yvY8WI61r88f6yExz9B0O8No92NnPWo8EXr1Vk0ZjIPBz
	XVJwrMTheiYKLk+tDNDrb0Pk80yCE2kUSUhlJKRSRdgepDJAdLP2g75IK6HRLw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692427499;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=oD71L/JyLiRE6Ar8hhmV1IWCNo6EUKzUAZ2M3XRYGmo=;
	b=DDQkPXqbNcPiIItqZ0i35DYkm4Alo8zQ5am5QzOf+IWn6Nm3AVXBI0AojR2FpH3EEhJUWG
	H3q/EF5iM59zxwdrlsdr1YTk8RII8SCg5ys6rkj9ZsSWcOg0SYQKPa5LVG6L3C6z5QOJLp
	Kst1hQgeFdxgN42EcKR+3bFqI+omXc/tRqROsyL0dzJDe5EHofc5qYjcS0S60nbshgSrt2
	zpNQH2UpZNInxWE/7SybE74ofUoCVjkwU1nf63irz/qoTN+CuykrLT0AIUQOqPWrBV6Cky
	WbQBVHkGBMfPPeeDA4/WVQCHM57fjbpSix/tmIZUbBk2dBgxvHa2G9t9IIBq7w==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692427499; a=rsa-sha256; cv=none;
	b=cPppeiVyzWHOh3z7ReDuaKZ6Bjq8fPVSdbu7H9W1V/O5bBxN6pATQ2R4afv+whqaU7s0iz
	EE/sshwVWiZUGpvGvimypETg/Cc/+enC+rWzmIP4R6Ga0QnWYOfJzH4lJw/Xe4HL3PblLS
	cHSDAVg39kz/g+3a4K3yYWlBROy5sEEr1t18PjbovSua0FCGECFNqlf4F1eRbFpQloMF6U
	GpWa0dBA+7yoopB+gW0i8Dhut3ph7tYnd5T75L79xSnfghZtNQ0Fp4eHX287naFlfUB0Xy
	vZHO6ty8uqpe1P2MpJj9KE1qardiYHIp5u8fRFXSZr+B192tikNp3u509sPajQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RSTkg31QgznnF;
	Sat, 19 Aug 2023 06:44:59 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37J6ixPn068375;
	Sat, 19 Aug 2023 06:44:59 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37J6ixSK068372;
	Sat, 19 Aug 2023 06:44:59 GMT
	(envelope-from git)
Date: Sat, 19 Aug 2023 06:44:59 GMT
Message-Id: <202308190644.37J6ixSK068372@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Eugene Grosbein <eugen@FreeBSD.org>
Subject: git: 9397112d89df - stable/13 - tftpd: fix wrong conflict
  resolution
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: eugen
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 9397112d89df25a9e1ab8d84e8fc88fe789e1324
Auto-Submitted: auto-generated

The branch stable/13 has been updated by eugen:

URL: https://cgit.FreeBSD.org/src/commit/?id=9397112d89df25a9e1ab8d84e8fc88fe789e1324

commit 9397112d89df25a9e1ab8d84e8fc88fe789e1324
Author:     Eugene Grosbein <eugen@FreeBSD.org>
AuthorDate: 2023-08-19 06:43:08 +0000
Commit:     Eugene Grosbein <eugen@FreeBSD.org>
CommitDate: 2023-08-19 06:43:08 +0000

    tftpd: fix wrong conflict resolution
    
    This is direct commit to stable/13 after wrong previous one.
    
    Fixes:  b71dde1aeba2972522a6742bbae77c2c6497eb01
---
 libexec/tftpd/tftpd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libexec/tftpd/tftpd.c b/libexec/tftpd/tftpd.c
index 3b08fab33dca..ed030b23da30 100644
--- a/libexec/tftpd/tftpd.c
+++ b/libexec/tftpd/tftpd.c
@@ -139,7 +139,7 @@ main(int argc, char *argv[])
 	acting_as_client = 0;
 
 	tftp_openlog("tftpd", LOG_PID | LOG_NDELAY, LOG_FTP);
-	while ((ch = getopt(argc, argv, "cCd::F:lnoOp:s:Su:U:wW")) != -1) {
+	while ((ch = getopt(argc, argv, "cCd:F:lnoOp:s:Su:U:wW")) != -1) {
 		switch (ch) {
 		case 'c':
 			ipchroot = 1;

From nobody Sat Aug 19 06:58:01 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RSV1j6mHpz4qJt0;
	Sat, 19 Aug 2023 06:58:01 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RSV1j5Rkyz4RGd;
	Sat, 19 Aug 2023 06:58:01 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692428281;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=gn9pfMJd52n0P7pqUzuVWgueAhilAhdY20lCpVtLs78=;
	b=YQmCbdD3kOzXJd2FbviLB0fpgV2BcgGYfxovrDBWr5CvpdVY5NRXM5OQ8X3w3q+z4C5tG1
	1PQYGHNXRVZ1Kfw1oM9jWHazGLByPx248APz+4TXpQa2+qRsiyB83QpjqNKhqvvdlzWwwY
	Rihiczv96+yQO1qQo7Y3jgHmtdHmHkIQlZqGp7KC2sxu7nHMCSDBdMv4vN6IZNwnUJUqPD
	XRmOUeHR3hJ2X4XJyyHxpl1XLa5XvNNK2eLZ/6JF1DKw+mR5LcXBhdLiP5nytDTUPleztn
	HZy0kxVzFg/HzOvtwDxTt8bkrQW5tGJNHwF+/5Vk+5yfB6UvIwdmHkOD1X/Uyw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692428281;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=gn9pfMJd52n0P7pqUzuVWgueAhilAhdY20lCpVtLs78=;
	b=jYb9AC299huytczGPY4xvlZsIde/jNi1D6CUGXfgXj9MtqnEtkLHAPeZ0uwRuLlYKYPlHF
	BYacd7dsk67wbCn5tJG7mw6BDyOzouVH/Rey9OKCsXGWQ/lz+jKEhCu0zCE92xMene7AvV
	w+FZ29v4QqskvLB//0MZOzN5b3P5SE0x3te2mcOyobRBd0bXLN0EVAiUg8Pq1C5ypyZsW0
	czfLDZevzvF6o93SHXUM1yZt36NCNIgBNqAdr3tLuHPzEWgnezB5UyDnxYTdLMjW7Hq1Cm
	mjijLanjXxRXcuZdUMRpmF+sXOpDtoDdUC5M0KUTh3RCkoEUpxjjWlW+3Xi3wg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692428281; a=rsa-sha256; cv=none;
	b=wKuwERhzpG8N5lWc8S+jb8hJ1BLqiKJLu3fGLpXzHboPjkLbUhrYfOEQrnVtQTDcsUdzS2
	VMim+d+KBiZMtiNDcs8P7zDEC0sEw6a93/hCg7n3V+yvcj29FYCUtUfanYyqDymO9NwztP
	R/T5ATEVCN5JGoHDkXejPajRCKVdUq4AoaZlmBejjZL07mQgBjzhx7C0iBSx0gzeo+cT3O
	FILmWFmka5rTHhCYt/94DamNwaUNwFfBVjM0HWuqX3kIgi6idXyy0cfSuvJZD2I4xnkiBG
	BtIrMeX5ZMsWYHQe4UmvOcggysJYst4MuWssar2cmqfyvWWZbywjp7/S3+lbxA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RSV1j45mLzp82;
	Sat, 19 Aug 2023 06:58:01 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37J6w1bQ085864;
	Sat, 19 Aug 2023 06:58:01 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37J6w1MR085861;
	Sat, 19 Aug 2023 06:58:01 GMT
	(envelope-from git)
Date: Sat, 19 Aug 2023 06:58:01 GMT
Message-Id: <202308190658.37J6w1MR085861@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Eugene Grosbein <eugen@FreeBSD.org>
Subject: git: a99bf9966590 - stable/12 - tftpd: introduce new option
  -S
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: eugen
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/12
X-Git-Reftype: branch
X-Git-Commit: a99bf9966590859d21d28ec63798820dc07e0ba8
Auto-Submitted: auto-generated

The branch stable/12 has been updated by eugen:

URL: https://cgit.FreeBSD.org/src/commit/?id=a99bf9966590859d21d28ec63798820dc07e0ba8

commit a99bf9966590859d21d28ec63798820dc07e0ba8
Author:     Eugene Grosbein <eugen@FreeBSD.org>
AuthorDate: 2023-07-20 20:11:33 +0000
Commit:     Eugene Grosbein <eugen@FreeBSD.org>
CommitDate: 2023-08-19 06:53:28 +0000

    tftpd: introduce new option -S
    
    Historically, tftpd disallowed write requests to existing files
    that are not publicly writable. Such requirement is questionable at least.
    Let us make it possible to run tftpd in chrooted environment
    keeping files non-world writable.
    
    New option -S enables write requests to existing files
    for chrooted run according to generic file permissions.
    It is ignored unless tftpd runs chrooted.
    
    Requested by:   marck
    Differential:   https://reviews.freebsd.org/D41090 (based on)
    
    (cherry picked from commit 273a307d0b80743fb08e23237b3f74dc94a8fa2a)
    (cherry picked from commit 03c2616dc530e5b23f06f9aa421012154590e578)
---
 libexec/tftpd/tftpd.8 | 22 ++++++++++++++++++----
 libexec/tftpd/tftpd.c | 15 ++++++++++++---
 2 files changed, 30 insertions(+), 7 deletions(-)

diff --git a/libexec/tftpd/tftpd.8 b/libexec/tftpd/tftpd.8
index e4f5ab94a2fe..a984cdc32c94 100644
--- a/libexec/tftpd/tftpd.8
+++ b/libexec/tftpd/tftpd.8
@@ -28,7 +28,7 @@
 .\"	@(#)tftpd.8	8.1 (Berkeley) 6/4/93
 .\" $FreeBSD$
 .\"
-.Dd March 2, 2020
+.Dd July 20, 2023
 .Dt TFTPD 8
 .Os
 .Sh NAME
@@ -72,7 +72,11 @@ Files containing the string
 or starting with
 .Dq Li "../"
 are not allowed.
-Files may be written only if they already exist and are publicly writable.
+Files may be written only if they already exist (unless the
+.Fl w
+option is used) and are publicly writable (unless chrooted and the
+.Fl S
+option is used).
 Note that this extends the concept of
 .Dq public
 to include
@@ -191,6 +195,12 @@ to change its root directory to
 After doing that but before accepting commands,
 .Nm
 will switch credentials to an unprivileged user.
+.It Fl S
+If
+.Nm
+runs chrooted, the option allows write requests according to generic
+file permissions, skipping requirement for files to be publicly writable.
+The option is ignored for non-chrooted run.
 .It Fl u Ar user
 Switch credentials to
 .Ar user
@@ -275,12 +285,16 @@ the
 .Fl c
 option was introduced in
 .Fx 4.3 ,
-and the
+the
 .Fl F
 and
 .Fl W
 options were introduced in
-.Fx 7.4 .
+.Fx 7.4 ,
+and the
+.Fl S
+option was introduced in
+.Fx 13.3 .
 .Pp
 Support for Timeout Interval and Transfer Size Options (RFC2349)
 was introduced in
diff --git a/libexec/tftpd/tftpd.c b/libexec/tftpd/tftpd.c
index 02fbaaf0d371..56b97d4791bc 100644
--- a/libexec/tftpd/tftpd.c
+++ b/libexec/tftpd/tftpd.c
@@ -98,6 +98,7 @@ static struct dirlist {
 static int	suppress_naks;
 static int	logging;
 static int	ipchroot;
+static int	check_woth = 1;
 static int	create_new = 0;
 static const char *newfile_format = "%Y%m%d";
 static int	increase_name = 0;
@@ -138,7 +139,8 @@ main(int argc, char *argv[])
 	acting_as_client = 0;
 
 	tftp_openlog("tftpd", LOG_PID | LOG_NDELAY, LOG_FTP);
-	while ((ch = getopt(argc, argv, "cCd:F:lnoOp:s:u:U:wW")) != -1) {
+	while ((ch = getopt(argc, argv, "cCd:F:lnoOp:s:Su:U:wW")) != -1) {
+>>>>>>> 273a307d0b80 (tftpd: introduce new option -S)
 		switch (ch) {
 		case 'c':
 			ipchroot = 1;
@@ -176,6 +178,9 @@ main(int argc, char *argv[])
 		case 's':
 			chroot_dir = optarg;
 			break;
+		case 'S':
+			check_woth = -1;
+			break;
 		case 'u':
 			chuser = optarg;
 			break;
@@ -385,7 +390,11 @@ main(int argc, char *argv[])
 			tftp_log(LOG_ERR, "setuid failed");
 			exit(1);
 		}
+		if (check_woth == -1)
+			check_woth = 0;
 	}
+	if (check_woth == -1)
+		check_woth = 1;
 
 	len = sizeof(me_sock);
 	if (getsockname(0, (struct sockaddr *)&me_sock, &len) == 0) {
@@ -727,7 +736,7 @@ validate_access(int peer, char **filep, int mode)
 			if ((stbuf.st_mode & S_IROTH) == 0)
 				return (EACCESS);
 		} else {
-			if ((stbuf.st_mode & S_IWOTH) == 0)
+			if (check_woth && ((stbuf.st_mode & S_IWOTH) == 0))
 				return (EACCESS);
 		}
 	} else {
@@ -757,7 +766,7 @@ validate_access(int peer, char **filep, int mode)
 					if ((stbuf.st_mode & S_IROTH) != 0)
 						break;
 				} else {
-					if ((stbuf.st_mode & S_IWOTH) != 0)
+					if (!check_woth || ((stbuf.st_mode & S_IWOTH) != 0))
 						break;
 				}
 				err = EACCESS;

From nobody Sat Aug 19 19:29:50 2023
X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4RSpjC28LBz4mNJq;
	Sat, 19 Aug 2023 19:29:51 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RSpjC1KHtz4gC6;
	Sat, 19 Aug 2023 19:29:51 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1692473391;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=O6yBMmjoopWzLMWNXYV+Jpb+bj/jqkIuffedB70kYTU=;
	b=HsJJaC6GMwURnpykqtQqi/6uBrzrGOxqCDngCfqdgORk5Bh2ypvmAL3i9YNYGv4zWcPBvI
	g6JlStpFTJA7L3w52j5Z1pesVfx0vljEyKNNn2UDK5Pwe97GGZBJ4Yj6tQtkSUJpyd+Hdc
	BzUEn8YUmdHlP0h/ScLn7RfrULKly2HCRPXzcnTNBhXfKb2gHNv+1aHAng720zaT9bwIlF
	wfdeW3gitLE9kW59dgKYNWGRnxVK3I2N1nQohNOIQx2Yhw/GFLBFepq4NM6lC8tkmPVOzj
	QqJ+QpqJFK3m2vhDLiTffeiz7LiZPBL2rOpIA9J4Pe3yg5NPjn8YpEvl5LoqNA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1692473391;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=O6yBMmjoopWzLMWNXYV+Jpb+bj/jqkIuffedB70kYTU=;
	b=MqRbyJGuTyuN4jmIN5Z4CeeFeLDYP3ZpkeetjuHlBLdxjORCITznJ1gD9t15bjc5XjOhmq
	GVA6VVc5QSfPVBMdE3VBhpXrNg4u37DCefhvEoKBWf6QeoXFZ6bFgT+SwoXqotClpF6i/H
	8K14zKFDFZ5njcsDrj+QWAn4SsQI3BcaPB/IjONZ5H4Jq4fAXEsIM5CEo4xEsMQ5q0+8jt
	E9kHUCPGQHNETpjQAYxfogg3WdWhBMCWYL7zKdhdNKREArftgyov7p93pgaaOMGwZg5kfC
	RbLv4X7VFHuOzWL8NjFsBTgHCh3K9OYupzJpNONmKF2yP/RZ/bKlbl4c43znKg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1692473391; a=rsa-sha256; cv=none;
	b=Uxa7PHFdkxuZwjeZNbgAvPQdPv/Jf2WqS0Mr0c0cDC7MyWcGNsViMlt8bS5rfEx44RmKH6
	Dxoy6uEtnK055LFJHF7mF4pJ9u7h9uqydHjC3DxHGHzGnLgwvkYMVEwrVxBCDzo04rvqUQ
	WRtZTrJSQz6DKnPwZqzmG7qzDV6kTLY0cMJ23TxZxG8XCZmkEEjVsBYpD8O86bgYpX6p6d
	KW5uh3YvcQhI1O5i1Esr/VQCqBT/IOj9q5Vbm2YdUI+tgBqTrM3hE6DjZp8DAKk6o5AEQ/
	O/REhwcnMm4lHOjvKzySsTBrFrwXqtDGvCAN4R+ahGmbGwY4XFfeLlkPCE2iOQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4RSpjC0Nr5z186q;
	Sat, 19 Aug 2023 19:29:51 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 37JJTonA035167;
	Sat, 19 Aug 2023 19:29:50 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 37JJTokk035164;
	Sat, 19 Aug 2023 19:29:50 GMT
	(envelope-from git)
Date: Sat, 19 Aug 2023 19:29:50 GMT
Message-Id: <202308191929.37JJTokk035164@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Eugene Grosbein <eugen@FreeBSD.org>
Subject: git: c6dc07c6f1a8 - stable/12 - tftpd: cleanup after
  conflict resolution
List-Id: Commits to the stable branches of the FreeBSD src repository <dev-commits-src-branches.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches
List-Help: <mailto:dev-commits-src-branches+help@freebsd.org>
List-Post: <mailto:dev-commits-src-branches@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-branches+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-branches+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-branches@freebsd.org
X-BeenThere: dev-commits-src-branches@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: eugen
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/12
X-Git-Reftype: branch
X-Git-Commit: c6dc07c6f1a82ab8d97446f01eb0ec4832e92f0e
Auto-Submitted: auto-generated

The branch stable/12 has been updated by eugen:

URL: https://cgit.FreeBSD.org/src/commit/?id=c6dc07c6f1a82ab8d97446f01eb0ec4832e92f0e

commit c6dc07c6f1a82ab8d97446f01eb0ec4832e92f0e
Author:     Eugene Grosbein <eugen@FreeBSD.org>
AuthorDate: 2023-08-19 19:28:49 +0000
Commit:     Eugene Grosbein <eugen@FreeBSD.org>
CommitDate: 2023-08-19 19:28:49 +0000

    tftpd: cleanup after conflict resolution
    
    Fixes:  a99bf9966590859d21d28ec63798820dc07e0ba8
---
 libexec/tftpd/tftpd.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/libexec/tftpd/tftpd.c b/libexec/tftpd/tftpd.c
index 56b97d4791bc..ed030b23da30 100644
--- a/libexec/tftpd/tftpd.c
+++ b/libexec/tftpd/tftpd.c
@@ -140,7 +140,6 @@ main(int argc, char *argv[])
 
 	tftp_openlog("tftpd", LOG_PID | LOG_NDELAY, LOG_FTP);
 	while ((ch = getopt(argc, argv, "cCd:F:lnoOp:s:Su:U:wW")) != -1) {
->>>>>>> 273a307d0b80 (tftpd: introduce new option -S)
 		switch (ch) {
 		case 'c':
 			ipchroot = 1;