From nobody Sun Sep 10 09:01:32 2023
X-Original-To: dev-commits-src-main@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 4Rk3k5029Vz4t2T4;
	Sun, 10 Sep 2023 09:01: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 4Rk3k46glHz4VLH;
	Sun, 10 Sep 2023 09:01:32 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694336492;
	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=L0wa1tHtnMtG0i+iF021w9yq5c9FSUJLyKll7cAMZH8=;
	b=xbDl8xQ2CY3+M+TP8Y63hzWX78cNqgGx81TqcC4vVFgmUU6zZLTgMrsl/sqa6jQai7ZoEI
	uWcgmKvklnQ5DCpisF9lRDDxzGcZJFRqNaOVmkc0dL4/oYf/YsSa5hGZOyqhGkD/WZ1gY6
	mZY88cCMO2hBcQQpPdZ2VXoCiveN+UYqstqQpmummDGfeIrN85KtUVqmKmgj8PD40HW8iS
	uZwCAE7uV+zcXzOcYcKfgruuBg4r8YszUf2QzRtbRmjN3+op7M5XDWATj8uoaxUUE3hUur
	7EV/t3VorkZsjPwTg+k9AIcPzL9JOpGSlA1BC80XzEvRny5SEF3SOh0ugMfCLg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694336492; a=rsa-sha256; cv=none;
	b=s71KvKLbwKhNMQ7CMipo9zp3Fof8Do1FbY3gxyEAoAWOr7JooiOj3VjY1x/ZK6Q49XoGN+
	NSAlURJl2RukhkstJunFGuMXo/WS9OY957ouTc9wJycyxnaAAoSJNfEAk3gjU36gqmcV4o
	SZN45Q6cFXYbiDWrtqpyDJUMCZLFt5GzZ8aoKNANAmEpG7Hu+Ahg6t8oTL+Hj9OLkUhETd
	pRpIg6hPbNf+iX730q4vr0jNBETuCzRbCYWY4iZjAYvdZkkkN+vn0Q4bT7t+WxcMlrD1R3
	PM5e8WWud+YSwLwYhQylkwqs4OcXuDETWvK5C9Xux0iT7EOLx20kxUmSF0LWmQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694336492;
	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=L0wa1tHtnMtG0i+iF021w9yq5c9FSUJLyKll7cAMZH8=;
	b=rSj112Ak4LXTnLeHS27+6s1/9n8uK/i8lV5UZTdtJpLsWNWZYy1cV1W+yygltoztXUZuSc
	lt73mPfzf+bEIEpATyQVe6ppR6FCm2qFL4WaHZMobbZB0+Mx3H+y+OYnBHMQLSkAyP8yo9
	RAaQAqhWxkAg/GLJ+ntPEwQwwAPKDvyYXyJO83Joxt+8S8a05ylIZTCzYuZtTSrkBOOJg0
	oi4y+HIiRtFCp3WrLko6jhn3wcFhobko+sBfJAa8T0kWyFtLIqIY31D/fYds+akMegZMcq
	u36A8xRlWHO9w6nBOuVCD9IXJTJp7rui6q33eWWewoW9dDiD2dLx4XjmYr85KA==
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 4Rk3k45Zt4z11Rk;
	Sun, 10 Sep 2023 09:01: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 38A91W1q004280;
	Sun, 10 Sep 2023 09:01:32 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38A91WIt004277;
	Sun, 10 Sep 2023 09:01:32 GMT
	(envelope-from git)
Date: Sun, 10 Sep 2023 09:01:32 GMT
Message-Id: <202309100901.38A91WIt004277@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Jens Schweikhardt <schweikh@FreeBSD.org>
Subject: git: 4fc08109fe32 - main - Correct the grammo in "will
  underlined".
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: schweikh
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 4fc08109fe32264485a54a7ea45f4ec09a8fcf86
Auto-Submitted: auto-generated

The branch main has been updated by schweikh:

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

commit 4fc08109fe32264485a54a7ea45f4ec09a8fcf86
Author:     Jens Schweikhardt <schweikh@FreeBSD.org>
AuthorDate: 2023-09-10 09:00:21 +0000
Commit:     Jens Schweikhardt <schweikh@FreeBSD.org>
CommitDate: 2023-09-10 09:00:21 +0000

    Correct the grammo in "will underlined".
---
 bin/ls/ls.1 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bin/ls/ls.1 b/bin/ls/ls.1
index c26e7767f88f..9c62f2cc1e38 100644
--- a/bin/ls/ls.1
+++ b/bin/ls/ls.1
@@ -743,7 +743,7 @@ where
 is the foreground color and
 .Ar b
 is the background color.
-When the background color is capitalized, the text will underlined.
+When the background color is capitalized, the text is underlined.
 .Pp
 The color designators are as follows:
 .Pp

From nobody Sun Sep 10 12:59:16 2023
X-Original-To: dev-commits-src-main@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 4Rk90P0c2pz4s6RK;
	Sun, 10 Sep 2023 12:59: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 4Rk90N6kWjz3FHh;
	Sun, 10 Sep 2023 12:59:16 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694350757;
	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=giqbapB2RqNFddha9MhFYfZNPQJ4zjCpYFO1+Mjdlgk=;
	b=WCTibTBRDcW7Y3FPzqcLAU0KQ4leV89m2bV9d3cbmweuYT5YbnlN2W8O6ONP2JR9czsntL
	3QwFKUpe98Bnw7Gp0MAUP5u0IKg1ibtJGLSYT6ClyfHmWpHdXYuLszKOK3eLAIPwXT0jpE
	gN6MnUI+niL2yMgS4G95W212wbVMM/tKXi0NXEXKYG/0RL2SfWvfeuANslIYEe9akTbn51
	Io6bVmbn/2D9N3qBQacJwYrmNFWrXbI4rGfyDPpUX3tAW5XSyOIy7kVW3DQg5UlrFYCpwN
	R/ejA++shp9iQuQ9c0o3veo3Mu2B2gXlN/XSJKCznEWwDHWHGSumzhLQjqJWvQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694350757; a=rsa-sha256; cv=none;
	b=DEAV91y1Gq+6313HyLblwWgn17fKKnLVCyHViQb7WKNvE+J3aNgu9Q5c01MhBr9qEF1ZHH
	Ue77/1SMCRzac2dqtC1zlh53GB8HfxoPVhHzPRbwI8BP07V5LHGDSKx3WxUcXHKoziF+cU
	PqdtA4YbAjEb4H+ELbA06DL3Clza3GFwUSVZMR6Sy8ST4uwFSXGlyX0CsR1Mftvb3dmRyz
	0kEgF10Wqv1eZ5N4xb8BbrLScFSau99UF+yhqsSSk62Uwd8MoZ3UAfaGaWaGbXLrf4xFlK
	mvZ2bjoQq6Y32Y47Z411hWntvgRs/laUe4t9S1PW+rlkjRvpAprs2PVytIkWNQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694350757;
	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=giqbapB2RqNFddha9MhFYfZNPQJ4zjCpYFO1+Mjdlgk=;
	b=ZqI4Qlpxws87hp91iKTBOaQk2H+TVMF9hNC1b2b1/8tZ1Qyhle6Vk/3Vm7VsyLtj1y1uYK
	Hfjcn6sLtYCvNDUAtoDYNz2FKio/OQ/GTbofCTysWXzaNAYe2JWJJho/vhOOGnwZJ+A+CJ
	zYSoeeXba8WqSlV3l9S5nTgN27M5k9BDCNZJgwl/eLSbfJiBp3utKrTap3s9oXvx/ahcT3
	yOUD86D3kNM43NtwfTQPz381Wf0C0iaUxC/vSD19rSkjG2LYRpghxG40x7OXrJk31Q2/iQ
	EC+b/rjjjE1J7UNWUR+/NqWz9eplvDnoEhH61nDN9V1ii9G8QJbC1Lhs1zaqsw==
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 4Rk90N5SgCz16bZ;
	Sun, 10 Sep 2023 12:59:16 +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 38ACxGLD090167;
	Sun, 10 Sep 2023 12:59:16 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38ACxGYQ090164;
	Sun, 10 Sep 2023 12:59:16 GMT
	(envelope-from git)
Date: Sun, 10 Sep 2023 12:59:16 GMT
Message-Id: <202309101259.38ACxGYQ090164@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Robert Clausecker <fuz@FreeBSD.org>
Subject: git: b2618b651b28 - main - lib/libc/amd64/string/memchr.S:
  fix behaviour with overly long buffers
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: fuz
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: b2618b651b28fd29e62a4e285f5be09ea30a85d4
Auto-Submitted: auto-generated

The branch main has been updated by fuz:

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

commit b2618b651b28fd29e62a4e285f5be09ea30a85d4
Author:     Robert Clausecker <fuz@FreeBSD.org>
AuthorDate: 2023-09-10 04:11:07 +0000
Commit:     Robert Clausecker <fuz@FreeBSD.org>
CommitDate: 2023-09-10 12:52:59 +0000

    lib/libc/amd64/string/memchr.S: fix behaviour with overly long buffers
    
    When memchr(buf, c, len) is called with a phony len (say, SIZE_MAX),
    buf + len overflows and we have buf + len < buf.  This confuses the
    implementation and makes it return incorrect results.  Neverthless we
    must support this case as memchr() is guaranteed to work even with
    phony buffer lengths, as long as a match is found before the buffer
    actually ends.
    
    Sponsored by:   The FreeBSD Foundation
    Reported by:    yuri, des
    Tested by:      des
    Approved by:    mjg (blanket, via IRC)
    MFC after:      1 week
    MFC to:         stable/14
    PR:             273652
---
 lib/libc/amd64/string/memchr.S | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/lib/libc/amd64/string/memchr.S b/lib/libc/amd64/string/memchr.S
index e10bd6c22f90..cfab9b1302de 100644
--- a/lib/libc/amd64/string/memchr.S
+++ b/lib/libc/amd64/string/memchr.S
@@ -44,7 +44,9 @@ ARCHENTRY(__memchr, scalar)
 	je	.Lnomatch
 
 	lea	(, %rdi, 8), %ecx
-	add	%rdi, %rdx	# pointer to end of buffer
+	mov	$-1, %rax
+	add	%rdi, %rdx	# pointer to end of buffer or to end of
+	cmovc	%rax, %rdx	# address space (whichever comes first)
 	and	$~7, %rdi	# align to 8 bytes
 	mov	(%rdi), %rax	# load first word
 	movzbl	%sil, %esi	# clear stray high bits
@@ -118,14 +120,15 @@ ARCHENTRY(__memchr, baseline)
 
 	movd		%esi, %xmm2
 	mov		%edi, %ecx
-	add		%rdi, %rdx		# pointer to end of buffer
+	mov		$-1, %r9
+	add		%rdi, %rdx		# pointer to end of buffer or to end of
+	cmovc		%r9, %rdx		# address space (whichever comes first)
 	and		$~0x1f, %rdi		# align to 32 bytes
 	movdqa		(%rdi), %xmm0		# load first 32 bytes
 	movdqa		16(%rdi), %xmm1
 
 	punpcklbw	%xmm2, %xmm2		# c -> cc
 
-	mov		$-1, %r9d
 	shl		%cl, %r9d		# mask with zeroes before the string
 
 	punpcklwd	%xmm2, %xmm2		# cc -> cccc

From nobody Sun Sep 10 13:13:11 2023
X-Original-To: dev-commits-src-main@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 4Rk9JR2lR4z4sH3j;
	Sun, 10 Sep 2023 13:13:11 +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 4Rk9JR2KPRz3LyV;
	Sun, 10 Sep 2023 13:13:11 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694351591;
	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=ViEIBRVEpcr8w3hHTWazjko1BdG+277i91m6vura2Do=;
	b=RoEU4RVMODIChAHbujYCyQi0S0VlDR4lZ0ZG6rVzLeVtlUPbJYXbAlJIcYlJDYQu4hTI9G
	CZLzouKixgC+ibQo79cw7CX0vglYfSzsJjKHxM9wZ4Er88p28cJa691zVWM9JP1jgmY7F8
	bb62S2h+fi0hgXccvkdSemtaqkIkIdX5Tp+b13d+pG+4Z5TM9dPNKy3G2RPpkJz9EN3LHI
	IPSWzRUp/7HUmRRFs0yD61kHE4pU8yB4aqnPgdKjBSba7FLZVcmMaXwNec03UMAHxXjaib
	59VMynwkN3ZvmrS7Cs6rbswl02iIJ1c1T1NQLcx/M1RvQPf55wEbMHN8yCMHvQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694351591; a=rsa-sha256; cv=none;
	b=EZvyU3UVejI+R/JKf6vNTL/Xpg2h9dJWr54Q3NtmYGsswYpTJJs/qxho0S6eB5iF5obCL8
	Vkfwc3xfhC2wtp2wCax1M+WthfNMjOn/3B5aZH7LKbadb1fOYbnJt152BE2V3hjq7oU6LN
	Z2FYOQL3iCiCD05pZBb5oK3nZbo/rCUNSUOK3lHz0n/v15tgAcVOaka25m/xhtIfC99BYd
	ekkasQsM+aOaOzaSUwYH+0TYAEqp519q+v6dmTjG4wjdmrkKkBuW/jpu+UF3RioIFEi1KY
	lvkjEZEjxrpj5xGfuFXKFTM+Ao4armDaweqgwmU02DhYehZ7vRDmiYxF5R6Cbg==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694351591;
	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=ViEIBRVEpcr8w3hHTWazjko1BdG+277i91m6vura2Do=;
	b=rs6KEfEmeX7o39KKXH0YZj3rFmREAlFIvl/i789vLuUnuIPqTKXOeul00AzOHE3/IpxrVb
	6y7auzJzh8ya3IDQjlQwOKaPCZzGG3zZh3Y41YIkMCyCLxjCHogA0DTBDJGo9o/jJ1KJZE
	/IzgFlNxc0HuuvAmkwBWFH1ePJdCOdCkeJ0xev7lHRxmRPY1F3O9NpnlTrbyXg7uECx3qD
	/OMSw/iaQrlCnvxTXMjjZj+luFpXGykL8/ttHdKDLQucyh7gWh0/i1Lz+NBYN4Unb9xO09
	plgh6K6Sl8HKDsamznt6gUpbl1EM8xZ3j3ZjDF3lxpp93bLuM+u1Do8G5nCs8Q==
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 4Rk9JR1Pmnz16x8;
	Sun, 10 Sep 2023 13:13:11 +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 38ADDBXx023511;
	Sun, 10 Sep 2023 13:13:11 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38ADDB0D023508;
	Sun, 10 Sep 2023 13:13:11 GMT
	(envelope-from git)
Date: Sun, 10 Sep 2023 13:13:11 GMT
Message-Id: <202309101313.38ADDB0D023508@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Kristof Provost <kp@FreeBSD.org>
Subject: git: f415a5c1bd56 - main - pfsync: fix state leak
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@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/main
X-Git-Reftype: branch
X-Git-Commit: f415a5c1bd56933367e42312731e4ec553e256ed
Auto-Submitted: auto-generated

The branch main has been updated by kp:

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

commit f415a5c1bd56933367e42312731e4ec553e256ed
Author:     Kristof Provost <kp@FreeBSD.org>
AuthorDate: 2023-09-08 09:21:12 +0000
Commit:     Kristof Provost <kp@FreeBSD.org>
CommitDate: 2023-09-10 13:12:51 +0000

    pfsync: fix state leak
    
    If we receive a state with a route-to interface name set and we can't
    find the interface we do not insert the state. However, in that case we
    must still clean up the state (and state keys).
    Do so, so we do not leak states.
    
    Reviewed by:    Kajetan Staszkiewicz <vegeta@tuxpowered.net>
    MFC after:      3 days
    Sponsored by:   Rubicon Communications, LLC ("Netgate")
    Differential Revision:  https://reviews.freebsd.org/D41779
---
 sys/netpfil/pf/if_pfsync.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/sys/netpfil/pf/if_pfsync.c b/sys/netpfil/pf/if_pfsync.c
index db448c9bbc48..e29c00fcb879 100644
--- a/sys/netpfil/pf/if_pfsync.c
+++ b/sys/netpfil/pf/if_pfsync.c
@@ -685,8 +685,10 @@ pfsync_state_import(union pfsync_state_union *sp, int flags, int msg_version)
 					printf("%s: unknown route interface: %s\n",
 					    __func__, sp->pfs_1400.rt_ifname);
 				if (flags & PFSYNC_SI_IOCTL)
-					return (EINVAL);
-				return (0);	/* skip this state */
+					error = EINVAL;
+				else
+					error = 0;
+				goto cleanup_keys;
 			}
 			break;
 		default:
@@ -734,6 +736,7 @@ pfsync_state_import(union pfsync_state_union *sp, int flags, int msg_version)
 
 cleanup:
 	error = ENOMEM;
+cleanup_keys:
 	if (skw == sks)
 		sks = NULL;
 	uma_zfree(V_pf_state_key_z, skw);

From nobody Sun Sep 10 14:30:22 2023
X-Original-To: dev-commits-src-main@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 4RkC1W2hqwz4t6FJ;
	Sun, 10 Sep 2023 14:30: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 4RkC1W1g50z4KLH;
	Sun, 10 Sep 2023 14:30:23 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694356223;
	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=B641uCPP61dWJ6VzZIsO4LQLBICbrAV2M5JOv3FGaq0=;
	b=oH5JnXOhyEcz9NGL8e99mq07ESHCYRHNY1dG8wv6vRJD6c8xT3bBy60gWv8uj1Ed7KzYpv
	nOIVJdi67GAuppJ34IqL4/KK+eZJMnTHn5Nco+J99r3pki6nTq+SCpZ7K3lS5RD60m7D8t
	0YvM2pmAH+nz99nGzXCuJV0V8Elypi2vcplWlSKXrY2FMUD+1Wj++xHEGA3tfmRydTk5U5
	icn0Y5hiRUMJt+SPCoIeV1GMpee3DIKiqJ0hyfbeqa2lsbCqv5bJ9ob41lE4b9Bk2UJesw
	Gu8+W3+0HuxvUTv+SndSEbvP4tqSaICtMxPFK+t2nwkUWJRSx0LuoCgFIRD3gw==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694356223; a=rsa-sha256; cv=none;
	b=IqevWDy2vPNTRdKfatOCwRYXbmJvN4YVFupE1aPuQbKkYDRLr6K5yvpeDqHEvW1VBPv1Wp
	vInlC9jNBWXpSeprKqZkAaNESxC/8/GYlbZKpyDR5XHaCX5nWmrcIaE0zJETt4ta8CDJC6
	aTIkbxOGrE1lRndodlshu60VBYr05iAQxua3O7bIYkbYgXMg727XutDrZFVE6NAjieSCqZ
	ED34L19pLZ48ZzajN75Fnjz2z4QP6QS+z4YMqJ3m4ecECUjnW2ymMu8piRmWdHvnciVHyY
	b2PQniwZ9kltCy/iQkLNsVo8ZQ+R0ZzPxHY4CPf7CbPUKULfo4c48MoIvyDqMQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694356223;
	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=B641uCPP61dWJ6VzZIsO4LQLBICbrAV2M5JOv3FGaq0=;
	b=nlPMUQg41XUxJrvXVHSDglbTZAkGQUHifiWDN/gzSvDFCvAETCGWriGHkSOGcN5BCa9jM9
	B6uQlzlEA64XM4vhVpjhnTnfwS7XZeKGwer3Iq/se7OiSSWc91e557yJc4+0OgWcy7xjJJ
	Vh9iejtckJlhRtrCoDvUvKNnny95cCQUvOWkS464MKB6dTF9bzC+6tUpJnRfPVjLV1jG3q
	EgI3WvqowIRnZCw6Du7EDEmC0iPOmE5FBMvYfvxHlg51WS91Mzn30YJKz31WoXy0yEzE4A
	W1q1gg8/1oozAR9ygWxpXfGPK26C62YZghUe/tcF2lVtebIynnFW1qIX3gbVUg==
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 4RkC1W0TBZz19K1;
	Sun, 10 Sep 2023 14:30: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 38AEUMBa049968;
	Sun, 10 Sep 2023 14:30:22 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38AEUMCg049965;
	Sun, 10 Sep 2023 14:30:22 GMT
	(envelope-from git)
Date: Sun, 10 Sep 2023 14:30:22 GMT
Message-Id: <202309101430.38AEUMCg049965@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Navdeep Parhar <np@FreeBSD.org>
Subject: git: e203cb393fe0 - main - cxgbe(4): Fix tracing with
  netlink enabled kernels.
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: np
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: e203cb393fe0b963dd585d0576dcc6a47a28c386
Auto-Submitted: auto-generated

The branch main has been updated by np:

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

commit e203cb393fe0b963dd585d0576dcc6a47a28c386
Author:     Navdeep Parhar <np@FreeBSD.org>
AuthorDate: 2023-09-09 19:39:15 +0000
Commit:     Navdeep Parhar <np@FreeBSD.org>
CommitDate: 2023-09-10 14:06:32 +0000

    cxgbe(4): Fix tracing with netlink enabled kernels.
    
    1. The tracing ifnet's name must match the nexus name.  One way to do
       this is to not use a unit number.
    
    2. Do not hold the tracer lock around ether_ifattach or ether_ifdetach.
       netlink calls back into the driver (see stack below) and that leads
       to illegal lock recursion.
    
       tracer_ioctl
       if_ioctl
       get_operstate_ether
       get_operstate
       dump_iface
       rtnl_handle_ifevent
       rtnl_handle_ifattach
       if_attach_internal
       if_attach
       ether_ifattach
       t4_cloner_create
    
    MFC after:      3 days
    Sponsored by:   Chelsio Communications
---
 sys/dev/cxgbe/t4_tracer.c | 21 +++++++--------------
 1 file changed, 7 insertions(+), 14 deletions(-)

diff --git a/sys/dev/cxgbe/t4_tracer.c b/sys/dev/cxgbe/t4_tracer.c
index 4190aa627b14..d9b336c4b64a 100644
--- a/sys/dev/cxgbe/t4_tracer.c
+++ b/sys/dev/cxgbe/t4_tracer.c
@@ -138,7 +138,7 @@ t4_cloner_create(struct if_clone *ifc, char *name, size_t len, caddr_t params)
 	struct match_rr mrr;
 	struct adapter *sc;
 	if_t ifp;
-	int rc, unit;
+	int rc;
 	const uint8_t lla[ETHER_ADDR_LEN] = {0, 0, 0, 0, 0, 0};
 
 	mrr.name = name;
@@ -166,21 +166,14 @@ t4_cloner_create(struct if_clone *ifc, char *name, size_t len, caddr_t params)
 		goto done;
 	}
 
-
-	unit = -1;
-	rc = ifc_alloc_unit(ifc, &unit);
-	if (rc != 0)
-		goto done;
-
 	ifp = if_alloc(IFT_ETHER);
 	if (ifp == NULL) {
-		ifc_free_unit(ifc, unit);
 		rc = ENOMEM;
 		goto done;
 	}
 
-	/* Note that if_xname is not <if_dname><if_dunit>. */
-	if_initname(ifp, name, unit);
+	/* Note that if_xname is identical to the nexus nameunit */
+	if_initname(ifp, name, -1);
 	if_setdname(ifp, t4_cloner_name);
 	if_setinitfn(ifp, tracer_init);
 	if_setflags(ifp, IFF_SIMPLEX | IFF_DRV_RUNNING);
@@ -192,12 +185,14 @@ t4_cloner_create(struct if_clone *ifc, char *name, size_t len, caddr_t params)
 	    tracer_media_status);
 	ifmedia_add(&sc->media, IFM_ETHER | IFM_FDX | IFM_NONE, 0, NULL);
 	ifmedia_set(&sc->media, IFM_ETHER | IFM_FDX | IFM_NONE);
+	sx_xunlock(&t4_trace_lock);
 	ether_ifattach(ifp, lla);
-
+	sx_xlock(&t4_trace_lock);
 	mtx_lock(&sc->ifp_lock);
 	if_setsoftc(ifp, sc);
 	sc->ifp = ifp;
 	mtx_unlock(&sc->ifp_lock);
+	rc = 0;
 done:
 	sx_xunlock(&t4_trace_lock);
 	end_synchronized_op(sc, 0);
@@ -208,7 +203,6 @@ static int
 t4_cloner_destroy(struct if_clone *ifc, if_t ifp)
 {
 	struct adapter *sc;
-	int unit = if_getdunit(ifp);
 
 	sx_xlock(&t4_trace_lock);
 	sc = if_getsoftc(ifp);
@@ -219,10 +213,9 @@ t4_cloner_destroy(struct if_clone *ifc, if_t ifp)
 		mtx_unlock(&sc->ifp_lock);
 		ifmedia_removeall(&sc->media);
 	}
+	sx_xunlock(&t4_trace_lock);
 	ether_ifdetach(ifp);
 	if_free(ifp);
-	ifc_free_unit(ifc, unit);
-	sx_xunlock(&t4_trace_lock);
 
 	return (0);
 }

From nobody Sun Sep 10 18:34:22 2023
X-Original-To: dev-commits-src-main@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 4RkJR31NFlz4sPms;
	Sun, 10 Sep 2023 18:34: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 4RkJR30kH7z4lrM;
	Sun, 10 Sep 2023 18:34:23 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694370863;
	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=KbtUPoZi+xFgkavbG100BStgCx9h30Y/Sym+E/shylM=;
	b=t3Fz88m0ZozqlYmkeBXRWnsZXs75L1vYJKF2i5q0EfreX+AoQ61YVOUaMMAL5QIoZbGQW0
	Fea6yIdoCVsaxrWxnCIvNYNBT7frlU5kDxwaDc3Lo69eedp9iwRqH7gtfZnTm2bkhP7Nqw
	1OpmD3YyWDQUeiz7+g/gO7GqwvxiQwx0aFC7tCkq6lfN9QJLK88WuKeGYs+t2d/y5gNcQp
	htkwE5JXczywpDil3/cn1w7rR2MLo9QjKCbF4SXjitHA/3n+BWl5Pg9S7xfkBC37kP341c
	cH9DUqbH9Hcd3pDwKiFAGNLYk1RAg/jCYyoUrJxuX9VAw05Do4Ds6+EYPiRRkg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694370863; a=rsa-sha256; cv=none;
	b=fvK1/EAYfv0c4pnd/JfHikDEU2fMHF2ErLHGcsZ2bLsmcUAphKKFlRBwy0rrlMcADKOV6T
	JHi/Yj9+tcC2HRGSZklkh11DbmrUOtEi795xTcTDXmju+QnrxwbOb9yeX/cLsbGzRZBiQL
	KVZ5br7AzFS+pEqSscu9DU6ws8OYD2bGMkllC+/s9V6m6FaUT1dc57Tgr3RN9xn4RPCI/P
	FNPGg46zyYjQLn69d5a9O7tffT1LrZx8F5HnkpXuZlNXv9crutPkOt4EtYhfNjkA42S6k7
	rc8S5mrV8adHfIjUllKsXN/B0b76EBt07Wu9VS35hSl0dshzOcBUhExcopZd9g==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694370863;
	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=KbtUPoZi+xFgkavbG100BStgCx9h30Y/Sym+E/shylM=;
	b=G2weYR/bPMzq9e5jaGpQfGSxuaNO1fGOBdaeLZohBBOfpoboAB14hJsuql1fdjLjIt14m0
	NZbY3tBy+s85VBNFbHzIrTwExN1NS/JErrvtCjOsNGBpMX1GhanaWbOsCwtHr6pxfieMW2
	Jj1bSzO/ArhPsQ4IZEEoF7xyq98KKbXnslRycd1mrkVdHRfhdufMK7UwOzQQ0bl54Dsys1
	pdLCVo2MEz1o6RQWGcdm6zX54FpR5c2BOo9awkofhcCqMPZ0uV9+lJjMpwURBwx/yyZ/11
	jM+FtcbiBm/6Yic66gdg1uwGE9wLxfS72Cdd4zNuu6Ro2exhqkDwKJI0EU3izw==
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 4RkJR26vHsz31p;
	Sun, 10 Sep 2023 18:34:22 +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 38AIYMcU059244;
	Sun, 10 Sep 2023 18:34:22 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38AIYMZ6059241;
	Sun, 10 Sep 2023 18:34:22 GMT
	(envelope-from git)
Date: Sun, 10 Sep 2023 18:34:22 GMT
Message-Id: <202309101834.38AIYMZ6059241@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= <des@FreeBSD.org>
Subject: git: ef8abddf103d - main - mkfile: getopt() returns an
  int, not a char.
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@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/main
X-Git-Reftype: branch
X-Git-Commit: ef8abddf103d9dfd5660d50d15e6dbfbb2f47f62
Auto-Submitted: auto-generated

The branch main has been updated by des:

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

commit ef8abddf103d9dfd5660d50d15e6dbfbb2f47f62
Author:     Dag-Erling Smørgrav <des@FreeBSD.org>
AuthorDate: 2023-09-10 18:33:18 +0000
Commit:     Dag-Erling Smørgrav <des@FreeBSD.org>
CommitDate: 2023-09-10 18:33:32 +0000

    mkfile: getopt() returns an int, not a char.
    
    MFC after:      3 days
    Reviewed by:    kevans
    Differential Revision:  https://reviews.freebsd.org/D41804
---
 tests/sys/cddl/zfs/bin/mkfile.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/sys/cddl/zfs/bin/mkfile.c b/tests/sys/cddl/zfs/bin/mkfile.c
index b1034b9ca500..c1afdbd61196 100644
--- a/tests/sys/cddl/zfs/bin/mkfile.c
+++ b/tests/sys/cddl/zfs/bin/mkfile.c
@@ -168,7 +168,7 @@ int
 main(int argc, char *argv[])
 {
 	unsigned long long fsize;
-	char ch;
+	int ch;
 
 	/* We have at least 2 arguments. */
 	if (argc < 3) {

From nobody Sun Sep 10 19:21:45 2023
X-Original-To: dev-commits-src-main@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 4RkKTj6Cqsz4svjt;
	Sun, 10 Sep 2023 19:21: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 4RkKTj5xHPz3GgM;
	Sun, 10 Sep 2023 19:21:45 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694373705;
	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=qOISdwmVSW84eiX7ettxhUnqkup3zr8nT77kGk7Wq/k=;
	b=ySDH0BJDCDCv+GMDscQOjdNlRJ09B9R9cwxWcXCcZJHvPit7lhrRVUwhnORBZkK4b7nc2T
	0+rw69x6HT6b/GfPKSrJwwJIOLQHdzBseXyyLvq3OUikLUwujB8IoS/8ZoAGpRJzC5CQ2D
	03nBc4wAcQrBGnj/vtjb7LMX9x6iNde00QQ0AInVZbUpSbRGd6I7JOYZcrWGtwoWbHNCXs
	vDLDOWk/8bPhWuaWL1yzSet7wWyvt3/9F42lHlK8ztHfjw/dd0XF9GhDUn8gK+V9GaeDkR
	i5QEkSFsBW2fH4lPZzwqm0yRNQI75Bkj94vOLH0WkQOmAXhcTb6bVQDaN+UGcw==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694373705; a=rsa-sha256; cv=none;
	b=YrBauijMQZ4eSePMN5lZYz4LsDBB+keiAa5I/4qnlMLe6tBq/uXyzZZ436IBrI1ftFpmvX
	4KNRCMWKsW4zjJ/1obacY1QPhBtfNHg5G2/xO9YLWY27kFGdAN0sx7pFEAX+v4p9cpbTHW
	k1eRSMTHAYvZLwgg5TSMjB2YMHpT6tseUwkJ4D8EyYxl4qcirxOa71iTCU6j6Os8oXdfXA
	p8STdBBks8T63f3j2UheJ3HQOyb5HxiOxeJbJk2ZpnG7UmQah1M0xUM+pbIKNRKkByA689
	+F1X9Z4rOOJ6a401RJwV0hdwz1NWYWG3CY7A1fBwMZCUfj3PxT36FNgVtNiqLA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694373705;
	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=qOISdwmVSW84eiX7ettxhUnqkup3zr8nT77kGk7Wq/k=;
	b=k7WYMp1C7YYRNXw9Oqxub831YqoiUINtJ2Mp7ioN2p2zSI6EvKy/0Yx5B0cPGRR84wBN2H
	UbiH4dmaqtIunveGHD8rLgYtJwvmz9tIsK5MaSBvTqgKMUuYmiQ4U3cg/v33TXiOTLAsbg
	OKuZFeon718T6ee+vYKNvH1Qjx6C0/Xexm+aqN/JTtkQ5O9LPM/EGD6wt9HLZ1MZtYPhlr
	e2yefNHoF0dyiiGWZM9iH9fZrkeCs+1rcR5tIbchVkxCxafEXXCAbgLQwiND0htMmUcEaM
	ydEspb7kWya+IasbMTArpmA75OXlhqmtMBqXszo49Xvga6t+I0qSsWmJXjfiDQ==
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 4RkKTj50XJz4Lb;
	Sun, 10 Sep 2023 19:21: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 38AJLjAW040022;
	Sun, 10 Sep 2023 19:21:45 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38AJLjXM040019;
	Sun, 10 Sep 2023 19:21:45 GMT
	(envelope-from git)
Date: Sun, 10 Sep 2023 19:21:45 GMT
Message-Id: <202309101921.38AJLjXM040019@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Xin LI <delphij@FreeBSD.org>
Subject: git: 898496ee09ed - main - MFV: file 5.45.
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@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/main
X-Git-Reftype: branch
X-Git-Commit: 898496ee09ed2b7d25f6807edc4515628196ec0a
Auto-Submitted: auto-generated

The branch main has been updated by delphij:

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

commit 898496ee09ed2b7d25f6807edc4515628196ec0a
Merge: ef8abddf103d 72d4668c77f0
Author:     Xin LI <delphij@FreeBSD.org>
AuthorDate: 2023-09-10 19:20:33 +0000
Commit:     Xin LI <delphij@FreeBSD.org>
CommitDate: 2023-09-10 19:21:16 +0000

    MFV: file 5.45.
    
    MFC after:      3 days

 contrib/file/ChangeLog                             |  64 ++-
 contrib/file/README.md                             |   3 +-
 contrib/file/acinclude.m4                          |   5 +-
 contrib/file/config.guess                          |   2 +
 contrib/file/config.h.in                           |  21 +
 contrib/file/config.sub                            |   1 +
 contrib/file/configure                             | 184 ++++++-
 contrib/file/configure.ac                          |  40 +-
 contrib/file/doc/file.man                          |  21 +-
 contrib/file/doc/libmagic.man                      |  26 +-
 contrib/file/doc/magic.man                         |  88 ++--
 contrib/file/libmagic.pc.in                        |   1 +
 contrib/file/magic/Magdir/algol68                  |  12 +-
 contrib/file/magic/Magdir/android                  |  52 +-
 contrib/file/magic/Magdir/animation                |  25 +-
 contrib/file/magic/Magdir/apple                    | 299 +++++++++--
 contrib/file/magic/Magdir/archive                  | 547 ++++++++++++++++++++-
 contrib/file/magic/Magdir/arm                      |  11 +-
 contrib/file/magic/Magdir/asf                      |   4 +-
 contrib/file/magic/Magdir/audio                    |  17 +-
 contrib/file/magic/Magdir/blender                  |  15 +-
 contrib/file/magic/Magdir/bytecode                 |  13 +-
 contrib/file/magic/Magdir/c-lang                   |   8 +-
 contrib/file/magic/Magdir/c64                      | 357 +++++++++++++-
 contrib/file/magic/Magdir/cad                      |  40 +-
 contrib/file/magic/Magdir/coff                     |   3 +-
 contrib/file/magic/Magdir/commands                 |  18 +-
 contrib/file/magic/Magdir/compress                 |  88 +++-
 contrib/file/magic/Magdir/console                  |  52 +-
 contrib/file/magic/Magdir/crypto                   |  46 +-
 contrib/file/magic/Magdir/database                 |  62 ++-
 contrib/file/magic/Magdir/der                      |   9 +-
 contrib/file/magic/Magdir/dsf                      |  25 -
 contrib/file/magic/Magdir/dwarfs                   |  45 ++
 contrib/file/magic/Magdir/elf                      |  10 +-
 contrib/file/magic/Magdir/filesystems              | 211 ++++----
 contrib/file/magic/Magdir/firmware                 | 133 +++++
 contrib/file/magic/Magdir/games                    | 198 +++++++-
 contrib/file/magic/Magdir/gentoo                   |   9 +-
 contrib/file/magic/Magdir/geo                      |  42 +-
 contrib/file/magic/Magdir/images                   | 342 +++++++++++--
 contrib/file/magic/Magdir/intel                    |   8 +-
 contrib/file/magic/Magdir/java                     |   9 +-
 contrib/file/magic/Magdir/javascript               |  64 ++-
 contrib/file/magic/Magdir/jpeg                     |   8 +-
 contrib/file/magic/Magdir/lif                      |   9 +-
 contrib/file/magic/Magdir/linux                    |  99 +++-
 contrib/file/magic/Magdir/llvm                     |   3 +-
 contrib/file/magic/Magdir/macintosh                |  56 ++-
 contrib/file/magic/Magdir/magic                    |  65 ++-
 contrib/file/magic/Magdir/mail.news                |   4 +-
 contrib/file/magic/Magdir/map                      |   7 +-
 contrib/file/magic/Magdir/mathematica              |  69 ++-
 contrib/file/magic/Magdir/meteorological           |   8 +-
 contrib/file/magic/Magdir/misctools                |  66 ++-
 contrib/file/magic/Magdir/modem                    |  12 +-
 contrib/file/magic/Magdir/msdos                    | 460 +++++++++++++++--
 contrib/file/magic/Magdir/msooxml                  |  12 +-
 contrib/file/magic/Magdir/ole2compounddocs         | 155 ++++--
 contrib/file/magic/Magdir/pdf                      |   6 +-
 contrib/file/magic/Magdir/perl                     |   8 +-
 contrib/file/magic/Magdir/playdate                 |  57 +++
 contrib/file/magic/Magdir/printer                  | 144 +++++-
 contrib/file/magic/Magdir/qt                       |  13 +-
 contrib/file/magic/Magdir/rst                      |   6 +-
 contrib/file/magic/Magdir/rust                     |  21 +
 contrib/file/magic/Magdir/scientific               |  43 +-
 contrib/file/magic/Magdir/sendmail                 |   4 +-
 contrib/file/magic/Magdir/sgml                     |  13 +-
 contrib/file/magic/Magdir/sniffer                  |  75 ++-
 contrib/file/magic/Magdir/softquad                 |   9 +-
 contrib/file/magic/Magdir/spectrum                 | 118 ++++-
 contrib/file/magic/Magdir/sql                      |  65 ++-
 contrib/file/magic/Magdir/ssh                      |  11 +-
 contrib/file/magic/Magdir/svf                      |   5 +
 contrib/file/magic/Magdir/sysex                    |   6 +-
 contrib/file/magic/Magdir/terminfo                 |   3 +-
 contrib/file/magic/Magdir/tex                      |  10 +-
 contrib/file/magic/Magdir/tplink                   |  13 +-
 contrib/file/magic/Magdir/troff                    |   8 +-
 contrib/file/magic/Magdir/uterus                   |   4 +-
 contrib/file/magic/Magdir/varied.script            |  64 +--
 contrib/file/magic/Magdir/web                      |   8 +-
 contrib/file/magic/Magdir/windows                  | 532 ++++++++++++++++++--
 contrib/file/magic/Magdir/wordprocessors           |  72 ++-
 contrib/file/magic/Magdir/xenix                    |  18 +-
 contrib/file/magic/Magdir/xilinx                   |  20 +-
 contrib/file/magic/Makefile.am                     |   8 +-
 contrib/file/magic/Makefile.in                     |   8 +-
 contrib/file/src/Makefile.am                       |   8 +-
 contrib/file/src/Makefile.in                       |  23 +-
 contrib/file/src/apprentice.c                      | 275 ++++++-----
 contrib/file/src/apptype.c                         |   8 +-
 contrib/file/src/ascmagic.c                        |  38 +-
 contrib/file/src/asctime_r.c                       |   4 +-
 contrib/file/src/asprintf.c                        |   2 +-
 contrib/file/src/buffer.c                          |  11 +-
 contrib/file/src/cdf.c                             |   2 +-
 contrib/file/src/cdf_time.c                        |   6 +-
 contrib/file/src/compress.c                        | 389 +++++++++++----
 contrib/file/src/ctime_r.c                         |   4 +-
 contrib/file/src/der.c                             |  12 +-
 contrib/file/src/dprintf.c                         |   2 +-
 contrib/file/src/encoding.c                        |  40 +-
 contrib/file/src/file.c                            | 131 ++---
 contrib/file/src/file.h                            | 187 +++----
 contrib/file/src/file_opts.h                       |   4 +-
 contrib/file/src/fmtcheck.c                        |   2 +-
 contrib/file/src/fsmagic.c                         |   8 +-
 contrib/file/src/funcs.c                           | 120 +++--
 contrib/file/src/getline.c                         |   4 +-
 contrib/file/src/getopt_long.c                     |   2 +-
 contrib/file/src/gmtime_r.c                        |   4 +-
 contrib/file/src/is_csv.c                          |  12 +-
 contrib/file/src/is_json.c                         |   6 +-
 contrib/file/src/is_simh.c                         | 209 ++++++++
 contrib/file/src/is_tar.c                          |  14 +-
 contrib/file/src/localtime_r.c                     |   4 +-
 contrib/file/src/magic.c                           |  60 ++-
 contrib/file/src/magic.h.in                        |   9 +-
 contrib/file/src/memtest.c                         |   3 +-
 contrib/file/src/pread.c                           |   2 +-
 contrib/file/src/print.c                           |  30 +-
 contrib/file/src/readcdf.c                         |  26 +-
 contrib/file/src/readelf.c                         |  72 +--
 contrib/file/src/seccomp.c                         |   3 +-
 contrib/file/src/softmagic.c                       | 252 ++++++----
 contrib/file/src/strlcat.c                         |   2 +-
 contrib/file/src/strlcpy.c                         |   2 +-
 contrib/file/src/tar.h                             |   4 +-
 contrib/file/src/vasprintf.c                       |   7 +-
 contrib/file/tests/CVE-2014-1943.result            |   2 +-
 contrib/file/tests/HWP2016.hwp.result              |   1 +
 contrib/file/tests/HWP2016.hwp.testfile            | Bin 0 -> 9216 bytes
 contrib/file/tests/HWP2016.hwpx.zip.result         |   1 +
 contrib/file/tests/HWP2016.hwpx.zip.testfile       | Bin 0 -> 14377 bytes
 contrib/file/tests/HWP97.hwp.result                |   1 +
 contrib/file/tests/HWP97.hwp.testfile              | Bin 0 -> 8975 bytes
 contrib/file/tests/JW07022A.mp3.result             |   2 +-
 contrib/file/tests/Makefile.am                     |  70 ++-
 contrib/file/tests/Makefile.in                     |  70 ++-
 contrib/file/tests/android-vdex-1.result           |   2 +-
 contrib/file/tests/android-vdex-2.result           |   2 +-
 contrib/file/tests/arj.result                      |   2 +-
 contrib/file/tests/bcachefs.result                 |   2 +-
 contrib/file/tests/bcachefs2.result                |   1 +
 contrib/file/tests/bcachefs2.testfile              | Bin 0 -> 8192 bytes
 contrib/file/tests/cl8m8ocofedso.result            |   2 +-
 contrib/file/tests/cmd1.result                     |   1 +
 contrib/file/tests/cmd1.testfile                   |   1 +
 contrib/file/tests/cmd2.result                     |   1 +
 contrib/file/tests/cmd2.testfile                   |   1 +
 contrib/file/tests/cmd3.result                     |   1 +
 contrib/file/tests/cmd3.testfile                   |   2 +
 contrib/file/tests/cmd4.result                     |   1 +
 contrib/file/tests/cmd4.testfile                   |   2 +
 contrib/file/tests/dsd64-dff.result                |   2 +-
 contrib/file/tests/dsd64-dsf.result                |   2 +-
 contrib/file/tests/escapevel.result                |   2 +-
 contrib/file/tests/ext4.result                     |   2 +-
 contrib/file/tests/fit-map-data.result             |   2 +-
 contrib/file/tests/gedcom.result                   |   2 +-
 contrib/file/tests/hddrawcopytool.result           |   2 +-
 contrib/file/tests/hello-racket_rkt.result         |   1 +
 contrib/file/tests/hello-racket_rkt.testfile       | Bin 0 -> 1664 bytes
 contrib/file/tests/issue311docx.result             |   2 +-
 contrib/file/tests/issue359xlsx.result             |   2 +-
 contrib/file/tests/jpeg-text.result                |   1 +
 contrib/file/tests/jpeg-text.testfile              |   1 +
 contrib/file/tests/json1.result                    |   2 +-
 contrib/file/tests/json2.result                    |   2 +-
 contrib/file/tests/json3.result                    |   2 +-
 contrib/file/tests/json4.result                    |   2 +-
 contrib/file/tests/json5.result                    |   2 +-
 contrib/file/tests/json6.result                    |   2 +-
 contrib/file/tests/json7.result                    |   2 +-
 contrib/file/tests/json8.result                    |   2 +-
 contrib/file/tests/jsonlines1.result               |   2 +-
 contrib/file/tests/matilde.arm.result              |   2 +-
 contrib/file/tests/multiple-A.magic                |   2 +
 contrib/file/tests/multiple-B.magic                |   2 +
 contrib/file/tests/multiple.flags                  |   1 +
 contrib/file/tests/multiple.result                 |   1 +
 contrib/file/tests/multiple.testfile               |   1 +
 contrib/file/tests/pcjr.result                     |   2 +-
 contrib/file/tests/pgp-binary-key-v2-phil.result   |   2 +-
 contrib/file/tests/pgp-binary-key-v3-lutz.result   |   2 +-
 contrib/file/tests/pgp-binary-key-v4-dsa.result    |   2 +-
 .../pgp-binary-key-v4-ecc-no-userid-secret.result  |   2 +-
 .../tests/pgp-binary-key-v4-ecc-secret-key.result  |   2 +-
 .../file/tests/pgp-binary-key-v4-rsa-key.result    |   2 +-
 .../pgp-binary-key-v4-rsa-no-userid-secret.result  |   2 +-
 .../tests/pgp-binary-key-v4-rsa-secret-key.result  |   2 +-
 contrib/file/tests/pnm1.result                     |   1 +
 contrib/file/tests/pnm1.testfile                   |   5 +
 contrib/file/tests/pnm2.result                     |   1 +
 contrib/file/tests/pnm2.testfile                   | Bin 0 -> 15 bytes
 contrib/file/tests/pnm3.result                     |   1 +
 contrib/file/tests/pnm3.testfile                   |   5 +
 contrib/file/tests/regex-eol.result                |   2 +-
 contrib/file/tests/registry-pol.result             |   1 +
 contrib/file/tests/registry-pol.testfile           | Bin 0 -> 7094 bytes
 contrib/file/tests/test.c                          |  70 ++-
 contrib/file/tests/uf2.result                      |   2 +-
 contrib/file/tests/xclbin.result                   |   1 +
 contrib/file/tests/xclbin.testfile                 | Bin 0 -> 512 bytes
 contrib/file/tests/zstd-3-skippable-frames.result  |   2 +-
 contrib/file/tests/zstd-dictionary-0.result        |   2 +-
 contrib/file/tests/zstd-dictionary-1.result        |   2 +-
 contrib/file/tests/zstd-dictionary-2.result        |   2 +-
 contrib/file/tests/zstd-skippable-frame-0.result   |   2 +-
 contrib/file/tests/zstd-skippable-frame-4.result   |   2 +-
 contrib/file/tests/zstd-skippable-frame-8.result   |   2 +-
 contrib/file/tests/zstd-skippable-frame-C.result   |   2 +-
 contrib/file/tests/zstd-v0.2-FF.result             |   2 +-
 contrib/file/tests/zstd-v0.3-FF.result             |   2 +-
 contrib/file/tests/zstd-v0.4-FF.result             |   2 +-
 contrib/file/tests/zstd-v0.5-FF.result             |   2 +-
 contrib/file/tests/zstd-v0.6-FF.result             |   2 +-
 contrib/file/tests/zstd-v0.7-00.result             |   2 +-
 contrib/file/tests/zstd-v0.7-21.result             |   2 +-
 contrib/file/tests/zstd-v0.7-22.result             |   2 +-
 contrib/file/tests/zstd-v0.8-00.result             |   2 +-
 contrib/file/tests/zstd-v0.8-01.result             |   2 +-
 contrib/file/tests/zstd-v0.8-02.result             |   2 +-
 contrib/file/tests/zstd-v0.8-03.result             |   2 +-
 contrib/file/tests/zstd-v0.8-16.result             |   2 +-
 contrib/file/tests/zstd-v0.8-20.result             |   2 +-
 contrib/file/tests/zstd-v0.8-21.result             |   2 +-
 contrib/file/tests/zstd-v0.8-22.result             |   2 +-
 contrib/file/tests/zstd-v0.8-23.result             |   2 +-
 contrib/file/tests/zstd-v0.8-F4.result             |   2 +-
 contrib/file/tests/zstd-v0.8-FF.result             |   2 +-
 lib/libmagic/Makefile                              |   1 +
 lib/libmagic/config.h                              |  29 +-
 235 files changed, 6485 insertions(+), 1560 deletions(-)

diff --cc contrib/file/README.md
index 37a3b17856c6,000000000000..26e38045812c
mode 100644,000000..100644
--- a/contrib/file/README.md
+++ b/contrib/file/README.md
@@@ -1,155 -1,0 +1,156 @@@
 +## README for file(1) Command and the libmagic(3) library ##
 +
-     @(#) $File: README.md,v 1.4 2021/10/21 01:51:31 christos Exp $
++    @(#) $File: README.md,v 1.5 2023/05/28 13:59:47 christos Exp $
 +
 +- Bug Tracker: <https://bugs.astron.com/>
 +- Build Status: <https://travis-ci.org/file/file>
 +- Download link: <ftp://ftp.astron.com/pub/file/>
 +- E-mail: <christos@astron.com>
 +- Fuzzing link: <https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:file>
 +- Home page: https://www.darwinsys.com/file/
 +- Mailing List archives: <https://mailman.astron.com/pipermail/file/>
 +- Mailing List: <file@astron.com>
 +- Public repo: <https://github.com/file/file>
 +- Test framework: <https://github.com/file/file-tests>
 +
 +Phone: Do not even think of telephoning me about this program. Send
 +cash first!
 +
 +This is Release 5.x of Ian Darwin's (copyright but distributable)
 +file(1) command, an implementation of the Unix File(1) command.
 +It knows the 'magic number' of several thousands of file types.
 +This version is the standard "file" command for Linux, *BSD, and
 +other systems. (See "patchlevel.h" for the exact release number).
 +
 +The major changes for 5.x are CDF file parsing, indirect magic,
 +name/use (recursion) and overhaul in mime and ascii encoding
 +handling.
 +
 +The major feature of 4.x is the refactoring of the code into a
 +library, and the re-write of the file command in terms of that
 +library. The library itself, libmagic can be used by 3rd party
 +programs that wish to identify file types without having to fork()
 +and exec() file. The prime contributor for 4.0 was Mans Rullgard.
 +
 +UNIX is a trademark of UNIX System Laboratories.
 +
 +The prime contributor to Release 3.8 was Guy Harris, who put in
 +megachanges including byte-order independence.
 +
 +The prime contributor to Release 3.0 was Christos Zoulas, who put
 +in hundreds of lines of source code changes, including his own
 +ANSIfication of the code (I liked my own ANSIfication better, but
 +his (__P()) is the "Berkeley standard" way of doing it, and I wanted
 +UCB to include the code...), his HP-like "indirection" (a feature
 +of the HP file command, I think), and his mods that finally got
 +the uncompress (-z) mode finished and working.
 +
 +This release has compiled in numerous environments; see PORTING
 +for a list and problems.
 +
 +This fine freeware file(1) follows the USG (System V) model of the
 +file command, rather than the Research (V7) version or the V7-derived
 +4.[23] Berkeley one. That is, the file /etc/magic contains much of
 +the ritual information that is the source of this program's power.
 +My version knows a little more magic (including tar archives) than
 +System V; the /etc/magic parsing seems to be compatible with the
 +(poorly documented) System V /etc/magic format (with one exception;
 +see the man page).
 +
 +In addition, the /etc/magic file is built from a subdirectory
 +for easier(?) maintenance.  I will act as a clearinghouse for
 +magic numbers assigned to all sorts of data files that
 +are in reasonable circulation. Send your magic numbers,
 +in magic(5) format please, to the maintainer, Christos Zoulas.
 +
 +COPYING - read this first.
 +* `README` - read this second (you are currently reading this file).
 +* `INSTALL` - read on how to install
 +* `src/apprentice.c` - parses /etc/magic to learn magic
 +* `src/apptype.c` - used for OS/2 specific application type magic
 +* `src/ascmagic.c` - third & last set of tests, based on hardwired assumptions.
 +* `src/asctime_r.c` - replacement for OS's that don't have it.
 +* `src/asprintf.c` - replacement for OS's that don't have it.
 +* `src/buffer.c` - buffer handling functions.
 +* `src/cdf.[ch]` - parser for Microsoft Compound Document Files
 +* `src/cdf_time.c` - time converter for CDF.
 +* `src/compress.c` - handles decompressing files to look inside.
 +* `src/ctime_r.c` - replacement for OS's that don't have it.
 +* `src/der.[ch]` - parser for Distinguished Encoding Rules
 +* `src/dprintf.c` - replacement for OS's that don't have it.
 +* `src/elfclass.h` - common code for elf 32/64.
 +* `src/encoding.c` - handles unicode encodings
 +* `src/file.c` - the main program
 +* `src/file.h` - header file
 +* `src/file_opts.h` - list of options
 +* `src/fmtcheck.c` - replacement for OS's that don't have it.
 +* `src/fsmagic.c` - first set of tests the program runs, based on filesystem info
 +* `src/funcs.c` - utilility functions
 +* `src/getline.c` - replacement for OS's that don't have it.
 +* `src/getopt_long.c` - replacement for OS's that don't have it.
 +* `src/gmtime_r.c` - replacement for OS's that don't have it.
 +* `src/is_csv.c` - knows about Comma Separated Value file format (RFC 4180).
 +* `src/is_json.c` - knows about JavaScript Object Notation format (RFC 8259).
++* `src/is_simh.c` - knows about SIMH tape file format.
 +* `src/is_tar.c, tar.h` - knows about Tape ARchive format (courtesy John Gilmore).
 +* `src/localtime_r.c` - replacement for OS's that don't have it.
 +* `src/magic.h.in` - source file for magic.h
 +* `src/mygetopt.h` - replacement for OS's that don't have it.
 +* `src/magic.c` - the libmagic api
 +* `src/names.h` - header file for ascmagic.c
 +* `src/pread.c` - replacement for OS's that don't have it.
 +* `src/print.c` - print results, errors, warnings.
 +* `src/readcdf.c` - CDF wrapper.
 +* `src/readelf.[ch]` - Stand-alone elf parsing code.
 +* `src/softmagic.c` - 2nd set of tests, based on /etc/magic
 +* `src/mygetopt.h` - replacement for OS's that don't have it.
 +* `src/strcasestr.c` - replacement for OS's that don't have it.
 +* `src/strlcat.c` - replacement for OS's that don't have it.
 +* `src/strlcpy.c` - replacement for OS's that don't have it.
 +* `src/strndup.c` - replacement for OS's that don't have it.
 +* `src/tar.h` - tar file definitions
 +* `src/vasprintf.c` - for systems that don't have it.
 +* `doc/file.man` - man page for the command
 +* `doc/magic.man` - man page for the magic file, courtesy Guy Harris.
 +	Install as magic.4 on USG and magic.5 on V7 or Berkeley; cf Makefile.
 +
 +Magdir - directory of /etc/magic pieces
 +------------------------------------------------------------------------------
 +
 +If you submit a new magic entry please make sure you read the following
 +guidelines:
 +
 +- Initial match is preferably at least 32 bits long, and is a _unique_ match
 +- If this is not feasible, use additional check
 +- Match of <= 16 bits are not accepted
 +- Delay printing string as much as possible, don't print output too early
 +- Avoid printf arbitrary byte as string, which can be a source of
 +  crash and buffer overflow
 +
 +- Provide complete information with entry:
 +  * One line short summary
 +  * Optional long description
 +  * File extension, if applicable
 +  * Full name and contact method (for discussion when entry has problem)
 +  * Further reference, such as documentation of format
 +
 +gpg for dummies:
 +------------------------------------------------------------------------------
 +
 +```
 +$ gpg --verify file-X.YY.tar.gz.asc file-X.YY.tar.gz
 +gpg: assuming signed data in `file-X.YY.tar.gz'
 +gpg: Signature made WWW MMM DD HH:MM:SS YYYY ZZZ using DSA key ID KKKKKKKK
 +```
 +
 +To download the key:
 +
 +```
 +$ gpg --keyserver hkp://keys.gnupg.net --recv-keys KKKKKKKK
 +```
 +------------------------------------------------------------------------------
 +
 +
 +Parts of this software were developed at SoftQuad Inc., developers
 +of SGML/HTML/XML publishing software, in Toronto, Canada.
 +SoftQuad was swallowed up by Corel in 2002 and does not exist any longer.
diff --cc contrib/file/magic/Magdir/dwarfs
index 000000000000,3700a33c5d7a..3700a33c5d7a
mode 000000,100644..100644
--- a/contrib/file/magic/Magdir/dwarfs
+++ b/contrib/file/magic/Magdir/dwarfs
diff --cc contrib/file/magic/Magdir/firmware
index 000000000000,4835b12e8d04..4835b12e8d04
mode 000000,100644..100644
--- a/contrib/file/magic/Magdir/firmware
+++ b/contrib/file/magic/Magdir/firmware
diff --cc contrib/file/magic/Magdir/playdate
index 000000000000,77f8c689378d..77f8c689378d
mode 000000,100644..100644
--- a/contrib/file/magic/Magdir/playdate
+++ b/contrib/file/magic/Magdir/playdate
diff --cc contrib/file/magic/Magdir/rust
index 000000000000,b1bbd9d9702c..b1bbd9d9702c
mode 000000,100644..100644
--- a/contrib/file/magic/Magdir/rust
+++ b/contrib/file/magic/Magdir/rust
diff --cc contrib/file/magic/Magdir/svf
index 000000000000,b0d5c980f944..b0d5c980f944
mode 000000,100644..100644
--- a/contrib/file/magic/Magdir/svf
+++ b/contrib/file/magic/Magdir/svf
diff --cc contrib/file/src/is_simh.c
index 000000000000,4e78173fc44c..4e78173fc44c
mode 000000,100644..100644
--- a/contrib/file/src/is_simh.c
+++ b/contrib/file/src/is_simh.c
diff --cc contrib/file/tests/HWP2016.hwp.result
index 000000000000,2edd0b53aca7..2edd0b53aca7
mode 000000,100644..100644
--- a/contrib/file/tests/HWP2016.hwp.result
+++ b/contrib/file/tests/HWP2016.hwp.result
diff --cc contrib/file/tests/HWP2016.hwp.testfile
index 000000000000,75ab61d2103b..75ab61d2103b
mode 000000,100644..100644
Binary files differ
diff --cc contrib/file/tests/HWP2016.hwpx.zip.result
index 000000000000,6077a602a5cf..6077a602a5cf
mode 000000,100644..100644
--- a/contrib/file/tests/HWP2016.hwpx.zip.result
+++ b/contrib/file/tests/HWP2016.hwpx.zip.result
diff --cc contrib/file/tests/HWP2016.hwpx.zip.testfile
index 000000000000,7f1706369900..7f1706369900
mode 000000,100644..100644
Binary files differ
diff --cc contrib/file/tests/HWP97.hwp.result
index 000000000000,d77b46e2935f..d77b46e2935f
mode 000000,100644..100644
--- a/contrib/file/tests/HWP97.hwp.result
+++ b/contrib/file/tests/HWP97.hwp.result
diff --cc contrib/file/tests/HWP97.hwp.testfile
index 000000000000,eeabcce5e090..eeabcce5e090
mode 000000,100644..100644
Binary files differ
diff --cc contrib/file/tests/bcachefs2.result
index 000000000000,9ebf64bb55bc..9ebf64bb55bc
mode 000000,100644..100644
--- a/contrib/file/tests/bcachefs2.result
+++ b/contrib/file/tests/bcachefs2.result
diff --cc contrib/file/tests/bcachefs2.testfile
index 000000000000,3391822a79a4..3391822a79a4
mode 000000,100644..100644
Binary files differ
diff --cc contrib/file/tests/cmd1.result
index 000000000000,d77043f6046c..d77043f6046c
mode 000000,100644..100644
--- a/contrib/file/tests/cmd1.result
+++ b/contrib/file/tests/cmd1.result
diff --cc contrib/file/tests/cmd1.testfile
index 000000000000,8277edf20418..8277edf20418
mode 000000,100644..100644
--- a/contrib/file/tests/cmd1.testfile
+++ b/contrib/file/tests/cmd1.testfile
diff --cc contrib/file/tests/cmd2.result
index 000000000000,77627c3607e9..77627c3607e9
mode 000000,100644..100644
--- a/contrib/file/tests/cmd2.result
+++ b/contrib/file/tests/cmd2.result
diff --cc contrib/file/tests/cmd2.testfile
index 000000000000,104a0170d847..104a0170d847
mode 000000,100644..100644
--- a/contrib/file/tests/cmd2.testfile
+++ b/contrib/file/tests/cmd2.testfile
diff --cc contrib/file/tests/cmd3.result
index 000000000000,2d100e007008..2d100e007008
mode 000000,100644..100644
--- a/contrib/file/tests/cmd3.result
+++ b/contrib/file/tests/cmd3.result
diff --cc contrib/file/tests/cmd3.testfile
index 000000000000,8287acab425d..8287acab425d
mode 000000,100644..100644
--- a/contrib/file/tests/cmd3.testfile
+++ b/contrib/file/tests/cmd3.testfile
diff --cc contrib/file/tests/cmd4.result
index 000000000000,af635a43ae80..af635a43ae80
mode 000000,100644..100644
--- a/contrib/file/tests/cmd4.result
+++ b/contrib/file/tests/cmd4.result
diff --cc contrib/file/tests/cmd4.testfile
index 000000000000,529053ee86de..529053ee86de
mode 000000,100644..100644
--- a/contrib/file/tests/cmd4.testfile
+++ b/contrib/file/tests/cmd4.testfile
diff --cc contrib/file/tests/hello-racket_rkt.result
index 000000000000,ca2000968f42..ca2000968f42
mode 000000,100644..100644
--- a/contrib/file/tests/hello-racket_rkt.result
+++ b/contrib/file/tests/hello-racket_rkt.result
diff --cc contrib/file/tests/hello-racket_rkt.testfile
index 000000000000,22e944001066..22e944001066
mode 000000,100644..100644
Binary files differ
diff --cc contrib/file/tests/jpeg-text.result
index 000000000000,c35c5b716e7f..c35c5b716e7f
mode 000000,100644..100644
--- a/contrib/file/tests/jpeg-text.result
+++ b/contrib/file/tests/jpeg-text.result
diff --cc contrib/file/tests/jpeg-text.testfile
index 000000000000,fe119bdce020..fe119bdce020
mode 000000,100644..100644
--- a/contrib/file/tests/jpeg-text.testfile
+++ b/contrib/file/tests/jpeg-text.testfile
diff --cc contrib/file/tests/multiple-A.magic
index 000000000000,7709bb2c6bf7..7709bb2c6bf7
mode 000000,100644..100644
--- a/contrib/file/tests/multiple-A.magic
+++ b/contrib/file/tests/multiple-A.magic
diff --cc contrib/file/tests/multiple-B.magic
index 000000000000,ccc452d7ab34..ccc452d7ab34
mode 000000,100644..100644
--- a/contrib/file/tests/multiple-B.magic
+++ b/contrib/file/tests/multiple-B.magic
diff --cc contrib/file/tests/multiple.flags
index 000000000000,b68fde2a051d..b68fde2a051d
mode 000000,100644..100644
--- a/contrib/file/tests/multiple.flags
+++ b/contrib/file/tests/multiple.flags
diff --cc contrib/file/tests/multiple.result
index 000000000000,8a8c5dfad20f..8a8c5dfad20f
mode 000000,100644..100644
--- a/contrib/file/tests/multiple.result
+++ b/contrib/file/tests/multiple.result
diff --cc contrib/file/tests/multiple.testfile
index 000000000000,388979a6a744..388979a6a744
mode 000000,100644..100644
--- a/contrib/file/tests/multiple.testfile
+++ b/contrib/file/tests/multiple.testfile
diff --cc contrib/file/tests/pnm1.result
index 000000000000,15d9e82d3edd..15d9e82d3edd
mode 000000,100644..100644
--- a/contrib/file/tests/pnm1.result
+++ b/contrib/file/tests/pnm1.result
diff --cc contrib/file/tests/pnm1.testfile
index 000000000000,448108c5596d..448108c5596d
mode 000000,100644..100644
--- a/contrib/file/tests/pnm1.testfile
+++ b/contrib/file/tests/pnm1.testfile
diff --cc contrib/file/tests/pnm2.result
index 000000000000,e1d9ec93eff0..e1d9ec93eff0
mode 000000,100644..100644
--- a/contrib/file/tests/pnm2.result
+++ b/contrib/file/tests/pnm2.result
diff --cc contrib/file/tests/pnm2.testfile
index 000000000000,baaeb2a1a14c..baaeb2a1a14c
mode 000000,100644..100644
Binary files differ
diff --cc contrib/file/tests/pnm3.result
index 000000000000,49b800049583..49b800049583
mode 000000,100644..100644
--- a/contrib/file/tests/pnm3.result
+++ b/contrib/file/tests/pnm3.result
diff --cc contrib/file/tests/pnm3.testfile
index 000000000000,e28b9ab8b80b..e28b9ab8b80b
mode 000000,100644..100644
--- a/contrib/file/tests/pnm3.testfile
+++ b/contrib/file/tests/pnm3.testfile
diff --cc contrib/file/tests/registry-pol.result
index 000000000000,7ca512f0c402..7ca512f0c402
mode 000000,100644..100644
--- a/contrib/file/tests/registry-pol.result
+++ b/contrib/file/tests/registry-pol.result
diff --cc contrib/file/tests/registry-pol.testfile
index 000000000000,643e4a6dffd7..643e4a6dffd7
mode 000000,100644..100644
Binary files differ
diff --cc contrib/file/tests/xclbin.result
index 000000000000,11e31fe5e253..11e31fe5e253
mode 000000,100644..100644
--- a/contrib/file/tests/xclbin.result
+++ b/contrib/file/tests/xclbin.result
diff --cc contrib/file/tests/xclbin.testfile
index 000000000000,7a965c15075d..7a965c15075d
mode 000000,100644..100644
Binary files differ
diff --cc lib/libmagic/Makefile
index 98fcc7168d79,000000000000..5aff4c1a478d
mode 100644,000000..100644
--- a/lib/libmagic/Makefile
+++ b/lib/libmagic/Makefile
@@@ -1,90 -1,0 +1,91 @@@
 +# Copyright (c) David E. O'Brien, 2000-2004, 2006, 2009
 +
 +PACKAGE=lib${LIB}
 +CONTRDIR=	${SRCTOP}/contrib/file
 +.PATH: ${CONTRDIR}
 +.PATH: ${CONTRDIR}/src
 +.PATH: ${CONTRDIR}/doc
 +
 +LIB=	magic
 +SHLIB_MAJOR=	4
 +.if !make(build-tools)
 +LIBADD=	z
 +.endif
 +MAN=	libmagic.3 magic.5
 +
 +SRCS=	apprentice.c apptype.c ascmagic.c buffer.c cdf.c cdf_time.c \
 +	compress.c der.c encoding.c fsmagic.c funcs.c is_json.c \
 +	is_csv.c \
++	is_simh.c \
 +	is_tar.c magic.c print.c readcdf.c readelf.c seccomp.c softmagic.c
 +INCS=	magic.h
 +
 +MAGICPATH?=	/usr/share/misc
 +
 +CFLAGS+= -DMAGIC='"${MAGICPATH}/magic"' -DHAVE_CONFIG_H
 +CFLAGS+= -I${.CURDIR} -I${.OBJDIR} -I${CONTRDIR}/src
 +
 +WARNS?=		3
 +
 +CLEANFILES+=	magic magic.mgc
 +
 +FILES=		magic magic.mgc
 +FILESDIR=	${MAGICPATH}
 +
 +MAGFILES=	${CONTRDIR}/magic/Header \
 +		${CONTRDIR}/magic/Localstuff \
 +		${CONTRDIR}/magic/Magdir/[a-z]*
 +
 +
 +PACKAGE_VERSION!=	sed -n '/define.*PACKAGE_VERSION/{s,[^0-9.],,gp;q;}' ${.CURDIR}/config.h
 +
 +libmagic.pc: libmagic.pc.in
 +	sed -e 's,@prefix@,/usr,g ; \
 +		s,@exec_prefix@,$${prefix},g ; \
 +		s,@libdir@,${LIBDIR},g ; \
 +		s,@sharedlibdir@,${SHLIBDIR},g ; \
 +		s,@includedir@,${INCLUDEDIR},g ; \
 +		s,@VERSION@,${PACKAGE_VERSION},g ; \
 +		s,@LIBS@,,g ;' \
 +                ${.ALLSRC} > ${.TARGET}
 +
 +magic: ${MAGFILES}
 +	cat ${.ALLSRC:O} > ${.TARGET}
 +
 +magic.mgc: magic
 +	${BTOOLSPATH:U.}/mkmagic magic
 +
 +.if ${MACHINE} == "host" || ${MK_DIRDEPS_BUILD} == "no"
 +CLEANFILES+=	mkmagic
 +DEPENDOBJS+=	mkmagic
 +build-tools: mkmagic
 +mkmagic: apprentice.c cdf_time.c encoding.c funcs.c magic.c print.c ${INCS} ${BUILD_TOOLS_META}
 +	${CC:N${CCACHE_BIN}} ${CFLAGS} -DCOMPILE_ONLY ${LDFLAGS} -o ${.TARGET} \
 +	    ${.ALLSRC:N*.h:O:u} ${LDADD}
 +
 +.endif
 +.if ${MK_DIRDEPS_BUILD} == "yes"
 +BTOOLSPATH= ${HOST_OBJTOP}/${RELDIR}
 +.else
 +magic.mgc: mkmagic
 +.endif
 +
 +FILEVER!= awk '$$1 == "\#define" && $$2 == "VERSION" { print $$3; exit }' \
 +			${.CURDIR}/config.h
 +CLEANFILES+=	${MAN}
 +.for mp in ${MAN}
 +${mp}: ${mp:C/[0-9]/man/}
 +	sed -e 's/__FSECTION__/5/g' -e 's/__CSECTION__/1/g' \
 +		-e 's/__VERSION__/${FILEVER}/g' \
 +		-e 's,__MAGIC__,${MAGICPATH}/magic,g' ${.ALLSRC} > ${.TARGET}
 +.endfor
 +
 +CLEANFILES+=	${INCS}
 +.for inc in ${INCS}
 +${inc}: ${inc}.in
 +	sed -e 's,X.YY,${FILEVER:S,",,g:S,.,,g},g' ${.ALLSRC} > ${.TARGET}
 +.endfor
 +
 +PCFILES=	libmagic.pc
 +
 +.include <bsd.lib.mk>
diff --cc lib/libmagic/config.h
index 220321c64af7,000000000000..b842859fc2ab
mode 100644,000000..100644
--- a/lib/libmagic/config.h
+++ b/lib/libmagic/config.h
@@@ -1,502 -1,0 +1,523 @@@
 +/* config.h.  Generated from config.h.in by configure.  */
 +/* config.h.in.  Generated from configure.ac by autoheader.  */
 +
 +/* Define if building universal (internal helper macro) */
 +/* #undef AC_APPLE_UNIVERSAL_BUILD */
 +
 +/* Define in built-in ELF support is used */
 +#define BUILTIN_ELF 1
 +
 +/* Enable bzlib compression support */
 +/* #undef BZLIBSUPPORT */
 +
 +/* Define for ELF core file support */
 +#define ELFCORE 1
 +
 +/* Define to 1 if you have the `asctime_r' function. */
 +#define HAVE_ASCTIME_R 1
 +
 +/* Define to 1 if you have the `asprintf' function. */
 +#define HAVE_ASPRINTF 1
 +
 +/* Define to 1 if you have the <byteswap.h> header file. */
- /* #undef HAVE_BYTESWAP_H */
++#define HAVE_BYTESWAP_H 1
 +
 +/* Define to 1 if you have the <bzlib.h> header file. */
 +/* #undef HAVE_BZLIB_H */
 +
 +/* Define to 1 if you have the `ctime_r' function. */
 +#define HAVE_CTIME_R 1
 +
 +/* HAVE_DAYLIGHT */
 +/* #undef HAVE_DAYLIGHT */
 +
 +/* Define to 1 if you have the declaration of `daylight', and to 0 if you
 +   don't. */
 +#define HAVE_DECL_DAYLIGHT 0
 +
 +/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't.
 +   */
 +#define HAVE_DECL_TZNAME 1
 +
 +/* Define to 1 if you have the <dlfcn.h> header file. */
 +#define HAVE_DLFCN_H 1
 +
 +/* Define to 1 if you have the `dprintf' function. */
 +#define HAVE_DPRINTF 1
 +
 +/* Define to 1 if you have the <err.h> header file. */
 +#define HAVE_ERR_H 1
 +
 +/* Define to 1 if you have the <fcntl.h> header file. */
 +#define HAVE_FCNTL_H 1
 +
 +/* Define to 1 if you have the `fmtcheck' function. */
 +#define HAVE_FMTCHECK 1
 +
 +/* Define to 1 if you have the `fork' function. */
 +#define HAVE_FORK 1
 +
 +/* Define to 1 if you have the `freelocale' function. */
 +#define HAVE_FREELOCALE 1
 +
 +/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
 +#define HAVE_FSEEKO 1
 +
 +/* Define to 1 if you have the `getline' function. */
 +#define HAVE_GETLINE 1
 +
 +/* Define to 1 if you have the <getopt.h> header file. */
 +#define HAVE_GETOPT_H 1
 +
 +/* Define to 1 if you have the `getopt_long' function. */
 +#define HAVE_GETOPT_LONG 1
 +
 +/* Define to 1 if you have the `getpagesize' function. */
 +#define HAVE_GETPAGESIZE 1
 +
 +/* Define to 1 if you have the `gmtime_r' function. */
 +#define HAVE_GMTIME_R 1
 +
 +/* Define to 1 if the system has the type `intptr_t'. */
 +#define HAVE_INTPTR_T 1
 +
 +/* Define to 1 if you have the <inttypes.h> header file. */
 +#define HAVE_INTTYPES_H 1
 +
 +/* Define to 1 if you have the `bz2' library (-lbz2). */
 +/* #undef HAVE_LIBBZ2 */
 +
 +/* Define to 1 if you have the `gnurx' library (-lgnurx). */
 +/* #undef HAVE_LIBGNURX */
 +
++/* Define to 1 if you have the `lz' library (-llz). */
++/* #undef HAVE_LIBLZ */
++
 +/* Define to 1 if you have the `lzma' library (-llzma). */
 +/* #undef HAVE_LIBLZMA */
 +
 +/* Define to 1 if you have the `seccomp' library (-lseccomp). */
 +/* #undef HAVE_LIBSECCOMP */
 +
 +/* Define to 1 if you have the `z' library (-lz). */
 +#define HAVE_LIBZ 1
 +
++/* Define to 1 if you have the `zstd' library (-lzstd). */
++/* #undef HAVE_LIBZSTD */
++
 +/* Define to 1 if you have the `localtime_r' function. */
 +#define HAVE_LOCALTIME_R 1
 +
++/* Define to 1 if you have the <lzlib.h> header file. */
++/* #undef HAVE_LZLIB_H */
++
 +/* Define to 1 if you have the <lzma.h> header file. */
 +/* #undef HAVE_LZMA_H */
 +
 +/* Define to 1 if mbrtowc and mbstate_t are properly declared. */
 +#define HAVE_MBRTOWC 1
 +
 +/* Define to 1 if <wchar.h> declares mbstate_t. */
 +#define HAVE_MBSTATE_T 1
 +
 +/* Define to 1 if you have the `memmem' function. */
 +#define HAVE_MEMMEM 1
 +
 +/* Define to 1 if you have the <minix/config.h> header file. */
 +/* #undef HAVE_MINIX_CONFIG_H */
 +
 +/* Define to 1 if you have the `mkostemp' function. */
 +#define HAVE_MKOSTEMP 1
 +
 +/* Define to 1 if you have the `mkstemp' function. */
 +#define HAVE_MKSTEMP 1
 +
 +/* Define to 1 if you have a working `mmap' system call. */
 +#define HAVE_MMAP 1
 +
 +/* Define to 1 if you have the `newlocale' function. */
 +#define HAVE_NEWLOCALE 1
 +
 +/* Define to 1 if you have the `pipe2' function. */
 +#ifndef __APPLE__ /* Cross building tools on macOS */
 +#define HAVE_PIPE2 1
 +#endif
 +
 +/* Define to 1 if you have the `posix_spawnp' function. */
 +#define HAVE_POSIX_SPAWNP 1
 +
 +/* Define to 1 if you have the `pread' function. */
 +#define HAVE_PREAD 1
 +
 +/* Have sig_t type */
 +#define HAVE_SIG_T 1
 +
 +/* Define to 1 if you have the <spawn.h> header file. */
 +#define HAVE_SPAWN_H 1
 +
 +/* Define to 1 if you have the <stdint.h> header file. */
 +#define HAVE_STDINT_H 1
 +
 +/* Define to 1 if you have the <stdio.h> header file. */
 +#define HAVE_STDIO_H 1
 +
 +/* Define to 1 if you have the <stdlib.h> header file. */
 +#define HAVE_STDLIB_H 1
 +
 +/* Define to 1 if you have the `strcasestr' function. */
 +#define HAVE_STRCASESTR 1
 +
 +/* Define to 1 if you have the <strings.h> header file. */
 +#define HAVE_STRINGS_H 1
 +
 +/* Define to 1 if you have the <string.h> header file. */
 +#define HAVE_STRING_H 1
 +
 +/* Define to 1 if you have the `strlcat' function. */
 +#define HAVE_STRLCAT 1
 +
 +/* Define to 1 if you have the `strlcpy' function. */
 +#define HAVE_STRLCPY 1
 +
 +/* Define to 1 if you have the `strndup' function. */
 +#define HAVE_STRNDUP 1
 +
 +/* Define to 1 if you have the `strtof' function. */
 +#define HAVE_STRTOF 1
 +
 +/* HAVE_STRUCT_OPTION */
 +#define HAVE_STRUCT_OPTION 1
 +
 +/* Define to 1 if `st_rdev' is a member of `struct stat'. */
 +#define HAVE_STRUCT_STAT_ST_RDEV 1
 +
 +/* Define to 1 if `tm_gmtoff' is a member of `struct tm'. */
 +#define HAVE_STRUCT_TM_TM_GMTOFF 1
 +
 +/* Define to 1 if `tm_zone' is a member of `struct tm'. */
 +#define HAVE_STRUCT_TM_TM_ZONE 1
 +
 +/* Define to 1 if you have the <sys/bswap.h> header file. */
 +/* #undef HAVE_SYS_BSWAP_H */
 +
 +/* Define to 1 if you have the <sys/ioctl.h> header file. */
 +#define HAVE_SYS_IOCTL_H 1
 +
 +/* Define to 1 if you have the <sys/mman.h> header file. */
 +#define HAVE_SYS_MMAN_H 1
 +
 +/* Define to 1 if you have the <sys/param.h> header file. */
 +#define HAVE_SYS_PARAM_H 1
 +
 +/* Define to 1 if you have the <sys/stat.h> header file. */
 +#define HAVE_SYS_STAT_H 1
 +
 +/* Define to 1 if you have the <sys/sysmacros.h> header file. */
 +/* #undef HAVE_SYS_SYSMACROS_H */
 +
 +/* Define to 1 if you have the <sys/time.h> header file. */
 +#define HAVE_SYS_TIME_H 1
 +
 +/* Define to 1 if you have the <sys/types.h> header file. */
 +#define HAVE_SYS_TYPES_H 1
 +
 +/* Define to 1 if you have the <sys/utime.h> header file. */
 +/* #undef HAVE_SYS_UTIME_H */
 +
 +/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
 +#define HAVE_SYS_WAIT_H 1
 +
 +/* HAVE_TM_ISDST */
 +#define HAVE_TM_ISDST 1
 +
 +/* HAVE_TM_ZONE */
 +#define HAVE_TM_ZONE 1
 +
 +/* HAVE_TZNAME */
 +#define HAVE_TZNAME 1
 +
 +/* Define to 1 if the system has the type `uintptr_t'. */
 +#define HAVE_UINTPTR_T 1
 +
 +/* Define to 1 if you have the <unistd.h> header file. */
 +#define HAVE_UNISTD_H 1
 +
 +/* Define to 1 if you have the `uselocale' function. */
 +#define HAVE_USELOCALE 1
 +
 +/* Define to 1 if you have the `utime' function. */
 +#define HAVE_UTIME 1
 +
 +/* Define to 1 if you have the `utimes' function. */
 +#define HAVE_UTIMES 1
 +
 +/* Define to 1 if you have the <utime.h> header file. */
 +#define HAVE_UTIME_H 1
 +
 +/* Define to 1 if you have the `vasprintf' function. */
 +#define HAVE_VASPRINTF 1
 +
 +/* Define to 1 if you have the `vfork' function. */
 +#define HAVE_VFORK 1
 +
 +/* Define to 1 if you have the <vfork.h> header file. */
 +/* #undef HAVE_VFORK_H */
 +
 +/* Define to 1 or 0, depending whether the compiler supports simple visibility
 +   declarations. */
 +#define HAVE_VISIBILITY 1
 +
 +/* Define to 1 if you have the <wchar.h> header file. */
 +#define HAVE_WCHAR_H 1
*** 255 LINES SKIPPED ***

From nobody Sun Sep 10 20:40:34 2023
X-Original-To: dev-commits-src-main@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 4RkMDf4X8tz4sWNc;
	Sun, 10 Sep 2023 20:40: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 4RkMDf45lTz3gZ5;
	Sun, 10 Sep 2023 20:40:34 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694378434;
	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=+3kGFx+mPRJqbm0JoktleJJO+lKA6lq8LJMJtlb37+4=;
	b=P9Gcszkty9boGiFXq/Lg/4/tj7X5JdUj3xHIGFbdGtrkLLad67EUZ8DhEMf3PYSybq37UX
	EC8v/j1ouJQJ02NNE6jAnznr/vEG1Pvz9SHRgYH5M0FqKGsqGFLMs1d4UnoUgGGsefzLbM
	Wgr4K5UwUmzATf36gYFZTZcrT8HnWVIy8HST2G3+3cAnjlOvkrjc5tukPlq3RpBHJ4Pcu+
	bBtiEC/Ue3U5is3pEzU29zE8Icd7I4mpWZ8sZ5Yeqj07o/PNFZDQ5mCkPNTjQdk6rP+iVG
	QG3ykt14gG9c/JRgajERvSUadkcrrDgb3YtWHjIugb0OD0XTfChf8jOp59DboQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694378434; a=rsa-sha256; cv=none;
	b=N89+FP4kqXHEM0///fGUWzeMXm9J+WO5RF6/YgzFZoBhWVicjNYB7ryxPhfJ8JE2jhU0YZ
	l40cqfAHtFLa1Rs1j/qGBdzplp+RPPXDGacFQ+pQckuqIjOOBnntMW7X/FlV43QE8lBJCD
	+Kiny/Fd2gxMqSV5rv51BERehlHLNE1wPhHqCzf3cDvvWthea7ec9C13v16owzPbE4cKJX
	smeLuJQbFeMh6J9WcjbYwTghBtYtgjMUjTWJ8t+dQCR7XxU48LjrssHTiWPIabGzk3OSbS
	qlMHxN9Q0UkmedsIEDr1IY8SZajopCKU9XIqAGROgPYDoNP8+5km3CpOvc4QMw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694378434;
	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=+3kGFx+mPRJqbm0JoktleJJO+lKA6lq8LJMJtlb37+4=;
	b=BpWFhKMUdKK2VQ/s3ARW6zrxsLJLmrwFiPS86mFsqSKnej3R+J2mTFgun7a6HGl6cnPMiq
	lOn/+TvHs7aYhdc1Ng6mcKJDqlfe0VQRjdFYLqUycLBAVWpafKl892YZTpgu3Gx+aKGaBC
	om08Ez7mvVrOT/pBJmK0R5sU2O/rkACTkqrVQGpDE9NzB/u/rihoccHQAHd0woOPx4gPjP
	iU7tH6hNGXsuUOgufelwNfbtjTaHdOspyi2qZSZq5DTOj0Warmo64TajzVK6de0zlr9Kkc
	0YeRVZI+igbUiv1Zw4jMS1htBfPCNNhEcZ2Xn/ZpVQ9mbX9hh+EZWdDF3RSY3Q==
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 4RkMDf399pz6CZ;
	Sun, 10 Sep 2023 20:40: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 38AKeYUb067302;
	Sun, 10 Sep 2023 20:40:34 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38AKeYjw067299;
	Sun, 10 Sep 2023 20:40:34 GMT
	(envelope-from git)
Date: Sun, 10 Sep 2023 20:40:34 GMT
Message-Id: <202309102040.38AKeYjw067299@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Kristof Provost <kp@FreeBSD.org>
Subject: git: b6ce41118bb1 - main - pf: fix state leak
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@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/main
X-Git-Reftype: branch
X-Git-Commit: b6ce41118bb11d3db86eae8fbebc8c198e8b330d
Auto-Submitted: auto-generated

The branch main has been updated by kp:

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

commit b6ce41118bb11d3db86eae8fbebc8c198e8b330d
Author:     Kristof Provost <kp@FreeBSD.org>
AuthorDate: 2023-09-06 07:58:07 +0000
Commit:     Kristof Provost <kp@FreeBSD.org>
CommitDate: 2023-09-10 20:40:22 +0000

    pf: fix state leak
    
    If we hit the csfailed case in pf_create_state() we may have allocated
    a state, so we must also free it. While here reduce the amount of
    duplicated cleanup code.
    
    MFC after:      2 weeks
    Sponsored by:   Rubicon Communications, LLC ("Netgate")
    Differential Revision:  https://reviews.freebsd.org/D41772
---
 sys/netpfil/pf/pf.c | 26 +++++++++-----------------
 1 file changed, 9 insertions(+), 17 deletions(-)

diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c
index 21d2e16e83dc..df4bd47c35d5 100644
--- a/sys/netpfil/pf/pf.c
+++ b/sys/netpfil/pf/pf.c
@@ -4885,13 +4885,8 @@ pf_create_state(struct pf_krule *r, struct pf_krule *nr, struct pf_krule *a,
 	if (r->rt) {
 		/* pf_map_addr increases the reason counters */
 		if ((reason = pf_map_addr(pd->af, r, pd->src, &s->rt_addr,
-		    &s->rt_kif, NULL, &sn)) != 0) {
-			pf_src_tree_remove_state(s);
-			s->timeout = PFTM_UNLINKED;
-			STATE_DEC_COUNTERS(s);
-			pf_free_state(s);
+		    &s->rt_kif, NULL, &sn)) != 0)
 			goto csfailed;
-		}
 		s->rt = r->rt;
 	}
 
@@ -4947,11 +4942,7 @@ pf_create_state(struct pf_krule *r, struct pf_krule *nr, struct pf_krule *a,
 	    (pd->dir == PF_IN) ? sk : nk,
 	    (pd->dir == PF_IN) ? nk : sk, s)) {
 		REASON_SET(&reason, PFRES_STATEINS);
-		pf_src_tree_remove_state(s);
-		s->timeout = PFTM_UNLINKED;
-		STATE_DEC_COUNTERS(s);
-		pf_free_state(s);
-		return (PF_DROP);
+		goto drop;
 	} else
 		*sm = s;
 
@@ -5020,13 +5011,14 @@ csfailed:
 		PF_SRC_NODE_UNLOCK(nsn);
 	}
 
-	return (PF_DROP);
-
 drop:
-	pf_src_tree_remove_state(s);
-	s->timeout = PFTM_UNLINKED;
-	STATE_DEC_COUNTERS(s);
-	pf_free_state(s);
+	if (s != NULL) {
+		pf_src_tree_remove_state(s);
+		s->timeout = PFTM_UNLINKED;
+		STATE_DEC_COUNTERS(s);
+		pf_free_state(s);
+	}
+
 	return (PF_DROP);
 }
 

From nobody Mon Sep 11 06:56:44 2023
X-Original-To: dev-commits-src-main@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 4Rkcvc1wFHz4t5Zp;
	Mon, 11 Sep 2023 06:56: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 4Rkcvc1Z5yz4QcT;
	Mon, 11 Sep 2023 06:56:44 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694415404;
	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=c/5pFb15ARNa5yncvOKaX5ch+ih9mGt8iCyIjRDmCjw=;
	b=F0JyoddMSzn0ZoUeX1cFV2+74CVh2Xw54Dj+qEqCL1UTSDO61AagU258yJBDkPsWWl7fKk
	dl2IJPNrdO+7hWQslgQCcBfZKp9RbUN0lykKaI02nqEcct7aEe8w7HbX+VvabYYubIoYFB
	0BWUt/Q4SXQJVVVcvXkBU/o4KUv2y3mMGkMEudVatY9haICPGaAq2RH7qEDOtEzo+6i5tT
	LiqcSij/L3rtWNekeYVaVcMttQj/H2zeNMH2mWMZKpLZxbi7uU5jJ7qBYTWNfgOwWi0AMi
	1o1tHZIIRXpvG8sNhlNBTbZINUyV5eIkbSMNY1KbvZovJ0h6xyr1n2icfYk5oA==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694415404; a=rsa-sha256; cv=none;
	b=F7qZ/qn/oL2nDp/wKwJBOPUmOXls3DWhJAK1RFmICRXoLtp66djNz9aj8YyXx0izsEzrgT
	TbrC7W5PCxX1G+KStaeXorpVc3xjgUCV4JeBA3mw5on3uATzBdraADiwkFpn0AoWOjr3S9
	WsnVg/ATflNEUjL4EEje6dg4ShvOVCU2I57/v6Hq64WcKQ1cOJaRIixxACGuQPBoecWxgh
	hORHWl4Kb3CzXOxjqRzsK7jfjyqDTJnrVuUAKrMt8HWKsKi3Tu/EzdujupAbXiQ1OlquR5
	xVI0OhboP/zVTaKMk6cW0YmmEusxCL0PBIBkFyxJaercIN7cKUW9Pzciiyl6MA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694415404;
	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=c/5pFb15ARNa5yncvOKaX5ch+ih9mGt8iCyIjRDmCjw=;
	b=THxndjETaP5oi9ExgsDbW21X61YgeZQelxa1reDe+X2HCFWXux0yDxaNP1Al+2lhLQB6Kg
	St8mhbi4n+7HR99mJqRdulHVm5/iqtCPtgYYX+FlJRGYn9TsuWkhRJYPXfk3WwVg1vOzhJ
	y1VhH/p+d4d5CF+5+w0wUm0u26GR9JAL+9WW/LL/o5ujWctYZ9tzrvjdYfsg2SuRPNtBQ2
	BXCiyI9DxGmz1gUjZ6/Tyzx++TL0Q9Pcw5GMCID6izvCQZupkJQuqB09cSKe1D45LZwelT
	6S1ukfSGQisoWW3MaaX789PfUYJJDW/MMzjydzNmHscJ+EKzxqX6/HZzVOO6dw==
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 4Rkcvc0cvnzfWj;
	Mon, 11 Sep 2023 06:56: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 38B6uixo092113;
	Mon, 11 Sep 2023 06:56:44 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38B6uiiS092110;
	Mon, 11 Sep 2023 06:56:44 GMT
	(envelope-from git)
Date: Mon, 11 Sep 2023 06:56:44 GMT
Message-Id: <202309110656.38B6uiiS092110@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Doug Moore <dougm@FreeBSD.org>
Subject: git: a494d30465f2 - main - radix_trie: have vm_radix use
  pctrie code
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: dougm
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: a494d30465f21e8cb014a5c788a43001397325d7
Auto-Submitted: auto-generated

The branch main has been updated by dougm:

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

commit a494d30465f21e8cb014a5c788a43001397325d7
Author:     Doug Moore <dougm@FreeBSD.org>
AuthorDate: 2023-09-11 06:53:40 +0000
Commit:     Doug Moore <dougm@FreeBSD.org>
CommitDate: 2023-09-11 06:53:40 +0000

    radix_trie: have vm_radix use pctrie code
    
    Implement everything currently in vm_radix.c with calls to functions
    in subr_pctrie.c, asccessed via the interface provided by the
    DEFINE_PCTRIE_SMR macro.
    
    Reviewed by:    alc, markj
    Tested by:      pho
    Differential Revision:  https://reviews.freebsd.org/D41344
---
 sys/vm/_vm_radix.h |   9 +-
 sys/vm/vm_radix.c  | 696 +----------------------------------------------------
 sys/vm/vm_radix.h  | 113 +++++++--
 3 files changed, 109 insertions(+), 709 deletions(-)

diff --git a/sys/vm/_vm_radix.h b/sys/vm/_vm_radix.h
index 01eb25a9dccf..2d9b05c7b52a 100644
--- a/sys/vm/_vm_radix.h
+++ b/sys/vm/_vm_radix.h
@@ -31,16 +31,13 @@
 #ifndef __VM_RADIX_H_
 #define __VM_RADIX_H_
 
-/*
- * Radix tree node.
- */
-struct vm_radix_node;
+#include <sys/_pctrie.h>
 
 /*
- * Radix tree root.
+ * Radix tree
  */
 struct vm_radix {
-	struct vm_radix_node	*rt_root;
+	struct pctrie	rt_trie;
 };
 
 #endif /* !__VM_RADIX_H_ */
diff --git a/sys/vm/vm_radix.c b/sys/vm/vm_radix.c
index 768a56ed76f7..b8c693eca66f 100644
--- a/sys/vm/vm_radix.c
+++ b/sys/vm/vm_radix.c
@@ -54,302 +54,26 @@
 #include "opt_ddb.h"
 
 #include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/kernel.h>
-#include <sys/libkern.h>
-#include <sys/proc.h>
-#include <sys/vmmeter.h>
-#include <sys/smr.h>
-#include <sys/smr_types.h>
+#include <sys/pctrie.h>
 
 #include <vm/uma.h>
 #include <vm/vm.h>
-#include <vm/vm_param.h>
-#include <vm/vm_object.h>
 #include <vm/vm_page.h>
 #include <vm/vm_radix.h>
 
-#ifdef DDB
-#include <ddb/ddb.h>
-#endif
-
-/*
- * These widths should allow the pointers to a node's children to fit within
- * a single cache line.  The extra levels from a narrow width should not be
- * a problem thanks to path compression.
- */
-#ifdef __LP64__
-#define	VM_RADIX_WIDTH	4
-#else
-#define	VM_RADIX_WIDTH	3
-#endif
-
-#define	VM_RADIX_COUNT	(1 << VM_RADIX_WIDTH)
-#define	VM_RADIX_MASK	(VM_RADIX_COUNT - 1)
-#define	VM_RADIX_LIMIT							\
-	(howmany(sizeof(vm_pindex_t) * NBBY, VM_RADIX_WIDTH) - 1)
-
-#if VM_RADIX_WIDTH == 3
-typedef uint8_t rn_popmap_t;
-#elif VM_RADIX_WIDTH == 4
-typedef uint16_t rn_popmap_t;
-#elif VM_RADIX_WIDTH == 5
-typedef uint32_t rn_popmap_t;
-#else
-#error Unsupported width
-#endif
-_Static_assert(sizeof(rn_popmap_t) <= sizeof(int),
-    "rn_popmap_t too wide");
-
-/* Set of all flag bits stored in node pointers. */
-#define	VM_RADIX_FLAGS	(VM_RADIX_ISLEAF)
-#define	VM_RADIX_PAD	VM_RADIX_FLAGS
-
-enum vm_radix_access { SMR, LOCKED, UNSERIALIZED };
-
-struct vm_radix_node;
-typedef SMR_POINTER(struct vm_radix_node *) smrnode_t;
-
-struct vm_radix_node {
-	vm_pindex_t	rn_owner;			/* Owner of record. */
-	rn_popmap_t	rn_popmap;			/* Valid children. */
-	uint8_t		rn_clev;			/* Level * WIDTH. */
-	smrnode_t	rn_child[VM_RADIX_COUNT];	/* Child nodes. */
-};
-
 static uma_zone_t vm_radix_node_zone;
-static smr_t vm_radix_smr;
-
-static void vm_radix_node_store(smrnode_t *p, struct vm_radix_node *v,
-    enum vm_radix_access access);
-
-/*
- * Map index to an array position for the children of rnode,
- */
-static __inline int
-vm_radix_slot(struct vm_radix_node *rnode, vm_pindex_t index)
-{
-	return ((index >> rnode->rn_clev) & VM_RADIX_MASK);
-}
-
-/*
- * Returns true if index does not belong to the specified rnode.  Otherwise,
- * sets slot value, and returns false.
- */
-static __inline bool
-vm_radix_keybarr(struct vm_radix_node *rnode, vm_pindex_t index, int *slot)
-{
-	index = (index - rnode->rn_owner) >> rnode->rn_clev;
-	if (index >= VM_RADIX_COUNT)
-		return (true);
-	*slot = index;
-	return (false);
-}
-
-/*
- * Allocate a radix node.
- */
-static struct vm_radix_node *
-vm_radix_node_get(vm_pindex_t index, vm_pindex_t newind)
-{
-	struct vm_radix_node *rnode;
-
-	rnode = uma_zalloc_smr(vm_radix_node_zone, M_NOWAIT);
-	if (rnode == NULL)
-		return (NULL);
-
-	/*
-	 * We want to clear the last child pointer after the final section
-	 * has exited so lookup can not return false negatives.  It is done
-	 * here because it will be cache-cold in the dtor callback.
-	 */
-	if (rnode->rn_popmap != 0) {
-		vm_radix_node_store(&rnode->rn_child[ffs(rnode->rn_popmap) - 1],
-		    VM_RADIX_NULL, UNSERIALIZED);
-		rnode->rn_popmap = 0;
-	}
-
-	/*
-	 * From the highest-order bit where the indexes differ,
-	 * compute the highest level in the trie where they differ.  Then,
-	 * compute the least index of this subtrie.
-	 */
-	KASSERT(index != newind, ("%s: passing the same key value %jx",
-	    __func__, (uintmax_t)index));
-	_Static_assert(sizeof(long long) >= sizeof(vm_pindex_t),
-	    "vm_pindex_t too wide");
-	_Static_assert(sizeof(vm_pindex_t) * NBBY <=
-	    (1 << (sizeof(rnode->rn_clev) * NBBY)), "rn_clev too narrow");
-	rnode->rn_clev = rounddown(flsll(index ^ newind) - 1, VM_RADIX_WIDTH);
-	rnode->rn_owner = VM_RADIX_COUNT;
-	rnode->rn_owner = index & -(rnode->rn_owner << rnode->rn_clev);
-	return (rnode);
-}
-
-/*
- * Free radix node.
- */
-static __inline void
-vm_radix_node_put(struct vm_radix_node *rnode)
-{
-#ifdef INVARIANTS
-	int slot;
-
-	KASSERT(powerof2(rnode->rn_popmap),
-	    ("vm_radix_node_put: rnode %p has too many children %04x", rnode,
-	    rnode->rn_popmap));
-	for (slot = 0; slot < VM_RADIX_COUNT; slot++) {
-		if ((rnode->rn_popmap & (1 << slot)) != 0)
-			continue;
-		KASSERT(smr_unserialized_load(&rnode->rn_child[slot], true) ==
-		    VM_RADIX_NULL,
-		    ("vm_radix_node_put: rnode %p has a child", rnode));
-	}
-#endif
-	uma_zfree_smr(vm_radix_node_zone, rnode);
-}
-
-/*
- * Fetch a node pointer from a slot in another node.
- */
-static __inline struct vm_radix_node *
-vm_radix_node_load(smrnode_t *p, enum vm_radix_access access)
-{
-
-	switch (access) {
-	case UNSERIALIZED:
-		return (smr_unserialized_load(p, true));
-	case LOCKED:
-		return (smr_serialized_load(p, true));
-	case SMR:
-		return (smr_entered_load(p, vm_radix_smr));
-	}
-	__assert_unreachable();
-}
-
-static __inline void
-vm_radix_node_store(smrnode_t *p, struct vm_radix_node *v,
-    enum vm_radix_access access)
-{
-
-	switch (access) {
-	case UNSERIALIZED:
-		smr_unserialized_store(p, v, true);
-		break;
-	case LOCKED:
-		smr_serialized_store(p, v, true);
-		break;
-	case SMR:
-		panic("vm_radix_node_store: Not supported in smr section.");
-	}
-}
-
-/*
- * Get the root node for a radix tree.
- */
-static __inline struct vm_radix_node *
-vm_radix_root_load(struct vm_radix *rtree, enum vm_radix_access access)
-{
+smr_t vm_radix_smr;
 
-	return (vm_radix_node_load((smrnode_t *)&rtree->rt_root, access));
-}
-
-/*
- * Set the root node for a radix tree.
- */
-static __inline void
-vm_radix_root_store(struct vm_radix *rtree, struct vm_radix_node *rnode,
-    enum vm_radix_access access)
-{
-
-	vm_radix_node_store((smrnode_t *)&rtree->rt_root, rnode, access);
-}
-
-/*
- * Returns TRUE if the specified radix node is a leaf and FALSE otherwise.
- */
-static __inline bool
-vm_radix_isleaf(struct vm_radix_node *rnode)
-{
-
-	return (((uintptr_t)rnode & VM_RADIX_ISLEAF) != 0);
-}
-
-/*
- * Returns page cast to radix node with leaf bit set.
- */
-static __inline struct vm_radix_node *
-vm_radix_toleaf(vm_page_t page)
-{
-	return ((struct vm_radix_node *)((uintptr_t)page | VM_RADIX_ISLEAF));
-}
-
-/*
- * Returns the associated page extracted from rnode.
- */
-static __inline vm_page_t
-vm_radix_topage(struct vm_radix_node *rnode)
-{
-
-	return ((vm_page_t)((uintptr_t)rnode & ~VM_RADIX_FLAGS));
-}
-
-/*
- * Make 'child' a child of 'rnode'.
- */
-static __inline void
-vm_radix_addnode(struct vm_radix_node *rnode, vm_pindex_t index,
-    struct vm_radix_node *child, enum vm_radix_access access)
-{
-	int slot;
-
-	slot = vm_radix_slot(rnode, index);
-	vm_radix_node_store(&rnode->rn_child[slot], child, access);
-	rnode->rn_popmap ^= 1 << slot;
-	KASSERT((rnode->rn_popmap & (1 << slot)) != 0,
-	    ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode));
-}
-
-/*
- * Internal helper for vm_radix_reclaim_allnodes().
- * This function is recursive.
- */
-static void
-vm_radix_reclaim_allnodes_int(struct vm_radix_node *rnode)
+void *
+vm_radix_node_alloc(struct pctrie *ptree)
 {
-	struct vm_radix_node *child;
-	int slot;
-
-	while (rnode->rn_popmap != 0) {
-		slot = ffs(rnode->rn_popmap) - 1;
-		child = vm_radix_node_load(&rnode->rn_child[slot],
-		    UNSERIALIZED);
-		KASSERT(child != VM_RADIX_NULL,
-		    ("%s: bad popmap slot %d in rnode %p",
-		    __func__, slot, rnode));
-		if (!vm_radix_isleaf(child))
-			vm_radix_reclaim_allnodes_int(child);
-		rnode->rn_popmap ^= 1 << slot;
-		vm_radix_node_store(&rnode->rn_child[slot], VM_RADIX_NULL,
-		    UNSERIALIZED);
-	}
-	vm_radix_node_put(rnode);
+	return (uma_zalloc_smr(vm_radix_node_zone, M_NOWAIT));
 }
 
-/*
- * radix node zone initializer.
- */
-static int
-vm_radix_zone_init(void *mem, int size, int flags)
+void
+vm_radix_node_free(struct pctrie *ptree, void *node)
 {
-	struct vm_radix_node *rnode;
-
-	rnode = mem;
-	rnode->rn_popmap = 0;
-	for (int i = 0; i < nitems(rnode->rn_child); i++)
-		vm_radix_node_store(&rnode->rn_child[i], VM_RADIX_NULL,
-		    UNSERIALIZED);
-	return (0);
+	uma_zfree_smr(vm_radix_node_zone, node);
 }
 
 #ifndef UMA_MD_SMALL_ALLOC
@@ -383,412 +107,14 @@ void
 vm_radix_zinit(void)
 {
 
-	vm_radix_node_zone = uma_zcreate("RADIX NODE",
-	    sizeof(struct vm_radix_node), NULL, NULL, vm_radix_zone_init, NULL,
-	    VM_RADIX_PAD, UMA_ZONE_VM | UMA_ZONE_SMR);
+	vm_radix_node_zone = uma_zcreate("RADIX NODE", pctrie_node_size(),
+	    NULL, NULL, pctrie_zone_init, NULL,
+	    PCTRIE_PAD, UMA_ZONE_VM | UMA_ZONE_SMR);
 	vm_radix_smr = uma_zone_get_smr(vm_radix_node_zone);
 }
 
-/*
- * Inserts the key-value pair into the trie.
- * Panics if the key already exists.
- */
-int
-vm_radix_insert(struct vm_radix *rtree, vm_page_t page)
-{
-	vm_pindex_t index, newind;
-	struct vm_radix_node *leaf, *parent, *rnode;
-	smrnode_t *parentp;
-	int slot;
-
-	index = page->pindex;
-	leaf = vm_radix_toleaf(page);
-
-	/*
-	 * The owner of record for root is not really important because it
-	 * will never be used.
-	 */
-	rnode = vm_radix_root_load(rtree, LOCKED);
-	parent = NULL;
-	for (;;) {
-		if (vm_radix_isleaf(rnode)) {
-			if (rnode == VM_RADIX_NULL) {
-				if (parent == NULL)
-					rtree->rt_root = leaf;
-				else
-					vm_radix_addnode(parent, index, leaf,
-					    LOCKED);
-				return (0);
-			}
-			newind = vm_radix_topage(rnode)->pindex;
-			if (newind == index)
-				panic("%s: key %jx is already present",
-				    __func__, (uintmax_t)index);
-			break;
-		}
-		if (vm_radix_keybarr(rnode, index, &slot)) {
-			newind = rnode->rn_owner;
-			break;
-		}
-		parent = rnode;
-		rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
-	}
-
-	/*
-	 * A new node is needed because the right insertion level is reached.
-	 * Setup the new intermediate node and add the 2 children: the
-	 * new object and the older edge or object.
-	 */
-	parentp = (parent != NULL) ? &parent->rn_child[slot]:
-	    (smrnode_t *)&rtree->rt_root;
-	parent = vm_radix_node_get(index, newind);
-	if (parent == NULL)
-		return (ENOMEM);
-	/* These writes are not yet visible due to ordering. */
-	vm_radix_addnode(parent, index, leaf, UNSERIALIZED);
-	vm_radix_addnode(parent, newind, rnode, UNSERIALIZED);
-	/* Serializing write to make the above visible. */
-	vm_radix_node_store(parentp, parent, LOCKED);
-	return (0);
-}
-
-/*
- * Returns the value stored at the index.  If the index is not present,
- * NULL is returned.
- */
-static __always_inline vm_page_t
-_vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index,
-    enum vm_radix_access access)
-{
-	struct vm_radix_node *rnode;
-	vm_page_t m;
-	int slot;
-
-	rnode = vm_radix_root_load(rtree, access);
-	for (;;) {
-		if (vm_radix_isleaf(rnode)) {
-			if ((m = vm_radix_topage(rnode)) != NULL &&
-			    m->pindex == index)
-				return (m);
-			break;
-		}
-		if (vm_radix_keybarr(rnode, index, &slot))
-			break;
-		rnode = vm_radix_node_load(&rnode->rn_child[slot], access);
-	}
-	return (NULL);
-}
-
-/*
- * Returns the value stored at the index assuming there is an external lock.
- *
- * If the index is not present, NULL is returned.
- */
-vm_page_t
-vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index)
-{
-
-	return _vm_radix_lookup(rtree, index, LOCKED);
-}
-
-/*
- * Returns the value stored at the index without requiring an external lock.
- *
- * If the index is not present, NULL is returned.
- */
-vm_page_t
-vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index)
-{
-	vm_page_t m;
-
-	smr_enter(vm_radix_smr);
-	m = _vm_radix_lookup(rtree, index, SMR);
-	smr_exit(vm_radix_smr);
-
-	return (m);
-}
-
-/*
- * Returns the page with the least pindex that is greater than or equal to the
- * specified pindex, or NULL if there are no such pages.
- *
- * Requires that access be externally synchronized by a lock.
- */
-vm_page_t
-vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index)
-{
-	struct vm_radix_node *rnode, *succ;
-	vm_page_t m;
-	int slot;
-
-	/*
-	 * Descend the trie as if performing an ordinary lookup for the page
-	 * with the specified pindex.  However, unlike an ordinary lookup, as we
-	 * descend the trie, we use "succ" to remember the last branching-off
-	 * point, that is, the interior node under which the page with the least
-	 * pindex that is both outside our current path down the trie and more
-	 * than the specified pindex resides.  (The node's popmap makes it fast
-	 * and easy to recognize a branching-off point.)  If our ordinary lookup
-	 * fails to yield a page with a pindex that is greater than or equal to
-	 * the specified pindex, then we will exit this loop and perform a
-	 * lookup starting from "succ".  If "succ" is not NULL, then that lookup
-	 * is guaranteed to succeed.
-	 */
-	rnode = vm_radix_root_load(rtree, LOCKED);
-	succ = NULL;
-	for (;;) {
-		if (vm_radix_isleaf(rnode)) {
-			if ((m = vm_radix_topage(rnode)) != NULL &&
-			    m->pindex >= index)
-				return (m);
-			break;
-		}
-		if (vm_radix_keybarr(rnode, index, &slot)) {
-			/*
-			 * If all pages in this subtree have pindex > index,
-			 * then the page in this subtree with the least pindex
-			 * is the answer.
-			 */
-			if (rnode->rn_owner > index)
-				succ = rnode;
-			break;
-		}
-
-		/*
-		 * Just in case the next search step leads to a subtree of all
-		 * pages with pindex < index, check popmap to see if a next
-		 * bigger step, to a subtree of all pages with pindex > index,
-		 * is available.  If so, remember to restart the search here.
-		 */
-		if ((rnode->rn_popmap >> slot) > 1)
-			succ = rnode;
-		rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
-	}
-
-	/*
-	 * Restart the search from the last place visited in the subtree that
-	 * included some pages with pindex > index, if there was such a place.
-	 */
-	if (succ == NULL)
-		return (NULL);
-	if (succ != rnode) {
-		/*
-		 * Take a step to the next bigger sibling of the node chosen
-		 * last time.  In that subtree, all pages have pindex > index.
-		 */
-		slot = vm_radix_slot(succ, index) + 1;
-		KASSERT((succ->rn_popmap >> slot) != 0,
-		    ("%s: no popmap siblings past slot %d in node %p",
-		    __func__, slot, succ));
-		slot += ffs(succ->rn_popmap >> slot) - 1;
-		succ = vm_radix_node_load(&succ->rn_child[slot], LOCKED);
-	}
-
-	/*
-	 * Find the page in the subtree rooted at "succ" with the least pindex.
-	 */
-	while (!vm_radix_isleaf(succ)) {
-		KASSERT(succ->rn_popmap != 0,
-		    ("%s: no popmap children in node %p",  __func__, succ));
-		slot = ffs(succ->rn_popmap) - 1;
-		succ = vm_radix_node_load(&succ->rn_child[slot], LOCKED);
-	}
-	return (vm_radix_topage(succ));
-}
-
-/*
- * Returns the page with the greatest pindex that is less than or equal to the
- * specified pindex, or NULL if there are no such pages.
- *
- * Requires that access be externally synchronized by a lock.
- */
-vm_page_t
-vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index)
-{
-	struct vm_radix_node *pred, *rnode;
-	vm_page_t m;
-	int slot;
-
-	/*
-	 * Mirror the implementation of vm_radix_lookup_ge, described above.
-	 */
-	rnode = vm_radix_root_load(rtree, LOCKED);
-	pred = NULL;
-	for (;;) {
-		if (vm_radix_isleaf(rnode)) {
-			if ((m = vm_radix_topage(rnode)) != NULL &&
-			    m->pindex <= index)
-				return (m);
-			break;
-		}
-		if (vm_radix_keybarr(rnode, index, &slot)) {
-			if (rnode->rn_owner < index)
-				pred = rnode;
-			break;
-		}
-		if ((rnode->rn_popmap & ((1 << slot) - 1)) != 0)
-			pred = rnode;
-		rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
-	}
-	if (pred == NULL)
-		return (NULL);
-	if (pred != rnode) {
-		slot = vm_radix_slot(pred, index);
-		KASSERT((pred->rn_popmap & ((1 << slot) - 1)) != 0,
-		    ("%s: no popmap siblings before slot %d in node %p",
-		    __func__, slot, pred));
-		slot = fls(pred->rn_popmap & ((1 << slot) - 1)) - 1;
-		pred = vm_radix_node_load(&pred->rn_child[slot], LOCKED);
-	}
-	while (!vm_radix_isleaf(pred)) {
-		KASSERT(pred->rn_popmap != 0,
-		    ("%s: no popmap children in node %p",  __func__, pred));
-		slot = fls(pred->rn_popmap) - 1;
-		pred = vm_radix_node_load(&pred->rn_child[slot], LOCKED);
-	}
-	return (vm_radix_topage(pred));
-}
-
-/*
- * Remove the specified index from the trie, and return the value stored at
- * that index.  If the index is not present, return NULL.
- */
-vm_page_t
-vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index)
-{
-	struct vm_radix_node *child, *parent, *rnode;
-	vm_page_t m;
-	int slot;
-
-	rnode = NULL;
-	child = vm_radix_root_load(rtree, LOCKED);
-	for (;;) {
-		if (vm_radix_isleaf(child))
-			break;
-		parent = rnode;
-		rnode = child;
-		slot = vm_radix_slot(rnode, index);
-		child = vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
-	}
-	if ((m = vm_radix_topage(child)) == NULL || m->pindex != index)
-		return (NULL);
-	if (rnode == NULL) {
-		vm_radix_root_store(rtree, VM_RADIX_NULL, LOCKED);
-		return (m);
-	}
-	KASSERT((rnode->rn_popmap & (1 << slot)) != 0,
-	    ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode));
-	rnode->rn_popmap ^= 1 << slot;
-	vm_radix_node_store(&rnode->rn_child[slot], VM_RADIX_NULL, LOCKED);
-	if (!powerof2(rnode->rn_popmap))
-		return (m);
-	KASSERT(rnode->rn_popmap != 0, ("%s: bad popmap all zeroes", __func__));
-	slot = ffs(rnode->rn_popmap) - 1;
-	child = vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
-	KASSERT(child != VM_RADIX_NULL,
-	    ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode));
-	if (parent == NULL)
-		vm_radix_root_store(rtree, child, LOCKED);
-	else {
-		slot = vm_radix_slot(parent, index);
-		KASSERT(rnode ==
-		    vm_radix_node_load(&parent->rn_child[slot], LOCKED),
-		    ("%s: invalid child value", __func__));
-		vm_radix_node_store(&parent->rn_child[slot], child, LOCKED);
-	}
-	/*
-	 * The child is still valid and we can not zero the
-	 * pointer until all smr references are gone.
-	 */
-	vm_radix_node_put(rnode);
-	return (m);
-}
-
-/*
- * Remove and free all the nodes from the radix tree.
- * This function is recursive but there is a tight control on it as the
- * maximum depth of the tree is fixed.
- */
-void
-vm_radix_reclaim_allnodes(struct vm_radix *rtree)
-{
-	struct vm_radix_node *root;
-
-	root = vm_radix_root_load(rtree, LOCKED);
-	if (root == VM_RADIX_NULL)
-		return;
-	vm_radix_root_store(rtree, VM_RADIX_NULL, UNSERIALIZED);
-	if (!vm_radix_isleaf(root))
-		vm_radix_reclaim_allnodes_int(root);
-}
-
-/*
- * Replace an existing page in the trie with another one.
- * Panics if there is not an old page in the trie at the new page's index.
- */
-vm_page_t
-vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage)
-{
-	struct vm_radix_node *leaf, *parent, *rnode;
-	vm_page_t m;
-	vm_pindex_t index;
-	int slot;
-
-	leaf = vm_radix_toleaf(newpage);
-	index = newpage->pindex;
-	rnode = vm_radix_root_load(rtree, LOCKED);
-	parent = NULL;
-	for (;;) {
-		if (vm_radix_isleaf(rnode)) {
-			if ((m = vm_radix_topage(rnode)) != NULL &&
-			    m->pindex == index) {
-				if (parent == NULL)
-					rtree->rt_root = leaf;
-				else
-					vm_radix_node_store(
-					    &parent->rn_child[slot], leaf,
-					    LOCKED);
-				return (m);
-			}
-			break;
-		}
-		if (vm_radix_keybarr(rnode, index, &slot))
-			break;
-		parent = rnode;
-		rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
-	}
-	panic("%s: original replacing page not found", __func__);
-}
-
 void
 vm_radix_wait(void)
 {
 	uma_zwait(vm_radix_node_zone);
 }
-
-#ifdef DDB
-/*
- * Show details about the given radix node.
- */
-DB_SHOW_COMMAND(radixnode, db_show_radixnode)
-{
-	struct vm_radix_node *rnode, *tmp;
-	int slot;
-	rn_popmap_t popmap;
-
-        if (!have_addr)
-                return;
-	rnode = (struct vm_radix_node *)addr;
-	db_printf("radixnode %p, owner %jx, children popmap %04x, level %u:\n",
-	    (void *)rnode, (uintmax_t)rnode->rn_owner, rnode->rn_popmap,
-	    rnode->rn_clev / VM_RADIX_WIDTH);
-	for (popmap = rnode->rn_popmap; popmap != 0; popmap ^= 1 << slot) {
-		slot = ffs(popmap) - 1;
-		tmp = vm_radix_node_load(&rnode->rn_child[slot], UNSERIALIZED);
-		db_printf("slot: %d, val: %p, page: %p, clev: %d\n",
-		    slot, (void *)tmp,
-		    vm_radix_isleaf(tmp) ?  vm_radix_topage(tmp) : NULL,
-		    rnode->rn_clev / VM_RADIX_WIDTH);
-	}
-}
-#endif /* DDB */
diff --git a/sys/vm/vm_radix.h b/sys/vm/vm_radix.h
index 231edda65102..a332618fc0e6 100644
--- a/sys/vm/vm_radix.h
+++ b/sys/vm/vm_radix.h
@@ -34,36 +34,113 @@
 #include <vm/_vm_radix.h>
 
 #ifdef _KERNEL
+#include <sys/pctrie.h>
+#include <vm/vm.h>
 
-int		vm_radix_insert(struct vm_radix *rtree, vm_page_t page);
 void		vm_radix_wait(void);
-vm_page_t	vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index);
-vm_page_t	vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index);
-vm_page_t	vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index);
-vm_page_t	vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index);
-void		vm_radix_reclaim_allnodes(struct vm_radix *rtree);
-vm_page_t	vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index);
-vm_page_t	vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage);
 void		vm_radix_zinit(void);
-
-/*
- * Each search path in the trie terminates at a leaf, which is a pointer to a
- * page marked with a set 1-bit.  A leaf may be associated with a null pointer
- * to indicate no page there.
- */
-#define	VM_RADIX_ISLEAF	0x1
-#define VM_RADIX_NULL (struct vm_radix_node *)VM_RADIX_ISLEAF
+void		*vm_radix_node_alloc(struct pctrie *ptree);
+void		vm_radix_node_free(struct pctrie *ptree, void *node);
+extern smr_t	vm_radix_smr;
 
 static __inline void
 vm_radix_init(struct vm_radix *rtree)
 {
-	rtree->rt_root = VM_RADIX_NULL;
+	pctrie_init(&rtree->rt_trie);
 }
 
 static __inline bool
 vm_radix_is_empty(struct vm_radix *rtree)
 {
-	return (rtree->rt_root == VM_RADIX_NULL);
+	return (pctrie_is_empty(&rtree->rt_trie));
+}
+
+PCTRIE_DEFINE_SMR(VM_RADIX, vm_page, pindex, vm_radix_node_alloc, vm_radix_node_free,
+    vm_radix_smr);
+
+/*
+ * Inserts the key-value pair into the trie.
+ * Panics if the key already exists.
+ */
+static __inline int
+vm_radix_insert(struct vm_radix *rtree, vm_page_t page)
+{
+	return (VM_RADIX_PCTRIE_INSERT(&rtree->rt_trie, page));
+}
+
+/*
+ * Returns the value stored at the index assuming there is an external lock.
+ *
+ * If the index is not present, NULL is returned.
+ */
+static __inline vm_page_t
+vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index)
+{
+	return (VM_RADIX_PCTRIE_LOOKUP(&rtree->rt_trie, index));
+}
+
+/*
+ * Returns the value stored at the index without requiring an external lock.
+ *
+ * If the index is not present, NULL is returned.
+ */
+static __inline vm_page_t
+vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index)
+{
+	return (VM_RADIX_PCTRIE_LOOKUP_UNLOCKED(&rtree->rt_trie, index));
+}
+
+/*
+ * Returns the page with the least pindex that is greater than or equal to the
+ * specified pindex, or NULL if there are no such pages.
+ *
+ * Requires that access be externally synchronized by a lock.
+ */
+static __inline vm_page_t
+vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index)
+{
+	return (VM_RADIX_PCTRIE_LOOKUP_GE(&rtree->rt_trie, index));
+}
+
+/*
+ * Returns the page with the greatest pindex that is less than or equal to the
+ * specified pindex, or NULL if there are no such pages.
+ *
+ * Requires that access be externally synchronized by a lock.
+ */
+static __inline vm_page_t
+vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index)
+{
+	return (VM_RADIX_PCTRIE_LOOKUP_LE(&rtree->rt_trie, index));
+}
+
+/*
+ * Remove the specified index from the trie, and return the value stored at
+ * that index.  If the index is not present, return NULL.
+ */
+static __inline vm_page_t
+vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index)
+{
+	return (VM_RADIX_PCTRIE_REMOVE_LOOKUP(&rtree->rt_trie, index));
+}
+
+/*
+ * Remove and free all the nodes from the radix tree.
+ */
+static __inline void
+vm_radix_reclaim_allnodes(struct vm_radix *rtree)
+{
+	VM_RADIX_PCTRIE_RECLAIM(&rtree->rt_trie);
+}
+
+/*
+ * Replace an existing page in the trie with another one.
+ * Panics if there is not an old page in the trie at the new page's index.
+ */
+static __inline vm_page_t
+vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage)
+{
+	return (VM_RADIX_PCTRIE_REPLACE(&rtree->rt_trie, newpage));
 }
 
 #endif /* _KERNEL */

From nobody Mon Sep 11 07:19:37 2023
X-Original-To: dev-commits-src-main@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 4RkdQ75Rl4z4sM9N;
	Mon, 11 Sep 2023 07:19: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 4RkdQ75HDJz3CSx;
	Mon, 11 Sep 2023 07:19:43 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694416783;
	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=q7WJwO4UV5rDWGSYaUB4vePehnuofPHlTQf095QkxJg=;
	b=vMwF8NgQjQrIYtMG5YvcAcjkU/itd8zrljSo5RqgLPiSU8h2nreQhLhVkCHLdspX10xRZO
	02ihYAFD5tMKlUkSME7DcmP8dQ6i28fpyELGAjdokRVu3XSOour/N9xdjwthEHnoTzLAXI
	unyieizPEwYoKOdCE3Lj++oe7bA74VR1OGVkPd9ybpaqNHf/skE2TJtsP7E4zFnvaRE/MI
	4udlhiMga8XmcXHM4vioP4UuNidaImVqybPNIPyUe2vgCrsLFUe0imTeUMdOn+TFggVgn2
	pApx55Jh1iTCVy2uoQuNrGSm9a/aPUoX+9f7M9cyTaPNX/Z2Zdt5bIAGHH1pSA==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694416783; a=rsa-sha256; cv=none;
	b=v0CL/GT952G0A37U3+TUPBxpT6h9DNSHmobuFQwJwGwke1PovnDQZRVtqMMX3EEib0cZSl
	SnRxe1ccLff8eO2ttSUrlJQ1SkdWNxcOga0MU6RS5fZkJyOiXNpzOdxNgBuE+iLTW47dSJ
	w53Sn+MNF3VulP+lyrfMtWRzswweFM/aCXdyyLL0RXO7aXhi2KNgwzKsNQpqombn0j7yob
	wolzbJi3CFFGG+jDK8VcjXd3Z3yd2lXiYdytaQeppeV4tTZkYDXOxhewDUHhIhfTvGSiIW
	rneX5+V/OpslekDF8RhL/0v7VbQNOwZyZ6QrI56enLlRM/Jle3mIm4/6AaQxLg==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694416783;
	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=q7WJwO4UV5rDWGSYaUB4vePehnuofPHlTQf095QkxJg=;
	b=mmljZiAmdDSZKU9X8iRkx0tZKxbkHSRI3NSqh0lz/KFAsD6+Qvl2Bx6r8Hk9yqOgVpWDrE
	/Vm92fiSv8TAkdb1m8APcSft35TtfNkCR04IvWDEK09syCyqYnllYuk0zNJbNQ8e8dO+nK
	LsvGY4EpXnwr1OD7eGfgGYHSBiGbPxV6YOPwcVMbHHdy+3acXGB5aFfaAz2DvFsQhbOMCv
	M5V3spOO39vuFIIV7MQMD9nhj0sn0YTYKWf2c4x3eQFezhSTNl9Bkw65VpU9Q1/T1woDg3
	dpExjr/fsgfmFveET9qL25eVto86EOuAhVQf+IcH/cnZqD7pnrzJVQ91iP0P3Q==
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 4RkdQ74KgCzflx;
	Mon, 11 Sep 2023 07:19: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 38B7JhpX028048;
	Mon, 11 Sep 2023 07:19:43 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38B7Jbui028038;
	Mon, 11 Sep 2023 07:19:37 GMT
	(envelope-from git)
Date: Mon, 11 Sep 2023 07:19:37 GMT
Message-Id: <202309110719.38B7Jbui028038@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Martin Matuska <mm@FreeBSD.org>
Subject: git: 3159b89b6198 - main - zfs: merge openzfs/zfs@0ee9b0239
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: mm
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 3159b89b6198c9a1d903c9de6654c6d863728617
Auto-Submitted: auto-generated

The branch main has been updated by mm:

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

commit 3159b89b6198c9a1d903c9de6654c6d863728617
Merge: a494d30465f2 0ee9b02390d5
Author:     Martin Matuska <mm@FreeBSD.org>
AuthorDate: 2023-09-11 07:13:30 +0000
Commit:     Martin Matuska <mm@FreeBSD.org>
CommitDate: 2023-09-11 07:18:48 +0000

    zfs: merge openzfs/zfs@0ee9b0239
    
    Notable upstream pull request merges:
      #15251 Add more constraints for block cloning
    
    Obtained from:  OpenZFS
    OpenZFS commit: 0ee9b02390d57c10a4dee0f3d19fcb115b424ca5

 sys/contrib/openzfs/module/os/linux/spl/spl-proc.c  | 21 ++++++++++++++++++---
 .../openzfs/module/os/linux/zfs/qat_compress.c      |  2 ++
 sys/contrib/openzfs/module/zfs/zfs_vnops.c          | 21 +++++++++++++++++++--
 .../cli_root/zdb/zdb_block_size_histogram.ksh       |  8 ++++----
 sys/modules/zfs/zfs_config.h                        |  4 ++--
 sys/modules/zfs/zfs_gitrev.h                        |  2 +-
 6 files changed, 46 insertions(+), 12 deletions(-)

diff --cc sys/modules/zfs/zfs_config.h
index 49b699b24018,000000000000..55cb3596bc17
mode 100644,000000..100644
--- a/sys/modules/zfs/zfs_config.h
+++ b/sys/modules/zfs/zfs_config.h
@@@ -1,1134 -1,0 +1,1134 @@@
 +/*
 + */
 +
 +/* zfs_config.h.  Generated from zfs_config.h.in by configure.  */
 +/* zfs_config.h.in.  Generated from configure.ac by autoheader.  */
 +
 +/* Define to 1 if translation of program messages to the user's native
 +   language is requested. */
 +/* #undef ENABLE_NLS */
 +
 +/* bio_end_io_t wants 1 arg */
 +/* #undef HAVE_1ARG_BIO_END_IO_T */
 +
 +/* lookup_bdev() wants 1 arg */
 +/* #undef HAVE_1ARG_LOOKUP_BDEV */
 +
 +/* submit_bio() wants 1 arg */
 +/* #undef HAVE_1ARG_SUBMIT_BIO */
 +
 +/* bdi_setup_and_register() wants 2 args */
 +/* #undef HAVE_2ARGS_BDI_SETUP_AND_REGISTER */
 +
 +/* vfs_getattr wants 2 args */
 +/* #undef HAVE_2ARGS_VFS_GETATTR */
 +
 +/* zlib_deflate_workspacesize() wants 2 args */
 +/* #undef HAVE_2ARGS_ZLIB_DEFLATE_WORKSPACESIZE */
 +
 +/* bdi_setup_and_register() wants 3 args */
 +/* #undef HAVE_3ARGS_BDI_SETUP_AND_REGISTER */
 +
 +/* vfs_getattr wants 3 args */
 +/* #undef HAVE_3ARGS_VFS_GETATTR */
 +
 +/* vfs_getattr wants 4 args */
 +/* #undef HAVE_4ARGS_VFS_GETATTR */
 +
 +/* kernel has access_ok with 'type' parameter */
 +/* #undef HAVE_ACCESS_OK_TYPE */
 +
 +/* posix_acl has refcount_t */
 +/* #undef HAVE_ACL_REFCOUNT */
 +
 +/* add_disk() returns int */
 +/* #undef HAVE_ADD_DISK_RET */
 +
 +/* Define if host toolchain supports AES */
 +#define HAVE_AES 1
 +
 +/* Define if you have [rt] */
 +#define HAVE_AIO_H 1
 +
 +#ifdef __amd64__
 +#ifndef RESCUE
 +/* Define if host toolchain supports AVX */
 +#define HAVE_AVX 1
 +#endif
 +
 +/* Define if host toolchain supports AVX2 */
 +#define HAVE_AVX2 1
 +
 +/* Define if host toolchain supports AVX512BW */
 +#define HAVE_AVX512BW 1
 +
 +/* Define if host toolchain supports AVX512CD */
 +#define HAVE_AVX512CD 1
 +
 +/* Define if host toolchain supports AVX512DQ */
 +#define HAVE_AVX512DQ 1
 +
 +/* Define if host toolchain supports AVX512ER */
 +#define HAVE_AVX512ER 1
 +
 +/* Define if host toolchain supports AVX512F */
 +#define HAVE_AVX512F 1
 +
 +/* Define if host toolchain supports AVX512IFMA */
 +#define HAVE_AVX512IFMA 1
 +
 +/* Define if host toolchain supports AVX512PF */
 +#define HAVE_AVX512PF 1
 +
 +/* Define if host toolchain supports AVX512VBMI */
 +#define HAVE_AVX512VBMI 1
 +
 +/* Define if host toolchain supports AVX512VL */
 +#define HAVE_AVX512VL 1
 +#endif
 +
 +/* bdevname() is available */
 +/* #undef HAVE_BDEVNAME */
 +
 +/* bdev_check_media_change() exists */
 +/* #undef HAVE_BDEV_CHECK_MEDIA_CHANGE */
 +
 +/* bdev_*_io_acct() available */
 +/* #undef HAVE_BDEV_IO_ACCT_63 */
 +
 +/* bdev_*_io_acct() available */
 +/* #undef HAVE_BDEV_IO_ACCT_OLD */
 +
 +/* bdev_kobj() exists */
 +/* #undef HAVE_BDEV_KOBJ */
 +
 +/* bdev_max_discard_sectors() is available */
 +/* #undef HAVE_BDEV_MAX_DISCARD_SECTORS */
 +
 +/* bdev_max_secure_erase_sectors() is available */
 +/* #undef HAVE_BDEV_MAX_SECURE_ERASE_SECTORS */
 +
 +/* block_device_operations->submit_bio() returns void */
 +/* #undef HAVE_BDEV_SUBMIT_BIO_RETURNS_VOID */
 +
 +/* bdev_whole() is available */
 +/* #undef HAVE_BDEV_WHOLE */
 +
 +/* bio_alloc() takes 4 arguments */
 +/* #undef HAVE_BIO_ALLOC_4ARG */
 +
 +/* bio->bi_bdev->bd_disk exists */
 +/* #undef HAVE_BIO_BDEV_DISK */
 +
 +/* bio->bi_opf is defined */
 +/* #undef HAVE_BIO_BI_OPF */
 +
 +/* bio->bi_status exists */
 +/* #undef HAVE_BIO_BI_STATUS */
 +
 +/* bio has bi_iter */
 +/* #undef HAVE_BIO_BVEC_ITER */
 +
 +/* bio_*_io_acct() available */
 +/* #undef HAVE_BIO_IO_ACCT */
 +
 +/* bio_max_segs() is implemented */
 +/* #undef HAVE_BIO_MAX_SEGS */
 +
 +/* bio_set_dev() is available */
 +/* #undef HAVE_BIO_SET_DEV */
 +
 +/* bio_set_dev() GPL-only */
 +/* #undef HAVE_BIO_SET_DEV_GPL_ONLY */
 +
 +/* bio_set_dev() is a macro */
 +/* #undef HAVE_BIO_SET_DEV_MACRO */
 +
 +/* bio_set_op_attrs is available */
 +/* #undef HAVE_BIO_SET_OP_ATTRS */
 +
 +/* blkdev_get_by_path() exists and takes 4 args */
 +/* #undef HAVE_BLKDEV_GET_BY_PATH_4ARG */
 +
 +/* blkdev_get_by_path() handles ERESTARTSYS */
 +/* #undef HAVE_BLKDEV_GET_ERESTARTSYS */
 +
 +/* blkdev_issue_discard() is available */
 +/* #undef HAVE_BLKDEV_ISSUE_DISCARD */
 +
 +/* blkdev_issue_secure_erase() is available */
 +/* #undef HAVE_BLKDEV_ISSUE_SECURE_ERASE */
 +
 +/* blkdev_put() accepts void* as arg 2 */
 +/* #undef HAVE_BLKDEV_PUT_HOLDER */
 +
 +/* blkdev_reread_part() exists */
 +/* #undef HAVE_BLKDEV_REREAD_PART */
 +
 +/* blkg_tryget() is available */
 +/* #undef HAVE_BLKG_TRYGET */
 +
 +/* blkg_tryget() GPL-only */
 +/* #undef HAVE_BLKG_TRYGET_GPL_ONLY */
 +
 +/* blk_alloc_disk() exists */
 +/* #undef HAVE_BLK_ALLOC_DISK */
 +
 +/* blk_alloc_queue() expects request function */
 +/* #undef HAVE_BLK_ALLOC_QUEUE_REQUEST_FN */
 +
 +/* blk_alloc_queue_rh() expects request function */
 +/* #undef HAVE_BLK_ALLOC_QUEUE_REQUEST_FN_RH */
 +
 +/* blk_cleanup_disk() exists */
 +/* #undef HAVE_BLK_CLEANUP_DISK */
 +
 +/* blk_mode_t is defined */
 +/* #undef HAVE_BLK_MODE_T */
 +
 +/* block multiqueue is available */
 +/* #undef HAVE_BLK_MQ */
 +
 +/* blk queue backing_dev_info is dynamic */
 +/* #undef HAVE_BLK_QUEUE_BDI_DYNAMIC */
 +
 +/* blk_queue_discard() is available */
 +/* #undef HAVE_BLK_QUEUE_DISCARD */
 +
 +/* blk_queue_flag_clear() exists */
 +/* #undef HAVE_BLK_QUEUE_FLAG_CLEAR */
 +
 +/* blk_queue_flag_set() exists */
 +/* #undef HAVE_BLK_QUEUE_FLAG_SET */
 +
 +/* blk_queue_flush() is available */
 +/* #undef HAVE_BLK_QUEUE_FLUSH */
 +
 +/* blk_queue_flush() is GPL-only */
 +/* #undef HAVE_BLK_QUEUE_FLUSH_GPL_ONLY */
 +
 +/* blk_queue_secdiscard() is available */
 +/* #undef HAVE_BLK_QUEUE_SECDISCARD */
 +
 +/* blk_queue_secure_erase() is available */
 +/* #undef HAVE_BLK_QUEUE_SECURE_ERASE */
 +
 +/* blk_queue_update_readahead() exists */
 +/* #undef HAVE_BLK_QUEUE_UPDATE_READAHEAD */
 +
 +/* blk_queue_write_cache() exists */
 +/* #undef HAVE_BLK_QUEUE_WRITE_CACHE */
 +
 +/* blk_queue_write_cache() is GPL-only */
 +/* #undef HAVE_BLK_QUEUE_WRITE_CACHE_GPL_ONLY */
 +
 +/* BLK_STS_RESV_CONFLICT is defined */
 +/* #undef HAVE_BLK_STS_RESV_CONFLICT */
 +
 +/* Define if release() in block_device_operations takes 1 arg */
 +/* #undef HAVE_BLOCK_DEVICE_OPERATIONS_RELEASE_1ARG */
 +
 +/* Define if revalidate_disk() in block_device_operations */
 +/* #undef HAVE_BLOCK_DEVICE_OPERATIONS_REVALIDATE_DISK */
 +
 +/* Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the
 +   CoreFoundation framework. */
 +/* #undef HAVE_CFLOCALECOPYCURRENT */
 +
 +/* Define to 1 if you have the Mac OS X function
 +   CFLocaleCopyPreferredLanguages in the CoreFoundation framework. */
 +/* #undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES */
 +
 +/* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in
 +   the CoreFoundation framework. */
 +/* #undef HAVE_CFPREFERENCESCOPYAPPVALUE */
 +
 +/* check_disk_change() exists */
 +/* #undef HAVE_CHECK_DISK_CHANGE */
 +
 +/* clear_inode() is available */
 +/* #undef HAVE_CLEAR_INODE */
 +
 +/* dentry uses const struct dentry_operations */
 +/* #undef HAVE_CONST_DENTRY_OPERATIONS */
 +
 +/* copy_from_iter() is available */
 +/* #undef HAVE_COPY_FROM_ITER */
 +
 +/* copy_splice_read exists */
 +/* #undef HAVE_COPY_SPLICE_READ */
 +
 +/* copy_to_iter() is available */
 +/* #undef HAVE_COPY_TO_ITER */
 +
 +/* cpu_has_feature() is GPL-only */
 +/* #undef HAVE_CPU_HAS_FEATURE_GPL_ONLY */
 +
 +/* yes */
 +/* #undef HAVE_CPU_HOTPLUG */
 +
 +/* current_time() exists */
 +/* #undef HAVE_CURRENT_TIME */
 +
 +/* Define if the GNU dcgettext() function is already present or preinstalled.
 +   */
 +/* #undef HAVE_DCGETTEXT */
 +
 +/* DECLARE_EVENT_CLASS() is available */
 +/* #undef HAVE_DECLARE_EVENT_CLASS */
 +
 +/* dentry aliases are in d_u member */
 +/* #undef HAVE_DENTRY_D_U_ALIASES */
 +
 +/* dequeue_signal() takes 4 arguments */
 +/* #undef HAVE_DEQUEUE_SIGNAL_4ARG */
 +
 +/* lookup_bdev() wants dev_t arg */
 +/* #undef HAVE_DEVT_LOOKUP_BDEV */
 +
 +/* sops->dirty_inode() wants flags */
 +/* #undef HAVE_DIRTY_INODE_WITH_FLAGS */
 +
 +/* disk_check_media_change() exists */
 +/* #undef HAVE_DISK_CHECK_MEDIA_CHANGE */
 +
 +/* disk_*_io_acct() available */
 +/* #undef HAVE_DISK_IO_ACCT */
 +
 +/* disk_update_readahead() exists */
 +/* #undef HAVE_DISK_UPDATE_READAHEAD */
 +
 +/* Define to 1 if you have the <dlfcn.h> header file. */
 +#define HAVE_DLFCN_H 1
 +
 +/* d_make_root() is available */
 +/* #undef HAVE_D_MAKE_ROOT */
 +
 +/* d_prune_aliases() is available */
 +/* #undef HAVE_D_PRUNE_ALIASES */
 +
 +/* dops->d_revalidate() operation takes nameidata */
 +/* #undef HAVE_D_REVALIDATE_NAMEIDATA */
 +
 +/* eops->encode_fh() wants child and parent inodes */
 +/* #undef HAVE_ENCODE_FH_WITH_INODE */
 +
 +/* sops->evict_inode() exists */
 +/* #undef HAVE_EVICT_INODE */
 +
 +/* FALLOC_FL_ZERO_RANGE is defined */
 +/* #undef HAVE_FALLOC_FL_ZERO_RANGE */
 +
 +/* fault_in_iov_iter_readable() is available */
 +/* #undef HAVE_FAULT_IN_IOV_ITER_READABLE */
 +
 +/* filemap_range_has_page() is available */
 +/* #undef HAVE_FILEMAP_RANGE_HAS_PAGE */
 +
 +/* fops->aio_fsync() exists */
 +/* #undef HAVE_FILE_AIO_FSYNC */
 +
 +/* file_dentry() is available */
 +/* #undef HAVE_FILE_DENTRY */
 +
 +/* fops->fadvise() exists */
 +/* #undef HAVE_FILE_FADVISE */
 +
 +/* file_inode() is available */
 +/* #undef HAVE_FILE_INODE */
 +
 +/* flush_dcache_page() is GPL-only */
 +/* #undef HAVE_FLUSH_DCACHE_PAGE_GPL_ONLY */
 +
 +/* iops->follow_link() cookie */
 +/* #undef HAVE_FOLLOW_LINK_COOKIE */
 +
 +/* iops->follow_link() nameidata */
 +/* #undef HAVE_FOLLOW_LINK_NAMEIDATA */
 +
 +/* Define if compiler supports -Wformat-overflow */
 +/* #undef HAVE_FORMAT_OVERFLOW */
 +
 +/* fops->fsync() with range */
 +/* #undef HAVE_FSYNC_RANGE */
 +
 +/* fops->fsync() without dentry */
 +/* #undef HAVE_FSYNC_WITHOUT_DENTRY */
 +
 +/* yes */
 +/* #undef HAVE_GENERIC_FADVISE */
 +
 +/* generic_fillattr requires struct mnt_idmap* */
 +/* #undef HAVE_GENERIC_FILLATTR_IDMAP */
 +
 +/* generic_fillattr requires struct user_namespace* */
 +/* #undef HAVE_GENERIC_FILLATTR_USERNS */
 +
 +/* generic_*_io_acct() 3 arg available */
 +/* #undef HAVE_GENERIC_IO_ACCT_3ARG */
 +
 +/* generic_*_io_acct() 4 arg available */
 +/* #undef HAVE_GENERIC_IO_ACCT_4ARG */
 +
 +/* generic_readlink is global */
 +/* #undef HAVE_GENERIC_READLINK */
 +
 +/* generic_setxattr() exists */
 +/* #undef HAVE_GENERIC_SETXATTR */
 +
 +/* generic_write_checks() takes kiocb */
 +/* #undef HAVE_GENERIC_WRITE_CHECKS_KIOCB */
 +
 +/* Define if the GNU gettext() function is already present or preinstalled. */
 +/* #undef HAVE_GETTEXT */
 +
 +/* iops->get_acl() exists */
 +/* #undef HAVE_GET_ACL */
 +
 +/* iops->get_acl() takes rcu */
 +/* #undef HAVE_GET_ACL_RCU */
 +
 +/* has iops->get_inode_acl() */
 +/* #undef HAVE_GET_INODE_ACL */
 +
 +/* iops->get_link() cookie */
 +/* #undef HAVE_GET_LINK_COOKIE */
 +
 +/* iops->get_link() delayed */
 +/* #undef HAVE_GET_LINK_DELAYED */
 +
 +/* group_info->gid exists */
 +/* #undef HAVE_GROUP_INFO_GID */
 +
 +/* has_capability() is available */
 +/* #undef HAVE_HAS_CAPABILITY */
 +
 +/* iattr->ia_vfsuid and iattr->ia_vfsgid exist */
 +/* #undef HAVE_IATTR_VFSID */
 +
 +/* Define if you have the iconv() function and it works. */
 +#define HAVE_ICONV 1
 +
 +/* iops->getattr() takes struct mnt_idmap* */
 +/* #undef HAVE_IDMAP_IOPS_GETATTR */
 +
 +/* iops->setattr() takes struct mnt_idmap* */
 +/* #undef HAVE_IDMAP_IOPS_SETATTR */
 +
 +/* APIs for idmapped mount are present */
 +/* #undef HAVE_IDMAP_MNT_API */
 +
 +/* Define if compiler supports -Wimplicit-fallthrough */
 +/* #undef HAVE_IMPLICIT_FALLTHROUGH */
 +
 +/* Define if compiler supports -Winfinite-recursion */
 +/* #undef HAVE_INFINITE_RECURSION */
 +
 +/* yes */
 +/* #undef HAVE_INODE_LOCK_SHARED */
 +
 +/* inode_owner_or_capable() exists */
 +/* #undef HAVE_INODE_OWNER_OR_CAPABLE */
 +
 +/* inode_owner_or_capable() takes mnt_idmap */
 +/* #undef HAVE_INODE_OWNER_OR_CAPABLE_IDMAP */
 +
 +/* inode_owner_or_capable() takes user_ns */
 +/* #undef HAVE_INODE_OWNER_OR_CAPABLE_USERNS */
 +
 +/* inode_set_flags() exists */
 +/* #undef HAVE_INODE_SET_FLAGS */
 +
 +/* inode_set_iversion() exists */
 +/* #undef HAVE_INODE_SET_IVERSION */
 +
 +/* inode->i_*time's are timespec64 */
 +/* #undef HAVE_INODE_TIMESPEC64_TIMES */
 +
 +/* timestamp_truncate() exists */
 +/* #undef HAVE_INODE_TIMESTAMP_TRUNCATE */
 +
 +/* Define to 1 if you have the <inttypes.h> header file. */
 +#define HAVE_INTTYPES_H 1
 +
 +/* in_compat_syscall() is available */
 +/* #undef HAVE_IN_COMPAT_SYSCALL */
 +
 +/* iops->create() takes struct mnt_idmap* */
 +/* #undef HAVE_IOPS_CREATE_IDMAP */
 +
 +/* iops->create() takes struct user_namespace* */
 +/* #undef HAVE_IOPS_CREATE_USERNS */
 +
 +/* iops->mkdir() takes struct mnt_idmap* */
 +/* #undef HAVE_IOPS_MKDIR_IDMAP */
 +
 +/* iops->mkdir() takes struct user_namespace* */
 +/* #undef HAVE_IOPS_MKDIR_USERNS */
 +
 +/* iops->mknod() takes struct mnt_idmap* */
 +/* #undef HAVE_IOPS_MKNOD_IDMAP */
 +
 +/* iops->mknod() takes struct user_namespace* */
 +/* #undef HAVE_IOPS_MKNOD_USERNS */
 +
 +/* iops->permission() takes struct mnt_idmap* */
 +/* #undef HAVE_IOPS_PERMISSION_IDMAP */
 +
 +/* iops->permission() takes struct user_namespace* */
 +/* #undef HAVE_IOPS_PERMISSION_USERNS */
 +
 +/* iops->rename() takes struct mnt_idmap* */
 +/* #undef HAVE_IOPS_RENAME_IDMAP */
 +
 +/* iops->rename() takes struct user_namespace* */
 +/* #undef HAVE_IOPS_RENAME_USERNS */
 +
 +/* iops->setattr() exists */
 +/* #undef HAVE_IOPS_SETATTR */
 +
 +/* iops->symlink() takes struct mnt_idmap* */
 +/* #undef HAVE_IOPS_SYMLINK_IDMAP */
 +
 +/* iops->symlink() takes struct user_namespace* */
 +/* #undef HAVE_IOPS_SYMLINK_USERNS */
 +
 +/* iov_iter_advance() is available */
 +/* #undef HAVE_IOV_ITER_ADVANCE */
 +
 +/* iov_iter_count() is available */
 +/* #undef HAVE_IOV_ITER_COUNT */
 +
 +/* iov_iter_fault_in_readable() is available */
 +/* #undef HAVE_IOV_ITER_FAULT_IN_READABLE */
 +
 +/* iov_iter_revert() is available */
 +/* #undef HAVE_IOV_ITER_REVERT */
 +
 +/* iov_iter_type() is available */
 +/* #undef HAVE_IOV_ITER_TYPE */
 +
 +/* iov_iter types are available */
 +/* #undef HAVE_IOV_ITER_TYPES */
 +
 +/* yes */
 +/* #undef HAVE_IO_SCHEDULE_TIMEOUT */
 +
 +/* Define to 1 if you have the `issetugid' function. */
 +#define HAVE_ISSETUGID 1
 +
 +/* iter_iov() is available */
 +/* #undef HAVE_ITER_IOV */
 +
 +/* kernel has kernel_fpu_* functions */
 +/* #undef HAVE_KERNEL_FPU */
 +
 +/* kernel has asm/fpu/api.h */
 +/* #undef HAVE_KERNEL_FPU_API_HEADER */
 +
 +/* kernel fpu internal */
 +/* #undef HAVE_KERNEL_FPU_INTERNAL */
 +
 +/* kernel has asm/fpu/internal.h */
 +/* #undef HAVE_KERNEL_FPU_INTERNAL_HEADER */
 +
 +/* uncached_acl_sentinel() exists */
 +/* #undef HAVE_KERNEL_GET_ACL_HANDLE_CACHE */
 +
 +/* Define if compiler supports -Winfinite-recursion */
 +/* #undef HAVE_KERNEL_INFINITE_RECURSION */
 +
 +/* kernel does stack verification */
 +/* #undef HAVE_KERNEL_OBJTOOL */
 +
 +/* kernel has linux/objtool.h */
 +/* #undef HAVE_KERNEL_OBJTOOL_HEADER */
 +
 +/* kernel_read() take loff_t pointer */
 +/* #undef HAVE_KERNEL_READ_PPOS */
 +
 +/* timer_list.function gets a timer_list */
 +/* #undef HAVE_KERNEL_TIMER_FUNCTION_TIMER_LIST */
 +
 +/* struct timer_list has a flags member */
 +/* #undef HAVE_KERNEL_TIMER_LIST_FLAGS */
 +
 +/* timer_setup() is available */
 +/* #undef HAVE_KERNEL_TIMER_SETUP */
 +
 +/* kernel_write() take loff_t pointer */
 +/* #undef HAVE_KERNEL_WRITE_PPOS */
 +
 +/* kmem_cache_create_usercopy() exists */
 +/* #undef HAVE_KMEM_CACHE_CREATE_USERCOPY */
 +
 +/* kstrtoul() exists */
 +/* #undef HAVE_KSTRTOUL */
 +
 +/* ktime_get_coarse_real_ts64() exists */
 +/* #undef HAVE_KTIME_GET_COARSE_REAL_TS64 */
 +
 +/* ktime_get_raw_ts64() exists */
 +/* #undef HAVE_KTIME_GET_RAW_TS64 */
 +
 +/* kvmalloc exists */
 +/* #undef HAVE_KVMALLOC */
 +
 +/* Define if you have [aio] */
 +/* #undef HAVE_LIBAIO */
 +
 +/* Define if you have [blkid] */
 +/* #undef HAVE_LIBBLKID */
 +
 +/* Define if you have [crypto] */
 +#define HAVE_LIBCRYPTO 1
 +
 +/* Define if you have [tirpc] */
 +/* #undef HAVE_LIBTIRPC */
 +
 +/* Define if you have [udev] */
 +/* #undef HAVE_LIBUDEV */
 +
 +/* Define if you have [uuid] */
 +/* #undef HAVE_LIBUUID */
 +
 +/* linux/blk-cgroup.h exists */
 +/* #undef HAVE_LINUX_BLK_CGROUP_HEADER */
 +
 +/* lseek_execute() is available */
 +/* #undef HAVE_LSEEK_EXECUTE */
 +
 +/* makedev() is declared in sys/mkdev.h */
 +/* #undef HAVE_MAKEDEV_IN_MKDEV */
 +
 +/* makedev() is declared in sys/sysmacros.h */
 +/* #undef HAVE_MAKEDEV_IN_SYSMACROS */
 +
 +/* Noting that make_request_fn() returns blk_qc_t */
 +/* #undef HAVE_MAKE_REQUEST_FN_RET_QC */
 +
 +/* Noting that make_request_fn() returns void */
 +/* #undef HAVE_MAKE_REQUEST_FN_RET_VOID */
 +
 +/* iops->mkdir() takes umode_t */
 +/* #undef HAVE_MKDIR_UMODE_T */
 +
 +/* Define to 1 if you have the `mlockall' function. */
 +#define HAVE_MLOCKALL 1
 +
 +/* lookup_bdev() wants mode arg */
 +/* #undef HAVE_MODE_LOOKUP_BDEV */
 +
 +/* Define if host toolchain supports MOVBE */
 +#define HAVE_MOVBE 1
 +
 +/* new_sync_read()/new_sync_write() are available */
 +/* #undef HAVE_NEW_SYNC_READ */
 +
 +/* folio_wait_bit() exists */
 +/* #undef HAVE_PAGEMAP_FOLIO_WAIT_BIT */
 +
 +/* part_to_dev() exists */
 +/* #undef HAVE_PART_TO_DEV */
 +
 +/* iops->getattr() takes a path */
 +/* #undef HAVE_PATH_IOPS_GETATTR */
 +
 +/* Define if host toolchain supports PCLMULQDQ */
 +#define HAVE_PCLMULQDQ 1
 +
 +/* percpu_counter_add_batch() is defined */
 +/* #undef HAVE_PERCPU_COUNTER_ADD_BATCH */
 +
 +/* percpu_counter_init() wants gfp_t */
 +/* #undef HAVE_PERCPU_COUNTER_INIT_WITH_GFP */
 +
 +/* posix_acl_chmod() exists */
 +/* #undef HAVE_POSIX_ACL_CHMOD */
 +
 +/* posix_acl_from_xattr() needs user_ns */
 +/* #undef HAVE_POSIX_ACL_FROM_XATTR_USERNS */
 +
 +/* posix_acl_release() is available */
 +/* #undef HAVE_POSIX_ACL_RELEASE */
 +
 +/* posix_acl_release() is GPL-only */
 +/* #undef HAVE_POSIX_ACL_RELEASE_GPL_ONLY */
 +
 +/* posix_acl_valid() wants user namespace */
 +/* #undef HAVE_POSIX_ACL_VALID_WITH_NS */
 +
 +/* proc_ops structure exists */
 +/* #undef HAVE_PROC_OPS_STRUCT */
 +
 +/* iops->put_link() cookie */
 +/* #undef HAVE_PUT_LINK_COOKIE */
 +
 +/* iops->put_link() delayed */
 +/* #undef HAVE_PUT_LINK_DELAYED */
 +
 +/* iops->put_link() nameidata */
 +/* #undef HAVE_PUT_LINK_NAMEIDATA */
 +
 +/* If available, contains the Python version number currently in use. */
 +#define HAVE_PYTHON "3.7"
 +
 +/* qat is enabled and existed */
 +/* #undef HAVE_QAT */
 +
 +/* struct reclaim_state has reclaimed */
 +/* #undef HAVE_RECLAIM_STATE_RECLAIMED */
 +
 +/* register_shrinker is vararg */
 +/* #undef HAVE_REGISTER_SHRINKER_VARARG */
 +
 +/* register_sysctl_table exists */
 +/* #undef HAVE_REGISTER_SYSCTL_TABLE */
 +
 +/* iops->rename2() exists */
 +/* #undef HAVE_RENAME2 */
 +
 +/* struct inode_operations_wrapper takes .rename2() */
 +/* #undef HAVE_RENAME2_OPERATIONS_WRAPPER */
 +
 +/* iops->rename() wants flags */
 +/* #undef HAVE_RENAME_WANTS_FLAGS */
 +
 +/* REQ_DISCARD is defined */
 +/* #undef HAVE_REQ_DISCARD */
 +
 +/* REQ_FLUSH is defined */
 +/* #undef HAVE_REQ_FLUSH */
 +
 +/* REQ_OP_DISCARD is defined */
 +/* #undef HAVE_REQ_OP_DISCARD */
 +
 +/* REQ_OP_FLUSH is defined */
 +/* #undef HAVE_REQ_OP_FLUSH */
 +
 +/* REQ_OP_SECURE_ERASE is defined */
 +/* #undef HAVE_REQ_OP_SECURE_ERASE */
 +
 +/* REQ_PREFLUSH is defined */
 +/* #undef HAVE_REQ_PREFLUSH */
 +
 +/* revalidate_disk() is available */
 +/* #undef HAVE_REVALIDATE_DISK */
 +
 +/* revalidate_disk_size() is available */
 +/* #undef HAVE_REVALIDATE_DISK_SIZE */
 +
 +/* struct rw_semaphore has member activity */
 +/* #undef HAVE_RWSEM_ACTIVITY */
 +
 +/* struct rw_semaphore has atomic_long_t member count */
 +/* #undef HAVE_RWSEM_ATOMIC_LONG_COUNT */
 +
 +/* linux/sched/signal.h exists */
 +/* #undef HAVE_SCHED_SIGNAL_HEADER */
 +
 +/* Define to 1 if you have the <security/pam_modules.h> header file. */
 +#define HAVE_SECURITY_PAM_MODULES_H 1
 +
 +/* setattr_prepare() accepts mnt_idmap */
 +/* #undef HAVE_SETATTR_PREPARE_IDMAP */
 +
 +/* setattr_prepare() is available, doesn't accept user_namespace */
 +/* #undef HAVE_SETATTR_PREPARE_NO_USERNS */
 +
 +/* setattr_prepare() accepts user_namespace */
 +/* #undef HAVE_SETATTR_PREPARE_USERNS */
 +
 +/* iops->set_acl() exists, takes 3 args */
 +/* #undef HAVE_SET_ACL */
 +
 +/* iops->set_acl() takes 4 args, arg1 is struct mnt_idmap * */
 +/* #undef HAVE_SET_ACL_IDMAP_DENTRY */
 +
 +/* iops->set_acl() takes 4 args */
 +/* #undef HAVE_SET_ACL_USERNS */
 +
 +/* iops->set_acl() takes 4 args, arg2 is struct dentry * */
 +/* #undef HAVE_SET_ACL_USERNS_DENTRY_ARG2 */
 +
 +/* set_cached_acl() is usable */
 +/* #undef HAVE_SET_CACHED_ACL_USABLE */
 +
 +/* set_special_state() exists */
 +/* #undef HAVE_SET_SPECIAL_STATE */
 +
 +/* struct shrink_control exists */
 +/* #undef HAVE_SHRINK_CONTROL_STRUCT */
 +
 +/* kernel_siginfo_t exists */
 +/* #undef HAVE_SIGINFO */
 +
 +/* signal_stop() exists */
 +/* #undef HAVE_SIGNAL_STOP */
 +
 +/* new shrinker callback wants 2 args */
 +/* #undef HAVE_SINGLE_SHRINKER_CALLBACK */
 +
 +/* cs->count_objects exists */
 +/* #undef HAVE_SPLIT_SHRINKER_CALLBACK */
 +
 +#if defined(__amd64__) || defined(__i386__)
 +/* Define if host toolchain supports SSE */
 +#define HAVE_SSE 1
 +
 +/* Define if host toolchain supports SSE2 */
 +#define HAVE_SSE2 1
 +
 +/* Define if host toolchain supports SSE3 */
 +#define HAVE_SSE3 1
 +
 +/* Define if host toolchain supports SSE4.1 */
 +#define HAVE_SSE4_1 1
 +
 +/* Define if host toolchain supports SSE4.2 */
 +#define HAVE_SSE4_2 1
 +
 +/* Define if host toolchain supports SSSE3 */
 +#define HAVE_SSSE3 1
 +#endif
 +
 +/* STACK_FRAME_NON_STANDARD is defined */
 +/* #undef HAVE_STACK_FRAME_NON_STANDARD */
 +
 +/* standalone <linux/stdarg.h> exists */
 +/* #undef HAVE_STANDALONE_LINUX_STDARG */
 +
 +/* Define to 1 if you have the <stdint.h> header file. */
 +#define HAVE_STDINT_H 1
 +
 +/* Define to 1 if you have the <stdio.h> header file. */
 +#define HAVE_STDIO_H 1
 +
 +/* Define to 1 if you have the <stdlib.h> header file. */
 +#define HAVE_STDLIB_H 1
 +
 +/* Define to 1 if you have the <strings.h> header file. */
 +#define HAVE_STRINGS_H 1
 +
 +/* Define to 1 if you have the <string.h> header file. */
 +#define HAVE_STRING_H 1
 +
 +/* Define to 1 if you have the `strlcat' function. */
 +#define HAVE_STRLCAT 1
 +
 +/* Define to 1 if you have the `strlcpy' function. */
 +#define HAVE_STRLCPY 1
 +
 +/* submit_bio is member of struct block_device_operations */
 +/* #undef HAVE_SUBMIT_BIO_IN_BLOCK_DEVICE_OPERATIONS */
 +
 +/* super_setup_bdi_name() exits */
 +/* #undef HAVE_SUPER_SETUP_BDI_NAME */
 +
 +/* super_block->s_user_ns exists */
 +/* #undef HAVE_SUPER_USER_NS */
 +
 +/* struct kobj_type has default_groups */
 +/* #undef HAVE_SYSFS_DEFAULT_GROUPS */
 +
 +/* Define to 1 if you have the <sys/stat.h> header file. */
 +#define HAVE_SYS_STAT_H 1
 +
 +/* Define to 1 if you have the <sys/types.h> header file. */
 +#define HAVE_SYS_TYPES_H 1
 +
 +/* i_op->tmpfile() exists */
 +/* #undef HAVE_TMPFILE */
 +
 +/* i_op->tmpfile() uses old dentry signature */
 +/* #undef HAVE_TMPFILE_DENTRY */
 +
 +/* i_op->tmpfile() has mnt_idmap */
 +/* #undef HAVE_TMPFILE_IDMAP */
 +
 +/* i_op->tmpfile() has userns */
 +/* #undef HAVE_TMPFILE_USERNS */
 +
 +/* totalhigh_pages() exists */
 +/* #undef HAVE_TOTALHIGH_PAGES */
 +
 +/* kernel has totalram_pages() */
 +/* #undef HAVE_TOTALRAM_PAGES_FUNC */
 +
 +/* Define to 1 if you have the `udev_device_get_is_initialized' function. */
 +/* #undef HAVE_UDEV_DEVICE_GET_IS_INITIALIZED */
 +
 +/* kernel has __kernel_fpu_* functions */
 +/* #undef HAVE_UNDERSCORE_KERNEL_FPU */
 +
 +/* Define to 1 if you have the <unistd.h> header file. */
 +#define HAVE_UNISTD_H 1
 +
 +/* iops->getattr() takes struct user_namespace* */
 +/* #undef HAVE_USERNS_IOPS_GETATTR */
 +
 +/* iops->setattr() takes struct user_namespace* */
 +/* #undef HAVE_USERNS_IOPS_SETATTR */
 +
 +/* user_namespace->ns.inum exists */
 +/* #undef HAVE_USER_NS_COMMON_INUM */
 +
 +/* iops->getattr() takes a vfsmount */
 +/* #undef HAVE_VFSMOUNT_IOPS_GETATTR */
 +
 +/* fops->clone_file_range() is available */
 +/* #undef HAVE_VFS_CLONE_FILE_RANGE */
 +
 +/* fops->copy_file_range() is available */
 +/* #undef HAVE_VFS_COPY_FILE_RANGE */
 +
 +/* fops->dedupe_file_range() is available */
 +/* #undef HAVE_VFS_DEDUPE_FILE_RANGE */
 +
 +/* aops->direct_IO() uses iovec */
 +/* #undef HAVE_VFS_DIRECT_IO_IOVEC */
 +
 +/* aops->direct_IO() uses iov_iter without rw */
 +/* #undef HAVE_VFS_DIRECT_IO_ITER */
 +
 +/* aops->direct_IO() uses iov_iter with offset */
 +/* #undef HAVE_VFS_DIRECT_IO_ITER_OFFSET */
 +
 +/* aops->direct_IO() uses iov_iter with rw and offset */
 +/* #undef HAVE_VFS_DIRECT_IO_ITER_RW_OFFSET */
 +
 +/* filemap_dirty_folio exists */
 +/* #undef HAVE_VFS_FILEMAP_DIRTY_FOLIO */
 +
 +/* file_operations_extend takes .copy_file_range() and .clone_file_range() */
 +/* #undef HAVE_VFS_FILE_OPERATIONS_EXTEND */
 +
 +/* generic_copy_file_range() is available */
 +/* #undef HAVE_VFS_GENERIC_COPY_FILE_RANGE */
 +
 +/* All required iov_iter interfaces are available */
 +/* #undef HAVE_VFS_IOV_ITER */
 +
 +/* fops->iterate() is available */
 +/* #undef HAVE_VFS_ITERATE */
 +
 +/* fops->iterate_shared() is available */
 +/* #undef HAVE_VFS_ITERATE_SHARED */
 +
 +/* fops->readdir() is available */
 +/* #undef HAVE_VFS_READDIR */
 +
 +/* address_space_operations->readpages exists */
 +/* #undef HAVE_VFS_READPAGES */
 +
 +/* read_folio exists */
 +/* #undef HAVE_VFS_READ_FOLIO */
 +
 +/* fops->remap_file_range() is available */
 +/* #undef HAVE_VFS_REMAP_FILE_RANGE */
 +
 +/* fops->read/write_iter() are available */
 +/* #undef HAVE_VFS_RW_ITERATE */
 +
 +/* __set_page_dirty_nobuffers exists */
 +/* #undef HAVE_VFS_SET_PAGE_DIRTY_NOBUFFERS */
 +
 +/* __vmalloc page flags exists */
 +/* #undef HAVE_VMALLOC_PAGE_KERNEL */
 +
 +/* yes */
 +/* #undef HAVE_WAIT_ON_BIT_ACTION */
 +
 +/* wait_queue_entry_t exists */
 +/* #undef HAVE_WAIT_QUEUE_ENTRY_T */
 +
 +/* wq_head->head and wq_entry->entry exist */
 +/* #undef HAVE_WAIT_QUEUE_HEAD_ENTRY */
 +
 +/* int (*writepage_t)() takes struct folio* */
 +/* #undef HAVE_WRITEPAGE_T_FOLIO */
 +
 +/* xattr_handler->get() wants dentry */
 +/* #undef HAVE_XATTR_GET_DENTRY */
 +
 +/* xattr_handler->get() wants both dentry and inode */
*** 190 LINES SKIPPED ***

From nobody Mon Sep 11 08:35:47 2023
X-Original-To: dev-commits-src-main@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 4Rkg5w11YRz4t9xS;
	Mon, 11 Sep 2023 08:35: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 4Rkg5w0qZLz3bJ9;
	Mon, 11 Sep 2023 08:35:48 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694421348;
	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=Em68LQ3jqeP1LRFyrFxyfbO2TWXpjG+JnmW1rjsz6nM=;
	b=cyyyeyvSMiOYosXLSS56cRo2C4/P8qn5tbtuOlD6xG2i+Hx1J1n8Ilod5OVLAdGb78qCna
	xcI3+1vjJLcTHaRrQ4dLt6SIZJYbrx8oD3IsAzQQQSaHmZXtPS87hrFrBAbXyYylgx5dBM
	S/DsmcJSNTNAoaKrrlB97IBmA+Kz2qWIAXu1IAwtvdQiWd9B1tkH5ECd3jxOT1iULJtHBw
	OA33C3XtuGWc9LYK3Ih1bSwkCQdL+/+0kgJ6FCczUZc0EhOIIglhSx/2ZAWjD0ppoH1xUW
	4nfWV4sexbZVyoDCgDLHADl9Ouolws3bk78OG7ZnmXdKsIu10Ydzz5wJTYaSGg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694421348; a=rsa-sha256; cv=none;
	b=KCNrUwVDZBqo5bAJEQASa2Ey1SGxQ/8b1A7wEkKIkv8T2xWgd5NtmjhjLkelPIpMD4EtGB
	n+1jkMIBTenxjMRZMb+JiQ8+28F0INbREZxreIAsUHNNi8eq9ATXw+2d48uWTS0So4r4jL
	nKqOth5540gIlwy3UzFaW8v8k9FuyAsHm6YiG7A+MvnRZaTCzDr3Wgmh6xdpvfIPvbHdFg
	hoDY+HS5B8Tqy5yM8axF1/O01vD3LFrTnrQrViPHK14ZSXhy/4zsoqr2z+JIJtSCIaHWZU
	+uzLPNsc4nCNoHIPusHF0iEiF5vLj09Mt3qT3iol4xmyLKHGAoNbymNq883cOA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694421348;
	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=Em68LQ3jqeP1LRFyrFxyfbO2TWXpjG+JnmW1rjsz6nM=;
	b=r4rYm328/w0kpUA2/zp4nTU2xUizFO39ccqKxTOVfoW7g2f0k5BbAmI9wGftHa68I7VnTI
	PIYmWjN2syYfIFtrE9fnhoSGe+nkepWreLGmOtO8t5pEKBFt5iVMOn3zIktWGx6lXopOhp
	TpBDh5X3DF4rWg40D0M8tpfmNs+se+VpTreRiyvbWhQHZtiRuY2ubQKUMmni6BqxvVqGUx
	B2qW5fTugoJWW8Vsl/K3biRRvfFpUnCwQdx7QIM2jrr4rRPRoetmxUxgvILirfy2NMcb58
	TA+6sJgsGuKYzjpKFz7AqXCkG1JlDgil+MfSaK4f9GbZpK2PPgCw/kds+agjhA==
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 4Rkg5v719yzj7n;
	Mon, 11 Sep 2023 08:35: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 38B8Zl4R059629;
	Mon, 11 Sep 2023 08:35:47 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38B8Zl9t059626;
	Mon, 11 Sep 2023 08:35:47 GMT
	(envelope-from git)
Date: Mon, 11 Sep 2023 08:35:47 GMT
Message-Id: <202309110835.38B8Zl9t059626@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Doug Moore <dougm@FreeBSD.org>
Subject: git: 6cec93da46c4 - main - Revert "radix_trie: have vm_radix
  use pctrie code"
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: dougm
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 6cec93da46c4a91a042b0be488844052c0f8985a
Auto-Submitted: auto-generated

The branch main has been updated by dougm:

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

commit 6cec93da46c4a91a042b0be488844052c0f8985a
Author:     Doug Moore <dougm@FreeBSD.org>
AuthorDate: 2023-09-11 08:34:46 +0000
Commit:     Doug Moore <dougm@FreeBSD.org>
CommitDate: 2023-09-11 08:35:36 +0000

    Revert "radix_trie: have vm_radix use pctrie code"
    
    This reverts commit a494d30465f21e8cb014a5c788a43001397325d7.
---
 sys/vm/_vm_radix.h |   9 +-
 sys/vm/vm_radix.c  | 696 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
 sys/vm/vm_radix.h  | 113 ++-------
 3 files changed, 709 insertions(+), 109 deletions(-)

diff --git a/sys/vm/_vm_radix.h b/sys/vm/_vm_radix.h
index 2d9b05c7b52a..01eb25a9dccf 100644
--- a/sys/vm/_vm_radix.h
+++ b/sys/vm/_vm_radix.h
@@ -31,13 +31,16 @@
 #ifndef __VM_RADIX_H_
 #define __VM_RADIX_H_
 
-#include <sys/_pctrie.h>
+/*
+ * Radix tree node.
+ */
+struct vm_radix_node;
 
 /*
- * Radix tree
+ * Radix tree root.
  */
 struct vm_radix {
-	struct pctrie	rt_trie;
+	struct vm_radix_node	*rt_root;
 };
 
 #endif /* !__VM_RADIX_H_ */
diff --git a/sys/vm/vm_radix.c b/sys/vm/vm_radix.c
index b8c693eca66f..768a56ed76f7 100644
--- a/sys/vm/vm_radix.c
+++ b/sys/vm/vm_radix.c
@@ -54,26 +54,302 @@
 #include "opt_ddb.h"
 
 #include <sys/param.h>
-#include <sys/pctrie.h>
+#include <sys/systm.h>
+#include <sys/kernel.h>
+#include <sys/libkern.h>
+#include <sys/proc.h>
+#include <sys/vmmeter.h>
+#include <sys/smr.h>
+#include <sys/smr_types.h>
 
 #include <vm/uma.h>
 #include <vm/vm.h>
+#include <vm/vm_param.h>
+#include <vm/vm_object.h>
 #include <vm/vm_page.h>
 #include <vm/vm_radix.h>
 
+#ifdef DDB
+#include <ddb/ddb.h>
+#endif
+
+/*
+ * These widths should allow the pointers to a node's children to fit within
+ * a single cache line.  The extra levels from a narrow width should not be
+ * a problem thanks to path compression.
+ */
+#ifdef __LP64__
+#define	VM_RADIX_WIDTH	4
+#else
+#define	VM_RADIX_WIDTH	3
+#endif
+
+#define	VM_RADIX_COUNT	(1 << VM_RADIX_WIDTH)
+#define	VM_RADIX_MASK	(VM_RADIX_COUNT - 1)
+#define	VM_RADIX_LIMIT							\
+	(howmany(sizeof(vm_pindex_t) * NBBY, VM_RADIX_WIDTH) - 1)
+
+#if VM_RADIX_WIDTH == 3
+typedef uint8_t rn_popmap_t;
+#elif VM_RADIX_WIDTH == 4
+typedef uint16_t rn_popmap_t;
+#elif VM_RADIX_WIDTH == 5
+typedef uint32_t rn_popmap_t;
+#else
+#error Unsupported width
+#endif
+_Static_assert(sizeof(rn_popmap_t) <= sizeof(int),
+    "rn_popmap_t too wide");
+
+/* Set of all flag bits stored in node pointers. */
+#define	VM_RADIX_FLAGS	(VM_RADIX_ISLEAF)
+#define	VM_RADIX_PAD	VM_RADIX_FLAGS
+
+enum vm_radix_access { SMR, LOCKED, UNSERIALIZED };
+
+struct vm_radix_node;
+typedef SMR_POINTER(struct vm_radix_node *) smrnode_t;
+
+struct vm_radix_node {
+	vm_pindex_t	rn_owner;			/* Owner of record. */
+	rn_popmap_t	rn_popmap;			/* Valid children. */
+	uint8_t		rn_clev;			/* Level * WIDTH. */
+	smrnode_t	rn_child[VM_RADIX_COUNT];	/* Child nodes. */
+};
+
 static uma_zone_t vm_radix_node_zone;
-smr_t vm_radix_smr;
+static smr_t vm_radix_smr;
+
+static void vm_radix_node_store(smrnode_t *p, struct vm_radix_node *v,
+    enum vm_radix_access access);
 
-void *
-vm_radix_node_alloc(struct pctrie *ptree)
+/*
+ * Map index to an array position for the children of rnode,
+ */
+static __inline int
+vm_radix_slot(struct vm_radix_node *rnode, vm_pindex_t index)
 {
-	return (uma_zalloc_smr(vm_radix_node_zone, M_NOWAIT));
+	return ((index >> rnode->rn_clev) & VM_RADIX_MASK);
 }
 
-void
-vm_radix_node_free(struct pctrie *ptree, void *node)
+/*
+ * Returns true if index does not belong to the specified rnode.  Otherwise,
+ * sets slot value, and returns false.
+ */
+static __inline bool
+vm_radix_keybarr(struct vm_radix_node *rnode, vm_pindex_t index, int *slot)
+{
+	index = (index - rnode->rn_owner) >> rnode->rn_clev;
+	if (index >= VM_RADIX_COUNT)
+		return (true);
+	*slot = index;
+	return (false);
+}
+
+/*
+ * Allocate a radix node.
+ */
+static struct vm_radix_node *
+vm_radix_node_get(vm_pindex_t index, vm_pindex_t newind)
+{
+	struct vm_radix_node *rnode;
+
+	rnode = uma_zalloc_smr(vm_radix_node_zone, M_NOWAIT);
+	if (rnode == NULL)
+		return (NULL);
+
+	/*
+	 * We want to clear the last child pointer after the final section
+	 * has exited so lookup can not return false negatives.  It is done
+	 * here because it will be cache-cold in the dtor callback.
+	 */
+	if (rnode->rn_popmap != 0) {
+		vm_radix_node_store(&rnode->rn_child[ffs(rnode->rn_popmap) - 1],
+		    VM_RADIX_NULL, UNSERIALIZED);
+		rnode->rn_popmap = 0;
+	}
+
+	/*
+	 * From the highest-order bit where the indexes differ,
+	 * compute the highest level in the trie where they differ.  Then,
+	 * compute the least index of this subtrie.
+	 */
+	KASSERT(index != newind, ("%s: passing the same key value %jx",
+	    __func__, (uintmax_t)index));
+	_Static_assert(sizeof(long long) >= sizeof(vm_pindex_t),
+	    "vm_pindex_t too wide");
+	_Static_assert(sizeof(vm_pindex_t) * NBBY <=
+	    (1 << (sizeof(rnode->rn_clev) * NBBY)), "rn_clev too narrow");
+	rnode->rn_clev = rounddown(flsll(index ^ newind) - 1, VM_RADIX_WIDTH);
+	rnode->rn_owner = VM_RADIX_COUNT;
+	rnode->rn_owner = index & -(rnode->rn_owner << rnode->rn_clev);
+	return (rnode);
+}
+
+/*
+ * Free radix node.
+ */
+static __inline void
+vm_radix_node_put(struct vm_radix_node *rnode)
+{
+#ifdef INVARIANTS
+	int slot;
+
+	KASSERT(powerof2(rnode->rn_popmap),
+	    ("vm_radix_node_put: rnode %p has too many children %04x", rnode,
+	    rnode->rn_popmap));
+	for (slot = 0; slot < VM_RADIX_COUNT; slot++) {
+		if ((rnode->rn_popmap & (1 << slot)) != 0)
+			continue;
+		KASSERT(smr_unserialized_load(&rnode->rn_child[slot], true) ==
+		    VM_RADIX_NULL,
+		    ("vm_radix_node_put: rnode %p has a child", rnode));
+	}
+#endif
+	uma_zfree_smr(vm_radix_node_zone, rnode);
+}
+
+/*
+ * Fetch a node pointer from a slot in another node.
+ */
+static __inline struct vm_radix_node *
+vm_radix_node_load(smrnode_t *p, enum vm_radix_access access)
+{
+
+	switch (access) {
+	case UNSERIALIZED:
+		return (smr_unserialized_load(p, true));
+	case LOCKED:
+		return (smr_serialized_load(p, true));
+	case SMR:
+		return (smr_entered_load(p, vm_radix_smr));
+	}
+	__assert_unreachable();
+}
+
+static __inline void
+vm_radix_node_store(smrnode_t *p, struct vm_radix_node *v,
+    enum vm_radix_access access)
+{
+
+	switch (access) {
+	case UNSERIALIZED:
+		smr_unserialized_store(p, v, true);
+		break;
+	case LOCKED:
+		smr_serialized_store(p, v, true);
+		break;
+	case SMR:
+		panic("vm_radix_node_store: Not supported in smr section.");
+	}
+}
+
+/*
+ * Get the root node for a radix tree.
+ */
+static __inline struct vm_radix_node *
+vm_radix_root_load(struct vm_radix *rtree, enum vm_radix_access access)
+{
+
+	return (vm_radix_node_load((smrnode_t *)&rtree->rt_root, access));
+}
+
+/*
+ * Set the root node for a radix tree.
+ */
+static __inline void
+vm_radix_root_store(struct vm_radix *rtree, struct vm_radix_node *rnode,
+    enum vm_radix_access access)
+{
+
+	vm_radix_node_store((smrnode_t *)&rtree->rt_root, rnode, access);
+}
+
+/*
+ * Returns TRUE if the specified radix node is a leaf and FALSE otherwise.
+ */
+static __inline bool
+vm_radix_isleaf(struct vm_radix_node *rnode)
+{
+
+	return (((uintptr_t)rnode & VM_RADIX_ISLEAF) != 0);
+}
+
+/*
+ * Returns page cast to radix node with leaf bit set.
+ */
+static __inline struct vm_radix_node *
+vm_radix_toleaf(vm_page_t page)
+{
+	return ((struct vm_radix_node *)((uintptr_t)page | VM_RADIX_ISLEAF));
+}
+
+/*
+ * Returns the associated page extracted from rnode.
+ */
+static __inline vm_page_t
+vm_radix_topage(struct vm_radix_node *rnode)
+{
+
+	return ((vm_page_t)((uintptr_t)rnode & ~VM_RADIX_FLAGS));
+}
+
+/*
+ * Make 'child' a child of 'rnode'.
+ */
+static __inline void
+vm_radix_addnode(struct vm_radix_node *rnode, vm_pindex_t index,
+    struct vm_radix_node *child, enum vm_radix_access access)
+{
+	int slot;
+
+	slot = vm_radix_slot(rnode, index);
+	vm_radix_node_store(&rnode->rn_child[slot], child, access);
+	rnode->rn_popmap ^= 1 << slot;
+	KASSERT((rnode->rn_popmap & (1 << slot)) != 0,
+	    ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode));
+}
+
+/*
+ * Internal helper for vm_radix_reclaim_allnodes().
+ * This function is recursive.
+ */
+static void
+vm_radix_reclaim_allnodes_int(struct vm_radix_node *rnode)
+{
+	struct vm_radix_node *child;
+	int slot;
+
+	while (rnode->rn_popmap != 0) {
+		slot = ffs(rnode->rn_popmap) - 1;
+		child = vm_radix_node_load(&rnode->rn_child[slot],
+		    UNSERIALIZED);
+		KASSERT(child != VM_RADIX_NULL,
+		    ("%s: bad popmap slot %d in rnode %p",
+		    __func__, slot, rnode));
+		if (!vm_radix_isleaf(child))
+			vm_radix_reclaim_allnodes_int(child);
+		rnode->rn_popmap ^= 1 << slot;
+		vm_radix_node_store(&rnode->rn_child[slot], VM_RADIX_NULL,
+		    UNSERIALIZED);
+	}
+	vm_radix_node_put(rnode);
+}
+
+/*
+ * radix node zone initializer.
+ */
+static int
+vm_radix_zone_init(void *mem, int size, int flags)
 {
-	uma_zfree_smr(vm_radix_node_zone, node);
+	struct vm_radix_node *rnode;
+
+	rnode = mem;
+	rnode->rn_popmap = 0;
+	for (int i = 0; i < nitems(rnode->rn_child); i++)
+		vm_radix_node_store(&rnode->rn_child[i], VM_RADIX_NULL,
+		    UNSERIALIZED);
+	return (0);
 }
 
 #ifndef UMA_MD_SMALL_ALLOC
@@ -107,14 +383,412 @@ void
 vm_radix_zinit(void)
 {
 
-	vm_radix_node_zone = uma_zcreate("RADIX NODE", pctrie_node_size(),
-	    NULL, NULL, pctrie_zone_init, NULL,
-	    PCTRIE_PAD, UMA_ZONE_VM | UMA_ZONE_SMR);
+	vm_radix_node_zone = uma_zcreate("RADIX NODE",
+	    sizeof(struct vm_radix_node), NULL, NULL, vm_radix_zone_init, NULL,
+	    VM_RADIX_PAD, UMA_ZONE_VM | UMA_ZONE_SMR);
 	vm_radix_smr = uma_zone_get_smr(vm_radix_node_zone);
 }
 
+/*
+ * Inserts the key-value pair into the trie.
+ * Panics if the key already exists.
+ */
+int
+vm_radix_insert(struct vm_radix *rtree, vm_page_t page)
+{
+	vm_pindex_t index, newind;
+	struct vm_radix_node *leaf, *parent, *rnode;
+	smrnode_t *parentp;
+	int slot;
+
+	index = page->pindex;
+	leaf = vm_radix_toleaf(page);
+
+	/*
+	 * The owner of record for root is not really important because it
+	 * will never be used.
+	 */
+	rnode = vm_radix_root_load(rtree, LOCKED);
+	parent = NULL;
+	for (;;) {
+		if (vm_radix_isleaf(rnode)) {
+			if (rnode == VM_RADIX_NULL) {
+				if (parent == NULL)
+					rtree->rt_root = leaf;
+				else
+					vm_radix_addnode(parent, index, leaf,
+					    LOCKED);
+				return (0);
+			}
+			newind = vm_radix_topage(rnode)->pindex;
+			if (newind == index)
+				panic("%s: key %jx is already present",
+				    __func__, (uintmax_t)index);
+			break;
+		}
+		if (vm_radix_keybarr(rnode, index, &slot)) {
+			newind = rnode->rn_owner;
+			break;
+		}
+		parent = rnode;
+		rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
+	}
+
+	/*
+	 * A new node is needed because the right insertion level is reached.
+	 * Setup the new intermediate node and add the 2 children: the
+	 * new object and the older edge or object.
+	 */
+	parentp = (parent != NULL) ? &parent->rn_child[slot]:
+	    (smrnode_t *)&rtree->rt_root;
+	parent = vm_radix_node_get(index, newind);
+	if (parent == NULL)
+		return (ENOMEM);
+	/* These writes are not yet visible due to ordering. */
+	vm_radix_addnode(parent, index, leaf, UNSERIALIZED);
+	vm_radix_addnode(parent, newind, rnode, UNSERIALIZED);
+	/* Serializing write to make the above visible. */
+	vm_radix_node_store(parentp, parent, LOCKED);
+	return (0);
+}
+
+/*
+ * Returns the value stored at the index.  If the index is not present,
+ * NULL is returned.
+ */
+static __always_inline vm_page_t
+_vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index,
+    enum vm_radix_access access)
+{
+	struct vm_radix_node *rnode;
+	vm_page_t m;
+	int slot;
+
+	rnode = vm_radix_root_load(rtree, access);
+	for (;;) {
+		if (vm_radix_isleaf(rnode)) {
+			if ((m = vm_radix_topage(rnode)) != NULL &&
+			    m->pindex == index)
+				return (m);
+			break;
+		}
+		if (vm_radix_keybarr(rnode, index, &slot))
+			break;
+		rnode = vm_radix_node_load(&rnode->rn_child[slot], access);
+	}
+	return (NULL);
+}
+
+/*
+ * Returns the value stored at the index assuming there is an external lock.
+ *
+ * If the index is not present, NULL is returned.
+ */
+vm_page_t
+vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index)
+{
+
+	return _vm_radix_lookup(rtree, index, LOCKED);
+}
+
+/*
+ * Returns the value stored at the index without requiring an external lock.
+ *
+ * If the index is not present, NULL is returned.
+ */
+vm_page_t
+vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index)
+{
+	vm_page_t m;
+
+	smr_enter(vm_radix_smr);
+	m = _vm_radix_lookup(rtree, index, SMR);
+	smr_exit(vm_radix_smr);
+
+	return (m);
+}
+
+/*
+ * Returns the page with the least pindex that is greater than or equal to the
+ * specified pindex, or NULL if there are no such pages.
+ *
+ * Requires that access be externally synchronized by a lock.
+ */
+vm_page_t
+vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index)
+{
+	struct vm_radix_node *rnode, *succ;
+	vm_page_t m;
+	int slot;
+
+	/*
+	 * Descend the trie as if performing an ordinary lookup for the page
+	 * with the specified pindex.  However, unlike an ordinary lookup, as we
+	 * descend the trie, we use "succ" to remember the last branching-off
+	 * point, that is, the interior node under which the page with the least
+	 * pindex that is both outside our current path down the trie and more
+	 * than the specified pindex resides.  (The node's popmap makes it fast
+	 * and easy to recognize a branching-off point.)  If our ordinary lookup
+	 * fails to yield a page with a pindex that is greater than or equal to
+	 * the specified pindex, then we will exit this loop and perform a
+	 * lookup starting from "succ".  If "succ" is not NULL, then that lookup
+	 * is guaranteed to succeed.
+	 */
+	rnode = vm_radix_root_load(rtree, LOCKED);
+	succ = NULL;
+	for (;;) {
+		if (vm_radix_isleaf(rnode)) {
+			if ((m = vm_radix_topage(rnode)) != NULL &&
+			    m->pindex >= index)
+				return (m);
+			break;
+		}
+		if (vm_radix_keybarr(rnode, index, &slot)) {
+			/*
+			 * If all pages in this subtree have pindex > index,
+			 * then the page in this subtree with the least pindex
+			 * is the answer.
+			 */
+			if (rnode->rn_owner > index)
+				succ = rnode;
+			break;
+		}
+
+		/*
+		 * Just in case the next search step leads to a subtree of all
+		 * pages with pindex < index, check popmap to see if a next
+		 * bigger step, to a subtree of all pages with pindex > index,
+		 * is available.  If so, remember to restart the search here.
+		 */
+		if ((rnode->rn_popmap >> slot) > 1)
+			succ = rnode;
+		rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
+	}
+
+	/*
+	 * Restart the search from the last place visited in the subtree that
+	 * included some pages with pindex > index, if there was such a place.
+	 */
+	if (succ == NULL)
+		return (NULL);
+	if (succ != rnode) {
+		/*
+		 * Take a step to the next bigger sibling of the node chosen
+		 * last time.  In that subtree, all pages have pindex > index.
+		 */
+		slot = vm_radix_slot(succ, index) + 1;
+		KASSERT((succ->rn_popmap >> slot) != 0,
+		    ("%s: no popmap siblings past slot %d in node %p",
+		    __func__, slot, succ));
+		slot += ffs(succ->rn_popmap >> slot) - 1;
+		succ = vm_radix_node_load(&succ->rn_child[slot], LOCKED);
+	}
+
+	/*
+	 * Find the page in the subtree rooted at "succ" with the least pindex.
+	 */
+	while (!vm_radix_isleaf(succ)) {
+		KASSERT(succ->rn_popmap != 0,
+		    ("%s: no popmap children in node %p",  __func__, succ));
+		slot = ffs(succ->rn_popmap) - 1;
+		succ = vm_radix_node_load(&succ->rn_child[slot], LOCKED);
+	}
+	return (vm_radix_topage(succ));
+}
+
+/*
+ * Returns the page with the greatest pindex that is less than or equal to the
+ * specified pindex, or NULL if there are no such pages.
+ *
+ * Requires that access be externally synchronized by a lock.
+ */
+vm_page_t
+vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index)
+{
+	struct vm_radix_node *pred, *rnode;
+	vm_page_t m;
+	int slot;
+
+	/*
+	 * Mirror the implementation of vm_radix_lookup_ge, described above.
+	 */
+	rnode = vm_radix_root_load(rtree, LOCKED);
+	pred = NULL;
+	for (;;) {
+		if (vm_radix_isleaf(rnode)) {
+			if ((m = vm_radix_topage(rnode)) != NULL &&
+			    m->pindex <= index)
+				return (m);
+			break;
+		}
+		if (vm_radix_keybarr(rnode, index, &slot)) {
+			if (rnode->rn_owner < index)
+				pred = rnode;
+			break;
+		}
+		if ((rnode->rn_popmap & ((1 << slot) - 1)) != 0)
+			pred = rnode;
+		rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
+	}
+	if (pred == NULL)
+		return (NULL);
+	if (pred != rnode) {
+		slot = vm_radix_slot(pred, index);
+		KASSERT((pred->rn_popmap & ((1 << slot) - 1)) != 0,
+		    ("%s: no popmap siblings before slot %d in node %p",
+		    __func__, slot, pred));
+		slot = fls(pred->rn_popmap & ((1 << slot) - 1)) - 1;
+		pred = vm_radix_node_load(&pred->rn_child[slot], LOCKED);
+	}
+	while (!vm_radix_isleaf(pred)) {
+		KASSERT(pred->rn_popmap != 0,
+		    ("%s: no popmap children in node %p",  __func__, pred));
+		slot = fls(pred->rn_popmap) - 1;
+		pred = vm_radix_node_load(&pred->rn_child[slot], LOCKED);
+	}
+	return (vm_radix_topage(pred));
+}
+
+/*
+ * Remove the specified index from the trie, and return the value stored at
+ * that index.  If the index is not present, return NULL.
+ */
+vm_page_t
+vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index)
+{
+	struct vm_radix_node *child, *parent, *rnode;
+	vm_page_t m;
+	int slot;
+
+	rnode = NULL;
+	child = vm_radix_root_load(rtree, LOCKED);
+	for (;;) {
+		if (vm_radix_isleaf(child))
+			break;
+		parent = rnode;
+		rnode = child;
+		slot = vm_radix_slot(rnode, index);
+		child = vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
+	}
+	if ((m = vm_radix_topage(child)) == NULL || m->pindex != index)
+		return (NULL);
+	if (rnode == NULL) {
+		vm_radix_root_store(rtree, VM_RADIX_NULL, LOCKED);
+		return (m);
+	}
+	KASSERT((rnode->rn_popmap & (1 << slot)) != 0,
+	    ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode));
+	rnode->rn_popmap ^= 1 << slot;
+	vm_radix_node_store(&rnode->rn_child[slot], VM_RADIX_NULL, LOCKED);
+	if (!powerof2(rnode->rn_popmap))
+		return (m);
+	KASSERT(rnode->rn_popmap != 0, ("%s: bad popmap all zeroes", __func__));
+	slot = ffs(rnode->rn_popmap) - 1;
+	child = vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
+	KASSERT(child != VM_RADIX_NULL,
+	    ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode));
+	if (parent == NULL)
+		vm_radix_root_store(rtree, child, LOCKED);
+	else {
+		slot = vm_radix_slot(parent, index);
+		KASSERT(rnode ==
+		    vm_radix_node_load(&parent->rn_child[slot], LOCKED),
+		    ("%s: invalid child value", __func__));
+		vm_radix_node_store(&parent->rn_child[slot], child, LOCKED);
+	}
+	/*
+	 * The child is still valid and we can not zero the
+	 * pointer until all smr references are gone.
+	 */
+	vm_radix_node_put(rnode);
+	return (m);
+}
+
+/*
+ * Remove and free all the nodes from the radix tree.
+ * This function is recursive but there is a tight control on it as the
+ * maximum depth of the tree is fixed.
+ */
+void
+vm_radix_reclaim_allnodes(struct vm_radix *rtree)
+{
+	struct vm_radix_node *root;
+
+	root = vm_radix_root_load(rtree, LOCKED);
+	if (root == VM_RADIX_NULL)
+		return;
+	vm_radix_root_store(rtree, VM_RADIX_NULL, UNSERIALIZED);
+	if (!vm_radix_isleaf(root))
+		vm_radix_reclaim_allnodes_int(root);
+}
+
+/*
+ * Replace an existing page in the trie with another one.
+ * Panics if there is not an old page in the trie at the new page's index.
+ */
+vm_page_t
+vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage)
+{
+	struct vm_radix_node *leaf, *parent, *rnode;
+	vm_page_t m;
+	vm_pindex_t index;
+	int slot;
+
+	leaf = vm_radix_toleaf(newpage);
+	index = newpage->pindex;
+	rnode = vm_radix_root_load(rtree, LOCKED);
+	parent = NULL;
+	for (;;) {
+		if (vm_radix_isleaf(rnode)) {
+			if ((m = vm_radix_topage(rnode)) != NULL &&
+			    m->pindex == index) {
+				if (parent == NULL)
+					rtree->rt_root = leaf;
+				else
+					vm_radix_node_store(
+					    &parent->rn_child[slot], leaf,
+					    LOCKED);
+				return (m);
+			}
+			break;
+		}
+		if (vm_radix_keybarr(rnode, index, &slot))
+			break;
+		parent = rnode;
+		rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
+	}
+	panic("%s: original replacing page not found", __func__);
+}
+
 void
 vm_radix_wait(void)
 {
 	uma_zwait(vm_radix_node_zone);
 }
+
+#ifdef DDB
+/*
+ * Show details about the given radix node.
+ */
+DB_SHOW_COMMAND(radixnode, db_show_radixnode)
+{
+	struct vm_radix_node *rnode, *tmp;
+	int slot;
+	rn_popmap_t popmap;
+
+        if (!have_addr)
+                return;
+	rnode = (struct vm_radix_node *)addr;
+	db_printf("radixnode %p, owner %jx, children popmap %04x, level %u:\n",
+	    (void *)rnode, (uintmax_t)rnode->rn_owner, rnode->rn_popmap,
+	    rnode->rn_clev / VM_RADIX_WIDTH);
+	for (popmap = rnode->rn_popmap; popmap != 0; popmap ^= 1 << slot) {
+		slot = ffs(popmap) - 1;
+		tmp = vm_radix_node_load(&rnode->rn_child[slot], UNSERIALIZED);
+		db_printf("slot: %d, val: %p, page: %p, clev: %d\n",
+		    slot, (void *)tmp,
+		    vm_radix_isleaf(tmp) ?  vm_radix_topage(tmp) : NULL,
+		    rnode->rn_clev / VM_RADIX_WIDTH);
+	}
+}
+#endif /* DDB */
diff --git a/sys/vm/vm_radix.h b/sys/vm/vm_radix.h
index a332618fc0e6..231edda65102 100644
--- a/sys/vm/vm_radix.h
+++ b/sys/vm/vm_radix.h
@@ -34,113 +34,36 @@
 #include <vm/_vm_radix.h>
 
 #ifdef _KERNEL
-#include <sys/pctrie.h>
-#include <vm/vm.h>
 
+int		vm_radix_insert(struct vm_radix *rtree, vm_page_t page);
 void		vm_radix_wait(void);
+vm_page_t	vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index);
+vm_page_t	vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index);
+vm_page_t	vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index);
+vm_page_t	vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index);
+void		vm_radix_reclaim_allnodes(struct vm_radix *rtree);
+vm_page_t	vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index);
+vm_page_t	vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage);
 void		vm_radix_zinit(void);
-void		*vm_radix_node_alloc(struct pctrie *ptree);
-void		vm_radix_node_free(struct pctrie *ptree, void *node);
-extern smr_t	vm_radix_smr;
-
-static __inline void
-vm_radix_init(struct vm_radix *rtree)
-{
-	pctrie_init(&rtree->rt_trie);
-}
-
-static __inline bool
-vm_radix_is_empty(struct vm_radix *rtree)
-{
-	return (pctrie_is_empty(&rtree->rt_trie));
-}
-
-PCTRIE_DEFINE_SMR(VM_RADIX, vm_page, pindex, vm_radix_node_alloc, vm_radix_node_free,
-    vm_radix_smr);
 
 /*
- * Inserts the key-value pair into the trie.
- * Panics if the key already exists.
+ * Each search path in the trie terminates at a leaf, which is a pointer to a
+ * page marked with a set 1-bit.  A leaf may be associated with a null pointer
+ * to indicate no page there.
  */
-static __inline int
-vm_radix_insert(struct vm_radix *rtree, vm_page_t page)
-{
-	return (VM_RADIX_PCTRIE_INSERT(&rtree->rt_trie, page));
-}
-
-/*
- * Returns the value stored at the index assuming there is an external lock.
- *
- * If the index is not present, NULL is returned.
- */
-static __inline vm_page_t
-vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index)
-{
-	return (VM_RADIX_PCTRIE_LOOKUP(&rtree->rt_trie, index));
-}
-
-/*
- * Returns the value stored at the index without requiring an external lock.
- *
- * If the index is not present, NULL is returned.
- */
-static __inline vm_page_t
-vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index)
-{
-	return (VM_RADIX_PCTRIE_LOOKUP_UNLOCKED(&rtree->rt_trie, index));
-}
+#define	VM_RADIX_ISLEAF	0x1
+#define VM_RADIX_NULL (struct vm_radix_node *)VM_RADIX_ISLEAF
 
-/*
- * Returns the page with the least pindex that is greater than or equal to the
- * specified pindex, or NULL if there are no such pages.
- *
- * Requires that access be externally synchronized by a lock.
- */
-static __inline vm_page_t
-vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index)
-{
-	return (VM_RADIX_PCTRIE_LOOKUP_GE(&rtree->rt_trie, index));
-}
-
-/*
- * Returns the page with the greatest pindex that is less than or equal to the
- * specified pindex, or NULL if there are no such pages.
- *
- * Requires that access be externally synchronized by a lock.
- */
-static __inline vm_page_t
-vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index)
-{
-	return (VM_RADIX_PCTRIE_LOOKUP_LE(&rtree->rt_trie, index));
-}
-
-/*
- * Remove the specified index from the trie, and return the value stored at
- * that index.  If the index is not present, return NULL.
- */
-static __inline vm_page_t
-vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index)
-{
-	return (VM_RADIX_PCTRIE_REMOVE_LOOKUP(&rtree->rt_trie, index));
-}
-
-/*
- * Remove and free all the nodes from the radix tree.
- */
 static __inline void
-vm_radix_reclaim_allnodes(struct vm_radix *rtree)
+vm_radix_init(struct vm_radix *rtree)
 {
-	VM_RADIX_PCTRIE_RECLAIM(&rtree->rt_trie);
+	rtree->rt_root = VM_RADIX_NULL;
 }
 
-/*
- * Replace an existing page in the trie with another one.
- * Panics if there is not an old page in the trie at the new page's index.
- */
-static __inline vm_page_t
-vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage)
+static __inline bool
+vm_radix_is_empty(struct vm_radix *rtree)
 {
-	return (VM_RADIX_PCTRIE_REPLACE(&rtree->rt_trie, newpage));
+	return (rtree->rt_root == VM_RADIX_NULL);
 }
 
 #endif /* _KERNEL */

From nobody Mon Sep 11 08:55:24 2023
X-Original-To: dev-commits-src-main@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 4RkgXX569sz4tNby;
	Mon, 11 Sep 2023 08:55:24 +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 4RkgXX3zQyz4GX9;
	Mon, 11 Sep 2023 08:55:24 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694422524;
	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=VSj39F9yE8lZ5pqLwjRfE9L5cBBz5UjRRbve/VlR3bY=;
	b=RNuzcMhpD9XBQgf+aRgr6HZQ/gkZbf5k+xrGLgq2NRyHFj1RLTgovbuYHLyJTXG0rVacyX
	hVbwMfJ7YovEtw4FQAJOCsM944EKCnjBiodn0SJ2/0B7v9cDKTUcL5CVZhpDkP7/QxLXDF
	G5aJm4Me5GPBNWK3rBHfyrb8QHcQXtQpCtywGV+J3JklQVX5h2b3M9fxvozQE4abvwLN7I
	gUL10TQmb/ZWqrlTnzpGfnACPDA73tp/fh3sz0upfPHSQygQaArz3Yr9sOxs5hfqpDu7gQ
	qLGdNHMfH5vmJv8zKln3sgVQ9avUzQfpj7upzrO4QGgwMKkm2ojMk20hjG66CA==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694422524; a=rsa-sha256; cv=none;
	b=RW8j/i+csPrzh2zfmOOmQ9JUNHRnGd7465902vmIeg5fXtoidco9VEnHQrrbXUnxZ5b72o
	DPeb3q0CFX5lgArK4LuXtb8dGLpiZa8muuBTD3/jozxxNb209Z75FHxPKslIkK7iPJ6TbU
	TtcM58iaW0VYXMx2umxVv8skVVu3AWVaw59eHrgWgweetFNCa8DcvpxGhuug5o1HgcL4+I
	YMnlECxn0nq4VIQ0Bwaxh4ri35oqKMZfJrQi5ErrK8TGknJxlogGQARyhE+JU1Ci18NKuq
	ppEXGFPdpKlWjjAODsva3/9QckgdJ9IeYW2GamK3wraaG/E8gxWqzMC5T8cGWg==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694422524;
	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=VSj39F9yE8lZ5pqLwjRfE9L5cBBz5UjRRbve/VlR3bY=;
	b=ZOXoUO2mcvU5d2lQeI4sA25nIOeK9ScEATP3zdFwNMFjzQRosNZlazUhdAY+U9WmU/X2eD
	u8pP7yKw7dKAAJJq+Cup3gK/P3p3pLBLNLtDH+0/6LQzMYB1zJAqFi1Yo/5fEu1d4T2a8m
	ldG08auZuIvj3288ri2vUK5H1S7qS2Eioye/MiWVgONZmIHqGxofBO11CiX8O2adbkV8QP
	ovTEkh1O7Padwd0IZroAlgZY4ET7hj0d4sFT3hbgiRWY9TXVJ+4fyIvPerl2IL4RKu1QhX
	TKjML87qxpRVxM/gycr5vtmUYVvO0Dl8BnOVFfAOhVxJeCshdynXN4+ZNcUntQ==
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 4RkgXX2pgdzk2K;
	Mon, 11 Sep 2023 08:55:24 +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 38B8tOfO092560;
	Mon, 11 Sep 2023 08:55:24 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38B8tOfG092558;
	Mon, 11 Sep 2023 08:55:24 GMT
	(envelope-from git)
Date: Mon, 11 Sep 2023 08:55:24 GMT
Message-Id: <202309110855.38B8tOfG092558@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Li-Wen Hsu <lwhsu@FreeBSD.org>
Subject: git: 4196186dbfd0 - main - hyperv/vmbus: Flip a message
  to only be emitted on failure
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: lwhsu
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 4196186dbfd0949cfa2c51979fb169b7a79a80e4
Auto-Submitted: auto-generated

The branch main has been updated by lwhsu:

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

commit 4196186dbfd0949cfa2c51979fb169b7a79a80e4
Author:     Li-Wen Hsu <lwhsu@FreeBSD.org>
AuthorDate: 2023-09-11 08:51:46 +0000
Commit:     Li-Wen Hsu <lwhsu@FreeBSD.org>
CommitDate: 2023-09-11 08:51:46 +0000

    hyperv/vmbus: Flip a message to only be emitted on failure
    
    This message is not very useful when things are working well.
    Flip its meaning and let it only be emitted on failure.
    
    While here, pet style(9).
    
    Reviewed by:    mhorne, whu
    Differential Revision:  https://reviews.freebsd.org/D41788
---
 sys/dev/hyperv/pcib/vmbus_pcib.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/sys/dev/hyperv/pcib/vmbus_pcib.c b/sys/dev/hyperv/pcib/vmbus_pcib.c
index da722eb0b834..ee7b82c10f23 100644
--- a/sys/dev/hyperv/pcib/vmbus_pcib.c
+++ b/sys/dev/hyperv/pcib/vmbus_pcib.c
@@ -1705,9 +1705,9 @@ vmbus_pcib_alloc_resource(device_t dev, device_t child, int type, int *rid,
 	if (res == NULL && start + count - 1 == end)
 		res = bus_generic_alloc_resource(dev, child, type, rid,
 		    start, end, count, flags);
-	if (res) {
-		device_printf(dev,"vmbus_pcib_alloc_resource is successful\n");
-	}
+	if (res == NULL)
+		device_printf(dev, "vmbus_pcib_alloc_resource failed\n");
+
 	return (res);
 }
 

From nobody Mon Sep 11 13:18:34 2023
X-Original-To: dev-commits-src-main@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 4RknNC1xmmz4slWN;
	Mon, 11 Sep 2023 13:18: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 4RknNC12C8z4L1s;
	Mon, 11 Sep 2023 13:18:35 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694438315;
	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=gir5HoOnlQgeskxYphksbp4tRGIIuGJ0gByGpEykYo0=;
	b=kSenShAB5KAxz7+BlSFvVMXroE6J15nUPDVMvXNBc876g1lwQxbQcp2D+ywcwBed274PHn
	Wf5I726oF7sKDwTE95ualHZO/VPHu5stIJbx1vmWYiZTf7kCdo305Tnun2OOmquDUPLURR
	CAEb9MbrRS/yH+c5eQ2jaY7/9tW5uNrDosSc/WglJ73pf/DJNiyyK8tB574dr8nQ3acMZL
	yNes0pUiLdSLHz0jGmeNL5gQ073UGHEh4PCe/FlvkULiEbTExIOd9jC2THyqwraUNC7+kf
	+n3CgX4mZsd5jxReiJQMhkh39Hi+xA2dPx2lYsykuRI3CZtjig7oZ6SbL20thw==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694438315; a=rsa-sha256; cv=none;
	b=p+q51ko2XCg/zQaDpS3b8tpJUFRBaX6T/UoNURItkCSTW6Vhn/PpIsf3i59uAQBg0S0ZMn
	uxDllLrt12cSXeBitB/iu59sBNL4G4uYqzsC2A1cAcS0Qc8fIz+cprzYaOBaY5a2GsoejZ
	0idK6bDlPaqZ2D2lHVokIX6kxCASsxIJofcbtd+IfTpIAwT9oLXwFkUnC7wyqwNproL/pA
	wF2cGWL6fk5Krs2U8GjPqO5XSEQ6IEYPJsYWT8taq/J8yrHiks16o4UC6o00gwBRvh8aoo
	h+AoJ7B9JADzMv/wbiVMaC/MArxYPD/yXR6D3Nrb1xigDI8xkoDTmAO7/72ywg==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694438315;
	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=gir5HoOnlQgeskxYphksbp4tRGIIuGJ0gByGpEykYo0=;
	b=f0sC3GTK0/zgBWQX8KWlkAsWz5EMDCJH9vW98F4YN5udDmek+l+6vNqzaV6QWcJukOqNRb
	RRaj0xbv6DYH3tLOtcn5FS/klUFBZKKCn3q60A6Hm0ajXCJDeW1gne8H+jc/zeeM8D3BIa
	Z3fWl+EtbIwRk8a6y+5me0Nz1xODaoaELVaC5fwm6UekcWmiGjKZ+z3BfWkUzaFgCak2ue
	Xuk66h+A6OGresdPebcpnNhuLwsBbMxEFrOSc6dEkAM5I2WNmqwLnS9gs/elSPC6vrRebl
	sxop0H50GJsZ5pj1ew4Cq0w1xVeW+PyAwBruzXwMeUFONii7dlDNFuKJ24At+A==
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 4RknNC05VLzqv8;
	Mon, 11 Sep 2023 13:18:35 +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 38BDIYwe024733;
	Mon, 11 Sep 2023 13:18:34 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38BDIYp0024730;
	Mon, 11 Sep 2023 13:18:34 GMT
	(envelope-from git)
Date: Mon, 11 Sep 2023 13:18:34 GMT
Message-Id: <202309111318.38BDIYp0024730@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= <des@FreeBSD.org>
Subject: git: 88a9b6e1ed82 - main - libc: Don't assume signed char.
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@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/main
X-Git-Reftype: branch
X-Git-Commit: 88a9b6e1ed82b562f52bae26b3de257495cd1983
Auto-Submitted: auto-generated

The branch main has been updated by des:

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

commit 88a9b6e1ed82b562f52bae26b3de257495cd1983
Author:     Dag-Erling Smørgrav <des@FreeBSD.org>
AuthorDate: 2023-09-11 13:18:18 +0000
Commit:     Dag-Erling Smørgrav <des@FreeBSD.org>
CommitDate: 2023-09-11 13:18:25 +0000

    libc: Don't assume signed char.
    
    MFC after:      3 days
    Reviewed by:    andrew
    Differential Revision:  https://reviews.freebsd.org/D41814
---
 lib/libc/tests/stdio/snprintf_test.c | 4 ++--
 lib/libc/tests/stdio/swprintf_test.c | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/lib/libc/tests/stdio/snprintf_test.c b/lib/libc/tests/stdio/snprintf_test.c
index 323356b37a7d..29b908b65120 100644
--- a/lib/libc/tests/stdio/snprintf_test.c
+++ b/lib/libc/tests/stdio/snprintf_test.c
@@ -131,8 +131,8 @@ ATF_TC_WITHOUT_HEAD(snprintf_wN);
 ATF_TC_BODY(snprintf_wN, tc)
 {
 	SNPRINTF_TEST("0", "%w8d", (int8_t)0);
-	SNPRINTF_TEST("-128", "%w8d", (int8_t)CHAR_MIN);
-	SNPRINTF_TEST("127", "%w8d", (int8_t)CHAR_MAX);
+	SNPRINTF_TEST("-128", "%w8d", (int8_t)SCHAR_MIN);
+	SNPRINTF_TEST("127", "%w8d", (int8_t)SCHAR_MAX);
 	SNPRINTF_TEST("0", "%w8u", (uint8_t)0);
 	SNPRINTF_TEST("255", "%w8u", (uint8_t)UCHAR_MAX);
 
diff --git a/lib/libc/tests/stdio/swprintf_test.c b/lib/libc/tests/stdio/swprintf_test.c
index f5dde349412b..f00ecc7f1c1d 100644
--- a/lib/libc/tests/stdio/swprintf_test.c
+++ b/lib/libc/tests/stdio/swprintf_test.c
@@ -132,8 +132,8 @@ ATF_TC_WITHOUT_HEAD(swprintf_wN);
 ATF_TC_BODY(swprintf_wN, tc)
 {
 	SWPRINTF_TEST("0", "%w8d", (int8_t)0);
-	SWPRINTF_TEST("-128", "%w8d", (int8_t)CHAR_MIN);
-	SWPRINTF_TEST("127", "%w8d", (int8_t)CHAR_MAX);
+	SWPRINTF_TEST("-128", "%w8d", (int8_t)SCHAR_MIN);
+	SWPRINTF_TEST("127", "%w8d", (int8_t)SCHAR_MAX);
 	SWPRINTF_TEST("0", "%w8u", (uint8_t)0);
 	SWPRINTF_TEST("255", "%w8u", (uint8_t)UCHAR_MAX);
 

From nobody Mon Sep 11 14:28:51 2023
X-Original-To: dev-commits-src-main@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 4RkpxH3KsNz4tSKK;
	Mon, 11 Sep 2023 14:28: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 4RkpxH2wDpz3GhS;
	Mon, 11 Sep 2023 14:28:51 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694442531;
	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=S7LIhOtBWu5OrgDQYdx4XJGg+It8oikkFneYj3czps4=;
	b=YLqYYbNgF3HA39G5bKyI+zM3y5XZId1bOi8yOpnLGcdnSOyKrc+5wTMPkyUHGNgmEsonDu
	mR3IjEh8TXRa8+mhE+3dbV1O7MPoiSFUnGu1JyztWwx8QLecYADya4/we1xDyhB7XksoKt
	ODbu/D3/o6tKO9caUq69OcJ5yRPSK3Ddx/TzFws+Cos5EvPhl441IsaqNI6nRHBThV3M4A
	DX28HxfO153ZOh3FbH7v+TJrqvJt7GhaGOaTCPeEZ8r7Byr6Pib46dMM/uGDvhwg/tbsCt
	nCusxNocwGZQDSVWq8zLrMQjSsY7kpSopwUtYbIoRdK5ZP73XIPoL1956d8qWA==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694442531; a=rsa-sha256; cv=none;
	b=LbWUNy3JMA/DWO/DSSKhSuQw7PxSc1aCaqI0FBCwEm1zYrsocTKkAyTk2olebP3mpOACCN
	Eo8EDkpf8PMtELDVn4pm1JaYxae0bTm2s/c7cJLP/wsJKfXG3o1PkWQ6/py/6LFhSwBK4J
	KvQt8x03KHSZJXYzij/4Gu0x5dsr+zelewFppyJuuWb8lkSkYFWV+nEcwEFWGIpJuu+qlm
	ndiKJifGEpuCl4bwrNfWf4C8W0jiVlwh0JaqQZwpLJlaq7zGlrS6k9yVTYdgZMv+e3A1/u
	Fw34xb1yL//EsGGeHVy2eqdwDiq09k2kUGNsU71IDHTiR7B+dUlilLl2deRfCw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694442531;
	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=S7LIhOtBWu5OrgDQYdx4XJGg+It8oikkFneYj3czps4=;
	b=Zj1L8YOwFCS5yjFbcB1PXbsKl0pZ/QEERJHbtz2in4KPH7II8ISKCAADBmIQbKWTvDFBM2
	LIUUpLAX4Q1PrFikw2m0HTADsQlrKeTNtptHsbSuEkEiN5sziT/rOLKgDGQisvDPIx3QOh
	kvhMrQrbSTxpTC1izm+FttKWUn28G0ogz97JghFb9FJ5exAdhwGyabNwmowbqrOV27vcPA
	59ZXlc+mz2Ct4vjlan9Fe1XYb43fhdVmVW8vW25XLohhg+nI56jHgfCdvNSxzH5stotLvD
	61MF9PgiML681JOP8km1NKkzfz/axZzjyO3WTJFz1ufqAEiyzOEkbCIXfHPmzQ==
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 4RkpxH1zs7zt0k;
	Mon, 11 Sep 2023 14:28: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 38BESp9W040960;
	Mon, 11 Sep 2023 14:28:51 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38BESp5x040957;
	Mon, 11 Sep 2023 14:28:51 GMT
	(envelope-from git)
Date: Mon, 11 Sep 2023 14:28:51 GMT
Message-Id: <202309111428.38BESp5x040957@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: "Bjoern A. Zeeb" <bz@FreeBSD.org>
Subject: git: c45d05b71817 - main - net80211: fix ddb print alignment
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: bz
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: c45d05b71817e478953d6f235d921c2b4acc82de
Auto-Submitted: auto-generated

The branch main has been updated by bz:

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

commit c45d05b71817e478953d6f235d921c2b4acc82de
Author:     Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2023-09-11 14:23:20 +0000
Commit:     Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2023-09-11 14:28:04 +0000

    net80211: fix ddb print alignment
    
    Add missing \ts after new lines to properly align output of ddb show
    commands.
    
    Sponsored by:   The FreeBSD Foundation
    MFC after:      10 days
---
 sys/net80211/ieee80211_ddb.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/sys/net80211/ieee80211_ddb.c b/sys/net80211/ieee80211_ddb.c
index 7a6ee49d7705..4e2df134c7a9 100644
--- a/sys/net80211/ieee80211_ddb.c
+++ b/sys/net80211/ieee80211_ddb.c
@@ -506,7 +506,7 @@ _db_show_vap(const struct ieee80211vap *vap, int showmesh, int showprocs)
 	db_printf(" ht_sta_assoc %u", vap->iv_ht_sta_assoc);
 	db_printf(" ht40_sta_assoc %u", vap->iv_ht40_sta_assoc);
 	db_printf("\n");
-	db_printf(" nonerpsta %u", vap->iv_nonerpsta);
+	db_printf("\tnonerpsta %u", vap->iv_nonerpsta);
 	db_printf(" longslotsta %u", vap->iv_longslotsta);
 	db_printf(" lastnonerp %d", vap->iv_lastnonerp);
 	db_printf(" lastnonht %d", vap->iv_lastnonht);
@@ -550,7 +550,7 @@ _db_show_com(const struct ieee80211com *ic, int showvaps, int showsta,
 	db_printf(" phytype %d", ic->ic_phytype);
 	db_printf(" opmode %s", ieee80211_opmode_name[ic->ic_opmode]);
 	db_printf("\n");
-	db_printf(" inact %p", &ic->ic_inact);
+	db_printf("\tinact %p", &ic->ic_inact);
 	db_printf("\n");
 
 	db_printf("\tflags=%b\n", ic->ic_flags, IEEE80211_F_BITS);

From nobody Mon Sep 11 14:28:52 2023
X-Original-To: dev-commits-src-main@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 4RkpxJ4mqWz4tS5k;
	Mon, 11 Sep 2023 14:28: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 4RkpxJ3Zdfz3GTK;
	Mon, 11 Sep 2023 14:28:52 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694442532;
	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+tTL9Ic6AYfYie1wooH29/JHFIh6O3Ab3B7Oj8CUCM=;
	b=ERfOj5zgxB/W6IJZ8B5dFibsLInWjAgezVkfbvZNSossu8FarjQOpqymGe2/o4JIoDo0Lh
	oNpJClyIH7vxTJe4Mbl/hdDlZ/iAplw6iQSlw7zf+fGNN3xrAF6qDyml+fwt1z/46on7cl
	jXYEo9JveArgpIZSHc+DNtcWVCAoK49JP1Uj2vOfRAzYvpYNvru7dJ+Ev0KZ/WRAqV6U6j
	+KTuRR+4uyClHPOOkl/d2aNI44MHpTj2LImG0g5BVM4rH2C9NViQdCd7MJPdkhXLObJ0CY
	2kDXOcy06GZ4OWjuH7XdosdROibpt1rJAXZowFTvnLt1G9O5C6sXEbLiDN9mRw==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694442532; a=rsa-sha256; cv=none;
	b=amVDbghJylqF71IR/oVPwl3JftyxNli+qFIV+TG0nlPbd7SgLhbK/vp3QRArKe4EXevtkd
	ImiEfmDDvP7ys7AQqWjjP5loA1xl9wlxG8Szrnq4niwAE9zWQDfp5MisoSDTt1zGkySVVp
	jP3qPczLIuq+ZFIaUntbMAW78sQl9jVPYsP2CoaGgJSd9gbkngjfAvU04Rco7aJgNVjGhK
	903wpLhU/EecoHVZURqlgSzB7ZHLwpC6TWwf333kaExJRu/JW1bjVcQ5J5UDc6UFiA7sqy
	wLztVuosrYWB60tqN0glWO/g4S5QIQPFd/P8H+pW/LcuGUG9WUdTQnaFuVOw/g==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694442532;
	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+tTL9Ic6AYfYie1wooH29/JHFIh6O3Ab3B7Oj8CUCM=;
	b=kDKZAGgTUgD/7g15Vbaawmy3krXd5JbwbvGt9/Vj/QRrZPZvjnb6ZUv7BX1B10wm3/EHji
	DiO+mnwPHuDjJ2hROy3BuEONUb2z2mSzj7Y2xlCZJ6rQS/+J1+srPAHOOAAd52FT9a1+Eu
	RtnOq/IiFCOlXrNniVJ+isE+UgrnWIoT0X7oKHvc0rDY4pdGMaz7rWEggh2aB3pb2f+Bnc
	h7vE6VWde1G0pu76k8KeWCj2m/CtEAhTxsbgElALuF1e5xvaWDAZiIHOCCTay1gNO6Cd+L
	Aup5xOjGjzpOPo+Dno7Y/Dmwg6suZ+E2lMV6wly/VTd6q2a9nLFGf8x0bxtACQ==
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 4RkpxJ2bPBzsnv;
	Mon, 11 Sep 2023 14:28: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 38BESqw2041002;
	Mon, 11 Sep 2023 14:28:52 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38BESqmI040999;
	Mon, 11 Sep 2023 14:28:52 GMT
	(envelope-from git)
Date: Mon, 11 Sep 2023 14:28:52 GMT
Message-Id: <202309111428.38BESqmI040999@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: "Bjoern A. Zeeb" <bz@FreeBSD.org>
Subject: git: 530c13c5401c - main - tools/wlanstats: fix
  -Wunused-but-set-variable
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: bz
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 530c13c5401c1f29f8325cf851d96778852a1ba3
Auto-Submitted: auto-generated

The branch main has been updated by bz:

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

commit 530c13c5401c1f29f8325cf851d96778852a1ba3
Author:     Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2023-09-11 14:11:52 +0000
Commit:     Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2023-09-11 14:28:07 +0000

    tools/wlanstats: fix -Wunused-but-set-variable
    
    The "allnodes" code is currently #if 0 so also #if 0 the setting of the
    command line option and variable in order to keep wlanstats compiling.
    
    Sponsored by:   The FreeBSD Foundation
    MFC after:      10 days
---
 tools/tools/net80211/wlanstats/main.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/tools/tools/net80211/wlanstats/main.c b/tools/tools/net80211/wlanstats/main.c
index 4c0cf4db0505..ac100a70622e 100644
--- a/tools/tools/net80211/wlanstats/main.c
+++ b/tools/tools/net80211/wlanstats/main.c
@@ -168,18 +168,26 @@ main(int argc, char *argv[])
 	struct ether_addr *ea;
 	const uint8_t *mac = NULL;
 	const char *ifname;
+#if 0
 	int allnodes = 0;
+#endif
 	int c, mode;
 
 	ifname = getenv("WLAN");
 	if (ifname == NULL)
 		ifname = "wlan0";
 	wf = wlanstats_new(ifname, getfmt("default"));
+#if 0
 	while ((c = getopt(argc, argv, "ahi:lm:o:")) != -1) {
+#else
+	while ((c = getopt(argc, argv, "hi:lm:o:")) != -1) {
+#endif
 		switch (c) {
+#if 0
 		case 'a':
 			allnodes++;
 			break;
+#endif
 		case 'h':
 			usage();
 			exit(0);

From nobody Mon Sep 11 14:32:01 2023
X-Original-To: dev-commits-src-main@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 4Rkq0x45hKz4sG70;
	Mon, 11 Sep 2023 14:32: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 4Rkq0x3hJwz3J3T;
	Mon, 11 Sep 2023 14:32:01 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694442721;
	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=01Mzoe5lVqrEwaQgL/J040Mj2XJpwamxenvO+6F5k3s=;
	b=ChK/OrCM7wbSaBKHyDoH4jDj2vjPw5/aWnqcGAItktX7ScKMxdzl83lUtqN8CzDf0qFUeC
	jLZizKLxMhGhuIjxoOx0rMTLuDmAOrRylYl93YcYdtHWDKzO/lmwBqECreHWDlJCvqAIX9
	G9SdKsTJAwa3XxsP10M2peoAj/1oYxArOzjHRuuPSlFDqBzbohBkCEa8yMBmnGoWQCzuAm
	IWzNNFFEoFF6H9jHV7SNC5EVXOZA4bauyaTAtDRwhURF//WkI+B3/dHLlqvxh27uR4fGqW
	WO5KwAR/tZks0jAM18t2IFA7kK+g8/k4o9jVc0Y/NhhCXAiEfKkvXIfcSXVCDw==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694442721; a=rsa-sha256; cv=none;
	b=SAk8C3T4eJ91pU/wKMR+WDA2bY7rg6m4KHp3/AxKQAhzukW6zj7k9ZiUTHc00xEpBnkQ59
	lUwLZkOQ3bvPO4lAUOet+2tNWYzEwal+rJMK1ezxOEszCwyjveqzRR6hjncA2A96vnaOI/
	xXgC6WquD3BmIJL0oNx5i0Ge3gfu25eQI+Si+DL0zQ3wo9447i72zC9+73nBlwD70YkP75
	qPkjbFxCB2CtQiTrYF0BYYsouItW34eYF+SSHnlJvx8vk8pUxN/ZI0bgSleDAFyV3SlBtG
	auvqXVqLBQJJRG0i+dXXaFfzM3taDq9GrGjT5zS9ihbTStFbLT/lszvZQOo9Xw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694442721;
	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=01Mzoe5lVqrEwaQgL/J040Mj2XJpwamxenvO+6F5k3s=;
	b=bXl/md8B9rJTPjFrDi+U596qgjkeLjtvsWLT5WqTJkzjtiQpUpdwjNoPERamRycGR3QD7y
	GdDamOeSH3N4VCLGmwiC1J9fCajOSOcA4Fk8hy1MAq+7TSjbLWbLoQxMcJGfAOhiQrC1kX
	NVDL7i1s0hBIKO2hzB1dD7eHhNLO1RQe6Wf5LwYmjm3BVPN+P9lH6Fij9+IxEH5jwgtMqY
	V5xoj4gkbJIoFxuS3Skj8EYxECCnNUOGwkZKfISeh1KARblAcMJQ0fWEtlvLUNoGrNvaoI
	sRfk1gZuguGDiohvlhNRgBl2rJZeAYUCahq2F6lWTThbxgdmk2mvm1y+smjnOA==
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 4Rkq0x2n3VzsbY;
	Mon, 11 Sep 2023 14:32: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 38BEW1Zd054761;
	Mon, 11 Sep 2023 14:32:01 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38BEW1Ep054758;
	Mon, 11 Sep 2023 14:32:01 GMT
	(envelope-from git)
Date: Mon, 11 Sep 2023 14:32:01 GMT
Message-Id: <202309111432.38BEW1Ep054758@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: "Bjoern A. Zeeb" <bz@FreeBSD.org>
Subject: git: f0e59b6903c8 - main - LinuxKPI: skbuff: remove
  assumption about mac_header
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: bz
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: f0e59b6903c881859d7f4eaf269b2336b774c7bc
Auto-Submitted: auto-generated

The branch main has been updated by bz:

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

commit f0e59b6903c881859d7f4eaf269b2336b774c7bc
Author:     Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2023-09-08 12:47:03 +0000
Commit:     Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2023-09-11 14:31:35 +0000

    LinuxKPI: skbuff: remove assumption about mac_header
    
    It seems the mac_header can be set to offset 0 for frames received.
    Remove the warning splattering messages to the console for each packet.
    
    Sponsored by:   The FreeBSD Foundation
    MFC after:      3 days
---
 sys/compat/linuxkpi/common/include/linux/skbuff.h | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/sys/compat/linuxkpi/common/include/linux/skbuff.h b/sys/compat/linuxkpi/common/include/linux/skbuff.h
index c917b3f09ac9..f8ce212e7853 100644
--- a/sys/compat/linuxkpi/common/include/linux/skbuff.h
+++ b/sys/compat/linuxkpi/common/include/linux/skbuff.h
@@ -935,10 +935,9 @@ static inline uint8_t *
 skb_mac_header(const struct sk_buff *skb)
 {
 	SKB_TRACE(skb);
-	/* Make sure the mac_header was set as otherwise we return garbage. */
-	WARN_ON(skb->mac_header == 0);
 	return (skb->head + skb->mac_header);
 }
+
 static inline void
 skb_reset_mac_header(struct sk_buff *skb)
 {

From nobody Mon Sep 11 15:42:16 2023
X-Original-To: dev-commits-src-main@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 4RkrZ119nlz4t2js;
	Mon, 11 Sep 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 4RkrZ10lL9z3dhh;
	Mon, 11 Sep 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=1694446937;
	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=jrbFJfndnB6YPALsVC8GnQ+EKecCEzJrjUHxf+k0jbQ=;
	b=Zi1Lhgd4JA9Vhejg97rGFdbKGw7bzqc5z9EDxyyqvxZRtWGo/4V54ISrcVBB9peL+WClVU
	aNxnlgWZcRexF04lc1+8pxhnOPvT9YhaJ5BHz0z1SiqVvCbBiiA6/o+xEv6DNzNhNGQUT9
	ztxSO7RVqpQuXrDhTfHJJFmJEKBDYyoY331l9p+zuPdozX6YdeY9CQkEIMlq5cjpiBnFAv
	mZwr6+TxVzKi/oLgVjC6MU5n1lIHtN/s8jjhe2E7f0lxTKf0VKAbW4WjbN8W1UX8pAwnJE
	N0DEv+rA1y+LjUWKvxHxqPR9TJVSSFTxiE/2ZluJF4N+XLQpXK+h4mpSoUYoDQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694446937; a=rsa-sha256; cv=none;
	b=ebLGpEF8+3o1EOK9uXrDuI21/AvpEvGi0dP6xqDUvxswEQxzqc79ULU58PNw1bFqp+n6MR
	7Os7+Qne3q8uzzNsu51oEU8EgZ9rMe/HfnrEsUpHMPiGsuDT2NO02GcC14AOUKV44ExJWP
	OZoU9k+rUNOGuz0v9/noa7QZS5fTqx/IoFWfbMjNPKv74dhkkIf2rSIK2GlH11ZCU/k9Yj
	iUzL6tDO96hXA7NgdEz0+RRey+3FOemKev3jDXDmY1P6PRDL4z55iw3nQUUPir/TZ73tP8
	t71P3kST7VqlChDGcPb3lrwc+OjLyZJjb0VRID1Ab5xlwbgOD/XBbVKYz0BiKQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694446937;
	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=jrbFJfndnB6YPALsVC8GnQ+EKecCEzJrjUHxf+k0jbQ=;
	b=WVVbJCbPOAK47xdnfaxGOgH8M5zZi4eFqUgsuFAmsmPTLOk4jkfiecN2ACpwYeAcbsA9jR
	X8v/dLAaURbnNtv5dnPfx8dEqkLnAsS/tnV+IecSNVF/D61V3pOA46Vtgtw71qIVzA573q
	iRyGHRZiAqdbsdShit/coxidbZGI6SrhYE7FJd+loy9VUdecvsXrVZfIsDdYqsv7sVFCYx
	0kt2HZKKbVo//rb2m9ZMkXGgcey3ecCOh5e5n0R5SwOvpUFzMVCMWarQV6o7o7ELczA2gm
	50nqMu7jnefMQBpTjWD1Hi6LYQNZOBKAODi4JkcPvhMh5zbRtPHAp8UBmjRmmw==
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 4RkrZ06x0BzvPf;
	Mon, 11 Sep 2023 15:42:16 +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 38BFgGUp071428;
	Mon, 11 Sep 2023 15:42:16 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38BFgGZO071425;
	Mon, 11 Sep 2023 15:42:16 GMT
	(envelope-from git)
Date: Mon, 11 Sep 2023 15:42:16 GMT
Message-Id: <202309111542.38BFgGZO071425@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Baptiste Daroussin <bapt@FreeBSD.org>
Subject: git: d557a86c879a - main - pkg: use https by default
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: bapt
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: d557a86c879a8515d59e8380b083b2265e9a3547
Auto-Submitted: auto-generated

The branch main has been updated by bapt:

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

commit d557a86c879a8515d59e8380b083b2265e9a3547
Author:     Baptiste Daroussin <bapt@FreeBSD.org>
AuthorDate: 2023-06-08 21:37:58 +0000
Commit:     Baptiste Daroussin <bapt@FreeBSD.org>
CommitDate: 2023-09-11 15:41:32 +0000

    pkg: use https by default
    
    Switch the repository to use https by default, base is providing a CA
    root bundle suitable to validate the certificates used by the project.
    This can now be activated without requiring another packages to be installed
    
    Reviewed by:            emaste
    Differential Revision:  https://reviews.freebsd.org/D40473
---
 usr.sbin/pkg/FreeBSD.conf.latest    | 2 +-
 usr.sbin/pkg/FreeBSD.conf.quarterly | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/usr.sbin/pkg/FreeBSD.conf.latest b/usr.sbin/pkg/FreeBSD.conf.latest
index 3f0c4a6243cb..a75b0703386f 100644
--- a/usr.sbin/pkg/FreeBSD.conf.latest
+++ b/usr.sbin/pkg/FreeBSD.conf.latest
@@ -7,7 +7,7 @@
 #
 
 FreeBSD: {
-  url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest",
+  url: "pkg+https://pkg.FreeBSD.org/${ABI}/latest",
   mirror_type: "srv",
   signature_type: "fingerprints",
   fingerprints: "/usr/share/keys/pkg",
diff --git a/usr.sbin/pkg/FreeBSD.conf.quarterly b/usr.sbin/pkg/FreeBSD.conf.quarterly
index 31dc1bde8c2a..645053820dda 100644
--- a/usr.sbin/pkg/FreeBSD.conf.quarterly
+++ b/usr.sbin/pkg/FreeBSD.conf.quarterly
@@ -7,7 +7,7 @@
 #
 
 FreeBSD: {
-  url: "pkg+http://pkg.FreeBSD.org/${ABI}/quarterly",
+  url: "pkg+https://pkg.FreeBSD.org/${ABI}/quarterly",
   mirror_type: "srv",
   signature_type: "fingerprints",
   fingerprints: "/usr/share/keys/pkg",

From nobody Mon Sep 11 17:21:18 2023
X-Original-To: dev-commits-src-main@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 4RktmP41Gjz4sSFL;
	Mon, 11 Sep 2023 17:21:25 +0000 (UTC)
	(envelope-from rpokala@freebsd.org)
Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83])
	(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 "smtp.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RktmP3s9Mz4R9S;
	Mon, 11 Sep 2023 17:21:25 +0000 (UTC)
	(envelope-from rpokala@freebsd.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694452885;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=tXPD1TIDtjVituhKSQv8kr1UIWmUC4FUN8vDbGj9gc8=;
	b=cmQA7gOrrW8iX19sTaQ42YldanlxORvVBRLUmp2g1a40aQKPLXsq7uTqa4hHMCeLTatvMJ
	oXw6lUjx4yOAElePiCUy9H5ZBPqTybEaF9a2gpaAlV3hg6woTTE2JLHTQYQJjlzIl2Kj89
	ZRipi07F/pTAFy5o7Pl3mcBrbZnYzAooHJO3dn/V1IzxqBFfMo/BmUyIKHFSKVW79f18Yb
	WE2d7Lzf/3nt8afXWW2Z+lWqyWxFH6A+AU+MovGYPdBXGYms6LhqmENDxCKsRn+vqvCDW7
	rtYWCeIfjp3osjm+SmhapxbaneXNayY7SEmd8QWPpxIxEqol0rQmqA3PuL3O+w==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694452885; a=rsa-sha256; cv=none;
	b=YZx0Seio0e2AkmXNmI7SMsGknvD7b2tPsPFT/1H9V/z4kswN3bHnbj8CzcLQZyZCi8z8fx
	KAD/Y5tNbzan10FAx6gACdwgoXM1k6a/YP+z/Uc3L4IOaZPYfUkVj2BO/jePS582/5pUGa
	q6+GbMcfaafyneGiJC1V0Qxtz3nbjmnkq5asRc5tBRWyba1H5y6LERgsYEkHBUGJdMWEpz
	y0WuopI3V4TwQlIv5nbQalWWFMzAwhhPQ0/TF9DZXjqeHeQjudjlRmA7wSfy/+40FWp7Xu
	ObuSRgEILG9ONvwM/xbnXPdZsGCKwjVZuhMxZ9bx60itCrI37hM0DQlaJVszyw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694452885;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=tXPD1TIDtjVituhKSQv8kr1UIWmUC4FUN8vDbGj9gc8=;
	b=Ms5ua284aHpQ3WeO195coVpEUiJv9FJ8wBLgmJDbyTked6sgQJfxzFKyBlouH32pcmLf7V
	pKNHv2xXkQdyVGiL7Cc0GyoQAxsRO13IEZ7b8eQZ6q5FdtcO3cewuIIfNzfTXXV+Ng3Yrf
	zp7P11P3sLylzNHOrbo5U8S4Y+KOmkWZiGsE7RAgzzRhMp74UnLcPA+XYqvqsEqP86mDIL
	A2VpEoIg8IGpd9gjKMQJQNMGD5lMQQaJKOf8RqvAw/W6BIyf42OdaAOFG8JrvhEO0sU6/3
	bsV6OYsYUyl/R3iLGq4T6NlmSFdliHX74wTsjfZ876nq3yWTjJmrrYodeQuFEA==
Received: from [192.168.1.12] (c-98-248-120-44.hsd1.ca.comcast.net [98.248.120.44])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(Client did not present a certificate)
	(Authenticated sender: rpokala)
	by smtp.freebsd.org (Postfix) with ESMTPSA id 4RktmN5BMGz16m9;
	Mon, 11 Sep 2023 17:21:24 +0000 (UTC)
	(envelope-from rpokala@freebsd.org)
User-Agent: Microsoft-MacOutlook/16.76.23082700
Date: Mon, 11 Sep 2023 10:21:18 -0700
Subject: Re: 6cec93da46c4 - main - Revert "radix_trie: have vm_radix use
 pctrie code"
From: Ravi Pokala <rpokala@freebsd.org>
To: Doug Moore <dougm@FreeBSD.org>,
	<src-committers@FreeBSD.org>,
	<dev-commits-src-all@FreeBSD.org>,
	<dev-commits-src-main@FreeBSD.org>
Message-ID: <25DD750F-38F2-4151-9E34-350844CE705C@panasas.com>
Thread-Topic: 6cec93da46c4 - main - Revert "radix_trie: have vm_radix use
 pctrie code"
References: <202309110835.38B8Zl9t059626@gitrepo.freebsd.org>
In-Reply-To: <202309110835.38B8Zl9t059626@gitrepo.freebsd.org>
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
Mime-version: 1.0
Content-type: text/plain;
	charset="UTF-8"
Content-transfer-encoding: quoted-printable

Hi Doug,

> Revert "radix_trie: have vm_radix use pctrie code"

That's "what", not "why". Why are you reverting the change?

Thanks,

Ravi (rpokala@)

=EF=BB=BF-----Original Message-----
From: <owner-src-committers@freebsd.org <mailto:owner-src-committers@freebs=
d.org>> on behalf of Doug Moore <dougm@FreeBSD.org <mailto:dougm@FreeBSD.org=
>>
Date: Monday, September 11, 2023 at 01:35
To: <src-committers@FreeBSD.org <mailto:src-committers@FreeBSD.org>>, <dev-=
commits-src-all@FreeBSD.org <mailto:dev-commits-src-all@FreeBSD.org>>, <dev-=
commits-src-main@FreeBSD.org <mailto:dev-commits-src-main@FreeBSD.org>>
Subject: git: 6cec93da46c4 - main - Revert "radix_trie: have vm_radix use p=
ctrie code"


The branch main has been updated by dougm:


URL: https://cgit.FreeBSD.org/src/commit/?id=3D6cec93da46c4a91a042b0be4888440=
52c0f8985a <https://cgit.FreeBSD.org/src/commit/?id=3D6cec93da46c4a91a042b0be4=
88844052c0f8985a>


commit 6cec93da46c4a91a042b0be488844052c0f8985a
Author: Doug Moore <dougm@FreeBSD.org <mailto:dougm@FreeBSD.org>>
AuthorDate: 2023-09-11 08:34:46 +0000
Commit: Doug Moore <dougm@FreeBSD.org <mailto:dougm@FreeBSD.org>>
CommitDate: 2023-09-11 08:35:36 +0000


Revert "radix_trie: have vm_radix use pctrie code"


This reverts commit a494d30465f21e8cb014a5c788a43001397325d7.
---
sys/vm/_vm_radix.h | 9 +-
sys/vm/vm_radix.c | 696 +++++++++++++++++++++++++++++++++++++++++++++++++++=
+-
sys/vm/vm_radix.h | 113 ++-------
3 files changed, 709 insertions(+), 109 deletions(-)


diff --git a/sys/vm/_vm_radix.h b/sys/vm/_vm_radix.h
index 2d9b05c7b52a..01eb25a9dccf 100644
--- a/sys/vm/_vm_radix.h
+++ b/sys/vm/_vm_radix.h
@@ -31,13 +31,16 @@
#ifndef __VM_RADIX_H_
#define __VM_RADIX_H_


-#include <sys/_pctrie.h>
+/*
+ * Radix tree node.
+ */
+struct vm_radix_node;


/*
- * Radix tree
+ * Radix tree root.
*/
struct vm_radix {
- struct pctrie rt_trie;
+ struct vm_radix_node *rt_root;
};


#endif /* !__VM_RADIX_H_ */
diff --git a/sys/vm/vm_radix.c b/sys/vm/vm_radix.c
index b8c693eca66f..768a56ed76f7 100644
--- a/sys/vm/vm_radix.c
+++ b/sys/vm/vm_radix.c
@@ -54,26 +54,302 @@
#include "opt_ddb.h"


#include <sys/param.h>
-#include <sys/pctrie.h>
+#include <sys/systm.h>
+#include <sys/kernel.h>
+#include <sys/libkern.h>
+#include <sys/proc.h>
+#include <sys/vmmeter.h>
+#include <sys/smr.h>
+#include <sys/smr_types.h>


#include <vm/uma.h>
#include <vm/vm.h>
+#include <vm/vm_param.h>
+#include <vm/vm_object.h>
#include <vm/vm_page.h>
#include <vm/vm_radix.h>


+#ifdef DDB
+#include <ddb/ddb.h>
+#endif
+
+/*
+ * These widths should allow the pointers to a node's children to fit with=
in
+ * a single cache line. The extra levels from a narrow width should not be
+ * a problem thanks to path compression.
+ */
+#ifdef __LP64__
+#define VM_RADIX_WIDTH 4
+#else
+#define VM_RADIX_WIDTH 3
+#endif
+
+#define VM_RADIX_COUNT (1 << VM_RADIX_WIDTH)
+#define VM_RADIX_MASK (VM_RADIX_COUNT - 1)
+#define VM_RADIX_LIMIT \
+ (howmany(sizeof(vm_pindex_t) * NBBY, VM_RADIX_WIDTH) - 1)
+
+#if VM_RADIX_WIDTH =3D=3D 3
+typedef uint8_t rn_popmap_t;
+#elif VM_RADIX_WIDTH =3D=3D 4
+typedef uint16_t rn_popmap_t;
+#elif VM_RADIX_WIDTH =3D=3D 5
+typedef uint32_t rn_popmap_t;
+#else
+#error Unsupported width
+#endif
+_Static_assert(sizeof(rn_popmap_t) <=3D sizeof(int),
+ "rn_popmap_t too wide");
+
+/* Set of all flag bits stored in node pointers. */
+#define VM_RADIX_FLAGS (VM_RADIX_ISLEAF)
+#define VM_RADIX_PAD VM_RADIX_FLAGS
+
+enum vm_radix_access { SMR, LOCKED, UNSERIALIZED };
+
+struct vm_radix_node;
+typedef SMR_POINTER(struct vm_radix_node *) smrnode_t;
+
+struct vm_radix_node {
+ vm_pindex_t rn_owner; /* Owner of record. */
+ rn_popmap_t rn_popmap; /* Valid children. */
+ uint8_t rn_clev; /* Level * WIDTH. */
+ smrnode_t rn_child[VM_RADIX_COUNT]; /* Child nodes. */
+};
+
static uma_zone_t vm_radix_node_zone;
-smr_t vm_radix_smr;
+static smr_t vm_radix_smr;
+
+static void vm_radix_node_store(smrnode_t *p, struct vm_radix_node *v,
+ enum vm_radix_access access);


-void *
-vm_radix_node_alloc(struct pctrie *ptree)
+/*
+ * Map index to an array position for the children of rnode,
+ */
+static __inline int
+vm_radix_slot(struct vm_radix_node *rnode, vm_pindex_t index)
{
- return (uma_zalloc_smr(vm_radix_node_zone, M_NOWAIT));
+ return ((index >> rnode->rn_clev) & VM_RADIX_MASK);
}


-void
-vm_radix_node_free(struct pctrie *ptree, void *node)
+/*
+ * Returns true if index does not belong to the specified rnode. Otherwise=
,
+ * sets slot value, and returns false.
+ */
+static __inline bool
+vm_radix_keybarr(struct vm_radix_node *rnode, vm_pindex_t index, int *slot=
)
+{
+ index =3D (index - rnode->rn_owner) >> rnode->rn_clev;
+ if (index >=3D VM_RADIX_COUNT)
+ return (true);
+ *slot =3D index;
+ return (false);
+}
+
+/*
+ * Allocate a radix node.
+ */
+static struct vm_radix_node *
+vm_radix_node_get(vm_pindex_t index, vm_pindex_t newind)
+{
+ struct vm_radix_node *rnode;
+
+ rnode =3D uma_zalloc_smr(vm_radix_node_zone, M_NOWAIT);
+ if (rnode =3D=3D NULL)
+ return (NULL);
+
+ /*
+ * We want to clear the last child pointer after the final section
+ * has exited so lookup can not return false negatives. It is done
+ * here because it will be cache-cold in the dtor callback.
+ */
+ if (rnode->rn_popmap !=3D 0) {
+ vm_radix_node_store(&rnode->rn_child[ffs(rnode->rn_popmap) - 1],
+ VM_RADIX_NULL, UNSERIALIZED);
+ rnode->rn_popmap =3D 0;
+ }
+
+ /*
+ * From the highest-order bit where the indexes differ,
+ * compute the highest level in the trie where they differ. Then,
+ * compute the least index of this subtrie.
+ */
+ KASSERT(index !=3D newind, ("%s: passing the same key value %jx",
+ __func__, (uintmax_t)index));
+ _Static_assert(sizeof(long long) >=3D sizeof(vm_pindex_t),
+ "vm_pindex_t too wide");
+ _Static_assert(sizeof(vm_pindex_t) * NBBY <=3D
+ (1 << (sizeof(rnode->rn_clev) * NBBY)), "rn_clev too narrow");
+ rnode->rn_clev =3D rounddown(flsll(index ^ newind) - 1, VM_RADIX_WIDTH);
+ rnode->rn_owner =3D VM_RADIX_COUNT;
+ rnode->rn_owner =3D index & -(rnode->rn_owner << rnode->rn_clev);
+ return (rnode);
+}
+
+/*
+ * Free radix node.
+ */
+static __inline void
+vm_radix_node_put(struct vm_radix_node *rnode)
+{
+#ifdef INVARIANTS
+ int slot;
+
+ KASSERT(powerof2(rnode->rn_popmap),
+ ("vm_radix_node_put: rnode %p has too many children %04x", rnode,
+ rnode->rn_popmap));
+ for (slot =3D 0; slot < VM_RADIX_COUNT; slot++) {
+ if ((rnode->rn_popmap & (1 << slot)) !=3D 0)
+ continue;
+ KASSERT(smr_unserialized_load(&rnode->rn_child[slot], true) =3D=3D
+ VM_RADIX_NULL,
+ ("vm_radix_node_put: rnode %p has a child", rnode));
+ }
+#endif
+ uma_zfree_smr(vm_radix_node_zone, rnode);
+}
+
+/*
+ * Fetch a node pointer from a slot in another node.
+ */
+static __inline struct vm_radix_node *
+vm_radix_node_load(smrnode_t *p, enum vm_radix_access access)
+{
+
+ switch (access) {
+ case UNSERIALIZED:
+ return (smr_unserialized_load(p, true));
+ case LOCKED:
+ return (smr_serialized_load(p, true));
+ case SMR:
+ return (smr_entered_load(p, vm_radix_smr));
+ }
+ __assert_unreachable();
+}
+
+static __inline void
+vm_radix_node_store(smrnode_t *p, struct vm_radix_node *v,
+ enum vm_radix_access access)
+{
+
+ switch (access) {
+ case UNSERIALIZED:
+ smr_unserialized_store(p, v, true);
+ break;
+ case LOCKED:
+ smr_serialized_store(p, v, true);
+ break;
+ case SMR:
+ panic("vm_radix_node_store: Not supported in smr section.");
+ }
+}
+
+/*
+ * Get the root node for a radix tree.
+ */
+static __inline struct vm_radix_node *
+vm_radix_root_load(struct vm_radix *rtree, enum vm_radix_access access)
+{
+
+ return (vm_radix_node_load((smrnode_t *)&rtree->rt_root, access));
+}
+
+/*
+ * Set the root node for a radix tree.
+ */
+static __inline void
+vm_radix_root_store(struct vm_radix *rtree, struct vm_radix_node *rnode,
+ enum vm_radix_access access)
+{
+
+ vm_radix_node_store((smrnode_t *)&rtree->rt_root, rnode, access);
+}
+
+/*
+ * Returns TRUE if the specified radix node is a leaf and FALSE otherwise.
+ */
+static __inline bool
+vm_radix_isleaf(struct vm_radix_node *rnode)
+{
+
+ return (((uintptr_t)rnode & VM_RADIX_ISLEAF) !=3D 0);
+}
+
+/*
+ * Returns page cast to radix node with leaf bit set.
+ */
+static __inline struct vm_radix_node *
+vm_radix_toleaf(vm_page_t page)
+{
+ return ((struct vm_radix_node *)((uintptr_t)page | VM_RADIX_ISLEAF));
+}
+
+/*
+ * Returns the associated page extracted from rnode.
+ */
+static __inline vm_page_t
+vm_radix_topage(struct vm_radix_node *rnode)
+{
+
+ return ((vm_page_t)((uintptr_t)rnode & ~VM_RADIX_FLAGS));
+}
+
+/*
+ * Make 'child' a child of 'rnode'.
+ */
+static __inline void
+vm_radix_addnode(struct vm_radix_node *rnode, vm_pindex_t index,
+ struct vm_radix_node *child, enum vm_radix_access access)
+{
+ int slot;
+
+ slot =3D vm_radix_slot(rnode, index);
+ vm_radix_node_store(&rnode->rn_child[slot], child, access);
+ rnode->rn_popmap ^=3D 1 << slot;
+ KASSERT((rnode->rn_popmap & (1 << slot)) !=3D 0,
+ ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode));
+}
+
+/*
+ * Internal helper for vm_radix_reclaim_allnodes().
+ * This function is recursive.
+ */
+static void
+vm_radix_reclaim_allnodes_int(struct vm_radix_node *rnode)
+{
+ struct vm_radix_node *child;
+ int slot;
+
+ while (rnode->rn_popmap !=3D 0) {
+ slot =3D ffs(rnode->rn_popmap) - 1;
+ child =3D vm_radix_node_load(&rnode->rn_child[slot],
+ UNSERIALIZED);
+ KASSERT(child !=3D VM_RADIX_NULL,
+ ("%s: bad popmap slot %d in rnode %p",
+ __func__, slot, rnode));
+ if (!vm_radix_isleaf(child))
+ vm_radix_reclaim_allnodes_int(child);
+ rnode->rn_popmap ^=3D 1 << slot;
+ vm_radix_node_store(&rnode->rn_child[slot], VM_RADIX_NULL,
+ UNSERIALIZED);
+ }
+ vm_radix_node_put(rnode);
+}
+
+/*
+ * radix node zone initializer.
+ */
+static int
+vm_radix_zone_init(void *mem, int size, int flags)
{
- uma_zfree_smr(vm_radix_node_zone, node);
+ struct vm_radix_node *rnode;
+
+ rnode =3D mem;
+ rnode->rn_popmap =3D 0;
+ for (int i =3D 0; i < nitems(rnode->rn_child); i++)
+ vm_radix_node_store(&rnode->rn_child[i], VM_RADIX_NULL,
+ UNSERIALIZED);
+ return (0);
}


#ifndef UMA_MD_SMALL_ALLOC
@@ -107,14 +383,412 @@ void
vm_radix_zinit(void)
{


- vm_radix_node_zone =3D uma_zcreate("RADIX NODE", pctrie_node_size(),
- NULL, NULL, pctrie_zone_init, NULL,
- PCTRIE_PAD, UMA_ZONE_VM | UMA_ZONE_SMR);
+ vm_radix_node_zone =3D uma_zcreate("RADIX NODE",
+ sizeof(struct vm_radix_node), NULL, NULL, vm_radix_zone_init, NULL,
+ VM_RADIX_PAD, UMA_ZONE_VM | UMA_ZONE_SMR);
vm_radix_smr =3D uma_zone_get_smr(vm_radix_node_zone);
}


+/*
+ * Inserts the key-value pair into the trie.
+ * Panics if the key already exists.
+ */
+int
+vm_radix_insert(struct vm_radix *rtree, vm_page_t page)
+{
+ vm_pindex_t index, newind;
+ struct vm_radix_node *leaf, *parent, *rnode;
+ smrnode_t *parentp;
+ int slot;
+
+ index =3D page->pindex;
+ leaf =3D vm_radix_toleaf(page);
+
+ /*
+ * The owner of record for root is not really important because it
+ * will never be used.
+ */
+ rnode =3D vm_radix_root_load(rtree, LOCKED);
+ parent =3D NULL;
+ for (;;) {
+ if (vm_radix_isleaf(rnode)) {
+ if (rnode =3D=3D VM_RADIX_NULL) {
+ if (parent =3D=3D NULL)
+ rtree->rt_root =3D leaf;
+ else
+ vm_radix_addnode(parent, index, leaf,
+ LOCKED);
+ return (0);
+ }
+ newind =3D vm_radix_topage(rnode)->pindex;
+ if (newind =3D=3D index)
+ panic("%s: key %jx is already present",
+ __func__, (uintmax_t)index);
+ break;
+ }
+ if (vm_radix_keybarr(rnode, index, &slot)) {
+ newind =3D rnode->rn_owner;
+ break;
+ }
+ parent =3D rnode;
+ rnode =3D vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
+ }
+
+ /*
+ * A new node is needed because the right insertion level is reached.
+ * Setup the new intermediate node and add the 2 children: the
+ * new object and the older edge or object.
+ */
+ parentp =3D (parent !=3D NULL) ? &parent->rn_child[slot]:
+ (smrnode_t *)&rtree->rt_root;
+ parent =3D vm_radix_node_get(index, newind);
+ if (parent =3D=3D NULL)
+ return (ENOMEM);
+ /* These writes are not yet visible due to ordering. */
+ vm_radix_addnode(parent, index, leaf, UNSERIALIZED);
+ vm_radix_addnode(parent, newind, rnode, UNSERIALIZED);
+ /* Serializing write to make the above visible. */
+ vm_radix_node_store(parentp, parent, LOCKED);
+ return (0);
+}
+
+/*
+ * Returns the value stored at the index. If the index is not present,
+ * NULL is returned.
+ */
+static __always_inline vm_page_t
+_vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index,
+ enum vm_radix_access access)
+{
+ struct vm_radix_node *rnode;
+ vm_page_t m;
+ int slot;
+
+ rnode =3D vm_radix_root_load(rtree, access);
+ for (;;) {
+ if (vm_radix_isleaf(rnode)) {
+ if ((m =3D vm_radix_topage(rnode)) !=3D NULL &&
+ m->pindex =3D=3D index)
+ return (m);
+ break;
+ }
+ if (vm_radix_keybarr(rnode, index, &slot))
+ break;
+ rnode =3D vm_radix_node_load(&rnode->rn_child[slot], access);
+ }
+ return (NULL);
+}
+
+/*
+ * Returns the value stored at the index assuming there is an external loc=
k.
+ *
+ * If the index is not present, NULL is returned.
+ */
+vm_page_t
+vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index)
+{
+
+ return _vm_radix_lookup(rtree, index, LOCKED);
+}
+
+/*
+ * Returns the value stored at the index without requiring an external loc=
k.
+ *
+ * If the index is not present, NULL is returned.
+ */
+vm_page_t
+vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index)
+{
+ vm_page_t m;
+
+ smr_enter(vm_radix_smr);
+ m =3D _vm_radix_lookup(rtree, index, SMR);
+ smr_exit(vm_radix_smr);
+
+ return (m);
+}
+
+/*
+ * Returns the page with the least pindex that is greater than or equal to=
 the
+ * specified pindex, or NULL if there are no such pages.
+ *
+ * Requires that access be externally synchronized by a lock.
+ */
+vm_page_t
+vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index)
+{
+ struct vm_radix_node *rnode, *succ;
+ vm_page_t m;
+ int slot;
+
+ /*
+ * Descend the trie as if performing an ordinary lookup for the page
+ * with the specified pindex. However, unlike an ordinary lookup, as we
+ * descend the trie, we use "succ" to remember the last branching-off
+ * point, that is, the interior node under which the page with the least
+ * pindex that is both outside our current path down the trie and more
+ * than the specified pindex resides. (The node's popmap makes it fast
+ * and easy to recognize a branching-off point.) If our ordinary lookup
+ * fails to yield a page with a pindex that is greater than or equal to
+ * the specified pindex, then we will exit this loop and perform a
+ * lookup starting from "succ". If "succ" is not NULL, then that lookup
+ * is guaranteed to succeed.
+ */
+ rnode =3D vm_radix_root_load(rtree, LOCKED);
+ succ =3D NULL;
+ for (;;) {
+ if (vm_radix_isleaf(rnode)) {
+ if ((m =3D vm_radix_topage(rnode)) !=3D NULL &&
+ m->pindex >=3D index)
+ return (m);
+ break;
+ }
+ if (vm_radix_keybarr(rnode, index, &slot)) {
+ /*
+ * If all pages in this subtree have pindex > index,
+ * then the page in this subtree with the least pindex
+ * is the answer.
+ */
+ if (rnode->rn_owner > index)
+ succ =3D rnode;
+ break;
+ }
+
+ /*
+ * Just in case the next search step leads to a subtree of all
+ * pages with pindex < index, check popmap to see if a next
+ * bigger step, to a subtree of all pages with pindex > index,
+ * is available. If so, remember to restart the search here.
+ */
+ if ((rnode->rn_popmap >> slot) > 1)
+ succ =3D rnode;
+ rnode =3D vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
+ }
+
+ /*
+ * Restart the search from the last place visited in the subtree that
+ * included some pages with pindex > index, if there was such a place.
+ */
+ if (succ =3D=3D NULL)
+ return (NULL);
+ if (succ !=3D rnode) {
+ /*
+ * Take a step to the next bigger sibling of the node chosen
+ * last time. In that subtree, all pages have pindex > index.
+ */
+ slot =3D vm_radix_slot(succ, index) + 1;
+ KASSERT((succ->rn_popmap >> slot) !=3D 0,
+ ("%s: no popmap siblings past slot %d in node %p",
+ __func__, slot, succ));
+ slot +=3D ffs(succ->rn_popmap >> slot) - 1;
+ succ =3D vm_radix_node_load(&succ->rn_child[slot], LOCKED);
+ }
+
+ /*
+ * Find the page in the subtree rooted at "succ" with the least pindex.
+ */
+ while (!vm_radix_isleaf(succ)) {
+ KASSERT(succ->rn_popmap !=3D 0,
+ ("%s: no popmap children in node %p", __func__, succ));
+ slot =3D ffs(succ->rn_popmap) - 1;
+ succ =3D vm_radix_node_load(&succ->rn_child[slot], LOCKED);
+ }
+ return (vm_radix_topage(succ));
+}
+
+/*
+ * Returns the page with the greatest pindex that is less than or equal to=
 the
+ * specified pindex, or NULL if there are no such pages.
+ *
+ * Requires that access be externally synchronized by a lock.
+ */
+vm_page_t
+vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index)
+{
+ struct vm_radix_node *pred, *rnode;
+ vm_page_t m;
+ int slot;
+
+ /*
+ * Mirror the implementation of vm_radix_lookup_ge, described above.
+ */
+ rnode =3D vm_radix_root_load(rtree, LOCKED);
+ pred =3D NULL;
+ for (;;) {
+ if (vm_radix_isleaf(rnode)) {
+ if ((m =3D vm_radix_topage(rnode)) !=3D NULL &&
+ m->pindex <=3D index)
+ return (m);
+ break;
+ }
+ if (vm_radix_keybarr(rnode, index, &slot)) {
+ if (rnode->rn_owner < index)
+ pred =3D rnode;
+ break;
+ }
+ if ((rnode->rn_popmap & ((1 << slot) - 1)) !=3D 0)
+ pred =3D rnode;
+ rnode =3D vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
+ }
+ if (pred =3D=3D NULL)
+ return (NULL);
+ if (pred !=3D rnode) {
+ slot =3D vm_radix_slot(pred, index);
+ KASSERT((pred->rn_popmap & ((1 << slot) - 1)) !=3D 0,
+ ("%s: no popmap siblings before slot %d in node %p",
+ __func__, slot, pred));
+ slot =3D fls(pred->rn_popmap & ((1 << slot) - 1)) - 1;
+ pred =3D vm_radix_node_load(&pred->rn_child[slot], LOCKED);
+ }
+ while (!vm_radix_isleaf(pred)) {
+ KASSERT(pred->rn_popmap !=3D 0,
+ ("%s: no popmap children in node %p", __func__, pred));
+ slot =3D fls(pred->rn_popmap) - 1;
+ pred =3D vm_radix_node_load(&pred->rn_child[slot], LOCKED);
+ }
+ return (vm_radix_topage(pred));
+}
+
+/*
+ * Remove the specified index from the trie, and return the value stored a=
t
+ * that index. If the index is not present, return NULL.
+ */
+vm_page_t
+vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index)
+{
+ struct vm_radix_node *child, *parent, *rnode;
+ vm_page_t m;
+ int slot;
+
+ rnode =3D NULL;
+ child =3D vm_radix_root_load(rtree, LOCKED);
+ for (;;) {
+ if (vm_radix_isleaf(child))
+ break;
+ parent =3D rnode;
+ rnode =3D child;
+ slot =3D vm_radix_slot(rnode, index);
+ child =3D vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
+ }
+ if ((m =3D vm_radix_topage(child)) =3D=3D NULL || m->pindex !=3D index)
+ return (NULL);
+ if (rnode =3D=3D NULL) {
+ vm_radix_root_store(rtree, VM_RADIX_NULL, LOCKED);
+ return (m);
+ }
+ KASSERT((rnode->rn_popmap & (1 << slot)) !=3D 0,
+ ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode));
+ rnode->rn_popmap ^=3D 1 << slot;
+ vm_radix_node_store(&rnode->rn_child[slot], VM_RADIX_NULL, LOCKED);
+ if (!powerof2(rnode->rn_popmap))
+ return (m);
+ KASSERT(rnode->rn_popmap !=3D 0, ("%s: bad popmap all zeroes", __func__));
+ slot =3D ffs(rnode->rn_popmap) - 1;
+ child =3D vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
+ KASSERT(child !=3D VM_RADIX_NULL,
+ ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode));
+ if (parent =3D=3D NULL)
+ vm_radix_root_store(rtree, child, LOCKED);
+ else {
+ slot =3D vm_radix_slot(parent, index);
+ KASSERT(rnode =3D=3D
+ vm_radix_node_load(&parent->rn_child[slot], LOCKED),
+ ("%s: invalid child value", __func__));
+ vm_radix_node_store(&parent->rn_child[slot], child, LOCKED);
+ }
+ /*
+ * The child is still valid and we can not zero the
+ * pointer until all smr references are gone.
+ */
+ vm_radix_node_put(rnode);
+ return (m);
+}
+
+/*
+ * Remove and free all the nodes from the radix tree.
+ * This function is recursive but there is a tight control on it as the
+ * maximum depth of the tree is fixed.
+ */
+void
+vm_radix_reclaim_allnodes(struct vm_radix *rtree)
+{
+ struct vm_radix_node *root;
+
+ root =3D vm_radix_root_load(rtree, LOCKED);
+ if (root =3D=3D VM_RADIX_NULL)
+ return;
+ vm_radix_root_store(rtree, VM_RADIX_NULL, UNSERIALIZED);
+ if (!vm_radix_isleaf(root))
+ vm_radix_reclaim_allnodes_int(root);
+}
+
+/*
+ * Replace an existing page in the trie with another one.
+ * Panics if there is not an old page in the trie at the new page's index.
+ */
+vm_page_t
+vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage)
+{
+ struct vm_radix_node *leaf, *parent, *rnode;
+ vm_page_t m;
+ vm_pindex_t index;
+ int slot;
+
+ leaf =3D vm_radix_toleaf(newpage);
+ index =3D newpage->pindex;
+ rnode =3D vm_radix_root_load(rtree, LOCKED);
+ parent =3D NULL;
+ for (;;) {
+ if (vm_radix_isleaf(rnode)) {
+ if ((m =3D vm_radix_topage(rnode)) !=3D NULL &&
+ m->pindex =3D=3D index) {
+ if (parent =3D=3D NULL)
+ rtree->rt_root =3D leaf;
+ else
+ vm_radix_node_store(
+ &parent->rn_child[slot], leaf,
+ LOCKED);
+ return (m);
+ }
+ break;
+ }
+ if (vm_radix_keybarr(rnode, index, &slot))
+ break;
+ parent =3D rnode;
+ rnode =3D vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
+ }
+ panic("%s: original replacing page not found", __func__);
+}
+
void
vm_radix_wait(void)
{
uma_zwait(vm_radix_node_zone);
}
+
+#ifdef DDB
+/*
+ * Show details about the given radix node.
+ */
+DB_SHOW_COMMAND(radixnode, db_show_radixnode)
+{
+ struct vm_radix_node *rnode, *tmp;
+ int slot;
+ rn_popmap_t popmap;
+
+ if (!have_addr)
+ return;
+ rnode =3D (struct vm_radix_node *)addr;
+ db_printf("radixnode %p, owner %jx, children popmap %04x, level %u:\n",
+ (void *)rnode, (uintmax_t)rnode->rn_owner, rnode->rn_popmap,
+ rnode->rn_clev / VM_RADIX_WIDTH);
+ for (popmap =3D rnode->rn_popmap; popmap !=3D 0; popmap ^=3D 1 << slot) {
+ slot =3D ffs(popmap) - 1;
+ tmp =3D vm_radix_node_load(&rnode->rn_child[slot], UNSERIALIZED);
+ db_printf("slot: %d, val: %p, page: %p, clev: %d\n",
+ slot, (void *)tmp,
+ vm_radix_isleaf(tmp) ? vm_radix_topage(tmp) : NULL,
+ rnode->rn_clev / VM_RADIX_WIDTH);
+ }
+}
+#endif /* DDB */
diff --git a/sys/vm/vm_radix.h b/sys/vm/vm_radix.h
index a332618fc0e6..231edda65102 100644
--- a/sys/vm/vm_radix.h
+++ b/sys/vm/vm_radix.h
@@ -34,113 +34,36 @@
#include <vm/_vm_radix.h>


#ifdef _KERNEL
-#include <sys/pctrie.h>
-#include <vm/vm.h>


+int vm_radix_insert(struct vm_radix *rtree, vm_page_t page);
void vm_radix_wait(void);
+vm_page_t vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index);
+vm_page_t vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index);
+vm_page_t vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index);
+vm_page_t vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t ind=
ex);
+void vm_radix_reclaim_allnodes(struct vm_radix *rtree);
+vm_page_t vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index);
+vm_page_t vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage);
void vm_radix_zinit(void);
-void *vm_radix_node_alloc(struct pctrie *ptree);
-void vm_radix_node_free(struct pctrie *ptree, void *node);
-extern smr_t vm_radix_smr;
-
-static __inline void
-vm_radix_init(struct vm_radix *rtree)
-{
- pctrie_init(&rtree->rt_trie);
-}
-
-static __inline bool
-vm_radix_is_empty(struct vm_radix *rtree)
-{
- return (pctrie_is_empty(&rtree->rt_trie));
-}
-
-PCTRIE_DEFINE_SMR(VM_RADIX, vm_page, pindex, vm_radix_node_alloc, vm_radix=
_node_free,
- vm_radix_smr);


/*
- * Inserts the key-value pair into the trie.
- * Panics if the key already exists.
+ * Each search path in the trie terminates at a leaf, which is a pointer t=
o a
+ * page marked with a set 1-bit. A leaf may be associated with a null poin=
ter
+ * to indicate no page there.
*/
-static __inline int
-vm_radix_insert(struct vm_radix *rtree, vm_page_t page)
-{
- return (VM_RADIX_PCTRIE_INSERT(&rtree->rt_trie, page));
-}
-
-/*
- * Returns the value stored at the index assuming there is an external loc=
k.
- *
- * If the index is not present, NULL is returned.
- */
-static __inline vm_page_t
-vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index)
-{
- return (VM_RADIX_PCTRIE_LOOKUP(&rtree->rt_trie, index));
-}
-
-/*
- * Returns the value stored at the index without requiring an external loc=
k.
- *
- * If the index is not present, NULL is returned.
- */
-static __inline vm_page_t
-vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index)
-{
- return (VM_RADIX_PCTRIE_LOOKUP_UNLOCKED(&rtree->rt_trie, index));
-}
+#define VM_RADIX_ISLEAF 0x1
+#define VM_RADIX_NULL (struct vm_radix_node *)VM_RADIX_ISLEAF


-/*
- * Returns the page with the least pindex that is greater than or equal to=
 the
- * specified pindex, or NULL if there are no such pages.
- *
- * Requires that access be externally synchronized by a lock.
- */
-static __inline vm_page_t
-vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index)
-{
- return (VM_RADIX_PCTRIE_LOOKUP_GE(&rtree->rt_trie, index));
-}
-
-/*
- * Returns the page with the greatest pindex that is less than or equal to=
 the
- * specified pindex, or NULL if there are no such pages.
- *
- * Requires that access be externally synchronized by a lock.
- */
-static __inline vm_page_t
-vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index)
-{
- return (VM_RADIX_PCTRIE_LOOKUP_LE(&rtree->rt_trie, index));
-}
-
-/*
- * Remove the specified index from the trie, and return the value stored a=
t
- * that index. If the index is not present, return NULL.
- */
-static __inline vm_page_t
-vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index)
-{
- return (VM_RADIX_PCTRIE_REMOVE_LOOKUP(&rtree->rt_trie, index));
-}
-
-/*
- * Remove and free all the nodes from the radix tree.
- */
static __inline void
-vm_radix_reclaim_allnodes(struct vm_radix *rtree)
+vm_radix_init(struct vm_radix *rtree)
{
- VM_RADIX_PCTRIE_RECLAIM(&rtree->rt_trie);
+ rtree->rt_root =3D VM_RADIX_NULL;
}


-/*
- * Replace an existing page in the trie with another one.
- * Panics if there is not an old page in the trie at the new page's index.
- */
-static __inline vm_page_t
-vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage)
+static __inline bool
+vm_radix_is_empty(struct vm_radix *rtree)
{
- return (VM_RADIX_PCTRIE_REPLACE(&rtree->rt_trie, newpage));
+ return (rtree->rt_root =3D=3D VM_RADIX_NULL);
}


#endif /* _KERNEL */





From nobody Mon Sep 11 17:26:21 2023
X-Original-To: dev-commits-src-main@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 4Rktt90jjkz4sVMr;
	Mon, 11 Sep 2023 17:26:25 +0000 (UTC)
	(envelope-from unkadoug@gmail.com)
Received: from mail-yb1-xb2b.google.com (mail-yb1-xb2b.google.com [IPv6:2607:f8b0:4864:20::b2b])
	(using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (2048 bits) client-digest SHA256)
	(Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4Rktt90HNlz4SGb;
	Mon, 11 Sep 2023 17:26:25 +0000 (UTC)
	(envelope-from unkadoug@gmail.com)
Authentication-Results: mx1.freebsd.org;
	none
Received: by mail-yb1-xb2b.google.com with SMTP id 3f1490d57ef6-d8032efa2bfso4268412276.1;
        Mon, 11 Sep 2023 10:26:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20221208; t=1694453184; x=1695057984; darn=freebsd.org;
        h=content-transfer-encoding:in-reply-to:references:to
         :content-language:subject:user-agent:mime-version:date:message-id
         :from:from:to:cc:subject:date:message-id:reply-to;
        bh=ysXrtsKaDkN5m1Q7ceFoVohWfGH1FksCNtZEUwJlYTw=;
        b=DccO9Ym9gSLpgLQvfONxIYLbCqd3lc46/5i4ZZjfitvjrmlz8B1oK9RylUF7WrSI3p
         oZearOMgVU/XSyDGMKBTpiXaaNuCGNHTtcgrG8OYoiaC4ewwSWwCOKW3lKh5umvO1A/Q
         HqnbKlSQ8VDp9znlagxBg3j5ZLI7bwQWVkLZf7k5ZIyMxSu8TukDVp+lD5k3ScaYPz6i
         Ro4iooIuTx/bBmHrNsV4knsXshfU4TDx7wT0MoiODbV8BT7/15OdsqbooXMIOXGUuUbe
         T6ekGAnSMcFMSevOjcKj8kTxZCQ6uUDrF3wuHZfCWf7EA+omABCcA2mgA1CHHJz0V8S5
         bYSQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694453184; x=1695057984;
        h=content-transfer-encoding:in-reply-to:references:to
         :content-language:subject:user-agent:mime-version:date:message-id
         :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=ysXrtsKaDkN5m1Q7ceFoVohWfGH1FksCNtZEUwJlYTw=;
        b=f8gxjJFUPEJKT9NUjR0cZ7/ePJE228LsiAd5wbhndnVCZH4CwMaTuSH8qCLcprRAt3
         XdGIch5Kw01eXhPuAKlPntVwvMaZk62QqW+4Ha98mol/pe5PZacBLXMFZxMNcPUjupT3
         DjMjbTvF7tf6GLmTa3nAKGpjg6WdgO0DW8n26WOE1eLhX+SCGqPwfDDQ1rstGr7Cpd0e
         uWmHt6m2TNo4C252xqUMDzvUFLsIH7XeWe+MiweNAQC6VdpdUPg7kC1PKN+ALBf+whwj
         KP+ByPmnTD6fCoupWxsfrkCmOj4xw/citXpKMS2/ZwbuFWCo+6MFrhEDEWrpn48o5/GA
         G18w==
X-Gm-Message-State: AOJu0YzVg/Gk7ca8ZvKDrWsTdZhQXHvISg9MgYHXox2W+AATkEg86tj9
	Ox9aGEgvy39g9JD0WLMnmEtzi3Cu1drfnA==
X-Google-Smtp-Source: AGHT+IEjtYDmAAeCqKDIOVWfy+Pkqm3D7Dh2jTmMUc1+owjoEd0h5zqHP1ezUqOMwiV/doaY5OsOcQ==
X-Received: by 2002:a25:ad87:0:b0:d60:eb09:8885 with SMTP id z7-20020a25ad87000000b00d60eb098885mr319189ybi.27.1694453183632;
        Mon, 11 Sep 2023 10:26:23 -0700 (PDT)
Received: from [108.254.203.202] (108-254-203-202.lightspeed.hstntx.sbcglobal.net. [108.254.203.202])
        by smtp.gmail.com with ESMTPSA id a131-20020a254d89000000b00d801440ed1dsm1794545ybb.23.2023.09.11.10.26.22
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Mon, 11 Sep 2023 10:26:23 -0700 (PDT)
From: Doug Moore <unkadoug@gmail.com>
X-Google-Original-From: Doug Moore <dougm@freebsd.org>
Message-ID: <835d7376-4289-9ec5-415f-e94ea2c9b6d2@freebsd.org>
Date: Mon, 11 Sep 2023 12:26:21 -0500
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:102.0) Gecko/20100101
 Thunderbird/102.10.0
Subject: Re: 6cec93da46c4 - main - Revert "radix_trie: have vm_radix use
 pctrie code"
Content-Language: en-US
To: Ravi Pokala <rpokala@freebsd.org>, src-committers@FreeBSD.org,
 dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
References: <202309110835.38B8Zl9t059626@gitrepo.freebsd.org>
 <25DD750F-38F2-4151-9E34-350844CE705C@panasas.com>
In-Reply-To: <25DD750F-38F2-4151-9E34-350844CE705C@panasas.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Spamd-Bar: ----
X-Rspamd-Pre-Result: action=no action;
	module=replies;
	Message is reply to one we originated
X-Spamd-Result: default: False [-4.00 / 15.00];
	REPLY(-4.00)[];
	ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]
X-Rspamd-Queue-Id: 4Rktt90HNlz4SGb

Because jenkins reported failures on most of the non-amd64 
architectures, and leaving 'main' broken while I figured out the problem 
was not a sensible choice.

Doug

On 9/11/23 12:21, Ravi Pokala wrote:
> Hi Doug,
>
>> Revert "radix_trie: have vm_radix use pctrie code"
> That's "what", not "why". Why are you reverting the change?
>
> Thanks,
>
> Ravi (rpokala@)
>
> -----Original Message-----
> From: <owner-src-committers@freebsd.org <mailto:owner-src-committers@freebsd.org>> on behalf of Doug Moore <dougm@FreeBSD.org <mailto:dougm@FreeBSD.org>>
> Date: Monday, September 11, 2023 at 01:35
> To: <src-committers@FreeBSD.org <mailto:src-committers@FreeBSD.org>>, <dev-commits-src-all@FreeBSD.org <mailto:dev-commits-src-all@FreeBSD.org>>, <dev-commits-src-main@FreeBSD.org <mailto:dev-commits-src-main@FreeBSD.org>>
> Subject: git: 6cec93da46c4 - main - Revert "radix_trie: have vm_radix use pctrie code"
>
>
> The branch main has been updated by dougm:
>
>
> URL: https://cgit.FreeBSD.org/src/commit/?id=6cec93da46c4a91a042b0be488844052c0f8985a <https://cgit.FreeBSD.org/src/commit/?id=6cec93da46c4a91a042b0be488844052c0f8985a>
>
>
> commit 6cec93da46c4a91a042b0be488844052c0f8985a
> Author: Doug Moore <dougm@FreeBSD.org <mailto:dougm@FreeBSD.org>>
> AuthorDate: 2023-09-11 08:34:46 +0000
> Commit: Doug Moore <dougm@FreeBSD.org <mailto:dougm@FreeBSD.org>>
> CommitDate: 2023-09-11 08:35:36 +0000
>
>
> Revert "radix_trie: have vm_radix use pctrie code"
>
>
> This reverts commit a494d30465f21e8cb014a5c788a43001397325d7.
> ---
> sys/vm/_vm_radix.h | 9 +-
> sys/vm/vm_radix.c | 696 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
> sys/vm/vm_radix.h | 113 ++-------
> 3 files changed, 709 insertions(+), 109 deletions(-)
>
>
> diff --git a/sys/vm/_vm_radix.h b/sys/vm/_vm_radix.h
> index 2d9b05c7b52a..01eb25a9dccf 100644
> --- a/sys/vm/_vm_radix.h
> +++ b/sys/vm/_vm_radix.h
> @@ -31,13 +31,16 @@
> #ifndef __VM_RADIX_H_
> #define __VM_RADIX_H_
>
>
> -#include <sys/_pctrie.h>
> +/*
> + * Radix tree node.
> + */
> +struct vm_radix_node;
>
>
> /*
> - * Radix tree
> + * Radix tree root.
> */
> struct vm_radix {
> - struct pctrie rt_trie;
> + struct vm_radix_node *rt_root;
> };
>
>
> #endif /* !__VM_RADIX_H_ */
> diff --git a/sys/vm/vm_radix.c b/sys/vm/vm_radix.c
> index b8c693eca66f..768a56ed76f7 100644
> --- a/sys/vm/vm_radix.c
> +++ b/sys/vm/vm_radix.c
> @@ -54,26 +54,302 @@
> #include "opt_ddb.h"
>
>
> #include <sys/param.h>
> -#include <sys/pctrie.h>
> +#include <sys/systm.h>
> +#include <sys/kernel.h>
> +#include <sys/libkern.h>
> +#include <sys/proc.h>
> +#include <sys/vmmeter.h>
> +#include <sys/smr.h>
> +#include <sys/smr_types.h>
>
>
> #include <vm/uma.h>
> #include <vm/vm.h>
> +#include <vm/vm_param.h>
> +#include <vm/vm_object.h>
> #include <vm/vm_page.h>
> #include <vm/vm_radix.h>
>
>
> +#ifdef DDB
> +#include <ddb/ddb.h>
> +#endif
> +
> +/*
> + * These widths should allow the pointers to a node's children to fit within
> + * a single cache line. The extra levels from a narrow width should not be
> + * a problem thanks to path compression.
> + */
> +#ifdef __LP64__
> +#define VM_RADIX_WIDTH 4
> +#else
> +#define VM_RADIX_WIDTH 3
> +#endif
> +
> +#define VM_RADIX_COUNT (1 << VM_RADIX_WIDTH)
> +#define VM_RADIX_MASK (VM_RADIX_COUNT - 1)
> +#define VM_RADIX_LIMIT \
> + (howmany(sizeof(vm_pindex_t) * NBBY, VM_RADIX_WIDTH) - 1)
> +
> +#if VM_RADIX_WIDTH == 3
> +typedef uint8_t rn_popmap_t;
> +#elif VM_RADIX_WIDTH == 4
> +typedef uint16_t rn_popmap_t;
> +#elif VM_RADIX_WIDTH == 5
> +typedef uint32_t rn_popmap_t;
> +#else
> +#error Unsupported width
> +#endif
> +_Static_assert(sizeof(rn_popmap_t) <= sizeof(int),
> + "rn_popmap_t too wide");
> +
> +/* Set of all flag bits stored in node pointers. */
> +#define VM_RADIX_FLAGS (VM_RADIX_ISLEAF)
> +#define VM_RADIX_PAD VM_RADIX_FLAGS
> +
> +enum vm_radix_access { SMR, LOCKED, UNSERIALIZED };
> +
> +struct vm_radix_node;
> +typedef SMR_POINTER(struct vm_radix_node *) smrnode_t;
> +
> +struct vm_radix_node {
> + vm_pindex_t rn_owner; /* Owner of record. */
> + rn_popmap_t rn_popmap; /* Valid children. */
> + uint8_t rn_clev; /* Level * WIDTH. */
> + smrnode_t rn_child[VM_RADIX_COUNT]; /* Child nodes. */
> +};
> +
> static uma_zone_t vm_radix_node_zone;
> -smr_t vm_radix_smr;
> +static smr_t vm_radix_smr;
> +
> +static void vm_radix_node_store(smrnode_t *p, struct vm_radix_node *v,
> + enum vm_radix_access access);
>
>
> -void *
> -vm_radix_node_alloc(struct pctrie *ptree)
> +/*
> + * Map index to an array position for the children of rnode,
> + */
> +static __inline int
> +vm_radix_slot(struct vm_radix_node *rnode, vm_pindex_t index)
> {
> - return (uma_zalloc_smr(vm_radix_node_zone, M_NOWAIT));
> + return ((index >> rnode->rn_clev) & VM_RADIX_MASK);
> }
>
>
> -void
> -vm_radix_node_free(struct pctrie *ptree, void *node)
> +/*
> + * Returns true if index does not belong to the specified rnode. Otherwise,
> + * sets slot value, and returns false.
> + */
> +static __inline bool
> +vm_radix_keybarr(struct vm_radix_node *rnode, vm_pindex_t index, int *slot)
> +{
> + index = (index - rnode->rn_owner) >> rnode->rn_clev;
> + if (index >= VM_RADIX_COUNT)
> + return (true);
> + *slot = index;
> + return (false);
> +}
> +
> +/*
> + * Allocate a radix node.
> + */
> +static struct vm_radix_node *
> +vm_radix_node_get(vm_pindex_t index, vm_pindex_t newind)
> +{
> + struct vm_radix_node *rnode;
> +
> + rnode = uma_zalloc_smr(vm_radix_node_zone, M_NOWAIT);
> + if (rnode == NULL)
> + return (NULL);
> +
> + /*
> + * We want to clear the last child pointer after the final section
> + * has exited so lookup can not return false negatives. It is done
> + * here because it will be cache-cold in the dtor callback.
> + */
> + if (rnode->rn_popmap != 0) {
> + vm_radix_node_store(&rnode->rn_child[ffs(rnode->rn_popmap) - 1],
> + VM_RADIX_NULL, UNSERIALIZED);
> + rnode->rn_popmap = 0;
> + }
> +
> + /*
> + * From the highest-order bit where the indexes differ,
> + * compute the highest level in the trie where they differ. Then,
> + * compute the least index of this subtrie.
> + */
> + KASSERT(index != newind, ("%s: passing the same key value %jx",
> + __func__, (uintmax_t)index));
> + _Static_assert(sizeof(long long) >= sizeof(vm_pindex_t),
> + "vm_pindex_t too wide");
> + _Static_assert(sizeof(vm_pindex_t) * NBBY <=
> + (1 << (sizeof(rnode->rn_clev) * NBBY)), "rn_clev too narrow");
> + rnode->rn_clev = rounddown(flsll(index ^ newind) - 1, VM_RADIX_WIDTH);
> + rnode->rn_owner = VM_RADIX_COUNT;
> + rnode->rn_owner = index & -(rnode->rn_owner << rnode->rn_clev);
> + return (rnode);
> +}
> +
> +/*
> + * Free radix node.
> + */
> +static __inline void
> +vm_radix_node_put(struct vm_radix_node *rnode)
> +{
> +#ifdef INVARIANTS
> + int slot;
> +
> + KASSERT(powerof2(rnode->rn_popmap),
> + ("vm_radix_node_put: rnode %p has too many children %04x", rnode,
> + rnode->rn_popmap));
> + for (slot = 0; slot < VM_RADIX_COUNT; slot++) {
> + if ((rnode->rn_popmap & (1 << slot)) != 0)
> + continue;
> + KASSERT(smr_unserialized_load(&rnode->rn_child[slot], true) ==
> + VM_RADIX_NULL,
> + ("vm_radix_node_put: rnode %p has a child", rnode));
> + }
> +#endif
> + uma_zfree_smr(vm_radix_node_zone, rnode);
> +}
> +
> +/*
> + * Fetch a node pointer from a slot in another node.
> + */
> +static __inline struct vm_radix_node *
> +vm_radix_node_load(smrnode_t *p, enum vm_radix_access access)
> +{
> +
> + switch (access) {
> + case UNSERIALIZED:
> + return (smr_unserialized_load(p, true));
> + case LOCKED:
> + return (smr_serialized_load(p, true));
> + case SMR:
> + return (smr_entered_load(p, vm_radix_smr));
> + }
> + __assert_unreachable();
> +}
> +
> +static __inline void
> +vm_radix_node_store(smrnode_t *p, struct vm_radix_node *v,
> + enum vm_radix_access access)
> +{
> +
> + switch (access) {
> + case UNSERIALIZED:
> + smr_unserialized_store(p, v, true);
> + break;
> + case LOCKED:
> + smr_serialized_store(p, v, true);
> + break;
> + case SMR:
> + panic("vm_radix_node_store: Not supported in smr section.");
> + }
> +}
> +
> +/*
> + * Get the root node for a radix tree.
> + */
> +static __inline struct vm_radix_node *
> +vm_radix_root_load(struct vm_radix *rtree, enum vm_radix_access access)
> +{
> +
> + return (vm_radix_node_load((smrnode_t *)&rtree->rt_root, access));
> +}
> +
> +/*
> + * Set the root node for a radix tree.
> + */
> +static __inline void
> +vm_radix_root_store(struct vm_radix *rtree, struct vm_radix_node *rnode,
> + enum vm_radix_access access)
> +{
> +
> + vm_radix_node_store((smrnode_t *)&rtree->rt_root, rnode, access);
> +}
> +
> +/*
> + * Returns TRUE if the specified radix node is a leaf and FALSE otherwise.
> + */
> +static __inline bool
> +vm_radix_isleaf(struct vm_radix_node *rnode)
> +{
> +
> + return (((uintptr_t)rnode & VM_RADIX_ISLEAF) != 0);
> +}
> +
> +/*
> + * Returns page cast to radix node with leaf bit set.
> + */
> +static __inline struct vm_radix_node *
> +vm_radix_toleaf(vm_page_t page)
> +{
> + return ((struct vm_radix_node *)((uintptr_t)page | VM_RADIX_ISLEAF));
> +}
> +
> +/*
> + * Returns the associated page extracted from rnode.
> + */
> +static __inline vm_page_t
> +vm_radix_topage(struct vm_radix_node *rnode)
> +{
> +
> + return ((vm_page_t)((uintptr_t)rnode & ~VM_RADIX_FLAGS));
> +}
> +
> +/*
> + * Make 'child' a child of 'rnode'.
> + */
> +static __inline void
> +vm_radix_addnode(struct vm_radix_node *rnode, vm_pindex_t index,
> + struct vm_radix_node *child, enum vm_radix_access access)
> +{
> + int slot;
> +
> + slot = vm_radix_slot(rnode, index);
> + vm_radix_node_store(&rnode->rn_child[slot], child, access);
> + rnode->rn_popmap ^= 1 << slot;
> + KASSERT((rnode->rn_popmap & (1 << slot)) != 0,
> + ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode));
> +}
> +
> +/*
> + * Internal helper for vm_radix_reclaim_allnodes().
> + * This function is recursive.
> + */
> +static void
> +vm_radix_reclaim_allnodes_int(struct vm_radix_node *rnode)
> +{
> + struct vm_radix_node *child;
> + int slot;
> +
> + while (rnode->rn_popmap != 0) {
> + slot = ffs(rnode->rn_popmap) - 1;
> + child = vm_radix_node_load(&rnode->rn_child[slot],
> + UNSERIALIZED);
> + KASSERT(child != VM_RADIX_NULL,
> + ("%s: bad popmap slot %d in rnode %p",
> + __func__, slot, rnode));
> + if (!vm_radix_isleaf(child))
> + vm_radix_reclaim_allnodes_int(child);
> + rnode->rn_popmap ^= 1 << slot;
> + vm_radix_node_store(&rnode->rn_child[slot], VM_RADIX_NULL,
> + UNSERIALIZED);
> + }
> + vm_radix_node_put(rnode);
> +}
> +
> +/*
> + * radix node zone initializer.
> + */
> +static int
> +vm_radix_zone_init(void *mem, int size, int flags)
> {
> - uma_zfree_smr(vm_radix_node_zone, node);
> + struct vm_radix_node *rnode;
> +
> + rnode = mem;
> + rnode->rn_popmap = 0;
> + for (int i = 0; i < nitems(rnode->rn_child); i++)
> + vm_radix_node_store(&rnode->rn_child[i], VM_RADIX_NULL,
> + UNSERIALIZED);
> + return (0);
> }
>
>
> #ifndef UMA_MD_SMALL_ALLOC
> @@ -107,14 +383,412 @@ void
> vm_radix_zinit(void)
> {
>
>
> - vm_radix_node_zone = uma_zcreate("RADIX NODE", pctrie_node_size(),
> - NULL, NULL, pctrie_zone_init, NULL,
> - PCTRIE_PAD, UMA_ZONE_VM | UMA_ZONE_SMR);
> + vm_radix_node_zone = uma_zcreate("RADIX NODE",
> + sizeof(struct vm_radix_node), NULL, NULL, vm_radix_zone_init, NULL,
> + VM_RADIX_PAD, UMA_ZONE_VM | UMA_ZONE_SMR);
> vm_radix_smr = uma_zone_get_smr(vm_radix_node_zone);
> }
>
>
> +/*
> + * Inserts the key-value pair into the trie.
> + * Panics if the key already exists.
> + */
> +int
> +vm_radix_insert(struct vm_radix *rtree, vm_page_t page)
> +{
> + vm_pindex_t index, newind;
> + struct vm_radix_node *leaf, *parent, *rnode;
> + smrnode_t *parentp;
> + int slot;
> +
> + index = page->pindex;
> + leaf = vm_radix_toleaf(page);
> +
> + /*
> + * The owner of record for root is not really important because it
> + * will never be used.
> + */
> + rnode = vm_radix_root_load(rtree, LOCKED);
> + parent = NULL;
> + for (;;) {
> + if (vm_radix_isleaf(rnode)) {
> + if (rnode == VM_RADIX_NULL) {
> + if (parent == NULL)
> + rtree->rt_root = leaf;
> + else
> + vm_radix_addnode(parent, index, leaf,
> + LOCKED);
> + return (0);
> + }
> + newind = vm_radix_topage(rnode)->pindex;
> + if (newind == index)
> + panic("%s: key %jx is already present",
> + __func__, (uintmax_t)index);
> + break;
> + }
> + if (vm_radix_keybarr(rnode, index, &slot)) {
> + newind = rnode->rn_owner;
> + break;
> + }
> + parent = rnode;
> + rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
> + }
> +
> + /*
> + * A new node is needed because the right insertion level is reached.
> + * Setup the new intermediate node and add the 2 children: the
> + * new object and the older edge or object.
> + */
> + parentp = (parent != NULL) ? &parent->rn_child[slot]:
> + (smrnode_t *)&rtree->rt_root;
> + parent = vm_radix_node_get(index, newind);
> + if (parent == NULL)
> + return (ENOMEM);
> + /* These writes are not yet visible due to ordering. */
> + vm_radix_addnode(parent, index, leaf, UNSERIALIZED);
> + vm_radix_addnode(parent, newind, rnode, UNSERIALIZED);
> + /* Serializing write to make the above visible. */
> + vm_radix_node_store(parentp, parent, LOCKED);
> + return (0);
> +}
> +
> +/*
> + * Returns the value stored at the index. If the index is not present,
> + * NULL is returned.
> + */
> +static __always_inline vm_page_t
> +_vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index,
> + enum vm_radix_access access)
> +{
> + struct vm_radix_node *rnode;
> + vm_page_t m;
> + int slot;
> +
> + rnode = vm_radix_root_load(rtree, access);
> + for (;;) {
> + if (vm_radix_isleaf(rnode)) {
> + if ((m = vm_radix_topage(rnode)) != NULL &&
> + m->pindex == index)
> + return (m);
> + break;
> + }
> + if (vm_radix_keybarr(rnode, index, &slot))
> + break;
> + rnode = vm_radix_node_load(&rnode->rn_child[slot], access);
> + }
> + return (NULL);
> +}
> +
> +/*
> + * Returns the value stored at the index assuming there is an external lock.
> + *
> + * If the index is not present, NULL is returned.
> + */
> +vm_page_t
> +vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index)
> +{
> +
> + return _vm_radix_lookup(rtree, index, LOCKED);
> +}
> +
> +/*
> + * Returns the value stored at the index without requiring an external lock.
> + *
> + * If the index is not present, NULL is returned.
> + */
> +vm_page_t
> +vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index)
> +{
> + vm_page_t m;
> +
> + smr_enter(vm_radix_smr);
> + m = _vm_radix_lookup(rtree, index, SMR);
> + smr_exit(vm_radix_smr);
> +
> + return (m);
> +}
> +
> +/*
> + * Returns the page with the least pindex that is greater than or equal to the
> + * specified pindex, or NULL if there are no such pages.
> + *
> + * Requires that access be externally synchronized by a lock.
> + */
> +vm_page_t
> +vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index)
> +{
> + struct vm_radix_node *rnode, *succ;
> + vm_page_t m;
> + int slot;
> +
> + /*
> + * Descend the trie as if performing an ordinary lookup for the page
> + * with the specified pindex. However, unlike an ordinary lookup, as we
> + * descend the trie, we use "succ" to remember the last branching-off
> + * point, that is, the interior node under which the page with the least
> + * pindex that is both outside our current path down the trie and more
> + * than the specified pindex resides. (The node's popmap makes it fast
> + * and easy to recognize a branching-off point.) If our ordinary lookup
> + * fails to yield a page with a pindex that is greater than or equal to
> + * the specified pindex, then we will exit this loop and perform a
> + * lookup starting from "succ". If "succ" is not NULL, then that lookup
> + * is guaranteed to succeed.
> + */
> + rnode = vm_radix_root_load(rtree, LOCKED);
> + succ = NULL;
> + for (;;) {
> + if (vm_radix_isleaf(rnode)) {
> + if ((m = vm_radix_topage(rnode)) != NULL &&
> + m->pindex >= index)
> + return (m);
> + break;
> + }
> + if (vm_radix_keybarr(rnode, index, &slot)) {
> + /*
> + * If all pages in this subtree have pindex > index,
> + * then the page in this subtree with the least pindex
> + * is the answer.
> + */
> + if (rnode->rn_owner > index)
> + succ = rnode;
> + break;
> + }
> +
> + /*
> + * Just in case the next search step leads to a subtree of all
> + * pages with pindex < index, check popmap to see if a next
> + * bigger step, to a subtree of all pages with pindex > index,
> + * is available. If so, remember to restart the search here.
> + */
> + if ((rnode->rn_popmap >> slot) > 1)
> + succ = rnode;
> + rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
> + }
> +
> + /*
> + * Restart the search from the last place visited in the subtree that
> + * included some pages with pindex > index, if there was such a place.
> + */
> + if (succ == NULL)
> + return (NULL);
> + if (succ != rnode) {
> + /*
> + * Take a step to the next bigger sibling of the node chosen
> + * last time. In that subtree, all pages have pindex > index.
> + */
> + slot = vm_radix_slot(succ, index) + 1;
> + KASSERT((succ->rn_popmap >> slot) != 0,
> + ("%s: no popmap siblings past slot %d in node %p",
> + __func__, slot, succ));
> + slot += ffs(succ->rn_popmap >> slot) - 1;
> + succ = vm_radix_node_load(&succ->rn_child[slot], LOCKED);
> + }
> +
> + /*
> + * Find the page in the subtree rooted at "succ" with the least pindex.
> + */
> + while (!vm_radix_isleaf(succ)) {
> + KASSERT(succ->rn_popmap != 0,
> + ("%s: no popmap children in node %p", __func__, succ));
> + slot = ffs(succ->rn_popmap) - 1;
> + succ = vm_radix_node_load(&succ->rn_child[slot], LOCKED);
> + }
> + return (vm_radix_topage(succ));
> +}
> +
> +/*
> + * Returns the page with the greatest pindex that is less than or equal to the
> + * specified pindex, or NULL if there are no such pages.
> + *
> + * Requires that access be externally synchronized by a lock.
> + */
> +vm_page_t
> +vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index)
> +{
> + struct vm_radix_node *pred, *rnode;
> + vm_page_t m;
> + int slot;
> +
> + /*
> + * Mirror the implementation of vm_radix_lookup_ge, described above.
> + */
> + rnode = vm_radix_root_load(rtree, LOCKED);
> + pred = NULL;
> + for (;;) {
> + if (vm_radix_isleaf(rnode)) {
> + if ((m = vm_radix_topage(rnode)) != NULL &&
> + m->pindex <= index)
> + return (m);
> + break;
> + }
> + if (vm_radix_keybarr(rnode, index, &slot)) {
> + if (rnode->rn_owner < index)
> + pred = rnode;
> + break;
> + }
> + if ((rnode->rn_popmap & ((1 << slot) - 1)) != 0)
> + pred = rnode;
> + rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
> + }
> + if (pred == NULL)
> + return (NULL);
> + if (pred != rnode) {
> + slot = vm_radix_slot(pred, index);
> + KASSERT((pred->rn_popmap & ((1 << slot) - 1)) != 0,
> + ("%s: no popmap siblings before slot %d in node %p",
> + __func__, slot, pred));
> + slot = fls(pred->rn_popmap & ((1 << slot) - 1)) - 1;
> + pred = vm_radix_node_load(&pred->rn_child[slot], LOCKED);
> + }
> + while (!vm_radix_isleaf(pred)) {
> + KASSERT(pred->rn_popmap != 0,
> + ("%s: no popmap children in node %p", __func__, pred));
> + slot = fls(pred->rn_popmap) - 1;
> + pred = vm_radix_node_load(&pred->rn_child[slot], LOCKED);
> + }
> + return (vm_radix_topage(pred));
> +}
> +
> +/*
> + * Remove the specified index from the trie, and return the value stored at
> + * that index. If the index is not present, return NULL.
> + */
> +vm_page_t
> +vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index)
> +{
> + struct vm_radix_node *child, *parent, *rnode;
> + vm_page_t m;
> + int slot;
> +
> + rnode = NULL;
> + child = vm_radix_root_load(rtree, LOCKED);
> + for (;;) {
> + if (vm_radix_isleaf(child))
> + break;
> + parent = rnode;
> + rnode = child;
> + slot = vm_radix_slot(rnode, index);
> + child = vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
> + }
> + if ((m = vm_radix_topage(child)) == NULL || m->pindex != index)
> + return (NULL);
> + if (rnode == NULL) {
> + vm_radix_root_store(rtree, VM_RADIX_NULL, LOCKED);
> + return (m);
> + }
> + KASSERT((rnode->rn_popmap & (1 << slot)) != 0,
> + ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode));
> + rnode->rn_popmap ^= 1 << slot;
> + vm_radix_node_store(&rnode->rn_child[slot], VM_RADIX_NULL, LOCKED);
> + if (!powerof2(rnode->rn_popmap))
> + return (m);
> + KASSERT(rnode->rn_popmap != 0, ("%s: bad popmap all zeroes", __func__));
> + slot = ffs(rnode->rn_popmap) - 1;
> + child = vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
> + KASSERT(child != VM_RADIX_NULL,
> + ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode));
> + if (parent == NULL)
> + vm_radix_root_store(rtree, child, LOCKED);
> + else {
> + slot = vm_radix_slot(parent, index);
> + KASSERT(rnode ==
> + vm_radix_node_load(&parent->rn_child[slot], LOCKED),
> + ("%s: invalid child value", __func__));
> + vm_radix_node_store(&parent->rn_child[slot], child, LOCKED);
> + }
> + /*
> + * The child is still valid and we can not zero the
> + * pointer until all smr references are gone.
> + */
> + vm_radix_node_put(rnode);
> + return (m);
> +}
> +
> +/*
> + * Remove and free all the nodes from the radix tree.
> + * This function is recursive but there is a tight control on it as the
> + * maximum depth of the tree is fixed.
> + */
> +void
> +vm_radix_reclaim_allnodes(struct vm_radix *rtree)
> +{
> + struct vm_radix_node *root;
> +
> + root = vm_radix_root_load(rtree, LOCKED);
> + if (root == VM_RADIX_NULL)
> + return;
> + vm_radix_root_store(rtree, VM_RADIX_NULL, UNSERIALIZED);
> + if (!vm_radix_isleaf(root))
> + vm_radix_reclaim_allnodes_int(root);
> +}
> +
> +/*
> + * Replace an existing page in the trie with another one.
> + * Panics if there is not an old page in the trie at the new page's index.
> + */
> +vm_page_t
> +vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage)
> +{
> + struct vm_radix_node *leaf, *parent, *rnode;
> + vm_page_t m;
> + vm_pindex_t index;
> + int slot;
> +
> + leaf = vm_radix_toleaf(newpage);
> + index = newpage->pindex;
> + rnode = vm_radix_root_load(rtree, LOCKED);
> + parent = NULL;
> + for (;;) {
> + if (vm_radix_isleaf(rnode)) {
> + if ((m = vm_radix_topage(rnode)) != NULL &&
> + m->pindex == index) {
> + if (parent == NULL)
> + rtree->rt_root = leaf;
> + else
> + vm_radix_node_store(
> + &parent->rn_child[slot], leaf,
> + LOCKED);
> + return (m);
> + }
> + break;
> + }
> + if (vm_radix_keybarr(rnode, index, &slot))
> + break;
> + parent = rnode;
> + rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
> + }
> + panic("%s: original replacing page not found", __func__);
> +}
> +
> void
> vm_radix_wait(void)
> {
> uma_zwait(vm_radix_node_zone);
> }
> +
> +#ifdef DDB
> +/*
> + * Show details about the given radix node.
> + */
> +DB_SHOW_COMMAND(radixnode, db_show_radixnode)
> +{
> + struct vm_radix_node *rnode, *tmp;
> + int slot;
> + rn_popmap_t popmap;
> +
> + if (!have_addr)
> + return;
> + rnode = (struct vm_radix_node *)addr;
> + db_printf("radixnode %p, owner %jx, children popmap %04x, level %u:\n",
> + (void *)rnode, (uintmax_t)rnode->rn_owner, rnode->rn_popmap,
> + rnode->rn_clev / VM_RADIX_WIDTH);
> + for (popmap = rnode->rn_popmap; popmap != 0; popmap ^= 1 << slot) {
> + slot = ffs(popmap) - 1;
> + tmp = vm_radix_node_load(&rnode->rn_child[slot], UNSERIALIZED);
> + db_printf("slot: %d, val: %p, page: %p, clev: %d\n",
> + slot, (void *)tmp,
> + vm_radix_isleaf(tmp) ? vm_radix_topage(tmp) : NULL,
> + rnode->rn_clev / VM_RADIX_WIDTH);
> + }
> +}
> +#endif /* DDB */
> diff --git a/sys/vm/vm_radix.h b/sys/vm/vm_radix.h
> index a332618fc0e6..231edda65102 100644
> --- a/sys/vm/vm_radix.h
> +++ b/sys/vm/vm_radix.h
> @@ -34,113 +34,36 @@
> #include <vm/_vm_radix.h>
>
>
> #ifdef _KERNEL
> -#include <sys/pctrie.h>
> -#include <vm/vm.h>
>
>
> +int vm_radix_insert(struct vm_radix *rtree, vm_page_t page);
> void vm_radix_wait(void);
> +vm_page_t vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index);
> +vm_page_t vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index);
> +vm_page_t vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index);
> +vm_page_t vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index);
> +void vm_radix_reclaim_allnodes(struct vm_radix *rtree);
> +vm_page_t vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index);
> +vm_page_t vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage);
> void vm_radix_zinit(void);
> -void *vm_radix_node_alloc(struct pctrie *ptree);
> -void vm_radix_node_free(struct pctrie *ptree, void *node);
> -extern smr_t vm_radix_smr;
> -
> -static __inline void
> -vm_radix_init(struct vm_radix *rtree)
> -{
> - pctrie_init(&rtree->rt_trie);
> -}
> -
> -static __inline bool
> -vm_radix_is_empty(struct vm_radix *rtree)
> -{
> - return (pctrie_is_empty(&rtree->rt_trie));
> -}
> -
> -PCTRIE_DEFINE_SMR(VM_RADIX, vm_page, pindex, vm_radix_node_alloc, vm_radix_node_free,
> - vm_radix_smr);
>
>
> /*
> - * Inserts the key-value pair into the trie.
> - * Panics if the key already exists.
> + * Each search path in the trie terminates at a leaf, which is a pointer to a
> + * page marked with a set 1-bit. A leaf may be associated with a null pointer
> + * to indicate no page there.
> */
> -static __inline int
> -vm_radix_insert(struct vm_radix *rtree, vm_page_t page)
> -{
> - return (VM_RADIX_PCTRIE_INSERT(&rtree->rt_trie, page));
> -}
> -
> -/*
> - * Returns the value stored at the index assuming there is an external lock.
> - *
> - * If the index is not present, NULL is returned.
> - */
> -static __inline vm_page_t
> -vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index)
> -{
> - return (VM_RADIX_PCTRIE_LOOKUP(&rtree->rt_trie, index));
> -}
> -
> -/*
> - * Returns the value stored at the index without requiring an external lock.
> - *
> - * If the index is not present, NULL is returned.
> - */
> -static __inline vm_page_t
> -vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index)
> -{
> - return (VM_RADIX_PCTRIE_LOOKUP_UNLOCKED(&rtree->rt_trie, index));
> -}
> +#define VM_RADIX_ISLEAF 0x1
> +#define VM_RADIX_NULL (struct vm_radix_node *)VM_RADIX_ISLEAF
>
>
> -/*
> - * Returns the page with the least pindex that is greater than or equal to the
> - * specified pindex, or NULL if there are no such pages.
> - *
> - * Requires that access be externally synchronized by a lock.
> - */
> -static __inline vm_page_t
> -vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index)
> -{
> - return (VM_RADIX_PCTRIE_LOOKUP_GE(&rtree->rt_trie, index));
> -}
> -
> -/*
> - * Returns the page with the greatest pindex that is less than or equal to the
> - * specified pindex, or NULL if there are no such pages.
> - *
> - * Requires that access be externally synchronized by a lock.
> - */
> -static __inline vm_page_t
> -vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index)
> -{
> - return (VM_RADIX_PCTRIE_LOOKUP_LE(&rtree->rt_trie, index));
> -}
> -
> -/*
> - * Remove the specified index from the trie, and return the value stored at
> - * that index. If the index is not present, return NULL.
> - */
> -static __inline vm_page_t
> -vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index)
> -{
> - return (VM_RADIX_PCTRIE_REMOVE_LOOKUP(&rtree->rt_trie, index));
> -}
> -
> -/*
> - * Remove and free all the nodes from the radix tree.
> - */
> static __inline void
> -vm_radix_reclaim_allnodes(struct vm_radix *rtree)
> +vm_radix_init(struct vm_radix *rtree)
> {
> - VM_RADIX_PCTRIE_RECLAIM(&rtree->rt_trie);
> + rtree->rt_root = VM_RADIX_NULL;
> }
>
>
> -/*
> - * Replace an existing page in the trie with another one.
> - * Panics if there is not an old page in the trie at the new page's index.
> - */
> -static __inline vm_page_t
> -vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage)
> +static __inline bool
> +vm_radix_is_empty(struct vm_radix *rtree)
> {
> - return (VM_RADIX_PCTRIE_REPLACE(&rtree->rt_trie, newpage));
> + return (rtree->rt_root == VM_RADIX_NULL);
> }
>
>
> #endif /* _KERNEL */
>
>
>
>

From nobody Mon Sep 11 17:36:07 2023
X-Original-To: dev-commits-src-main@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 4Rkv5S2h0Dz4sbDS;
	Mon, 11 Sep 2023 17:36:12 +0000 (UTC)
	(envelope-from rpokala@freebsd.org)
Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83])
	(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 "smtp.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4Rkv5S2GDSz4WcR;
	Mon, 11 Sep 2023 17:36:12 +0000 (UTC)
	(envelope-from rpokala@freebsd.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694453772;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=TAjj2a1OO0QwT00e0bA5DGmxkYHNFXwg77C8t/yUtuc=;
	b=iiWaLvgEooI2u2gTKfno8PX9+ZppSjyViVuRTPIwub9hTz3LG2Uo91/gCLajC9TvPCDHbj
	qnPoUByQSRsKJgBK99BbBE3TD3WHmBQQmtW63O2dWvvEAIw8NfHE7EUJHtGML5VJ83vW7R
	v4064SN3qmwYQ2zydyefaruynuMSIZSh8DGXivM4Ef+vRQfQYy8GC7S2ox7556Fz9/BTt2
	WOxRNLN7qkUifYw4KTBGlVxO4SCLggXqxSVgNVn+GFz3dmk9maawPPreYpyDzTjzK9nLzy
	Gz5zpFwsrD+kL0XCd5UgUbv8U6wbn5/aTRQkwmoQXH/Jd0hrM6OMJ7SdRqJMtQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694453772; a=rsa-sha256; cv=none;
	b=D8qNMmFRdBPt+iBvHqD3DP+8sCssvwJEBo5+tS2+sDp+KEx7I3Azd2CX3LkFnzswuAXOuy
	q7PCTSHrDgeGWqbtNjXSfVzd/MLjGD/ey5OcZJYvw3k2Rp6rBh2Fq9pkK8kP62rnIttqez
	RWJCO4s/KS6bzPwEYX+WtQaDRyJLtiJba9GTzslNK4t0jFXlAbhttk/uLNyEVld/ff8n0e
	3kd5gnurWkxiJsqB6dO9RKO+JQ9hYDMWJCTm4ACzfmJ4xSAJGwnwPu5U4kzPXcWK35z+kC
	6SqBJRdZI0phQVRWPbVhCoR9/0c0uhl+BcSvCCqtxE9Fi2Ych6pChoS9wFgvMA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694453772;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=TAjj2a1OO0QwT00e0bA5DGmxkYHNFXwg77C8t/yUtuc=;
	b=DUpEvqSfyLVNUjssdM7UrS1kiuaesP/Pc7l3DOFQLWrWWHnN7HOgdnL/q76xMw6hjAxDMP
	JA7ce7PBPG08Av3m3k6LEMUKss4XKNFuir/i5q5OGnJSri49wHEUA3PoK5n2NX3fbecrBn
	Oh6dgG46AE2YT0Ba/C3gXH3cg/JaDgCzlyXnM+uBhvRaQCz7Mpg3GyVFiOjzjOKlNxQzRR
	tjZKOUt/B74MDHQDVRfhevZCrmNug4EIueakSN2Txo8ITfvSScHC34I6STMX8jcgzME3he
	DnxFZbNVzQzxnDPCHlU32nhapZLJ5S5/WBlh7QbGdnO45g4ig8vGOazs20s2Pw==
Received: from [192.168.1.12] (c-98-248-120-44.hsd1.ca.comcast.net [98.248.120.44])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(Client did not present a certificate)
	(Authenticated sender: rpokala)
	by smtp.freebsd.org (Postfix) with ESMTPSA id 4Rkv5R4TzBz1785;
	Mon, 11 Sep 2023 17:36:11 +0000 (UTC)
	(envelope-from rpokala@freebsd.org)
User-Agent: Microsoft-MacOutlook/16.76.23082700
Date: Mon, 11 Sep 2023 10:36:07 -0700
Subject: Re: 6cec93da46c4 - main - Revert "radix_trie: have vm_radix use
 pctrie code"
From: Ravi Pokala <rpokala@freebsd.org>
To: Doug Moore <unkadoug@gmail.com>,
	<src-committers@FreeBSD.org>,
	<dev-commits-src-all@FreeBSD.org>,
	<dev-commits-src-main@FreeBSD.org>
Message-ID: <4D14E962-56B8-4C06-9252-0BEEDFA465AE@panasas.com>
Thread-Topic: 6cec93da46c4 - main - Revert "radix_trie: have vm_radix use
 pctrie code"
References: <202309110835.38B8Zl9t059626@gitrepo.freebsd.org>
 <25DD750F-38F2-4151-9E34-350844CE705C@panasas.com>
 <835d7376-4289-9ec5-415f-e94ea2c9b6d2@freebsd.org>
In-Reply-To: <835d7376-4289-9ec5-415f-e94ea2c9b6d2@freebsd.org>
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
Mime-version: 1.0
Content-type: text/plain;
	charset="UTF-8"
Content-transfer-encoding: quoted-printable

Thanks!

-Ravi (rpokala@)

=EF=BB=BF-----Original Message-----
From: Doug Moore <unkadoug@gmail.com <mailto:unkadoug@gmail.com>>
Date: Monday, September 11, 2023 at 10:26
To: Ravi Pokala <rpokala@freebsd.org <mailto:rpokala@freebsd.org>>, <src-co=
mmitters@FreeBSD.org <mailto:src-committers@FreeBSD.org>>, <dev-commits-src-=
all@FreeBSD.org <mailto:dev-commits-src-all@FreeBSD.org>>, <dev-commits-src-=
main@FreeBSD.org <mailto:dev-commits-src-main@FreeBSD.org>>
Subject: Re: 6cec93da46c4 - main - Revert "radix_trie: have vm_radix use pc=
trie code"


Because jenkins reported failures on most of the non-amd64=20
architectures, and leaving 'main' broken while I figured out the problem=20
was not a sensible choice.


Doug


On 9/11/23 12:21, Ravi Pokala wrote:
> Hi Doug,
>
>> Revert "radix_trie: have vm_radix use pctrie code"
> That's "what", not "why". Why are you reverting the change?
>
> Thanks,
>
> Ravi (rpokala@)
>
> =EF=BB=BF-----Original Message-----
> From: <owner-src-committers@freebsd.org <mailto:owner-src-committers@free=
bsd.org> <mailto:owner-src-committers@freebsd.org <mailto:owner-src-committe=
rs@freebsd.org>>> on behalf of Doug Moore <dougm@FreeBSD.org <mailto:dougm@F=
reeBSD.org> <mailto:dougm@FreeBSD.org <mailto:dougm@FreeBSD.org>>>
> Date: Monday, September 11, 2023 at 01:35
> To: <src-committers@FreeBSD.org <mailto:src-committers@FreeBSD.org> <mail=
to:src-committers@FreeBSD.org <mailto:src-committers@FreeBSD.org>>>, <dev-co=
mmits-src-all@FreeBSD.org <mailto:dev-commits-src-all@FreeBSD.org> <mailto:d=
ev-commits-src-all@FreeBSD.org <mailto:dev-commits-src-all@FreeBSD.org>>>, <=
dev-commits-src-main@FreeBSD.org <mailto:dev-commits-src-main@FreeBSD.org> <=
mailto:dev-commits-src-main@FreeBSD.org <mailto:dev-commits-src-main@FreeBSD=
.org>>>
> Subject: git: 6cec93da46c4 - main - Revert "radix_trie: have vm_radix use=
 pctrie code"
>
>
> The branch main has been updated by dougm:
>
>
> URL: https://cgit.FreeBSD.org/src/commit/?id=3D6cec93da46c4a91a042b0be48884=
4052c0f8985a <https://cgit.FreeBSD.org/src/commit/?id=3D6cec93da46c4a91a042b0b=
e488844052c0f8985a> <https://cgit.FreeBSD.org/src/commit/?id=3D6cec93da46c4a91=
a042b0be488844052c0f8985a> <https://cgit.FreeBSD.org/src/commit/?id=3D6cec93da=
46c4a91a042b0be488844052c0f8985a&gt;>
>
>
> commit 6cec93da46c4a91a042b0be488844052c0f8985a
> Author: Doug Moore <dougm@FreeBSD.org <mailto:dougm@FreeBSD.org> <mailto:=
dougm@FreeBSD.org <mailto:dougm@FreeBSD.org>>>
> AuthorDate: 2023-09-11 08:34:46 +0000
> Commit: Doug Moore <dougm@FreeBSD.org <mailto:dougm@FreeBSD.org> <mailto:=
dougm@FreeBSD.org <mailto:dougm@FreeBSD.org>>>
> CommitDate: 2023-09-11 08:35:36 +0000
>
>
> Revert "radix_trie: have vm_radix use pctrie code"
>
>
> This reverts commit a494d30465f21e8cb014a5c788a43001397325d7.
> ---
> sys/vm/_vm_radix.h | 9 +-
> sys/vm/vm_radix.c | 696 +++++++++++++++++++++++++++++++++++++++++++++++++=
+++-
> sys/vm/vm_radix.h | 113 ++-------
> 3 files changed, 709 insertions(+), 109 deletions(-)
>
>
> diff --git a/sys/vm/_vm_radix.h b/sys/vm/_vm_radix.h
> index 2d9b05c7b52a..01eb25a9dccf 100644
> --- a/sys/vm/_vm_radix.h
> +++ b/sys/vm/_vm_radix.h
> @@ -31,13 +31,16 @@
> #ifndef __VM_RADIX_H_
> #define __VM_RADIX_H_
>
>
> -#include <sys/_pctrie.h>
> +/*
> + * Radix tree node.
> + */
> +struct vm_radix_node;
>
>
> /*
> - * Radix tree
> + * Radix tree root.
> */
> struct vm_radix {
> - struct pctrie rt_trie;
> + struct vm_radix_node *rt_root;
> };
>
>
> #endif /* !__VM_RADIX_H_ */
> diff --git a/sys/vm/vm_radix.c b/sys/vm/vm_radix.c
> index b8c693eca66f..768a56ed76f7 100644
> --- a/sys/vm/vm_radix.c
> +++ b/sys/vm/vm_radix.c
> @@ -54,26 +54,302 @@
> #include "opt_ddb.h"
>
>
> #include <sys/param.h>
> -#include <sys/pctrie.h>
> +#include <sys/systm.h>
> +#include <sys/kernel.h>
> +#include <sys/libkern.h>
> +#include <sys/proc.h>
> +#include <sys/vmmeter.h>
> +#include <sys/smr.h>
> +#include <sys/smr_types.h>
>
>
> #include <vm/uma.h>
> #include <vm/vm.h>
> +#include <vm/vm_param.h>
> +#include <vm/vm_object.h>
> #include <vm/vm_page.h>
> #include <vm/vm_radix.h>
>
>
> +#ifdef DDB
> +#include <ddb/ddb.h>
> +#endif
> +
> +/*
> + * These widths should allow the pointers to a node's children to fit wi=
thin
> + * a single cache line. The extra levels from a narrow width should not =
be
> + * a problem thanks to path compression.
> + */
> +#ifdef __LP64__
> +#define VM_RADIX_WIDTH 4
> +#else
> +#define VM_RADIX_WIDTH 3
> +#endif
> +
> +#define VM_RADIX_COUNT (1 << VM_RADIX_WIDTH)
> +#define VM_RADIX_MASK (VM_RADIX_COUNT - 1)
> +#define VM_RADIX_LIMIT \
> + (howmany(sizeof(vm_pindex_t) * NBBY, VM_RADIX_WIDTH) - 1)
> +
> +#if VM_RADIX_WIDTH =3D=3D 3
> +typedef uint8_t rn_popmap_t;
> +#elif VM_RADIX_WIDTH =3D=3D 4
> +typedef uint16_t rn_popmap_t;
> +#elif VM_RADIX_WIDTH =3D=3D 5
> +typedef uint32_t rn_popmap_t;
> +#else
> +#error Unsupported width
> +#endif
> +_Static_assert(sizeof(rn_popmap_t) <=3D sizeof(int),
> + "rn_popmap_t too wide");
> +
> +/* Set of all flag bits stored in node pointers. */
> +#define VM_RADIX_FLAGS (VM_RADIX_ISLEAF)
> +#define VM_RADIX_PAD VM_RADIX_FLAGS
> +
> +enum vm_radix_access { SMR, LOCKED, UNSERIALIZED };
> +
> +struct vm_radix_node;
> +typedef SMR_POINTER(struct vm_radix_node *) smrnode_t;
> +
> +struct vm_radix_node {
> + vm_pindex_t rn_owner; /* Owner of record. */
> + rn_popmap_t rn_popmap; /* Valid children. */
> + uint8_t rn_clev; /* Level * WIDTH. */
> + smrnode_t rn_child[VM_RADIX_COUNT]; /* Child nodes. */
> +};
> +
> static uma_zone_t vm_radix_node_zone;
> -smr_t vm_radix_smr;
> +static smr_t vm_radix_smr;
> +
> +static void vm_radix_node_store(smrnode_t *p, struct vm_radix_node *v,
> + enum vm_radix_access access);
>
>
> -void *
> -vm_radix_node_alloc(struct pctrie *ptree)
> +/*
> + * Map index to an array position for the children of rnode,
> + */
> +static __inline int
> +vm_radix_slot(struct vm_radix_node *rnode, vm_pindex_t index)
> {
> - return (uma_zalloc_smr(vm_radix_node_zone, M_NOWAIT));
> + return ((index >> rnode->rn_clev) & VM_RADIX_MASK);
> }
>
>
> -void
> -vm_radix_node_free(struct pctrie *ptree, void *node)
> +/*
> + * Returns true if index does not belong to the specified rnode. Otherwi=
se,
> + * sets slot value, and returns false.
> + */
> +static __inline bool
> +vm_radix_keybarr(struct vm_radix_node *rnode, vm_pindex_t index, int *sl=
ot)
> +{
> + index =3D (index - rnode->rn_owner) >> rnode->rn_clev;
> + if (index >=3D VM_RADIX_COUNT)
> + return (true);
> + *slot =3D index;
> + return (false);
> +}
> +
> +/*
> + * Allocate a radix node.
> + */
> +static struct vm_radix_node *
> +vm_radix_node_get(vm_pindex_t index, vm_pindex_t newind)
> +{
> + struct vm_radix_node *rnode;
> +
> + rnode =3D uma_zalloc_smr(vm_radix_node_zone, M_NOWAIT);
> + if (rnode =3D=3D NULL)
> + return (NULL);
> +
> + /*
> + * We want to clear the last child pointer after the final section
> + * has exited so lookup can not return false negatives. It is done
> + * here because it will be cache-cold in the dtor callback.
> + */
> + if (rnode->rn_popmap !=3D 0) {
> + vm_radix_node_store(&rnode->rn_child[ffs(rnode->rn_popmap) - 1],
> + VM_RADIX_NULL, UNSERIALIZED);
> + rnode->rn_popmap =3D 0;
> + }
> +
> + /*
> + * From the highest-order bit where the indexes differ,
> + * compute the highest level in the trie where they differ. Then,
> + * compute the least index of this subtrie.
> + */
> + KASSERT(index !=3D newind, ("%s: passing the same key value %jx",
> + __func__, (uintmax_t)index));
> + _Static_assert(sizeof(long long) >=3D sizeof(vm_pindex_t),
> + "vm_pindex_t too wide");
> + _Static_assert(sizeof(vm_pindex_t) * NBBY <=3D
> + (1 << (sizeof(rnode->rn_clev) * NBBY)), "rn_clev too narrow");
> + rnode->rn_clev =3D rounddown(flsll(index ^ newind) - 1, VM_RADIX_WIDTH);
> + rnode->rn_owner =3D VM_RADIX_COUNT;
> + rnode->rn_owner =3D index & -(rnode->rn_owner << rnode->rn_clev);
> + return (rnode);
> +}
> +
> +/*
> + * Free radix node.
> + */
> +static __inline void
> +vm_radix_node_put(struct vm_radix_node *rnode)
> +{
> +#ifdef INVARIANTS
> + int slot;
> +
> + KASSERT(powerof2(rnode->rn_popmap),
> + ("vm_radix_node_put: rnode %p has too many children %04x", rnode,
> + rnode->rn_popmap));
> + for (slot =3D 0; slot < VM_RADIX_COUNT; slot++) {
> + if ((rnode->rn_popmap & (1 << slot)) !=3D 0)
> + continue;
> + KASSERT(smr_unserialized_load(&rnode->rn_child[slot], true) =3D=3D
> + VM_RADIX_NULL,
> + ("vm_radix_node_put: rnode %p has a child", rnode));
> + }
> +#endif
> + uma_zfree_smr(vm_radix_node_zone, rnode);
> +}
> +
> +/*
> + * Fetch a node pointer from a slot in another node.
> + */
> +static __inline struct vm_radix_node *
> +vm_radix_node_load(smrnode_t *p, enum vm_radix_access access)
> +{
> +
> + switch (access) {
> + case UNSERIALIZED:
> + return (smr_unserialized_load(p, true));
> + case LOCKED:
> + return (smr_serialized_load(p, true));
> + case SMR:
> + return (smr_entered_load(p, vm_radix_smr));
> + }
> + __assert_unreachable();
> +}
> +
> +static __inline void
> +vm_radix_node_store(smrnode_t *p, struct vm_radix_node *v,
> + enum vm_radix_access access)
> +{
> +
> + switch (access) {
> + case UNSERIALIZED:
> + smr_unserialized_store(p, v, true);
> + break;
> + case LOCKED:
> + smr_serialized_store(p, v, true);
> + break;
> + case SMR:
> + panic("vm_radix_node_store: Not supported in smr section.");
> + }
> +}
> +
> +/*
> + * Get the root node for a radix tree.
> + */
> +static __inline struct vm_radix_node *
> +vm_radix_root_load(struct vm_radix *rtree, enum vm_radix_access access)
> +{
> +
> + return (vm_radix_node_load((smrnode_t *)&rtree->rt_root, access));
> +}
> +
> +/*
> + * Set the root node for a radix tree.
> + */
> +static __inline void
> +vm_radix_root_store(struct vm_radix *rtree, struct vm_radix_node *rnode,
> + enum vm_radix_access access)
> +{
> +
> + vm_radix_node_store((smrnode_t *)&rtree->rt_root, rnode, access);
> +}
> +
> +/*
> + * Returns TRUE if the specified radix node is a leaf and FALSE otherwis=
e.
> + */
> +static __inline bool
> +vm_radix_isleaf(struct vm_radix_node *rnode)
> +{
> +
> + return (((uintptr_t)rnode & VM_RADIX_ISLEAF) !=3D 0);
> +}
> +
> +/*
> + * Returns page cast to radix node with leaf bit set.
> + */
> +static __inline struct vm_radix_node *
> +vm_radix_toleaf(vm_page_t page)
> +{
> + return ((struct vm_radix_node *)((uintptr_t)page | VM_RADIX_ISLEAF));
> +}
> +
> +/*
> + * Returns the associated page extracted from rnode.
> + */
> +static __inline vm_page_t
> +vm_radix_topage(struct vm_radix_node *rnode)
> +{
> +
> + return ((vm_page_t)((uintptr_t)rnode & ~VM_RADIX_FLAGS));
> +}
> +
> +/*
> + * Make 'child' a child of 'rnode'.
> + */
> +static __inline void
> +vm_radix_addnode(struct vm_radix_node *rnode, vm_pindex_t index,
> + struct vm_radix_node *child, enum vm_radix_access access)
> +{
> + int slot;
> +
> + slot =3D vm_radix_slot(rnode, index);
> + vm_radix_node_store(&rnode->rn_child[slot], child, access);
> + rnode->rn_popmap ^=3D 1 << slot;
> + KASSERT((rnode->rn_popmap & (1 << slot)) !=3D 0,
> + ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode));
> +}
> +
> +/*
> + * Internal helper for vm_radix_reclaim_allnodes().
> + * This function is recursive.
> + */
> +static void
> +vm_radix_reclaim_allnodes_int(struct vm_radix_node *rnode)
> +{
> + struct vm_radix_node *child;
> + int slot;
> +
> + while (rnode->rn_popmap !=3D 0) {
> + slot =3D ffs(rnode->rn_popmap) - 1;
> + child =3D vm_radix_node_load(&rnode->rn_child[slot],
> + UNSERIALIZED);
> + KASSERT(child !=3D VM_RADIX_NULL,
> + ("%s: bad popmap slot %d in rnode %p",
> + __func__, slot, rnode));
> + if (!vm_radix_isleaf(child))
> + vm_radix_reclaim_allnodes_int(child);
> + rnode->rn_popmap ^=3D 1 << slot;
> + vm_radix_node_store(&rnode->rn_child[slot], VM_RADIX_NULL,
> + UNSERIALIZED);
> + }
> + vm_radix_node_put(rnode);
> +}
> +
> +/*
> + * radix node zone initializer.
> + */
> +static int
> +vm_radix_zone_init(void *mem, int size, int flags)
> {
> - uma_zfree_smr(vm_radix_node_zone, node);
> + struct vm_radix_node *rnode;
> +
> + rnode =3D mem;
> + rnode->rn_popmap =3D 0;
> + for (int i =3D 0; i < nitems(rnode->rn_child); i++)
> + vm_radix_node_store(&rnode->rn_child[i], VM_RADIX_NULL,
> + UNSERIALIZED);
> + return (0);
> }
>
>
> #ifndef UMA_MD_SMALL_ALLOC
> @@ -107,14 +383,412 @@ void
> vm_radix_zinit(void)
> {
>
>
> - vm_radix_node_zone =3D uma_zcreate("RADIX NODE", pctrie_node_size(),
> - NULL, NULL, pctrie_zone_init, NULL,
> - PCTRIE_PAD, UMA_ZONE_VM | UMA_ZONE_SMR);
> + vm_radix_node_zone =3D uma_zcreate("RADIX NODE",
> + sizeof(struct vm_radix_node), NULL, NULL, vm_radix_zone_init, NULL,
> + VM_RADIX_PAD, UMA_ZONE_VM | UMA_ZONE_SMR);
> vm_radix_smr =3D uma_zone_get_smr(vm_radix_node_zone);
> }
>
>
> +/*
> + * Inserts the key-value pair into the trie.
> + * Panics if the key already exists.
> + */
> +int
> +vm_radix_insert(struct vm_radix *rtree, vm_page_t page)
> +{
> + vm_pindex_t index, newind;
> + struct vm_radix_node *leaf, *parent, *rnode;
> + smrnode_t *parentp;
> + int slot;
> +
> + index =3D page->pindex;
> + leaf =3D vm_radix_toleaf(page);
> +
> + /*
> + * The owner of record for root is not really important because it
> + * will never be used.
> + */
> + rnode =3D vm_radix_root_load(rtree, LOCKED);
> + parent =3D NULL;
> + for (;;) {
> + if (vm_radix_isleaf(rnode)) {
> + if (rnode =3D=3D VM_RADIX_NULL) {
> + if (parent =3D=3D NULL)
> + rtree->rt_root =3D leaf;
> + else
> + vm_radix_addnode(parent, index, leaf,
> + LOCKED);
> + return (0);
> + }
> + newind =3D vm_radix_topage(rnode)->pindex;
> + if (newind =3D=3D index)
> + panic("%s: key %jx is already present",
> + __func__, (uintmax_t)index);
> + break;
> + }
> + if (vm_radix_keybarr(rnode, index, &slot)) {
> + newind =3D rnode->rn_owner;
> + break;
> + }
> + parent =3D rnode;
> + rnode =3D vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
> + }
> +
> + /*
> + * A new node is needed because the right insertion level is reached.
> + * Setup the new intermediate node and add the 2 children: the
> + * new object and the older edge or object.
> + */
> + parentp =3D (parent !=3D NULL) ? &parent->rn_child[slot]:
> + (smrnode_t *)&rtree->rt_root;
> + parent =3D vm_radix_node_get(index, newind);
> + if (parent =3D=3D NULL)
> + return (ENOMEM);
> + /* These writes are not yet visible due to ordering. */
> + vm_radix_addnode(parent, index, leaf, UNSERIALIZED);
> + vm_radix_addnode(parent, newind, rnode, UNSERIALIZED);
> + /* Serializing write to make the above visible. */
> + vm_radix_node_store(parentp, parent, LOCKED);
> + return (0);
> +}
> +
> +/*
> + * Returns the value stored at the index. If the index is not present,
> + * NULL is returned.
> + */
> +static __always_inline vm_page_t
> +_vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index,
> + enum vm_radix_access access)
> +{
> + struct vm_radix_node *rnode;
> + vm_page_t m;
> + int slot;
> +
> + rnode =3D vm_radix_root_load(rtree, access);
> + for (;;) {
> + if (vm_radix_isleaf(rnode)) {
> + if ((m =3D vm_radix_topage(rnode)) !=3D NULL &&
> + m->pindex =3D=3D index)
> + return (m);
> + break;
> + }
> + if (vm_radix_keybarr(rnode, index, &slot))
> + break;
> + rnode =3D vm_radix_node_load(&rnode->rn_child[slot], access);
> + }
> + return (NULL);
> +}
> +
> +/*
> + * Returns the value stored at the index assuming there is an external l=
ock.
> + *
> + * If the index is not present, NULL is returned.
> + */
> +vm_page_t
> +vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index)
> +{
> +
> + return _vm_radix_lookup(rtree, index, LOCKED);
> +}
> +
> +/*
> + * Returns the value stored at the index without requiring an external l=
ock.
> + *
> + * If the index is not present, NULL is returned.
> + */
> +vm_page_t
> +vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index)
> +{
> + vm_page_t m;
> +
> + smr_enter(vm_radix_smr);
> + m =3D _vm_radix_lookup(rtree, index, SMR);
> + smr_exit(vm_radix_smr);
> +
> + return (m);
> +}
> +
> +/*
> + * Returns the page with the least pindex that is greater than or equal =
to the
> + * specified pindex, or NULL if there are no such pages.
> + *
> + * Requires that access be externally synchronized by a lock.
> + */
> +vm_page_t
> +vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index)
> +{
> + struct vm_radix_node *rnode, *succ;
> + vm_page_t m;
> + int slot;
> +
> + /*
> + * Descend the trie as if performing an ordinary lookup for the page
> + * with the specified pindex. However, unlike an ordinary lookup, as we
> + * descend the trie, we use "succ" to remember the last branching-off
> + * point, that is, the interior node under which the page with the least
> + * pindex that is both outside our current path down the trie and more
> + * than the specified pindex resides. (The node's popmap makes it fast
> + * and easy to recognize a branching-off point.) If our ordinary lookup
> + * fails to yield a page with a pindex that is greater than or equal to
> + * the specified pindex, then we will exit this loop and perform a
> + * lookup starting from "succ". If "succ" is not NULL, then that lookup
> + * is guaranteed to succeed.
> + */
> + rnode =3D vm_radix_root_load(rtree, LOCKED);
> + succ =3D NULL;
> + for (;;) {
> + if (vm_radix_isleaf(rnode)) {
> + if ((m =3D vm_radix_topage(rnode)) !=3D NULL &&
> + m->pindex >=3D index)
> + return (m);
> + break;
> + }
> + if (vm_radix_keybarr(rnode, index, &slot)) {
> + /*
> + * If all pages in this subtree have pindex > index,
> + * then the page in this subtree with the least pindex
> + * is the answer.
> + */
> + if (rnode->rn_owner > index)
> + succ =3D rnode;
> + break;
> + }
> +
> + /*
> + * Just in case the next search step leads to a subtree of all
> + * pages with pindex < index, check popmap to see if a next
> + * bigger step, to a subtree of all pages with pindex > index,
> + * is available. If so, remember to restart the search here.
> + */
> + if ((rnode->rn_popmap >> slot) > 1)
> + succ =3D rnode;
> + rnode =3D vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
> + }
> +
> + /*
> + * Restart the search from the last place visited in the subtree that
> + * included some pages with pindex > index, if there was such a place.
> + */
> + if (succ =3D=3D NULL)
> + return (NULL);
> + if (succ !=3D rnode) {
> + /*
> + * Take a step to the next bigger sibling of the node chosen
> + * last time. In that subtree, all pages have pindex > index.
> + */
> + slot =3D vm_radix_slot(succ, index) + 1;
> + KASSERT((succ->rn_popmap >> slot) !=3D 0,
> + ("%s: no popmap siblings past slot %d in node %p",
> + __func__, slot, succ));
> + slot +=3D ffs(succ->rn_popmap >> slot) - 1;
> + succ =3D vm_radix_node_load(&succ->rn_child[slot], LOCKED);
> + }
> +
> + /*
> + * Find the page in the subtree rooted at "succ" with the least pindex.
> + */
> + while (!vm_radix_isleaf(succ)) {
> + KASSERT(succ->rn_popmap !=3D 0,
> + ("%s: no popmap children in node %p", __func__, succ));
> + slot =3D ffs(succ->rn_popmap) - 1;
> + succ =3D vm_radix_node_load(&succ->rn_child[slot], LOCKED);
> + }
> + return (vm_radix_topage(succ));
> +}
> +
> +/*
> + * Returns the page with the greatest pindex that is less than or equal =
to the
> + * specified pindex, or NULL if there are no such pages.
> + *
> + * Requires that access be externally synchronized by a lock.
> + */
> +vm_page_t
> +vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index)
> +{
> + struct vm_radix_node *pred, *rnode;
> + vm_page_t m;
> + int slot;
> +
> + /*
> + * Mirror the implementation of vm_radix_lookup_ge, described above.
> + */
> + rnode =3D vm_radix_root_load(rtree, LOCKED);
> + pred =3D NULL;
> + for (;;) {
> + if (vm_radix_isleaf(rnode)) {
> + if ((m =3D vm_radix_topage(rnode)) !=3D NULL &&
> + m->pindex <=3D index)
> + return (m);
> + break;
> + }
> + if (vm_radix_keybarr(rnode, index, &slot)) {
> + if (rnode->rn_owner < index)
> + pred =3D rnode;
> + break;
> + }
> + if ((rnode->rn_popmap & ((1 << slot) - 1)) !=3D 0)
> + pred =3D rnode;
> + rnode =3D vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
> + }
> + if (pred =3D=3D NULL)
> + return (NULL);
> + if (pred !=3D rnode) {
> + slot =3D vm_radix_slot(pred, index);
> + KASSERT((pred->rn_popmap & ((1 << slot) - 1)) !=3D 0,
> + ("%s: no popmap siblings before slot %d in node %p",
> + __func__, slot, pred));
> + slot =3D fls(pred->rn_popmap & ((1 << slot) - 1)) - 1;
> + pred =3D vm_radix_node_load(&pred->rn_child[slot], LOCKED);
> + }
> + while (!vm_radix_isleaf(pred)) {
> + KASSERT(pred->rn_popmap !=3D 0,
> + ("%s: no popmap children in node %p", __func__, pred));
> + slot =3D fls(pred->rn_popmap) - 1;
> + pred =3D vm_radix_node_load(&pred->rn_child[slot], LOCKED);
> + }
> + return (vm_radix_topage(pred));
> +}
> +
> +/*
> + * Remove the specified index from the trie, and return the value stored=
 at
> + * that index. If the index is not present, return NULL.
> + */
> +vm_page_t
> +vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index)
> +{
> + struct vm_radix_node *child, *parent, *rnode;
> + vm_page_t m;
> + int slot;
> +
> + rnode =3D NULL;
> + child =3D vm_radix_root_load(rtree, LOCKED);
> + for (;;) {
> + if (vm_radix_isleaf(child))
> + break;
> + parent =3D rnode;
> + rnode =3D child;
> + slot =3D vm_radix_slot(rnode, index);
> + child =3D vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
> + }
> + if ((m =3D vm_radix_topage(child)) =3D=3D NULL || m->pindex !=3D index)
> + return (NULL);
> + if (rnode =3D=3D NULL) {
> + vm_radix_root_store(rtree, VM_RADIX_NULL, LOCKED);
> + return (m);
> + }
> + KASSERT((rnode->rn_popmap & (1 << slot)) !=3D 0,
> + ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode));
> + rnode->rn_popmap ^=3D 1 << slot;
> + vm_radix_node_store(&rnode->rn_child[slot], VM_RADIX_NULL, LOCKED);
> + if (!powerof2(rnode->rn_popmap))
> + return (m);
> + KASSERT(rnode->rn_popmap !=3D 0, ("%s: bad popmap all zeroes", __func__))=
;
> + slot =3D ffs(rnode->rn_popmap) - 1;
> + child =3D vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
> + KASSERT(child !=3D VM_RADIX_NULL,
> + ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode));
> + if (parent =3D=3D NULL)
> + vm_radix_root_store(rtree, child, LOCKED);
> + else {
> + slot =3D vm_radix_slot(parent, index);
> + KASSERT(rnode =3D=3D
> + vm_radix_node_load(&parent->rn_child[slot], LOCKED),
> + ("%s: invalid child value", __func__));
> + vm_radix_node_store(&parent->rn_child[slot], child, LOCKED);
> + }
> + /*
> + * The child is still valid and we can not zero the
> + * pointer until all smr references are gone.
> + */
> + vm_radix_node_put(rnode);
> + return (m);
> +}
> +
> +/*
> + * Remove and free all the nodes from the radix tree.
> + * This function is recursive but there is a tight control on it as the
> + * maximum depth of the tree is fixed.
> + */
> +void
> +vm_radix_reclaim_allnodes(struct vm_radix *rtree)
> +{
> + struct vm_radix_node *root;
> +
> + root =3D vm_radix_root_load(rtree, LOCKED);
> + if (root =3D=3D VM_RADIX_NULL)
> + return;
> + vm_radix_root_store(rtree, VM_RADIX_NULL, UNSERIALIZED);
> + if (!vm_radix_isleaf(root))
> + vm_radix_reclaim_allnodes_int(root);
> +}
> +
> +/*
> + * Replace an existing page in the trie with another one.
> + * Panics if there is not an old page in the trie at the new page's inde=
x.
> + */
> +vm_page_t
> +vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage)
> +{
> + struct vm_radix_node *leaf, *parent, *rnode;
> + vm_page_t m;
> + vm_pindex_t index;
> + int slot;
> +
> + leaf =3D vm_radix_toleaf(newpage);
> + index =3D newpage->pindex;
> + rnode =3D vm_radix_root_load(rtree, LOCKED);
> + parent =3D NULL;
> + for (;;) {
> + if (vm_radix_isleaf(rnode)) {
> + if ((m =3D vm_radix_topage(rnode)) !=3D NULL &&
> + m->pindex =3D=3D index) {
> + if (parent =3D=3D NULL)
> + rtree->rt_root =3D leaf;
> + else
> + vm_radix_node_store(
> + &parent->rn_child[slot], leaf,
> + LOCKED);
> + return (m);
> + }
> + break;
> + }
> + if (vm_radix_keybarr(rnode, index, &slot))
> + break;
> + parent =3D rnode;
> + rnode =3D vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
> + }
> + panic("%s: original replacing page not found", __func__);
> +}
> +
> void
> vm_radix_wait(void)
> {
> uma_zwait(vm_radix_node_zone);
> }
> +
> +#ifdef DDB
> +/*
> + * Show details about the given radix node.
> + */
> +DB_SHOW_COMMAND(radixnode, db_show_radixnode)
> +{
> + struct vm_radix_node *rnode, *tmp;
> + int slot;
> + rn_popmap_t popmap;
> +
> + if (!have_addr)
> + return;
> + rnode =3D (struct vm_radix_node *)addr;
> + db_printf("radixnode %p, owner %jx, children popmap %04x, level %u:\n",
> + (void *)rnode, (uintmax_t)rnode->rn_owner, rnode->rn_popmap,
> + rnode->rn_clev / VM_RADIX_WIDTH);
> + for (popmap =3D rnode->rn_popmap; popmap !=3D 0; popmap ^=3D 1 << slot) {
> + slot =3D ffs(popmap) - 1;
> + tmp =3D vm_radix_node_load(&rnode->rn_child[slot], UNSERIALIZED);
> + db_printf("slot: %d, val: %p, page: %p, clev: %d\n",
> + slot, (void *)tmp,
> + vm_radix_isleaf(tmp) ? vm_radix_topage(tmp) : NULL,
> + rnode->rn_clev / VM_RADIX_WIDTH);
> + }
> +}
> +#endif /* DDB */
> diff --git a/sys/vm/vm_radix.h b/sys/vm/vm_radix.h
> index a332618fc0e6..231edda65102 100644
> --- a/sys/vm/vm_radix.h
> +++ b/sys/vm/vm_radix.h
> @@ -34,113 +34,36 @@
> #include <vm/_vm_radix.h>
>
>
> #ifdef _KERNEL
> -#include <sys/pctrie.h>
> -#include <vm/vm.h>
>
>
> +int vm_radix_insert(struct vm_radix *rtree, vm_page_t page);
> void vm_radix_wait(void);
> +vm_page_t vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index);
> +vm_page_t vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index);
> +vm_page_t vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index);
> +vm_page_t vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t i=
ndex);
> +void vm_radix_reclaim_allnodes(struct vm_radix *rtree);
> +vm_page_t vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index);
> +vm_page_t vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage);
> void vm_radix_zinit(void);
> -void *vm_radix_node_alloc(struct pctrie *ptree);
> -void vm_radix_node_free(struct pctrie *ptree, void *node);
> -extern smr_t vm_radix_smr;
> -
> -static __inline void
> -vm_radix_init(struct vm_radix *rtree)
> -{
> - pctrie_init(&rtree->rt_trie);
> -}
> -
> -static __inline bool
> -vm_radix_is_empty(struct vm_radix *rtree)
> -{
> - return (pctrie_is_empty(&rtree->rt_trie));
> -}
> -
> -PCTRIE_DEFINE_SMR(VM_RADIX, vm_page, pindex, vm_radix_node_alloc, vm_rad=
ix_node_free,
> - vm_radix_smr);
>
>
> /*
> - * Inserts the key-value pair into the trie.
> - * Panics if the key already exists.
> + * Each search path in the trie terminates at a leaf, which is a pointer=
 to a
> + * page marked with a set 1-bit. A leaf may be associated with a null po=
inter
> + * to indicate no page there.
> */
> -static __inline int
> -vm_radix_insert(struct vm_radix *rtree, vm_page_t page)
> -{
> - return (VM_RADIX_PCTRIE_INSERT(&rtree->rt_trie, page));
> -}
> -
> -/*
> - * Returns the value stored at the index assuming there is an external l=
ock.
> - *
> - * If the index is not present, NULL is returned.
> - */
> -static __inline vm_page_t
> -vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index)
> -{
> - return (VM_RADIX_PCTRIE_LOOKUP(&rtree->rt_trie, index));
> -}
> -
> -/*
> - * Returns the value stored at the index without requiring an external l=
ock.
> - *
> - * If the index is not present, NULL is returned.
> - */
> -static __inline vm_page_t
> -vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index)
> -{
> - return (VM_RADIX_PCTRIE_LOOKUP_UNLOCKED(&rtree->rt_trie, index));
> -}
> +#define VM_RADIX_ISLEAF 0x1
> +#define VM_RADIX_NULL (struct vm_radix_node *)VM_RADIX_ISLEAF
>
>
> -/*
> - * Returns the page with the least pindex that is greater than or equal =
to the
> - * specified pindex, or NULL if there are no such pages.
> - *
> - * Requires that access be externally synchronized by a lock.
> - */
> -static __inline vm_page_t
> -vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index)
> -{
> - return (VM_RADIX_PCTRIE_LOOKUP_GE(&rtree->rt_trie, index));
> -}
> -
> -/*
> - * Returns the page with the greatest pindex that is less than or equal =
to the
> - * specified pindex, or NULL if there are no such pages.
> - *
> - * Requires that access be externally synchronized by a lock.
> - */
> -static __inline vm_page_t
> -vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index)
> -{
> - return (VM_RADIX_PCTRIE_LOOKUP_LE(&rtree->rt_trie, index));
> -}
> -
> -/*
> - * Remove the specified index from the trie, and return the value stored=
 at
> - * that index. If the index is not present, return NULL.
> - */
> -static __inline vm_page_t
> -vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index)
> -{
> - return (VM_RADIX_PCTRIE_REMOVE_LOOKUP(&rtree->rt_trie, index));
> -}
> -
> -/*
> - * Remove and free all the nodes from the radix tree.
> - */
> static __inline void
> -vm_radix_reclaim_allnodes(struct vm_radix *rtree)
> +vm_radix_init(struct vm_radix *rtree)
> {
> - VM_RADIX_PCTRIE_RECLAIM(&rtree->rt_trie);
> + rtree->rt_root =3D VM_RADIX_NULL;
> }
>
>
> -/*
> - * Replace an existing page in the trie with another one.
> - * Panics if there is not an old page in the trie at the new page's inde=
x.
> - */
> -static __inline vm_page_t
> -vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage)
> +static __inline bool
> +vm_radix_is_empty(struct vm_radix *rtree)
> {
> - return (VM_RADIX_PCTRIE_REPLACE(&rtree->rt_trie, newpage));
> + return (rtree->rt_root =3D=3D VM_RADIX_NULL);
> }
>
>
> #endif /* _KERNEL */
>
>
>
>





From nobody Mon Sep 11 18:05:22 2023
X-Original-To: dev-commits-src-main@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 4Rkvl66v00z4stg9;
	Mon, 11 Sep 2023 18:05:22 +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 4Rkvl66Rzhz4g6Z;
	Mon, 11 Sep 2023 18:05:22 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694455522;
	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=OgwVdFmZLgBrVkExRx1rev4lipMm+u+drLW1bpXC/Xc=;
	b=GvS8NHvmZdJqUqXaUoUsDFCrh+Deu4nLtNqGteLFG+qaHiUTemO3amfej9DPAK5RjWOySv
	4WExJvgJB3ILGPp6FWjQdqXLRDDay/prg7H0ZQIIecDfhfFkIrTGBdfTcITGkfUf+EVr8v
	bP4yhwXelUSc+t+xQPZXKT53YZal3k1NI5q0jcbQk0EvmR4qZcJzT/GCHIWvcqHNCvV7eu
	VD8/3GjVqRa+8QKSslge6ie77b6FupEQfAOszAmctWdEjJYvWb7FHqfol/wA0NkYAR9/cQ
	nuY6mBXSrOfjzTbS6kgCRshl8ighjCtv5Q7UbIAerUFZ3sjy4wvyxs3Womm2uw==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694455522; a=rsa-sha256; cv=none;
	b=UDxMsYu0UCSfyb2QxYJJnvE7M4EZsKNrMf0vHSBNi4/oycG8SQFr1eyoQg0BtaGUdknDjm
	XXWjY+sT0KLNK9OMVaW5RjOcKfWDy5erD7nQnYkK7LklALfbOsnzqsZCPP7U3g5K+1WZSw
	5ioxJb1dMgzgy/0R0PW+Px64LxaE9HgFftBPr0i9hFkFEPusnPeu2mve6NDO0jWQdqHpn+
	nlQpqfbp+PkGM2p6rFQgOd27dMSTQVf3QjXhL8GnAdixcM3V9STKTtyforfYheQhN8vgZP
	aOxbSgxgFoqszNoxrfgBpwFkGOUyLby29/lAQQCaGd2HmVGVSrs9YsxflkFazA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694455522;
	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=OgwVdFmZLgBrVkExRx1rev4lipMm+u+drLW1bpXC/Xc=;
	b=d4+6MepXnM4YN9V0PXFba04aSSSY0X2zEzUo91n9m4ofdJlgjrM5hqtEm5qjzlSHYZcOI3
	GlL7JzJamH/UHBUleSAPFW4WwjwAYruk1yCIG5NIM2sG3nVSCQNgb3+R0Pap6j35zjOV4d
	x/8PUqxmFEMj9bb4Fpw37K/dKkLj/gqEXiw0U2yJTnLIxe3RJFNct0tKa0i30RzXiErRzC
	QF31ek0zbN6+v7ABGdpf4NX2uhmfhWrXEEvRwS8i28e/1vYQY9ehKfEmnjjOkjGXl4YsRA
	DjScGW967r0uxIOqJNIkEdlRZqj/lrKjdKL0puupKYs/Y/T1E1Tok0u4HYAgig==
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 4Rkvl65PPBz10Pp;
	Mon, 11 Sep 2023 18:05:22 +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 38BI5MUC007417;
	Mon, 11 Sep 2023 18:05:22 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38BI5M9Y007414;
	Mon, 11 Sep 2023 18:05:22 GMT
	(envelope-from git)
Date: Mon, 11 Sep 2023 18:05:22 GMT
Message-Id: <202309111805.38BI5M9Y007414@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Gleb Smirnoff <glebius@FreeBSD.org>
Subject: git: d13550f0c9c2 - main - stand/loader.efi: fix regression
  with ignoring nvstore
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: glebius
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: d13550f0c9c283e6bf7a2a3ec870f92a882c9f21
Auto-Submitted: auto-generated

The branch main has been updated by glebius:

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

commit d13550f0c9c283e6bf7a2a3ec870f92a882c9f21
Author:     Gleb Smirnoff <glebius@FreeBSD.org>
AuthorDate: 2023-09-11 18:04:48 +0000
Commit:     Gleb Smirnoff <glebius@FreeBSD.org>
CommitDate: 2023-09-11 18:04:48 +0000

    stand/loader.efi: fix regression with ignoring nvstore
    
    To read/update the boot loader nvstore, we always need to call
    zfs_attach_nvstore() regardless of whether we use bootonce key
    in nvstore or the bootfs property of the pool.  The call was
    unintentionally left in the block of code that is processed
    only when bootonce key is present.
    
    In particular this fixes broken 'nextboot -k'.
    
    Reviewed by:            imp
    Differential Revision:  https://reviews.freebsd.org/D41795
    Fixes:                  e3e2681d0ec28d6661fef6da76c9479049e2761c
---
 stand/efi/loader/main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/stand/efi/loader/main.c b/stand/efi/loader/main.c
index 39e32a56adc0..11b10dd44d5e 100644
--- a/stand/efi/loader/main.c
+++ b/stand/efi/loader/main.c
@@ -264,8 +264,8 @@ probe_zfs_currdev(uint64_t guid)
 		printf("zfs bootonce: %s\n", buf);
 		set_currdev(buf);
 		setenv("zfs-bootonce", buf, 1);
-		(void)zfs_attach_nvstore(&currdev);
 	}
+	(void)zfs_attach_nvstore(&currdev);
 
 	return (sanity_check_currdev());
 }

From nobody Mon Sep 11 18:29:56 2023
X-Original-To: dev-commits-src-main@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 4RkwHT0cKYz4t7Lw;
	Mon, 11 Sep 2023 18:29: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 4RkwHT09NNz3KB7;
	Mon, 11 Sep 2023 18:29:57 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694456997;
	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=mUSUEnkPbRx3cDHcGpf9A0tTs7SY2T//Wi/PKmDe3YE=;
	b=mcasScf7MOb9PftL/O8wUNxtfuqFLz6ktvEC6pligCqOnERXc0eHsH8ON2Y59LB0urwwV7
	2Kx1G4PzuFi4uUS4qy4WbJwLbwmExkx2V/Z/rOaueTaR0cXqQS19BL3pNlVmKXdO9Hl+zh
	rNAUk6UjoRhr25ZuYMAMSAcHZqOoGHYBGaFTGxBV21gzrmny11zG7gPDupOl8vQxXMLsIr
	y1p87kX0v/+KWABKcyxF0P1ocPbCaRO9u1g6N0x0306t3xJNZm4ZthXvYtQMvvS3965QBA
	fL9j23ro3//FLjBbR6B+c7VRu9gHuDjWWkoidao1pFxNgMQmxq76TxY3LJ7ltA==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694456997; a=rsa-sha256; cv=none;
	b=p6l+NwemvXwjkSaZJltQ8RzrZuWJDtLuclgRetWnsh8BPpkIYCS2+GLu996JoKq2gZyVTH
	eQFeBeOcM5a0HaqsDOSgS+Bu0cDLNFAV5HhAaROgBf1uqQ/T9U+/5mvlrx01oPuJyPl2XO
	B/yJ2pp5Qd6piZqFnDKryBR1mun9clKnpJh+T5S7iO+mOlgPkcHUSCQRD1x3ywYrR1TUtq
	ufJLrYja3YAF6jhGM+uGEXMvNF1tMmrSwISv6G0qNgsL6crcAU5kyCQ1q0SDcIMIdk+57V
	9/V/HTIFQNSsTAV422AA9lK6vYNbabYnxM7I1f+L47cEXE+/NfHf7hZFPyXVFA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694456997;
	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=mUSUEnkPbRx3cDHcGpf9A0tTs7SY2T//Wi/PKmDe3YE=;
	b=nTUonoOJRRKZpwR6IBYfUF3oU5iQdjp4jZl6rn7MgM1W//MsdgkpzUV7axOdaPxC9P/qMH
	s4cTNLDIeG7YcX+QR1x9YrMUFj1AXQxg9V1ZgW8jVgjgG2NnjpbymB/5Vu5yTlP2C3CzAe
	ClPrJZ3BGWqqtfh6zla5rIi+CLxmnPosDmqlE3wWm7+X8dM0DU1UEdtjIanQZQ6O8DoCSm
	lo2Ip8HAnkz2wyAWvAbrUmg5lMySKytUQBoxfyTfzJmCoJUp2E2lH/eBU1iMBX/tZ/430+
	Efx1EXBUPiJTI/6s5khaTFNhDmTly0EZYa3Qd2I0KHB6BvoWX4X4ITRg59T7Uw==
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 4RkwHS6Fhgz10Rc;
	Mon, 11 Sep 2023 18:29: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 38BITu9F040986;
	Mon, 11 Sep 2023 18:29:56 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38BITuug040983;
	Mon, 11 Sep 2023 18:29:56 GMT
	(envelope-from git)
Date: Mon, 11 Sep 2023 18:29:56 GMT
Message-Id: <202309111829.38BITuug040983@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Dmitry Chagin <dchagin@FreeBSD.org>
Subject: git: 027d727d4071 - main - linux(4): Cleanup includes under
  arm64
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: dchagin
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 027d727d4071435376017d3789fe603a8aec805a
Auto-Submitted: auto-generated

The branch main has been updated by dchagin:

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

commit 027d727d4071435376017d3789fe603a8aec805a
Author:     Dmitry Chagin <dchagin@FreeBSD.org>
AuthorDate: 2023-09-11 18:29:28 +0000
Commit:     Dmitry Chagin <dchagin@FreeBSD.org>
CommitDate: 2023-09-11 18:29:28 +0000

    linux(4): Cleanup includes under arm64
    
    No functional changes.
    
    MFC after:              1 week
---
 sys/arm64/linux/linux_machdep.c | 2 --
 sys/arm64/linux/linux_sysvec.c  | 4 +---
 2 files changed, 1 insertion(+), 5 deletions(-)

diff --git a/sys/arm64/linux/linux_machdep.c b/sys/arm64/linux/linux_machdep.c
index 3ba5683941b5..3bc2923b9d4d 100644
--- a/sys/arm64/linux/linux_machdep.c
+++ b/sys/arm64/linux/linux_machdep.c
@@ -27,8 +27,6 @@
  */
 
 #include <sys/param.h>
-#include <sys/fcntl.h>
-#include <sys/ktr.h>
 #include <sys/proc.h>
 #include <sys/ptrace.h>
 #include <sys/reg.h>
diff --git a/sys/arm64/linux/linux_sysvec.c b/sys/arm64/linux/linux_sysvec.c
index 3072732de768..5f9252accb5f 100644
--- a/sys/arm64/linux/linux_sysvec.c
+++ b/sys/arm64/linux/linux_sysvec.c
@@ -44,10 +44,8 @@
 #include <sys/sysctl.h>
 #include <sys/sysent.h>
 
-#include <vm/pmap.h>
 #include <vm/vm.h>
-#include <vm/vm_map.h>
-#include <vm/vm_page.h>
+#include <vm/vm_param.h>
 
 #include <arm64/linux/linux.h>
 #include <arm64/linux/linux_proto.h>

From nobody Mon Sep 11 18:29:57 2023
X-Original-To: dev-commits-src-main@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 4RkwHV1Xfpz4t7cN;
	Mon, 11 Sep 2023 18:29: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 4RkwHV12m9z3KKM;
	Mon, 11 Sep 2023 18:29:58 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694456998;
	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=Jn2yNhh3rI08/syFuxOsTwrez5KF65+tNO5yJdjN4t0=;
	b=GXvo/WxhzDKuicYIu5lpf1ZRa6fCvJSAqDY32QSJ7oC2VB84WzZac9Ti1AvVEVZH1W/l2Z
	fJmNTz6Y4Sf6FNXzaKR7hML3hj4QTeu/DzLp9zkp2sytny/DWf6XHdADsPSqWQodAZE1ul
	pHVcqKNqx7KDwj25urLvZ50BzIefx6ZF938XGFeqgugOY5/kW8sbqk+VKWmjeuIohPe/KP
	azYViVptnio1YFIbGklp2aQS6n6exo4BVI95emeqGGQEj/0hsB+RclJ5j5oh4wMR0gCgTL
	ZAyyDzEGRnqq/oOtOEtm0jq9u+ySQCs7nAdHoXX+dt9x2VdU19Ol5fRboaDDiw==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694456998; a=rsa-sha256; cv=none;
	b=B+R6WoQlre30SH/HpLbce5QtXQlAv64G81zHwm75eCWXqO0szSagx1yww1B7fnWuXDkvD6
	GznpEeAyntIZt7nNHIE0SjQu3XtoVRLLeob/C9Y/dhbD5xchN8zUknmouEXAqJb/MTgRku
	lGC/+p7AYEiLCOsUftHvs6pzAtU7SKdWfYp6mpGAU9iy1IIUlXc1vTl0ilZfT2DvtqQXMu
	fIkxXdqBwo/Vwc3R4KqiYVanAFe7/1LUDjz1k18qcc5gZ8Cem3FRx7gEISnrMNZK9YcWRs
	Hvm6NYJX3MsUPT6k3X9HnZbfxzHyGoDQh7+1qCF3q8zNUDeC/UxTLKNwoyeRqg==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694456998;
	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=Jn2yNhh3rI08/syFuxOsTwrez5KF65+tNO5yJdjN4t0=;
	b=wsRS/KeLgUCepfqyOUaRkhXPSPTWwMTTPvyuQi7flFCsV3gEKlrGBXZyGYIW8y1e5pCzGN
	4RNVx6Kl7f3awCHEz/2O8JzZY/8yhNmFQ0GyrmFoYdpZOUq2teAb/mj/YF6QhWVtmVn4/F
	869EQJ2rQh0UUCu/x82cZDmiwZOSF9Ojg2vDMQqu8uLCDqs8BiAwyxQ3VbDZEJdYGrslgr
	2yNLrvfE3p5D53Gw0PiLR2pq69IhLeCKFPPvERWJwYYCU6YmCS67pYTKH3ZOPytZnfla3w
	maed3JkUfSMthVz6jSYieRwP91AG8O8kydTsG3+8gXRo+Uf+RQ45uavu/FXEKg==
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 4RkwHT6x8Hz10cC;
	Mon, 11 Sep 2023 18:29: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 38BITvGw041037;
	Mon, 11 Sep 2023 18:29:57 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38BITvMI041034;
	Mon, 11 Sep 2023 18:29:57 GMT
	(envelope-from git)
Date: Mon, 11 Sep 2023 18:29:57 GMT
Message-Id: <202309111829.38BITvMI041034@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Dmitry Chagin <dchagin@FreeBSD.org>
Subject: git: 68df2376e0e5 - main - linux(4): Cleanup includes under
  amd64/linux
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: dchagin
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 68df2376e0e50cea0f8c3c04dc2d8a7b63515773
Auto-Submitted: auto-generated

The branch main has been updated by dchagin:

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

commit 68df2376e0e50cea0f8c3c04dc2d8a7b63515773
Author:     Dmitry Chagin <dchagin@FreeBSD.org>
AuthorDate: 2023-09-11 18:29:34 +0000
Commit:     Dmitry Chagin <dchagin@FreeBSD.org>
CommitDate: 2023-09-11 18:29:34 +0000

    linux(4): Cleanup includes under amd64/linux
    
    No functional changes.
    
    MFC after:              1 week
---
 sys/amd64/linux/linux_machdep.c | 13 -------------
 sys/amd64/linux/linux_sysvec.c  |  7 +------
 2 files changed, 1 insertion(+), 19 deletions(-)

diff --git a/sys/amd64/linux/linux_machdep.c b/sys/amd64/linux/linux_machdep.c
index 33ce902a45bd..7ec1ec56bb95 100644
--- a/sys/amd64/linux/linux_machdep.c
+++ b/sys/amd64/linux/linux_machdep.c
@@ -33,7 +33,6 @@
 #include <sys/systm.h>
 #include <sys/ktr.h>
 #include <sys/lock.h>
-#include <sys/malloc.h>
 #include <sys/mman.h>
 #include <sys/mutex.h>
 #include <sys/priv.h>
@@ -41,25 +40,13 @@
 #include <sys/ptrace.h>
 #include <sys/syscallsubr.h>
 
-#include <security/mac/mac_framework.h>
-
-#include <ufs/ufs/extattr.h>
-#include <ufs/ufs/quota.h>
-#include <ufs/ufs/ufsmount.h>
-
-#include <machine/frame.h>
 #include <machine/md_var.h>
 #include <machine/pcb.h>
-#include <machine/psl.h>
-#include <machine/segments.h>
 #include <machine/specialreg.h>
 
 #include <vm/pmap.h>
 #include <vm/vm.h>
 #include <vm/vm_param.h>
-#include <vm/vm_extern.h>
-#include <vm/vm_kern.h>
-#include <vm/vm_map.h>
 
 #include <x86/ifunc.h>
 #include <x86/reg.h>
diff --git a/sys/amd64/linux/linux_sysvec.c b/sys/amd64/linux/linux_sysvec.c
index 55eb34b6d329..2907323d903c 100644
--- a/sys/amd64/linux/linux_sysvec.c
+++ b/sys/amd64/linux/linux_sysvec.c
@@ -40,7 +40,6 @@
 #include <sys/kernel.h>
 #include <sys/ktr.h>
 #include <sys/lock.h>
-#include <sys/malloc.h>
 #include <sys/module.h>
 #include <sys/mutex.h>
 #include <sys/proc.h>
@@ -51,13 +50,9 @@
 
 #include <vm/pmap.h>
 #include <vm/vm.h>
-#include <vm/vm_map.h>
-#include <vm/vm_page.h>
+#include <vm/vm_param.h>
 
-#include <machine/cpu.h>
 #include <machine/md_var.h>
-#include <machine/pcb.h>
-#include <machine/specialreg.h>
 #include <machine/trap.h>
 
 #include <x86/linux/linux_x86.h>

From nobody Mon Sep 11 18:29:59 2023
X-Original-To: dev-commits-src-main@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 4RkwHW2Fttz4t7M3;
	Mon, 11 Sep 2023 18:29: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 4RkwHW1kJYz3K8g;
	Mon, 11 Sep 2023 18:29:59 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694456999;
	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=1ExFzoTgmgrFC6F+DzV6bxB1xvWTadZqUFUMlyDtmMk=;
	b=T7CoW4GYswbHqcbJJCIG5LS/axKV2BURxdieZMmJAXJRZAUfb6X+WXUXdZkIEK9FefY2bF
	Bn/ChkqTOGvYrmvnZ8WAVXbfb4fTm209OeGSJjRgL+po4jJa/kbVlNPHBrO8KyvSilySWC
	ZDjkUZPjH7vGCRsmLGRDBU5cNoKxobJ7+6hz51tc0xGFU+PpDgTmXGrkJLc7mSOY3h58OW
	ZyWN17bj6dCKVdXAOdF+F0JXDlsrNvOwTbNj9pPflkD1V6PhaybXQQQ57UagtJHRAfKXl/
	57n8OXWQNQkgivUAtDl+6MWZtTl52c17MFaqOVSkboCKE3DkyUHLhjz2LVWLfg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694456999; a=rsa-sha256; cv=none;
	b=MX55fZmMg6wZPV/Z7VZXDy+MfPmBSXWYX7nJaHjtKLSxlucYryegNXSvcPowOBHDrwj3vb
	SpCVVY9t39/tWQ2rs1ryWcTC7JOMMj0z4p+toro2o4zGHqmlSO5Br96JAjerkmXbG6OW6v
	Ptizs/k/nxN8r0bCjoLM8wr1x+O8r6oU87K5SA4P5TWRUtYB7PGFg6jrNWJPSUiXFXXdjd
	d9P5+84ogkrEgr+zU4B8+0N9H34DFt1FsdI8FRCh/kmQ91fOConvUTsRQk2ltGshWHJsO1
	KasmwRK60unu5STRbM2L4mjtktObwswpDzgb1GcJ5t69EqNnrKA8bQ8q+1y8Qg==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694456999;
	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=1ExFzoTgmgrFC6F+DzV6bxB1xvWTadZqUFUMlyDtmMk=;
	b=IlsPkq1qtBML7WVYfXqzrtWnQbFR0ceHBNCXwaPT5IaUlTf04QwEnuKkxn5iKqIbJU6qtq
	GpvqwHJYKZzm6LD2+/SLWMOfh8jweyoVcUce0aF5EK8e0K/yHBg8Pe3jyg3sNBpIhhZ+CJ
	g6cUNREuLYQptpCRucvVWyO7XFrSD9KDNgR+h/uBPtrkUtQmci7ypQmFFkv9L0qFIXyHdn
	dFYT7F1g/ckinaG9NNJvXb1O9ktPw7tC7argOmZu4iZzLORZOdBNliF4Pp04blcrj23iHc
	MK+AB9epRLyp1VnL2udSG3ophRwb3tm5IEoqByhlzcHuuhRaS9Jw4kMmrMobKw==
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 4RkwHW0prcz10Rd;
	Mon, 11 Sep 2023 18:29: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 38BITxgH041079;
	Mon, 11 Sep 2023 18:29:59 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38BITxhk041076;
	Mon, 11 Sep 2023 18:29:59 GMT
	(envelope-from git)
Date: Mon, 11 Sep 2023 18:29:59 GMT
Message-Id: <202309111829.38BITxhk041076@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Dmitry Chagin <dchagin@FreeBSD.org>
Subject: git: ba90a31d08e4 - main - linux(4): Cleanup includes under
  amd64/linux32
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: dchagin
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: ba90a31d08e413b82c1d1d4d697c2cdb32a13674
Auto-Submitted: auto-generated

The branch main has been updated by dchagin:

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

commit ba90a31d08e413b82c1d1d4d697c2cdb32a13674
Author:     Dmitry Chagin <dchagin@FreeBSD.org>
AuthorDate: 2023-09-11 18:29:40 +0000
Commit:     Dmitry Chagin <dchagin@FreeBSD.org>
CommitDate: 2023-09-11 18:29:40 +0000

    linux(4): Cleanup includes under amd64/linux32
    
    No functional changes.
    
    MFC after:              1 week
---
 sys/amd64/linux32/linux32_machdep.c | 14 --------------
 sys/amd64/linux32/linux32_sysvec.c  |  7 +------
 2 files changed, 1 insertion(+), 20 deletions(-)

diff --git a/sys/amd64/linux32/linux32_machdep.c b/sys/amd64/linux32/linux32_machdep.c
index e10502f9bd80..ba4dcc61af76 100644
--- a/sys/amd64/linux32/linux32_machdep.c
+++ b/sys/amd64/linux32/linux32_machdep.c
@@ -31,31 +31,17 @@
  */
 
 #include <sys/param.h>
-#include <sys/fcntl.h>
-#include <sys/imgact.h>
-#include <sys/limits.h>
 #include <sys/lock.h>
-#include <sys/malloc.h>
 #include <sys/mutex.h>
 #include <sys/priv.h>
 #include <sys/proc.h>
 #include <sys/reg.h>
 #include <sys/syscallsubr.h>
 
-#include <machine/frame.h>
 #include <machine/md_var.h>
-#include <machine/pcb.h>
-#include <machine/psl.h>
-#include <machine/segments.h>
 #include <machine/specialreg.h>
 #include <x86/ifunc.h>
 
-#include <vm/pmap.h>
-#include <vm/vm.h>
-#include <vm/vm_map.h>
-
-#include <security/audit/audit.h>
-
 #include <compat/freebsd32/freebsd32_util.h>
 #include <amd64/linux32/linux.h>
 #include <amd64/linux32/linux32_proto.h>
diff --git a/sys/amd64/linux32/linux32_sysvec.c b/sys/amd64/linux32/linux32_sysvec.c
index f2a379a66860..31436ee7162a 100644
--- a/sys/amd64/linux32/linux32_sysvec.c
+++ b/sys/amd64/linux32/linux32_sysvec.c
@@ -40,12 +40,10 @@
 
 #include <sys/param.h>
 #include <sys/exec.h>
-#include <sys/fcntl.h>
 #include <sys/imgact.h>
 #include <sys/imgact_elf.h>
 #include <sys/kernel.h>
 #include <sys/lock.h>
-#include <sys/malloc.h>
 #include <sys/module.h>
 #include <sys/mutex.h>
 #include <sys/proc.h>
@@ -57,12 +55,9 @@
 #include <vm/pmap.h>
 #include <vm/vm.h>
 #include <vm/vm_map.h>
-#include <vm/vm_page.h>
+#include <vm/vm_param.h>
 
-#include <machine/cpu.h>
 #include <machine/md_var.h>
-#include <machine/pcb.h>
-#include <machine/specialreg.h>
 #include <machine/trap.h>
 
 #include <x86/linux/linux_x86.h>

From nobody Mon Sep 11 18:51:59 2023
X-Original-To: dev-commits-src-main@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 4Rkwn44JFjz4tMBC;
	Mon, 11 Sep 2023 18:52:08 +0000 (UTC)
	(envelope-from dchagin@heemeyer.club)
Received: from heemeyer.club (heemeyer.club [195.93.173.158])
	(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 mx1.freebsd.org (Postfix) with ESMTPS id 4Rkwn34Wg2z3TJB;
	Mon, 11 Sep 2023 18:52:07 +0000 (UTC)
	(envelope-from dchagin@heemeyer.club)
Authentication-Results: mx1.freebsd.org;
	dkim=none;
	spf=none (mx1.freebsd.org: domain of dchagin@heemeyer.club has no SPF policy when checking 195.93.173.158) smtp.mailfrom=dchagin@heemeyer.club;
	dmarc=none
Received: from heemeyer.club (localhost [127.0.0.1])
	by heemeyer.club (8.17.2/8.16.1) with ESMTP id 38BIpxFH002386;
	Mon, 11 Sep 2023 21:51:59 +0300 (MSK)
	(envelope-from dchagin@heemeyer.club)
Received: (from dchagin@localhost)
	by heemeyer.club (8.17.2/8.16.1/Submit) id 38BIpxEU002385;
	Mon, 11 Sep 2023 21:51:59 +0300 (MSK)
	(envelope-from dchagin)
Date: Mon, 11 Sep 2023 21:51:59 +0300
From: Dmitry Chagin <dchagin@freebsd.org>
To: Mateusz Guzik <mjg@freebsd.org>
Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org,
        dev-commits-src-main@freebsd.org
Subject: Re: git: a87c6962affc - main - ufs: restore name cache fast path
 lookup
Message-ID: <ZP9hz5IF3R1KMYBQ@heemeyer.club>
References: <202309092150.389LovR0091943@gitrepo.freebsd.org>
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <202309092150.389LovR0091943@gitrepo.freebsd.org>
X-Spamd-Bar: -
X-Spamd-Result: default: False [-1.75 / 15.00];
	AUTH_NA(1.00)[];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	NEURAL_HAM_MEDIUM(-1.00)[-1.000];
	NEURAL_HAM_SHORT(-0.95)[-0.946];
	FORGED_SENDER(0.30)[dchagin@freebsd.org,dchagin@heemeyer.club];
	MIME_GOOD(-0.10)[text/plain];
	MIME_TRACE(0.00)[0:+];
	MLMMJ_DEST(0.00)[dev-commits-src-all@freebsd.org,dev-commits-src-main@freebsd.org];
	R_SPF_NA(0.00)[no SPF record];
	ASN(0.00)[asn:61400, ipnet:195.93.173.0/24, country:RU];
	R_DKIM_NA(0.00)[];
	RCVD_TLS_LAST(0.00)[];
	DMARC_NA(0.00)[freebsd.org];
	FREEFALL_USER(0.00)[dchagin];
	ARC_NA(0.00)[];
	FROM_NEQ_ENVFROM(0.00)[dchagin@freebsd.org,dchagin@heemeyer.club];
	RCPT_COUNT_THREE(0.00)[4];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	TO_DN_SOME(0.00)[];
	FROM_HAS_DN(0.00)[];
	RCVD_COUNT_TWO(0.00)[2]
X-Rspamd-Queue-Id: 4Rkwn34Wg2z3TJB

On Sat, Sep 09, 2023 at 09:50:57PM +0000, Mateusz Guzik wrote:
> The branch main has been updated by mjg:
> 
> URL: https://cgit.FreeBSD.org/src/commit/?id=a87c6962affc2d1994d8f30806c934eb4cb7af22
> 
> commit a87c6962affc2d1994d8f30806c934eb4cb7af22
> Author:     Mateusz Guzik <mjg@FreeBSD.org>
> AuthorDate: 2023-09-09 21:48:57 +0000
> Commit:     Mateusz Guzik <mjg@FreeBSD.org>
> CommitDate: 2023-09-09 21:48:57 +0000
> 
>     ufs: restore name cache fast path lookup
>     

10x, do you plan to merge this to the stable/14 releng/14.0?
I just cherry-picked this to my stable/14 prod, so compile and runtime
tested




>     Found by:       dchagin
>     Fixes:  f3c81b973897 ("ufs: add missing vop_fplookup ops")
> ---
>  sys/ufs/ffs/ffs_vnops.c | 6 ++++--
>  sys/ufs/ufs/ufs_vnops.c | 4 ++--
>  2 files changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/sys/ufs/ffs/ffs_vnops.c b/sys/ufs/ffs/ffs_vnops.c
> index 0dd64f696e0c..2b11a15c46c9 100644
> --- a/sys/ufs/ffs/ffs_vnops.c
> +++ b/sys/ufs/ffs/ffs_vnops.c
> @@ -135,6 +135,8 @@ static vop_setextattr_t	ffs_setextattr;
>  static vop_vptofh_t	ffs_vptofh;
>  static vop_vput_pair_t	ffs_vput_pair;
>  
> +vop_fplookup_vexec_t ufs_fplookup_vexec;
> +
>  /* Global vfs data structures for ufs. */
>  struct vop_vector ffs_vnodeops1 = {
>  	.vop_default =		&ufs_vnodeops,
> @@ -151,7 +153,7 @@ struct vop_vector ffs_vnodeops1 = {
>  	.vop_write =		ffs_write,
>  	.vop_vptofh =		ffs_vptofh,
>  	.vop_vput_pair =	ffs_vput_pair,
> -	.vop_fplookup_vexec =	VOP_EAGAIN,
> +	.vop_fplookup_vexec =	ufs_fplookup_vexec,
>  	.vop_fplookup_symlink =	VOP_EAGAIN,
>  };
>  VFS_VOP_VECTOR_REGISTER(ffs_vnodeops1);
> @@ -192,7 +194,7 @@ struct vop_vector ffs_vnodeops2 = {
>  	.vop_setextattr =	ffs_setextattr,
>  	.vop_vptofh =		ffs_vptofh,
>  	.vop_vput_pair =	ffs_vput_pair,
> -	.vop_fplookup_vexec =	VOP_EAGAIN,
> +	.vop_fplookup_vexec =	ufs_fplookup_vexec,
>  	.vop_fplookup_symlink =	VOP_EAGAIN,
>  };
>  VFS_VOP_VECTOR_REGISTER(ffs_vnodeops2);
> diff --git a/sys/ufs/ufs/ufs_vnops.c b/sys/ufs/ufs/ufs_vnops.c
> index a7d5e8ba96fc..79cca75fc563 100644
> --- a/sys/ufs/ufs/ufs_vnops.c
> +++ b/sys/ufs/ufs/ufs_vnops.c
> @@ -101,7 +101,7 @@ VFS_SMR_DECLARE;
>  #include <ufs/ffs/ffs_extern.h>
>  
>  static vop_accessx_t	ufs_accessx;
> -static vop_fplookup_vexec_t ufs_fplookup_vexec;
> +vop_fplookup_vexec_t ufs_fplookup_vexec;
>  static int ufs_chmod(struct vnode *, int, struct ucred *, struct thread *);
>  static int ufs_chown(struct vnode *, uid_t, gid_t, struct ucred *,
>      struct thread *);
> @@ -475,7 +475,7 @@ ufs_accessx(
>   * VOP_FPLOOKUP_VEXEC routines are subject to special circumstances, see
>   * the comment above cache_fplookup for details.
>   */
> -static int
> +int
>  ufs_fplookup_vexec(
>  	struct vop_fplookup_vexec_args /* {
>  		struct vnode *a_vp;

From nobody Mon Sep 11 18:58:58 2023
X-Original-To: dev-commits-src-main@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 4RkwxB726Xz4tQK7
	for <dev-commits-src-main@mlmmj.nyi.freebsd.org>; Mon, 11 Sep 2023 18:59:10 +0000 (UTC)
	(envelope-from cglogic@protonmail.com)
Received: from mail-4318.protonmail.ch (mail-4318.protonmail.ch [185.70.43.18])
	(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 "protonmail.com", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4Rkwx93j2zz3WBv
	for <dev-commits-src-main@FreeBSD.org>; Mon, 11 Sep 2023 18:59:09 +0000 (UTC)
	(envelope-from cglogic@protonmail.com)
Authentication-Results: mx1.freebsd.org;
	dkim=pass header.d=protonmail.com header.s=protonmail3 header.b=v3ZQzIiN;
	spf=pass (mx1.freebsd.org: domain of cglogic@protonmail.com designates 185.70.43.18 as permitted sender) smtp.mailfrom=cglogic@protonmail.com;
	dmarc=pass (policy=quarantine) header.from=protonmail.com
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com;
	s=protonmail3; t=1694458746; x=1694717946;
	bh=lPN3H8X3RjYeI0G2DDv0r04UTT2YaTlnM5+u71gyC5g=;
	h=Date:To:From:Subject:Message-ID:In-Reply-To:References:
	 Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:
	 Message-ID:BIMI-Selector;
	b=v3ZQzIiN3B6m82ROO+NJP4XSzhfpH8UZYB8aPi95TWsdhEJ0mipkWNCz/fimmaxBs
	 zLbEWudbAMw7nBDZUB3bkjj1RtvOIgAMzEpV7IGi4moOgXqHDYp0Hkk5GV1zqRPNZa
	 t3i2uWeM6Rq3vHKFTEzcbx0i42x6sClx9L33sErdPZP94AFsZvcWL2wKE9KQADqB4p
	 zHqxWE6++QuvPtg6zRv4ARU6T+Iw3awOhWjg/Zyw3x+qdXr4w4DtN76VSdLXDNr55z
	 Jq5lsl0Wa5yv6F1hZfkcIq2Fb1HHGXnCWCDDKV1Jj4tvQylxzeb1i50dHWWbV4vQGa
	 6Ac7bKqyp3JPQ==
Date: Mon, 11 Sep 2023 18:58:58 +0000
To: dev-commits-src-main@FreeBSD.org
From: cglogic <cglogic@protonmail.com>
Subject: Re: git: fb5daae920ba - main - timerfd: Namespace pollution  adjustments
Message-ID: <kumtnEYa8yfnNceFxNMc9iJ15yTgc487_d_UTK7LjnhlTB0xjgCW3q-j_y-82gIiY7Krvhr8k7Gbmp_V2Niqi8sh4XMld9FSF7-EA5fMa4g=@protonmail.com>
In-Reply-To: <202309052226.385MQF5F075354@gitrepo.freebsd.org>
References: <202309052226.385MQF5F075354@gitrepo.freebsd.org>
Feedback-ID: 25313618:user:proton
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spamd-Bar: ----
X-Spamd-Result: default: False [-4.38 / 15.00];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	NEURAL_HAM_MEDIUM(-0.99)[-0.991];
	NEURAL_HAM_SHORT(-0.99)[-0.991];
	DMARC_POLICY_ALLOW(-0.50)[protonmail.com,quarantine];
	RWL_MAILSPIKE_EXCELLENT(-0.40)[185.70.43.18:from];
	R_SPF_ALLOW(-0.20)[+ip4:185.70.43.0/24];
	R_DKIM_ALLOW(-0.20)[protonmail.com:s=protonmail3];
	MIME_GOOD(-0.10)[text/plain];
	MLMMJ_DEST(0.00)[dev-commits-src-main@FreeBSD.org];
	FREEMAIL_ENVFROM(0.00)[protonmail.com];
	RCVD_COUNT_ZERO(0.00)[0];
	MIME_TRACE(0.00)[0:+];
	FROM_EQ_ENVFROM(0.00)[];
	ARC_NA(0.00)[];
	ASN(0.00)[asn:62371, ipnet:185.70.43.0/24, country:CH];
	FREEMAIL_FROM(0.00)[protonmail.com];
	FROM_HAS_DN(0.00)[];
	DKIM_TRACE(0.00)[protonmail.com:+];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	RCPT_COUNT_ONE(0.00)[1];
	TO_DN_NONE(0.00)[];
	MID_RHS_MATCH_FROM(0.00)[]
X-Rspamd-Queue-Id: 4Rkwx93j2zz3WBv

Is it planned to MFC this and related timerfd commits to stable/14?
It should help build some ports.

------- Original Message -------
On Wednesday, September 6th, 2023 at 1:26 AM, Warner Losh <imp@FreeBSD.org>=
 wrote:


> The branch main has been updated by imp:
>=20
> URL: https://cgit.FreeBSD.org/src/commit/?id=3Dfb5daae920bae84e3eec8175bf=
9e46304c3b2ae6
>=20
> commit fb5daae920bae84e3eec8175bf9e46304c3b2ae6
> Author: Jake Freeland jfree@FreeBSD.org
>=20
> AuthorDate: 2023-09-05 22:11:50 +0000
> Commit: Warner Losh imp@FreeBSD.org
>=20
> CommitDate: 2023-09-05 22:25:01 +0000
>=20
> timerfd: Namespace pollution adjustments
>=20
> Do not pollute userspace with <sys/proc.h>, instead declare struct thread
>=20
> when _KERNEL is defined.
>=20
> Include <sys/time.h> instead of <sys/timespec.h>. This causes intentional
>=20
> namespace pollution that mimics Linux. g/musl libcs include <time.h> in
>=20
> their <sys/timerfd.h>, exposing clock gettime, settime functions and
>=20
> CLOCK_ macro constants. Ports like Chromium expect this namespace
> pollution and fail without it.
>=20
> MFC After: 3 days
> Reviewed by: imp, markj
> Differential Revision: https://reviews.freebsd.org/D41641
> ---
> sys/sys/timerfd.h | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
>=20
> diff --git a/sys/sys/timerfd.h b/sys/sys/timerfd.h
> index 8cb9939ba60f..cace3b71498c 100644
> --- a/sys/sys/timerfd.h
> +++ b/sys/sys/timerfd.h
> @@ -30,8 +30,12 @@
>=20
> #include <sys/types.h>
>=20
> #include <sys/fcntl.h>
>=20
> -#include <sys/proc.h>
>=20
> -#include <sys/timespec.h>
>=20
> +/*
> + * We only need <sys/timespec.h>, but glibc pollutes the namespace
>=20
> + * with <time.h>. This pollution is expected by most programs, so
>=20
> + * reproduce it by including <sys/time.h> here.
>=20
> + */
> +#include <sys/time.h>
>=20
>=20
> typedef uint64_t timerfd_t;
>=20
> @@ -54,6 +58,8 @@ __END_DECLS
>=20
> #else /* _KERNEL */
>=20
> +struct thread;
> +
> int kern_timerfd_create(struct thread *td, int clockid, int flags);
> int kern_timerfd_gettime(struct thread *td, int fd,
> struct itimerspec *curr_value);

From nobody Mon Sep 11 19:32:17 2023
X-Original-To: dev-commits-src-main@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 4RkxgP2q7bz4sqxx;
	Mon, 11 Sep 2023 19:32: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 4RkxgP2PQyz3gPs;
	Mon, 11 Sep 2023 19:32:17 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694460737;
	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=5ATf95KPhG6fJpKzVEHdeFvg4cfYVDWNIX/pIwRRfZc=;
	b=gUEURdcNVPHa+PW+lkVJu1OnWrqJUqE5sr13fFVBlI1h03pK97WPRz2oYqy5T/GL2wA+3c
	9Ge4PSUQV2K5nX7VlltBeYL+9PPo6OY7h/UV3S2crec4u3BWtFJhvrq8WhKOINZyu5M6lA
	Jg5wcOPazkE2o9Lftp2XDSBJUdGngHZO9UwLWt5gpm5WppKBJBAWqHe2VqgZ5Q2AsT5yX0
	yk5cteF4UkV4RZRbPl/PhF8LWHlbuIyd4sO3Jz7UgTDhcHKaJ3zWuMPTqfm/6CV4keMtAD
	I+9tDy8PoScuxCIYVLKGR70ko+LM6CNyvJBoHDyMJoQjbqc3/8FhhDGSycxkZw==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694460737; a=rsa-sha256; cv=none;
	b=UclTKDMrW96Us7YKn4V3ithhzAC9LLgAkLPzGW+bPb4XPPtQmKW1wOVG/Y4pkvnZ9UA8/j
	7ESSXkevIn5BxgMEY/qHt2F/L1kDQggrMBQcroubjFta7KEnq78WVdTWqeSuUXc9uGy6PF
	6Y7JMjkgzdkshaggW73ojUKcculmOiwv+XfElI1jNvMFoovft/QtiLNjx4TKZ5eMpYb5kl
	9ij3A11C2izTDfqQ2/x2jBlAty2nD3zJIfGLIP2TsnS51y29jTx/4JzDhugtuStoLi47Jv
	z6yzG4uuopOFm1iOARhm/VjCakMaduFSh9wal8TqkSyD0zyrW8zr1MEYyK41lQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694460737;
	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=5ATf95KPhG6fJpKzVEHdeFvg4cfYVDWNIX/pIwRRfZc=;
	b=PxhTNh9JrhSYZzQmHwg1CZnkKsSbv1lOSPM7kd0skYdjUBhcT5+qctOeGMj8/s/3qT7MP0
	vKiuliqNiogZz96Xdw1YOpmNly+bveNOTpwcxCL1anZNpMMpQfqQwKE0E2tKjflD7O75lJ
	2eqaX6rY90rIJzuyoLnUg+YEzOHszFVjEgE70k+fEjbJ6VgOynb4U2KurHi/WTMTXIuYYa
	+r+Gx3QaAp1H2eOyiqNeGYOC3bF3NGiYpjvVA4FrIgBnUc49wahF9lNyR+8l3yQ7BpuZDA
	V3Bs4LaDHJFn5hjWOpor4mKGzJIXd8MEA3l27htQyEVttA3dWZreImWLAgmt3w==
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 4RkxgP1TMKz123b;
	Mon, 11 Sep 2023 19:32: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 38BJWHFB056411;
	Mon, 11 Sep 2023 19:32:17 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38BJWHhm056408;
	Mon, 11 Sep 2023 19:32:17 GMT
	(envelope-from git)
Date: Mon, 11 Sep 2023 19:32:17 GMT
Message-Id: <202309111932.38BJWHhm056408@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Cheng Cui <cc@FreeBSD.org>
Subject: git: fafb03ab4254 - main - siftr: flush pkt_nodes to the
  log file in batch
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: cc
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: fafb03ab4254ab0d3927bc8ec22e4ba432efdbeb
Auto-Submitted: auto-generated

The branch main has been updated by cc:

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

commit fafb03ab4254ab0d3927bc8ec22e4ba432efdbeb
Author:     Cheng Cui <cc@FreeBSD.org>
AuthorDate: 2023-07-25 13:53:55 +0000
Commit:     Cheng Cui <cc@FreeBSD.org>
CommitDate: 2023-09-11 15:23:27 +0000

    siftr: flush pkt_nodes to the log file in batch
    
    Reviewed by: rscheff, tuexen
    Differential Revision: https://reviews.freebsd.org/D41175
---
 sys/netinet/siftr.c | 73 ++++++++++++++++++++++++++++++++++++++++-------------
 1 file changed, 55 insertions(+), 18 deletions(-)

diff --git a/sys/netinet/siftr.c b/sys/netinet/siftr.c
index 58603e4aa53c..fbb47fc4a521 100644
--- a/sys/netinet/siftr.c
+++ b/sys/netinet/siftr.c
@@ -370,12 +370,12 @@ siftr_new_hash_node(struct flow_info info, int dir,
 	}
 }
 
-static void
-siftr_process_pkt(struct pkt_node * pkt_node)
+static int
+siftr_process_pkt(struct pkt_node * pkt_node, char *buf)
 {
 	struct flow_hash_node *hash_node;
 	struct listhead *counter_list;
-	struct ale *log_buf;
+	int ret_sz;
 
 	if (pkt_node->flowid == 0) {
 		panic("%s: flowid not available", __func__);
@@ -385,7 +385,7 @@ siftr_process_pkt(struct pkt_node * pkt_node)
 	hash_node = siftr_find_flow(counter_list, pkt_node->flowid);
 
 	if (hash_node == NULL) {
-		return;
+		return 0;
 	} else if (siftr_pkts_per_log > 1) {
 		/*
 		 * Taking the remainder of the counter divided
@@ -401,16 +401,11 @@ siftr_process_pkt(struct pkt_node * pkt_node)
 		 * we wrote a log message for this connection, return.
 		 */
 		if (hash_node->counter > 0)
-			return;
+			return 0;
 	}
 
-	log_buf = alq_getn(siftr_alq, MAX_LOG_MSG_LEN, ALQ_WAITOK);
-
-	if (log_buf == NULL)
-		return; /* Should only happen if the ALQ is shutting down. */
-
 	/* Construct a log message. */
-	log_buf->ae_bytesused = snprintf(log_buf->ae_data, MAX_LOG_MSG_LEN,
+	ret_sz = snprintf(buf, MAX_LOG_MSG_LEN,
 	    "%c,%jd.%06ld,%s,%hu,%s,%hu,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,%u,"
 	    "%u,%u,%u,%u,%u,%u,%u,%u\n",
 	    direction[pkt_node->direction],
@@ -442,7 +437,7 @@ siftr_process_pkt(struct pkt_node * pkt_node)
 	    pkt_node->flowid,
 	    pkt_node->flowtype);
 
-	alq_post_flags(siftr_alq, log_buf, 0);
+	return ret_sz;
 }
 
 static void
@@ -452,6 +447,9 @@ siftr_pkt_manager_thread(void *arg)
 	    STAILQ_HEAD_INITIALIZER(tmp_pkt_queue);
 	struct pkt_node *pkt_node, *pkt_node_temp;
 	uint8_t draining;
+	struct ale *log_buf;
+	int ret_sz, cnt;
+	char *bufp;
 
 	draining = 2;
 
@@ -487,12 +485,51 @@ siftr_pkt_manager_thread(void *arg)
 		 */
 		mtx_unlock(&siftr_pkt_mgr_mtx);
 
-		/* Flush all pkt_nodes to the log file. */
-		STAILQ_FOREACH_SAFE(pkt_node, &tmp_pkt_queue, nodes,
-		    pkt_node_temp) {
-			siftr_process_pkt(pkt_node);
-			STAILQ_REMOVE_HEAD(&tmp_pkt_queue, nodes);
-			free(pkt_node, M_SIFTR_PKTNODE);
+try_again:
+		pkt_node = STAILQ_FIRST(&tmp_pkt_queue);
+		if (pkt_node != NULL) {
+			if (STAILQ_NEXT(pkt_node, nodes) != NULL) {
+				cnt = 3;
+			} else {
+				cnt = 1;
+			}
+
+			log_buf = alq_getn(siftr_alq, MAX_LOG_MSG_LEN * cnt,
+					   ALQ_WAITOK);
+
+			if (log_buf != NULL) {
+				log_buf->ae_bytesused = 0;
+				bufp = log_buf->ae_data;
+			} else {
+				/*
+				 * Should only happen if the ALQ is shutting
+				 * down.
+				 */
+				bufp = NULL;
+			}
+
+			/* Flush all pkt_nodes to the log file. */
+			STAILQ_FOREACH_SAFE(pkt_node, &tmp_pkt_queue, nodes,
+			    pkt_node_temp) {
+				if (log_buf != NULL) {
+					ret_sz = siftr_process_pkt(pkt_node,
+								   bufp);
+					bufp += ret_sz;
+					log_buf->ae_bytesused += ret_sz;
+					cnt--;
+				}
+
+				STAILQ_REMOVE_HEAD(&tmp_pkt_queue, nodes);
+				free(pkt_node, M_SIFTR_PKTNODE);
+
+				if (cnt <= 0 && !STAILQ_EMPTY(&tmp_pkt_queue)) {
+					alq_post_flags(siftr_alq, log_buf, 0);
+					goto try_again;
+				}
+			}
+			if (log_buf != NULL) {
+				alq_post_flags(siftr_alq, log_buf, 0);
+			}
 		}
 
 		KASSERT(STAILQ_EMPTY(&tmp_pkt_queue),

From nobody Tue Sep 12 03:41:46 2023
X-Original-To: dev-commits-src-main@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 4Rl8XB5Tptz4tSYD;
	Tue, 12 Sep 2023 03: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 4Rl8XB4h5Bz4Syg;
	Tue, 12 Sep 2023 03: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=1694490106;
	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=R+8OJjgghTyTC0wT1cyZcwvwNeGj/FdiCLUlTTIuGwo=;
	b=aaZuJgyTl7NDDnTqolyDDhBst/xlC6xEOqOGdJgbpkycnjK8Lwu/ir/WG7p34ZfaF17q+p
	fqqSCBMiwE2Mo4D23WUgGe1bB7yARQpu33klByziSWDmFxvFxdm1mQub/uhKh8JXvDgiMN
	Lj56129PTDcxVmONOIXReJ0UVA7hUdUjMZcctXi1jMOoKFuFU5CEJF0zzP8CKNpWqzsM7U
	q6pNxYqtgQiRPhL3NIFETMJ1fHEhKaQUN3AM7dDG0uU9MIlrMVZ3EpkEhMiJHNkSDKO/1f
	fzGL+kWX1balme89Vh2AEPgmlF/Da4sZ/5NubZ+3PRB3XIllieFDrbHg0oGwKQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694490106; a=rsa-sha256; cv=none;
	b=u1bIV/+q7poBXkcrDW9hjAbeHfC11EQ/43K1LniKiWooohonoGFcPRmkucVlD3ANmI6app
	qV+jSnuLarmcWHQFQeI7V1uvjDoB+xF3Lb2L+9LWSQGjgGGdkib8LpPX+DgVyW6nfQhKTf
	A3R8BROcwPPfcS2vwap/k0bPbqFhHTjoBm4fC21YggsuyFmtPWd4KH+/HePYT6khI1mOrG
	Aau8hwsOYNkuDIhUh9oNOYE7wTx9mQZB6FilKUAZVu0lnLt2a585Svks4WRt0q9xqudyaC
	0R/xUosH4IeWccu8O9YJimA8clReTtlAbx4XLg6ODxBkFuNHRjCawNYkh5mf8A==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694490106;
	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=R+8OJjgghTyTC0wT1cyZcwvwNeGj/FdiCLUlTTIuGwo=;
	b=ZwQCPQbhl6tOmJylmc4zfBcvgU7Ay5m5aX5lSLo/sAjLr1fNOozS+KBirZN68kZl2MQ4Q8
	6kdueOQgjr01H3GL5XWosPLvruBmyLYNrTl/UAe9+/Es8qd4fY5BZR6T/2fQq6hyaCsQ1u
	oFOCpNunhxQHwJXqHmk8W2fvVqErjGfeDjamCJ5ygvKXDhR2ijqMWdKC9dOOFnrTS4NfkV
	VkXRtIXICi+KJZ9m/+r2HTvYCUxCIrbsy6b5QrH7RHJmcgZnjdiI/V5wDA8DozJucgZd4u
	DNxK0l+2ATE37P/xEq7DAPgtkRc55beFqYRzECChl/XhF/MzqZeqUFB2Kzg+jA==
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 4Rl8XB3n3Vz1kR;
	Tue, 12 Sep 2023 03: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 38C3fkZ4070756;
	Tue, 12 Sep 2023 03: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 38C3fkuE070753;
	Tue, 12 Sep 2023 03:41:46 GMT
	(envelope-from git)
Date: Tue, 12 Sep 2023 03:41:46 GMT
Message-Id: <202309120341.38C3fkuE070753@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Robert Clausecker <fuz@FreeBSD.org>
Subject: git: 52d4a4d4e0de - main - lib/libc/amd64/string/strcspn.S:
  fix behaviour with sets of 17--32
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: fuz
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 52d4a4d4e0dedc72bc33082a3f84c2d0fd6f2cbb
Auto-Submitted: auto-generated

The branch main has been updated by fuz:

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

commit 52d4a4d4e0dedc72bc33082a3f84c2d0fd6f2cbb
Author:     Robert Clausecker <fuz@FreeBSD.org>
AuthorDate: 2023-09-11 23:56:30 +0000
Commit:     Robert Clausecker <fuz@FreeBSD.org>
CommitDate: 2023-09-12 02:58:43 +0000

    lib/libc/amd64/string/strcspn.S: fix behaviour with sets of 17--32
    
    When a string is matched against a set of 17--32 characters, each chunk
    of the string is matched first against the first 16 characters of the
    set and then against the remaining characters.  We also check at the
    same time if the string has a nul byte in the current chunk, terminating
    the search if it does.
    
    Due to misconceived logic, the order of checks was "first half of set,
    nul byte, second half of set", meaning that a match with the second half
    of the set was ignored when the string ended in the same 16 bytes.
    Reverse the order of checks to fix this problem.
    
    Sponsored by:   The FreeBSD Foundation
    Approved by:    mjg (blanket, via IRC)
    MFC after:      1 week
    MFC to:         stable/14
---
 lib/libc/amd64/string/strcspn.S | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/lib/libc/amd64/string/strcspn.S b/lib/libc/amd64/string/strcspn.S
index de409db6d472..53100eeea9a5 100644
--- a/lib/libc/amd64/string/strcspn.S
+++ b/lib/libc/amd64/string/strcspn.S
@@ -259,27 +259,32 @@ ARCHENTRY(strcspn, x86_64_v2)
 	movdqu		48(%rsp, %rcx, 1), %xmm3 # second part of set
 
 	/* set is 17--32 bytes in size */
-	pcmpistri	$0, %xmm0, %xmm2	# match in head?
-	jbe		.Lheadmatchv2
-	pcmpistri	$0, %xmm0, %xmm3	# ZF=1 not possible here
+	pcmpistri	$0, %xmm0, %xmm2	# match in first set half?
 	jb		.Lheadmatchv2
+	pcmpistri	$0, %xmm0, %xmm3	# match in second set half or end of string?
+	jbe		.Lheadmatchv2
 
 	ALIGN_TEXT
 0:	movdqa		(%rax), %xmm0
 	pcmpistri	$0, %xmm0, %xmm2
-	jbe		1b
+	jb		2f			# match in first set half?
 	pcmpistri	$0, %xmm0, %xmm3
-	jb		1f			# ZF=1 not possible here
+	jbe		1f			# match in second set half or end of string?
 	movdqa		16(%rax), %xmm0
 	add		$32, %rax
 	pcmpistri	$0, %xmm0, %xmm2
-	jbe		3b
+	jb		3f			# match in first set half?
 	pcmpistri	$0, %xmm0, %xmm3
-	jae		0b			# ZF=1 not possible here
+	ja		0b			# neither match in 2nd half nor string end?
 
-	sub		$16, %rax		# go back to second half
-1:	add		%rcx, %rax
-	sub		%rdi, %rax
+3:	lea		-16(%rax), %rax		# go back to second half
+1:	jc		2f			# jump if match found
+	pxor		%xmm1, %xmm1
+	pcmpeqb		%xmm1, %xmm0		# where is the NUL byte?
+	pmovmskb	%xmm0, %ecx
+	tzcnt		%ecx, %ecx		# location of NUL byte in (%rax)
+2:	sub		%rdi, %rax		# offset of %xmm0 from beginning of string
+	add		%rcx, %rax		# prefix length before match/NUL
 	leave
 	ret
 

From nobody Tue Sep 12 06:28:08 2023
X-Original-To: dev-commits-src-main@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 4RlDD83QL4z4swfl;
	Tue, 12 Sep 2023 06:28: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 4RlDD82pgrz4M6n;
	Tue, 12 Sep 2023 06:28:08 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694500088;
	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=+uwhrrihibYX5hDWFin8HlESoqLRlzzJiaxFdSAO6hk=;
	b=ngejUKw4Z+p7h9doC5YzWFa2qb457xQXvmgb1RljuzRLpF7VzetA8AlOD1HllzP1KYRstI
	NH+pRDHm78qfEtQiO5WnuLw4eHKZgXyiUF59SnavNY5gM8tmKIgWKDvRkI/XsoY2g/52U2
	V5yLqC93hzWEiiL1JK8VELQPnCDIkBI9NmWIe+w/O/Ra/QkGgrkBC7zrNB7BWqJrcaVisw
	B3Pg50DPnBneqJa0yV5k6aZnuiQIplolsZlq71tLKK/bDAoODWCcuU6LUVJw6vaAXZ7OxF
	VrGUTiIE4K3b/LXYdC9jFLfKpMwm5UrMvGo5XzycNs7ewIZaDI4F3w2iS/ZFKg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694500088; a=rsa-sha256; cv=none;
	b=uOagV5RUu3o/rK6INZeBlpEKXZJElWqvyvosqZtNo3E7VhZ3CjlLpYaAGQlMx6FWjmFyu5
	T9Jkg4yUuetlHtKCIP5M5wEdNv8tYEOuMLGe95VfAvrus/X82Q5UswVAJqy8XprnCvg6Yw
	9d08s4UcI3HaZ7g1zkNIBDguNS14d4hS+qveJUKMKKS5iEp6oqmNmRfoZSVpIJVGEfZ7fw
	9e1tNzAb5wKclYibY0BVlZzA5WCzjyqSZ3apQ3YcwEZ/7uyopUFgG8nwEo0OKvaO76alt9
	15BFaG8iO0cY5jZLF+A8SplvGUJEdnSwGSjRkxOb8c0dkiU7RpAqQd3lDd7V9Q==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694500088;
	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=+uwhrrihibYX5hDWFin8HlESoqLRlzzJiaxFdSAO6hk=;
	b=qjGqmD1DaDCV/I65PH+7tQdnkDRYU1zHUjjT1jINvvszXVZ6I2KCWOQTkkCD2qvleCXW0x
	VALCrHSld2jY06RWok96rOU5oFVmAHNCL0WWdtyM9y6xyr17jeMpi0Ty6EilbPT59jpoe5
	ieCGT3fWJH4uo6vtB3wQqxyF/+L4ioxdtQvN/3+0ZxbPzUsZ2REQsxAFgZK4Ww6Fz+icks
	2wuFgpt1z/HSoiFUVAWXHtDyWKZhPLse/+J/Rh8kAkvnhKmTLmSjuTRF/8wxNv/wmE9FD5
	sNyzb2jk9FhnzuAKNRWBjVeAa3rAaJBVI753Ss7/Z7kjyb9wiyqyxfJ5atXOKQ==
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 4RlDD81vZCz5qB;
	Tue, 12 Sep 2023 06:28: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 38C6S8ov038742;
	Tue, 12 Sep 2023 06:28:08 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38C6S8n6038739;
	Tue, 12 Sep 2023 06:28:08 GMT
	(envelope-from git)
Date: Tue, 12 Sep 2023 06:28:08 GMT
Message-Id: <202309120628.38C6S8n6038739@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Xin LI <delphij@FreeBSD.org>
Subject: git: 90474518912f - main - Disable byteswap.h for now.
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@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/main
X-Git-Reftype: branch
X-Git-Commit: 90474518912f5e5f49bc5325b7f88e94eba64d6a
Auto-Submitted: auto-generated

The branch main has been updated by delphij:

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

commit 90474518912f5e5f49bc5325b7f88e94eba64d6a
Author:     Xin LI <delphij@FreeBSD.org>
AuthorDate: 2023-09-12 06:24:08 +0000
Commit:     Xin LI <delphij@FreeBSD.org>
CommitDate: 2023-09-12 06:24:08 +0000

    Disable byteswap.h for now.
    
    Ideally we should be testing __FreeBSD_version (1400079) and/or
    BOOTSTRAPPING from an older version, but restore compatibility to
    older FreeBSD versions and macOS while we find out a better way to
    fix it.
---
 lib/libmagic/config.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/libmagic/config.h b/lib/libmagic/config.h
index b842859fc2ab..232d801a6512 100644
--- a/lib/libmagic/config.h
+++ b/lib/libmagic/config.h
@@ -20,7 +20,7 @@
 #define HAVE_ASPRINTF 1
 
 /* Define to 1 if you have the <byteswap.h> header file. */
-#define HAVE_BYTESWAP_H 1
+/* #undef HAVE_BYTESWAP_H */
 
 /* Define to 1 if you have the <bzlib.h> header file. */
 /* #undef HAVE_BZLIB_H */

From nobody Tue Sep 12 06:44:29 2023
X-Original-To: dev-commits-src-main@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 4RlDb21P8hz4t6DV;
	Tue, 12 Sep 2023 06:44: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 4RlDb20yZqz4V5L;
	Tue, 12 Sep 2023 06:44:30 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694501070;
	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=3gcmahwwtLiWSvEXotIDsF3W/wv+4YuOwlueMJG1fpk=;
	b=ck9CRWQP5JnWlBLM0LdBPTj2iKjI+EVSZ3UmnhYA5CIvIAKxEP8WQeOylYaZHdB0uh6bRd
	n/n6k+PD1yZ0EdeDetNSTc/x8o4WAtjatVPQONZS3i8Li8JyxkZWU9PP1iZgY9s/8wisqm
	oZW5pSZoy69HhIsOQZBsT1zAZQi2qw8RY3rmXG5fIf5Xbjf/9F+yBvGyEQfH19fPNsS5re
	njfMyT7QNQETSTjOz8ticyM6MGSLGoHzQYgmlFj8l9+GBiaLlBlbDgiBHxf0CoLHE0w4cl
	KXZLVZ1JVCm7jtwWrW6VNe/z4jmOGx2b/69GgLAUA9WR16ZwgeWw/eSXHS1+oA==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694501070; a=rsa-sha256; cv=none;
	b=fqQiHXEB/FCLPesY6J4KHryzhKsDZfNSIJ2ux4w6KRhCVbbHGI5bOhAPJluk1gibgHcAFd
	zBVFBvKOpWIYIMNOYYj8TJZclo2K/4klNbsymSrlnJiJ0jsb2ns5XMomxuuVu2M0kdJnHN
	7/sZtgAMHLv+pEL1bwc3jwCnie6VU/yWBLQ6F5Snw4n+IEgT42vO5EtxpbF8ezQwlsoaAe
	rHQAc3Q0uol6ttbAn5/NIpQyKQw3xRw/w20ppXOcR8AWPl4vZBPGTgaTLV9BI8jHsb6m6M
	P90tedhuq5Z+zwQqDBn3XEWDt8W+j6YR9WXP5XIel1/i6fqgkzahGZcdCvV6Uw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694501070;
	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=3gcmahwwtLiWSvEXotIDsF3W/wv+4YuOwlueMJG1fpk=;
	b=diYZITeDG1EIRqdknPNhIt7npVRS3v9cXmH4y+3HHGAYhZA+duaB5eSVyqLPTE9CpLJzHu
	2LAEDQjNFYNnsuv2pHmVIjJry+Djnm4bZknQYvJkdPdPALlVCfni1yL9juMrUoiSF+M9s/
	MZhAqV+UJxUTtKgXsGdiyYRP8GjrSJvLqwX+2BuseN1JJieOmhGrW5Be4TtRLg0AqGmhEL
	K0aWWFk5WLMkhRHjL5ZUI8+GH5lqe2+SbmtXUxQkTxAxulRoWcN752QpBQhF1YpMxotGgN
	zS12LvrNC+Qr58CpZhK51aSymJuPdXKl4YIkr8PqjFxHRxZh6zn5eBlwiNOSkg==
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 4RlDb2039fz6n4;
	Tue, 12 Sep 2023 06:44: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 38C6iT6u071903;
	Tue, 12 Sep 2023 06:44:29 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38C6iT1T071900;
	Tue, 12 Sep 2023 06:44:29 GMT
	(envelope-from git)
Date: Tue, 12 Sep 2023 06:44:29 GMT
Message-Id: <202309120644.38C6iT1T071900@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Wolfram Schneider <wosch@FreeBSD.org>
Subject: git: e47a47b2150f - main - no trailing dot (".") for FreeBSD
  releases PR: 273690
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: wosch
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: e47a47b2150f86216e6eca666d902ce20bd5031a
Auto-Submitted: auto-generated

The branch main has been updated by wosch:

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

commit e47a47b2150f86216e6eca666d902ce20bd5031a
Author:     Wolfram Schneider <wosch@FreeBSD.org>
AuthorDate: 2023-09-12 06:42:47 +0000
Commit:     Wolfram Schneider <wosch@FreeBSD.org>
CommitDate: 2023-09-12 06:42:47 +0000

    no trailing dot (".") for FreeBSD releases
    PR:             273690
---
 share/man/man4/atopcase.4          | 2 +-
 share/man/man4/hconf.4             | 2 +-
 share/man/man4/hcons.4             | 2 +-
 share/man/man4/hgame.4             | 2 +-
 share/man/man4/hidbus.4            | 2 +-
 share/man/man4/hpen.4              | 2 +-
 share/man/man4/hsctrl.4            | 2 +-
 share/man/man4/iichid.4            | 2 +-
 share/man/man4/man4.powerpc/llan.4 | 2 +-
 share/man/man4/ps4dshock.4         | 2 +-
 share/man/man4/usbhid.4            | 2 +-
 share/man/man4/xb360gp.4           | 2 +-
 12 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/share/man/man4/atopcase.4 b/share/man/man4/atopcase.4
index fc93b7094466..33e47ec64ee8 100644
--- a/share/man/man4/atopcase.4
+++ b/share/man/man4/atopcase.4
@@ -108,7 +108,7 @@ device node.
 The
 .Nm
 driver first appeared in
-.Fx 14.0.
+.Fx 14.0 .
 .Sh AUTHORS
 .An -nosplit
 The
diff --git a/share/man/man4/hconf.4 b/share/man/man4/hconf.4
index b271434698d9..179d95a29832 100644
--- a/share/man/man4/hconf.4
+++ b/share/man/man4/hconf.4
@@ -77,7 +77,7 @@ Default is 0.
 The
 .Nm
 driver first appeared in
-.Fx 13.0.
+.Fx 13.0 .
 .Sh AUTHORS
 .An -nosplit
 The
diff --git a/share/man/man4/hcons.4 b/share/man/man4/hcons.4
index 993425e5773e..6cdf0a7dc170 100644
--- a/share/man/man4/hcons.4
+++ b/share/man/man4/hcons.4
@@ -87,7 +87,7 @@ input event device node.
 The
 .Nm
 driver first appeared in
-.Fx 13.0.
+.Fx 13.0 .
 .Sh AUTHORS
 .An -nosplit
 The
diff --git a/share/man/man4/hgame.4 b/share/man/man4/hgame.4
index 58f09e8f4d50..3309833c1720 100644
--- a/share/man/man4/hgame.4
+++ b/share/man/man4/hgame.4
@@ -91,7 +91,7 @@ input event device node.
 The
 .Nm
 driver first appeared in
-.Fx 13.0.
+.Fx 13.0 .
 .Sh AUTHORS
 .An -nosplit
 The
diff --git a/share/man/man4/hidbus.4 b/share/man/man4/hidbus.4
index 8593d1d2c222..f8ebaca8d659 100644
--- a/share/man/man4/hidbus.4
+++ b/share/man/man4/hidbus.4
@@ -91,7 +91,7 @@ Default is 0.
 The
 .Nm
 driver first appeared in
-.Fx 13.0.
+.Fx 13.0 .
 .Sh AUTHORS
 .An -nosplit
 The
diff --git a/share/man/man4/hpen.4 b/share/man/man4/hpen.4
index 64f4200b3b21..d3b69ff1b332 100644
--- a/share/man/man4/hpen.4
+++ b/share/man/man4/hpen.4
@@ -98,7 +98,7 @@ Pen battery charge level reporting is not supported.
 The
 .Nm
 driver first appeared in
-.Fx 13.0.
+.Fx 13.0 .
 .Sh AUTHORS
 .An -nosplit
 The
diff --git a/share/man/man4/hsctrl.4 b/share/man/man4/hsctrl.4
index 64db32f09d41..fa8ae897e64c 100644
--- a/share/man/man4/hsctrl.4
+++ b/share/man/man4/hsctrl.4
@@ -87,7 +87,7 @@ input event device node.
 The
 .Nm
 driver first appeared in
-.Fx 13.0.
+.Fx 13.0 .
 .Sh AUTHORS
 .An -nosplit
 The
diff --git a/share/man/man4/iichid.4 b/share/man/man4/iichid.4
index 62af1e57c6cc..02a91d7811a2 100644
--- a/share/man/man4/iichid.4
+++ b/share/man/man4/iichid.4
@@ -80,7 +80,7 @@ variables for tuning of sampling parameters.
 The
 .Nm
 driver first appeared in
-.Fx 13.0.
+.Fx 13.0 .
 .Sh AUTHORS
 .An -nosplit
 The
diff --git a/share/man/man4/man4.powerpc/llan.4 b/share/man/man4/man4.powerpc/llan.4
index 45f08e7478d1..c32ddbca6a00 100644
--- a/share/man/man4/man4.powerpc/llan.4
+++ b/share/man/man4/man4.powerpc/llan.4
@@ -50,7 +50,7 @@ but these are not currently supported by the driver.
 The
 .Nm
 device driver appeared in
-.Fx 10.0.
+.Fx 10.0 .
 .Sh AUTHORS
 .An -nosplit
 The
diff --git a/share/man/man4/ps4dshock.4 b/share/man/man4/ps4dshock.4
index a6d0df87af76..282a58c49e63 100644
--- a/share/man/man4/ps4dshock.4
+++ b/share/man/man4/ps4dshock.4
@@ -98,7 +98,7 @@ does not support force-feedback events.
 The
 .Nm
 driver first appeared in
-.Fx 13.0.
+.Fx 13.0 .
 .Sh AUTHORS
 .An -nosplit
 The
diff --git a/share/man/man4/usbhid.4 b/share/man/man4/usbhid.4
index 156f53a051ea..c47afaff3534 100644
--- a/share/man/man4/usbhid.4
+++ b/share/man/man4/usbhid.4
@@ -75,7 +75,7 @@ Default is 0.
 The
 .Nm
 driver first appeared in
-.Fx 13.0.
+.Fx 13.0 .
 .Sh AUTHORS
 .An -nosplit
 The
diff --git a/share/man/man4/xb360gp.4 b/share/man/man4/xb360gp.4
index a08063bef42d..4e8d4b65fcfd 100644
--- a/share/man/man4/xb360gp.4
+++ b/share/man/man4/xb360gp.4
@@ -84,7 +84,7 @@ input event device node.
 The
 .Nm
 driver first appeared in
-.Fx 13.0.
+.Fx 13.0 .
 .Sh AUTHORS
 .An -nosplit
 The

From nobody Tue Sep 12 07:45:28 2023
X-Original-To: dev-commits-src-main@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 4RlFxN6RGQz4tf3c;
	Tue, 12 Sep 2023 07:45:28 +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 4RlFxN6FWZz3L6m;
	Tue, 12 Sep 2023 07:45:28 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694504728;
	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=i+gssaAm0IsdcfugEUZzTVMvRQTdZ4uMJ7z0uEKvD9s=;
	b=jdkzr2BtQbO2kZhRUBQmphMn2T2vuYrxWOce3ZynjMxsvFlSHk2iSRxasgTzT+Im3CARqG
	dX2AlwqT8DrAaqgcJQ4/4eUJd5C0zdCXxblkyzua4IbfMK6b4A7tw/SACyTP1/vulztoKL
	nChVs1lwG9ZoYd6OzBL90wkVKeX3kecbul4T8Do48QLIFJyQ+cw7vwTR4V0gbzThzZ8lwW
	UBfhONSBOTaY5kfQ6bTDAeBlJIhSL0+9kQkyA5z3a4SUuwQ02i9IFPo4895OIgGeqbD87u
	/QVFOT43F+HU1DZm+Sy/ch5/k1dXrCeAbeY+eQSduhRydppEoZDHj7D8yMAvKQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694504728; a=rsa-sha256; cv=none;
	b=XcWjfJ7DAMsZXlAsYRZMi1gjEti9ATFtw7BF3yabsXLDzpwnDx8Saxic45QC55j8/c8o+h
	VGLe+FGPvDuNAybKlZQwcxDvZRxTg8dbX76fu28fwPnIlLxoD/w02bwJx13WZ7hi4YqZSs
	GKKMPcuQ/Wwi0YV9g8YTV6aMI7b6iTPuuU98VjlBYY553+L4Y3FXPuBDwKkLwVos71dLck
	SrkTexIakrmnjtZTsyxOreiqdHo7hM24C8k7M4g7ORlXn6Q+PoT0P5FPak02tZFciN85IW
	GQEeJp0YRvEX7IW4G9S+rtOBJAoZISrwgib8kmpa8T3Qr9Um9rUeUKRj+tgYwQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694504728;
	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=i+gssaAm0IsdcfugEUZzTVMvRQTdZ4uMJ7z0uEKvD9s=;
	b=qA3s1b8iBbjREtZcfXlL//gVi1u/uxb29eDiWQSqzQ593pNAMdM619p07tF7YGqx8LV0as
	OEQRMitENe1HcwWjDEAw4Uvc8bar5+p0dhOBQtv/rBtqkQiVl1mr4nsX6sfUpz6ewiMWRy
	Bp37ctTPuof+Y3m7ARlG3vTtQIOhXEYUjEZsIZ48t37mfQ9wJvqzeIXwzwOVM6R3g9dSEn
	DHOAWKqvKPutjL29cRY36MAHCo36Kr75Yn6S3+SMH8a65zeh5olusZ7wSSxjlLb1zrta13
	NaCQd1MWCmwpf+JqAu7SWWmwOwMp0Y+SEKLhg6OCKaRizeB/58t/bbSTYvLmew==
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 4RlFxN5JDfz86x;
	Tue, 12 Sep 2023 07:45:28 +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 38C7jSmM071510;
	Tue, 12 Sep 2023 07:45:28 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38C7jSmp071507;
	Tue, 12 Sep 2023 07:45:28 GMT
	(envelope-from git)
Date: Tue, 12 Sep 2023 07:45:28 GMT
Message-Id: <202309120745.38C7jSmp071507@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Doug Moore <dougm@FreeBSD.org>
Subject: git: 429c871dddda - main - radix_trie: have vm_radix use
  pctrie code
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: dougm
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 429c871ddddac4bbf6abf1eb9e2e6603f87c2ef5
Auto-Submitted: auto-generated

The branch main has been updated by dougm:

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

commit 429c871ddddac4bbf6abf1eb9e2e6603f87c2ef5
Author:     Doug Moore <dougm@FreeBSD.org>
AuthorDate: 2023-09-12 07:42:38 +0000
Commit:     Doug Moore <dougm@FreeBSD.org>
CommitDate: 2023-09-12 07:42:38 +0000

    radix_trie: have vm_radix use pctrie code
    
    Implement everything currently in vm_radix.c with calls to functions
    in subr_pctrie.c, asccessed via the interface provided by the
    DEFINE_PCTRIE_SMR macro.
    
    Add back some #includes removed in the first attempt, and avoid the
    use of a discontinued type in a bit of conditionally compiled code.
    
    Reviewed by:    alc, markj
    Tested by:      pho
    Differential Revision:  https://reviews.freebsd.org/D41344
---
 sys/vm/_vm_radix.h |   9 +-
 sys/vm/vm_radix.c  | 692 +----------------------------------------------------
 sys/vm/vm_radix.h  | 114 +++++++--
 3 files changed, 111 insertions(+), 704 deletions(-)

diff --git a/sys/vm/_vm_radix.h b/sys/vm/_vm_radix.h
index 01eb25a9dccf..2d9b05c7b52a 100644
--- a/sys/vm/_vm_radix.h
+++ b/sys/vm/_vm_radix.h
@@ -31,16 +31,13 @@
 #ifndef __VM_RADIX_H_
 #define __VM_RADIX_H_
 
-/*
- * Radix tree node.
- */
-struct vm_radix_node;
+#include <sys/_pctrie.h>
 
 /*
- * Radix tree root.
+ * Radix tree
  */
 struct vm_radix {
-	struct vm_radix_node	*rt_root;
+	struct pctrie	rt_trie;
 };
 
 #endif /* !__VM_RADIX_H_ */
diff --git a/sys/vm/vm_radix.c b/sys/vm/vm_radix.c
index 768a56ed76f7..57c39d8d89d7 100644
--- a/sys/vm/vm_radix.c
+++ b/sys/vm/vm_radix.c
@@ -57,6 +57,7 @@
 #include <sys/systm.h>
 #include <sys/kernel.h>
 #include <sys/libkern.h>
+#include <sys/pctrie.h>
 #include <sys/proc.h>
 #include <sys/vmmeter.h>
 #include <sys/smr.h>
@@ -64,292 +65,21 @@
 
 #include <vm/uma.h>
 #include <vm/vm.h>
-#include <vm/vm_param.h>
-#include <vm/vm_object.h>
-#include <vm/vm_page.h>
 #include <vm/vm_radix.h>
 
-#ifdef DDB
-#include <ddb/ddb.h>
-#endif
-
-/*
- * These widths should allow the pointers to a node's children to fit within
- * a single cache line.  The extra levels from a narrow width should not be
- * a problem thanks to path compression.
- */
-#ifdef __LP64__
-#define	VM_RADIX_WIDTH	4
-#else
-#define	VM_RADIX_WIDTH	3
-#endif
-
-#define	VM_RADIX_COUNT	(1 << VM_RADIX_WIDTH)
-#define	VM_RADIX_MASK	(VM_RADIX_COUNT - 1)
-#define	VM_RADIX_LIMIT							\
-	(howmany(sizeof(vm_pindex_t) * NBBY, VM_RADIX_WIDTH) - 1)
-
-#if VM_RADIX_WIDTH == 3
-typedef uint8_t rn_popmap_t;
-#elif VM_RADIX_WIDTH == 4
-typedef uint16_t rn_popmap_t;
-#elif VM_RADIX_WIDTH == 5
-typedef uint32_t rn_popmap_t;
-#else
-#error Unsupported width
-#endif
-_Static_assert(sizeof(rn_popmap_t) <= sizeof(int),
-    "rn_popmap_t too wide");
-
-/* Set of all flag bits stored in node pointers. */
-#define	VM_RADIX_FLAGS	(VM_RADIX_ISLEAF)
-#define	VM_RADIX_PAD	VM_RADIX_FLAGS
-
-enum vm_radix_access { SMR, LOCKED, UNSERIALIZED };
-
-struct vm_radix_node;
-typedef SMR_POINTER(struct vm_radix_node *) smrnode_t;
-
-struct vm_radix_node {
-	vm_pindex_t	rn_owner;			/* Owner of record. */
-	rn_popmap_t	rn_popmap;			/* Valid children. */
-	uint8_t		rn_clev;			/* Level * WIDTH. */
-	smrnode_t	rn_child[VM_RADIX_COUNT];	/* Child nodes. */
-};
-
 static uma_zone_t vm_radix_node_zone;
-static smr_t vm_radix_smr;
-
-static void vm_radix_node_store(smrnode_t *p, struct vm_radix_node *v,
-    enum vm_radix_access access);
-
-/*
- * Map index to an array position for the children of rnode,
- */
-static __inline int
-vm_radix_slot(struct vm_radix_node *rnode, vm_pindex_t index)
-{
-	return ((index >> rnode->rn_clev) & VM_RADIX_MASK);
-}
-
-/*
- * Returns true if index does not belong to the specified rnode.  Otherwise,
- * sets slot value, and returns false.
- */
-static __inline bool
-vm_radix_keybarr(struct vm_radix_node *rnode, vm_pindex_t index, int *slot)
-{
-	index = (index - rnode->rn_owner) >> rnode->rn_clev;
-	if (index >= VM_RADIX_COUNT)
-		return (true);
-	*slot = index;
-	return (false);
-}
-
-/*
- * Allocate a radix node.
- */
-static struct vm_radix_node *
-vm_radix_node_get(vm_pindex_t index, vm_pindex_t newind)
-{
-	struct vm_radix_node *rnode;
-
-	rnode = uma_zalloc_smr(vm_radix_node_zone, M_NOWAIT);
-	if (rnode == NULL)
-		return (NULL);
-
-	/*
-	 * We want to clear the last child pointer after the final section
-	 * has exited so lookup can not return false negatives.  It is done
-	 * here because it will be cache-cold in the dtor callback.
-	 */
-	if (rnode->rn_popmap != 0) {
-		vm_radix_node_store(&rnode->rn_child[ffs(rnode->rn_popmap) - 1],
-		    VM_RADIX_NULL, UNSERIALIZED);
-		rnode->rn_popmap = 0;
-	}
-
-	/*
-	 * From the highest-order bit where the indexes differ,
-	 * compute the highest level in the trie where they differ.  Then,
-	 * compute the least index of this subtrie.
-	 */
-	KASSERT(index != newind, ("%s: passing the same key value %jx",
-	    __func__, (uintmax_t)index));
-	_Static_assert(sizeof(long long) >= sizeof(vm_pindex_t),
-	    "vm_pindex_t too wide");
-	_Static_assert(sizeof(vm_pindex_t) * NBBY <=
-	    (1 << (sizeof(rnode->rn_clev) * NBBY)), "rn_clev too narrow");
-	rnode->rn_clev = rounddown(flsll(index ^ newind) - 1, VM_RADIX_WIDTH);
-	rnode->rn_owner = VM_RADIX_COUNT;
-	rnode->rn_owner = index & -(rnode->rn_owner << rnode->rn_clev);
-	return (rnode);
-}
-
-/*
- * Free radix node.
- */
-static __inline void
-vm_radix_node_put(struct vm_radix_node *rnode)
-{
-#ifdef INVARIANTS
-	int slot;
-
-	KASSERT(powerof2(rnode->rn_popmap),
-	    ("vm_radix_node_put: rnode %p has too many children %04x", rnode,
-	    rnode->rn_popmap));
-	for (slot = 0; slot < VM_RADIX_COUNT; slot++) {
-		if ((rnode->rn_popmap & (1 << slot)) != 0)
-			continue;
-		KASSERT(smr_unserialized_load(&rnode->rn_child[slot], true) ==
-		    VM_RADIX_NULL,
-		    ("vm_radix_node_put: rnode %p has a child", rnode));
-	}
-#endif
-	uma_zfree_smr(vm_radix_node_zone, rnode);
-}
-
-/*
- * Fetch a node pointer from a slot in another node.
- */
-static __inline struct vm_radix_node *
-vm_radix_node_load(smrnode_t *p, enum vm_radix_access access)
-{
-
-	switch (access) {
-	case UNSERIALIZED:
-		return (smr_unserialized_load(p, true));
-	case LOCKED:
-		return (smr_serialized_load(p, true));
-	case SMR:
-		return (smr_entered_load(p, vm_radix_smr));
-	}
-	__assert_unreachable();
-}
-
-static __inline void
-vm_radix_node_store(smrnode_t *p, struct vm_radix_node *v,
-    enum vm_radix_access access)
-{
-
-	switch (access) {
-	case UNSERIALIZED:
-		smr_unserialized_store(p, v, true);
-		break;
-	case LOCKED:
-		smr_serialized_store(p, v, true);
-		break;
-	case SMR:
-		panic("vm_radix_node_store: Not supported in smr section.");
-	}
-}
-
-/*
- * Get the root node for a radix tree.
- */
-static __inline struct vm_radix_node *
-vm_radix_root_load(struct vm_radix *rtree, enum vm_radix_access access)
-{
+smr_t vm_radix_smr;
 
-	return (vm_radix_node_load((smrnode_t *)&rtree->rt_root, access));
-}
-
-/*
- * Set the root node for a radix tree.
- */
-static __inline void
-vm_radix_root_store(struct vm_radix *rtree, struct vm_radix_node *rnode,
-    enum vm_radix_access access)
-{
-
-	vm_radix_node_store((smrnode_t *)&rtree->rt_root, rnode, access);
-}
-
-/*
- * Returns TRUE if the specified radix node is a leaf and FALSE otherwise.
- */
-static __inline bool
-vm_radix_isleaf(struct vm_radix_node *rnode)
-{
-
-	return (((uintptr_t)rnode & VM_RADIX_ISLEAF) != 0);
-}
-
-/*
- * Returns page cast to radix node with leaf bit set.
- */
-static __inline struct vm_radix_node *
-vm_radix_toleaf(vm_page_t page)
-{
-	return ((struct vm_radix_node *)((uintptr_t)page | VM_RADIX_ISLEAF));
-}
-
-/*
- * Returns the associated page extracted from rnode.
- */
-static __inline vm_page_t
-vm_radix_topage(struct vm_radix_node *rnode)
-{
-
-	return ((vm_page_t)((uintptr_t)rnode & ~VM_RADIX_FLAGS));
-}
-
-/*
- * Make 'child' a child of 'rnode'.
- */
-static __inline void
-vm_radix_addnode(struct vm_radix_node *rnode, vm_pindex_t index,
-    struct vm_radix_node *child, enum vm_radix_access access)
-{
-	int slot;
-
-	slot = vm_radix_slot(rnode, index);
-	vm_radix_node_store(&rnode->rn_child[slot], child, access);
-	rnode->rn_popmap ^= 1 << slot;
-	KASSERT((rnode->rn_popmap & (1 << slot)) != 0,
-	    ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode));
-}
-
-/*
- * Internal helper for vm_radix_reclaim_allnodes().
- * This function is recursive.
- */
-static void
-vm_radix_reclaim_allnodes_int(struct vm_radix_node *rnode)
+void *
+vm_radix_node_alloc(struct pctrie *ptree)
 {
-	struct vm_radix_node *child;
-	int slot;
-
-	while (rnode->rn_popmap != 0) {
-		slot = ffs(rnode->rn_popmap) - 1;
-		child = vm_radix_node_load(&rnode->rn_child[slot],
-		    UNSERIALIZED);
-		KASSERT(child != VM_RADIX_NULL,
-		    ("%s: bad popmap slot %d in rnode %p",
-		    __func__, slot, rnode));
-		if (!vm_radix_isleaf(child))
-			vm_radix_reclaim_allnodes_int(child);
-		rnode->rn_popmap ^= 1 << slot;
-		vm_radix_node_store(&rnode->rn_child[slot], VM_RADIX_NULL,
-		    UNSERIALIZED);
-	}
-	vm_radix_node_put(rnode);
+	return (uma_zalloc_smr(vm_radix_node_zone, M_NOWAIT));
 }
 
-/*
- * radix node zone initializer.
- */
-static int
-vm_radix_zone_init(void *mem, int size, int flags)
+void
+vm_radix_node_free(struct pctrie *ptree, void *node)
 {
-	struct vm_radix_node *rnode;
-
-	rnode = mem;
-	rnode->rn_popmap = 0;
-	for (int i = 0; i < nitems(rnode->rn_child); i++)
-		vm_radix_node_store(&rnode->rn_child[i], VM_RADIX_NULL,
-		    UNSERIALIZED);
-	return (0);
+	uma_zfree_smr(vm_radix_node_zone, node);
 }
 
 #ifndef UMA_MD_SMALL_ALLOC
@@ -371,7 +101,7 @@ vm_radix_reserve_kva(void)
 	 */
 	if (!uma_zone_reserve_kva(vm_radix_node_zone,
 	    ((vm_paddr_t)vm_cnt.v_page_count * PAGE_SIZE) / (PAGE_SIZE +
-	    sizeof(struct vm_radix_node))))
+	    pctrie_node_size()))
 		panic("%s: unable to reserve KVA", __func__);
 }
 #endif
@@ -383,412 +113,14 @@ void
 vm_radix_zinit(void)
 {
 
-	vm_radix_node_zone = uma_zcreate("RADIX NODE",
-	    sizeof(struct vm_radix_node), NULL, NULL, vm_radix_zone_init, NULL,
-	    VM_RADIX_PAD, UMA_ZONE_VM | UMA_ZONE_SMR);
+	vm_radix_node_zone = uma_zcreate("RADIX NODE", pctrie_node_size(),
+	    NULL, NULL, pctrie_zone_init, NULL,
+	    PCTRIE_PAD, UMA_ZONE_VM | UMA_ZONE_SMR);
 	vm_radix_smr = uma_zone_get_smr(vm_radix_node_zone);
 }
 
-/*
- * Inserts the key-value pair into the trie.
- * Panics if the key already exists.
- */
-int
-vm_radix_insert(struct vm_radix *rtree, vm_page_t page)
-{
-	vm_pindex_t index, newind;
-	struct vm_radix_node *leaf, *parent, *rnode;
-	smrnode_t *parentp;
-	int slot;
-
-	index = page->pindex;
-	leaf = vm_radix_toleaf(page);
-
-	/*
-	 * The owner of record for root is not really important because it
-	 * will never be used.
-	 */
-	rnode = vm_radix_root_load(rtree, LOCKED);
-	parent = NULL;
-	for (;;) {
-		if (vm_radix_isleaf(rnode)) {
-			if (rnode == VM_RADIX_NULL) {
-				if (parent == NULL)
-					rtree->rt_root = leaf;
-				else
-					vm_radix_addnode(parent, index, leaf,
-					    LOCKED);
-				return (0);
-			}
-			newind = vm_radix_topage(rnode)->pindex;
-			if (newind == index)
-				panic("%s: key %jx is already present",
-				    __func__, (uintmax_t)index);
-			break;
-		}
-		if (vm_radix_keybarr(rnode, index, &slot)) {
-			newind = rnode->rn_owner;
-			break;
-		}
-		parent = rnode;
-		rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
-	}
-
-	/*
-	 * A new node is needed because the right insertion level is reached.
-	 * Setup the new intermediate node and add the 2 children: the
-	 * new object and the older edge or object.
-	 */
-	parentp = (parent != NULL) ? &parent->rn_child[slot]:
-	    (smrnode_t *)&rtree->rt_root;
-	parent = vm_radix_node_get(index, newind);
-	if (parent == NULL)
-		return (ENOMEM);
-	/* These writes are not yet visible due to ordering. */
-	vm_radix_addnode(parent, index, leaf, UNSERIALIZED);
-	vm_radix_addnode(parent, newind, rnode, UNSERIALIZED);
-	/* Serializing write to make the above visible. */
-	vm_radix_node_store(parentp, parent, LOCKED);
-	return (0);
-}
-
-/*
- * Returns the value stored at the index.  If the index is not present,
- * NULL is returned.
- */
-static __always_inline vm_page_t
-_vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index,
-    enum vm_radix_access access)
-{
-	struct vm_radix_node *rnode;
-	vm_page_t m;
-	int slot;
-
-	rnode = vm_radix_root_load(rtree, access);
-	for (;;) {
-		if (vm_radix_isleaf(rnode)) {
-			if ((m = vm_radix_topage(rnode)) != NULL &&
-			    m->pindex == index)
-				return (m);
-			break;
-		}
-		if (vm_radix_keybarr(rnode, index, &slot))
-			break;
-		rnode = vm_radix_node_load(&rnode->rn_child[slot], access);
-	}
-	return (NULL);
-}
-
-/*
- * Returns the value stored at the index assuming there is an external lock.
- *
- * If the index is not present, NULL is returned.
- */
-vm_page_t
-vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index)
-{
-
-	return _vm_radix_lookup(rtree, index, LOCKED);
-}
-
-/*
- * Returns the value stored at the index without requiring an external lock.
- *
- * If the index is not present, NULL is returned.
- */
-vm_page_t
-vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index)
-{
-	vm_page_t m;
-
-	smr_enter(vm_radix_smr);
-	m = _vm_radix_lookup(rtree, index, SMR);
-	smr_exit(vm_radix_smr);
-
-	return (m);
-}
-
-/*
- * Returns the page with the least pindex that is greater than or equal to the
- * specified pindex, or NULL if there are no such pages.
- *
- * Requires that access be externally synchronized by a lock.
- */
-vm_page_t
-vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index)
-{
-	struct vm_radix_node *rnode, *succ;
-	vm_page_t m;
-	int slot;
-
-	/*
-	 * Descend the trie as if performing an ordinary lookup for the page
-	 * with the specified pindex.  However, unlike an ordinary lookup, as we
-	 * descend the trie, we use "succ" to remember the last branching-off
-	 * point, that is, the interior node under which the page with the least
-	 * pindex that is both outside our current path down the trie and more
-	 * than the specified pindex resides.  (The node's popmap makes it fast
-	 * and easy to recognize a branching-off point.)  If our ordinary lookup
-	 * fails to yield a page with a pindex that is greater than or equal to
-	 * the specified pindex, then we will exit this loop and perform a
-	 * lookup starting from "succ".  If "succ" is not NULL, then that lookup
-	 * is guaranteed to succeed.
-	 */
-	rnode = vm_radix_root_load(rtree, LOCKED);
-	succ = NULL;
-	for (;;) {
-		if (vm_radix_isleaf(rnode)) {
-			if ((m = vm_radix_topage(rnode)) != NULL &&
-			    m->pindex >= index)
-				return (m);
-			break;
-		}
-		if (vm_radix_keybarr(rnode, index, &slot)) {
-			/*
-			 * If all pages in this subtree have pindex > index,
-			 * then the page in this subtree with the least pindex
-			 * is the answer.
-			 */
-			if (rnode->rn_owner > index)
-				succ = rnode;
-			break;
-		}
-
-		/*
-		 * Just in case the next search step leads to a subtree of all
-		 * pages with pindex < index, check popmap to see if a next
-		 * bigger step, to a subtree of all pages with pindex > index,
-		 * is available.  If so, remember to restart the search here.
-		 */
-		if ((rnode->rn_popmap >> slot) > 1)
-			succ = rnode;
-		rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
-	}
-
-	/*
-	 * Restart the search from the last place visited in the subtree that
-	 * included some pages with pindex > index, if there was such a place.
-	 */
-	if (succ == NULL)
-		return (NULL);
-	if (succ != rnode) {
-		/*
-		 * Take a step to the next bigger sibling of the node chosen
-		 * last time.  In that subtree, all pages have pindex > index.
-		 */
-		slot = vm_radix_slot(succ, index) + 1;
-		KASSERT((succ->rn_popmap >> slot) != 0,
-		    ("%s: no popmap siblings past slot %d in node %p",
-		    __func__, slot, succ));
-		slot += ffs(succ->rn_popmap >> slot) - 1;
-		succ = vm_radix_node_load(&succ->rn_child[slot], LOCKED);
-	}
-
-	/*
-	 * Find the page in the subtree rooted at "succ" with the least pindex.
-	 */
-	while (!vm_radix_isleaf(succ)) {
-		KASSERT(succ->rn_popmap != 0,
-		    ("%s: no popmap children in node %p",  __func__, succ));
-		slot = ffs(succ->rn_popmap) - 1;
-		succ = vm_radix_node_load(&succ->rn_child[slot], LOCKED);
-	}
-	return (vm_radix_topage(succ));
-}
-
-/*
- * Returns the page with the greatest pindex that is less than or equal to the
- * specified pindex, or NULL if there are no such pages.
- *
- * Requires that access be externally synchronized by a lock.
- */
-vm_page_t
-vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index)
-{
-	struct vm_radix_node *pred, *rnode;
-	vm_page_t m;
-	int slot;
-
-	/*
-	 * Mirror the implementation of vm_radix_lookup_ge, described above.
-	 */
-	rnode = vm_radix_root_load(rtree, LOCKED);
-	pred = NULL;
-	for (;;) {
-		if (vm_radix_isleaf(rnode)) {
-			if ((m = vm_radix_topage(rnode)) != NULL &&
-			    m->pindex <= index)
-				return (m);
-			break;
-		}
-		if (vm_radix_keybarr(rnode, index, &slot)) {
-			if (rnode->rn_owner < index)
-				pred = rnode;
-			break;
-		}
-		if ((rnode->rn_popmap & ((1 << slot) - 1)) != 0)
-			pred = rnode;
-		rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
-	}
-	if (pred == NULL)
-		return (NULL);
-	if (pred != rnode) {
-		slot = vm_radix_slot(pred, index);
-		KASSERT((pred->rn_popmap & ((1 << slot) - 1)) != 0,
-		    ("%s: no popmap siblings before slot %d in node %p",
-		    __func__, slot, pred));
-		slot = fls(pred->rn_popmap & ((1 << slot) - 1)) - 1;
-		pred = vm_radix_node_load(&pred->rn_child[slot], LOCKED);
-	}
-	while (!vm_radix_isleaf(pred)) {
-		KASSERT(pred->rn_popmap != 0,
-		    ("%s: no popmap children in node %p",  __func__, pred));
-		slot = fls(pred->rn_popmap) - 1;
-		pred = vm_radix_node_load(&pred->rn_child[slot], LOCKED);
-	}
-	return (vm_radix_topage(pred));
-}
-
-/*
- * Remove the specified index from the trie, and return the value stored at
- * that index.  If the index is not present, return NULL.
- */
-vm_page_t
-vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index)
-{
-	struct vm_radix_node *child, *parent, *rnode;
-	vm_page_t m;
-	int slot;
-
-	rnode = NULL;
-	child = vm_radix_root_load(rtree, LOCKED);
-	for (;;) {
-		if (vm_radix_isleaf(child))
-			break;
-		parent = rnode;
-		rnode = child;
-		slot = vm_radix_slot(rnode, index);
-		child = vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
-	}
-	if ((m = vm_radix_topage(child)) == NULL || m->pindex != index)
-		return (NULL);
-	if (rnode == NULL) {
-		vm_radix_root_store(rtree, VM_RADIX_NULL, LOCKED);
-		return (m);
-	}
-	KASSERT((rnode->rn_popmap & (1 << slot)) != 0,
-	    ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode));
-	rnode->rn_popmap ^= 1 << slot;
-	vm_radix_node_store(&rnode->rn_child[slot], VM_RADIX_NULL, LOCKED);
-	if (!powerof2(rnode->rn_popmap))
-		return (m);
-	KASSERT(rnode->rn_popmap != 0, ("%s: bad popmap all zeroes", __func__));
-	slot = ffs(rnode->rn_popmap) - 1;
-	child = vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
-	KASSERT(child != VM_RADIX_NULL,
-	    ("%s: bad popmap slot %d in rnode %p", __func__, slot, rnode));
-	if (parent == NULL)
-		vm_radix_root_store(rtree, child, LOCKED);
-	else {
-		slot = vm_radix_slot(parent, index);
-		KASSERT(rnode ==
-		    vm_radix_node_load(&parent->rn_child[slot], LOCKED),
-		    ("%s: invalid child value", __func__));
-		vm_radix_node_store(&parent->rn_child[slot], child, LOCKED);
-	}
-	/*
-	 * The child is still valid and we can not zero the
-	 * pointer until all smr references are gone.
-	 */
-	vm_radix_node_put(rnode);
-	return (m);
-}
-
-/*
- * Remove and free all the nodes from the radix tree.
- * This function is recursive but there is a tight control on it as the
- * maximum depth of the tree is fixed.
- */
-void
-vm_radix_reclaim_allnodes(struct vm_radix *rtree)
-{
-	struct vm_radix_node *root;
-
-	root = vm_radix_root_load(rtree, LOCKED);
-	if (root == VM_RADIX_NULL)
-		return;
-	vm_radix_root_store(rtree, VM_RADIX_NULL, UNSERIALIZED);
-	if (!vm_radix_isleaf(root))
-		vm_radix_reclaim_allnodes_int(root);
-}
-
-/*
- * Replace an existing page in the trie with another one.
- * Panics if there is not an old page in the trie at the new page's index.
- */
-vm_page_t
-vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage)
-{
-	struct vm_radix_node *leaf, *parent, *rnode;
-	vm_page_t m;
-	vm_pindex_t index;
-	int slot;
-
-	leaf = vm_radix_toleaf(newpage);
-	index = newpage->pindex;
-	rnode = vm_radix_root_load(rtree, LOCKED);
-	parent = NULL;
-	for (;;) {
-		if (vm_radix_isleaf(rnode)) {
-			if ((m = vm_radix_topage(rnode)) != NULL &&
-			    m->pindex == index) {
-				if (parent == NULL)
-					rtree->rt_root = leaf;
-				else
-					vm_radix_node_store(
-					    &parent->rn_child[slot], leaf,
-					    LOCKED);
-				return (m);
-			}
-			break;
-		}
-		if (vm_radix_keybarr(rnode, index, &slot))
-			break;
-		parent = rnode;
-		rnode = vm_radix_node_load(&rnode->rn_child[slot], LOCKED);
-	}
-	panic("%s: original replacing page not found", __func__);
-}
-
 void
 vm_radix_wait(void)
 {
 	uma_zwait(vm_radix_node_zone);
 }
-
-#ifdef DDB
-/*
- * Show details about the given radix node.
- */
-DB_SHOW_COMMAND(radixnode, db_show_radixnode)
-{
-	struct vm_radix_node *rnode, *tmp;
-	int slot;
-	rn_popmap_t popmap;
-
-        if (!have_addr)
-                return;
-	rnode = (struct vm_radix_node *)addr;
-	db_printf("radixnode %p, owner %jx, children popmap %04x, level %u:\n",
-	    (void *)rnode, (uintmax_t)rnode->rn_owner, rnode->rn_popmap,
-	    rnode->rn_clev / VM_RADIX_WIDTH);
-	for (popmap = rnode->rn_popmap; popmap != 0; popmap ^= 1 << slot) {
-		slot = ffs(popmap) - 1;
-		tmp = vm_radix_node_load(&rnode->rn_child[slot], UNSERIALIZED);
-		db_printf("slot: %d, val: %p, page: %p, clev: %d\n",
-		    slot, (void *)tmp,
-		    vm_radix_isleaf(tmp) ?  vm_radix_topage(tmp) : NULL,
-		    rnode->rn_clev / VM_RADIX_WIDTH);
-	}
-}
-#endif /* DDB */
diff --git a/sys/vm/vm_radix.h b/sys/vm/vm_radix.h
index 231edda65102..815c915b5fb1 100644
--- a/sys/vm/vm_radix.h
+++ b/sys/vm/vm_radix.h
@@ -34,36 +34,114 @@
 #include <vm/_vm_radix.h>
 
 #ifdef _KERNEL
+#include <sys/pctrie.h>
+#include <vm/vm_page.h>
+#include <vm/vm.h>
 
-int		vm_radix_insert(struct vm_radix *rtree, vm_page_t page);
 void		vm_radix_wait(void);
-vm_page_t	vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index);
-vm_page_t	vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index);
-vm_page_t	vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index);
-vm_page_t	vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index);
-void		vm_radix_reclaim_allnodes(struct vm_radix *rtree);
-vm_page_t	vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index);
-vm_page_t	vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage);
 void		vm_radix_zinit(void);
-
-/*
- * Each search path in the trie terminates at a leaf, which is a pointer to a
- * page marked with a set 1-bit.  A leaf may be associated with a null pointer
- * to indicate no page there.
- */
-#define	VM_RADIX_ISLEAF	0x1
-#define VM_RADIX_NULL (struct vm_radix_node *)VM_RADIX_ISLEAF
+void		*vm_radix_node_alloc(struct pctrie *ptree);
+void		vm_radix_node_free(struct pctrie *ptree, void *node);
+extern smr_t	vm_radix_smr;
 
 static __inline void
 vm_radix_init(struct vm_radix *rtree)
 {
-	rtree->rt_root = VM_RADIX_NULL;
+	pctrie_init(&rtree->rt_trie);
 }
 
 static __inline bool
 vm_radix_is_empty(struct vm_radix *rtree)
 {
-	return (rtree->rt_root == VM_RADIX_NULL);
+	return (pctrie_is_empty(&rtree->rt_trie));
+}
+
+PCTRIE_DEFINE_SMR(VM_RADIX, vm_page, pindex, vm_radix_node_alloc, vm_radix_node_free,
+    vm_radix_smr);
+
+/*
+ * Inserts the key-value pair into the trie.
+ * Panics if the key already exists.
+ */
+static __inline int
+vm_radix_insert(struct vm_radix *rtree, vm_page_t page)
+{
+	return (VM_RADIX_PCTRIE_INSERT(&rtree->rt_trie, page));
+}
+
+/*
+ * Returns the value stored at the index assuming there is an external lock.
+ *
+ * If the index is not present, NULL is returned.
+ */
+static __inline vm_page_t
+vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index)
+{
+	return (VM_RADIX_PCTRIE_LOOKUP(&rtree->rt_trie, index));
+}
+
+/*
+ * Returns the value stored at the index without requiring an external lock.
+ *
+ * If the index is not present, NULL is returned.
+ */
+static __inline vm_page_t
+vm_radix_lookup_unlocked(struct vm_radix *rtree, vm_pindex_t index)
+{
+	return (VM_RADIX_PCTRIE_LOOKUP_UNLOCKED(&rtree->rt_trie, index));
+}
+
+/*
+ * Returns the page with the least pindex that is greater than or equal to the
+ * specified pindex, or NULL if there are no such pages.
+ *
+ * Requires that access be externally synchronized by a lock.
+ */
+static __inline vm_page_t
+vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index)
+{
+	return (VM_RADIX_PCTRIE_LOOKUP_GE(&rtree->rt_trie, index));
+}
+
+/*
+ * Returns the page with the greatest pindex that is less than or equal to the
+ * specified pindex, or NULL if there are no such pages.
+ *
+ * Requires that access be externally synchronized by a lock.
+ */
+static __inline vm_page_t
+vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index)
+{
+	return (VM_RADIX_PCTRIE_LOOKUP_LE(&rtree->rt_trie, index));
+}
+
+/*
+ * Remove the specified index from the trie, and return the value stored at
+ * that index.  If the index is not present, return NULL.
+ */
+static __inline vm_page_t
+vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index)
+{
+	return (VM_RADIX_PCTRIE_REMOVE_LOOKUP(&rtree->rt_trie, index));
+}
+
+/*
+ * Remove and free all the nodes from the radix tree.
+ */
+static __inline void
+vm_radix_reclaim_allnodes(struct vm_radix *rtree)
+{
+	VM_RADIX_PCTRIE_RECLAIM(&rtree->rt_trie);
+}
+
+/*
+ * Replace an existing page in the trie with another one.
+ * Panics if there is not an old page in the trie at the new page's index.
+ */
+static __inline vm_page_t
+vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage)
+{
+	return (VM_RADIX_PCTRIE_REPLACE(&rtree->rt_trie, newpage));
 }
 
 #endif /* _KERNEL */

From nobody Tue Sep 12 09:21:30 2023
X-Original-To: dev-commits-src-main@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 4RlJ4C0jt1z4tFmt;
	Tue, 12 Sep 2023 09:21: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 4RlJ4C0HkBz4GPV;
	Tue, 12 Sep 2023 09:21:31 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694510491;
	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=n+zGZHMY1F7/arPjqaEy8XiKKl6lStTfAb6Uy5+N4KQ=;
	b=PDe1IxHXzG1BFHxCN89LlpXImLyv6GSMeLtEX/rjBhnCzTvVxMoniFX586/nCOHf2m/yUB
	Z6w0hyjjV6HeJjXPlH8ZdzkSNWOFSC6kvTeG1jh70O7fhrZDfC5M8FMqYu+T0t4gFn4bII
	tQETUZdlUsluI4bI6FSHhU9hQ/N8BTo6F33vAkozeQVlmPK4kng8/U/4Gj6SgnB3CfStEe
	REjWeNwI4YDh0sYl9pkL2RYgMSQo+ZdtVbIdhEhJjJQGcdNIem2bpJHoSML+dc8hdPjl5o
	51hJ9vOTYA7fmuwq2xME20sws5bYaLbot2hlLD475yo0zNAr/wPsMmt3WaKWOQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694510491; a=rsa-sha256; cv=none;
	b=hg2ObkTHJAheF+71ncEP4bmhpM4aJVEDVaHRpxK2j2KaezC/cBNqIbVrK8ChP/5e785n5f
	JMxqcfdEH5NbSp8ZMSPLG/WcePRFwHfWnQf0AKZP86aR++eJeAAs1BfvHO5ZJXyKfc0koP
	zVfUs5xes07Ti8vWVYq6v2xu7o/Y6b4wOvlHUz1k3tcIeh8rDVPI3y74RZzNdXVWXsdOA7
	R43HcxPw7oJKGzreyiAbzl4bq8pwPxRtL2qrYdIG/k4iAFoE72BRZ/W+UKSEeS3378uTwV
	LgX2/L2yrJJ0/lqq67qbPRCgcmArC0JWoRitUuDFE/wF2qyhFTmiZI0FgixsxQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694510491;
	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=n+zGZHMY1F7/arPjqaEy8XiKKl6lStTfAb6Uy5+N4KQ=;
	b=cJwQXm1fB4xvtmqe1hi6tQSqBSjXact2cnmHMGXSAQvNVsyiP3PVXgMt94MXfj2Ollf+yk
	+lACchSiBKRDLdM/c29foBjfMhRDwInNLeLgGj4hO6hMJ1Gz3DXvKu+xEZd9uUJBcTSRRb
	CCaUWgtOnM0CJjTof+mfz2EOhb8hNzle9zOzaRNj1qzBgUO1J+N77/xL9M0vCEYw4CfJpL
	Y1QvZBfISaKMq+vPsV9swJf6PtXo8d9OvIvBGO4oxjejw5Ajioh2ruPuddTf1WMzjTgcPt
	qwoc2F7+q2yRBKQmGDpbIY7SCVMdo7zSrbdO2A6KDfpBKks3CnV+OG2LAiaGUA==
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 4RlJ4B6TFmzBWg;
	Tue, 12 Sep 2023 09:21: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 38C9LUwp032308;
	Tue, 12 Sep 2023 09:21:30 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38C9LUpI032305;
	Tue, 12 Sep 2023 09:21:30 GMT
	(envelope-from git)
Date: Tue, 12 Sep 2023 09:21:30 GMT
Message-Id: <202309120921.38C9LUpI032305@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Doug Moore <dougm@FreeBSD.org>
Subject: git: 10db91ecec98 - main - vm_radix: add a missing paren
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: dougm
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 10db91ecec98b151046c8c5dce63b2995910fb1b
Auto-Submitted: auto-generated

The branch main has been updated by dougm:

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

commit 10db91ecec98b151046c8c5dce63b2995910fb1b
Author:     Doug Moore <dougm@FreeBSD.org>
AuthorDate: 2023-09-12 09:19:51 +0000
Commit:     Doug Moore <dougm@FreeBSD.org>
CommitDate: 2023-09-12 09:19:51 +0000

    vm_radix: add a missing paren
    
    429c871ddddac4bbf6abf1eb9e2e6603f87c2ef5 left parens unbalanced in a
    powerpc case that my testing missed.  Restore balance.
    
    Reported by:    jenkins
---
 sys/vm/vm_radix.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys/vm/vm_radix.c b/sys/vm/vm_radix.c
index 57c39d8d89d7..cfc5a82eacc8 100644
--- a/sys/vm/vm_radix.c
+++ b/sys/vm/vm_radix.c
@@ -101,7 +101,7 @@ vm_radix_reserve_kva(void)
 	 */
 	if (!uma_zone_reserve_kva(vm_radix_node_zone,
 	    ((vm_paddr_t)vm_cnt.v_page_count * PAGE_SIZE) / (PAGE_SIZE +
-	    pctrie_node_size()))
+	    pctrie_node_size())))
 		panic("%s: unable to reserve KVA", __func__);
 }
 #endif

From nobody Tue Sep 12 10:37:56 2023
X-Original-To: dev-commits-src-main@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 4RlKmN60yxz4sx7b;
	Tue, 12 Sep 2023 10:37: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 4RlKmN5ZsWz4bW1;
	Tue, 12 Sep 2023 10: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=1694515076;
	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=SvW+uw2+drm4rVCELkCd5ev0EpxCoc0T4j6R07ThxY4=;
	b=MI+G5j3rD2aWj2TaD+MFGhYMMAgrGHZWh0QYEco3E1pf9FKXiKG6nHK1xt+9tQ2ibuhxle
	qdhPKuPl+m5rKFKb5oZa/7J3iltMC47Re5/0llVrl+BAqULJQr8tmSeqiuff7VIXN+AayI
	s2/UB9wj5B95LtkPirD58oc19dZE8pOauKCiW+dxuT/UZJzOZ5FUdw/WhZrqhiW73KZD9J
	UvdwbNk5lzDdNkVwP8/wKl+MRcAHDeYHsjdwY712qq59NAQ+iTgls7ThgBJp53oEZJyfYD
	hXPTM4cOHBrkTa1yyWrKrRmvw9a/hlWPcw3vMAncJf0tFWcyJYgmAFbNTChxrg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694515076; a=rsa-sha256; cv=none;
	b=e1uPr9mqy0HrGsWxyai6uiS3nv3uLECHkL24utiESPwtk3YoE9nHHhK0BvbOzHTQ/X07Mz
	cGys2J8kYNaLN8wnM/lMOpBm+XeHd6zfnPiyD4e5wuVKQuf957/5xi9ePBk4v0hGSwalo4
	eDJsoUMnK5OGlg03a4+GIxRLNMDPJNZBwkvhJtww05i1GPTa2DFHnn7OhJLmMi6iTXNBjy
	5dN/2bl8rRd/gs1fSgAEyihwyouC6au2i3ycUDJMmhzcphxxPNaepVle+eFkYRU5pcLgSi
	0d373kjuRE+sE2nCCx6v0zrKnkk+f1YVeblOeA8v1Npu13l2E7GJiH8TZqCxug==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694515076;
	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=SvW+uw2+drm4rVCELkCd5ev0EpxCoc0T4j6R07ThxY4=;
	b=uYpXzr1wrtME5JswKfJVocX8YweR6e9MAiFXlCIDCgqWteL6M5xnYXLeCu4b+FhlMN4IZa
	IyqQ5AlrIERloRt8H1+5AVnp1s2WnjVfh3Z+3zuFWitOscwQCGkldHOdVbNyJ/DEg00MYI
	KXEzpCY4vNtlWGHIU1gKipoBzE2Ml6GCo/t9sUYHG8L53TQPitq/yn+F7dmopG9LogEL37
	Y7UNpsJ3DnYZdRwOw5BP7qM+FBQFRKUMM88zWOeTFUzG7yFBTzcO5q/HlCbi3vy6E5tgjf
	RikOYfujRIjc8qi4ogC0FyI0xB+pK0MyUo8lrN/ASE3PY12Au/pzL2e8b4Le9Q==
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 4RlKmN4YBVzCdX;
	Tue, 12 Sep 2023 10: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 38CAbu61053849;
	Tue, 12 Sep 2023 10: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 38CAbuNm053846;
	Tue, 12 Sep 2023 10:37:56 GMT
	(envelope-from git)
Date: Tue, 12 Sep 2023 10:37:56 GMT
Message-Id: <202309121037.38CAbuNm053846@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Dmitry Chagin <dchagin@FreeBSD.org>
Subject: git: d0266fbab9b8 - main - linux(4): Cleanup dummy syscall
  list on arm64
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: dchagin
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: d0266fbab9b8eafc1aedffbedf66dedb4774794c
Auto-Submitted: auto-generated

The branch main has been updated by dchagin:

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

commit d0266fbab9b8eafc1aedffbedf66dedb4774794c
Author:     Dmitry Chagin <dchagin@FreeBSD.org>
AuthorDate: 2023-09-12 10:37:45 +0000
Commit:     Dmitry Chagin <dchagin@FreeBSD.org>
CommitDate: 2023-09-12 10:37:45 +0000

    linux(4): Cleanup dummy syscall list on arm64
    
    These syscalls do not exist on arm64 Linux.
    
    MFC after:              1 week
---
 sys/arm64/linux/linux_dummy_machdep.c | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/sys/arm64/linux/linux_dummy_machdep.c b/sys/arm64/linux/linux_dummy_machdep.c
index d38cea2ff1a4..a7a7795f573d 100644
--- a/sys/arm64/linux/linux_dummy_machdep.c
+++ b/sys/arm64/linux/linux_dummy_machdep.c
@@ -42,11 +42,6 @@ LIN_SDT_PROVIDER_DECLARE(LINUX_DTRACE);
  * Before adding new stubs to this file, please check if a stub can be added to
  * the machine-independent code in sys/compat/linux/linux_dummy.c.
  */
-
-UNIMPLEMENTED(get_thread_area);
-UNIMPLEMENTED(set_thread_area);
-UNIMPLEMENTED(uselib);
-
 DUMMY(mq_open);
 DUMMY(mq_unlink);
 DUMMY(mq_timedsend);

From nobody Tue Sep 12 12:23:53 2023
X-Original-To: dev-commits-src-main@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 4RlN6f16Qwz4sTQl;
	Tue, 12 Sep 2023 12:23: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 4RlN6f0gr9z3ZLn;
	Tue, 12 Sep 2023 12:23:54 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694521434;
	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=/ZjqybK4szpUzBQzDFuSAth0Q4JngH5T5bQUPB9Wyx0=;
	b=UO+WD7jnUGzp2o06o4thX8YGwNuYlAgrYow35DBRCpTJCbQIcSTk+3tKEWbjdMerS3cwHD
	TT56Y0OKWIFUKG/DKrj12Nfuk7c+Lzi6e77ynK04Pb2aYeIW3Q5m4rv3bnvIxcXpViY8ST
	Xl91AvtlW5hYP8YvVaKrRuL8r27ODmAclC0BELSsGZQdtFmGflykhIhXlxKQ11zorS14o3
	f4YmEIZy+7hIihMU2TOBpeQAhPhpyPpDsYK/Z2JwvrSF4y9+jshDkz23VFC2yc1A4RKWbL
	PB9xAuVu0XSr9wkCTtDBO8vwkkXpiXyH/bIsgMP65EOamTQvw8E2B1dXLKYP0w==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694521434; a=rsa-sha256; cv=none;
	b=ltiTOe3Oh80Meb9yPyW1e8oIxa2G0iEhEdfFP8MF2ke940a6VjFbAnBnBdl5TN5g8dFsGZ
	vHNh1jQTPveshjzl/A/6f3bFnh75zIl6wyWga66Lg5H2Cs44N3aYAUXboZz1LZkP0G+Xzi
	3UTyo8sTxVQ/oz0O5Cyrf7KCdVX9ya2B3NOFZc5v1GQB4Et17Tw9xn+3Sr38QSRS9ENKpA
	UsjoKfKmJaEeZofFe/A7kLDhyYNnpnpCtbGCTmN4o8aOdIXgu93MrBhe1MBlbKPWrA/21y
	vD5t4bRH2UdpZfMN3fO5+w6wyfCMZ1tjQwcSvzHsb670MrWt/c3Q3yPjJ5LOYg==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694521434;
	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=/ZjqybK4szpUzBQzDFuSAth0Q4JngH5T5bQUPB9Wyx0=;
	b=NoesS6buZjRqDXomv+SHglo/o7L+s2kIK1r1LV+pFmN6IxltegbEMtJixprAHqdJIE1voL
	Ir1vXm0bSccAn604a0YK9MvcORL5NWdej00GnYxlZRSdMX4vjH4m4OYU9LaN6Ttij3i8NQ
	wdZQowhOSyt4mkn2v5W0tkSS8QXaMMSU046PQ3hKwOYKJR/yA43SSzUREbOrP4LTf9p/46
	XzML6avzGaILhkZQQ/XURNeqAjh70QkAUXcKYW7Tr7DmPLfcAcu5VELhkMj8P69yfgFBmt
	nwi2ZgyxgYL1JjReQBl1OCHtM63iuHHmpX6TY/oeBJCO8UcOdM5WAr2n4XUWrg==
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 4RlN6d6s6HzXJv;
	Tue, 12 Sep 2023 12:23: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 38CCNrXo037226;
	Tue, 12 Sep 2023 12:23:53 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CCNrAO037223;
	Tue, 12 Sep 2023 12:23:53 GMT
	(envelope-from git)
Date: Tue, 12 Sep 2023 12:23:53 GMT
Message-Id: <202309121223.38CCNrAO037223@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Doug Rabson <dfr@FreeBSD.org>
Subject: git: 78847e1e5927 - main - pkgbase: Move headers and libs
  out of runtime and utilities
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@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/main
X-Git-Reftype: branch
X-Git-Commit: 78847e1e592789dc85bddf4d2f1d9a8ce4614ff1
Auto-Submitted: auto-generated

The branch main has been updated by dfr:

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

commit 78847e1e592789dc85bddf4d2f1d9a8ce4614ff1
Author:     Doug Rabson <dfr@FreeBSD.org>
AuthorDate: 2023-09-11 08:38:46 +0000
Commit:     Doug Rabson <dfr@FreeBSD.org>
CommitDate: 2023-09-12 12:22:21 +0000

    pkgbase: Move headers and libs out of runtime and utilities
    
    Headers from src/include were in the runtime-dev package but
    subdirectories of src/include ended up in utilities-dev by default.
    Neither package is a good choice - the headers in src/include are not
    useful without the libraries contained in clibs-dev.
    
    This moves the standard C headers to clibs-dev (C++ headers are already
    in this package). While working on this, I found that various clang
    libraries and headers were also bundled into utilities-dev by default
    so these are also moved to clang-dev.
    
    I also added a FreeBSD-build-essential meta package to make it simple to
    install all the toolchain parts.
    
    PR:             254173
    Reviewed byb:   manu
    MFC after:      1 week
    Differential Revision: https://reviews.freebsd.org/D41815
---
 include/Makefile                 | 2 +-
 include/Makefile.inc             | 2 ++
 lib/clang/Makefile.inc           | 1 +
 lib/csu/Makefile.inc             | 1 +
 lib/libclang_rt/Makefile.inc     | 1 +
 release/packages/generate-ucl.sh | 3 +++
 6 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/include/Makefile b/include/Makefile
index bc1cfd96dfc9..736a47854534 100644
--- a/include/Makefile
+++ b/include/Makefile
@@ -4,7 +4,7 @@
 
 .include <src.opts.mk>
 
-PACKAGE=runtime
+PACKAGE=clibs
 CLEANFILES= osreldate.h version
 SUBDIR= arpa protocols rpcsvc rpc xlocale
 .if ${MACHINE_CPUARCH} == "amd64"
diff --git a/include/Makefile.inc b/include/Makefile.inc
new file mode 100644
index 000000000000..14d7bf96e6bc
--- /dev/null
+++ b/include/Makefile.inc
@@ -0,0 +1,2 @@
+# Make sure all our subdirectory headers end up in clibs-dev
+PACKAGE=clibs
diff --git a/lib/clang/Makefile.inc b/lib/clang/Makefile.inc
index 0a2ae8f6b802..2dfc966726b0 100644
--- a/lib/clang/Makefile.inc
+++ b/lib/clang/Makefile.inc
@@ -1,6 +1,7 @@
 
 .include <bsd.compiler.mk>
 
+PACKAGE=	clang
 MK_PIE:=	no	# Explicit libXXX.a references
 
 .if ${COMPILER_TYPE} == "clang"
diff --git a/lib/csu/Makefile.inc b/lib/csu/Makefile.inc
index faf01b293b92..55aaf589f48f 100644
--- a/lib/csu/Makefile.inc
+++ b/lib/csu/Makefile.inc
@@ -1,3 +1,4 @@
+PACKAGE=	clibs-dev
 
 NO_WMISSING_VARIABLE_DECLARATIONS=
 # Can't instrument these files since that breaks non-sanitized programs.
diff --git a/lib/libclang_rt/Makefile.inc b/lib/libclang_rt/Makefile.inc
index 4832815643ae..263d1e340f3d 100644
--- a/lib/libclang_rt/Makefile.inc
+++ b/lib/libclang_rt/Makefile.inc
@@ -1,6 +1,7 @@
 
 .include <bsd.compiler.mk>
 
+PACKAGE=	clang
 CRTSRC=		${SRCTOP}/contrib/llvm-project/compiler-rt
 .include "compiler-rt-vars.mk"
 
diff --git a/release/packages/generate-ucl.sh b/release/packages/generate-ucl.sh
index de3fec3f0ca7..fa13e8e334d2 100755
--- a/release/packages/generate-ucl.sh
+++ b/release/packages/generate-ucl.sh
@@ -44,6 +44,9 @@ main() {
 		certctl)
 			pkgdeps="caroot openssl"
 			;;
+		clang)
+			pkgdeps="lld clang-dev libcompiler_rt-dev"
+			;;
 
 		# -dev packages that have no corresponding non-dev package
 		# as a dependency.

From nobody Tue Sep 12 13:13:58 2023
X-Original-To: dev-commits-src-main@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 4RlPDR0Y0Jz4sflm;
	Tue, 12 Sep 2023 13:13: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 4RlPDR0236z4CXZ;
	Tue, 12 Sep 2023 13:13:59 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694524439;
	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=/8yCrjn8zDngq++nXwyuBGWdNvg8x1xiCm+Ufkyxbz0=;
	b=OjiC+c4hjtrpkeYXoh0SB0HDif+eyb3vEwGSobV/4/hkYMcbm8zmSJuORQUjrmaHqtisA7
	C8KOAR5KoMn4UQPD+FjcwuQPnmVqO3Fe60vi6SqLgi9gVQqkEy9gHOa/yj1Psmj6iTsnbt
	PmCwvLL6nFvoZCvaWrMjPoEhz2dpRhxmKeLphfAFipBx+OXy4DMaRYhoZdCoPoU/Ocwtc0
	6VoSQLz6m4+bFmzoXsBODuVOOr52FNt1dKt4zLHggd5i9TzXPa8yuzPadc95J9Gnxn04O+
	reKmuefkeAWZGSccbw4JzIkS0MssCsTVQ5bYOT+HniAue7chWMTdP5skIExz/w==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694524439; a=rsa-sha256; cv=none;
	b=JOSRGXl18DVc5xACyvOC99Ef5PX7G5B3o1cvnuYQJxZ5h2WKJKomVfMqyBOpQZyxOh+J7S
	aeeA0Q8qg1Y86bXolHsrV9vXe0thRUPavlRtr3kB7udZVKHyZDDebcM1rRicr1pgKzpUSE
	VNCbn3FAi3rUt7zDyK+MlrGjf6pTOAC2yRGYkP8dyuFFh0mQ2+AGiA7l9UOotn+mpdIZsq
	rzcDOAg7bdDe47JAgdOTxy5LiobEa49wAeDR+8KnkKg3ROzn9BUhfWz9bOiP7tIZjpGpUj
	eEkTOQG2dwy4h+FuK1RynQFa2Nz9caTHTdhA6cTXHjcjRudCGXQhNCTBz+kOTQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694524439;
	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=/8yCrjn8zDngq++nXwyuBGWdNvg8x1xiCm+Ufkyxbz0=;
	b=PVhrvRnzKnEwFEjv0hgmb8ELxGX+aHyNYDWUJ2txV58sZEZq12GmeQV2bvWvHxJvwWGkJj
	GuXDPvDwD+jJfEBuB/DBc4JY9Rl7tq0Ru/fMjp0AUE58Le4/aIBNlKxMhLQsNIQ6vuHvOF
	zbMb+tvYvcv7l4gfM/OzB12A6xlb0MJevAAK/xdoXzQ+CQH/VUNwgx6TfGCdqGk+ewrUzv
	RkMLZQug3Qo9IB1jp2CxsVvEpkPNN0jeE9vrYhigOFEZ7dUpYmh50cm+8iV4Ve4TBliM4S
	jeEbAxRoe3pY332CeA0BYYxzE2oI8Ql6eJl7J7bXRhfT0y4wo/IXy4/+tmTCwQ==
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 4RlPDQ6FgKzYgh;
	Tue, 12 Sep 2023 13:13: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 38CDDwcV020522;
	Tue, 12 Sep 2023 13:13:58 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CDDwGa020519;
	Tue, 12 Sep 2023 13:13:58 GMT
	(envelope-from git)
Date: Tue, 12 Sep 2023 13:13:58 GMT
Message-Id: <202309121313.38CDDwGa020519@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Doug Moore <dougm@FreeBSD.org>
Subject: git: b24ed9c52dd2 - main - powerpc_pmap: include proper
  vm_radix file
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: dougm
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: b24ed9c52dd296730c23d48e95c5a53ef67b402f
Auto-Submitted: auto-generated

The branch main has been updated by dougm:

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

commit b24ed9c52dd296730c23d48e95c5a53ef67b402f
Author:     Doug Moore <dougm@FreeBSD.org>
AuthorDate: 2023-09-12 13:10:15 +0000
Commit:     Doug Moore <dougm@FreeBSD.org>
CommitDate: 2023-09-12 13:10:15 +0000

    powerpc_pmap: include proper vm_radix file
    
    Like the pmap.h files for amd64, arm64, i386 and riscv, the one for powerpc
    should #include vm/_vm_radix.h, not vm/vm_radix.h, to get a definition for
    struct vm_radix.
    
    Fixes a problem introduced with 429c871ddddac4bbf6abf1eb9e2e6603f87c2ef5.
---
 sys/powerpc/include/pmap.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys/powerpc/include/pmap.h b/sys/powerpc/include/pmap.h
index 642a990bb49b..e300f3750698 100644
--- a/sys/powerpc/include/pmap.h
+++ b/sys/powerpc/include/pmap.h
@@ -75,7 +75,7 @@
 #include <machine/tlb.h>
 #include <machine/vmparam.h>
 #ifdef __powerpc64__
-#include <vm/vm_radix.h>
+#include <vm/_vm_radix.h>
 #endif
 
 /*

From nobody Tue Sep 12 14:43:00 2023
X-Original-To: dev-commits-src-main@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 4RlRC90C69z4t7sl;
	Tue, 12 Sep 2023 14:43: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 4RlRC84svWz4THr;
	Tue, 12 Sep 2023 14:43:00 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694529780;
	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=P3xIyR8mRjHEnS2aVktq3fcwyq0zDh2y3b0Jw4I5+3o=;
	b=eXOvSI2B6VoBPEXEc/WW49s+19UfjMPhHZ6liSYd7AQmY94AyhBDXvfAnE8lOa+TeqLjy9
	RtVLmIwXxbGQGklnIcg7owJJY7z8p+yFDuJfwPS8sa7vYISkjwyJLebPjOyPz4MuJf1PUV
	taTiOe1F+7tX1+IC7MdijCBfGThkx02hgtms8l7wM+bpUJODzTM0ma5R6NRvTfJ4rHJsqe
	JFTItITJ9ow7/6vA/nNC/CPNtJ8Z9KXWNI5teWs5CDpSPOI6sisTgBFn03jjLECSWBxZ8q
	yhKsJ31/8goApyqqP5m8fURDtwhhf886BHL4Hd0hPAPv0intF6qRXpzIEqIi3w==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694529780; a=rsa-sha256; cv=none;
	b=UZSn8hB1e1RbzfGHq+ALYCptdCJwsSpVucntC/gFTLTAvpOMEsoS0kIjnakyhlY/6AX+HS
	L8v5VdHWb4iwTlDb3LCzD4rr0TU33Flu7/Z5JpwmwzmupjbPsyleqbnj0EDgZ6W0p0wr02
	s+27M5gQu9oV760EnfDLXg8+gPOHOw9qDo6/QnpeM1L4nhQMjjkYetvE7T5YDrYhXDrfqr
	ttCpNiltmPmKyQk28j86r2s6MOdal684170CWulr0m1qh96L9vp0DHa1iUdk+/cRxEVZb6
	B4gFSj5VXi/yH27ZGZrU8V6sb8k7yeXY2DxC1un5Tv1d+etImIDzJBjbkg65BA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694529780;
	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=P3xIyR8mRjHEnS2aVktq3fcwyq0zDh2y3b0Jw4I5+3o=;
	b=yJ2IMzgSSyXU9cl8bGPJ7Yk6dP+esYXFh1ChNWQosE3keTtFtHYEEgfVoQwCOqPzQEagAt
	6oZMTytfatZmq6uUtuEb6opVKax0UVkb7GKed4ZVP3sMGm2u0NzqDAY3IFkYcjyScknYyo
	XyDnS+2aOLvlOtrkt7MNaJhiqXboJ92fs8dRJEjxFygqMui8edm71U/6wQm/f8fVNP+SWE
	hkk+cqjHfVvG/3NCW9XT4tvOCWnNTo+Kr3ayBXlfvtf9UXRJAgVVDugNxS5rdPhZuZ9o5m
	Qgbu+vrRlq0cjBTn83fAmY0deoTN+6+jx9Jv6ViK3SMyIkBNrXoqatFjYdmbDg==
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 4RlRC83xgSzbqT;
	Tue, 12 Sep 2023 14:43:00 +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 38CEh0W7069104;
	Tue, 12 Sep 2023 14:43:00 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CEh0eC069102;
	Tue, 12 Sep 2023 14:43:00 GMT
	(envelope-from git)
Date: Tue, 12 Sep 2023 14:43:00 GMT
Message-Id: <202309121443.38CEh0eC069102@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Li-Wen Hsu <lwhsu@FreeBSD.org>
Subject: git: 06bac0da1314 - main - usbdi(9): Fix typo to simply
  -> to simplify
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: lwhsu
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 06bac0da1314907b8de37bbad559777ab418e811
Auto-Submitted: auto-generated

The branch main has been updated by lwhsu:

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

commit 06bac0da1314907b8de37bbad559777ab418e811
Author:     Damien Broka <git@damien.sh>
AuthorDate: 2023-09-11 11:12:27 +0000
Commit:     Li-Wen Hsu <lwhsu@FreeBSD.org>
CommitDate: 2023-09-12 14:41:42 +0000

    usbdi(9): Fix typo to simply -> to simplify
    
    MFC after:      3 days
    Pull Request:   https://github.com/freebsd/freebsd-src/pull/839
---
 share/man/man9/usbdi.9 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/share/man/man9/usbdi.9 b/share/man/man9/usbdi.9
index c42efc1154c6..47034b87c806 100644
--- a/share/man/man9/usbdi.9
+++ b/share/man/man9/usbdi.9
@@ -350,7 +350,7 @@ Example4: SETUP + STATUS - split
 
 .Ed
 .Sh USB TRANSFER CONFIG
-To simply the search for endpoints the
+To simplify the search for endpoints the
 .Nm usb
 module defines a USB config structure where it is possible to specify
 the characteristics of the wanted endpoint.

From nobody Tue Sep 12 14:43:01 2023
X-Original-To: dev-commits-src-main@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 4RlRCB1tNhz4t86n;
	Tue, 12 Sep 2023 14:43:02 +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 4RlRC95Q2Dz4TT9;
	Tue, 12 Sep 2023 14:43:01 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694529781;
	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=S1bRZU5fv2spsKVHtk4pQzXH6zzdBHhVUWC/AWerQ5s=;
	b=PsGaXPNXzWyTBigQZ/0x1lilGVn+SuDICTzE763Ig9Yjb/EuALYnJHrwNsAZMWhC/yGf4r
	APL2+c65sXennmSP18BDksFwle9Aqaoq+LujDSCcASb611CoZg3JKTkeasiWEEBBfk1jTR
	x4rL4lvGuC2fMbawYnH9WfWLEUSRHIKHE5mZkE7OgizD5xN0hSXLr/ZCaIizFr2yrjGWMn
	M4otYsp0QDmSNIF7xmGDgYbbVoYP/ZeRGM0FPa+e/9hJAcqn9+RKchE5LH+Eqdm161lRGy
	I4rrnIgcHou5e/7CDF9gpeBTbWD19K5vd41E/1wMHAS1b3xVwtPGUe0QKWbZpA==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694529781; a=rsa-sha256; cv=none;
	b=xR5ywDi4+nz2LD6nGHNPDefPWcKUo/ZZg3bUKXN6aAVVTqkbvUI8C1YiIzHg5TV8lFiHjx
	3UJGFhO3pJ6BCVu6EVqZ5hCriEPCAu61w7N5uBN92i1zliSen4iLEvqXUJl/LNtRGMcYwy
	lM/I+Zaax0JOc1YEn0QrEaShUszs3B8bhCbapljiOBRsDp8nLqWb48F9lLwUaoAMIL2es2
	1rdtYpCDpKznSUr6ukCC585bMayxA6gUAsT1kV41B26/HLx70YtJAGN8o5neagEVFkKBKc
	7+Qx+cV3cPkRmyuUUu5tEVAqaHfpF0LRw7dGVpaollF4xOsESftS5S5S+xyXaA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694529781;
	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=S1bRZU5fv2spsKVHtk4pQzXH6zzdBHhVUWC/AWerQ5s=;
	b=oLoeuf5+Xz85yalXguWjPjlpxl+R7E7CrYkC35k0IHVgFHFCQib4n8kLCONnNK3uHo+YlU
	gLBzVHqkcTe6oPCtDQ51r0rKHIeuUHyQDLZVSQodvwAaqgNFuIhh3alE74DSIuuq1CQpm+
	FhjfXjrIYoktZEhk/xv2Ayp/ScCiUUl0tx9Lk2SHm+bjhvs2CLY0bBS/9teGCGnhs70eOl
	hTiodBiPbYqmBPzsvnWdJvovvQk54FG5E7CbeAo3/nR2/fM/AzFDTvCU2N+hfHV2LMVTyC
	Tq/Y6oxD8L71Qc0LA9wQ0BS0eritvQNL9xxA+77HhugjVYR62tDuXfwBxsqMCg==
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 4RlRC94KgdzbqV;
	Tue, 12 Sep 2023 14:43: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 38CEh10L069149;
	Tue, 12 Sep 2023 14:43:01 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CEh1l9069146;
	Tue, 12 Sep 2023 14:43:01 GMT
	(envelope-from git)
Date: Tue, 12 Sep 2023 14:43:01 GMT
Message-Id: <202309121443.38CEh1l9069146@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Li-Wen Hsu <lwhsu@FreeBSD.org>
Subject: git: ff9c4abd9fea - main - sysctl(9): Fix typo translatation
  -> translation
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: lwhsu
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: ff9c4abd9feaf13cf911f4655234da7a62d0c7af
Auto-Submitted: auto-generated

The branch main has been updated by lwhsu:

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

commit ff9c4abd9feaf13cf911f4655234da7a62d0c7af
Author:     Damien Broka <git@damien.sh>
AuthorDate: 2023-09-11 11:15:18 +0000
Commit:     Li-Wen Hsu <lwhsu@FreeBSD.org>
CommitDate: 2023-09-12 14:42:03 +0000

    sysctl(9): Fix typo translatation -> translation
    
    MFC after:      3 days
    Pull Request:   https://github.com/freebsd/freebsd-src/pull/839
---
 share/man/man9/sysctl.9 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/share/man/man9/sysctl.9 b/share/man/man9/sysctl.9
index d2001384c9aa..83f526b349a1 100644
--- a/share/man/man9/sysctl.9
+++ b/share/man/man9/sysctl.9
@@ -626,7 +626,7 @@ For example,
 .Fn SYSCTL_INT
 reports the raw value of an associated variable of type
 .Vt int .
-However, nodes may also export a value that is a translatation of an internal
+However, nodes may also export a value that is a translation of an internal
 representation.
 .Pp
 The

From nobody Tue Sep 12 14:47:50 2023
X-Original-To: dev-commits-src-main@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 4RlRJk3PpYz4t96T;
	Tue, 12 Sep 2023 14:47: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 4RlRJk2d4Mz4VmT;
	Tue, 12 Sep 2023 14:47:50 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694530070;
	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=WjBYs0SYcP3quJZ+cHRt0bQu6EqVtGTZ6NivNZtnAeY=;
	b=T2A3C7ZzkFIRJEDvRTXMku/KMa60SktCDli3N3QDBp6AYGLVw7QG/1k6YJIgUyDVwKu/qO
	x862+L/kXJGOfyk8i+Tc1dS1MviErMmj4ob7Y4wqmUvgG1RFsXdbyMyKx6rSyjFveTOgtN
	g28FdL6IjbFknGh+bmxR/ibhSqoBzQb6alglx65O7f1WMll57GCuB5b4RbXXndJ35RqI1n
	1nOO7cOif6k1DjuRwMVIgL0NNeKuF+R4xqTN/yD7dC/3NcqwSsbScOBhVSTl3c1FCwHIQ7
	8N7YjBbC2TYd5hNw8xHA1oJYG027K+B0/40nRcNcjojJwg3E52AJlVBEOnyOVQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694530070; a=rsa-sha256; cv=none;
	b=W/SQEM+qkPvhN2BMhBakp7ff7bAlhU+NKlKWHFWwfSP3inO8apJ21v77BZQMInS94+IySo
	VZHWxQkDqw9VZtxi6zw03QnMYMsySktf+DuV4HLXS5dwfhKYvb67vyI741y0WYASd0q6Et
	dx028qCDpMTm7MYtgnOdlvVKfvBeih1rKcsbavZxGhINPd6Bvzr77w1DFyewuLYqzBI0KO
	/eKw5W0w0eLyFTSL0S+XyS3I+i7tvjRa9FVTI4Groimg+reUUlwyYK9TWWrvkmh6pAtT7A
	K6mEFVmcar+dPua+A9ZRZ6VkKq2gkMsqUPCGBUs4S9o8FO+e3SaN+/X2ZDL2MA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694530070;
	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=WjBYs0SYcP3quJZ+cHRt0bQu6EqVtGTZ6NivNZtnAeY=;
	b=a+WSozUGj0odSYPciETNBmFRyvyzzrt3TBnp3O0JUR75q8vyc+/LQrJinxEnP2GYtHlucG
	uZNuiGl/m6Q8tmO0L3ZF/8lt0IqGxoDBooK+xi7dgoDVwAMUMcmkskbQm0mDbRHY1m71OQ
	/H/Cfu1zB2vcAUZsXLmND/9udctFIs2p2xOwQDF8k4ywMMaaQTv2lriqMdqAZOJlnXnQvP
	KrGxiMJHcT1LY/zRX5QBQKALHQU6Et9q1hFZ72Hz3C0QkXTRZsbDToZH6kjf78LkdRdkP8
	Dn2wBxMNTYnyIMOneZaBwGw/pa9N+4pla3nHu+v2Zs4HXbVrkwDoYTtrO8ghtA==
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 4RlRJk1PPSzbYG;
	Tue, 12 Sep 2023 14:47: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 38CEloOo069892;
	Tue, 12 Sep 2023 14:47:50 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CElo3w069889;
	Tue, 12 Sep 2023 14:47:50 GMT
	(envelope-from git)
Date: Tue, 12 Sep 2023 14:47:50 GMT
Message-Id: <202309121447.38CElo3w069889@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Alan Somers <asomers@FreeBSD.org>
Subject: git: 0b294a386d34 - main - Fix zfsd with the device_removal
  pool feature.
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: asomers
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 0b294a386d34f6584848ed52407687df7ae59861
Auto-Submitted: auto-generated

The branch main has been updated by asomers:

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

commit 0b294a386d34f6584848ed52407687df7ae59861
Author:     Alan Somers <asomers@FreeBSD.org>
AuthorDate: 2023-09-12 01:20:39 +0000
Commit:     Alan Somers <asomers@FreeBSD.org>
CommitDate: 2023-09-12 14:46:12 +0000

    Fix zfsd with the device_removal pool feature.
    
    Previously zfsd would crash in the presence of a pool with a
    top-level-vdev that had previously been removed.  The crash happened
    because the configuration nvlist of such a TLV contains an empty
    ZPOOL_CONFIG_CHILDREN array, which led to a pop_front from an empty
    list, which has undefined behavior.
    
    The crash only happened in stable/14 and later, probably do to
    differences in libcxx, but the change should be MFCed anyway.
    
    PR:             273663
    Reported by:    Marek Zarychta <zarychtam@plan-b.pwste.edu.pl>
    MFC after:      1 week
    Sponsored by:   Axcient
    Reviewed by:    mav
    Differential Revision: https://reviews.freebsd.org/D41818
---
 cddl/usr.sbin/zfsd/tests/zfsd_unittest.cc | 37 +++++++++++++++++++++++++++++++
 cddl/usr.sbin/zfsd/vdev_iterator.cc       |  5 +----
 2 files changed, 38 insertions(+), 4 deletions(-)

diff --git a/cddl/usr.sbin/zfsd/tests/zfsd_unittest.cc b/cddl/usr.sbin/zfsd/tests/zfsd_unittest.cc
index f3fea2ca83f4..caeb077a3de8 100644
--- a/cddl/usr.sbin/zfsd/tests/zfsd_unittest.cc
+++ b/cddl/usr.sbin/zfsd/tests/zfsd_unittest.cc
@@ -766,3 +766,40 @@ TEST_F(ReEvaluateByGuidTest, ReEvaluateByGuid_five)
 	delete CaseFile4;
 	delete CaseFile5;
 }
+
+/*
+ * Test VdevIterator
+ */
+class VdevIteratorTest : public ::testing::Test
+{
+};
+
+bool VdevIteratorTestCB(Vdev &vdev, void *cbArg) {
+	return (false);
+}
+
+/*
+ * VdevIterator::Next should not crash when run on a pool that has a previously
+ * removed vdev.  Regression for
+ * https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=273663
+ */
+TEST_F(VdevIteratorTest, VdevRemoval)
+{
+	nvlist_t* poolConfig, *rootVdev;
+
+	ASSERT_EQ(0, nvlist_alloc(&rootVdev, NV_UNIQUE_NAME, 0));
+	ASSERT_EQ(0, nvlist_add_uint64(rootVdev, ZPOOL_CONFIG_GUID, 0x5678));
+	/*
+	 * Note: pools with previously-removed top-level VDEVs will contain a
+	 * TLV in their labels that has 0 children.
+	 */
+	ASSERT_EQ(0, nvlist_add_nvlist_array(rootVdev, ZPOOL_CONFIG_CHILDREN,
+				NULL, 0));
+	ASSERT_EQ(0, nvlist_alloc(&poolConfig, NV_UNIQUE_NAME, 0));
+	ASSERT_EQ(0, nvlist_add_uint64(poolConfig,
+			ZPOOL_CONFIG_POOL_GUID, 0x1234));
+	ASSERT_EQ(0, nvlist_add_nvlist(poolConfig, ZPOOL_CONFIG_VDEV_TREE,
+				rootVdev));
+
+	VdevIterator(poolConfig).Each(VdevIteratorTestCB, NULL);
+}
diff --git a/cddl/usr.sbin/zfsd/vdev_iterator.cc b/cddl/usr.sbin/zfsd/vdev_iterator.cc
index f64b0d98440d..e9283108ed3c 100644
--- a/cddl/usr.sbin/zfsd/vdev_iterator.cc
+++ b/cddl/usr.sbin/zfsd/vdev_iterator.cc
@@ -109,10 +109,7 @@ VdevIterator::Next()
 {
 	nvlist_t *vdevConfig;
 
-	if (m_vdevQueue.empty())
-		return (NULL);
-
-	for (;;) {
+	for (vdevConfig = NULL; !m_vdevQueue.empty();) {
 		nvlist_t **vdevChildren;
 		int        result;
 		u_int      numChildren;

From nobody Tue Sep 12 16:42:53 2023
X-Original-To: dev-commits-src-main@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 4RlTsT49m1z4st8q;
	Tue, 12 Sep 2023 16:42: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 4RlTsT3ldHz3bVT;
	Tue, 12 Sep 2023 16:42:53 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694536973;
	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=hia0R+yCAMGGe0aJ+1W+OHUFCX/4NqNb14NpKKvcwUQ=;
	b=T1pw8OAl0M9l6kDD31PJknAuskCOIw7BNXOCd37JrQvUqQJsi4zPEm0hIMXXEzmNJsKJ2J
	ocV8Lz0wrUbv3SFK3rotXAMw/Ea7dSUiKdPjCkOKsp1uWroSrdvLsMIhulJ12EPkwCIrSX
	g2FMbq8wppWdHEYnReUlFnAd3ohYY6qqz7N5hw7KaVNbABjewekTd5sKpCHpZXuf8HuPn6
	PlVh6z3P8jfpuJDvVsBgzhFqEG/G5RHsRv3vmnHKghGewOWjOSTkuVuGSsN0mYRcyX2LHe
	uDEY3wwQkVGYcs7aBxwKQpVxSyHUN9k95hvA0yM9wtVwhfX0bn0xSL/YRO6mBw==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694536973; a=rsa-sha256; cv=none;
	b=LLKJSXh5NX9exZuyuXr9FwkI6yYhjSeR9PVKnpnLitHgCmBepo/SkKoF7I13LekON4ByE5
	7nvGULZm5a2meyrUEjhNKLyU5exr/WyCqw24MfEEKQ3e2oCzrB+GnzsaeubDIHZOHXJ6gu
	eD7O4Kdm64oOvnXQUzlxsQc9uY726VwwURMOVGKH0YPE6DrBxOBIF/EvTBPRqOHFgLuJpT
	gNMdVs0efihjbWBqNwcnr3cOKe0pFzKlnqT8o7EGL5sHuOJBsZBgNOS7lbx2bJIX+SBYs8
	KeOYTCnc2diDoOwNISBZW6f5sDYTjkWM8qz+lSZ1aC4i621UVCEFeFEVQBLvjA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694536973;
	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=hia0R+yCAMGGe0aJ+1W+OHUFCX/4NqNb14NpKKvcwUQ=;
	b=h0ik/uA0+NrAtpjxgEaNndOprfhM2tMmJfVwsYywl5Z3Mci7M5MaIlSZ/ROaDhvq17F0c5
	VNWg/LCXzm2/8eEfH3uXfNkevnCu+QN8PiUWeq06GD0oW7RgBuAuDD+IsPqUOog3yR2jo1
	BLDopQ8okkRoBTpj9hD63cawa5UwsEDHvbvSoZsiraUK3t7+nYbUhSClbYe92aB3M2h0fr
	M4f6HqgQ79lCLi1p4zISrac/jjkJ0ayeZOBITfWVnONVnsEVqUPCZ+0aC6v5Xyl7TQFBp6
	bGuHOoZo0nzKnLPAe0ksL0A4m0TDJTfJv8z4sRUUnLeXG76Em+e85+Qwtdir9A==
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 4RlTsT2pT3zfjb;
	Tue, 12 Sep 2023 16:42: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 38CGgrwX070359;
	Tue, 12 Sep 2023 16:42:53 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CGgrtg070356;
	Tue, 12 Sep 2023 16:42:53 GMT
	(envelope-from git)
Date: Tue, 12 Sep 2023 16:42:53 GMT
Message-Id: <202309121642.38CGgrtg070356@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Piotr Pawel Stefaniak <pstef@FreeBSD.org>
Subject: git: 63b6e661d25c - main - sh: reindent a for loop in
  parser.c
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: pstef
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 63b6e661d25c67b4ab9b7743bf1c68e3876ddc1e
Auto-Submitted: auto-generated

The branch main has been updated by pstef:

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

commit 63b6e661d25c67b4ab9b7743bf1c68e3876ddc1e
Author:     Piotr Pawel Stefaniak <pstef@FreeBSD.org>
AuthorDate: 2023-01-01 19:22:28 +0000
Commit:     Piotr Pawel Stefaniak <pstef@FreeBSD.org>
CommitDate: 2023-09-12 16:36:32 +0000

    sh: reindent a for loop in parser.c
    
    Reduce indentation level before a commit that will add new code here.
    
    Reviewed by:    jilles
    Differential Revision:  https://reviews.freebsd.org/D37926
---
 bin/sh/parser.c | 242 ++++++++++++++++++++++++++++----------------------------
 1 file changed, 123 insertions(+), 119 deletions(-)

diff --git a/bin/sh/parser.c b/bin/sh/parser.c
index 044233da5d73..121c367c601c 100644
--- a/bin/sh/parser.c
+++ b/bin/sh/parser.c
@@ -2054,135 +2054,139 @@ getprompt(void *unused __unused)
 	/*
 	 * Format prompt string.
 	 */
-	for (i = 0; (i < PROMPTLEN - 1) && (*fmt != '\0'); i++, fmt++)
-		if (*fmt == '\\')
-			switch (*++fmt) {
+	for (i = 0; (i < PROMPTLEN - 1) && (*fmt != '\0'); i++, fmt++) {
+		if (*fmt != '\\') {
+			ps[i] = *fmt;
+			continue;
+		}
 
-				/*
-				 * Non-printing sequence begin and end.
-				 */
-			case '[':
-			case ']':
-				ps[i] = '\001';
-				break;
+		switch (*++fmt) {
 
-				/*
-				 * Literal \ and some ASCII characters:
-				 * \a	BEL
-				 * \e	ESC
-				 * \r	CR
-				 */
-			case '\\':
-			case 'a':
-			case 'e':
-			case 'r':
-				if (*fmt == 'a')
-					ps[i] = '\007';
-				else if (*fmt == 'e')
-					ps[i] = '\033';
-				else if (*fmt == 'r')
-					ps[i] = '\r';
-				else
-					ps[i] = '\\';
-				break;
+		/*
+		 * Non-printing sequence begin and end.
+		 */
+		case '[':
+		case ']':
+			ps[i] = '\001';
+			break;
 
-				/*
-				 * CRLF sequence
-				 */
-			case 'n':
-				if (i < PROMPTLEN - 3) {
-					ps[i++] = '\r';
-					ps[i] = '\n';
-				}
-				break;
+		/*
+		 * Literal \ and some ASCII characters:
+		 * \a	BEL
+		 * \e	ESC
+		 * \r	CR
+		 */
+		case '\\':
+		case 'a':
+		case 'e':
+		case 'r':
+			if (*fmt == 'a')
+				ps[i] = '\007';
+			else if (*fmt == 'e')
+				ps[i] = '\033';
+			else if (*fmt == 'r')
+				ps[i] = '\r';
+			else
+				ps[i] = '\\';
+			break;
 
-				/*
-				 * Hostname.
-				 *
-				 * \h specifies just the local hostname,
-				 * \H specifies fully-qualified hostname.
-				 */
-			case 'h':
-			case 'H':
-				ps[i] = '\0';
-				gethostname(&ps[i], PROMPTLEN - i - 1);
-				ps[PROMPTLEN - 1] = '\0';
-				/* Skip to end of hostname. */
-				trim = (*fmt == 'h') ? '.' : '\0';
-				while ((ps[i] != '\0') && (ps[i] != trim))
-					i++;
-				--i;
-				break;
+		/*
+		 * CRLF sequence
+		 */
+		case 'n':
+			if (i < PROMPTLEN - 3) {
+				ps[i++] = '\r';
+				ps[i] = '\n';
+			}
+			break;
 
-				/*
-				 * User name.
-				 */
-			case 'u':
-				ps[i] = '\0';
-				getusername(&ps[i], PROMPTLEN - i);
-				/* Skip to end of username. */
-				while (ps[i + 1] != '\0')
-					i++;
-				break;
+		/*
+		 * Hostname.
+		 *
+		 * \h specifies just the local hostname,
+		 * \H specifies fully-qualified hostname.
+		 */
+		case 'h':
+		case 'H':
+			ps[i] = '\0';
+			gethostname(&ps[i], PROMPTLEN - i - 1);
+			ps[PROMPTLEN - 1] = '\0';
+			/* Skip to end of hostname. */
+			trim = (*fmt == 'h') ? '.' : '\0';
+			while ((ps[i] != '\0') && (ps[i] != trim))
+				i++;
+			--i;
+			break;
 
-				/*
-				 * Working directory.
-				 *
-				 * \W specifies just the final component,
-				 * \w specifies the entire path.
-				 */
-			case 'W':
-			case 'w':
-				pwd = lookupvar("PWD");
-				if (pwd == NULL || *pwd == '\0')
-					pwd = "?";
-				if (*fmt == 'W' &&
-				    *pwd == '/' && pwd[1] != '\0')
-					strlcpy(&ps[i], strrchr(pwd, '/') + 1,
+		/*
+		 * User name.
+		 */
+		case 'u':
+			ps[i] = '\0';
+			getusername(&ps[i], PROMPTLEN - i);
+			/* Skip to end of username. */
+			while (ps[i + 1] != '\0')
+				i++;
+			break;
+
+		/*
+		 * Working directory.
+		 *
+		 * \W specifies just the final component,
+		 * \w specifies the entire path.
+		 */
+		case 'W':
+		case 'w':
+			pwd = lookupvar("PWD");
+			if (pwd == NULL || *pwd == '\0')
+				pwd = "?";
+			if (*fmt == 'W' &&
+			    *pwd == '/' && pwd[1] != '\0')
+				strlcpy(&ps[i], strrchr(pwd, '/') + 1,
+				    PROMPTLEN - i);
+			else {
+				home = lookupvar("HOME");
+				if (home != NULL)
+					homelen = strlen(home);
+				if (home != NULL &&
+				    strcmp(home, "/") != 0 &&
+				    strncmp(pwd, home, homelen) == 0 &&
+				    (pwd[homelen] == '/' ||
+				    pwd[homelen] == '\0')) {
+					strlcpy(&ps[i], "~",
 					    PROMPTLEN - i);
-				else {
-					home = lookupvar("HOME");
-					if (home != NULL)
-						homelen = strlen(home);
-					if (home != NULL &&
-					    strcmp(home, "/") != 0 &&
-					    strncmp(pwd, home, homelen) == 0 &&
-					    (pwd[homelen] == '/' ||
-					    pwd[homelen] == '\0')) {
-						strlcpy(&ps[i], "~",
-						    PROMPTLEN - i);
-						strlcpy(&ps[i + 1],
-						    pwd + homelen,
-						    PROMPTLEN - i - 1);
-					} else {
-						strlcpy(&ps[i], pwd, PROMPTLEN - i);
-					}
+					strlcpy(&ps[i + 1],
+					    pwd + homelen,
+					    PROMPTLEN - i - 1);
+				} else {
+					strlcpy(&ps[i], pwd, PROMPTLEN - i);
 				}
-				/* Skip to end of path. */
-				while (ps[i + 1] != '\0')
-					i++;
-				break;
+			}
+			/* Skip to end of path. */
+			while (ps[i + 1] != '\0')
+				i++;
+			break;
 
-				/*
-				 * Superuser status.
-				 *
-				 * '$' for normal users, '#' for root.
-				 */
-			case '$':
-				ps[i] = (geteuid() != 0) ? '$' : '#';
-				break;
+		/*
+		 * Superuser status.
+		 *
+		 * '$' for normal users, '#' for root.
+		 */
+		case '$':
+			ps[i] = (geteuid() != 0) ? '$' : '#';
+			break;
 
-				/*
-				 * Emit unrecognized formats verbatim.
-				 */
-			default:
-				ps[i] = '\\';
-				if (i < PROMPTLEN - 2)
-					ps[++i] = *fmt;
-				break;
-			}
-		else
-			ps[i] = *fmt;
+		/*
+		 * Emit unrecognized formats verbatim.
+		 */
+		default:
+			ps[i] = '\\';
+			if (i < PROMPTLEN - 2)
+				ps[++i] = *fmt;
+			break;
+		}
+
+	}
 	ps[i] = '\0';
 	return (ps);
 }

From nobody Tue Sep 12 16:42:54 2023
X-Original-To: dev-commits-src-main@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 4RlTsV5h2wz4st8v;
	Tue, 12 Sep 2023 16:42: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 4RlTsV4qCfz3bmS;
	Tue, 12 Sep 2023 16:42:54 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694536974;
	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=mlDQHTln0BTq7AVXw+ZfVt/gLIZgrEaVkpqeokJ8wus=;
	b=bJTGiavRcvDeTyY3tdSDVkLkPp07QQso86G+eosGCkx4zWc6wqMCfqg5+lzOeCYj4gHjqH
	mFx+RlloT99UFVaqfbfq8L4QKDorpp8l4Nw9Xm4CA/8Lt/h6Bjh7FMG7BnRCn+DaKsCfO9
	p2oQ8fKbBJSJSgmdr+MNHaVlWc04vZwGH0bggDRKL/wsLJhlBvbuwN0f1xwcjcdH9AK4tT
	oC7oKBaoJ9NLdqEfnTZ+OBBwDXK80tZVf5uSSDMZAhppRNHSdU/zoKR9PPeL24il6cTE/x
	aFZCIixtIOmU8aoDMNFq1uFTEEmdD068yZr+L/ybGBoAgydFUvuYLCWWdG8i5w==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694536974; a=rsa-sha256; cv=none;
	b=M9GsFYcK6tP+beU6D0yrLH6pEuNhLC5602WcxUzzZiil2NA0ZMEe5bwni3YI0pLNSyve5U
	rStzUbZZYQyCf63T3FhmaGrrg+x/NJkd9uhmNo66ojbyGC6yAR+xNpg0bwaQ9qfPdh/je/
	n1gUKsP/nPp2iVXwGZNz8sE+w048dHUlt8ht9b3D+e3Kw1SRbzrp5DBl52l2kbhksbhCiF
	1qc2bWGQbV9WSsbbirppqwXMNPdT5bf3f3rhpdhTMGzOM8KZqGG9WuMmErkCvu4L23voEZ
	WeJo9Cn16mWmWI1N7iOaVyVKzKhBm/jsUHnuBsdbUIVrSCatSMR8zj/aBrWQ/A==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694536974;
	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=mlDQHTln0BTq7AVXw+ZfVt/gLIZgrEaVkpqeokJ8wus=;
	b=GUdMtppZIWNgdeTXrJcqSD43yicAyBQNK7YHPQhrzh27XOjPU8jwI/yXMGmrs+FZGwe+/U
	GH0QT938QlM5BYaRaUGMOA551MtKuNxt2rfd/9AhKkL4OmAKBDRClhXGggqjmxFSiyo3m/
	aEL7tg8rhas0mH/3Yj61IFAMV268BHbF3bd1DP4+Y5P/YqApWJ/sWa84gQXQbQ0Wa+SI5E
	/0MxPxqwUBf5EHSWf90VM1Fr9E4xxSwBkX4RAunWoICdYGH2KXoq5vZ0/VN5Xaji1gBywW
	2B2jvfiOHuP33vngGLaylncsTRrSZQcLKghj3he3TNVUaya3kQf/vXW1J4+z1g==
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 4RlTsV3qNkzfVj;
	Tue, 12 Sep 2023 16:42: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 38CGgsXq070416;
	Tue, 12 Sep 2023 16:42:54 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CGgsQp070413;
	Tue, 12 Sep 2023 16:42:54 GMT
	(envelope-from git)
Date: Tue, 12 Sep 2023 16:42:54 GMT
Message-Id: <202309121642.38CGgsQp070413@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Piotr Pawel Stefaniak <pstef@FreeBSD.org>
Subject: git: 2fc4a84ed828 - main - sh: introduce a function to
  iterate over all aliases
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: pstef
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 2fc4a84ed8288bd25be3de35d756f46ec7785030
Auto-Submitted: auto-generated

The branch main has been updated by pstef:

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

commit 2fc4a84ed8288bd25be3de35d756f46ec7785030
Author:     Piotr Pawel Stefaniak <pstef@FreeBSD.org>
AuthorDate: 2023-04-29 20:23:59 +0000
Commit:     Piotr Pawel Stefaniak <pstef@FreeBSD.org>
CommitDate: 2023-09-12 16:39:20 +0000

    sh: introduce a function to iterate over all aliases
    
    Currently the data structure holding alias information is opaque for
    consumers outside alias.c and there is no way to iterate over all
    aliases, which will become needed by a future commit.
    
    The new function "iteralias" takes a null pointer to return the first
    alias or an existing alias to return the next one, unless there is
    no alias to return, in which case it returns a null pointer.
    
    I slightly changed the static function hashalias so that it returns the
    index into the array holding link heads, and not the link head directly.
    In this form it's easier to use by iteralias and the slight adjustment
    in the three existing callers doesn't look too bad.
    
    Differential Revision:  https://reviews.freebsd.org/D40619
---
 bin/sh/alias.c | 29 +++++++++++++++++++++++------
 bin/sh/alias.h |  1 +
 2 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/bin/sh/alias.c b/bin/sh/alias.c
index 4bac525e2678..da860be704b6 100644
--- a/bin/sh/alias.c
+++ b/bin/sh/alias.c
@@ -53,7 +53,7 @@ static int aliases;
 
 static void setalias(const char *, const char *);
 static int unalias(const char *);
-static struct alias **hashalias(const char *);
+static size_t hashalias(const char *);
 
 static
 void
@@ -62,7 +62,7 @@ setalias(const char *name, const char *val)
 	struct alias *ap, **app;
 
 	unalias(name);
-	app = hashalias(name);
+	app = &atab[hashalias(name)];
 	INTOFF;
 	ap = ckmalloc(sizeof (struct alias));
 	ap->name = savestr(name);
@@ -87,7 +87,7 @@ unalias(const char *name)
 {
 	struct alias *ap, **app;
 
-	app = hashalias(name);
+	app = &atab[hashalias(name)];
 
 	for (ap = *app; ap; app = &(ap->next), ap = ap->next) {
 		if (equal(name, ap->name)) {
@@ -145,7 +145,7 @@ lookupalias(const char *name, int check)
 
 	if (aliases == 0)
 		return (NULL);
-	for (ap = *hashalias(name); ap; ap = ap->next) {
+	for (ap = atab[hashalias(name)]; ap; ap = ap->next) {
 		if (equal(name, ap->name)) {
 			if (check && (ap->flag & ALIASINUSE))
 				return (NULL);
@@ -242,7 +242,7 @@ unaliascmd(int argc __unused, char **argv __unused)
 	return (i);
 }
 
-static struct alias **
+static size_t
 hashalias(const char *p)
 {
 	unsigned int hashval;
@@ -250,5 +250,22 @@ hashalias(const char *p)
 	hashval = (unsigned char)*p << 4;
 	while (*p)
 		hashval+= *p++;
-	return &atab[hashval % ATABSIZE];
+	return (hashval % ATABSIZE);
+}
+
+const struct alias *
+iteralias(const struct alias *index)
+{
+	size_t i = 0;
+
+	if (index != NULL) {
+		if (index->next != NULL)
+			return (index->next);
+		i = hashalias(index->name) + 1;
+	}
+	for (; i < ATABSIZE; i++)
+		if (atab[i] != NULL)
+			return (atab[i]);
+
+	return (NULL);
 }
diff --git a/bin/sh/alias.h b/bin/sh/alias.h
index 0c6ea99e8b60..a8108d44be2d 100644
--- a/bin/sh/alias.h
+++ b/bin/sh/alias.h
@@ -42,3 +42,4 @@ struct alias {
 };
 
 struct alias *lookupalias(const char *, int);
+const struct alias *iteralias(const struct alias *);

From nobody Tue Sep 12 16:42:55 2023
X-Original-To: dev-commits-src-main@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 4RlTsX29DKz4stMf;
	Tue, 12 Sep 2023 16:42: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 4RlTsW63hhz3bYY;
	Tue, 12 Sep 2023 16:42:55 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694536975;
	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=lJV4JOfBuK0cfiSOyMQ1KagOb8YhOs04tAkNhQosFNg=;
	b=wU5S1cp/Tbz6/0m10nR31XxGfnUTeqC0z74MXZP1gJ9Vqr/Ai/y8/yl+TGgKGYrhZTcalU
	WnyStJl2/zo5/fK7/I9i7ZbyMc8WJXdUJ6WuQ644VQxRANmCgL5XaiSdq4gM2HHycPpMJC
	QTUH5Ed8/S7hh169NO8yjOTDg1uiMwlBxELMKaypuKrNuYSVMAUhRq0vhLbwfOaDtD39w/
	i4iJAYMBM/3qd6BgZhM78V+tFL5znbh0zFGIqhxKUYhtZ1FgtGj+5rQML1Qodkt/uP6peU
	/zzdIl/t8rfboLlSHpOwxMZVI/MYQZ75IFnrriy+63ksl/jTUOKQKOkzzIMYRg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694536975; a=rsa-sha256; cv=none;
	b=Llf8nbzXj+QmDSG2SuK5hfLU2/Lip/IRdEE7dtpRrctQ3x4r0YwZNfWp3rKqH40XdGgc69
	k5Oo9UEfV9LOp09Ndsr9kG6R31MJ7Gm4C+BsBjfv7zYRG7g67UqBE3p1wY1gpP99pwQmbf
	lb4TjivBcRg1wxyMnif2YEVZKMD8eq2HOjKDacDM6Yri1qu/5bT8+Mj5pH6Xu7Jdghe3pt
	o08PW5Uuh/qEeKt3dKius9WTtu36KqiCpUm/mPsXkLoyd4ZETRkIUHEXxzzc0vSIjGy9aZ
	GW07ECp+l3/YmuE4Ds0+GIXR7/mazUCXprDSJIEJqqu6SOYvo4WbSBNepKqd3g==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694536975;
	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=lJV4JOfBuK0cfiSOyMQ1KagOb8YhOs04tAkNhQosFNg=;
	b=GppAjTKK75geqIs5UA8DUkH2/t58rlSV/eLAmTxDdm4FIpAaIpi7Q2zSz+KKbfTsbM/soq
	Il/AZedAtEJ8FhJV7JArBtWQRl7btT845iitNS3y3OLPcsDSijWlqJf94/CuZyE0JwfX75
	lxRBPz4XHvOd81J142nd/1plfRh9fVeE7+oqUzbPDN+Gh6D9UvbEPTE0ybw6wsgt+zg/ng
	yr/zcGR2YJ6R/VVALDBMg+zCcwLxRdRL//zSuo5YOdiFSIx4HUgRiOmcBG07l+JKoC7nDR
	MrWlpQ2TkKv/2n+KjH7wDa+yENRHJf9XphyhANqZXOyJP0GY/17AzgvzwDh9eQ==
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 4RlTsW4rvGzg6n;
	Tue, 12 Sep 2023 16:42: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 38CGgtDA070455;
	Tue, 12 Sep 2023 16:42:55 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CGgtSu070452;
	Tue, 12 Sep 2023 16:42:55 GMT
	(envelope-from git)
Date: Tue, 12 Sep 2023 16:42:55 GMT
Message-Id: <202309121642.38CGgtSu070452@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Piotr Pawel Stefaniak <pstef@FreeBSD.org>
Subject: git: 0fd450e2895e - main - sh: tab-complete aliases
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: pstef
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 0fd450e2895e1f9085fbd361a2aad8421a16dc66
Auto-Submitted: auto-generated

The branch main has been updated by pstef:

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

commit 0fd450e2895e1f9085fbd361a2aad8421a16dc66
Author:     Piotr Pawel Stefaniak <pstef@FreeBSD.org>
AuthorDate: 2023-04-29 20:38:50 +0000
Commit:     Piotr Pawel Stefaniak <pstef@FreeBSD.org>
CommitDate: 2023-09-12 16:39:42 +0000

    sh: tab-complete aliases
    
    Differential Revision:  https://reviews.freebsd.org/D40619
---
 bin/sh/histedit.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/bin/sh/histedit.c b/bin/sh/histedit.c
index 3ca8a0bcefa7..0d40e1c9ec1a 100644
--- a/bin/sh/histedit.c
+++ b/bin/sh/histedit.c
@@ -50,6 +50,7 @@ static char sccsid[] = "@(#)histedit.c	8.2 (Berkeley) 5/4/95";
 /*
  * Editline and history functions (and glue).
  */
+#include "alias.h"
 #include "shell.h"
 #include "parser.h"
 #include "var.h"
@@ -671,6 +672,14 @@ static char
 			goto out;
 		matches = rmatches;
 	}
+	for (const struct alias *ap = NULL; (ap = iteralias(ap)) != NULL;) {
+		if (strncmp(ap->name, text, curpos) != 0)
+			continue;
+		rmatches = add_match(matches, ++i, &size, strdup(ap->name));
+		if (rmatches == NULL)
+			goto out;
+		matches = rmatches;
+	}
 out:
 	free(free_path);
 	if (i == 0) {

From nobody Tue Sep 12 16:42:56 2023
X-Original-To: dev-commits-src-main@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 4RlTsY2mr4z4stQG;
	Tue, 12 Sep 2023 16: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 4RlTsY1TJBz3bYx;
	Tue, 12 Sep 2023 16: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=1694536977;
	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=zukko6J0j3fqF+pE2yUMtwJpyGFTJqZayiHzMoirlZs=;
	b=hU+B+1EH2GCE/YToFNCklmYWtLHQ4VM1nN7EhnUyLhnjaFG/03+p0B5UlrkPnPBAiH8ALH
	BUhBOJHi9P6PWerVRot9bEvmcLxeCocCbLIg8IA7hG0sIOqtv19kz+SBODnonkF443nmtX
	1yHDb/Y16eeOciFiyaQRIO7piZhPXzJGFOHLcwC70T/g0hlkgCIIeVddF3ugAXmzorr56v
	P13yANDuHLZWOlKqz2x4pv9Ojqb3Gst0b1ZLOlDufKvrKiTlcFJvviXZm3XF+A5beaJM/U
	vCWZpYRQo2ypimsG+0DSlVqOtcQBAULS1PpCbp7GO5GPd8qLbQabsTYCplVd+A==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694536977; a=rsa-sha256; cv=none;
	b=XpYnkZyft4JV5BSFV65TmjlQ82/BlERvj1KnfYiMlNHpciKKbXXCNLQTqCcXPalD0xJ/PR
	dgss8GHUF2gC0miJ+BzDpcq3remwRgeHA8ywQh2fQ2pQUhVrxbXWms0VXy1mD1DEEOjUi9
	NhB6EDfu3P2FLclVcWckmXfEgAAQMWJOOEs2+90hwldU5wwmVWrS+N/oO3sCs2UO9QecZb
	+uBtNpMvht0o+BOMiotzmfppzaUcjKvB6eLijVeRuhkvu78j6eYK/MuLP2U/qjorsrhv9l
	ACCSnxScx/lafI/TDJcPJjXLjBJ+UcFl8r8kOmvhzvipFQ+30K1HNMdn8YkNNQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694536977;
	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=zukko6J0j3fqF+pE2yUMtwJpyGFTJqZayiHzMoirlZs=;
	b=ExNL/Umu3SQVI9KFx7Q/26Jxs9x/n9L9y+9ad2Cdpbji3Hsy+/xoGkvJrim3ED6w2GVIVZ
	LBSpS4Kq7Z0Bo/qKN6ZnJR99yGxIk/mOQDM3EBQSyOi9gHJi+RA9PE7bWeTbkfSkiHJ6ds
	lRSR+6q2ZiEBnI77kSJrRHAbcZnBUwEMNKTCPSqsjCZQrxHtOXLi7Ka101qBGQ8mZkV/hT
	YNoEeVI3eehLssOgCSrv7YrvWcyJMC0QTOU7gKQCPgt5o0+HY//7sOO3yJf6WHif7UBCl8
	87sfdH/dFmbQr7FwKWqUZKUclTu790XIdNxR2QjnXwMdF0Yutx9OD+e6XQykxQ==
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 4RlTsX5vczzfjc;
	Tue, 12 Sep 2023 16:42: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 38CGguNU070519;
	Tue, 12 Sep 2023 16:42:56 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CGguK8070516;
	Tue, 12 Sep 2023 16:42:56 GMT
	(envelope-from git)
Date: Tue, 12 Sep 2023 16:42:56 GMT
Message-Id: <202309121642.38CGguK8070516@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Piotr Pawel Stefaniak <pstef@FreeBSD.org>
Subject: git: bec7b9a21979 - main - sh: introduce a function to
  iterate over all hashed commands
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: pstef
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: bec7b9a219790199c64d11833cc34d1ea505d1f4
Auto-Submitted: auto-generated

The branch main has been updated by pstef:

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

commit bec7b9a219790199c64d11833cc34d1ea505d1f4
Author:     Piotr Pawel Stefaniak <pstef@FreeBSD.org>
AuthorDate: 2023-04-30 16:30:56 +0000
Commit:     Piotr Pawel Stefaniak <pstef@FreeBSD.org>
CommitDate: 2023-09-12 16:39:54 +0000

    sh: introduce a function to iterate over all hashed commands
    
    While aliases and built-ins are opportunistically stored in cmdtable, each
    function will be added to it immediately on definition.
    
    Factor out the hashing function, write the iterator function and make it use
    the hashing function.
    
    Add the cmdname pointer to struct cmdentry so that the command name can be
    exposed that way.
    
    Differential Revision:  https://reviews.freebsd.org/D40619
---
 bin/sh/exec.c | 46 +++++++++++++++++++++++++++++++++++++++-------
 bin/sh/exec.h |  2 ++
 2 files changed, 41 insertions(+), 7 deletions(-)

diff --git a/bin/sh/exec.c b/bin/sh/exec.c
index 07ed6d4173ae..a3df254a39dd 100644
--- a/bin/sh/exec.c
+++ b/bin/sh/exec.c
@@ -545,6 +545,19 @@ clearcmdentry(void)
 }
 
 
+static unsigned int
+hashname(const char *p)
+{
+	unsigned int hashval;
+
+	hashval = (unsigned char)*p << 4;
+	while (*p)
+		hashval += *p++;
+
+	return (hashval % CMDTABLESIZE);
+}
+
+
 /*
  * Locate a command in the command hash table.  If "add" is nonzero,
  * add the command to the table if it is not already present.  The
@@ -559,17 +572,11 @@ static struct tblentry **lastcmdentry;
 static struct tblentry *
 cmdlookup(const char *name, int add)
 {
-	unsigned int hashval;
-	const char *p;
 	struct tblentry *cmdp;
 	struct tblentry **pp;
 	size_t len;
 
-	p = name;
-	hashval = (unsigned char)*p << 4;
-	while (*p)
-		hashval += *p++;
-	pp = &cmdtable[hashval % CMDTABLESIZE];
+	pp = &cmdtable[hashname(name)];
 	for (cmdp = *pp ; cmdp ; cmdp = cmdp->next) {
 		if (equal(cmdp->cmdname, name))
 			break;
@@ -588,6 +595,31 @@ cmdlookup(const char *name, int add)
 	return cmdp;
 }
 
+const void *
+itercmd(const void *entry, struct cmdentry *result)
+{
+	const struct tblentry *e = entry;
+	size_t i = 0;
+
+	if (e != NULL) {
+		if (e->next != NULL) {
+			e = e->next;
+			goto success;
+		}
+		i = hashname(e->cmdname) + 1;
+	}
+	for (; i < CMDTABLESIZE; i++)
+		if ((e = cmdtable[i]) != NULL)
+			goto success;
+
+	return (NULL);
+success:
+	result->cmdtype = e->cmdtype;
+	result->cmdname = e->cmdname;
+
+	return (e);
+}
+
 /*
  * Delete the command entry returned on the last lookup.
  */
diff --git a/bin/sh/exec.h b/bin/sh/exec.h
index 04d1b97d7386..493be0178272 100644
--- a/bin/sh/exec.h
+++ b/bin/sh/exec.h
@@ -53,6 +53,7 @@ struct cmdentry {
 		struct funcdef *func;
 	} u;
 	int special;
+	const char *cmdname;
 };
 
 
@@ -71,3 +72,4 @@ int unsetfunc(const char *);
 int isfunc(const char *);
 int typecmd_impl(int, char **, int, const char *);
 void clearcmdentry(void);
+const void *itercmd(const void *, struct cmdentry *);

From nobody Tue Sep 12 16:42:57 2023
X-Original-To: dev-commits-src-main@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 4RlTsZ153Bz4stVs;
	Tue, 12 Sep 2023 16:42: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 4RlTsZ0cTSz3bvx;
	Tue, 12 Sep 2023 16:42:58 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694536978;
	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=3oM3V/6V8fkZLWUivrm4W4xJPXDsTCPgIjtQaQrdvJE=;
	b=o2o2N8g1FgbvW6jff8WasBZRpmG9R3oNo+EM6Z6SK2n3s6c33JU1a4cBdZOTIjLO+mSQKV
	P0OEeXUc4b5qeJATQjGLRxSiLNSqMVWWSE2nNpm3r2r893rkls5Akx2rbXuwqU6DMLf6Ld
	kqdjqsW2OlLOupphBLAv4usG7Guv4NUvln3FsGxKIty3X+LW5F+TF403iUFh+9AOZM7xDE
	NogvwdwvnXzFmXI1KkLAToWAurEZGu2vAaMgVp5eeOt/pCdiXz19EUGxhlqfZi9Za8/h9t
	JOud3oMBl0r0LvDbygnyshAhDwLMmTBhe6GPzNV6EXFPh33KfgwL7aDEHmztGA==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694536978; a=rsa-sha256; cv=none;
	b=rxDulXAfnmJHY6usKJnTbVq/FMvyohVID+A8q4OPqEu9KKWgMJxFYHGK6pBTzE0OQi5yLE
	ZP0koy+uWuLme5Y6NmXzVgBDjGzfwuaWX1A2ixApvVNw2Kj6q787+C3jh51mD8y7wnh0jv
	p4bj7l8p90c/ZtI2WimAojZB77mMIxQusvAKNlBQMTeGYXft9OF/45Gty6Wy3vaF7pu4OH
	qsdJu3FTALbaSTitpWuogHqQpv3aI36lsmcz5bWzR1AwFtYpjS7KnEowQRZFhuTcsfds28
	f14kn1au//lA6zdnNvE8VaXbU5MPdLqpzdQ7pLaUKGVpjfcehFE9zY1+4ll0XA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694536978;
	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=3oM3V/6V8fkZLWUivrm4W4xJPXDsTCPgIjtQaQrdvJE=;
	b=TReyBngZRw73966QfluUfjSpDjkvbbncfxajZogelOjgzbjMIvHI3zscsm3WT0aDm7Z/l8
	mDGIf5dohYPWG05jxH6DMQ2b0iEHM6LobcPB1eafsCHORR1+lvNzZYooNgHiIyaUn/YNHF
	HYr6w/Fvl+dKiCSMq5xApMRdU1K2EWs8UXI+rX0+w0b5AHkBiKQ2mE9Lz+uznElG5eCYaV
	E3xdzxmHN/ezAbJghRTiCQuYe1UH7su8euE1L3NXtPW3MFK4zG9f8XGxDLh79sZwe87OXF
	cjKmd6qeRh6qwQf0mZkh42ospwxx3fLTzYCsV0LASeuYeFfpLRmVC5WsS2M+lg==
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 4RlTsY6nTzzg6p;
	Tue, 12 Sep 2023 16: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 38CGgv9r070561;
	Tue, 12 Sep 2023 16: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 38CGgv4t070558;
	Tue, 12 Sep 2023 16:42:57 GMT
	(envelope-from git)
Date: Tue, 12 Sep 2023 16:42:57 GMT
Message-Id: <202309121642.38CGgv4t070558@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Piotr Pawel Stefaniak <pstef@FreeBSD.org>
Subject: git: 8e5c53af831b - main - sh: also auto-complete functions
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: pstef
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 8e5c53af831bd180af0c59f2d96c67ab9da59590
Auto-Submitted: auto-generated

The branch main has been updated by pstef:

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

commit 8e5c53af831bd180af0c59f2d96c67ab9da59590
Author:     Piotr Pawel Stefaniak <pstef@FreeBSD.org>
AuthorDate: 2023-04-30 16:31:52 +0000
Commit:     Piotr Pawel Stefaniak <pstef@FreeBSD.org>
CommitDate: 2023-09-12 16:40:05 +0000

    sh: also auto-complete functions
    
    Differential Revision:  https://reviews.freebsd.org/D40619
---
 bin/sh/histedit.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/bin/sh/histedit.c b/bin/sh/histedit.c
index 0d40e1c9ec1a..842c166159bc 100644
--- a/bin/sh/histedit.c
+++ b/bin/sh/histedit.c
@@ -51,6 +51,7 @@ static char sccsid[] = "@(#)histedit.c	8.2 (Berkeley) 5/4/95";
  * Editline and history functions (and glue).
  */
 #include "alias.h"
+#include "exec.h"
 #include "shell.h"
 #include "parser.h"
 #include "var.h"
@@ -621,6 +622,7 @@ static char
 	char **matches = NULL, **rmatches;
 	size_t i = 0, size = 16, uniq;
 	size_t curpos = end - start, lcstring = -1;
+	struct cmdentry e;
 
 	in_command_completion = false;
 	if (start > 0 || memchr("/.~", text[0], 3) != NULL)
@@ -680,6 +682,16 @@ static char
 			goto out;
 		matches = rmatches;
 	}
+	for (const void *a = NULL; (a = itercmd(a, &e)) != NULL;) {
+		if (e.cmdtype != CMDFUNCTION)
+			continue;
+		if (strncmp(e.cmdname, text, curpos) != 0)
+			continue;
+		rmatches = add_match(matches, ++i, &size, strdup(e.cmdname));
+		if (rmatches == NULL)
+			goto out;
+		matches = rmatches;
+	}
 out:
 	free(free_path);
 	if (i == 0) {

From nobody Tue Sep 12 19:10:39 2023
X-Original-To: dev-commits-src-main@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 4RlY80079Xz4tCQ6;
	Tue, 12 Sep 2023 19:10:40 +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 4RlY7z6p9wz4r0m;
	Tue, 12 Sep 2023 19:10:39 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694545840;
	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=wxp+CX4Yy/1ERLYM7nfVwfX/MBNOmZEqjiMM5o6Ztxc=;
	b=wdslCBZ17SCKtdNLWwlrULHLEnkK2Z9PHEENn0ygTbXgOCOqfuQTB8hod2RCo4BQL123SM
	U775eZJeIexGH6BfWgXv1s8b+wjuWb1ZTH57GxoqTIupY7E6gR6ZJuwTdgxK3ziRWkLxYu
	Kj1QfcSi8t3RUVHqFZ/5dD1Cln6S1oUuqtP9B3DujEl0ggEzcZrhrkJAyekmWpbqrNANO4
	rlMIDv4nZ2ch5vM1njwzbtzHwycD7ddO3pKQJlZxM/f9aOHTq1Rp44Bmv298dcqnPxeE5q
	+MBxmnnJ00A1RogTzCfUvTYh3uZ4MuFB0iH3LXgXQam7CHOb44f6ShtSM6SB4w==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694545840; a=rsa-sha256; cv=none;
	b=Dw8bapV2QYJUUBhSyeg0t33V5xEhLpTsRMafl+T1Wzhq74ULc2aPHfj2iJHeoxY++nxJne
	BJbBGxxQmY7p85KrxfC6z5ZOZrUe/BtMI9MdjR1kidIDwiXnT9fVTgqMP/7jwrTMEpMpQ/
	EAbpUgH3NVSVm9WXr2JabEKoMXpEtRwcyyqIUc+GdnPEgq0ZySGyGDMTdSf8TGqADRV+lR
	hiKv+07sr7QeVCRV8rA53mJD3JkOUgca1btdrDAROScQ75gX7wDcUllyE7eJkKTH3rjOi5
	7Btk9/bdzaslealrpKyvLVk0HQlNfVxIE+ua7d7VzsIMfemsYA+IBGMpmdxsbw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694545840;
	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=wxp+CX4Yy/1ERLYM7nfVwfX/MBNOmZEqjiMM5o6Ztxc=;
	b=YL9Aj+mDlTF2J/BqsuKdQaOj2rTRS4+3O5/rMNjxAapZcDJuOGQx/PPsejSZNrF0DL6C3q
	dIG6IZ12I1pDzCJRvWpDIOJQZp1ET9lqvBlx5ybokFYJjhQYLdnabWr4LeJ6Iutz54sMpi
	BHr7JfwNW1zb/waM1LHngMHugsLOBpIHrZT+HTipXtBS+cmHEEXl/x8vRwa6IPS9p03cR4
	rj9pXYrClrrjy4rriWJdGVrNUnFL62XG4y6WTTGaqbLk5jfKMfQoocSZFEkXMmHrVKg3Uu
	nSn6FtZiTmv5T+rEVq5BI5D6DYWqdSJ9aJLtiYGl4LSsBqNJiuZ5DlF+u8TjIg==
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 4RlY7z5tl8zkFR;
	Tue, 12 Sep 2023 19:10:39 +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 38CJAdTU017906;
	Tue, 12 Sep 2023 19:10:39 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CJAdu1017903;
	Tue, 12 Sep 2023 19:10:39 GMT
	(envelope-from git)
Date: Tue, 12 Sep 2023 19:10:39 GMT
Message-Id: <202309121910.38CJAdu1017903@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Piotr Pawel Stefaniak <pstef@FreeBSD.org>
Subject: git: c996638497d1 - main - tslog.4: fix typo
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: pstef
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: c996638497d103c4ddcf097855fae7f3118f21da
Auto-Submitted: auto-generated

The branch main has been updated by pstef:

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

commit c996638497d103c4ddcf097855fae7f3118f21da
Author:     Piotr Pawel Stefaniak <pstef@FreeBSD.org>
AuthorDate: 2023-09-12 19:10:08 +0000
Commit:     Piotr Pawel Stefaniak <pstef@FreeBSD.org>
CommitDate: 2023-09-12 19:10:08 +0000

    tslog.4: fix typo
---
 share/man/man4/tslog.4 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/share/man/man4/tslog.4 b/share/man/man4/tslog.4
index 93fb66f9e857..40397d14c3e2 100644
--- a/share/man/man4/tslog.4
+++ b/share/man/man4/tslog.4
@@ -107,7 +107,7 @@ was added in
 is oriented towards system developers while
 .Xr boottrace 4
 is meant to be easy to use by system administrators.
-Both faciliities provide an overview of timing and resource usage of the boot
+Both facilities provide an overview of timing and resource usage of the boot
 process.
 .Ss TSLOG vs. DTrace
 .Xr dtrace 1

From nobody Tue Sep 12 19:37:47 2023
X-Original-To: dev-commits-src-main@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 4RlYlH3YCsz4tR7c;
	Tue, 12 Sep 2023 19:37: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 4RlYlH1k36z3F3g;
	Tue, 12 Sep 2023 19:37:47 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694547467;
	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=NsIX4adFqnt12JDu8iw11cbq/1Tg/wtLwHbp6HDugM8=;
	b=t25FzpcAheV5UCvBqQv9JWW9vshJU481FABqdw4XebVTJjstOVR61IjEuRFdTyiN1+mGwv
	WtdIL6Rno/j7KUN7KGVB2Wzy1LnHXwmtjFbW9M5+rbEOcmaeSHXPR+g6qSAkqNyhczFpt8
	u64u6Hi8sKe6OXCRoUKZq3IPnEZyeKtMnzInMwJkCUacByPymg2aFrILKrJcfbkRnhAxZH
	G+KQ21ejePlbd9yXrylcbMT3+IpKwm8aRHKgXgRmX9XoDHUskbkIT10cDCmOt1YSrjXzuc
	3UrtNKp6f6Cs8KIn4VierSMkTuktBXf/iQJdVdrEj9s4PFDrGxoPKnh30CwQ1Q==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694547467; a=rsa-sha256; cv=none;
	b=uIcT8Bb75IV4YhfSyM8svXLib+q+1IFPbtIunt6hkVVYK+bNSb8ugf1LUdrxXxBPY/xRAS
	USrxcr0ppyxjXiKdKa/tmNUi4iATYGqOA1QQCU7A08o2AJQnYf5HpKHU3acFM9wPtaPEr1
	gdNOYspuE+sYp61pgZcbIzQBF41Kh06FhLG9z2wNRMzidh4U2XSybV1Ok8C5BvDDA9DTm9
	cbYPmd7bnbNLeeF53FdQxmwqhmpZ1bRv8RVZ8sVBhC3DHz5sfAjFBuCTGMoxjvXXAwLpmx
	FEuzPck59qHUd9yNeAJMciyxzGMQsZ22BH/59UjZWav1VQEOD1h4BZ/lsqoQtg==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694547467;
	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=NsIX4adFqnt12JDu8iw11cbq/1Tg/wtLwHbp6HDugM8=;
	b=HJtN5Q+d2kdhzXvWIQLKl3jyDoa/97RNNFG/72D/1Y0cGts4+96LWhRE44O6WjOsQf7Qof
	MFatEYi8KdkqyfAckzGlxkF4IlloKpFw5FDFRUkzVIfv67aFrLNueoPM3LIJYr0KY5TbnU
	mXlsEDLA4cB1/FJCg/xPZBOMIivZYPg8OFsbrBIAAoYj7rN9jzkWKKItu2Z1CR3w6zQXkA
	EyTewX9h5o+9vYlFHM8O/MQmaig+smOaSOZDC/I1QkooLywHXYYqYdnJ4tHvJvUhjjiPmh
	Fg56emXKaJgIDdLHWeBvPp2ca1gjpbxpT5NPLqgXxYhxh8F+8XQJgfeSGcW/eQ==
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 4RlYlH0nbTzl3M;
	Tue, 12 Sep 2023 19:37: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 38CJblQi056561;
	Tue, 12 Sep 2023 19:37:47 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CJblE4056558;
	Tue, 12 Sep 2023 19:37:47 GMT
	(envelope-from git)
Date: Tue, 12 Sep 2023 19:37:47 GMT
Message-Id: <202309121937.38CJblE4056558@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Doug Moore <dougm@FreeBSD.org>
Subject: git: e5635c3dab47 - main - powerpc_mmu_radix: include
  vm_radix.h file
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: dougm
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: e5635c3dab47b19937622a70b4b443ffea2d5436
Auto-Submitted: auto-generated

The branch main has been updated by dougm:

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

commit e5635c3dab47b19937622a70b4b443ffea2d5436
Author:     Doug Moore <dougm@FreeBSD.org>
AuthorDate: 2023-09-12 19:35:48 +0000
Commit:     Doug Moore <dougm@FreeBSD.org>
CommitDate: 2023-09-12 19:35:48 +0000

    powerpc_mmu_radix: include vm_radix.h file
    
    Replacing _vm_radix.h with vm_radix.h in one header file leaves one
    source file short of function definitions.  Include vm_radix.h in that
    source file.
    
    Fixes a problem rooted in change 429c871ddddac4bbf6abf1eb9e2e6603f87c2ef5.
---
 sys/powerpc/aim/mmu_radix.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sys/powerpc/aim/mmu_radix.c b/sys/powerpc/aim/mmu_radix.c
index 32d08d2d7026..9c5b67121803 100644
--- a/sys/powerpc/aim/mmu_radix.c
+++ b/sys/powerpc/aim/mmu_radix.c
@@ -67,6 +67,7 @@
 #include <vm/vm_extern.h>
 #include <vm/vm_pageout.h>
 #include <vm/vm_phys.h>
+#include <vm/vm_radix.h>
 #include <vm/vm_reserv.h>
 #include <vm/vm_dumpset.h>
 #include <vm/uma.h>

From nobody Tue Sep 12 21:01:02 2023
X-Original-To: dev-commits-src-main@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 4RlbbL6vH5z4svkn;
	Tue, 12 Sep 2023 21:01:02 +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 4RlbbL6Th9z3Yh6;
	Tue, 12 Sep 2023 21:01:02 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694552462;
	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=T5a3rh/IeZZhvSf0Ff96CoG8tSxP0Ph75/s2sg5DcQc=;
	b=Ng+M9FTN9NdJrzOfan2OVIl1aDl9euELdnmL81bP9KnzqlnObdX0/VTsob/T7NsZowGBB6
	ro1X/KLoRDTg3mw2+xzFklie97TxY6V4WSvqodbbkNfDjWoyrZAS9vDOUaKcJ1nCVG2fbi
	Wz3UT9cJLILRg/C4tWM+dBhrc+85LAEik9YCPa1abP43VOOAwcanakBcPejcznSt7DAZ8a
	Vcs5CYL06b5SkxDGg5yVEpvucSzz70v343jpPKDZKgpVkYCJkqH36YhGw4v08qt66UI9on
	+VAw2JN7GsJQG8gsOjP65V2OF178TDlarrGkYc60CqL8HHBvAIwGcppRiUbvTw==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694552462; a=rsa-sha256; cv=none;
	b=YmxVh6VYPXqg3bw6U+JQ/dDlFkQ1sYGta3VgntiYMrdkNBMhNScqxlQQ/mqUsDvJNvkh5h
	nZhhCzh2IVCqrP+Oh5OqlzFE3GA448tBaue0l1RGHJyAQpdMPRUibYn8XpSagVc9owUpaV
	lDdYm3ef0Mbc0NAnJnS6VtezaEBK+mqrKOxO8ajOrjCmkGTk+VWR/1BDcSNcYyL4LaXJu4
	FU72LyZHgP23Dv9ZyEJp+ndieXhXpuUrL6CIOfAvmcN3UaWgQamN3hi3jetRlhEuaTnaQW
	qYC9GbcdVWtA70WJ2ONd7Rgj2sUf6OqcLurso39LhmFd8y2Viza63I/iUivB5w==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694552462;
	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=T5a3rh/IeZZhvSf0Ff96CoG8tSxP0Ph75/s2sg5DcQc=;
	b=rTT0wB4Tq/QZADo6x1iUd+O2zFqxtA1qT4VXkEYUt5LQ3gTmhCAmv1irnUVca3iP35Wr5F
	Jd0hTb1ufWDc9cIe270l0aqu1lsDxuK6LwV69zAkgNp1+RGxr3GdW2qAEtgVEw12rcv7cu
	VK5YXas3fi2AlCuWOLKofj+JXlrzzA1qUzmNudi/BO1gmxzKwpIVd4VkGV5wQESaYsEz0h
	aJW3MXosItQg7VlLRuwk7wUyLAVZig3Hf4SApWy+Ux5DFSBGIZl0flNe4Sr1Pr1yZNBPdJ
	rHmv7B9sWOSdRfpUtL7N+NlvDna0PcZoPtfGmdEhIhlFmCKc6G+78rizC/8Kqg==
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 4RlbbL5XCNznCv;
	Tue, 12 Sep 2023 21:01:02 +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 38CL12gw099180;
	Tue, 12 Sep 2023 21:01:02 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CL12V4099177;
	Tue, 12 Sep 2023 21:01:02 GMT
	(envelope-from git)
Date: Tue, 12 Sep 2023 21:01:02 GMT
Message-Id: <202309122101.38CL12V4099177@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Kyle Evans <kevans@FreeBSD.org>
Subject: git: c086d1cbc3d1 - main - ncurses: avoid hardcoded
  assumptions about the layout of .OBJDIR
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@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/main
X-Git-Reftype: branch
X-Git-Commit: c086d1cbc3d13967c031e6420831349967dbcfa2
Auto-Submitted: auto-generated

The branch main has been updated by kevans:

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

commit c086d1cbc3d13967c031e6420831349967dbcfa2
Author:     Kyle Evans <kevans@FreeBSD.org>
AuthorDate: 2023-09-12 21:00:45 +0000
Commit:     Kyle Evans <kevans@FreeBSD.org>
CommitDate: 2023-09-12 21:00:45 +0000

    ncurses: avoid hardcoded assumptions about the layout of .OBJDIR
    
    Abstract out the details of the FreeBSD build into a $TINFO_OBJDIR that
    external builds can override if they orchestrate the build a bit
    differently and have a different objdir layout as a result.  This makes
    the ncurses build a little bit more flexible without requiring weird
    backflips.
    
    Reviewed by:    bapt, sjg
    Sponsored by:   NetApp, Inc.
    Sponsored by:   Klara, Inc.
    Differential Revision:  https://reviews.freebsd.org/D41834
---
 lib/ncurses/config.mk        | 6 ++++--
 lib/ncurses/ncurses/Makefile | 4 ++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/lib/ncurses/config.mk b/lib/ncurses/config.mk
index 0016dc97a72f..8a3e7d0ffa59 100644
--- a/lib/ncurses/config.mk
+++ b/lib/ncurses/config.mk
@@ -6,6 +6,8 @@ NCURSES_MAJOR=	6
 NCURSES_MINOR=	2
 NCURSES_PATCH=	20210220
 
+TINFO_OBJDIR?=	${.OBJDIR:H}/tinfo
+
 CFLAGS+=	-D_XOPEN_SOURCE_EXTENDED
 NCURSES_CFG_H=	${.CURDIR}/ncurses_cfg.h
 
@@ -17,7 +19,7 @@ CFLAGS+=	-I${.CURDIR:H}/ncurses
 
 CFLAGS+=	-I${NCURSES_DIR}/include
 CFLAGS+=	-I${NCURSES_DIR}/ncurses
-CFLAGS+=	-I${.OBJDIR:H}/tinfo/
+CFLAGS+=	-I${TINFO_OBJDIR}
 
 CFLAGS+=	-Wall
 
@@ -27,7 +29,7 @@ CFLAGS+=	-DHAVE_CONFIG_H
 
 # everyone needs this
 .PATH:		${NCURSES_DIR}/include
-.PATH:		${.OBJDIR:H}/tinfo/
+.PATH:		${TINFO_OBJDIR}
 
 # tools and directories
 AWK?=		awk
diff --git a/lib/ncurses/ncurses/Makefile b/lib/ncurses/ncurses/Makefile
index b52085780952..e1a3dbf61e49 100644
--- a/lib/ncurses/ncurses/Makefile
+++ b/lib/ncurses/ncurses/Makefile
@@ -180,9 +180,9 @@ libncursesw.ald: ${.CURDIR}/${STATIC_LDSCRIPT}
 	    -e 's,@@STATICLIB_SUFFIX@@,${_STATICLIB_SUFFIX},g' \
 	    ${.ALLSRC} > ${.TARGET}
 
-lib_gen.c: MKlib_gen.sh ${.OBJDIR:H}/tinfo/curses.h ncurses_dll.h
+lib_gen.c: MKlib_gen.sh ${TINFO_OBJDIR}/curses.h ncurses_dll.h
 	LC_ALL=C sh ${NCURSES_DIR}/ncurses/base/MKlib_gen.sh "${CPP:N${CCACHE_BIN}} ${CFLAGS}" \
-	       "${AWK}" generated < ${.OBJDIR:H}/tinfo/curses.h >$@
+	       "${AWK}" generated < ${TINFO_OBJDIR}/curses.h >$@
 
 expanded.c: MKexpanded.sh
 	sh ${NCURSES_DIR}/ncurses/tty/MKexpanded.sh "${CC:N${CCACHE_BIN}} -E" ${CFLAGS} >expanded.c

From nobody Tue Sep 12 23:39:00 2023
X-Original-To: dev-commits-src-main@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 4Rlg5c6yS2z4t6VR;
	Tue, 12 Sep 2023 23:39: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 4Rlg5c6XkBz3Cq6;
	Tue, 12 Sep 2023 23:39:00 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694561940;
	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=1Xj+HWE8iaEsfz0/eduvECYvF/p86yMosxzH7rsgLsw=;
	b=OwnspFqrDp3FUc9sSXiRSm6j1ynDzmEqGjjjANLf3Xdd7/lqdl/1abUpS8XgPcjx8g4CW7
	wVcJgwAOtqoMAR8qle4lFwNHquLkP6ZgSNMwKlxECIlPxwXxS3EXhogpY3TfHrMFH2p3a+
	LsLFf9/0V/CaNu8n17lM+vGrguZOX6I/IxoAKrrQd57yS0p/2K8gCGynh+5R/FVjvguzR+
	uh1D3i42UQK6OvTkQljebR0ipH7Ds7k2NjKyeecTpG1uBfSbp5yVQi6eA+CDloCDCJVDfl
	K4DI+bv9Di4pG9eOYnc7SgI+B6bHPpBzKKb+B14F7Gfe/OQzW++xehwQ1yVNWw==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694561940; a=rsa-sha256; cv=none;
	b=rziOIJcJ1hpHIVuZfCV+/GgOZMnUr/mJ0/TOeTnU2qj173R5l3camb3k+L/Q8dofTgD1bS
	C+PZMi8Cwz1k0Vi+1jGnYfscPiOpB1EGcqbSMyDACkyamL5wn2lHbFmCOj6NnfjFhV3Fg7
	wCifoIhUOB94Q0hfW9gYqkJY0dc80KPF6vfOJFGKmyf1oELmTiGeppiRSqtwyF9eXGSvJM
	hOXumbhf9j7KCru1bfM+Z6dD0rR8eUwtTz+80cwDS0yufKcAE1z6LGADKu0UezpUc9SJs2
	a5L2gvApq1tm0HZqAG7t1SM14pn9LvhYDF9JpHIl6ItozcaSXFAjth9lw/le4Q==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694561940;
	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=1Xj+HWE8iaEsfz0/eduvECYvF/p86yMosxzH7rsgLsw=;
	b=iZCJZFSuaXBLSqIY/dpnQnCadCuEwiu4SKbSuqfcpjrPYZFQQosjggVEkB9v/xSTuLHnIP
	hMBsin6svgRfXV7l8Kgs7Iw93kymns5n/ytzniUpjpq9C+syXvUTJSvlKrkDx11A6BCUqz
	TZBwNexWdGKFKd3uLLKIcFA6p6TJ9MlhRdJOlP7V/4lQ32kI4jwGNi8cZ0d/h2CtMICeNZ
	DPWKNiQmgUeE+5uK6QN/qmmHZh8xiPZmpCSddOkYCwZVfw9BdV4c7r+8KMxW1jIZU81D0j
	o2JspHJ6ZyeGIkv8vw8WqJZxcFHrrmAjWdOpE0GDcKswNHADjD8ezPn/N3FlSA==
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 4Rlg5c5GN3zrYY;
	Tue, 12 Sep 2023 23:39:00 +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 38CNd0Gk054411;
	Tue, 12 Sep 2023 23:39:00 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38CNd0Au054408;
	Tue, 12 Sep 2023 23:39:00 GMT
	(envelope-from git)
Date: Tue, 12 Sep 2023 23:39:00 GMT
Message-Id: <202309122339.38CNd0Au054408@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Michael Tuexen <tuexen@FreeBSD.org>
Subject: git: 81c5f0fac91d - main - sctp: improve shutting down the
  read side of a socket
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: tuexen
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 81c5f0fac91dfae64205a6c4f9b2a469d1187372
Auto-Submitted: auto-generated

The branch main has been updated by tuexen:

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

commit 81c5f0fac91dfae64205a6c4f9b2a469d1187372
Author:     Michael Tuexen <tuexen@FreeBSD.org>
AuthorDate: 2023-09-12 23:33:54 +0000
Commit:     Michael Tuexen <tuexen@FreeBSD.org>
CommitDate: 2023-09-12 23:36:14 +0000

    sctp: improve shutting down the read side of a socket
    
    When shutdown(..., SHUT_RD) or shutdown(..., SHUT_RDWR) is called,
    really clean up the read queue and issue an ungraceful shutdown if
    user messages are affected.
    
    Reported by:    syzbot+d4e1d30d578891245f59@syzkaller.appspotmail.com
    MFC after:      3 days
---
 sys/netinet/sctp_usrreq.c | 90 ++++++++++++++++++++++++++++++-----------------
 1 file changed, 57 insertions(+), 33 deletions(-)

diff --git a/sys/netinet/sctp_usrreq.c b/sys/netinet/sctp_usrreq.c
index 52b4faf48574..02bb87578528 100644
--- a/sys/netinet/sctp_usrreq.c
+++ b/sys/netinet/sctp_usrreq.c
@@ -777,52 +777,76 @@ sctp_disconnect(struct socket *so)
 int
 sctp_flush(struct socket *so, int how)
 {
-	/*
-	 * We will just clear out the values and let subsequent close clear
-	 * out the data, if any. Note if the user did a shutdown(SHUT_RD)
-	 * they will not be able to read the data, the socket will block
-	 * that from happening.
-	 */
+	struct epoch_tracker et;
+	struct sctp_tcb *stcb;
+	struct sctp_queued_to_read *control, *ncontrol;
 	struct sctp_inpcb *inp;
+	struct mbuf *m, *op_err;
+	bool need_to_abort = false;
 
+	/*
+	 * For 1-to-1 style sockets, flush the read queue and trigger an
+	 * ungraceful shutdown of the association, if and only if user
+	 * messages are lost. Loosing notifications does not need to be
+	 * signalled to the peer.
+	 */
+	if (how == PRU_FLUSH_WR) {
+		/* This function is only relevant for the read directions. */
+		return (0);
+	}
 	inp = (struct sctp_inpcb *)so->so_pcb;
 	if (inp == NULL) {
 		SCTP_LTRACE_ERR_RET(inp, NULL, NULL, SCTP_FROM_SCTP_USRREQ, EINVAL);
 		return (EINVAL);
 	}
-	SCTP_INP_RLOCK(inp);
-	/* For the 1 to many model this does nothing */
+	SCTP_INP_WLOCK(inp);
 	if (inp->sctp_flags & SCTP_PCB_FLAGS_UDPTYPE) {
-		SCTP_INP_RUNLOCK(inp);
+		/* For 1-to-many style sockets this function does nothing. */
+		SCTP_INP_WUNLOCK(inp);
 		return (0);
 	}
-	SCTP_INP_RUNLOCK(inp);
-	if ((how == PRU_FLUSH_RD) || (how == PRU_FLUSH_RDWR)) {
-		/*
-		 * First make sure the sb will be happy, we don't use these
-		 * except maybe the count
-		 */
-		SCTP_INP_WLOCK(inp);
-		SCTP_INP_READ_LOCK(inp);
-		inp->sctp_flags |= SCTP_PCB_FLAGS_SOCKET_CANT_READ;
-		SCTP_INP_READ_UNLOCK(inp);
+	stcb = LIST_FIRST(&inp->sctp_asoc_list);
+	if (stcb == NULL) {
 		SCTP_INP_WUNLOCK(inp);
-		SOCK_LOCK(so);
-		KASSERT(!SOLISTENING(so),
-		    ("sctp_flush: called on listening socket %p", so));
-		SCTP_SB_CLEAR(so->so_rcv);
-		SOCK_UNLOCK(so);
+		return (ENOTCONN);
 	}
-	if ((how == PRU_FLUSH_WR) || (how == PRU_FLUSH_RDWR)) {
-		/*
-		 * First make sure the sb will be happy, we don't use these
-		 * except maybe the count
-		 */
-		SOCK_LOCK(so);
-		KASSERT(!SOLISTENING(so),
-		    ("sctp_flush: called on listening socket %p", so));
-		SOCK_UNLOCK(so);
+	SCTP_TCB_LOCK(stcb);
+	SCTP_INP_READ_LOCK(inp);
+	inp->sctp_flags |= SCTP_PCB_FLAGS_SOCKET_CANT_READ;
+	SOCK_LOCK(so);
+	TAILQ_FOREACH_SAFE(control, &inp->read_queue, next, ncontrol) {
+		if ((control->spec_flags & M_NOTIFICATION) == 0) {
+			need_to_abort = true;
+		}
+		TAILQ_REMOVE(&inp->read_queue, control, next);
+		control->on_read_q = 0;
+		for (m = control->data; m; m = SCTP_BUF_NEXT(m)) {
+			sctp_sbfree(control, control->stcb, &so->so_rcv, m);
+		}
+		if (control->on_strm_q == 0) {
+			sctp_free_remote_addr(control->whoFrom);
+			if (control->data) {
+				sctp_m_freem(control->data);
+				control->data = NULL;
+			}
+			sctp_free_a_readq(stcb, control);
+		} else {
+			stcb->asoc.size_on_all_streams += control->length;
+		}
 	}
+	SOCK_UNLOCK(so);
+	SCTP_INP_READ_UNLOCK(inp);
+	if (need_to_abort) {
+		inp->last_abort_code = SCTP_FROM_SCTP_USRREQ + SCTP_LOC_6;
+		SCTP_INP_WUNLOCK(inp);
+		op_err = sctp_generate_cause(SCTP_CAUSE_OUT_OF_RESC, "");
+		NET_EPOCH_ENTER(et);
+		sctp_abort_an_association(inp, stcb, op_err, false, SCTP_SO_LOCKED);
+		NET_EPOCH_EXIT(et);
+		return (ECONNABORTED);
+	}
+	SCTP_TCB_UNLOCK(stcb);
+	SCTP_INP_WUNLOCK(inp);
 	return (0);
 }
 

From nobody Wed Sep 13 02:11:12 2023
X-Original-To: dev-commits-src-main@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 4RlkTF0ZZrz4sTXL;
	Wed, 13 Sep 2023 02:11: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 4RlkTF07Y0z4Kpl;
	Wed, 13 Sep 2023 02:11:13 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694571073;
	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=HxtmMMCY5zMzlIt/lqb3vWA63aySyiVnEmmSjFwlNa8=;
	b=M5+tVn5lOm7V0C9kQoarFTC+ezaIZ7xdOnCWEzaCXW8IeUK143dZBvb3FbK/zE2byLQrBb
	3l/HTIThgAoIIBIWYVeGqF3KuZFSqhDAS+frOiMpqiD+RjD9kSw8JlW9YtksfP+hvUXl5Z
	4cCAaelm6CpCXAsShxgwXm78Q5AE3XsQlpMUBsmNBP+v993tZZTSwoBnRfiblRjRLLku2c
	T7VxddrJLgkcOxc3PxSrp1W0SQd9AeepNUthcrcx/SYknG/0Xx+iE+/s2YmNKVnffg0Nv9
	OyJm1LJh3kp1NUSXh3jFJHoIkTFUN8dE9La5/Tb8zDSM6/dpCKO6+YFDda/Aag==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694571073; a=rsa-sha256; cv=none;
	b=yzp23Wfqd12xEqhu7MyTN3ZryL26TYwEYL7CMPkplYZ8MCiAknN171jXnjeQEvCg275Eyz
	T83+JKCVSovvAusue5qmGVd5sI9JrSrxaaj1XR7mCefJ0LC4GHoxTYWZZnuwbIgd4S5+GL
	8ETJvaK71Czdh3qGDMSwEYksqxci2u12SU4ZgqUVnyBbG2Yz5X3z+Iz2GhnMiCb0fTMqLQ
	modfqr6K9nInxrMLriUUiozJ3OWImIuUY6TGRIco9GidJ6ftd73Kh0pTdxkTTAu4bzTA6A
	TcPQEJWoEYF+XotfwPFhF9wHpc8SiuK628MYUQmdtr5NyJvYn/1Ou9XLYCyOjA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694571073;
	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=HxtmMMCY5zMzlIt/lqb3vWA63aySyiVnEmmSjFwlNa8=;
	b=HMNZ25AZM4AlitE3HxIo6BuA+nO4kzi7Fhl3FmzCTRhXOyS7ZD3IiDnKFdFf74XN37B8ZZ
	UXjmeMBUbZU33ZHqShsKICTlRjaW8twFUpsnbfQ9UMKyVj5s5xmV//3AWGR+GwPEFSypt+
	15BO4jGIsjnrCC1hTWzxHISNwUNGl4ffXAYNExzBbb6mrzO8PRGcfyIcBBTWw7beTg7TWC
	DWwBhy0avFMnaQ6NPbIbf917LxFYJ7+jaCrHDT3T9qtSetftSYOZoEm4VHjQaMT4tBYcDA
	sy5dOuLEot7KdoM3FoyRtBvADQkZayaUYlYjnZPVXtxyFVpW3nSf5kBQiBwTiw==
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 4RlkTD6L3JzwR9;
	Wed, 13 Sep 2023 02:11:12 +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 38D2BCju012379;
	Wed, 13 Sep 2023 02:11:12 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38D2BC8i012376;
	Wed, 13 Sep 2023 02:11:12 GMT
	(envelope-from git)
Date: Wed, 13 Sep 2023 02:11:12 GMT
Message-Id: <202309130211.38D2BC8i012376@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Cy Schubert <cy@FreeBSD.org>
Subject: git: 7f5e3b9fa3d1 - main - ipfilter: Avoid allocating a
  new ipf token when not needed
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: cy
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 7f5e3b9fa3d159b7f061b4d01a767cbe5d0527f3
Auto-Submitted: auto-generated

The branch main has been updated by cy:

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

commit 7f5e3b9fa3d159b7f061b4d01a767cbe5d0527f3
Author:     Cy Schubert <cy@FreeBSD.org>
AuthorDate: 2023-09-12 20:29:29 +0000
Commit:     Cy Schubert <cy@FreeBSD.org>
CommitDate: 2023-09-13 02:10:40 +0000

    ipfilter: Avoid allocating a new ipf token when not needed
    
    Only allocate a new ipftoken_t if one cannot be found. This eliminates
    allocating unnecessary token structures that will never be used when
    performing simple lookups for existing token structures.
    
    MFC after:      2 weeks
---
 sys/netpfil/ipfilter/netinet/fil.c | 13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git a/sys/netpfil/ipfilter/netinet/fil.c b/sys/netpfil/ipfilter/netinet/fil.c
index 7dee98d0c1ad..b04ec3496a65 100644
--- a/sys/netpfil/ipfilter/netinet/fil.c
+++ b/sys/netpfil/ipfilter/netinet/fil.c
@@ -7460,10 +7460,6 @@ ipf_token_find(ipf_main_softc_t *softc, int type, int uid, void *ptr)
 {
 	ipftoken_t *it, *new;
 
-	KMALLOC(new, ipftoken_t *);
-	if (new != NULL)
-		bzero((char *)new, sizeof(*new));
-
 	WRITE_ENTER(&softc->ipf_tokens);
 	for (it = softc->ipf_token_head; it != NULL; it = it->ipt_next) {
 		if ((ptr == it->ipt_ctx) && (type == it->ipt_type) &&
@@ -7472,6 +7468,10 @@ ipf_token_find(ipf_main_softc_t *softc, int type, int uid, void *ptr)
 	}
 
 	if (it == NULL) {
+		KMALLOC(new, ipftoken_t *);
+		if (new != NULL)
+			bzero((char *)new, sizeof(*new));
+
 		it = new;
 		new = NULL;
 		if (it == NULL) {
@@ -7483,11 +7483,6 @@ ipf_token_find(ipf_main_softc_t *softc, int type, int uid, void *ptr)
 		it->ipt_type = type;
 		it->ipt_ref = 1;
 	} else {
-		if (new != NULL) {
-			KFREE(new);
-			new = NULL;
-		}
-
 		if (it->ipt_complete > 0)
 			it = NULL;
 		else

From nobody Wed Sep 13 11:02:21 2023
X-Original-To: dev-commits-src-main@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 4RlyG55lpWz4sjp0;
	Wed, 13 Sep 2023 11:02:21 +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 4RlyG52VCJz4mHY;
	Wed, 13 Sep 2023 11:02:21 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694602941;
	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=PZRnuSLytcpQ2uN2PdlNYMdBM44YDidN+ZKuQ+M9ebc=;
	b=we6aqTaahh2bCjDRu5+ZSiFcm7GFgshAf5W8lJkXh1yfaCMiaBBUlDHo2uzhv6rp4qtODx
	bcUbeiBj9DnzN2ZQKnLizZrQplhOpbxsRfENuVvr8IaFspWohWVebnv3r1Ny97t3uq6A6i
	Zqe8WPUF2k0vxrgT/wem/SuKl8FJZAGlSPB4FTryAH8c16kOkQbF+5diQGli74AZzxyqWw
	aYpmWURqIPDKTlGIjxjOUGlYRMAo0CIWkBcGFnBNtmZPnyY5K6lIdVJ2cQm0hyHev7YWzc
	/CD/c5CZfqS+IZOZhZjaOSitKZxizWtBISZ14ZIf0pho7i8RwO2F7/AT59Serg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694602941; a=rsa-sha256; cv=none;
	b=uztgtlUopLvuAjUIfVSl4PiQDgUT1wUZgHku0kY/pJ5I76I78FteJKSXmO/N3qh6wH7Rgj
	t63XjV/wzS1CldXBijwo7atALQDmOvuk/dXni5lSl0MVKz38ROgyoT37kBZBnj7hVwLG5Q
	OMstuaENkDFBHE9Yt91prw9HyqYCLORZv7U7Rw6DXzb5fzRKUPRWoXfFEFc09i6oEQH3/7
	zzCx4Hq2CR5l6Aajq4cviq/cpq2omBw+biwjW/jUbgQ0TlnIltuRmFm4FO5pqgciFnafIB
	Wd7sdhyC9qzm9TUqnOKPI5ziPGlX8OppmPBiNHlH6HOsvUP4KUl26PYMLn1LHQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694602941;
	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=PZRnuSLytcpQ2uN2PdlNYMdBM44YDidN+ZKuQ+M9ebc=;
	b=oe1FyjFhoXzvPzxL2zcFQz2ESMkK4ozEKNrR8wL/flzfgoGR+Zn3bzJDu0C4fN5mFWdBP8
	g2ur99NZLIiAa8SzZUmamGt2d5KnWTvJ1KuIXfJHOqnlY7maofw5GBtIiwOQWmZTJqgcMp
	AM7GG6JwyjtQzgDyfShga7Z+2XFmX3H7R48AgE7ey2n90lxUVyjSSPPkfnGi2YBpMEPow7
	5L0MTdRbS73FSiR10C5iUGRLKhLZF4rp/RAVEAA3t+GGBIzRqssT9mZibsHwXa45suZ95q
	jQ66H48N0BIU9vRPmj93UKAX9SUnzZwKdUCVEbyDns4FES4mK07RpnDHhLxAJw==
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 4RlyG51Slrz19tt;
	Wed, 13 Sep 2023 11:02:21 +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 38DB2LCN099547;
	Wed, 13 Sep 2023 11:02:21 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38DB2LiJ099544;
	Wed, 13 Sep 2023 11:02:21 GMT
	(envelope-from git)
Date: Wed, 13 Sep 2023 11:02:21 GMT
Message-Id: <202309131102.38DB2LiJ099544@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Wei Hu <whu@FreeBSD.org>
Subject: git: ab7dc1ceb6d3 - main - mana: add ioctl to support
  toggling offloading features
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: whu
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: ab7dc1ceb6d36fd804bedb818086ae3ff6692bf7
Auto-Submitted: auto-generated

The branch main has been updated by whu:

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

commit ab7dc1ceb6d36fd804bedb818086ae3ff6692bf7
Author:     Wei Hu <whu@FreeBSD.org>
AuthorDate: 2023-09-13 10:48:02 +0000
Commit:     Wei Hu <whu@FreeBSD.org>
CommitDate: 2023-09-13 10:59:40 +0000

    mana: add ioctl to support toggling offloading features
    
    With this support, users can enable or disable offloading features
    such as txcsum, rxcsum, tso and software lro through ifconfig.
    
    To enable or disable tx features, do it on mana interface first,
    then hn/netvsc to sync it up with mana. For example:
    
    ifconfig mana0 -txcsum
    ifconfig hn0 -tscsum
    
    To enable or disable rx features, just applying on mana interface
    would be sufficient.
    
    Disabling txcsum imples disabling tso. Enabling tso when txcsum
    is disabled will result in an error message in dmesg requesting
    to enable txcsum first.
    
    Above applies to ipv6 offloading features as well.
    
    Tested by:      whu
    MFC after:      3 days
    Sponsored by:   Microsoft
---
 sys/dev/mana/mana_en.c | 77 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 76 insertions(+), 1 deletion(-)

diff --git a/sys/dev/mana/mana_en.c b/sys/dev/mana/mana_en.c
index 56fa4e51ba26..064b28fa94a4 100644
--- a/sys/dev/mana/mana_en.c
+++ b/sys/dev/mana/mana_en.c
@@ -169,7 +169,7 @@ mana_ioctl(if_t ifp, u_long command, caddr_t data)
 	struct ifrsshash *ifrh;
 	struct ifreq *ifr;
 	uint16_t new_mtu;
-	int rc = 0;
+	int rc = 0, mask;
 
 	switch (command) {
 	case SIOCSIFMTU:
@@ -214,6 +214,81 @@ mana_ioctl(if_t ifp, u_long command, caddr_t data)
 		}
 		break;
 
+	case SIOCSIFCAP:
+		MANA_APC_LOCK_LOCK(apc);
+		ifr = (struct ifreq *)data;
+		/*
+		 * Fix up requested capabilities w/ supported capabilities,
+		 * since the supported capabilities could have been changed.
+		 */
+		mask = (ifr->ifr_reqcap & if_getcapabilities(ifp)) ^
+		    if_getcapenable(ifp);
+
+		if (mask & IFCAP_TXCSUM) {
+			if_togglecapenable(ifp, IFCAP_TXCSUM);
+			if_togglehwassist(ifp, (CSUM_TCP | CSUM_UDP | CSUM_IP));
+
+			if ((IFCAP_TSO4 & if_getcapenable(ifp)) &&
+			    !(IFCAP_TXCSUM & if_getcapenable(ifp))) {
+				mask &= ~IFCAP_TSO4;
+				if_setcapenablebit(ifp, 0, IFCAP_TSO4);
+				if_sethwassistbits(ifp, 0, CSUM_IP_TSO);
+				mana_warn(NULL,
+				    "Also disabled tso4 due to -txcsum.\n");
+			}
+		}
+
+		if (mask & IFCAP_TXCSUM_IPV6) {
+			if_togglecapenable(ifp, IFCAP_TXCSUM_IPV6);
+			if_togglehwassist(ifp, (CSUM_UDP_IPV6 | CSUM_TCP_IPV6));
+
+			if ((IFCAP_TSO6 & if_getcapenable(ifp)) &&
+			    !(IFCAP_TXCSUM_IPV6 & if_getcapenable(ifp))) {
+				mask &= ~IFCAP_TSO6;
+				if_setcapenablebit(ifp, 0, IFCAP_TSO6);
+				if_sethwassistbits(ifp, 0, CSUM_IP6_TSO);
+				mana_warn(ifp,
+				    "Also disabled tso6 due to -txcsum6.\n");
+			}
+		}
+
+		if (mask & IFCAP_RXCSUM)
+			if_togglecapenable(ifp, IFCAP_RXCSUM);
+		/* We can't diff IPv6 packets from IPv4 packets on RX path. */
+		if (mask & IFCAP_RXCSUM_IPV6)
+			if_togglecapenable(ifp, IFCAP_RXCSUM_IPV6);
+
+		if (mask & IFCAP_LRO)
+			if_togglecapenable(ifp, IFCAP_LRO);
+
+		if (mask & IFCAP_TSO4) {
+			if (!(IFCAP_TSO4 & if_getcapenable(ifp)) &&
+			    !(IFCAP_TXCSUM & if_getcapenable(ifp))) {
+				MANA_APC_LOCK_UNLOCK(apc);
+				if_printf(ifp, "Enable txcsum first.\n");
+				rc = EAGAIN;
+				goto out;
+			}
+			if_togglecapenable(ifp, IFCAP_TSO4);
+			if_togglehwassist(ifp, CSUM_IP_TSO);
+		}
+
+		if (mask & IFCAP_TSO6) {
+			if (!(IFCAP_TSO6 & if_getcapenable(ifp)) &&
+			    !(IFCAP_TXCSUM_IPV6 & if_getcapenable(ifp))) {
+				MANA_APC_LOCK_UNLOCK(apc);
+				if_printf(ifp, "Enable txcsum6 first.\n");
+				rc = EAGAIN;
+				goto out;
+			}
+			if_togglecapenable(ifp, IFCAP_TSO6);
+			if_togglehwassist(ifp, CSUM_IP6_TSO);
+		}
+
+		MANA_APC_LOCK_UNLOCK(apc);
+out:
+		break;
+
 	case SIOCSIFMEDIA:
 	case SIOCGIFMEDIA:
 	case SIOCGIFXMEDIA:

From nobody Wed Sep 13 11:23:58 2023
X-Original-To: dev-commits-src-main@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 4Rlyl311V3z4swMH;
	Wed, 13 Sep 2023 11:23: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 4Rlyl30D1mz4ttm;
	Wed, 13 Sep 2023 11:23:59 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694604239;
	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=Bj4+x1RF+8YVHfKXRol8YqdC3PCZrY4or4wMWnr83bI=;
	b=NI4I5fDEstNSbG5xVniIMOaUEWHsI/JLVX42gD+U1PJ9v0RLpNwpaXliRJVixKxv7gjSf/
	/DH5Lwx/iWBhe0KiPvjNcFlXVeRMNMHKukSjjGsboahsCI64bhQ1Hc46dBEiMSJyBSDvnW
	9Lg/y9A2CWGStalDxaFF4NtDUnha1oj48YlxgSbaldxN3ClfLd2Vt1O/lgSJbl99aVpX4i
	YT7Jt1sgbt09Rm806zZzl5JEfovuJuF83AnwiD0XRU3MS8XfoAt4KGcqKGK8fumBsiuEPi
	FoBMBOtWv0nNr6LakRJHThcUGKOrfn/+nQBSnGRPEyEE+zJnkLarm2A0AkGnwA==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694604239; a=rsa-sha256; cv=none;
	b=mz/98oGSySY2VY0ijSnQdHNjBOljcThDUqL0Rczsnu1GgX3dL/dxp/9YXQtHLBNwf5n+39
	PMgOJ6T4B1EpkCeByqfJRA7beOkRp1m9GckTzC5SE1z3y1MxWC2MAiRGYP9ghKFUjkZogY
	DoD2x+eXoCG/dSB2IQKUosgtLqveKRgtnDczXZCXZMaIRldfNKx9fPp5plT2cOVT3f1ruf
	lSJE/k2m0chv/erS5PbYOh4COR/vp2dH7bZvVM4mPNmI48K7O9FQGYTF7MIOaZs6kj3A8M
	gVt2RkPe1G3fdMfKZ5UWgHNlTjFU/0dpt2afQcbTXaiLhCmj/uqAmk/3EgJSZQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694604239;
	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=Bj4+x1RF+8YVHfKXRol8YqdC3PCZrY4or4wMWnr83bI=;
	b=Z/gDHvieD0zFVg4uI8qNHvs7fTzc6pSyNbE9EChgLE52dfYI+Mc2Td8ze7N3YatRGWtvka
	PdZp0n950ssZHuNU9M6eG2oexf0A8My6IKSfZMoAo/iZBfbYwEBSn1yPdpP/cG3TjDnX5q
	J1DOGzo/gGnt7Ux5TsXxxrPfAj16SkJS/13m+fSJwWJxViXjsTCTnttLmuNjgn9vF6GGAp
	GzeW0Hh8c4bsIsU8HZLFD4+4iPbm5Fjz1W9B266evjN+FeZKqtgsDrODwWXlSi9VQtY7M2
	YW0S17MrfIk9kShZj0Dqjgqxp57Au7qjK2iE7HWu37cupgYk6ZuciBkU5TluLw==
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 4Rlyl26PYwz1C68;
	Wed, 13 Sep 2023 11:23: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 38DBNwbU033066;
	Wed, 13 Sep 2023 11:23:58 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38DBNwUb033063;
	Wed, 13 Sep 2023 11:23:58 GMT
	(envelope-from git)
Date: Wed, 13 Sep 2023 11:23:58 GMT
Message-Id: <202309131123.38DBNwUb033063@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Kristof Provost <kp@FreeBSD.org>
Subject: git: 7d45cdbad4d7 - main - pf tests: pfsync:defer requires
  scapy
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@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/main
X-Git-Reftype: branch
X-Git-Commit: 7d45cdbad4d7905239404e1abc25dbbae4658446
Auto-Submitted: auto-generated

The branch main has been updated by kp:

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

commit 7d45cdbad4d7905239404e1abc25dbbae4658446
Author:     Kristof Provost <kp@FreeBSD.org>
AuthorDate: 2023-09-13 09:11:02 +0000
Commit:     Kristof Provost <kp@FreeBSD.org>
CommitDate: 2023-09-13 09:12:27 +0000

    pf tests: pfsync:defer requires scapy
    
    Add the kyua hint so we skip the test if it's not installed.
    
    Sponsored by:   Rubicon Communications, LLC ("Netgate")
---
 tests/sys/netpfil/pf/pfsync.sh | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tests/sys/netpfil/pf/pfsync.sh b/tests/sys/netpfil/pf/pfsync.sh
index d62cdddd504a..80b81205b59d 100644
--- a/tests/sys/netpfil/pf/pfsync.sh
+++ b/tests/sys/netpfil/pf/pfsync.sh
@@ -118,6 +118,7 @@ defer_head()
 {
 	atf_set descr 'Defer mode pfsync test'
 	atf_set require.user root
+	atf_set require.progs scapy
 }
 
 defer_body()

From nobody Wed Sep 13 11:43:53 2023
X-Original-To: dev-commits-src-main@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 4RlzB15nKVz4t6Zk;
	Wed, 13 Sep 2023 11:43: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 4RlzB15LGcz3GbJ;
	Wed, 13 Sep 2023 11:43:53 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694605433;
	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=Go/QjVOACKp6zvYVxLNLvKscRyFsL+kS+oeUxEzMnDw=;
	b=Wd4WKLRd96QOIBGMPRRwQADVTQWBlG6buVHSXKZDtFE0xUD6wS4WAkmGLhIG1o27lFTgB3
	FOu7TkZPCa3IJ83Kp8NHA96RDXuU1pH4hBAVejxy9hM6LYLSQYqp2WNU7/aQ0yspR/57TS
	M0/jDXFZ6N1wCm9ebYXCCMYRxpHUG5yWuK53ePgJJ/XtHF73tjxVWnqx2IU+YdgEk1ctaD
	V7FNz3kcIT3Xb8akbCVDUXXiprzDI1PjV7jigST00qxlAI5U327h5ASNOc9nf3QyDdTXDZ
	OSSoFnAQLJuaHgh3Iby1IxDaBn7nY5H7aBVext4fhF7gS4do0tmWCwIDrnqi+g==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694605433; a=rsa-sha256; cv=none;
	b=NsxX2n5JJzouf79Ywe1tZI+Kwjnbia4ZSMywcLJ5InSjzlkZ26951566WsrUbpWaMXdjEr
	qgbZiFQu+EVsOoLBIoOo6hZmGS/u9DRd6T6cIvFqo8YQgCp2jzdJB//NHXEJn87lbnnCFV
	yt1PXE9xEPWl1PVnpb+e/wGtHJU940aj1bUEHf1kchN0NIKv1yjTbWOWGz6P+0mZG+TNMw
	DGOj2Tge23fGWZcHtzFwoidYN6MT80heuWndYfGofG46HB1aLaPCUeEjCmwClpRCrhBoI5
	z/Q+QmB42HMjYqiGMZWlHhmrBuN3QBOo1xlgaUn1HcH26V1aPUjiC7MRW95ypw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694605433;
	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=Go/QjVOACKp6zvYVxLNLvKscRyFsL+kS+oeUxEzMnDw=;
	b=CtfG93r1kleke2XBuK7gE3Yfr0Za23J0jf1Kf8T7KqY8z2eKIfz34jrZtmVSEgaMPtZD1R
	ymc5u+DyMfT67S+S++M56OcABzsDJU+0b8uu41oqK/H/jhUX+GP28xNTdBRLHBs9qBRHBh
	3WV8+QWTjUKBXmwc+aoWvtpgPaqKupLuao/YffpcmcbVNarIoHTvGD4VIA1Woe/u51umb3
	ZQO/xQMzgxh648fQYzpDYOw0BA6+h+7W1p7Mngjqqz+557HII4qGnjuJZ6nY1V01s9vnU7
	5pXILilhIQtPXkVFtEBfcR5w65HFwfdhWVd3BQDe5wV8Nm8vJrV0Gu3Yx2p8Og==
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 4RlzB14RVjz1C9g;
	Wed, 13 Sep 2023 11:43: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 38DBhrF0066234;
	Wed, 13 Sep 2023 11:43:53 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38DBhrVA066232;
	Wed, 13 Sep 2023 11:43:53 GMT
	(envelope-from git)
Date: Wed, 13 Sep 2023 11:43:53 GMT
Message-Id: <202309131143.38DBhrVA066232@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= <des@FreeBSD.org>
Subject: git: d2c839eee0d5 - main - Belatedly document OPIE removal
  in RELNOTES and UPDATING.
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@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/main
X-Git-Reftype: branch
X-Git-Commit: d2c839eee0d5410095f5984d2126f41f4cf62a00
Auto-Submitted: auto-generated

The branch main has been updated by des:

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

commit d2c839eee0d5410095f5984d2126f41f4cf62a00
Author:     Dag-Erling Smørgrav <des@FreeBSD.org>
AuthorDate: 2023-09-13 11:43:34 +0000
Commit:     Dag-Erling Smørgrav <des@FreeBSD.org>
CommitDate: 2023-09-13 11:43:45 +0000

    Belatedly document OPIE removal in RELNOTES and UPDATING.
    
    MFC after:      3 days
    Reviewed by:    imp, emaste
    Differential Revision:  https://reviews.freebsd.org/D41822
---
 RELNOTES | 7 +++++++
 UPDATING | 6 ++++++
 2 files changed, 13 insertions(+)

diff --git a/RELNOTES b/RELNOTES
index 0ff123618e14..f3d717525929 100644
--- a/RELNOTES
+++ b/RELNOTES
@@ -148,6 +148,13 @@ f0bc4ed144fc:
 	instructions may be probed instead of logical entry and return
 	instructions.  The provider is currently amd64-only.
 
+0aa2700123e2:
+	OPIE has been removed from the base system.  If you still wish
+	to use it, install the security/opie port.  Otherwise, make
+	sure to remove or comment out any mention of pam_opie and
+	pam_opieaccess from your PAM policies (etcupdate will normally
+	take care of this for the stock policies).
+
 0eea46fb1f83:
 	Removed telnetd.
 
diff --git a/UPDATING b/UPDATING
index b370f2f3ebb4..59788ab2c15d 100644
--- a/UPDATING
+++ b/UPDATING
@@ -207,6 +207,12 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 15.x IS SLOW:
 	after upgrading to restore all the component that were previously
 	installed.
 
+20221002:
+	OPIE has been removed from the base system.  If needed, it can
+	be installed from ports (security/opie) or packages (opie).
+	Otherwise, make sure that your PAM policies do not reference
+	pam_opie or pam_opieaccess.
+
 20220610:
 	LinuxKPI pm.h changes require an update to the latest drm-kmod version
 	before re-compiling to avoid errors.

From nobody Wed Sep 13 13:08:40 2023
X-Original-To: dev-commits-src-main@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 4Rm14R4Dbxz4sbs8;
	Wed, 13 Sep 2023 13:09:11 +0000 (UTC)
	(envelope-from gallatin@fastmail.com)
Received: from out5-smtp.messagingengine.com (out5-smtp.messagingengine.com [66.111.4.29])
	(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 mx1.freebsd.org (Postfix) with ESMTPS id 4Rm14Q5Bgnz3fgZ;
	Wed, 13 Sep 2023 13:09:10 +0000 (UTC)
	(envelope-from gallatin@fastmail.com)
Authentication-Results: mx1.freebsd.org;
	dkim=pass header.d=fastmail.com header.s=fm2 header.b=Y+CpIGy1;
	dkim=pass header.d=messagingengine.com header.s=fm2 header.b=pLNkmIsC;
	spf=pass (mx1.freebsd.org: domain of gallatin@fastmail.com designates 66.111.4.29 as permitted sender) smtp.mailfrom=gallatin@fastmail.com;
	dmarc=pass (policy=none) header.from=fastmail.com
Received: from compute5.internal (compute5.nyi.internal [10.202.2.45])
	by mailout.nyi.internal (Postfix) with ESMTP id 79D685C0165;
	Wed, 13 Sep 2023 09:09:09 -0400 (EDT)
Received: from imap51 ([10.202.2.101])
  by compute5.internal (MEProxy); Wed, 13 Sep 2023 09:09:09 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.com; h=
	cc:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:sender
	:subject:subject:to:to; s=fm2; t=1694610549; x=1694696949; bh=9c
	wY7QdUWHZq5dfV9kTiKsCR4mh61ym+adxvQiRsmoY=; b=Y+CpIGy16mLwDl3ar5
	UPYic/APv+sRbUOMr39mGzkfO0frxJ1801M1YdarAsRJd6gXsbb5BkUAcJuhVSu0
	PZy3DPQgb1rFwhezofUPUSlEJBwbTKtuiUI979NsziMX6LMnmCNH7Pw84cxnKOAX
	eE/T8BUTzXbAXHtb/i2Ps0rItGz2vbhbKIpB4z/GS6EHN1+LaW25R3x+GK/NRBlN
	zTK4HPAkNSWPVRWQtpqWgaBHtSk+9DaWVP3z+7fDVq9lotoeYP/EHn22BoNcfLWG
	sTRK15cCC+zA75ZFOPtVYS1zLhfN28502f5LS6IwRKIYV92EYLAPlSHi1xqPotHB
	eNvQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:sender:subject
	:subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender
	:x-sasl-enc; s=fm2; t=1694610549; x=1694696949; bh=9cwY7QdUWHZq5
	dfV9kTiKsCR4mh61ym+adxvQiRsmoY=; b=pLNkmIsC8O2uTJ/41aZlhghRBTt5A
	OsbPwoY21fEasuUeEQ8TxnM6Fhxwnl1IRWF8239W2CYA9JY8xugDrV/6aiRKL4iw
	983eNNoYAEsr+OaOkYJhVFWM4skWQbsdzEyTe0RXak8QNOZD/9oIWaL+qhPHRuRI
	j59yXY0dBqIsVJfvW7gSWistxhXr+indnjm97wW8q94gPngqUkUr3NQW9LYKXFTN
	DuaN1IJi3gKMZIQik52L/YOXLj/8925M42naMjWiIHTBhY1XXPkioHjCgm1TFaES
	EtufCE9CbVkBb1EqaH04f6O/DeuEJ/lbeE9s0g+edONfHGEnmTWmS30gA==
X-ME-Sender: <xms:dbQBZVSu9hId3L72fDTszLIcOKtHFaPKXy-DFOIB7hzHzRowBbQdLw>
    <xme:dbQBZezNDYl8n6mOPANuJGZXo4qtuc6qkSEYdTqTgxci9cd5vVsdMjKn1QTMQBK3v
    vPFywqg7cnnJM6Hh6w>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedviedrudeikedgieduucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
    uceurghilhhouhhtmecufedttdenucenucfjughrpefofgggkfgjfhffhffvufgtsegrtd
    erreerredtnecuhfhrohhmpedfffhrvgifucfirghllhgrthhinhdfuceoghgrlhhlrght
    ihhnsehfrghsthhmrghilhdrtghomheqnecuggftrfgrthhtvghrnhepheegieeltdegue
    eiveekveevheeikedvleduledufeetkeelhfduheehteegleehnecuffhomhgrihhnpehf
    rhgvvggsshgurdhorhhgpdhifhdrtghsnecuvehluhhsthgvrhfuihiivgeptdenucfrrg
    hrrghmpehmrghilhhfrhhomhepghgrlhhlrghtihhnsehfrghsthhmrghilhdrtghomh
X-ME-Proxy: <xmx:dbQBZa0N0zZjrFD_VJFcxgI74lZQXSbi799GeklII8ziFmsQcKutQw>
    <xmx:dbQBZdCshdxrrdQQv46Db0mWi9ptM3staJeOpeXfy3U-HFAKp6kIsg>
    <xmx:dbQBZeg4MeoqN0sumkOAGKS6FSATYzP01xUHMJi6eYISsfEycI3efA>
    <xmx:dbQBZSaC97gQP1DPrkkf17GhJfsszntST3JwtmugMeqKSXY4eRnKqA>
Feedback-ID: i2f014658:Fastmail
Received: by mailuser.nyi.internal (Postfix, from userid 501)
	id 16551B60089; Wed, 13 Sep 2023 09:09:08 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.9.0-alpha0-745-g95dd7bea33-fm-20230905.001-g95dd7bea
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
Mime-Version: 1.0
Message-Id: <7bb4a991-060d-415e-a188-192781c1f3c0@app.fastmail.com>
In-Reply-To: <202307171904.36HJ4L1l013461@gitrepo.freebsd.org>
References: <202307171904.36HJ4L1l013461@gitrepo.freebsd.org>
Date: Wed, 13 Sep 2023 08:08:40 -0500
From: "Drew Gallatin" <gallatin@fastmail.com>
To: "Simon J. Gerraty" <sjg@FreeBSD.org>, src-committers@FreeBSD.org,
 dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject: Re: git: 89f361f742ae - main - kern.post.mk allow NEWVERS_{ENV,ARGS}
Content-Type: multipart/alternative;
 boundary=f9e3987d93394d2a80959c26188f6950
X-Spamd-Bar: --
X-Spamd-Result: default: False [-2.50 / 15.00];
	URI_COUNT_ODD(1.00)[9];
	NEURAL_HAM_MEDIUM(-1.00)[-1.000];
	DWL_DNSWL_LOW(-1.00)[messagingengine.com:dkim];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	DMARC_POLICY_ALLOW(-0.50)[fastmail.com,none];
	MV_CASE(0.50)[];
	R_DKIM_ALLOW(-0.20)[fastmail.com:s=fm2,messagingengine.com:s=fm2];
	R_SPF_ALLOW(-0.20)[+ip4:66.111.4.29];
	RCVD_IN_DNSWL_LOW(-0.10)[66.111.4.29:from];
	MIME_GOOD(-0.10)[multipart/alternative,text/plain];
	NEURAL_SPAM_SHORT(0.09)[0.086];
	XM_UA_NO_VERSION(0.01)[];
	RCPT_COUNT_THREE(0.00)[4];
	FROM_HAS_DN(0.00)[];
	FREEFALL_USER(0.00)[gallatin];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	ARC_NA(0.00)[];
	ASN(0.00)[asn:19151, ipnet:66.111.4.0/24, country:US];
	FREEMAIL_ENVFROM(0.00)[fastmail.com];
	RCVD_COUNT_THREE(0.00)[3];
	FREEMAIL_FROM(0.00)[fastmail.com];
	TO_DN_SOME(0.00)[];
	RCVD_TLS_LAST(0.00)[];
	MID_RHS_MATCH_FROMTLD(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	DKIM_TRACE(0.00)[fastmail.com:+,messagingengine.com:+];
	MIME_TRACE(0.00)[0:+,1:+,2:~];
	MLMMJ_DEST(0.00)[dev-commits-src-all@FreeBSD.org,dev-commits-src-main@FreeBSD.org]
X-Rspamd-Queue-Id: 4Rm14Q5Bgnz3fgZ

--f9e3987d93394d2a80959c26188f6950
Content-Type: text/plain

Simon.

This changes the version strings of kernels built via the buildkernel target and adds a lot of redundancy.  Eg:

VERSTR changes from:

"FreeBSD 14.0-ALPHA1 #0 main-n264839-91d0876a20ce-dirty: Wed Sep 13 08:17:25 EDT 2023\n    gallatin@beast:/usr/src/sys/amd64/compile/GENERIC"

To:

"FreeBSD 14.0-ALPHA1 amd64 1400094 #0 main-n264839-91d0876a20ce-dirty: Wed Sep 13 08:21:13 EDT 2023\n    gallatin@beast:/usr/obj/usr/src/amd64.amd64/sys/GENERIC"

Note the extra "amd64 1400094"   This screws up some of our (Netflix) tooling, as its reflected via uname -a

It appears that when using the buildkernel target, VERSION is picked up from Makefile.inc1's VERSION, which I think is intended for CTFMERGE.    Was this intention?

Thanks,
Drew



On Mon, Jul 17, 2023, at 2:04 PM, Simon J. Gerraty wrote:
> The branch main has been updated by sjg:
> 
> URL: https://cgit.FreeBSD.org/src/commit/?id=89f361f742aeae11c8b2e28eae3d015882b6c0ee <https://cgit.freebsd.org/src/commit/?id=89f361f742aeae11c8b2e28eae3d015882b6c0ee>
> 
> commit 89f361f742aeae11c8b2e28eae3d015882b6c0ee
> Author:     Simon J. Gerraty <sjg@FreeBSD.org>
> AuthorDate: 2023-07-17 19:03:35 +0000
> Commit:     Simon J. Gerraty <sjg@FreeBSD.org>
> CommitDate: 2023-07-17 19:03:35 +0000
> 
>     kern.post.mk allow NEWVERS_{ENV,ARGS}
>     
>     Allow makefiles better control of newvers.sh env and args.
>     Also allow variable overrides on command line.
>     
>     Reviewed by:    imp, stevek
>     Sponsored by:   Juniper Networks, Inc.
>     Differential Revision:  https://reviews.freebsd.org/D41012
> ---
> sys/conf/kern.post.mk |  5 +++--
> sys/conf/newvers.sh   | 16 +++++++++++++---
> 2 files changed, 16 insertions(+), 5 deletions(-)
> 
> diff --git a/sys/conf/kern.post.mk b/sys/conf/kern.post.mk
> index c368d5f40df8..45df83e2d16b 100644
> --- a/sys/conf/kern.post.mk
> +++ b/sys/conf/kern.post.mk
> @@ -444,11 +444,12 @@ config.o env.o hints.o vers.o vnode_if.o:
> ${NORMAL_C}
> ${NORMAL_CTFCONVERT}
>  
> +NEWVERS_ENV+= MAKE="${MAKE}"
> .if ${MK_REPRODUCIBLE_BUILD} != "no"
> -REPRO_FLAG="-R"
> +NEWVERS_ARGS+= -R
> .endif
> vers.c: .NOMETA_CMP $S/conf/newvers.sh $S/sys/param.h ${SYSTEM_DEP:Nvers.*}
> - MAKE="${MAKE}" sh $S/conf/newvers.sh ${REPRO_FLAG} ${KERN_IDENT}
> + ${NEWVERS_ENV} sh $S/conf/newvers.sh ${NEWVERS_ARGS} ${KERN_IDENT}
>  
> vnode_if.c: $S/tools/vnode_if.awk $S/kern/vnode_if.src
> ${AWK} -f $S/tools/vnode_if.awk $S/kern/vnode_if.src -c
> diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh
> index 85346b1cdc29..e21b3f5ce2e2 100644
> --- a/sys/conf/newvers.sh
> +++ b/sys/conf/newvers.sh
> @@ -58,13 +58,23 @@ BRANCH="CURRENT"
> if [ -n "${BRANCH_OVERRIDE}" ]; then
> BRANCH=${BRANCH_OVERRIDE}
> fi
> -RELEASE="${REVISION}-${BRANCH}"
> -VERSION="${TYPE} ${RELEASE}"
>  
> if [ -z "${SYSDIR}" ]; then
> -    SYSDIR=$(dirname $0)/..
> + SYSDIR=$(dirname $0)/..
> fi
>  
> +# allow random overrides
> +while :
> +do
> + case "$1" in
> + *=*) eval "$1"; shift;;
> + *) break;;
> + esac
> +done
> +
> +RELEASE="${RELEASE:-${REVISION}-${BRANCH}}"
> +VERSION="${VERSION:-${TYPE} ${RELEASE}}"
> +
> RELDATE=$(awk '/^#define[[:space:]]*__FreeBSD_version/ {print $3}' ${PARAMFILE:-${SYSDIR}/sys/param.h})
>  
> if [ -r "${SYSDIR}/../COPYRIGHT" ]; then
> 

--f9e3987d93394d2a80959c26188f6950
Content-Type: text/html
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html><html><head><title></title><style type=3D"text/css">p.Mso=
Normal,p.MsoNoSpacing{margin:0}</style></head><body><div>Simon.<br></div=
><div><br></div><div>This changes the version strings of kernels built v=
ia the buildkernel target and adds a lot of redundancy.&nbsp; Eg:<br></d=
iv><div><br></div><pre class=3D"c-mrkdwn__pre">VERSTR changes from:
<br></pre><pre class=3D"c-mrkdwn__pre">"FreeBSD 14.0-ALPHA1 #0 main-n264=
839-91d0876a20ce-dirty: Wed Sep 13 08:17:25 EDT 2023\n    gallatin@beast=
:/usr/src/sys/amd64/compile/GENERIC"<br></pre><div><br></div><div>To:<br=
></div><div><br></div><pre class=3D"c-mrkdwn__pre">"FreeBSD 14.0-ALPHA1 =
amd64 1400094 #0 main-n264839-91d0876a20ce-dirty: Wed Sep 13 08:21:13 ED=
T 2023\n    gallatin@beast:/usr/obj/usr/src/amd64.amd64/sys/GENERIC"<br>=
</pre><div><br></div><div>Note the extra "amd64 1400094"&nbsp;&nbsp; Thi=
s screws up some of our (Netflix) tooling, as its reflected via uname -a=
<br></div><div><br></div><div>It appears that when using the buildkernel=
 target, VERSION is picked up from Makefile.inc1's VERSION, which I thin=
k is intended for CTFMERGE.&nbsp;&nbsp;&nbsp; Was this intention?<br></d=
iv><div><br></div><div>Thanks,<br></div><div>Drew<br></div><div><br></di=
v><div><br></div><div><br></div><div>On Mon, Jul 17, 2023, at 2:04 PM, S=
imon J. Gerraty wrote:<br></div><blockquote type=3D"cite" id=3D"qt" styl=
e=3D""><div>The branch main has been updated by sjg:<br></div><div><br><=
/div><div>URL:&nbsp;<a href=3D"https://cgit.FreeBSD.org/src/commit/?id=3D=
89f361f742aeae11c8b2e28eae3d015882b6c0ee">https://cgit.FreeBSD.org/src/c=
ommit/?id=3D89f361f742aeae11c8b2e28eae3d015882b6c0ee</a><br></div><div><=
br></div><div>commit 89f361f742aeae11c8b2e28eae3d015882b6c0ee<br></div><=
div>Author:&nbsp;&nbsp;&nbsp;&nbsp; Simon J. Gerraty &lt;<a href=3D"mail=
to:sjg@FreeBSD.org">sjg@FreeBSD.org</a>&gt;<br></div><div>AuthorDate: 20=
23-07-17 19:03:35 +0000<br></div><div>Commit:&nbsp;&nbsp;&nbsp;&nbsp; Si=
mon J. Gerraty &lt;<a href=3D"mailto:sjg@FreeBSD.org">sjg@FreeBSD.org</a=
>&gt;<br></div><div>CommitDate: 2023-07-17 19:03:35 +0000<br></div><div>=
<br></div><div>&nbsp;&nbsp;&nbsp; kern.post.mk allow NEWVERS_{ENV,ARGS}<=
br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;<br></div><div>&nbsp;&nbsp;&nbsp; =
Allow makefiles better control of newvers.sh env and args.<br></div><div=
>&nbsp;&nbsp;&nbsp; Also allow variable overrides on command line.<br></=
div><div>&nbsp;&nbsp;&nbsp;&nbsp;<br></div><div>&nbsp;&nbsp;&nbsp; Revie=
wed by:&nbsp;&nbsp;&nbsp; imp, stevek<br></div><div>&nbsp;&nbsp;&nbsp; S=
ponsored by:&nbsp;&nbsp; Juniper Networks, Inc.<br></div><div>&nbsp;&nbs=
p;&nbsp; Differential Revision:&nbsp;&nbsp;<a href=3D"https://reviews.fr=
eebsd.org/D41012">https://reviews.freebsd.org/D41012</a><br></div><div>-=
--<br></div><div>sys/conf/kern.post.mk |&nbsp; 5 +++--<br></div><div>sys=
/conf/newvers.sh&nbsp;&nbsp; | 16 +++++++++++++---<br></div><div>2 files=
 changed, 16 insertions(+), 5 deletions(-)<br></div><div><br></div><div>=
diff --git a/sys/conf/kern.post.mk b/sys/conf/kern.post.mk<br></div><div=
>index c368d5f40df8..45df83e2d16b 100644<br></div><div>--- a/sys/conf/ke=
rn.post.mk<br></div><div>+++ b/sys/conf/kern.post.mk<br></div><div>@@ -4=
44,11 +444,12 @@ config.o env.o hints.o vers.o vnode_if.o:<br></div><div=
>${NORMAL_C}<br></div><div>${NORMAL_CTFCONVERT}<br></div><div>&nbsp;<br>=
</div><div>+NEWVERS_ENV+=3D MAKE=3D"${MAKE}"<br></div><div>.if ${MK_REPR=
ODUCIBLE_BUILD} !=3D "no"<br></div><div>-REPRO_FLAG=3D"-R"<br></div><div=
>+NEWVERS_ARGS+=3D -R<br></div><div>.endif<br></div><div>vers.c: .NOMETA=
_CMP $S/conf/newvers.sh $S/sys/param.h ${SYSTEM_DEP:Nvers.*}<br></div><d=
iv>-	MAKE=3D"${MAKE}" sh $S/conf/newvers.sh ${REPRO_FLAG} ${KERN_IDENT}<=
br></div><div>+	${NEWVERS_ENV} sh $S/conf/newvers.sh ${NEWVERS_ARGS} ${K=
ERN_IDENT}<br></div><div>&nbsp;<br></div><div>vnode_if.c: $S/tools/vnode=
_if.awk $S/kern/vnode_if.src<br></div><div>${AWK} -f $S/tools/vnode_if.a=
wk $S/kern/vnode_if.src -c<br></div><div>diff --git a/sys/conf/newvers.s=
h b/sys/conf/newvers.sh<br></div><div>index 85346b1cdc29..e21b3f5ce2e2 1=
00644<br></div><div>--- a/sys/conf/newvers.sh<br></div><div>+++ b/sys/co=
nf/newvers.sh<br></div><div>@@ -58,13 +58,23 @@ BRANCH=3D"CURRENT"<br></=
div><div>if [ -n "${BRANCH_OVERRIDE}" ]; then<br></div><div>BRANCH=3D${B=
RANCH_OVERRIDE}<br></div><div>fi<br></div><div>-RELEASE=3D"${REVISION}-$=
{BRANCH}"<br></div><div>-VERSION=3D"${TYPE} ${RELEASE}"<br></div><div>&n=
bsp;<br></div><div>if [ -z "${SYSDIR}" ]; then<br></div><div>-&nbsp;&nbs=
p;&nbsp; SYSDIR=3D$(dirname $0)/..<br></div><div>+	SYSDIR=3D$(dirname $0=
)/..<br></div><div>fi<br></div><div>&nbsp;<br></div><div>+# allow random=
 overrides<br></div><div>+while :<br></div><div>+do<br></div><div>+	case=
 "$1" in<br></div><div>+	*=3D*) eval "$1"; shift;;<br></div><div>+	*) br=
eak;;<br></div><div>+	esac<br></div><div>+done<br></div><div>+<br></div>=
<div>+RELEASE=3D"${RELEASE:-${REVISION}-${BRANCH}}"<br></div><div>+VERSI=
ON=3D"${VERSION:-${TYPE} ${RELEASE}}"<br></div><div>+<br></div><div>RELD=
ATE=3D$(awk '/^#define[[:space:]]*__FreeBSD_version/ {print $3}' ${PARAM=
FILE:-${SYSDIR}/sys/param.h})<br></div><div>&nbsp;<br></div><div>if [ -r=
 "${SYSDIR}/../COPYRIGHT" ]; then<br></div><div><br></div></blockquote><=
div><br></div></body></html>
--f9e3987d93394d2a80959c26188f6950--

From nobody Wed Sep 13 13:32:40 2023
X-Original-To: dev-commits-src-main@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 4Rm1bX2GH3z4sq77;
	Wed, 13 Sep 2023 13:32:40 +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 4Rm1bX1q0mz4JRD;
	Wed, 13 Sep 2023 13:32:40 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694611960;
	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=rSDzQSJJ0q2LBlcq6yAoth6dm25wigaNboPGAw1eZf0=;
	b=p9rcNXtG4AKkqLc0XIy/za1lhkP+Qids4ZqcSlSWnB10zPQIukVq0NHJNdkLuAGe/7jHrs
	ylxkgYU/99VFMWKB8j4h24JWr8EsVUIfUeTWrOQzi3sq/UfiNGPfsEIz6PYc1bCOyg1GDX
	zHiduINZhNoCWp2YDY28DQPQFDhM76x8Lw1lRz5eSyoAQjuXqd10NpcB6NpbKsDrIOGgMU
	2hbQ+3aBsdIY0qILceCi61gxhw34agVnKw9GmyuovD39jQaRGaCRyZm7ZUAnYnEu4cwNIa
	UcJE6A8kRYFYdLzGf+kca2OiVYsK7Tk48pQ2f8+Q3kIAoayFT7D/N1LmaxgDMg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694611960; a=rsa-sha256; cv=none;
	b=LC7MSim5cUeOKKdm5N4AXoEW4Qm/T4T0uP5rjjlDxEiyUkJ5vmqcOpxDs+Z4C+PJCKKX/9
	QBklO51KdRuleRwKeHO+E2w5mA6g3rH4gzSzcnXMntNBJ/Ky5hQOKiri0Q5h1E9Wz5qKMK
	c1mEta4qMiP2WuV2ERY6R5laf6gG0BxhuB8Qg0sgYDAJyeriM0KwqPRBiVhivTEnjznOP4
	G3WBs1rgoequvpMJ5yVlXAwc+YYxP06QiNzlEawAlSAIe+Hf2NXZyAfur+Z56dP5jNGwsU
	3+bkXuDmG1qgJ7GDrKsaxTYncfUzbncsoA8qCnj0DUgqYbZVfrMegrAdAeV2zg==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694611960;
	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=rSDzQSJJ0q2LBlcq6yAoth6dm25wigaNboPGAw1eZf0=;
	b=ZlbYEDU58qTZHjLn8ho44RnMfoARFu5Pgi2zxd36qG3CPjc1tow33wV23yqkTDcRQpsZq5
	AN+ylEuSIf16aZyBj7u1j3u5Jb4TKHKVAJd1oCkv73TKrAuxVuIdGt9f+OzJmHzLq3yEjA
	pQ4htuFwQyxRmEjkutBOLeNRFLquYOL1zP5BZ/c7syMeu8mAIX2znQoEetZzGIP8FdOq/7
	DnhwyozgiGywmlbejl5/QwSJ6IqAc1zXgwibwsjCwK/88+zVtqBf4yuRPKcoLyQC3njfNu
	Jx0QCSoogTvwEK0CSsgGxDtuAk9TXMWadEOBHEH72AJvOzNIH8xGWPTJcsTKaA==
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 4Rm1bX0t3Dz22J;
	Wed, 13 Sep 2023 13:32: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 38DDWeuN048682;
	Wed, 13 Sep 2023 13:32:40 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38DDWekl048679;
	Wed, 13 Sep 2023 13:32:40 GMT
	(envelope-from git)
Date: Wed, 13 Sep 2023 13:32:40 GMT
Message-Id: <202309131332.38DDWekl048679@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Michael Tuexen <tuexen@FreeBSD.org>
Subject: git: bb56b36d7188 - main - sctp: further improve shutting
  down the read side of a socket
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: tuexen
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: bb56b36d7188e004840294d0bd5dfdf7f3392a05
Auto-Submitted: auto-generated

The branch main has been updated by tuexen:

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

commit bb56b36d7188e004840294d0bd5dfdf7f3392a05
Author:     Michael Tuexen <tuexen@FreeBSD.org>
AuthorDate: 2023-09-13 11:02:51 +0000
Commit:     Michael Tuexen <tuexen@FreeBSD.org>
CommitDate: 2023-09-13 11:02:51 +0000

    sctp: further improve shutting down the read side of a socket
    
    Deal with the case that the association is already gone.
    
    Reported by:    syzbot+e256d42e9b390564530a@syzkaller.appspotmail.com
    MFC after:      3 days
---
 sys/netinet/sctp_usrreq.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/sys/netinet/sctp_usrreq.c b/sys/netinet/sctp_usrreq.c
index 02bb87578528..29d63f989e79 100644
--- a/sys/netinet/sctp_usrreq.c
+++ b/sys/netinet/sctp_usrreq.c
@@ -806,11 +806,9 @@ sctp_flush(struct socket *so, int how)
 		return (0);
 	}
 	stcb = LIST_FIRST(&inp->sctp_asoc_list);
-	if (stcb == NULL) {
-		SCTP_INP_WUNLOCK(inp);
-		return (ENOTCONN);
+	if (stcb != NULL) {
+		SCTP_TCB_LOCK(stcb);
 	}
-	SCTP_TCB_LOCK(stcb);
 	SCTP_INP_READ_LOCK(inp);
 	inp->sctp_flags |= SCTP_PCB_FLAGS_SOCKET_CANT_READ;
 	SOCK_LOCK(so);
@@ -836,7 +834,7 @@ sctp_flush(struct socket *so, int how)
 	}
 	SOCK_UNLOCK(so);
 	SCTP_INP_READ_UNLOCK(inp);
-	if (need_to_abort) {
+	if (need_to_abort && (stcb != NULL)) {
 		inp->last_abort_code = SCTP_FROM_SCTP_USRREQ + SCTP_LOC_6;
 		SCTP_INP_WUNLOCK(inp);
 		op_err = sctp_generate_cause(SCTP_CAUSE_OUT_OF_RESC, "");
@@ -845,7 +843,9 @@ sctp_flush(struct socket *so, int how)
 		NET_EPOCH_EXIT(et);
 		return (ECONNABORTED);
 	}
-	SCTP_TCB_UNLOCK(stcb);
+	if (stcb != NULL) {
+		SCTP_TCB_UNLOCK(stcb);
+	}
 	SCTP_INP_WUNLOCK(inp);
 	return (0);
 }

From nobody Wed Sep 13 13:54:28 2023
X-Original-To: dev-commits-src-main@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 4Rm257625tz4t2RF;
	Wed, 13 Sep 2023 13:54:51 +0000 (UTC)
	(envelope-from gallatin@fastmail.com)
Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27])
	(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 mx1.freebsd.org (Postfix) with ESMTPS id 4Rm2570SNcz4R9Q;
	Wed, 13 Sep 2023 13:54:51 +0000 (UTC)
	(envelope-from gallatin@fastmail.com)
Authentication-Results: mx1.freebsd.org;
	dkim=pass header.d=fastmail.com header.s=fm2 header.b=IHKkipGJ;
	dkim=pass header.d=messagingengine.com header.s=fm2 header.b=UhI7yhVl;
	spf=pass (mx1.freebsd.org: domain of gallatin@fastmail.com designates 66.111.4.27 as permitted sender) smtp.mailfrom=gallatin@fastmail.com;
	dmarc=pass (policy=none) header.from=fastmail.com
Received: from compute5.internal (compute5.nyi.internal [10.202.2.45])
	by mailout.nyi.internal (Postfix) with ESMTP id 118A65C0150;
	Wed, 13 Sep 2023 09:54:50 -0400 (EDT)
Received: from imap51 ([10.202.2.101])
  by compute5.internal (MEProxy); Wed, 13 Sep 2023 09:54:50 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.com; h=
	cc:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:sender
	:subject:subject:to:to; s=fm2; t=1694613290; x=1694699690; bh=AF
	Q1pn+j847q3MSDW8nbM3E6zzm9v3lhSD0YcwWcWn4=; b=IHKkipGJ9HPZ/XnHxp
	aBDsZ5BBzhbEpb4bv69Ktqo88E3q0T4XuFZ7C2V8aESuGkzR3HwlpYaqT05JWdXP
	GogSMH0kywJpr1I/RL6m+0MZRcX6dhPXJcHLDmW/fMMpMzxwuKVLOL6o8WbKDcpB
	cNW1B9Ijn8SANvYjFu2e0pmHX0Nia62+fivfaogSfLKd/LqTzlgdFmmVZap7HXoF
	OV4X8AM03T0/O/l9uoS6olc7SKUIbWZmT02SHfSLP/4uY0rtzJn1irYbGq2nK9iA
	Fw8Sd69c7H+yzLZi8iqV2ypW04B4ZE02dvWT0EqSYRGxJHSqHHRJ9cq6MohV9z3Q
	XX8A==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:sender:subject
	:subject:to:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender
	:x-sasl-enc; s=fm2; t=1694613290; x=1694699690; bh=AFQ1pn+j847q3
	MSDW8nbM3E6zzm9v3lhSD0YcwWcWn4=; b=UhI7yhVlyySkOrD16eCj3NAwbHhiz
	DOlOE5rxucjUx5AXqAxRin0YqcX5RRRLXVfoZUaWWbVEybOKfc90EsemeHnHC0Vk
	xy7BP+pK/72SaVcj7uUQZVjLWeB5pW1J6lBtdt4R8kd+eThF0Ed1gfKZHAHTSZHH
	TShgM4HIXJAcdcKYEmKNZCKBVcm5W+C6hplH+YcDmpeOU7Y0OHgnHu2ZLRaHI4Tu
	ZC4Yrvsn82laMzJBh81LivTzWaupLxaBFG4T6jImt1LIX+NTfuzbJCEnZtWTMgPZ
	6ofamFVR7jywIPHjDpA3sfuQZYrhLZT7WgwgzvoXQ/W5CZlwPN3MmPRVA==
X-ME-Sender: <xms:Kb8BZRM2gSm_1_2PjmTKYXzpqL2LddA3xFBRusCYNM00wvGa9b-M3w>
    <xme:Kb8BZT80E14Lk0L2AG71J6jyUqfz_wdk50gghIx6KfZapY2aTCNBWjWvX6P1tugId
    SndZ4R7RkzMsW0dAOM>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedviedrudeikedgjeduucetufdoteggodetrfdotf
    fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen
    uceurghilhhouhhtmecufedttdenucenucfjughrpefofgggkfgjfhffhffvufgtsegrtd
    erreerredtnecuhfhrohhmpedfffhrvgifucfirghllhgrthhinhdfuceoghgrlhhlrght
    ihhnsehfrghsthhmrghilhdrtghomheqnecuggftrfgrthhtvghrnhepheegieeltdegue
    eiveekveevheeikedvleduledufeetkeelhfduheehteegleehnecuffhomhgrihhnpehf
    rhgvvggsshgurdhorhhgpdhifhdrtghsnecuvehluhhsthgvrhfuihiivgeptdenucfrrg
    hrrghmpehmrghilhhfrhhomhepghgrlhhlrghtihhnsehfrghsthhmrghilhdrtghomh
X-ME-Proxy: <xmx:Kb8BZQQxkhJCjKCPAuYv4dNmhqseFHrmKrcrQV1CfOqeydSjeXIYLA>
    <xmx:Kb8BZdvi2yw5c9ZMCk41OUWAvTtRvLyXBzIw22Zq_cHcp4ItzTLkTQ>
    <xmx:Kb8BZZcdmO8oeI2lasf1KCj5WBcyMQtddfUEMCU5x5vTpC_SXXlXpA>
    <xmx:Kr8BZZFOPERdlSTk1QhRrFJHjeWAijLwGkz4WleIU_acFpXp21DZ7Q>
Feedback-ID: i2f014658:Fastmail
Received: by mailuser.nyi.internal (Postfix, from userid 501)
	id C7F50B60089; Wed, 13 Sep 2023 09:54:49 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.9.0-alpha0-745-g95dd7bea33-fm-20230905.001-g95dd7bea
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
Mime-Version: 1.0
Message-Id: <da6f7d8b-b50c-4ab4-9ac1-baf14dc8e968@app.fastmail.com>
In-Reply-To: <7bb4a991-060d-415e-a188-192781c1f3c0@app.fastmail.com>
References: <202307171904.36HJ4L1l013461@gitrepo.freebsd.org>
 <7bb4a991-060d-415e-a188-192781c1f3c0@app.fastmail.com>
Date: Wed, 13 Sep 2023 08:54:28 -0500
From: "Drew Gallatin" <gallatin@fastmail.com>
To: "Simon J. Gerraty" <sjg@FreeBSD.org>, src-committers@FreeBSD.org,
 dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject: Re: git: 89f361f742ae - main - kern.post.mk allow NEWVERS_{ENV,ARGS}
Content-Type: multipart/alternative;
 boundary=18c6a348166849e0a8d1f1f95e8e1dbf
X-Spamd-Bar: ---
X-Spamd-Result: default: False [-3.58 / 15.00];
	URI_COUNT_ODD(1.00)[13];
	NEURAL_HAM_MEDIUM(-1.00)[-1.000];
	DWL_DNSWL_LOW(-1.00)[messagingengine.com:dkim];
	NEURAL_HAM_LONG(-1.00)[-1.000];
	NEURAL_HAM_SHORT(-0.99)[-0.993];
	DMARC_POLICY_ALLOW(-0.50)[fastmail.com,none];
	MV_CASE(0.50)[];
	R_DKIM_ALLOW(-0.20)[fastmail.com:s=fm2,messagingengine.com:s=fm2];
	R_SPF_ALLOW(-0.20)[+ip4:66.111.4.27:c];
	MIME_GOOD(-0.10)[multipart/alternative,text/plain];
	RCVD_IN_DNSWL_LOW(-0.10)[66.111.4.27:from];
	XM_UA_NO_VERSION(0.01)[];
	FREEFALL_USER(0.00)[gallatin];
	FROM_HAS_DN(0.00)[];
	TO_MATCH_ENVRCPT_ALL(0.00)[];
	ARC_NA(0.00)[];
	RCPT_COUNT_THREE(0.00)[4];
	ASN(0.00)[asn:19151, ipnet:66.111.4.0/24, country:US];
	BLOCKLISTDE_FAIL(0.00)[66.111.4.27:server fail];
	RCVD_COUNT_THREE(0.00)[3];
	FREEMAIL_FROM(0.00)[fastmail.com];
	TO_DN_SOME(0.00)[];
	RCVD_TLS_LAST(0.00)[];
	MID_RHS_MATCH_FROMTLD(0.00)[];
	FROM_EQ_ENVFROM(0.00)[];
	DKIM_TRACE(0.00)[fastmail.com:+,messagingengine.com:+];
	FREEMAIL_ENVFROM(0.00)[fastmail.com];
	MIME_TRACE(0.00)[0:+,1:+,2:~];
	MLMMJ_DEST(0.00)[dev-commits-src-all@FreeBSD.org,dev-commits-src-main@FreeBSD.org]
X-Rspamd-Queue-Id: 4Rm2570SNcz4R9Q

--18c6a348166849e0a8d1f1f95e8e1dbf
Content-Type: text/plain

des seems to be addressing this in https://reviews.freebsd.org/D41845

On Wed, Sep 13, 2023, at 8:08 AM, Drew Gallatin wrote:
> Simon.
> 
> This changes the version strings of kernels built via the buildkernel target and adds a lot of redundancy.  Eg:
> 
> VERSTR changes from:
> 
> "FreeBSD 14.0-ALPHA1 #0 main-n264839-91d0876a20ce-dirty: Wed Sep 13 08:17:25 EDT 2023\n    gallatin@beast:/usr/src/sys/amd64/compile/GENERIC"
> 
> To:
> 
> "FreeBSD 14.0-ALPHA1 amd64 1400094 #0 main-n264839-91d0876a20ce-dirty: Wed Sep 13 08:21:13 EDT 2023\n    gallatin@beast:/usr/obj/usr/src/amd64.amd64/sys/GENERIC"
> 
> Note the extra "amd64 1400094"   This screws up some of our (Netflix) tooling, as its reflected via uname -a
> 
> It appears that when using the buildkernel target, VERSION is picked up from Makefile.inc1's VERSION, which I think is intended for CTFMERGE.    Was this intention?
> 
> Thanks,
> Drew
> 
> 
> 
> On Mon, Jul 17, 2023, at 2:04 PM, Simon J. Gerraty wrote:
>> The branch main has been updated by sjg:
>> 
>> URL: https://cgit.FreeBSD.org/src/commit/?id=89f361f742aeae11c8b2e28eae3d015882b6c0ee <https://cgit.freebsd.org/src/commit/?id=89f361f742aeae11c8b2e28eae3d015882b6c0ee>
>> 
>> commit 89f361f742aeae11c8b2e28eae3d015882b6c0ee
>> Author:     Simon J. Gerraty <sjg@FreeBSD.org>
>> AuthorDate: 2023-07-17 19:03:35 +0000
>> Commit:     Simon J. Gerraty <sjg@FreeBSD.org>
>> CommitDate: 2023-07-17 19:03:35 +0000
>> 
>>     kern.post.mk allow NEWVERS_{ENV,ARGS}
>>     
>>     Allow makefiles better control of newvers.sh env and args.
>>     Also allow variable overrides on command line.
>>     
>>     Reviewed by:    imp, stevek
>>     Sponsored by:   Juniper Networks, Inc.
>>     Differential Revision:  https://reviews.freebsd.org/D41012
>> ---
>> sys/conf/kern.post.mk |  5 +++--
>> sys/conf/newvers.sh   | 16 +++++++++++++---
>> 2 files changed, 16 insertions(+), 5 deletions(-)
>> 
>> diff --git a/sys/conf/kern.post.mk b/sys/conf/kern.post.mk
>> index c368d5f40df8..45df83e2d16b 100644
>> --- a/sys/conf/kern.post.mk
>> +++ b/sys/conf/kern.post.mk
>> @@ -444,11 +444,12 @@ config.o env.o hints.o vers.o vnode_if.o:
>> ${NORMAL_C}
>> ${NORMAL_CTFCONVERT}
>>  
>> +NEWVERS_ENV+= MAKE="${MAKE}"
>> .if ${MK_REPRODUCIBLE_BUILD} != "no"
>> -REPRO_FLAG="-R"
>> +NEWVERS_ARGS+= -R
>> .endif
>> vers.c: .NOMETA_CMP $S/conf/newvers.sh $S/sys/param.h ${SYSTEM_DEP:Nvers.*}
>> - MAKE="${MAKE}" sh $S/conf/newvers.sh ${REPRO_FLAG} ${KERN_IDENT}
>> + ${NEWVERS_ENV} sh $S/conf/newvers.sh ${NEWVERS_ARGS} ${KERN_IDENT}
>>  
>> vnode_if.c: $S/tools/vnode_if.awk $S/kern/vnode_if.src
>> ${AWK} -f $S/tools/vnode_if.awk $S/kern/vnode_if.src -c
>> diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh
>> index 85346b1cdc29..e21b3f5ce2e2 100644
>> --- a/sys/conf/newvers.sh
>> +++ b/sys/conf/newvers.sh
>> @@ -58,13 +58,23 @@ BRANCH="CURRENT"
>> if [ -n "${BRANCH_OVERRIDE}" ]; then
>> BRANCH=${BRANCH_OVERRIDE}
>> fi
>> -RELEASE="${REVISION}-${BRANCH}"
>> -VERSION="${TYPE} ${RELEASE}"
>>  
>> if [ -z "${SYSDIR}" ]; then
>> -    SYSDIR=$(dirname $0)/..
>> + SYSDIR=$(dirname $0)/..
>> fi
>>  
>> +# allow random overrides
>> +while :
>> +do
>> + case "$1" in
>> + *=*) eval "$1"; shift;;
>> + *) break;;
>> + esac
>> +done
>> +
>> +RELEASE="${RELEASE:-${REVISION}-${BRANCH}}"
>> +VERSION="${VERSION:-${TYPE} ${RELEASE}}"
>> +
>> RELDATE=$(awk '/^#define[[:space:]]*__FreeBSD_version/ {print $3}' ${PARAMFILE:-${SYSDIR}/sys/param.h})
>>  
>> if [ -r "${SYSDIR}/../COPYRIGHT" ]; then
>> 
> 

--18c6a348166849e0a8d1f1f95e8e1dbf
Content-Type: text/html
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html><html><head><title></title><style type=3D"text/css">
p.MsoNormal,p.MsoNoSpacing{margin:0}</style></head><body><div>des seems =
to be addressing this in <a href=3D"https://reviews.freebsd.org/D41845">=
https://reviews.freebsd.org/D41845</a></div><div><br></div><div>On Wed, =
Sep 13, 2023, at 8:08 AM, Drew Gallatin wrote:<br></div><blockquote type=
=3D"cite" id=3D"qt" style=3D""><div>Simon.<br></div><div><br></div><div>=
This changes the version strings of kernels built via the buildkernel ta=
rget and adds a lot of redundancy.&nbsp; Eg:<br></div><div><br></div><pr=
e class=3D"qt-c-mrkdwn__pre">VERSTR changes from:
<br></pre><pre class=3D"qt-c-mrkdwn__pre">"FreeBSD 14.0-ALPHA1 #0 main-n=
264839-91d0876a20ce-dirty: Wed Sep 13 08:17:25 EDT 2023\n    gallatin@be=
ast:/usr/src/sys/amd64/compile/GENERIC"<br></pre><div><br></div><div>To:=
<br></div><div><br></div><pre class=3D"qt-c-mrkdwn__pre">"FreeBSD 14.0-A=
LPHA1 amd64 1400094 #0 main-n264839-91d0876a20ce-dirty: Wed Sep 13 08:21=
:13 EDT 2023\n    gallatin@beast:/usr/obj/usr/src/amd64.amd64/sys/GENERI=
C"<br></pre><div><br></div><div>Note the extra "amd64 1400094"&nbsp;&nbs=
p; This screws up some of our (Netflix) tooling, as its reflected via un=
ame -a<br></div><div><br></div><div>It appears that when using the build=
kernel target, VERSION is picked up from Makefile.inc1's VERSION, which =
I think is intended for CTFMERGE.&nbsp;&nbsp;&nbsp; Was this intention?<=
br></div><div><br></div><div>Thanks,<br></div><div>Drew<br></div><div><b=
r></div><div><br></div><div><br></div><div>On Mon, Jul 17, 2023, at 2:04=
 PM, Simon J. Gerraty wrote:<br></div><blockquote type=3D"cite" id=3D"qt=
-qt" style=3D""><div>The branch main has been updated by sjg:<br></div><=
div><br></div><div>URL:&nbsp;<a href=3D"https://cgit.FreeBSD.org/src/com=
mit/?id=3D89f361f742aeae11c8b2e28eae3d015882b6c0ee">https://cgit.FreeBSD=
.org/src/commit/?id=3D89f361f742aeae11c8b2e28eae3d015882b6c0ee</a><br></=
div><div><br></div><div>commit 89f361f742aeae11c8b2e28eae3d015882b6c0ee<=
br></div><div>Author:&nbsp;&nbsp;&nbsp;&nbsp; Simon J. Gerraty &lt;<a hr=
ef=3D"mailto:sjg@FreeBSD.org">sjg@FreeBSD.org</a>&gt;<br></div><div>Auth=
orDate: 2023-07-17 19:03:35 +0000<br></div><div>Commit:&nbsp;&nbsp;&nbsp=
;&nbsp; Simon J. Gerraty &lt;<a href=3D"mailto:sjg@FreeBSD.org">sjg@Free=
BSD.org</a>&gt;<br></div><div>CommitDate: 2023-07-17 19:03:35 +0000<br><=
/div><div><br></div><div>&nbsp;&nbsp;&nbsp; kern.post.mk allow NEWVERS_{=
ENV,ARGS}<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;<br></div><div>&nbsp;&nb=
sp;&nbsp; Allow makefiles better control of newvers.sh env and args.<br>=
</div><div>&nbsp;&nbsp;&nbsp; Also allow variable overrides on command l=
ine.<br></div><div>&nbsp;&nbsp;&nbsp;&nbsp;<br></div><div>&nbsp;&nbsp;&n=
bsp; Reviewed by:&nbsp;&nbsp;&nbsp; imp, stevek<br></div><div>&nbsp;&nbs=
p;&nbsp; Sponsored by:&nbsp;&nbsp; Juniper Networks, Inc.<br></div><div>=
&nbsp;&nbsp;&nbsp; Differential Revision:&nbsp;&nbsp;<a href=3D"https://=
reviews.freebsd.org/D41012">https://reviews.freebsd.org/D41012</a><br></=
div><div>---<br></div><div>sys/conf/kern.post.mk |&nbsp; 5 +++--<br></di=
v><div>sys/conf/newvers.sh&nbsp;&nbsp; | 16 +++++++++++++---<br></div><d=
iv>2 files changed, 16 insertions(+), 5 deletions(-)<br></div><div><br><=
/div><div>diff --git a/sys/conf/kern.post.mk b/sys/conf/kern.post.mk<br>=
</div><div>index c368d5f40df8..45df83e2d16b 100644<br></div><div>--- a/s=
ys/conf/kern.post.mk<br></div><div>+++ b/sys/conf/kern.post.mk<br></div>=
<div>@@ -444,11 +444,12 @@ config.o env.o hints.o vers.o vnode_if.o:<br>=
</div><div>${NORMAL_C}<br></div><div>${NORMAL_CTFCONVERT}<br></div><div>=
&nbsp;<br></div><div>+NEWVERS_ENV+=3D MAKE=3D"${MAKE}"<br></div><div>.if=
 ${MK_REPRODUCIBLE_BUILD} !=3D "no"<br></div><div>-REPRO_FLAG=3D"-R"<br>=
</div><div>+NEWVERS_ARGS+=3D -R<br></div><div>.endif<br></div><div>vers.=
c: .NOMETA_CMP $S/conf/newvers.sh $S/sys/param.h ${SYSTEM_DEP:Nvers.*}<b=
r></div><div>-	MAKE=3D"${MAKE}" sh $S/conf/newvers.sh ${REPRO_FLAG} ${KE=
RN_IDENT}<br></div><div>+	${NEWVERS_ENV} sh $S/conf/newvers.sh ${NEWVERS=
_ARGS} ${KERN_IDENT}<br></div><div>&nbsp;<br></div><div>vnode_if.c: $S/t=
ools/vnode_if.awk $S/kern/vnode_if.src<br></div><div>${AWK} -f $S/tools/=
vnode_if.awk $S/kern/vnode_if.src -c<br></div><div>diff --git a/sys/conf=
/newvers.sh b/sys/conf/newvers.sh<br></div><div>index 85346b1cdc29..e21b=
3f5ce2e2 100644<br></div><div>--- a/sys/conf/newvers.sh<br></div><div>++=
+ b/sys/conf/newvers.sh<br></div><div>@@ -58,13 +58,23 @@ BRANCH=3D"CURR=
ENT"<br></div><div>if [ -n "${BRANCH_OVERRIDE}" ]; then<br></div><div>BR=
ANCH=3D${BRANCH_OVERRIDE}<br></div><div>fi<br></div><div>-RELEASE=3D"${R=
EVISION}-${BRANCH}"<br></div><div>-VERSION=3D"${TYPE} ${RELEASE}"<br></d=
iv><div>&nbsp;<br></div><div>if [ -z "${SYSDIR}" ]; then<br></div><div>-=
&nbsp;&nbsp;&nbsp; SYSDIR=3D$(dirname $0)/..<br></div><div>+	SYSDIR=3D$(=
dirname $0)/..<br></div><div>fi<br></div><div>&nbsp;<br></div><div>+# al=
low random overrides<br></div><div>+while :<br></div><div>+do<br></div><=
div>+	case "$1" in<br></div><div>+	*=3D*) eval "$1"; shift;;<br></div><d=
iv>+	*) break;;<br></div><div>+	esac<br></div><div>+done<br></div><div>+=
<br></div><div>+RELEASE=3D"${RELEASE:-${REVISION}-${BRANCH}}"<br></div><=
div>+VERSION=3D"${VERSION:-${TYPE} ${RELEASE}}"<br></div><div>+<br></div=
><div>RELDATE=3D$(awk '/^#define[[:space:]]*__FreeBSD_version/ {print $3=
}' ${PARAMFILE:-${SYSDIR}/sys/param.h})<br></div><div>&nbsp;<br></div><d=
iv>if [ -r "${SYSDIR}/../COPYRIGHT" ]; then<br></div><div><br></div></bl=
ockquote><div><br></div></blockquote><div><br></div></body></html>
--18c6a348166849e0a8d1f1f95e8e1dbf--

From nobody Wed Sep 13 15:21:55 2023
X-Original-To: dev-commits-src-main@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 4Rm41b3xgbz4spmR;
	Wed, 13 Sep 2023 15:21: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 4Rm41b3WCXz3LXb;
	Wed, 13 Sep 2023 15:21:55 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694618515;
	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=YNYEiq16GjwIoHI0AuwNxucNNjKHbLJElKywWrwC2Lk=;
	b=E7RvFS1FP93WH9oQHQ9AYGR9FYIxbj29C5YATBqxz55a/w6W1Pq9gd09K6Qts+aiF7PAlo
	KE4lJYq8OUwO/mQiyKMDn8A+S0Avt1RRWLziS8kIEi9oeF4PQ/h7d78mQ4FiUawLIQmlEs
	/SV+6+oysn4W/EskpW13dHvFzKzZx3rUVTxNdFlQ4JEjYGR7qbMlQqIKKQxvmJ9kbOOoP2
	btKyexgMFaflsnttYX8V4ZopO9K7KIXsMfHaMC7CHG16waV/yjwOWu/IxuYli4O2/af+Vj
	7jyAU0hRSpsrwdk3hQ5QLuvRgFlN5qJoAi9TMkgbkDygtEDNe2B2iKbBlUVgkA==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694618515; a=rsa-sha256; cv=none;
	b=el1rX179LhlLR/9j1HPksXEPG6QLUejo2uYnwvk5sY4duCz707mI/DoAuf6U/KsxU9bb7V
	drN8ZUuBjYLoZyCFQ9rVbagWlu0tSglhNFsWrNhmlXLYWMeu3dt7dkUW4s6L8WuwOQNkrw
	JkOr8Olv6R3QTlvJRt6bYt7K/f7qET6OWWGQ4PXBZ7Psr/ckyS39wex5oW1vf8dbZAYWH1
	bvwdobr9FE0eYlqIKhFohbFQD+wJvYLvprR5XxEX0BI1pY0zuAcUE7LiTJy/ngEy8M0rC6
	TlGuCbJG/Qtf1CXbIceU9COlXwTIeJr9yWIHgyPpaRRLCjwW51/bexxV8l7i+g==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694618515;
	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=YNYEiq16GjwIoHI0AuwNxucNNjKHbLJElKywWrwC2Lk=;
	b=Z62qxqYEY3t5emngmZrUTkTM0l1kfll+3EI14/6Cy6Aa24R3aX6hYrGHa+Wa88D+uvHJdO
	MYxXcIErxCeGP/LUmEGv+YDK59CS066GbXYaAkti98NgneKJ3uv3+NTjRbFrFmV1pEL0Oh
	+ZrgjfNTa+TM861EG0xhH8DG5F6MDEYARXW1b1VxJTbtisazFyirkCE2PGfObcSl5/VqzZ
	cyi6/MimGIMb88sAN6Qd/F4LjmAnw+dL7M8kEw163q9qGrRcQjOce2NaFjR8EJ9vHKzfT1
	qNZXx54+D1GJz8CorIWg7SOb7z3y1QlK94JBpZP6ivXYAVcyY7FDjf6Qxj0ixw==
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 4Rm41b2d30z4jQ;
	Wed, 13 Sep 2023 15:21: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 38DFLtBj029768;
	Wed, 13 Sep 2023 15:21:55 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38DFLtZg029765;
	Wed, 13 Sep 2023 15:21:55 GMT
	(envelope-from git)
Date: Wed, 13 Sep 2023 15:21:55 GMT
Message-Id: <202309131521.38DFLtZg029765@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Ed Maste <emaste@FreeBSD.org>
Subject: git: 70fbcd451b68 - main - axge: Skip dummy packet headers
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@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/main
X-Git-Reftype: branch
X-Git-Commit: 70fbcd451b68b7f6038d8a602cd8d5e1bb890f1d
Auto-Submitted: auto-generated

The branch main has been updated by emaste:

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

commit 70fbcd451b68b7f6038d8a602cd8d5e1bb890f1d
Author:     Damien Broka <git@damien.sh>
AuthorDate: 2023-09-13 08:23:47 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2023-09-13 14:08:11 +0000

    axge: Skip dummy packet headers
    
    Newer versions of the AX88179 interweave dummies alongside valid
    packet headers in bulk IN transfer data. This was probably done for
    backward compatibility with existing drivers.
    
    However current driver records these dummy headers as dropped frames,
    leading to stats misreporting one Ierr per Ipkt.
    
    This skips those dummy headers silently, thereby not generating Ierrs
    for them.
    
    Reviewed by:    emaste
    Pull Request:   https://github.com/freebsd/freebsd-src/pull/842
---
 sys/dev/usb/net/if_axge.c | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/sys/dev/usb/net/if_axge.c b/sys/dev/usb/net/if_axge.c
index a3b459a553e0..385a982afd9d 100644
--- a/sys/dev/usb/net/if_axge.c
+++ b/sys/dev/usb/net/if_axge.c
@@ -959,8 +959,16 @@ axge_rx_frame(struct usb_ether *ue, struct usb_page_cache *pc, int actlen)
 	hdr_off = pkt_end = (rxhdr >> 16) & 0xFFFF;
 
 	/*
+	 * On older firmware:
 	 * <----------------------- actlen ------------------------>
 	 * [frame #0]...[frame #N][pkt_hdr #0]...[pkt_hdr #N][rxhdr]
+	 *
+	 * On newer firmware:
+	 * <----------------------- actlen -----------------
+	 * [frame #0]...[frame #N][pkt_hdr #0][dummy_hdr]...
+	 *                         -------------------------------->
+	 *                         ...[pkt_hdr #N][dummy_hdr][rxhdr]
+	 *
 	 * Each RX frame would be aligned on 8 bytes boundary. If
 	 * RCR_IPE bit is set in AXGE_RCR register, there would be 2
 	 * padding bytes and 6 dummy bytes(as the padding also should
@@ -968,6 +976,10 @@ axge_rx_frame(struct usb_ether *ue, struct usb_page_cache *pc, int actlen)
 	 * IP header on 32bits boundary.  Driver don't set RCR_IPE bit
 	 * of AXGE_RCR register, so there should be no padding bytes
 	 * which simplifies RX logic a lot.
+	 *
+	 * Further, newer firmware interweaves dummy headers that have
+	 * pktlen == 0 and should be skipped without being seen as
+	 * dropped frames.
 	 */
 	while (pkt_cnt--) {
 		/* verify the header offset */
@@ -978,6 +990,12 @@ axge_rx_frame(struct usb_ether *ue, struct usb_page_cache *pc, int actlen)
 		usbd_copy_out(pc, hdr_off, &pkt_hdr, sizeof(pkt_hdr));
 		pkt_hdr.status = le32toh(pkt_hdr.status);
 		pktlen = AXGE_RXBYTES(pkt_hdr.status);
+		hdr_off += sizeof(pkt_hdr);
+
+		/* Skip dummy packet header. */
+		if (pktlen == 0)
+			continue;
+
 		if (pos + pktlen > pkt_end) {
 			DPRINTF("Data position reached end\n");
 			break;
@@ -989,7 +1007,6 @@ axge_rx_frame(struct usb_ether *ue, struct usb_page_cache *pc, int actlen)
 		} else
 			axge_rxeof(ue, pc, pos, pktlen, pkt_hdr.status);
 		pos += (pktlen + 7) & ~7;
-		hdr_off += sizeof(pkt_hdr);
 	}
 }
 

From nobody Wed Sep 13 17:28:22 2023
X-Original-To: dev-commits-src-main@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 4Rm6qs2dxXz4tfWK;
	Wed, 13 Sep 2023 17:28:41 +0000 (UTC)
	(envelope-from yuri@aetern.org)
Received: from wout4-smtp.messagingengine.com (wout4-smtp.messagingengine.com [64.147.123.20])
	(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 mx1.freebsd.org (Postfix) with ESMTPS id 4Rm6qr6wg8z4MZw;
	Wed, 13 Sep 2023 17:28:40 +0000 (UTC)
	(envelope-from yuri@aetern.org)
Authentication-Results: mx1.freebsd.org;
	dkim=pass header.d=aetern.org header.s=fm1 header.b=CrwKEqna;
	dkim=pass header.d=messagingengine.com header.s=fm2 header.b="N Hnpjz6";
	spf=pass (mx1.freebsd.org: domain of yuri@aetern.org designates 64.147.123.20 as permitted sender) smtp.mailfrom=yuri@aetern.org
Received: from compute2.internal (compute2.nyi.internal [10.202.2.46])
	by mailout.west.internal (Postfix) with ESMTP id 1C1813200A44;
	Wed, 13 Sep 2023 13:28:38 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162])
  by compute2.internal (MEProxy); Wed, 13 Sep 2023 13:28:38 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aetern.org; h=cc
	:content-transfer-encoding:content-type:content-type:date:date
	:from:from:in-reply-to:in-reply-to:message-id:mime-version
	:references:reply-to:sender:subject:subject:to:to; s=fm1; t=
	1694626117; x=1694712517; bh=QFNrX1gtejyWkLbG2EIX988xSabFyHZ73xe
	VhGbcMbQ=; b=CrwKEqnaE4DXv5l1qAJvjyQOsG/tDsxXctoEcWLjUloPdOcc2fa
	2cOFAcN6vzBDzfqhoT59LfSjEDxMdL51STSbkL9cKQX91Ywi3XnQVMIQ1L0Qfyx8
	ro2Ll4yiNkgfTAZp9HDMP6yDUmxg8rpj6gzQXpIP13qd9v18LYn2iAcfUtXgzPWJ
	8cYHKSwdRzEkRDtSF5xYVwlwm3MzK6ZsGaaOHBxW9sVQHXCXbYzT3iICVtUdJTxp
	TO2GjhUACWwiMCjN83Hhw/UbIvftZspa9Mbl8GxoNq4ab/nR3mOYpfksStLICykV
	PHUkCIH+sxtoUy3DBOJMwR2WJ+GlxQF0qrg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:content-transfer-encoding:content-type
	:content-type:date:date:feedback-id:feedback-id:from:from
	:in-reply-to:in-reply-to:message-id:mime-version:references
	:reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy
	:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1694626117; x=
	1694712517; bh=QFNrX1gtejyWkLbG2EIX988xSabFyHZ73xeVhGbcMbQ=; b=N
	Hnpjz6AVgKblT7oSZg13atgVBadnKapy1YIYVFQPEfGhZ1Wktr9GgqsOidhrArZM
	dZR7RhysoBtS7l78ka7a+x4Mcc9ikTt41SpjYKYTQn7VN4hXEjDYHjJ4PSyJjALz
	P0fkP4CXSs/yonTH6yBlD6pBs5Rdem6Vc3ZQoLXlORtmHD3cpX92k3u6O6snydjT
	H/XtZzKLRZsO2yEh+Hw0GyJqYnf9I1208cQAf/aYXoJq8eZknexeHcCyzdHMtS8z
	ke+IDB4mnLZ+i7LNt4ja0d5z+Pdk7j9HRBlWZm5QDxnNe1GYAFZbYxOI5a0HA8I1
	JwVxeZzbnVDDNgU3dj5Ig==
X-ME-Sender: <xms:RfEBZdIAwcIcGHj6ks5n7mQFRQMNYoJgQBUeEBDNRsldO4aOaaznsQ>
    <xme:RfEBZZIheHj5utH7vztGzaiDq-wdYiUTPnvsrevv3K9C9Xb2sW1C-umGDk5n5PTcr
    HLSfvhyDlQE9qyIHXY>
X-ME-Received: <xmr:RfEBZVvPR79SQEs_6AHA3X8P0jZdaLEwPlKZKQztzGVUlhmBRAy9beRlSR7yoCOFMg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedviedrudeikedguddufecutefuodetggdotefrod
    ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh
    necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd
    enucfjughrpefkffggfgfuvfhfhfgjtgfgsehtjeertddtvdejnecuhfhrohhmpegjuhhr
    ihcuoeihuhhrihesrggvthgvrhhnrdhorhhgqeenucggtffrrghtthgvrhhnpeevkefhfe
    ffgefhheelgeelhfekgedtlefgvdelvdeufeehhfetjeeikeefgfffleenucffohhmrghi
    nhepfhhrvggvsghsugdrohhrghenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmh
    epmhgrihhlfhhrohhmpeihuhhrihesrggvthgvrhhnrdhorhhg
X-ME-Proxy: <xmx:RfEBZeZ3pkx_E25p1jU0QvSBku2TKgDNp7pmg7MEcZijCvDMJssAFQ>
    <xmx:RfEBZUZ15Wod_99NMYBqmtBrNZcS99U3kaV-NoyUPZMPrVQW7yX0YA>
    <xmx:RfEBZSBvfvysi-G8gbskwQf2rmOr_tYOVBrL6JasJDSIIdWscXfZGg>
    <xmx:RfEBZTmlU3Ws0dK3RGCDVC6VnrZg0EEwEeC_1LEiepHImnXREyAGcA>
Feedback-ID: i0d79475b:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed,
 13 Sep 2023 13:28:36 -0400 (EDT)
Message-ID: <7af75066-8b42-477a-8ea4-f64dd0970ab1@aetern.org>
Date: Wed, 13 Sep 2023 19:28:22 +0200
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
Subject: Re: git: 98b98ec1bc7e - main - ftpd: add deprecation notice
To: Ed Maste <emaste@FreeBSD.org>, src-committers@FreeBSD.org,
 dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
References: <202309091847.389IlZed083348@gitrepo.freebsd.org>
Content-Language: en-US
From: Yuri <yuri@aetern.org>
In-Reply-To: <202309091847.389IlZed083348@gitrepo.freebsd.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-Spamd-Bar: /
X-Rspamd-Pre-Result: action=no action;
	module=multimap;
	Matched map: local_wl_from
X-Spamd-Result: default: False [-0.39 / 15.00];
	R_DKIM_ALLOW(-0.20)[aetern.org:s=fm1,messagingengine.com:s=fm2];
	R_SPF_ALLOW(-0.20)[+ip4:64.147.123.20];
	XM_UA_NO_VERSION(0.01)[];
	MLMMJ_DEST(0.00)[dev-commits-src-all@FreeBSD.org,dev-commits-src-main@FreeBSD.org];
	FREEFALL_USER(0.00)[yuri];
	local_wl_from(0.00)[yuri@aetern.org];
	DKIM_TRACE(0.00)[aetern.org:+,messagingengine.com:+];
	ASN(0.00)[asn:29838, ipnet:64.147.123.0/24, country:US]
X-Rspamd-Queue-Id: 4Rm6qr6wg8z4MZw

Ed Maste wrote:
> The branch main has been updated by emaste:
> 
> URL: https://cgit.FreeBSD.org/src/commit/?id=98b98ec1bc7e961c3d3468b0e481080580c902cf
> 
> commit 98b98ec1bc7e961c3d3468b0e481080580c902cf
> Author:     Ed Maste <emaste@FreeBSD.org>
> AuthorDate: 2023-09-09 17:34:14 +0000
> Commit:     Ed Maste <emaste@FreeBSD.org>
> CommitDate: 2023-09-09 18:46:58 +0000
> 
>     ftpd: add deprecation notice
>     
>     Approved by:    gordon
>     Sponsored by:   The FreeBSD Foundation
>     Differential Revision: https://reviews.freebsd.org/D26447
> ---
>  libexec/ftpd/ftpd.8 | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/libexec/ftpd/ftpd.8 b/libexec/ftpd/ftpd.8
> index c45df161575c..f5353be894fe 100644
> --- a/libexec/ftpd/ftpd.8
> +++ b/libexec/ftpd/ftpd.8
> @@ -43,6 +43,16 @@
>  .Op Fl T Ar maxtimeout
>  .Op Fl t Ar timeout
>  .Op Fl u Ar umask
> +.Sh .Sh DEPRECATION NOTICE

Duplicate .Sh, the rendered man page shows:

.Sh DEPRECATION NOTICE

> +The
> +.Fx
> +base system
> +.Nm
> +is deprecated, and will be removed in
> +.Fx 15.0.
> +Users are advised to install the
> +.Pa ftp/freebsd-ftpd
> +port or package instead.
>  .Sh DESCRIPTION
>  The
>  .Nm


From nobody Wed Sep 13 17:49:42 2023
X-Original-To: dev-commits-src-main@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 4Rm7JR4dqwz4sXJB;
	Wed, 13 Sep 2023 17:49:59 +0000 (UTC)
	(envelope-from sjg@juniper.net)
Received: from mx0a-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(Client CN "*.pphosted.com", Issuer "Sectigo RSA Organization Validation Secure Server CA" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4Rm7JR21H8z4RM9;
	Wed, 13 Sep 2023 17:49:59 +0000 (UTC)
	(envelope-from sjg@juniper.net)
Authentication-Results: mx1.freebsd.org;
	none
Received: from pps.filterd (m0108158.ppops.net [127.0.0.1])
	by mx0a-00273201.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 38DHLBO3015280;
	Wed, 13 Sep 2023 10:49:54 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=to : cc : subject :
 in-reply-to : references : from : mime-version : content-type : content-id
 : content-transfer-encoding : date : message-id; s=PPS1017;
 bh=/eK1KzNyiwpT5Nr+7bYjhMQVeUwPvpapGQ2EmoWMe/c=;
 b=Gem1yRLJ/H90W1MyYtahQwyYDEgjrZMQjBTXT+hb/oZAcE+zOFVrmg9gvBedUPHzukom
 nKj758fqnLPWVngmWUNbyvmfGzd8QNgkbcuzqKy5J9Xt65dDgA3l7TxUgCuy3/7mjBHE
 xWFKpdv0ShaWAnLxIQqIGzECfBVIKPaDNxTUpSOCBHSw5EcACkcnXusVDv13l6NvC1wz
 WqaPwHBve6UBxjyqbqWgQMKtLtbhfm1BBYX9Hzw11EeaMVgs8CDmNR35qnGkoGTXCbJ4
 09iwjLz5wVLq/PX5JkMLSLWfKz1M1JPJhEzvQDdgm5Fi93blk8jFu/WCXi/sc2UNiejD LQ== 
Received: from mw2pr02cu001.outbound.protection.outlook.com (mail-westus2azlp17012026.outbound.protection.outlook.com [40.93.10.26])
	by mx0a-00273201.pphosted.com (PPS) with ESMTPS id 3t2y9n2eej-1
	(version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);
	Wed, 13 Sep 2023 10:49:54 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=mf7WA8ImnzU6nB1OxlOaoSqpzKpgJSmCeHQq+f1y5TE/PfA/FKGRbl7GRO1ttcEdYMF4yqizjtx33HUQt3eGG/wXKVAY348DxNJcS2nWbfvUJXXzlOWHcfU1UJqLmyXjz60Jba21mCrE/QnE66fqHyslSi2Mbgt888AZLPIfLaSotw+MaFBz40aky5Z97w7VuabguflaR07Q3m9T0bWwGPkg8cRU0SKh/hL4ttYBvqbu8gzYCjQUyUT618GiHr3q6DTHi5EJfL7qQesHDzh+2bUqMIfx+dY+5JMAShMJ0iyRiddND3eXR8VpLgBOTpBP8yuF8uff96czr9uozvO9/Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=/eK1KzNyiwpT5Nr+7bYjhMQVeUwPvpapGQ2EmoWMe/c=;
 b=IHWReEQ1ASVHCh7qnifVe6hmHm2OL0RdG8a0k42KDDjzz50bZC8od1nNeOzj1ZZKbnhRZbPLxCqUEmmctVrBls/vKMsHBmht9FIyMUI3/8goFsvIIS1MNLNOFCz59dQcFzfNLoRUoioDKspgl2kW5p2KyQGKXSCcoMwES2oV+g8wQNfZAzARk0aCLnWnHro8pVTYV1fw1+KNIrEUm3/VoJe2rKPXAj9lZbwKJseALIA0GfJbcqMngNZIt/LnToQD99YH5hyLnVz4FCTelkXSpRk+OfjGcuUE3xY/ZJ0ukViDK3kSZlkCN1ubZiJqf4YM9vYmKOz58LZ20JpbIhZz+g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=softfail (sender ip
 is 66.129.242.15) smtp.rcpttodomain=freebsd.org smtp.mailfrom=juniper.net;
 dmarc=fail (p=reject sp=reject pct=100) action=oreject
 header.from=juniper.net; dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=/eK1KzNyiwpT5Nr+7bYjhMQVeUwPvpapGQ2EmoWMe/c=;
 b=Jqp+RXZbbObXJln9QZlOmzB3b88kpborKIEq4oSemVsib7YJ0idd5caNFzRdNnSNYmhAF8UZKcjpKk602+zDcghMT1QqQYYhf/R6s2NPAowgZQIiuZimGovTDlBX0/fBuJ82Yn8o0jUenn4g+vZB/UsRr78ZxtTDnyEZKOaXh40=
Received: from DS7PR06CA0028.namprd06.prod.outlook.com (2603:10b6:8:54::33) by
 PH0PR05MB7653.namprd05.prod.outlook.com (2603:10b6:510:27::17) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.6792.19; Wed, 13 Sep 2023 17:49:52 +0000
Received: from DM6NAM12FT075.eop-nam12.prod.protection.outlook.com
 (2603:10b6:8:54:cafe::14) by DS7PR06CA0028.outlook.office365.com
 (2603:10b6:8:54::33) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.19 via Frontend
 Transport; Wed, 13 Sep 2023 17:49:52 +0000
X-MS-Exchange-Authentication-Results: spf=softfail (sender IP is
 66.129.242.15) smtp.mailfrom=juniper.net; dkim=none (message not signed)
 header.d=none;dmarc=fail action=oreject header.from=juniper.net;
Received-SPF: SoftFail (protection.outlook.com: domain of transitioning
 juniper.net discourages use of 66.129.242.15 as permitted sender)
Received: from p-exchfe-eqx-02.jnpr.net (66.129.242.15) by
 DM6NAM12FT075.mail.protection.outlook.com (10.13.178.138) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.6792.8 via Frontend Transport; Wed, 13 Sep 2023 17:49:52 +0000
Received: from p-exchbe-eqx-02.jnpr.net (10.104.9.15) by
 p-exchfe-eqx-02.jnpr.net (10.104.9.17) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1118.30; Wed, 13 Sep 2023 12:49:50 -0500
Received: from p-mailhub01.juniper.net (10.104.20.6) by
 p-exchbe-eqx-02.jnpr.net (10.104.9.15) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.2.1118.30 via Frontend Transport; Wed, 13 Sep 2023 12:49:50 -0500
Received: from kaos.jnpr.net (kaos.jnpr.net [172.23.255.201])
	by p-mailhub01.juniper.net (8.14.4/8.11.3) with ESMTP id 38DHnocG023515;
	Wed, 13 Sep 2023 10:49:50 -0700
	(envelope-from sjg@juniper.net)
Received: by kaos.jnpr.net (Postfix, from userid 1377)
	id C7D0B5A54B; Wed, 13 Sep 2023 10:49:42 -0700 (PDT)
Received: from kaos.jnpr.net (localhost [127.0.0.1])
	by kaos.jnpr.net (Postfix) with ESMTP id C74DD5A5BB;
	Wed, 13 Sep 2023 10:49:42 -0700 (PDT)
To: Drew Gallatin <gallatin@fastmail.com>
CC: <src-committers@FreeBSD.org>, <dev-commits-src-all@FreeBSD.org>,
        <dev-commits-src-main@FreeBSD.org>, <sjg@juniper.net>
Subject: Re: git: 89f361f742ae - main - kern.post.mk allow NEWVERS_{ENV,ARGS}
In-Reply-To: <da6f7d8b-b50c-4ab4-9ac1-baf14dc8e968@app.fastmail.com>
References: <202307171904.36HJ4L1l013461@gitrepo.freebsd.org> <7bb4a991-060d-415e-a188-192781c1f3c0@app.fastmail.com> <da6f7d8b-b50c-4ab4-9ac1-baf14dc8e968@app.fastmail.com>
Comments: In-reply-to: "Drew Gallatin" <gallatin@fastmail.com>
   message dated "Wed, 13 Sep 2023 08:54:28 -0500."
From: "Simon J. Gerraty" <sjg@juniper.net>
X-Mailer: MH-E 8.6+git; nmh 1.8; GNU Emacs 28.2
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-ID: <21463.1694627382.1@kaos.jnpr.net>
Content-Transfer-Encoding: quoted-printable
Date: Wed, 13 Sep 2023 10:49:42 -0700
Message-ID: <25378.1694627382@kaos.jnpr.net>
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: DM6NAM12FT075:EE_|PH0PR05MB7653:EE_
X-MS-Office365-Filtering-Correlation-Id: ed4a58d1-7343-4204-51f9-08dbb481d510
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: 
	ODBXVIZEMKxQgMCF3OtTlDZI+rr/JeR7QL1ls18tmrch3zQN/e0d0w0wFQM1bByja6jJXkb786kjqwU8NLQa3521C6i9+VyfgbqwfbBlAOqShdWvOBSGpnYctzTcZGVULmQwFZ/ZTjwj4JYvNdV0E8jNI4MILUOi6uixS/zIVP40nl5iwxSOZV/0Sq+O4S3593mzJlDRvuSMQSAM6Faf//1HL7Cmd07RMjfeDKmI2kcn/t8GXdzQQW69J+rHe7+32vgy0ay+I2A1hzv/oCGpZWlMU1o/8jHAMyK8oH4pQHzRkkko3uQj2cPa37S0mZcY3K+dtlZQ1LK2zHBK67fdxf2T7TJTekZjydMJet6JhFDIB+9LNYz3Vj9Kybi005pzSpFroXrJFMJy0+fvnevDT84/2WONzvwsIkxGYiQVZEAhydfnCMp5itRgZBOVbtn1IfEGL5HzGbreexoIZHgF+HXkIBP3acz2W0u22xEhHOsWYI26MkFLZEo08+xtLy2Pnj7px7Ll7YQSOCgn5lh8eXt07eco+sm91ATjsLMPQJZjUvcCS1WI+XFv104+TdgQHYYwVyrotuQlnZ0fSxq+STthxPt/Tfd807/zQ1++XGRIRkulx/I+HdrvXpQEGguHnNe9bRukVSRyjsQhr4jNZqwKIYgPPIpPhU+vDAcfwj1eSirV/KiLwnMJP5eND1nYQeOncVY6DKad6MxdO9KTZemqgGVMr9q0QSZmXCzHtaIzK9yFBPB6HhEnEykmmaDtXhDGkndhWX3zFlu8+noQaBHPWzu2EmQD+nRfoE4FCdoNmDGeXqFZwy3z3YKRACbH
X-Forefront-Antispam-Report: 
	CIP:66.129.242.15;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:p-exchfe-eqx-02.jnpr.net;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(4636009)(396003)(136003)(346002)(376002)(39860400002)(82310400011)(451199024)(186009)(1800799009)(46966006)(36840700001)(40470700004)(8936002)(8676002)(86362001)(4326008)(55016003)(40480700001)(5660300002)(2906002)(4744005)(40460700003)(966005)(7696005)(82740400003)(7126003)(356005)(9686003)(478600001)(6266002)(336012)(26005)(81166007)(6916009)(316002)(47076005)(70206006)(54906003)(70586007)(41300700001)(36860700001)(107886003)(36900700001);DIR:OUT;SFP:1102;
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Sep 2023 17:49:52.0517
 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: ed4a58d1-7343-4204-51f9-08dbb481d510
X-MS-Exchange-CrossTenant-Id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=bea78b3c-4cdb-4130-854a-1d193232e5f4;Ip=[66.129.242.15];Helo=[p-exchfe-eqx-02.jnpr.net]
X-MS-Exchange-CrossTenant-AuthSource: 
	DM6NAM12FT075.eop-nam12.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR05MB7653
X-Proofpoint-GUID: L0P7Hf94YUY85cKG2awZc8lIDo_YHSaS
X-Proofpoint-ORIG-GUID: L0P7Hf94YUY85cKG2awZc8lIDo_YHSaS
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.267,Aquarius:18.0.980,Hydra:6.0.601,FMLib:17.11.176.26
 definitions=2023-09-13_12,2023-09-13_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 bulkscore=0
 suspectscore=0 phishscore=0 mlxscore=0 malwarescore=0 clxscore=1011
 mlxlogscore=474 impostorscore=0 spamscore=0 priorityscore=1501
 lowpriorityscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx
 scancount=1 engine=8.12.0-2308100000 definitions=main-2309130149
X-Spamd-Bar: ----
X-Rspamd-Pre-Result: action=no action;
	module=replies;
	Message is reply to one we originated
X-Spamd-Result: default: False [-4.00 / 15.00];
	REPLY(-4.00)[];
	ASN(0.00)[asn:26211, ipnet:208.84.65.0/24, country:US]
X-Rspamd-Queue-Id: 4Rm7JR21H8z4RM9

Drew Gallatin <gallatin@fastmail.com> wrote:
> des seems to be addressing this in https://reviews.freebsd.org/D41845<ht=
tps://urldefense.com/v3/__https://reviews.freebsd.org/D41845__;!!NEt6yMaO-=
gk!BYCrz-e9MyZAae6u3F9l3e9f-Orqf5I_HTbhxGRZWq3o4CuOPwmgI9fm9PipTP-h0etJSkh=
PmgktQ7Lv$>

That looks fine to me.

Thanks des

From nobody Wed Sep 13 18:11:40 2023
X-Original-To: dev-commits-src-main@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 4Rm7nS6K15z4sfdm;
	Wed, 13 Sep 2023 18:11:40 +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 4Rm7nS5sJkz4VNy;
	Wed, 13 Sep 2023 18:11:40 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694628700;
	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=yDHJf1r2G7i6AZTTA6wK3LyOH6T1GUbqPs7vEDTR7Do=;
	b=nTlL2/XIb/y5QvJaW2DPoFMP0afovyLptbCOGdjG9aLPf1MhCN7Cm2O/tO7uil0974uw8b
	L9nKK1Q7rTkD/JbL0XdsW5VoRp1SP04dKpU28rRjLl+HOCnlAxhCwozngwGbZrH0hshh4B
	XNwcdZ0/rZ8qV/fRfDWllz52tMPohaiAuLNeBZ7IPhT4RPHf7h6szMaRJio6nCjPQ2cvfL
	zSUNDNIqP5w4jFg4FI2UOmBzsZFHHGoAmXl4ykcMyyce6Fq8K8bt315F8b93uOhNBnJ/YG
	M0RCj65gTipby+dNt7PEUR6Ft6/w0VfeoTKxb373+aiDn1EITleuwK2Q9FIwcA==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694628700; a=rsa-sha256; cv=none;
	b=bzEOphUAkMiCeO+0FOG+cY6IK47noJZsEELk8Ine4QMiNSvTUy22M56u3l9AxH5GM7bQNL
	eir/esdUwRdOA5vfj6JU2vekQ2qo9+Id8VYaK1LtEGS92q0GarrJpxR5nDuZ3E3yhd0gt+
	fPGTUQ0dGgPq2C8J5r0Sz6cMltSI2ImB1fqAJqBXrTNsBF63EYLRSc3UY2cUle2MHuS1w2
	R4Ib3chl4mFL2JEfBVaI2MzSGth2uAXoOW9IX7iEzFw+wHTzumLg7xi+iZTi55b/jidEId
	LUlb9dqxLFgmKqDTVssad9sdSWT9L8vOW+hAxzqYqmOJ2KEh7tqwSG7SSfUZIw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694628700;
	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=yDHJf1r2G7i6AZTTA6wK3LyOH6T1GUbqPs7vEDTR7Do=;
	b=JHcYwPOpkW8+4zc8u982E5toTYrO37NWjHXyjNPqZL2S8SioSvJKLwgVTo1t65Ad1gzA4m
	Ovt5+v+4wGzYjIebL3KgZseNKfH+z4cazwfk8BVaSjL1p2JmYMECUZQzqGuKkfQD/NxIiZ
	271bkwg3U+YXYG4IcIKneiyLqbTsyA1vWOSrbZpx7fx8sayB18Cf0YVeTYCMSZEKMwnlGm
	sfAZ5GegW7f/ujWKqxHCeI6AQunN8Ay/JzlWiwql5sQ1ppQOvbl0ZJj84EEcKiN0vneYya
	/8oBkY8LT41TviSa7TXe1/GMpZPcurnjtoYaPaHQfQ2WRA22+FiGgVTvsusi0w==
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 4Rm7nS4wvLz8nv;
	Wed, 13 Sep 2023 18:11: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 38DIBeJd010363;
	Wed, 13 Sep 2023 18:11:40 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38DIBexV010360;
	Wed, 13 Sep 2023 18:11:40 GMT
	(envelope-from git)
Date: Wed, 13 Sep 2023 18:11:40 GMT
Message-Id: <202309131811.38DIBexV010360@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= <des@FreeBSD.org>
Subject: git: 9f16abf8d356 - main - newvers.sh: Avoid picking up
  stray envars.
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@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/main
X-Git-Reftype: branch
X-Git-Commit: 9f16abf8d3561cb1a2c459eb6cb8fce06223c9b3
Auto-Submitted: auto-generated

The branch main has been updated by des:

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

commit 9f16abf8d3561cb1a2c459eb6cb8fce06223c9b3
Author:     Dag-Erling Smørgrav <des@FreeBSD.org>
AuthorDate: 2023-09-13 18:10:46 +0000
Commit:     Dag-Erling Smørgrav <des@FreeBSD.org>
CommitDate: 2023-09-13 18:10:46 +0000

    newvers.sh: Avoid picking up stray envars.
    
    89f361f742ae added a mechanism to allow arbitrary overrides from the
    command line.  Unfortunately, it also had the (likely unintended)
    effect of allowing RELEASE and VERSION to be passed in from the
    environment, and Makefile.inc1 happens to define VERSION for the
    benefit of pkgbase.  To restore the status quo, unset RELEASE and
    VERSION at the top of the script.
    
    Fixes:          89f361f742ae
    MFC after:      3 days
    Reviewed by:    gallatin, sjg, emaste
    Differential Revision:  https://reviews.freebsd.org/D41845
---
 sys/conf/newvers.sh | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh
index 40821c100161..73fd6857d307 100644
--- a/sys/conf/newvers.sh
+++ b/sys/conf/newvers.sh
@@ -57,6 +57,8 @@ BRANCH="CURRENT"
 if [ -n "${BRANCH_OVERRIDE}" ]; then
 	BRANCH=${BRANCH_OVERRIDE}
 fi
+unset RELEASE
+unset VERSION
 
 if [ -z "${SYSDIR}" ]; then
 	SYSDIR=$(dirname $0)/..

From nobody Wed Sep 13 18:22:25 2023
X-Original-To: dev-commits-src-main@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 4Rm81s3Zgrz4shxP;
	Wed, 13 Sep 2023 18:22:25 +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 4Rm81s39Byz4XHC;
	Wed, 13 Sep 2023 18:22:25 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694629345;
	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=hPewDvtN3BBHYhp6zTOy+e1fgNdUxQXjuYTEbmbnfdk=;
	b=Onvby8u95B9qMjm0MGX4wERXAwZLN0rzSkjNcaZvKEh/I56abjGCHaU8BuIh7GViqhDy0D
	rXYjjPG4EuWUNGoTfdDu2X8a07ySLDaCtOyYgtvlRHDz5URDwlSSyWIdirDLvACX/ACquB
	iTi4lJ53NyHARhCrwkqdG7qyMxdYzvkbTEwPxacPKgwTVFk/FeoFL/z0dkJTIrlrVkBS01
	lhC5poY4BbEm7my//Qfj+d4jdUPyQT0AIkAKSLgr37Vc7JxEC1FW6sSfMjMSC0tgQ6gfYJ
	Hp/2+aFKCwgLS/2IO3sO43KNBmY4uLPe9KTCOaVJ/skcIfnZr6bQPftwqnm4Ow==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694629345; a=rsa-sha256; cv=none;
	b=o1h8SnmMiBy+INMH95UA8xeljUlAnRRm+216FbHnKNGSOpvXF5olvmv/T6Ri8Qi9dIf5OW
	6cmvVVEQVaEE2184vdEr5tyDP3ACskFTwgtpttwj6D/Fae2UpZsUHW/7koTXD7KAR/hEIV
	Ax1+vTcuEQnLEGlRgX+2ZTBAwtANegotbscCAk2ne4vg0dKxad9pBZ8dUfkAZnkdo2SCJt
	dUJOn6DACa2EvUjsLB3PDJtWeVeikFrl6rMmjocx6r7ubuOsU9cRMHjvjQ8Z4THm2PWbwu
	SJvI1pnWd4d5LbaXFZGErJIeRzEU1kypAHtf+WSGhRBO5Y9+o/zgTsqit5FZaQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694629345;
	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=hPewDvtN3BBHYhp6zTOy+e1fgNdUxQXjuYTEbmbnfdk=;
	b=VFDfEM8YNV4wNQ+bZ4ax/XGEC5GBW0plAhweWlpZ8xO4uTj4myfp4FJXdPDS8hDpQnFSqX
	+6M19Vmp2/tPFS5byMsZ8SCkhy5ohPnOMscHOKvEL/64HP0k3IO7Rb+OAo1IUVS2uDq6n+
	T565qvpTqunEjIgDnHsSn8896BM1r4xAkQAthqlsVeHThRNW4kerhau/5Re8vOa5F5OutB
	in/IK4PWu3lK7ro3oSTGGzpb8+A5IRsaYer0bHvg+k/ZWnfu9375cNeZ+xDzpD+Zv9g59A
	plEVITZ9yVD5Qiq37SqqmH4NdOHMlYwedXrXo398xHhxVlmZD0cSd4jnR28D1A==
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 4Rm81s2FzCz91t;
	Wed, 13 Sep 2023 18:22: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 38DIMPrq030526;
	Wed, 13 Sep 2023 18:22:25 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38DIMPQL030523;
	Wed, 13 Sep 2023 18:22:25 GMT
	(envelope-from git)
Date: Wed, 13 Sep 2023 18:22:25 GMT
Message-Id: <202309131822.38DIMPQL030523@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Doug Moore <dougm@FreeBSD.org>
Subject: git: 8763b9862f90 - main - powerpc pmap: initialize kernel
  pmap radix trie
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: dougm
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 8763b9862f90dc3bdbbc5e3c2664890be7c1f0c4
Auto-Submitted: auto-generated

The branch main has been updated by dougm:

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

commit 8763b9862f90dc3bdbbc5e3c2664890be7c1f0c4
Author:     Doug Moore <dougm@FreeBSD.org>
AuthorDate: 2023-09-13 18:17:57 +0000
Commit:     Doug Moore <dougm@FreeBSD.org>
CommitDate: 2023-09-13 18:17:57 +0000

    powerpc pmap: initialize kernel pmap radix trie
    
    Commit 2d2bcba7ba70141388729ed49674b36fd01146c5 changed radix trie
    implementation and made it necessary that radix tries be initialized
    with vm_radix_init. @dbaio reports that in some configurations, there
    is a powerpc boot panic and that this commit introduced the
    problem. In powerpc/aim/mmu_radix.c, the radix trie in kernel_pmap is
    initialized by zeroing all its fields.
    
    Add a call to vm_radix_init to properly initialize
    kernel_pmap->pm_radix.
    
    Reported by:    dbaio
    Reviewed by:    alc, jhibbits
    Fixes:  2d2bcba7ba drop NULL check from radix trie search
    MFC after:      1 week
    Differential Revision:  https://reviews.freebsd.org/D41846
---
 sys/powerpc/aim/mmu_radix.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sys/powerpc/aim/mmu_radix.c b/sys/powerpc/aim/mmu_radix.c
index 9c5b67121803..e26508a3bddf 100644
--- a/sys/powerpc/aim/mmu_radix.c
+++ b/sys/powerpc/aim/mmu_radix.c
@@ -1844,6 +1844,7 @@ mmu_radix_setup_pagetables(vm_size_t hwphyssz)
 
 	bzero(kernel_pmap, sizeof(struct pmap));
 	PMAP_LOCK_INIT(kernel_pmap);
+	vm_radix_init(&kernel_pmap->pm_radix);
 
 	ptpages = allocpages(3);
 	l1phys = moea64_bootstrap_alloc(RADIX_PGD_SIZE, RADIX_PGD_SIZE);

From nobody Wed Sep 13 21:14:35 2023
X-Original-To: dev-commits-src-main@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 4RmCrX1tbFz4sfKM;
	Wed, 13 Sep 2023 21:14:36 +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 4RmCrX1BSbz3YP6;
	Wed, 13 Sep 2023 21:14:36 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694639676;
	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=MiI3TU71VLFsxwy5IhISR9tIItBtoDluxFCNkxLDa+w=;
	b=RkVlRtK/dK/07qTxro1nRpo8V9VQYh60UFcsyXoxsh+WxTHHjeUmVcFFkTzLp+YQ1Zv60s
	4a9mS1c5CJsn7emx2f5PpYEIhbXK9OqslopoJfmqhZSq1HppJDZ7ofwibxqbu+cJIZAbVK
	MSgwZpgX9m9t+o/58eiunDx2pnJk9oVqJsMtpp+RYskLesbgr/G6xEjExJJOsehoHOc+aB
	OsZxYDRbiys2YGrNIxyUdPGfbwoW6Ly+jeenuvfcG4criWdEKgrqK+pTUBXDxmoEpxRPNj
	bUJaw2Cti6DhVSd1xC9JuVqRdBWcfJufzuMVLbA7lK6eJrr/6X5+la8WWr2Zpg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694639676; a=rsa-sha256; cv=none;
	b=m8rdWAk4vAGTNdb2tUDIr3VNlYzc5PzqQ3Q9HYEfYgDty6zLt5J18C3wohQIVLpSmAXVGH
	mS1MLxvilmbdoExYAfx3pDw+qHeUU2ga7eDg0OQ8Y6MJa9CzfM8S3XLhxXZWPkJFA3vVsi
	X9dAmjPC3e0jQ40E+KKTkqHbVwFtBlXrmDx8kdKT4qHGCOcCjou6GhPveINxo1eeJw7WU4
	x5L4PzDH9NsfBeWIkkSJs1kYd9O6LY/ScrXSflZprqoLR7p5yRkZHkh3ODzqzUrjT20e+0
	D0F5w7M6iDTrVP0bPilMjTRFhZXFjs+T7FAdsuuO+oLVJQ8vTfIT9msxFEFdZA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694639676;
	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=MiI3TU71VLFsxwy5IhISR9tIItBtoDluxFCNkxLDa+w=;
	b=Wl0DF0M9lrfS2X9UqUHPRsZ14yqlR84xjhWVSfKhv4XZhyuomW43VV/pxZr4MggujBnsVt
	yJ4DlRl/gVL4vhPkjwktIMdVfHmW9GtB6JSvBl7x7zsqn5MqGRq4QNTJyYvPncCBx5fHfE
	VKePhipj4hRHnUnm/brbMHtn/TggwFVTHf96NiH8K2Rpc4L7HbBuBOFAODBqHxuWxd7xYB
	iRGreQ2QGgkcDAsr7tek2bIbVB0LdL9xnc019ZPBlOsARnQxwp6omMOC1fro8rTEsFsD9n
	tGp0z6VXdgERpipQCb/U3+vnxRIscSa923RlkG/0c6ALYVyUBKb6nhIq8sOuZA==
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 4RmCrX0DpszVMt;
	Wed, 13 Sep 2023 21:14:36 +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 38DLEZE8012919;
	Wed, 13 Sep 2023 21:14:35 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38DLEZ6G012916;
	Wed, 13 Sep 2023 21:14:35 GMT
	(envelope-from git)
Date: Wed, 13 Sep 2023 21:14:35 GMT
Message-Id: <202309132114.38DLEZ6G012916@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Ed Maste <emaste@FreeBSD.org>
Subject: git: 01d82151022c - main - ftpd: correct deprecation notice
  markup
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@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/main
X-Git-Reftype: branch
X-Git-Commit: 01d82151022cb1383e83c331708a787f1907b00f
Auto-Submitted: auto-generated

The branch main has been updated by emaste:

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

commit 01d82151022cb1383e83c331708a787f1907b00f
Author:     Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2023-09-13 21:13:42 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2023-09-13 21:13:42 +0000

    ftpd: correct deprecation notice markup
    
    Also bump .Dd for the original change.
    
    Reported by:    karels
    Fixes:          98b98ec1bc7e ("ftpd: add deprecation notice")
    Sponsored by:   The FreeBSD Foundation
---
 libexec/ftpd/ftpd.8 | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libexec/ftpd/ftpd.8 b/libexec/ftpd/ftpd.8
index f5353be894fe..ec4ce0c65100 100644
--- a/libexec/ftpd/ftpd.8
+++ b/libexec/ftpd/ftpd.8
@@ -27,7 +27,7 @@
 .\"
 .\"     @(#)ftpd.8	8.2 (Berkeley) 4/19/94
 .\"
-.Dd June 28, 2022
+.Dd September 9, 2023
 .Dt FTPD 8
 .Os
 .Sh NAME
@@ -43,7 +43,7 @@
 .Op Fl T Ar maxtimeout
 .Op Fl t Ar timeout
 .Op Fl u Ar umask
-.Sh .Sh DEPRECATION NOTICE
+.Sh DEPRECATION NOTICE
 The
 .Fx
 base system

From nobody Wed Sep 13 22:17:15 2023
X-Original-To: dev-commits-src-main@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 4RmFDq3bG3z4t1d4;
	Wed, 13 Sep 2023 22:17: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 4RmFDq383Nz4J1D;
	Wed, 13 Sep 2023 22:17:15 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694643435;
	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=aDJ1FcnsQOUtDjcHwsCs9LvY3odyHvq5NzagWmVRyf8=;
	b=ZZpEhE/R7hBEbHyHFwQ9mu0P16MbM5RWFIFh7SGxwvwaT1fQbon5wW0PpN7J+OZ6h9AU9f
	9hLIhRNdwDlWIvwDdLy3VIJtT916ruCwzA0nbCiENjyY86VW5QMyU9kfh0sSB3IJNKQmRp
	ZJTm3VKA/2iZARYFzFIZFjXzzfIdgYCHlt138FTuto81saSHBL4HUZHNfSy1SxRCekb9Nl
	5khdiANxJbGvWjAHVo9/1ci/ysgFSHy8vJEZADTCJnagEDgX9Of9Qs1hl0zr2d3sZ4UOw2
	4RJfIaidTf65PQOtvuCHDHC4G8Z+78VWXWS6yPtzdMZ1qVos/v5NX32ZNbh6og==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694643435; a=rsa-sha256; cv=none;
	b=g2Zgs1zqlR9xH/ECnmLSzv7W7yUocP/iDGjgt2On2mDuGURigxo+RyQ24Pl6ycGZSagGyv
	28ns49wAHFPuPnDFWv+Q76ccRyGBJ227IfNysZYgcF98vwNlt9A3HWqGH8JSEIiBDvwT4M
	L0X0RjAD38KynVC5Uex+YGOlanBqn/LiF7z2sjxtNvisXGMntaAy+oEEWVU0UMPGe1XaY3
	N7Hld+fDoOfz+8xF5IeNQ7khDyqjnJtDv65izI6WNa+OdsH1FYlJ58HR1yKrm4HAo5ayGM
	z6lNYB0KXrPnt6M6YzsIyPu7o1EOPUyUIq9kJlxMq1kRRHQNytW9qt1KLS59CA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694643435;
	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=aDJ1FcnsQOUtDjcHwsCs9LvY3odyHvq5NzagWmVRyf8=;
	b=dOPMeajwHoqdNY/Dryaw/e+jrUUZTb9jZGKVtTzA/l8vzsK/LaRsUVfhwqyFH/gC4BaTzx
	8IyhXcsKV9IBtyy3AWwSTjfhfYpndKEyIr9BZgkygmMyHkyog2qiBo9/98IvRLZO98SKgM
	nMFKjhRI9updwykddMAp7EN4vCqg2axHMwHeWMiSSt13VlME/TVlv/SqdPLB/pPjfmYkZw
	NB0bRMhq+l4WFtoSIB3F7HIzZUQ2h7YMJwomn1KXckpe6qjD3Rcw8UIJrvi19c/phu3+3d
	Mt4zSV19FNgsUFZwGo/rMGCiToCPmy6RA5YLeOhR3vcobP2rbiPNjoSelHE2Ug==
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 4RmFDq256WzXFH;
	Wed, 13 Sep 2023 22:17: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 38DMHFg3012452;
	Wed, 13 Sep 2023 22:17:15 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38DMHFvJ012449;
	Wed, 13 Sep 2023 22:17:15 GMT
	(envelope-from git)
Date: Wed, 13 Sep 2023 22:17:15 GMT
Message-Id: <202309132217.38DMHFvJ012449@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Eric Joyner <erj@FreeBSD.org>
Subject: git: bc3a013ccd23 - main - irdma(4): use related vnet for
  searching netdev
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: erj
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: bc3a013ccd23c50bb48f17211ffc36fe85d11e18
Auto-Submitted: auto-generated

The branch main has been updated by erj:

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

commit bc3a013ccd23c50bb48f17211ffc36fe85d11e18
Author:     Bartosz Sobczak <bartosz.sobczak@intel.com>
AuthorDate: 2023-09-12 21:31:39 +0000
Commit:     Eric Joyner <erj@FreeBSD.org>
CommitDate: 2023-09-13 22:16:15 +0000

    irdma(4): use related vnet for searching netdev
    
    It was found through testing that when ULP uses individual vnet, the
    search for the correct vlan_id may failing because of no proper
    interface with given address.
    
    The solution is to use vnet associated to the connection whenever
    possible.
    
    Signed-off-by: Bartosz Sobczak <bartosz.sobczak@intel.com>
    Signed-off-by: Eric Joyner <erj@FreeBSD.org>
    
    Reviewed by:    erj@
    MFC after:      1 day
    Sponsored by:   Intel Corporation
    Differential Revision:  https://reviews.freebsd.org/D41592
---
 sys/dev/irdma/fbsd_kcompat.c |  6 ++----
 sys/dev/irdma/fbsd_kcompat.h | 14 ++++++++++++++
 sys/dev/irdma/irdma_cm.c     | 35 ++++++++++++++++++++++++-----------
 sys/dev/irdma/irdma_main.h   |  5 +++--
 sys/dev/irdma/irdma_verbs.c  |  4 ++--
 5 files changed, 45 insertions(+), 19 deletions(-)

diff --git a/sys/dev/irdma/fbsd_kcompat.c b/sys/dev/irdma/fbsd_kcompat.c
index 013f9279952e..fbfa5c9e5fc4 100644
--- a/sys/dev/irdma/fbsd_kcompat.c
+++ b/sys/dev/irdma/fbsd_kcompat.c
@@ -393,8 +393,7 @@ irdma_get_dst_mac(struct irdma_cm_node *cm_node, struct sockaddr *dst_sin, u8 *d
 {
 	struct ifnet *netdev = cm_node->iwdev->netdev;
 #ifdef VIMAGE
-	struct rdma_cm_id *rdma_id = (struct rdma_cm_id *)cm_node->cm_id->context;
-	struct vnet *vnet = rdma_id->route.addr.dev_addr.net;
+	struct vnet *vnet = irdma_cmid_to_vnet(cm_node->cm_id);
 #endif
 	struct ifnet *ifp;
 	struct llentry *lle;
@@ -492,8 +491,7 @@ irdma_resolve_neigh_lpb_chk(struct irdma_device *iwdev, struct irdma_cm_node *cm
 			    struct irdma_cm_info *cm_info)
 {
 #ifdef VIMAGE
-	struct rdma_cm_id *rdma_id = (struct rdma_cm_id *)cm_node->cm_id->context;
-	struct vnet *vnet = rdma_id->route.addr.dev_addr.net;
+	struct vnet *vnet = irdma_cmid_to_vnet(cm_node->cm_id);
 #endif
 	int arpindex;
 	int oldarpindex;
diff --git a/sys/dev/irdma/fbsd_kcompat.h b/sys/dev/irdma/fbsd_kcompat.h
index eb1e615fc048..f465f97167cc 100644
--- a/sys/dev/irdma/fbsd_kcompat.h
+++ b/sys/dev/irdma/fbsd_kcompat.h
@@ -121,6 +121,20 @@ static inline u64 *irdma_next_pbl_addr(u64 *pbl, struct irdma_pble_info **pinfo,
 
 	return (*pinfo)->addr;
 }
+
+static inline struct vnet *
+irdma_cmid_to_vnet(struct iw_cm_id *cm_id)
+{
+	struct rdma_cm_id *rdma_id;
+
+	if (!cm_id)
+		return &init_net;
+
+	rdma_id = (struct rdma_cm_id *)cm_id->context;
+
+	return rdma_id->route.addr.dev_addr.net;
+}
+
 #if __FreeBSD_version < 1400026
 struct ib_cq *irdma_create_cq(struct ib_device *ibdev,
 			      const struct ib_cq_init_attr *attr,
diff --git a/sys/dev/irdma/irdma_cm.c b/sys/dev/irdma/irdma_cm.c
index 48aefda681cb..c1d5875961f0 100644
--- a/sys/dev/irdma/irdma_cm.c
+++ b/sys/dev/irdma/irdma_cm.c
@@ -1624,10 +1624,13 @@ static u8 irdma_iw_get_vlan_prio(u32 *loc_addr, u8 prio, bool ipv4)
  * vlan id and mac for that address.
  */
 if_t
-irdma_netdev_vlan_ipv6(u32 *addr, u16 *vlan_id, u8 *mac)
+irdma_netdev_vlan_ipv6(struct iw_cm_id *cm_id, u32 *addr, u16 *vlan_id, u8 *mac)
 {
 	if_t ip_dev = NULL;
 	struct in6_addr laddr6;
+#ifdef VIMAGE
+	struct vnet *vnet = irdma_cmid_to_vnet(cm_id);
+#endif
 	struct ifaddr *ifa;
 	u16 scope_id = 0;
 
@@ -1641,7 +1644,11 @@ irdma_netdev_vlan_ipv6(u32 *addr, u16 *vlan_id, u8 *mac)
 	    IN6_IS_ADDR_MC_INTFACELOCAL(&laddr6))
 		scope_id = ntohs(laddr6.__u6_addr.__u6_addr16[1]);
 
+#ifdef VIMAGE
+	ip_dev = ip6_ifp_find(vnet, laddr6, scope_id);
+#else
 	ip_dev = ip6_ifp_find(&init_net, laddr6, scope_id);
+#endif
 	if (ip_dev) {
 		if (vlan_id)
 			*vlan_id = rdma_vlan_dev_vlan_id(ip_dev);
@@ -1658,12 +1665,19 @@ irdma_netdev_vlan_ipv6(u32 *addr, u16 *vlan_id, u8 *mac)
  * @addr: local IPv4 address
  */
 u16
-irdma_get_vlan_ipv4(u32 *addr)
+irdma_get_vlan_ipv4(struct iw_cm_id *cm_id, u32 *addr)
 {
 	if_t netdev;
+#ifdef VIMAGE
+	struct vnet *vnet = irdma_cmid_to_vnet(cm_id);
+#endif
 	u16 vlan_id = 0xFFFF;
 
+#ifdef VIMAGE
+	netdev = ip_ifp_find(vnet, htonl(addr[0]));
+#else
 	netdev = ip_ifp_find(&init_net, htonl(addr[0]));
+#endif
 	if (netdev) {
 		vlan_id = rdma_vlan_dev_vlan_id(netdev);
 		dev_put(netdev);
@@ -2060,8 +2074,7 @@ irdma_cm_create_ah(struct irdma_cm_node *cm_node, bool wait)
 	struct irdma_ah_info ah_info = {0};
 	struct irdma_device *iwdev = cm_node->iwdev;
 #ifdef VIMAGE
-	struct rdma_cm_id *rdma_id = (struct rdma_cm_id *)cm_node->cm_id->context;
-	struct vnet *vnet = rdma_id->route.addr.dev_addr.net;
+	struct vnet *vnet = irdma_cmid_to_vnet(cm_node->cm_id);
 #endif
 
 	ether_addr_copy(ah_info.mac_addr, if_getlladdr(iwdev->netdev));
@@ -3520,11 +3533,11 @@ irdma_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
 
 	if (((struct sockaddr_in *)&cm_id->local_addr)->sin_family == AF_INET) {
 		cm_node->ipv4 = true;
-		cm_node->vlan_id = irdma_get_vlan_ipv4(cm_node->loc_addr);
+		cm_node->vlan_id = irdma_get_vlan_ipv4(cm_id, cm_node->loc_addr);
 	} else {
 		cm_node->ipv4 = false;
-		irdma_netdev_vlan_ipv6(cm_node->loc_addr, &cm_node->vlan_id,
-				       NULL);
+		irdma_netdev_vlan_ipv6(cm_id, cm_node->loc_addr,
+				       &cm_node->vlan_id, NULL);
 	}
 	irdma_debug(&iwdev->rf->sc_dev, IRDMA_DEBUG_CM, "Accept vlan_id=%d\n",
 		    cm_node->vlan_id);
@@ -3719,7 +3732,7 @@ irdma_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
 		cm_info.rem_addr[0] = ntohl(raddr->sin_addr.s_addr);
 		cm_info.loc_port = ntohs(laddr->sin_port);
 		cm_info.rem_port = ntohs(raddr->sin_port);
-		cm_info.vlan_id = irdma_get_vlan_ipv4(cm_info.loc_addr);
+		cm_info.vlan_id = irdma_get_vlan_ipv4(cm_id, cm_info.loc_addr);
 	} else {
 		if (iwdev->vsi.mtu < IRDMA_MIN_MTU_IPV6)
 			return -EINVAL;
@@ -3731,7 +3744,7 @@ irdma_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
 				    raddr6->sin6_addr.__u6_addr.__u6_addr32);
 		cm_info.loc_port = ntohs(laddr6->sin6_port);
 		cm_info.rem_port = ntohs(raddr6->sin6_port);
-		irdma_netdev_vlan_ipv6(cm_info.loc_addr, &cm_info.vlan_id, NULL);
+		irdma_netdev_vlan_ipv6(cm_id, cm_info.loc_addr, &cm_info.vlan_id, NULL);
 	}
 	cm_info.cm_id = cm_id;
 	cm_info.qh_qpid = iwdev->vsi.ilq->qp_id;
@@ -3846,7 +3859,7 @@ irdma_create_listen(struct iw_cm_id *cm_id, int backlog)
 		cm_info.loc_port = ntohs(laddr->sin_port);
 
 		if (laddr->sin_addr.s_addr != htonl(INADDR_ANY)) {
-			cm_info.vlan_id = irdma_get_vlan_ipv4(cm_info.loc_addr);
+			cm_info.vlan_id = irdma_get_vlan_ipv4(cm_id, cm_info.loc_addr);
 		} else {
 			cm_info.vlan_id = 0xFFFF;
 			wildcard = true;
@@ -3860,7 +3873,7 @@ irdma_create_listen(struct iw_cm_id *cm_id, int backlog)
 				    laddr6->sin6_addr.__u6_addr.__u6_addr32);
 		cm_info.loc_port = ntohs(laddr6->sin6_port);
 		if (!IN6_IS_ADDR_UNSPECIFIED(&laddr6->sin6_addr)) {
-			irdma_netdev_vlan_ipv6(cm_info.loc_addr,
+			irdma_netdev_vlan_ipv6(cm_id, cm_info.loc_addr,
 					       &cm_info.vlan_id, NULL);
 		} else {
 			cm_info.vlan_id = 0xFFFF;
diff --git a/sys/dev/irdma/irdma_main.h b/sys/dev/irdma/irdma_main.h
index 25c3fcfc939e..aa5bbee2fb77 100644
--- a/sys/dev/irdma/irdma_main.h
+++ b/sys/dev/irdma/irdma_main.h
@@ -584,8 +584,9 @@ void irdma_gen_ae(struct irdma_pci_f *rf, struct irdma_sc_qp *qp,
 		  struct irdma_gen_ae_info *info, bool wait);
 void irdma_copy_ip_ntohl(u32 *dst, __be32 *src);
 void irdma_copy_ip_htonl(__be32 *dst, u32 *src);
-u16 irdma_get_vlan_ipv4(u32 *addr);
-if_t irdma_netdev_vlan_ipv6(u32 *addr, u16 *vlan_id, u8 *mac);
+u16 irdma_get_vlan_ipv4(struct iw_cm_id *cm_id, u32 *addr);
+if_t irdma_netdev_vlan_ipv6(struct iw_cm_id *cm_id, u32 *addr, u16 *vlan_id,
+			    u8 *mac);
 struct ib_mr *irdma_reg_phys_mr(struct ib_pd *ib_pd, u64 addr, u64 size,
 				int acc, u64 *iova_start);
 int irdma_upload_qp_context(struct irdma_qp *iwqp, bool freeze, bool raw);
diff --git a/sys/dev/irdma/irdma_verbs.c b/sys/dev/irdma/irdma_verbs.c
index 8b7b34f7b2fb..cda8041ab397 100644
--- a/sys/dev/irdma/irdma_verbs.c
+++ b/sys/dev/irdma/irdma_verbs.c
@@ -3336,7 +3336,7 @@ irdma_attach_mcast(struct ib_qp *ibqp, union ib_gid *ibgid, u16 lid)
 	if (!ipv6_addr_v4mapped((struct in6_addr *)ibgid)) {
 		irdma_copy_ip_ntohl(ip_addr,
 				    sgid_addr.saddr_in6.sin6_addr.__u6_addr.__u6_addr32);
-		irdma_netdev_vlan_ipv6(ip_addr, &vlan_id, NULL);
+		irdma_netdev_vlan_ipv6(iwqp->cm_id, ip_addr, &vlan_id, NULL);
 		ipv4 = false;
 		irdma_debug(&iwdev->rf->sc_dev, IRDMA_DEBUG_VERBS,
 			    "qp_id=%d, IP6address=%x:%x:%x:%x\n", ibqp->qp_num,
@@ -3345,7 +3345,7 @@ irdma_attach_mcast(struct ib_qp *ibqp, union ib_gid *ibgid, u16 lid)
 	} else {
 		ip_addr[0] = ntohl(sgid_addr.saddr_in.sin_addr.s_addr);
 		ipv4 = true;
-		vlan_id = irdma_get_vlan_ipv4(ip_addr);
+		vlan_id = irdma_get_vlan_ipv4(iwqp->cm_id, ip_addr);
 		irdma_mcast_mac_v4(ip_addr, dmac);
 		irdma_debug(&iwdev->rf->sc_dev, IRDMA_DEBUG_VERBS,
 			    "qp_id=%d, IP4address=%x, MAC=%x:%x:%x:%x:%x:%x\n",

From nobody Wed Sep 13 22:17:16 2023
X-Original-To: dev-commits-src-main@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 4RmFDr4vfKz4t1j1;
	Wed, 13 Sep 2023 22:17:16 +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 4RmFDr3shPz4JMD;
	Wed, 13 Sep 2023 22:17:16 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694643436;
	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=gabicTM7rp29s1TfEvLep7ErbzTlkSW/afFKmbLomMw=;
	b=cHuBbQk648NeT2ZjWfGLmzinv6dfAbz1/ElvIAE1AH2iM64jnUJHFa8587FqGyq0egtNKy
	XmxOoSKJfpg8LiJj9iucp1yqYPE7sclfLtIYXZT8CxZ5rOABNdCmZQVBc/PwcB/c8suPbM
	7mzZjsQ+bJd3fLNvNJb7EJTh8bJHU3oqbqoYFQETPOuaRq0oYoBnXLK6BFhs/dYUt3fNeU
	Y6I7Rx6ScJUHVO+PYysj5Bw1JvUmHyesmr9vtdHikSGsE6i7U2Baf7n+ROsGNadRjVrVwA
	brZ18SGRLgTX9jESqdsNYqDf/Ndwg15Es4rr3O2kZhwXclrgXGS7dsTLIn532Q==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694643436; a=rsa-sha256; cv=none;
	b=wLoUmYcZsac3J6ys9AhtPT4RsEYYK4Y29lqshbjpFUq/oThIsYBUAmcjrSs72TPwHBsYXq
	7L7XTA95u3rhdd1AHLIIxBGS1tJRTCa9xpJQ6rZ6hYzay76LIJEysUYVCvE/4vERq1wtY6
	L2IySxYglHVqx1AwUqztPB7NcwyrBMhADafkgY9IDnj2U24cVS1Zxr5koaHYf+FijRnulw
	hwgRzA6kKwTV7sJfniwt8iHlEXXvnXG5HAzK1ZuQ/SF/ID0KAoFzXTxqCZOQ3hzc0AXWex
	olEZZVUipGyotQlslmxK5R43PoIXcu48QaSobdE1KmUHUtsxWgYZFUM/WfNfPg==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694643436;
	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=gabicTM7rp29s1TfEvLep7ErbzTlkSW/afFKmbLomMw=;
	b=Oy/PbvSlwAG/p4UmHqViHwih6r8JgjsHEY6cFXu7AgoJAjqvoWsQgt7WU4cgo041H6H+me
	eb5GaY41aUttQwT/7yTojtaYXM+NdLnKoyvwXmX3/yOBpSNQBbcdhav5/0j875VaocCIWp
	x/XXEJ/gQbllodj/O7GCgole4OdpQSmE8qQBfKmLPShve291VIUPhjvnBQ5zCpxK+ChRPG
	aysxotd8j8GnAXOlYaLNelpW090S0iCAwcISt9/rU+JfOoym6LM3bccIPe+4KWYrLZDca2
	8a0hr1vdWvA0AaHKvCfpX2icCdUBFbvtOuYOla60TjBeDRYSN2JO/KA6kqI3/Q==
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 4RmFDr2fzszWxw;
	Wed, 13 Sep 2023 22:17:16 +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 38DMHGIu012496;
	Wed, 13 Sep 2023 22:17:16 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38DMHG1I012493;
	Wed, 13 Sep 2023 22:17:16 GMT
	(envelope-from git)
Date: Wed, 13 Sep 2023 22:17:16 GMT
Message-Id: <202309132217.38DMHG1I012493@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Eric Joyner <erj@FreeBSD.org>
Subject: git: ffafa6a4d157 - main - irdma(4): remove artificial
  completion generator
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: erj
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: ffafa6a4d157e49e6b12567958c4ab0c9151c080
Auto-Submitted: auto-generated

The branch main has been updated by erj:

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

commit ffafa6a4d157e49e6b12567958c4ab0c9151c080
Author:     Bartosz Sobczak <bartosz.sobczak@intel.com>
AuthorDate: 2023-09-12 21:35:06 +0000
Commit:     Eric Joyner <erj@FreeBSD.org>
CommitDate: 2023-09-13 22:16:21 +0000

    irdma(4): remove artificial completion generator
    
    Removing artificial completion generator as there had been no indication
    of the code being required for E810 cards.  Further more it was found
    that the code may have unpleasant side effects on user experience when
    using ucmatose tool.
    
    Signed-off-by: Bartosz Sobczak <bartosz.sobczak@intel.com>
    Signed-off-by: Eric Joyner <erj@FreeBSD.org>
    
    Reviewed by:    erj@
    MFC after:      1 day
    Sponsored by:   Intel Corporation
    Differential Revision:  https://reviews.freebsd.org/D41593
---
 contrib/ofed/libirdma/irdma_umain.h  |   8 --
 contrib/ofed/libirdma/irdma_uverbs.c | 161 +----------------------------------
 2 files changed, 1 insertion(+), 168 deletions(-)

diff --git a/contrib/ofed/libirdma/irdma_umain.h b/contrib/ofed/libirdma/irdma_umain.h
index c67c5d7076f9..7ff850c46b72 100644
--- a/contrib/ofed/libirdma/irdma_umain.h
+++ b/contrib/ofed/libirdma/irdma_umain.h
@@ -109,11 +109,6 @@ struct verbs_cq {
 	};
 };
 
-struct irdma_cmpl_gen {
-	LIST_ENTRY(irdma_cmpl_gen) list;
-	struct irdma_cq_poll_info cpi;
-};
-
 struct irdma_ucq {
 	struct verbs_cq verbs_cq;
 	struct verbs_mr vmr;
@@ -130,7 +125,6 @@ struct irdma_ucq {
 	struct list_head resize_list;
 	/* for extended CQ completion fields */
 	struct irdma_cq_poll_info cur_cqe;
-	struct list_head_cmpl cmpl_generated;
 };
 
 struct irdma_uqp {
@@ -150,7 +144,6 @@ struct irdma_uqp {
 	struct irdma_qp_uk qp;
 	enum ibv_qp_type qp_type;
 	struct irdma_sge *recv_sges;
-	pthread_t flush_thread;
 };
 
 /* irdma_uverbs.c */
@@ -207,5 +200,4 @@ void irdma_async_event(struct ibv_context *context,
 void irdma_set_hw_attrs(struct irdma_hw_attrs *attrs);
 void *irdma_mmap(int fd, off_t offset);
 void irdma_munmap(void *map);
-void *irdma_flush_thread(void *arg);
 #endif /* IRDMA_UMAIN_H */
diff --git a/contrib/ofed/libirdma/irdma_uverbs.c b/contrib/ofed/libirdma/irdma_uverbs.c
index c59d409e72cd..bc6bec34e6cd 100644
--- a/contrib/ofed/libirdma/irdma_uverbs.c
+++ b/contrib/ofed/libirdma/irdma_uverbs.c
@@ -459,7 +459,6 @@ ucreate_cq(struct ibv_context *context,
 	info.cq_size = get_cq_size(attr_ex->cqe, hw_rev, cqe_64byte_ena);
 	iwucq->comp_vector = attr_ex->comp_vector;
 	LIST_INIT(&iwucq->resize_list);
-	LIST_INIT(&iwucq->cmpl_generated);
 	total_size = get_cq_total_bytes(info.cq_size, cqe_64byte_ena);
 	cq_pages = total_size >> IRDMA_HW_PAGE_SHIFT;
 
@@ -615,142 +614,6 @@ irdma_process_resize_list(struct irdma_ucq *iwucq,
 	return cq_cnt;
 }
 
-static void
-irdma_remove_cmpls_list(struct irdma_ucq *iwucq)
-{
-	struct irdma_cmpl_gen *cmpl_node, *next;
-
-	LIST_FOREACH_SAFE(cmpl_node, &iwucq->cmpl_generated, list, next) {
-		LIST_REMOVE(cmpl_node, list);
-		free(cmpl_node);
-	}
-}
-
-static int
-irdma_generated_cmpls(struct irdma_ucq *iwucq, struct irdma_cq_poll_info *cq_poll_info)
-{
-	struct irdma_cmpl_gen *cmpl;
-
-	if (!iwucq || LIST_EMPTY(&iwucq->cmpl_generated))
-		return ENOENT;
-	cmpl = LIST_FIRST(&iwucq->cmpl_generated);
-	LIST_REMOVE(cmpl, list);
-	memcpy(cq_poll_info, &cmpl->cpi, sizeof(*cq_poll_info));
-
-	free(cmpl);
-
-	return 0;
-}
-
-/**
- * irdma_set_cpi_common_values - fill in values for polling info struct
- * @cpi: resulting structure of cq_poll_info type
- * @qp: QPair
- * @qp_num: id of the QP
- */
-static void
-irdma_set_cpi_common_values(struct irdma_cq_poll_info *cpi,
-			    struct irdma_qp_uk *qp, __u32 qp_num)
-{
-	cpi->comp_status = IRDMA_COMPL_STATUS_FLUSHED;
-	cpi->error = 1;
-	cpi->major_err = IRDMA_FLUSH_MAJOR_ERR;
-	cpi->minor_err = FLUSH_GENERAL_ERR;
-	cpi->qp_handle = (irdma_qp_handle) (uintptr_t)qp;
-	cpi->qp_id = qp_num;
-}
-
-static bool
-irdma_cq_empty(struct irdma_ucq *iwucq)
-{
-	struct irdma_cq_uk *ukcq;
-	__u64 qword3;
-	__le64 *cqe;
-	__u8 polarity;
-
-	ukcq = &iwucq->cq;
-	cqe = IRDMA_GET_CURRENT_CQ_ELEM(ukcq);
-	get_64bit_val(cqe, 24, &qword3);
-	polarity = (__u8) FIELD_GET(IRDMA_CQ_VALID, qword3);
-
-	return polarity != ukcq->polarity;
-}
-
-/**
- * irdma_generate_flush_completions - generate completion from WRs
- * @iwuqp: pointer to QP
- */
-static void
-irdma_generate_flush_completions(struct irdma_uqp *iwuqp)
-{
-	struct irdma_qp_uk *qp = &iwuqp->qp;
-	struct irdma_ring *sq_ring = &qp->sq_ring;
-	struct irdma_ring *rq_ring = &qp->rq_ring;
-	struct irdma_cmpl_gen *cmpl;
-	__le64 *sw_wqe;
-	__u64 wqe_qword;
-	__u32 wqe_idx;
-
-	if (pthread_spin_lock(&iwuqp->send_cq->lock))
-		return;
-	if (irdma_cq_empty(iwuqp->send_cq)) {
-		while (IRDMA_RING_MORE_WORK(*sq_ring)) {
-			cmpl = malloc(sizeof(*cmpl));
-			if (!cmpl) {
-				pthread_spin_unlock(&iwuqp->send_cq->lock);
-				return;
-			}
-
-			wqe_idx = sq_ring->tail;
-			irdma_set_cpi_common_values(&cmpl->cpi, qp, qp->qp_id);
-			cmpl->cpi.wr_id = qp->sq_wrtrk_array[wqe_idx].wrid;
-			sw_wqe = qp->sq_base[wqe_idx].elem;
-			get_64bit_val(sw_wqe, 24, &wqe_qword);
-			cmpl->cpi.op_type = (__u8) FIELD_GET(IRDMAQPSQ_OPCODE, wqe_qword);
-			/* remove the SQ WR by moving SQ tail */
-			IRDMA_RING_SET_TAIL(*sq_ring, sq_ring->tail + qp->sq_wrtrk_array[sq_ring->tail].quanta);
-			LIST_INSERT_HEAD(&iwuqp->send_cq->cmpl_generated, cmpl, list);
-		}
-	}
-	pthread_spin_unlock(&iwuqp->send_cq->lock);
-	if (pthread_spin_lock(&iwuqp->recv_cq->lock))
-		return;
-	if (irdma_cq_empty(iwuqp->recv_cq)) {
-		while (IRDMA_RING_MORE_WORK(*rq_ring)) {
-			cmpl = malloc(sizeof(*cmpl));
-			if (!cmpl) {
-				pthread_spin_unlock(&iwuqp->recv_cq->lock);
-				return;
-			}
-
-			wqe_idx = rq_ring->tail;
-			irdma_set_cpi_common_values(&cmpl->cpi, qp, qp->qp_id);
-			cmpl->cpi.wr_id = qp->rq_wrid_array[wqe_idx];
-			cmpl->cpi.op_type = IRDMA_OP_TYPE_REC;
-			/* remove the RQ WR by moving RQ tail */
-			IRDMA_RING_SET_TAIL(*rq_ring, rq_ring->tail + 1);
-			LIST_INSERT_HEAD(&iwuqp->recv_cq->cmpl_generated, cmpl, list);
-		}
-	}
-	pthread_spin_unlock(&iwuqp->recv_cq->lock);
-}
-
-void *
-irdma_flush_thread(void *arg)
-{
-	__u8 i = 5;
-	struct irdma_uqp *iwuqp = arg;
-
-	while (--i) {
-		if (pthread_spin_lock(&iwuqp->lock))
-			break;
-		irdma_generate_flush_completions(arg);
-		pthread_spin_unlock(&iwuqp->lock);
-		sleep(1);
-	}
-	pthread_exit(NULL);
-}
-
 /**
  * irdma_udestroy_cq - destroys cq
  * @cq: ptr to cq to be destroyed
@@ -771,8 +634,6 @@ irdma_udestroy_cq(struct ibv_cq *cq)
 	if (ret)
 		goto err;
 
-	if (!LIST_EMPTY(&iwucq->cmpl_generated))
-		irdma_remove_cmpls_list(iwucq);
 	irdma_process_resize_list(iwucq, NULL);
 	ret = ibv_cmd_destroy_cq(cq);
 	if (ret)
@@ -1016,15 +877,6 @@ __irdma_upoll_cq(struct irdma_ucq *iwucq, int num_entries,
 	while (npolled < num_entries) {
 		ret = irdma_poll_one(&iwucq->cq, cur_cqe,
 				     entry ? entry + npolled : NULL);
-		if (ret == ENOENT) {
-			ret = irdma_generated_cmpls(iwucq, cur_cqe);
-			if (!ret) {
-				if (entry)
-					irdma_process_cqe(entry + npolled, cur_cqe);
-				else
-					irdma_process_cqe_ext(cur_cqe);
-			}
-		}
 		if (!ret) {
 			++npolled;
 			cq_new_cqe = true;
@@ -1710,14 +1562,7 @@ irdma_umodify_qp(struct ibv_qp *qp, struct ibv_qp_attr *attr, int attr_mask)
 
 		return ret;
 	} else {
-		int ret;
-
-		ret = ibv_cmd_modify_qp(qp, attr, attr_mask, &cmd, sizeof(cmd));
-		if (ret)
-			return ret;
-		if (attr_mask & IBV_QP_STATE && attr->qp_state == IBV_QPS_ERR)
-			pthread_create(&iwuqp->flush_thread, NULL, irdma_flush_thread, iwuqp);
-		return 0;
+		return ibv_cmd_modify_qp(qp, attr, attr_mask, &cmd, sizeof(cmd));
 	}
 }
 
@@ -1770,10 +1615,6 @@ irdma_udestroy_qp(struct ibv_qp *qp)
 	int ret;
 
 	iwuqp = container_of(qp, struct irdma_uqp, ibv_qp);
-	if (iwuqp->flush_thread) {
-		pthread_cancel(iwuqp->flush_thread);
-		pthread_join(iwuqp->flush_thread, NULL);
-	}
 	ret = pthread_spin_destroy(&iwuqp->lock);
 	if (ret)
 		goto err;

From nobody Wed Sep 13 22:27:17 2023
X-Original-To: dev-commits-src-main@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 4RmFSP34hzz4t42s;
	Wed, 13 Sep 2023 22:27: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 4RmFSP2nnpz4L7f;
	Wed, 13 Sep 2023 22:27:17 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694644037;
	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=y4xR/8vq4uEzlTELkj9JacZ4uneUqiJhXH8uBRXdGSU=;
	b=Gavt3U+97DiuQ6eRJR9WWJfSCQGJISB7Pept/MTR5V2w8EZp7Td1lH4EMhmK3/kCg2WaXn
	ug1MSOM7WZFrljnX/YhgejVsMY7AY/5tP4ZLjTqzR4qijfw5IdafSfhn+5IwBUFRh9gJ1t
	QIRHoT8575wVFWRrIIhheJgTsawTyyL7lmBRxygdN/WWHVqJk3LUtsmixwv1A9HO4Prz8p
	aK5XPIQXP/2H+llEw/+mJPQ2+nxqH1RFogTseDYm/MAEysUCvOAv31hXdvBxv4Ttu9QmyP
	qbxMPBK5A/Z+D7jXZe7BYWhuKZsTqUVZx2AwV1szZud2TO4yuentSQhqcahyPg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694644037; a=rsa-sha256; cv=none;
	b=CdHufpzkHjdxp2MNf6xoh3zPQZpDRUfcMwu4iNTdq9iMd7EskqETQugmmZZQgqXH6Vb1eh
	PgOCxC93OtBGlqaoVXVJJAlV6LXn9eMaXW1c6YO/uM8fyT+M+ZYVyM5JnIftyukj5UJ7Zt
	UxHwbOocae/+B2o9ITV60sUlbm3VPatbBSVXEjh4j9zJZHjzNipBVFc6bMbwifGoK8iUnA
	rSleHhrATgo/p1iFQi/nqjA3f1Eqzv3y5xhe+X79O5aN4OjbywoY0gttwOEAKmS3gFW++3
	1oVhrB+8npwRkFQRzxDGOBMS15kRQAQIcF2cPTUgkQIds5mKYKompSEvDDX0gA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694644037;
	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=y4xR/8vq4uEzlTELkj9JacZ4uneUqiJhXH8uBRXdGSU=;
	b=Gi4bBlfCg4RfMwNGsFeRM5xBoxUWNbe3v1Z7gG+Hf/NxOw4skEtQhxOjI1oBR7FTHusUXM
	2q3qHGKUy66cSAlybOC8ImIYRQAoJclq8H7A2A9wrC3fHfQZiNiqMOFxP/CpmTtBouMuzc
	fsEnkFZsd1yl1F6Lyk+8sTonbo+LTkhq37Yy1eFTGVBLkWW7tcTsPs24eN1apzbpZyn0N9
	tCy0UDhfZXyuMWXtihcoRImwH7YHqqjMisWmx8akS6ssqEIKcgbogEjY9DLPHDyjEYP7pL
	nQM2GabroHgqnhMXBqumfEEUXYMXzPEnluWF0GWFHjOhXHh5iIL9YyDK7iHXqw==
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 4RmFSP1sX5zXZZ;
	Wed, 13 Sep 2023 22:27: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 38DMRHXU029251;
	Wed, 13 Sep 2023 22:27:17 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38DMRHOi029248;
	Wed, 13 Sep 2023 22:27:17 GMT
	(envelope-from git)
Date: Wed, 13 Sep 2023 22:27:17 GMT
Message-Id: <202309132227.38DMRHOi029248@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Eric Joyner <erj@FreeBSD.org>
Subject: git: 9c30461dd25b - main - ice(4): Update to 1.38.16-k
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: erj
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 9c30461dd25bac49045acbeac10e00b6cc13d2bc
Auto-Submitted: auto-generated

The branch main has been updated by erj:

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

commit 9c30461dd25bac49045acbeac10e00b6cc13d2bc
Author:     Eric Joyner <erj@FreeBSD.org>
AuthorDate: 2023-08-24 23:26:13 +0000
Commit:     Eric Joyner <erj@FreeBSD.org>
CommitDate: 2023-09-13 22:26:54 +0000

    ice(4): Update to 1.38.16-k
    
    New features
    - Add sysctl "link_active_on_if_down" (defaults to 1 to match previous
    behavior): set this to 0 to have the driver bring the physical link down when
    the interface is brought administratively down
    - Add sysctl "temp" to read chip temperature on E810 devices; this requires a
    4.30 or newer NVM (see package sysutils/intel-nvmupdate-100g)
    
    Bug fixes and general changes
    - (linked to irdma) properly propagate PF reset request from irdma driver
    - (linked to irdma) properly notify irdma of an impending PF reset
    - (linked to irdma) move Protocol Engine error handling to irdma
    - Print log message when using a DDP that doesn't support the "TX balancing"
    mode
    - Block LLDP agent configuration when DSCP QoS mode is enabled
    - Fix kernel panic when updating NVM when adapter is in the "TX balancing" mode
    - Remove ice_sbq_cmd.h since it's unused
    - Fix LLDP RX filter to still allow LLDP frames to be received by SW after a PF
    reset in SW LLDP mode
    - Add ice_if_needs_restart handler in order to fix a bad VLAN and link down
    interaction
    - Issue PF reset during unload
    - nvmupdate process fixes
    - Use pci_msix_table_bar() to get MSI-X bar index at runtime instead of hardcoding it
    
    Signed-off-by: Eric Joyner <erj@FreeBSD.org>
    
    Reviewed by:    anzhu@netapp.com
    MFC after:      3 days
    Sponsored by:   Intel Corporation, NetApp
    Differential Revision:  https://reviews.freebsd.org/D41655
---
 sys/dev/ice/ice_adminq_cmd.h    | 123 ++++++----
 sys/dev/ice/ice_common.c        | 490 +++++++++++++++++++++-------------------
 sys/dev/ice/ice_common.h        |   6 +-
 sys/dev/ice/ice_controlq.c      | 110 ++++-----
 sys/dev/ice/ice_controlq.h      |   3 -
 sys/dev/ice/ice_dcb.c           |   2 +-
 sys/dev/ice/ice_ddp_common.c    |   4 +
 sys/dev/ice/ice_ddp_common.h    |   1 +
 sys/dev/ice/ice_defs.h          |   4 +-
 sys/dev/ice/ice_features.h      |   2 +
 sys/dev/ice/ice_flow.c          |  41 +++-
 sys/dev/ice/ice_flow.h          |   6 +-
 sys/dev/ice/ice_fw_logging.c    |   4 +-
 sys/dev/ice/ice_fwlog.c         |   1 +
 sys/dev/ice/ice_lan_tx_rx.h     |   1 -
 sys/dev/ice/ice_lib.c           | 239 ++++++++++++++++++--
 sys/dev/ice/ice_lib.h           |  16 +-
 sys/dev/ice/ice_rdma.c          |  16 ++
 sys/dev/ice/ice_rdma.h          |  80 ++++++-
 sys/dev/ice/ice_rdma_internal.h |  17 ++
 sys/dev/ice/ice_sbq_cmd.h       | 120 ----------
 sys/dev/ice/ice_sched.c         | 104 +++++++--
 sys/dev/ice/ice_sched.h         |  42 +++-
 sys/dev/ice/ice_strings.c       |   4 +
 sys/dev/ice/ice_switch.c        | 334 +++++++++++++++------------
 sys/dev/ice/ice_switch.h        |  86 ++++---
 sys/dev/ice/ice_type.h          | 112 ++++++++-
 sys/dev/ice/if_ice_iflib.c      | 130 +++++++++--
 sys/dev/ice/irdma_di_if.m       |   5 +
 sys/dev/ice/irdma_if.m          |   4 +
 sys/dev/ice/virtchnl.h          |   2 +-
 31 files changed, 1360 insertions(+), 749 deletions(-)

diff --git a/sys/dev/ice/ice_adminq_cmd.h b/sys/dev/ice/ice_adminq_cmd.h
index 710830e95a16..e4dc14b0162c 100644
--- a/sys/dev/ice/ice_adminq_cmd.h
+++ b/sys/dev/ice/ice_adminq_cmd.h
@@ -168,6 +168,7 @@ struct ice_aqc_list_caps_elem {
 #define ICE_AQC_CAPS_LED				0x0061
 #define ICE_AQC_CAPS_SDP				0x0062
 #define ICE_AQC_CAPS_WR_CSR_PROT			0x0064
+#define ICE_AQC_CAPS_SENSOR_READING			0x0067
 #define ICE_AQC_CAPS_LOGI_TO_PHYSI_PORT_MAP		0x0073
 #define ICE_AQC_CAPS_SKU				0x0074
 #define ICE_AQC_CAPS_PORT_MAP				0x0075
@@ -180,7 +181,8 @@ struct ice_aqc_list_caps_elem {
 #define ICE_AQC_CAPS_EXT_TOPO_DEV_IMG3			0x0084
 #define ICE_AQC_CAPS_TX_SCHED_TOPO_COMP_MODE		0x0085
 #define ICE_AQC_CAPS_NAC_TOPOLOGY			0x0087
-#define ICE_AQC_CAPS_DYN_FLATTENING			0x0090
+#define ICE_AQC_CAPS_DYN_FLATTENING			0x008A
+#define ICE_AQC_CAPS_OROM_RECOVERY_UPDATE		0x0090
 #define ICE_AQC_CAPS_ROCEV2_LAG				0x0092
 
 	u8 major_ver;
@@ -793,12 +795,30 @@ struct ice_aqc_sw_rules {
 	__le32 addr_low;
 };
 
+/* Add switch rule response:
+ * Content of return buffer is same as the input buffer. The status field and
+ * LUT index are updated as part of the response
+ */
+struct ice_aqc_sw_rules_elem_hdr {
+	__le16 type; /* Switch rule type, one of T_... */
+#define ICE_AQC_SW_RULES_T_LKUP_RX		0x0
+#define ICE_AQC_SW_RULES_T_LKUP_TX		0x1
+#define ICE_AQC_SW_RULES_T_LG_ACT		0x2
+#define ICE_AQC_SW_RULES_T_VSI_LIST_SET		0x3
+#define ICE_AQC_SW_RULES_T_VSI_LIST_CLEAR	0x4
+#define ICE_AQC_SW_RULES_T_PRUNE_LIST_SET	0x5
+#define ICE_AQC_SW_RULES_T_PRUNE_LIST_CLEAR	0x6
+	__le16 status;
+};
+
 /* Add/Update/Get/Remove lookup Rx/Tx command/response entry
  * This structures describes the lookup rules and associated actions. "index"
  * is returned as part of a response to a successful Add command, and can be
  * used to identify the rule for Update/Get/Remove commands.
  */
 struct ice_sw_rule_lkup_rx_tx {
+	struct ice_aqc_sw_rules_elem_hdr hdr;
+
 	__le16 recipe_id;
 #define ICE_SW_RECIPE_LOGICAL_PORT_FWD		10
 	/* Source port for LOOKUP_RX and source VSI in case of LOOKUP_TX */
@@ -877,14 +897,17 @@ struct ice_sw_rule_lkup_rx_tx {
 	 * lookup-type
 	 */
 	__le16 hdr_len;
-	u8 hdr[STRUCT_HACK_VAR_LEN];
+	u8 hdr_data[STRUCT_HACK_VAR_LEN];
 };
 
+#pragma pack(1)
 /* Add/Update/Remove large action command/response entry
  * "index" is returned as part of a response to a successful Add command, and
  * can be used to identify the action for Update/Get/Remove commands.
  */
 struct ice_sw_rule_lg_act {
+	struct ice_aqc_sw_rules_elem_hdr hdr;
+
 	__le16 index; /* Index in large action table */
 	__le16 size;
 	/* Max number of large actions */
@@ -939,50 +962,30 @@ struct ice_sw_rule_lg_act {
 #define ICE_LG_ACT_STAT_COUNT_M		(0x7F << ICE_LG_ACT_STAT_COUNT_S)
 	__le32 act[STRUCT_HACK_VAR_LEN]; /* array of size for actions */
 };
+#pragma pack()
 
+#pragma pack(1)
 /* Add/Update/Remove VSI list command/response entry
  * "index" is returned as part of a response to a successful Add command, and
  * can be used to identify the VSI list for Update/Get/Remove commands.
  */
 struct ice_sw_rule_vsi_list {
+	struct ice_aqc_sw_rules_elem_hdr hdr;
+
 	__le16 index; /* Index of VSI/Prune list */
 	__le16 number_vsi;
 	__le16 vsi[STRUCT_HACK_VAR_LEN]; /* Array of number_vsi VSI numbers */
 };
+#pragma pack()
 
 #pragma pack(1)
 /* Query VSI list command/response entry */
 struct ice_sw_rule_vsi_list_query {
 	__le16 index;
-	ice_declare_bitmap(vsi_list, ICE_MAX_VSI);
+	u8 vsi_list[DIVIDE_AND_ROUND_UP(ICE_MAX_VSI, BITS_PER_BYTE)];
 };
 #pragma pack()
 
-#pragma pack(1)
-/* Add switch rule response:
- * Content of return buffer is same as the input buffer. The status field and
- * LUT index are updated as part of the response
- */
-struct ice_aqc_sw_rules_elem {
-	__le16 type; /* Switch rule type, one of T_... */
-#define ICE_AQC_SW_RULES_T_LKUP_RX		0x0
-#define ICE_AQC_SW_RULES_T_LKUP_TX		0x1
-#define ICE_AQC_SW_RULES_T_LG_ACT		0x2
-#define ICE_AQC_SW_RULES_T_VSI_LIST_SET		0x3
-#define ICE_AQC_SW_RULES_T_VSI_LIST_CLEAR	0x4
-#define ICE_AQC_SW_RULES_T_PRUNE_LIST_SET	0x5
-#define ICE_AQC_SW_RULES_T_PRUNE_LIST_CLEAR	0x6
-	__le16 status;
-	union {
-		struct ice_sw_rule_lkup_rx_tx lkup_tx_rx;
-		struct ice_sw_rule_lg_act lg_act;
-		struct ice_sw_rule_vsi_list vsi_list;
-		struct ice_sw_rule_vsi_list_query vsi_list_query;
-	} pdata;
-};
-
-#pragma pack()
-
 /* PFC Ignore (direct 0x0301)
  * The command and response use the same descriptor structure
  */
@@ -994,8 +997,8 @@ struct ice_aqc_pfc_ignore {
 	u8	reserved[14];
 };
 
-/* Set PFC Mode (direct 0x0303)
- * Query PFC Mode (direct 0x0302)
+/* Query PFC Mode (direct 0x0302)
+ * Set PFC Mode (direct 0x0303)
  */
 struct ice_aqc_set_query_pfc_mode {
 	u8	pfc_mode;
@@ -1098,9 +1101,9 @@ struct ice_aqc_txsched_elem {
 	u8 generic;
 #define ICE_AQC_ELEM_GENERIC_MODE_M		0x1
 #define ICE_AQC_ELEM_GENERIC_PRIO_S		0x1
-#define ICE_AQC_ELEM_GENERIC_PRIO_M	(0x7 << ICE_AQC_ELEM_GENERIC_PRIO_S)
+#define ICE_AQC_ELEM_GENERIC_PRIO_M		(0x7 << ICE_AQC_ELEM_GENERIC_PRIO_S)
 #define ICE_AQC_ELEM_GENERIC_SP_S		0x4
-#define ICE_AQC_ELEM_GENERIC_SP_M	(0x1 << ICE_AQC_ELEM_GENERIC_SP_S)
+#define ICE_AQC_ELEM_GENERIC_SP_M		(0x1 << ICE_AQC_ELEM_GENERIC_SP_S)
 #define ICE_AQC_ELEM_GENERIC_ADJUST_VAL_S	0x5
 #define ICE_AQC_ELEM_GENERIC_ADJUST_VAL_M	\
 	(0x3 << ICE_AQC_ELEM_GENERIC_ADJUST_VAL_S)
@@ -1673,6 +1676,32 @@ struct ice_aqc_set_mac_lb {
 	u8 reserved[15];
 };
 
+/* Get sensor reading (direct 0x0632) */
+struct ice_aqc_get_sensor_reading {
+	u8 sensor;
+#define ICE_AQC_INT_TEMP_SENSOR		0x0
+	u8 format;
+#define ICE_AQC_INT_TEMP_FORMAT		0x0
+	u8 reserved[6];
+	__le32 addr_high;
+	__le32 addr_low;
+};
+
+/* Get sensor reading response (direct 0x0632) */
+struct ice_aqc_get_sensor_reading_resp {
+	union {
+		u8 raw[8];
+		/* Output data for sensor 0x00, format 0x00 */
+		struct {
+			s8 temp;
+			u8 temp_warning_threshold;
+			u8 temp_critical_threshold;
+			u8 temp_fatal_threshold;
+			u8 reserved[4];
+		} s0f0;
+	} data;
+};
+
 /* DNL Get Status command (indirect 0x0680)
  * Structure used for the response, the command uses the generic
  * ice_aqc_generic struct to pass a buffer address to the FW.
@@ -2476,6 +2505,19 @@ struct ice_aqc_get_set_rss_keys {
 	u8 extended_hash_key[ICE_AQC_GET_SET_RSS_KEY_DATA_HASH_KEY_SIZE];
 };
 
+enum ice_lut_type {
+	ICE_LUT_VSI = 0,
+	ICE_LUT_PF = 1,
+	ICE_LUT_GLOBAL = 2,
+	ICE_LUT_TYPE_MASK = 3
+};
+
+enum ice_lut_size {
+	ICE_LUT_VSI_SIZE = 64,
+	ICE_LUT_GLOBAL_SIZE = 512,
+	ICE_LUT_PF_SIZE = 2048,
+};
+
 /* Get/Set RSS LUT (indirect 0x0B05/0x0B03) */
 struct ice_aqc_get_set_rss_lut {
 #define ICE_AQC_GSET_RSS_LUT_VSI_VALID	BIT(15)
@@ -2484,21 +2526,13 @@ struct ice_aqc_get_set_rss_lut {
 	__le16 vsi_id;
 #define ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_S	0
 #define ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_M	\
-				(0x3 << ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_S)
-
-#define ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_VSI	 0
-#define ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_PF	 1
-#define ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_GLOBAL	 2
+	(ICE_LUT_TYPE_MASK << ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_S)
 
 #define ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_S	 2
 #define ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_M	 \
-				(0x3 << ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_S)
+	(ICE_LUT_TYPE_MASK << ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_S)
 
-#define ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_128	 128
-#define ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_128_FLAG 0
-#define ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_512	 512
 #define ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_512_FLAG 1
-#define ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_2K	 2048
 #define ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_2K_FLAG	 2
 
 #define ICE_AQC_GSET_RSS_LUT_GLOBAL_IDX_S	 4
@@ -2686,7 +2720,7 @@ struct ice_aqc_move_rdma_qset_buffer {
 };
 
 /* Download Package (indirect 0x0C40) */
-/* Also used for Update Package (indirect 0x0C42 and 0x0C41) */
+/* Also used for Update Package (indirect 0x0C41 and 0x0C42) */
 struct ice_aqc_download_pkg {
 	u8 flags;
 #define ICE_AQC_DOWNLOAD_PKG_LAST_BUF	0x01
@@ -2989,6 +3023,8 @@ struct ice_aq_desc {
 		struct ice_aqc_get_phy_caps get_phy;
 		struct ice_aqc_set_phy_cfg set_phy;
 		struct ice_aqc_restart_an restart_an;
+		struct ice_aqc_get_sensor_reading get_sensor_reading;
+		struct ice_aqc_get_sensor_reading_resp get_sensor_reading_resp;
 		struct ice_aqc_dnl_get_status get_status;
 		struct ice_aqc_dnl_run_command dnl_run;
 		struct ice_aqc_dnl_call_command dnl_call;
@@ -3239,6 +3275,7 @@ enum ice_adminq_opc {
 	ice_aqc_opc_get_link_status			= 0x0607,
 	ice_aqc_opc_set_event_mask			= 0x0613,
 	ice_aqc_opc_set_mac_lb				= 0x0620,
+	ice_aqc_opc_get_sensor_reading			= 0x0632,
 	ice_aqc_opc_dnl_get_status			= 0x0680,
 	ice_aqc_opc_dnl_run				= 0x0681,
 	ice_aqc_opc_dnl_call				= 0x0682,
diff --git a/sys/dev/ice/ice_common.c b/sys/dev/ice/ice_common.c
index a3f50f251533..0df73583e137 100644
--- a/sys/dev/ice/ice_common.c
+++ b/sys/dev/ice/ice_common.c
@@ -343,6 +343,88 @@ ice_aq_manage_mac_read(struct ice_hw *hw, void *buf, u16 buf_size,
 	return ICE_SUCCESS;
 }
 
+/**
+ * ice_phy_maps_to_media
+ * @phy_type_low: PHY type low bits
+ * @phy_type_high: PHY type high bits
+ * @media_mask_low: media type PHY type low bitmask
+ * @media_mask_high: media type PHY type high bitmask
+ *
+ * Return true if PHY type [low|high] bits are only of media type PHY types
+ * [low|high] bitmask.
+ */
+static bool
+ice_phy_maps_to_media(u64 phy_type_low, u64 phy_type_high,
+		      u64 media_mask_low, u64 media_mask_high)
+{
+	/* check if a PHY type exist for media type */
+	if (!(phy_type_low & media_mask_low ||
+	      phy_type_high & media_mask_high))
+		return false;
+
+	/* check that PHY types are only of media type */
+	if (!(phy_type_low & ~media_mask_low) &&
+	    !(phy_type_high & ~media_mask_high))
+		return true;
+
+	return false;
+}
+
+/**
+ * ice_set_media_type - Sets media type
+ * @pi: port information structure
+ *
+ * Set ice_port_info PHY media type based on PHY type. This should be called
+ * from Get PHY caps with media.
+ */
+static void ice_set_media_type(struct ice_port_info *pi)
+{
+	enum ice_media_type *media_type;
+	u64 phy_type_high, phy_type_low;
+
+	phy_type_high = pi->phy.phy_type_high;
+	phy_type_low = pi->phy.phy_type_low;
+	media_type = &pi->phy.media_type;
+
+	/* if no media, then media type is NONE */
+	if (!(pi->phy.link_info.link_info & ICE_AQ_MEDIA_AVAILABLE))
+		*media_type = ICE_MEDIA_NONE;
+	/* else if PHY types are only BASE-T, then media type is BASET */
+	else if (ice_phy_maps_to_media(phy_type_low, phy_type_high,
+				       ICE_MEDIA_BASET_PHY_TYPE_LOW_M, 0))
+		*media_type = ICE_MEDIA_BASET;
+	/* else if any PHY type is BACKPLANE, then media type is BACKPLANE */
+	else if (phy_type_low & ICE_MEDIA_BP_PHY_TYPE_LOW_M ||
+		 phy_type_high & ICE_MEDIA_BP_PHY_TYPE_HIGH_M)
+		*media_type = ICE_MEDIA_BACKPLANE;
+	/* else if PHY types are only optical, or optical and C2M, then media
+	 * type is FIBER
+	 */
+	else if (ice_phy_maps_to_media(phy_type_low, phy_type_high,
+				       ICE_MEDIA_OPT_PHY_TYPE_LOW_M, 0) ||
+		 (phy_type_low & ICE_MEDIA_OPT_PHY_TYPE_LOW_M &&
+		  phy_type_low & ICE_MEDIA_C2M_PHY_TYPE_LOW_M))
+		*media_type = ICE_MEDIA_FIBER;
+	/* else if PHY types are only DA, or DA and C2C, then media type DA */
+	else if (ice_phy_maps_to_media(phy_type_low, phy_type_high,
+				       ICE_MEDIA_DAC_PHY_TYPE_LOW_M, 0) ||
+		 (phy_type_low & ICE_MEDIA_DAC_PHY_TYPE_LOW_M &&
+		 (phy_type_low & ICE_MEDIA_C2C_PHY_TYPE_LOW_M ||
+		  phy_type_high & ICE_MEDIA_C2C_PHY_TYPE_HIGH_M)))
+		*media_type = ICE_MEDIA_DA;
+	/* else if PHY types are only C2M or only C2C, then media is AUI */
+	else if (ice_phy_maps_to_media(phy_type_low, phy_type_high,
+				       ICE_MEDIA_C2M_PHY_TYPE_LOW_M,
+				       ICE_MEDIA_C2M_PHY_TYPE_HIGH_M) ||
+		 ice_phy_maps_to_media(phy_type_low, phy_type_high,
+				       ICE_MEDIA_C2C_PHY_TYPE_LOW_M,
+				       ICE_MEDIA_C2C_PHY_TYPE_HIGH_M))
+		*media_type = ICE_MEDIA_AUI;
+
+	else
+		*media_type = ICE_MEDIA_UNKNOWN;
+}
+
 /**
  * ice_aq_get_phy_caps - returns PHY capabilities
  * @pi: port information structure
@@ -434,6 +516,9 @@ ice_aq_get_phy_caps(struct ice_port_info *pi, bool qual_mods, u8 report_mode,
 		ice_memcpy(pi->phy.link_info.module_type, &pcaps->module_type,
 			   sizeof(pi->phy.link_info.module_type),
 			   ICE_NONDMA_TO_NONDMA);
+		ice_set_media_type(pi);
+		ice_debug(hw, ICE_DBG_LINK, "%s: media_type = 0x%x\n", prefix,
+			  pi->phy.media_type);
 	}
 
 	return status;
@@ -513,156 +598,6 @@ ice_find_netlist_node(struct ice_hw *hw, u8 node_type_ctx, u8 node_part_number,
 	return ICE_ERR_DOES_NOT_EXIST;
 }
 
-/**
- * ice_is_media_cage_present
- * @pi: port information structure
- *
- * Returns true if media cage is present, else false. If no cage, then
- * media type is backplane or BASE-T.
- */
-static bool ice_is_media_cage_present(struct ice_port_info *pi)
-{
-	struct ice_aqc_get_link_topo *cmd;
-	struct ice_aq_desc desc;
-
-	cmd = &desc.params.get_link_topo;
-
-	ice_fill_dflt_direct_cmd_desc(&desc, ice_aqc_opc_get_link_topo);
-
-	cmd->addr.topo_params.node_type_ctx =
-		(ICE_AQC_LINK_TOPO_NODE_CTX_PORT <<
-		 ICE_AQC_LINK_TOPO_NODE_CTX_S);
-
-	/* set node type */
-	cmd->addr.topo_params.node_type_ctx |=
-		(ICE_AQC_LINK_TOPO_NODE_TYPE_M &
-		 ICE_AQC_LINK_TOPO_NODE_TYPE_CAGE);
-
-	/* Node type cage can be used to determine if cage is present. If AQC
-	 * returns error (ENOENT), then no cage present. If no cage present then
-	 * connection type is backplane or BASE-T.
-	 */
-	return ice_aq_get_netlist_node(pi->hw, cmd, NULL, NULL);
-}
-
-/**
- * ice_get_media_type - Gets media type
- * @pi: port information structure
- */
-static enum ice_media_type ice_get_media_type(struct ice_port_info *pi)
-{
-	struct ice_link_status *hw_link_info;
-
-	if (!pi)
-		return ICE_MEDIA_UNKNOWN;
-
-	hw_link_info = &pi->phy.link_info;
-	if (hw_link_info->phy_type_low && hw_link_info->phy_type_high)
-		/* If more than one media type is selected, report unknown */
-		return ICE_MEDIA_UNKNOWN;
-
-	if (hw_link_info->phy_type_low) {
-		/* 1G SGMII is a special case where some DA cable PHYs
-		 * may show this as an option when it really shouldn't
-		 * be since SGMII is meant to be between a MAC and a PHY
-		 * in a backplane. Try to detect this case and handle it
-		 */
-		if (hw_link_info->phy_type_low == ICE_PHY_TYPE_LOW_1G_SGMII &&
-		    (hw_link_info->module_type[ICE_AQC_MOD_TYPE_IDENT] ==
-		    ICE_AQC_MOD_TYPE_BYTE1_SFP_PLUS_CU_ACTIVE ||
-		    hw_link_info->module_type[ICE_AQC_MOD_TYPE_IDENT] ==
-		    ICE_AQC_MOD_TYPE_BYTE1_SFP_PLUS_CU_PASSIVE))
-			return ICE_MEDIA_DA;
-
-		switch (hw_link_info->phy_type_low) {
-		case ICE_PHY_TYPE_LOW_1000BASE_SX:
-		case ICE_PHY_TYPE_LOW_1000BASE_LX:
-		case ICE_PHY_TYPE_LOW_10GBASE_SR:
-		case ICE_PHY_TYPE_LOW_10GBASE_LR:
-		case ICE_PHY_TYPE_LOW_25GBASE_SR:
-		case ICE_PHY_TYPE_LOW_25GBASE_LR:
-		case ICE_PHY_TYPE_LOW_40GBASE_SR4:
-		case ICE_PHY_TYPE_LOW_40GBASE_LR4:
-		case ICE_PHY_TYPE_LOW_50GBASE_SR2:
-		case ICE_PHY_TYPE_LOW_50GBASE_LR2:
-		case ICE_PHY_TYPE_LOW_50GBASE_SR:
-		case ICE_PHY_TYPE_LOW_50GBASE_FR:
-		case ICE_PHY_TYPE_LOW_50GBASE_LR:
-		case ICE_PHY_TYPE_LOW_100GBASE_SR4:
-		case ICE_PHY_TYPE_LOW_100GBASE_LR4:
-		case ICE_PHY_TYPE_LOW_100GBASE_SR2:
-		case ICE_PHY_TYPE_LOW_100GBASE_DR:
-			return ICE_MEDIA_FIBER;
-		case ICE_PHY_TYPE_LOW_10G_SFI_AOC_ACC:
-		case ICE_PHY_TYPE_LOW_25G_AUI_AOC_ACC:
-		case ICE_PHY_TYPE_LOW_40G_XLAUI_AOC_ACC:
-		case ICE_PHY_TYPE_LOW_50G_LAUI2_AOC_ACC:
-		case ICE_PHY_TYPE_LOW_50G_AUI2_AOC_ACC:
-		case ICE_PHY_TYPE_LOW_50G_AUI1_AOC_ACC:
-		case ICE_PHY_TYPE_LOW_100G_CAUI4_AOC_ACC:
-		case ICE_PHY_TYPE_LOW_100G_AUI4_AOC_ACC:
-			return ICE_MEDIA_FIBER;
-		case ICE_PHY_TYPE_LOW_100BASE_TX:
-		case ICE_PHY_TYPE_LOW_1000BASE_T:
-		case ICE_PHY_TYPE_LOW_2500BASE_T:
-		case ICE_PHY_TYPE_LOW_5GBASE_T:
-		case ICE_PHY_TYPE_LOW_10GBASE_T:
-		case ICE_PHY_TYPE_LOW_25GBASE_T:
-			return ICE_MEDIA_BASET;
-		case ICE_PHY_TYPE_LOW_10G_SFI_DA:
-		case ICE_PHY_TYPE_LOW_25GBASE_CR:
-		case ICE_PHY_TYPE_LOW_25GBASE_CR_S:
-		case ICE_PHY_TYPE_LOW_25GBASE_CR1:
-		case ICE_PHY_TYPE_LOW_40GBASE_CR4:
-		case ICE_PHY_TYPE_LOW_50GBASE_CR2:
-		case ICE_PHY_TYPE_LOW_50GBASE_CP:
-		case ICE_PHY_TYPE_LOW_100GBASE_CR4:
-		case ICE_PHY_TYPE_LOW_100GBASE_CR_PAM4:
-		case ICE_PHY_TYPE_LOW_100GBASE_CP2:
-			return ICE_MEDIA_DA;
-		case ICE_PHY_TYPE_LOW_25G_AUI_C2C:
-		case ICE_PHY_TYPE_LOW_40G_XLAUI:
-		case ICE_PHY_TYPE_LOW_50G_LAUI2:
-		case ICE_PHY_TYPE_LOW_50G_AUI2:
-		case ICE_PHY_TYPE_LOW_50G_AUI1:
-		case ICE_PHY_TYPE_LOW_100G_AUI4:
-		case ICE_PHY_TYPE_LOW_100G_CAUI4:
-			if (ice_is_media_cage_present(pi))
-				return ICE_MEDIA_AUI;
-			/* fall-through */
-		case ICE_PHY_TYPE_LOW_1000BASE_KX:
-		case ICE_PHY_TYPE_LOW_2500BASE_KX:
-		case ICE_PHY_TYPE_LOW_2500BASE_X:
-		case ICE_PHY_TYPE_LOW_5GBASE_KR:
-		case ICE_PHY_TYPE_LOW_10GBASE_KR_CR1:
-		case ICE_PHY_TYPE_LOW_10G_SFI_C2C:
-		case ICE_PHY_TYPE_LOW_25GBASE_KR:
-		case ICE_PHY_TYPE_LOW_25GBASE_KR1:
-		case ICE_PHY_TYPE_LOW_25GBASE_KR_S:
-		case ICE_PHY_TYPE_LOW_40GBASE_KR4:
-		case ICE_PHY_TYPE_LOW_50GBASE_KR_PAM4:
-		case ICE_PHY_TYPE_LOW_50GBASE_KR2:
-		case ICE_PHY_TYPE_LOW_100GBASE_KR4:
-		case ICE_PHY_TYPE_LOW_100GBASE_KR_PAM4:
-			return ICE_MEDIA_BACKPLANE;
-		}
-	} else {
-		switch (hw_link_info->phy_type_high) {
-		case ICE_PHY_TYPE_HIGH_100G_AUI2:
-		case ICE_PHY_TYPE_HIGH_100G_CAUI2:
-			if (ice_is_media_cage_present(pi))
-				return ICE_MEDIA_AUI;
-			/* fall-through */
-		case ICE_PHY_TYPE_HIGH_100GBASE_KR2_PAM4:
-			return ICE_MEDIA_BACKPLANE;
-		case ICE_PHY_TYPE_HIGH_100G_CAUI2_AOC_ACC:
-		case ICE_PHY_TYPE_HIGH_100G_AUI2_AOC_ACC:
-			return ICE_MEDIA_FIBER;
-		}
-	}
-	return ICE_MEDIA_UNKNOWN;
-}
-
 #define ice_get_link_status_datalen(hw)	ICE_GET_LINK_STATUS_DATALEN_V1
 
 /**
@@ -681,7 +616,6 @@ ice_aq_get_link_info(struct ice_port_info *pi, bool ena_lse,
 	struct ice_aqc_get_link_status_data link_data = { 0 };
 	struct ice_aqc_get_link_status *resp;
 	struct ice_link_status *li_old, *li;
-	enum ice_media_type *hw_media_type;
 	struct ice_fc_info *hw_fc_info;
 	bool tx_pause, rx_pause;
 	struct ice_aq_desc desc;
@@ -694,7 +628,6 @@ ice_aq_get_link_info(struct ice_port_info *pi, bool ena_lse,
 	hw = pi->hw;
 
 	li_old = &pi->phy.link_info_old;
-	hw_media_type = &pi->phy.media_type;
 	li = &pi->phy.link_info;
 	hw_fc_info = &pi->fc;
 
@@ -716,7 +649,6 @@ ice_aq_get_link_info(struct ice_port_info *pi, bool ena_lse,
 	li->link_speed = LE16_TO_CPU(link_data.link_speed);
 	li->phy_type_low = LE64_TO_CPU(link_data.phy_type_low);
 	li->phy_type_high = LE64_TO_CPU(link_data.phy_type_high);
-	*hw_media_type = ice_get_media_type(pi);
 	li->link_info = link_data.link_info;
 	li->link_cfg_err = link_data.link_cfg_err;
 	li->an_info = link_data.an_info;
@@ -747,7 +679,6 @@ ice_aq_get_link_info(struct ice_port_info *pi, bool ena_lse,
 		  (unsigned long long)li->phy_type_low);
 	ice_debug(hw, ICE_DBG_LINK, "	phy_type_high = 0x%llx\n",
 		  (unsigned long long)li->phy_type_high);
-	ice_debug(hw, ICE_DBG_LINK, "	media_type = 0x%x\n", *hw_media_type);
 	ice_debug(hw, ICE_DBG_LINK, "	link_info = 0x%x\n", li->link_info);
 	ice_debug(hw, ICE_DBG_LINK, "	link_cfg_err = 0x%x\n", li->link_cfg_err);
 	ice_debug(hw, ICE_DBG_LINK, "	an_info = 0x%x\n", li->an_info);
@@ -1066,7 +997,8 @@ enum ice_status ice_init_hw(struct ice_hw *hw)
 	if (status)
 		goto err_unroll_cqinit;
 
-	hw->port_info = (struct ice_port_info *)
+	if (!hw->port_info)
+		hw->port_info = (struct ice_port_info *)
 			ice_malloc(hw, sizeof(*hw->port_info));
 	if (!hw->port_info) {
 		status = ICE_ERR_NO_MEMORY;
@@ -1205,7 +1137,7 @@ void ice_deinit_hw(struct ice_hw *hw)
  */
 enum ice_status ice_check_reset(struct ice_hw *hw)
 {
-	u32 cnt, reg = 0, grst_timeout, uld_mask;
+	u32 cnt, reg = 0, grst_timeout, uld_mask, reset_wait_cnt;
 
 	/* Poll for Device Active state in case a recent CORER, GLOBR,
 	 * or EMPR has occurred. The grst delay value is in 100ms units.
@@ -1237,8 +1169,10 @@ enum ice_status ice_check_reset(struct ice_hw *hw)
 	uld_mask = ICE_RESET_DONE_MASK | (hw->func_caps.common_cap.iwarp ?
 					  GLNVM_ULD_PE_DONE_M : 0);
 
+	reset_wait_cnt = ICE_PF_RESET_WAIT_COUNT;
+
 	/* Device is Active; check Global Reset processes are done */
-	for (cnt = 0; cnt < ICE_PF_RESET_WAIT_COUNT; cnt++) {
+	for (cnt = 0; cnt < reset_wait_cnt; cnt++) {
 		reg = rd32(hw, GLNVM_ULD) & uld_mask;
 		if (reg == uld_mask) {
 			ice_debug(hw, ICE_DBG_INIT, "Global reset processes done. %d\n", cnt);
@@ -1247,7 +1181,7 @@ enum ice_status ice_check_reset(struct ice_hw *hw)
 		ice_msec_delay(10, true);
 	}
 
-	if (cnt == ICE_PF_RESET_WAIT_COUNT) {
+	if (cnt == reset_wait_cnt) {
 		ice_debug(hw, ICE_DBG_INIT, "Wait for Reset Done timed out. GLNVM_ULD = 0x%x\n",
 			  reg);
 		return ICE_ERR_RESET_FAILED;
@@ -1265,7 +1199,7 @@ enum ice_status ice_check_reset(struct ice_hw *hw)
  */
 static enum ice_status ice_pf_reset(struct ice_hw *hw)
 {
-	u32 cnt, reg;
+	u32 cnt, reg, reset_wait_cnt, cfg_lock_timeout;
 
 	/* If at function entry a global reset was already in progress, i.e.
 	 * state is not 'device active' or any of the reset done bits are not
@@ -1290,8 +1224,10 @@ static enum ice_status ice_pf_reset(struct ice_hw *hw)
 	 * timeout plus the PFR timeout which will account for a possible reset
 	 * that is occurring during a download package operation.
 	 */
-	for (cnt = 0; cnt < ICE_GLOBAL_CFG_LOCK_TIMEOUT +
-	     ICE_PF_RESET_WAIT_COUNT; cnt++) {
+	reset_wait_cnt = ICE_PF_RESET_WAIT_COUNT;
+	cfg_lock_timeout = ICE_GLOBAL_CFG_LOCK_TIMEOUT;
+
+	for (cnt = 0; cnt < cfg_lock_timeout + reset_wait_cnt; cnt++) {
 		reg = rd32(hw, PFGEN_CTRL);
 		if (!(reg & PFGEN_CTRL_PFSWR_M))
 			break;
@@ -1299,7 +1235,7 @@ static enum ice_status ice_pf_reset(struct ice_hw *hw)
 		ice_msec_delay(1, true);
 	}
 
-	if (cnt == ICE_PF_RESET_WAIT_COUNT) {
+	if (cnt == cfg_lock_timeout + reset_wait_cnt) {
 		ice_debug(hw, ICE_DBG_INIT, "PF reset polling failed to complete.\n");
 		return ICE_ERR_RESET_FAILED;
 	}
@@ -2452,6 +2388,11 @@ ice_parse_common_caps(struct ice_hw *hw, struct ice_hw_common_caps *caps,
 			true : false;
 		ice_debug(hw, ICE_DBG_INIT, "%s: nvm_unified_update = %d\n", prefix,
 			  caps->nvm_unified_update);
+		caps->netlist_auth =
+			(number & ICE_NVM_MGMT_NETLIST_AUTH_SUPPORT) ?
+			true : false;
+		ice_debug(hw, ICE_DBG_INIT, "%s: netlist_auth = %d\n", prefix,
+			  caps->netlist_auth);
 		break;
 	case ICE_AQC_CAPS_CEM:
 		caps->mgmt_cem = (number == 1);
@@ -2534,6 +2475,8 @@ ice_parse_common_caps(struct ice_hw *hw, struct ice_hw_common_caps *caps,
 			(phys_id & ICE_EXT_TOPO_DEV_IMG_LOAD_EN) != 0;
 		caps->ext_topo_dev_img_prog_en[index] =
 			(phys_id & ICE_EXT_TOPO_DEV_IMG_PROG_EN) != 0;
+		caps->ext_topo_dev_img_ver_schema[index] =
+			(phys_id & ICE_EXT_TOPO_DEV_IMG_VER_SCHEMA) != 0;
 		ice_debug(hw, ICE_DBG_INIT,
 			  "%s: ext_topo_dev_img_ver_high[%d] = %d\n",
 			  prefix, index,
@@ -2554,6 +2497,10 @@ ice_parse_common_caps(struct ice_hw *hw, struct ice_hw_common_caps *caps,
 			  "%s: ext_topo_dev_img_prog_en[%d] = %d\n",
 			  prefix, index,
 			  caps->ext_topo_dev_img_prog_en[index]);
+		ice_debug(hw, ICE_DBG_INIT,
+			  "%s: ext_topo_dev_img_ver_schema[%d] = %d\n",
+			  prefix, index,
+			  caps->ext_topo_dev_img_ver_schema[index]);
 		break;
 	}
 	case ICE_AQC_CAPS_TX_SCHED_TOPO_COMP_MODE:
@@ -2564,6 +2511,11 @@ ice_parse_common_caps(struct ice_hw *hw, struct ice_hw_common_caps *caps,
 		ice_debug(hw, ICE_DBG_INIT, "%s: dyn_flattening_en = %d\n",
 			  prefix, caps->dyn_flattening_en);
 		break;
+	case ICE_AQC_CAPS_OROM_RECOVERY_UPDATE:
+		caps->orom_recovery_update = (number == 1);
+		ice_debug(hw, ICE_DBG_INIT, "%s: orom_recovery_update = %d\n",
+			  prefix, caps->orom_recovery_update);
+		break;
 	default:
 		/* Not one of the recognized common capabilities */
 		found = false;
@@ -2782,6 +2734,26 @@ ice_parse_nac_topo_dev_caps(struct ice_hw *hw, struct ice_hw_dev_caps *dev_p,
 		  dev_p->nac_topo.id);
 }
 
+/**
+ * ice_parse_sensor_reading_cap - Parse ICE_AQC_CAPS_SENSOR_READING cap
+ * @hw: pointer to the HW struct
+ * @dev_p: pointer to device capabilities structure
+ * @cap: capability element to parse
+ *
+ * Parse ICE_AQC_CAPS_SENSOR_READING for device capability for reading
+ * enabled sensors.
+ */
+static void
+ice_parse_sensor_reading_cap(struct ice_hw *hw, struct ice_hw_dev_caps *dev_p,
+			     struct ice_aqc_list_caps_elem *cap)
+{
+	dev_p->supported_sensors = LE32_TO_CPU(cap->number);
+
+	ice_debug(hw, ICE_DBG_INIT,
+		  "dev caps: supported sensors (bitmap) = 0x%x\n",
+		  dev_p->supported_sensors);
+}
+
 /**
  * ice_parse_dev_caps - Parse device capabilities
  * @hw: pointer to the HW struct
@@ -2827,6 +2799,9 @@ ice_parse_dev_caps(struct ice_hw *hw, struct ice_hw_dev_caps *dev_p,
 		case ICE_AQC_CAPS_NAC_TOPOLOGY:
 			ice_parse_nac_topo_dev_caps(hw, dev_p, &cap_resp[i]);
 			break;
+		case ICE_AQC_CAPS_SENSOR_READING:
+			ice_parse_sensor_reading_cap(hw, dev_p, &cap_resp[i]);
+			break;
 		default:
 			/* Don't list common capabilities as unknown */
 			if (!found)
@@ -3776,8 +3751,10 @@ ice_cfg_phy_fec(struct ice_port_info *pi, struct ice_aqc_set_phy_cfg_data *cfg,
 		break;
 	case ICE_FEC_DIS_AUTO:
 		/* Set No FEC and auto FEC */
-		if (!ice_fw_supports_fec_dis_auto(hw))
-			return ICE_ERR_NOT_SUPPORTED;
+		if (!ice_fw_supports_fec_dis_auto(hw)) {
+			status = ICE_ERR_NOT_SUPPORTED;
+			goto out;
+		}
 		cfg->link_fec_opt |= ICE_AQC_PHY_FEC_DIS;
 		/* fall-through */
 	case ICE_FEC_AUTO:
@@ -3852,6 +3829,7 @@ enum ice_status
 ice_aq_set_link_restart_an(struct ice_port_info *pi, bool ena_link,
 			   struct ice_sq_cd *cd)
 {
+	enum ice_status status = ICE_ERR_AQ_ERROR;
 	struct ice_aqc_restart_an *cmd;
 	struct ice_aq_desc desc;
 
@@ -3866,7 +3844,16 @@ ice_aq_set_link_restart_an(struct ice_port_info *pi, bool ena_link,
 	else
 		cmd->cmd_flags &= ~ICE_AQC_RESTART_AN_LINK_ENABLE;
 
-	return ice_aq_send_cmd(pi->hw, &desc, NULL, 0, cd);
+	status = ice_aq_send_cmd(pi->hw, &desc, NULL, 0, cd);
+	if (status)
+		return status;
+
+	if (ena_link)
+		pi->phy.curr_user_phy_cfg.caps |= ICE_AQC_PHY_EN_LINK;
+	else
+		pi->phy.curr_user_phy_cfg.caps &= ~ICE_AQC_PHY_EN_LINK;
+
+	return ICE_SUCCESS;
 }
 
 /**
@@ -4062,6 +4049,51 @@ ice_aq_read_topo_dev_nvm(struct ice_hw *hw,
 	return ICE_SUCCESS;
 }
 
+static u16 ice_lut_type_to_size(u16 lut_type)
+{
+	switch (lut_type) {
+	case ICE_LUT_VSI:
+		return ICE_LUT_VSI_SIZE;
+	case ICE_LUT_GLOBAL:
+		return ICE_LUT_GLOBAL_SIZE;
+	case ICE_LUT_PF:
+		return ICE_LUT_PF_SIZE;
+	default:
+		return 0;
+	}
+}
+
+static u16 ice_lut_size_to_flag(u16 lut_size)
+{
+	u16 f = 0;
+
+	switch (lut_size) {
+	case ICE_LUT_GLOBAL_SIZE:
+		f = ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_512_FLAG;
+		break;
+	case ICE_LUT_PF_SIZE:
+		f = ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_2K_FLAG;
+		break;
+	default:
+		break;
+	}
+	return f << ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_S;
+}
+
+int ice_lut_size_to_type(int lut_size)
+{
+	switch (lut_size) {
+	case ICE_LUT_VSI_SIZE:
+		return ICE_LUT_VSI;
+	case ICE_LUT_GLOBAL_SIZE:
+		return ICE_LUT_GLOBAL;
+	case ICE_LUT_PF_SIZE:
+		return ICE_LUT_PF;
+	default:
+		return -1;
+	}
+}
+
 /**
  * __ice_aq_get_set_rss_lut
  * @hw: pointer to the hardware structure
@@ -4073,7 +4105,7 @@ ice_aq_read_topo_dev_nvm(struct ice_hw *hw,
 static enum ice_status
 __ice_aq_get_set_rss_lut(struct ice_hw *hw, struct ice_aq_get_set_rss_lut_params *params, bool set)
 {
-	u16 flags = 0, vsi_id, lut_type, lut_size, glob_lut_idx, vsi_handle;
+	u16 flags, vsi_id, lut_type, lut_size, glob_lut_idx = 0, vsi_handle;
 	struct ice_aqc_get_set_rss_lut *cmd_resp;
 	struct ice_aq_desc desc;
 	enum ice_status status;
@@ -4084,16 +4116,22 @@ __ice_aq_get_set_rss_lut(struct ice_hw *hw, struct ice_aq_get_set_rss_lut_params
 
 	vsi_handle = params->vsi_handle;
 	lut = params->lut;
+	lut_type = params->lut_type;
+	lut_size = ice_lut_type_to_size(lut_type);
+	cmd_resp = &desc.params.get_set_rss_lut;
+	if (lut_type == ICE_LUT_GLOBAL)
+		glob_lut_idx = params->global_lut_id;
 
-	if (!ice_is_vsi_valid(hw, vsi_handle) || !lut)
+	if (!lut || !lut_size || !ice_is_vsi_valid(hw, vsi_handle))
 		return ICE_ERR_PARAM;
 
-	lut_size = params->lut_size;
-	lut_type = params->lut_type;
-	glob_lut_idx = params->global_lut_id;
-	vsi_id = ice_get_hw_vsi_num(hw, vsi_handle);
+	if (lut_size > params->lut_size)
+		return ICE_ERR_INVAL_SIZE;
 
-	cmd_resp = &desc.params.get_set_rss_lut;
+	if (set && lut_size != params->lut_size)
+		return ICE_ERR_PARAM;
+
+	vsi_id = ice_get_hw_vsi_num(hw, vsi_handle);
 
 	if (set) {
 		ice_fill_dflt_direct_cmd_desc(&desc, ice_aqc_opc_set_rss_lut);
@@ -4107,61 +4145,15 @@ __ice_aq_get_set_rss_lut(struct ice_hw *hw, struct ice_aq_get_set_rss_lut_params
 					ICE_AQC_GSET_RSS_LUT_VSI_ID_M) |
 				       ICE_AQC_GSET_RSS_LUT_VSI_VALID);
 
-	switch (lut_type) {
-	case ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_VSI:
-	case ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_PF:
-	case ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_GLOBAL:
-		flags |= ((lut_type << ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_S) &
-			  ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_M);
-		break;
-	default:
-		status = ICE_ERR_PARAM;
-		goto ice_aq_get_set_rss_lut_exit;
-	}
-
-	if (lut_type == ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_GLOBAL) {
-		flags |= ((glob_lut_idx << ICE_AQC_GSET_RSS_LUT_GLOBAL_IDX_S) &
-			  ICE_AQC_GSET_RSS_LUT_GLOBAL_IDX_M);
+	flags = ice_lut_size_to_flag(lut_size) |
+		 ((lut_type << ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_S) &
+		  ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_M) |
+		 ((glob_lut_idx << ICE_AQC_GSET_RSS_LUT_GLOBAL_IDX_S) &
+		  ICE_AQC_GSET_RSS_LUT_GLOBAL_IDX_M);
 
-		if (!set)
-			goto ice_aq_get_set_rss_lut_send;
-	} else if (lut_type == ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_PF) {
-		if (!set)
-			goto ice_aq_get_set_rss_lut_send;
-	} else {
-		goto ice_aq_get_set_rss_lut_send;
-	}
-
-	/* LUT size is only valid for Global and PF table types */
-	switch (lut_size) {
-	case ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_128:
-		flags |= (ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_128_FLAG <<
-			  ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_S) &
-			 ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_M;
-		break;
-	case ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_512:
-		flags |= (ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_512_FLAG <<
-			  ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_S) &
-			 ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_M;
-		break;
-	case ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_2K:
-		if (lut_type == ICE_AQC_GSET_RSS_LUT_TABLE_TYPE_PF) {
-			flags |= (ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_2K_FLAG <<
-				  ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_S) &
-				 ICE_AQC_GSET_RSS_LUT_TABLE_SIZE_M;
-			break;
-		}
-		/* fall-through */
-	default:
-		status = ICE_ERR_PARAM;
-		goto ice_aq_get_set_rss_lut_exit;
-	}
-
-ice_aq_get_set_rss_lut_send:
 	cmd_resp->flags = CPU_TO_LE16(flags);
 	status = ice_aq_send_cmd(hw, &desc, lut, lut_size, NULL);
-
-ice_aq_get_set_rss_lut_exit:
+	params->lut_size = LE16_TO_CPU(desc.datalen);
 	return status;
 }
 
@@ -5155,7 +5147,7 @@ ice_ena_vsi_txq(struct ice_port_info *pi, u16 vsi_handle, u8 tc, u16 q_handle,
 	q_ctx->q_teid = LE32_TO_CPU(node.node_teid);
 
 	/* add a leaf node into scheduler tree queue layer */
-	status = ice_sched_add_node(pi, hw->num_tx_sched_layers - 1, &node);
+	status = ice_sched_add_node(pi, hw->num_tx_sched_layers - 1, &node, NULL);
 	if (!status)
 		status = ice_sched_replay_q_bw(pi, q_ctx);
 
@@ -5390,7 +5382,7 @@ ice_ena_vsi_rdma_qset(struct ice_port_info *pi, u16 vsi_handle, u8 tc,
 	for (i = 0; i < num_qsets; i++) {
 		node.node_teid = buf->rdma_qsets[i].qset_teid;
 		status = ice_sched_add_node(pi, hw->num_tx_sched_layers - 1,
-					    &node);
+					    &node, NULL);
*** 3424 LINES SKIPPED ***

From nobody Thu Sep 14 07:22:02 2023
X-Original-To: dev-commits-src-main@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 4RmTKR0y3Mz4tgG7;
	Thu, 14 Sep 2023 07:22:03 +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 4RmTKR0WB0z3WSP;
	Thu, 14 Sep 2023 07:22:03 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694676123;
	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=MutLbhSx+YhUj5O3k16mp82jAmY4XKIqLqd96pRdNGQ=;
	b=gknXaB4P5MnIL06XUnQ4tiY1QuA8enh7Q3m6neaJXWknoT3uc+Fe/Jyxqk4i/obWki0Y9I
	P4TKJRL/hj1MfFnMv61gUOwFFGhltK3KgsmE6omNYTLmHzKPcAcAVT9ogITYeERCOv09T0
	p25joEAmtwEdrgx0gbIcUaTWDKbGlD3hFr935QxAjSu6zVd/IAOZRUvlFPeeKFrul/J7m1
	SX9cwjKldrQrGgDw6+0wblYRn0DNKvU5Cq4CmX4ESu2pYbuzjodO2NFOViU3ClnaBZQ6Vd
	7ohJox/zIBYDyLW1KWh6+SXwxwvKQx03oK1iE4fFwl+xe3N6U9M/g5jcwTMHww==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694676123; a=rsa-sha256; cv=none;
	b=IrByh7m1n244EIdm0QlKYb3Lo9pBV/vP1Yz1e0CWVUaxZUAcL80M6Bps7SGT+sWn3L3Guw
	GKg+23FsC72Q2vRkv+StdQnNl+OBhXyvfmOvyEbVmflFBMQKerxpMWZJiG0szdmqxwlaN6
	w+S3D9Xb/ff+RfxCRZXajb+MhXLRZnVYI1MDGRlK+4m6EqHpYvpPJMXRdDGps81NY+Tfdz
	vIGTmahg4vABb/4gk8ZV8GXKPP8E/4tFgEft42wW+Z9BueDhT2m9Wji28DGqaL/3ZRnvQL
	Izxr31PIVLYfzUr+7CMmWU35wndjLbZlQtkeNGOUT4qUgYMLOTrq410nZDJR/Q==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694676123;
	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=MutLbhSx+YhUj5O3k16mp82jAmY4XKIqLqd96pRdNGQ=;
	b=PyCuKeOgwXCA9YMXnhfll3Dl4lqSQmj8ud5FnHjgAV2KhZnsOBJJibTnFJLUJsF0IORdEL
	CxNSio5ujn9Z1PFQnqrakx7lhMhh3k7/8OvniPKNl02fMiE3iDmL1lQe0vSmgYksr7LTCL
	5IYIc2LZFrVj9e7DY7SSK+FB+MOaqMFoanbCP/MbFwBdOZ8lHJSWB2XYr0kPKxg/+AzF7i
	+Gh3x0KhZnd6Jc0JrRpRl1aEcR0s0zIdaGTOJ+3yx+8HSWvCO0mD8W80AkXGezrnS/W+3e
	atBbZnRyYs0Igpom70kp7f+s/dnr0l3Z3pZdzKHOohjOWCGHz95cXssDSMx+JA==
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 4RmTKQ6N6Jznjt;
	Thu, 14 Sep 2023 07:22:02 +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 38E7M2Mq023528;
	Thu, 14 Sep 2023 07:22:02 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38E7M2tN023525;
	Thu, 14 Sep 2023 07:22:02 GMT
	(envelope-from git)
Date: Thu, 14 Sep 2023 07:22:02 GMT
Message-Id: <202309140722.38E7M2tN023525@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Wei Hu <whu@FreeBSD.org>
Subject: git: e7a9817b8d32 - main - Hyper-V: vmbus: implementat
  bus_get_dma_tag in vmbus
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: whu
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: e7a9817b8d328dda04069b65944ce2ed6f54c6f0
Auto-Submitted: auto-generated

The branch main has been updated by whu:

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

commit e7a9817b8d328dda04069b65944ce2ed6f54c6f0
Author:     Souradeep Chakrabarti <schakrabarti@microsoft.com>
AuthorDate: 2023-09-14 07:11:25 +0000
Commit:     Wei Hu <whu@FreeBSD.org>
CommitDate: 2023-09-14 07:11:25 +0000

    Hyper-V: vmbus: implementat bus_get_dma_tag in vmbus
    
    In ARM64 Hyper-V UFS filesystem is getting corruption and those
    corruptions are consistently happening just after hitting a page
    boundary. It is unable to correctly read disk blocks into buffers
    that are not aligned to 512-byte boundaries.
    
    It happens because storvsc needs physically contiguous memory which
    may not be the case when bus_dma needs to create a bounce buffer.
    This can happen when the destination is not cache-line aligned.
    
    Hyper-V VMs have VMbus synthetic devices and PCI pass-thru devices
    that are added dynamically via the VMbus protocol and are not
    represented in the ACPI DSDT. Only the top level VMbus node exists
    in the DSDT. As such, on ARM64 these devices don't pick up coherence
    information and default to not hardware coherent.
    
    PR:             267654, 272666
    Reviewed by:    andrew, whu
    Tested by:      lwhsu
    MFC after:      3 days
    Sponsored by:   Microsoft
    Differential Revision:  https://reviews.freebsd.org/D41728
---
 sys/dev/hyperv/vmbus/vmbus.c     | 33 +++++++++++++++++++++++++++++++++
 sys/dev/hyperv/vmbus/vmbus_var.h |  1 +
 2 files changed, 34 insertions(+)

diff --git a/sys/dev/hyperv/vmbus/vmbus.c b/sys/dev/hyperv/vmbus/vmbus.c
index e0f7bbc99ca7..ee412e643b4f 100644
--- a/sys/dev/hyperv/vmbus/vmbus.c
+++ b/sys/dev/hyperv/vmbus/vmbus.c
@@ -137,6 +137,7 @@ static void			vmbus_intr_teardown(struct vmbus_softc *);
 static int			vmbus_doattach(struct vmbus_softc *);
 static void			vmbus_event_proc_dummy(struct vmbus_softc *,
 				    int);
+static bus_dma_tag_t	vmbus_get_dma_tag(device_t parent, device_t child);
 static struct vmbus_softc	*vmbus_sc;
 
 SYSCTL_NODE(_hw, OID_AUTO, vmbus, CTLFLAG_RD | CTLFLAG_MPSAFE, NULL,
@@ -183,6 +184,7 @@ static device_method_t vmbus_methods[] = {
 	DEVMETHOD(bus_setup_intr,		bus_generic_setup_intr),
 	DEVMETHOD(bus_teardown_intr,		bus_generic_teardown_intr),
 	DEVMETHOD(bus_get_cpus,			bus_generic_get_cpus),
+	DEVMETHOD(bus_get_dma_tag,		vmbus_get_dma_tag),
 
 	/* pcib interface */
 	DEVMETHOD(pcib_alloc_msi,		vmbus_alloc_msi),
@@ -219,6 +221,13 @@ vmbus_get_softc(void)
 	return vmbus_sc;
 }
 
+static bus_dma_tag_t
+vmbus_get_dma_tag(device_t dev, device_t child)
+{
+	struct vmbus_softc *sc = vmbus_get_softc();
+	return (sc->dmat);
+}
+
 void
 vmbus_msghc_reset(struct vmbus_msghc *mh, size_t dsize)
 {
@@ -1382,6 +1391,9 @@ vmbus_doattach(struct vmbus_softc *sc)
 	struct sysctl_oid_list *child;
 	struct sysctl_ctx_list *ctx;
 	int ret;
+	device_t dev_res;
+	ACPI_HANDLE handle;
+	unsigned int coherent;
 
 	if (sc->vmbus_flags & VMBUS_FLAG_ATTACHED)
 		return (0);
@@ -1402,6 +1414,27 @@ vmbus_doattach(struct vmbus_softc *sc)
 	    sizeof(struct vmbus_channel *) * VMBUS_CHAN_MAX, M_DEVBUF,
 	    M_WAITOK | M_ZERO);
 
+	/* Coherency attribute */
+	dev_res =  devclass_get_device(devclass_find("vmbus_res"), 0);
+	handle = acpi_get_handle(dev_res);
+
+	if (ACPI_FAILURE(acpi_GetInteger(handle, "_CCA", &coherent)))
+		coherent = 0;
+	if (bootverbose)
+		device_printf(sc->vmbus_dev, "Bus is%s cache-coherent\n",
+			coherent ? "" : " not");
+
+	bus_dma_tag_create(bus_get_dma_tag(sc->vmbus_dev),
+		1, 0,
+		BUS_SPACE_MAXADDR,
+		BUS_SPACE_MAXADDR,
+		NULL, NULL,
+		BUS_SPACE_MAXSIZE,
+		BUS_SPACE_UNRESTRICTED,
+		BUS_SPACE_MAXSIZE,
+		coherent ? BUS_DMA_COHERENT : 0,
+		NULL, NULL,
+		&sc->dmat);
 	/*
 	 * Create context for "post message" Hypercalls
 	 */
diff --git a/sys/dev/hyperv/vmbus/vmbus_var.h b/sys/dev/hyperv/vmbus/vmbus_var.h
index f6fc875deb32..023d27c52cea 100644
--- a/sys/dev/hyperv/vmbus/vmbus_var.h
+++ b/sys/dev/hyperv/vmbus/vmbus_var.h
@@ -129,6 +129,7 @@ struct vmbus_softc {
 	void *icookie;
 	int vector;
 #endif
+	bus_dma_tag_t   dmat;
 };
 
 #define VMBUS_FLAG_ATTACHED	0x0001	/* vmbus was attached */

From nobody Thu Sep 14 08:03:29 2023
X-Original-To: dev-commits-src-main@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 4RmVFF4FnZz4sgDZ;
	Thu, 14 Sep 2023 08:03:29 +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 4RmVFF3nppz4D2Z;
	Thu, 14 Sep 2023 08:03:29 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694678609;
	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=eS9IHlboXwT3gXsHP82OJEbyCUhwnm4jFyVapnc5fMU=;
	b=tNFw1MzJxfkKNyGxc+JN8fcBdN6HBQcqGgjIo2fupFSAwdqwrshFBDngPZbMQq+dbs5Qxu
	oDJ2YUx4b319rg7WQ1SOzsHnvYKiCSJ17CeGv+iIwkclvAX3+t9GBZk5h7hu0ONAJTakm9
	D9nf32q5uaa1hS6V9AqFL1Xopfbhb+PqnbJgYguCos+U92XUYPynytfXyu55jY3GDB8Oyd
	G7Wb26wjTVRwzaVngWwxMKY09vmHfWQFKjdtV2E6PxtliLheh8fvAaUoXQ3TLLarkn+Qpg
	FSen46PgawkRDBYWb5Gy5RgiSxClFTORTswTpTgcUo3BP396FZO3T0VyCq/y7Q==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694678609; a=rsa-sha256; cv=none;
	b=Xya3j1VhBhu5iMf1xMUdwwbImt1We4OnUrjWpYg8dqR0EzogioegaZQWeGF5qnJo13zlEh
	VNlYU1QT427VM69O+1V9ORrOZpW7YCsFyqN4ZrG+BnL3J1g3zbiJg7HvNm76aY9lp13ttw
	VjhmWyFrDaPYGczGdgZUvZFJ88JQG6crDAWnbjWkKTnce3V+WOP+Qxx2O82HAkqfhglhTh
	E2WRh/tYtGKiSXFyNrb3hPn8W6dbaIH+39+xLAqL1jqHdzVlsOO2N+svlrnA3XhzQGh5Be
	8ULeXhIMClTNSZ7TY/xda1KCvnRXJOLrX4AGiItsa2Rn6ZCArAzqNBvGVvNDnw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694678609;
	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=eS9IHlboXwT3gXsHP82OJEbyCUhwnm4jFyVapnc5fMU=;
	b=H5nFUKW+lfs71QKbylyQQ6fYu021oxxNDEpxn0j4Q/a3TiF8zV89J/KU2XeCzvdjZoGeRh
	kWVLXaYgSDkrHVObJL+z/R7sJaQV1vLaGPooc3u6Q2nY3Ec6AysBiwjE/a6d1hKLG/0XkF
	/AgkN0yQZI5TmCAEsjzybx5W4xVWuu/QBggxeez2yaVqjyTRlI/Cjp3HzOA1QkcsZk1XtD
	MJJh5G3AqJNDgG5BczWTfEllL+XAm4JOQUKKhECGE1NHKCrcStS4QIF5uPRtAVR6Vw50N/
	cZqI30JqRwcrVJQM5D7guCqGtZF6Zf02E74G/xD2sab37PVO25pfYE5cC0lCzg==
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 4RmVFF2rHCzpJ1;
	Thu, 14 Sep 2023 08:03:29 +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 38E83TIb092893;
	Thu, 14 Sep 2023 08:03:29 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38E83Tlq092890;
	Thu, 14 Sep 2023 08:03:29 GMT
	(envelope-from git)
Date: Thu, 14 Sep 2023 08:03:29 GMT
Message-Id: <202309140803.38E83Tlq092890@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Wolfram Schneider <wosch@FreeBSD.org>
Subject: git: 6d221ee35544 - main - correct FreeBSD release PR:
  273690
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: wosch
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 6d221ee355446a5628c23fbf6c88169602d9f1a1
Auto-Submitted: auto-generated

The branch main has been updated by wosch:

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

commit 6d221ee355446a5628c23fbf6c88169602d9f1a1
Author:     Wolfram Schneider <wosch@FreeBSD.org>
AuthorDate: 2023-09-14 08:03:05 +0000
Commit:     Wolfram Schneider <wosch@FreeBSD.org>
CommitDate: 2023-09-14 08:03:05 +0000

    correct FreeBSD release
    PR: 273690
---
 share/man/man4/mlx4en.4 | 2 +-
 share/man/man4/mlx4ib.4 | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/share/man/man4/mlx4en.4 b/share/man/man4/mlx4en.4
index ae805426fb00..69d2904508b8 100644
--- a/share/man/man4/mlx4en.4
+++ b/share/man/man4/mlx4en.4
@@ -84,7 +84,7 @@ please email the specific information to
 The
 .Nm
 device driver first appeared in
-.Fx 9.x .
+.Fx 9.0 .
 .Sh AUTHORS
 .An -nosplit
 The
diff --git a/share/man/man4/mlx4ib.4 b/share/man/man4/mlx4ib.4
index 8e3d1c03d89b..536b8cab5280 100644
--- a/share/man/man4/mlx4ib.4
+++ b/share/man/man4/mlx4ib.4
@@ -84,7 +84,7 @@ please email the specific information to
 The
 .Nm
 device driver first appeared in
-.Fx 9.x .
+.Fx 9.0 .
 .Sh AUTHORS
 .An -nosplit
 The

From nobody Thu Sep 14 08:40:37 2023
X-Original-To: dev-commits-src-main@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 4RmW4547X0z4sswn;
	Thu, 14 Sep 2023 08:40:37 +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 4RmW453j48z4MHj;
	Thu, 14 Sep 2023 08:40:37 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694680837;
	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=F/OmM5QsPHqt0ySDL0uL/6o7lA+HBJwJ/cMFIW8qhLQ=;
	b=s/ur37FYP2Lrj9vt2gzYR5wENc/4xYN8zUdiRExHdHAMX9QDFjCJhlemBtbxQsTaNTfn0+
	SiCGEhf5/xCOGOfa0za1lE7lYyeLNM/Ss7C+WwD8/0a0cEi918HqOTURRoX3U/i0b9bff2
	+Cm303ca3kF4lH/WldLVECIyRxCiXerKdGwKdWNl+xhWrmbB2nLLFg7f7AmhgPRb2bgYKU
	SEGgI8Zi0Xi/bSA0R/6PWGJulTLN/lDc+XXUuBh4u81OBDSIZpkPf7vI9vCqZ2pMsaCXbf
	sb3+Z43s7o6zU1B2wFZxRvJvf0KFUNK/CBtAZXVYP9w3fzMgqBVBPNPzuus1gQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694680837; a=rsa-sha256; cv=none;
	b=O5W6wncbQAmA2NTQyfG84XwCVq8Syh8XX/MYHLOps9g95od0rZLK5tTADNSZY1bZsU57OH
	15B+qjFJQZu/rxs/hwHReOPR+vJ+t3vOs9CBEXPriKDDgi69McLE+cviHGFiIr9mjkwVoF
	GRitJ3qE47vMKzn/v9n2Lif5Lv7LSZlbGxtCapl8TtH6ApbbWQJO++m2dUHJXTYg5Pu5JJ
	cuzZu0bvDQOIq5thch6b0RCJz7kxke2Mhk4dVn3egV7OP0T5N/s6Ui2QwlQn0ulU4228Gx
	yVuJW4HQs8QRjSVzyQXgm0kvvUpmTqOAUWbXsdIwC+chbf/wM1Hn2Nyn1dRp3w==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694680837;
	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=F/OmM5QsPHqt0ySDL0uL/6o7lA+HBJwJ/cMFIW8qhLQ=;
	b=ejsCYpdN/cxwPaw28qd468kDHt0N33nhGursH7+Q41d39WSTTxjtFkZhWFuZ7/oBK3WxXG
	uBCok+fyK3EFxN2WoSMFGjW4bBsuD+5gbPL3LUuEL1Jc09QAc303XSi0TRSbyFVDXxTmw+
	2/MTDs0zLUR6e3WHHOK0MsuQ6Qi6isVIuVuggXUNNOLI31nCSDwXeNRG8sgk5aOYNGAcWI
	IOFvMWfixEVTX9DzuvjQ/f/auURUgn4VOEBhROQXDowM1tHNuxmPygGWWbsKqXpHCgqGNA
	DEELA7gGUgwBUMZZfcf226dz0GmDfx28PmbezmN6qvtVTsaATGeUzJ4+rBfujg==
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 4RmW452pPKzqRg;
	Thu, 14 Sep 2023 08:40:37 +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 38E8ebuQ052750;
	Thu, 14 Sep 2023 08:40:37 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38E8ebUD052747;
	Thu, 14 Sep 2023 08:40:37 GMT
	(envelope-from git)
Date: Thu, 14 Sep 2023 08:40:37 GMT
Message-Id: <202309140840.38E8ebUD052747@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: "Andrey V. Elsukov" <ae@FreeBSD.org>
Subject: git: 0bf5377b6b96 - main - Avoid IPv6 source address
  selection on accepting TCP connections
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: ae
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 0bf5377b6b9642acc85355062b921a07604b7c04
Auto-Submitted: auto-generated

The branch main has been updated by ae:

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

commit 0bf5377b6b9642acc85355062b921a07604b7c04
Author:     Andrey V. Elsukov <ae@FreeBSD.org>
AuthorDate: 2023-09-14 08:39:06 +0000
Commit:     Andrey V. Elsukov <ae@FreeBSD.org>
CommitDate: 2023-09-14 08:39:06 +0000

    Avoid IPv6 source address selection on accepting TCP connections
    
    When an application listens IPv6 TCP socket, due to ipfw
    forwarding tag it may handle connections for addresses that do not
    belongs to the jail or even current host (transparent proxy).
    Syncache code can successfully handle TCP handshake for such connections.
    When syncache finally accepts connection it uses in6_pcbconnect() to
    properly initlize new connection info.
    
    For IPv4 this scenario just works, but for IPv6 it fails when
    local address doesn't belongs to the jail. This check occurs when
    in6_pcbladdr() applies IPv6 SAS algorithm.
    We need IPv6 SAS when we are connection initiator, but in the above
    case connection is already established and both source and destination
    addresses are known.
    
    Use unused argument to notify in6_pcbconnect() when we don't need
    source address selection. This will fix `ipfw fwd` to jailed IPv6
    address.
    
    When we are connection initiator, we stil use IPv6 SAS algorithm and
    apply all related restrictions.
    
    MFC after:              1 month
    Sponsored by:           Yandex LLC
    Differential Revision:  https://reviews.freebsd.org/D41685
---
 sys/netinet6/in6_pcb.c | 29 +++++++++++++++++++++--------
 1 file changed, 21 insertions(+), 8 deletions(-)

diff --git a/sys/netinet6/in6_pcb.c b/sys/netinet6/in6_pcb.c
index bf81de78f992..5c4ef7570ddc 100644
--- a/sys/netinet6/in6_pcb.c
+++ b/sys/netinet6/in6_pcb.c
@@ -335,7 +335,7 @@ in6_pcbbind(struct inpcb *inp, struct sockaddr_in6 *sin6, struct ucred *cred)
  */
 static int
 in6_pcbladdr(struct inpcb *inp, struct sockaddr_in6 *sin6,
-    struct in6_addr *plocal_addr6)
+    struct in6_addr *plocal_addr6, bool sas_required)
 {
 	int error = 0;
 	int scope_ambiguous = 0;
@@ -364,13 +364,25 @@ in6_pcbladdr(struct inpcb *inp, struct sockaddr_in6 *sin6,
 	if ((error = prison_remote_ip6(inp->inp_cred, &sin6->sin6_addr)) != 0)
 		return (error);
 
-	error = in6_selectsrc_socket(sin6, inp->in6p_outputopts,
-	    inp, inp->inp_cred, scope_ambiguous, &in6a, NULL);
-	if (error)
-		return (error);
+	if (sas_required) {
+		error = in6_selectsrc_socket(sin6, inp->in6p_outputopts,
+		    inp, inp->inp_cred, scope_ambiguous, &in6a, NULL);
+		if (error)
+			return (error);
+	} else {
+		/*
+		 * Source address selection isn't required when syncache
+		 * has already established connection and both source and
+		 * destination addresses was chosen.
+		 *
+		 * This also includes the case when fwd_tag was used to
+		 * select source address in tcp_input().
+		 */
+		in6a = inp->in6p_laddr;
+	}
+
 	if (IN6_IS_ADDR_UNSPECIFIED(&in6a))
 		return (EHOSTUNREACH);
-
 	/*
 	 * Do not update this earlier, in case we return with an error.
 	 *
@@ -398,7 +410,7 @@ in6_pcbladdr(struct inpcb *inp, struct sockaddr_in6 *sin6,
  */
 int
 in6_pcbconnect(struct inpcb *inp, struct sockaddr_in6 *sin6, struct ucred *cred,
-    bool rehash __unused)
+    bool sas_required)
 {
 	struct inpcbinfo *pcbinfo = inp->inp_pcbinfo;
 	struct sockaddr_in6 laddr6;
@@ -432,7 +444,8 @@ in6_pcbconnect(struct inpcb *inp, struct sockaddr_in6 *sin6, struct ucred *cred,
 	 * Call inner routine, to assign local interface address.
 	 * in6_pcbladdr() may automatically fill in sin6_scope_id.
 	 */
-	if ((error = in6_pcbladdr(inp, sin6, &laddr6.sin6_addr)) != 0)
+	if ((error = in6_pcbladdr(inp, sin6, &laddr6.sin6_addr,
+	    sas_required)) != 0)
 		return (error);
 
 	if (in6_pcblookup_hash_locked(pcbinfo, &sin6->sin6_addr,

From nobody Thu Sep 14 08:41:58 2023
X-Original-To: dev-commits-src-main@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 4RmW5g1hg1z4stp7;
	Thu, 14 Sep 2023 08:41: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 4RmW5g0JVrz4Mwr;
	Thu, 14 Sep 2023 08:41:59 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694680919;
	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=lWqUSJK/5rLsaoEXBKOFGq4GVWOTcanhUJrh3WlUvb4=;
	b=utxDn93rAzY3gcnvurrp5Qek6dCKVB6ihuZyohkho+jPcm5HO5Bovqi7vcKiZuR/L3IaL8
	Sbi5pxsWMc9R46nQwshZZH7zcyw/cVsG+PjSLqVGaU4X0nAkZEmaYePUhMGMudVqQtv7cK
	lv2SQehsWEl85uSTcpDEKK1VSTen9uryO3NzTEWXkgHwFXvOJFJk/bqi6eL/QOCXSXQ5Vg
	XVFf+nuKXOP4dFXCUCDoUoEdbWXdwuus+IxgZOOrG46p2xxEomuAUuRp1wPXEEOVI5nKyp
	ykPgvOmlnqUPxbCAKbd1JQn9Qdm3ieajJmP00PH+R+vFrh27Ly0hbW2ysDkrOA==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694680919; a=rsa-sha256; cv=none;
	b=SgC/uZORW5eb3F7TZi6DBEqR6CeQLPL7z24mWc2q0evh3pycbxHGGCcRww5pqv7vbwdA75
	5n7VYEfAkH50xOnnTjUEC9MhrDj4Mxky21cBaZz9Ab8JlSKXSkmN9cAi/gO3m6/Mfs8fGg
	oB06sA09Y3KBpJbweaJWOV6QhMHqwT9LNVXxrJappnN4bR2Q3VTm3jyZO/pEDG+R/Wt4Hk
	QyxCnZhOzxATklJ3AZKuKSwWp2qYge4H4l1INr4JTUIcIK4ELA7osRNKHDOY4vem6LEYQb
	NSuSnNHQ/YVo4/8qjQTlUdB5DA8INN+GRnwG6M6IzevIf3Ev+W3ak/8G2ZwoQQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694680919;
	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=lWqUSJK/5rLsaoEXBKOFGq4GVWOTcanhUJrh3WlUvb4=;
	b=ZsGIjb2caiCh0jGBds0CicS3ReoHPY5X656KyF7H3S9xtGeljLY/Hp0nzNDQeKXz947Jjc
	KdwAQTM4GvvHt6jLZG8Q9PYvxTzk72OhvniXXs9VxF8As2gHG0QK/tdZNYFTp4i9hMSJX6
	WQyCQxtkn4VdQXqd9hbJZUY7wY4ljv3yfroViMQcCKrFglTiqFyU1Od+4phz0gjfVgSpUs
	c1jAsLb6EzNHJ9VHWs0hB6egK0Yd9JgDHd78JEeBika8r30dAKhOYboVhCxZqnyiGBie8U
	pisSm1CG/y+57iHGv3zEeHWv2AhXEdvO5SVg5FdQr3obMVdA/+8ANMeP2idghw==
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 4RmW5f6WRTzqSK;
	Thu, 14 Sep 2023 08:41: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 38E8fwrv059536;
	Thu, 14 Sep 2023 08:41:58 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38E8fw5M059533;
	Thu, 14 Sep 2023 08:41:58 GMT
	(envelope-from git)
Date: Thu, 14 Sep 2023 08:41:58 GMT
Message-Id: <202309140841.38E8fw5M059533@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Wolfram Schneider <wosch@FreeBSD.org>
Subject: git: e80697634978 - main - update homepage for FreeBSD
  Manual Pages
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: wosch
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: e80697634978578bca84a6f28348db0fbc40118d
Auto-Submitted: auto-generated

The branch main has been updated by wosch:

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

commit e80697634978578bca84a6f28348db0fbc40118d
Author:     Wolfram Schneider <wosch@FreeBSD.org>
AuthorDate: 2023-09-14 08:40:47 +0000
Commit:     Wolfram Schneider <wosch@FreeBSD.org>
CommitDate: 2023-09-14 08:41:12 +0000

    update homepage for FreeBSD Manual Pages
---
 share/misc/bsd-family-tree | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/share/misc/bsd-family-tree b/share/misc/bsd-family-tree
index 208523bd1fcb..0910f577bdbd 100644
--- a/share/misc/bsd-family-tree
+++ b/share/misc/bsd-family-tree
@@ -907,11 +907,11 @@ URL: https://web.archive.org/web/20081230094857/http://www.byte.com/art/9410/sec
 Andreas Klemm, Lars Köller. If you're going to San Francisco ...
 Die freien BSD-Varianten von Unix. c't April 1997, page 368ff.
 
-BSD Release Announcements collection.
+FreeBSD Release Information 
 URL: https://www.FreeBSD.org/releases/
 
-BSD Hypertext Man Pages
-URL: https://www.FreeBSD.org/cgi/man.cgi
+FreeBSD Manual Pages
+URL: https://man.freebsd.org/cgi/man.cgi
 
 UNIX history graphing project
 URL: https://minnie.tuhs.org/Unix_History/index.html
@@ -933,5 +933,5 @@ original BSD announcements from Usenet or tapes.
 Steven M. Schultz for providing 2.8BSD, 2.10BSD, 2.11BSD manual pages.
 
 --
-Copyright (c) 1997-2012 Wolfram Schneider <wosch@FreeBSD.ORG>
+Copyright (c) 1997-2023 Wolfram Schneider <wosch@FreeBSD.org>
 URL: https://cgit.freebsd.org/src/tree/share/misc/bsd-family-tree

From nobody Thu Sep 14 09:20:41 2023
X-Original-To: dev-commits-src-main@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 4RmWyK4HyWz4t6SK;
	Thu, 14 Sep 2023 09:20: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 4RmWyK3rX2z4bBx;
	Thu, 14 Sep 2023 09:20:41 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694683241;
	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=7NoKuwmtEb+G+hN/VHCzqjyl2p8zHtEvP97EC03zMIk=;
	b=RGvt7/0M+wIyAYivZ891B5dYK1MDzX16uXPxqwofOlHd8IQzmPaOiNBgQN48LpUR6f+XpL
	CN6mz9z+G1BThZFVjdElTd7xAfIqKNy9b+8Pmm7jDcYU2FGRa7ki1MK24qM0tCGqp65TOZ
	dc+z9I7Gx6HA6KUgw/YE1147tdZefLAtaxkieVMnR3NQNrRprb9DccDCXuvBxarA0tBGAR
	4Pshzi3f/VAXTbzm0XdVdQuzmrGkH88kanWCp+hMObD1YZe0dwUWZb190vFQbBWZ40gEAB
	OERh/PxmxrEBwOtb7JPdJmuwQhD+BoqCgvNC4TbbPEwOcILHzaYhGMbxb8pDrg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694683241; a=rsa-sha256; cv=none;
	b=P8y/Ldzem+OadnLuVefNw/LQmFFhCKmjYs25M1M2CwOfrSllCM1sIdqyxj04wp8o3RPT7m
	/18JFVJSABJvMS8Eoupdj+ZGm91SvZXKRrv1G8jFJL9Zs5x6wjE6dCA9X/mqPmpnJ5nUDX
	GeWSottytOKj9Tj5RzZdQhiYGVqP50QsmgooPnnEjIvE/svUGLEJmGdZ6J4aJkRV9FYcfU
	AkTz8uXHjkwdboxEVpFuqGfzEzUj/KkCCGPy/T3NH5W6R4cN6VP65JltoEycFRn+jBBAFE
	hrXvPu3oidApzRkQTt36bnICnzdGmWR2KOn9YnoVKIAevWGm/TIe5MVqKQU8Bg==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694683241;
	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=7NoKuwmtEb+G+hN/VHCzqjyl2p8zHtEvP97EC03zMIk=;
	b=ycSun+5/qk12aZACv7gBE/a48cCAI5ICnWUovjeXG415ou2LkLqZ5gxH/fBmqMEMqLSnHA
	k3nqlupSeBtU66HeLMIycmEOFtrEs2MQM4iMqG5TimiFU2XQAESFYBNerQ0DpA9U6edZIb
	aKs1yW5k1PIx3dVeRxBgjPXj9g7bGCmtq9/76/wYXCWCw6X2YSg3LURQmh7FHB5OWGpEbR
	7QBs69iq4Mw4NhRF8pqXdlSEtJCMUXAwWCCGJcRbwnsRsD/e0lxzVpdv2KHuLzgY8kqJui
	7dW7Poxl7TpwEyW6ZxxZ/LPUlJ3TmH28DzzgB5TySjkcH28g9FlVqYChRI1AFQ==
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 4RmWyK2vxqzrFn;
	Thu, 14 Sep 2023 09:20: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 38E9Kff8021177;
	Thu, 14 Sep 2023 09:20:41 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38E9KfKW021174;
	Thu, 14 Sep 2023 09:20:41 GMT
	(envelope-from git)
Date: Thu, 14 Sep 2023 09:20:41 GMT
Message-Id: <202309140920.38E9KfKW021174@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Doug Rabson <dfr@FreeBSD.org>
Subject: git: 4e899378bf5d - main - pkgbase: put library links and
  symlinks in the -dev package
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@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/main
X-Git-Reftype: branch
X-Git-Commit: 4e899378bf5d89c20430d32982d2635657f34c04
Auto-Submitted: auto-generated

The branch main has been updated by dfr:

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

commit 4e899378bf5d89c20430d32982d2635657f34c04
Author:     Doug Rabson <dfr@FreeBSD.org>
AuthorDate: 2023-09-13 10:18:09 +0000
Commit:     Doug Rabson <dfr@FreeBSD.org>
CommitDate: 2023-09-14 09:19:42 +0000

    pkgbase: put library links and symlinks in the -dev package
    
    Some libraries (e.g. ncurses) install links to the main library for
    backwards compatibilty. This change ensures that those links are in the
    dev package since the files being linked to are in that package.
    
    PR:             249143
    MFC after:      1 week
    Reviewed by:    emaste, manu
    Differential Revision: https://reviews.freebsd.org/D41841
---
 share/mk/bsd.lib.mk   | 1 +
 share/mk/bsd.links.mk | 8 ++++++++
 2 files changed, 9 insertions(+)

diff --git a/share/mk/bsd.lib.mk b/share/mk/bsd.lib.mk
index 90d89eeebc5d..49304463d859 100644
--- a/share/mk/bsd.lib.mk
+++ b/share/mk/bsd.lib.mk
@@ -561,6 +561,7 @@ LINKGRP?=	${LIBGRP}
 LINKMODE?=	${LIBMODE}
 SYMLINKOWN?=	${LIBOWN}
 SYMLINKGRP?=	${LIBGRP}
+LINKTAGS=	dev
 .include <bsd.links.mk>
 
 .if ${MK_MAN} != "no" && !defined(LIBRARIES_ONLY)
diff --git a/share/mk/bsd.links.mk b/share/mk/bsd.links.mk
index 990c4cb65a29..6070979612bf 100644
--- a/share/mk/bsd.links.mk
+++ b/share/mk/bsd.links.mk
@@ -14,8 +14,16 @@ afterinstall: _installlinks
 .ORDER: realinstall _installlinks
 _installlinks:
 .for s t in ${LINKS}
+.if defined(LINKTAGS)
+	${INSTALL_LINK} ${TAG_ARGS:D${TAG_ARGS},${LINKTAGS}} ${DESTDIR}${s} ${DESTDIR}${t}
+.else
 	${INSTALL_LINK} ${TAG_ARGS} ${DESTDIR}${s} ${DESTDIR}${t}
+.endif
 .endfor
 .for s t in ${SYMLINKS}
+.if defined(LINKTAGS)
+	${INSTALL_SYMLINK} ${TAG_ARGS:D${TAG_ARGS},${LINKTAGS}} ${s} ${DESTDIR}${t}
+.else
 	${INSTALL_SYMLINK} ${TAG_ARGS} ${s} ${DESTDIR}${t}
+.endif
 .endfor

From nobody Thu Sep 14 10:09:29 2023
X-Original-To: dev-commits-src-main@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 4RmY2v4XP9z4tNST;
	Thu, 14 Sep 2023 10:09:43 +0000 (UTC)
	(envelope-from carpeddiem@gmail.com)
Received: from mail-lj1-f180.google.com (mail-lj1-f180.google.com [209.85.208.180])
	(using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (2048 bits) client-digest SHA256)
	(Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RmY2v2jX3z4lZw;
	Thu, 14 Sep 2023 10:09:43 +0000 (UTC)
	(envelope-from carpeddiem@gmail.com)
Authentication-Results: mx1.freebsd.org;
	none
Received: by mail-lj1-f180.google.com with SMTP id 38308e7fff4ca-2b9c907bc68so11890621fa.2;
        Thu, 14 Sep 2023 03:09:43 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694686182; x=1695290982;
        h=cc:to:subject:message-id:date:from:in-reply-to:references
         :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=KeQiYFNASXWKlJM1G7dqP3SA6ySW3FoByhy8hUmL3yo=;
        b=WHLS7O/nlemcP8XZiZZGUWFHr+bf4HsineaA3FjGyJN+mBzedHxpYAHxGSUGA+Ccgk
         nYZF+iklbxkwN57hjId6t56/cJVcVuuorlA4xZTzCRUptqifBKcPNLNcSB3BpKDTaiBO
         FeNvPJVfOBzeP80w32jmXE/Ln7o0C1pzdCRvCNcud1l3goHu882PyVKddDGWBVTBEH4G
         G3bVjB51MdeFypB6EJ9Ll4O3yClPS9eptd26UhH0oewjve+5bU1bVhxq0eEN7i/nEOX2
         5/VjZIgisKhtsmCrrfADw3xuyB7WcHddHQrF6sZjz+YJkR136i57RRXjtJk0+qEu/vMw
         /uEg==
X-Gm-Message-State: AOJu0YwIL/BwZDI3Crd/AKvoUjognqS8p756+fsh78DCWGtZM7Npo5+e
	blZPTizIVWWMsVVsmNn5bJKPtf70K4JhcaK+sZKSelYbsg4=
X-Google-Smtp-Source: AGHT+IGzoI1z2v6DpABXwUcW1uahLzWd5ekcSQ2yLNQ//STneVSRlb9W5XHhwZtTvPHUKiF+nbIKK7W8YO05w5Wb9ZA=
X-Received: by 2002:a05:6512:3050:b0:501:bae0:36 with SMTP id
 b16-20020a056512305000b00501bae00036mr5332536lfb.16.1694686181490; Thu, 14
 Sep 2023 03:09:41 -0700 (PDT)
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
References: <202309091847.389IlZed083348@gitrepo.freebsd.org> <7af75066-8b42-477a-8ea4-f64dd0970ab1@aetern.org>
In-Reply-To: <7af75066-8b42-477a-8ea4-f64dd0970ab1@aetern.org>
From: Ed Maste <emaste@freebsd.org>
Date: Thu, 14 Sep 2023 11:09:29 +0100
Message-ID: <CAPyFy2B=zhMrcvpYwkmzJaqtGdxQpLA=C0VqS3X43EPUirao-g@mail.gmail.com>
Subject: Re: git: 98b98ec1bc7e - main - ftpd: add deprecation notice
To: Yuri <yuri@aetern.org>
Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, 
	dev-commits-src-main@freebsd.org
Content-Type: text/plain; charset="UTF-8"
X-Spamd-Bar: ----
X-Rspamd-Pre-Result: action=no action;
	module=replies;
	Message is reply to one we originated
X-Spamd-Result: default: False [-4.00 / 15.00];
	REPLY(-4.00)[];
	ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]
X-Rspamd-Queue-Id: 4RmY2v2jX3z4lZw

On Wed, 13 Sept 2023 at 18:28, Yuri <yuri@aetern.org> wrote:
>
> Duplicate .Sh, the rendered man page shows:
>
> .Sh DEPRECATION NOTICE

Thanks for the report (not sure how I missed that). Mike Karels also
noticed it when I requested a merge to 14.0, fixed now.

From nobody Thu Sep 14 10:11:06 2023
X-Original-To: dev-commits-src-main@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 4RmY4V287gz4tNg9;
	Thu, 14 Sep 2023 10:11:06 +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 4RmY4V1jJDz4lrk;
	Thu, 14 Sep 2023 10:11:06 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694686266;
	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=/MnE2aH34GLPrx8+FTb7glnswim8nxG7NBcf4eJHnHo=;
	b=bLsqYaYLwzGIXgfg+0aGFNvfeEN7x/+bRtYRPwIANcXUTCtA/GwOQCELM9j0MYIcIZ/jus
	Q+95o7ZWqR7SZCk7SQTP+IyZqK9AoIvSROymjp+iM/H/A93C4ehHKtSSxJSMp+FEyOQGT1
	VQVr6pyWr+GhP90o4CcycFMOy1RLceHOnh28MXrU+yghRJjTvdKTcY60oqiZOK8R8+mHN0
	IYPe8GyBPGbq2h7dGhYFRRsJolaKqJY/AF6wKIFTexqoEHKALcGMyczkHm0jIGYIRKjeM2
	8eHoYrHRG1vdqdkIW5SdvQ41NlBAsvwLsTcCocqsjbfA9g3ZVcW+VvJp2Beyeg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694686266; a=rsa-sha256; cv=none;
	b=VrZzJXl5vVG7yY94kUEDi4MUABM5zUA9dVZFoXPOCWX/bKGkgGv4GNxY4LG/tllZEiGr7U
	EuFsIt501SlLfl0R1qhm6hIo2cjikGsLha/tbqYK3tgSvBzt18Tf/4PQVxfYIZEn0by2NO
	vCiPqukWQ5s9fBTimU+2nChP09cQXpiJuSliNPX5PK1CcVw5G3aq5eQ1Y7lE8J/BA172ac
	cIBlQtJUAf1R/Aqk/bvbjjVqOcp2WgpHU8JU1t9rpSSa8gsq3jiYSZaDu6fyO/4z6eWcdM
	wCfsix4+1/bzTEgOCc03CPDyBOq71xHbPyGAnwX9MzqqttS9KvkSLdEIsROxkg==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694686266;
	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=/MnE2aH34GLPrx8+FTb7glnswim8nxG7NBcf4eJHnHo=;
	b=gDV6eucE+Rn163Zak2itUgvXtEkO2p2Ehlu/GNpoHLGEjcWZlGddXIxizTbVkzR2J0NLGc
	8EbO83vdomdJp+E5vxDawKcZ3s386D6IRc1PdlFp6KBy1Kt0MpSQB9Fah+8CK36YKO2n62
	0l4u7Fef4+j0xn7ylsDhtrFo6HaIeF82X87Vb9Sx3RofEwz8txuzuZOafEQRz6IXTKxE+O
	73Kt0q8HIbRjF51GNjQCCItR0SbZacO5CHqzzDopBNLOF0cqJyk/zHw4Mzs9Z+Zx7IVjTy
	IfqBXIz3SV8tI3YQfu8w0rGdVL72uWh98YYzsDXVbzmFeez33asomYn8r4TUAw==
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 4RmY4V0mFKzsrv;
	Thu, 14 Sep 2023 10:11:06 +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 38EAB64Y004332;
	Thu, 14 Sep 2023 10:11:06 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38EAB6nY004329;
	Thu, 14 Sep 2023 10:11:06 GMT
	(envelope-from git)
Date: Thu, 14 Sep 2023 10:11:06 GMT
Message-Id: <202309141011.38EAB6nY004329@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Wolfram Schneider <wosch@FreeBSD.org>
Subject: git: dd0d16cc4d99 - main - correct FreeBSD release
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: wosch
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: dd0d16cc4d99d79f3517f0ce7822c8ea48e900e7
Auto-Submitted: auto-generated

The branch main has been updated by wosch:

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

commit dd0d16cc4d99d79f3517f0ce7822c8ea48e900e7
Author:     Wolfram Schneider <wosch@FreeBSD.org>
AuthorDate: 2023-09-14 10:10:35 +0000
Commit:     Wolfram Schneider <wosch@FreeBSD.org>
CommitDate: 2023-09-14 10:10:35 +0000

    correct FreeBSD release
    
    PR: 273690
---
 share/man/man4/mlx5ib.4 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/share/man/man4/mlx5ib.4 b/share/man/man4/mlx5ib.4
index 939239ab5d85..71d634b2f695 100644
--- a/share/man/man4/mlx5ib.4
+++ b/share/man/man4/mlx5ib.4
@@ -113,7 +113,7 @@ email all the specific information related to the issue to
 The
 .Nm
 device driver first appeared in
-.Fx 12.x .
+.Fx 12.0 .
 .Sh AUTHORS
 .An -nosplit
 The

From nobody Thu Sep 14 10:14:24 2023
X-Original-To: dev-commits-src-main@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 4RmY8J51dyz4tPnk;
	Thu, 14 Sep 2023 10:14:24 +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 4RmY8J4c15z4mtd;
	Thu, 14 Sep 2023 10:14:24 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694686464;
	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=TY6PxVNoLXLl9L4f/iGuPvsc44hODobi1l+sMt0W0kw=;
	b=yg9emgu2woAuFnNChM9yLsi5d0uyPNG6Nd6c7JHoKooiHKiPKEc9S03cv/7ABLyxx2qgIF
	JLDdOieEtAoWTRXd0ckiG3NmNsBSEPsM2mUe2HHMcZl1B7HrxEo2ipq+yb4jKAItAwvnac
	8sjVx/YD9kcCI228AwkUBfJW8yAHjFDVdzkK/yfqEymnn9CgSeD6+MLMPGuNTfChPVrsmr
	h8t8d+kwEAprP4a1vMETWu/hzAWO2ujdPkB1wf4aB7LkrRiFI+JP2rauQKidD9y3Oius2w
	MK1B54ROR5wHZZPz2duApHbisSWzilOA6b0/85FOD707l1U05/466WqnuhNEAg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694686464; a=rsa-sha256; cv=none;
	b=OmSjyiakW822urNO6KGWwceuvf03Z1izP9kIA72zdrTNm81r+6PPm2fDMRHiLRywigrzYx
	7eQHURmVAhcnz+ubBfU3BA1u5QDAq7lGl+0fH0h/ZrW4v+Kzb9fPwYo5Bxi4ph5shlyjQX
	J14LTIWm8XVLpwL/ZTMB5CaBXRDj0KeCnj58/AlgD0BPJNj4ZNE8riDHer3hxpvmUUJOSh
	Ypwl1EUHEYQT044pX6bUWLfnQEBNkEDNHm9kedapdkIqG5ohlbcIf7qBSLAtDSC7OQaR27
	U3e+52NgYY/O8CQFZ7lrtD6uwqkdbZErjRoG46K+jVAbkc+WX5wUE87Sceq9yg==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694686464;
	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=TY6PxVNoLXLl9L4f/iGuPvsc44hODobi1l+sMt0W0kw=;
	b=HnmacDYNpSMiy2A4J3m3KiAe3VPd+Y7DXH17bchAehqzqYsVy8ol/d/T9FTmYNsG2bobnm
	7dUT63bcUPqKvWbe+DKNz/SXswISWUozGd0P04m+xAthY609k0pXmCBcnnYu92piQA/ivA
	r2xV5M3URlQBXw9VPQEjwlrMi6DsFZ9L2DKAFrTrqTSD45LIns05ybVd1ECE30cbtWCZY6
	q4Xhww+SbEDKzPK2ag0Yrd+0jWeyOCcmy9u0VwtWY6e/uv8ZxbXYYG8hPS+4+v+GTrwRz2
	mRNk8N5xKjm4H2DFjuGpmBhaRIKV4ohyNgagmE9B+PeRxDz8fd/NKA84+HTXqA==
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 4RmY8J3g9dzsgn;
	Thu, 14 Sep 2023 10:14:24 +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 38EAEOpj011003;
	Thu, 14 Sep 2023 10:14:24 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38EAEOjG011000;
	Thu, 14 Sep 2023 10:14:24 GMT
	(envelope-from git)
Date: Thu, 14 Sep 2023 10:14:24 GMT
Message-Id: <202309141014.38EAEOjG011000@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Kristof Provost <kp@FreeBSD.org>
Subject: git: 79278872ad96 - main - arp(8): fix by-interface and
  by-host filtering when using netlink
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@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/main
X-Git-Reftype: branch
X-Git-Commit: 79278872ad966e5f54805efbeb692c8cbc0306c8
Auto-Submitted: auto-generated

The branch main has been updated by kp:

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

commit 79278872ad966e5f54805efbeb692c8cbc0306c8
Author:     R. Christian McDonald <rcm@rcm.sh>
AuthorDate: 2023-09-14 07:07:24 +0000
Commit:     Kristof Provost <kp@FreeBSD.org>
CommitDate: 2023-09-14 08:14:10 +0000

    arp(8): fix by-interface and by-host filtering when using netlink
    
    arp(8) has traditionally supported filtering by interface via -i and
    by hostname. However, this functionality was omitted from the initial
    netlink-ification of arp. This patch re-introduces this filtering
    functionality.
    
    This patch also improves by-interface filtering by storing and using the
    ifindex of the requested interface for filtering instead of comparing
    interface name strings
    
    Reviewed by:    melifaro
    Sponsored by:   Rubicon Communications, LLC ("Netgate")
---
 usr.sbin/arp/arp.c         | 34 +++++++++++++++-------------------
 usr.sbin/arp/arp.h         |  2 ++
 usr.sbin/arp/arp_netlink.c |  8 ++++++++
 3 files changed, 25 insertions(+), 19 deletions(-)

diff --git a/usr.sbin/arp/arp.c b/usr.sbin/arp/arp.c
index 02b2bb1ac4f8..9a19d792f788 100644
--- a/usr.sbin/arp/arp.c
+++ b/usr.sbin/arp/arp.c
@@ -98,8 +98,6 @@ static int get_ether_addr(in_addr_t ipaddr, struct ether_addr *hwaddr);
 static int set_rtsock(struct sockaddr_in *dst, struct sockaddr_dl *sdl_m,
     char *host);
 
-static char *rifname;
-
 struct if_nameindex *ifnameindex;
 
 struct arp_opts opts = {};
@@ -146,7 +144,7 @@ main(int argc, char *argv[])
 			SETFUNC(F_FILESET);
 			break;
 		case 'i':
-			rifname = optarg;
+			opts.rifname = optarg;
 			break;
 		case '?':
 		default:
@@ -157,15 +155,15 @@ main(int argc, char *argv[])
 
 	if (!func)
 		func = F_GET;
-	if (rifname) {
+	if (opts.rifname) {
 		if (func != F_GET && !(func == F_DELETE && opts.aflag))
 			xo_errx(1, "-i not applicable to this operation");
-		if (if_nametoindex(rifname) == 0) {
+		if ((opts.rifindex = if_nametoindex(opts.rifname)) == 0) {
 			if (errno == ENXIO)
 				xo_errx(1, "interface %s does not exist",
-				    rifname);
+				    opts.rifname);
 			else
-				xo_err(1, "if_nametoindex(%s)", rifname);
+				xo_err(1, "if_nametoindex(%s)", opts.rifname);
 		}
 	}
 	switch (func) {
@@ -179,7 +177,7 @@ main(int argc, char *argv[])
 			xo_open_list("arp-cache");
 
 			struct in_addr all_addrs = {};
-			print_entries(0, all_addrs);
+			print_entries(opts.rifindex, all_addrs);
 
 			xo_close_list("arp-cache");
 			xo_close_container("arp");
@@ -448,13 +446,13 @@ get(char *host)
 	xo_open_container("arp");
 	xo_open_list("arp-cache");
 
-	found = print_entries(0, addr->sin_addr);
+	found = print_entries(opts.rifindex, addr->sin_addr);
 
 	if (found == 0) {
 		xo_emit("{d:hostname/%s} ({d:ip-address/%s}) -- no entry",
 		    host, inet_ntoa(addr->sin_addr));
-		if (rifname)
-			xo_emit(" on {d:interface/%s}", rifname);
+		if (opts.rifname)
+			xo_emit(" on {d:interface/%s}", opts.rifname);
 		xo_emit("\n");
 	}
 
@@ -552,7 +550,6 @@ search(u_long addr, action_fn *action)
 	struct rt_msghdr *rtm;
 	struct sockaddr_in *sin2;
 	struct sockaddr_dl *sdl;
-	char ifname[IF_NAMESIZE];
 	int st, found_entry = 0;
 
 	mib[0] = CTL_NET;
@@ -586,14 +583,13 @@ search(u_long addr, action_fn *action)
 		rtm = (struct rt_msghdr *)next;
 		sin2 = (struct sockaddr_in *)(rtm + 1);
 		sdl = (struct sockaddr_dl *)((char *)sin2 + SA_SIZE(sin2));
-		if (rifname && if_indextoname(sdl->sdl_index, ifname) &&
-		    strcmp(ifname, rifname))
+		if (opts.rifindex &&
+		    (opts.rifindex != sdl->sdl_index))
 			continue;
-		if (addr) {
-			if (addr != sin2->sin_addr.s_addr)
-				continue;
-			found_entry = 1;
-		}
+		if (addr &&
+		    (addr != sin2->sin_addr.s_addr))
+			continue;
+		found_entry = 1;
 		(*action)(sdl, sin2, rtm);
 	}
 	free(buf);
diff --git a/usr.sbin/arp/arp.h b/usr.sbin/arp/arp.h
index a7de3a1a3024..487863be43e7 100644
--- a/usr.sbin/arp/arp.h
+++ b/usr.sbin/arp/arp.h
@@ -10,6 +10,8 @@ struct arp_opts {
 	bool nflag;
 	time_t expire_time;
 	int flags;
+	char *rifname;
+	unsigned int rifindex;
 };
 extern struct arp_opts opts;
 
diff --git a/usr.sbin/arp/arp_netlink.c b/usr.sbin/arp/arp_netlink.c
index 4e5c8f3d9940..40b5367f330d 100644
--- a/usr.sbin/arp/arp_netlink.c
+++ b/usr.sbin/arp/arp_netlink.c
@@ -281,6 +281,7 @@ print_entries_nl(uint32_t ifindex, struct in_addr addr)
 	struct ndmsg *ndmsg = snl_reserve_msg_object(&nw, struct ndmsg);
 	if (ndmsg != NULL) {
 		ndmsg->ndm_family = AF_INET;
+		/* let kernel filter results by interface if provided */
 		ndmsg->ndm_ifindex = ifindex;
 	}
 
@@ -296,6 +297,7 @@ print_entries_nl(uint32_t ifindex, struct in_addr addr)
 
 	while ((hdr = snl_read_reply_multi(&ss_req, nlmsg_seq, &e)) != NULL) {
 		struct snl_parsed_neigh neigh = {};
+		struct sockaddr_in *neighaddr;
 
 		if (!snl_parse_nlmsg(&ss_req, hdr, &snl_rtm_neigh_parser, &neigh))
 			continue;
@@ -307,6 +309,12 @@ print_entries_nl(uint32_t ifindex, struct in_addr addr)
 				continue;
 		}
 
+		/* filter results based on host if provided */
+		neighaddr = (struct sockaddr_in *)neigh.nda_dst;
+		if (addr.s_addr &&
+		    (addr.s_addr != neighaddr->sin_addr.s_addr))
+			continue;
+
 		print_entry(&neigh, &link);
 		count++;
 		snl_clear_lb(&ss_req);

From nobody Thu Sep 14 10:32:13 2023
X-Original-To: dev-commits-src-main@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 4RmYXw2D6vz4sW6l;
	Thu, 14 Sep 2023 10:32:16 +0000 (UTC)
	(envelope-from kp@FreeBSD.org)
Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83])
	(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 "smtp.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RmYXw1hGlz4rSc;
	Thu, 14 Sep 2023 10:32:16 +0000 (UTC)
	(envelope-from kp@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694687536;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=coVzIuJ7+kMrfrOLE2aBiTMD7ag8GSGB8EOSHGwvRs4=;
	b=K+3rnVeyhral7JEzJ+IDGrTQAnw4kIUTCoLbW/V6ta6bF+XN1JGP0Sc0qwbn66hz3owE7E
	StzB6kVPcwe29CdpVwnp1rkdByYbCTTCrJ4BNzxuS4/PX+odmEoQqaHzxtl33VxG+YWhT0
	cXdmXwg3glfF9Vawo00nneLtyNpLN5kspVEjMyMH85i1s9lsa22jVZxbmzImLy7DFYEyim
	OpCiyBhUa9i9Z76kg8Esoy7iBYFtKI7QZzCggmgWCQcG6HRAsDQRTbbZVvGmt+K3ZsfYhj
	qAsZXwC/Da799Gg31g59ax37WUUNOP6KlqdcBSeiAWoFGbs++zGz0GqHXgB9nA==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694687536; a=rsa-sha256; cv=none;
	b=XWSCKx0RCWhO6pvbN9KrAqiKtuFP1HrjxlhFQq7L5TIjkVCsiZI8oRrK/TExEkkFizq8LR
	jbT3PfKOGId+Sp+Kz+64CrHFKB5VzjCpp4dBfvhq9XXoeVCZVJer4r6UARyyOE4VhjpuG0
	wtVXQM2v4cBUSMH2aR3JI/dUxlUXiyc6I+1MzSX4AzekLKuK85WEmSsTOxf+Jzfj+NM2AS
	MT4M8E7TxWz1ifuJWRtVypQ5XMnJjRW05vUbJJ79oFl9adKuVaQl0sAlRIp3ZAWcAxsdvT
	9BQqILEU+HxEHvfSa+3P4nRvI5WVlerGUEpBz7bL7Mqo6Y4BLQdD/77JKLv73w==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694687536;
	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:
	 in-reply-to:in-reply-to:references:references;
	bh=coVzIuJ7+kMrfrOLE2aBiTMD7ag8GSGB8EOSHGwvRs4=;
	b=y1dunaVRwgRW2uXQO2gQEWQCL1gFZE0G2HMPlA5XsHQh3aKFqov3yxopsjSuJ/efRNWJba
	UfFG3o6RZPXKsj20gvZl9WwM4VE7RDj4zA6ScFhJ2JfGSGsb+0bhustET3eetdh8SUqbiw
	iBYFtJZtwrhTzIrsomfUONprxw2QkD6y8IxaZEMgizLIwaSuaSphr5ttbH09hqr7dhmu68
	/WAkwB3nuilL7zW7rQ3Ae3uuGEsS27X/daLxm9ip2r5NEO9Y6U4TfKRxBJ4k3Fua0EKMDX
	Ctw1fy+HPdHZ8c1BUL3VH+DRBruaezDEifnPHYEVBLqYCfygH2/Ky7/pVM7DDg==
Received: from venus.codepro.be (venus.codepro.be [5.9.86.228])
	(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 (2048 bits) client-digest SHA256)
	(Client CN "mx1.codepro.be", Issuer "R3" (verified OK))
	(Authenticated sender: kp)
	by smtp.freebsd.org (Postfix) with ESMTPSA id 4RmYXw01qBz1MSH;
	Thu, 14 Sep 2023 10:32:15 +0000 (UTC)
	(envelope-from kp@FreeBSD.org)
Received: by venus.codepro.be (Postfix, authenticated sender kp)
 id 567EF7B66;
	Thu, 14 Sep 2023 12:32:14 +0200 (CEST)
From: Kristof Provost <kp@FreeBSD.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
Subject: Re: git: 79278872ad96 - main - arp(8): fix by-interface and  by-host
 filtering when using netlink
Date: Thu, 14 Sep 2023 11:32:13 +0100
X-Mailer: MailMate (1.14r5937)
Message-ID: <006642B7-EA17-4292-94A4-0562FC94EC71@FreeBSD.org>
In-Reply-To: <202309141014.38EAEOjG011000@gitrepo.freebsd.org>
References: <202309141014.38EAEOjG011000@gitrepo.freebsd.org>
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On 14 Sep 2023, at 11:14, Kristof Provost wrote:
> The branch main has been updated by kp:
>
> URL: https://cgit.FreeBSD.org/src/commit/?id=3D79278872ad966e5f54805efb=
eb692c8cbc0306c8
>
> commit 79278872ad966e5f54805efbeb692c8cbc0306c8
> Author:     R. Christian McDonald <rcm@rcm.sh>
> AuthorDate: 2023-09-14 07:07:24 +0000
> Commit:     Kristof Provost <kp@FreeBSD.org>
> CommitDate: 2023-09-14 08:14:10 +0000
>
>     arp(8): fix by-interface and by-host filtering when using netlink
>
>     arp(8) has traditionally supported filtering by interface via -i an=
d
>     by hostname. However, this functionality was omitted from the initi=
al
>     netlink-ification of arp. This patch re-introduces this filtering
>     functionality.
>
>     This patch also improves by-interface filtering by storing and usin=
g the
>     ifindex of the requested interface for filtering instead of compari=
ng
>     interface name strings
>
>     Reviewed by:    melifaro
>     Sponsored by:   Rubicon Communications, LLC ("Netgate")

Differential Revision: https://reviews.freebsd.org/D41839

=E2=80=94
Kristof

From nobody Thu Sep 14 12:12:04 2023
X-Original-To: dev-commits-src-main@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 4Rmbm43Gb4z4t4Pm;
	Thu, 14 Sep 2023 12:12:04 +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 4Rmbm42qyqz3SPL;
	Thu, 14 Sep 2023 12:12:04 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694693524;
	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=iswkvVUNN6fbkq8ilkWfgWJuyr2HT+QhntWx5gdjLk8=;
	b=P6JMXs41D734vBXFoqLbLzkze7z9V9FUJFmGOV/aonwD1uBGWMOEk6njCUcfmCl7O0jEOX
	0N97sEI1D4CMO2TzVbpBslBkdwiqMUIAC340xiSi8GxAnFYcFrOl27+pAhNLVqPakVAAPs
	Tw66HlnAolrzkJoSiMyuqVWDq0UgLDQMaadsrft+V8da2UBh5lFqIYtjSacrbW7RS5E5F9
	r8AXQdBG16bmm/sm2lk41l0sNlAMXZCQJxlPaWCiyuhsNpKMEYbaYgEXj3xHseuUoihkH+
	I/udqphw4nlBVZBdfZJsIbJBUbe6jPIDzIG6+XjuymInDEWoeovcftLqm/0otQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694693524; a=rsa-sha256; cv=none;
	b=oKCyMsZK1j3xpGc/aRqkWeBC+Of/Djl85lLhTvUg/PDDcamI6UTCYWp0cYGF9iDKRGMvBw
	gwikg4MaeMCxkPt/GO+AU7+T4feQyHlomupSiavIS4Es1NyU7GcVUuiNrvTDEhfG15vCOC
	wWZm0rWQ3NSnEgnFdZPWWHHTXT2M39mjfCn9N7Yu0lwa5phEXN3KXmSTP5Ufgx/OsbsFsB
	EQ4/NtRDnbnOCg7+k1STgtaoaoUpIxWdnvR4yRYOuHzC7iLgJFI+2j6wOcamNcKCDXXQJc
	l92bOYRjBAdQ+8daLGZ2QnHInHe5UOImdYEaEx/CEdG6GOV4EthMosQt5Hmd/A==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694693524;
	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=iswkvVUNN6fbkq8ilkWfgWJuyr2HT+QhntWx5gdjLk8=;
	b=Lw4K0niCL+PFBwibON74pVXmkLm4QNZHuxwvKZ9D98SC8FfeUFENjw4pC5nBhvxGjsvcrb
	No11+bCC4Ir9EG17tw5Xb+Q7CAbU7KuZo/1dg2TtzJuY+d1P8gdgsI3YfdNPT6uK8wfa/7
	GrFj83R8SgAaHboaVOseULpkTzAnfeJ8GCmMcIFfi2I5m14tff2bcVuGh7sTgNA6TlsbEE
	BlDtXGqfcAJWlgjrnNu7kAoh5KdgiCF+Otnd/UhKRLTPaiq/IdfLQaL+Nne5J+kmjXUjrG
	JhqK195w9Vi7vH1jLeNSfd/jGzdMWNtpo+UT9FeWxda23LMCdWvroByvMiL1+g==
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 4Rmbm41vzTzx26;
	Thu, 14 Sep 2023 12:12:04 +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 38ECC4eH009241;
	Thu, 14 Sep 2023 12:12:04 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38ECC4Am009223;
	Thu, 14 Sep 2023 12:12:04 GMT
	(envelope-from git)
Date: Thu, 14 Sep 2023 12:12:04 GMT
Message-Id: <202309141212.38ECC4Am009223@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Wei Hu <whu@FreeBSD.org>
Subject: git: b167e449c8db - main - mana: add lro and tso stat
  counters
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: whu
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: b167e449c8db01f082691503fb5c1255ad5750eb
Auto-Submitted: auto-generated

The branch main has been updated by whu:

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

commit b167e449c8db01f082691503fb5c1255ad5750eb
Author:     Wei Hu <whu@FreeBSD.org>
AuthorDate: 2023-09-14 11:56:20 +0000
Commit:     Wei Hu <whu@FreeBSD.org>
CommitDate: 2023-09-14 12:10:49 +0000

    mana: add lro and tso stat counters
    
    Add a few stat counters for tso and lro.
    
    MFC after:      3 days
    Sponsored by:   Microsoft
---
 sys/dev/mana/mana.h        |   5 ++
 sys/dev/mana/mana_en.c     |  12 ++++
 sys/dev/mana/mana_sysctl.c | 136 +++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 153 insertions(+)

diff --git a/sys/dev/mana/mana.h b/sys/dev/mana/mana.h
index 9a22ea87baa3..ab394f3203ad 100644
--- a/sys/dev/mana/mana.h
+++ b/sys/dev/mana/mana.h
@@ -170,6 +170,9 @@ struct mana_txq {
 	struct mtx		txq_mtx;
 	char			txq_mtx_name[16];
 
+	uint64_t		tso_pkts;
+	uint64_t		tso_bytes;
+
 	struct task		enqueue_task;
 	struct taskqueue	*enqueue_tq;
 
@@ -423,6 +426,8 @@ struct mana_rxq {
 
 	uint32_t			buf_index;
 
+	uint64_t			lro_tried;
+	uint64_t			lro_failed;
 	struct mana_stats		stats;
 
 	/* MUST BE THE LAST MEMBER:
diff --git a/sys/dev/mana/mana_en.c b/sys/dev/mana/mana_en.c
index 064b28fa94a4..812a42e51dfc 100644
--- a/sys/dev/mana/mana_en.c
+++ b/sys/dev/mana/mana_en.c
@@ -501,6 +501,7 @@ mana_xmit(struct mana_txq *txq)
 	struct gdma_queue *gdma_sq;
 	struct mana_cq *cq;
 	int err, len;
+	bool is_tso;
 
 	gdma_sq = txq->gdma_sq;
 	cq = &apc->tx_qp[txq->idx].tx_cq;
@@ -578,7 +579,10 @@ mana_xmit(struct mana_txq *txq)
 		pkg.wqe_req.flags = 0;
 		pkg.wqe_req.client_data_unit = 0;
 
+		is_tso = false;
 		if (mbuf->m_pkthdr.csum_flags & CSUM_TSO) {
+			is_tso =  true;
+
 			if (MANA_L3_PROTO(mbuf) == ETHERTYPE_IP)
 				pkg.tx_oob.s_oob.is_outer_ipv4 = 1;
 			else
@@ -641,6 +645,11 @@ mana_xmit(struct mana_txq *txq)
 
 		packets++;
 		bytes += len;
+
+		if (is_tso) {
+			txq->tso_pkts++;
+			txq->tso_bytes += len;
+		}
 	}
 
 	counter_enter();
@@ -1697,9 +1706,12 @@ mana_rx_mbuf(struct mbuf *mbuf, struct mana_rxcomp_oob *cqe,
 
 	do_if_input = true;
 	if ((if_getcapenable(ndev) & IFCAP_LRO) && do_lro) {
+		rxq->lro_tried++;
 		if (rxq->lro.lro_cnt != 0 &&
 		    tcp_lro_rx(&rxq->lro, mbuf, 0) == 0)
 			do_if_input = false;
+		else
+			rxq->lro_failed++;
 	}
 	if (do_if_input) {
 		if_input(ndev, mbuf);
diff --git a/sys/dev/mana/mana_sysctl.c b/sys/dev/mana/mana_sysctl.c
index 79a4867a0abf..d03ebe44ab31 100644
--- a/sys/dev/mana/mana_sysctl.c
+++ b/sys/dev/mana/mana_sysctl.c
@@ -46,6 +46,96 @@ SYSCTL_INT(_hw_mana, OID_AUTO, log_level, CTLFLAG_RWTUN,
 SYSCTL_CONST_STRING(_hw_mana, OID_AUTO, driver_version, CTLFLAG_RD,
     DRV_MODULE_VERSION, "MANA driver version");
 
+static int
+mana_sysctl_rx_stat_agg_u64(SYSCTL_HANDLER_ARGS)
+{
+	struct mana_port_context *apc = arg1;
+	int offset = arg2, i, err;
+	struct mana_rxq *rxq;
+	uint64_t stat;
+
+	stat = 0;
+	for (i = 0; i < apc->num_queues; i++) {
+		rxq = apc->rxqs[i];
+		stat += *((uint64_t *)((uint8_t *)rxq + offset));
+	}
+
+	err = sysctl_handle_64(oidp, &stat, 0, req);
+	if (err || req->newptr == NULL)
+		return err;
+
+	for (i = 0; i < apc->num_queues; i++) {
+		rxq = apc->rxqs[i];
+		*((uint64_t *)((uint8_t *)rxq + offset)) = 0;
+	}
+	return 0;
+}
+
+static int
+mana_sysctl_rx_stat_u16(SYSCTL_HANDLER_ARGS)
+{
+	struct mana_port_context *apc = arg1;
+	int offset = arg2, err;
+	struct mana_rxq *rxq;
+	uint64_t stat;
+	uint16_t val;
+
+	rxq = apc->rxqs[0];
+	val = *((uint16_t *)((uint8_t *)rxq + offset));
+	stat = val;
+
+	err = sysctl_handle_64(oidp, &stat, 0, req);
+	if (err || req->newptr == NULL)
+		return err;
+	else
+		return 0;
+}
+
+static int
+mana_sysctl_rx_stat_u32(SYSCTL_HANDLER_ARGS)
+{
+	struct mana_port_context *apc = arg1;
+	int offset = arg2, err;
+	struct mana_rxq *rxq;
+	uint64_t stat;
+	uint32_t val;
+
+	rxq = apc->rxqs[0];
+	val = *((uint32_t *)((uint8_t *)rxq + offset));
+	stat = val;
+
+	err = sysctl_handle_64(oidp, &stat, 0, req);
+	if (err || req->newptr == NULL)
+		return err;
+	else
+		return 0;
+}
+
+static int
+mana_sysctl_tx_stat_agg_u64(SYSCTL_HANDLER_ARGS)
+{
+	struct mana_port_context *apc = arg1;
+	int offset = arg2, i, err;
+	struct mana_txq *txq;
+	uint64_t stat;
+
+	stat = 0;
+	for (i = 0; i < apc->num_queues; i++) {
+		txq = &apc->tx_qp[i].txq;
+		stat += *((uint64_t *)((uint8_t *)txq + offset));
+	}
+
+	err = sysctl_handle_64(oidp, &stat, 0, req);
+	if (err || req->newptr == NULL)
+		return err;
+
+	for (i = 0; i < apc->num_queues; i++) {
+		txq = &apc->tx_qp[i].txq;
+		*((uint64_t *)((uint8_t *)txq + offset)) = 0;
+	}
+	return 0;
+}
+
 void
 mana_sysctl_add_port(struct mana_port_context *apc)
 {
@@ -99,6 +189,52 @@ mana_sysctl_add_port(struct mana_port_context *apc)
 	    CTLFLAG_RD, &port_stats->rx_drops, "Receive packet drops");
 	SYSCTL_ADD_COUNTER_U64(ctx, stats_list, OID_AUTO, "tx_drops",
 	    CTLFLAG_RD, &port_stats->tx_drops, "Transmit packet drops");
+
+	SYSCTL_ADD_PROC(ctx, stats_list, OID_AUTO, "rx_lro_queued",
+	    CTLTYPE_U64 | CTLFLAG_RD | CTLFLAG_MPSAFE | CTLFLAG_STATS, apc,
+	    __offsetof(struct mana_rxq, lro.lro_queued),
+	    mana_sysctl_rx_stat_agg_u64, "LU", "LRO queued");
+	SYSCTL_ADD_PROC(ctx, stats_list, OID_AUTO, "rx_lro_flushed",
+	    CTLTYPE_U64 | CTLFLAG_RD | CTLFLAG_MPSAFE | CTLFLAG_STATS, apc,
+	    __offsetof(struct mana_rxq, lro.lro_flushed),
+	    mana_sysctl_rx_stat_agg_u64, "LU", "LRO flushed");
+	SYSCTL_ADD_PROC(ctx, stats_list, OID_AUTO, "rx_lro_bad_csum",
+	    CTLTYPE_U64 | CTLFLAG_RD | CTLFLAG_MPSAFE | CTLFLAG_STATS, apc,
+	    __offsetof(struct mana_rxq, lro.lro_bad_csum),
+	    mana_sysctl_rx_stat_agg_u64, "LU", "LRO bad checksum");
+	SYSCTL_ADD_PROC(ctx, stats_list, OID_AUTO, "rx_lro_tried",
+	    CTLTYPE_U64 | CTLFLAG_RD | CTLFLAG_STATS, apc,
+	    __offsetof(struct mana_rxq, lro_tried),
+	    mana_sysctl_rx_stat_agg_u64, "LU", "LRO tried");
+	SYSCTL_ADD_PROC(ctx, stats_list, OID_AUTO, "rx_lro_failed",
+	    CTLTYPE_U64 | CTLFLAG_RD | CTLFLAG_STATS, apc,
+	    __offsetof(struct mana_rxq, lro_failed),
+	    mana_sysctl_rx_stat_agg_u64, "LU", "LRO failed");
+
+	SYSCTL_ADD_PROC(ctx, stats_list, OID_AUTO, "lro_ackcnt_lim",
+	    CTLTYPE_U64 | CTLFLAG_RD | CTLFLAG_STATS, apc,
+	    __offsetof(struct mana_rxq, lro.lro_ackcnt_lim),
+	    mana_sysctl_rx_stat_u16,
+	    "LU", "Max # of ACKs to be aggregated by LRO");
+	SYSCTL_ADD_PROC(ctx, stats_list, OID_AUTO, "lro_length_lim",
+	    CTLTYPE_U64 | CTLFLAG_RD | CTLFLAG_STATS, apc,
+	    __offsetof(struct mana_rxq, lro.lro_length_lim),
+	    mana_sysctl_rx_stat_u32,
+	    "LU", "Max len of aggregated data in byte by LRO");
+	SYSCTL_ADD_PROC(ctx, stats_list, OID_AUTO, "lro_cnt",
+	    CTLTYPE_U64 | CTLFLAG_RD | CTLFLAG_STATS, apc,
+	    __offsetof(struct mana_rxq, lro.lro_cnt),
+	    mana_sysctl_rx_stat_u32,
+	    "LU", "Max # or LRO packet count");
+
+	SYSCTL_ADD_PROC(ctx, stats_list, OID_AUTO, "tx_tso_packets",
+	    CTLTYPE_U64 | CTLFLAG_RD | CTLFLAG_STATS, apc,
+	    __offsetof(struct mana_txq, tso_pkts),
+	    mana_sysctl_tx_stat_agg_u64, "LU", "TSO packets");
+	SYSCTL_ADD_PROC(ctx, stats_list, OID_AUTO, "tx_tso_bytes",
+	    CTLTYPE_U64 | CTLFLAG_RD | CTLFLAG_STATS, apc,
+	    __offsetof(struct mana_txq, tso_bytes),
+	    mana_sysctl_tx_stat_agg_u64, "LU", "TSO bytes");
 }
 
 void

From nobody Thu Sep 14 15:10:00 2023
X-Original-To: dev-commits-src-main@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 4RmgjP00Nzz4sd5g;
	Thu, 14 Sep 2023 15:10: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 4RmgjN6hXrz4bdZ;
	Thu, 14 Sep 2023 15:10:00 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694704200;
	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=eeAvdgWOLA8bOJcMLyMF+oyYqZRtTHtEXVBtne3XgdY=;
	b=wbIvOMF49K07mTrGoGK73TP7kkpQP29y492vEGqNYZC50ecaO6LURdAunUApWhM+zghr7A
	EnmP1mNTZT783PeQfzsbirpZmsvSrNkdljBQMQHCzkHKAdouRkeWpZreIFHs1MHi4iVjwi
	D+pehDNmPjxUKulp2fQrI4RavL7pAyX06OLZ3AzS/JTvBYB66diDuU7QzdeC+NFxNkyNVt
	ueEn9beVM3Xd4CksSQd379wRcY0iRHtW7C8wVY2nBWmDU7sm9Hr8IWMrZMPguuPdGUOeyI
	JsUjR9FC5AI69QVQ3C7zOYirZpQhG75rvRpDlDniJFuxkw7TuuCgZ6ZmoBZiGg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694704200; a=rsa-sha256; cv=none;
	b=cV5jNqYi70RsNY+92+Z0uAeCeJ5vOD4t6ivVEaxsJfGy2F6A8S73wCK2XKdjNmo46Aqt34
	5mfmf+Tm9V2YMqd2nLAKzy05KyH8TAnv2lBbhjtoPz//iSJEjmcZLpDMxtWHIAtDpAzHx1
	lHarVik/VEbafuPxmDK4VYFVhij/T38Ik8e/W5hwa/L3ItFdRMxBg01gkl44fxBgQ2m7LR
	kYnN0cV4wLnAblSDXO8mNcRp2ugNCv0y7i2lrnbQH55CrDJrSjfgF0513hrP2WxSd9KOZ8
	qMzPWsDh/gg8mJpzWxhykFpIrgbklPXQs3Yy/Bmg+C+CT/W4rbfw91F25kQgBg==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694704200;
	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=eeAvdgWOLA8bOJcMLyMF+oyYqZRtTHtEXVBtne3XgdY=;
	b=BccSfVH3GzQK6lyro8dE2aU4V7SkSRdgO+wai0FSasBb4tNr37HxwKqCL2QdDzgPntFAlh
	wZ/eOX4coGEcRhqwbeHtQn7qghyguCFxgvqGMOsFWi1DRrs6stBj1x0VW3NTXLoWZp4gU7
	P/2mP3DtwO1NFyG9/RRbUYSw86vrVKBlGAJRnDhY3c07Z58dWf6zEARySKTAeRUunoSqvq
	xteotysu8wK/3zbLwQKHhpTS99NwYTWvhdVjMcin6ldo/jXP48CVKeMt3p03iAnClmTbcg
	S7xG7jKsKDGpmN/y5iL2JJBULzMX+tqlNpLxTjuDQBDpyNCarczoj1nAfa9TIA==
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 4RmgjN5fHRz127K;
	Thu, 14 Sep 2023 15:10:00 +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 38EFA0Q2098866;
	Thu, 14 Sep 2023 15:10:00 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38EFA0Y4098837;
	Thu, 14 Sep 2023 15:10:00 GMT
	(envelope-from git)
Date: Thu, 14 Sep 2023 15:10:00 GMT
Message-Id: <202309141510.38EFA0Y4098837@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Mateusz Guzik <mjg@FreeBSD.org>
Subject: git: 74be676d8774 - main - vfs: drop one vnode list lock
  trip during vnlru free recycle
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: mjg
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 74be676d87745eb727642f6f8329236c848929d5
Auto-Submitted: auto-generated

The branch main has been updated by mjg:

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

commit 74be676d87745eb727642f6f8329236c848929d5
Author:     Mateusz Guzik <mjg@FreeBSD.org>
AuthorDate: 2023-09-14 14:35:40 +0000
Commit:     Mateusz Guzik <mjg@FreeBSD.org>
CommitDate: 2023-09-14 15:03:03 +0000

    vfs: drop one vnode list lock trip during vnlru free recycle
    
    vnlru_free_impl would take the lock prior to returning even though most
    frequent caller does not need it.
    
    Unsurprisingly vnode_list mtx is the primary bottleneck when recycling
    and avoiding the useless lock trip helps.
    
    Setting maxvnodes to 400000 and running 20 parallel finds each with a
    dedicated directory tree of 1 million vnodes in total:
    before: 4.50s user 1225.71s system 1979% cpu 1:02.14 total
    after:  4.20s user 806.23s system 1973% cpu 41.059 total
    
    That's 34% reduction in total real time.
    
    With this the block *remains* the primary bottleneck when running on
    ZFS.
---
 sys/kern/vfs_subr.c | 43 +++++++++++++++++++++++++++++++++++--------
 1 file changed, 35 insertions(+), 8 deletions(-)

diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index 1c6827ba0587..80ec15f78028 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -1290,13 +1290,14 @@ vnlru_free_impl(int count, struct vfsops *mnt_op, struct vnode *mvp)
 	mtx_assert(&vnode_list_mtx, MA_OWNED);
 	if (count > max_vnlru_free)
 		count = max_vnlru_free;
+	if (count == 0) {
+		mtx_unlock(&vnode_list_mtx);
+		return (0);
+	}
 	ocount = count;
 	retried = false;
 	vp = mvp;
 	for (;;) {
-		if (count == 0) {
-			break;
-		}
 		vp = TAILQ_NEXT(vp, v_vnodelist);
 		if (__predict_false(vp == NULL)) {
 			/*
@@ -1319,6 +1320,7 @@ vnlru_free_impl(int count, struct vfsops *mnt_op, struct vnode *mvp)
 			 */
 			TAILQ_REMOVE(&vnode_list, mvp, v_vnodelist);
 			TAILQ_INSERT_TAIL(&vnode_list, mvp, v_vnodelist);
+			mtx_unlock(&vnode_list_mtx);
 			break;
 		}
 		if (__predict_false(vp->v_type == VMARKER))
@@ -1366,18 +1368,28 @@ vnlru_free_impl(int count, struct vfsops *mnt_op, struct vnode *mvp)
 		 */
 		vtryrecycle(vp);
 		count--;
+		if (count == 0) {
+			break;
+		}
 		mtx_lock(&vnode_list_mtx);
 		vp = mvp;
 	}
+	mtx_assert(&vnode_list_mtx, MA_NOTOWNED);
 	return (ocount - count);
 }
 
+/*
+ * XXX: returns without vnode_list_mtx locked!
+ */
 static int
 vnlru_free_locked(int count)
 {
+	int ret;
 
 	mtx_assert(&vnode_list_mtx, MA_OWNED);
-	return (vnlru_free_impl(count, NULL, vnode_list_free_marker));
+	ret = vnlru_free_impl(count, NULL, vnode_list_free_marker);
+	mtx_assert(&vnode_list_mtx, MA_NOTOWNED);
+	return (ret);
 }
 
 void
@@ -1389,7 +1401,7 @@ vnlru_free_vfsops(int count, struct vfsops *mnt_op, struct vnode *mvp)
 	VNPASS(mvp->v_type == VMARKER, mvp);
 	mtx_lock(&vnode_list_mtx);
 	vnlru_free_impl(count, mnt_op, mvp);
-	mtx_unlock(&vnode_list_mtx);
+	mtx_assert(&vnode_list_mtx, MA_NOTOWNED);
 }
 
 struct vnode *
@@ -1534,7 +1546,7 @@ vnlru_under_unlocked(u_long rnumvnodes, u_long limit)
 }
 
 static void
-vnlru_kick(void)
+vnlru_kick_locked(void)
 {
 
 	mtx_assert(&vnode_list_mtx, MA_OWNED);
@@ -1544,6 +1556,15 @@ vnlru_kick(void)
 	}
 }
 
+static void
+vnlru_kick(void)
+{
+
+	mtx_lock(&vnode_list_mtx);
+	vnlru_kick_locked();
+	mtx_unlock(&vnode_list_mtx);
+}
+
 static void
 vnlru_proc(void)
 {
@@ -1574,6 +1595,7 @@ vnlru_proc(void)
 		 */
 		if (rnumvnodes > desiredvnodes) {
 			vnlru_free_locked(rnumvnodes - desiredvnodes);
+			mtx_lock(&vnode_list_mtx);
 			rnumvnodes = atomic_load_long(&numvnodes);
 		}
 		/*
@@ -1751,6 +1773,7 @@ vn_alloc_hard(struct mount *mp)
 	rnumvnodes = atomic_load_long(&numvnodes);
 	if (rnumvnodes + 1 < desiredvnodes) {
 		vn_alloc_cyclecount = 0;
+		mtx_unlock(&vnode_list_mtx);
 		goto alloc;
 	}
 	rfreevnodes = vnlru_read_freevnodes();
@@ -1770,22 +1793,26 @@ vn_alloc_hard(struct mount *mp)
 	 */
 	if (vnlru_free_locked(1) > 0)
 		goto alloc;
+	mtx_assert(&vnode_list_mtx, MA_NOTOWNED);
 	if (mp == NULL || (mp->mnt_kern_flag & MNTK_SUSPEND) == 0) {
 		/*
 		 * Wait for space for a new vnode.
 		 */
-		vnlru_kick();
+		mtx_lock(&vnode_list_mtx);
+		vnlru_kick_locked();
 		vn_alloc_sleeps++;
 		msleep(&vnlruproc_sig, &vnode_list_mtx, PVFS, "vlruwk", hz);
 		if (atomic_load_long(&numvnodes) + 1 > desiredvnodes &&
 		    vnlru_read_freevnodes() > 1)
 			vnlru_free_locked(1);
+		else
+			mtx_unlock(&vnode_list_mtx);
 	}
 alloc:
+	mtx_assert(&vnode_list_mtx, MA_NOTOWNED);
 	rnumvnodes = atomic_fetchadd_long(&numvnodes, 1) + 1;
 	if (vnlru_under(rnumvnodes, vlowat))
 		vnlru_kick();
-	mtx_unlock(&vnode_list_mtx);
 	return (uma_zalloc_smr(vnode_zone, M_WAITOK));
 }
 

From nobody Thu Sep 14 15:30:20 2023
X-Original-To: dev-commits-src-main@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 4Rmh8r68gsz4sjZQ;
	Thu, 14 Sep 2023 15:30:20 +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 4Rmh8r5X9Hz3CwF;
	Thu, 14 Sep 2023 15:30:20 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694705420;
	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=iRxnUI2HCnXj66JCCJ7vle4Bfm6a1n/z2l9PISEVIXs=;
	b=ZHGMIwOYYJWKnbVi1xaeyYNebW/TUV5BOJyxPNf8+KdctoCIz0cVdYQtlONfzBbxCPW4Fy
	d6yCS//Y4YrXE6fC/+3EdUq1lMGHY46AvwPQLkS/icj9zcRITjyFk/QdymNCvHbG0znrCl
	4h3BbCJdxzblOIOROXHa/yn09Pbj4b8uTdqs91TjxB5+sRbcGJgTLYuG3vOs52XsXt7Rrj
	R+OLB63NYUInBZbqTq/yO9mqagmhC4f7S04XZIHeIrtMbdB4W5u80+K2zU+Fbv0p0gN34S
	bECr1ZsIuQ1A2TTUelQ2tvyKY9711XqdqjUSRA1Fj1mhDPEn6xokKdbOKCV3dA==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694705420; a=rsa-sha256; cv=none;
	b=QGtFByA4giPl8eMRNPDRgSPoPTQcm2bdtMO5vWJkmBnQAqR9K3Nmr3IzjQrMhU5ADyselK
	PcBmGFCQ+0Ifbp5h0amKpy9xPM0t7WHtQf156pfMatBzVHRPYdMN6SqvyN+uVqZVklnfev
	d9DL2J/7DXvLlwLMv1RhlqUDzH5ZE81FCTQiWPkdpVReG/+ERV66Q0e4gIDAtc2NGkj2Vi
	4A4UgNk+XJ5afSXtJxOrI/w9wbsIeUtw5oMOUJIs9y6wIpUYFzcfSDR7wuBwN7m8rtAI8a
	sL6Ds8BupP1H+XXizT1XVnLPZeXjoGgLNkcuv8XgHs7vWol5MJK6zPtTMiSUrw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694705420;
	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=iRxnUI2HCnXj66JCCJ7vle4Bfm6a1n/z2l9PISEVIXs=;
	b=ozSyDTS6zlkdabejbGhJR698ofLkyPIf+F22qtzLhF9tdiOkN/UMwKKH59Mwvh8iXroAd0
	dkYLQwsIk+aBhpysw7LAoIvGbbEwF5UB/zhmjfkPOqTUICvSkU54YaHoTZIfkg9UGw1pRg
	TFFUuSJ1Rg2OxzhOZDWzb00V7OJNhwH22L1d8yoJwExuoJsKy/Ef39YaBbcHxQhlcFkcDZ
	vB++BD77UgTzIzSCoYFSc4R/Y+QK0v4u0uGhQjQuIYEFMYEYUYMD9LxtkERLk/5bMJB4ew
	+mi5SkLpEoxvfI/0EhB/vaHjqjqPNybK495/vg2ehy8r6G5n95XL6RpfYnKmkg==
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 4Rmh8r4cPGz12ZS;
	Thu, 14 Sep 2023 15:30:20 +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 38EFUKOs038937;
	Thu, 14 Sep 2023 15:30:20 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38EFUKOr038934;
	Thu, 14 Sep 2023 15:30:20 GMT
	(envelope-from git)
Date: Thu, 14 Sep 2023 15:30:20 GMT
Message-Id: <202309141530.38EFUKOr038934@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Ed Maste <emaste@FreeBSD.org>
Subject: git: 125bbadf6084 - main - x86: Add defines for workaround
  bits in AMD's MSR "Decode Configuration"
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@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/main
X-Git-Reftype: branch
X-Git-Commit: 125bbadf6084ac341673c9eb1979a740d3d5899a
Auto-Submitted: auto-generated

The branch main has been updated by emaste:

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

commit 125bbadf6084ac341673c9eb1979a740d3d5899a
Author:     Olivier Certner <olce.freebsd@certner.fr>
AuthorDate: 2023-09-11 13:10:35 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2023-09-14 15:24:48 +0000

    x86: Add defines for workaround bits in AMD's MSR "Decode Configuration"
    
    They are a bit more informative than raw hexadecimal values.
    
    While here, sort existing defines of bits for AMD MSRs to match the address
    order.
    
    Reviewed by:    kib, emaste
    Sponsored by:   The FreeBSD Foundation
    Differential Revision:  https://reviews.freebsd.org/D41816
---
 sys/amd64/amd64/initcpu.c    | 5 +++--
 sys/x86/include/specialreg.h | 9 +++++++--
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/sys/amd64/amd64/initcpu.c b/sys/amd64/amd64/initcpu.c
index 4debe89426df..a048c08fc9ae 100644
--- a/sys/amd64/amd64/initcpu.c
+++ b/sys/amd64/amd64/initcpu.c
@@ -101,7 +101,8 @@ init_amd(void)
 	case 0x10:
 	case 0x12:
 		if ((cpu_feature2 & CPUID2_HV) == 0)
-			wrmsr(MSR_DE_CFG, rdmsr(MSR_DE_CFG) | 1);
+			wrmsr(MSR_DE_CFG, rdmsr(MSR_DE_CFG) |
+			    DE_CFG_10H_12H_STACK_POINTER_JUMP_FIX_BIT);
 		break;
 	}
 
@@ -151,7 +152,7 @@ init_amd(void)
 	    (cpu_feature2 & CPUID2_HV) == 0) {
 		/* 1021 */
 		msr = rdmsr(MSR_DE_CFG);
-		msr |= 0x2000;
+		msr |= DE_CFG_ZEN_LOAD_STALE_DATA_FIX_BIT;
 		wrmsr(MSR_DE_CFG, msr);
 
 		/* 1033 */
diff --git a/sys/x86/include/specialreg.h b/sys/x86/include/specialreg.h
index 548d6010e7b8..f45990a056c8 100644
--- a/sys/x86/include/specialreg.h
+++ b/sys/x86/include/specialreg.h
@@ -1162,11 +1162,16 @@
 #define	MSR_IC_CFG	0xc0011021	/* Instruction Cache Configuration */
 #define	MSR_DE_CFG	0xc0011029	/* Decode Configuration */
 
+/* MSR_AMDK8_IPM */
+#define	AMDK8_SMIONCMPHALT	(1ULL << 27)
+#define	AMDK8_C1EONCMPHALT	(1ULL << 28)
+
 /* MSR_VM_CR related */
 #define	VM_CR_SVMDIS		0x10	/* SVM: disabled by BIOS */
 
-#define	AMDK8_SMIONCMPHALT	(1ULL << 27)
-#define	AMDK8_C1EONCMPHALT	(1ULL << 28)
+/* MSR_DE_CFG */
+#define DE_CFG_10H_12H_STACK_POINTER_JUMP_FIX_BIT	0x1
+#define DE_CFG_ZEN_LOAD_STALE_DATA_FIX_BIT		0x2000
 
 /* VIA ACE crypto featureset: for via_feature_rng */
 #define	VIA_HAS_RNG		1	/* cpu has RNG */

From nobody Thu Sep 14 15:51:15 2023
X-Original-To: dev-commits-src-main@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 4Rmhcz3xd9z4spF1;
	Thu, 14 Sep 2023 15:51: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 4Rmhcz3Qbfz3G75;
	Thu, 14 Sep 2023 15:51:15 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694706675;
	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=nF7QjsQ+gBUUvn1BM01WWgEn3HyC95WnUx/mueRTwEU=;
	b=aaTZzySPIsUMDHxIpxHGUeWi6nlHpoKC0BLQiY0waLuQcTlwKiBQdzH4KkDZPpiUTuLT05
	00vTuGx6AlReVDEjUlAMulfQHvyrNjr3bKiy4h5o6ikHwhvNdjXLz3++MKtU3fkkzTAjoy
	fbVHBe+FiDfCXbvqiOn9o0y9g4LADGFuBQUPPLexltLDFF5gDDMy5MYpvTlpAchf+UTXlf
	gdkqQjO4F7YIGzqm5xMQ6vcZDKLdq9CwNCUIeJ4FKpYyRIlpW/QiaPwLsjV9tvrNoMq0mQ
	ue919lEaRFGPDo65QSWr/a8sp8XBbRm3v2Hhyrov2BGrALUQZt5yjsDdhvMzLA==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694706675; a=rsa-sha256; cv=none;
	b=jjirU7pttuVpsOkE0EMnJY3AXenDwsKdRUowBtmyqXS1cRXXksDLxi3q/Uh79p+r+pIdNk
	qC8Zo6OhUd379dA4Q84l8qOuj7Xh7b9P0msOscjo603WDSAwhQrfEfl3gUTxrS7Zzy1Zc8
	RND9d634hQ0SlygoDZoYE1uGcYmaffx2dMufZwf3q6flgiwN82ILKhp3nNlpMzTwc47yPq
	iFs7VQGeu6GQEh95b6WasXVRU+EiLklIO3wvqCZY1RzmruIj5O5cRIy7tW6HBVIKnaAeWl
	FSguVRc9P1SPgysNpRGTdG3RoKb79vARAOEFMeaNJaeuAlO7Y1T7AmVPlnyQFQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694706675;
	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=nF7QjsQ+gBUUvn1BM01WWgEn3HyC95WnUx/mueRTwEU=;
	b=SClwY+adzG4Pw20EeQ4gxEKw1VuD48fbqg+CpnwkQFVmnbpqbYJz5wswKXdPaDIaakq9ec
	gm+gL8cStXl1oyJ89X73rzLdP8doYYvQu/zcVjspMVzxmYuRsIHy4HSDU3YZt9WZ7/y0Nq
	t8CxnEcBabF0dYsMIuLeI+W9P73G5TUyxtXOIFZZ4xQXvswf3CJaFtkQIu8yIK+9fYwOAz
	U3yR53PRb3MN9FrP827CXxE+XOurewyS2X9uZ6jpR3gfh30adpVM6emMSMDxPKLHtO4Wa1
	zrCLRKzjGhR54DfWl8nVMSoRV6e4VXEDthNgWyU1j5/Z3L2WlWmRHaGNbeS47g==
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 4Rmhcz2Twvz12jF;
	Thu, 14 Sep 2023 15:51: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 38EFpFmW074786;
	Thu, 14 Sep 2023 15:51:15 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38EFpFJF074783;
	Thu, 14 Sep 2023 15:51:15 GMT
	(envelope-from git)
Date: Thu, 14 Sep 2023 15:51:15 GMT
Message-Id: <202309141551.38EFpFJF074783@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Doug Rabson <dfr@FreeBSD.org>
Subject: git: 74da9c39c346 - main - pkgbase: Split out manpages by
  default
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@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/main
X-Git-Reftype: branch
X-Git-Commit: 74da9c39c3460213750477204979989b5c39cbcd
Auto-Submitted: auto-generated

The branch main has been updated by dfr:

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

commit 74da9c39c3460213750477204979989b5c39cbcd
Author:     Doug Rabson <dfr@FreeBSD.org>
AuthorDate: 2023-09-14 14:38:07 +0000
Commit:     Doug Rabson <dfr@FreeBSD.org>
CommitDate: 2023-09-14 15:50:40 +0000

    pkgbase: Split out manpages by default
    
    This helps with building small container images using pkgbase.
    
    Reviewed by:    manu bapt
    MFC after:      1 week
    Differential Revision: https://reviews.freebsd.org/D41861
---
 UPDATING                  | 4 ++++
 share/man/man5/src.conf.5 | 4 ++--
 share/mk/bsd.opts.mk      | 2 +-
 3 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/UPDATING b/UPDATING
index 59788ab2c15d..b1276bfe83f6 100644
--- a/UPDATING
+++ b/UPDATING
@@ -27,6 +27,10 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 15.x IS SLOW:
 	world, or to merely disable the most expensive debugging functionality
 	at runtime, run "ln -s 'abort:false,junk:false' /etc/malloc.conf".)
 
+20230914:
+	Enable splitting out pkgbase manpages into separate packages by
+	default. To disable this, set WITHOUT_MANSPLITPKG=yes in src.conf.
+
 20230909:
 	Enable vnet sysctl variables to be loader tunable. SYSCTLs which
 	belongs to VNETs can be initialized during early boot or module
diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5
index a5e7c501825a..64f725c7b2fa 100644
--- a/share/man/man5/src.conf.5
+++ b/share/man/man5/src.conf.5
@@ -1152,8 +1152,8 @@ is set explicitly)
 .It Va WITHOUT_MANCOMPRESS
 Do not install compressed man pages.
 Only the uncompressed versions will be installed.
-.It Va WITH_MANSPLITPKG
-Split man pages into their own packages during make package.
+.It Va WITHOUT_MANSPLITPKG
+Do not split man pages into their own packages during make package.
 .It Va WITHOUT_MAN_UTILS
 Do not build utilities for manual pages,
 .Xr apropos 1 ,
diff --git a/share/mk/bsd.opts.mk b/share/mk/bsd.opts.mk
index 93b0e7184b6d..51260533e265 100644
--- a/share/mk/bsd.opts.mk
+++ b/share/mk/bsd.opts.mk
@@ -60,6 +60,7 @@ __DEFAULT_YES_OPTIONS = \
     MAKE_CHECK_USE_SANDBOX \
     MAN \
     MANCOMPRESS \
+    MANSPLITPKG \
     NIS \
     NLS \
     OPENSSH \
@@ -76,7 +77,6 @@ __DEFAULT_NO_OPTIONS = \
     CCACHE_BUILD \
     CTF \
     INSTALL_AS_USER \
-    MANSPLITPKG \
     PROFILE \
     RETPOLINE \
     STALE_STAGED \

From nobody Thu Sep 14 16:31:52 2023
X-Original-To: dev-commits-src-main@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 4RmjWs1V1Nz4t04G;
	Thu, 14 Sep 2023 16:31: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 4RmjWr6wWkz3MdF;
	Thu, 14 Sep 2023 16:31:52 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694709113;
	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=G8jHhY8k/NdR3zEiLYNdmUiyvo5MTSwVBd+IKyZaBTM=;
	b=gFYarXdiZ5cYfzzbB9Ivj8Ab4uEzsGCLp8CXPUyNmXxjq+6jrsNt2VQBKS+96JVZ4zYUX5
	SaPFd+9zE6AC4niNySrXBbdbsTcE8N4KQpe5QuvRlDAyAvVGpG7M8VGatRuyUMeS9GJo9p
	TKKRzTGD2Vh0bPz501vLk2cyDpxGSsfiQrhtwAc4efoIYRxsB6Y2/RRW1XLchS8Nz/ibL8
	zmVBwU5bVs9vMbMs9brgTv2h54fIYAU+MWNHt8u0wFfex38QQ9xL1ORY13mN+YTUTyEdpb
	/2T2EsQMtSBGYR4irAY4hjObjoxr2RiyQY36Tx/ZMlI5/s4fS0d9/0/ElYsXQw==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694709113; a=rsa-sha256; cv=none;
	b=duykpMmxAQyAeTgoQG+zgKQvxaJTRFNx5Ym+H0Yuznd7NJudg5Wk0rQ/M6mSxR5V2eSm7p
	MipRnKSdjyQ9IgZsd/f+0jcJmsgArERyi8PH+MEovfvtcnGOvfwwbThe/+H+r0OeUCE04H
	PFMISDrUQvm7c8yWez2Gpjqwg8XlinB4wlhDoaw1DTVuPmfnvdYCOeZ8LcTR69gjDgPqVB
	OZD3JtwHE1fbjDT+WhTG40kWDe74xfqaFjgHH/4KazVVn9sAZk25tBqEpnk3mHe1mMaiab
	ySK7PHozt/A35AdojS/R6ZHqvkNqYwuXaQEh9n3hBqoE1JlGGs4jGpKUPOKblQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694709113;
	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=G8jHhY8k/NdR3zEiLYNdmUiyvo5MTSwVBd+IKyZaBTM=;
	b=S75tT7lSndkoTr7sH0UnebdkMAT/WaQuHh78CAGxFpDSmP276RRN4C3gVmPi6IHQCZbCs2
	uBgkXrkmfR0fXOgWhy0mJkaQl7YfSdCK9tSEh/llj0jtRON8jotgxsbpqiIZZihQt+jydI
	PPF8oqx4oCB4RG5GkQvZGOem4MVFHG2D2RnnJWXkCZG8jXyE08wj3GTDpcIq7Q6M37sqUY
	1VrrjStwGDrYr8oCkZ7IkmTiAMvZrLqo36s7wZi3ag9k0Wu9PymhllxyL8aN/Df7DmyThy
	xQnzQ+onCN8DYrJOR9F2kwpn6Gx1NTL76JAFUHbembalpdNDxwvnfr4b/LFA5A==
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 4RmjWr627Nz1445;
	Thu, 14 Sep 2023 16:31: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 38EGVqu6044544;
	Thu, 14 Sep 2023 16:31:52 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38EGVqxo044541;
	Thu, 14 Sep 2023 16:31:52 GMT
	(envelope-from git)
Date: Thu, 14 Sep 2023 16:31:52 GMT
Message-Id: <202309141631.38EGVqxo044541@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: "Simon J. Gerraty" <sjg@FreeBSD.org>
Subject: git: a1575a98850c - main - Fix typo in VERIEXEC_VERIFIED_FILE
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: sjg
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: a1575a98850c7484edac53052bb0e4232c10002d
Auto-Submitted: auto-generated

The branch main has been updated by sjg:

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

commit a1575a98850c7484edac53052bb0e4232c10002d
Author:     Simon J. Gerraty <sjg@FreeBSD.org>
AuthorDate: 2023-09-14 16:31:31 +0000
Commit:     Simon J. Gerraty <sjg@FreeBSD.org>
CommitDate: 2023-09-14 16:31:31 +0000

    Fix typo in VERIEXEC_VERIFIED_FILE
    
    Reviewed by:    stevek
---
 sys/dev/veriexec/veriexec_ioctl.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys/dev/veriexec/veriexec_ioctl.h b/sys/dev/veriexec/veriexec_ioctl.h
index 7f41464e495e..d88998f502b4 100644
--- a/sys/dev/veriexec/veriexec_ioctl.h
+++ b/sys/dev/veriexec/veriexec_ioctl.h
@@ -63,7 +63,7 @@ struct verified_exec_label_params  {
 #define VERIEXEC_DEBUG_OFF 	_IO('S', 0x6)	/* reset debug */
 #define VERIEXEC_GETSTATE 	_IOR('S', 0x7, int) /* get state */
 #define	VERIEXEC_SIGNED_LOAD32	_IOW('S', 0x8, struct verified_exec_params32)
-#define	VERIEXEC_VERIFIED_FILD	_IOW('S', 0x9, int) /* fd */
+#define	VERIEXEC_VERIFIED_FILE	_IOW('S', 0x9, int) /* fd */
 #define VERIEXEC_GETVERSION	_IOR('S', 0xa, int) /* get version */
 #define VERIEXEC_LABEL_LOAD	_IOW('S', 0xb, struct verified_exec_label_params)
 #define	VERIEXEC_SIGNED_LOAD	_IOW('S', 0xc, struct verified_exec_params)

From nobody Thu Sep 14 16:39:52 2023
X-Original-To: dev-commits-src-main@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 4Rmjj44wStz4t21r;
	Thu, 14 Sep 2023 16:39: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 4Rmjj44V4Xz3NjS;
	Thu, 14 Sep 2023 16:39:52 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694709592;
	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=gJHwVdRO/8xXDfPO5VhJ2kWEVMZY8CYbp8rt8V7dAzE=;
	b=a/6BSi++r/GlbD2F3/wh2wr/Zqi0edueTvdosVlmhJm/OSFQPVQeQ/b6fvfxPoBoWAW3h8
	mNBonSmL89h/EUQPnSa3rBwWButkXaHT9yAkPFtdy2p8SMah1dypp4Uo6aCHIP3TPt5oX0
	GKxoTZKln1cI1x1XGge2X/ec5hPVAXfRobc9U1Q7jmnVkz18zFHlUfmzZnq6gXH9mX0+cg
	JIhM/JRsGILXF0/19ritcTbwI2fHgODhnGjIC7yPggvlBdZmg6mmb1Bi6xvlA4eRh0uUif
	dcgEjRmgVlnXOSf9VmOepBPwRrCzFm4QvsKByARhH4Z3c70Lj0BCMhw1uSeHig==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694709592; a=rsa-sha256; cv=none;
	b=NsHyeX0sAMh2Rkz54cqGaC+Qb+DV0He9bW5khB0fNLken1pfYlpVQSlrLsUeedIRW3v74p
	8sGeQ8PbeY0kfiD4CrlqVehSm9kMkNBV/hkzr5kkdlZ0TEk+EV7vqpdr6L7mBNEjKNiJZv
	2Pwb1OX/WbuROsblbU9846FXeG1GLXv7aIqH66eDILd+uIv/B7LdQNHYZVkuwCaxmj8y7D
	UDJZVci8MIx81vW3aKDlSH1dgSMB94VKMoAt8L43oy8WgSfnGyxGi4HBoJAwzjAVvcAbTs
	eXDze8eL+dRKynD72T2Dx6iDrj0iIrWkjuKTR1HhovEwv83cCpfvz2m6uKrz1A==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694709592;
	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=gJHwVdRO/8xXDfPO5VhJ2kWEVMZY8CYbp8rt8V7dAzE=;
	b=oxVT33zXN9deCbR4CI+PUqbrcESm1JqBQWU983lAhd1dkByJmj4LfNZjcLDkzX0C2468xg
	CaVaD0uF87OUFbWTbRobZ6gCMoBeDtyS+EE961lyXZzzmvIPoSZO/kyijsrYrz52hVZ0m8
	/rEL/eai1KT7IJ7NSqSzvmtcIDtZquRuIUbbcmb5YPQPZ9WAORqaMh1VoVBCB0vYWOMnx2
	RFEQiE/hL97LXXN0GbxxjEGbLzWvsPLw/ofljmPmDFBGVkxlCcGeL7AbuVrxU7ISTWz/7B
	rqdl9BaD8VfgnT7iFlrnCe1TVjAQZ1e899vzzgL02Dm4wXkM/ioT8Nu4jO1lsw==
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 4Rmjj43Th8z13sh;
	Thu, 14 Sep 2023 16:39: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 38EGdqr3046833;
	Thu, 14 Sep 2023 16:39:52 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38EGdqbG046830;
	Thu, 14 Sep 2023 16:39:52 GMT
	(envelope-from git)
Date: Thu, 14 Sep 2023 16:39:52 GMT
Message-Id: <202309141639.38EGdqbG046830@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Dimitry Andric <dim@FreeBSD.org>
Subject: git: b9c012a60b6e - main - ObsoleteFiles: cleanup old
  libclang_rt files for powerpc64
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@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/main
X-Git-Reftype: branch
X-Git-Commit: b9c012a60b6e98f7c3e765859195302cf3ae7f6c
Auto-Submitted: auto-generated

The branch main has been updated by dim:

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

commit b9c012a60b6e98f7c3e765859195302cf3ae7f6c
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2023-09-14 16:39:31 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2023-09-14 16:39:31 +0000

    ObsoleteFiles: cleanup old libclang_rt files for powerpc64
    
    PR:             273776
    MFC after:      3 days
---
 ObsoleteFiles.inc | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc
index 55a198db4d04..15e3b000de3c 100644
--- a/ObsoleteFiles.inc
+++ b/ObsoleteFiles.inc
@@ -388,10 +388,13 @@ OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-armhf.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-armhf.so
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-i386.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-i386.so
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-powerpc64.a
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-powerpc64.so
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-aarch64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-arm.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-armhf.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-i386.a
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-powerpc64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-riscv64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-x86_64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-riscv64.a
@@ -402,9 +405,11 @@ OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_cxx-aarch64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_cxx-arm.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_cxx-armhf.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_cxx-i386.a
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_cxx-powerpc64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_cxx-riscv64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_cxx-x86_64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_static-i386.a
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_static-powerpc64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_static-x86_64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.cfi-aarch64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.cfi-arm.a
@@ -424,8 +429,10 @@ OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.fuzzer_interceptors-x86_
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.fuzzer_no_main-aarch64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.fuzzer_no_main-x86_64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.msan-aarch64.a
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.msan-powerpc64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.msan-x86_64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.msan_cxx-aarch64.a
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.msan_cxx-powerpc64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.msan_cxx-x86_64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.profile-aarch64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.profile-arm.a
@@ -443,34 +450,41 @@ OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats-aarch64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats-arm.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats-armhf.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats-i386.a
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats-powerpc64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats-riscv64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats-x86_64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-aarch64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-arm.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-armhf.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-i386.a
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-powerpc64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-riscv64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-x86_64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.tsan-aarch64.a
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.tsan-powerpc64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.tsan-x86_64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.tsan_cxx-aarch64.a
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.tsan_cxx-powerpc64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.tsan_cxx-x86_64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-aarch64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-arm.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-armhf.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-i386.a
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-powerpc64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-riscv64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-x86_64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-aarch64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-arm.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-armhf.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-i386.a
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-powerpc64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-riscv64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-aarch64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-arm.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-armhf.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-powerpc64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-riscv64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.xray-aarch64.a

From nobody Thu Sep 14 16:40:19 2023
X-Original-To: dev-commits-src-main@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 4Rmjjb71QVz4t20R;
	Thu, 14 Sep 2023 16:40: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 4Rmjjb6W2Kz3P3k;
	Thu, 14 Sep 2023 16:40:19 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694709619;
	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=eZU6vMGX5b0VoYPv5Z3D8L5mCUGE4cudm1+U4qqjsZs=;
	b=PP0cYX2nJTjnBtcbYsRtwGR60An8ZNurPx2KX+VhHZtX3HCyZaIdY21zln7w2CRS2SjKgz
	xsBCUgi74LUhwRUvZVnFZkLAHdCrc5pmOhY8w57OG7TqDcH7o5DAuYxtEZ6Qu4Swdfwkal
	RJGtpckoyWGAHaOrxiEaXnBK7JzDhbw0sBvCo/f07bFv165A3rr06KplcAKpnhBZ/N3BNR
	5Sms5dCBQLH2d4yp0ErqZ5thr8jFzv2+LOmlsF+lGXqVXjzoctHJOVSI5wpYommJQNdorj
	+cpfPh60JzbIxMHFuEK4611QY+XUGpgFPqJ7cOGOGDgIPB4zP4ORHWNAu9aL/A==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694709619; a=rsa-sha256; cv=none;
	b=mglgorYdlLZ165NxVn0OWQq0xzmJiBI+xmbJqc/vUBJK7Bq8VaWd2fAl4/rob4hh2+/DiP
	+msfaW1FjjRqkOlEELaxRC9UmSSiHca7hbLI2GTy99j/Wm0klEO7KYG1TRkRAhRg/xQUyh
	DRMBdw5jeV7YTT7Fh2sKAt18Rr62231n9MN9eRdJAINeN20TPQ/5/+5I1aYLMxobi5wO9L
	B0XCegEL1guexZxn2YB3P0is6ZTQUfjcHIUXR2onnOE5WtFCYE0aNh7QwIyGbIcPFZSRZ6
	rRW5plpcmHHwYXYPDvLgi4x9+Vkuk1LH1Xtnivc5zx432IHI9FXDoLm6yWjMEw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694709619;
	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=eZU6vMGX5b0VoYPv5Z3D8L5mCUGE4cudm1+U4qqjsZs=;
	b=T73W7gGp51odzx8Zgb0DVQHVcoKXpkStlExyC/pkLrRUS9ZnRPEtbOfmijLArmVpgTBLQr
	Adt6ECauvH4sPukUcZiPpBuV+fs9wL9R0gIvoqpL477wLID/Y7AweulcV+UGRWsIYvvKQ6
	wUn+HVKSQ3Psp+vKwihc0Bhu6GfxwL9zMn+6qeqaQzyBtMfB5I8S8mP61rcJO/PVgclHZN
	au+ovNsIKUjJDzRBbYlrL2ukxDmy5dT/NVAAyRYdpMMzLuHDA+bOzV0/+XFA0hx1jd9QYf
	sVVgXmC26JxbPojQVguyyDWrl1WUvPvUFW8iI/NLCqhKAEU3m5pY+BzN9bz2iA==
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 4Rmjjb5c8sz146k;
	Thu, 14 Sep 2023 16:40: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 38EGeJV9055502;
	Thu, 14 Sep 2023 16:40:19 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38EGeJQn055499;
	Thu, 14 Sep 2023 16:40:19 GMT
	(envelope-from git)
Date: Thu, 14 Sep 2023 16:40:19 GMT
Message-Id: <202309141640.38EGeJQn055499@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Mateusz Guzik <mjg@FreeBSD.org>
Subject: git: 76f1153790b6 - main - vfs: don't kick vnlru if it is
  already running
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: mjg
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 76f1153790b6d2e1a4f0389c3ac24e41d08f9ba6
Auto-Submitted: auto-generated

The branch main has been updated by mjg:

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

commit 76f1153790b6d2e1a4f0389c3ac24e41d08f9ba6
Author:     Mateusz Guzik <mjg@FreeBSD.org>
AuthorDate: 2023-09-14 16:27:47 +0000
Commit:     Mateusz Guzik <mjg@FreeBSD.org>
CommitDate: 2023-09-14 16:40:14 +0000

    vfs: don't kick vnlru if it is already running
    
    Further shaves some lock trips.
---
 sys/kern/vfs_subr.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index 80ec15f78028..4c9cb6200f10 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -1557,9 +1557,11 @@ vnlru_kick_locked(void)
 }
 
 static void
-vnlru_kick(void)
+vnlru_kick_cond(void)
 {
 
+	if (vnlruproc_sig)
+		return;
 	mtx_lock(&vnode_list_mtx);
 	vnlru_kick_locked();
 	mtx_unlock(&vnode_list_mtx);
@@ -1812,7 +1814,7 @@ alloc:
 	mtx_assert(&vnode_list_mtx, MA_NOTOWNED);
 	rnumvnodes = atomic_fetchadd_long(&numvnodes, 1) + 1;
 	if (vnlru_under(rnumvnodes, vlowat))
-		vnlru_kick();
+		vnlru_kick_cond();
 	return (uma_zalloc_smr(vnode_zone, M_WAITOK));
 }
 

From nobody Thu Sep 14 17:29:56 2023
X-Original-To: dev-commits-src-main@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 4Rmkps0mdGz4tDbQ;
	Thu, 14 Sep 2023 17:29: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 4Rmkps0KZ1z3XVk;
	Thu, 14 Sep 2023 17:29:57 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694712597;
	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=asxXv0Cl8jQw8m+jZnVx7KVOuHw8+atAu+HGAUiG97U=;
	b=EMZST3lVLwHOYtcpV2TWsOfdT+6iiCZHOivuFDVslGZwBUwyTk+KL2n3GI43MBHMtxixZM
	kG9sjZWo2kMbCDzxfvQGTkhvONAQnD861EABTHXmyruk5k2r9fBiJjo5Mg7wC3GhrvvWYF
	blpeLS6gOgQVrfdOdyRGB/W+nY3VJNbkh7gIvXzg93Emnissasj1mIveraVjU4tUJ7RIu9
	FbzWRzszd/LTnAoXG/xSGMBPG5/ejxbMlB4PNyp7wHOrSgST7wwzble2u1m2QgVL608wJx
	v8xZ8qRt9Pdxg7So182WSWADI4o315Oz1zO2p2NwrxtWGSkCZZG7lHbmrn1ZzA==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694712597; a=rsa-sha256; cv=none;
	b=uJHG2w1hYNmNqzj9E3IxLp+O0tds1FT3anOQpcae2Ttqny+vRirvVGF1B6hnWOSxdPUFtO
	KzqpSjs1CcuK2cfCSA9PMjGhVcvuFOmnpYpxYAQBkDXZUcMpL6pr7HRkk7gjw3kAfL6N9A
	HJFg8zhqKmYu04aAVMSZMUY0uvT2OC9mAtdh9sDnb//j7VXvGaW1+iRPVGdx1NyyBEdV8d
	CZRakQpa44r3B2oq66d8o8LEocnN9HpXFpn9Bsq8IOqlTWfWHAD/lgCLR/458eWedy0xtn
	THRHIIiiMhZwvswYzAzYMiUncN2z/qHqB30G+0+p7QC2sYq2k6AOcS0CQdU1kw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694712597;
	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=asxXv0Cl8jQw8m+jZnVx7KVOuHw8+atAu+HGAUiG97U=;
	b=SQOQQ35qmTepnMwaNtWtkSQ+s93YRduaoqDECIlvA1pAFnn0qC8xPlYgcWrrWVSJaOyDeg
	DIA8J3r40/Rvq4u/ffOi03214/NII+5sVXKKK7QHJzvGoXZxLNAM2YRfnNvOPStu841Vme
	/3Fhno4sjW4oWLwKb2g1oqHbOlAuZLGvOwguZXQbK/nF3LGYK/KqAkNAy7W/PT96K0F++W
	2YwRbLS/G1MfTGZJvACybJvDgrfIH0PFr414wU/c3+VDBJQd1vpGt8m5ZteWo4pfgLIvWL
	epNMAiM3dEvCvArkyrjlEMvRH9bcYZ+tAIbWL/mCLLrjsL9txnIycFxPYXBbvw==
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 4Rmkpr6VvCz156f;
	Thu, 14 Sep 2023 17:29: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 38EHTuFC030543;
	Thu, 14 Sep 2023 17:29:56 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38EHTu7r030540;
	Thu, 14 Sep 2023 17:29:56 GMT
	(envelope-from git)
Date: Thu, 14 Sep 2023 17:29:56 GMT
Message-Id: <202309141729.38EHTu7r030540@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Mateusz Guzik <mjg@FreeBSD.org>
Subject: git: 9dc0c983b093 - main - vfs: fix stale comment about
  freevnodes management
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: mjg
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 9dc0c983b0931f359c2ff10d47ad835ef74e929a
Auto-Submitted: auto-generated

The branch main has been updated by mjg:

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

commit 9dc0c983b0931f359c2ff10d47ad835ef74e929a
Author:     Mateusz Guzik <mjg@FreeBSD.org>
AuthorDate: 2023-09-14 17:28:32 +0000
Commit:     Mateusz Guzik <mjg@FreeBSD.org>
CommitDate: 2023-09-14 17:29:52 +0000

    vfs: fix stale comment about freevnodes management
---
 sys/kern/vfs_subr.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index 4c9cb6200f10..ed478d33aed0 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -1444,12 +1444,12 @@ static struct proc *vnlruproc;
 static int vnlruproc_sig;
 
 /*
- * The main freevnodes counter is only updated when threads requeue their vnode
- * batches. CPUs are conditionally walked to compute a more accurate total.
+ * The main freevnodes counter is only updated when a counter local to CPU
+ * diverges from 0 by more than VNLRU_FREEVNODES_SLOP. CPUs are conditionally
+ * walked to compute a more accurate total.
  *
- * Limit how much of a slop are we willing to tolerate. Note: the actual value
- * at any given moment can still exceed slop, but it should not be by significant
- * margin in practice.
+ * Note: the actual value at any given moment can still exceed slop, but it
+ * should not be by significant margin in practice.
  */
 #define VNLRU_FREEVNODES_SLOP 126
 

From nobody Thu Sep 14 20:36:23 2023
X-Original-To: dev-commits-src-main@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 4Rmpxz3CYqz4sMDm;
	Thu, 14 Sep 2023 20:36: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 4Rmpxz2h40z4Wsr;
	Thu, 14 Sep 2023 20:36:23 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694723783;
	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=Uh7+F3jU9aGEabh96csRFHbl986sUUWAPMUbFKIoSpA=;
	b=elF3hQf8OzKA9Koh9e6CCOX/77nmVg876i6PAm4K018BkOzMTHW05br6oW07sTZ0isi5O0
	iFysz3Yfwo2tBleePIchU8w2EM8MvmvJ7MPOLxksW0bIAydaLbGgpLMHfgRgDABCi+STdw
	AAe5MtohXzgJoxEdE/tZJNk+DPhxiEVlSet6N/3YI5HDDX0xUAB7Hx5t0JOK0eGpyDLFO2
	2nvBdURAn9FEvJbScrc6nLUXRCsUI/KX9u+MrAU4ETWQohbQIin4PLom6VFRKyePG18HE/
	FYWC5sv21pGNjNLwBTH/5zFzHGMviOGqqh5EnQER1ymfWr4flOS277+hX/Y93Q==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694723783; a=rsa-sha256; cv=none;
	b=MFsJtDqKdcvc0Y2+V2X6eM+AvL8D81CGWfHvZ51pcl5pHdlTPdoBRALAz/rfugEz7RSP/c
	E7QljDr9y/lv1GmToLcIBBvGXKUSAFFneEfh90s5OoJhBKyAbFlbyZ7GpzC/TCCuBsb7K1
	ZwQaucOKfwJVDH3BWXR6emE+DY8YDOkZ1MF9tFCdoLMr5G50owCaFL7f4bo/oXE8FxLKCd
	0JmEx2GHZori/FcQs3srfmkthRvGUp8c7ah2yQaLdBvSrnJxWaKV9yky7Tc5+P8PoQTzhm
	lpxn74YbSapRThJIwvJKouSjwR8du8G737QKkDPVQ+puk7I5StBA4DuzUk63SA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694723783;
	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=Uh7+F3jU9aGEabh96csRFHbl986sUUWAPMUbFKIoSpA=;
	b=hcFMOUxRNnFOhKObqjEYNJfkL9zE6C9bKGyq72mEQGzgsF0ybTe0GQPQZAg7qi7lxcfnGH
	dMInlSR46tZVlQyXQ9AbF6nSn6CcDLvNXAzj/n5yyVjEmoZmamvZHm7SKg7+7N/svIQIus
	+2X9OLR95cNiTIQzUMgbbPgXNaD9rrZnEd/L6T2sxGU6hHdqY4gRLf6z3tlGwSB0Pn6Ap/
	DZmknCqzVoeVafcrGiwW5/Jn+yhnLrRDjqmHyu4xUOGQlFFZwTneFw37hyVNDdVDCNCbpu
	q56gQSXyqThKrMlT+qkALpwDfKuv/l96spsqhLhmHM3wPk4vKdA47/osbIvaJQ==
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 4Rmpxz1j3kz1B3y;
	Thu, 14 Sep 2023 20:36: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 38EKaNAT045291;
	Thu, 14 Sep 2023 20:36:23 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38EKaNfF045289;
	Thu, 14 Sep 2023 20:36:23 GMT
	(envelope-from git)
Date: Thu, 14 Sep 2023 20:36:23 GMT
Message-Id: <202309142036.38EKaNfF045289@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Mateusz Guzik <mjg@FreeBSD.org>
Subject: git: 07f52c4b5a4f - main - vfs cache: garbage collect the
  fullpathfail2 counter
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: mjg
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 07f52c4b5a4f7a658bf7ed29eadd5c4d52a4f3b2
Auto-Submitted: auto-generated

The branch main has been updated by mjg:

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

commit 07f52c4b5a4f7a658bf7ed29eadd5c4d52a4f3b2
Author:     Mateusz Guzik <mjg@FreeBSD.org>
AuthorDate: 2023-09-14 20:25:54 +0000
Commit:     Mateusz Guzik <mjg@FreeBSD.org>
CommitDate: 2023-09-14 20:34:20 +0000

    vfs cache: garbage collect the fullpathfail2 counter
    
    The conditions it checks cannot legally be true (modulo races against
    forced unmount), so assert on it instead.
---
 sys/kern/vfs_cache.c | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/sys/kern/vfs_cache.c b/sys/kern/vfs_cache.c
index 5b0cd64146ad..0f4d7526ebb5 100644
--- a/sys/kern/vfs_cache.c
+++ b/sys/kern/vfs_cache.c
@@ -542,7 +542,6 @@ STATNODE_COUNTER(negzaps, numnegzaps,
 STATNODE_COUNTER(neghits, numneghits, "Number of cache hits (negative)");
 /* These count for vn_getcwd(), too. */
 STATNODE_COUNTER(fullpathcalls, numfullpathcalls, "Number of fullpath search calls");
-STATNODE_COUNTER(fullpathfail1, numfullpathfail1, "Number of fullpath search errors (ENOTDIR)");
 STATNODE_COUNTER(fullpathfail2, numfullpathfail2,
     "Number of fullpath search errors (VOP_VPTOCNP failures)");
 STATNODE_COUNTER(fullpathfail4, numfullpathfail4, "Number of fullpath search errors (ENOMEM)");
@@ -3400,14 +3399,7 @@ vn_fullpath_dir(struct vnode *vp, struct vnode *rdir, char *buf, char **retbuf,
 			vp = vp1;
 			continue;
 		}
-		if (vp->v_type != VDIR) {
-			vrele(vp);
-			counter_u64_add(numfullpathfail1, 1);
-			error = ENOTDIR;
-			SDT_PROBE3(vfs, namecache, fullpath, return,
-			    error, vp, NULL);
-			break;
-		}
+		VNPASS(vp->v_type == VDIR || VN_IS_DOOMED(vp), vp);
 		error = vn_vptocnp(&vp, buf, &buflen);
 		if (error)
 			break;

From nobody Thu Sep 14 21:21:10 2023
X-Original-To: dev-commits-src-main@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 4Rmqxf6ypVz4sRCw;
	Thu, 14 Sep 2023 21:21:10 +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 4Rmqxf6Zghz3CDC;
	Thu, 14 Sep 2023 21:21:10 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694726470;
	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=W1flHhotgU5T5wRMYnk4R3f/ETvN/BeclftPvWGEeoU=;
	b=kSAfuZBfijeCukQisFQO5AwORWqva/gvEPVirgn/euFsdJ5fKcaLbvmkLCtsBP8yE7CS5l
	I9SJdSuaUHzj25SSIfkUIer6RK+H9zmnGHbgUp7jEqi6mF8hRHa3IfpmTrjeqTWMott5qq
	xZL54oI484i6ylHMyRQdX+lBKcRFBrp6+9gBRrXxhsNnaGs6EF1HdP+ojB94M/Q+DE6x/d
	9ETfZdCjTQGT04QqRX0NgocLsy4346l0u8pRr0X+NpzkDWGud6QYVRQycAq0cwxil0+paG
	cQQnDBeSjEw3s1gDlycaGo8s2Pzo0s2X9oLWOcF3w/B5hKxQtH3bpsxSA6RsZw==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694726470; a=rsa-sha256; cv=none;
	b=yDI+ZLgPGDLh5Bki5a+E4dE8XPMFfgjcJOSj7ndAvlYfV32F9ZMxFt2Fjjzwf4fUKsJ+1b
	jUmqOc8OLUxpvFUFZrktZYA1YplOHfBBp53ZJ2Y+IAOiGHY2p9x2a2BwwySQk3i6iCzAsq
	KeUyO4phzCfYMuwEbgVGsEKJCPez0d19RhXswP08dItKzi80XR/tRfFGr73jJzVQWTVOhV
	XXjAMR3mG/vIm8e2OLgjE1DkyS5+P/053mZ8AGnZ5uby2dZrC2f9a5xqjm8pacg3RREfz9
	gOV7+Qut6jp8MnCFVa+gFuOAS0uOQdVAgDE4d4CkaRIuvAzTwse/AyFzkjwpew==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694726470;
	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=W1flHhotgU5T5wRMYnk4R3f/ETvN/BeclftPvWGEeoU=;
	b=EErRaZxFkS0OU6HiigLGf2mnagQnE3aJ+j+JNOflB37txZ3dFPaJfSix3AIAMYdFEzXW1T
	6eQv3R3FxzcMVkq5ReXRMX2eG8hecPZCJY6ASHvnqAqo9KIOMAzdZbeYrTQf4SSimJpqs+
	HXS2BIM+aLGmh1J+o/Y7NYEaDi7gkTwzrX6uQYDAvFi1H7RdaFiaJ8xsQQlwBXrsCS67ll
	6VyKwlenakmZb875EM7MJiaR7wFIpbVBF4DkQMI3iKlAli/ypG0TzUwhKktmB+UpEaiI+9
	xSJRx4xtG7ZN5rxqek3FSacrEGkiXbMDxSpzVzjxN9KSh8uC2zaKtIrlksKOSg==
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 4Rmqxf5gq4z1Brf;
	Thu, 14 Sep 2023 21:21:10 +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 38ELLAX8023291;
	Thu, 14 Sep 2023 21:21:10 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38ELLAAT023288;
	Thu, 14 Sep 2023 21:21:10 GMT
	(envelope-from git)
Date: Thu, 14 Sep 2023 21:21:10 GMT
Message-Id: <202309142121.38ELLAAT023288@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: "Bjoern A. Zeeb" <bz@FreeBSD.org>
Subject: git: ee7077f24f5b - main - iwlwifi: fix a bug in
  iwl_ssid_exist()
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: bz
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: ee7077f24f5b02bde8cf5c202848128f18733398
Auto-Submitted: auto-generated

The branch main has been updated by bz:

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

commit ee7077f24f5b02bde8cf5c202848128f18733398
Author:     Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2023-09-14 17:22:04 +0000
Commit:     Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2023-09-14 21:20:54 +0000

    iwlwifi: fix a bug in iwl_ssid_exist()
    
    Rather than always comparing a given SSID to the first SSID of the
    IE list, compare it to the the iterator one.  That way duplicates can
    be found.
    
    Sponsored by:   The FreeBSD Foundation
    MFC after:      3 days
---
 sys/contrib/dev/iwlwifi/mvm/scan.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/sys/contrib/dev/iwlwifi/mvm/scan.c b/sys/contrib/dev/iwlwifi/mvm/scan.c
index a4077053e374..8c5d6860914b 100644
--- a/sys/contrib/dev/iwlwifi/mvm/scan.c
+++ b/sys/contrib/dev/iwlwifi/mvm/scan.c
@@ -447,7 +447,11 @@ static int iwl_ssid_exist(u8 *ssid, u8 ssid_len, struct iwl_ssid_ie *ssid_list)
 		if (!ssid_list[i].len)
 			break;
 		if (ssid_list[i].len == ssid_len &&
+#if defined(__linux__)
 		    !memcmp(ssid_list->ssid, ssid, ssid_len))
+#elif defined(__FreeBSD__)
+		    !memcmp(ssid_list[i].ssid, ssid, ssid_len))
+#endif
 			return i;
 	}
 	return -1;

From nobody Thu Sep 14 21:21:11 2023
X-Original-To: dev-commits-src-main@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 4Rmqxh1gPrz4sRq3;
	Thu, 14 Sep 2023 21:21:12 +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 4Rmqxh0qdxz3CFy;
	Thu, 14 Sep 2023 21:21:12 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694726472;
	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=K+CNqtR1wTguIy0W7tZrSD9sZEO9CkXzGA1wx7RiUNw=;
	b=dXzrNFaSlI3zt4F+rNKiFY9ZA2F1GTfP2ew/eTEiwK1G0TI0yb57SedM37H7BTSslf+Frw
	eh89xzcDID8ks7dpeD/Qf/GP1ptphBgzY2zjJ+Prepc3D+EQlmwE/A4DJaHUv3srES73BZ
	oZlIeiQug/FUmrbWBkgqzzPr472eVCLp5YcgBMMTJli61sCMXUBs5vL0YsVZi8U5hunle6
	3F8o2LiXUeQrDV0oba8qMjF91H8DYtXcY4JFos+8kdC2IAb3tO3+Y3yUCpwDHSJSlG9zTN
	rceecptLiHVN/uKR1tHJuf7xkHngX2NPmE+93Rko2Z/jCE2VyCYFauuZOwdXLQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694726472; a=rsa-sha256; cv=none;
	b=xasKzCQ+TC4sZGCZzALKGHKQnqLhvH14Ui8gPZSjVLhsp6iFXMq0iGfuVUNFx1Hze6Esyn
	Zi0fUhLEz3gwmz/wgA1FmAxm6S1BWQMVK2LG+3kik9aMwai9GtJLxiq1jCNSYf1rMLjiY0
	Hq+JxHRz2BCvHVUOdEI4zO7c0UlbqUNW6ZdeRv+itaHv86bysigVOeFwKzfYKojsUHbWmm
	OBNQn8VsCWuBagsLxsA83L5R0aZ4Om1OSndV1ReNH6Ex7lOQcBMSzJ4phIj7WExlfotx8F
	xwZk8aiACMxFeZ2Dm1F8IMuhU3TRBKR33rOQitu1wFluiknRWLKm1u6zh6ajbQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694726472;
	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=K+CNqtR1wTguIy0W7tZrSD9sZEO9CkXzGA1wx7RiUNw=;
	b=k+pEsFpxjact9bFVl1pUJ7iqChDyAHstU/p6+nUNpZ+ve0r7Bg3WxL38S42+zinfMqzpI1
	ExJ1s5ZgW4hC5QVL7E7Nv/6SC40e/mZJCngDteufLQ8u7JtiEoGBQTcB50cbkNqklR6qkB
	p7aE450kuhvVbUI9W0bZj9OI63hNZ37mkwb1sBEYVxWnatjiQyly3G15oGkJulLxH9Zpyr
	75LOTUfLln7W9XgM8Iadj3yqw0jvjzlaRvoOaQhUhEw229VU8qnnNV3AibUwsp2/mp09hB
	NlxAB03yvS9hQQBTSfKOUGInYXs27i2kKbwI1L2HyoWG1qxdp89i72CpVvNvaA==
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 4Rmqxg6g1Pz1C3M;
	Thu, 14 Sep 2023 21:21:11 +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 38ELLB31023345;
	Thu, 14 Sep 2023 21:21:11 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38ELLBqr023342;
	Thu, 14 Sep 2023 21:21:11 GMT
	(envelope-from git)
Date: Thu, 14 Sep 2023 21:21:11 GMT
Message-Id: <202309142121.38ELLBqr023342@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: "Bjoern A. Zeeb" <bz@FreeBSD.org>
Subject: git: 778da03b1271 - main - net80211: mark argument to
  scan_curchan_task() __unused
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: bz
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 778da03b1271f52051620ec9b053524727961c9e
Auto-Submitted: auto-generated

The branch main has been updated by bz:

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

commit 778da03b1271f52051620ec9b053524727961c9e
Author:     Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2023-09-14 17:34:01 +0000
Commit:     Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2023-09-14 21:20:54 +0000

    net80211: mark argument to scan_curchan_task() __unused
    
    Mostly as documentation mark an unused argument to scan_curchan_task()
    as __unused.  We may possibly want to check all callers in the future
    and see if the argument was supposed to be useful or should be entirely
    removed.
    
    Sponsored by:   The FreeBSD Foundation
    MFC after:      3 days
---
 sys/net80211/ieee80211_scan_sw.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys/net80211/ieee80211_scan_sw.c b/sys/net80211/ieee80211_scan_sw.c
index ac97b7c14cbc..0aaa80a6c48d 100644
--- a/sys/net80211/ieee80211_scan_sw.c
+++ b/sys/net80211/ieee80211_scan_sw.c
@@ -674,7 +674,7 @@ scan_start(void *arg, int pending)
 }
 
 static void
-scan_curchan_task(void *arg, int pending)
+scan_curchan_task(void *arg, int pending __unused)
 {
 	struct ieee80211_scan_state *ss = arg;
 	struct scan_state *ss_priv = SCAN_PRIVATE(ss);

From nobody Thu Sep 14 21:21:12 2023
X-Original-To: dev-commits-src-main@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 4Rmqxj26wsz4sRqG;
	Thu, 14 Sep 2023 21:21: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 4Rmqxj1JpVz3C17;
	Thu, 14 Sep 2023 21:21:13 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694726473;
	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=JECifPXkwhzhe68ZD717YWK4B0QFM8A9EjN9nQW4NbY=;
	b=EmR34MDnHl2nCcCfeu+QtJYWs+AKeDOjpkkAaLg/f2U69WcfWuziFiHJZWJHelKOj/3igc
	v3qrbkCS5w9D/W3GfFfHzWXUgtquy1HiseWiKCVoxAnOAC5v32mREV4Nu9rfVuzcdUA6X7
	an+zvRJSAIb25Oa2bI0cXLirEpL0ne7mtYbvPChPhxOT78RF1KqKsFTujFGgSn7SiMQGAu
	JgZ4SLxHMwsEwbDHd447llzt45gDVpBCaiBWbtWFvxXAJcNxgw9qqg37evJydeANILpF8R
	WTZmEjjquz/Gzls20R++3mIb+vsR4UXq/Ymfgp6Mczyqv9I3ITNBNDibeQiUVg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694726473; a=rsa-sha256; cv=none;
	b=IiKLdCsQdABKlz2LggYGEOMeQCP50lBjB3DoXgG6kCJxoJw8MOU4eOCPYBNMuNh56IpoU7
	I3CFyo0LLmp3N/TtngvrxcBH32KrAqbZvDGe7bksI5qZ/FKBSsHt818qYn+Wws3tr9DFDD
	lWfR5bd9tnjU+mhYbfgpn+Mgv0gbA8SsO/hI+pyhAllbrXGWyrjJzp4pztINJjZ7CMwOxB
	acz1MQo+3c11QqK/cM7D+n2hKpvoIT2nSg8iL/muAngn//LTXH/y/m/Lqs/YPhDtr274/h
	MhG+tUSzloCU+BpaXeaZq0oRl/mxylYRIhfax/ncLMSp1W4AODmPTavxeZrWjg==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694726473;
	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=JECifPXkwhzhe68ZD717YWK4B0QFM8A9EjN9nQW4NbY=;
	b=FDd47r8MC+XY66BCcc/sOSAALij86RdbtO6ekSVtL/ww/+uiLCn/E6XkP+DiFLSWfgjzZm
	Ef6A+sw4wYf7SkpmZAna7u7MySwblgw7OOR8o6Ajy1jJl/lIwNok+MKlqcgvYa+18oHFTM
	tNWRPYgPYWdrY8afZQR4joLrTd9ozB2T4jpAM4zXNHyMT7xjzjpIqHpybIa3prYh+mKmm5
	+T6Lqe6OhoseQbi4NtrjGMC0uH1wmYPxxCrRsRCIPbShbWG4rwaM+5CA6PydIskli6ligI
	9lGes5m4aovxpKrYWEzvb5lAx3Iw32mPjSj/qzXbyJGibdWc+Kj6zsN2WjBQbw==
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 4Rmqxj09V8z1C3N;
	Thu, 14 Sep 2023 21:21: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 38ELLCuC023388;
	Thu, 14 Sep 2023 21:21:12 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38ELLCsL023385;
	Thu, 14 Sep 2023 21:21:12 GMT
	(envelope-from git)
Date: Thu, 14 Sep 2023 21:21:12 GMT
Message-Id: <202309142121.38ELLCsL023385@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: "Bjoern A. Zeeb" <bz@FreeBSD.org>
Subject: git: 33396ec29f1d - main - net80211: improve scan debugging
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: bz
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 33396ec29f1daae31f4738f0da98dce168ca73c6
Auto-Submitted: auto-generated

The branch main has been updated by bz:

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

commit 33396ec29f1daae31f4738f0da98dce168ca73c6
Author:     Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2023-09-14 17:36:29 +0000
Commit:     Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2023-09-14 21:20:54 +0000

    net80211: improve scan debugging
    
    While debugging other problems I ran into the case where net80211
    was thinking a scan was ongoing and new scans could not be started
    but given other logging there was clearly no more scan running.
    It was hard after the fact to quickly determine enough state to
    reconstruct or validate assumptions.
    
    Improve a MSG_SCAN debug logging and implement _db_show_scan() ddb
    output which can be printed along with show com /S or /a.
    
    Sponsored by:   The FreeBSD Foundation
    MFC after:      3 days
---
 sys/net80211/ieee80211_ddb.c   | 74 ++++++++++++++++++++++++++++++++++++++----
 sys/net80211/ieee80211_ioctl.c |  6 ++--
 sys/net80211/ieee80211_scan.h  |  6 +++-
 3 files changed, 77 insertions(+), 9 deletions(-)

diff --git a/sys/net80211/ieee80211_ddb.c b/sys/net80211/ieee80211_ddb.c
index 4e2df134c7a9..525814d202b1 100644
--- a/sys/net80211/ieee80211_ddb.c
+++ b/sys/net80211/ieee80211_ddb.c
@@ -67,7 +67,7 @@
 static void _db_show_sta(const struct ieee80211_node *);
 static void _db_show_vap(const struct ieee80211vap *, int, int);
 static void _db_show_com(const struct ieee80211com *,
-	int showvaps, int showsta, int showmesh, int showprocs);
+	int showvaps, int showsta, int showmesh, int showprocs, int);
 
 static void _db_show_all_vaps(void *, struct ieee80211com *);
 
@@ -132,7 +132,7 @@ DB_SHOW_COMMAND(vap, db_show_vap)
 DB_SHOW_COMMAND(com, db_show_com)
 {
 	const struct ieee80211com *ic;
-	int i, showprocs = 0, showvaps = 0, showsta = 0, showmesh = 0;
+	int i, showprocs = 0, showvaps = 0, showsta = 0, showmesh = 0, showscan = 0;
 
 	if (!have_addr) {
 		db_printf("usage: show com <addr>\n");
@@ -141,7 +141,10 @@ DB_SHOW_COMMAND(com, db_show_com)
 	for (i = 0; modif[i] != '\0'; i++)
 		switch (modif[i]) {
 		case 'a':
-			showsta = showmesh = showvaps = showprocs = 1;
+			showsta = showmesh = showvaps = showprocs = showscan = 1;
+			break;
+		case 'S':
+			showscan = 1;
 			break;
 		case 's':
 			showsta = 1;
@@ -158,7 +161,7 @@ DB_SHOW_COMMAND(com, db_show_com)
 		}
 
 	ic = (const struct ieee80211com *) addr;
-	_db_show_com(ic, showvaps, showsta, showmesh, showprocs);
+	_db_show_com(ic, showvaps, showsta, showmesh, showprocs, showscan);
 }
 
 DB_SHOW_ALL_COMMAND(vaps, db_show_all_vaps)
@@ -345,6 +348,61 @@ _db_show_tdma(const char *sep, const struct ieee80211_tdma_state *ts, int showpr
 }
 #endif /* IEEE80211_SUPPORT_TDMA */
 
+static void
+_db_show_scan(const struct ieee80211_scan_state *ss, int showprocs)
+{
+	int i;
+	const struct ieee80211_scanner *ss_ops;
+
+	db_printf("SCAN %p:", ss);
+	db_printf(" vap %p ic %p", ss->ss_vap, ss->ss_ic);
+	db_printf("\n");
+
+	db_printf("\tss_ops %p (%s) ss_priv %p",
+	    ss->ss_ops, ss->ss_ops->scan_name, ss->ss_priv);
+	db_printf("\n");
+	if (showprocs) {
+		ss_ops = ss->ss_ops;
+		DB_PRINTSYM("\t", "scan_attach", ss_ops->scan_attach);
+		DB_PRINTSYM("\t", "scan_detach", ss_ops->scan_detach);
+		DB_PRINTSYM("\t", "scan_start", ss_ops->scan_start);
+		DB_PRINTSYM("\t", "scan_restart", ss_ops->scan_restart);
+		DB_PRINTSYM("\t", "scan_cancel", ss_ops->scan_cancel);
+		DB_PRINTSYM("\t", "scan_end", ss_ops->scan_end);
+		DB_PRINTSYM("\t", "scan_flush", ss_ops->scan_flush);
+		DB_PRINTSYM("\t", "scan_pickchan", ss_ops->scan_pickchan);
+		DB_PRINTSYM("\t", "scan_add", ss_ops->scan_add);
+		DB_PRINTSYM("\t", "scan_age", ss_ops->scan_age);
+		DB_PRINTSYM("\t", "scan_assoc_fail", ss_ops->scan_assoc_fail);
+		DB_PRINTSYM("\t", "scan_assoc_success", ss_ops->scan_assoc_success);
+		DB_PRINTSYM("\t", "scan_iterate", ss_ops->scan_iterate);
+		DB_PRINTSYM("\t", "scan_spare0", ss_ops->scan_spare0);
+		DB_PRINTSYM("\t", "scan_spare1", ss_ops->scan_spare1);
+		DB_PRINTSYM("\t", "scan_spare2", ss_ops->scan_spare2);
+		DB_PRINTSYM("\t", "scan_spare3", ss_ops->scan_spare3);
+	}
+
+	db_printf("\tss_flags %b", ss->ss_flags, IEEE80211_SS_FLAGS_BITS);
+	db_printf("\n");
+
+	db_printf("\tss_nssid %u", ss->ss_nssid);
+	for (i = 0; i < ss->ss_nssid && i < IEEE80211_SCAN_MAX_SSID; i++)
+		_db_show_ssid(" ss_nssid[%d]", i,
+		    ss->ss_ssid[i].len, ss->ss_ssid[i].ssid);
+	db_printf("\n");
+
+	db_printf("\tss_chans:\n");
+	for (i = 0; i < ss->ss_last && i < IEEE80211_SCAN_MAX; i++) {
+		db_printf("\t%-3d", i);
+		_db_show_channel(" ", ss->ss_chans[i]);
+		db_printf("\n");
+	}
+
+	db_printf("\tss_next %u ss_last %u ss_mindwell %lu ss_maxdwell %lu",
+	    ss->ss_next, ss->ss_last, ss->ss_mindwell, ss->ss_maxdwell);
+	db_printf("\n");
+}
+
 static void
 _db_show_vap(const struct ieee80211vap *vap, int showmesh, int showprocs)
 {
@@ -532,7 +590,7 @@ _db_show_vap(const struct ieee80211vap *vap, int showmesh, int showprocs)
 
 static void
 _db_show_com(const struct ieee80211com *ic, int showvaps, int showsta,
-    int showmesh, int showprocs)
+    int showmesh, int showprocs, int showscan)
 {
 	struct ieee80211vap *vap;
 
@@ -679,6 +737,10 @@ _db_show_com(const struct ieee80211com *ic, int showvaps, int showsta,
 		DB_PRINTSYM("\t", "ic_addba_response", ic->ic_addba_response);
 		DB_PRINTSYM("\t", "ic_addba_stop", ic->ic_addba_stop);
 	}
+	if (showscan) {
+		db_printf("\n");
+		_db_show_scan(ic->ic_scan, showprocs);
+	}
 	if (showvaps && !TAILQ_EMPTY(&ic->ic_vaps)) {
 		db_printf("\n");
 		TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next)
@@ -707,7 +769,7 @@ _db_show_all_vaps(void *arg, struct ieee80211com *ic)
 			db_printf(" %s(%p)", if_name(vap->iv_ifp), vap);
 		db_printf("\n");
 	} else
-		_db_show_com(ic, 1, 1, 1, 1);
+		_db_show_com(ic, 1, 1, 1, 1, 1);
 }
 
 static void
diff --git a/sys/net80211/ieee80211_ioctl.c b/sys/net80211/ieee80211_ioctl.c
index 6fe39f588bab..674d163e3e67 100644
--- a/sys/net80211/ieee80211_ioctl.c
+++ b/sys/net80211/ieee80211_ioctl.c
@@ -2590,8 +2590,10 @@ ieee80211_scanreq(struct ieee80211vap *vap, struct ieee80211_scan_req *sr)
 		sr->sr_flags |= IEEE80211_IOC_SCAN_NOPICK;
 
 	IEEE80211_DPRINTF(vap, IEEE80211_MSG_SCAN,
-	    "%s: flags 0x%x%s duration 0x%x mindwell %u maxdwell %u nssid %d\n",
-	    __func__, sr->sr_flags,
+	    "%s: vap %p iv_state %#x (%s) flags 0x%x%s "
+	    "duration 0x%x mindwell %u maxdwell %u nssid %d\n",
+	    __func__, vap, vap->iv_state, ieee80211_state_name[vap->iv_state],
+	    sr->sr_flags,
 	    (vap->iv_ifp->if_flags & IFF_UP) == 0 ? " (!IFF_UP)" : "",
 	    sr->sr_duration, sr->sr_mindwell, sr->sr_maxdwell, sr->sr_nssid);
 	/*
diff --git a/sys/net80211/ieee80211_scan.h b/sys/net80211/ieee80211_scan.h
index 4274f3948db6..a33864b102e2 100644
--- a/sys/net80211/ieee80211_scan.h
+++ b/sys/net80211/ieee80211_scan.h
@@ -147,6 +147,10 @@ struct ieee80211_scan_state {
 	unsigned long	ss_maxdwell;		/* max dwell on channel */
 };
 
+#define	IEEE80211_SS_FLAGS_BITS \
+	"\20\1NOPICK\2ACTIVE\3PICK1ST\4BGSCAN\5ONCE\6NOBCAST\7NOJOIN" \
+	"\15GOTPICK"
+
 /*
  * The upper 16 bits of the flags word is used to communicate
  * information to the scanning code that is NOT recorded in
@@ -328,7 +332,7 @@ struct ieee80211_scanner {
 	void	(*scan_spare0)(void);
 	void	(*scan_spare1)(void);
 	void	(*scan_spare2)(void);
-	void	(*scan_spare4)(void);
+	void	(*scan_spare3)(void);
 };
 void	ieee80211_scanner_register(enum ieee80211_opmode,
 		const struct ieee80211_scanner *);

From nobody Thu Sep 14 21:21:14 2023
X-Original-To: dev-commits-src-main@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 4Rmqxk2d5pz4sRH0;
	Thu, 14 Sep 2023 21:21: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 4Rmqxk27r5z3CFT;
	Thu, 14 Sep 2023 21:21:14 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694726474;
	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=mGNzUYroOQ79RjQeHymbUrAOXkPseIpr8ihocquV+sQ=;
	b=ipFz266xp+aAqY0N04eVhEBtpF0Za44r8I28w1cHkecqzGCQqI+VmFctmIUDRL9W57K5cK
	bm6RUsuXK8khQYcp35UxJgSPlr0WEjeHGPNLZ4gydmG2cAoN2cqpEMV6jjiZcTR+ATUDtV
	Y3GHypdlRJMS8pcHQqw1Sj+ew1CIlKo3cm7n2Uw4pxLd0jqKfadQIxgoxpIyqn99GZUmAj
	SkUIG2ezfnTEkNzWi/kKKm9sFvIdR/Zv+dUibtfAR1j42jPA2AB1SgKmwvdIhacqIGd30C
	4DgUxHO5p0XEi452P+GrYJ0OSG9PE/zNzrdF8OFD/L+mTZ7p2kj0Dp3KOx4cvw==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694726474; a=rsa-sha256; cv=none;
	b=p0rXXU7QyJpWp/DrG0x7xlszwSCGu4EXKYYzs3EU1doatFR6bxsJf2Wau2F/7x/+VHPIBR
	TP+xMNpUoZ6KqVF0/oEEejor1UHInkY58Cs1CApO3CV2mBwNyhof0+rqm3ef30txXqst/J
	tLKlQum93VuiLxYAVxIaEmV2ffCUSkESoN1mNHWLy4JCrZel45OTCkxkJdkO8Qho09H5W4
	dNVIN1/4rpYBMSqu+AgVxTTwr0leAUebWB1pP6OCJFJb3d7zGSyghV8QPJMHu5WTRDjWMz
	obt20oTm4WGI2xyu7Hye8b/Jkt0pxJpZVEdKV9aVGux39RGqrBiuCpgKB73pIA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694726474;
	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=mGNzUYroOQ79RjQeHymbUrAOXkPseIpr8ihocquV+sQ=;
	b=b4MI2Ku85O7iMISwQnRhYoGqNE7+wNDL94w429hFKL/0H16QqVVac1QInrnPDg4qTTIMN7
	R/8+f/p2xgrwc1DOQWpVAyQ87eJGmJGQ6JZsYmUaf3h6aZh90FtlPar9RJLjog2JSifac1
	82Xb9Cq8NfgBC34z+SVrGfidnRIVveXQNtcym/Vo1CSQxvLzlauK1nlomFRUMu1C4y7qnU
	+76hvdSzT/+DntePuerC1puWrHmszbjlxDolxi+XH6VQgB7x9rzPOO1T+WurgkY1jy4VqR
	lc2uwsIMk/aNEjbvplVrFCZtx6TPWctfJXeESo3OsL/8vSCDxxRB9oq8XLfRng==
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 4Rmqxk1DB8z1BNt;
	Thu, 14 Sep 2023 21:21:14 +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 38ELLEYD023449;
	Thu, 14 Sep 2023 21:21:14 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38ELLEpg023446;
	Thu, 14 Sep 2023 21:21:14 GMT
	(envelope-from git)
Date: Thu, 14 Sep 2023 21:21:14 GMT
Message-Id: <202309142121.38ELLEpg023446@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: "Bjoern A. Zeeb" <bz@FreeBSD.org>
Subject: git: e1e90be05017 - main - LinuxKPI: 802.11: make sure
  bssid for scans (probe_req) is set
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: bz
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: e1e90be05017c335862c938fd9d577e56f02af30
Auto-Submitted: auto-generated

The branch main has been updated by bz:

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

commit e1e90be05017c335862c938fd9d577e56f02af30
Author:     Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2023-09-14 17:48:19 +0000
Commit:     Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2023-09-14 21:20:54 +0000

    LinuxKPI: 802.11: make sure bssid for scans (probe_req) is set
    
    In b0f73768220e9 we added bssid[] to struct cfg80211_scan_request
    likely while working on mt76 and did not need it (yet) back then.
    iwlwifi started to use the field in Linux f1fec51cda70f (April 2023).
    Without it set firmware crashes when trying to send probe requests
    ((empty) SSID also given to hw_scan).
    For now always set the field to the wildcard BSSID.
    
    Sponsored by:   The FreeBSD Foundation
    MFC after:      3 days
---
 sys/compat/linuxkpi/common/src/linux_80211.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c
index 51d5bc2c4fc1..4b9cc598740b 100644
--- a/sys/compat/linuxkpi/common/src/linux_80211.c
+++ b/sys/compat/linuxkpi/common/src/linux_80211.c
@@ -2728,6 +2728,7 @@ sw_scan:
 		memcpy(hw_req->req.mac_addr, xxx, IEEE80211_ADDR_LEN);
 		memset(hw_req->req.mac_addr_mask, 0xxx, IEEE80211_ADDR_LEN);
 #endif
+		eth_broadcast_addr(hw_req->req.bssid);
 
 		hw_req->req.n_channels = nchan;
 		cpp = (struct linuxkpi_ieee80211_channel **)(hw_req + 1);

From nobody Thu Sep 14 21:21:15 2023
X-Original-To: dev-commits-src-main@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 4Rmqxl6trsz4sS1f;
	Thu, 14 Sep 2023 21:21: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 4Rmqxl2ySZz3Cdq;
	Thu, 14 Sep 2023 21:21:15 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694726475;
	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=k72vK9TJ3cq3bDJnmJ9NAy2I5xF2O64/TsyisIJXkIM=;
	b=kUKj0gGcVDbgt+HPN9qx0bSVQU/wpYAylB+OI6wVOceyngFOc9GnETud0SR0o+ps7eKJVC
	GDZgcOAo8cZfTbPwJu7pgDXg+ipl5bSO/8Ot2XwqF4fIVfn9d3at6zR1FCpJo22AbxrmaX
	9CnLxPjojiXe8fA2Y5ENG2nDn9kDrSS7/cwvA9NMhjY1VDDimgHKp4D4yO9zqCgPw3ICHz
	Ax1faFE8tXX7RVsW5Z1l2uZXFQQUF9Zu3Q2bSk95kK3nnnp52Kd83zlzUdEb8lOnaEXig4
	x6r5/9hG5kWQhBvTeAYPLPW1wKBnvOVMJKd5CxgZBkX+ACECUAmdrSeO1Est3Q==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694726475; a=rsa-sha256; cv=none;
	b=rn71la/HGoVaeGFS7HSkDjopz2/I80JNzYXDW4CfXv9IPlrVBBrEuspYpyCLB9zgZ1Dh6D
	+R26QkwB3327CDJh00cTbpCbd0lMU3cUfP3HxfUo43iD4bnPgraZpWvSQx3YOohKdQfRNb
	E/a5rvrzTjmS3wd3/brU5RIuz2K8eb1bT2+z0ScyjPJXBzgOBcU0Eo6eV9Ul2+uTh6rJyb
	2VPGadFcytkjp5s3DKmYWB7dAhBfs6m34lV9HU7r54gZzeSkDjM1rGpVE+LZxJNlwBrFCu
	qxSb0X63+ksmLNtRjfOCTsbjzRhPLyMPCyk3UF0wGCX+Ed6X9wFd3bOcqkZfdw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694726475;
	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=k72vK9TJ3cq3bDJnmJ9NAy2I5xF2O64/TsyisIJXkIM=;
	b=kE2FnXMmbl2WiRzC6Jl3iycSJQ9E1ihUPFQeskvnYXOTJaLly9ukFe1WhvV8TC4BE52R71
	X+lq9hSuz93RQwnhp0XLUWQDj4JO+VODabSIYj/4vYV4ybFhiwv7Z6slGOa9pcAWQ3c4Zu
	y0xfQwMHnRrgGvLnBcqQXItL0U2qZrbozU2I8/kVG4MCZMg383Ie+y62XZSpPMY8njjbWr
	AoC3BanbcxJgFsWuTQBF4szrmmH1LkrVF5cQWJA4JtAMM6IZlyyyPOdvraPyvbcIHFyQTf
	GCsnjKTTt6OMPuf3/HCgYnr8SsVvvvzJyvyMR9pUzvCKFJGUVh3tLY4MD1ZkwA==
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 4Rmqxl229xz1C2N;
	Thu, 14 Sep 2023 21:21: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 38ELLF4a023505;
	Thu, 14 Sep 2023 21:21:15 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38ELLFZw023502;
	Thu, 14 Sep 2023 21:21:15 GMT
	(envelope-from git)
Date: Thu, 14 Sep 2023 21:21:15 GMT
Message-Id: <202309142121.38ELLFZw023502@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: "Bjoern A. Zeeb" <bz@FreeBSD.org>
Subject: git: f454a4a10dc0 - main - LinuxKPI: 802.11: fix counting
  the number of supbands
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: bz
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: f454a4a10dc027474a85269cb4a3f50bbbf90528
Auto-Submitted: auto-generated

The branch main has been updated by bz:

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

commit f454a4a10dc027474a85269cb4a3f50bbbf90528
Author:     Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2023-09-14 17:57:53 +0000
Commit:     Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2023-09-14 21:20:54 +0000

    LinuxKPI: 802.11: fix counting the number of supbands
    
    While the main purpose was to assign an(y) early chandef with the
    loop, later additions made use of it to also count supbands as well
    as to initialise max_rates.
    Due to the main goal we can exit the loop early and not properly
    count and initialise supbands and max_rates.
    Move the terminating condition into the loop and make it a continue
    rather than ending the loop.
    
    Fixes:          d9945d7821b9b ("improve hw_scan")
    Sponsored by:   The FreeBSD Foundation
    MFC after:      3 days
---
 sys/compat/linuxkpi/common/src/linux_80211.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c
index 4b9cc598740b..cb919bfd3f5b 100644
--- a/sys/compat/linuxkpi/common/src/linux_80211.c
+++ b/sys/compat/linuxkpi/common/src/linux_80211.c
@@ -3760,8 +3760,7 @@ linuxkpi_ieee80211_ifattach(struct ieee80211_hw *hw)
 	 * in any band so we can scale [(ext) sup rates] IE(s) accordingly.
 	 */
 	lhw->supbands = lhw->max_rates = 0;
-	for (band = 0; band < NUM_NL80211_BANDS &&
-	    hw->conf.chandef.chan == NULL; band++) {
+	for (band = 0; band < NUM_NL80211_BANDS; band++) {
 		struct ieee80211_supported_band *supband;
 		struct linuxkpi_ieee80211_channel *channels;
 
@@ -3772,6 +3771,10 @@ linuxkpi_ieee80211_ifattach(struct ieee80211_hw *hw)
 		lhw->supbands++;
 		lhw->max_rates = max(lhw->max_rates, supband->n_bitrates);
 
+		/* If we have a channel, we need to keep counting supbands. */
+		if (hw->conf.chandef.chan != NULL)
+			continue;
+
 		channels = supband->channels;
 		for (i = 0; i < supband->n_channels; i++) {
 

From nobody Thu Sep 14 23:07:04 2023
X-Original-To: dev-commits-src-main@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 4RmtHr3Sgjz4strd;
	Thu, 14 Sep 2023 23:07:04 +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 4RmtHr31Vyz3VBZ;
	Thu, 14 Sep 2023 23:07:04 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694732824;
	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=C4Rr1ZDEx/Zv8PGm7NqSsPPGk/svejfhh6SFaxkOdhg=;
	b=mOU/g7AZNZVJasV5IM5FJh1JIFSsE3kDdefKPV2ZW4CfJyf3kFTeL8MCORWJHNIM+dRFci
	ZWlEbOiCu6FLg9wR9SPAuIMEA1hQGDFcAB3j8xVUs+omqe1JMrNYWDE1FtSlp7RtGZW/1E
	jG4a9WGlTEiHv8gtAOb7P8CgCMT0bQY5UbDNVRGIJBC5J2kAjReFDbpxBz6SS/pKiJYfVA
	QwI4JI3jtjcu7j3Pc0BsD+t1Wtxre1QYrtbTSEtQLhCtOQ8v3dZ0X1GAKqc/CzGtgL75U9
	2uOxBRS14NSIpJHJyDJOCEwLpfpMW3XBvF0saQ5M1bo7Jrk9oj3BVyZ5pD+hTQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694732824; a=rsa-sha256; cv=none;
	b=FlH9QD4m8cSkJ7PBqvMnxCzuB2kJ9nKLJBpK5g9icpM2a7TVfpKHeqm3tUg4JWpd4G13B1
	kFHU/As4ET5ZcXKHm8jyRJaN3aaCzttoQNOVds0/4mGQxMo4cKzSryg6hPowMq6igXQsHo
	csx7W0BnXVTEwuEAhGGM09TN3B4If6ZoqPhcr/5iVyhETqRI2uKUmv2qpjbUwTxMTHDke/
	xF0Ao9I8QBcwIy3FZOBE66WH2AaW/kXP3PR1oaoqsn9jfg9krFj8/Adq6ZetFmSc6nOfyx
	QryZCAyODtOfGfZAkgEZY/78roqwlJc0T9r+T4mARbrRw8GGk/baADTCGhRn5g==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694732824;
	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=C4Rr1ZDEx/Zv8PGm7NqSsPPGk/svejfhh6SFaxkOdhg=;
	b=H5xKEVQuU6+Ko0r94avzzdl9xxjYAskpZpSveiXESMX50szoKVGGEm+RDgmEofegWl2IjG
	R1bmy5IYb28KyBog9SV/2JRVOUSzbURNtYQYKBTLCm9HfmJ3139yFsnfJHeOnql4PoIMaJ
	dyyqaJquUN4U5OVENL2ATEdakDCOGjQk1Tx/r+6+mnoUtJqduFJaQ2Xr2NS0m4gh+aqY/W
	9BrwACzgSTt/O6b6LjwD1NXkh2AkmeeCKD4Ef6xbPcXYEhG8fSAHhgtbHhaSDyRkK5aKh1
	ckj3XzFQpdfcFfySKxQykUZMrOdlzGNWLqRQ7ctwjK3ewFv148k3KWqvWQf5Qw==
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 4RmtHr26Rbz1FDD;
	Thu, 14 Sep 2023 23:07:04 +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 38EN74uH094751;
	Thu, 14 Sep 2023 23:07:04 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38EN74N3094748;
	Thu, 14 Sep 2023 23:07:04 GMT
	(envelope-from git)
Date: Thu, 14 Sep 2023 23:07:04 GMT
Message-Id: <202309142307.38EN74N3094748@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Mateusz Guzik <mjg@FreeBSD.org>
Subject: git: ba5dc166e0f3 - main - vfs: retire vnlru_under_unlocked
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: mjg
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: ba5dc166e0f390c703042910b637a83c705c8af3
Auto-Submitted: auto-generated

The branch main has been updated by mjg:

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

commit ba5dc166e0f390c703042910b637a83c705c8af3
Author:     Mateusz Guzik <mjg@FreeBSD.org>
AuthorDate: 2023-09-14 23:05:51 +0000
Commit:     Mateusz Guzik <mjg@FreeBSD.org>
CommitDate: 2023-09-14 23:05:51 +0000

    vfs: retire vnlru_under_unlocked
    
    It only looks at the centralized value which in corner cases can end up
    being negative.
---
 sys/kern/vfs_subr.c | 19 +------------------
 1 file changed, 1 insertion(+), 18 deletions(-)

diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index ed478d33aed0..84219f3b5c12 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -1528,23 +1528,6 @@ vnlru_under(u_long rnumvnodes, u_long limit)
 	return (space < limit);
 }
 
-static bool
-vnlru_under_unlocked(u_long rnumvnodes, u_long limit)
-{
-	long rfreevnodes, space;
-
-	if (__predict_false(rnumvnodes > desiredvnodes))
-		return (true);
-
-	space = desiredvnodes - rnumvnodes;
-	if (space < limit) {
-		rfreevnodes = atomic_load_long(&freevnodes);
-		if (rfreevnodes > wantfreevnodes)
-			space += rfreevnodes - wantfreevnodes;
-	}
-	return (space < limit);
-}
-
 static void
 vnlru_kick_locked(void)
 {
@@ -1826,7 +1809,7 @@ vn_alloc(struct mount *mp)
 	if (__predict_false(vn_alloc_cyclecount != 0))
 		return (vn_alloc_hard(mp));
 	rnumvnodes = atomic_fetchadd_long(&numvnodes, 1) + 1;
-	if (__predict_false(vnlru_under_unlocked(rnumvnodes, vlowat))) {
+	if (__predict_false(vnlru_under(rnumvnodes, vlowat))) {
 		atomic_subtract_long(&numvnodes, 1);
 		return (vn_alloc_hard(mp));
 	}

From nobody Fri Sep 15 00:07:08 2023
X-Original-To: dev-commits-src-main@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 4Rmvd86ScWz4t8PW;
	Fri, 15 Sep 2023 00:07: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 4Rmvd860F3z3glR;
	Fri, 15 Sep 2023 00:07:08 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694736428;
	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=MWLgHTPAk1oWx6s81rsAEbDfGvIYyG2jpheAxhbT3Zk=;
	b=VfW+opt2XDUytdX6ScJ8rkJq2C2rOZf2D3GrTNIOLvo3qnnF525C//8SuvpBz3H0CTl8Xv
	FcPGxCxbQ4fkOS1TcLn9BIrvppg7UEwTK2Vt6QHV8huiZp1ixPeK6HsPvmfyuMikU7Ukoc
	JUUm3zxe/sTo1JNEMMQPXbvZwE2mRWJ0ujIsgjgzzwdMSU1EA2Bj63nPenYkaquB3/TQB8
	NI7PXMxwTbCXLdzPgdtY73TuxUG7DY8Qk/lw5BJXIXH2Vfx4YkKdVPkCratskEe4F1646J
	kvVH8IcnrK7WdLPC9vkyhwQd9wCRk/e5l3Su206G+PW0qujIW/IrMhuhJbB6HA==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694736428; a=rsa-sha256; cv=none;
	b=UotFCrMmSCpxxcCDeiw/Tauv8IW/axAC6W6hjFjaRNdYqNI8DC3Y702OMH5Rlk3LUw961Z
	iSkhgmZBBGizbXsEwfTIwSa4yflWamLr20H4RblWz2bTuLJFAVf6YaiKH8/FBCsCswUvr+
	eX0igz8ELppa4mGsfgfruliSFb5/Ls5zTht/c63aoSYz/PfqmDU+jsANF1NdO0TW/JFeeK
	lhk0xZgFv0COewmHzIcjImZrLITA6BvFkmYBHL/aarAm5z26p+28HsXjuZlJTv/eSWd3rg
	dVwmY1B4OKLFfp0afLi1WPFX2GlZLUS8m4+igWqK3DPuPZSmWEEy6KXnNBIvtQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694736428;
	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=MWLgHTPAk1oWx6s81rsAEbDfGvIYyG2jpheAxhbT3Zk=;
	b=JB7SybDaGVXifvvUPEdVEZbx1FawrxiHdDmdyionRv6pSZPoE9WF9vQk0uooTC518XnKfY
	l9fTbvQQs09pxF9ucrRZU8wrUx/+zfE2djazGXuSWI/m8CbzKBNtR0HCAQ4HJ/PxL4OE5g
	1bmZc2qew9jhl08Y1dD6E3N5Me1sOYA+3c2AiVqdjDLMqHqvZ2d0mbzzK9PRFuF0LIi6Ur
	LeXuPIUn/vUYQPiNrVDyy30SbbGiTyPGtI9vFmuyGKqLGQb2pHRTNsj3/c94KuFKK3gKcb
	RMqFVvRkH9g3Mi7M/kMA0HCrYfUib9/ex1cyv7MQlRcFDCz67gz0mVHPEgU76w==
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 4Rmvd853qyz1GWc;
	Fri, 15 Sep 2023 00:07: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 38F078cI094890;
	Fri, 15 Sep 2023 00:07:08 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38F078mH094887;
	Fri, 15 Sep 2023 00:07:08 GMT
	(envelope-from git)
Date: Fri, 15 Sep 2023 00:07:08 GMT
Message-Id: <202309150007.38F078mH094887@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Mateusz Guzik <mjg@FreeBSD.org>
Subject: git: 03bfee175269 - main - vfs: use vnlru_read_freevnodes
  for the freevnodes sysctl
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: mjg
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 03bfee175269960c67cab64d761bbb5eb9ac5878
Auto-Submitted: auto-generated

The branch main has been updated by mjg:

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

commit 03bfee175269960c67cab64d761bbb5eb9ac5878
Author:     Mateusz Guzik <mjg@FreeBSD.org>
AuthorDate: 2023-09-14 23:53:11 +0000
Commit:     Mateusz Guzik <mjg@FreeBSD.org>
CommitDate: 2023-09-15 00:06:57 +0000

    vfs: use vnlru_read_freevnodes for the freevnodes sysctl
    
    For a more accurate result.
---
 sys/kern/vfs_subr.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index 84219f3b5c12..823b8005aa4d 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -184,8 +184,6 @@ static struct vnode *vnode_list_reclaim_marker;
  */
 static long wantfreevnodes;
 static long __exclusive_cache_line freevnodes;
-SYSCTL_ULONG(_vfs, OID_AUTO, freevnodes, CTLFLAG_RD,
-    &freevnodes, 0, "Number of \"free\" vnodes");
 static long freevnodes_old;
 
 static counter_u64_t recycles_count;
@@ -350,6 +348,19 @@ SYSCTL_PROC(_kern, KERN_MAXVNODES, maxvnodes,
     CTLTYPE_ULONG | CTLFLAG_MPSAFE | CTLFLAG_RW, NULL, 0, sysctl_maxvnodes,
     "LU", "Target for maximum number of vnodes");
 
+static int
+sysctl_freevnodes(SYSCTL_HANDLER_ARGS)
+{
+	u_long rfreevnodes;
+
+	rfreevnodes = vnlru_read_freevnodes();
+	return (sysctl_handle_long(oidp, &rfreevnodes, 0, req));
+}
+
+SYSCTL_PROC(_vfs, OID_AUTO, freevnodes,
+    CTLTYPE_ULONG | CTLFLAG_MPSAFE | CTLFLAG_RD, NULL, 0, sysctl_freevnodes,
+    "LU", "Number of \"free\" vnodes");
+
 static int
 sysctl_wantfreevnodes(SYSCTL_HANDLER_ARGS)
 {

From nobody Fri Sep 15 15:34:15 2023
X-Original-To: dev-commits-src-main@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 4RnJBw158Cz4sslv;
	Fri, 15 Sep 2023 15:34:16 +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 4RnJBw0clSz4ThQ;
	Fri, 15 Sep 2023 15:34:16 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694792056;
	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=GyqyfsPXLCe0P4QAKmr6MyROZtcQlqWIu+ZbDFQkgMI=;
	b=vUQe5+kLrUyUvIdc+GP8V7WnvngB1O5iTxM+L4kNKBBzAR3TITXMKtmy2G21W7gUYEcT1C
	2kXytHmeKY5stVMkA2m4KPyPizAoJcc/hhGDjRV53CUp5Lo0pzdWoDUa4G9FWwBNd3Bvki
	hrJBooAGxlBjalvLkkEu/FRru0hIK+h/LPNnKfOedp5Pk4EsCovlwRjF7OKKJoVyv3Vt5y
	6SkHX7UkH8m0lf4TnMnW0IPHwa2XrPYI2Fqr+/jGdRMpTc1sfwyRnEWYlRGwlsUIb4YPX/
	/VyY6BTCKOrAIVUb0JJEvajHIQSrkjtlskiC6Qgr1+k0ScF2tMp6QbIYa8DpBw==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694792056; a=rsa-sha256; cv=none;
	b=tn4/9hEUvJk1W6/ZtttJJkWi9f3KeERmMo9gxXM3cpd18yW01PVCnQfhkld3tgDCTpl/De
	1fRgJ2KbH3W47p7qnqqw03Cs568aYu02mHMBHJIkkV65p5hJlbzmCHPXZdrv1PYm/B4/Dp
	0Xtrh1zr1wN2VwB6SDmgrtxx4YgokT9kkEIFrZ8+IkmZaQ6GQXSWeJWn0LfKIAA0lcUOc0
	1xinxRKBvnYJuNyMU6F68/X1rpfTeD+n6ajsLr2WGisgFtFeHt5ICu8EzUsHeHdaoD4kqE
	Yt0JBmSkshEoyVjDsU/0mjfc4eH5cDfou8lQwVcLcekdjXeXFhXLiddyiFDhBg==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694792056;
	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=GyqyfsPXLCe0P4QAKmr6MyROZtcQlqWIu+ZbDFQkgMI=;
	b=u4poh/yQal5z3ZLQ5KxFNrjAHQKTzmZlqmSI4bYUSfnJZq+UMFFuX843XZQOLC3hAPM9gH
	+v2X/McdxoPCldUZVVC0HlAwzFYIJDLRauP0Xzq5wzAWbdzM4cLBIfn//D0V138vdzSjAe
	+4sFuf5iqEY0DRTu4hvXGklkF/QJgNaq6ENFnZ7Hqzge7zsB7x2QVseSNIila5Mox5/XfW
	bdmCGA+7YKD8VKIfxRrCKUbzbKFjL82kvWJn6gUAsHK+3XhpIJ3Xnc0XeNxbtiqFZywHTF
	l8Q0pVpB4JMIrDv13HRHMBTKyAG1AoXMziTIdRLnoo0hBMWZFXkK+om6Fml94Q==
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 4RnJBv6p62zTpF;
	Fri, 15 Sep 2023 15:34: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 38FFYFbB040764;
	Fri, 15 Sep 2023 15:34:15 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38FFYFcD040761;
	Fri, 15 Sep 2023 15:34:15 GMT
	(envelope-from git)
Date: Fri, 15 Sep 2023 15:34:15 GMT
Message-Id: <202309151534.38FFYFcD040761@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Christos Margiolis <christos@FreeBSD.org>
Subject: git: bbe8195bfad6 - main - kinst: do not look for a function
  epilogue
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: christos
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: bbe8195bfad620e01a7b1cfdb0de3e4b65a72949
Auto-Submitted: auto-generated

The branch main has been updated by christos:

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

commit bbe8195bfad620e01a7b1cfdb0de3e4b65a72949
Author:     Christos Margiolis <christos@FreeBSD.org>
AuthorDate: 2023-09-15 15:33:41 +0000
Commit:     Christos Margiolis <christos@FreeBSD.org>
CommitDate: 2023-09-15 15:33:41 +0000

    kinst: do not look for a function epilogue
    
    kinst currently only traces functions that start and end with the usual
    function prologue and epilogue respectively. Ignoring functions that do
    not have an epilogue however, makes the filtering too strict, as this
    means that we can not trace functions that never return (e.g
    vnlru_proc()). This patch relaxes the filtering and only checks whether
    the function pushes the frame pointer.
    
    Reviewed by:    markj
    Approved by:    markj
    Differential Revision:  https://reviews.freebsd.org/D41876
---
 sys/cddl/dev/kinst/amd64/kinst_isa.c | 18 ++++++++++--------
 sys/cddl/dev/kinst/riscv/kinst_isa.c | 11 +++++------
 2 files changed, 15 insertions(+), 14 deletions(-)

diff --git a/sys/cddl/dev/kinst/amd64/kinst_isa.c b/sys/cddl/dev/kinst/amd64/kinst_isa.c
index 398f30a281c0..b1d3d8727ead 100644
--- a/sys/cddl/dev/kinst/amd64/kinst_isa.c
+++ b/sys/cddl/dev/kinst/amd64/kinst_isa.c
@@ -22,7 +22,6 @@
 #include "kinst.h"
 
 #define KINST_PUSHL_RBP		0x55
-#define KINST_POPL_RBP		0x5d
 #define KINST_STI		0xfb
 #define KINST_POPF		0x9d
 
@@ -502,7 +501,7 @@ kinst_make_probe(linker_file_t lf, int symindx, linker_symval_t *symval,
 	const char *func;
 	int error, instrsize, n, off;
 	uint8_t *instr, *limit, *tmp;
-	bool push_found, pop_found;
+	bool push_found;
 
 	pd = opaque;
 	func = symval->name;
@@ -521,17 +520,20 @@ kinst_make_probe(linker_file_t lf, int symindx, linker_symval_t *symval,
 	 * manipulations since they might correspond to exception handlers.
 	 */
 	tmp = instr;
-	push_found = pop_found = false;
+	push_found = false;
 	while (tmp < limit) {
-		if (*tmp == KINST_PUSHL_RBP)
+		/*
+		 * Checking for 'pop %rbp' as well makes the filtering too
+		 * strict as it would skip functions that never return (e.g.,
+		 * vnlru_proc()).
+		 */
+		if (*tmp == KINST_PUSHL_RBP) {
 			push_found = true;
-		else if (*tmp == KINST_POPL_RBP)
-			pop_found = true;
-		if (push_found && pop_found)
 			break;
+		}
 		tmp += dtrace_instr_size(tmp);
 	}
-	if (!push_found || !pop_found)
+	if (!push_found)
 		return (0);
 
 	n = 0;
diff --git a/sys/cddl/dev/kinst/riscv/kinst_isa.c b/sys/cddl/dev/kinst/riscv/kinst_isa.c
index 9c1f4a239f83..1fabde189712 100644
--- a/sys/cddl/dev/kinst/riscv/kinst_isa.c
+++ b/sys/cddl/dev/kinst/riscv/kinst_isa.c
@@ -448,7 +448,7 @@ kinst_make_probe(linker_file_t lf, int symindx, linker_symval_t *symval,
 	kinst_patchval_t *insn, v;
 	uint8_t *instr, *limit;
 	int instrsize, n, off;
-	bool lrsc_block, store_found, ret_found;
+	bool lrsc_block, store_found;
 
 	pd = opaque;
 	func = symval->name;
@@ -464,16 +464,15 @@ kinst_make_probe(linker_file_t lf, int symindx, linker_symval_t *symval,
 		return (0);
 
 	/* Check for the usual function prologue. */
+	store_found = false;
 	for (insn = (kinst_patchval_t *)instr;
 	    insn < (kinst_patchval_t *)limit; insn++) {
-		if (dtrace_instr_sdsp(&insn) || dtrace_instr_c_sdsp(&insn))
+		if (dtrace_instr_sdsp(&insn) || dtrace_instr_c_sdsp(&insn)) {
 			store_found = true;
-		else if (dtrace_instr_ret(&insn) || dtrace_instr_c_ret(&insn))
-			ret_found = true;
-		if (store_found && ret_found)
 			break;
+		}
 	}
-	if (!store_found || !ret_found)
+	if (!store_found)
 		return (0);
 
 	n = 0;

From nobody Fri Sep 15 19:40:59 2023
X-Original-To: dev-commits-src-main@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 4RnPgb48Zcz4sj97;
	Fri, 15 Sep 2023 19:40: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 4RnPgb3jVJz3clk;
	Fri, 15 Sep 2023 19:40:59 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694806859;
	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=EcxyQ687zSf9/WFyWsZKpCBK1EvATAI7AHK8E+2usqs=;
	b=oHKfMnw9oyyF3CqYm/L8N5H2ANa/bIVkZHsoa1djxMCwsx8FO4TTdkJjPmBrfEmFnGBwru
	643htK1c5PM9MGPRnc8/lKVLH58ne2U/vH7sK1O+eZEVa8WPYnLIoN5VoHP6yBtCFm/6/e
	8+Tbfk1vVnNAlNrFCIXpE2D22upJx6D73f1myMihrGpoAW6iY732HA7plAG6kJCwyzr5zM
	TXaoTlXyxAIlwd9z0Q4/SfH6IchJT/SqBohNBgaLWMmNUywzzMoykStIicaaiq4iVfKybm
	LQS3Uyyb6piGlFvSPTJP7zMEp3ddxDH9rZzv800X88SuRL/dKKXc9RpWCwePrQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694806859; a=rsa-sha256; cv=none;
	b=FmESgEgOmwFf+Yfz6Re6UiqxRRKJrKVd1r3whXROBV3hpsOh0QNmEOAPb3cRX9nCkqksyZ
	UqVMitGEYo7RStudx72vOGHFcqbd7jf/Joz5VEZu/jCpSRfIY12IRzViueJdg5rRHr1osG
	PA4kWdTw0gsOyUXSJPeEGhQ3M8NzZ/wxRlGqv/OWUsqogSCgpeDGp5azcvKpzIFD99SpS+
	supgUyD06hd8aaToldcamn9iAXIb9SKhMBWwbeWsiBJlH/LAUkANCo0O6GSO2AmrvAiM/s
	zOFFWtY5QI3YpCbJU/ZmYZk09ZdoQlqnf3TdL9eUTfS0a0nodTf2bdU1pxqYBg==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694806859;
	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=EcxyQ687zSf9/WFyWsZKpCBK1EvATAI7AHK8E+2usqs=;
	b=km7JmI9ah7K7z/7zvSYBFvz9cX6LXVeNUTg3O5eUX6Ku0/JFy7wi5YvoGf9WtiAZKTQcTG
	VsXrmSY7TVG2IoYYjCDS01Hh/+BBEEuQp4WLNEN0VhetAcfJIEnzGxby4dhf3jHx3WNUPT
	+85640UY68NTf5sIJcJ1ty4HCVh6Y0LmhZiYvTYC/w17ofxdog6f4tlx9yMF9Rwkjx3Zsr
	KH90gRlBDoUhhLAqpvDkT9AUok+xb0XDFtJEWarwG/RcyTtNRofy1qEjWCFvqZSm4Ri3gt
	CbP02gyhEm3J1Ni5TeDSdibjvrURwz1UO6Z6TfJ3yT0e0JKv7Wrah1A5DUXKOg==
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 4RnPgb2mhkzcYk;
	Fri, 15 Sep 2023 19:40: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 38FJexJN048498;
	Fri, 15 Sep 2023 19:40:59 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38FJexCc048494;
	Fri, 15 Sep 2023 19:40:59 GMT
	(envelope-from git)
Date: Fri, 15 Sep 2023 19:40:59 GMT
Message-Id: <202309151940.38FJexCc048494@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Konstantin Belousov <kib@FreeBSD.org>
Subject: git: 72d97e1dd9cc - main - rtld: output rtld errors into
  the dbg channel
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@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/main
X-Git-Reftype: branch
X-Git-Commit: 72d97e1dd9cc72a2acb96e35e56db6f3f51bca7d
Auto-Submitted: auto-generated

The branch main has been updated by kib:

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

commit 72d97e1dd9cc72a2acb96e35e56db6f3f51bca7d
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2023-09-15 19:26:50 +0000
Commit:     Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2023-09-15 19:40:41 +0000

    rtld: output rtld errors into the dbg channel
    
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
---
 libexec/rtld-elf/rtld.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c
index aa7e6020a085..f8c4c18b5d5e 100644
--- a/libexec/rtld-elf/rtld.c
+++ b/libexec/rtld-elf/rtld.c
@@ -1073,6 +1073,7 @@ _rtld_error(const char *fmt, ...)
 	    fmt, ap);
 	va_end(ap);
 	*lockinfo.dlerror_seen() = 0;
+	dbg("rtld_error: %s", lockinfo.dlerror_loc());
 	LD_UTRACE(UTRACE_RTLD_ERROR, NULL, NULL, 0, 0, lockinfo.dlerror_loc());
 }
 

From nobody Fri Sep 15 21:36:51 2023
X-Original-To: dev-commits-src-main@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 4RnSFH6cz7z4tDnT;
	Fri, 15 Sep 2023 21:36: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 4RnSFH67Rhz4TKK;
	Fri, 15 Sep 2023 21:36:51 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694813811;
	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=YgUJ4C5OVB7RcvH16yC77Hxh6fndiej8PFG0XTcLrok=;
	b=XP0QuaVZIMWdeJ8rX3ub/rgU2JYGCvyjdM0Y2Kp07P3ex0QcpknY6FH2YeFswozXjjism1
	0yXqYD/gKCsmcpszKTuhG4ElyckP8lrCVoRHD6sXdnyvI/XMCTIsUYXaI7C89T6nZF4TXB
	3g5IkWOqTkmXkJPDb8sx4abBobMxxzpioQyOPYwsENCPotW/GKCz9ndNLARzlBoDi9WJt6
	u5K1fnetIFF8ZW52aypvWjuXtoVjC+gxjkNrW5dw7QF4ky55h9iq6khK+rGRTJeD555IWC
	2CaxvdVeE0bAV3QnhbM2VHufWygpONFNLZW9tF1o6IvK+pTmiBlf8ttHkJbjBQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694813811; a=rsa-sha256; cv=none;
	b=NTzHuN+FRDjhZRY57qF12zRIU1IjC//XrO3O1JZg4GSf9yk/qXPuRTJUwquqnvQL2KD51j
	i6B2TLVtXLzK6ya5ocsinVlv+Iach4+uL2bdNwHkt1/olOlusUOewO6TNOs/ofSPzjS4W6
	mn7k93g0XKRxoOGqgjx039jWoLQXFZq+8mlwwakpTTaH/yaprJ+1/3QLvBPMMdGMl930Ws
	NLPdpDsTWkQ6rihr7lwNgnWd/uXz8KudrFdV7eko7z0wSZ1wpjmUZPdQD1wtZphdGo/fl4
	hRff6ScA5eMmiRS7pzWbewD2/GPmcJtpDau1dpIquZQ7wL7hhx7NYVzsFaS3NA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694813811;
	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=YgUJ4C5OVB7RcvH16yC77Hxh6fndiej8PFG0XTcLrok=;
	b=Wo2Rv8rhw5lC4wqMv8HsAfPiYmoTVB4CL2EC55gUjxbHEW13IPW2XPpo3Q80/a5G3yK8Ce
	0LwyqfeO+UhqFHDgqnP10Bp/W0BLLDzEI42yI4jy5gQ+vknETqNxuKe8Tv2S6cMwli1GB3
	556UvG8Nk2tn3ejyoulLclug46vSq8Vq+1WJlu9jcFZvqh7WqQnAz4YlKVYD8vW/MOysWX
	hTouVcx+obcNsfd7HioLxeU9aI6CBoldTmcO0PNrrr3lRKfQwEIq7a76Of/VytM5eTM4je
	iWzVvVSE1m4Uw4VoGNeMiGLHyegsN3a42VqCNbIhvvvCMyJ2Xr/sELmdj2Zl7w==
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 4RnSFH54ggzgLS;
	Fri, 15 Sep 2023 21:36: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 38FLapUi038045;
	Fri, 15 Sep 2023 21:36:51 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38FLap9X038042;
	Fri, 15 Sep 2023 21:36:51 GMT
	(envelope-from git)
Date: Fri, 15 Sep 2023 21:36:51 GMT
Message-Id: <202309152136.38FLap9X038042@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= <des@FreeBSD.org>
Subject: git: 7e0a7ef95fac - main - tcpdump: Initialize tzcode
  early.
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@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/main
X-Git-Reftype: branch
X-Git-Commit: 7e0a7ef95fac1183854cab662bd9afa4647422d6
Auto-Submitted: auto-generated

The branch main has been updated by des:

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

commit 7e0a7ef95fac1183854cab662bd9afa4647422d6
Author:     Dag-Erling Smørgrav <des@FreeBSD.org>
AuthorDate: 2023-09-15 21:36:41 +0000
Commit:     Dag-Erling Smørgrav <des@FreeBSD.org>
CommitDate: 2023-09-15 21:36:41 +0000

    tcpdump: Initialize tzcode early.
    
    An explicit tzset() call is usually not needed as it happens implicitly
    the first time we call localtime() or mktime(), but in some cases
    (sandboxing, chroot) this may be too late.
    
    PR:             273807
    MFC after:      3 days
    Reviewed by:    jrm
    Differential Revision:  https://reviews.freebsd.org/D41880
---
 contrib/tcpdump/tcpdump.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/contrib/tcpdump/tcpdump.c b/contrib/tcpdump/tcpdump.c
index 52209fedb999..8cfcb04fc093 100644
--- a/contrib/tcpdump/tcpdump.c
+++ b/contrib/tcpdump/tcpdump.c
@@ -1564,6 +1564,8 @@ main(int argc, char **argv)
 	if (abort_on_misalignment(ebuf, sizeof(ebuf)) < 0)
 		error("%s", ebuf);
 
+	tzset();
+
 	while (
 	    (op = getopt_long(argc, argv, SHORTOPTS, longopts, NULL)) != -1)
 		switch (op) {

From nobody Sat Sep 16 04:23:32 2023
X-Original-To: dev-commits-src-main@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 4RndGY2w5cz4smBD;
	Sat, 16 Sep 2023 04:23: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 4RndGY0RZNz4bgV;
	Sat, 16 Sep 2023 04:23:33 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694838213;
	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=/8th/LDc9pWq9zDnwk97wjBli/u+49Au75i0yCgrUSA=;
	b=mcncSohkY4RxD1vSD4ah46hyuXI9abLJjRCmpgUXaATNv20UXXBPvhMjCRWSZA3X6Q3yJ+
	f9dy4kDRw/zOeCFFb1vDwEYCXIYvqCuwhtMNjDzFFtPcGlW51e9mZIn+Kr+C0zGZlD4BDx
	egjXjfGoDAgHtsIHEFMfgS47fIQdMQfTV8qXdTXScG+OnoxnmuTHpmqtbHOZepJvyhIIA8
	oBoSHGF/a0UwExYVSSVwmgYSDk2mhnGNGP0Z/CcAIdmI93Pj3szNfjlfc1e7OZSL/xwE+4
	ECxVO3eipO1mernjarsmWpE/zNE5i1wt+ihuw8CXgKDwqrQU9DsLg6+WCrD0Jg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694838213; a=rsa-sha256; cv=none;
	b=m2sDc3qoOegViJwP45spl30Bt1TaNKVePU7M3772gfO9+WFqi8ZiAtZPIsRhTBpkHIkY6H
	0To40peYlW1YGzcaBwlZVDkOSVCrL2oiQ420laae0uCjq8Px2hmoKgLa/13SrT+F28Qwrn
	Y/PopVijXMU5PjQpN3X3yumIztx7sHXcilWIDN3os3JKuyh1UhgsHJBaIimLUdgx1cgh85
	K2/k6NHX8ed/VBJugilO1eP6mn6wbIhrTand8Flg2g/8YCL6oqblCcjNuLRizIf3ic1+yj
	SgHmq8iRt0M+kZIbRvmALvB3F+u4xOLkEon9pW/H1o1U/frloPcsCo93g3py2A==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694838213;
	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=/8th/LDc9pWq9zDnwk97wjBli/u+49Au75i0yCgrUSA=;
	b=IcMOFkRmNcmMz9V+rkK/583D7h8bWgAKCAFds7/ZjUg8lTMludD0whH4xzCqEpaFHbOnTG
	YGbmcvu8JR/p434BSY/v1T2gJgVABtZsRoiS2dcWnL9cP6TnmFkGvWiTqlv8aRgwqh6WWJ
	DuOPNP+VZVuH566w4J2tLTGkZNKIrqGjJEDQLW6Cjo7/RzVuY3tZWKZou9f+JIrziLtoV4
	mWTV8034AXZv8v4QMw09qtdMzKpCDfMZDTCx6+hr2UC69Bk/obpSMNnA7Ps+kPhNfCOFvf
	gt4j1XQb+30Vkr1qa2nOXSL+Uppld7bl48cdwnNf6CmOSgDcj49irFE/t1MiCQ==
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 4RndGX6HwBzsfF;
	Sat, 16 Sep 2023 04:23: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 38G4NWSA019461;
	Sat, 16 Sep 2023 04:23:32 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38G4NW9A019458;
	Sat, 16 Sep 2023 04:23:32 GMT
	(envelope-from git)
Date: Sat, 16 Sep 2023 04:23:32 GMT
Message-Id: <202309160423.38G4NW9A019458@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Robert Clausecker <fuz@FreeBSD.org>
Subject: git: 953b93cf24d8 - main - lib/libc/amd64/string/memcmp.S:
  harden against phony buffer lengths
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: fuz
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 953b93cf24d8871c62416c9bcfca935f1f1853b6
Auto-Submitted: auto-generated

The branch main has been updated by fuz:

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

commit 953b93cf24d8871c62416c9bcfca935f1f1853b6
Author:     Robert Clausecker <fuz@FreeBSD.org>
AuthorDate: 2023-09-14 05:19:01 +0000
Commit:     Robert Clausecker <fuz@FreeBSD.org>
CommitDate: 2023-09-16 04:20:32 +0000

    lib/libc/amd64/string/memcmp.S: harden against phony buffer lengths
    
    When memcmp(a, b, len) (or equally, bcmp) is called with a phony length
    such that a + len < a, the code would malfunction and not compare the
    two buffers correctly.  While such arguments are illegal (buffers do not
    wrap around the end of the address space), it is neverthless conceivable
    that people try things like memcmp(a, b, SIZE_MAX) to compare a and b
    until the first mismatch, in the knowledge that such a mismatch exists,
    expecting memcmp() to stop comparing somewhere around the mismatch.
    While memcmp() is usually written to confirm to this assumption, no
    version of ISO/IEC 9899 guarantees this behaviour (in contrast to
    memchr() for which it is).
    
    Neverthless it appears sensible to at least not grossly misbehave on
    phony lengths.  This change hardens memcmp() against this case by
    comparing at least until the end of the address space if a + len
    overflows a 64 bit integer.
    
    Sponsored by:   The FreeBSD Foundation
    Approved by:    mjg (blanket, via IRC)
    See also:       b2618b651b28fd29e62a4e285f5be09ea30a85d4
    MFC after:      1 week
---
 lib/libc/amd64/string/memcmp.S | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/lib/libc/amd64/string/memcmp.S b/lib/libc/amd64/string/memcmp.S
index d192229677b3..dc8bcff73cb9 100644
--- a/lib/libc/amd64/string/memcmp.S
+++ b/lib/libc/amd64/string/memcmp.S
@@ -328,13 +328,28 @@ ARCHENTRY(memcmp, baseline)
 	movdqu		16(%rsi, %rdi, 1), %xmm1
 	pcmpeqb		16(%rdi), %xmm1		# compare second half of this iteration
 	add		%rcx, %rdx		# pointer to last byte in buffer
-	pcmpeqb		%xmm2, %xmm0
+	jc		.Loverflow		# did this overflow?
+0:	pcmpeqb		%xmm2, %xmm0
 	pmovmskb	%xmm0, %eax
 	xor		$0xffff, %eax		# any mismatch?
 	jne		.Lmismatch_head
 	add		$64, %rdi		# advance to next iteration
 	jmp		1f			# and get going with the loop
 
+	/*
+	 * If we got here, a buffer length was passed to memcmp(a, b, len)
+	 * such that a + len < a.  While this sort of usage is illegal,
+	 * it is plausible that a caller tries to do something like
+	 * memcmp(a, b, SIZE_MAX) if a and b are known to differ, intending
+	 * for memcmp() to stop comparing at the first mismatch.  This
+	 * behaviour is not guaranteed by any version of ISO/IEC 9899,
+	 * but usually works out in practice.  Let's try to make this
+	 * case work by comparing until the end of the address space.
+	 */
+.Loverflow:
+	mov		$-1, %rdx		# compare until the end of memory
+	jmp		0b
+
 	/* process buffer 32 bytes at a time */
 	ALIGN_TEXT
 0:	movdqu		-32(%rsi, %rdi, 1), %xmm0

From nobody Sat Sep 16 07:40:33 2023
X-Original-To: dev-commits-src-main@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 4Rnjds4HZRz4tdMg;
	Sat, 16 Sep 2023 07:40: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 4Rnjds3sJfz4Fd0;
	Sat, 16 Sep 2023 07:40:33 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694850033;
	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=My3q3mWQlr6xS0aHDHBjlu36cYDjbTuhhtKSs0nUs88=;
	b=NFnvM0wur9vSdLAbi5/jDptAb9mqBuIEzLbu/hDXilIOwlN1bgOxwEhM5BoQKC9bJC9Ire
	JlGDCOYH+icTPS5bkkJCNQkBMIqiplX/VXorbXxmORJnMyYraaTj15bno84dL+YUbgipje
	N59X2Kqy4H3uqibZxLge/+DUSVUTwf8Et3BR+p09qfulkn0IqKYVa6PDZ9lB101ME4yUwV
	dDRwu1H1f0VkFaDvmNXiN64m9mNMqltmX5oy9RRfqBh75wLLS30TjI5HjF+ZUDC6bXyLrT
	sc8dUdbixRorMah/r/MY8Lp0Mjj+a+h8y58JVX/rZt+Rw5LMIpAdXXHgGwldYQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694850033; a=rsa-sha256; cv=none;
	b=BhY1LfKwHc9E7+TkYIju2RSyQKoYq7Aw2PViOhljicOuHmo3yZIIlFA3OM4IYT9JFyQ51i
	cHnYi+Zzup4R9mFo8bWwuLrBQZrCqj65VwCEgx2QnjdxSokyciGuBIZbuv9R7g4MavSJZT
	ZHpoY8IY8uTCrGIMRO67oTDyM1tWqlu+wgPT1AD+z4QFoPAyL7xclFgYN6faNZuQWsY15E
	ZRtK2liKmn3JO/Q2HXyolGY+pQLZfSwhCvWyXiV/l5VTq7gcuLujNsZNpiIMagaIuQR9LJ
	vHlpatEHNTFfBfIMRfoQpcuwpaqdAlf/Prir2uwl7esnmM0t7F5Psk4zUmaikQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694850033;
	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=My3q3mWQlr6xS0aHDHBjlu36cYDjbTuhhtKSs0nUs88=;
	b=HLkEFUtPmBSdm3ngcgmuDkwav+/X6tt1gKx2URhIah7OUEk8hrf8Ur/shbVsblsvRaHBTV
	ZbEsomAILZss0sPHMBARNvpCb0LWjCwMfgSTiZDAgRyvWzA+nBMRVjI1hwG9oav5S99L/n
	0tGp4jYXYwIXXeU8fbQIcxvDtGNtXgjPmz+zEkYrglViEulZErZqMzfsVnVD7eWouz/Rsz
	nI2NxAG2MeCJshK7InrQb1DHNXX4HV8pH5r4Ly81d6gaqlnDWeMo57BZgxwrxIJ7rDXdS6
	yOvqyrYLgTs3OH6GFefLemlfkuTktUSLmt5eO7VGGBnVG/eMbFx8g6FaA2CZJg==
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 4Rnjds2qBDzxXB;
	Sat, 16 Sep 2023 07:40: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 38G7eXWZ042863;
	Sat, 16 Sep 2023 07:40:33 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38G7eXrU042860;
	Sat, 16 Sep 2023 07:40:33 GMT
	(envelope-from git)
Date: Sat, 16 Sep 2023 07:40:33 GMT
Message-Id: <202309160740.38G7eXrU042860@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Mateusz Guzik <mjg@FreeBSD.org>
Subject: git: 2a689cadf092 - main - vfs: retire kern.minvnodes
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: mjg
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 2a689cadf092a3319d7619c3f4aa242011c20c8e
Auto-Submitted: auto-generated

The branch main has been updated by mjg:

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

commit 2a689cadf092a3319d7619c3f4aa242011c20c8e
Author:     Mateusz Guzik <mjg@FreeBSD.org>
AuthorDate: 2023-09-16 07:33:36 +0000
Commit:     Mateusz Guzik <mjg@FreeBSD.org>
CommitDate: 2023-09-16 07:33:36 +0000

    vfs: retire kern.minvnodes
    
    It was marked as legacy in 2005.
---
 sys/kern/vfs_subr.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index 823b8005aa4d..f4cccf2b4e1f 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -385,8 +385,6 @@ SYSCTL_PROC(_vfs, OID_AUTO, wantfreevnodes,
     CTLTYPE_ULONG | CTLFLAG_MPSAFE | CTLFLAG_RW, NULL, 0, sysctl_wantfreevnodes,
     "LU", "Target for minimum number of \"free\" vnodes");
 
-SYSCTL_ULONG(_kern, OID_AUTO, minvnodes, CTLFLAG_RW,
-    &wantfreevnodes, 0, "Old name for vfs.wantfreevnodes (legacy)");
 static int vnlru_nowhere;
 SYSCTL_INT(_debug, OID_AUTO, vnlru_nowhere, CTLFLAG_RW | CTLFLAG_STATS,
     &vnlru_nowhere, 0, "Number of times the vnlru process ran without success");

From nobody Sat Sep 16 07:40:34 2023
X-Original-To: dev-commits-src-main@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 4Rnjdt5HGvz4td8D;
	Sat, 16 Sep 2023 07:40: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 4Rnjdt4kN2z4FrD;
	Sat, 16 Sep 2023 07:40:34 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694850034;
	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=UKNruRthCfL/doOk4OGslX8NxxFJ81iq8KvtDqXc28A=;
	b=hdEEQ6tjHMMIlfD3BJihI/VeeFeiVABDffjX8I5Gj7K5RiG5lypA/ZPVbQlA4pmEjetyjj
	UdtlC0/Q7TrzlU0anjP/ackxEd92t5FA6YWg73E5gE0LcYR5yxKgopIr9+yPTkWy3+fOso
	RG8Bmp7hI0e5rfAftg7o2tpYA5qFEf/HdrC4QRc9GrXI54ogKhjPXNEr8bFrPrginC5Y3g
	FdUqaDlYV0R1iCIkfQ5pzGe1jVU3YeVU/2HelaiVYGvohCYMaFuLBVg1qi11tr0rpTbaQw
	tAHx8cWNdkLr9IGszvkscih46J9n1Nj6Xd7e0f7KJ8WsmEf6JJ2eIEeEqAFSqQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694850034; a=rsa-sha256; cv=none;
	b=pvUowZcx45cMtlSJv6NGyoYTAKpUTSOt0Maop5OsSq2Tn2H5MZgs6MGp6rieW4E59O0CCg
	uxBRWYqXWgSdrpBTyiPmd2bqwy5C2NOEYFUSHOJytPJ7mcw+lpZs8uR7fHdVvMUAd+pqfF
	lnKT3a7OQRxpaepOeM11B4ey77LPi9IsNUwAJJqI37Eo9i30PQBiySn0SYBWKAZlCAsrFB
	scdlwbpDtraB/IK21mr3byY6jnzv2bt/LKKVOSlrt1DJAA5qidcC7MBP2NMyo7M5klQDfU
	zmGXleNGaYtE7gHVEMzivSH7+4x2kEvoBHr0ED5u3i0hm7xWVxd1dw0iM7RxZw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694850034;
	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=UKNruRthCfL/doOk4OGslX8NxxFJ81iq8KvtDqXc28A=;
	b=NY6GETrtEJQvbZrMg+LbfaArAbBjjFdMsrx6Biue9fSC15dXKQuAnRhQs1Af0adzUhCwnZ
	PIwKSsHVEaGE0iinc5Ljr6eEw3au8kqcMMS6SjldFnRcAbkPWv4+5a8YBuOj92fWtXSj9U
	7xOcUtTOoWxmdPp29giZA4YluUFFAak8+GzOu8jPQP82aeZ/amq06q8YCpz7ZK5NQaNwMe
	XbkRCXeWexCFeo0VksI6ZcOmnIck2/8NdeO08fRatHzsgGCbAMI40ge5QSWvnmT/Um9xDF
	ESDOoQMm/KeBnb+WbBoH6XoIbumDRK10IB4ibQt83Y99wMb4vEGDYAdmqgz7yQ==
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 4Rnjdt3qnFzxtj;
	Sat, 16 Sep 2023 07:40: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 38G7eYUk042911;
	Sat, 16 Sep 2023 07:40:34 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38G7eYCP042908;
	Sat, 16 Sep 2023 07:40:34 GMT
	(envelope-from git)
Date: Sat, 16 Sep 2023 07:40:34 GMT
Message-Id: <202309160740.38G7eYCP042908@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Mateusz Guzik <mjg@FreeBSD.org>
Subject: git: d3e647891243 - main - vfs: group vnode-related sysctls
  under vfs.vnode
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: mjg
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: d3e6478912431309aad36211b6c39b0d741312dc
Auto-Submitted: auto-generated

The branch main has been updated by mjg:

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

commit d3e6478912431309aad36211b6c39b0d741312dc
Author:     Mateusz Guzik <mjg@FreeBSD.org>
AuthorDate: 2023-09-15 21:08:38 +0000
Commit:     Mateusz Guzik <mjg@FreeBSD.org>
CommitDate: 2023-09-16 07:39:42 +0000

    vfs: group vnode-related sysctls under vfs.vnode
    
    Instead of having things scattered through vfs, debug and kern trees.
    
    Old names remain for compatibility.
    
    Sample output of "sysctl vfs.vnode":
    vfs.vnode.vnlru.failed_runs: 0
    vfs.vnode.vnlru.recycles_free: 0
    vfs.vnode.vnlru.recycles: 0
    vfs.vnode.stats.alloc_sleeps: 0
    vfs.vnode.stats.free: 1310
    vfs.vnode.stats.skipped_requeues: 0
    vfs.vnode.stats.created: 1686
    vfs.vnode.stats.count: 1641
    vfs.vnode.param.wantfree: 2097152
    vfs.vnode.param.limit: 8388608
---
 sys/kern/vfs_subr.c | 32 +++++++++++++++++++++++++++++---
 1 file changed, 29 insertions(+), 3 deletions(-)

diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index f4cccf2b4e1f..a8477e4b691e 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -126,6 +126,15 @@ static int	v_inval_buf_range_locked(struct vnode *vp, struct bufobj *bo,
 		    daddr_t startlbn, daddr_t endlbn);
 static void	vnlru_recalc(void);
 
+static SYSCTL_NODE(_vfs, OID_AUTO, vnode, CTLFLAG_RW | CTLFLAG_MPSAFE, 0,
+    "vnode configuration and statistics");
+static SYSCTL_NODE(_vfs_vnode, OID_AUTO, param, CTLFLAG_RW | CTLFLAG_MPSAFE, 0,
+    "vnode configuration");
+static SYSCTL_NODE(_vfs_vnode, OID_AUTO, stats, CTLFLAG_RW | CTLFLAG_MPSAFE, 0,
+    "vnode statistics");
+static SYSCTL_NODE(_vfs_vnode, OID_AUTO, vnlru, CTLFLAG_RW | CTLFLAG_MPSAFE, 0,
+    "vnode recycling");
+
 /*
  * Number of vnodes in existence.  Increased whenever getnewvnode()
  * allocates a new vnode, decreased in vdropl() for VIRF_DOOMED vnode.
@@ -133,10 +142,14 @@ static void	vnlru_recalc(void);
 static u_long __exclusive_cache_line numvnodes;
 
 SYSCTL_ULONG(_vfs, OID_AUTO, numvnodes, CTLFLAG_RD, &numvnodes, 0,
+    "Number of vnodes in existence (legacy)");
+SYSCTL_ULONG(_vfs_vnode_stats, OID_AUTO, count, CTLFLAG_RD, &numvnodes, 0,
     "Number of vnodes in existence");
 
 static counter_u64_t vnodes_created;
 SYSCTL_COUNTER_U64(_vfs, OID_AUTO, vnodes_created, CTLFLAG_RD, &vnodes_created,
+    "Number of vnodes created by getnewvnode (legacy)");
+SYSCTL_COUNTER_U64(_vfs_vnode_stats, OID_AUTO, created, CTLFLAG_RD, &vnodes_created,
     "Number of vnodes created by getnewvnode");
 
 /*
@@ -188,14 +201,18 @@ static long freevnodes_old;
 
 static counter_u64_t recycles_count;
 SYSCTL_COUNTER_U64(_vfs, OID_AUTO, recycles, CTLFLAG_RD, &recycles_count,
+    "Number of vnodes recycled to meet vnode cache targets (legacy)");
+SYSCTL_COUNTER_U64(_vfs_vnode_vnlru, OID_AUTO, recycles, CTLFLAG_RD, &recycles_count,
     "Number of vnodes recycled to meet vnode cache targets");
 
 static counter_u64_t recycles_free_count;
 SYSCTL_COUNTER_U64(_vfs, OID_AUTO, recycles_free, CTLFLAG_RD, &recycles_free_count,
+    "Number of free vnodes recycled to meet vnode cache targets (legacy)");
+SYSCTL_COUNTER_U64(_vfs_vnode_vnlru, OID_AUTO, recycles_free, CTLFLAG_RD, &recycles_free_count,
     "Number of free vnodes recycled to meet vnode cache targets");
 
 static counter_u64_t vnode_skipped_requeues;
-SYSCTL_COUNTER_U64(_vfs, OID_AUTO, vnode_skipped_requeues, CTLFLAG_RD, &vnode_skipped_requeues,
+SYSCTL_COUNTER_U64(_vfs_vnode_stats, OID_AUTO, skipped_requeues, CTLFLAG_RD, &vnode_skipped_requeues,
     "Number of times LRU requeue was skipped due to lock contention");
 
 static u_long deferred_inact;
@@ -345,6 +362,9 @@ sysctl_maxvnodes(SYSCTL_HANDLER_ARGS)
 }
 
 SYSCTL_PROC(_kern, KERN_MAXVNODES, maxvnodes,
+    CTLTYPE_ULONG | CTLFLAG_MPSAFE | CTLFLAG_RW, NULL, 0, sysctl_maxvnodes,
+    "LU", "Target for maximum number of vnodes (legacy)");
+SYSCTL_PROC(_vfs_vnode_param, OID_AUTO, limit,
     CTLTYPE_ULONG | CTLFLAG_MPSAFE | CTLFLAG_RW, NULL, 0, sysctl_maxvnodes,
     "LU", "Target for maximum number of vnodes");
 
@@ -358,6 +378,9 @@ sysctl_freevnodes(SYSCTL_HANDLER_ARGS)
 }
 
 SYSCTL_PROC(_vfs, OID_AUTO, freevnodes,
+    CTLTYPE_ULONG | CTLFLAG_MPSAFE | CTLFLAG_RD, NULL, 0, sysctl_freevnodes,
+    "LU", "Number of \"free\" vnodes (legacy)");
+SYSCTL_PROC(_vfs_vnode_stats, OID_AUTO, free,
     CTLTYPE_ULONG | CTLFLAG_MPSAFE | CTLFLAG_RD, NULL, 0, sysctl_freevnodes,
     "LU", "Number of \"free\" vnodes");
 
@@ -382,11 +405,14 @@ sysctl_wantfreevnodes(SYSCTL_HANDLER_ARGS)
 }
 
 SYSCTL_PROC(_vfs, OID_AUTO, wantfreevnodes,
+    CTLTYPE_ULONG | CTLFLAG_MPSAFE | CTLFLAG_RW, NULL, 0, sysctl_wantfreevnodes,
+    "LU", "Target for minimum number of \"free\" vnodes (legacy)");
+SYSCTL_PROC(_vfs_vnode_param, OID_AUTO, wantfree,
     CTLTYPE_ULONG | CTLFLAG_MPSAFE | CTLFLAG_RW, NULL, 0, sysctl_wantfreevnodes,
     "LU", "Target for minimum number of \"free\" vnodes");
 
 static int vnlru_nowhere;
-SYSCTL_INT(_debug, OID_AUTO, vnlru_nowhere, CTLFLAG_RW | CTLFLAG_STATS,
+SYSCTL_INT(_vfs_vnode_vnlru, OID_AUTO, failed_runs, CTLFLAG_RD | CTLFLAG_STATS,
     &vnlru_nowhere, 0, "Number of times the vnlru process ran without success");
 
 static int
@@ -1755,7 +1781,7 @@ vtryrecycle(struct vnode *vp)
 static u_long vn_alloc_cyclecount;
 static u_long vn_alloc_sleeps;
 
-SYSCTL_ULONG(_vfs, OID_AUTO, vnode_alloc_sleeps, CTLFLAG_RD, &vn_alloc_sleeps, 0,
+SYSCTL_ULONG(_vfs_vnode_stats, OID_AUTO, alloc_sleeps, CTLFLAG_RD, &vn_alloc_sleeps, 0,
     "Number of times vnode allocation blocked waiting on vnlru");
 
 static struct vnode * __noinline

From nobody Sat Sep 16 07:52:15 2023
X-Original-To: dev-commits-src-main@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 4RnjvM5Dthz4thCp;
	Sat, 16 Sep 2023 07:52: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 4RnjvM4nW0z4JjF;
	Sat, 16 Sep 2023 07:52:15 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694850735;
	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=5WHPyqOUvF3T3dId8iLBxVuEEJh674eBdL7VyeGltEo=;
	b=Ix+cMxCY0j/YNNdX+oo/c/Kzes/4xouQtNab0MTZmYVc/WIA0VmEtbk2B0ofOkYGZZvFjP
	r+8KGCiae7hNEIanD1mmzAv9M/0P60M8cChzaM46b1/p06iafLWqVurlBooiV1UY7W6NTn
	6QSJQVUvHQLjslT3d8/64SStDExLUqK6rqFJRN8mDxS1mMATE3vfblM/s7M5jyPWdv8Pf+
	DLwnkRbFeviiIVUC94wQHpATgO66SWVsBZqrqX7oEXLZHJaF2tLfBFOvxO6Dz1VukAA4Wp
	N+8tziOYn3Av++z8wRmXTd5bx5l4BxZvHxL1s2Fvgu5wZHqJ9JD/K+zloqicEw==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694850735; a=rsa-sha256; cv=none;
	b=Y3TLIITnH73RJfmvmnAsqG6jIzThykvTUf7azN93tj9hn4lKaiwiOMz6P0LuvI8KjC9NgV
	+ftNETd7Z1WIjkEYX6dqgiZyMeLH0b8Vmq+p0+LcnibCpSbQ5yRbWnoFDe+8X4/b5MtAi+
	Jfld+409sTqhlpqceswZ4GRhIgGXN5DgMBt0Zz+EgffVywej90enDfivMvMCg1n3OFsWKw
	iquXYgZlcbJ2vme+DIEFAuKlA883Fp2sDknJMoe3upBMoYAtBK7y5wCSYZMfJO3RVMLbQv
	nlcBvt+AFxe2QjeHvyMVk4/nOFvepurBQeUSEX30qQGmKc7+RNEE81Po4t+LJA==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694850735;
	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=5WHPyqOUvF3T3dId8iLBxVuEEJh674eBdL7VyeGltEo=;
	b=i59mkb/uDIAu7ceFd8WKsdqg/uLmgTGU3Jb6TOAvI8fW1EZK+WxEI1IXpXjtQ0AsCIq2KQ
	+xJNHqOVEVhXwZpXgtqtTD3GcWWkj+o84fSIsCbt0JDXonRAk4/LKh9LL0seluiNiJSF8F
	Rf+XT64YG4M/x1P+bMWY56/ZTR/Ek8NXfTrzetK9HpvQSihHObFvSGHw130a9tLyNDQKAX
	WD9iCR5IO0u65p0F12fdWBHAj19H9uir6NnA4pJsJNVl/w2HCw1NSblFWu8ZFqXw+eK1ls
	09XrDitJo0uIEhrs8ZBForcNzUWJCyJbBGuHZOEz9ktSbgJGjSIgR8h4Aa+SIA==
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 4RnjvM3s4czyZ4;
	Sat, 16 Sep 2023 07:52: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 38G7qF96065745;
	Sat, 16 Sep 2023 07:52:15 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38G7qFSG065742;
	Sat, 16 Sep 2023 07:52:15 GMT
	(envelope-from git)
Date: Sat, 16 Sep 2023 07:52:15 GMT
Message-Id: <202309160752.38G7qFSG065742@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Dimitry Andric <dim@FreeBSD.org>
Subject: git: cadbf320b352 - main - ObsoleteFiles: cleanup old
  libclang_rt files for powerpc64le
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@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/main
X-Git-Reftype: branch
X-Git-Commit: cadbf320b352b3691cdfa90ad8ba818efca4ea68
Auto-Submitted: auto-generated

The branch main has been updated by dim:

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

commit cadbf320b352b3691cdfa90ad8ba818efca4ea68
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2023-09-16 07:47:19 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2023-09-16 07:47:19 +0000

    ObsoleteFiles: cleanup old libclang_rt files for powerpc64le
    
    PR:             273776
    MFC after:      3 days
---
 ObsoleteFiles.inc | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc
index 15e3b000de3c..10bf398e721a 100644
--- a/ObsoleteFiles.inc
+++ b/ObsoleteFiles.inc
@@ -390,11 +390,14 @@ OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-i386.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-i386.so
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-powerpc64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-powerpc64.so
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-powerpc64le.a
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-powerpc64le.so
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-aarch64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-arm.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-armhf.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-i386.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-powerpc64.a
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-powerpc64le.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-riscv64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-preinit-x86_64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan-riscv64.a
@@ -406,10 +409,12 @@ OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_cxx-arm.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_cxx-armhf.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_cxx-i386.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_cxx-powerpc64.a
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_cxx-powerpc64le.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_cxx-riscv64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_cxx-x86_64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_static-i386.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_static-powerpc64.a
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_static-powerpc64le.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.asan_static-x86_64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.cfi-aarch64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.cfi-arm.a
@@ -430,9 +435,11 @@ OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.fuzzer_no_main-aarch64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.fuzzer_no_main-x86_64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.msan-aarch64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.msan-powerpc64.a
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.msan-powerpc64le.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.msan-x86_64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.msan_cxx-aarch64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.msan_cxx-powerpc64.a
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.msan_cxx-powerpc64le.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.msan_cxx-x86_64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.profile-aarch64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.profile-arm.a
@@ -441,6 +448,8 @@ OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.profile-i386.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.profile-powerpc.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.profile-powerpc64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.profile-powerpc64le.a
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.profile-powerpc64le.a
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.profile-powerpc64lele.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.profile-riscv64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.profile-x86_64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.safestack-aarch64.a
@@ -451,6 +460,7 @@ OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats-arm.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats-armhf.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats-i386.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats-powerpc64.a
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats-powerpc64le.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats-riscv64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats-x86_64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-aarch64.a
@@ -458,19 +468,23 @@ OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-arm.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-armhf.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-i386.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-powerpc64.a
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-powerpc64le.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-riscv64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.stats_client-x86_64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.tsan-aarch64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.tsan-powerpc64.a
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.tsan-powerpc64le.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.tsan-x86_64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.tsan_cxx-aarch64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.tsan_cxx-powerpc64.a
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.tsan_cxx-powerpc64le.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.tsan_cxx-x86_64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-aarch64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-arm.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-armhf.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-i386.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-powerpc64.a
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-powerpc64le.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-riscv64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_minimal-x86_64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-aarch64.a
@@ -478,6 +492,7 @@ OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-arm.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-armhf.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-i386.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-powerpc64.a
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-powerpc64le.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-riscv64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-aarch64.a
@@ -485,6 +500,7 @@ OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-arm
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-armhf.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-powerpc64.a
+OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-powerpc64le.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-riscv64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a
 OLD_FILES+=usr/lib/clang/15.0.7/lib/freebsd/libclang_rt.xray-aarch64.a

From nobody Sat Sep 16 08:20:47 2023
X-Original-To: dev-commits-src-main@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 4RnkXH6vr6z4sZc6;
	Sat, 16 Sep 2023 08:20: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 4RnkXH6Qpgz4MqW;
	Sat, 16 Sep 2023 08:20:47 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694852447;
	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=2v8RuG+Ne/rWskxq2qfUkNaZ/hFIa8iKHhD4SCnaAqo=;
	b=XsBtVyECUigfbCH2rYbirYIt0BXmCi8mQNOQFjH+rPgZNKHrQ3pSyZAKUCv5Hndvr58L52
	nE9xlKXFpJyRQDlZRTDl4lixTsbYog0CVjniGMKMiwDWtaGoO6KMf4TCjDREKQ54rgjM93
	yVUDZNPsl7t495gijg9bqfOVZ9LO5ZWd/s4fz35ukmxUkCikqO6UJXGJKsMIDseI3ueVZT
	PspiK1R/Z5XLIphJz5u18oSfERbhAb6bRJyQRsBCq3uvSlI+h58DOhLGfo4q36RpaPBdb3
	wRZpOiRSQexyRI4GGsty63GOmGguA2PtaoamS2oN6GUnUhaMqmJZthf3ASlLaQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694852447; a=rsa-sha256; cv=none;
	b=GtEX/jOS+ma1QVu0ACRfzrV6i2NioWxO1BPw17nVerR3KI2c8FCRzneHPvt/5NA7QaTK4o
	w4D/3NP4BGaaGoGjjsDFTNuD1ibTHgexDfvJY2KG2w5DnuyKq0ZFYLxA+qLPAmrV80bLeO
	1zTj7LCZS3l8lgI8WjOBxFxVKhBlUTuJAd9FGQqVBK2rChh2kpoLDxs/q8E0A5T0x0Fzcr
	wo8UHVwSpOV11gXffQ1/lm8KGH/94VyUBGi0CXyRBL+msd87MrCEFg+PfPS0w13jdU10Cc
	snxc0Vv9dqJZV5BMOEtG1EzpHK//VcbC9S2Ev1l7oUQh2vTGcuLmid0rwNiB0w==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694852447;
	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=2v8RuG+Ne/rWskxq2qfUkNaZ/hFIa8iKHhD4SCnaAqo=;
	b=emVbUIsRv99FPkn6/IBxzyznznja8MufoWosfpwfsn3MMaFvA0dcSPtOT5scSxkQfzyixr
	Y7/U6VvIex8zsVlzC4dxeMtg9fACEfuep4fHO7N+YUWSdysUTtrShf7R1BPEE+W6TvevNR
	HsAU5HJ7SaAmp83Q41D6fP9OPy16Pvh4gYQ21nZXORHwTthWq6LDkHKwdeLfjoVO5lFxag
	yBoCpOcrybIFkihMYvRhMCXMty73XDZTU13+9xiU+SC1lLUOMmGq5AkB+4kEinqHEPmBCt
	Ftd6C4weuSXGZvTkiGv5tNG69/uhCVODS4Pn//aTx6kp8BmT3F4Tjl1eozrGXg==
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 4RnkXH5VK3z1005;
	Sat, 16 Sep 2023 08:20: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 38G8KlYp009965;
	Sat, 16 Sep 2023 08:20:47 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38G8Kl4b009962;
	Sat, 16 Sep 2023 08:20:47 GMT
	(envelope-from git)
Date: Sat, 16 Sep 2023 08:20:47 GMT
Message-Id: <202309160820.38G8Kl4b009962@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Mateusz Guzik <mjg@FreeBSD.org>
Subject: git: 509d843a982b - main - vfs: s/u_long vstir/bool vstir/
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: mjg
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 509d843a982b39a531a558c65794ffffcdf93ae8
Auto-Submitted: auto-generated

The branch main has been updated by mjg:

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

commit 509d843a982b39a531a558c65794ffffcdf93ae8
Author:     Mateusz Guzik <mjg@FreeBSD.org>
AuthorDate: 2023-09-16 08:19:24 +0000
Commit:     Mateusz Guzik <mjg@FreeBSD.org>
CommitDate: 2023-09-16 08:19:24 +0000

    vfs: s/u_long vstir/bool vstir/
---
 sys/kern/vfs_subr.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index a8477e4b691e..9d5b1b7e472e 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -325,7 +325,7 @@ u_long desiredvnodes;
 static u_long gapvnodes;		/* gap between wanted and desired */
 static u_long vhiwat;		/* enough extras after expansion */
 static u_long vlowat;		/* minimal extras before expansion */
-static u_long vstir;		/* nonzero to stir non-free vnodes */
+static bool vstir;		/* nonzero to stir non-free vnodes */
 static volatile int vsmalltrigger = 8;	/* pref to keep if > this many pages */
 
 static u_long vnlru_read_freevnodes(void);
@@ -1627,7 +1627,7 @@ vnlru_proc(void)
 		 */
 		if (vstir && force == 0) {
 			force = 1;
-			vstir = 0;
+			vstir = false;
 		}
 		if (force == 0 && !vnlru_under(rnumvnodes, vlowat)) {
 			vnlruproc_sig = 0;
@@ -1799,7 +1799,7 @@ vn_alloc_hard(struct mount *mp)
 	rfreevnodes = vnlru_read_freevnodes();
 	if (vn_alloc_cyclecount++ >= rfreevnodes) {
 		vn_alloc_cyclecount = 0;
-		vstir = 1;
+		vstir = true;
 	}
 	/*
 	 * Grow the vnode cache if it will not be above its target max

From nobody Sat Sep 16 09:27:13 2023
X-Original-To: dev-commits-src-main@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 4Rnm0y2CsBz4ssJw;
	Sat, 16 Sep 2023 09:27: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 4Rnm0y1nbdz4X0Z;
	Sat, 16 Sep 2023 09:27:14 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694856434;
	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=qhW/+A/vbpMx9ynwEsWblHpkH0A1bO/TRvAxw+suAyM=;
	b=eJ2My8oxC927Lwc9lbQ02+1l2bEdoiMQ/sC+PVWLGM1juMV/hm+dCWFoEeMdrR9JTk/hWI
	fLMoKUHeOXMvRBX7esRVS4+9Kj6v1UQipuoYpPgDYlr2L2DFVp14S51Zwl46gH+MsUShDC
	QXYwtSSpPRz19HwhbxDSQkTfmSlOnUxgB4mm1n8ubJFdV3z9AAQ0QgcEXDEDHJM1iGJBdh
	VEiI4PzHNCxOfFDbY1crqXP/5xouQvSWT4mqQCAkjHEEzUyuRdfpuXqcoPao/q9gVphauW
	LnRPn6tiWqscuXu8t2xrufBJ6A1qv/9jg8VdicXBqz1QjiAd2r08ms1DF+kFRQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694856434; a=rsa-sha256; cv=none;
	b=td50uSYJzxrkGtzn1EEeVed1738Yy3zfJSi3CBJWYVKsc1jPEp9EXhvaPvs8VmBvzzuT7o
	k51OFNdn1LbqNq6mR6U914k/Pw0qzkdKuUpp6wKoGZtEd0Hkaa79pj7vweXnVuovBlrShA
	S0irf6s2FAzUd5H0l2GUTlbjKGZP6YeqBNGffdJQ1+PuWRdX6MwoPhP8/i6VtoHtpHq+Q+
	3YEPM8S0Y1CkbT68HIVDA+clq3Fy4NCYFTDxiy/8KCaQjBT7CaGrUVQjT+D/zG9BgDETJo
	mEG+6JrAm45/xrGPFxUvZvfTmSLIf/HWOb/ZOwMwHkT7LicczKO7QIj4QkNgBQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694856434;
	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=qhW/+A/vbpMx9ynwEsWblHpkH0A1bO/TRvAxw+suAyM=;
	b=atmPjO6TSBy8/BmnM7wWXvSjVpB5cZNxMU8dCAAlX3Il6ZNwy3QFg1Xl5e7ov7ZT/TVQTs
	3NV2vZVgJ5hjFUXdjF4/Tj83NTlOLMq7ERhD3ME9meHAFe8VRtsdqTUgRmk317iGAUY4dw
	M5dvqzQaamrWedp9IAfjg6isIsNMePqAaryw9NKR/5gXXiv3zrNklQU7Z6UixOk5DbYMyF
	ej0LquHHrKrHkPZFZfNLyi55Lqua7pDW6zo/UWRZkg7pOE7zPT2r7OwTIZNVflne8EIRyv
	/7hT5OOkbuisRprlyexu5kHfXqOoJJ8zcLhaAV9t5SV+JuNk/L2M5lOkh23k0A==
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 4Rnm0y0sFfz11YP;
	Sat, 16 Sep 2023 09:27:14 +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 38G9RDIj016623;
	Sat, 16 Sep 2023 09:27:13 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38G9RDsn016620;
	Sat, 16 Sep 2023 09:27:13 GMT
	(envelope-from git)
Date: Sat, 16 Sep 2023 09:27:13 GMT
Message-Id: <202309160927.38G9RDsn016620@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Mark Johnston <markj@FreeBSD.org>
Subject: git: f44102411e1b - main - sockets: re-check socket state
  after call to pr_rcvd()
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: markj
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: f44102411e1b16363e91a074c9c403069c550e4d
Auto-Submitted: auto-generated

The branch main has been updated by markj:

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

commit f44102411e1b16363e91a074c9c403069c550e4d
Author:     Greg Becker <becker.greg@att.net>
AuthorDate: 2023-09-09 23:38:24 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2023-09-15 16:59:46 +0000

    sockets: re-check socket state after call to pr_rcvd()
    
    Socket state may have changed after dropping the receive
    buffer lock in order to call pr_rcvd().  If the buffer is
    empty, re-check the state after reaquiring the lock and
    skip calling sbwait() if the socket is in error or the
    peer has closed.
    
    PR:             212716
    Reviewed by:    markj, glebius
    MFC after:      1 week
    Differential Revision:  https://reviews.freebsd.org/D41783
---
 sys/kern/uipc_socket.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c
index ffd5e06c34b7..3c7e5c4cb4bb 100644
--- a/sys/kern/uipc_socket.c
+++ b/sys/kern/uipc_socket.c
@@ -2429,6 +2429,10 @@ dontblock:
 				VNET_SO_ASSERT(so);
 				pr->pr_rcvd(so, flags);
 				SOCKBUF_LOCK(&so->so_rcv);
+				if (__predict_false(so->so_rcv.sb_mb == NULL &&
+				    (so->so_error || so->so_rerror ||
+				    so->so_rcv.sb_state & SBS_CANTRCVMORE)))
+					break;
 			}
 			SBLASTRECORDCHK(&so->so_rcv);
 			SBLASTMBUFCHK(&so->so_rcv);

From nobody Sat Sep 16 09:27:15 2023
X-Original-To: dev-commits-src-main@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 4Rnm0z3vxRz4ssVN;
	Sat, 16 Sep 2023 09:27: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 4Rnm0z359zz4X7D;
	Sat, 16 Sep 2023 09:27:15 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694856435;
	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=RouldnTevdQ1Gdw8+8jR718wPlBmngiM2A0nqe+RbhE=;
	b=UdvV3LGPfLnAtx/twfGBt6dL+r4Fzt7MsCml+Bjc2V27kywOMWnCgG/7py1p2iVm1rJkv2
	eHTdCoC79WfzEoVfRcYXR/E6v5GaOEotXUZYjzkqsRht3H7Hsv/LUBgSuQYGRXF2Ek+RFr
	96tPaDIqa7L9nfF/ACG2rW3IbARdKeO27tRmhGuOEQuyCD2wzN4srcOLyGJG/vhranQrmZ
	mdQXXMchSrlgHDcdQ1qetmSQO0eHo5qD54RPyq5S6Jb3X9iUywGzv/M/u4p0WITy0R4/DD
	VxJCa7GfoyDDYii9gOOgeYwgqR1FblP0jtyELhIffWskAAO4dZRPopeWJHqVQg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694856435; a=rsa-sha256; cv=none;
	b=BQAc/dc5z8dUdpE+aFJxoWaZdKyWJmhPRJTD3+N1T/Ap9mTxue973tMt4YQLAQvfOIHpQx
	q4a2Uxibn0uChNhCdZAJnlpbc8MDABG1ZFipOZd3j3PVHwfqzQ0Y/0uvXtHPDwt8uks/TF
	IEEb/W93qj7Qwrm7tBBtrvR/GFanKFkXGxcmdTzjfqEs7oPr8fuH2rZIUKkEdcVZs/uhiI
	KToiEA59epBc8iUVhxARs7f7l6dzFzSPYcPxnUriiTZ/E24KEnrGGKrwC0poqpSxqUB8GP
	zwMYDUtLpntTzpVKwOEDyIIXTPe7sI+uf7HG0PlLRnC4mfi9OFt/Byz34ITrNw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694856435;
	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=RouldnTevdQ1Gdw8+8jR718wPlBmngiM2A0nqe+RbhE=;
	b=Sf1B3eOe96KH/FBYDV/nieKWMpYC6DnsWLqlH+gQX6uU32wTKeNmWhuYleUo5X5WkkX06d
	NzqFEaRFXise9tGShdL+FQvbZkddLTiOoEcn78RF7R4nZ98isTbvoyQ7dfmgyNwAmWhGr2
	mRkYjLtGAtsfDE/z8osHm/ZOKK65eRUx2Cd9qSuRJl7OLDNL9cNwek85D/wSCvSY65/ZLh
	Q+XyYs78IvB5u0FcNwMVjiUhqKQD2VG0b4PPB6BeiIUMCKMXCcvJdoB5BrSgOro1tpR2hx
	llq3rxuz74mQXsv5lJpke6+GjBVHEuPUvBlnyWe3ZZ8bbFaKMZ2otoExKAAJCQ==
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 4Rnm0z1nMmz11HD;
	Sat, 16 Sep 2023 09:27: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 38G9RF8U016674;
	Sat, 16 Sep 2023 09:27:15 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38G9RF8N016671;
	Sat, 16 Sep 2023 09:27:15 GMT
	(envelope-from git)
Date: Sat, 16 Sep 2023 09:27:15 GMT
Message-Id: <202309160927.38G9RF8N016671@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Mark Johnston <markj@FreeBSD.org>
Subject: git: 38426b32e106 - main - socket tests: Add a regression
  test for MSG_WAITALL
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: markj
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 38426b32e106cf251520259b29779372eda7a5f8
Auto-Submitted: auto-generated

The branch main has been updated by markj:

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

commit 38426b32e106cf251520259b29779372eda7a5f8
Author:     Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2023-08-31 17:29:29 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2023-09-15 16:59:46 +0000

    socket tests: Add a regression test for MSG_WAITALL
    
    PR:             212716
    MFC after:      1 week
    Sponsored by:   The FreeBSD Foundation
---
 tests/sys/kern/Makefile             |   2 +
 tests/sys/kern/socket_msg_waitall.c | 181 ++++++++++++++++++++++++++++++++++++
 2 files changed, 183 insertions(+)

diff --git a/tests/sys/kern/Makefile b/tests/sys/kern/Makefile
index d46223d8ff09..f2fe9e7008d9 100644
--- a/tests/sys/kern/Makefile
+++ b/tests/sys/kern/Makefile
@@ -30,6 +30,7 @@ ATF_TESTS_C+=	sigaltstack
 ATF_TESTS_C+=	sigwait
 ATF_TESTS_C+=	socket_accf
 ATF_TESTS_C+=	socket_msg_trunc
+ATF_TESTS_C+=	socket_msg_waitall
 TEST_METADATA.sigwait+=	is_exclusive="true"
 .if ${MACHINE_ARCH} != "i386" && ${MACHINE_ARCH:Mpowerpc*} == ""
 ATF_TESTS_C+=	subr_physmem_test
@@ -71,6 +72,7 @@ LIBADD.unix_seqpacket_test+=		pthread
 LIBADD.kcov+=				pthread
 CFLAGS.ktls_test+=			-DOPENSSL_API_COMPAT=0x10100000L
 LIBADD.ktls_test+=			crypto util
+LIBADD.socket_msg_waitall+=		pthread
 LIBADD.sendfile_helper+=		pthread
 LIBADD.fdgrowtable_test+=		util pthread kvm procstat
 LIBADD.sigwait+=			rt
diff --git a/tests/sys/kern/socket_msg_waitall.c b/tests/sys/kern/socket_msg_waitall.c
new file mode 100644
index 000000000000..e9018b47eec1
--- /dev/null
+++ b/tests/sys/kern/socket_msg_waitall.c
@@ -0,0 +1,181 @@
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (c) 2023 The FreeBSD Foundation
+ *
+ * This software was developed by Mark Johnston under sponsorship from
+ * the FreeBSD Foundation.
+ */
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+
+#include <netinet/in.h>
+
+#include <errno.h>
+#include <pthread.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include <atf-c.h>
+
+struct close_test_params {
+	struct sockaddr_storage sa;
+	size_t msglen;
+	int count;
+	int af, type, proto;
+};
+
+static void *
+close_test_client(void *arg)
+{
+	struct close_test_params *p = arg;
+	char *buf;
+	size_t buflen;
+
+	buflen = p->msglen + 1;
+	buf = malloc(buflen);
+	ATF_REQUIRE(buf != NULL);
+
+	while (p->count-- > 0) {
+		ssize_t n;
+		int error, s;
+
+		s = socket(p->af, p->type, p->proto);
+		ATF_REQUIRE_MSG(s >= 0, "socket: %s", strerror(errno));
+
+		error = connect(s, (struct sockaddr *)&p->sa, p->sa.ss_len);
+		ATF_REQUIRE_MSG(error == 0, "connect: %s", strerror(errno));
+
+		n = recv(s, buf, buflen, MSG_WAITALL);
+		ATF_REQUIRE_MSG(n == (ssize_t)p->msglen,
+		    "recv: %s", strerror(errno));
+
+		ATF_REQUIRE(close(s) == 0);
+	}
+
+	return (NULL);
+}
+
+static void
+close_test(struct sockaddr *sa, unsigned int count, int af, int type, int proto)
+{
+	struct close_test_params p;
+	const char *msg;
+	pthread_t t;
+	size_t msglen;
+	int error, s;
+
+	s = socket(af, type, proto);
+	ATF_REQUIRE_MSG(s >= 0, "socket %s", strerror(errno));
+
+	ATF_REQUIRE_MSG(bind(s, sa, sa->sa_len) == 0,
+	    "bind: %s", strerror(errno));
+	ATF_REQUIRE_MSG(listen(s, 1) == 0,
+	    "listen: %s", strerror(errno));
+	ATF_REQUIRE_MSG(getsockname(s, sa, &(socklen_t){ sa->sa_len }) == 0,
+	    "getsockname: %s", strerror(errno));
+
+	msg = "hello bonjour";
+	msglen = strlen(msg) + 1;
+	p = (struct close_test_params){
+		.count = count,
+		.msglen = msglen,
+		.af = af,
+		.type = type,
+		.proto = proto,
+	};
+	memcpy(&p.sa, sa, sa->sa_len);
+	error = pthread_create(&t, NULL, close_test_client, &p);
+	ATF_REQUIRE_MSG(error == 0, "pthread_create: %s", strerror(error));
+
+	while (count-- > 0) {
+		ssize_t n;
+		int cs;
+
+		cs = accept(s, NULL, NULL);
+		ATF_REQUIRE_MSG(cs >= 0, "accept: %s", strerror(errno));
+
+		n = send(cs, msg, msglen, 0);
+		ATF_REQUIRE_MSG(n == (ssize_t)msglen,
+		    "send: %s", strerror(errno));
+
+		ATF_REQUIRE(close(cs) == 0);
+	}
+
+	ATF_REQUIRE(close(s) == 0);
+	ATF_REQUIRE(pthread_join(t, NULL) == 0);
+}
+
+/*
+ * Make sure that closing a connection kicks a MSG_WAITALL recv() out of the
+ * syscall.  See bugzilla PR 212716.
+ */
+ATF_TC(close_tcp);
+ATF_TC_HEAD(close_tcp, tc)
+{
+	atf_tc_set_md_var(tc, "timeout", "10");
+}
+ATF_TC_BODY(close_tcp, tc)
+{
+	struct sockaddr_in sin;
+
+	sin = (struct sockaddr_in){
+		.sin_len = sizeof(sin),
+		.sin_family = AF_INET,
+		.sin_addr = { htonl(INADDR_LOOPBACK) },
+		.sin_port = htons(0),
+	};
+	close_test((struct sockaddr *)&sin, 1000, AF_INET, SOCK_STREAM,
+	    IPPROTO_TCP);
+}
+
+/* A variant of the above test for UNIX domain stream sockets. */
+ATF_TC(close_unix_stream);
+ATF_TC_HEAD(close_unix_stream, tc)
+{
+	atf_tc_set_md_var(tc, "timeout", "10");
+}
+ATF_TC_BODY(close_unix_stream, tc)
+{
+	struct sockaddr_un sun;
+
+	sun = (struct sockaddr_un){
+		.sun_len = sizeof(sun),
+		.sun_family = AF_UNIX,
+		.sun_path = "socket_msg_waitall_unix",
+	};
+	close_test((struct sockaddr *)&sun, 1000, AF_UNIX, SOCK_STREAM, 0);
+	ATF_REQUIRE_MSG(unlink(sun.sun_path) == 0,
+	    "unlink: %s", strerror(errno));
+}
+
+/* A variant of the above test for UNIX domain seqpacket sockets. */
+ATF_TC(close_unix_seqpacket);
+ATF_TC_HEAD(close_unix_seqpacket, tc)
+{
+	atf_tc_set_md_var(tc, "timeout", "10");
+}
+ATF_TC_BODY(close_unix_seqpacket, tc)
+{
+	struct sockaddr_un sun;
+
+	sun = (struct sockaddr_un){
+		.sun_len = sizeof(sun),
+		.sun_family = AF_UNIX,
+		.sun_path = "socket_msg_waitall_unix",
+	};
+	close_test((struct sockaddr *)&sun, 1000, AF_UNIX, SOCK_SEQPACKET, 0);
+	ATF_REQUIRE_MSG(unlink(sun.sun_path) == 0,
+	    "unlink: %s", strerror(errno));
+}
+
+ATF_TP_ADD_TCS(tp)
+{
+	ATF_TP_ADD_TC(tp, close_tcp);
+	ATF_TP_ADD_TC(tp, close_unix_stream);
+	ATF_TP_ADD_TC(tp, close_unix_seqpacket);
+
+	return (atf_no_error());
+}

From nobody Sat Sep 16 09:33:19 2023
X-Original-To: dev-commits-src-main@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 4Rnm7z2Wwcz4sv0Z;
	Sat, 16 Sep 2023 09:33: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 4Rnm7z1hJLz4Z3K;
	Sat, 16 Sep 2023 09:33:19 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694856799;
	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=sPG9v0F6Ua6bFjX97BrCGhcDN6564MqfuHzv3weIJEQ=;
	b=jl/Dyyf3eq1BR4WqMAUPaNqj2GSCz/u/DyMRe6hnRsLmESfEFA8uta7PmP6CATF/qQcGck
	GjmW0BTOutHryevZOPqiVbuDqLAWSoPKcJ1vpcmy9P7HvaMxHscYnKY9blfluy0TDUTyRh
	SeI+YS7jzYmnBUdkQd14aocJ2wBelpXCzNEJZimdeYQNyDBL8DeLJ8kFPJEmNjv2T9A4mh
	lwf0urqelcSupt8bcPkmsWDvwimqxOOgbaUfcfsfaqdwwPdZcIZ2BCp0uoQ1gqrVHLKmWm
	opX30oPQte6I/trxFXwkhSq0MxhYVZFOQ8AYnq+NhO9olQbil1o/D54tPmj8IQ==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694856799; a=rsa-sha256; cv=none;
	b=NcR2WIOoRlc5/bDyJJ1y/yZKk67bu6+7BY+U+fcbly5JweMcRYy4w/9jWofx1j7qxCfM7V
	Z1optq2770zK/Xi1CDpmBUT1XD5FgDRlLDPUUvlvz7QftuILe8+hZHTqscF7o+lemX/B0p
	bjDr/B1Cv/KReNXkSFdgNXt9IETqzm/whyehhX/ZY4VMiHixJFy8duNFeA86ZcRkGErfc+
	yk6CwqaxwXwMi1aizAT2QWdohY5wcHhRPd9824ptXRm0vS02GtYcIMI2oXZqaDtWJfQwvi
	MsmiI7plvac/kCRS75yK0rDtIItM6KeD1gAZW6R2qyLhDvLasSJZgeFvqBiM6Q==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694856799;
	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=sPG9v0F6Ua6bFjX97BrCGhcDN6564MqfuHzv3weIJEQ=;
	b=vd3zNz8EdFmo+Kx/rWgRqxEq9gEwxUo2xoJdZV01rYNOYvEa+ASEtmtzml3pWhQpVZQ2Uw
	dU8M6Co7ygmZXV4DZdUCA9krMQnsiS+JO0aCxy+NHFpu4cgMge5aKfmpRFev0NQFxATgwL
	D5oK2S7zc393a8IKd6tWmFqAKLLtn8em+dxyXYkgjDQY3rKLyor++rQ/eRleNjBOXWWdBw
	fU6oHY/ys30c9wnOm4Ujbxp2evqLEoaSTP0ylCrhwVW7q/XRP2jQvAs+tioGi9yeWfxEon
	v8rpCzz4L2tvtxczKO4BPW10qUE87xWZzwAFkambVUzvnnxl1XE0aPIyRbrY2g==
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 4Rnm7z0lHLz11Zh;
	Sat, 16 Sep 2023 09:33: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 38G9XJa8033414;
	Sat, 16 Sep 2023 09:33:19 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38G9XJTS033411;
	Sat, 16 Sep 2023 09:33:19 GMT
	(envelope-from git)
Date: Sat, 16 Sep 2023 09:33:19 GMT
Message-Id: <202309160933.38G9XJTS033411@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Mark Johnston <markj@FreeBSD.org>
Subject: git: d643925a79ca - main - unix tests: Use the right type
  for sendmsg(2) return values
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: markj
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: d643925a79caab5c6de62b066e374935b60bcaf1
Auto-Submitted: auto-generated

The branch main has been updated by markj:

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

commit d643925a79caab5c6de62b066e374935b60bcaf1
Author:     Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2023-09-15 08:59:08 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2023-09-15 17:04:15 +0000

    unix tests: Use the right type for sendmsg(2) return values
    
    MFC after:      1 week
---
 tests/sys/kern/unix_passfd_test.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/tests/sys/kern/unix_passfd_test.c b/tests/sys/kern/unix_passfd_test.c
index 94f0c420029a..d8c0efe5b9ea 100644
--- a/tests/sys/kern/unix_passfd_test.c
+++ b/tests/sys/kern/unix_passfd_test.c
@@ -182,13 +182,13 @@ sendfd_payload(int sockfd, int send_fd, void *payload, size_t paylen)
 static void
 sendfd(int sockfd, int send_fd)
 {
-	size_t len;
+	ssize_t len;
 	char ch;
 
 	ch = 0;
 	len = sendfd_payload(sockfd, send_fd, &ch, sizeof(ch));
 	ATF_REQUIRE_MSG(len == sizeof(ch),
-	    "sendmsg: %zu bytes sent; expected %zu; %s", len, sizeof(ch),
+	    "sendmsg: %zd bytes sent; expected %zu; %s", len, sizeof(ch),
 	    strerror(errno));
 }
 
@@ -532,10 +532,10 @@ ATF_TC_BODY(send_overflow, tc)
 	len = sendfd_payload(fd[0], putfd, buf, sendspace);
 #if TEST_PROTO == SOCK_STREAM
 	ATF_REQUIRE_MSG(len == -1 && errno == EAGAIN,
-	    "sendmsg: %zu bytes sent, errno %d", len, errno);
+	    "sendmsg: %zd bytes sent, errno %d", len, errno);
 #elif TEST_PROTO == SOCK_DGRAM
 	ATF_REQUIRE_MSG(len == -1 && errno == ENOBUFS,
-	    "sendmsg: %zu bytes sent, errno %d", len, errno);
+	    "sendmsg: %zd bytes sent, errno %d", len, errno);
 #endif
 	close(putfd);
 	ATF_REQUIRE(nfiles == openfiles());
@@ -655,14 +655,14 @@ ATF_TC_BODY(rights_creds_payload, tc)
 #if TEST_PROTO == SOCK_STREAM
 	ATF_REQUIRE_MSG(len != -1 , "sendmsg failed: %s", strerror(errno));
 	ATF_REQUIRE_MSG((size_t)len < sendspace,
-	    "sendmsg: %zu bytes sent", len);
+	    "sendmsg: %zd bytes sent", len);
 	recvfd_payload(fd[1], &getfd, buf, len,
 	    CMSG_SPACE(SOCKCREDSIZE(CMGROUP_MAX)) + CMSG_SPACE(sizeof(int)), 0);
 #endif
 #if TEST_PROTO == SOCK_DGRAM
 	ATF_REQUIRE_MSG(len != -1 , "sendmsg failed: %s", strerror(errno));
 	ATF_REQUIRE_MSG((size_t)len == sendspace,
-	    "sendmsg: %zu bytes sent", len);
+	    "sendmsg: %zd bytes sent", len);
 	recvfd_payload(fd[1], &getfd, buf, len,
 	    CMSG_SPACE(SOCKCREDSIZE(CMGROUP_MAX)) + CMSG_SPACE(sizeof(int)), 0);
 #endif

From nobody Sat Sep 16 14:20:17 2023
X-Original-To: dev-commits-src-main@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 4RntW56m4Dz4t8nr;
	Sat, 16 Sep 2023 14:20: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 4RntW56Jxwz4PPl;
	Sat, 16 Sep 2023 14:20:17 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694874017;
	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=5ydENEVRKFXXfb7xGkMRlQ0T5MG20VKyt7T2Cn41+PY=;
	b=Kf6IaXzVBYhx4rLEzTyEocuJzRECYiro5l9aB3V8nwsM1Hs59oXB8W1kmNc1d+4j8f5FzJ
	cTObbsiZAeSWILppuZS08RNZ4KrTRhr7RB9jA1n3FhTb4rnRquT0m7qfoSeggqyA2G42pr
	qmNtoelPFYcHYHJxNCFEHdtqc6MCsAjgxMLnx4Httt6tFNqcEJMAjhbMTzjZZJwQ8/wIPJ
	TTY5H1r4Qetmop7mhlgsz1/WszlcjMyh9muF+lbuqyMTT/Nzq3C7bJK0fJKeLfKrRwvNXL
	P/fqQ50wRFzUbOXH4wGXNg0iwujJI7BYMgK5SP1yEgNGYTyyQKO75MhC5UOmDg==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694874017; a=rsa-sha256; cv=none;
	b=INTS7p2HW8fiO5Ch5Y43YfDHC20MBeK/nhyZ3VCqvIYdV7nUQ4YfYd9p+4+xmgNlRDD0AV
	EiqJSOPkDSihqPY/G2PP5+rdDy6JEaOCrucluL8nOyIRGJ4nl+v0Awn2OrkWXOyz+AOVNV
	zKzex9DDyVAo1ao6EktIcwwW/uyu3eJ/WwEMCAbnn6MBospDywRlgqqtv9EvC7YkK8+o5+
	UEoeEw07uG2iYErP54nBbncrtaQDZ7mHsajtRr3qgDzdyadLM4IyW8R6ERL6dPnqO4l1qt
	U557+8LlzKOAgJlNE7SVCi8RbtnW9LzXxwt11dp8eMm41JdYbxV2z30Lr3HfIw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694874017;
	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=5ydENEVRKFXXfb7xGkMRlQ0T5MG20VKyt7T2Cn41+PY=;
	b=TJUjaVq31iHi7DIU7QOdQxygtcjG/XDhw3hOke8aiZhMcLrUgyH0VBXJ3GO3MI7CVwqd+a
	lxZ3t36kOgXGblIF/II89PHFHClCxe2mx3em+wOopW87PvTshMgSnZk52g6Yl02Z2/h4ia
	OH7aQqTa1jI9Hvyd64w9YR8aLROyqU5LSLMzpX60Z/+bCtVdXmp/feVqw+jZiHeLMTe0Xf
	wkt1ZDaHzeAyBzV4ORMi37kOEUFcMyqCIBiGm/GT81TT6CCSNdERlazFi6MtLNEfDepihZ
	ddid4DgwmSl6aflAS1SYcyr2LMmlGSbu+8osChIR3PD3SHx1kEJTzmKz+9ByCQ==
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 4RntW55NcVz18mm;
	Sat, 16 Sep 2023 14:20: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 38GEKHca008294;
	Sat, 16 Sep 2023 14:20:17 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38GEKHrZ008283;
	Sat, 16 Sep 2023 14:20:17 GMT
	(envelope-from git)
Date: Sat, 16 Sep 2023 14:20:17 GMT
Message-Id: <202309161420.38GEKHrZ008283@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Mateusz Guzik <mjg@FreeBSD.org>
Subject: git: 49874af3eca6 - main - zfs: retire z_nr_znodes
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: mjg
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 49874af3eca6fbbeb3967c737baa3478d6a4e967
Auto-Submitted: auto-generated

The branch main has been updated by mjg:

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

commit 49874af3eca6fbbeb3967c737baa3478d6a4e967
Author:     Mateusz Guzik <mjg@FreeBSD.org>
AuthorDate: 2023-09-16 14:18:05 +0000
Commit:     Mateusz Guzik <mjg@FreeBSD.org>
CommitDate: 2023-09-16 14:18:05 +0000

    zfs: retire z_nr_znodes
    
    It is not needed and is going away soon(tm), facilitating other changes.
    
    See https://github.com/openzfs/zfs/pull/15274
---
 sys/contrib/openzfs/include/os/freebsd/zfs/sys/zfs_vfsops_os.h | 1 -
 sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vfsops.c         | 8 +++-----
 sys/contrib/openzfs/module/os/freebsd/zfs/zfs_znode.c          | 2 --
 3 files changed, 3 insertions(+), 8 deletions(-)

diff --git a/sys/contrib/openzfs/include/os/freebsd/zfs/sys/zfs_vfsops_os.h b/sys/contrib/openzfs/include/os/freebsd/zfs/sys/zfs_vfsops_os.h
index 5948e44daab1..56a0ac96ac19 100644
--- a/sys/contrib/openzfs/include/os/freebsd/zfs/sys/zfs_vfsops_os.h
+++ b/sys/contrib/openzfs/include/os/freebsd/zfs/sys/zfs_vfsops_os.h
@@ -93,7 +93,6 @@ struct zfsvfs {
 	zfs_teardown_lock_t z_teardown_lock;
 	zfs_teardown_inactive_lock_t z_teardown_inactive_lock;
 	list_t		z_all_znodes;	/* all vnodes in the fs */
-	uint64_t	z_nr_znodes;	/* number of znodes in the fs */
 	kmutex_t	z_znodes_lock;	/* lock for z_all_znodes */
 	struct zfsctl_root	*z_ctldir;	/* .zfs directory pointer */
 	boolean_t	z_show_ctldir;	/* expose .zfs in the root dir */
diff --git a/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vfsops.c b/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vfsops.c
index 49b97ae8f590..8969fd6a54bd 100644
--- a/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vfsops.c
+++ b/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vfsops.c
@@ -1158,7 +1158,6 @@ zfsvfs_free(zfsvfs_t *zfsvfs)
 
 	mutex_destroy(&zfsvfs->z_znodes_lock);
 	mutex_destroy(&zfsvfs->z_lock);
-	ASSERT3U(zfsvfs->z_nr_znodes, ==, 0);
 	list_destroy(&zfsvfs->z_all_znodes);
 	ZFS_TEARDOWN_DESTROY(zfsvfs);
 	ZFS_TEARDOWN_INACTIVE_DESTROY(zfsvfs);
@@ -1562,12 +1561,11 @@ zfsvfs_teardown(zfsvfs_t *zfsvfs, boolean_t unmounting)
 		 * may add the parents of dir-based xattrs to the taskq
 		 * so we want to wait for these.
 		 *
-		 * We can safely read z_nr_znodes without locking because the
-		 * VFS has already blocked operations which add to the
-		 * z_all_znodes list and thus increment z_nr_znodes.
+		 * We can safely check z_all_znodes for being empty because the
+		 * VFS has already blocked operations which add to it.
 		 */
 		int round = 0;
-		while (zfsvfs->z_nr_znodes > 0) {
+		while (!list_is_empty(&zfsvfs->z_all_znodes)) {
 			taskq_wait_outstanding(dsl_pool_zrele_taskq(
 			    dmu_objset_pool(zfsvfs->z_os)), 0);
 			if (++round > 1 && !unmounting)
diff --git a/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_znode.c b/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_znode.c
index c4f2b722ef4e..0d4c94555c6b 100644
--- a/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_znode.c
+++ b/sys/contrib/openzfs/module/os/freebsd/zfs/zfs_znode.c
@@ -537,7 +537,6 @@ zfs_znode_alloc(zfsvfs_t *zfsvfs, dmu_buf_t *db, int blksz,
 
 	mutex_enter(&zfsvfs->z_znodes_lock);
 	list_insert_tail(&zfsvfs->z_all_znodes, zp);
-	zfsvfs->z_nr_znodes++;
 	zp->z_zfsvfs = zfsvfs;
 	mutex_exit(&zfsvfs->z_znodes_lock);
 
@@ -1286,7 +1285,6 @@ zfs_znode_free(znode_t *zp)
 	mutex_enter(&zfsvfs->z_znodes_lock);
 	POINTER_INVALIDATE(&zp->z_zfsvfs);
 	list_remove(&zfsvfs->z_all_znodes, zp);
-	zfsvfs->z_nr_znodes--;
 	mutex_exit(&zfsvfs->z_znodes_lock);
 
 #if __FreeBSD_version >= 1300139

From nobody Sat Sep 16 15:46:12 2023
X-Original-To: dev-commits-src-main@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 4RnwQD30dBz4tWb0;
	Sat, 16 Sep 2023 15:46:12 +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 4RnwQD2b4vz4f1g;
	Sat, 16 Sep 2023 15:46:12 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694879172;
	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=et+dp4QYwSUodkOxULifDxu51r1JczPFm5QBSpEX3mY=;
	b=rQ33aHqCBKrTy6t68pKc4MXUUJ/UFr6JIrc3cUYAvXuUyOgVFmi9cIkLyTRX4Js3/OOz/e
	a2kpsmi3ZrgoAf0knjMKMHtgQ2NE9voPs4e4ELbEprGeMiMciSafB06c4js5v+yp5M+fGQ
	umFzIZkvUcKTCxgEOY5ODp7v+NQsGJwb0JmwD/0uROWSOBXQuKZt3z//Oidp+obGl2jQ6O
	2tLhGujuNAYvV6/bk7a4b/3BRJykPXhKLtqc104x00ZEolvvHN24gNDdIg0P+YfR5SZQt9
	NCmliacpUO7ReH2pNcl7rVMkOcm2hrayDy315nEsEtQX+rK5d8t9U1cq2/S1Lw==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694879172; a=rsa-sha256; cv=none;
	b=a7kKqTKQ2XKgjdkrKvw8VRfHhQR5itZ47UALmVZUI9wxC0btmZgD/ddZGEEaddC6aL57tO
	ULEIgTqyDRUsYrSZGNu0x4vOjBbjPfJG2L6DLMSfkgIvdXrq9ypY/FhpnmPqUfcBP2XF+h
	vAttcEeo/9Hm/dgdkaVe/O7SOZxBWWqhKiTmM8ioTg19swcz3Dt8ypwmTLXn6pfmZ91X1V
	Ddif0MVJ/Sc7ggzZaxzUX1uJ5qO5/nnq9wolpwZ4cE/QpNhpzuZ/U+z7mT4DymFHvHnaD1
	lZbgrbCYm6jGW2GGEC6BNX2Kv5Paq+Hk+VoaWUoL/Hwjrqh2m7OCYqXWVTw3Bw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694879172;
	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=et+dp4QYwSUodkOxULifDxu51r1JczPFm5QBSpEX3mY=;
	b=IaXarMTiHNGnIGwXEnWhkaFhEKaak3gt6kHDlACUJv0vPd4lnxtVgGn+LqPGINsI8DJtwt
	NpfyakSSv8/aXM9Gzp1xD96VdA1lrFkvP2aa083AsXY4Xum0dMcjREBydszRQbrXnXYXzq
	R2bI6jspfIvYLBxmHXPhfKWnLzpx8lUndB+7zcz33hI6j2vnIASidJOsCzExnFj/rmZkvb
	FAvP4QVYYX0isauzV2oEPdIvl3UyXDCvtjLXYQoMv4v/BQx+VVBqgR4p32OKZUf7BhdZfT
	Hm5NfShWRlGjOC82y9YMM7pflpBBD1O2zCXwcds8+SdWanCEdk98TwPB6N08hA==
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 4RnwQD1d1wz1B88;
	Sat, 16 Sep 2023 15:46:12 +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 38GFkCbx048573;
	Sat, 16 Sep 2023 15:46:12 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38GFkCWj048570;
	Sat, 16 Sep 2023 15:46:12 GMT
	(envelope-from git)
Date: Sat, 16 Sep 2023 15:46:12 GMT
Message-Id: <202309161546.38GFkCWj048570@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Ed Maste <emaste@FreeBSD.org>
Subject: git: d3a9d605a896 - main - Add WITHOUT_MANSPLITPKG description
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@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/main
X-Git-Reftype: branch
X-Git-Commit: d3a9d605a8963b7833936fd9679b734871facab4
Auto-Submitted: auto-generated

The branch main has been updated by emaste:

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

commit d3a9d605a8963b7833936fd9679b734871facab4
Author:     Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2023-09-16 15:28:28 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2023-09-16 15:40:41 +0000

    Add WITHOUT_MANSPLITPKG description
    
    Fixes: 74da9c39c346 ("pkgbase: Split out manpages by default")
    Sponsored by: The FreeBSD Foundation
---
 tools/build/options/WITHOUT_MANSPLITPKG | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tools/build/options/WITHOUT_MANSPLITPKG b/tools/build/options/WITHOUT_MANSPLITPKG
new file mode 100644
index 000000000000..a9913308d411
--- /dev/null
+++ b/tools/build/options/WITHOUT_MANSPLITPKG
@@ -0,0 +1 @@
+Do not split man pages into their own packages during make package.

From nobody Sat Sep 16 15:54:37 2023
X-Original-To: dev-commits-src-main@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 4Rnwbx5sv6z4tYL1;
	Sat, 16 Sep 2023 15:54:37 +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 4Rnwbx5KsPz4gq2;
	Sat, 16 Sep 2023 15:54:37 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694879677;
	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=ZnzTvxriQ9fsiYoSPj1oEyiZh4iYiYF0nhTIYQitzEM=;
	b=ZWp92y2LCaj/j62N4H2e8TN1KtgW5mC9fibqn+zsXKxfaAoZoqtWtPT7VAZW0z+XIgeTzN
	jNiFwu/IrSvaJSoz+nExqOS2erxvVtNgpcybu3HcpsZ0gn1swf1cRrxQm1fmo9KxI+h+ju
	CZFLBg/H0TVv1h/QFGH8rnXY76Gq3ePVloqWvjeWvsYT2oVavoYlIo1VImpKWoUwTvaz4p
	cPLamP/CzKFPpAo5OUcPzALHcHPbtqM59PPNnrgGjeHJxrThVoTVOtC1o9eO8zdgGPYUKj
	zryq/eTP01Dp+R44oI8MZSOmSjJLzIiV1IzxerSxR4w0ZP7hHhS994MVhhoE9g==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694879677; a=rsa-sha256; cv=none;
	b=OVpo8C28mWAuExouecDQecRCfa0G6snoxzewlFKxSE3d3uRxfDuw4gAM1Q+81Z3abakvEj
	dkMBDpYv/NEpLiklsG0XamDvfrOpYU+e9CIJDvJJMl+uOor79f6s9LGrnMFbYO1lbIxa5A
	cmNOMoHh4X/zccLCujtN1GRwYSp8M9Vx9IhB/QHvHgBAgTAK4pjztgUEqvYSWDEddDYAuy
	+6E5T9koxDWYxEKV7397gCzxoAx1NR19k0CIsArKYwGrzz7dEo/k9EkXavVEta5vhkXgUb
	pWfEgPeqXI4hXsB9ujW52bUeQ8GcrBsOnANf3wZlklFoSVMKuKu7g/E5+F7SnQ==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694879677;
	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=ZnzTvxriQ9fsiYoSPj1oEyiZh4iYiYF0nhTIYQitzEM=;
	b=hWqFb5Vi9ygLIiR6/enByDdXafV6zpZ4+KFElcPLbdolQlL47H+Ma+pD0aqs4SWQA+OxCL
	zSak6ULc7Uwk6rWNAPZV6NAQmiObWbuCv1KLnLPVPZ82FVtQRSMoeoAyHHCMOMF32spz4V
	FKQFm1N24u3qbU78Hrsljl93qlP+S30kjxwfG7dMPA9J1PoQYkpEKHWVOcgzSUCHXRXvxS
	AnPOR6MAbq8qwU/3mv/jyjJ01F2rUUkMNnOzgC//a1YiIQTaAmir0gAqOGN1palFVAxaw0
	cpPuWPUC3YgCB6lM9paO7/o9AS5iZceby49Dq7AXCfRaCPPHzQkTwSgVmXzH5A==
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 4Rnwbx4NyWz1C81;
	Sat, 16 Sep 2023 15:54:37 +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 38GFsbkb064476;
	Sat, 16 Sep 2023 15:54:37 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38GFsbP9064474;
	Sat, 16 Sep 2023 15:54:37 GMT
	(envelope-from git)
Date: Sat, 16 Sep 2023 15:54:37 GMT
Message-Id: <202309161554.38GFsbP9064474@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Mateusz Guzik <mjg@FreeBSD.org>
Subject: git: ef89b78bb1f6 - main - vfs: stabilize freevnodes_old
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: mjg
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: ef89b78bb1f60484cc743fa590d623ad896ca8e9
Auto-Submitted: auto-generated

The branch main has been updated by mjg:

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

commit ef89b78bb1f60484cc743fa590d623ad896ca8e9
Author:     Mateusz Guzik <mjg@FreeBSD.org>
AuthorDate: 2023-09-16 15:41:12 +0000
Commit:     Mateusz Guzik <mjg@FreeBSD.org>
CommitDate: 2023-09-16 15:54:09 +0000

    vfs: stabilize freevnodes_old
    
    In face of parallel callers.
---
 sys/kern/vfs_subr.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index 9d5b1b7e472e..11cdea5a7dc1 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -1528,21 +1528,22 @@ vfs_freevnodes_dec(void)
 static u_long
 vnlru_read_freevnodes(void)
 {
-	long slop, rfreevnodes;
+	long slop, rfreevnodes, rfreevnodes_old;
 	int cpu;
 
 	rfreevnodes = atomic_load_long(&freevnodes);
+	rfreevnodes_old = atomic_load_long(&freevnodes_old);
 
-	if (rfreevnodes > freevnodes_old)
-		slop = rfreevnodes - freevnodes_old;
+	if (rfreevnodes > rfreevnodes_old)
+		slop = rfreevnodes - rfreevnodes_old;
 	else
-		slop = freevnodes_old - rfreevnodes;
+		slop = rfreevnodes_old - rfreevnodes;
 	if (slop < VNLRU_FREEVNODES_SLOP)
 		return (rfreevnodes >= 0 ? rfreevnodes : 0);
-	freevnodes_old = rfreevnodes;
 	CPU_FOREACH(cpu) {
-		freevnodes_old += cpuid_to_pcpu[cpu]->pc_vfs_freevnodes;
+		rfreevnodes += cpuid_to_pcpu[cpu]->pc_vfs_freevnodes;
 	}
+	atomic_store_long(&freevnodes_old, rfreevnodes);
 	return (freevnodes_old >= 0 ? freevnodes_old : 0);
 }
 

From nobody Sat Sep 16 15:55:30 2023
X-Original-To: dev-commits-src-main@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 4Rnwcy5DqFz4tYck;
	Sat, 16 Sep 2023 15:55: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 4Rnwcy4p7Yz4hdH;
	Sat, 16 Sep 2023 15:55:30 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694879730;
	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=baICKY+foJtt6fyNZdgvbxO+8ENdjZrweWS86xekGQw=;
	b=nqjrV9G3GaUs+2KXKSW9Ms1tCyan/nhLFjmmcp/Pj/I7T0hj7WUiWjiymO56EYkGzZFvRc
	bUiRmQPS/gnGcPUTJQf2E9H4UgbJFupwDJ64f4IkFusO1DPzGCEnUK8dFdRud7k0wr6XxT
	pgvqDDNISHzHW0H8A2jv23EkfB5VSoXfgBtbM0chC6DlyU6Tb0VXylgTgOXuhsgMcdOt1P
	PbRYMfY2HwdnrBenQeqNpHXtjgJGaY0qH09TddD6ewlYnETwDvPK/dgLuNenXJijhq2B7P
	n8InmHcBRIOaUSPqUKOGGhVABzEFtDsWXpgPtdAp66+WtVzV7VkrqvrFWSc0yA==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694879730; a=rsa-sha256; cv=none;
	b=oUTv63+LS7RUDXugX9JoaaJ0h9kT8Emm6Z9cSiY7q8g1mF6BscBBJ5AZWW2hOZ05BlDNN6
	9YcxQzm+7VseR98TBoH5ykQ9iDbw8myXJeFFOh3AGWOucsXU72PjAqcHbAiSWESmBNaAX1
	0k6y85tnjvA1AYC38AnztKOjYqZA5vCOtz38xKFJttUN/thy4/o+oRxatZCBmLD+8olvm6
	XNOga4hGrFLeD3nkdbK1Gal2Poh0P7ROsxTOumBcGv29Ee0kPk2cutk8JW1+D8H4bRXJPQ
	IpfhrkYHb2mzkx2YbduKkWdi/Nq0Uy3SvsaRI9JjlDfaJWCC+SZ8DK3efm8+vw==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694879730;
	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=baICKY+foJtt6fyNZdgvbxO+8ENdjZrweWS86xekGQw=;
	b=sWLurqGAcvQqYpuSl3EgFzNxwiwfA6h6eRUX/UCMB3bkvyZN+yaSpwB/VNdkT2jtixhjs/
	isBptZOMx/nbHu9XggBkfkQnRA3qnZ4Aglf0l5lOAAf7tRYKkdsxJUjn9ptf7IQJHehdN/
	yAw2QN6WHMee5s/s1LA7LLfOfBtBDGHIOgR0emlXXugnAdBRcSxN832j/wgcURZdg6KicB
	bBSHPxT/wSX65qsOrFfpxIk/mriCKUdCtqD77YI7qXt/lIzuYhoLAgCFi6iSdJyg227a6+
	m2LOcZ0eCYj8V30MVPYkom2qC2siMjKfpZdunkuxnXxcGqbQjKvOsHSdny/+0g==
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 4Rnwcy3Dy2z1BsT;
	Sat, 16 Sep 2023 15:55: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 38GFtUdQ064789;
	Sat, 16 Sep 2023 15:55:30 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38GFtUXj064786;
	Sat, 16 Sep 2023 15:55:30 GMT
	(envelope-from git)
Date: Sat, 16 Sep 2023 15:55:30 GMT
Message-Id: <202309161555.38GFtUXj064786@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Ed Maste <emaste@FreeBSD.org>
Subject: git: 1a18383a52bc - main - libcrypto: link engines and the
  legacy provider to libcrypto
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@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/main
X-Git-Reftype: branch
X-Git-Commit: 1a18383a52bc373e316d224cef1298debf6f7e25
Auto-Submitted: auto-generated

The branch main has been updated by emaste:

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

commit 1a18383a52bc373e316d224cef1298debf6f7e25
Author:     Pierre Pronchery <pierre@freebsdfoundation.org>
AuthorDate: 2023-09-15 15:14:16 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2023-09-16 15:55:12 +0000

    libcrypto: link engines and the legacy provider to libcrypto
    
    OpenSSL's legacy provider module and engines need to link to
    libcrypto.so, as it provides some of the actual implementations of
    legacy routines.
    
    This is a little tricky due to build order issues.  Introduce a small
    hack (LIBCRYPTO_WITHOUT_SUBDIRS) that builds libcrypto.so in its usual
    early phase without any OpenSSL provider modules or engines.  This is
    intended to restore the test suite; a future change should remove the
    hack and replace it with a better approach.
    
    PR:             254853, 273528
    Discussed with: Folks at EuroBSDCon in Coimbra
    Sponsored by:   The FreeBSD Foundation
---
 Makefile.inc1                                | 2 +-
 secure/lib/libcrypto/Makefile                | 2 ++
 secure/lib/libcrypto/engines/Makefile.inc    | 2 ++
 secure/lib/libcrypto/modules/legacy/Makefile | 1 +
 4 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/Makefile.inc1 b/Makefile.inc1
index 7c6981f0f890..7776b40a9801 100644
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -2980,7 +2980,7 @@ libraries: .MAKE .PHONY
 	${_+_}cd ${.CURDIR}; \
 	    ${MAKE} -f Makefile.inc1 _prereq_libs; \
 	    ${MAKE} -f Makefile.inc1 _startup_libs; \
-	    ${MAKE} -f Makefile.inc1 _prebuild_libs; \
+	    ${MAKE} -f Makefile.inc1 _prebuild_libs -DLIBCRYPTO_WITHOUT_SUBDIRS; \
 	    ${MAKE} -f Makefile.inc1 _generic_libs
 
 #
diff --git a/secure/lib/libcrypto/Makefile b/secure/lib/libcrypto/Makefile
index 585e89861815..d8ae91bb3272 100644
--- a/secure/lib/libcrypto/Makefile
+++ b/secure/lib/libcrypto/Makefile
@@ -1,6 +1,8 @@
 
 SHLIBDIR?=	/lib
+.if !defined(LIBCRYPTO_WITHOUT_SUBDIRS)
 SUBDIR=		engines modules
+.endif
 
 .include <bsd.own.mk>
 .include <src.opts.mk>
diff --git a/secure/lib/libcrypto/engines/Makefile.inc b/secure/lib/libcrypto/engines/Makefile.inc
index 39b728ff722f..13d5f4849cbc 100644
--- a/secure/lib/libcrypto/engines/Makefile.inc
+++ b/secure/lib/libcrypto/engines/Makefile.inc
@@ -16,6 +16,8 @@ CFLAGS+=	-DB_ENDIAN
 .endif
 CFLAGS+=	-DNDEBUG
 
+LIBADD=		crypto
+
 .PATH: ${LCRYPTO_SRC}/engines
 
 WARNS?=		0
diff --git a/secure/lib/libcrypto/modules/legacy/Makefile b/secure/lib/libcrypto/modules/legacy/Makefile
index 913c0c41f5eb..a285d0b1148b 100644
--- a/secure/lib/libcrypto/modules/legacy/Makefile
+++ b/secure/lib/libcrypto/modules/legacy/Makefile
@@ -1,5 +1,6 @@
 
 SHLIB_NAME?=	legacy.so
+LIBADD=		crypto
 
 SRCS+=	legacyprov.c prov_running.c
 

From nobody Sat Sep 16 17:20:13 2023
X-Original-To: dev-commits-src-main@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 4RnyWd0gnfz4sgqN;
	Sat, 16 Sep 2023 17:21:01 +0000 (UTC)
	(envelope-from mavbsd@gmail.com)
Received: from mail-yb1-xb33.google.com (mail-yb1-xb33.google.com [IPv6:2607:f8b0:4864:20::b33])
	(using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (2048 bits) client-digest SHA256)
	(Client CN "smtp.gmail.com", Issuer "GTS CA 1D4" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4RnyWc5y0Yz3LSM;
	Sat, 16 Sep 2023 17:21:00 +0000 (UTC)
	(envelope-from mavbsd@gmail.com)
Authentication-Results: mx1.freebsd.org;
	none
Received: by mail-yb1-xb33.google.com with SMTP id 3f1490d57ef6-d815a5eee40so2880776276.2;
        Sat, 16 Sep 2023 10:21:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1694884858; x=1695489658; darn=freebsd.org;
        h=content-transfer-encoding:in-reply-to:from:references:to
         :content-language:subject:user-agent:mime-version:date:message-id
         :from:to:cc:subject:date:message-id:reply-to;
        bh=36fzDa8Oade/qs0EQ3rhlYFTK2CVQ/xjFY+kR0cxtLg=;
        b=DWJ4aZJYMdaREgLUe4P/hk644WeTYqxs5OmSxEZCP1pF8TjuuQIfMwEH6ATMvcMGVL
         CKsESgeKrT0qWx2FqK8RTo0Tnz35huNvu1yFun1e5HYQlO6qGN0ggAcSJXtK+YZ4TElX
         esQ88jGVdgCymFjwAfiNitl3uTY26s2iGdAhchHYIW4xRBP0v4WR0Cg6iwwInaMi1gOJ
         YY4AaqlEFET+qm1zuFfGvzX4ATWwdFAZd5OquXPBJJk/e1nxNvr9OBuoZ4KzozLa6Bc/
         ZKKkYh/WE1nraG8r5WYmu3wrobPNMe93E8XjtCW8TjyGrg5FuduQGZAlEfF2rZbGBPvV
         /5Rw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1694884858; x=1695489658;
        h=content-transfer-encoding:in-reply-to:from:references:to
         :content-language:subject:user-agent:mime-version:date:message-id
         :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
        bh=36fzDa8Oade/qs0EQ3rhlYFTK2CVQ/xjFY+kR0cxtLg=;
        b=B8GkvyRIep+waIZEhCg+Pxt9G30+g3/ojgiJjfr/qo9Ph98FcmLl51nKfX5avpyjzp
         TEnk/pnyEieLBSSVadz6Ihsb8xPSTwQBmlCmv/WvzwCQhxtoHe4A9v3eak/Q6d+Al06F
         15/Y1nnMiIIr9FWuPnICvunSp0edVl6oRyp6cV3IJn8bqgK+9acByCWyOicyfd0JM3B0
         e/5xRMOXalvZkqoZFQulMMH4oUEheel+u1N8jtGxNtBgzOc+rkWqQfpL6PBtLVmX8IRC
         Rh+2j8ecj47A7q9RS2LyIAelTfP88WhwO5kjjIVduxMW4qUeE/dvYOC0DazjfibToqtl
         /Jog==
X-Gm-Message-State: AOJu0Ywmy5LU0lknk+HvvblLHkqqKkQ+arvNDJnoGxAIJXkQ9Jc5t7cA
	YbMoGlkZX9wulGTBoeEhjIQJ+X87zX4/Xg==
X-Google-Smtp-Source: AGHT+IFmpUGllcvSnPISPKSbIMa0jqOMdkIJIFZW+jIdDXKH9I1IVB1CMUr07q1Soq8lTU00NoKLhA==
X-Received: by 2002:a25:ae66:0:b0:d48:1936:14d0 with SMTP id g38-20020a25ae66000000b00d48193614d0mr4650726ybe.53.1694884858524;
        Sat, 16 Sep 2023 10:20:58 -0700 (PDT)
Received: from [10.230.45.5] ([38.32.73.2])
        by smtp.gmail.com with ESMTPSA id f144-20020a25cf96000000b00d7465a90f0csm1375774ybg.22.2023.09.16.10.20.57
        (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
        Sat, 16 Sep 2023 10:20:58 -0700 (PDT)
Message-ID: <329fd392-f737-7fb0-55ef-f40a83698658@gmail.com>
Date: Sat, 16 Sep 2023 13:20:13 -0400
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:102.0) Gecko/20100101
 Thunderbird/102.11.0
Subject: Re: git: 49874af3eca6 - main - zfs: retire z_nr_znodes
Content-Language: en-US
To: Mateusz Guzik <mjg@FreeBSD.org>, src-committers@FreeBSD.org,
 dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
References: <202309161420.38GEKHrZ008283@gitrepo.freebsd.org>
From: Alexander Motin <mavbsd@gmail.com>
In-Reply-To: <202309161420.38GEKHrZ008283@gitrepo.freebsd.org>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spamd-Bar: ----
X-Rspamd-Pre-Result: action=no action;
	module=replies;
	Message is reply to one we originated
X-Spamd-Result: default: False [-4.00 / 15.00];
	REPLY(-4.00)[];
	ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]
X-Rspamd-Queue-Id: 4RnyWc5y0Yz3LSM

On 16.09.2023 10:20, Mateusz Guzik wrote:
> The branch main has been updated by mjg:
> 
> URL: https://cgit.FreeBSD.org/src/commit/?id=49874af3eca6fbbeb3967c737baa3478d6a4e967
> 
> commit 49874af3eca6fbbeb3967c737baa3478d6a4e967
> Author:     Mateusz Guzik <mjg@FreeBSD.org>
> AuthorDate: 2023-09-16 14:18:05 +0000
> Commit:     Mateusz Guzik <mjg@FreeBSD.org>
> CommitDate: 2023-09-16 14:18:05 +0000
> 
>      zfs: retire z_nr_znodes
>      
>      It is not needed and is going away soon(tm), facilitating other changes.
>      
>      See https://github.com/openzfs/zfs/pull/15274

And still for some reason you've committed only half of the upstream PR.

> ---
>   sys/contrib/openzfs/include/os/freebsd/zfs/sys/zfs_vfsops_os.h | 1 -
>   sys/contrib/openzfs/module/os/freebsd/zfs/zfs_vfsops.c         | 8 +++-----
>   sys/contrib/openzfs/module/os/freebsd/zfs/zfs_znode.c          | 2 --
>   3 files changed, 3 insertions(+), 8 deletions(-)

Thanks for working on this any way.

-- 
Alexander Motin

From nobody Sat Sep 16 17:28:08 2023
X-Original-To: dev-commits-src-main@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 4Rnygr5LyTz4sjYx;
	Sat, 16 Sep 2023 17:28: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 4Rnygr4gZtz3MxY;
	Sat, 16 Sep 2023 17:28:08 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1694885288;
	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=MWPRmjOKZ5Gcpgfcs5Z2JVzH61/uQfcSWkaamvuwMVg=;
	b=C3xSWCmkCb9aI4U9CXNInUjNRvOAHZPpeI3mKLbLwYFK9lTrh6bjMXodrh5elLkcFGcwKo
	jLxF5Kn5oDyKG/fsTaToGL8cuvhiIAYNT0mo+m+2uJ7A46TrYXFniqGWCiCOT2vcSClbl3
	w/GEHuADHEVG6B26GL1zkSYuaQ5Lljc2YYfV3oDsXHPYWcMGpgTZkhxm8+NamrgYQ1chgV
	njqV/sVEu/EhFvhrTFRHLAx2DkFTxRJmrb/a1GiBUfW1JhZuI2BrxzY6xqOFrlKWUuAjuh
	6LnAfjVW3xUxTEgbefs/Y3oi79VOIAKRp1pc51sllmEM/DHQ6jrzUw3isKHjCA==
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1694885288; a=rsa-sha256; cv=none;
	b=tYVMsWCUzv2WFMJ6KpIa23Arvnj9kjIXIsoidpqdLeCYFmU9Sla5UryPWBkkE58eadABeE
	CzsYZTF2IdcVIVFr931qr/mfkjcsO/4u1tXXYGs/lY7wsr1sCrdAaGwgDJWKjIrdUGXbqb
	FormhsFYWaCn8TdahBOSgH243B/1GFF/bl4Q8CET0BByBUzTCWv7MTAB2AFzcl7RXKiD4S
	inNJ6Xzhs9Yi6djVB8hV6zx/itoxBsticLy2h/EwJgIZJMNHpeD1MUZp6/xQFwqJufRPqN
	Sn73CaTHal8jntllNqBC/Y/c87SU2RtL/RgI46wmBR4Nb1DRxyTxAft1khzz5A==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1694885288;
	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=MWPRmjOKZ5Gcpgfcs5Z2JVzH61/uQfcSWkaamvuwMVg=;
	b=eBC4siaqnMpzPCcIfQJeH6e9PU6o0jhv+a8NaV5t2mVQNOvGuCw0/foGfynk7z07VItste
	klvT5vD0ltKFcl/4Fv74+8QGBrjengjCl0v0cpQXFyl9Zwzq0ACWnDAYZpiVfI12jDEimK
	FxEmBwVWpw8HMyg1Q7s+FBi9LAJofDYt7rSOJRkz7sYy+FrPu49+I/kXsDz2M1f5YEll4W
	esCXMq2w1k3qqWFT2DgUSC4Fx+OpsIv8gxnW52V2N2RAzxxcu8dXs943N918HEP9BbV6XC
	HVApzmIJuUX5yjICYuA5RRrPbqj3xYv2ivbU5mHAbRAEhjPnwbvvq71mSc5uFg==
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 4Rnygr3m2Yzl6;
	Sat, 16 Sep 2023 17:28: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 38GHS8mK014524;
	Sat, 16 Sep 2023 17:28:08 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 38GHS8vK014521;
	Sat, 16 Sep 2023 17:28:08 GMT
	(envelope-from git)
Date: Sat, 16 Sep 2023 17:28:08 GMT
Message-Id: <202309161728.38GHS8vK014521@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-main@FreeBSD.org
From: Mateusz Guzik <mjg@FreeBSD.org>
Subject: git: 9080190b970c - main - vfs: count how many times vnlru
  got woken up due to vnode shortage
List-Id: Commit messages for the main branch of the src repository <dev-commits-src-main.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main
List-Help: <mailto:dev-commits-src-main+help@freebsd.org>
List-Post: <mailto:dev-commits-src-main@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-main+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-main+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-main@freebsd.org
X-BeenThere: dev-commits-src-main@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: mjg
X-Git-Repository: src
X-Git-Refname: refs/heads/main
X-Git-Reftype: branch
X-Git-Commit: 9080190b970c7026695571f90b95fdcf7056ec67
Auto-Submitted: auto-generated

The branch main has been updated by mjg:

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

commit 9080190b970c7026695571f90b95fdcf7056ec67
Author:     Mateusz Guzik <mjg@FreeBSD.org>
AuthorDate: 2023-09-16 17:26:39 +0000
Commit:     Mateusz Guzik <mjg@FreeBSD.org>
CommitDate: 2023-09-16 17:26:39 +0000

    vfs: count how many times vnlru got woken up due to vnode shortage
---
 sys/kern/vfs_subr.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index 11cdea5a7dc1..0251525a50c7 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -1477,6 +1477,10 @@ vnlru_recalc(void)
  */
 static struct proc *vnlruproc;
 static int vnlruproc_sig;
+static u_long vnlruproc_kicks;
+
+SYSCTL_ULONG(_vfs_vnode_vnlru, OID_AUTO, kicks, CTLFLAG_RD, &vnlruproc_kicks, 0,
+    "Number of times vnlru got woken up due to vnode shortage");
 
 /*
  * The main freevnodes counter is only updated when a counter local to CPU
@@ -1571,6 +1575,7 @@ vnlru_kick_locked(void)
 	mtx_assert(&vnode_list_mtx, MA_OWNED);
 	if (vnlruproc_sig == 0) {
 		vnlruproc_sig = 1;
+		vnlruproc_kicks++;
 		wakeup(vnlruproc);
 	}
 }