From nobody Mon Feb 16 00:24:09 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fDk6K39S7z6RkBq for ; Mon, 16 Feb 2026 00:24:09 +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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fDk6K1XhGz3kVk for ; Mon, 16 Feb 2026 00:24:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771201449; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NlhOG5nv1qibdUGF6CHHnrRONpXj7ItqBqmefga3HVQ=; b=fbEuxxmzgLKsVrlDoLbQ6IRAp+7mQk6vnrxGt3vDXhRtzKVKuqWDjNOoW+0vWXHOBizZqV LL7dy0x5s4XF32lfg0Mwz9p0YFqDX4cCrxOs/ltkd+Dh37ogoeUDiNGT2g7FWyds04Oybn QjC+FQMzVA4ei80xJCy0vnQmg3q/+cUtPAK/MIqcq6mokFoWtyU83hxKRIYIzzmFXfHh7q Q8cZGiCdiui54WjMPEzlf1IJxxOj1hItEpmCDVdU7lz10GvLtLlsxnFbS5oV5oPemFwZxa Eee7iiiz/s4NwHJiUe4YzU9ySYLxCSFWRJC6bSyTLXmGxM2fd6q/Owjr1eJ33g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771201449; a=rsa-sha256; cv=none; b=gPAPfIDJDeSGg+JZwB8nL5DiiGhBjrp82NUvBCMtMUIk97xe0J+sIsPnXaY0LKDgT5nmg3 te0WcmG4VFCnshsuzaF6rJCY5JgVC25uTuMgWeQLx7sKw4cGdoUwsmwPvn1hHs0PrRHSZ6 gXMFiaTjR5ITzc3OwOvIuboJyEd5p5sFFtqLpSrWGtwJXptAAFRJ1VrbYi/imFiHvmCO0q RbL/dONxg37NMXjApVl1TO4zWaGLA0Gz+5U96xhwziQ2s546/e+u7eRAMOtO0vyhRgZZ2s cvEXRfoUaXjs7lTmvtZtVUlw8prF2xYBCzswJYjGHzEIYR3homg4LfU3HMrc1A== 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=1771201449; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NlhOG5nv1qibdUGF6CHHnrRONpXj7ItqBqmefga3HVQ=; b=UWJNfkCIO7ZSo58xZiID4I79DJ/w8uAh0eaN7iWZHyteRb92XX+X9sNW22fNugoFTlFMq1 HR/Q5nsNvcpH9R68TFGVmV8XNBl2K7nkoKt1YpMgzQT/OnkeCcPIu8lUWPWElDo5eQlNMN boIYxj+wY77rZYwzwO0+EbzcS9stRVyBRpxii111Ttd+pnAi0t1pBb+9uRKAJomxUMsxS8 iXrFoyuWKTpVVgOeObmhNCjxd0KN9O2D54OqyqKWuvN/WBpLC4DlWG6QPsmfSCi6hxJP5Z eBdU9Rq6oigAvLJzzpojOVDjmpoep+A1hGOSjFXiaBXgAPsqINn44+tbmF+cRA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fDk6K15Ycz1Fqw for ; Mon, 16 Feb 2026 00:24:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3701d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 00:24:09 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: 817f0b88ff3f - stable/15 - newsyslog.conf.5: Add a CAVEAT List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 817f0b88ff3f03d580e187d2c5910c21c88c33c9 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 00:24:09 +0000 Message-Id: <699263a9.3701d.2a7abfaa@gitrepo.freebsd.org> The branch stable/15 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=817f0b88ff3f03d580e187d2c5910c21c88c33c9 commit 817f0b88ff3f03d580e187d2c5910c21c88c33c9 Author: Alexander Ziaee AuthorDate: 2026-02-12 14:14:47 +0000 Commit: Alexander Ziaee CommitDate: 2026-02-16 00:23:30 +0000 newsyslog.conf.5: Add a CAVEAT PR: 282639 MFC after: 3 days Reviewed by: michaelo Differential Revision: https://reviews.freebsd.org/D55122 (cherry picked from commit 64e612b46290617ec753b4ee6ec633a3724940e3) --- usr.sbin/newsyslog/newsyslog.conf.5 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/usr.sbin/newsyslog/newsyslog.conf.5 b/usr.sbin/newsyslog/newsyslog.conf.5 index d94c39332597..a6c0e75b209d 100644 --- a/usr.sbin/newsyslog/newsyslog.conf.5 +++ b/usr.sbin/newsyslog/newsyslog.conf.5 @@ -18,7 +18,7 @@ .\" the suitability of this software for any purpose. It is .\" provided "as is" without express or implied warranty. .\" -.Dd September 1, 2025 +.Dd February 4, 2026 .Dt NEWSYSLOG.CONF 5 .Os .Sh NAME @@ -497,3 +497,6 @@ entry: .Sh HISTORY This manual page first appeared in .Fx 4.10 . +.Sh CAVEATS +If a line is specified multiple times, +the file will be rotated multiple times. From nobody Mon Feb 16 00:52:06 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fDkkZ4X9nz6RmT7 for ; Mon, 16 Feb 2026 00:52: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fDkkZ2Knyz3my5 for ; Mon, 16 Feb 2026 00:52:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771203126; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PqCECwy/ChsHdOjPTsaP1FduY9c0DdUZFoSp+bwxolg=; b=Ez8X7KwgJXfx/oOcytTmVWfUU1Yt677uov3FOpAXe42hMEfcEiR4xRUp1VPAhqhrCgoGO3 qbBEXh5JJr8pFPUmrmWsqxq1aZ8je0eeaftellkXQG4Ndxv0inohndZWY1j9fddGm9iqsr yZRWDpUKgOkstwSn/VQVdelM/XuDXsui7zYl87MmNH5sUjGSZIcRNb+mOJT7NDHo57+kk+ R466J+eQ9kQKtPqizzNNeOHpPTgfTQd8Qt7m9N7OyBQEIT6ZgAC1bWkfqhqDFTVPETEeGz luUrwKCtqg/53RdYDSuUgX746UVtwia2jKM6qKySSQTsUcbtCPFROiX0QiqcqQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771203126; a=rsa-sha256; cv=none; b=GCUPfDM0idirxu/ivG9MCCr/WuTnCQV2wpaibfhgZ3JNU2lPQ/2k1ubvzVcfK0rgBV16FC EfGUS8xGZAbHXbJ0ctkk9RXWk+1ddqkwpL4zQ4btzwYvz5FHZFnSsdnQG4LamN1eBYE/Fq Ce4vcV/JJ6/kdLYOZaXGnMhjsJzDDrFsN+6Mlk5TiMmd5nX/Ttwssy7W7GIcVrV8GWCxp9 xuC9N7kr/MVZdsAQdS6enW4FVMtF8ZDQx2uv10+/uu+zT3ewX6tLgKbcIYg2WA+E8cQq1S i5HFiXDx6TsPXGhRKCUCHkorQ7CM3mAbV9pYZcLx9wZcaFIPUMfahh4FIBXKkg== 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=1771203126; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PqCECwy/ChsHdOjPTsaP1FduY9c0DdUZFoSp+bwxolg=; b=hMPGQwUnG44QvcqV9yIQrMoXgjQ+xF4EBfFqGx9tE4r6Li6lSUzGbh72UHnfjdG9kWFOZg EFo2cu8bi+bVwGlvqxTyOtCIlJFNRuOaOw1N+uNBlpwO4HTuHkBdVmaZ1fAiMybkU5odoW HQeiJTR0eI+oBFQ8CGKPlbe9/Em/YbPlHiKPKdD8jAUS4MQY5H+19/BKbuVWAFFyZ66QL6 3tXmzGsoKceAwxni4Rag3xkvTn6Z/WXi6mS9b6jFXPTa8qOHLoWhaOtcgAo/YVS8lNh5YH JHOmuuBKVfU2CiX7SxuNyTgO7gOspmz27gjJIuBV+/qADMUoBOE7ZcxUo3AdYA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fDkkZ1v6Zz1GGk for ; Mon, 16 Feb 2026 00:52:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 38e4f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 00:52:06 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Rick Macklem Subject: git: b45447c6cc21 - stable/15 - runat: Add -h to manipulate a symlink's named attribute dir List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: rmacklem X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: b45447c6cc21d771c41883a1c4ecc6008f221779 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 00:52:06 +0000 Message-Id: <69926a36.38e4f.7681543e@gitrepo.freebsd.org> The branch stable/15 has been updated by rmacklem: URL: https://cgit.FreeBSD.org/src/commit/?id=b45447c6cc21d771c41883a1c4ecc6008f221779 commit b45447c6cc21d771c41883a1c4ecc6008f221779 Author: Rick Macklem AuthorDate: 2026-02-02 22:38:13 +0000 Commit: Rick Macklem CommitDate: 2026-02-16 00:50:04 +0000 runat: Add -h to manipulate a symlink's named attribute dir Lionel Cons requested that a new option be added to runat(1) so that it could be used to manipulate named attributes associated with a symbolic link and not the file the symbolic link refers to). This patch adds the option -h/--nofollow to do this. (cherry picked from commit 4bfb7cfb70e62bc316de9e73cfd63a5c85541154) --- usr.bin/runat/runat.c | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/usr.bin/runat/runat.c b/usr.bin/runat/runat.c index 99437f3472f4..eb30ef87f2f9 100644 --- a/usr.bin/runat/runat.c +++ b/usr.bin/runat/runat.c @@ -8,17 +8,25 @@ #include #include #include +#include #include #include +#include #include #include #include #include +static struct option longopts[] = { + { "nofollow", no_argument, NULL, 'h' }, + { "-", no_argument, NULL, '-' }, + { NULL, 0, NULL, 0} +}; + static void usage(void) { - (void)fprintf(stderr, "usage: runat " + (void)fprintf(stderr, "usage: runat [-h/--nofollow] [--] " "\n"); exit(1); } @@ -26,15 +34,28 @@ usage(void) int main(int argc, char *argv[]) { - int i, file_fd, nameddir_fd, outsiz; + int ch, file_fd, flags, i, longindex, nameddir_fd, outsiz; char *buf; long named_enabled; size_t pos, siz; + bool done_args; - if (argc <= 2) - usage(); - argv++; - argc--; + flags = O_RDONLY | O_CLOEXEC | O_PATH; + done_args = false; + while (!done_args && (ch = getopt_long(argc, argv, "h-", longopts, + &longindex)) != -1) + switch (ch) { + case 'h': + flags |= O_NOFOLLOW; + break; + case '-': + done_args = true; + break; + default: + usage(); + } + argv += optind; + argc -= optind; if (argc < 2) usage(); @@ -61,7 +82,7 @@ main(int argc, char *argv[]) } buf[pos - 1] = '\0'; - file_fd = open(argv[0], O_RDONLY | O_CLOEXEC, 0); + file_fd = open(argv[0], flags, 0); if (file_fd < 0) err(1, "Cannot open %s", argv[0]); nameddir_fd = openat(file_fd, ".", O_RDONLY | O_CLOEXEC | O_NAMEDATTR, From nobody Mon Feb 16 01:04:59 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fDl1S1QpLz6RnQB for ; Mon, 16 Feb 2026 01:05: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fDl1R6WMPz3pnY for ; Mon, 16 Feb 2026 01:04:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771203899; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=25hKCazEB5xSTfcsgZTKV0ygClQkXlZvQGm8MROcEIE=; b=TWqqjSjmHqzkqwTUwZ6jVQlD49wMYuMlSQxYcrjStVD12b96CsHYzQ1B5HSEiyidJ5ZUMd UAHOMNswYvjypqkvKO4RToX++NJUomDYVeeBIVQcJIjs9F5Vwz+ydd1VWVLil2iMrfcdhg FzseP8GZed3rLs3C4YnxcT6UakIlUO+W372sOiaZO8pFXecioVv0WElll3ISqXbVn5VPkW 8fUFy8k5KBiAo+udyBn4ArzznevIyxYFJVC8exkbuSHqK0JEAMAZHQS0QAaxDvSwwPim1V BomyOUqZ0h+0uXkhT2/8SpZt9y1i+y/FiaywHCwLAGy+nbYFIGQQ7uNVzShFGw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771203899; a=rsa-sha256; cv=none; b=Mq2oRlIVF/BA/o9ggD4XkGFPvXtojp40X1SH5YhoMXcvURUf/KhjFV1P0FWfkWENRunxn+ wCUJ+fTdt4NWnp4TmguqzGrguWFRUS4m72KFI2P++7AbU4cnfhYijwYFaeDJAQbUeTYDys sAIfUnJx6NyjTHQkxg2sM6yBxMWlDiM+EVZcdDS4XyrjMmbXIBlCJnlNlYWZ7whyfYKP+B xizb6lkOQvzoTX3cPA+XclwvYz64dgkT9JEeqRUe6STVzLcTEZ+xPupzeaF7rvRSB/QrL4 IJtf/oOb5M489kuwqMT/MzRbf3wAz6CL0bnbUXKCbnuAMYvDqtN1+cgbxqpAjw== 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=1771203899; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=25hKCazEB5xSTfcsgZTKV0ygClQkXlZvQGm8MROcEIE=; b=C/TMB7A/93Rh0i6WttSxJXBdLBWL1PZsy9BH+NRoB7RSWTu6aXfeNKNV66NKUTyzQyyTR7 Xo/f84ICaLZKGQYS7siQFn89wfaUwBnZkkKM27jfM1tZxhayiRUxpb1bzdGGkF/PCaGLt1 OEm/QCo3xvn0hF6YY4TisWdfQ+PTiQrrzIml71Wifl2AQV/3N7DUnxj+lplNK1L8myaQJV IMIiGMmnriegE2OeS6xhbd65xqmT9PYNq2pj6BEVNK029Uwgwz2mPGepDofiWCMsNUWWwA AGT7qoZfJ9G9br3ZgC7bIT/h5MX5d5b7lmtmmPTkitkL3M2W9V7LTxS6QNI30Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fDl1R5NlBz1GqC for ; Mon, 16 Feb 2026 01:04:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 39f38 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 01:04:59 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: 17da2d24b7af - stable/14 - newsyslog.conf.5: Add a CAVEAT List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: ziaee X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 17da2d24b7af843739be6b3d9ce244f511cde2ee Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 01:04:59 +0000 Message-Id: <69926d3b.39f38.27d56e20@gitrepo.freebsd.org> The branch stable/14 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=17da2d24b7af843739be6b3d9ce244f511cde2ee commit 17da2d24b7af843739be6b3d9ce244f511cde2ee Author: Alexander Ziaee AuthorDate: 2026-02-12 14:14:47 +0000 Commit: Alexander Ziaee CommitDate: 2026-02-16 01:03:29 +0000 newsyslog.conf.5: Add a CAVEAT PR: 282639 MFC after: 3 days (resolved merge conflicts) Reviewed by: michaelo Differential Revision: https://reviews.freebsd.org/D55122 (cherry picked from commit 64e612b46290617ec753b4ee6ec633a3724940e3) --- usr.sbin/newsyslog/newsyslog.conf.5 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/usr.sbin/newsyslog/newsyslog.conf.5 b/usr.sbin/newsyslog/newsyslog.conf.5 index 92ccf54732e0..806b118c5bec 100644 --- a/usr.sbin/newsyslog/newsyslog.conf.5 +++ b/usr.sbin/newsyslog/newsyslog.conf.5 @@ -20,7 +20,7 @@ .\" the suitability of this software for any purpose. It is .\" provided "as is" without express or implied warranty. .\" -.Dd November 11, 2024 +.Dd February 4, 2026 .Dt NEWSYSLOG.CONF 5 .Os .Sh NAME @@ -436,3 +436,6 @@ entry: .Sh HISTORY This manual page first appeared in .Fx 4.10 . +.Sh CAVEATS +If a line is specified multiple times, +the file will be rotated multiple times. From nobody Mon Feb 16 06:18:39 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fDszM2mKHz6SLM2 for ; Mon, 16 Feb 2026 06:18:39 +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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fDszM1pZqz3N2m for ; Mon, 16 Feb 2026 06:18:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771222719; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qfYR1fnJMmIfakWJiT7FNjxBGyWOZlsktYTzj6m2gww=; b=SljOgxO+/9nS4JJ8Rf0kxc7F+0XttxP11oq54saCZY33471bxaSSqwbZ8w7wEBHSyiUlrK NIZ8Wq7V2k+tt51r3qqPgpg6kn+Euk4J3sj90/pQrNvllR0v+D4mAWbTsi+r81cgPETfuJ AuxG1WH+Tw9fRNwEU0Jqozkl2umL4vQ0bnG5dotLsYKnb7R2A/6MthjlGwj+lNBBUufUqS dJXfOfEMrzLNH9o3puWQDN/7mLmWRRQ7/4JRYwKOE5d9d4TPbPjWwnQLF8X2cdHrT9S4w6 in4OsfjryYQaRFKxO2OWJA3O8dopiA6rQ7uoH/grtshcoegnWUWxPZHhlLO6mg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771222719; a=rsa-sha256; cv=none; b=YzbuFPBZ0i8Tl/jLHI7173rpTg6gJLxvQUakkhdUVI3rG3wVy4O0cLMKgqLnw5fCOVJZy+ +QDJiWqanG4eESma3VTPR84cEcoQCX3DnQUhq3eI3TUuoCvc492zhO7YOy+LH7QoPN6T4A Ba1pwBWKC+lgy/860/9BfMDJ0eRdW/h68AGUaZJxXnF+tLFfUCAOwvZIIz+Q1TKnd4DUfS ieqxGy/qsTl5IUhzU803CGAMV7LSV3Rf3IdJIffaxdnSSFmt6fkMt4AS3ekzHbEWATOMlX zu4KMs3rU0I3Ra+WPJ5ombiaykBrc/TtKAJMh6JNGOT1pjbVVxdC+DEmpUNwLA== 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=1771222719; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qfYR1fnJMmIfakWJiT7FNjxBGyWOZlsktYTzj6m2gww=; b=DKlLVCJ27TEulQA8gz0XYLRZE/FLij12bimJF743+6ZC6/uQn+skenYtneeVuYm99Oatxs VkOYfEAeik+/JsSgIAFAM0DOI4B1Ynblvp8EZoe0D1Divuf6/0pVoQJ5lSoK/8TBDVf6uo KyiaXarL9ylnkcL5gN9SKrsbiXGT9VETSEUsTe6bNhzpo8thwpYuQWlThp4lVn/X9V6rNV p9IvVCX17oErWqrNZnu7XJqdHXpRI2bO5NLZTRaasXkYozpSVsxWbb8DaRxgDA7NNew9aj CquVfaJMfWWyou1t3/H11VZW82pJv6S+kwQrAx1N5Yqdd6TVgYXsZCuQ70oONw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fDszM0h0Xz1PrS for ; Mon, 16 Feb 2026 06:18:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3bf9b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 06:18:39 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: daa5f78c691b - stable/15 - kern/vfs_unmount.c: promote flags to uint64_t List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: daa5f78c691b1a1d1ee5b17c63cc3548dac21d74 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 06:18:39 +0000 Message-Id: <6992b6bf.3bf9b.641e58d3@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=daa5f78c691b1a1d1ee5b17c63cc3548dac21d74 commit daa5f78c691b1a1d1ee5b17c63cc3548dac21d74 Author: Konstantin Belousov AuthorDate: 2026-02-09 03:11:15 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-16 06:12:28 +0000 kern/vfs_unmount.c: promote flags to uint64_t (cherry picked from commit 8066b8923ebfd438dc8cb840d2f57066f4daa45d) --- sys/compat/linux/linux_file.c | 2 +- sys/kern/vfs_mount.c | 4 ++-- sys/sys/syscallsubr.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sys/compat/linux/linux_file.c b/sys/compat/linux/linux_file.c index daddafa325ad..8413a481c5a9 100644 --- a/sys/compat/linux/linux_file.c +++ b/sys/compat/linux/linux_file.c @@ -1171,7 +1171,7 @@ linux_oldumount(struct thread *td, struct linux_oldumount_args *args) int linux_umount(struct thread *td, struct linux_umount_args *args) { - int flags; + uint64_t flags; flags = 0; if ((args->flags & LINUX_MNT_FORCE) != 0) { diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c index 240bf5451a84..2237fcc6b423 100644 --- a/sys/kern/vfs_mount.c +++ b/sys/kern/vfs_mount.c @@ -1720,11 +1720,11 @@ int sys_unmount(struct thread *td, struct unmount_args *uap) { - return (kern_unmount(td, uap->path, uap->flags)); + return (kern_unmount(td, uap->path, (unsigned)uap->flags)); } int -kern_unmount(struct thread *td, const char *path, int flags) +kern_unmount(struct thread *td, const char *path, uint64_t flags) { struct nameidata nd; struct mount *mp; diff --git a/sys/sys/syscallsubr.h b/sys/sys/syscallsubr.h index d169481fe13b..908a3b89259b 100644 --- a/sys/sys/syscallsubr.h +++ b/sys/sys/syscallsubr.h @@ -402,7 +402,7 @@ int kern_wait6(struct thread *td, enum idtype idtype, id_t id, int *status, int kern_writev(struct thread *td, int fd, struct uio *auio); int kern_socketpair(struct thread *td, int domain, int type, int protocol, int *rsv); -int kern_unmount(struct thread *td, const char *path, int flags); +int kern_unmount(struct thread *td, const char *path, uint64_t flags); /* flags for kern_sigaction */ #define KSA_OSIGSET 0x0001 /* uses osigact_t */ From nobody Mon Feb 16 06:18:40 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fDszN3r63z6SLPh for ; Mon, 16 Feb 2026 06:18: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fDszN1Nhnz3N1M for ; Mon, 16 Feb 2026 06:18:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771222720; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dhJUe+BfCWw8bGQLwD/iyIqp5PHGG6XC50/koJFxcMk=; b=ovXwBmqtdYUfAmoVdBOxEmKSs0Cr+IS6TDdPMCcui67wtMlVqOjj9oB084qz4oFGXP3hmR iJB7f40ApKME+o6KvXaB34dKSMC6xIWB4gtGWb6cGUx8FPnEiKnJ+eOHhp+NF7QahvLG0w qvZ3nGIj/I5QfZuDe1Jc1w4qqqw9jIgejBETPCxUgHWDHmnoGxb/Azd/kad07e98CXFwip aVU72anKve74HRM9jmDmrDNrTht0bIk81DXqyFZs0rBRvtuyw5sUqzjglvdCvBINzDFXv8 kkqiNH+ALdTikFZxOUUmUOsyoj77Cz7Ba1FhSHCntryTyY2DHzPjlQzRS5Y3wQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771222720; a=rsa-sha256; cv=none; b=JhfOYSTgqMRA+r7nQiQU7MZlg1CWe/2Iuny6a5vs53X9SWWYdmdIFiJqvsBRncvuV5/uKC gof2Iv6Z1oYdSWX+xghQs8kKvZUyu4SFv0jlRp6M1v64TQBZFQ+zG/5cie/GzdhJlnT+EM z2WDqDzMuD8gS1RK9GKPPGBVpdmRNFGvXWSp45NIUETe0EG+NsSWzyjqAyLqdCILDYBgyL l68QE2klJ2qWOsp214Jnc+6O+PckigNDRr8gcYQB/PrOTDZv93j1/gEYEqj/JKMF5Gbi/K D85T8KH6SdnNSwWMn/FXmJEMG5g+LHcUin3xkYw9arPMqzVc6PwG5+l1TchTkQ== 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=1771222720; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dhJUe+BfCWw8bGQLwD/iyIqp5PHGG6XC50/koJFxcMk=; b=OQc97l1NwZQRmJ+fwbU4ACShHsAeDNSz73/mCZVX10n7kxuIbzJxuHT6Xq4tJOx7RmH9EH w+PVaSvypYITGtKWyR3PUQDeK3/OWuNBzn81qYq/v4WQh3n6w15aITDSsmYzOjVALdRE+k qITd+eMYrSDjR7wvC/oVTQYBQLX470R/3snxaOTIheceh37T1pCexHChz5a63ESeAFovQr JMmr8jiemkchSdQ9Xz1/GpGqoiIz8mGzc7xPlDs35Wg7WlZbDgHPz4QJa1fp7LZbIexNej 9G7fmg46Gk4+nSWxrYmeJiRuL076OQwpXW60pIhMahWyw11ZfP8Aj2kxMzRoRQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fDszN0hdpz1QFG for ; Mon, 16 Feb 2026 06:18:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3b433 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 06:18:40 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: a6c0d8bf434a - stable/15 - amd64/acpica/acpi_wakeup.c: do not store to WARMBOOT_OFF in efi_boot case List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: a6c0d8bf434a22fe81c029606d4241efb4adce5a Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 06:18:40 +0000 Message-Id: <6992b6c0.3b433.27da10df@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=a6c0d8bf434a22fe81c029606d4241efb4adce5a commit a6c0d8bf434a22fe81c029606d4241efb4adce5a Author: Konstantin Belousov AuthorDate: 2026-02-10 01:37:18 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-16 06:12:28 +0000 amd64/acpica/acpi_wakeup.c: do not store to WARMBOOT_OFF in efi_boot case (cherry picked from commit 5f3192b3fddd974db36af0279403aba1371c68ec) --- sys/amd64/acpica/acpi_wakeup.c | 59 ++++++++++++++++++++++++++---------------- 1 file changed, 36 insertions(+), 23 deletions(-) diff --git a/sys/amd64/acpica/acpi_wakeup.c b/sys/amd64/acpica/acpi_wakeup.c index 99565fbb69ca..54fe1e47a502 100644 --- a/sys/amd64/acpica/acpi_wakeup.c +++ b/sys/amd64/acpica/acpi_wakeup.c @@ -76,9 +76,6 @@ static cpuset_t suspcpus; static void acpi_stop_beep(void *); -static int acpi_wakeup_ap(struct acpi_softc *, int); -static void acpi_wakeup_cpus(struct acpi_softc *); - #define ACPI_WAKEPT_PAGES 7 #define WAKECODE_FIXUP(offset, type, val) do { \ @@ -129,24 +126,22 @@ acpi_wakeup_ap(struct acpi_softc *sc, int cpu) #define BIOS_WARM (0x0a) static void -acpi_wakeup_cpus(struct acpi_softc *sc) +acpi_wakeup_cpus_bios(struct acpi_softc *sc) { uint32_t mpbioswarmvec; int cpu; u_char mpbiosreason; - if (!efi_boot) { - /* save the current value of the warm-start vector */ - mpbioswarmvec = *((uint32_t *)WARMBOOT_OFF); - outb(CMOS_REG, BIOS_RESET); - mpbiosreason = inb(CMOS_DATA); - - /* setup a vector to our boot code */ - *((volatile u_short *)WARMBOOT_OFF) = WARMBOOT_TARGET; - *((volatile u_short *)WARMBOOT_SEG) = sc->acpi_wakephys >> 4; - outb(CMOS_REG, BIOS_RESET); - outb(CMOS_DATA, BIOS_WARM); /* 'warm-start' */ - } + /* save the current value of the warm-start vector */ + mpbioswarmvec = *((uint32_t *)WARMBOOT_OFF); + outb(CMOS_REG, BIOS_RESET); + mpbiosreason = inb(CMOS_DATA); + + /* setup a vector to our boot code */ + *((volatile u_short *)WARMBOOT_OFF) = WARMBOOT_TARGET; + *((volatile u_short *)WARMBOOT_SEG) = sc->acpi_wakephys >> 4; + outb(CMOS_REG, BIOS_RESET); + outb(CMOS_DATA, BIOS_WARM); /* 'warm-start' */ /* Wake up each AP. */ for (cpu = 1; cpu < mp_ncpus; cpu++) { @@ -160,12 +155,26 @@ acpi_wakeup_cpus(struct acpi_softc *sc) } } - if (!efi_boot) { - /* restore the warmstart vector */ - *(uint32_t *)WARMBOOT_OFF = mpbioswarmvec; + /* restore the warmstart vector */ + *(uint32_t *)WARMBOOT_OFF = mpbioswarmvec; + + outb(CMOS_REG, BIOS_RESET); + outb(CMOS_DATA, mpbiosreason); +} + +static void +acpi_wakeup_cpus_efi(struct acpi_softc *sc) +{ + int cpu; - outb(CMOS_REG, BIOS_RESET); - outb(CMOS_DATA, mpbiosreason); + /* Wake up each AP. */ + for (cpu = 1; cpu < mp_ncpus; cpu++) { + if (!CPU_ISSET(cpu, &suspcpus)) + continue; + if (acpi_wakeup_ap(sc, cpu) == 0) { + panic("acpi_wakeup: failed to resume AP #%d (PHY #%d)", + cpu, cpu_apic_ids[cpu]); + } } } @@ -264,8 +273,12 @@ acpi_wakeup_machdep(struct acpi_softc *sc, int state, int sleep_result, PCPU_SET(switchtime, 0); PCPU_SET(switchticks, ticks); lapic_xapic_mode(); - if (!CPU_EMPTY(&suspcpus)) - acpi_wakeup_cpus(sc); + if (!CPU_EMPTY(&suspcpus)) { + if (efi_boot) + acpi_wakeup_cpus_efi(sc); + else + acpi_wakeup_cpus_bios(sc); + } } if (!CPU_EMPTY(&suspcpus)) From nobody Mon Feb 16 06:18:41 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fDszQ0HZhz6SLHL for ; Mon, 16 Feb 2026 06:18:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fDszP49DVz3MnW for ; Mon, 16 Feb 2026 06:18:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771222721; h=from:from:reply-to:subject:subject: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/MzzY5PIiIGmgtyMSw2sKB41zzU2BveIYYFVTbHAc=; b=U8laJS1oGSjSw9rwA1evHFB2TFEL4AoibKWPOfNgWO5fb0Ah4Arg8hteCv625YEnXk0JKc PAhoyDkP6Ceja+n3zBDM/7++GDh1M5mjWq8lywgyVEOv2LyZrRjF+dFXhxv3AYaPIxzK1r e/Y508CyUOrVYlJKs7U1NZY/W2WmP65sJ09LO4BRM08OH33DVro4iWeXtwnO3baCjy1yJV 6KvNyRKEmgskZGdlI94QRRmuOXrWlQTwyHVUjBMm4ajuTD3rHmW0hFyLGQT6rtSfWi7qe3 o60YSHbl4D6NW6RlQv74U2741HAoum24dP/6v+baOcj/cNfYZft/i8puZbXeyw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771222721; a=rsa-sha256; cv=none; b=iWntmnmEDf2N1b+nkFhW7To/Q/nTdKAdRxhTls0+ckPm8V6erLhnZGFYvL3t8+v0lcwS1v w5RTos1d0Zim8RYXB+CVIWtzKSKaDQBUnkjNrN1JRlc9Lb5nzmno0nwKdtsp3cScsDe1Q5 7YQ2dd08wlIqhA5FslkX1C7jrabTmLocyyMMrpKYnncavVkvClr3tex9BptabjC270yK08 Ul86vOWsDWn0lcW2g7QYhMvpt83XwknzVyWQQp0TqHzPEvF3+2AXB2PiZocGbugNUJb2QV TLHLm5AM/4j+oGdnAEn6pat6FaTDJDhAe2TE/ws7dGuDRqMMgPXPVsMeEqD5Qw== 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=1771222721; h=from:from:reply-to:subject:subject: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/MzzY5PIiIGmgtyMSw2sKB41zzU2BveIYYFVTbHAc=; b=kRItJ1BiE5RsyBqKFlKsEjT/6XGLXVuQuCdgt3bGPkfE+IR/wT15/KBvP6cW8urkmJ99dh lI7e9EScmisz/g9dQLpyPWaVIfJ34gNIwzPTjYCR/1cC3aLQ6pw7JvS14uk+JCLx3SKCyx u49TGa2DDEFcwAsg/VNv5sAbnSgfEw2AEcYJWx2FklQYeJCR9eko9OekecN7qUeXcDnLlg 9kZU6ssVeR90X3cxStMLD6A4NCcFde97snhx1vl7PYWJSp0yxY9FvkGLwNpgBafrdLszsG i1Z5/XFeVWfNMwZ18b8vdmguKFZ7KL6MM/O6U2Vt1qK5c3FaIDeMZkXgzVleaQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fDszP1Yrwz1QbF for ; Mon, 16 Feb 2026 06:18:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3beaa by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 06:18:41 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 22bf122dceb7 - stable/15 - filt_timerexpire_l(): re-insert restarted timer into head instead of tail List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 22bf122dceb73f194c258b32d657088e3e02fe3b Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 06:18:41 +0000 Message-Id: <6992b6c1.3beaa.4b492baa@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=22bf122dceb73f194c258b32d657088e3e02fe3b commit 22bf122dceb73f194c258b32d657088e3e02fe3b Author: Konstantin Belousov AuthorDate: 2026-02-12 20:24:13 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-16 06:13:59 +0000 filt_timerexpire_l(): re-insert restarted timer into head instead of tail PR: 293141 (cherry picked from commit 75a30ea09f4e75480743fae5c2369d50a6d8526c) --- sys/kern/kern_event.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index a48408fd482a..85b7b6c953af 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -873,8 +873,13 @@ filt_timerexpire_l(struct knote *kn, bool proc_locked) PROC_LOCK(p); if (P_SHOULDSTOP(p) || P_KILLED(p)) { if ((kc->flags & KQ_TIMER_CB_ENQUEUED) == 0) { + /* + * Insert into head so that + * kqtimer_proc_continue() does not + * iterate into us again. + */ kc->flags |= KQ_TIMER_CB_ENQUEUED; - TAILQ_INSERT_TAIL(&p->p_kqtim_stop, kc, link); + TAILQ_INSERT_HEAD(&p->p_kqtim_stop, kc, link); } if (!proc_locked) PROC_UNLOCK(p); From nobody Mon Feb 16 06:18:43 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fDszS041jz6SKtc for ; Mon, 16 Feb 2026 06:18:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fDszR3wQDz3N8B for ; Mon, 16 Feb 2026 06:18:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771222723; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=c/PMvmLyREPk0U3UGmO/slQurCUnpUZhhILY9r2XHZQ=; b=jn7/Tamb5Uw5/IxNehYgVaqJ6l/tHEeiLzNtCCx1ZbRB9aqsPLwJqCPneV3W4GFZklYpGq S/x1wJzBYeVI3ZCs60y1YCqr7a5Kd9WXQ6n0UppHwh+6irCGQaZ2LwXJ4RMT61upR2oafz 8/yZpj8R3fmZm0DDjY2OGkVScTEgKgHWbOvjcC7MaYF3wKpNIKcNo7ma0IFBDj2CFT1Nvn mIwPQXay6V5wacsTQiHn47i9xCShIQ1imVOgwbKFjMXTmB4UktMWqpQ0I7KUltTCm+4ekX YL7Uqra2nBWfTt1aOmapVIEz5GFyDA2EoayimkANnl3Izo2tsvoHwnTd1bva5A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771222723; a=rsa-sha256; cv=none; b=EkYHL6/Nn61mdBIAk0nznXAhjswcMjDz3vhm8glptC22obPpeQqhSUE2pb6JMeer7db2uz fNnZEH405NkAn27hHlJScHY3OBd8sKr00Zt/QlmPrrjv6ekBcRbnf141p9IAio72n4I9qd zHN1JwavbxKj/FI5YKREop9IVSW+GzCLOjtnSa4BRp6jmfYZy6NDvegx/2Sl9uYqWkgt1n K1vDWlpHwFqhm90TDZsuw615IOfGGdJMH/5LyODkQhXnBBiByO8nlZGm7uuO26TVEfcWDJ MItYL3OuFUD2VVTklRyB9usLmLBneJMhIP5L9hqp7AkVJrZ2X5KOZL3q1kRAlg== 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=1771222723; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=c/PMvmLyREPk0U3UGmO/slQurCUnpUZhhILY9r2XHZQ=; b=GPhRzOxVrpAsDrlBXYFsIQNIIh/3ibivOSBpYUz7l73CBJFprCs2uZKEe+BusdGdcUu+hF 0EGS+c++ErobQ8Km/04+M3QJkct6pvbBMYUvhkdRrdp2ak9VYRCLb40Y/5ymtxNasWSkd7 Nghfsd8gfVnZkhxsKsqceQi8TcoDfw62BExsQKFogL6VTl+Md90btE0WaBN/hNqwe6Qz37 MgKTNdWd7mpMh23frlpgY4T6zCGx3mtA92pAJPZYGTZR1ld8kFgfOB7DPfRZe5SIDLhE60 +5XZ/uZBqi2ANb42QpiYH4SSl3dkiLl9ESHJcSuae0JPpIJ0meEA4Z+vbcNagA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fDszR3DQWz1QbH for ; Mon, 16 Feb 2026 06:18:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3b876 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 06:18:43 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Minsoo Choo From: Konstantin Belousov Subject: git: 203819ee8407 - stable/15 - x86: Note that trapframe is used by kernel debuggers List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 203819ee8407b9141153414a1c6e28bf9d7cf86f Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 06:18:43 +0000 Message-Id: <6992b6c3.3b876.5c0d4c21@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=203819ee8407b9141153414a1c6e28bf9d7cf86f commit 203819ee8407b9141153414a1c6e28bf9d7cf86f Author: Minsoo Choo AuthorDate: 2026-02-09 01:21:00 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-16 06:14:40 +0000 x86: Note that trapframe is used by kernel debuggers (cherry picked from commit 2088e742013bb1b9ca237a79767362efe92d9da8) --- sys/x86/include/frame.h | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/x86/include/frame.h b/sys/x86/include/frame.h index 994e19b979fc..feef41ac7bfe 100644 --- a/sys/x86/include/frame.h +++ b/sys/x86/include/frame.h @@ -38,6 +38,7 @@ /* * System stack frames. + * struct trapframe is known to and used by kernel debuggers. */ #ifdef __i386__ From nobody Mon Feb 16 06:18:42 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fDszQ73BGz6SLBg for ; Mon, 16 Feb 2026 06:18:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fDszQ4qtxz3N8y for ; Mon, 16 Feb 2026 06:18:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771222722; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XZ7KOC2swqmhUcu5+J4v7i0NSpN/l6BjVfCW7IoJVw4=; b=uWMOXtRNfhjgpGPndE49EYpALJizYAjbfIMzUgh+ZO7p/chN+OoSc4ebEEA9uCdWiQrNAB Ps4p4bSXkV7HmJidSxVHbE/b6cNX3H+eXZu3dRwy/+E2a+5e9XpSkOBbgh39z5YaIKJZyL 4SkwouLrYlT/VFZHdwshOMYnwPLIZYBAhP5ekLvG0HA0oFh3qesUDt7YxaV/6CMkhdUxGY EM536ibkAl5cmj0w8ORuoou897wxSEoUtA5VmCpya5LvnxH4glnbxSCn0zAMe7TBtHpXcf YNxzuNmmwN2C+sNXmLo/pgWt1w9ArQHvUDcFFX7zpvcSAyAZeO3GaPfO6y/a7A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771222722; a=rsa-sha256; cv=none; b=EQJG4yHD/XaLoTQ87IVZn3GJk9BEDGpbnlsG2kk/QsTVPTubZYTENtklwkPX7lHZRe8CzV 7qWGGAel7dbLXgpbvi7RPh/CkZgY+T2HhpWY4jt2iOywXfebLZMmki9v2ZZoN7fRqF5JTe DjJNn2K0B/Hb5MD3oTL8/+rZEGQ8nlgluFITRJlYyYxMxgb8HOJT7Ahgsi4JCkb+7Olpnq TkBuiCuBpgTHsy74i735RYyfaVRPKX9xwXlIcQyg/Wj4Sy2RxiWroHwhml88zCGsB2XzpF pXdpAy0j7A5hgYdcAIlz1KlNwXFZXquRpAjS2Ba9LZVKASHCbWk5WmCsJlw55Q== 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=1771222722; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XZ7KOC2swqmhUcu5+J4v7i0NSpN/l6BjVfCW7IoJVw4=; b=mfAoOSBUQrO+Byg2E4l7t0djJLPhJhAXO1my8qAvmK6z3FfuK3IST7g84nMy2Sc9SHd+j/ K7vAi3XXh5aW0mmKol6W+DpVwS4li7KqKc1aYS76bfSVm5XGubkjP0/4J8HbZR6XRgsUYA iyRlTubJKKWZAxC4aj8K5h6MlczzuLvPCbqerGgp79jQx1xMlTl1vtJxaQr4aLGWyMmoii sMiajNc6duU9/c5K5q5SsgUTJ16kgwxQSo/ElIRCn2pyWAPxXnwc5W4FC7DCj5bycXzMgZ Np76MRu63VU2cj2QxVbrbpA8NHY8aXzIZQauxXYG0j6jlX1+PjNDCOPa3icKgA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fDszQ2PbSz1QKJ for ; Mon, 16 Feb 2026 06:18:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3b021 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 06:18:42 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 71cc31c18d1e - stable/15 - kqtimer_proc_continue(): correct calculation of 'now' List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 71cc31c18d1e92840920a344937f2889ca94d08b Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 06:18:42 +0000 Message-Id: <6992b6c2.3b021.64f4b749@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=71cc31c18d1e92840920a344937f2889ca94d08b commit 71cc31c18d1e92840920a344937f2889ca94d08b Author: Konstantin Belousov AuthorDate: 2026-02-13 15:32:40 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-16 06:13:59 +0000 kqtimer_proc_continue(): correct calculation of 'now' PR: 293141 (cherry picked from commit e7f86f8b1383d278fff1d973230972325072ead6) --- sys/kern/kern_event.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index 85b7b6c953af..a1cd409c53d9 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -814,14 +814,11 @@ void kqtimer_proc_continue(struct proc *p) { struct kq_timer_cb_data *kc, *kc1; - struct bintime bt; sbintime_t now; PROC_LOCK_ASSERT(p, MA_OWNED); - getboottimebin(&bt); - now = bttosbt(bt); - + now = sbinuptime(); TAILQ_FOREACH_SAFE(kc, &p->p_kqtim_stop, link, kc1) { TAILQ_REMOVE(&p->p_kqtim_stop, kc, link); kc->flags &= ~KQ_TIMER_CB_ENQUEUED; From nobody Mon Feb 16 06:23:02 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fDt4Q2xK8z6SLdJ for ; Mon, 16 Feb 2026 06:23: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fDt4Q1TRcz3Q5R for ; Mon, 16 Feb 2026 06:23:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771222982; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3GjDdnR6D4tT1QHIXjLGd0Jcd7jpSiCu+C4R+T02z4E=; b=Yj73tUZi3OgzlfxOlvzj84VAVDzODf0fCMIQg7HeAWwIxNY+XXO9Z9tT6niLk6muZh/tXS IUUQeKs3c1K742d+q4Sk0yIlcb7WTpukA876ca3EC4JQznBrtav/MO5bl6lUfz+J18ulaL taI/KxHCrLSVvXIpG8IikdazlyfoeX/5mmQEXN/SiY0Fso3TE7aYvFTsGMRfD92qpIsHNU /qXcX1ptaa10H8zo0Lj7CpTBqsTnWJdRO81ed9yprKHBcP0Km5EY6JB3q/HsRK9D1d/Po4 lUhMi8/HatSE52MYKuhNW7VL6FItZ+XmugGBW5EhoeL0aPsy1QG4ZUHvlc3E8Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771222982; a=rsa-sha256; cv=none; b=Ag8sxxHDelVgs6nWaR5GqLGG5wsyo5ikecq8hK/X8/E3uwQglWB4rOKBQ7dbRc4B0aLYg4 Fqzp+2TceO33wYgBvNPn6yFOlrZoea1dBdIQk5JkJU+HaAuHU2B39FZadQDDlTdN4Uy1pv gR84G8K7Ze40x2irW+iBAFemuhWFbe8RX1PWJiVnF8eXQnEYry9g5qkTUuigB6eaPGmwm7 izBaC/1iAJrpi5wlJnQdyJ2Ym/5WnSQ4V2wnMko7cFSOjO6xUNrK/70SzbPWnQ3bicp+Wl E0xuS4YBPSmnckD7352x5sKb4imoU27F51dDmxK6/whEDe3yGeWJ02jz2NsY+w== 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=1771222982; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3GjDdnR6D4tT1QHIXjLGd0Jcd7jpSiCu+C4R+T02z4E=; b=rg4RVTbwRS27zqV4uwo0S/3JsOZBAcR0KioBUg9FrjH7EqEkoDhC/c0237sz/2CouDODvl 0BqQD7EZbn1MOoEFMTKXOPvN7N9wv4u7LmAIJHXNL1OSem5dQ0SsXOcpl9SKi4MyEVJtgY LdTyVTmxMI+9rSg780AdsDQHL7VtDs5/O1KccvBTxpyYeFowEtpGJerLSxiG8zeqdwV704 cUKBOMDb4FD+MOj54Gr+7KFxcXfL247z8llPMC7N1e8Mo824f0nlo9Le/NPi0qyX0r4sx5 UbG8lK+RrhCzgyowzkaY/I5O3kZ7DgC9cuUrtGd4D2o58WBk5OXoDzbdLvaSNA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fDt4Q14Lrz1Qxr for ; Mon, 16 Feb 2026 06:23:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3c040 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 06:23:02 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 119af90d483a - stable/14 - filt_timerexpire_l(): re-insert restarted timer into head instead of tail List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 119af90d483aee79bf549b3d63e1093bb59e1092 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 06:23:02 +0000 Message-Id: <6992b7c6.3c040.c6178f8@gitrepo.freebsd.org> The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=119af90d483aee79bf549b3d63e1093bb59e1092 commit 119af90d483aee79bf549b3d63e1093bb59e1092 Author: Konstantin Belousov AuthorDate: 2026-02-12 20:24:13 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-16 06:19:30 +0000 filt_timerexpire_l(): re-insert restarted timer into head instead of tail PR: 293141 (cherry picked from commit 75a30ea09f4e75480743fae5c2369d50a6d8526c) --- sys/kern/kern_event.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index 835a22c81528..869c4cf24ddb 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -769,8 +769,13 @@ filt_timerexpire_l(struct knote *kn, bool proc_locked) PROC_LOCK(p); if (P_SHOULDSTOP(p) || P_KILLED(p)) { if ((kc->flags & KQ_TIMER_CB_ENQUEUED) == 0) { + /* + * Insert into head so that + * kqtimer_proc_continue() does not + * iterate into us again. + */ kc->flags |= KQ_TIMER_CB_ENQUEUED; - TAILQ_INSERT_TAIL(&p->p_kqtim_stop, kc, link); + TAILQ_INSERT_HEAD(&p->p_kqtim_stop, kc, link); } if (!proc_locked) PROC_UNLOCK(p); From nobody Mon Feb 16 06:23:03 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fDt4R3Xdhz6SLdL for ; Mon, 16 Feb 2026 06:23: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fDt4R24Fyz3Q0Z for ; Mon, 16 Feb 2026 06:23:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771222983; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ACF86kq6vUFV/5n6wDJahcpxB2SL1A153wWqYAsxiuk=; b=aYkPWyjyWDZuy7azlFmac+Kjg/r4KU93KDxYkQs6qnwnXTKNTOri6dTfpgsKMaMGjX2clg wpwK6VSxf2PpW81PfjFjpJa1ZcIbmeIeV3akL2AtezGq5UaV0L2Mi0EW4Dl6YXYcXGRdk8 oMOanz2MxtfBjEQ5/WCfTZ0EKgqGhAIJH5wN4EgvXM/jHN0Yqo2DI8uwXhgbKjR031Z8EM /ANemEi777xuKW+qd6tCYRWBCNnflEIqu6cDfaYalCh2um4xNBriA5jUzjdHPyx6Y0accG ezQfWIrv39//Q0p3RYquCNZYdN7q/ddL4WiD1pEqmWCj9E+hRxRqkH/ei2IxWg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771222983; a=rsa-sha256; cv=none; b=caSlYQSa5UM46pvIK6/AfZqs8ViezU/BY9AdjitSAUnVPv/dLXIYOGpoNStxzh+CwhBbTo ImuXGMVSMidS6W23FI8qXRz5+yMdppIkztiwxOYF8wjm/+/xtD/HJA5zEjVXQOIArNmzj+ FF5aRS/pcckPmE59WPy3b1ekuDxs6493iIzZZX1PlRX3cHI4FOt0bWfua2V9nR5k/4hDgW ncqYdt/VHaPsDuvkuJqxsPppX+d1OTFfw7AtmCAsXxGslkOogkfBE/2tiXiG/4viIKLebB y9Mcr9MRC9eh2W7CtUk9LhLYQgYosDQFIXC4CZySq/epK+yg21NR+WJ5pBjbPQ== 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=1771222983; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ACF86kq6vUFV/5n6wDJahcpxB2SL1A153wWqYAsxiuk=; b=X28EzQy3mA78pF+pCcwAcThpjZZIGVXcCa4K6dM8PIkd7Xn6QDpqcq/E1xMLCTfBafYn+p 0A6uDk0iYMNMxwpRvpU14za06e+BPySoVCvFyzXUiyliSBQqpo2sD8jSuhBUGfSEeORFYj idpfaMJFmZ/HKHTWTwC0Hvzg/hVeriryAWeQcSeW3Zwu1UvQV+qyDtkxWqS+k0RB+PVI+N fZo06NS/7p1layc6BugsFmPTPNrD96G+FWOceYIe2TN1O5AQInrR42gE9yx96ah9tsLLOS GvyQRA8NYV9FXOaYiRC/FDObvcbqb3nFhD1DWwhHYkCUidcwWYDRcSvBc+4I8g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fDt4R1Rt7z1QKn for ; Mon, 16 Feb 2026 06:23:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3cdad by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 06:23:03 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: cf941029dd02 - stable/14 - kqtimer_proc_continue(): correct calculation of 'now' List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: cf941029dd0291c8b685aa3f6d7872371e6136b9 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 06:23:03 +0000 Message-Id: <6992b7c7.3cdad.1bbed842@gitrepo.freebsd.org> The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=cf941029dd0291c8b685aa3f6d7872371e6136b9 commit cf941029dd0291c8b685aa3f6d7872371e6136b9 Author: Konstantin Belousov AuthorDate: 2026-02-13 15:32:40 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-16 06:19:30 +0000 kqtimer_proc_continue(): correct calculation of 'now' PR: 293141 (cherry picked from commit e7f86f8b1383d278fff1d973230972325072ead6) --- sys/kern/kern_event.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index 869c4cf24ddb..920256f8c1bd 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -710,14 +710,11 @@ void kqtimer_proc_continue(struct proc *p) { struct kq_timer_cb_data *kc, *kc1; - struct bintime bt; sbintime_t now; PROC_LOCK_ASSERT(p, MA_OWNED); - getboottimebin(&bt); - now = bttosbt(bt); - + now = sbinuptime(); TAILQ_FOREACH_SAFE(kc, &p->p_kqtim_stop, link, kc1) { TAILQ_REMOVE(&p->p_kqtim_stop, kc, link); kc->flags &= ~KQ_TIMER_CB_ENQUEUED; From nobody Mon Feb 16 06:23:04 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fDt4S5XL2z6SM2l for ; Mon, 16 Feb 2026 06:23: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fDt4S38VFz3QLD for ; Mon, 16 Feb 2026 06:23:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771222984; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vcavDOOYCNc2FyfxPMt41U80+dwDqGPx8k5QCPemAkg=; b=xTWy7xvu4klzBYp7utGkjL6v5DLA1NJN21YPeUamSX35+qaFlkaeBm1cKuQiyE8Go9hQAd 8XcHuZa8VpXduIR5aH12+Ggtwdwtps3tHtXugmtRava1l/clSw0jpw713BC0WYd480Z8TH t1K3lPrBdSh6+LO4O+9PQ89RJUv8+qhwQlAHjCLLWNzC74zDbnnX2xinU4DvXWsBeMB0Xu +z8oXJ3+MJizH1Xix21NhgJvXhey42TOoChLrAquWIX7vZ6ZnX4sJDIias8EtjHkPrTbuG q95r+l0YEu5TpvznW2ENwTEvrVlNrOeqIfAWbWNy/+g4wVe0R4o7BVbBMZqXsA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771222984; a=rsa-sha256; cv=none; b=V7DPPb48KcClSGk4OfmePzzhs8rnCFv5ozBusZal0Sn3UUVdQEjT458OxL/CpZwZ0mnSr6 QbUt874Z4HM4PNTE1BSJtiVicqU5l+narxgi8L9j3e/3+UMU0KRAyTdBOgIBNJCXQ2KYIp m+FvWw2unq9cvbvDoZEcqG7kMLxanyvDT3Fda0c2MZ/EipunYT1IJRmxjLQdIG81hDIiAj ejDXnLbk6Pkp0nmN0byfLdfj6qcCALRxqRcVYcm6oOZS6whLawJj+TguGb9gtrF7NOgG5X GRRVdEnx6XOKbRxcu7+5Q7tHAuVhqUtJqSMt3pSOzYu2XULSP/tVXp5iBQTnfg== 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=1771222984; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vcavDOOYCNc2FyfxPMt41U80+dwDqGPx8k5QCPemAkg=; b=KLQFtgesCVUACKEJd25zc5DeiagIzPkZRE9RzyPYCKRCt3mr3M/U63oMVQDHD6CrWICkPf i2xu5ppu898+m01U68sUSWFhdpb/8DimEh/Fo4wa4gknSHLmgAbVD6lllqA5k+Nvq8ECtA sDeQ0dAnz19beZeiRTVkShyW9HpTwCliLXjxOpCTby8R9OKdDHgQhyZ1VaGelRNfCCSaC8 jLPUhTjglnLnMrBktOx5H9HwX8EnUqqriepHy5xpPYMPQOYdrNRh7wdoMPUufxx7OeHbSG m0kQU7OklQ4NdjpPbOhvBGh9V4ZFtY24ohHGl3kIhyN6lfZcO3VvVr9R6lhfNg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fDt4S2H0Kz1Qxs for ; Mon, 16 Feb 2026 06:23:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3ce75 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 06:23:04 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: a893e8463ab2 - stable/14 - unmount(2): do not allow MNT_DEFERRED or MNT_RECURSE flags from userspace List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: a893e8463ab2741204debd17901539708ec3a970 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 06:23:04 +0000 Message-Id: <6992b7c8.3ce75.601a5a00@gitrepo.freebsd.org> The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=a893e8463ab2741204debd17901539708ec3a970 commit a893e8463ab2741204debd17901539708ec3a970 Author: Konstantin Belousov AuthorDate: 2026-02-02 22:38:32 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-16 06:20:18 +0000 unmount(2): do not allow MNT_DEFERRED or MNT_RECURSE flags from userspace (cherry picked from commit cd8d44173adc375b59a24b1363476c086a7c86b4) --- sys/kern/vfs_mount.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c index 85d14a943d01..5ca7c43269ce 100644 --- a/sys/kern/vfs_mount.c +++ b/sys/kern/vfs_mount.c @@ -1733,6 +1733,8 @@ kern_unmount(struct thread *td, const char *path, int flags) int error; AUDIT_ARG_VALUE(flags); + if ((flags & (MNT_DEFERRED | MNT_RECURSE)) != 0) + return (EINVAL); if (jailed(td->td_ucred) || usermount == 0) { error = priv_check(td, PRIV_VFS_UNMOUNT); if (error) From nobody Mon Feb 16 06:23:05 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fDt4V34lQz6SM2m for ; Mon, 16 Feb 2026 06:23: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fDt4T6yWFz3QJn for ; Mon, 16 Feb 2026 06:23:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771222986; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jSqzJsNZM4oEbYAfMPijize2Bw7vGjH30QyqNJNHC6o=; b=CKS1TA+8VYrNO4dx2TdMqjbMdRfpK8Jkb1zUOFeUIxdutaNrTpnw7mebyzkrrf+PceeDFy //1+b6OPqnfMbT5tK5+aeR2aD/UPZBjkK2EKydmv6yr0/DDntJ/VFyGNYeOZS/UAU308MU 1ASa0/9jH8VQ76A/TpyoI8TEnPlZsCtoR4bHv5HVv7wpyXfrzH0zBgI0h/D+y9Ve5z64IE hP25sMZArEAYzOOjeQezk2ZFuSlh8gHVDWiWiwcE4gYiI2YP/DzUtytY2jxJf3y+wit0Ye rpjD1Z47JeaN0c1t73ppiiAthkAaXzWGRcJbp0c2xfPp747Xqh5CAg3kym+0ww== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771222986; a=rsa-sha256; cv=none; b=aPAbZLU27Wee8rxQxEr/2Zdp0Tksh4B83h3tgRqW1L3hhZcNp3ACnq5eXwtVE83SGAqdc6 0asBPBRGEXkoMzuL83702a0ynw426I7hrSZYoE2xW+O/Ogcho2OojIP2UQ9HKELDUL77Du D8h/ptZcOGXmf7/Dh+YAlCll5Im/igOKcu0fY+VUp6kMfFh7xFlsaVj6koo1fmLDSM14/+ 5R7+DB3jHimhoIarx0NgAjZgHhY7lls/cplPVNInRy+UYxYdnPeVqUIl/yYdZLMqYYBcdX WJwrE86J+CcX/EX3zP257ujCMHZsZyIGaF5ouN/uzoi4Wx7LnAgak8AJjohcdA== 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=1771222986; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=jSqzJsNZM4oEbYAfMPijize2Bw7vGjH30QyqNJNHC6o=; b=vRoMnh6PA4Ny7JijrebMPploov8DSStKS6A3RgoHk0r0Ob3mTGNcojkwnWKc0w235CPAPc 9ptjjJIvBOdjyD0ENXGBvWHR1VHQUjUpkdJma4IMdoxCLZgjfCkGlHwMoVzF3MeBiMeAUm mF+81zdk77+aInEB4HyDORE+eDX3eANHJNX4SDBbWPnx9pmcBY2I6bMx6dQMoZKTPpIu5k GbKcwQ6Lt3ayHmN5dNPdglCwVFsvo7fU6Jf0HOM4zX9wQM4DN71DaCkSGkLC993yjkxLvP dYpqUDU0DzRfLnohUEgua+mGhBGVh1FR89DoOFuwIXQPr517wg0Uu3dcD1WdzQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fDt4T34qbz1QKq for ; Mon, 16 Feb 2026 06:23:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3b6d4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 06:23:05 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 00095a089604 - stable/14 - kern/vfs_unmount.c: promote flags to uint64_t List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 00095a089604aba93ef265fb0a52e170bcb77da7 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 06:23:05 +0000 Message-Id: <6992b7c9.3b6d4.58309b83@gitrepo.freebsd.org> The branch stable/14 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=00095a089604aba93ef265fb0a52e170bcb77da7 commit 00095a089604aba93ef265fb0a52e170bcb77da7 Author: Konstantin Belousov AuthorDate: 2026-02-09 03:11:15 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-16 06:22:25 +0000 kern/vfs_unmount.c: promote flags to uint64_t (cherry picked from commit 8066b8923ebfd438dc8cb840d2f57066f4daa45d) --- sys/compat/linux/linux_file.c | 2 +- sys/kern/vfs_mount.c | 4 ++-- sys/sys/syscallsubr.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sys/compat/linux/linux_file.c b/sys/compat/linux/linux_file.c index 1341df8bc7fc..4861dafe27b3 100644 --- a/sys/compat/linux/linux_file.c +++ b/sys/compat/linux/linux_file.c @@ -1169,7 +1169,7 @@ linux_oldumount(struct thread *td, struct linux_oldumount_args *args) int linux_umount(struct thread *td, struct linux_umount_args *args) { - int flags; + uint64_t flags; flags = 0; if ((args->flags & LINUX_MNT_FORCE) != 0) { diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c index 5ca7c43269ce..b380a7fdaf6b 100644 --- a/sys/kern/vfs_mount.c +++ b/sys/kern/vfs_mount.c @@ -1720,11 +1720,11 @@ int sys_unmount(struct thread *td, struct unmount_args *uap) { - return (kern_unmount(td, uap->path, uap->flags)); + return (kern_unmount(td, uap->path, (unsigned)uap->flags)); } int -kern_unmount(struct thread *td, const char *path, int flags) +kern_unmount(struct thread *td, const char *path, uint64_t flags) { struct nameidata nd; struct mount *mp; diff --git a/sys/sys/syscallsubr.h b/sys/sys/syscallsubr.h index 8fafb8ace311..ab56b22978c2 100644 --- a/sys/sys/syscallsubr.h +++ b/sys/sys/syscallsubr.h @@ -390,7 +390,7 @@ int kern_wait6(struct thread *td, enum idtype idtype, id_t id, int *status, int kern_writev(struct thread *td, int fd, struct uio *auio); int kern_socketpair(struct thread *td, int domain, int type, int protocol, int *rsv); -int kern_unmount(struct thread *td, const char *path, int flags); +int kern_unmount(struct thread *td, const char *path, uint64_t flags); /* flags for kern_sigaction */ #define KSA_OSIGSET 0x0001 /* uses osigact_t */ From nobody Mon Feb 16 10:01:05 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fDyw13842z6ScLG for ; Mon, 16 Feb 2026 10:01:05 +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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fDyw115J8z3mmL for ; Mon, 16 Feb 2026 10:01:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771236065; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UwV82Y1BGDIlPUpeKH6aS4+V/ZFgXKloE4MCwTXW07c=; b=R/ftpG0RhRh2GN2VQ/AVkIv46DZoB3cuhxjQneNA1G5zOpCznQfhAErlLO4b3f0CLmUj0P ffzhuetixodGUWBi1rsrwyEgoTaq0FjYhVrUBgwNhuuhZDEQdzypCG15zXUsqhqoRx50uI Or8cxvpdZ72w/jLrM2YWFhmN1ug/MQfuiEvPUSw3kbdrJJ0rVGYLby6xt05yq3KtcmQXkB Y8wrbHGyoyqsyFWTeJdwfvG6v5a8kN3gMyHLVdQt9qvaX5mreAomyf7CD6HoXI80h7Dw9D k6qY4NFIQlfNXnTnnl2F8nplbuBmfBohDa0fCTjA0sHvXdp5J3XmcLGGI6asRg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771236065; a=rsa-sha256; cv=none; b=XGb5IK22eBKtdu6wtVFQo6X5x06ER1DctDWAs1Qy0/ExoaJD69pyOVoC4P+C6uRbrkxHFY ogXOLIKUZznn98LnJbx1Wsg+xnqFBFOeTCLIADr20NpN7ptRdwlgwQwuzt0mneZDpdWclz wM9NyLmN4jkCMjfbXbUwF6kRDC+wPGdt0kO7Z5mA50cHS/3qbsx/W5hYXhNyeXNRBaJn2R 7OghZmx80wAgSriEkm1OGhNQHauC2qI7Y9i73OGyLdzS2uXRkXfK1mn7Szc9x4fkwT4bxN L/n9SW3/psROygGDe+1xV+WnH7bKKnIClCNMyS7mK9y/8H9xLUfMoLzAdT8MEQ== 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=1771236065; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UwV82Y1BGDIlPUpeKH6aS4+V/ZFgXKloE4MCwTXW07c=; b=OtTkg9Ax0inZUaFCHuuWz9J06k5t9P6JglhYuEwCWTzo8p9GqBRwWKive9jgEN0UyLRoCz p+elJ6bY32abHZ3XW3mkQWVPeQsgoWXNGwOJNU1fBnd5ypB3Agl4DryhMZOQi6GqBGv1Hd fgsRcNVgi9rKgYrnvpLCxzahiTn3C2hsVYrPJ6mMQK0dUXeldLJc/c91c6Co6RfP0I84o/ oExudCNSVlhVW805vbE/eSdfxdlN6RoxYV1oQggzOXif5g7fTSaax2PP2gFNhabtKuAmcM ydt8V1pUg3MFMGCXyB111bG1QbMc9bFF0A3ctFmYcAjdbLVoal4ouEOr8F0vWA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fDyw10dbRz371 for ; Mon, 16 Feb 2026 10:01:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 24129 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 10:01:05 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: fe1299f16c55 - stable/15 - lagg: Avoid dropping locks when starting the interface List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: fe1299f16c55f09fa053e71bf1e1feee7f32527f Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 10:01:05 +0000 Message-Id: <6992eae1.24129.509b476e@gitrepo.freebsd.org> The branch stable/15 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=fe1299f16c55f09fa053e71bf1e1feee7f32527f commit fe1299f16c55f09fa053e71bf1e1feee7f32527f Author: Zhenlei Huang AuthorDate: 2026-02-11 18:15:41 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-16 10:00:30 +0000 lagg: Avoid dropping locks when starting the interface The init routine of a lagg(4) interface will not change during the whole lifecycle. So we can call lagg_init() directly instead of through the function pointer. Well, that requires a drop and pickup lock, which unnecessarily expose a small race window. Refactor lagg_init() into lagg_init_locked() and call the later one to avoid that. Meanwhile, delay updating the driver managed status until after the interface is really ready. Reviewed by: markj MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D55198 (cherry picked from commit c182cf646a4f995fa8506afd8afc9541c4d32905) --- sys/net/if_lagg.c | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/sys/net/if_lagg.c b/sys/net/if_lagg.c index c30af5bfcc4e..23ad4f72d255 100644 --- a/sys/net/if_lagg.c +++ b/sys/net/if_lagg.c @@ -139,6 +139,7 @@ static int lagg_port_checkstacking(struct lagg_softc *); static void lagg_port2req(struct lagg_port *, struct lagg_reqport *); static void lagg_if_updown(struct lagg_softc *, bool); static void lagg_init(void *); +static void lagg_init_locked(struct lagg_softc *); static void lagg_stop(struct lagg_softc *); static int lagg_ioctl(struct ifnet *, u_long, caddr_t); #if defined(KERN_TLS) || defined(RATELIMIT) @@ -1282,16 +1283,21 @@ static void lagg_init(void *xsc) { struct lagg_softc *sc = (struct lagg_softc *)xsc; + + LAGG_XLOCK(sc); + lagg_init_locked(sc); + LAGG_XUNLOCK(sc); +} + +static void +lagg_init_locked(struct lagg_softc *sc) +{ struct ifnet *ifp = sc->sc_ifp; struct lagg_port *lp; - LAGG_XLOCK(sc); - if (ifp->if_drv_flags & IFF_DRV_RUNNING) { - LAGG_XUNLOCK(sc); + LAGG_XLOCK_ASSERT(sc); + if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0) return; - } - - ifp->if_drv_flags |= IFF_DRV_RUNNING; /* * Update the port lladdrs if needed. @@ -1313,8 +1319,7 @@ lagg_init(void *xsc) lagg_watchdog_infiniband(sc); mtx_unlock(&sc->sc_mtx); } - - LAGG_XUNLOCK(sc); + ifp->if_drv_flags |= IFF_DRV_RUNNING; } static void @@ -1677,24 +1682,21 @@ lagg_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) lagg_setflags(lp, 1); } - if (!(ifp->if_flags & IFF_UP) && - (ifp->if_drv_flags & IFF_DRV_RUNNING)) { + if ((ifp->if_flags & IFF_UP) == 0 && + (ifp->if_drv_flags & IFF_DRV_RUNNING) != 0) /* * If interface is marked down and it is running, * then stop and disable it. */ lagg_stop(sc); - LAGG_XUNLOCK(sc); - } else if ((ifp->if_flags & IFF_UP) && - !(ifp->if_drv_flags & IFF_DRV_RUNNING)) { + else if ((ifp->if_flags & IFF_UP) != 0 && + (ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) /* * If interface is marked up and it is stopped, then * start it. */ - LAGG_XUNLOCK(sc); - (*ifp->if_init)(sc); - } else - LAGG_XUNLOCK(sc); + lagg_init_locked(sc); + LAGG_XUNLOCK(sc); break; case SIOCADDMULTI: case SIOCDELMULTI: From nobody Mon Feb 16 10:01:04 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fDyw01qlSz6ScBl for ; Mon, 16 Feb 2026 10:01: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fDyw00my1z3mrw for ; Mon, 16 Feb 2026 10:01:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771236064; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GXagH3MpUTomqaTmiWTD50schqRIWGsQQGOk/YNBZH0=; b=d0QtLTj1moA/UO6jVnyOqd8qzi/wnQGMbkJCD+8HQsBHUIkJe2DvY/oI56qP53GrghdDaV 9fTW6DdKyQ1i0jXloxlS+3c4/7143RTBawT3vCtyWm5w5/3ma+rPyn0mQqfdzp2PTyYGSA eLE/3VXDh4kAsf9zEF1tNwRlUWJIAI66OStBminOXEE+3yXGoqAEbrQF0e6xaDxBhU2QXM sG09NxnNIFNRdi+k9VcsqcwHlUfAFyDdbf6kCta5FdoKxjdFjXBwyEJ5frn/+5QVGFjWcL +Q/oKf5L+85UGGdwcuIHD2hIdkwvObOcJKF4qFLw6vgCJzKL0tqO4sF3wRzQTg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771236064; a=rsa-sha256; cv=none; b=O+//Z6dj4ild1LQQbtssF8ijbPu2RabCnXP/Q8IrK/eP+BafDpG+ZOWMPs2j8KCxAjowt7 nGZk7Esdrv1LlaCint54mzBXirvh9FcJwE/wNm+scXBhQq+CNrByt/HSLJMwQXZvjV9N4y mGVeDpBjYC6q53YQYjtpFPftNAxTvmH3deBbIIR1v0byroDmDGYQyci0PMl2nSRyiX6J+u 7hUbQb56zgAySukDLZe51irzblccheg3VXMO/u/5hfvE5NbNpNITgXu4RUiEu2oNtnA0/g 6XQ3nAhAOM9k6xYlarD6UvJX1oV03F7UMl7yo/Caz/T7jaC2emOjgPRePBN1BQ== 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=1771236064; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GXagH3MpUTomqaTmiWTD50schqRIWGsQQGOk/YNBZH0=; b=c39JBlCfhbIyJ0BWG/+qOLqS26RjOOJVteORdAvwhn/JgnsgJhDSXkufdWwY9UXQvuoOCs wf8ztHauntif4JswWjg9X5pNOtPz2k+U9eoBtvsv9BWGjeurxIA/h8zCWvzvhe/3mTiV+U AKFx7zlrF7/tLIiYpmUayIxyOmexZcpjDMQDmuNvLiOZpCl+ce2uFzBtErrsUF0x6xzRBj o0S7N4mjL3z0h6Lv/+r6jZfjyAv8kIByGQ196YqAUTo4QNpXGg9yDUkKmiWiZR0Qh8lACH qKvCbpf2w5GjPoTobhslM/t8PjV7MPa4QJBOBuygqKhLZecgZLfae6msaHsxbg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fDyw00GYPz3XN for ; Mon, 16 Feb 2026 10:01:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2375c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 10:01:04 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 6ceb731a9897 - stable/15 - lagg: Make lagg_link_active() static List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 6ceb731a989756126f4bfb00adc57646a11cad75 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 10:01:04 +0000 Message-Id: <6992eae0.2375c.2bd2f182@gitrepo.freebsd.org> The branch stable/15 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=6ceb731a989756126f4bfb00adc57646a11cad75 commit 6ceb731a989756126f4bfb00adc57646a11cad75 Author: Zhenlei Huang AuthorDate: 2026-02-09 17:48:07 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-16 10:00:30 +0000 lagg: Make lagg_link_active() static It is declared as static. Make the definition consistent with the declaration. It was ever fixed by commit 52e53e2de0ec, but the commit was reverted, leaving it unfixed. No functional change intended. MFC after: 3 days (cherry picked from commit 30988d0a7bd7ebd5f5825b9b7aa04ff0af788aa7) --- sys/net/if_lagg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/net/if_lagg.c b/sys/net/if_lagg.c index 1e4d3d8d85ac..c30af5bfcc4e 100644 --- a/sys/net/if_lagg.c +++ b/sys/net/if_lagg.c @@ -2326,7 +2326,7 @@ lagg_port_state(struct ifnet *ifp, int state) LAGG_XUNLOCK(sc); } -struct lagg_port * +static struct lagg_port * lagg_link_active(struct lagg_softc *sc, struct lagg_port *lp) { struct lagg_port *lp_next, *rval = NULL; From nobody Mon Feb 16 15:44:20 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fF6X50MFnz6Rxjt for ; Mon, 16 Feb 2026 15:44: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fF6X46N0xz4PM8 for ; Mon, 16 Feb 2026 15:44:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771256660; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kpr4TuBD3CAs3x28y/NysdrFjlzEah3wTJ4wO6ICcLs=; b=oz78xmUCC6XPEkxfdP4HDF4dBKx4PEr+4hFNeAB9KSeZkADqV7dV1Sy5vRyRPdVP5RBXys tKWGCGD9ytgy8zZpOkuXGk0HyvaI7CUpROTwRbYyKD0QWP1meFTMqIQhp+OlR1HP8tzLHC pdiSTN0TXt7aYUU6eIHKFf1BIXljBSxvXfTsDTMxRZeZK2V5VEGzgqzfZ5dtTnHFQ8f7h3 J+hEmUrIuq7V93r8PYFihgH3dBx9wIHtjagni/0elqteBZYBUWt8WzzxqqEER742HNDVKh UFZrFKaaMhl44PUHFEOAtk6Dz1K756Ns7fGRHKWqytQbsJtzluPH//dkQ4C2tQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771256660; a=rsa-sha256; cv=none; b=bB12yCly5B54Gt7Xlx7Odd7ZHaLa5kKjUHM+FFkrQp4mBXKOAXEWvoKv27Xnpm4/4E6LTn 3vBGAsJGj4iCQuKovSEL/DvNMDQ+uddtD/qUjyHLN20Od5TzMijfgMB6BGubBOVVl77D76 T4k7Vc040tNYnL0505Bw/5AmoVYQVek7vCXbpg4KIxnWmabJFr0zSvvUmQVwuKFfexn824 Wdfob9BJgNbpVxQztCuYwRkOjIM5c6vWFK9puZOVOHxUVYwraxhGvTaxwtbY4JDPC3JT2+ ZokIDvWtlydcmqaHbF8MmnU4E/xFhWwfOy+BoKl9i1/M69bRI0FIvbrJ0YFrVw== 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=1771256660; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=kpr4TuBD3CAs3x28y/NysdrFjlzEah3wTJ4wO6ICcLs=; b=AO5L28vYSyITkmvY3Tr3OybxZCc4lbDKjelYt/kUGt2RrHbqof2wlRad+rRAE4nBYc8ENl HA5/aVlj1YklSlLr1u3VkLraQcsGRChtMoAEjyogUIQWFkmbymF7j1PtUUkmNb9GNBv6eF 7nAmf7ubY4KBJeRcxLlwza99GvyBaEZYgdDj13VE/Mg7Dyji5l/ZKH1efhrcsp3beHeeEd IlbNyTOo7rzVyx9E45BGKcnlNqFY9Neq4IOcU7vYCoRvY8t1+dfewbiI0Y01C+A4j8RbO6 m7Qb7B00kjveZf3H6XkwB3UuGO5ZcMQ1USjFkZ8lbsJPb/tP/Fcm39MfpEmjHg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fF6X45rNHzTvg for ; Mon, 16 Feb 2026 15:44:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1fdfe by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 15:44:20 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 8bc4cbacd1dc - stable/15 - ip_mroute: Convert to using a regular mutex List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: 8bc4cbacd1dcca986645a4497c41bf61ed9248fe Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 15:44:20 +0000 Message-Id: <69933b54.1fdfe.72109eee@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=8bc4cbacd1dcca986645a4497c41bf61ed9248fe commit 8bc4cbacd1dcca986645a4497c41bf61ed9248fe Author: Mark Johnston AuthorDate: 2026-01-27 14:58:02 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 13:42:10 +0000 ip_mroute: Convert to using a regular mutex The multicast routing code was using spin mutexes for packet counting, but there is no reason to use them instead of regular mutexes, given that none of this code runs in an interrupt context. Convert to using default mutexes. Reviewed by: glebius MFC after: 2 weeks Sponsored by: Stormshield Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D54603 (cherry picked from commit a265c8b4a5a7c8fdd33e27b8f74bd2a514f82c70) --- sys/netinet/ip_mroute.c | 35 ++++++++++++++++++----------------- sys/netinet/ip_mroute.h | 10 +++++----- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/sys/netinet/ip_mroute.c b/sys/netinet/ip_mroute.c index 267d76111780..73f17adf5728 100644 --- a/sys/netinet/ip_mroute.c +++ b/sys/netinet/ip_mroute.c @@ -607,12 +607,12 @@ get_vif_cnt(struct sioc_vif_req *req) return EINVAL; } - mtx_lock_spin(&V_viftable[vifi].v_spin); + mtx_lock(&V_viftable[vifi].v_mtx); req->icount = V_viftable[vifi].v_pkt_in; req->ocount = V_viftable[vifi].v_pkt_out; req->ibytes = V_viftable[vifi].v_bytes_in; req->obytes = V_viftable[vifi].v_bytes_out; - mtx_unlock_spin(&V_viftable[vifi].v_spin); + mtx_unlock(&V_viftable[vifi].v_mtx); MRW_RUNLOCK(); return 0; @@ -1005,8 +1005,8 @@ add_vif(struct vifctl *vifcp) vifp->v_pkt_out = 0; vifp->v_bytes_in = 0; vifp->v_bytes_out = 0; - sprintf(vifp->v_spin_name, "BM[%d] spin", vifcp->vifc_vifi); - mtx_init(&vifp->v_spin, vifp->v_spin_name, NULL, MTX_SPIN); + sprintf(vifp->v_mtx_name, "BM[%d] mtx", vifcp->vifc_vifi); + mtx_init(&vifp->v_mtx, vifp->v_mtx_name, NULL, MTX_DEF); /* Adjust numvifs up if the vifi is higher than numvifs */ if (V_numvifs <= vifcp->vifc_vifi) @@ -1054,7 +1054,7 @@ del_vif_locked(vifi_t vifi, struct ifnet **ifp_multi_leave, struct ifnet **ifp_f } } - mtx_destroy(&vifp->v_spin); + mtx_destroy(&vifp->v_mtx); bzero((caddr_t)vifp, sizeof (*vifp)); @@ -1660,7 +1660,7 @@ ip_mdq(struct mbuf *m, struct ifnet *ifp, struct mfc *rt, vifi_t xmt_vif) } /* If I sourced this packet, it counts as output, else it was input. */ - mtx_lock_spin(&V_viftable[vifi].v_spin); + mtx_lock(&V_viftable[vifi].v_mtx); if (in_hosteq(ip->ip_src, V_viftable[vifi].v_lcl_addr)) { V_viftable[vifi].v_pkt_out++; V_viftable[vifi].v_bytes_out += plen; @@ -1668,7 +1668,7 @@ ip_mdq(struct mbuf *m, struct ifnet *ifp, struct mfc *rt, vifi_t xmt_vif) V_viftable[vifi].v_pkt_in++; V_viftable[vifi].v_bytes_in += plen; } - mtx_unlock_spin(&V_viftable[vifi].v_spin); + mtx_unlock(&V_viftable[vifi].v_mtx); rt->mfc_pkt_cnt++; rt->mfc_byte_cnt += plen; @@ -1705,14 +1705,14 @@ ip_mdq(struct mbuf *m, struct ifnet *ifp, struct mfc *rt, vifi_t xmt_vif) for (x = rt->mfc_bw_meter_leq; x != NULL; x = x->bm_mfc_next) { /* * Record that a packet is received. - * Spin lock has to be taken as callout context + * A lock has to be taken as callout context * (expire_bw_meter_leq) might modify these fields * as well */ - mtx_lock_spin(&x->bm_spin); + mtx_lock(&x->bm_mtx); x->bm_measured.b_packets++; x->bm_measured.b_bytes += plen; - mtx_unlock_spin(&x->bm_spin); + mtx_unlock(&x->bm_mtx); } } @@ -1895,13 +1895,14 @@ expire_bw_meter_leq(void *arg) /* Reset counters */ x->bm_start_time = now; - /* Spin lock has to be taken as ip_forward context + /* + * The lock has to be taken as ip_forward context * might modify these fields as well */ - mtx_lock_spin(&x->bm_spin); + mtx_lock(&x->bm_mtx); x->bm_measured.b_bytes = 0; x->bm_measured.b_packets = 0; - mtx_unlock_spin(&x->bm_spin); + mtx_unlock(&x->bm_mtx); callout_schedule(&x->bm_meter_callout, tvtohz(&x->bm_threshold.b_time)); @@ -1987,8 +1988,8 @@ add_bw_upcall(struct bw_upcall *req) x->bm_time_next = NULL; x->bm_mfc = mfc; x->arg = curvnet; - sprintf(x->bm_spin_name, "BM spin %p", x); - mtx_init(&x->bm_spin, x->bm_spin_name, NULL, MTX_SPIN); + sprintf(x->bm_mtx_name, "BM mtx %p", x); + mtx_init(&x->bm_mtx, x->bm_mtx_name, NULL, MTX_DEF); /* For LEQ case create periodic callout */ if (req->bu_flags & BW_UPCALL_LEQ) { @@ -2015,7 +2016,7 @@ free_bw_list(struct bw_meter *list) /* MRW_WLOCK must be held here */ if (x->bm_flags & BW_METER_LEQ) { callout_drain(&x->bm_meter_callout); - mtx_destroy(&x->bm_spin); + mtx_destroy(&x->bm_mtx); } list = list->bm_mfc_next; @@ -2116,7 +2117,7 @@ bw_meter_geq_receive_packet(struct bw_meter *x, int plen, struct timeval *nowp) /* * Processing for ">=" type of bw_meter entry. - * bm_spin does not have to be hold here as in GEQ + * bm_mtx does not have to be hold here as in GEQ * case this is the only context accessing bm_measured. */ if (BW_TIMEVALCMP(&delta, &x->bm_threshold.b_time, >)) { diff --git a/sys/netinet/ip_mroute.h b/sys/netinet/ip_mroute.h index 2c71dc10dfd9..ed98e59a7c77 100644 --- a/sys/netinet/ip_mroute.h +++ b/sys/netinet/ip_mroute.h @@ -262,9 +262,9 @@ struct vif { u_long v_bytes_in; /* # bytes in on interface */ u_long v_bytes_out; /* # bytes out on interface */ #ifdef _KERNEL -#define MROUTE_VIF_SYSCTL_LEN __offsetof(struct vif, v_spin) - struct mtx v_spin; /* Spin mutex for pkt stats */ - char v_spin_name[32]; +#define MROUTE_VIF_SYSCTL_LEN __offsetof(struct vif, v_mtx) + struct mtx v_mtx; /* mutex for pkt stats */ + char v_mtx_name[32]; #endif }; @@ -350,8 +350,8 @@ struct bw_meter { #ifdef _KERNEL struct callout bm_meter_callout; /* Periodic callout */ void* arg; /* custom argument */ - struct mtx bm_spin; /* meter spin lock */ - char bm_spin_name[32]; + struct mtx bm_mtx; /* meter lock */ + char bm_mtx_name[32]; #endif }; From nobody Mon Feb 16 15:44:21 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fF6X60gVPz6RxZR for ; Mon, 16 Feb 2026 15:44: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fF6X56Ztsz4P1Y for ; Mon, 16 Feb 2026 15:44:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771256662; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nFCxEMXUHTv4sA4uy4zZO2GaAp+YIbg5zbMxDTeVUfc=; b=WKzUaVtXbSlTpNjXZnmbbc6OUEgq6N2tUG8PYMnnKFFd9tk/ORxXOorrW++qbPm60vcB/0 1MTZhA68tlz867OkJuSqkaB+484idbOlatUNgM5DWT0TDAeKTVIS07PVwhWccz3HTes//z KD7nbNi7FzLYOZNV2S3ZijWt3G/owa+CRLX7UsE6M5LXK4Hm2P7NrpBwSOZoOAd4U2iCM2 iCbb5H0cUnt/CHx2qDZ3YwuickG5vqAEnmwrRDG21sYLs9Opu2MJW/8IH0vnYGAUa1tAAe T5CUzAh5NrQwPJGdLF9QCCkpeoHAhN3YiBAp5uI9aAmxiNonYdQ3YXgRUYYLCg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771256661; a=rsa-sha256; cv=none; b=Ltf3W89FTiolLxaE2NsxcPLs0NDLInnKcCLTvLpVUr2fbvU1vRiYiVBkuMfOyqkZUzi7qq 5fgijxUVr9+fRwmlQYun+ZLwr9DlSdCUgtZJehGYcrmOzkWfUXzWN2J0wh+WXBtW97oavI 1xfudaSMTGG+o0yNIfLyfYUYNZbhpws5Pxv2GluZoiw9hMq2BGSn0x7HFvNct/oDaGRUie x9aveW+D0tTSoHtb1sIZ879yYQKeUpZqyPRRbhd1quTj140mEGceB6JuYJZC5LiTLAxQX2 D0Vh0l71WN3LKMympsvMB3ltu+E8C8SD//j4pWfE/OZgEISBtePk3uCQDFZxww== 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=1771256661; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nFCxEMXUHTv4sA4uy4zZO2GaAp+YIbg5zbMxDTeVUfc=; b=jVleW7CXtNl3RE+On2mgSj5xHd6xckol0XuoapmF2QCiTrG6fF3mYpO6ECarZwANO4zrdE mReOIZ+dkS2iFGo3MOStLtxXsGqPfqxCDmYH/zcTNNVBBh+K/+n2mcgJS7twvJfgeflSXN fPV07TRG02q6kqO8+EfrF6/FyXC5LI5VSi7hMMurdN/wN+xVGhcThDIYWuiQOzGosZtcs0 FHfiYh5v3Meansom6/UAfhDbIM1UVcS5AXzSD1FGhLjo9Mntt4PiwdyYnFdR31op1mfqOG y0Pneb78x69CQaW5paMy9LZgvzzBUp7Jj4M2kQN0AAbc5SfD4BBowV0bA00zBA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fF6X56BYszTdL for ; Mon, 16 Feb 2026 15:44:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1f13a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 15:44:21 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 12f619de32cc - stable/15 - divert: Update divert.4 to mention pf List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: 12f619de32cc5988031f0bb384711d5653ed7176 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 15:44:21 +0000 Message-Id: <69933b55.1f13a.2d262561@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=12f619de32cc5988031f0bb384711d5653ed7176 commit 12f619de32cc5988031f0bb384711d5653ed7176 Author: Mark Johnston AuthorDate: 2026-01-27 13:48:22 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 13:42:10 +0000 divert: Update divert.4 to mention pf pf's divert-to action can be used to pass packets to a divert socket, but divert.4 didn't mention this, only referencing ipfw. Try to make the text a bit more general. Reviewed by: igoro, kp, glebius MFC after: 2 weeks Sponsored by: OPNsense Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D54848 (cherry picked from commit 120c0bb833977707fc56f59b0961994fbd6c52e7) --- share/man/man4/divert.4 | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/share/man/man4/divert.4 b/share/man/man4/divert.4 index 5732099bd447..647bb72ab49b 100644 --- a/share/man/man4/divert.4 +++ b/share/man/man4/divert.4 @@ -1,5 +1,5 @@ .\" -.Dd August 30, 2022 +.Dd January 23, 2026 .Dt DIVERT 4 .Os .Sh NAME @@ -15,7 +15,6 @@ To enable support for divert sockets, place the following lines in the kernel configuration file: .Bd -ragged -offset indent -.Cd "options IPFIREWALL" .Cd "options IPDIVERT" .Ed .Pp @@ -25,14 +24,15 @@ as a module at boot time, add the following lines into the .Xr loader.conf 5 file: .Bd -literal -offset indent -ipfw_load="YES" ipdivert_load="YES" .Ed .Sh DESCRIPTION Divert sockets allow to intercept and re-inject packets flowing through the .Xr ipfw 4 -firewall. +and +.Xr pf 4 +firewalls. A divert socket can be bound to a specific .Nm port via the @@ -43,13 +43,15 @@ desired value. Note that the .Nm port has nothing to do with TCP/UDP ports. -It is just a cookie number, that allows to differentiate between different -divert points in the +It is just a cookie whose value depends on the firewall in use. +For .Xr ipfw 4 -ruleset. +this is the number of the rule which diverted the packet; for +.Xr pf 4 +this is a value which indicates the original direction through the +firewall of the diverted packet. A divert socket bound to a divert port will receive all packets diverted -to that port by -.Xr ipfw 4 . +to that port by the firewall. Packets may also be written to a divert port, in which case they re-enter firewall processing at the next rule. .Pp @@ -67,8 +69,8 @@ Diverted packets may be read unaltered via or .Xr recvfrom 2 . In the latter case, the address returned will have its port set to -some tag supplied by the packet diverter, (usually the ipfw rule number) -and the IP address set to the (first) address of +some tag supplied by the packet diverter, (usually the cookie described +above) and the IP address set to the (first) address of the interface on which the packet was received (if the packet was incoming) or .Dv INADDR_ANY @@ -179,6 +181,7 @@ that was not associated with any interface. .Xr sendto 2 , .Xr socket 2 , .Xr ipfw 4 , +.Xr pf 4 , .Xr ipfw 8 .Sh AUTHORS .An Archie Cobbs Aq Mt archie@FreeBSD.org , @@ -186,8 +189,7 @@ Whistle Communications Corp. .Sh BUGS This is an attempt to provide a clean way for user mode processes to implement various IP tricks like address translation, but it -could be cleaner, and it is too dependent on -.Xr ipfw 8 . +could be cleaner. .Pp It is questionable whether incoming fragments should be reassembled before being diverted. From nobody Mon Feb 16 15:44:22 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fF6X74pLKz6RxpB for ; Mon, 16 Feb 2026 15:44: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fF6X70Tbnz4NwB for ; Mon, 16 Feb 2026 15:44:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771256663; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DaCcpn3iuHGwXHNDTwetrLWqg9OCx4ASciAeF0anh/w=; b=l7tt7LvhaZI0+3gf8aTTCRWZxt1V8DiJ/vG5s9thHEJPJmq2qRBfCos73H5f29Pg2u0hMC 4ySDaKPsIo+1YZRVZfWfVs1mvKpM6fecpxx01ePfl6jYbY32JKeJP463Vh6oljfjPrwjZ7 V8S6pXJpACFE2hObvS9C/ZvPGYWHeD5ogqJuweCCzVd7IutD5gD8muKQqccjnQWhMSPrwB fd4EE+rzXSu/vSy1QvNmAWZvUi3h9D+HVYlnWoYuJyefvw7atuPf3cE0KCQiH9IpLm+Td8 Uq2+qP5RKVf69Zo+QcGDH56ZAFbVMxpDd/tLHNJpyjSuN3hDAKFAomaWjR1R2g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771256663; a=rsa-sha256; cv=none; b=vmAvEie2LW2n58Ur57nLRQJ5eIXeg8Ldu24aHkNqZLKXrWiUEegDKy2fpQJ5phGrmj7DhZ m6u8fKkuF6DRMV0jNF+FLYwOA1wZpRpqewnj0bUHjktditvKyn9iy0bC4dDCdbpZSqF2yM px7dQD0ZsUerTInluVV63sLYZdy2GrjQ8QE95DlTojlDFj8dWWZHUsh4afPeSlQwoY5bUr UT8miNS1PSRlxx2kcuwAW7+MuZhmIOKktHyIqDlbzCZqUTRNVtEhjM5EtL4dFHIgvKKBvO 4913TUmDbx7WrF04B+sDSp62CaHUqDLPa1uBjn7KYfgp+KTWgbyMgRS7uoEwbg== 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=1771256663; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DaCcpn3iuHGwXHNDTwetrLWqg9OCx4ASciAeF0anh/w=; b=QoJXMd8lCpTQTqcQON2ty4azgRooHIfMvpIG2gfb20Ky3pBbemVuGuUAkKFiZ5wK7C7CU1 uNg6OGDadyZd9y7tU1VsI+dn3gqyKZr1GJiFJpAYwrkVCKInkDQg6g1QHtvS7eJyF3hy0R 7A7+6YK+/ZvfXrr3jKHZAKCqK16Kr++yfyAW9ft24i7aPP5NEdCZih1cMDCUg9S/0znWbL 90o5mplxDGPZfJ0Y07D2rd1+HmJAnLqLMnVmjNXH2iwq91JRscuVtRuvhuP1A5bXOxcmns cMw1ChNi5ngkxDlwaYpg9g1ZHPggEbXtV8jT3jCpwMbSiNF+qnZoaY9Jl0eb2w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fF6X66wXnzCnK for ; Mon, 16 Feb 2026 15:44:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1fa8b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 15:44:22 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 361b80310299 - stable/15 - vmm: Remove an unneeded NULL pointer check List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: 361b80310299f36a8e97dde7c08721868d9c805b Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 15:44:22 +0000 Message-Id: <69933b56.1fa8b.121643ad@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=361b80310299f36a8e97dde7c08721868d9c805b commit 361b80310299f36a8e97dde7c08721868d9c805b Author: Mark Johnston AuthorDate: 2026-02-03 19:09:44 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 13:42:10 +0000 vmm: Remove an unneeded NULL pointer check sc->vm is unconditionally dereferenced earlier in this function. No functional change intended. Reviewed by: bnovkov MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D55069 (cherry picked from commit 2d0564b9daf49c46e0e4ef6c7d162c73fc8b35d7) --- sys/dev/vmm/vmm_dev.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sys/dev/vmm/vmm_dev.c b/sys/dev/vmm/vmm_dev.c index d6543bf6534e..6e7be320234c 100644 --- a/sys/dev/vmm/vmm_dev.c +++ b/sys/dev/vmm/vmm_dev.c @@ -895,8 +895,7 @@ vmmdev_destroy(struct vmmdev_softc *sc) free(dsc, M_VMMDEV); } - if (sc->vm != NULL) - vm_destroy(sc->vm); + vm_destroy(sc->vm); if (sc->ucred != NULL) crfree(sc->ucred); From nobody Mon Feb 16 15:44:24 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fF6X84Ppyz6Rxk0 for ; Mon, 16 Feb 2026 15:44: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fF6X81h5gz4P1n for ; Mon, 16 Feb 2026 15:44:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771256664; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1smZ8mJoaa4qeygOSqkVkpb/u/jDH9zYRHqkPQTN5WE=; b=uV7batGYB+aUr5QA6+AD5CiABmR/4wwyHHx1lMNTRkbilH29f6aefYcRiOfiCa0ZuUoh0Y jvNWWwLUVxVHdgINGTXyH73CVfA6dvtRY6K8ukFYJM0LPvnIqiGEm2T7w1FAsrzpSVN5/j U7q/njdwU6G6vWxtzsa1dnaY8f6hZhJQFooOHjOKCDsJMFxF4g9X1+HM3lbOp6mXyzaUwR bK4iPFq0StNHRB4C69PdtALv5Peoo4Yugya4G+rBcfKfyjyqNG3jQsgOx1yrFDlQ8PH0sm PnTTBJIrWPy/iE/17RoD8aqIsm33tAwNxuXxgxV7DgUIYFgs72eLCKRSobzxvg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771256664; a=rsa-sha256; cv=none; b=Ofbefg8Rq4h9aXEyREJ5VYAs0aUlO90O3TDxs6txQd4awjKuVjPAKLDUhTUVzvusTQr964 FOu3BO2NSinxwuVIXRgVzcOPY7RTgOU42cdGtBzVK/fZkKbpeHaUWoUt2dia8BEaNJQCls RjZaoIHvE2MMFfhYvQweFO4Un7GWXioOwIPwvW+ejdt9ivSMP0r46yB96GmivfJ469TcRS 4SKRHqmFwA0TObjIYgVR30/GNSixlHTeY1DoIRDp1axX38TAJzv5Xx/lanrNFM4wr2KWe+ TdfZYeacPRMHqxVGyGap/0Bi16eOBbTbDw9hB8kRGIwNqe9XLc/ecxmG90c7Ng== 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=1771256664; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1smZ8mJoaa4qeygOSqkVkpb/u/jDH9zYRHqkPQTN5WE=; b=YZHg6kHFyRRQJ3G62dPyc1qzmCJhEXO9Dhmd6MX32AYpQvSmnSj0+EK+DzqYsw3MdBT8DJ Qc3cwzdPxduu1tIu8y21YcvGZZpzcSIYJXu2ZIQlqov1gU/ua9pKfrxpTMF3tMDtJoueBq lz4ArQ86QeKLczyojQ20Jd4Qi3eR88WwfXq7+XegZl8uNT3tIYtQdrZUkFnf/20o/RB194 s5clboIbdXsE7usXf1eCtxSVG9TQvcQVFXD1goS3c61EpAzHPH2uj7+MmOVYBa8KBzc6f6 yMXpz9qz73lRZPYI9gHm+14LHX+JLyZNfCWkP23raXtThMLlsgwCKCe+5eek2A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fF6X80ZdrzTyB for ; Mon, 16 Feb 2026 15:44:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1f13e by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 15:44:24 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 769bc6877399 - stable/15 - sdt: Enable on 32-bit powerpc and powerpc64le List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: 769bc687739927d3e7115b27b3f4579883682459 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 15:44:24 +0000 Message-Id: <69933b58.1f13e.17e66ef8@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=769bc687739927d3e7115b27b3f4579883682459 commit 769bc687739927d3e7115b27b3f4579883682459 Author: Mark Johnston AuthorDate: 2026-02-04 14:48:34 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 13:42:10 +0000 sdt: Enable on 32-bit powerpc and powerpc64le Reviewed by: jhibbits, adrian MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D54814 (cherry picked from commit 6e32e8d7d16148e9bad1e3544363f318582f4c13) --- sys/conf/files.powerpc | 2 +- sys/modules/dtrace/Makefile | 4 +--- sys/powerpc/powerpc/sdt_machdep.c | 4 ++-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/sys/conf/files.powerpc b/sys/conf/files.powerpc index 0deada385f31..b1aa54c9aa64 100644 --- a/sys/conf/files.powerpc +++ b/sys/conf/files.powerpc @@ -391,7 +391,7 @@ powerpc/powerpc/platform.c standard powerpc/powerpc/platform_if.m standard powerpc/powerpc/ptrace_machdep.c standard powerpc/powerpc/sc_machdep.c optional sc -powerpc/powerpc/sdt_machdep.c optional powerpc64 kdtrace_hooks +powerpc/powerpc/sdt_machdep.c optional kdtrace_hooks powerpc/powerpc/setjmp.S standard powerpc/powerpc/sigcode32.S optional powerpc | powerpcspe | compat_freebsd32 powerpc/powerpc/sigcode64.S optional powerpc64 | powerpc64le diff --git a/sys/modules/dtrace/Makefile b/sys/modules/dtrace/Makefile index 3a3769b8b4b5..019b5e951dcf 100644 --- a/sys/modules/dtrace/Makefile +++ b/sys/modules/dtrace/Makefile @@ -9,6 +9,7 @@ SUBDIR= dtaudit \ fbt \ profile \ prototype \ + sdt \ systrace .if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386" @@ -31,8 +32,5 @@ SUBDIR+= fasttrap SUBDIR+= systrace_freebsd32 .endif .endif -.if ${MACHINE_CPUARCH} != "powerpc" || ${MACHINE_ARCH} == "powerpc64" -SUBDIR+= sdt -.endif .include diff --git a/sys/powerpc/powerpc/sdt_machdep.c b/sys/powerpc/powerpc/sdt_machdep.c index 8a84016a9571..04a4cc170769 100644 --- a/sys/powerpc/powerpc/sdt_machdep.c +++ b/sys/powerpc/powerpc/sdt_machdep.c @@ -37,8 +37,8 @@ sdt_tracepoint_patch(uintptr_t patchpoint, uintptr_t target) uint32_t instr; KASSERT(sdt_tracepoint_valid(patchpoint, target), - ("%s: invalid tracepoint %#lx -> %#lx", - __func__, patchpoint, target)); + ("%s: invalid tracepoint %#jx -> %#jx", + __func__, (uintmax_t)patchpoint, (uintmax_t)target)); instr = ((target - patchpoint) & 0x7fffffful) | 0x48000000; memcpy((void *)patchpoint, &instr, sizeof(instr)); From nobody Mon Feb 16 15:44:25 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fF6X94XYBz6RxY4 for ; Mon, 16 Feb 2026 15:44: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fF6X91pSlz4PQb for ; Mon, 16 Feb 2026 15:44:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771256665; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5NAxG6K/bKIJk5o747hROuuzaDbxWwIsJQrkGkwDVV0=; b=FofcMQ5HD/OM5XtIWHmtH3nFc13wofQtzH/IeiTTXncNMf0Hy62+hQ7ENvraVMHAoLD42m qUR0wg38Dy64LX2ZuUrH40m/YFTtMSYsZtG/yFxLlOHEz5mPVg27ybisoGfUjLsFicvspA R71ks4f/M1LU5qSmh5YWMKU+B7rKJr+wC9vjdlD5Zee4Pz8/frtDh+S0Srg51HWVe4xyGq aG+gv8h9E47RPR6dHQT1kaGT/fu2XjqTSNVBxctl6IM9UCu7osunhPDZzLGz5jeTa1vlPQ 3DERIiK0LbnPd1szy3fyAkyVz9NpEyEOWfXzWJuS1xTQWEbfDR7EDfTj0wh/yA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771256665; a=rsa-sha256; cv=none; b=CQvz9xUme252VDhggOpb2+PkPCFCNTZJFdN0ApiqwiKeWkvRXmaBT8QXPmMPY/0oF5gXHi TNdRgHGYAyTvNDB2Nx9Ze97MlNhzr90SprWzqnbsk23HuFtKhbUaFPDRjNZuFwvOVFwAHH aOX1UdAltot35dTe9713iVsQry+CP0Kia5dw4hlvqVbeZG6aQdR8rvHU1vQZDPA1rbEz4/ ntDQUtT3zfYuK9wo3XXa2zab2xjINWT4hFAFtyCrWthA+zq9PSeSkAxdV2Q4B66tiQ4c3d z9kOuDwXTUp2Xsux9ys6cJo5zZtzLPpgC0mKwDwCbQDe0ptWxnZyobd3sED9aw== 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=1771256665; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5NAxG6K/bKIJk5o747hROuuzaDbxWwIsJQrkGkwDVV0=; b=V5d0pMX1x64kGfWZ2xGoUWc4vBsE5r7PUcxpuZw6hUP7ge2sLkxF1ToFUELsSZCYmUravt DQ5CuOPxzsGgGMUDTafgnpe1avbpsf/k21BbcHrad3Db6pUcyBozyv5RLvLTg1qwJvFsHa /bRthIGXSTrvLM20c/JgdEomt2ZiOb/1pUbkr2Kw9qa3VGGNLmjcQnB1ucXQieMa+ApaWK c4+Kx4lwS2iDbIQZ975UmAQU1cBLTOgunswd1R0+kUMX6HgXtejzPUSJlj8thqq2K+Z6JM KTZgl6OWjKtY7rKDAlHTqGJN0RbYHzh5+K6Y/ZGyplOTEEpl7c8FQVfY8lsFaw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fF6X91Dr1zTsQ for ; Mon, 16 Feb 2026 15:44:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1fcb4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 15:44:25 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 93fe6d43f8ed - stable/15 - cpucontrol: Be more strict with input validation List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: 93fe6d43f8ed01b9e1f98ce589b93a930ba0a540 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 15:44:25 +0000 Message-Id: <69933b59.1fcb4.435c4732@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=93fe6d43f8ed01b9e1f98ce589b93a930ba0a540 commit 93fe6d43f8ed01b9e1f98ce589b93a930ba0a540 Author: Mark Johnston AuthorDate: 2026-01-28 16:31:41 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 13:42:11 +0000 cpucontrol: Be more strict with input validation Avoid truncating 32-bit values. This would have saved me a bit of time when I was looking at a cpuid leaf on my system and typed 0x80000001f instead of 0x8000001f. Reviewed by: kib MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D54919 (cherry picked from commit 59bbb62b6078afffd1c182b63d43934248289675) --- usr.sbin/cpucontrol/cpucontrol.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/usr.sbin/cpucontrol/cpucontrol.c b/usr.sbin/cpucontrol/cpucontrol.c index 9cc3968de01d..52e74a83b85b 100644 --- a/usr.sbin/cpucontrol/cpucontrol.c +++ b/usr.sbin/cpucontrol/cpucontrol.c @@ -36,7 +36,9 @@ #include #include #include +#include #include +#include #include #include #include @@ -112,6 +114,21 @@ usage(void) exit(EX_USAGE); } +static uint32_t +strtouint32(const char *str, char **endptr, int base) +{ + uintmax_t val; + + errno = 0; + val = strtoumax(str, endptr, base); + if (*str == '\0' || errno == ERANGE || val > UINT32_MAX) { + WARNX(0, "invalid operand: %s", str); + exit(EX_USAGE); + /* NOTREACHED */ + } + return ((uint32_t)val); +} + static int do_cpuid(const char *cmdarg, const char *dev) { @@ -123,7 +140,7 @@ do_cpuid(const char *cmdarg, const char *dev) assert(cmdarg != NULL); assert(dev != NULL); - level = strtoul(cmdarg, &endptr, 16); + level = strtouint32(cmdarg, &endptr, 16); if (*cmdarg == '\0' || *endptr != '\0') { WARNX(0, "incorrect operand: %s", cmdarg); usage(); @@ -162,7 +179,7 @@ do_cpuid_count(const char *cmdarg, const char *dev) assert(cmdarg != NULL); assert(dev != NULL); - level = strtoul(cmdarg, &endptr, 16); + level = strtouint32(cmdarg, &endptr, 16); if (*cmdarg == '\0' || *endptr == '\0') { WARNX(0, "incorrect or missing operand: %s", cmdarg); usage(); @@ -172,7 +189,7 @@ do_cpuid_count(const char *cmdarg, const char *dev) cmdarg1 = strstr(endptr, ","); /* ... and skip past it */ cmdarg1 += 1; - level_type = strtoul(cmdarg1, &endptr1, 16); + level_type = strtouint32(cmdarg1, &endptr1, 16); if (*cmdarg1 == '\0' || *endptr1 != '\0') { WARNX(0, "incorrect or missing operand: %s", cmdarg); usage(); @@ -228,7 +245,7 @@ do_msr(const char *cmdarg, const char *dev) /* * Parse command string. */ - msr = strtoul(cmdarg, &endptr, 16); + msr = strtouint32(cmdarg, &endptr, 16); switch (*endptr) { case '\0': op = OP_READ; From nobody Mon Feb 16 15:44:27 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fF6XC6ZNfz6RxgP for ; Mon, 16 Feb 2026 15:44:27 +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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fF6XC314Wz4P9C for ; Mon, 16 Feb 2026 15:44:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771256667; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=veJJ83Y0cmBMTHy14QtOiuMLGeHME28c2lXsuamLFbc=; b=Sob15D99WmrbUVQhxF5DkzumZ38CTZ/gGMx5uJ0iq3gqFA8K1pLjE5X76f0uLLjfBZ/toP av/8vW8Xucg1mOX49WP3ZWoDSp5QBlEYppuy3N/PtjaraoxNo7biwUuJmcawkb7wWDSFMI 3+IeaY21E+SgUlFExiXZy/7lUNXPUKeyOgNvyeDqupq7f1F3X+0vdTJDhX303GPQR8ZjIe jzf+OzCkr4oesONsEh6zFfey1oXULlIvq8h3lVQUfNpQU+MHJvrS91Si8FpxwktNyLlGfx crWNajzQMFWGUxDg2LvwavMj9EcpgCQ9qnBagEXVv6rzyQT1QSzb0v+D00Gkig== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771256667; a=rsa-sha256; cv=none; b=JxuGCHYFEtTgZzDqahLBEnhNC2tL5vzJ+BGb7Dh0PVkHQ8bPTdqmyZVBNB850SxlRxXCIa JXnYQKLkPzJJykO/cf7k1JOp3O/4Tikyma/HfM8Wsfe+ehx6d+l9IDjxMd5+g6vlbCrlJ0 Nh2IagOpPgXtn9ZSuZVN0Im2XZUoy3oX1vk+3jgFW0Zd8wjUQziGNOefNCreK71AZRScS/ 6t0onZIZ6HZvsFrI51yd4l585p9XzCGHEBhEXqgZisC3PCl+zTOF2563vRJP1JjYyy6cas oYnrYmwdhoAj8GtfAZiyN8a2el3pwFyVcgCmeYxcKadgVDM/VMnaeL9rtFQ67w== 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=1771256667; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=veJJ83Y0cmBMTHy14QtOiuMLGeHME28c2lXsuamLFbc=; b=aFIuxgY1Ov6b8ompKb6DAb0jZlBxQ8QdLh7BvvWuRWzqf8qPhXoH6o2P7Dqeoua+tsiz6I GtoJAbtPtxp00fhYWZkl+lTesjRCfLHzMVBchSe8NNjveiKW1ZsFVytwsm86RudP3uscYM xAA7Tg4pdI+mQ6gBN+uBJUFbsqqbtJ4YKEWkocHjepTB8JCK9BfsbwL8kq2LpRMkT8EH2f IU2XkwBRU/NYV81lnNXl/4AcKxPz27U+ku/0rVZvCKz+I5FtZRMFjo5KofXj/cYYl6Y4Lq LJSdJYGLlB3UpPH/qPcYiKVcf1h3YNxlC0e3mWR4wtRFk86AveS99FO8kSdU8w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fF6XC2VCXzTXT for ; Mon, 16 Feb 2026 15:44:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1eab6 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 15:44:27 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: ebc9a98c1b7d - stable/15 - ip6_mroute: Mark functions as static List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: ebc9a98c1b7d0a47359dae34509e1d9c02767a88 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 15:44:27 +0000 Message-Id: <69933b5b.1eab6.22880dda@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=ebc9a98c1b7d0a47359dae34509e1d9c02767a88 commit ebc9a98c1b7d0a47359dae34509e1d9c02767a88 Author: Mark Johnston AuthorDate: 2026-01-30 15:25:52 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 13:42:11 +0000 ip6_mroute: Mark functions as static No functional change intended. MFC after: 2 weeks Sponsored by: Stormshield Sponsored by: Klara, Inc. (cherry picked from commit a03eabfebbce15d8ce028168969812d3ca2be206) --- sys/netinet6/ip6_mroute.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/sys/netinet6/ip6_mroute.c b/sys/netinet6/ip6_mroute.c index 36136f908307..3eaa8834171a 100644 --- a/sys/netinet6/ip6_mroute.c +++ b/sys/netinet6/ip6_mroute.c @@ -360,16 +360,16 @@ static int get_sg_cnt(struct sioc_sg_req6 *); static struct callout expire_upcalls_ch; -int X_ip6_mforward(struct ip6_hdr *, struct ifnet *, struct mbuf *); -int X_ip6_mrouter_done(void); -int X_ip6_mrouter_set(struct socket *, struct sockopt *); -int X_ip6_mrouter_get(struct socket *, struct sockopt *); -int X_mrt6_ioctl(u_long, caddr_t); +static int X_ip6_mforward(struct ip6_hdr *, struct ifnet *, struct mbuf *); +static int X_ip6_mrouter_done(void); +static int X_ip6_mrouter_set(struct socket *, struct sockopt *); +static int X_ip6_mrouter_get(struct socket *, struct sockopt *); +static int X_mrt6_ioctl(u_long, caddr_t); /* * Handle MRT setsockopt commands to modify the multicast routing tables. */ -int +static int X_ip6_mrouter_set(struct socket *so, struct sockopt *sopt) { int error = 0; @@ -437,7 +437,7 @@ X_ip6_mrouter_set(struct socket *so, struct sockopt *sopt) /* * Handle MRT getsockopt commands */ -int +static int X_ip6_mrouter_get(struct socket *so, struct sockopt *sopt) { int error = 0; @@ -456,7 +456,7 @@ X_ip6_mrouter_get(struct socket *so, struct sockopt *sopt) /* * Handle ioctl commands to obtain information from the cache */ -int +static int X_mrt6_ioctl(u_long cmd, caddr_t data) { int ret; @@ -586,7 +586,7 @@ ip6_mrouter_init(struct socket *so, int v, int cmd) /* * Disable IPv6 multicast forwarding. */ -int +static int X_ip6_mrouter_done(void) { mifi_t mifi; @@ -1055,7 +1055,7 @@ socket_send(struct socket *s, struct mbuf *mm, struct sockaddr_in6 *src) * that if this function is called from somewhere else in the originating * context in the future. */ -int +static int X_ip6_mforward(struct ip6_hdr *ip6, struct ifnet *ifp, struct mbuf *m) { struct rtdetq *rte; From nobody Mon Feb 16 15:44:26 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fF6XC038vz6RxdD for ; Mon, 16 Feb 2026 15:44:27 +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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fF6XB28brz4PMr for ; Mon, 16 Feb 2026 15:44:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771256666; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EOu7YRU3VRm8yTRJPdtx8TsetGswcpX7abzaVnG2VPk=; b=j483MeNE3H3mQUYDY6Hx54BGdZ31HIalpOMllRbZvHAfQTzrKzpOBuYp7uvJdAzm/mJneE zwSB1wkXfDO4yPca2Cj5IEUjT8ALdM4UOeHxq32WqHH0/spcjbmTFj8AHDUnact7WH56jF yUPTOl4eafiemkNvSK5EkkoAgTWOuxEGJI5o7zt42W8yRc3FlGK6FHrE+X05vLQDNSXb2O wIXyGIwM8VrBhz95mLrW8JpafVE3lP2JWuTPlTgHWRvtHTX+3RypKWGEJICe8Etz+sZHcR dRWSiV/tFekp0SuuHhO2LTSlWQ6fcbceIcxmXBApR3mOmaD47FCUncaIyUpOXg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771256666; a=rsa-sha256; cv=none; b=WYP0SUkSE27bRBJJ7h09Pcil5/GjCdm2tDr4GfvhCOg+7oCgThr3VWaihyrVsy/inlMpb0 OktJ5dsOs55wZtPMhP1Nkfm7HO+aqRo7zELwnf1ejpwjQ70h0DeYKhFcuXYH9K/dPiHipI qyMb4qfrX4B0kkloej7NH4tyNTabACdPcpBLAWSf6yjil66rouPJHDxPyf96lWMDv+pOIt JjA5rP5ea07Nf/lDlb8hmkjKZH0yK1OLfXSOS2/Vi9L0y3E7tB8oI6FA2cfRp5M6rkvjWc 5Nmc/epDt3rF1EwAbhkNw6l7WiWRjPmfb2w9ZRs6YX1dZO1HsjgqMS5oaEYyaQ== 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=1771256666; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EOu7YRU3VRm8yTRJPdtx8TsetGswcpX7abzaVnG2VPk=; b=CoBz3wnT1ABTA7ICTTjQTs6DNVoTi2+Xno3G2lmRw45YS54QyRoM7X6uTCfAiLZ7GTwk71 Y2NlNNF4Q8qbR+XG3U5HiiiA3iU8Dy6rsDE36lfodxSHjw25fFhPhlYly7qNBPGmA5PCdY 1FOmNRoISFPKJxYLKw+FMY4cKDhXtwia7yYOAawoo9yQCdsBsL60psj3HHXPO3nDUB7xre d1ihXey995d4sJoLZ5bvQ7fAnwUkbpswiIs+GgBMEP1f/mXj73c65SA7CnSBJUMr8PZno/ iMyan+uoKfkgBhzq7XIf/vXeauDHP9KZ5oftGPtTBnBiDQfl2BH7mimKYMgdkw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fF6XB1lNRzTXR for ; Mon, 16 Feb 2026 15:44:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2085f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 15:44:26 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 147873a1a7d8 - stable/15 - ifconfig: Exit with a non-zero status when SIOCSIFFIB fails List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: 147873a1a7d82de1c792f0afff11707954c83e02 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 15:44:26 +0000 Message-Id: <69933b5a.2085f.2dbc3f4d@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=147873a1a7d82de1c792f0afff11707954c83e02 commit 147873a1a7d82de1c792f0afff11707954c83e02 Author: Mark Johnston AuthorDate: 2026-01-28 16:11:47 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 13:42:11 +0000 ifconfig: Exit with a non-zero status when SIOCSIFFIB fails Previously, setting an interface FIB to some invalid value would result in a warning being printed, but the ifconfig command would exit with status 0, but this is wrong. Add a little regression test. Reviewed by: pouria, zlei, melifaro MFC after: 2 weeks Sponsored by: Stormshield Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D54918 (cherry picked from commit 2ea85a622bcba92a7b58901d6a6e945df3022c4e) --- sbin/ifconfig/iffib.c | 16 ++++++---------- sbin/ifconfig/tests/Makefile | 3 ++- sbin/ifconfig/tests/ifconfig.sh | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 11 deletions(-) diff --git a/sbin/ifconfig/iffib.c b/sbin/ifconfig/iffib.c index a99dd6885d08..c1f9b3defb40 100644 --- a/sbin/ifconfig/iffib.c +++ b/sbin/ifconfig/iffib.c @@ -69,14 +69,12 @@ setiffib(if_ctx *ctx, const char *val, int dummy __unused) char *ep; fib = strtoul(val, &ep, 0); - if (*ep != '\0' || fib > UINT_MAX) { - warn("fib %s not valid", val); - return; - } + if (*ep != '\0' || fib > UINT_MAX) + errx(1, "fib %s not valid", val); ifr.ifr_fib = fib; if (ioctl_ctx_ifr(ctx, SIOCSIFFIB, &ifr) < 0) - warn("ioctl (SIOCSIFFIB)"); + err(1, "ioctl (SIOCSIFFIB)"); } static void @@ -87,14 +85,12 @@ settunfib(if_ctx *ctx, const char *val, int dummy __unused) char *ep; fib = strtoul(val, &ep, 0); - if (*ep != '\0' || fib > UINT_MAX) { - warn("fib %s not valid", val); - return; - } + if (*ep != '\0' || fib > UINT_MAX) + errx(1, "fib %s not valid", val); ifr.ifr_fib = fib; if (ioctl_ctx_ifr(ctx, SIOCSTUNFIB, &ifr) < 0) - warn("ioctl (SIOCSTUNFIB)"); + err(1, "ioctl (SIOCSTUNFIB)"); } static struct cmd fib_cmds[] = { diff --git a/sbin/ifconfig/tests/Makefile b/sbin/ifconfig/tests/Makefile index e902f262552a..8203c97cb013 100644 --- a/sbin/ifconfig/tests/Makefile +++ b/sbin/ifconfig/tests/Makefile @@ -1,5 +1,6 @@ NETBSD_ATF_TESTS_SH= nonexistent_test -ATF_TESTS_SH+= inet6 +ATF_TESTS_SH+= ifconfig \ + inet6 TEST_METADATA+= execenv="jail" TEST_METADATA+= execenv_jail_params="vnet allow.raw_sockets" diff --git a/sbin/ifconfig/tests/ifconfig.sh b/sbin/ifconfig/tests/ifconfig.sh new file mode 100644 index 000000000000..f95581ea97ba --- /dev/null +++ b/sbin/ifconfig/tests/ifconfig.sh @@ -0,0 +1,32 @@ +# SPDX-License-Identifier: BSD-2-Clause +# +# Copyright (c) 2026 Stormshield + +. $(atf_get_srcdir)/../../sys/common/vnet.subr + +atf_test_case "badfib" "cleanup" +badfib_head() +{ + atf_set descr "Test adding an interface to a non-existent FIB" + atf_set require.user root +} +badfib_body() +{ + local epair + + vnet_init + + epair=$(vnet_mkepair) + atf_check -s exit:0 ifconfig ${epair}a fib 0 + atf_check -s not-exit:0 -e not-empty \ + ifconfig ${epair}a fib $(sysctl -n net.fibs) +} +badfib_cleanup() +{ + vnet_cleanup +} + +atf_init_test_cases() +{ + atf_add_test_case badfib +} From nobody Mon Feb 16 15:44:28 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fF6XD6hq8z6RxdK for ; Mon, 16 Feb 2026 15:44: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fF6XD45vpz4PTn for ; Mon, 16 Feb 2026 15:44:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771256668; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hQF9rNyz7x/qEUnPwH5Met79CZZNSPof5eGB5qtnOa8=; b=SaOjTUIRJq3rCnn4UmT8fUmmgiFyj5QNtkv1F3+OaUfADpN2stFZVVl5sIPe5N5Sf5aihc 0VAFjSRavX/9rJdhhm9WS6F6Jn10Ow6Uw58dXqLCYzMNTziisVC1LF6k8llq1ML6KRAufg 2TPkjIDfKZ6wEHPDTheLS356NMF37kl9uSHuUV2zeNfCJ2OVhgT5XivQG2YC5oIsAOBCSO k33Rrrs070B3wb8xRSgsWBpM6nQ0usm4YhVCETHt4WbrkO66YPoq7VKWnI38XqxG5n0MkO 1bTtOwfaMXHspgYgjEZABmD8uH8SvnGLr3sJH/0clsxA2md/jWVFCoQA3znehA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771256668; a=rsa-sha256; cv=none; b=sBztq6ZDnOUALRrqyc9g3JmCjmJGjq7v47wzF+wTvQgQ+Xf80+JRsZfc/W3em3oTmsSuom bOW+F8eymaeWE/viUU06Rc7zCSdlL9WaqbBsuOw/okgtwb+90NDGCir/h32wiq7E/CyC7/ lCS1vtZLJfXwqp2sraYRwcagcnP5iNDAHF1zTm/Su5F5jsL8T33FOfGq6t+J9pSF6GQCye xVyBcwdNKfJ84tV/fKnz8A6RCx1MJYuOO444wsMmR5Z3ChOledI0GaNhnl8iBBk48jim37 gCS+lzyTIrW97ySTuMKeB+9FW+Vv4lqJQDw1CU8/68niSSQ/BWRiCuOgc39RGQ== 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=1771256668; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hQF9rNyz7x/qEUnPwH5Met79CZZNSPof5eGB5qtnOa8=; b=mlLYWlxApzsw/+SqBGSqCuSkbBA77WJVru4frdwQkqOfV5l/MezO0Gco3RlUu8XpaRIgaZ tG2bnPQvM5gzi/LyI5nOZvvjOGN7G5CbPYLx6Bxjm1W+CZsFgyr+ZCJTQ1Pk3/L8mVjfsX Qk6dt+yjVgNnwQgsjqZei1bLgbFk5I8xWI+AdDcXv1mHkbqiW4JMbuDNXehz2ZMvLSIcli Fam8+T8aTSH4kdC/LmBYidrat6xg8LzFBintkLTjUPvXevgxlZZ/mQzqu+VO2Q6mszNPe0 VQIy3CZGjdYty7zl/perZ34HFV5PDwnLwrAc6j0JUYSFXntWvsN/yULdcCgaMg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fF6XD3JGpzTXV for ; Mon, 16 Feb 2026 15:44:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2024f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 15:44:28 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: d2b595debaf2 - stable/15 - netstat: Fix whitespace in libxo output for multicast routes List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: d2b595debaf2ff82a402c9226a77cd43cc97bb50 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 15:44:28 +0000 Message-Id: <69933b5c.2024f.534fee0c@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=d2b595debaf2ff82a402c9226a77cd43cc97bb50 commit d2b595debaf2ff82a402c9226a77cd43cc97bb50 Author: Mark Johnston AuthorDate: 2026-01-30 20:30:58 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 13:42:11 +0000 netstat: Fix whitespace in libxo output for multicast routes Also fix some bogus libxo format strings in mroute6.c, and close a couple of lists instead of opening them twice. Fixes: ade9ccfe211a ("Convert netstat to use libxo.") MFC after: 2 weeks Sponsored by: Stormshield Sponsored by: Klara, Inc. (cherry picked from commit 34c3e1d718a86436f863b2ae8b91bcf406b37f0e) --- usr.bin/netstat/mroute.c | 11 +++++------ usr.bin/netstat/mroute6.c | 13 ++++++------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/usr.bin/netstat/mroute.c b/usr.bin/netstat/mroute.c index 1577a6ae73ac..75c3c8477ea4 100644 --- a/usr.bin/netstat/mroute.c +++ b/usr.bin/netstat/mroute.c @@ -37,7 +37,6 @@ * SUCH DAMAGE. */ -#include /* * Print multicast routing structures and statistics. * @@ -157,7 +156,7 @@ print_bw_meter(struct bw_meter *bw_meter, int *banner_printed) } xo_emit(" {:remaining-time/%s}", s3); - xo_open_instance("bandwidth-meter"); + xo_close_instance("bandwidth-meter"); xo_emit("\n"); } @@ -186,9 +185,9 @@ print_mfc(struct mfc *m, int maxvif, int *banner_printed) } memcpy(&sin.sin_addr, &m->mfc_origin, sizeof(sin.sin_addr)); - xo_emit(" {:origin-address/%-15.15s}", routename(sa, numeric_addr)); + xo_emit(" {t:origin-address/%-*.15s}", 15, routename(sa, numeric_addr)); memcpy(&sin.sin_addr, &m->mfc_mcastgrp, sizeof(sin.sin_addr)); - xo_emit(" {:group-address/%-15.15s}", + xo_emit(" {t:group-address/%-15.15s}", routename(sa, numeric_addr)); xo_emit(" {:sent-packets/%9lu}", m->mfc_pkt_cnt); xo_emit(" {:parent/%3d} ", m->mfc_parent); @@ -303,12 +302,12 @@ mroutepr(void) xo_open_instance("vif"); memcpy(&sin.sin_addr, &v->v_lcl_addr, sizeof(sin.sin_addr)); - xo_emit(" {:vif/%2u} {:threshold/%6u} {:route/%-15.15s}", + xo_emit(" {:vif/%2u} {:threshold/%6u} {t:route/%-15.15s}", /* opposite math of add_vif() */ vifi, v->v_threshold, routename(sa, numeric_addr)); memcpy(&sin.sin_addr, &v->v_rmt_addr, sizeof(sin.sin_addr)); - xo_emit(" {:source/%-15.15s}", (v->v_flags & VIFF_TUNNEL) ? + xo_emit(" {t:source/%-15.15s}", (v->v_flags & VIFF_TUNNEL) ? routename(sa, numeric_addr) : ""); xo_emit(" {:received-packets/%9lu} {:sent-packets/%9lu}\n", diff --git a/usr.bin/netstat/mroute6.c b/usr.bin/netstat/mroute6.c index 0bb44b8292e7..5898791dcbe6 100644 --- a/usr.bin/netstat/mroute6.c +++ b/usr.bin/netstat/mroute6.c @@ -65,7 +65,6 @@ * SUCH DAMAGE. */ -#include #ifdef INET6 #include #include @@ -151,7 +150,7 @@ mroute6pr(void) xo_close_instance("multicast-interface"); } if (banner_printed) - xo_open_list("multicast-interface"); + xo_close_list("multicast-interface"); else xo_emit("\n{T:IPv6 Multicast Interface Table is empty}\n"); @@ -172,19 +171,19 @@ mroute6pr(void) xo_open_list("multicast-forwarding-cache"); xo_emit("\n" "{T:IPv6 Multicast Forwarding Cache}\n"); - xo_emit(" {T:%-*.*s} {T:%-*.*s} {T:%s}", + xo_emit(" {T:/%-*.*s} {T:/%-*.*s} {T:/%s}\n", WID_ORG, WID_ORG, "Origin", WID_GRP, WID_GRP, "Group", - " Packets Waits In-Mif Out-Mifs\n"); + " Packets Waits In-Mif Out-Mifs"); banner_printed = 1; } xo_open_instance("multicast-forwarding-cache"); - xo_emit(" {:origin/%-*.*s}", WID_ORG, WID_ORG, + xo_emit(" {t:origin/%-*.*s}", WID_ORG, WID_ORG, routename(sin6tosa(&mfc.mf6c_origin), numeric_addr)); - xo_emit(" {:group/%-*.*s}", WID_GRP, WID_GRP, + xo_emit(" {t:group/%-*.*s}", WID_GRP, WID_GRP, routename(sin6tosa(&mfc.mf6c_mcastgrp), numeric_addr)); xo_emit(" {:total-packets/%9ju}", @@ -205,7 +204,7 @@ mroute6pr(void) xo_open_list("mif"); for (mifi = 0; mifi <= maxmif; mifi++) { if (IF_ISSET(mifi, &mfc.mf6c_ifset)) - xo_emit(" {l:%u}", mifi); + xo_emit(" {l:/%u}", mifi); } xo_close_list("mif"); xo_emit("\n"); From nobody Mon Feb 16 15:44:30 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fF6XH0Hrgz6RxVm for ; Mon, 16 Feb 2026 15:44: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fF6XG5PMyz4P9n for ; Mon, 16 Feb 2026 15: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=1771256670; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=w6Lm6PiK1Hcp0Uhv5ubVFjkurXbgxIxLULnF1o3wOWw=; b=CmCSA1R1WlGPquML45FJYfgVhd5EdV3QZXd7Ezod9aoeMc2ppdPXEd9WrrGaatOpDwlSwl ssqWfNsrvam829yrCvKoBJeGbDfYSSXICJ7XGbiJwhEw2FJGkOxlMuv4A3fnZ68VXYgm4T EpRC8WF5mNZ8Yl5Te8aO4pWqOotjtne+E3w0dGFLPsMV/LDb1tBFhy3/rp80nfeErfZxGu qBe8hZ0FEe7kJIJ6auxi+4Z1E97sJkxyWLZ3RbM6+cCUPXkWgBWBPn33A9iNjw0QXf/4/q ZsYf5iSaQBXH899xqnI82ImBB/o+ooE8bbTLbJWgegaX++7GznHDdi6L5uUNyA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771256670; a=rsa-sha256; cv=none; b=OPOhKjPlvBNzlpd/UzyvF8DI4CPRxL1hd9jAwm+QVVQI0gi4xk6piTz9s2fK0TJcsxzL0P dq0nYznNGzdsI94emGln9oJCNmmEyjA9pFm0OuZ8nW2sAQtwCrwonl7UxZYxSLxJBEDvyv 7W0+P4u05keq/YPLoEwIhsIXFsLGvrB8oS37VRPU9+xv+XJufgi3F3PjbPiEt9lSHwUEX5 2EYhrmnd8IP+r/qqRW2NKZEQIejPZ8cThEerRi7lmPg3ptPbFaoVzSsJ43IhY97v50Z1Rm G/9VWqiAhHJ6l3MGbGSIZLf7C5Ww52HMjYBfuOt/B5vfKRWnPIlwSfq0M4Cw4g== 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=1771256670; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=w6Lm6PiK1Hcp0Uhv5ubVFjkurXbgxIxLULnF1o3wOWw=; b=RbB9urjQAbG8y7RRUW/rZcumTnud/0fOD+Z2oLx4cXl5CBpkQVUOBShTePvyGRDtInBoDA hWXapgLYhi2lpV+68IxW2vNDAc31jBDnRh4WRRRd7lqdthUC4RYeNDudapdmYM9qT9Sj47 SdnjKyuGwzt7OImaU/IRTF1PTFJ8v7bC++imIHYuxuZPZj5FnYYMRnLoAFuSDaFzbcx0cs kEnVnFgT5DEDDvIGegFUg5RaR7JId3iHZWpaaw7XKEtVMbNnrfEh0+EGeDhkfhsExjbrul cPO9WmvQQaV3AZEeS64LfYPfxC6ddtJIjqw/50tAzsuKd0V4PzcpvaFpgA45lA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fF6XG4vxGzTZv for ; Mon, 16 Feb 2026 15:44:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1f246 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 15:44:30 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: d80fe2df0ec7 - stable/15 - bhyve: Use PCIOCGETCONF to find the host LPC bridge List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: d80fe2df0ec7561200a4a02cf123e1896b27784c Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 15:44:30 +0000 Message-Id: <69933b5e.1f246.5b466ec@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=d80fe2df0ec7561200a4a02cf123e1896b27784c commit d80fe2df0ec7561200a4a02cf123e1896b27784c Author: Mark Johnston AuthorDate: 2026-01-26 21:05:06 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 13:42:11 +0000 bhyve: Use PCIOCGETCONF to find the host LPC bridge pci_host_read_config() requires write access to /dev/pci so cannot be used with unprivileged bhyve. The lpc init code uses it to find the host system's LPC bridge device and so was generating warnings with bhyve running as a non-root user. Refactor the implementation to use PCIOCGETCONF instead, which doesn't require any special privileges. This isn't formally necessary, as we only care about copying the host system's identifiers in order to support Intel GPU passthrough (see commit f4ceaff56ddaa), but it's straightforward and lets an unprivileged user run bhyve without seeing warnings about failing to open /dev/pci with write permissions. Reviewed by: corvink, rew MFC after: 3 weeks Sponsored by: The FreeBSD Foundation Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D54851 (cherry picked from commit 1db1e4bdc64f29661592a47f2feb690d7cf37957) --- usr.sbin/bhyve/amd64/pci_lpc.c | 79 +++++++++++++++++++++++++----------------- usr.sbin/bhyve/pci_emul.c | 22 ++++++------ usr.sbin/bhyve/pci_emul.h | 2 +- 3 files changed, 60 insertions(+), 43 deletions(-) diff --git a/usr.sbin/bhyve/amd64/pci_lpc.c b/usr.sbin/bhyve/amd64/pci_lpc.c index ed41a800a2ea..52e9faec22af 100644 --- a/usr.sbin/bhyve/amd64/pci_lpc.c +++ b/usr.sbin/bhyve/amd64/pci_lpc.c @@ -28,10 +28,12 @@ */ #include + #include #include #include +#include #include #include #include @@ -46,7 +48,6 @@ #include "pci_emul.h" #include "pci_irq.h" #include "pci_lpc.h" -#include "pci_passthru.h" #include "pctestdev.h" #include "tpm_device.h" #include "uart_emul.h" @@ -460,34 +461,48 @@ pci_lpc_read(struct pci_devinst *pi __unused, int baridx __unused, #define LPC_SUBDEV_0 0x0000 static int -pci_lpc_get_sel(struct pcisel *const sel) +pci_lpc_get_conf(struct pci_conf *conf) { - assert(sel != NULL); - - memset(sel, 0, sizeof(*sel)); - - for (uint8_t slot = 0; slot <= PCI_SLOTMAX; ++slot) { - uint8_t max_func = 0; - - sel->pc_dev = slot; - sel->pc_func = 0; + struct pci_conf_io pcio; + struct pci_match_conf pmc; + int pcifd; - if (pci_host_read_config(sel, PCIR_HDRTYPE, 1) & PCIM_MFDEV) - max_func = PCI_FUNCMAX; + pcifd = open("/dev/pci", O_RDONLY); + if (pcifd < 0) { + warn("%s: Unable to open /dev/pci", __func__); + return (-1); + } - for (uint8_t func = 0; func <= max_func; ++func) { - sel->pc_func = func; +restart: + memset(&pcio, 0, sizeof(pcio)); + memset(&pmc, 0, sizeof(pmc)); + pmc.pc_class = PCIC_BRIDGE; + pmc.flags = PCI_GETCONF_MATCH_CLASS; + do { + pcio.pat_buf_len = sizeof(pmc); + pcio.num_patterns = 1; + pcio.patterns = &pmc; + pcio.match_buf_len = sizeof(*conf); + pcio.matches = conf; + if (ioctl(pcifd, PCIOCGETCONF, &pcio) == -1) { + warn("%s: ioctl(PCIOCGETCONF) failed", __func__); + break; + } + if (pcio.num_matches == 0) + break; + if (pcio.status == PCI_GETCONF_LIST_CHANGED) + goto restart; - if (pci_host_read_config(sel, PCIR_CLASS, 1) == - PCIC_BRIDGE && - pci_host_read_config(sel, PCIR_SUBCLASS, 1) == - PCIS_BRIDGE_ISA) { - return (0); - } + if (conf->pc_class == PCIC_BRIDGE && + conf->pc_subclass == PCIS_BRIDGE_ISA) { + close(pcifd); + return (0); } - } + } while (pcio.status == PCI_GETCONF_MORE_DEVS); + + close(pcifd); - warnx("%s: Unable to find host selector of LPC bridge.", __func__); + warnx("%s: Unable to find host selector of LPC bridge", __func__); return (-1); } @@ -495,8 +510,7 @@ pci_lpc_get_sel(struct pcisel *const sel) static int pci_lpc_init(struct pci_devinst *pi, nvlist_t *nvl) { - struct pcisel sel = { 0 }; - struct pcisel *selp = NULL; + struct pci_conf conf, *confp; uint16_t device, subdevice, subvendor, vendor; uint8_t revid; @@ -521,15 +535,16 @@ pci_lpc_init(struct pci_devinst *pi, nvlist_t *nvl) if (lpc_init(pi->pi_vmctx) != 0) return (-1); - if (pci_lpc_get_sel(&sel) == 0) - selp = &sel; + confp = NULL; + if (pci_lpc_get_conf(&conf) == 0) + confp = &conf; - vendor = pci_config_read_reg(selp, nvl, PCIR_VENDOR, 2, LPC_VENDOR); - device = pci_config_read_reg(selp, nvl, PCIR_DEVICE, 2, LPC_DEV); - revid = pci_config_read_reg(selp, nvl, PCIR_REVID, 1, LPC_REVID); - subvendor = pci_config_read_reg(selp, nvl, PCIR_SUBVEND_0, 2, + vendor = pci_config_read_reg(confp, nvl, PCIR_VENDOR, 2, LPC_VENDOR); + device = pci_config_read_reg(confp, nvl, PCIR_DEVICE, 2, LPC_DEV); + revid = pci_config_read_reg(confp, nvl, PCIR_REVID, 1, LPC_REVID); + subvendor = pci_config_read_reg(confp, nvl, PCIR_SUBVEND_0, 2, LPC_SUBVEND_0); - subdevice = pci_config_read_reg(selp, nvl, PCIR_SUBDEV_0, 2, + subdevice = pci_config_read_reg(confp, nvl, PCIR_SUBDEV_0, 2, LPC_SUBDEV_0); /* initialize config space */ diff --git a/usr.sbin/bhyve/pci_emul.c b/usr.sbin/bhyve/pci_emul.c index 9d6060e3e254..dc27402675ee 100644 --- a/usr.sbin/bhyve/pci_emul.c +++ b/usr.sbin/bhyve/pci_emul.c @@ -353,49 +353,51 @@ pci_print_supported_devices(void) } uint32_t -pci_config_read_reg(const struct pcisel *const host_sel, nvlist_t *nvl, +pci_config_read_reg(const struct pci_conf *host_conf, nvlist_t *nvl, const uint32_t reg, const uint8_t size, const uint32_t def) { const char *config; const nvlist_t *pci_regs; + uint32_t host; assert(size == 1 || size == 2 || size == 4); pci_regs = find_relative_config_node(nvl, "pcireg"); if (pci_regs == NULL) { - return def; + return (def); } switch (reg) { case PCIR_DEVICE: config = get_config_value_node(pci_regs, "device"); + host = host_conf != NULL ? host_conf->pc_device : 0; break; case PCIR_VENDOR: config = get_config_value_node(pci_regs, "vendor"); + host = host_conf != NULL ? host_conf->pc_vendor : 0; break; case PCIR_REVID: config = get_config_value_node(pci_regs, "revid"); + host = host_conf != NULL ? host_conf->pc_revid : 0; break; case PCIR_SUBVEND_0: config = get_config_value_node(pci_regs, "subvendor"); + host = host_conf != NULL ? host_conf->pc_subvendor : 0; break; case PCIR_SUBDEV_0: config = get_config_value_node(pci_regs, "subdevice"); + host = host_conf != NULL ? host_conf->pc_subdevice : 0; break; default: return (-1); } if (config == NULL) { - return def; - } else if (host_sel != NULL && strcmp(config, "host") == 0) { -#ifdef __amd64__ - return pci_host_read_config(host_sel, reg, size); -#else - errx(1, "cannot fetch host PCI configuration"); -#endif + return (def); + } else if (host_conf != NULL && strcmp(config, "host") == 0) { + return (host); } else { - return strtol(config, NULL, 16); + return (strtol(config, NULL, 16)); } } diff --git a/usr.sbin/bhyve/pci_emul.h b/usr.sbin/bhyve/pci_emul.h index 063b4b84e044..29e9717c1593 100644 --- a/usr.sbin/bhyve/pci_emul.h +++ b/usr.sbin/bhyve/pci_emul.h @@ -230,7 +230,7 @@ void pci_walk_lintr(int bus, pci_lintr_cb cb, void *arg); int init_pci(struct vmctx *ctx); void pci_callback(void); -uint32_t pci_config_read_reg(const struct pcisel *host_sel, nvlist_t *nvl, +uint32_t pci_config_read_reg(const struct pci_conf *host_conf, nvlist_t *nvl, uint32_t reg, uint8_t size, uint32_t def); int pci_emul_alloc_bar(struct pci_devinst *pdi, int idx, enum pcibar_type type, uint64_t size); From nobody Mon Feb 16 15:44:29 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fF6XF705Nz6Rxgb for ; Mon, 16 Feb 2026 15:44: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fF6XF549lz4PNp for ; Mon, 16 Feb 2026 15:44:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771256669; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bqGGs2Bc25lJJPdaLaddduyArcoDmCA5GO2sn2RGMDQ=; b=j92anvl0VD+BIWqhYyT5340fnafDzV40zfLt6sn/5R9u64cEBPklkNB3ge/QxQAmRnzUjX RfnK1sd5Irgx1dNLOZkH8qj0c1NzbzqJ0HQdK1d48SrsuyCrY/PLqW+8fsjCN2RlhDdzL1 NGz8yztG6DS80pVssQB/lfUK40McXwQycEjazxiBFwzWLfx/p+jh52qqBHTX6v7esgpmqJ lUASGE8w0+8V5VHGnxSUPFNWdpSDRHbY7YR1BG8WSSPsaCdsh0wglrzr3dFc8YKXZcxGH7 OCGjLq9vZCjrGNvJCs3kgBSz+nAGDRVa0G3BFKCPyYN3zZ2pCiJB1S2WTl03Fg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771256669; a=rsa-sha256; cv=none; b=j7EA4Ro5OLNhvYOBoJadDUsC3+yK8NrrSQWxjPO3W+pu0VbOhdBeIj89fJE0lGDVL9LTHP NMt7A+yB0Rwgn7WtLwDGL6Cx3MFEQr9OXWkgr7XZkC1YJBaWT9O2Clw1a4Q93pTZ3ULi6W EoAuYsUp5/9UVzLEk/YCYc/1sxYXbGqKseqSV+IWz3CpCUiJ2G0ayhj/SELNUkQ9x80bbP A3Ue7C4osDxTCyXHS9o4kDj+pgufJpoid1khfDHwVhF1i4uSq2B8jbNwMuvc4PNNNaQP6k s1POsLo+EI8xnf+YFKek9E0Pj8IZYdC60Fkqy7MPt23tmRPgZcrIyuSzt/TIag== 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=1771256669; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bqGGs2Bc25lJJPdaLaddduyArcoDmCA5GO2sn2RGMDQ=; b=qN625sHaIj+u/jdBAgMzRVqehU9kJ73UzOKuNIfFKzMfT4kP8qib2Py6dDbT90txuLpxds /N4dl9mvsgXU4h/sx/5YaUkUZ5zqZCBQaWQO0Z8rKt3lbU/JXiJBY/TH5Zd16OoDMpP7mj Cjk4hcBAojx4Fu9tuymTTGC7HjeDo5bW5EBJUawIOETMgrH2lLbJrcl4Ad4Q14H1I0FJkg 0JwvuHq/SY14RIYmRNxllhYnt0S5dAJWjlro0cNZzaemfBvgaYFApvVJs4zoAHFPL18X3y ybjKsKgTHiqsIPy3oyiOXlDQM5NScVz/L2LcwSQudC6YWy5skaCUy++x9ucNXQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fF6XF468hzTnG for ; Mon, 16 Feb 2026 15:44:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1eee7 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 15:44:29 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: David Marker From: Mark Johnston Subject: git: cf39d5888f41 - stable/15 - vmrun.sh: add option for sharing directory via p9fs to bhyve List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: cf39d5888f418b0341dbdf07c9cb27817ce706bd Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 15:44:29 +0000 Message-Id: <69933b5d.1eee7.304f366b@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=cf39d5888f418b0341dbdf07c9cb27817ce706bd commit cf39d5888f418b0341dbdf07c9cb27817ce706bd Author: David Marker AuthorDate: 2026-02-07 21:28:58 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 13:42:11 +0000 vmrun.sh: add option for sharing directory via p9fs to bhyve Reviewed by: markj MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D55100 (cherry picked from commit 525d00dcf45f6f83b188cf1ad7bfcfcc8ea39eca) --- share/examples/bhyve/vmrun.sh | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/share/examples/bhyve/vmrun.sh b/share/examples/bhyve/vmrun.sh index e0052e781dc0..44c905f18625 100755 --- a/share/examples/bhyve/vmrun.sh +++ b/share/examples/bhyve/vmrun.sh @@ -53,8 +53,8 @@ errmsg() { usage() { local msg=$1 - echo "Usage: vmrun.sh [-aAEhiTuvw] [-c ] [-C ]" \ - "[-d ]" + echo "Usage: vmrun.sh [-aAEhiTuvw] [-9 <9p share>=[,]]" + echo " [-c ] [-C ] [-d ]" echo " [-e ] [-f ]" \ "[-F ]" echo " [-G [w][address:]port] [-H ]" @@ -66,6 +66,7 @@ usage() { echo " [-P ] [-t ] " echo "" echo " -h: display this help message" + echo " -9: virtio 9p (VirtFS) device to share directory" echo " -a: force memory mapped local APIC access" echo " -A: use AHCI disk emulation instead of ${DEFAULT_DISK}" echo " -c: number of virtual cpus (default: ${DEFAULT_CPUS})" @@ -128,6 +129,7 @@ disk_total=0 disk_emulation=${DEFAULT_DISK} loader_opt="" pass_total=0 +plan9_total=0 # EFI-specific options efi_mode=0 @@ -144,16 +146,26 @@ uboot_firmware="/usr/local/share/u-boot/u-boot-bhyve-arm64/u-boot.bin" case ${platform} in amd64) bhyverun_opt="-H -P" - opts="aAc:C:d:e:Ef:F:G:hH:iI:l:L:m:n:p:P:t:Tuvw" + opts="9:aAc:C:d:e:Ef:F:G:hH:iI:l:L:m:n:p:P:t:Tuvw" ;; arm64) bhyverun_opt="" - opts="aAc:C:d:e:f:F:G:hH:iI:L:m:n:P:t:uv" + opts="9:aAc:C:d:e:f:F:G:hH:iI:L:m:n:P:t:uv" ;; esac while getopts $opts c ; do case $c in + 9) + plan9_share=${OPTARG%%=*} + plan9_rest=${OPTARG#${plan9_share}=} + plan9_path=${plan9_rest%%,*} + plan9_opts=${plan9_rest#${plan9_path}} + eval "plan9_share${plan9_total}=\"${plan9_share}\"" + eval "plan9_path${plan9_total}=\"${plan9_path}\"" + eval "plan9_opts${plan9_total}=\"${plan9_opts}\"" + plan9_total=$(($plan9_total + 1)) + ;; a) bhyverun_opt="${bhyverun_opt} -a" ;; @@ -387,6 +399,20 @@ while [ 1 ]; do i=$(($i + 1)) done + i=0 + while [ $i -lt $plan9_total ] ; do + eval "share=\$plan9_share${i}" + eval "path=\$plan9_path${i}" + eval "opts=\$plan9_opts${i}" + if [ ! -d ${path} ]; then + echo "virtio-9p \"${path}\" is not a directory" + exit 1 + fi + devargs="$devargs -s $nextslot,virtio-9p,${share}=${path}${opts} " + nextslot=$(($nextslot + 1)) + i=$(($i + 1)) + done + i=0 while [ $i -lt $tap_total ] ; do eval "tapname=\$tap_dev${i}" From nobody Mon Feb 16 15:44:31 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fF6XJ2VRVz6RxW1 for ; Mon, 16 Feb 2026 15:44:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fF6XH5vz5z4Pg9 for ; Mon, 16 Feb 2026 15:44:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771256671; h=from:from:reply-to:subject:subject: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/nsl8pBF9RzXIC8t/fYs2jXrFBYShVH9uYi7cIWeZc=; b=Dl//qvWQDdWQlKvjsxEQncRqun4bojO6tJ/owd9mXe7YmVdv9VvUhhKcy7s9xg6GT0nryb 2K9yIE5KdudJfLkPB0jAXXsj1f4cL62cI6F8leppwAxURfQXVO1KlXoExk5RwT9cq3yAmi VhxYFFzZ5UxTAWovjSCK/7/096bg/MvN0fWGdtzbwuNT/WkxSAO74bQpPh3fXgdU1SZQSG GYCoP4uXUzAR3RcY7BPAMBvYIrCL0DLbNJB0h9nge8f4OEyVPbv8qRbkXTvfEkvVXBvxrK s68BTSH0woINUHriJbVAj1TLN2IW8pI+b21ouoJlZljVfuU3M5V/gDtoYEi5Dg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771256671; a=rsa-sha256; cv=none; b=Wo+Vpnz3siThqajTUI5hZEWZDcDVeN7cTEBVxINDnv5gImh+JhApRZNcXmB3wwhojQwKdT feegYcATwkTao5sHSZKeQRaVw8mpX2FFba/uWF1E1NNXG32JKMWuMyfRnY5M0gZpPFRe2l wmYFwNUqyHYwrzRBGFXkr1UuZvGthyvAl8c9OnBDbCf31kirlduk1/DPhonzsa0bsT3hb8 lhnBPfDC7n8iyd/6aurvxxZCvEJGy1e21ND32+C0KQ/vttEcsX6Hl3w5VAANeSDJbq6j8N uUiL8Bm7XlnLkIEssu+GQKPCJsokHQnaG145xqyj17EjVTTaGOHYHD1kI/dwXQ== 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=1771256671; h=from:from:reply-to:subject:subject: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/nsl8pBF9RzXIC8t/fYs2jXrFBYShVH9uYi7cIWeZc=; b=MuNGYsoLnFLz1tnxorueCllFazJ1aA8xKkyEXAtOi2LqfK3x44p3bA2tyUOsb4MR0wUQKC cUfJYUNf3yXQywxPbq7SU3Rs94Z3Le6ewrEDSmkOk7RO8jhP7YutjwtVkwHxhWekO3HqWH 5qpDKeyEONcVq0f7qPcakwmIxaxx2oMQWfYyWkNrqseuW8P+LvZYIynJ0/hdH+3htXbkC0 KC7j+EPE+ZqIat6w8u+c6knOKKJP5lXr+FserPL2z19/AS//OYc6DWYyoPRagmK0rjoQFv Bfc/B+NcZ1JBK5ErmI/hzjGv8GRGRqP2v4cI4ZZ0VsU8zdF1pRW01xSFAtGLww== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fF6XH5Vt6zTyD for ; Mon, 16 Feb 2026 15:44:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1eaba by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 15:44:31 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 83d175fc2e4e - stable/15 - atf_python: Run vnet handlers in $HOME List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: 83d175fc2e4e882a483111b4269b7dc58addb0e0 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 15:44:31 +0000 Message-Id: <69933b5f.1eaba.1ba97426@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=83d175fc2e4e882a483111b4269b7dc58addb0e0 commit 83d175fc2e4e882a483111b4269b7dc58addb0e0 Author: Mark Johnston AuthorDate: 2026-02-02 14:52:43 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 13:43:18 +0000 atf_python: Run vnet handlers in $HOME When kyua runs a test, it creates a temp directory and sets $HOME to point to it. Tests are run with the cwd set to that temp directory. When a process attaches to a jail, its cwd is set to the root of the jail. Modify atf_python to cd to $HOME instead, so that it's easier for tests to share files. Reviewed by: zlei, ngie MFC after: 2 weeks Sponsored by: Stormshield Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D54971 (cherry picked from commit 07940d1d85eb338853fcba0697c6b9a96412a7f2) --- tests/atf_python/sys/net/vnet.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/atf_python/sys/net/vnet.py b/tests/atf_python/sys/net/vnet.py index f75a3eaa693e..3d431685836a 100644 --- a/tests/atf_python/sys/net/vnet.py +++ b/tests/atf_python/sys/net/vnet.py @@ -354,6 +354,7 @@ class VnetTestTemplate(BaseTest): vnetX_handler() after setting up interface addresses """ vnet.attach() + os.chdir(os.getenv("HOME")) print("# setup_vnet({})".format(vnet.name)) if pipe is not None: vnet.set_pipe(pipe) From nobody Mon Feb 16 15:44:32 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fF6XK1Jq7z6Rxb2 for ; Mon, 16 Feb 2026 15:44: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fF6XJ6Tsyz4PXX for ; Mon, 16 Feb 2026 15:44:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771256672; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=T/AC2OQfjhqqzc5mK41YZ+j21WeBOXykXZLfZpRtaCA=; b=doDcawEX5Se4Y8vD87ayuOye/0QwtdLohpZzHoXlsw6NiFR7LtZUjIwPFpluFtuCcfRJLa jsF2cYQOYa+RgkjBlZRFrOxnoMgV/3Gk9dT5/dp0oaCx44unEp50LqEwepOns8lEXzF7B2 S5oylqHiJnPUO07KXha0bZh0+2vxUJy1ozslU7XrwnCOe+JWkuOwV0Vu8mKifCe33M/876 fj9j/G58FJqy3ICZ5d90G4fTT7Sia6e71NmxBQP/fFEq+tbN84LTpFvhYv9rmxbFZ1kHKZ 8bBYHtOl8cnMTKj7Zc0Ids66LsmQ8WUom57/npixJVRq4JyTOS7StvkezZUhvQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771256672; a=rsa-sha256; cv=none; b=vjdOhJ91texMnP5oBoCT2WI7pzCAUF/ThHvjrkf7yAWkp7T65sC5xRMAFvH3UnK+rs6Fea lbwq93+sD9MIM8I5FlrE3hkyC52HUgCOEUoD0RIQFM6KBxhxsg0cp1t4Ei1HMvwuNUln+a 3XJ9JL5bS0pnnzISunP7zBJlR8fGVrLKexJH6juvOaW1bsmrmKoDiMK8ioYqTyRQmp8Qol ghXqP3Lf6J4V2LbqD8T8qn5AbTyPfS+ZU8y2a3NSwymbITGaxA+jiaPdbDTBiWzHPHVubf J4QQixojcsDjE9WQ52e8Xjddr0uZFzu3giJgw8EDFGuaashjyW7z6z1hMbEyeA== 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=1771256672; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=T/AC2OQfjhqqzc5mK41YZ+j21WeBOXykXZLfZpRtaCA=; b=m9qh5x6fgcc/z6VGbOJppXjGK2E3d1StzLtMTXt+J0KyPvy2HcmWab/vM+dZ1ZiKFlDXRL Nd2WISikNtIwcReCzL4W2fZXaLQ/EYewsTT2cEjM17k1eXZaaZ3SyVTL9oDVUNbwe3tYrs eBPTOafPNMJfa9Dkq8RIdcevynthzC8u0VOAmWta6eygbeIlbk4CSD3ys4FqztM81T3nSx MDz2hJvglyYXFJo2DMjHF5eQJdXUFDG//x2Rp09f2JK9xlp9JCJUvuI+GoCwEswgs7UkAa AJYpMS1VyanYJKUgQKq1qEHjlr+J/m9B3vl2MkETlqwku7ozGxw6tKnH3MvgJQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fF6XJ5pcfzTsT for ; Mon, 16 Feb 2026 15:44:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 20863 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 15:44:32 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 046846bb391f - stable/15 - ip6_mroute: Remove an unused constant List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: 046846bb391fb4639248d5ac8bcbe80b44fd6887 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 15:44:32 +0000 Message-Id: <69933b60.20863.2a0fe404@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=046846bb391fb4639248d5ac8bcbe80b44fd6887 commit 046846bb391fb4639248d5ac8bcbe80b44fd6887 Author: Mark Johnston AuthorDate: 2026-02-02 14:58:38 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 13:46:28 +0000 ip6_mroute: Remove an unused constant No functional change intended. MFC after: 2 weeks Sponsored by: Stormshield Sponsored by: Klara, Inc. (cherry picked from commit b320e89e6909c0c3f29542976df0381990866988) --- sys/netinet6/ip6_mroute.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/sys/netinet6/ip6_mroute.c b/sys/netinet6/ip6_mroute.c index 3eaa8834171a..275c3ae2d7f1 100644 --- a/sys/netinet6/ip6_mroute.c +++ b/sys/netinet6/ip6_mroute.c @@ -271,8 +271,6 @@ static void expire_upcalls(void *); */ static struct ifnet *multicast_register_if6; -#define ENCAP_HOPS 64 - /* * Private variables. */ From nobody Mon Feb 16 15:44:33 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fF6XL3y1zz6RxbB for ; Mon, 16 Feb 2026 15:44: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fF6XK72M4z4PVm for ; Mon, 16 Feb 2026 15:44:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771256674; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dL16ttQv2EFDXboK8xXEcJZAKtmFcCLwSNuphj/hCgY=; b=MqwTa8xnwY8zaare7k5/L1PI2aMSS5NkpasFZVdkUQT7/cOCrrLJkEVuoCwBXSB+2jqPpo OaY0cOe75Gfc+RDSDs8e8i3guBRNkI2ihMrRy8QJXJeaSVau7GrSqvN/DMOyKAuY1Dn7s8 gbfdPAU/+Z00YVjbBu71OciSRX1vAILWY4b7MjuKYsPxFUXFbDH4/fuMMwkxbriIkavCug kfaa9iNqctDTvkjgbW98oVG443w/F0/ajX/pUFlbMPnJXPri31mTQI5l0nWA91gltH8JQm YfkHTvc12XL8dj9vYwyQ5YLrePG6XRE69RGM4AXqMcd7weicuMyOv7ZREpoQdA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771256674; a=rsa-sha256; cv=none; b=ENzQ0/u4fTMI6wBV0RQFOKT89xAhMXWMvyuFI/LumfHddrcVUI0sBkQ8zkcPxXvO9cJfJJ 6OKoQ8VwVfTj76AuI9KEVtPd5PLcLwfS8gH3qvOwejs6i9a+HGa32XKRwITJVEmMHKlYyq r605fIsqkp7i48RkNsFkwvoNhtrrdnnqyucwiNCr8n2pqr+brQUpkD9e7NP69aNKbSw5PX 5PkZ+bOMGCCCzOEE7sSgp7WEIdnY15NgfIpGts55nZcUXr3spiwiovFNsnMHrUCLszLRzD 9Zf4WjkKIH9sWjt2VVQAeQw76m1p9ipcLoLS9lvvWqgt4oypPze1i0IrK/Ku3A== 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=1771256674; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dL16ttQv2EFDXboK8xXEcJZAKtmFcCLwSNuphj/hCgY=; b=pcF0QQ91draJcB1XE7c4G5RF56gV8C8Wu1tkqXxCtrZmp7x4erNACCRslmeU4ZbnLBjLX+ e3JHELDerHI96VFitIdIWpMSZIkj67lS3/fGiG1nui/Nu57M6eJHo0ZZYM5N3bG2L/c0iM o7lnh3KI7OpwbgsKB9udeWI+71Da1SrruljHEarAuhLZW4nnYOSol38KkP+/DkOOUZdhLC drmZdItxjt9KzqDBz8ccOqVxJppwOjDKJwRqMaZiO6FWtL28d2MUGUjtDviRXjl9yer0hN sZLUXFlDMzSYTUKae4m5OfgY0dzEwUSGeM8I506xy0kwAdAKS6TRWd7Q17+qxw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fF6XK6bHjzTXX for ; Mon, 16 Feb 2026 15:44:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 20867 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 15:44:33 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: bba9e2072966 - stable/15 - ip_mroute: Make privilege checking more consistent List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: bba9e20729660da478743d9965a11717fde56484 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 15:44:33 +0000 Message-Id: <69933b61.20867.7b95d192@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=bba9e20729660da478743d9965a11717fde56484 commit bba9e20729660da478743d9965a11717fde56484 Author: Mark Johnston AuthorDate: 2026-02-02 14:53:35 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 13:46:36 +0000 ip_mroute: Make privilege checking more consistent - The v6 socket option and ioctl handlers had no privilege checks at all. The socket options, I believe, can only be reached via a raw socket, but a jailed root user with a raw socket shouldn't be able to configure multicast routing in a non-VNET jail. The ioctls can only be used to fetch stats. - Delete a bogus comment in X_mrt_ioctl(), one can issue multicast routing ioctls against any socket. Note that the call path is soo_ioctl()->rtioctl_fib()->mrt_ioctl(). I think all of the mroute privilege checks should be done within the ip(6)_mroute code, but let's first make the v4 and v6 modules consistent. Reviewed by: glebius MFC after: 2 weeks Sponsored by: Stormshield Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D54982 (cherry picked from commit 74839871be363c5c2ac7ccd3396f36bdb58d19de) --- sys/netinet/ip_mroute.c | 5 ----- sys/netinet6/ip6_mroute.c | 15 +++++++++------ sys/netinet6/raw_ip6.c | 6 ++++++ 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/sys/netinet/ip_mroute.c b/sys/netinet/ip_mroute.c index 73f17adf5728..c69f3cc8b41e 100644 --- a/sys/netinet/ip_mroute.c +++ b/sys/netinet/ip_mroute.c @@ -547,11 +547,6 @@ X_mrt_ioctl(u_long cmd, caddr_t data, int fibnum __unused) { int error; - /* - * Currently the only function calling this ioctl routine is rtioctl_fib(). - * Typically, only root can create the raw socket in order to execute - * this ioctl method, however the request might be coming from a prison - */ error = priv_check(curthread, PRIV_NETINET_MROUTE); if (error) return (error); diff --git a/sys/netinet6/ip6_mroute.c b/sys/netinet6/ip6_mroute.c index 275c3ae2d7f1..5b9330c290d7 100644 --- a/sys/netinet6/ip6_mroute.c +++ b/sys/netinet6/ip6_mroute.c @@ -90,6 +90,7 @@ #include #include #include +#include #include #include #include @@ -457,24 +458,26 @@ X_ip6_mrouter_get(struct socket *so, struct sockopt *sopt) static int X_mrt6_ioctl(u_long cmd, caddr_t data) { - int ret; - - ret = EINVAL; + int error; + error = priv_check(curthread, PRIV_NETINET_MROUTE); + if (error) + return (error); + error = EINVAL; switch (cmd) { case SIOCGETSGCNT_IN6: - ret = get_sg_cnt((struct sioc_sg_req6 *)data); + error = get_sg_cnt((struct sioc_sg_req6 *)data); break; case SIOCGETMIFCNT_IN6: - ret = get_mif6_cnt((struct sioc_mif_req6 *)data); + error = get_mif6_cnt((struct sioc_mif_req6 *)data); break; default: break; } - return (ret); + return (error); } /* diff --git a/sys/netinet6/raw_ip6.c b/sys/netinet6/raw_ip6.c index c90a1213bd66..7deb605c07a2 100644 --- a/sys/netinet6/raw_ip6.c +++ b/sys/netinet6/raw_ip6.c @@ -604,6 +604,9 @@ rip6_ctloutput(struct socket *so, struct sockopt *sopt) case MRT6_ADD_MFC: case MRT6_DEL_MFC: case MRT6_PIM: + error = priv_check(curthread, PRIV_NETINET_MROUTE); + if (error != 0) + return (error); if (inp->inp_ip_p != IPPROTO_ICMPV6) return (EOPNOTSUPP); error = ip6_mrouter_get ? ip6_mrouter_get(so, sopt) : @@ -627,6 +630,9 @@ rip6_ctloutput(struct socket *so, struct sockopt *sopt) case MRT6_ADD_MFC: case MRT6_DEL_MFC: case MRT6_PIM: + error = priv_check(curthread, PRIV_NETINET_MROUTE); + if (error != 0) + return (error); if (inp->inp_ip_p != IPPROTO_ICMPV6) return (EOPNOTSUPP); error = ip6_mrouter_set ? ip6_mrouter_set(so, sopt) : From nobody Mon Feb 16 15:44:35 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fF6XM4wZTz6Rxdc for ; Mon, 16 Feb 2026 15:44: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fF6XM0hXFz4Pgg for ; Mon, 16 Feb 2026 15:44:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771256675; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KBhxK50DSpKvwGGRKbkrnWAeDGTY0DBaLC2iLeEyfRc=; b=gxrYxpI3yq9JQbG6jLNqORKoeWOkkxwkW9e2rpRE1j6zPHeJkAnREN+uU96rdm5mkVGe0R vTpjbks0yylyuQ4rd3yD0B/pYRTTMonuWBSK0oihqM8X7iaVdXrwkHI19lqT5tsECQq/15 twi9kZPUcomWVHXSimj/i84LEK4P6h3B6hYfeRec86g287UztjzWnokjd9GEFmz/8DrQTJ GMvJPOV80G/mdvDRS72vEU6BNl6NT1O2gmnNoxnNmzMM8Rq/hY21EmmY3eV2+ivZ2+aAbC tEAchXLAsIyFGfQZxy5awn6g/EXH5SMr7X3d0ad6xFGuqfpRhgmXrp6ximRQuA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771256675; a=rsa-sha256; cv=none; b=o8011IMkrSrOsoJ+HQr7eiMPVQaoKMHZv/H5ga3gdh3xuA4dE+CicjZMgX3cSOJdA9jVs/ d4xP9oY8Jh76BRvoj7BHTJevhbhNGz0RV4bj8eUXhFHg6255zgyScmR5Vz7GEibBHhCyr5 wNcu73JJDTDbBmnfE/68xQHVXssaPmKBIWeE2O3GGDJ0hEvqeFvqgZChhh5hayuSxjVQ3g tEPsIqTdTWABzGsMlTcbHUBGeViefhyAK1iGtkv2XymkGu5LpmFHBsxjIH4SOrGZiDoM8n uarhTpN8X4I93XzEY81/SFVotDUHdo9k37YOQAX7cyyA2W3t5JNgkybmgNKuTQ== 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=1771256675; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KBhxK50DSpKvwGGRKbkrnWAeDGTY0DBaLC2iLeEyfRc=; b=CUbOBh/xvQ7G8WiGTci+wJcwbc1YONYFSkVyRqtdHZELXvAupx/9sTgmwRobHgUGQ4KYp4 m/NZqGTJEGxEbraUeGlmR6JG9EUrAA+zu/MEAXpkxn6wpQgk7HUxA7U6MZnHVQlHSk44C0 HwmJ7pwXeJgFV1ZjPspKr+9yX1QB+KSqYi9uGDfqB6arTXB8on1I7L11Z1WArfKHE6UcUD BEstR2LvgzJYTOkQTbtZ/wy7g8REPaVRpNyMsCVijkVlvDYaiaJX3BC5wmKRfMI2E3ptNY r4Uld5OtSCF+q79I8vOnQRpmqvGh/4A0ekhM8cFYyHONcTpaAwJ04CfSb0/Mxw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fF6XM0HyczTvm for ; Mon, 16 Feb 2026 15:44:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1eabe by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 15:44:35 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: be4d110bcdaf - stable/15 - ip6_mroute: Make MF6CFIND a regular function List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: be4d110bcdaf9ac956844c1b5a342c06c4d4536d Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 15:44:35 +0000 Message-Id: <69933b63.1eabe.5e9debf1@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=be4d110bcdaf9ac956844c1b5a342c06c4d4536d commit be4d110bcdaf9ac956844c1b5a342c06c4d4536d Author: Mark Johnston AuthorDate: 2026-02-02 14:57:20 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 13:46:48 +0000 ip6_mroute: Make MF6CFIND a regular function This is more natural and corresponds more closely to the v4 multicast routing code. No functional change intended. Reviewed by: glebius MFC after: 2 weeks Sponsored by: Stormshield Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D54983 (cherry picked from commit b370fcc716b9cfd4d08e291f0009f02452c84d64) --- sys/netinet6/ip6_mroute.c | 45 ++++++++++++++++++++------------------------- 1 file changed, 20 insertions(+), 25 deletions(-) diff --git a/sys/netinet6/ip6_mroute.c b/sys/netinet6/ip6_mroute.c index 5b9330c290d7..7e78120791a1 100644 --- a/sys/netinet6/ip6_mroute.c +++ b/sys/netinet6/ip6_mroute.c @@ -295,26 +295,6 @@ VNET_DEFINE_STATIC(int, pim6); (g).s6_addr32[0] ^ (g).s6_addr32[1] ^ \ (g).s6_addr32[2] ^ (g).s6_addr32[3]) -/* - * Find a route for a given origin IPv6 address and Multicast group address. - */ -#define MF6CFIND(o, g, rt) do { \ - struct mf6c *_rt = mf6ctable[MF6CHASH(o,g)]; \ - rt = NULL; \ - while (_rt) { \ - if (IN6_ARE_ADDR_EQUAL(&_rt->mf6c_origin.sin6_addr, &(o)) && \ - IN6_ARE_ADDR_EQUAL(&_rt->mf6c_mcastgrp.sin6_addr, &(g)) && \ - (_rt->mf6c_stall == NULL)) { \ - rt = _rt; \ - break; \ - } \ - _rt = _rt->mf6c_next; \ - } \ - if (rt == NULL) { \ - MRT6STAT_INC(mrt6s_mfc_misses); \ - } \ -} while (/*CONSTCOND*/ 0) - /* * Macros to compute elapsed time efficiently * Borrowed from Van Jacobson's scheduling code @@ -365,6 +345,22 @@ static int X_ip6_mrouter_set(struct socket *, struct sockopt *); static int X_ip6_mrouter_get(struct socket *, struct sockopt *); static int X_mrt6_ioctl(u_long, caddr_t); +static struct mf6c * +mf6c_find(const struct in6_addr *origin, const struct in6_addr *group) +{ + MFC6_LOCK_ASSERT(); + + for (struct mf6c *rt = mf6ctable[MF6CHASH(*origin, *group)]; rt != NULL; + rt = rt->mf6c_next) { + if (IN6_ARE_ADDR_EQUAL(&rt->mf6c_origin.sin6_addr, origin) && + IN6_ARE_ADDR_EQUAL(&rt->mf6c_mcastgrp.sin6_addr, group) && + rt->mf6c_stall == NULL) + return (rt); + } + MRT6STAT_INC(mrt6s_mfc_misses); + return (NULL); +} + /* * Handle MRT setsockopt commands to modify the multicast routing tables. */ @@ -493,7 +489,7 @@ get_sg_cnt(struct sioc_sg_req6 *req) MFC6_LOCK(); - MF6CFIND(req->src.sin6_addr, req->grp.sin6_addr, rt); + rt = mf6c_find(&req->src.sin6_addr, &req->grp.sin6_addr); if (rt == NULL) { ret = ESRCH; } else { @@ -816,9 +812,8 @@ add_m6fc(struct mf6cctl *mfccp) MFC6_LOCK(); - MF6CFIND(mfccp->mf6cc_origin.sin6_addr, - mfccp->mf6cc_mcastgrp.sin6_addr, rt); - + rt = mf6c_find(&mfccp->mf6cc_origin.sin6_addr, + &mfccp->mf6cc_mcastgrp.sin6_addr); /* If an entry already exists, just update the fields */ if (rt) { MRT6_DLOG(DEBUG_MFC, "no upcall o %s g %s p %x", @@ -1113,7 +1108,7 @@ X_ip6_mforward(struct ip6_hdr *ip6, struct ifnet *ifp, struct mbuf *m) /* * Determine forwarding mifs from the forwarding cache table */ - MF6CFIND(ip6->ip6_src, ip6->ip6_dst, rt); + rt = mf6c_find(&ip6->ip6_src, &ip6->ip6_dst); MRT6STAT_INC(mrt6s_mfc_lookups); /* Entry exists, so forward if necessary */ From nobody Mon Feb 16 15:44:37 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fF6XP3YfBz6Rxdj for ; Mon, 16 Feb 2026 15:44: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fF6XP2RVdz4Pdv for ; Mon, 16 Feb 2026 15:44:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771256677; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=95I+z9IakggFKkr+QpNku77U2F4WCDuaAm5X1CYD2DE=; b=dPuI+avsHUUMIXcTOVqGY3E/wO7zxamj9ehqpGsqKvK6dCtGL1/fFOddpV3tx92GR6nNis vYgmk6CFey5T3pbeI4Y3Qq3qqICBue+jNycz+fgH972oUWDfpj2Iza6HKdrGQXkVQZI32b I9hOrHk0ilx6sqKRmTcB4eTo5WR/0mr4OO9oUZa34pHlAu8hdPm0iwr5CZBGOCEQ26cQEC Sn8aWxk44sy+Kb1WQdBaD9hYrscZY+eP8Dac6haJtdGyvHr/yV2Ao6GCJtj/SfRatULBoD X37eb9/IxL0/9zu2R4bgVd3oCLaQ1Wy5VqKW0M7S0U00m57Zf5yPvYc+2H6XhQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771256677; a=rsa-sha256; cv=none; b=VC4o4ZeqqMOHg2jU4g/cj9fWCbRMaAu271uVYS9sLYn83iqxa+xFYQq86J6V3BBc3dFDN2 c5umbYgxtVmMfObfac6lz1G6GmpRhDFjSmIkTB18VtHJm3lxRGXbn2HLLEQfHWtyXIZ1Xw mF034sD4jtyfY6zZ6fO/h7AGUSD6TgAuuNwe1ATGgGVrtStiYHqhT4x81Z0GuUnTXCBfNN xYMTArud1u950j8/duqtOJ/89Fwq7WLc8pHcll7arY3JAOCAZ4VddCqgmtUHpnneY3wqQz Bl07wEEe7R2Pr6C4F4NXJNMU+fa/UnCUj/w7/dVZd0EGtg1ArSxPZA72v5Ui6A== 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=1771256677; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=95I+z9IakggFKkr+QpNku77U2F4WCDuaAm5X1CYD2DE=; b=NHoKM4rx/sasdl9px+atnUh2A5i04ouyaZL/EgEh1FJJPF8GC+B2rgK27w7q3bpouqwyae On/eRoNdNebHoOIyjSQ1eFYEjKw8cP3Gcs3d56PKwinFGcpqyhKRxYfUYy5bZVrd72R5u2 HyKnYg68gcKa+6wi+Az+GdYaq8rnlkS/ERrAOXLdHYl2NOB3HBY1Ma6gQVyj7VMQEvzJ1R O52IsEAa+I03ONWR2qStEZ/2lIQ6D3SHuPiZeHLxBHbAyoMgG4pzg39RGgZ0ljmEHJZjbb 0P3EAPqUbpwolsr2s7p7lOPvI+xyjkfuHmwoZQMNuHih87CL6+KoDmfAgsCLsg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fF6XP1mrhzTZx for ; Mon, 16 Feb 2026 15:44:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1e945 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 15:44:37 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 0e260cf83352 - stable/15 - ip6_mroute: Fix the UPCALL_TIMING build List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: 0e260cf83352fbd64cb83de2800687c795ff7961 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 15:44:37 +0000 Message-Id: <69933b65.1e945.2e0cb7ad@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=0e260cf83352fbd64cb83de2800687c795ff7961 commit 0e260cf83352fbd64cb83de2800687c795ff7961 Author: Mark Johnston AuthorDate: 2026-02-02 14:57:49 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 13:47:08 +0000 ip6_mroute: Fix the UPCALL_TIMING build MFC after: 2 weeks Sponsored by: Stormshield Sponsored by: Klara, Inc. (cherry picked from commit 5bb953b095461b488b102ab3025f42cd2ef61f9d) --- sys/netinet6/ip6_mroute.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/netinet6/ip6_mroute.c b/sys/netinet6/ip6_mroute.c index 17f502834b2d..7dd87a07340c 100644 --- a/sys/netinet6/ip6_mroute.c +++ b/sys/netinet6/ip6_mroute.c @@ -321,7 +321,7 @@ VNET_DEFINE_STATIC(int, pim6); #ifdef UPCALL_TIMING #define UPCALL_MAX 50 static u_long upcall_data[UPCALL_MAX + 1]; -static void collate(); +static void collate(struct timeval *); #endif /* UPCALL_TIMING */ static int ip6_mrouter_init(struct socket *, int, int); From nobody Mon Feb 16 15:44:36 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fF6XN3x5hz6Rxgt for ; Mon, 16 Feb 2026 15:44: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fF6XN1WjGz4PPy for ; Mon, 16 Feb 2026 15:44:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771256676; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=My0OX6WR9JFwXiRegzCxTi6uxudt7gU3OxO1rpV7x5A=; b=U/9YFJAjVYIDE2P48ZkKyu8vpZsWI59QNIl5e3rWc0FGd25gcDs8atz5nRLzxYf19zfRZR tE+6xrgIikHMotqpg38gk5243/FM3fAHmGyzY8qmnd+QZb8jVeP6wkNDByY3hPoXwPBvPO g25lgnOlW0AMDBrIvV2mdzinMqGkkU7oWiLuSVLpjvVISStcuN7i4+QDS0suG7AK2BCkPA 3P7DbzA0TJiuk/ThzdehbvJIVyKMYBD//4JtN8yXf0ZFnK6SPMa15d1TqUeWYdb1/VK4ej wonB0lzFi322ytTDwFNqPkYrNVxL+JHjwPHTWNgJg+sNOxhJf7w4C2GSFmFuNQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771256676; a=rsa-sha256; cv=none; b=roSX13lVL0HpnhDAFCcvc7/FdI0gXf7RmQdYJBU6pewA7qd/mdhtvH2g7Zz2KXsKmqi0Mg zEYP0LfPHHKchVqVcOjKjOL8N4DJGc8kOPWsR0lGsADt5hL6TmopoojnlCt5+L6u324myZ lrdO3wEa5v5wnMqZjMso6DuLQhl/yEp7KUBmr47sFJuwiP48MD8Fchv+5sNFW4twvRwQfF JyLKJOFqR34ewZRl3lLmS51Gs74EB/6HEgI/DYjbIosHoOyxsG3TYj5zEtVjALZTHV+sJG Krh47VQM10pF0OEmrhm1S7xv9Ii+60pbaYLWjr4bTzRscRy9rdLcASf40Cx0Gg== 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=1771256676; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=My0OX6WR9JFwXiRegzCxTi6uxudt7gU3OxO1rpV7x5A=; b=yq1UBdhjHPkloGEu7la5Rk18nfp6V8iVCbeJk7g9z8aTVspeB6XgXUvRQRHCS4b2Pyb5Vk 0WtfJ+W04VlknNKJzVs410bg0WfzyP+9wEiIk8Psi7/d82MqyIPmlyfluTG/yDEG4oMSpX o3TlALEMufof3/INjIxcm6uBAjnXFP9Cb5RmcY97+llPiCW3uRmLFY2v3IU9fjp6lAJ3lH OAu+/lqhQE2jKnFcCpZZtAg2q+OQiF+/h6pK1QkQQKArigli/dYw7JMR77stoiUKDbF/wX mkk/5xYLCx1clp/FGEdiXrk9ppOZHuI8FgN0BMA8gZ7glJZRSaL+9KK3XMVpdQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fF6XN12QhzTsT for ; Mon, 16 Feb 2026 15:44:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1ffee by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 15:44:36 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: ec0f6d2f15e4 - stable/15 - ip6_mroute: Remove an unhelpful comment List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: ec0f6d2f15e433bb75b91c2a5ad8b2306b348e68 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 15:44:36 +0000 Message-Id: <69933b64.1ffee.5b2a0603@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=ec0f6d2f15e433bb75b91c2a5ad8b2306b348e68 commit ec0f6d2f15e433bb75b91c2a5ad8b2306b348e68 Author: Mark Johnston AuthorDate: 2026-02-02 14:59:20 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 13:46:57 +0000 ip6_mroute: Remove an unhelpful comment ifnets already track if_allmulti() calls in the if_amcount field. That field is older than the comment, so I'm not exactly sure what the intent was; let's just remove it. MFC after: 2 weeks Sponsored by: Stormshield Sponsored by: Klara, Inc. (cherry picked from commit a45fb94801dffd414bdb1981def0e977ef0c774f) --- sys/netinet6/ip6_mroute.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/sys/netinet6/ip6_mroute.c b/sys/netinet6/ip6_mroute.c index 7e78120791a1..17f502834b2d 100644 --- a/sys/netinet6/ip6_mroute.c +++ b/sys/netinet6/ip6_mroute.c @@ -255,10 +255,6 @@ static void expire_upcalls(void *); #define EXPIRE_TIMEOUT (hz / 4) /* 4x / second */ #define UPCALL_EXPIRE 6 /* number of timeouts */ -/* - * XXX TODO: maintain a count to if_allmulti() calls in struct ifnet. - */ - /* * 'Interfaces' associated with decapsulator (so we can tell * packets that went through it from ones that get reflected From nobody Mon Feb 16 17:30:06 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fF8t63dHcz6S5Mc for ; Mon, 16 Feb 2026 17:30: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fF8t60nHPz3Skl for ; Mon, 16 Feb 2026 17:30:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771263006; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XEaIFYtFUY9mLur/ijIFOxpSUVQJnmMp/F8V7G5PgjU=; b=Bd0iEklf1yXm59w9q6kDAh+KRqYKQjm00uDyYaflQBszL1J8MemmDQXs2A/zHEsEUYOP6h Kut+pH1ZIj7osOhHf7mRqA7k0C+h3Xra5boW6ISM5OG6k/6VFiFmPxhrHdXDlCV7f05gZ4 wYDlAXRtpSRvBw6+T+m9KGXhITtkoh955qllXWrxrVoK/INESoW/cpnB4fJNbXUGhUVioL vCS8GYigLOwGQv6LsmTOpvkXrWJc/8XRXqeHn32CNBdPJk493Rmz3jkzQLgb/IWdkynVQE Vv0cvNrOMT+bLy8VnFFnG9Nv0AZO155IhQlkxZIKXo2OEOJy5x+AFGM82vzpSQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771263006; a=rsa-sha256; cv=none; b=xGJpZ1axMD0G9VMt/oNRDSBA/C9Yf1FzItC2X5vSQW5Gw2WXj6X3nkeCk2gEIMchoNz0qk fRQSa5wdkAIJLzwEgnZFpcecH7p8D3TlKEZvKDw5yHVdQiQvTMD1RAk9k+IEMga8b2l2Su leZ5RkmVWZjxplVFm6NNTGlFnE+h3pENV69TU5UckJjnoZ1vVvYEzR01TFYsei6LDQayA2 /ELlcPy2NfyS/twm5kr4Fpaywf3qEz9TiOJQAjw9F0yw7C19ehyvRGPLTU4BX/2vbpHeoV QicqCZLCUHvHyrpdmuThof6FvzWESjuyQSU2899J6Wcuc0vVx1cNLmHWp62J1w== 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=1771263006; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XEaIFYtFUY9mLur/ijIFOxpSUVQJnmMp/F8V7G5PgjU=; b=FnWZO+GdHkoNqZLCnX8v5bxm5Y7/VzGLTkf/bgUwKK+zumEHjC/bSFmQQnMrB0r6Kpt3At /8zWi8yiEnfeyR2NC73Do9/Ai/PWUNOgEws/PfGR1/fuQVoRVhcSOxaa4+XwY5cW52U1xe 7EyiSCk0eRpjqHNI4Ga1cvNyxiJLC0lnkuzF0PQ84xYZUZUUERERBka24ja2RR3rghLgZQ 5WUyhhu2QFw4ocHMduTiJpDl5zkhWBiv4sBe0SJoxkpdKpRDnvfS2Ox7Z8igQuzJodhqmZ nt525wkhffsZ1MPivBnMIdar3CKf+Vv5IhA+UQA1Pit3dcqzNKm0vC/mM8UkPw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fF8t60MQwzZ7b for ; Mon, 16 Feb 2026 17:30:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 33101 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 17:30:06 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Guido Falsi Subject: git: 4c7357aaf5d2 - stable/15 - sys/netinet6: Use atomic(9) for dad_failures counter List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: madpilot X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 4c7357aaf5d2fbe85eb6d86b59efe11c6f0e8c9a Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 17:30:06 +0000 Message-Id: <6993541e.33101.16a0270e@gitrepo.freebsd.org> The branch stable/15 has been updated by madpilot: URL: https://cgit.FreeBSD.org/src/commit/?id=4c7357aaf5d2fbe85eb6d86b59efe11c6f0e8c9a commit 4c7357aaf5d2fbe85eb6d86b59efe11c6f0e8c9a Author: Guido Falsi AuthorDate: 2025-10-03 10:09:42 +0000 Commit: Guido Falsi CommitDate: 2026-02-16 17:27:41 +0000 sys/netinet6: Use atomic(9) for dad_failures counter Replace counter(9) usage with more lightweight atomic(9) in the code handling RFC 7217 SLAAC address generation. Also, use `u_int` types with this. Leaving `dad_failures` local to `in6_get_stableifid()` as a `uint64_t` to avoid changing the generated addresses from previous code; this also gives some headroom for future changes. While here, moved some `#include` lines to adhere to style(9). Reviewed by: glebius, jhibbits, jtl, zlei Approved by: glebius, jtl, zlei Differential Revision: https://reviews.freebsd.org/D52731 (cherry picked from commit 0c94dc9da7c238603e43c55ca6da64c417fc2204) Reviewed by: glebius, kp, pouria, zlei Approved by: glebius, pouria Relnotes: yes Differential Revision: https://reviews.freebsd.org/D54382 --- sys/netinet6/in6.c | 3 --- sys/netinet6/in6_ifattach.c | 6 ++++-- sys/netinet6/in6_proto.c | 4 ++-- sys/netinet6/in6_var.h | 2 +- sys/netinet6/ip6_var.h | 2 +- sys/netinet6/nd6_nbr.c | 8 +++++--- sys/netinet6/nd6_rtr.c | 4 +++- 7 files changed, 16 insertions(+), 13 deletions(-) diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c index abb880e5c2c1..bdee1eefaa3f 100644 --- a/sys/netinet6/in6.c +++ b/sys/netinet6/in6.c @@ -2629,8 +2629,6 @@ in6_domifattach(struct ifnet *ifp) COUNTER_ARRAY_ALLOC(ext->icmp6_ifstat, sizeof(struct icmp6_ifstat) / sizeof(uint64_t), M_WAITOK); - ext->dad_failures = counter_u64_alloc(M_WAITOK); - ext->nd_ifinfo = nd6_ifattach(ifp); ext->scope6_id = scope6_ifattach(ifp); ext->lltable = in6_lltattach(ifp); @@ -2666,7 +2664,6 @@ in6_domifdetach(struct ifnet *ifp, void *aux) COUNTER_ARRAY_FREE(ext->icmp6_ifstat, sizeof(struct icmp6_ifstat) / sizeof(uint64_t)); free(ext->icmp6_ifstat, M_IFADDR); - counter_u64_free(ext->dad_failures); free(ext, M_IFADDR); } diff --git a/sys/netinet6/in6_ifattach.c b/sys/netinet6/in6_ifattach.c index 538f34a267b4..b487c80a6667 100644 --- a/sys/netinet6/in6_ifattach.c +++ b/sys/netinet6/in6_ifattach.c @@ -44,7 +44,6 @@ #include #include #include -#include #include #include @@ -72,6 +71,9 @@ #include #include +#include +#include + #ifdef IP6_AUTO_LINKLOCAL VNET_DEFINE(int, ip6_auto_linklocal) = IP6_AUTO_LINKLOCAL; #else @@ -378,7 +380,7 @@ in6_get_stableifid(struct ifnet *ifp, struct in6_addr *in6, int prefixlen) } hostuuid_len = strlen(hostuuid); - dad_failures = counter_u64_fetch(DAD_FAILURES(ifp)); + dad_failures = atomic_load_int(&DAD_FAILURES(ifp)); /* * RFC 7217 section 7 diff --git a/sys/netinet6/in6_proto.c b/sys/netinet6/in6_proto.c index 6669a2ba56ce..f567b42b42ca 100644 --- a/sys/netinet6/in6_proto.c +++ b/sys/netinet6/in6_proto.c @@ -167,7 +167,7 @@ VNET_DEFINE(int, ip6_rr_prune) = 5; /* router renumbering prefix * walk list every 5 sec. */ VNET_DEFINE(int, ip6_mcast_pmtu) = 0; /* enable pMTU discovery for multicast? */ VNET_DEFINE(int, ip6_v6only) = 1; -VNET_DEFINE(int, ip6_stableaddr_maxretries) = IP6_IDGEN_RETRIES; +VNET_DEFINE(u_int, ip6_stableaddr_maxretries) = IP6_IDGEN_RETRIES; #ifdef IPSTEALTH VNET_DEFINE(int, ip6stealth) = 0; @@ -317,7 +317,7 @@ SYSCTL_INT(_net_inet6_ip6, IPV6CTL_USETEMPADDR, use_tempaddr, SYSCTL_BOOL(_net_inet6_ip6, IPV6CTL_USESTABLEADDR, use_stableaddr, CTLFLAG_VNET | CTLFLAG_RWTUN, &VNET_NAME(ip6_use_stableaddr), 0, "Create RFC7217 semantically opaque address for autoconfigured addresses (default for new interfaces)"); -SYSCTL_INT(_net_inet6_ip6, IPV6CTL_STABLEADDR_MAXRETRIES, stableaddr_maxretries, +SYSCTL_UINT(_net_inet6_ip6, IPV6CTL_STABLEADDR_MAXRETRIES, stableaddr_maxretries, CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(ip6_stableaddr_maxretries), IP6_IDGEN_RETRIES, "RFC7217 semantically opaque address DAD max retries"); SYSCTL_INT(_net_inet6_ip6, IPV6CTL_STABLEADDR_NETIFSRC, stableaddr_netifsource, diff --git a/sys/netinet6/in6_var.h b/sys/netinet6/in6_var.h index e511ead24f08..1414cc71388d 100644 --- a/sys/netinet6/in6_var.h +++ b/sys/netinet6/in6_var.h @@ -106,7 +106,7 @@ struct in6_ifextra { struct scope6_id *scope6_id; struct lltable *lltable; struct mld_ifsoftc *mld_ifinfo; - counter_u64_t dad_failures; /* DAD failures when using RFC 7217 stable addresses */ + u_int dad_failures; /* DAD failures when using RFC 7217 stable addresses */ }; #define LLTABLE6(ifp) (((struct in6_ifextra *)(ifp)->if_afdata[AF_INET6])->lltable) diff --git a/sys/netinet6/ip6_var.h b/sys/netinet6/ip6_var.h index c28bfa5a9d08..db1631736c4a 100644 --- a/sys/netinet6/ip6_var.h +++ b/sys/netinet6/ip6_var.h @@ -344,7 +344,7 @@ VNET_DECLARE(bool, ip6_use_stableaddr); /* Whether to use stable address generat #define V_ip6_use_stableaddr VNET(ip6_use_stableaddr) #define IP6_IDGEN_RETRIES 3 /* RFC 7217 section 7 default max retries */ -VNET_DECLARE(int, ip6_stableaddr_maxretries); +VNET_DECLARE(u_int, ip6_stableaddr_maxretries); #define V_ip6_stableaddr_maxretries VNET(ip6_stableaddr_maxretries) #define IP6_STABLEADDR_NETIFSRC_NAME 0 diff --git a/sys/netinet6/nd6_nbr.c b/sys/netinet6/nd6_nbr.c index e2db192bca15..29151b29a071 100644 --- a/sys/netinet6/nd6_nbr.c +++ b/sys/netinet6/nd6_nbr.c @@ -77,6 +77,8 @@ #include #include +#include + #define SDL(s) ((struct sockaddr_dl *)s) struct dadq; @@ -1460,7 +1462,7 @@ nd6_dad_timer(void *arg) if ((ND_IFINFO(ifp)->flags & ND6_IFF_IFDISABLED) == 0) { ia->ia6_flags &= ~IN6_IFF_TENTATIVE; if ((ND_IFINFO(ifp)->flags & ND6_IFF_STABLEADDR) && !(ia->ia6_flags & IN6_IFF_TEMPORARY)) - counter_u64_zero(DAD_FAILURES(ifp)); + atomic_store_int(&DAD_FAILURES(ifp), 0); } nd6log((LOG_DEBUG, @@ -1509,10 +1511,10 @@ nd6_dad_duplicated(struct ifaddr *ifa, struct dadq *dp) * More addresses will be generated as long as retries are not exhausted. */ if ((ND_IFINFO(ifp)->flags & ND6_IFF_STABLEADDR) && !(ia->ia6_flags & IN6_IFF_TEMPORARY)) { - uint64_t dad_failures = counter_u64_fetch(DAD_FAILURES(ifp)); + u_int dad_failures = atomic_load_int(&DAD_FAILURES(ifp)); if (dad_failures <= V_ip6_stableaddr_maxretries) { - counter_u64_add(DAD_FAILURES(ifp), 1); + atomic_add_int(&DAD_FAILURES(ifp), 1); /* if retries exhausted, output an informative error message */ if (dad_failures == V_ip6_stableaddr_maxretries) log(LOG_ERR, "%s: manual intervention required, consider disabling \"stableaddr\" on the interface" diff --git a/sys/netinet6/nd6_rtr.c b/sys/netinet6/nd6_rtr.c index 2ac883729c12..2556ed101a90 100644 --- a/sys/netinet6/nd6_rtr.c +++ b/sys/netinet6/nd6_rtr.c @@ -74,6 +74,8 @@ #include #include +#include + static struct nd_defrouter *defrtrlist_update(struct nd_defrouter *); static int prelist_update(struct nd_prefixctl *, struct nd_defrouter *, struct mbuf *, int); @@ -1709,7 +1711,7 @@ prelist_update(struct nd_prefixctl *new, struct nd_defrouter *dr, * to fail and no further retries should happen. */ if (ND_IFINFO(ifp)->flags & ND6_IFF_STABLEADDR && - counter_u64_fetch(DAD_FAILURES(ifp)) <= V_ip6_stableaddr_maxretries && + atomic_load_int(&DAD_FAILURES(ifp)) <= V_ip6_stableaddr_maxretries && ifa6->ia6_flags & (IN6_IFF_DUPLICATED | IN6_IFF_TEMPORARY)) continue; From nobody Mon Feb 16 17:30:08 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fF8t85JLlz6S5B9 for ; Mon, 16 Feb 2026 17:30: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fF8t823Mbz3SZ8 for ; Mon, 16 Feb 2026 17:30:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771263008; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qPD4+NclWto1Rh2GL65OCr1O2I4zmkD58XBUfJdVcDU=; b=dj9V5fh2HxlDSCrAWqD605M4RYnIVqCZKhoY5GoBrPO6MIaBURgO2arzcYQ/fyGTkd61wp gG8FAAB1gmFnEWcTJfvq0h0L26FuE02v2bSl3I/B4XWAhwyHBXIrSHY4c4Z0msXUGYE0aS b03r+uRIdSjYYSQIP4Q9xsoOKdGwDqQ2wc+XLnDMAXB5CRjeRnqZuYFbTRKb3fCkciA6d3 qo2Iwo+o6IFvNCp6/l8q/PgAmEDWJTmgTAj1x5b1dgL/fIhimbBX3H6mDbnfX09e27T5ZZ J2bVlNFp8JZXA2QFSxVWj5if4QKLGjZbdO10LJ8j+KUoKoXVZbD5q9C45Yqj9w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771263008; a=rsa-sha256; cv=none; b=ilsNYn6s+yhLsf3Staqg8hzikh6J1UyNDO1N1iPzUO3xzt2cLMV1uWa+HhGy457S9kqgZj Xe3uFEmMmyx96lIU75b6kL2PFd+8b7NEzoYak18yKUGCqRARp3nAvgg4RvamVULQKx1k7D rwU0UGNL1xACyNB+CzM69pkWZP6cOLcIAqmDo5nx3BRrM1Q0RlN1a0ISROfmoKgrzs/oM5 tBdMpt66nwPvUJS1067kLCZRD69JwQ/4QSrz5twW12kS0en0IMTBPoxe3yulIDS7rxXBYN MSgbBr53vzCmq6MeA8dLh0YqTgm3DSoCFv0XsLNlCD1DEan/LBv1vk+iY1ietQ== 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=1771263008; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qPD4+NclWto1Rh2GL65OCr1O2I4zmkD58XBUfJdVcDU=; b=GTFVpCXNK1fe//jnj+hBtwggL6X7nS2NIoG9GJcLK2qF3dhBtuIPmXBCcLHWQwpmedM+na YIPVZxAfQTJAdLFndQcs/QSEQtmFM3jXNUZAAyFYVRagepReZW1S6aFuqNPZGOtBun06EO koDjEjmuVxuG6Fmt5HqSHSDDCmUOaoSx84vyb8xGvzcEecNg9YGGxggKdOOyVd8XwUmNuv zTrF3cRmjKuxZATHvv8Vb4H51X4LpR01cteS3cAeM40RmTHDtf3I77UNY9Rt+5A12FjeBk fKIiKAjS1SAW56ubCprP/dxZcqhS5Ti1OtMQ0/eFKrmDfre2WlA0bnFp6CiWJQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fF8t81L3jzXrW for ; Mon, 16 Feb 2026 17:30:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 31d5a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 17:30:08 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Guido Falsi Subject: git: c20f5fd44322 - stable/15 - ifconfig.8: Start new sentence on new line List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: madpilot X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: c20f5fd443228743fed3b071ee30216145940178 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 17:30:08 +0000 Message-Id: <69935420.31d5a.5b8e065a@gitrepo.freebsd.org> The branch stable/15 has been updated by madpilot: URL: https://cgit.FreeBSD.org/src/commit/?id=c20f5fd443228743fed3b071ee30216145940178 commit c20f5fd443228743fed3b071ee30216145940178 Author: Guido Falsi AuthorDate: 2026-02-09 20:04:01 +0000 Commit: Guido Falsi CommitDate: 2026-02-16 17:28:52 +0000 ifconfig.8: Start new sentence on new line This change was forgotten by me in the previous commit to this file. Reported by: kib Approved by: implicit (change omitted from previous commit) Fixes: 31ec8b6407fdd5a87d70265762457c67ce618283 (cherry picked from commit e912723afb4e6bcfa828fcb73f35cd82fc6bca68) Reviewed by: glebius, kp, pouria, zlei Approved by: glebius, pouria Relnotes: yes Differential Revision: https://reviews.freebsd.org/D54382 --- sbin/ifconfig/ifconfig.8 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sbin/ifconfig/ifconfig.8 b/sbin/ifconfig/ifconfig.8 index e1d153aa7493..f062ddec774d 100644 --- a/sbin/ifconfig/ifconfig.8 +++ b/sbin/ifconfig/ifconfig.8 @@ -1009,7 +1009,8 @@ Clear a flag .Cm no_dad . .It Cm stableaddr Set a flag to create SLAAC addresses using a stable algorithm -according to RFC 7217. The +according to RFC 7217. +The .Xr sysctl 8 variable .Va net.inet6.ip6.use_stableaddr From nobody Mon Feb 16 17:30:07 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fF8t74tsLz6S5B6 for ; Mon, 16 Feb 2026 17:30:07 +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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fF8t71Xwqz3Skm for ; Mon, 16 Feb 2026 17:30:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771263007; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cFAIuBoxeN+i27//ZuQR9ozfmq70TpmZBKUCbEZ7agI=; b=Dge1zdpKb0iu9BX+NIVa0gSJUmTaXWyYUZ7gDH5hftSec1qhXbwnCSS35RdzpOSV7y+sIm crQ3jvF5Pa5GbIHsPsVJNT7N6kCzVx8vDIIspeF5iXlwpFIU0E0OGZMjn8OK4MwObq+5k0 +Qb+Qx2PKKrUlpN4JWgZijKfx3m7P7T0Dh55Z9Col4jmoxS8PClBxelw8xaiBY2zAyP4Z8 qQa2jxswYQ85EKeGgjYzKXS6Ugd+ZldfgrwwzunrcCxeBdUXO2QoEhNfnwoqlJANpHS5KC bs+6KR8H7X/w9KsUp1G5hL+Nat9Gc9ZmW5xcuvmo0OFOs/9eYp/zXsCOglYswg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771263007; a=rsa-sha256; cv=none; b=Ff38+yOKQ5qc0+lRssv0QYK0nsfHRMPpYQAUjxM6YmgHd1IWtyBglhKnwrGiQ9iiIs0C5v NVsrQBzFJHDcaR2QQS0Fn519aQgv4S3h1Dl7+dlTYHQ2WEO9pID/YJZhrcc4bAOfA7pwGA sqRek4O3M4Lx2ZOrX0PQQD3GfCxj1NPuO53gLFeoppqyt7T8w5PL2lavca0Zc2B1s6hdga 41Mk9RhSp5MFBZxrMLfj7ps7gZq18DZG9HOgBTQ8JucRyaJt1mXa14RAwOkgQOhhbzGDm9 V/+U9mqfCbp3X7Ir4q3e9a/o8o1c0xRTns6pofuFZNi8m3lBY3cE3PL6I8l3BA== 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=1771263007; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=cFAIuBoxeN+i27//ZuQR9ozfmq70TpmZBKUCbEZ7agI=; b=FQzw9VCjE0TG7OdDidFsdjeNowFCEkg6+G+ZGP6vj3sx/pOQQtUJyga9hpHpldV28e8sij 1VjZTZGIG1CRuRZcpyn7+qUz6Hj4/XJmXkgbe5thDbqGoPwkGXH2P4Szfj52OeEzrHbe1M Exw146WkdZavs8m5Du6G1Ib4ZEcEEe5OR58y/tw4kxjf1Gb+z094c/mghcoiZQSeRgDWhZ JhcwdqB/klezHpjn6VlLCkM6Mt9TfdMN8mVpUixvR6iBlEnhiA5/WxDrWt6rNyHuzr4sto lXhJNcwoqInreRepDaBVxBbBGavJ7horuzu+We6baU7cntWPmtHBcUxFr81v7w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fF8t70zsYzZ0M for ; Mon, 16 Feb 2026 17:30:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 33105 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 17:30:07 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Guido Falsi Subject: git: 20294a77a8d4 - stable/15 - netinet6: Fix my style issues List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: madpilot X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 20294a77a8d40bb645efad4b365ddaa9e7a53db2 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 17:30:07 +0000 Message-Id: <6993541f.33105.4e8d4552@gitrepo.freebsd.org> The branch stable/15 has been updated by madpilot: URL: https://cgit.FreeBSD.org/src/commit/?id=20294a77a8d40bb645efad4b365ddaa9e7a53db2 commit 20294a77a8d40bb645efad4b365ddaa9e7a53db2 Author: Guido Falsi AuthorDate: 2026-02-07 12:46:05 +0000 Commit: Guido Falsi CommitDate: 2026-02-16 17:28:04 +0000 netinet6: Fix my style issues Reported by: pouria Reviewed by: pouria, ziaee, glebius Approved by: glebius Fixes: 31ec8b6407fdd5a87d70265762457c67ce618283 Differential Revision: https://reviews.freebsd.org/D55136 (cherry picked from commit 4548149a81026ad9b1706b2b7e7ad47a4c1358b6) Reviewed by: glebius, kp, pouria, zlei Approved by: glebius, pouria Relnotes: yes Differential Revision: https://reviews.freebsd.org/D54382 --- sbin/ifconfig/ifconfig.8 | 19 +++++++++++-------- sys/netinet6/in6_ifattach.c | 22 +++++++++------------- 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/sbin/ifconfig/ifconfig.8 b/sbin/ifconfig/ifconfig.8 index 627b7cd3f9e3..e1d153aa7493 100644 --- a/sbin/ifconfig/ifconfig.8 +++ b/sbin/ifconfig/ifconfig.8 @@ -1008,24 +1008,28 @@ Set a flag to disable Duplicate Address Detection. Clear a flag .Cm no_dad . .It Cm stableaddr -Set a flag to create SLAAC addresses using a stable algorithm according to RFC 7217 -The +Set a flag to create SLAAC addresses using a stable algorithm +according to RFC 7217. The .Xr sysctl 8 variable .Va net.inet6.ip6.use_stableaddr -controls whether this flag is set by default or not for newly created interfaces. -To get consistent defaults for interfaces created at boot it should be set as a tunable via loader.conf(8). +controls whether this flag is set by default +or not for newly created interfaces. +To get consistent defaults for interfaces created at boot +it should be set as a tunable via +.Xr loader.conf 8 . The .Xr sysctl 8 variable .Va net.inet6.ip6.stableaddr_maxretries -sets the maximum number of retries to generate a unique IPv6 address to be performed in case of DAD failures. +sets the maximum number of retries to generate a unique IPv6 address +to be performed in case of DAD failures. This defaults to 3 which is also the reccommended minimum value. The interface ID source can be configured using the .Xr sysctl 8 variable -.Va net.inet6.ip6.stableaddr_netifsource: -.Bl -tag -compact +.Va net.inet6.ip6.stableaddr_netifsource : +.Bl -tag -compact -width indent .It Cm 0 uses the interface name string (the default) .It Cm 1 @@ -1033,7 +1037,6 @@ uses the interface ID .It Cm 2 uses the MAC address of the interface (if one can be obtained for it) .El -.Pp .It Cm -stableaddr Clear the flag .Cm stableaddr . diff --git a/sys/netinet6/in6_ifattach.c b/sys/netinet6/in6_ifattach.c index b487c80a6667..c9e951e93ec8 100644 --- a/sys/netinet6/in6_ifattach.c +++ b/sys/netinet6/in6_ifattach.c @@ -157,7 +157,7 @@ get_rand_ifid(struct ifnet *ifp, struct in6_addr *in6) } -/** +/* * Get interface link level sockaddr */ static struct sockaddr_dl * @@ -177,10 +177,10 @@ get_interface_link_level(struct ifnet *ifp) if (sdl->sdl_alen == 0) continue; - return sdl; + return (sdl); } - return NULL; + return (NULL); } /* @@ -249,10 +249,10 @@ in6_get_interface_hwaddr(struct ifnet *ifp, size_t *len) return (NULL); } - return addr; + return (addr); } - /* +/* * Get interface identifier for the specified interface. * XXX assumes single sockaddr_dl (AF_LINK address) per an interface * @@ -267,7 +267,7 @@ in6_get_hw_ifid(struct ifnet *ifp, struct in6_addr *in6) hwaddr = in6_get_interface_hwaddr(ifp, &hwaddr_len); if (hwaddr == NULL || (hwaddr_len != 6 && hwaddr_len != 8)) - return -1; + return (-1); /* make EUI64 address */ if (hwaddr_len == 8) @@ -313,7 +313,7 @@ validate_ifid(uint8_t *iid) static uint8_t reserved_eth[5] = { 0x02, 0x00, 0x5E, 0xFF, 0xFE }; static uint8_t reserved_anycast[7] = { 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }; - /* Subnet-Router Anycast (RFC 4291)*/ + /* Subnet-Router Anycast (RFC 4291) */ if (memcmp(iid, allzero, 8) == 0) return (false); @@ -374,7 +374,7 @@ in6_get_stableifid(struct ifnet *ifp, struct in6_addr *in6, int prefixlen) /* Use hostuuid as constant "secret" key */ getcredhostuuid(curthread->td_ucred, hostuuid, sizeof(hostuuid)); if (strncmp(hostuuid, DEFAULT_HOSTUUID, sizeof(hostuuid)) == 0) { - // If hostuuid is not set, use a random value + /* If hostuuid is not set, use a random value */ arc4rand(hostuuid, HOSTUUIDLEN, 0); hostuuid[HOSTUUIDLEN] = '\0'; } @@ -382,11 +382,7 @@ in6_get_stableifid(struct ifnet *ifp, struct in6_addr *in6, int prefixlen) dad_failures = atomic_load_int(&DAD_FAILURES(ifp)); - /* - * RFC 7217 section 7 - * - * default max retries - */ + /* RFC 7217 section 7, default max retries */ if (dad_failures > V_ip6_stableaddr_maxretries) return (false); From nobody Mon Feb 16 17:30:04 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fF8t55KdPz6S5Mb for ; Mon, 16 Feb 2026 17:30:05 +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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fF8t52Cjpz3SfK for ; Mon, 16 Feb 2026 17:30:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771263005; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Oz0iYDeJMDRCuXGqns2hXhdLSW+6bsePrEvYopA15PA=; b=Q+ZBveh4JiaMrCMvTtnyO8PBYQZCYFJYLZlK+2wKpMpSJpvgMLjmgq/UgA48Qr23pQFzIA VGga0ByAn/38fEyPBtpBJUHk5tcrbvfYeYydjvt9wT9+nWoadoOmADFgqwh1srh/92k+dG z0aEqfMrRtfXb00cI3uY3qgHHuiHoHQ+OepUbeMfciDMds/fO9+Sk3jxihBfhWLUouT1+B 3crK4YlGi5U5yZCkKQLA5q+raP1YyY2l47MmBRzXu/gF2s3YdQz02ppIe3xJcvkYVPSAEu wFy6e1vzvJgMowDXFPAdywr6aDRb83IZx07EQSfd6lM3F/GItzruhjytPdF26w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771263005; a=rsa-sha256; cv=none; b=WHg3QsHAon4uL9T4b95em1+J85z8BP32EN1baSViX415Qo42a23qYTE7rGHAlG4moImXB1 s6+IfYxQSCXi4IRngm8uepzHkJ7p8R3VXlVLQ0FHR46u9jpTfYvCuKyHmftGSpyGjekYSj wELzKT1+8D3tzocnQDlmbqljDpI3NvwuOnQ8zYoDOPS9U0uDNRjta5KJPtPxKfWD+CVyXv G8jT3oA9Be1+VxXAzgkmBRRqrQ/NHI6P0FeJbEb4IwP8NZuK/yGi4nmhdFdRx/sHjDH3gN fWyhqIbDjmRqecTzNkiVYwxOD2CBKiJaADzKgqvosa6uOMZv9Kfn9kHASwZ32A== 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=1771263005; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Oz0iYDeJMDRCuXGqns2hXhdLSW+6bsePrEvYopA15PA=; b=SgoPNNZNQ23JeIMw9tHr+KLIP63aITv9p/mGHWXXxMnT2t6R5P4H9S/2gGebhJP3K2yA12 Ou6HV4Lz10kBhBs7fHs60x9XOehikIkJTX+kFCveHAVJ5c+bB2jM1qiI2o0RoHdUWrYyuB zMv6Zc2IgnqiWlaRolfx2292gs1CEPf9Bw3ziOwQthc0fWUVhWkGI0hkp8DPGyzvPdswaL Lsyq/dtlRNagWpGgiUML+VTIOz/ULGpjYRg421z4SI4C5+Sx+bdvCQUj8owl2/5y2aOUhc OhtcNAOGxEKnoO36dWl+8+0KLP9d5uWO9CJ6MimzEWujE2ieMwh37nUdAoW2Tw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fF8t473dmzXrS for ; Mon, 16 Feb 2026 17:30:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 315b7 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 17:30:04 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Guido Falsi Subject: git: 76cd2807fc3a - stable/15 - sys/netinet6: Fix ABI breakage introduced with RFC 7217 support List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: madpilot X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 76cd2807fc3a686abf4f6e87705896a69315e943 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 17:30:04 +0000 Message-Id: <6993541c.315b7.3f686a1f@gitrepo.freebsd.org> The branch stable/15 has been updated by madpilot: URL: https://cgit.FreeBSD.org/src/commit/?id=76cd2807fc3a686abf4f6e87705896a69315e943 commit 76cd2807fc3a686abf4f6e87705896a69315e943 Author: Guido Falsi AuthorDate: 2025-09-22 07:57:39 +0000 Commit: Guido Falsi CommitDate: 2026-02-16 17:27:04 +0000 sys/netinet6: Fix ABI breakage introduced with RFC 7217 support commit 31ec8b6407fdd5a87d70265762457c67ce618283 added a `dad_failures` variable to `struct nd_ifinfo`, which broke the netowrking ABI. This commit fixes it by moving such variable to `struct in6_ifextra` which is not a public interface, while `struct nd_ifinfo` is back in its original state. Thanks to kib, markj and glebious for their help and suggestions in solving this problem. Reported by: "Herbert J. Skuhra" Tested by: "Herbert J. Skuhra" Approved by: glebius Fixes: 31ec8b6407fdd5a87d70265762457c67ce618283 (cherry picked from commit 0ec13430c583830cc4d29640787e2d154b140e31) Reviewed by: glebius, kp, pouria, zlei Approved by: glebius, pouria Relnotes: yes Differential Revision: https://reviews.freebsd.org/D54382 --- sys/netinet6/in6.c | 3 +++ sys/netinet6/in6_ifattach.c | 2 +- sys/netinet6/in6_var.h | 2 ++ sys/netinet6/nd6.c | 4 ---- sys/netinet6/nd6.h | 1 - sys/netinet6/nd6_nbr.c | 6 +++--- sys/netinet6/nd6_rtr.c | 2 +- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/sys/netinet6/in6.c b/sys/netinet6/in6.c index bdee1eefaa3f..abb880e5c2c1 100644 --- a/sys/netinet6/in6.c +++ b/sys/netinet6/in6.c @@ -2629,6 +2629,8 @@ in6_domifattach(struct ifnet *ifp) COUNTER_ARRAY_ALLOC(ext->icmp6_ifstat, sizeof(struct icmp6_ifstat) / sizeof(uint64_t), M_WAITOK); + ext->dad_failures = counter_u64_alloc(M_WAITOK); + ext->nd_ifinfo = nd6_ifattach(ifp); ext->scope6_id = scope6_ifattach(ifp); ext->lltable = in6_lltattach(ifp); @@ -2664,6 +2666,7 @@ in6_domifdetach(struct ifnet *ifp, void *aux) COUNTER_ARRAY_FREE(ext->icmp6_ifstat, sizeof(struct icmp6_ifstat) / sizeof(uint64_t)); free(ext->icmp6_ifstat, M_IFADDR); + counter_u64_free(ext->dad_failures); free(ext, M_IFADDR); } diff --git a/sys/netinet6/in6_ifattach.c b/sys/netinet6/in6_ifattach.c index 3152291cbe6a..538f34a267b4 100644 --- a/sys/netinet6/in6_ifattach.c +++ b/sys/netinet6/in6_ifattach.c @@ -378,7 +378,7 @@ in6_get_stableifid(struct ifnet *ifp, struct in6_addr *in6, int prefixlen) } hostuuid_len = strlen(hostuuid); - dad_failures = counter_u64_fetch(ND_IFINFO(ifp)->dad_failures); + dad_failures = counter_u64_fetch(DAD_FAILURES(ifp)); /* * RFC 7217 section 7 diff --git a/sys/netinet6/in6_var.h b/sys/netinet6/in6_var.h index e5ab83e6a2a1..e511ead24f08 100644 --- a/sys/netinet6/in6_var.h +++ b/sys/netinet6/in6_var.h @@ -106,9 +106,11 @@ struct in6_ifextra { struct scope6_id *scope6_id; struct lltable *lltable; struct mld_ifsoftc *mld_ifinfo; + counter_u64_t dad_failures; /* DAD failures when using RFC 7217 stable addresses */ }; #define LLTABLE6(ifp) (((struct in6_ifextra *)(ifp)->if_afdata[AF_INET6])->lltable) +#define DAD_FAILURES(ifp) (((struct in6_ifextra *)(ifp)->if_afdata[AF_INET6])->dad_failures) #ifdef _KERNEL diff --git a/sys/netinet6/nd6.c b/sys/netinet6/nd6.c index 938d411711f0..00df5efcef92 100644 --- a/sys/netinet6/nd6.c +++ b/sys/netinet6/nd6.c @@ -329,8 +329,6 @@ nd6_ifattach(struct ifnet *ifp) nd->flags |= ND6_IFF_STABLEADDR; } - nd->dad_failures = counter_u64_alloc(M_WAITOK); - return nd; } @@ -350,8 +348,6 @@ nd6_ifdetach(struct ifnet *ifp, struct nd_ifinfo *nd) } NET_EPOCH_EXIT(et); - counter_u64_free(nd->dad_failures); - free(nd, M_IP6NDP); } diff --git a/sys/netinet6/nd6.h b/sys/netinet6/nd6.h index 4322066b0912..e484c709e29a 100644 --- a/sys/netinet6/nd6.h +++ b/sys/netinet6/nd6.h @@ -76,7 +76,6 @@ struct nd_ifinfo { u_int8_t randomseed0[8]; /* upper 64 bits of MD5 digest */ u_int8_t randomseed1[8]; /* lower 64 bits (usually the EUI64 IFID) */ u_int8_t randomid[8]; /* current random ID */ - counter_u64_t dad_failures; /* DAD failures when using RFC 7217 stable addresses */ }; #define ND6_IFF_PERFORMNUD 0x1 diff --git a/sys/netinet6/nd6_nbr.c b/sys/netinet6/nd6_nbr.c index 74f63ed6dfdc..e2db192bca15 100644 --- a/sys/netinet6/nd6_nbr.c +++ b/sys/netinet6/nd6_nbr.c @@ -1460,7 +1460,7 @@ nd6_dad_timer(void *arg) if ((ND_IFINFO(ifp)->flags & ND6_IFF_IFDISABLED) == 0) { ia->ia6_flags &= ~IN6_IFF_TENTATIVE; if ((ND_IFINFO(ifp)->flags & ND6_IFF_STABLEADDR) && !(ia->ia6_flags & IN6_IFF_TEMPORARY)) - counter_u64_zero(ND_IFINFO(ifp)->dad_failures); + counter_u64_zero(DAD_FAILURES(ifp)); } nd6log((LOG_DEBUG, @@ -1509,10 +1509,10 @@ nd6_dad_duplicated(struct ifaddr *ifa, struct dadq *dp) * More addresses will be generated as long as retries are not exhausted. */ if ((ND_IFINFO(ifp)->flags & ND6_IFF_STABLEADDR) && !(ia->ia6_flags & IN6_IFF_TEMPORARY)) { - uint64_t dad_failures = counter_u64_fetch(ND_IFINFO(ifp)->dad_failures); + uint64_t dad_failures = counter_u64_fetch(DAD_FAILURES(ifp)); if (dad_failures <= V_ip6_stableaddr_maxretries) { - counter_u64_add(ND_IFINFO(ifp)->dad_failures, 1); + counter_u64_add(DAD_FAILURES(ifp), 1); /* if retries exhausted, output an informative error message */ if (dad_failures == V_ip6_stableaddr_maxretries) log(LOG_ERR, "%s: manual intervention required, consider disabling \"stableaddr\" on the interface" diff --git a/sys/netinet6/nd6_rtr.c b/sys/netinet6/nd6_rtr.c index 85046c0dd9fe..2ac883729c12 100644 --- a/sys/netinet6/nd6_rtr.c +++ b/sys/netinet6/nd6_rtr.c @@ -1709,7 +1709,7 @@ prelist_update(struct nd_prefixctl *new, struct nd_defrouter *dr, * to fail and no further retries should happen. */ if (ND_IFINFO(ifp)->flags & ND6_IFF_STABLEADDR && - counter_u64_fetch(ND_IFINFO(ifp)->dad_failures) <= V_ip6_stableaddr_maxretries && + counter_u64_fetch(DAD_FAILURES(ifp)) <= V_ip6_stableaddr_maxretries && ifa6->ia6_flags & (IN6_IFF_DUPLICATED | IN6_IFF_TEMPORARY)) continue; From nobody Mon Feb 16 17:30:03 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fF8t52Cgtz6S5MW for ; Mon, 16 Feb 2026 17:30: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fF8t40Q8Gz3SZ6 for ; Mon, 16 Feb 2026 17:30:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771263004; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=49uXOJ9/5sgFSQrLtIkQ4YY1KReJ3xUwbLAe0FlSp4g=; b=kXve8yBMymcfTbseu99wqmpZHIdAm7Wrn9LJIPJejFQdpcIHuQWCWMS/nDhzJBgmhexPpc cTvbfuoHnzrrr3+WaZRV34Ji2QjBkgPa3bwGiu19rMUMzBlj1ICj9P910eLfRRxOS5CInC T+E0+ga/47Z1OZ7NPTNuhE1D0vF3z5K4K63XxIJSDttqAS/N5fKWJJmYULtS3pcOKfcpic 7OB6xhGrq1erC+xxL6OxukFjBpjb/SHygqnZa6AxUCh9niRF8kcQJqUxSV8diMqCgSv4sO 6O2NhXivhEb/C+ypMwwCskF+uQnZ43UBKTu5OdgKQ9+VPiqQHjc0dhp1j4ELAg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771263004; a=rsa-sha256; cv=none; b=O4IjbLL5tF7wTjK/SxcQKFz5o8lI6sWNqDosM57N2fpE5mGVFR1GLPSn5egHE0ukwip7/M 1EDECATgRvKRye8m5poI1nedIpzlhQZqsW1X+gm0pxprGkhF4pau7zJ6+uJ6DUvMOuazWY rrj2rNsGE7EswcHaYEiBEWTiAHKrKqcxswgHJiGsnCGtW6fB7UbOc2wKq0YCESlU76e1L1 XY2JhiNmDq1k7wMf2hDrMDtohkiaaL3Ac+1pa1TAS517o57nRxm1EmUthA6S7MdqG3H5mk wgMYqkfbjcilxeg14kKXj3DBQuIvbyl/xk3Lras47l/4jGDQ9IzJPh76uuTiEQ== 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=1771263004; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=49uXOJ9/5sgFSQrLtIkQ4YY1KReJ3xUwbLAe0FlSp4g=; b=o+E34jt+2qsR/M9NKyahw4Dqn/8rJ3qiq/ArLdotjETRqg4lm4eg/0fTKGwK481xVyyM/3 HLC+NtNOSjYMEpaD4X+h4i+NQpIg2ujNQeH3JRvopGTRr7ZA8XmrvmPeqVz5veROdA8s3P a6NSbOF5rTagfajsrBNui4od3qesp9gL40m+ycxFFqpQ/hyXMfPDe6G9WKKKpsXURHM6Rp Yd9j2UWNbTigVkBtVapuUxQ0dPXAfnKzN0GpaADMThTWdWzzte+wTx3RXFg2bOi4E2e0CY CDfOJhUOM2AsXkr0EtobVNwrODBnK5aknIWi7MtxwGQrkbajXpy+sx0E5mFRMA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fF8t36d39zZ0L for ; Mon, 16 Feb 2026 17:30:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 30f6c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 17:30:03 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Guido Falsi Subject: git: 865e0b20ca3c - stable/15 - sys/netinet6: Implement RFC 7217 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: madpilot X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 865e0b20ca3cefce25d68bd355090d414c2dfb84 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 17:30:03 +0000 Message-Id: <6993541b.30f6c.387140ec@gitrepo.freebsd.org> The branch stable/15 has been updated by madpilot: URL: https://cgit.FreeBSD.org/src/commit/?id=865e0b20ca3cefce25d68bd355090d414c2dfb84 commit 865e0b20ca3cefce25d68bd355090d414c2dfb84 Author: Guido Falsi AuthorDate: 2025-09-20 12:26:41 +0000 Commit: Guido Falsi CommitDate: 2026-02-16 17:24:16 +0000 sys/netinet6: Implement RFC 7217 Implement RFC 7217 (A Method for Generating Semantically Opaque Interface Identifiers with IPv6 Stateless Address Autoconfiguration (SLAAC)) in our IPv6 stack. A new ifconfig `stableaddr` flag is added to enable the feature on interfaces, which defaults to on or off for new interfaces based on the sysctl `net.inet6.ip6.use_stableaddr` (off by default, so this commit causes no change in behavior with default settings). The algorithm follows the RFC in its logic, using SHA256-HMAC as the algorithm to derive addresses so as to provide code that can be leveraged by future implentations of RFC 8981, leveraging the `hostuuid` as the secret. The source of the hostidentifier can be configured using the sysctl `net.inet6.ip6.stableaddr_netifsource`, while the number of retries generating a new address in case of collision can be configured using the `net.inet6.ip6.stableaddr_maxretries` sysctl (default 3). Documentation about all these flags is added to the ifconfig(8) man page. Reviewed by: cognet, glebius, hrs Tested by: zarychtam@plan-b.pwste.edu.pl Approved by: cognet, glebius Relnotes: yes Differential Revision: https://reviews.freebsd.org/D49681 (cherry picked from commit 31ec8b6407fdd5a87d70265762457c67ce618283) Reviewed by: glebius, kp, pouria, zlei Approved by: glebius, pouria Relnotes: yes Differential Revision: https://reviews.freebsd.org/D54382 --- sbin/ifconfig/af_inet6.c | 2 + sbin/ifconfig/af_nd6.c | 1 + sbin/ifconfig/ifconfig.8 | 30 +++++ sys/netinet6/in6.h | 3 + sys/netinet6/in6_ifattach.c | 275 +++++++++++++++++++++++++++++++++++++------- sys/netinet6/in6_ifattach.h | 2 + sys/netinet6/in6_proto.c | 10 ++ sys/netinet6/ip6_input.c | 1 + sys/netinet6/ip6_var.h | 12 ++ sys/netinet6/nd6.c | 9 ++ sys/netinet6/nd6.h | 2 + sys/netinet6/nd6_nbr.c | 35 +++++- sys/netinet6/nd6_rtr.c | 94 ++++++++++----- usr.sbin/ndp/ndp.c | 7 ++ 14 files changed, 406 insertions(+), 77 deletions(-) diff --git a/sbin/ifconfig/af_inet6.c b/sbin/ifconfig/af_inet6.c index a5c406db8a0c..365f01be9590 100644 --- a/sbin/ifconfig/af_inet6.c +++ b/sbin/ifconfig/af_inet6.c @@ -728,6 +728,8 @@ static struct cmd inet6_cmds[] = { DEF_CMD_ARG("pltime", setip6pltime), DEF_CMD_ARG("vltime", setip6vltime), DEF_CMD("eui64", 0, setip6eui64), + DEF_CMD("stableaddr", ND6_IFF_STABLEADDR, setnd6flags), + DEF_CMD("-stableaddr", -ND6_IFF_STABLEADDR, setnd6flags), #ifdef EXPERIMENTAL DEF_CMD("ipv6_only", ND6_IFF_IPV6_ONLY_MANUAL,setnd6flags), DEF_CMD("-ipv6_only", -ND6_IFF_IPV6_ONLY_MANUAL,setnd6flags), diff --git a/sbin/ifconfig/af_nd6.c b/sbin/ifconfig/af_nd6.c index 2899ad6a0778..fb7e72028e2e 100644 --- a/sbin/ifconfig/af_nd6.c +++ b/sbin/ifconfig/af_nd6.c @@ -66,6 +66,7 @@ static const char *ND6BITS[] = { [9] = "IPV6_ONLY", [10] = "IPV6_ONLY_MANUAL", #endif + [11] = "STABLEADDR", [15] = "DEFAULTIF", }; diff --git a/sbin/ifconfig/ifconfig.8 b/sbin/ifconfig/ifconfig.8 index 481181d3d5d2..627b7cd3f9e3 100644 --- a/sbin/ifconfig/ifconfig.8 +++ b/sbin/ifconfig/ifconfig.8 @@ -1007,6 +1007,36 @@ Set a flag to disable Duplicate Address Detection. .It Cm -no_dad Clear a flag .Cm no_dad . +.It Cm stableaddr +Set a flag to create SLAAC addresses using a stable algorithm according to RFC 7217 +The +.Xr sysctl 8 +variable +.Va net.inet6.ip6.use_stableaddr +controls whether this flag is set by default or not for newly created interfaces. +To get consistent defaults for interfaces created at boot it should be set as a tunable via loader.conf(8). +The +.Xr sysctl 8 +variable +.Va net.inet6.ip6.stableaddr_maxretries +sets the maximum number of retries to generate a unique IPv6 address to be performed in case of DAD failures. +This defaults to 3 which is also the reccommended minimum value. +The interface ID source can be configured using the +.Xr sysctl 8 +variable +.Va net.inet6.ip6.stableaddr_netifsource: +.Bl -tag -compact +.It Cm 0 +uses the interface name string (the default) +.It Cm 1 +uses the interface ID +.It Cm 2 +uses the MAC address of the interface (if one can be obtained for it) +.El +.Pp +.It Cm -stableaddr +Clear the flag +.Cm stableaddr . .El .Ss IPv6 Parameters The following parameters are specific for IPv6 addresses. diff --git a/sys/netinet6/in6.h b/sys/netinet6/in6.h index fd2e18b4695b..f250d7e49982 100644 --- a/sys/netinet6/in6.h +++ b/sys/netinet6/in6.h @@ -609,6 +609,8 @@ struct ip6_mtuinfo { /* IPV6CTL_RTMINEXPIRE 26 deprecated */ /* IPV6CTL_RTMAXCACHE 27 deprecated */ +#define IPV6CTL_STABLEADDR_NETIFSRC 30 /* semantically opaque addresses (RFC7217) hash algo netif parameter src */ +#define IPV6CTL_STABLEADDR_MAXRETRIES 31 /* semantically opaque addresses (RFC7217) max DAD retries */ #define IPV6CTL_USETEMPADDR 32 /* use temporary addresses (RFC3041) */ #define IPV6CTL_TEMPPLTIME 33 /* preferred lifetime for tmpaddrs */ #define IPV6CTL_TEMPVLTIME 34 /* valid lifetime for tmpaddrs */ @@ -617,6 +619,7 @@ struct ip6_mtuinfo { #define IPV6CTL_PREFER_TEMPADDR 37 /* prefer temporary addr as src */ #define IPV6CTL_ADDRCTLPOLICY 38 /* get/set address selection policy */ #define IPV6CTL_USE_DEFAULTZONE 39 /* use default scope zone */ +#define IPV6CTL_USESTABLEADDR 40 /* use semantically opaque addresses (RFC7217) */ #define IPV6CTL_MAXFRAGS 41 /* max fragments */ #if 0 diff --git a/sys/netinet6/in6_ifattach.c b/sys/netinet6/in6_ifattach.c index f284f7fa5ffc..3152291cbe6a 100644 --- a/sys/netinet6/in6_ifattach.c +++ b/sys/netinet6/in6_ifattach.c @@ -33,6 +33,7 @@ #include #include +#include #include #include #include @@ -43,6 +44,7 @@ #include #include #include +#include #include #include @@ -79,6 +81,8 @@ VNET_DEFINE(int, ip6_auto_linklocal) = 1; /* enabled by default */ VNET_DEFINE(struct callout, in6_tmpaddrtimer_ch); #define V_in6_tmpaddrtimer_ch VNET(in6_tmpaddrtimer_ch) +VNET_DEFINE(int, ip6_stableaddr_netifsource) = IP6_STABLEADDR_NETIFSRC_NAME; /* Use interface name by default */ + VNET_DECLARE(struct inpcbinfo, ripcbinfo); #define V_ripcbinfo VNET(ripcbinfo) @@ -99,6 +103,9 @@ static void in6_purgemaddrs(struct ifnet *); #define IFID_LOCAL(in6) (!EUI64_LOCAL(in6)) #define IFID_UNIVERSAL(in6) (!EUI64_UNIVERSAL(in6)) +#define HMAC_IPAD 0x36 +#define HMAC_OPAD 0x5C + /* * Generate a last-resort interface identifier, when the machine has no * IEEE802/EUI64 address sources. @@ -148,22 +155,14 @@ get_rand_ifid(struct ifnet *ifp, struct in6_addr *in6) } -/* - * Get interface identifier for the specified interface. - * XXX assumes single sockaddr_dl (AF_LINK address) per an interface - * - * in6 - upper 64bits are preserved +/** + * Get interface link level sockaddr */ -int -in6_get_hw_ifid(struct ifnet *ifp, struct in6_addr *in6) +static struct sockaddr_dl * +get_interface_link_level(struct ifnet *ifp) { struct ifaddr *ifa; struct sockaddr_dl *sdl; - u_int8_t *addr; - size_t addrlen; - static u_int8_t allzero[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; - static u_int8_t allone[8] = - { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; NET_EPOCH_ASSERT(); @@ -176,14 +175,30 @@ in6_get_hw_ifid(struct ifnet *ifp, struct in6_addr *in6) if (sdl->sdl_alen == 0) continue; - goto found; + return sdl; } - return -1; + return NULL; +} + +/* + * Get hwaddr from link interface + */ +static uint8_t * +in6_get_interface_hwaddr(struct ifnet *ifp, size_t *len) +{ + struct sockaddr_dl *sdl; + u_int8_t *addr; + static u_int8_t allzero[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; + static u_int8_t allone[8] = + { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; + + sdl = get_interface_link_level(ifp); + if (sdl == NULL) + return (NULL); -found: addr = LLADDR(sdl); - addrlen = sdl->sdl_alen; + *len = sdl->sdl_alen; /* get EUI64 */ switch (ifp->if_type) { @@ -194,36 +209,21 @@ found: case IFT_IEEE1394: /* IEEE802/EUI64 cases - what others? */ /* IEEE1394 uses 16byte length address starting with EUI64 */ - if (addrlen > 8) - addrlen = 8; + if (*len > 8) + *len = 8; /* look at IEEE802/EUI64 only */ - if (addrlen != 8 && addrlen != 6) - return -1; + if (*len != 8 && *len != 6) + return (NULL); /* * check for invalid MAC address - on bsdi, we see it a lot * since wildboar configures all-zero MAC on pccard before * card insertion. */ - if (bcmp(addr, allzero, addrlen) == 0) - return -1; - if (bcmp(addr, allone, addrlen) == 0) - return -1; - - /* make EUI64 address */ - if (addrlen == 8) - bcopy(addr, &in6->s6_addr[8], 8); - else if (addrlen == 6) { - in6->s6_addr[8] = addr[0]; - in6->s6_addr[9] = addr[1]; - in6->s6_addr[10] = addr[2]; - in6->s6_addr[11] = 0xff; - in6->s6_addr[12] = 0xfe; - in6->s6_addr[13] = addr[3]; - in6->s6_addr[14] = addr[4]; - in6->s6_addr[15] = addr[5]; - } + if (memcmp(addr, allzero, *len) == 0 || memcmp(addr, allone, *len) == 0) + return (NULL); + break; case IFT_GIF: @@ -234,16 +234,51 @@ found: * identifier source (can be renumbered). * we don't do this. */ - return -1; + return (NULL); case IFT_INFINIBAND: - if (addrlen != 20) - return -1; - bcopy(addr + 12, &in6->s6_addr[8], 8); + if (*len != 20) + return (NULL); + *len = 8; + addr += 12; break; default: + return (NULL); + } + + return addr; +} + + /* + * Get interface identifier for the specified interface. + * XXX assumes single sockaddr_dl (AF_LINK address) per an interface + * + * in6 - upper 64bits are preserved + */ +int +in6_get_hw_ifid(struct ifnet *ifp, struct in6_addr *in6) +{ + size_t hwaddr_len; + uint8_t *hwaddr; + static u_int8_t allzero[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; + + hwaddr = in6_get_interface_hwaddr(ifp, &hwaddr_len); + if (hwaddr == NULL || (hwaddr_len != 6 && hwaddr_len != 8)) return -1; + + /* make EUI64 address */ + if (hwaddr_len == 8) + memcpy(&in6->s6_addr[8], hwaddr, 8); + else if (hwaddr_len == 6) { + in6->s6_addr[8] = hwaddr[0]; + in6->s6_addr[9] = hwaddr[1]; + in6->s6_addr[10] = hwaddr[2]; + in6->s6_addr[11] = 0xff; + in6->s6_addr[12] = 0xfe; + in6->s6_addr[13] = hwaddr[3]; + in6->s6_addr[14] = hwaddr[4]; + in6->s6_addr[15] = hwaddr[5]; } /* sanity check: g bit must not indicate "group" */ @@ -264,6 +299,153 @@ found: return 0; } +/* + * Validate generated interface id to make sure it does not fall in any reserved range: + * + * https://www.iana.org/assignments/ipv6-interface-ids/ipv6-interface-ids.xhtml + */ +static bool +validate_ifid(uint8_t *iid) +{ + static uint8_t allzero[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; + static uint8_t reserved_eth[5] = { 0x02, 0x00, 0x5E, 0xFF, 0xFE }; + static uint8_t reserved_anycast[7] = { 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }; + + /* Subnet-Router Anycast (RFC 4291)*/ + if (memcmp(iid, allzero, 8) == 0) + return (false); + + /* + * Reserved IPv6 Interface Identifiers corresponding to the IANA Ethernet Block (RFC 4291) + * and + * Proxy Mobile IPv6 (RFC 6543) + */ + if (memcmp(iid, reserved_eth, 5) == 0) + return (false); + + /* Reserved Subnet Anycast Addresses (RFC 2526) */ + if (memcmp(iid, reserved_anycast, 7) == 0 && iid[7] >= 0x80) + return (false); + + return (true); +} + +/* + * Get interface identifier for the specified interface, according to + * RFC 7217 Stable and Opaque IDs with SLAAC, using HMAC-SHA256 digest. + * + * in6 - upper 64bits are preserved + */ +bool +in6_get_stableifid(struct ifnet *ifp, struct in6_addr *in6, int prefixlen) +{ + struct sockaddr_dl *sdl; + const uint8_t *netiface; + size_t netiface_len, hostuuid_len; + uint8_t hostuuid[HOSTUUIDLEN + 1], hmac_key[SHA256_BLOCK_LENGTH], + hk_ipad[SHA256_BLOCK_LENGTH], hk_opad[SHA256_BLOCK_LENGTH]; + uint64_t dad_failures; + SHA256_CTX ctxt; + + switch (V_ip6_stableaddr_netifsource) { + case IP6_STABLEADDR_NETIFSRC_ID: + sdl = get_interface_link_level(ifp); + if (sdl == NULL) + return (false); + netiface = (uint8_t *)&LLINDEX(sdl); + netiface_len = sizeof(u_short); /* real return type of LLINDEX */ + break; + + case IP6_STABLEADDR_NETIFSRC_MAC: + netiface = in6_get_interface_hwaddr(ifp, &netiface_len); + if (netiface == NULL) + return (false); + break; + + case IP6_STABLEADDR_NETIFSRC_NAME: + default: + netiface = (const uint8_t *)if_name(ifp); + netiface_len = strlen(netiface); + break; + } + + /* Use hostuuid as constant "secret" key */ + getcredhostuuid(curthread->td_ucred, hostuuid, sizeof(hostuuid)); + if (strncmp(hostuuid, DEFAULT_HOSTUUID, sizeof(hostuuid)) == 0) { + // If hostuuid is not set, use a random value + arc4rand(hostuuid, HOSTUUIDLEN, 0); + hostuuid[HOSTUUIDLEN] = '\0'; + } + hostuuid_len = strlen(hostuuid); + + dad_failures = counter_u64_fetch(ND_IFINFO(ifp)->dad_failures); + + /* + * RFC 7217 section 7 + * + * default max retries + */ + if (dad_failures > V_ip6_stableaddr_maxretries) + return (false); + + /* + * Use hostuuid as basis for HMAC key + */ + memset(hmac_key, 0, sizeof(hmac_key)); + if (hostuuid_len <= SHA256_BLOCK_LENGTH) { + /* copy to hmac key variable, zero padded */ + memcpy(hmac_key, hostuuid, hostuuid_len); + } else { + /* if longer than block length, use hash of the value, zero padded */ + SHA256_Init(&ctxt); + SHA256_Update(&ctxt, hostuuid, hostuuid_len); + SHA256_Final(hmac_key, &ctxt); + } + /* XOR key with ipad and opad values */ + for (uint16_t i = 0; i < sizeof(hmac_key); i++) { + hk_ipad[i] = hmac_key[i] ^ HMAC_IPAD; + hk_opad[i] = hmac_key[i] ^ HMAC_OPAD; + } + + /* + * Generate interface id in a loop, adding an offset to be factored in the hash function. + * This is necessary, because if the generated interface id happens to be invalid we + * want to force the hash function to generate a different one, otherwise we would end up + * in an infinite loop trying the same invalid interface id over and over again. + * + * Using an uint8 counter for the offset, so limit iteration at UINT8_MAX. This is a safety + * measure, this will never iterate more than once or twice in practice. + */ + for(uint8_t offset = 0; offset < UINT8_MAX; offset++) { + uint8_t digest[SHA256_DIGEST_LENGTH]; + + /* Calculate inner hash */ + SHA256_Init(&ctxt); + SHA256_Update(&ctxt, hk_ipad, sizeof(hk_ipad)); + SHA256_Update(&ctxt, in6->s6_addr, prefixlen / 8); + SHA256_Update(&ctxt, netiface, netiface_len); + SHA256_Update(&ctxt, (uint8_t *)&dad_failures, 8); + SHA256_Update(&ctxt, hostuuid, hostuuid_len); + SHA256_Update(&ctxt, &offset, 1); + SHA256_Final(digest, &ctxt); + + /* Calculate outer hash */ + SHA256_Init(&ctxt); + SHA256_Update(&ctxt, hk_opad, sizeof(hk_opad)); + SHA256_Update(&ctxt, digest, sizeof(digest)); + SHA256_Final(digest, &ctxt); + + if (validate_ifid(digest)) { + /* assumes sizeof(digest) > sizeof(ifid) */ + memcpy(&in6->s6_addr[8], digest, 8); + + return (true); + } + } + + return (false); +} + /* * Get interface identifier for the specified interface. If it is not * available on ifp0, borrow interface identifier from other information @@ -279,7 +461,14 @@ get_ifid(struct ifnet *ifp0, struct ifnet *altifp, NET_EPOCH_ASSERT(); - /* first, try to get it from the interface itself */ + /* first, try to get it from the interface itself, with stable algorithm, if configured */ + if ((ND_IFINFO(ifp0)->flags & ND6_IFF_STABLEADDR) && in6_get_stableifid(ifp0, in6, 64) == 0) { + nd6log((LOG_DEBUG, "%s: got interface identifier from itself (stable private)\n", + if_name(ifp0))); + goto success; + } + + /* then/otherwise try to get it from the interface itself */ if (in6_get_hw_ifid(ifp0, in6) == 0) { nd6log((LOG_DEBUG, "%s: got interface identifier from itself\n", if_name(ifp0))); diff --git a/sys/netinet6/in6_ifattach.h b/sys/netinet6/in6_ifattach.h index 897926e90078..851610a92bcf 100644 --- a/sys/netinet6/in6_ifattach.h +++ b/sys/netinet6/in6_ifattach.h @@ -39,6 +39,8 @@ void in6_ifattach(struct ifnet *, struct ifnet *); void in6_ifattach_destroy(void); void in6_ifdetach(struct ifnet *); void in6_ifdetach_destroy(struct ifnet *); +int in6_get_tmpifid(struct ifnet *, u_int8_t *, const u_int8_t *, int); +bool in6_get_stableifid(struct ifnet *, struct in6_addr *, int); void in6_tmpaddrtimer(void *); int in6_get_hw_ifid(struct ifnet *, struct in6_addr *); int in6_nigroup(struct ifnet *, const char *, int, struct in6_addr *); diff --git a/sys/netinet6/in6_proto.c b/sys/netinet6/in6_proto.c index b289d4eeb0a2..6669a2ba56ce 100644 --- a/sys/netinet6/in6_proto.c +++ b/sys/netinet6/in6_proto.c @@ -167,6 +167,7 @@ VNET_DEFINE(int, ip6_rr_prune) = 5; /* router renumbering prefix * walk list every 5 sec. */ VNET_DEFINE(int, ip6_mcast_pmtu) = 0; /* enable pMTU discovery for multicast? */ VNET_DEFINE(int, ip6_v6only) = 1; +VNET_DEFINE(int, ip6_stableaddr_maxretries) = IP6_IDGEN_RETRIES; #ifdef IPSTEALTH VNET_DEFINE(int, ip6stealth) = 0; @@ -313,6 +314,15 @@ SYSCTL_INT(_net_inet6_ip6, IPV6CTL_RR_PRUNE, rr_prune, SYSCTL_INT(_net_inet6_ip6, IPV6CTL_USETEMPADDR, use_tempaddr, CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(ip6_use_tempaddr), 0, "Create RFC3041 temporary addresses for autoconfigured addresses"); +SYSCTL_BOOL(_net_inet6_ip6, IPV6CTL_USESTABLEADDR, use_stableaddr, + CTLFLAG_VNET | CTLFLAG_RWTUN, &VNET_NAME(ip6_use_stableaddr), 0, + "Create RFC7217 semantically opaque address for autoconfigured addresses (default for new interfaces)"); +SYSCTL_INT(_net_inet6_ip6, IPV6CTL_STABLEADDR_MAXRETRIES, stableaddr_maxretries, + CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(ip6_stableaddr_maxretries), IP6_IDGEN_RETRIES, + "RFC7217 semantically opaque address DAD max retries"); +SYSCTL_INT(_net_inet6_ip6, IPV6CTL_STABLEADDR_NETIFSRC, stableaddr_netifsource, + CTLFLAG_VNET | CTLFLAG_RW, &VNET_NAME(ip6_stableaddr_netifsource), IP6_STABLEADDR_NETIFSRC_NAME, + "RFC7217 semantically opaque address Net_Iface source (0 - name, 1 - ID, 2 - MAC addr)"); SYSCTL_PROC(_net_inet6_ip6, IPV6CTL_TEMPPLTIME, temppltime, CTLFLAG_VNET | CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, NULL, 0, sysctl_ip6_temppltime, "I", diff --git a/sys/netinet6/ip6_input.c b/sys/netinet6/ip6_input.c index b22491a6007f..99dad1e7c309 100644 --- a/sys/netinet6/ip6_input.c +++ b/sys/netinet6/ip6_input.c @@ -235,6 +235,7 @@ ip6_vnet_init(void *arg __unused) &V_ip6_auto_linklocal); TUNABLE_INT_FETCH("net.inet6.ip6.accept_rtadv", &V_ip6_accept_rtadv); TUNABLE_INT_FETCH("net.inet6.ip6.no_radr", &V_ip6_no_radr); + TUNABLE_BOOL_FETCH("net.inet6.ip6.use_stableaddr", &V_ip6_use_stableaddr); CK_STAILQ_INIT(&V_in6_ifaddrhead); V_in6_ifaddrhashtbl = hashinit(IN6ADDR_NHASH, M_IFADDR, diff --git a/sys/netinet6/ip6_var.h b/sys/netinet6/ip6_var.h index cc6f9efbe4b4..c28bfa5a9d08 100644 --- a/sys/netinet6/ip6_var.h +++ b/sys/netinet6/ip6_var.h @@ -338,8 +338,20 @@ VNET_DECLARE(int, ip6_use_tempaddr); /* Whether to use temporary addresses */ VNET_DECLARE(int, ip6_prefer_tempaddr); /* Whether to prefer temporary * addresses in the source address * selection */ +VNET_DECLARE(bool, ip6_use_stableaddr); /* Whether to use stable address generation (RFC 7217) */ #define V_ip6_use_tempaddr VNET(ip6_use_tempaddr) #define V_ip6_prefer_tempaddr VNET(ip6_prefer_tempaddr) +#define V_ip6_use_stableaddr VNET(ip6_use_stableaddr) + +#define IP6_IDGEN_RETRIES 3 /* RFC 7217 section 7 default max retries */ +VNET_DECLARE(int, ip6_stableaddr_maxretries); +#define V_ip6_stableaddr_maxretries VNET(ip6_stableaddr_maxretries) + +#define IP6_STABLEADDR_NETIFSRC_NAME 0 +#define IP6_STABLEADDR_NETIFSRC_ID 1 +#define IP6_STABLEADDR_NETIFSRC_MAC 2 +VNET_DECLARE(int, ip6_stableaddr_netifsource); +#define V_ip6_stableaddr_netifsource VNET(ip6_stableaddr_netifsource) VNET_DECLARE(int, ip6_use_defzone); /* Whether to use the default scope * zone when unspecified */ diff --git a/sys/netinet6/nd6.c b/sys/netinet6/nd6.c index 8480e7fc90e3..938d411711f0 100644 --- a/sys/netinet6/nd6.c +++ b/sys/netinet6/nd6.c @@ -324,6 +324,13 @@ nd6_ifattach(struct ifnet *ifp) /* XXX: we cannot call nd6_setmtu since ifp is not fully initialized */ nd6_setmtu0(ifp, nd); + /* Configure default value for stable addresses algorithm, skip loopback interface */ + if (V_ip6_use_stableaddr && !(ifp->if_flags & IFF_LOOPBACK)) { + nd->flags |= ND6_IFF_STABLEADDR; + } + + nd->dad_failures = counter_u64_alloc(M_WAITOK); + return nd; } @@ -343,6 +350,8 @@ nd6_ifdetach(struct ifnet *ifp, struct nd_ifinfo *nd) } NET_EPOCH_EXIT(et); + counter_u64_free(nd->dad_failures); + free(nd, M_IP6NDP); } diff --git a/sys/netinet6/nd6.h b/sys/netinet6/nd6.h index ae1de36f73e0..4322066b0912 100644 --- a/sys/netinet6/nd6.h +++ b/sys/netinet6/nd6.h @@ -76,6 +76,7 @@ struct nd_ifinfo { u_int8_t randomseed0[8]; /* upper 64 bits of MD5 digest */ u_int8_t randomseed1[8]; /* lower 64 bits (usually the EUI64 IFID) */ u_int8_t randomid[8]; /* current random ID */ + counter_u64_t dad_failures; /* DAD failures when using RFC 7217 stable addresses */ }; #define ND6_IFF_PERFORMNUD 0x1 @@ -89,6 +90,7 @@ struct nd_ifinfo { #define ND6_IFF_NO_RADR 0x40 #define ND6_IFF_NO_PREFER_IFACE 0x80 /* XXX: not related to ND. */ #define ND6_IFF_NO_DAD 0x100 +#define ND6_IFF_STABLEADDR 0x800 #ifdef EXPERIMENTAL /* XXX: not related to ND. */ #define ND6_IFF_IPV6_ONLY 0x200 /* draft-ietf-6man-ipv6only-flag */ diff --git a/sys/netinet6/nd6_nbr.c b/sys/netinet6/nd6_nbr.c index 45ab5841b291..74f63ed6dfdc 100644 --- a/sys/netinet6/nd6_nbr.c +++ b/sys/netinet6/nd6_nbr.c @@ -38,6 +38,7 @@ #include #include +#include #include #include #include @@ -1453,9 +1454,14 @@ nd6_dad_timer(void *arg) * No duplicate address found. Check IFDISABLED flag * again in case that it is changed between the * beginning of this function and here. + * + * Reset DAD failures counter if using stable addresses. */ - if ((ND_IFINFO(ifp)->flags & ND6_IFF_IFDISABLED) == 0) + if ((ND_IFINFO(ifp)->flags & ND6_IFF_IFDISABLED) == 0) { ia->ia6_flags &= ~IN6_IFF_TENTATIVE; + if ((ND_IFINFO(ifp)->flags & ND6_IFF_STABLEADDR) && !(ia->ia6_flags & IN6_IFF_TEMPORARY)) + counter_u64_zero(ND_IFINFO(ifp)->dad_failures); + } nd6log((LOG_DEBUG, "%s: DAD complete for %s - no duplicates found\n", @@ -1484,20 +1490,39 @@ nd6_dad_duplicated(struct ifaddr *ifa, struct dadq *dp) struct ifnet *ifp; char ip6buf[INET6_ADDRSTRLEN]; + ifp = ifa->ifa_ifp; + log(LOG_ERR, "%s: DAD detected duplicate IPv6 address %s: " "NS in/out/loopback=%d/%d/%d, NA in=%d\n", - if_name(ifa->ifa_ifp), ip6_sprintf(ip6buf, &ia->ia_addr.sin6_addr), + if_name(ifp), ip6_sprintf(ip6buf, &ia->ia_addr.sin6_addr), dp->dad_ns_icount, dp->dad_ns_ocount, dp->dad_ns_lcount, dp->dad_na_icount); ia->ia6_flags &= ~IN6_IFF_TENTATIVE; ia->ia6_flags |= IN6_IFF_DUPLICATED; - ifp = ifa->ifa_ifp; log(LOG_ERR, "%s: DAD complete for %s - duplicate found\n", if_name(ifp), ip6_sprintf(ip6buf, &ia->ia_addr.sin6_addr)); - log(LOG_ERR, "%s: manual intervention required\n", - if_name(ifp)); + + /* + * For RFC 7217 stable addresses, increment failure counter here if we still have retries. + * More addresses will be generated as long as retries are not exhausted. + */ + if ((ND_IFINFO(ifp)->flags & ND6_IFF_STABLEADDR) && !(ia->ia6_flags & IN6_IFF_TEMPORARY)) { + uint64_t dad_failures = counter_u64_fetch(ND_IFINFO(ifp)->dad_failures); + + if (dad_failures <= V_ip6_stableaddr_maxretries) { + counter_u64_add(ND_IFINFO(ifp)->dad_failures, 1); + /* if retries exhausted, output an informative error message */ + if (dad_failures == V_ip6_stableaddr_maxretries) + log(LOG_ERR, "%s: manual intervention required, consider disabling \"stableaddr\" on the interface" + " or checking hostuuid for uniqueness\n", + if_name(ifp)); + } + } else { + log(LOG_ERR, "%s: manual intervention required\n", + if_name(ifp)); + } /* * If the address is a link-local address formed from an interface diff --git a/sys/netinet6/nd6_rtr.c b/sys/netinet6/nd6_rtr.c index 0f3e855f5b4d..85046c0dd9fe 100644 --- a/sys/netinet6/nd6_rtr.c +++ b/sys/netinet6/nd6_rtr.c @@ -92,6 +92,7 @@ VNET_DEFINE(int, nd6_defifindex); #define V_nd6_defifp VNET(nd6_defifp) VNET_DEFINE(int, ip6_use_tempaddr) = 0; +VNET_DEFINE(bool, ip6_use_stableaddr) = 0; VNET_DEFINE(int, ip6_desync_factor); VNET_DEFINE(uint32_t, ip6_temp_max_desync_factor) = TEMP_MAX_DESYNC_FACTOR_BASE; @@ -1163,7 +1164,7 @@ in6_ifadd(struct nd_prefixctl *pr, int mcast) struct in6_aliasreq ifra; struct in6_ifaddr *ia, *ib; int error, plen0; - struct in6_addr mask; + struct in6_addr mask, newaddr; int prefixlen = pr->ndpr_plen; int updateflags; char ip6buf[INET6_ADDRSTRLEN]; @@ -1189,37 +1190,46 @@ in6_ifadd(struct nd_prefixctl *pr, int mcast) * (4) it is easier to manage when an interface has addresses * with the same interface identifier, than to have multiple addresses * with different interface identifiers. + * + * If using stable privacy generation, generate a new address with + * the algorithm specified in RFC 7217 section 5 */ - ifa = (struct ifaddr *)in6ifa_ifpforlinklocal(ifp, 0); /* 0 is OK? */ - if (ifa) - ib = (struct in6_ifaddr *)ifa; - else - return NULL; - - /* prefixlen + ifidlen must be equal to 128 */ - plen0 = in6_mask2len(&ib->ia_prefixmask.sin6_addr, NULL); - if (prefixlen != plen0) { - ifa_free(ifa); - nd6log((LOG_INFO, - "%s: wrong prefixlen for %s (prefix=%d ifid=%d)\n", - __func__, if_name(ifp), prefixlen, 128 - plen0)); - return NULL; - } /* make ifaddr */ in6_prepare_ifra(&ifra, &pr->ndpr_prefix.sin6_addr, &mask); + if (ND_IFINFO(ifp)->flags & ND6_IFF_STABLEADDR) { + memcpy(&newaddr, &pr->ndpr_prefix.sin6_addr, sizeof(pr->ndpr_prefix.sin6_addr)); + + if(!in6_get_stableifid(ifp, &newaddr, prefixlen)) + return NULL; + } else { + ifa = (struct ifaddr *)in6ifa_ifpforlinklocal(ifp, 0); /* 0 is OK? */ + if (ifa) + ib = (struct in6_ifaddr *)ifa; + else + return NULL; + + /* prefixlen + ifidlen must be equal to 128 */ + plen0 = in6_mask2len(&ib->ia_prefixmask.sin6_addr, NULL); + if (prefixlen != plen0) { + ifa_free(ifa); + nd6log((LOG_DEBUG, + "%s: wrong prefixlen for %s (prefix=%d ifid=%d)\n", + __func__, if_name(ifp), prefixlen, 128 - plen0)); + return NULL; + } + + memcpy(&newaddr, &ib->ia_addr.sin6_addr, sizeof(ib->ia_addr.sin6_addr)); + ifa_free(ifa); + } + IN6_MASK_ADDR(&ifra.ifra_addr.sin6_addr, &mask); /* interface ID */ - ifra.ifra_addr.sin6_addr.s6_addr32[0] |= - (ib->ia_addr.sin6_addr.s6_addr32[0] & ~mask.s6_addr32[0]); - ifra.ifra_addr.sin6_addr.s6_addr32[1] |= - (ib->ia_addr.sin6_addr.s6_addr32[1] & ~mask.s6_addr32[1]); - ifra.ifra_addr.sin6_addr.s6_addr32[2] |= - (ib->ia_addr.sin6_addr.s6_addr32[2] & ~mask.s6_addr32[2]); - ifra.ifra_addr.sin6_addr.s6_addr32[3] |= - (ib->ia_addr.sin6_addr.s6_addr32[3] & ~mask.s6_addr32[3]); - ifa_free(ifa); + ifra.ifra_addr.sin6_addr.s6_addr32[0] |= (newaddr.s6_addr32[0] & ~mask.s6_addr32[0]); + ifra.ifra_addr.sin6_addr.s6_addr32[1] |= (newaddr.s6_addr32[1] & ~mask.s6_addr32[1]); + ifra.ifra_addr.sin6_addr.s6_addr32[2] |= (newaddr.s6_addr32[2] & ~mask.s6_addr32[2]); + ifra.ifra_addr.sin6_addr.s6_addr32[3] |= (newaddr.s6_addr32[3] & ~mask.s6_addr32[3]); /* lifetimes. */ ifra.ifra_lifetime.ia6t_vltime = pr->ndpr_vltime; @@ -1447,6 +1457,7 @@ prelist_update(struct nd_prefixctl *new, struct nd_defrouter *dr, int auth; struct in6_addrlifetime lt6_tmp; char ip6buf[INET6_ADDRSTRLEN]; + bool has_temporary = false; NET_EPOCH_ASSERT(); @@ -1592,9 +1603,6 @@ prelist_update(struct nd_prefixctl *new, struct nd_defrouter *dr, if (ifa6->ia6_ndpr != pr) continue; - if (ia6_match == NULL) /* remember the first one */ - ia6_match = ifa6; - /* * An already autoconfigured address matched. Now that we * are sure there is at least one matched address, we can @@ -1654,6 +1662,13 @@ prelist_update(struct nd_prefixctl *new, struct nd_defrouter *dr, if ((ifa6->ia6_flags & IN6_IFF_TEMPORARY) != 0) { u_int32_t maxvltime, maxpltime; + /* + * if stable addresses (RFC 7217) are enabled, mark that a temporary address has been found + * to avoid generating uneeded extra ones. + */ + if (ND_IFINFO(ifp)->flags & ND6_IFF_STABLEADDR) + has_temporary = true; + if (V_ip6_temp_valid_lifetime > (u_int32_t)((time_uptime - ifa6->ia6_createtime) + V_ip6_desync_factor)) { @@ -1682,6 +1697,24 @@ prelist_update(struct nd_prefixctl *new, struct nd_defrouter *dr, } ifa6->ia6_lifetime = lt6_tmp; ifa6->ia6_updatetime = time_uptime; + + /* + * If using stable addresses (RFC 7217) and we still have retries to perform, ignore + * addresses already marked as duplicated, since a new one will be generated. + * Also ignore addresses marked as temporary, since their generation is orthogonal to + * opaque stable ones. + * + * There is a small race condition, in that the dad_counter could be incremented + * between here and when a new address is generated, but this will cause that generation + * to fail and no further retries should happen. + */ + if (ND_IFINFO(ifp)->flags & ND6_IFF_STABLEADDR && + counter_u64_fetch(ND_IFINFO(ifp)->dad_failures) <= V_ip6_stableaddr_maxretries && + ifa6->ia6_flags & (IN6_IFF_DUPLICATED | IN6_IFF_TEMPORARY)) + continue; + + if (ia6_match == NULL) /* remember the first one */ + ia6_match = ifa6; } if (ia6_match == NULL && new->ndpr_vltime) { int ifidlen; @@ -1732,8 +1765,11 @@ prelist_update(struct nd_prefixctl *new, struct nd_defrouter *dr, * immediately together with a new set of temporary * addresses. Thus, we specifiy 1 as the 2nd arg of * in6_tmpifadd(). + * + * Skip this if a temporary address has been marked as + * found (happens only if stable addresses (RFC 7217) is in use) */ - if (V_ip6_use_tempaddr) { + if (V_ip6_use_tempaddr && !has_temporary) { int e; if ((e = in6_tmpifadd(ia6, 1, 1)) != 0) { nd6log((LOG_NOTICE, "%s: failed to " diff --git a/usr.sbin/ndp/ndp.c b/usr.sbin/ndp/ndp.c index 6e6f40c3ff64..cbca8ec20941 100644 --- a/usr.sbin/ndp/ndp.c +++ b/usr.sbin/ndp/ndp.c @@ -1058,6 +1058,9 @@ ifinfo(char *ifname, int argc, char **argv) #endif #ifdef ND6_IFF_NO_PREFER_IFACE SETFLAG("no_prefer_iface", ND6_IFF_NO_PREFER_IFACE); +#endif +#ifdef ND6_IFF_STABLEADDR + SETFLAG("stableaddr", ND6_IFF_STABLEADDR); #endif SETVALUE("basereachable", ND.basereachable); SETVALUE("retrans", ND.retrans); @@ -1144,6 +1147,10 @@ ifinfo(char *ifname, int argc, char **argv) if ((ND.flags & ND6_IFF_AUTO_LINKLOCAL)) xo_emit("{l:%s} ", "auto_linklocal"); #endif +#ifdef ND6_IFF_STABLEADDR + if ((ND.flags & ND6_IFF_STABLEADDR)) + xo_emit("{l:%s} ", "stableaddr"); +#endif #ifdef ND6_IFF_NO_PREFER_IFACE if ((ND.flags & ND6_IFF_NO_PREFER_IFACE)) xo_emit("{l:%s} ", "no_prefer_iface"); From nobody Mon Feb 16 19:47:26 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFCwZ6zYcz6SFlJ for ; Mon, 16 Feb 2026 19:47:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFCwZ6Mrzz3p6m for ; Mon, 16 Feb 2026 19:47:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771271246; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6v7eW3eBSgTzXwA+ojIGQwdbrHINhBlhZLZUlk5xuxs=; b=mZPYKx+2OWnPYRLOiWmgscLu+2Nxge+YGCC/gzT5vXRao0KXhYhIHEwxMYYicQgap/F83g yOg/iJtyBGPPKSUH8BXsTYFuFrZplr/rGFM22HQWFba6p6qZge3FsLh1neb/mPqSZgOsVO AT/L7u1v0Y/YDhZut/8rcVZI3tOS8ru3pCbvY6NxNzReYjzpR6maW5Yoav7cHhhEdBw95H +Xl19RaokKd1fkagidix3ErLeTdHII/OsG7asd7CoT4etQtBk9JlHKo6vkEwkrWQo+q9iK nH8dgkK53lZ9c/p/hT3cNE/3ywwNypMyJeLX5f/0LpTx8kFX0r8eZee/u8CTmQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771271246; a=rsa-sha256; cv=none; b=Za1VCycZAQO6y4cwZ5wwi+y47oAmDgIcQQERQ2ZiXrwUqWer4f0V+itHZfxwA4xBdzltAV 1AyrjgCiWS+gA0GlEZpgvH4J3WhaSdfo3Ib2pvN78pX5PxK2RKOe6Y1wITmQkhL44z1BDt AV8sHX4FHpei/bZeUyYEVEQuADzQxWXbDsnQ9gbvQ24SXNyO0k9/8DlEHY5Mjqw0dnhHuy AlzMvOI4aWgzwRm62LqlKKAG3BF0BVnB7ME8LAhNTd/PTnc3PVKNkNTBXo+uq1AaHSWYmP vKDMqfgo8bMREzMoMgvocXk/QCzobBU1cH4lODok3dXD7Wotm4REtZJiFhdTBw== 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=1771271246; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6v7eW3eBSgTzXwA+ojIGQwdbrHINhBlhZLZUlk5xuxs=; b=auSg094AfQEjJb+QiyqfiJzMpuPK4Kl4nC1Nyu5sYz/9a7pKt33yIY2lfyg3fo+6ZOVTLm nyYCZxYpOkBSEAwm8nnUzzyO1lyjXRcwGP+fTpxpAfsMnHubhv1M5hgn5utP1/sugf4LiF H3nZsdx0MULMdDhEZOjqW/ftbkdAF1MMWegSOTvsRz6Mh8TEz3DRvUImKmyeGb8exJW9Ts +BQT+7KVJxFFrxfYsAVAECoQ3riuDi2vIkvoNwh+uytQz1QP7k/b47I7N8cI4u6DStBVVx UHTSZzTZ/nR0VBYFlWYyTMgQYvw2dN6NRnVX23LeH/+g7TI48izP/+J3ZROrjg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFCwZ5VPmzdLW for ; Mon, 16 Feb 2026 19:47:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3f9c4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 19:47:26 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: d4763c1fe5bc - stable/14 - ifconfig: Exit with a non-zero status when SIOCSIFFIB fails List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/14 X-Git-Reftype: branch X-Git-Commit: d4763c1fe5bcb803ad32645f6e316efce9e21571 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 19:47:26 +0000 Message-Id: <6993744e.3f9c4.5407cd09@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=d4763c1fe5bcb803ad32645f6e316efce9e21571 commit d4763c1fe5bcb803ad32645f6e316efce9e21571 Author: Mark Johnston AuthorDate: 2026-01-28 16:11:47 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 16:09:28 +0000 ifconfig: Exit with a non-zero status when SIOCSIFFIB fails Previously, setting an interface FIB to some invalid value would result in a warning being printed, but the ifconfig command would exit with status 0, but this is wrong. Add a little regression test. Reviewed by: pouria, zlei, melifaro MFC after: 2 weeks Sponsored by: Stormshield Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D54918 (cherry picked from commit 2ea85a622bcba92a7b58901d6a6e945df3022c4e) --- sbin/ifconfig/iffib.c | 16 ++++++---------- sbin/ifconfig/tests/Makefile | 3 ++- sbin/ifconfig/tests/ifconfig.sh | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 11 deletions(-) diff --git a/sbin/ifconfig/iffib.c b/sbin/ifconfig/iffib.c index a99dd6885d08..c1f9b3defb40 100644 --- a/sbin/ifconfig/iffib.c +++ b/sbin/ifconfig/iffib.c @@ -69,14 +69,12 @@ setiffib(if_ctx *ctx, const char *val, int dummy __unused) char *ep; fib = strtoul(val, &ep, 0); - if (*ep != '\0' || fib > UINT_MAX) { - warn("fib %s not valid", val); - return; - } + if (*ep != '\0' || fib > UINT_MAX) + errx(1, "fib %s not valid", val); ifr.ifr_fib = fib; if (ioctl_ctx_ifr(ctx, SIOCSIFFIB, &ifr) < 0) - warn("ioctl (SIOCSIFFIB)"); + err(1, "ioctl (SIOCSIFFIB)"); } static void @@ -87,14 +85,12 @@ settunfib(if_ctx *ctx, const char *val, int dummy __unused) char *ep; fib = strtoul(val, &ep, 0); - if (*ep != '\0' || fib > UINT_MAX) { - warn("fib %s not valid", val); - return; - } + if (*ep != '\0' || fib > UINT_MAX) + errx(1, "fib %s not valid", val); ifr.ifr_fib = fib; if (ioctl_ctx_ifr(ctx, SIOCSTUNFIB, &ifr) < 0) - warn("ioctl (SIOCSTUNFIB)"); + err(1, "ioctl (SIOCSTUNFIB)"); } static struct cmd fib_cmds[] = { diff --git a/sbin/ifconfig/tests/Makefile b/sbin/ifconfig/tests/Makefile index e902f262552a..8203c97cb013 100644 --- a/sbin/ifconfig/tests/Makefile +++ b/sbin/ifconfig/tests/Makefile @@ -1,5 +1,6 @@ NETBSD_ATF_TESTS_SH= nonexistent_test -ATF_TESTS_SH+= inet6 +ATF_TESTS_SH+= ifconfig \ + inet6 TEST_METADATA+= execenv="jail" TEST_METADATA+= execenv_jail_params="vnet allow.raw_sockets" diff --git a/sbin/ifconfig/tests/ifconfig.sh b/sbin/ifconfig/tests/ifconfig.sh new file mode 100644 index 000000000000..f95581ea97ba --- /dev/null +++ b/sbin/ifconfig/tests/ifconfig.sh @@ -0,0 +1,32 @@ +# SPDX-License-Identifier: BSD-2-Clause +# +# Copyright (c) 2026 Stormshield + +. $(atf_get_srcdir)/../../sys/common/vnet.subr + +atf_test_case "badfib" "cleanup" +badfib_head() +{ + atf_set descr "Test adding an interface to a non-existent FIB" + atf_set require.user root +} +badfib_body() +{ + local epair + + vnet_init + + epair=$(vnet_mkepair) + atf_check -s exit:0 ifconfig ${epair}a fib 0 + atf_check -s not-exit:0 -e not-empty \ + ifconfig ${epair}a fib $(sysctl -n net.fibs) +} +badfib_cleanup() +{ + vnet_cleanup +} + +atf_init_test_cases() +{ + atf_add_test_case badfib +} From nobody Mon Feb 16 19:47:27 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFCwc0z3rz6SFr7 for ; Mon, 16 Feb 2026 19:47: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFCwb6ptBz3nrS for ; Mon, 16 Feb 2026 19:47:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771271248; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JrfIVklwBrjG0j0opWM5sZBOU8MXki/xUDMskQY+hyg=; b=H+sWYb2KhqlNcY4UgPEhkEwFhTexN3NlJW+8DH9J7ATdyXiQ4SQyjPnu7D6bmPpUYSwb9N ZP8xCK7Q9Zmx6GfWyj2t/ZvwZVjJgNcEs9/kdJy1Qh7tDeNjw5i8Rd0dO3fo1qWmMsXQah 6xp6GgzxDeUYgvo2GEIVSGYWl6jjCIrwk+c58ajr6EA7rECy2tLcXo/u92hFHyrP2Kl4A8 mxf7h+8MHc6m/Xp+uAUm8BjoflL2g3Eci7zvEkRruvE2Jou033NP+KhRrG+bpO3z8Mesrh /4AvyjwpNQPLNb7UewEx7ohtAZGrKjIMIrNTI06mVAZ0YogVWPMrY5W4KWGDKA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771271248; a=rsa-sha256; cv=none; b=PwYwXgt4FP2mlFZOrVIHX/2S+hyEfCzz4LbBsZ/3uKeT2ARkKYh9BVI97gENEqY8LCFirt hf7uGO4Yf3WmAomBh5aOO8GXLG+hUsRQdB8WDca3or0KNKJu/StfpNOu23fzIFzoK8wuZq d0A4+fzKeUazWoxLNKq7PrloMfm5YdzGMX1v5Gc09LQ0OXYfcmieHrdf5ud3cJsAEaDyNt d+Ce3/R9a9necCVpHfD/ToO+mQIqcYZVjCiKtmc6MWGy4or5RUBt9Z5NX6XjGwkJ35fmBS llzASSEEZkoXQQPDvFkmsq/OJzKpX7LEbj9Yy1fyWS3ljtp58WtWhQbqf9JlBw== 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=1771271248; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JrfIVklwBrjG0j0opWM5sZBOU8MXki/xUDMskQY+hyg=; b=MT4zvh7to1Kk01/xuHNSTN9rzJR/R+vHljCs6InlhWZZ9X/ydL0Gbk8dJmts7amL7RfIWg iKWwKrH2fgkUVDewzGJgmc+1fIolIx4Vsd4FxnGSbGkSXQVL4LQzBZMK2Y5wV90sd3gqJ+ y3mFZTGZhw02ei+WLL6yYH/1ckOSORK9hbte/OJyGhCFt5KsT/HcMkoyMiqlpHAAOlWr2+ Nt6RRHV1Ul6zhST72Rpybs/QacRrTtM/2adni0hOE1nDD+dfvWD3n3ycVi3P5NkDhIxK7O wk2EZoI4JuGb3GFcOgGUJLku6RvI9UzHyf5e+ErDF7yyyEm3jJG/2Oxd2I8wBQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFCwb6G0rzdvp for ; Mon, 16 Feb 2026 19:47:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3fde5 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 19:47:27 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 0e0455aaa799 - stable/14 - ip6_mroute: Mark functions as static List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/14 X-Git-Reftype: branch X-Git-Commit: 0e0455aaa799a27bd359468cb32b6a390aebb144 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 19:47:27 +0000 Message-Id: <6993744f.3fde5.1d39ff@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=0e0455aaa799a27bd359468cb32b6a390aebb144 commit 0e0455aaa799a27bd359468cb32b6a390aebb144 Author: Mark Johnston AuthorDate: 2026-01-30 15:25:52 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 16:09:28 +0000 ip6_mroute: Mark functions as static No functional change intended. MFC after: 2 weeks Sponsored by: Stormshield Sponsored by: Klara, Inc. (cherry picked from commit a03eabfebbce15d8ce028168969812d3ca2be206) (cherry picked from commit ebc9a98c1b7d0a47359dae34509e1d9c02767a88) --- sys/netinet6/ip6_mroute.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/sys/netinet6/ip6_mroute.c b/sys/netinet6/ip6_mroute.c index 9d30c1291b7b..9e41dd8176d3 100644 --- a/sys/netinet6/ip6_mroute.c +++ b/sys/netinet6/ip6_mroute.c @@ -362,16 +362,16 @@ static int get_sg_cnt(struct sioc_sg_req6 *); static struct callout expire_upcalls_ch; -int X_ip6_mforward(struct ip6_hdr *, struct ifnet *, struct mbuf *); -int X_ip6_mrouter_done(void); -int X_ip6_mrouter_set(struct socket *, struct sockopt *); -int X_ip6_mrouter_get(struct socket *, struct sockopt *); -int X_mrt6_ioctl(u_long, caddr_t); +static int X_ip6_mforward(struct ip6_hdr *, struct ifnet *, struct mbuf *); +static int X_ip6_mrouter_done(void); +static int X_ip6_mrouter_set(struct socket *, struct sockopt *); +static int X_ip6_mrouter_get(struct socket *, struct sockopt *); +static int X_mrt6_ioctl(u_long, caddr_t); /* * Handle MRT setsockopt commands to modify the multicast routing tables. */ -int +static int X_ip6_mrouter_set(struct socket *so, struct sockopt *sopt) { int error = 0; @@ -439,7 +439,7 @@ X_ip6_mrouter_set(struct socket *so, struct sockopt *sopt) /* * Handle MRT getsockopt commands */ -int +static int X_ip6_mrouter_get(struct socket *so, struct sockopt *sopt) { int error = 0; @@ -458,7 +458,7 @@ X_ip6_mrouter_get(struct socket *so, struct sockopt *sopt) /* * Handle ioctl commands to obtain information from the cache */ -int +static int X_mrt6_ioctl(u_long cmd, caddr_t data) { int ret; @@ -588,7 +588,7 @@ ip6_mrouter_init(struct socket *so, int v, int cmd) /* * Disable IPv6 multicast forwarding. */ -int +static int X_ip6_mrouter_done(void) { mifi_t mifi; @@ -1058,7 +1058,7 @@ socket_send(struct socket *s, struct mbuf *mm, struct sockaddr_in6 *src) * that if this function is called from somewhere else in the originating * context in the future. */ -int +static int X_ip6_mforward(struct ip6_hdr *ip6, struct ifnet *ifp, struct mbuf *m) { struct rtdetq *rte; From nobody Mon Feb 16 19:47:28 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFCwd2qqvz6SFlK for ; Mon, 16 Feb 2026 19:47: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFCwd0nJxz3p4L for ; Mon, 16 Feb 2026 19:47:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771271249; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qVOacOHjZnswprm32Orf6IQqCWTcIxdczAkFeHAcjUY=; b=KpinMTNSXU4q6rYyZqKb3vi4Drgoq40fGtAumGxG7uyLOwVt7yrP55b2YC+if2dmNf+0N0 07HJy7eCmqqTOyXW+XiztaVI1En/ZQmq1e/CbUXiXMlkpzpoX/EMt2uf4jS6jyRFplGQeZ VFyrlNOJDBY0zmnAgprKxoP9x5DotdJsIvbnHg4Z6pzzM4agtCKoNlEYjLuXD7e1YZZWwp E5io6B86jz7Q6yLHHq+vaGpJRamNqe8Vr9XPekVGr1A0gnMnnJMJLhM9IavcIvJOQfsd8r zr3BcnZBk6rn1MwmozpmWx5X7zsqP4bH49LE1fAXtHcJYkP6PkLDNPwKQymffQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771271249; a=rsa-sha256; cv=none; b=JfCdsfYJ5VGJx9SvISuIOu5VcWHKLCo22Y3QRaFeAl65yRmnc9n//qseXa5gJojfeOiGuJ WDlZ1EPxrAvAZoziy+u6+CTnWtLk9rdAsa8OL/7GTCiS/y61O8Chz4CizQ8Xiu3rSxdSPj ojEXq0tOcaRFwmikRzRVg9BdBh9u/xVpt7QUS5bRRvk7a95ZZa1PglIsnazEESkNC4aeTe kfdlP4gU3XudL9LTVgjWZx99/H9E5lVhEV6HPwhCIpKdg+EbDcOg8/8E7H5JPLoXBcc+yV IPLJ1Qd3zArs68Mw1q7w0MsoNkwBjxeicQJanX3UgPHrsBytvcafOu1oZLnURA== 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=1771271249; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qVOacOHjZnswprm32Orf6IQqCWTcIxdczAkFeHAcjUY=; b=W1dLQUQlQYmMajKGo9tZB6Vc3HZ4f3t3PSFgBTnfdod0LBreupitpF3zB2BXULQc6DrwwH obV4pi5yjTEvppw1q1KagueGNbLJvdbk2pFGz5WL9echir3MNia2VUudMGY/i66FuL9Rws dKYqLiuerrOK1SFe39hqyE/hgE6347K4QomMupFJlB9KTgEwpCds3tjUOLrv0VKlRACPds 2pz/FllUqnxlxSwJ1mEuEQnu7tWu0G8CmEmu4zgaIzbeaSi/bMzLeglwbsWfaNuGIYqhCu UEXVtKJAHyloLa77cTgBlDoG9dDzgfqud2Zn4u8Td9pNRNJVhr3bPgrlW/X/Lg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFCwd03dnzdlH for ; Mon, 16 Feb 2026 19:47:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 40d78 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 19:47:28 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 49dbd7670300 - stable/14 - netstat: Fix whitespace in libxo output for multicast routes List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/14 X-Git-Reftype: branch X-Git-Commit: 49dbd7670300e015a217ffb00a3110db5ef28c7d Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 19:47:28 +0000 Message-Id: <69937450.40d78.37ad6354@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=49dbd7670300e015a217ffb00a3110db5ef28c7d commit 49dbd7670300e015a217ffb00a3110db5ef28c7d Author: Mark Johnston AuthorDate: 2026-01-30 20:30:58 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 16:09:28 +0000 netstat: Fix whitespace in libxo output for multicast routes Also fix some bogus libxo format strings in mroute6.c, and close a couple of lists instead of opening them twice. Fixes: ade9ccfe211a ("Convert netstat to use libxo.") MFC after: 2 weeks Sponsored by: Stormshield Sponsored by: Klara, Inc. (cherry picked from commit 34c3e1d718a86436f863b2ae8b91bcf406b37f0e) (cherry picked from commit d2b595debaf2ff82a402c9226a77cd43cc97bb50) --- usr.bin/netstat/mroute.c | 11 +++++------ usr.bin/netstat/mroute6.c | 13 ++++++------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/usr.bin/netstat/mroute.c b/usr.bin/netstat/mroute.c index a5da29e89009..84db9022e43b 100644 --- a/usr.bin/netstat/mroute.c +++ b/usr.bin/netstat/mroute.c @@ -39,7 +39,6 @@ * @(#)mroute.c 8.2 (Berkeley) 4/28/95 */ -#include /* * Print multicast routing structures and statistics. * @@ -160,7 +159,7 @@ print_bw_meter(struct bw_meter *bw_meter, int *banner_printed) } xo_emit(" {:remaining-time/%s}", s3); - xo_open_instance("bandwidth-meter"); + xo_close_instance("bandwidth-meter"); xo_emit("\n"); } @@ -189,9 +188,9 @@ print_mfc(struct mfc *m, int maxvif, int *banner_printed) } memcpy(&sin.sin_addr, &m->mfc_origin, sizeof(sin.sin_addr)); - xo_emit(" {:origin-address/%-15.15s}", routename(sa, numeric_addr)); + xo_emit(" {t:origin-address/%-*.15s}", 15, routename(sa, numeric_addr)); memcpy(&sin.sin_addr, &m->mfc_mcastgrp, sizeof(sin.sin_addr)); - xo_emit(" {:group-address/%-15.15s}", + xo_emit(" {t:group-address/%-15.15s}", routename(sa, numeric_addr)); xo_emit(" {:sent-packets/%9lu}", m->mfc_pkt_cnt); xo_emit(" {:parent/%3d} ", m->mfc_parent); @@ -306,12 +305,12 @@ mroutepr(void) xo_open_instance("vif"); memcpy(&sin.sin_addr, &v->v_lcl_addr, sizeof(sin.sin_addr)); - xo_emit(" {:vif/%2u} {:threshold/%6u} {:route/%-15.15s}", + xo_emit(" {:vif/%2u} {:threshold/%6u} {t:route/%-15.15s}", /* opposite math of add_vif() */ vifi, v->v_threshold, routename(sa, numeric_addr)); memcpy(&sin.sin_addr, &v->v_rmt_addr, sizeof(sin.sin_addr)); - xo_emit(" {:source/%-15.15s}", (v->v_flags & VIFF_TUNNEL) ? + xo_emit(" {t:source/%-15.15s}", (v->v_flags & VIFF_TUNNEL) ? routename(sa, numeric_addr) : ""); xo_emit(" {:received-packets/%9lu} {:sent-packets/%9lu}\n", diff --git a/usr.bin/netstat/mroute6.c b/usr.bin/netstat/mroute6.c index 5873c1ee85c6..0b9438dee2a3 100644 --- a/usr.bin/netstat/mroute6.c +++ b/usr.bin/netstat/mroute6.c @@ -67,7 +67,6 @@ * @(#)mroute.c 8.2 (Berkeley) 4/28/95 */ -#include #ifdef INET6 #include #include @@ -155,7 +154,7 @@ mroute6pr(void) xo_close_instance("multicast-interface"); } if (banner_printed) - xo_open_list("multicast-interface"); + xo_close_list("multicast-interface"); else xo_emit("\n{T:IPv6 Multicast Interface Table is empty}\n"); @@ -176,19 +175,19 @@ mroute6pr(void) xo_open_list("multicast-forwarding-cache"); xo_emit("\n" "{T:IPv6 Multicast Forwarding Cache}\n"); - xo_emit(" {T:%-*.*s} {T:%-*.*s} {T:%s}", + xo_emit(" {T:/%-*.*s} {T:/%-*.*s} {T:/%s}\n", WID_ORG, WID_ORG, "Origin", WID_GRP, WID_GRP, "Group", - " Packets Waits In-Mif Out-Mifs\n"); + " Packets Waits In-Mif Out-Mifs"); banner_printed = 1; } xo_open_instance("multicast-forwarding-cache"); - xo_emit(" {:origin/%-*.*s}", WID_ORG, WID_ORG, + xo_emit(" {t:origin/%-*.*s}", WID_ORG, WID_ORG, routename(sin6tosa(&mfc.mf6c_origin), numeric_addr)); - xo_emit(" {:group/%-*.*s}", WID_GRP, WID_GRP, + xo_emit(" {t:group/%-*.*s}", WID_GRP, WID_GRP, routename(sin6tosa(&mfc.mf6c_mcastgrp), numeric_addr)); xo_emit(" {:total-packets/%9ju}", @@ -209,7 +208,7 @@ mroute6pr(void) xo_open_list("mif"); for (mifi = 0; mifi <= maxmif; mifi++) { if (IF_ISSET(mifi, &mfc.mf6c_ifset)) - xo_emit(" {l:%u}", mifi); + xo_emit(" {l:/%u}", mifi); } xo_close_list("mif"); xo_emit("\n"); From nobody Mon Feb 16 19:47:30 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFCwf2VmMz6SFyd for ; Mon, 16 Feb 2026 19:47: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFCwf1BLvz3p4P for ; Mon, 16 Feb 2026 19:47:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771271250; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6V9O/KB0nNmQTPpVdOIU5wKBSWEKuGc8qOjl4EbLxEw=; b=SUFt0BRUijXaXXOPS24BqGGBwIQHg5okRkN4Pno8nGHePon4il+VRSNpqgSRx5FxPtMR7d oBVotKwAKaKAnYQ4reiwablr7dEuQTfqfwqq3tABNoxJhJitOM39iLoOFt7fShIs5SMhuu 7vHSdx2x4TKUUyI1avw3jz2GC5Gvinf0GUNjbJruJYJP+ztP+ATmpF82cX5GCtUwNFunHH DT9JkWVu49/WVdphPFEZMbXCNgWaD9fAAS0JFS1rhtIY2OWlKRmJE3IF4ottz291uRo2Wu 8y4HAgq2T0bxi3bHtnKIWzIki6g872j9gwQ839jKIqz1d3f3pkYaqNgEwqGV0A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771271250; a=rsa-sha256; cv=none; b=uQWsiKBxnW67u+BcZkxJdNBCGEcySuWCMmSGECXkNoewlOSzjrV9Qahgk6BTPhJjgfJdqp ln6PplbpNQS8bqiHt+BfAFseSzh5Bbzv4cqmD1Dm9Qvj5A48+QNnzAziyIJ7dv/5sYTheX ZFs56pcvyrj133bQTlhzD4jgeDrGcEamhexFgp+KsFqb1ekPCtn5LHj50FA7ov1j1mVrk3 N2UPO4A18dgX2KYtCW+zeIYDveHA1ADBO41ZEgyGj55pI0u5YLFtpI7KgeLWMMbT8FcY+r OIQK5MJx6bTgeamG75RoUqZnNC8JMMV4aDo7bwQWmi6x6Hmsh1WFjuKleIRVUg== 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=1771271250; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6V9O/KB0nNmQTPpVdOIU5wKBSWEKuGc8qOjl4EbLxEw=; b=bKXXNKeTroX3Beb+aLJs5/l+9jWwmWcL+aWGaodpgb3S7U3pzidjvztIad7owSdL0fDeXf qaUr8Qmbf6xnhOy8mkUYLDFvsWNLWVzJ0q9NuOnckI57J63hzt/LDCKp9QFABeuya/nQMd oe7Mi9E86GWveTVBwUbUTMZfeZ++Fti1W8L1BZshrJDMxUOsW236EoP0xOweh0OTOSfPXo 8Xxat7ecWKri84/xBGkGiIdymBu9njwYlLU6wgUN84n0fFgGXvzCj434M6JxGAVt+d4vZA kEW2fvGkfa5Z56q4kT/MUJPuDVVc2EHWcA1tk4mSaEaEcGBhTyZZY/eV8F8sFA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFCwf0mbzzdlK for ; Mon, 16 Feb 2026 19:47:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 40d7c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 19:47:30 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 8845df6a4caa - stable/14 - atf_python: Run vnet handlers in $HOME List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/14 X-Git-Reftype: branch X-Git-Commit: 8845df6a4caa08a0ae52eedfcf177b1b53a1057a Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 19:47:30 +0000 Message-Id: <69937452.40d7c.30aa259c@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=8845df6a4caa08a0ae52eedfcf177b1b53a1057a commit 8845df6a4caa08a0ae52eedfcf177b1b53a1057a Author: Mark Johnston AuthorDate: 2026-02-02 14:52:43 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 16:09:28 +0000 atf_python: Run vnet handlers in $HOME When kyua runs a test, it creates a temp directory and sets $HOME to point to it. Tests are run with the cwd set to that temp directory. When a process attaches to a jail, its cwd is set to the root of the jail. Modify atf_python to cd to $HOME instead, so that it's easier for tests to share files. Reviewed by: zlei, ngie MFC after: 2 weeks Sponsored by: Stormshield Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D54971 (cherry picked from commit 07940d1d85eb338853fcba0697c6b9a96412a7f2) --- tests/atf_python/sys/net/vnet.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/atf_python/sys/net/vnet.py b/tests/atf_python/sys/net/vnet.py index 41d612fc7c7f..d76933cb69a2 100644 --- a/tests/atf_python/sys/net/vnet.py +++ b/tests/atf_python/sys/net/vnet.py @@ -350,6 +350,7 @@ class VnetTestTemplate(BaseTest): vnetX_handler() after setting up interface addresses """ vnet.attach() + os.chdir(os.getenv("HOME")) print("# setup_vnet({})".format(vnet.name)) if pipe is not None: vnet.set_pipe(pipe) From nobody Mon Feb 16 19:47:31 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFCwg64CHz6SFst for ; Mon, 16 Feb 2026 19:47: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFCwg2Gm7z3nrk for ; Mon, 16 Feb 2026 19:47:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771271251; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xpSttXnTtpxqRomqS0xcFcuHX0EXmf5TEaVZ3PQxQFU=; b=uE/0iHrSvH1PRJ4gzMPyHWQMua675M1lmeSy2Rsg/Y9lWMDhWrCgRdqtyUzLQ00vXuTVTV 5/bXR0A69qTCMGHcPJCaH9N7ZbLGkTueRIhDfXdBuH0jOaLfIBDlXEiWt8n7qExyGvUACO zxkK83/yTpI8K0aV62FB7F9jM7XdygxTG8j5qqYDpeRDapMMQstcMSEk3aGyGb76igKkF/ 8oEIZ+Wp7TbQnCynXGKc80q94W+CB9IBSVQFvuJnUdY7m77c4plRts61MJx9X54CppuUqt 9Z74axCaykBPD1wnmkE729eKAoYrrGnpFwaB6sJlwp/iYlLssondMSPz/56b3Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771271251; a=rsa-sha256; cv=none; b=YsOzsG0+CrJ1aadI5l9X8QpLWwTD1GLRsz/USEnEDuS6CcB8otdVF93ODnIay4ag28vCYu p9e+nthrUmNmcXekjflQinlpfyGYIyfWWgKFSGkZDgw80SjbpepUNh2rEgXLaxCd6p+lgr MwjzcgmZ0xR6ix+RZd2xTiBV4sFEMQv3QuEPj0svJmdSHB5c8CYWSIG3H2YOAFeVombTgi 0oSvS1RSBFF0BEYzGa2wOcDSF2WjI9YBn94+pZbbPIrxzSsjPah69pbKCYUX8YrkWtLzAq Ug1imL/KLl36f3Ztdz34dm6geqAJeH527HNY3VXRuwRUQcnzlyU63lHAJ9j6Xg== 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=1771271251; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xpSttXnTtpxqRomqS0xcFcuHX0EXmf5TEaVZ3PQxQFU=; b=i8Sv9zkT85BA8XhIDEflK6KFmwecJ0PKg4u+Mt/1P40VmTfnI4P8ygfhuKqePDTJyn/XQT UrDNZ7fy13FRn1CdDQZ3vHHf6ktbv3bALteQ41//QRqQ14y39CoSeKmh6V/3ziWe3MHIzJ mZdm6taBQE/91UO0k8C2BUN1NOfHJkdl5YCP1D8KbV0ExxrG51JFh1QqyeQBERxczNuEP2 in3mvqdkXR8CXqGhMED3aAYddGmsV6Qx9bjKlyBCju6B7pVtFdcOh91YGN8eUc/CZgUY2f SPUN5QK1Jkby3Ax4M+4kM5xWoDhbGnF+ZIarVSkcQD/1nvJ2YrfsMv2k5MjwSw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFCwg1bmGzdlM for ; Mon, 16 Feb 2026 19:47:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3ebe7 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 19:47:31 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 289fadef7163 - stable/14 - atf_python: Fix a typo in a type annotation List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/14 X-Git-Reftype: branch X-Git-Commit: 289fadef716377b06f02988beaaa2d78aecb7bc6 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 19:47:31 +0000 Message-Id: <69937453.3ebe7.5093663f@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=289fadef716377b06f02988beaaa2d78aecb7bc6 commit 289fadef716377b06f02988beaaa2d78aecb7bc6 Author: Mark Johnston AuthorDate: 2026-01-27 14:57:31 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 16:09:28 +0000 atf_python: Fix a typo in a type annotation No functional change intended. MFC after: 1 week Sponsored by: Stormshield Sponsored by: Klara, Inc. (cherry picked from commit ef389b7f581b2500c0e18c0989a54465712cd175) --- tests/atf_python/atf_pytest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/atf_python/atf_pytest.py b/tests/atf_python/atf_pytest.py index 19b5f88fa200..aa44fbf7826f 100644 --- a/tests/atf_python/atf_pytest.py +++ b/tests/atf_python/atf_pytest.py @@ -117,7 +117,7 @@ class ATFHandler(object): reason: str def __init__(self, report_file_name: Optional[str]): - self._tests_state_map: Dict[str, ReportStatus] = {} + self._tests_state_map: Dict[str, self.ReportState] = {} self._report_file_name = report_file_name self._report_file_handle = None From nobody Mon Feb 16 19:47:32 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFCwh477cz6SFlP for ; Mon, 16 Feb 2026 19:47:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFCwh2l7Lz3p7J for ; Mon, 16 Feb 2026 19:47:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771271252; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=AJRyT+aOHLxykohVwAtQ0yqhNda6qoMXtQPzKaXBAYE=; b=a6TXa7W+ExYSldrQUZQedzWVQoSpFCbKP2f1pdJLLvSkpqpWDimqF4XnpmvVpBzhUkJ+1H zMpamddXY97mvmCucB+CjqV1YW+y3gB5IRl//6GKrV2gTCDInTpRApQKTFli8fg4GwZztS bKpS3qeMoNAODCdD7x0j84FMhXDHxWuwSgwcJ6tnwIjOgIBP1U/Oli0kw08VzLUwoH1fRA bA4bM53sfQPyagt8OFmBOPaGfXqnNlTK1sQbHHFW8oWQIklU6W5olY0GDX/YktinuF4MTO HD49UsaHsaplAr9q7BOtvN0j/Fveb7p6xPMI6F1vA2GxqAb8v2QabNIjxldndw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771271252; a=rsa-sha256; cv=none; b=WnKs9FcYEFvjaFNPAl9ttRFcGqpveuTwLVJCJ4x8RunmrP+uVHKyW6S5hLH2zF3R3wUhC7 1l0UR+mtjkIFVaK43OULZHYG85bXkVSrToDzvr1bfIwqpoxNT9XV8FU+xD0m9gYu7+n/zu 9PXplOS8xMaTO5pUuZNIow+6qD5UdwicQN46s035NSGxoKOp+/PJOMTekM5Zgggm/+iH0m xESaen1CP8bT5E9LOE3gPAQ65leR6YxU/ylaLK9/L9od0zMzmWKk25n+BI9CQi/D5RSvqx LqiMCj2usA6p3UQtCY7Z9d8R0riLaC1Sgg2sPHCaiH4OmHlpMbPPoKKXpewjsw== 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=1771271252; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=AJRyT+aOHLxykohVwAtQ0yqhNda6qoMXtQPzKaXBAYE=; b=svDYyUboMgAYC0KL6UCQlFxByKGwzzdHyxO++DdOIa+uhhwY66eJODSPIlhwOWI8zK2tF6 JJr271352ala4kyz7MGFcUOnXVMJpBJUhWclJTAmgL3l2bSxW/zNq4aWW8LSTOYFiW3uyg 6R/s2rlA5p/3c4ItgsgFNJXTz7zU8LqngON7WlxyyUE5ORcHfBCH2yB5D5bP/jQsVXMY/k O5TFJY+NpSPSwGhFsQESUh2AlgEzkAext9ME/qMhr8Y3TZc24HuzdquQaeRC9j+YA0yYlu 835cYj/S6IIdgFrbW0/hFihOa1XYREI0E4Evbz4A6cgSEPYS/wgqO4GpflVL3w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFCwh1xkTzdlN for ; Mon, 16 Feb 2026 19:47:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3fb63 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 19:47:32 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: cd784bf4d001 - stable/14 - ip_mroute: Convert to using a regular mutex List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/14 X-Git-Reftype: branch X-Git-Commit: cd784bf4d0010085cd029ed76d0a55b1c57a8e9e Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 19:47:32 +0000 Message-Id: <69937454.3fb63.7f9fc052@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=cd784bf4d0010085cd029ed76d0a55b1c57a8e9e commit cd784bf4d0010085cd029ed76d0a55b1c57a8e9e Author: Mark Johnston AuthorDate: 2026-01-27 14:58:02 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 16:09:28 +0000 ip_mroute: Convert to using a regular mutex The multicast routing code was using spin mutexes for packet counting, but there is no reason to use them instead of regular mutexes, given that none of this code runs in an interrupt context. Convert to using default mutexes. Reviewed by: glebius MFC after: 2 weeks Sponsored by: Stormshield Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D54603 (cherry picked from commit a265c8b4a5a7c8fdd33e27b8f74bd2a514f82c70) --- sys/netinet/ip_mroute.c | 35 ++++++++++++++++++----------------- sys/netinet/ip_mroute.h | 10 +++++----- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/sys/netinet/ip_mroute.c b/sys/netinet/ip_mroute.c index 306335ff8b79..133269edf3ba 100644 --- a/sys/netinet/ip_mroute.c +++ b/sys/netinet/ip_mroute.c @@ -602,12 +602,12 @@ get_vif_cnt(struct sioc_vif_req *req) return EINVAL; } - mtx_lock_spin(&V_viftable[vifi].v_spin); + mtx_lock(&V_viftable[vifi].v_mtx); req->icount = V_viftable[vifi].v_pkt_in; req->ocount = V_viftable[vifi].v_pkt_out; req->ibytes = V_viftable[vifi].v_bytes_in; req->obytes = V_viftable[vifi].v_bytes_out; - mtx_unlock_spin(&V_viftable[vifi].v_spin); + mtx_unlock(&V_viftable[vifi].v_mtx); MRW_RUNLOCK(); return 0; @@ -985,8 +985,8 @@ add_vif(struct vifctl *vifcp) vifp->v_pkt_out = 0; vifp->v_bytes_in = 0; vifp->v_bytes_out = 0; - sprintf(vifp->v_spin_name, "BM[%d] spin", vifcp->vifc_vifi); - mtx_init(&vifp->v_spin, vifp->v_spin_name, NULL, MTX_SPIN); + sprintf(vifp->v_mtx_name, "BM[%d] mtx", vifcp->vifc_vifi); + mtx_init(&vifp->v_mtx, vifp->v_mtx_name, NULL, MTX_DEF); /* Adjust numvifs up if the vifi is higher than numvifs */ if (V_numvifs <= vifcp->vifc_vifi) @@ -1034,7 +1034,7 @@ del_vif_locked(vifi_t vifi, struct ifnet **ifp_multi_leave, struct ifnet **ifp_f } } - mtx_destroy(&vifp->v_spin); + mtx_destroy(&vifp->v_mtx); bzero((caddr_t)vifp, sizeof (*vifp)); @@ -1642,7 +1642,7 @@ ip_mdq(struct mbuf *m, struct ifnet *ifp, struct mfc *rt, vifi_t xmt_vif) } /* If I sourced this packet, it counts as output, else it was input. */ - mtx_lock_spin(&V_viftable[vifi].v_spin); + mtx_lock(&V_viftable[vifi].v_mtx); if (in_hosteq(ip->ip_src, V_viftable[vifi].v_lcl_addr)) { V_viftable[vifi].v_pkt_out++; V_viftable[vifi].v_bytes_out += plen; @@ -1650,7 +1650,7 @@ ip_mdq(struct mbuf *m, struct ifnet *ifp, struct mfc *rt, vifi_t xmt_vif) V_viftable[vifi].v_pkt_in++; V_viftable[vifi].v_bytes_in += plen; } - mtx_unlock_spin(&V_viftable[vifi].v_spin); + mtx_unlock(&V_viftable[vifi].v_mtx); rt->mfc_pkt_cnt++; rt->mfc_byte_cnt += plen; @@ -1687,14 +1687,14 @@ ip_mdq(struct mbuf *m, struct ifnet *ifp, struct mfc *rt, vifi_t xmt_vif) for (x = rt->mfc_bw_meter_leq; x != NULL; x = x->bm_mfc_next) { /* * Record that a packet is received. - * Spin lock has to be taken as callout context + * A lock has to be taken as callout context * (expire_bw_meter_leq) might modify these fields * as well */ - mtx_lock_spin(&x->bm_spin); + mtx_lock(&x->bm_mtx); x->bm_measured.b_packets++; x->bm_measured.b_bytes += plen; - mtx_unlock_spin(&x->bm_spin); + mtx_unlock(&x->bm_mtx); } } @@ -1876,13 +1876,14 @@ expire_bw_meter_leq(void *arg) /* Reset counters */ x->bm_start_time = now; - /* Spin lock has to be taken as ip_forward context + /* + * The lock has to be taken as ip_forward context * might modify these fields as well */ - mtx_lock_spin(&x->bm_spin); + mtx_lock(&x->bm_mtx); x->bm_measured.b_bytes = 0; x->bm_measured.b_packets = 0; - mtx_unlock_spin(&x->bm_spin); + mtx_unlock(&x->bm_mtx); callout_schedule(&x->bm_meter_callout, tvtohz(&x->bm_threshold.b_time)); @@ -1968,8 +1969,8 @@ add_bw_upcall(struct bw_upcall *req) x->bm_time_next = NULL; x->bm_mfc = mfc; x->arg = curvnet; - sprintf(x->bm_spin_name, "BM spin %p", x); - mtx_init(&x->bm_spin, x->bm_spin_name, NULL, MTX_SPIN); + sprintf(x->bm_mtx_name, "BM mtx %p", x); + mtx_init(&x->bm_mtx, x->bm_mtx_name, NULL, MTX_DEF); /* For LEQ case create periodic callout */ if (req->bu_flags & BW_UPCALL_LEQ) { @@ -1996,7 +1997,7 @@ free_bw_list(struct bw_meter *list) /* MRW_WLOCK must be held here */ if (x->bm_flags & BW_METER_LEQ) { callout_drain(&x->bm_meter_callout); - mtx_destroy(&x->bm_spin); + mtx_destroy(&x->bm_mtx); } list = list->bm_mfc_next; @@ -2097,7 +2098,7 @@ bw_meter_geq_receive_packet(struct bw_meter *x, int plen, struct timeval *nowp) /* * Processing for ">=" type of bw_meter entry. - * bm_spin does not have to be hold here as in GEQ + * bm_mtx does not have to be hold here as in GEQ * case this is the only context accessing bm_measured. */ if (BW_TIMEVALCMP(&delta, &x->bm_threshold.b_time, >)) { diff --git a/sys/netinet/ip_mroute.h b/sys/netinet/ip_mroute.h index aefc0933485b..52899a6e3c4e 100644 --- a/sys/netinet/ip_mroute.h +++ b/sys/netinet/ip_mroute.h @@ -264,9 +264,9 @@ struct vif { u_long v_bytes_in; /* # bytes in on interface */ u_long v_bytes_out; /* # bytes out on interface */ #ifdef _KERNEL -#define MROUTE_VIF_SYSCTL_LEN __offsetof(struct vif, v_spin) - struct mtx v_spin; /* Spin mutex for pkt stats */ - char v_spin_name[32]; +#define MROUTE_VIF_SYSCTL_LEN __offsetof(struct vif, v_mtx) + struct mtx v_mtx; /* mutex for pkt stats */ + char v_mtx_name[32]; #endif }; @@ -352,8 +352,8 @@ struct bw_meter { #ifdef _KERNEL struct callout bm_meter_callout; /* Periodic callout */ void* arg; /* custom argument */ - struct mtx bm_spin; /* meter spin lock */ - char bm_spin_name[32]; + struct mtx bm_mtx; /* meter lock */ + char bm_mtx_name[32]; #endif }; From nobody Mon Feb 16 19:47:33 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFCwj5F4xz6SFfd for ; Mon, 16 Feb 2026 19:47: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFCwj3ChNz3p7k for ; Mon, 16 Feb 2026 19:47:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771271253; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1w9qB10E499Lva2VXqN1M3Dw0opH5fTKWraRoCXgYjc=; b=gPk9VMsy5C7WZ98T3jRBIE1gi6rLP9WUqRJmML9u1YFgavWiBvMplV6iioEwc9Fxg1m/1V t0ku2FxuG3PNxCcmT1ZvPYjpMGspN2/eumXpVW/ogfmwZdmmFdU93WhZ18Vok8+vGnqkSI ytd/utyYnh6nPE3BrzleGKiUvykNbG5cWKXQwblc8qKhPYBIUWfo82M3I1QKq281oH+lnt 4IhRjHSOnvxs74m7nW+GmXJ7uqILeOquXlI+2Pv9KZzpJsB+Xm5VYDgu+POsgeJKv7AuRb 1EsibMxfmO9claYEyZy/3OYOOEPATYDvThputnmFXb56UxZQ0rbTpcRg4WWZ3w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771271253; a=rsa-sha256; cv=none; b=xa8Ok2UGVe6W8Wd43dck02mIim17yxxl40A3pwO85wAc9Zfj4qtSMqPykAIEi1KMj8Pihd Zcg47FUti5tjsb4TxCNtyagOGcaFtrTZ7ol/7+1XSrtElmwpgFdPSm8HM+SqWCz6LaTxWC X6Dx7bmZYh/D6bb0rHkyDwZ9/TjppQSUM6qdgujYV5NJCiLDn+rslh+O1Mx9Fix4mnwIa4 7tOfJfaEcrExe6tJ6/H6Jhw2e11+3qJEFbfSqX+q/56alMti2xuHcYdEyJULznVadR5aHM SHroZpB27+pZBc+qX4H30BFeKs6Wc/bHgq0DktTojc2h9EBOQouD4jfQZcqmTA== 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=1771271253; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=1w9qB10E499Lva2VXqN1M3Dw0opH5fTKWraRoCXgYjc=; b=Hu3Pp5Vmpi65szd5AxO+5iYzeddhoNYrmsjykq+WQrdlDeoug9KeXLDNDlbRcxooILbnhf WhK6l+Ly2RltQ+ZwJT7bpdFXpELNqmSR+CsOIjMfsU4n48sf3tJyzihOyiunlxIMFMtFMZ m6fBwgP5S3fy0XQ/AfyBcjPd89sAhLXM1s5hN616YGph4tjL8/ACRngDs/tRKCiCZLjEN3 unu8nA4Lq5AT0Zy75RvgfxIfTiyLrYclUHP8I2rqYFIm+z2bUIG39yb4V1FSRFSRX00P8Q kRSIuz0RlK6uzdP8UwAazXG0CbQ7GD/14rYdPWCmZ8HgIpf4pUAtAMCkGaG5GA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFCwj2hZvzdLX for ; Mon, 16 Feb 2026 19:47:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3f848 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 19:47:33 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 85250c12e509 - stable/14 - ip6_mroute: Remove an unused constant List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/14 X-Git-Reftype: branch X-Git-Commit: 85250c12e509582048b4a80d10a996cee0eab3a2 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 19:47:33 +0000 Message-Id: <69937455.3f848.9382ee5@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=85250c12e509582048b4a80d10a996cee0eab3a2 commit 85250c12e509582048b4a80d10a996cee0eab3a2 Author: Mark Johnston AuthorDate: 2026-02-02 14:58:38 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 16:09:28 +0000 ip6_mroute: Remove an unused constant No functional change intended. MFC after: 2 weeks Sponsored by: Stormshield Sponsored by: Klara, Inc. (cherry picked from commit b320e89e6909c0c3f29542976df0381990866988) --- sys/netinet6/ip6_mroute.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/sys/netinet6/ip6_mroute.c b/sys/netinet6/ip6_mroute.c index 9e41dd8176d3..3d5fc75d9a07 100644 --- a/sys/netinet6/ip6_mroute.c +++ b/sys/netinet6/ip6_mroute.c @@ -273,8 +273,6 @@ static void expire_upcalls(void *); */ static struct ifnet *multicast_register_if6; -#define ENCAP_HOPS 64 - /* * Private variables. */ From nobody Mon Feb 16 19:47:34 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFCwk6sSfz6SFyn for ; Mon, 16 Feb 2026 19:47: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFCwk4Y92z3pGV for ; Mon, 16 Feb 2026 19:47:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771271254; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8JOADfKQQS4g5FI2WGC7ULwaTD+tjaRdWfwrkxjhvwY=; b=nysYAfQxER5/BDH6OS+4MDG1fH+/Ct/C51FvxH4haqri3TLFJA8zBxXXnhh+Cw7LmJu5ql 9nXSGd8VUcDgWfCsgRRaPbzRmby821Xhs1rPLjXqb//+bDLtPnDlCbkYhl/3E6KWmH8509 bpYgyB9sXHshqM6IKJgqeqWRPNX/T14fLlUguqgjdD4e/gOwuDJKG/BvBbCMtDtqsJ9X7O ulmL9jTzzFYYhuSl7kCcPXm1Rq8oqg1v3IOy2r6OntS15sV2z4QqINs6ydsvpWRIJHvyKT WEokGkGbROXcuTcQiDQf+nOdjrnfDL5uNmDUZnOpmz21VF9HebKyBjnejbFF3w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771271254; a=rsa-sha256; cv=none; b=BlBs3rDH3nJsC9W7TbTMjfdtca7A4m5kBRca5wXQV0yyvbBHzA/zOlZyyMDdu1bUuKcTb9 eCGJCWb0WD/vIV5C6YJumwY2HiFWRVIm4GG24bIiSVF93oVrA4ROqV/KUhucOR5oxMuIdF PQZWT1F3yGW/n3C+TTP2zYaCSC92yhCmS9unTGDTDJ5RV6t4oGPJWKfZrGaBefR91ioXtl m8xRr+/dIiht9wIo/2sQ6NF0qOgQXztwxAePiRhbnZWOigzaukkaeLvnnDO57+XpUw/Fcu zi9cxEKuisjOG4n1Y9Z0CUSW4YxGCBJ6c9y8SPLFlzrqObY53/+MAhAoaAkh1A== 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=1771271254; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8JOADfKQQS4g5FI2WGC7ULwaTD+tjaRdWfwrkxjhvwY=; b=kovxtf7XdV9jAOlrza8RmTFd7KA1sA8dI3HS6f/Cv2/38348j02iElzCUEiqP6eAKqDFnv QmZFSaSaU/7ETDbbNawGB+bTpQyr2INkDhBXugzLqsfmWjH9bc3HaD84WeALbQgjgihJs7 2EcGWvdHNuWUqyvqJKfEBbjSiP0x7/07TSwhsXSBWPFfvq5K4AUaJDvvBPBkOMYxybyxUj CRUbeLZsnKEaxodL+L8KV8uOAEczBREFv3hS/YEd3V9d3MX/33l/ruJGGEiTomFCxq7TKo 4ge5SaVdN5jyK/GEEiCC2CDGhbbzI+1HD8FnHYgiLP9RuPyxc/RU/hZP40Hzvg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFCwk3Zlxzdwl for ; Mon, 16 Feb 2026 19:47:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3f9c8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 19:47:34 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 2e8f0a46d391 - stable/14 - ip_mroute: Make privilege checking more consistent List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/14 X-Git-Reftype: branch X-Git-Commit: 2e8f0a46d391c43f22c8deaa88e2c03cf205b8a4 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 19:47:34 +0000 Message-Id: <69937456.3f9c8.fb5c22@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=2e8f0a46d391c43f22c8deaa88e2c03cf205b8a4 commit 2e8f0a46d391c43f22c8deaa88e2c03cf205b8a4 Author: Mark Johnston AuthorDate: 2026-02-02 14:53:35 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 16:09:28 +0000 ip_mroute: Make privilege checking more consistent - The v6 socket option and ioctl handlers had no privilege checks at all. The socket options, I believe, can only be reached via a raw socket, but a jailed root user with a raw socket shouldn't be able to configure multicast routing in a non-VNET jail. The ioctls can only be used to fetch stats. - Delete a bogus comment in X_mrt_ioctl(), one can issue multicast routing ioctls against any socket. Note that the call path is soo_ioctl()->rtioctl_fib()->mrt_ioctl(). I think all of the mroute privilege checks should be done within the ip(6)_mroute code, but let's first make the v4 and v6 modules consistent. Reviewed by: glebius MFC after: 2 weeks Sponsored by: Stormshield Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D54982 (cherry picked from commit 74839871be363c5c2ac7ccd3396f36bdb58d19de) --- sys/netinet/ip_mroute.c | 5 ----- sys/netinet6/ip6_mroute.c | 15 +++++++++------ sys/netinet6/raw_ip6.c | 6 ++++++ 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/sys/netinet/ip_mroute.c b/sys/netinet/ip_mroute.c index 133269edf3ba..5c71f6658a8f 100644 --- a/sys/netinet/ip_mroute.c +++ b/sys/netinet/ip_mroute.c @@ -542,11 +542,6 @@ X_mrt_ioctl(u_long cmd, caddr_t data, int fibnum __unused) { int error; - /* - * Currently the only function calling this ioctl routine is rtioctl_fib(). - * Typically, only root can create the raw socket in order to execute - * this ioctl method, however the request might be coming from a prison - */ error = priv_check(curthread, PRIV_NETINET_MROUTE); if (error) return (error); diff --git a/sys/netinet6/ip6_mroute.c b/sys/netinet6/ip6_mroute.c index 3d5fc75d9a07..76e20b110d72 100644 --- a/sys/netinet6/ip6_mroute.c +++ b/sys/netinet6/ip6_mroute.c @@ -92,6 +92,7 @@ #include #include #include +#include #include #include #include @@ -459,24 +460,26 @@ X_ip6_mrouter_get(struct socket *so, struct sockopt *sopt) static int X_mrt6_ioctl(u_long cmd, caddr_t data) { - int ret; - - ret = EINVAL; + int error; + error = priv_check(curthread, PRIV_NETINET_MROUTE); + if (error) + return (error); + error = EINVAL; switch (cmd) { case SIOCGETSGCNT_IN6: - ret = get_sg_cnt((struct sioc_sg_req6 *)data); + error = get_sg_cnt((struct sioc_sg_req6 *)data); break; case SIOCGETMIFCNT_IN6: - ret = get_mif6_cnt((struct sioc_mif_req6 *)data); + error = get_mif6_cnt((struct sioc_mif_req6 *)data); break; default: break; } - return (ret); + return (error); } /* diff --git a/sys/netinet6/raw_ip6.c b/sys/netinet6/raw_ip6.c index caee18cab071..caefba22c0ca 100644 --- a/sys/netinet6/raw_ip6.c +++ b/sys/netinet6/raw_ip6.c @@ -607,6 +607,9 @@ rip6_ctloutput(struct socket *so, struct sockopt *sopt) case MRT6_ADD_MFC: case MRT6_DEL_MFC: case MRT6_PIM: + error = priv_check(curthread, PRIV_NETINET_MROUTE); + if (error != 0) + return (error); if (inp->inp_ip_p != IPPROTO_ICMPV6) return (EOPNOTSUPP); error = ip6_mrouter_get ? ip6_mrouter_get(so, sopt) : @@ -630,6 +633,9 @@ rip6_ctloutput(struct socket *so, struct sockopt *sopt) case MRT6_ADD_MFC: case MRT6_DEL_MFC: case MRT6_PIM: + error = priv_check(curthread, PRIV_NETINET_MROUTE); + if (error != 0) + return (error); if (inp->inp_ip_p != IPPROTO_ICMPV6) return (EOPNOTSUPP); error = ip6_mrouter_set ? ip6_mrouter_set(so, sopt) : From nobody Mon Feb 16 19:47:35 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFCwm2L6Sz6SFyv for ; Mon, 16 Feb 2026 19:47: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFCwl534Fz3pMH for ; Mon, 16 Feb 2026 19:47:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771271255; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aGLjdmEVVIAWLVQZyJwvyR8b5XCWYi3vr7HzGsLAfyw=; b=eTc15A3PdMLVUUUAJMtd6gPetkhl/Dijq94A7xO/rG1UCDkaDrCb8ws6O3BJOtGym7VVCH ItbjY4/0VzlSbdr0waBxbapdCaHE6L64ss3UdZi34aNr4n4Bfv22K4+r3X/h/KLm7sL1h/ T/58Hg+ZqvQqqwSEl+P+dUGPK1s3rW7PCLXvOQV96dqfIa8ZC5ce+x+s12g5+sn/CI2kgF fK/gKanVZ50aiyk7Hjq6reBJUix+//H1EezkTrTfWwnI+c2h+1yLO0Ud7XKrVpJXcpI7kJ XEGF/Uv1E/2WOUSyLFCtWrJgrb5gJY0vSLmsLGwmmbHhiy7OqV0WGMp6RrZWcg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771271255; a=rsa-sha256; cv=none; b=aXbrmouxhoKrYqDZ9ChGrG54fRwWO+UcO7UgntkJkr/1dzXmVEmiqLsloadQ5fdDvLgZPX xlclAdBrwUFXw36mg/r6m9tWzKiDutKY5sBDJrbTqhqLlbSeBnOmJp46H01OFJcJK/OuSY 3T+49toEGJYGXcSriZgeX1Mm2bItO/zW3N9pvVXHd0z7kopRk1JpnljlROgQylSBuTQRvF dMpYGY2ugseNFCShzsULwZZk6H9ddb88RSNgau551/INRVIY6JJjRHIrBI6NnXdDjdhhE0 AxttBRa/Mij0u7WU6mH+mctu4MaXha+n6deQhTXdhzn63o7q+7Nu1WeVARXE+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=1771271255; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aGLjdmEVVIAWLVQZyJwvyR8b5XCWYi3vr7HzGsLAfyw=; b=Au4d1Qmw8kstz28BToJpAHaNddrnnaAwCeSa2tELsxtwjDiigvz2BvueCk3cw/e5C+zF10 Fuz3IxPso7JEH8c7sBUFvlh15LGTzIAQFiBe4AxPqih3IKYTuGjX9GTRsnBWTYEcW3qntq UwOKyE6fLHrMQziOqZkkm8amB0jTUZPFcdxplCG+RzchGBsaM4QGiqlfkxa5qktt8wGCqF JOrjDqGo/FMG8LPZNXlmXEHQsNIaQOkhCLJrNMG/Oy21LZn5yNy6F9heqltIp8sfDzh9Pf F6iT/HdwEMCcrOD966H4g9dwoLAfjn65fBDaOAcMLBI0vCwg9MXnOwlO0Riviw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFCwl4Gnhzdvr for ; Mon, 16 Feb 2026 19:47:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3fde9 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 19:47:35 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 20f81dcba998 - stable/14 - ip6_mroute: Make MF6CFIND a regular function List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/14 X-Git-Reftype: branch X-Git-Commit: 20f81dcba99874bef290745e39abb53f94a8474f Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 19:47:35 +0000 Message-Id: <69937457.3fde9.c16fbe5@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=20f81dcba99874bef290745e39abb53f94a8474f commit 20f81dcba99874bef290745e39abb53f94a8474f Author: Mark Johnston AuthorDate: 2026-02-02 14:57:20 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 16:09:28 +0000 ip6_mroute: Make MF6CFIND a regular function This is more natural and corresponds more closely to the v4 multicast routing code. No functional change intended. Reviewed by: glebius MFC after: 2 weeks Sponsored by: Stormshield Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D54983 (cherry picked from commit b370fcc716b9cfd4d08e291f0009f02452c84d64) --- sys/netinet6/ip6_mroute.c | 45 ++++++++++++++++++++------------------------- 1 file changed, 20 insertions(+), 25 deletions(-) diff --git a/sys/netinet6/ip6_mroute.c b/sys/netinet6/ip6_mroute.c index 76e20b110d72..86b65fbbd047 100644 --- a/sys/netinet6/ip6_mroute.c +++ b/sys/netinet6/ip6_mroute.c @@ -297,26 +297,6 @@ VNET_DEFINE_STATIC(int, pim6); (g).s6_addr32[0] ^ (g).s6_addr32[1] ^ \ (g).s6_addr32[2] ^ (g).s6_addr32[3]) -/* - * Find a route for a given origin IPv6 address and Multicast group address. - */ -#define MF6CFIND(o, g, rt) do { \ - struct mf6c *_rt = mf6ctable[MF6CHASH(o,g)]; \ - rt = NULL; \ - while (_rt) { \ - if (IN6_ARE_ADDR_EQUAL(&_rt->mf6c_origin.sin6_addr, &(o)) && \ - IN6_ARE_ADDR_EQUAL(&_rt->mf6c_mcastgrp.sin6_addr, &(g)) && \ - (_rt->mf6c_stall == NULL)) { \ - rt = _rt; \ - break; \ - } \ - _rt = _rt->mf6c_next; \ - } \ - if (rt == NULL) { \ - MRT6STAT_INC(mrt6s_mfc_misses); \ - } \ -} while (/*CONSTCOND*/ 0) - /* * Macros to compute elapsed time efficiently * Borrowed from Van Jacobson's scheduling code @@ -367,6 +347,22 @@ static int X_ip6_mrouter_set(struct socket *, struct sockopt *); static int X_ip6_mrouter_get(struct socket *, struct sockopt *); static int X_mrt6_ioctl(u_long, caddr_t); +static struct mf6c * +mf6c_find(const struct in6_addr *origin, const struct in6_addr *group) +{ + MFC6_LOCK_ASSERT(); + + for (struct mf6c *rt = mf6ctable[MF6CHASH(*origin, *group)]; rt != NULL; + rt = rt->mf6c_next) { + if (IN6_ARE_ADDR_EQUAL(&rt->mf6c_origin.sin6_addr, origin) && + IN6_ARE_ADDR_EQUAL(&rt->mf6c_mcastgrp.sin6_addr, group) && + rt->mf6c_stall == NULL) + return (rt); + } + MRT6STAT_INC(mrt6s_mfc_misses); + return (NULL); +} + /* * Handle MRT setsockopt commands to modify the multicast routing tables. */ @@ -495,7 +491,7 @@ get_sg_cnt(struct sioc_sg_req6 *req) MFC6_LOCK(); - MF6CFIND(req->src.sin6_addr, req->grp.sin6_addr, rt); + rt = mf6c_find(&req->src.sin6_addr, &req->grp.sin6_addr); if (rt == NULL) { ret = ESRCH; } else { @@ -818,9 +814,8 @@ add_m6fc(struct mf6cctl *mfccp) MFC6_LOCK(); - MF6CFIND(mfccp->mf6cc_origin.sin6_addr, - mfccp->mf6cc_mcastgrp.sin6_addr, rt); - + rt = mf6c_find(&mfccp->mf6cc_origin.sin6_addr, + &mfccp->mf6cc_mcastgrp.sin6_addr); /* If an entry already exists, just update the fields */ if (rt) { MRT6_DLOG(DEBUG_MFC, "no upcall o %s g %s p %x", @@ -1115,7 +1110,7 @@ X_ip6_mforward(struct ip6_hdr *ip6, struct ifnet *ifp, struct mbuf *m) /* * Determine forwarding mifs from the forwarding cache table */ - MF6CFIND(ip6->ip6_src, ip6->ip6_dst, rt); + rt = mf6c_find(&ip6->ip6_src, &ip6->ip6_dst); MRT6STAT_INC(mrt6s_mfc_lookups); /* Entry exists, so forward if necessary */ From nobody Mon Feb 16 19:47:37 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFCwp0R7Jz6SFnZ for ; Mon, 16 Feb 2026 19:47:38 +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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFCwn64Wkz3pPl for ; Mon, 16 Feb 2026 19:47:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771271257; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rK5319jQBsYzN30x3L+dQChR9VA091JxJkdiSnHZO8s=; b=qE0gDF/7krpn8LgkseiJAes++eEIY9KvskLb1zNy78q85OpS3EDVNCcGRVPaVP+YrzECuc u2pyxgbHm01D3JYfVyFy6vBeQCsaTFCnaSCPevlBZzXpRfl4ou0ejvgjne6XL+J7b0YXhO cuM1Z3UYxjcIoV1YI5lownUdWbDPCL4xoxzVTojUEA9lNozay7SEEN9WjIWXZ2whQq6ONJ 71wDuIVGK4ayggIM8qH6qqhYDkYxxCo5pv/VbV5rpnLFIJ3Ax2l2FZkYCQySTjT1U6fqep P1eNshB2c8LbuWWYKMfrlEzu7qAKCP5G5agXB4sE5A6gI3KZDIv/aamKJMMO7A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771271257; a=rsa-sha256; cv=none; b=q4kdQaafQEQRkxy7iHF8AxpRFNRSwHU+N1pYPt8q/xdjieX3Gr8pCRu6w/J9rGWj4igcBW d/dwhS9gXAVMrByCfssq7Ca3pMYCwSjphLU/o81+GJkKvi6pk3p77Ir1sBvAARCosYhnt/ Ux/9WSmuxKcUjPxKgho5C9mG7QPSCcolrpzdHK5ADKF2diU1gvuXLS/htXsFgzFCwbsPGz xDIgHszSLu2RVjPuyhr6ZMQpiiORtdy3gGBddfqwtzWzZK28MWX9c5oHOhJaCpksfJj1hL A4Yamd60YIwGsQFJmKJibUMnZDvMHzyLnPEJPla0z4k5uANfFHx2j1zMNUxJ5g== 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=1771271257; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rK5319jQBsYzN30x3L+dQChR9VA091JxJkdiSnHZO8s=; b=sdkOHLwcDS/iU4lA8/kYxCYeZHfIFhdFhNfjEl+vGax515RilKxsJkIn3Bb8BMtjw0a7rE 6pItC9lHbP/zmF0Sc1nMZa3kramy5Yj2ujZ4zGp/OD6k0631vE8nnbcfOVTtN4XqiNKDEX ReyIZrfROvH4b/eksgiCxGyABX4mzVdeWZIshug2fOOxrCI6tkD5zJA41uW7OdWQ+6hsvR H2KMt0w1+/vxlBPTtqnDM3pYGopNSIgSi9WzAb0zWG6wXEYHPeawUl3F6d35O19E9gPx9A vLOuX6fx14KCMELKzfCl0GONHd1TezqdxdFMiTwp3LvSRUl7DFyFMfN0H1PxJg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFCwn5gHjzdlQ for ; Mon, 16 Feb 2026 19:47:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 4081a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 19:47:37 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 21fe380f2d83 - stable/14 - ip6_mroute: Fix the UPCALL_TIMING build List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/14 X-Git-Reftype: branch X-Git-Commit: 21fe380f2d83fdbbebd3a97aff801476e24e4a16 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 19:47:37 +0000 Message-Id: <69937459.4081a.27c9a9ef@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=21fe380f2d83fdbbebd3a97aff801476e24e4a16 commit 21fe380f2d83fdbbebd3a97aff801476e24e4a16 Author: Mark Johnston AuthorDate: 2026-02-02 14:57:49 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 16:09:28 +0000 ip6_mroute: Fix the UPCALL_TIMING build MFC after: 2 weeks Sponsored by: Stormshield Sponsored by: Klara, Inc. (cherry picked from commit 5bb953b095461b488b102ab3025f42cd2ef61f9d) --- sys/netinet6/ip6_mroute.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/netinet6/ip6_mroute.c b/sys/netinet6/ip6_mroute.c index 2f5b95f715b4..f152014c3421 100644 --- a/sys/netinet6/ip6_mroute.c +++ b/sys/netinet6/ip6_mroute.c @@ -323,7 +323,7 @@ VNET_DEFINE_STATIC(int, pim6); #ifdef UPCALL_TIMING #define UPCALL_MAX 50 static u_long upcall_data[UPCALL_MAX + 1]; -static void collate(); +static void collate(struct timeval *); #endif /* UPCALL_TIMING */ static int ip6_mrouter_init(struct socket *, int, int); From nobody Mon Feb 16 19:47:36 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFCwn52WBz6SFyx for ; Mon, 16 Feb 2026 19:47: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFCwm6T24z3pGm for ; Mon, 16 Feb 2026 19:47:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771271256; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=d8Uv9X57MEdnI+xNQ8tQrFZoUJ8yLMPHBeXIPD2yXLM=; b=j1UXXD9h+0QKU5u4hz8Y84RGKJkPHg0TDVVv6cydqkCQKcCr12KYJVvNIkOkvzkl/Q8Ly0 oduilQA9WGV11wsIcHpqPyuNGMznFnnNWuDR5JKkVGakt+5C2pNG6wSRcIup/I9k9Yluxw jUj9UnRzV5gr93QzbubF6RyMZr1l8NxZlYPXZQe2B9o4WMLn4paPg+LloVh0Te63xfkf04 VQmNQqW4A/F1N7J4c7Zgqj360zeuZbMk8pNSnyarIrxRDs6ZF2meHj9btGCbX/AWPCjLi8 B2OtA5kyXKNUd0juH6GDk/34alC1lJPFqZ0FFEZgppFACbcJzTHc7K0/vxkQgA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771271256; a=rsa-sha256; cv=none; b=bv0stYMaRH88hGHGO3h9Mxq5JP5EX1287Mijt/CNq/FhvYp+CV5FdHGjAlIG0zA+31iqNm dfy45KoiRYG70TkQe2kQSEy61OLFRu93U0mZ5Z201Y0j5AhyeTTKDTBCrEkBniE/ttWDB/ lyNb5zpCHPGevcDH0movIOa346UoIyWp90FwmbxrMfpleu6/iRfAjm99rBkM2zXusniEXH y/pRFeYtro1s3VjuItUu8EJ8vVH1Mbh+wwLL0gphDzJThZilCPq9sYyHCmULcBKWh672hy KYzzw+aiyExa5rY6oXil00sZqg1+IWXrApCWcxzc4vH8m4KKn3X0eZr1Cv2xBw== 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=1771271256; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=d8Uv9X57MEdnI+xNQ8tQrFZoUJ8yLMPHBeXIPD2yXLM=; b=A51MGe4A9X6fmzD31KoR3FoHZhvPzSTSw8ftCzEBlQAVlXYm324rFxCaAddPjNldDeKgdL re5X/q+4rAsjYtgb6flPA9uf5tCdI6HiXysQc584JLkAMSyqXLwrJtO0wY0FDz45+p2muU zUFF9yI7Yr1bgE4xgwDWdVQlCqMtr9rbPHRpZgCXOlZblc1fvP9F8Tdj7QQfrH+1Ld0KpQ rQpbqv3sFdNkDSn3f6UbdYs73SbAP4aP0/CaEG1g0KKIP9Jt/FLvF6BnUg/smK1NLFyGdc P2cI45kZrbk5o5dPXGFqUJgXvzhb1MjKX2e9PcV2+R0RrVl9/Kzoy5wGf0LdQg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFCwm598GzdGw for ; Mon, 16 Feb 2026 19:47:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 40a05 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 19:47:36 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 80e444f1f926 - stable/14 - ip6_mroute: Remove an unhelpful comment List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/14 X-Git-Reftype: branch X-Git-Commit: 80e444f1f92670d88bad35e227427c19b98800bc Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 19:47:36 +0000 Message-Id: <69937458.40a05.25f1105f@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=80e444f1f92670d88bad35e227427c19b98800bc commit 80e444f1f92670d88bad35e227427c19b98800bc Author: Mark Johnston AuthorDate: 2026-02-02 14:59:20 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 16:09:28 +0000 ip6_mroute: Remove an unhelpful comment ifnets already track if_allmulti() calls in the if_amcount field. That field is older than the comment, so I'm not exactly sure what the intent was; let's just remove it. MFC after: 2 weeks Sponsored by: Stormshield Sponsored by: Klara, Inc. (cherry picked from commit a45fb94801dffd414bdb1981def0e977ef0c774f) --- sys/netinet6/ip6_mroute.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/sys/netinet6/ip6_mroute.c b/sys/netinet6/ip6_mroute.c index 86b65fbbd047..2f5b95f715b4 100644 --- a/sys/netinet6/ip6_mroute.c +++ b/sys/netinet6/ip6_mroute.c @@ -257,10 +257,6 @@ static void expire_upcalls(void *); #define EXPIRE_TIMEOUT (hz / 4) /* 4x / second */ #define UPCALL_EXPIRE 6 /* number of timeouts */ -/* - * XXX TODO: maintain a count to if_allmulti() calls in struct ifnet. - */ - /* * 'Interfaces' associated with decapsulator (so we can tell * packets that went through it from ones that get reflected From nobody Mon Feb 16 19:47:38 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFCwq4PBQz6SFlY for ; Mon, 16 Feb 2026 19:47:39 +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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFCwq1Mp8z3p8N for ; Mon, 16 Feb 2026 19:47:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771271259; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/xLISd0UaFkcnrOTSKOwh0X2w0jVzax1QpQYDCNSBtc=; b=FYtwHvGWYDt6QfL6GfRTUq0ohGAbGi7tT4Gt0K9SxIxVN9ePfIk2dXFNZeU+mc3y4nLZbr eKElfieqAWmyXzX1NNILpLQb35vgbTZwr8b9/Vt+6UpZQcl2GDc5dyndMId+scL0xchwPu uL/LgWDn5iSJQL8UYVQxsCKBPErEPTrSsNUJA6O2UDlWeHbopT/J2bIckksVYmeIu6DD2w YxarnEIHW+eBmWTuWq3cC3pfr/TqV9rBRVw/2a08jypNGxRbPNRrcYLfzcUrC8nuVWVh1K gQQbpqNIk+CzV1KGkhzU4hDtDv1WUR7cxVoS1ZMx32swbvrwP5nGr1NbYtyFCA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771271259; a=rsa-sha256; cv=none; b=TJYRinaFY8EGEkrU5K2L5F7B/XzsKUavr+GYw4X14M2up+tQbrHnSU99Szyenm0KE/+Xsh NV3pZdWVm9mOoE98zrvtliUHMVjaY4TOx/EFt8m/RyoRTxyEpnqsAcEiqmj3FmBTY6SINT JTW/QBMi+0/Y+7WE2CmD0M5HfUG/N+NtUClan0i5Q/58dY+vQao9Rve2v1SvUfAHOO0gAg 00WojNJLEoqe2NLV9R45YihqYWTepKfkfef+6Gk6SMseGYcv6upcIWD2rpyg47u0x/jNqD 9+id2UVg0SxlgmUSpOWAtTJtQlkoK7frqGLHlN9mHT1KpjeLPdC8Ths48aXL6g== 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=1771271259; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/xLISd0UaFkcnrOTSKOwh0X2w0jVzax1QpQYDCNSBtc=; b=c7tGKxjSlSIQMsB6ILv+Jlfk52uZLDxh6LGhxmDSGVnWCclQ1bPzZz/GR8/OyuyzLTIhEx ldzCVXGSN4BJDrMH8fNtPm+O27XSNpA5ghvV2Tyz9V+n1QZlJkkU4cfls12uCDL/8zWu/x 4qgc16auQhYKv305Tj4sYaBUeWydNbY4nzDm0apRVKsVKPKumA5MJxdUOjgDwz3TnSmcYv uDrAJHaUYvayy09ESGDKeod8UuExsE6/L9wfzr1HQilKy1ybvynjYxin5xVtdO/KTNlVDm Fb0URvPqqR+2TQVmgz0sM6VrboyizRE4NoN8vQN+hXwzvqq8hYyiBJ3drItKXA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFCwp6wnhzdhn for ; Mon, 16 Feb 2026 19:47:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3f7fd by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 19:47:38 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Siva Mahadevan From: Mark Johnston Subject: git: 30aaec7a23cb - stable/14 - tests/mac_ipacl: restore sysctls after modification List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/14 X-Git-Reftype: branch X-Git-Commit: 30aaec7a23cb580fe7a1e953340e8ae03d340f80 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 19:47:38 +0000 Message-Id: <6993745a.3f7fd.2b078b1a@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=30aaec7a23cb580fe7a1e953340e8ae03d340f80 commit 30aaec7a23cb580fe7a1e953340e8ae03d340f80 Author: Siva Mahadevan AuthorDate: 2025-07-15 16:45:24 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 18:41:12 +0000 tests/mac_ipacl: restore sysctls after modification While here, use 'required_kmods' instead of ad-hoc checks. Signed-off-by: Siva Mahadevan Reviewed by: markj MFC after: 3 days Sponsored by: The FreeBSD Foundation Pull request: https://github.com/freebsd/freebsd-src/pull/1856 (cherry picked from commit 79042fd7ed4187d2a74e37618f6fd77f448ca353) --- tests/sys/mac/ipacl/Makefile | 5 +++++ tests/sys/mac/ipacl/ipacl_test.sh | 16 ++++++++++++---- tests/sys/mac/ipacl/utils.subr | 4 ---- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/tests/sys/mac/ipacl/Makefile b/tests/sys/mac/ipacl/Makefile index 4a5dfaa015c3..bfac10e4655a 100644 --- a/tests/sys/mac/ipacl/Makefile +++ b/tests/sys/mac/ipacl/Makefile @@ -7,4 +7,9 @@ ATF_TESTS_SH+= ipacl_test ${PACKAGE}FILES+= utils.subr +.for t in ${ATF_TESTS_SH} +TEST_METADATA.$t+= required_kmods="mac_ipacl" +TEST_METADATA.$t+= is_exclusive="true" +.endfor + .include diff --git a/tests/sys/mac/ipacl/ipacl_test.sh b/tests/sys/mac/ipacl/ipacl_test.sh index 0de1b414857b..892f4c154b66 100644 --- a/tests/sys/mac/ipacl/ipacl_test.sh +++ b/tests/sys/mac/ipacl/ipacl_test.sh @@ -40,6 +40,9 @@ ipacl_v4_body() { ipacl_test_init + prev_ipacl_ipv4="$(sysctl -n security.mac.ipacl.ipv4)" + prev_ipacl_rules="$(sysctl -n security.mac.ipacl.rules)" + epairA=$(vnet_mkepair) epairB=$(vnet_mkepair) epairC=$(vnet_mkepair) @@ -130,8 +133,9 @@ ipacl_v4_body() atf_check -s not-exit:0 -e ignore \ jexec A ifconfig ${epairA}b 203.0.113.1/24 up - # Reset rules OID. - sysctl security.mac.ipacl.rules= + # Reset sysctls. + sysctl security.mac.ipacl.rules="${prev_ipacl_rules}" + sysctl security.mac.ipacl.ipv4="${prev_ipacl_ipv4}" } ipacl_v4_cleanup() @@ -151,6 +155,9 @@ ipacl_v6_body() { ipacl_test_init + prev_ipacl_ipv6="$(sysctl -n security.mac.ipacl.ipv6)" + prev_ipacl_rules="$(sysctl -n security.mac.ipacl.rules)" + epairA=$(vnet_mkepair) epairB=$(vnet_mkepair) epairC=$(vnet_mkepair) @@ -265,8 +272,9 @@ ipacl_v6_body() atf_check -s not-exit:0 -e ignore jexec A ifconfig \ ${epairA}b inet6 2001:db8::abcd/32 up - # Reset rules OID. - sysctl security.mac.ipacl.rules= + # Reset sysctls. + sysctl security.mac.ipacl.rules="${prev_ipacl_rules}" + sysctl security.mac.ipacl.ipv6="${prev_ipacl_ipv6}" } ipacl_v6_cleanup() diff --git a/tests/sys/mac/ipacl/utils.subr b/tests/sys/mac/ipacl/utils.subr index 1d80414bafea..2fff8b1862da 100644 --- a/tests/sys/mac/ipacl/utils.subr +++ b/tests/sys/mac/ipacl/utils.subr @@ -5,10 +5,6 @@ ipacl_test_init() { vnet_init - - if ! kldstat -q -m mac_ipacl; then - atf_skip "mac_ipacl is not loaded" - fi } ipacl_test_cleanup() From nobody Mon Feb 16 19:47:39 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFCws0lxDz6SFtN for ; Mon, 16 Feb 2026 19:47: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFCwr0dsNz3pQ4 for ; Mon, 16 Feb 2026 19:47:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771271260; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EdkPTmCKKZJVfYqD248Pp6y445UHsjFRb3qifp5DjwE=; b=fIsnovdy6PBuulRBD74kipNXewGeUkX7yfVhQZyLcasw69ZQbXQzLvf5bo95T0iji4V+mb 1dxyx6Z4QGehiZguCqQbEAh4PEXkVVwWR9JAxWKD1cl8/zJ24d0nMhcmK5O4Pi318OE7XZ eImqXAqCo6W7Wt2IAhXm7HiN9wCd14jJvcpqZT2b2PXXwYtc9R5ahkai/SS1sIJkIoauno Jza+qXThgUp47qnmeMI6H5mkJ7+t8KT7/hB9il/E5BFu8yKwJs/VNsgztx9Ut4HDTSAr2f Lh48kZMHDJMDlKm59u2oySrq4ogdehMM12yHAI23NP6n6bjXQReOzWslgWqKqA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771271260; a=rsa-sha256; cv=none; b=ZhgRTCYwYwg5GZqBGTM1eF0asIcledzoquFf3bmHnH3xFA1DlJDMl7LIck0ZTfU1p/tQjs UnPNXcfBM/UKhiNuj/CRNX85HBsm4tASKV+nGTLnUNMJd1XXPfW16WgnzT7ts/ShPV2J0n mY0DdlSs+nxMcZuOpdNjsFGTzz7h3NIROgtFdLiS0l711gopCMuDyaoTOTAfVoc7stSWMO W/N4joDbX/r5dFtYLbutxSUxKQMohWJ6I5Nqh6cuacCO6eMQc3j9MtC1kAdNSKzVE+aGi2 VF2n+fah88huwLs9ULpa/luQi8p/JsK0qColHIoRkB3zy3tI2fO9GVAwp8Qqpw== 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=1771271260; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EdkPTmCKKZJVfYqD248Pp6y445UHsjFRb3qifp5DjwE=; b=EMjLc4wAYEtPbZphrHqSl/4Ef6sYBF8+x7p5fqUns0guivewYjJexOEIgmL6kEF1+8XCvT irI3ajFMH9IBWEEAxA48MWXyZ2ztjiiZ2T5oyDJpXClxLkQ0DAE2WfJU2foSSGI3pxzZRL mP/4+125Gs8fn3WSoXlibnjBZYTrvGYlGgG57tt6cw+jTCTsQOdzLHNLVBi/1AzgYi14Af ZZ8nIc8QgZMYtDGe8TO+iWxOrJ9p8Y5HQCCgjjmrbrjOhISUXXmfR0WYF8QZlmjxI8eVC6 LbIehHd5kVrzRl4b15KBjJnk5Pty/0s4yViAX/Dc0elpxDF7FS9zh/L8AUTbHw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFCwq6w5Szdvs for ; Mon, 16 Feb 2026 19:47:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3fe56 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 16 Feb 2026 19:47:39 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Siva Mahadevan From: Mark Johnston Subject: git: b4c9b7d8c7ea - stable/14 - tests/mac_portacl: restore sysctls after modification List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/14 X-Git-Reftype: branch X-Git-Commit: b4c9b7d8c7eaf297981b6197f4d3f15631703e36 Auto-Submitted: auto-generated Date: Mon, 16 Feb 2026 19:47:39 +0000 Message-Id: <6993745b.3fe56.4c9c189b@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=b4c9b7d8c7eaf297981b6197f4d3f15631703e36 commit b4c9b7d8c7eaf297981b6197f4d3f15631703e36 Author: Siva Mahadevan AuthorDate: 2025-07-15 16:45:24 +0000 Commit: Mark Johnston CommitDate: 2026-02-16 19:41:59 +0000 tests/mac_portacl: restore sysctls after modification While here, use 'required_kmods' instead of ad-hoc checks. Signed-off-by: Siva Mahadevan Reviewed by: markj MFC after: 3 days Sponsored by: The FreeBSD Foundation Pull Request: https://github.com/freebsd/freebsd-src/pull/1855 (cherry picked from commit 170aac93479467334062813c1175a80200400b79) --- tests/sys/mac/portacl/Makefile | 1 + tests/sys/mac/portacl/misc.sh | 12 ++---------- tests/sys/mac/portacl/nobody_test.sh | 1 + tests/sys/mac/portacl/root_test.sh | 1 + 4 files changed, 5 insertions(+), 10 deletions(-) diff --git a/tests/sys/mac/portacl/Makefile b/tests/sys/mac/portacl/Makefile index 47993fe54c54..a26ff4a7c80a 100644 --- a/tests/sys/mac/portacl/Makefile +++ b/tests/sys/mac/portacl/Makefile @@ -9,6 +9,7 @@ TAP_TESTS_SH+= nobody_test TAP_TESTS_SH+= root_test .for t in ${TAP_TESTS_SH} +TEST_METADATA.$t+= required_kmods="mac_portacl" TEST_METADATA.$t+= required_user="root" TEST_METADATA.$t+= timeout="450" .endfor diff --git a/tests/sys/mac/portacl/misc.sh b/tests/sys/mac/portacl/misc.sh index a1b729c87777..4d3f18fce1c1 100644 --- a/tests/sys/mac/portacl/misc.sh +++ b/tests/sys/mac/portacl/misc.sh @@ -1,15 +1,5 @@ #!/bin/sh -sysctl security.mac.portacl >/dev/null 2>&1 -if [ $? -ne 0 ]; then - echo "1..0 # SKIP MAC_PORTACL is unavailable." - exit 0 -fi -if [ $(id -u) -ne 0 ]; then - echo "1..0 # SKIP testcases must be run as root" - exit 0 -fi - ntest=1 check_bind() { @@ -95,6 +85,7 @@ bind_test() { sysctl security.mac.portacl.rules= >/dev/null } +portacl_enabled=$(sysctl -n security.mac.portacl.enabled) reserved_high=$(sysctl -n net.inet.ip.portrange.reservedhigh) suser_exempt=$(sysctl -n security.mac.portacl.suser_exempt) port_high=$(sysctl -n security.mac.portacl.port_high) @@ -103,4 +94,5 @@ restore_settings() { sysctl -n net.inet.ip.portrange.reservedhigh=${reserved_high} >/dev/null sysctl -n security.mac.portacl.suser_exempt=${suser_exempt} >/dev/null sysctl -n security.mac.portacl.port_high=${port_high} >/dev/null + sysctl -n security.mac.portacl.enabled=${portacl_enabled} >/dev/null } diff --git a/tests/sys/mac/portacl/nobody_test.sh b/tests/sys/mac/portacl/nobody_test.sh index 7e64f68113ea..a3f2168dc81d 100644 --- a/tests/sys/mac/portacl/nobody_test.sh +++ b/tests/sys/mac/portacl/nobody_test.sh @@ -13,6 +13,7 @@ trap restore_settings EXIT INT TERM sysctl security.mac.portacl.suser_exempt=1 >/dev/null sysctl net.inet.ip.portrange.reservedhigh=78 >/dev/null +sysctl security.mac.portacl.enabled=1 >/dev/null bind_test fl fl uid nobody tcp 77 bind_test ok ok uid nobody tcp 7777 diff --git a/tests/sys/mac/portacl/root_test.sh b/tests/sys/mac/portacl/root_test.sh index daa5b147b4fa..d8898ff4f80e 100644 --- a/tests/sys/mac/portacl/root_test.sh +++ b/tests/sys/mac/portacl/root_test.sh @@ -10,6 +10,7 @@ echo "1..48" trap restore_settings EXIT INT TERM sysctl security.mac.portacl.suser_exempt=1 >/dev/null +sysctl security.mac.portacl.enabled=1 >/dev/null bind_test ok ok uid root tcp 77 bind_test ok ok uid root tcp 7777 From nobody Tue Feb 17 12:52:01 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFffp4chJz6SNC0 for ; Tue, 17 Feb 2026 12:52: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFffn747Hz3h5s for ; Tue, 17 Feb 2026 12:52:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771332722; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fx8mGZEVgkPxJCLSTjceuVbFeYEbQ5P79eDC6yGT7Eg=; b=qTwEo8z0vurybwXkZljNnePiq0zaHlzhfTzB/mHt4IJFdGYq4dnDMR6R1BYdi1wJqEdBvD 6+UCaQL5/luNAcmBunVQLFFdlbyfqqOqeIdP9AcaVJZdelU95bxLPToSWwFyPfpOlWeHJM N5nAwnssSWbwEd3TvRNs8WLaovm1ShjIbnx/5B/xgGY1BxNcHi+dL5Pt0iMXwfrzi8l7Tq clZeyNNPwh6NaHPeY+gyPWE9cXVRoIP97UqAXJvkre1PO0zUrj6B84shHXzb5hNWF8R2o/ +FVM6+kPEdR5+IDEDM4fDgXiKjrJm8f26QxVIcfK160igNZdmdG+QGAR1ZdAXg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771332722; a=rsa-sha256; cv=none; b=wkWay+TKU/xb+myNQDBtRo5GakwbWcJzix8rKnLF/5m6gVVCN0MwD+REM/AaavWx139y/v gb+bobhKe99DLx/3GdtwUiPHPSL2aZ6WMXYSxQDZh2y9BJ2WGY2Ef4opOcLi1VRRgGBqkU cprgmJPublFaa8e4JD7yPdyCF6KSar9CGSBJfCAXGg5J+WlVMOvGh+vfxFd0I5boVnYWw5 6NsGuBDcT7aCY3sd4AKels9o/pTCDfo33VxG+aUFFJJhm7ND8sen8iC3vVBgPNhcDInQyf /dr/nOc3NuL7KNl+fbHujUDFS3euVctdJvvT85pqV6YXU1aYnX9dGdWG9MR0sQ== 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=1771332722; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fx8mGZEVgkPxJCLSTjceuVbFeYEbQ5P79eDC6yGT7Eg=; b=Uy+YlBUSjvIQIuHQ8Cg6PepXNRAxMvVx1/8Ki9VFlTMOqZtbxhBfllIiqMkVkQUfi3sxa1 NsVq0IKSTprCWWWkvLSvYp/2yIlIuIzRbWF3OkaLkSdpqDHdPULcYDt/zXane3BbQbsMvW vFv1SkiBxDxi1GCtopgI+PZ868ylv2OxtD5GF/sFk0B1c77vRsSTJQP5N9Wav+DtDjhICA nonbM/Gy2O4DSg3LvU7Opg+yiqyTUV2GcNCyYXqX+f7Sciu2DnMoR0U7S18z1pUcC5tYGE H3JMsj3LELo8+DSkTyIMR0F6qi2JjpQSD6XIjqnR18hhY9pWPMm2QfwuLSxXfA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFffn6Ny6z19Dj for ; Tue, 17 Feb 2026 12:52:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3b66a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 17 Feb 2026 12:52:01 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Siva Mahadevan From: Christos Margiolis Subject: git: 3bd7deffdda7 - stable/15 - mixer/tests: use require.kmods property instead of ad-hoc checks List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/15 X-Git-Reftype: branch X-Git-Commit: 3bd7deffdda7f9778254f4670e138e4cbac6eb2d Auto-Submitted: auto-generated Date: Tue, 17 Feb 2026 12:52:01 +0000 Message-Id: <69946471.3b66a.51e457ec@gitrepo.freebsd.org> The branch stable/15 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=3bd7deffdda7f9778254f4670e138e4cbac6eb2d commit 3bd7deffdda7f9778254f4670e138e4cbac6eb2d Author: Siva Mahadevan AuthorDate: 2026-02-11 21:50:00 +0000 Commit: Christos Margiolis CommitDate: 2026-02-17 12:51:28 +0000 mixer/tests: use require.kmods property instead of ad-hoc checks Reviewed by: christos Approved by: lwhsu (mentor) Sponsored by: The FreeBSD Foundation MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D55221 (cherry picked from commit 5fa297f4bcd277dca7eef03e68363fb1e721799e) --- usr.sbin/mixer/tests/Makefile | 3 ++- usr.sbin/mixer/tests/mixer_test.sh | 12 ------------ 2 files changed, 2 insertions(+), 13 deletions(-) diff --git a/usr.sbin/mixer/tests/Makefile b/usr.sbin/mixer/tests/Makefile index c8056169f9a4..a39a66cc8277 100644 --- a/usr.sbin/mixer/tests/Makefile +++ b/usr.sbin/mixer/tests/Makefile @@ -1,6 +1,7 @@ ATF_TESTS_SH+= mixer_test # mixer tests fiddle with a singleton dummy audio device. -TEST_METADATA.mixer_test= is_exclusive=true +TEST_METADATA.mixer_test= is_exclusive=true \ + required_kmods="snd_dummy" .include diff --git a/usr.sbin/mixer/tests/mixer_test.sh b/usr.sbin/mixer/tests/mixer_test.sh index 45003251c460..c48512db5ec7 100755 --- a/usr.sbin/mixer/tests/mixer_test.sh +++ b/usr.sbin/mixer/tests/mixer_test.sh @@ -45,13 +45,6 @@ restore_conf() test -r "test_mixer_conf" && mixer $(cat test_mixer_conf) } -load_dummy() -{ - if ! kldload -n snd_dummy; then - atf_skip "cannot load snd_dummy.ko" - fi -} - set_default() { deflt_unit="$(mixer | grep ^pcm | cut -f1 -d:)" @@ -78,7 +71,6 @@ o_flag_head() } o_flag_body() { - load_dummy mixer_exists set_default @@ -96,7 +88,6 @@ d_flag_head() } d_flag_body() { - load_dummy mixer_exists set_default @@ -118,7 +109,6 @@ volume_head() } volume_body() { - load_dummy mixer_exists set_default save_conf @@ -204,7 +194,6 @@ mute_head() } mute_body() { - load_dummy mixer_exists set_default save_conf @@ -248,7 +237,6 @@ recsrc_head() } recsrc_body() { - load_dummy mixer_exists set_default save_conf From nobody Tue Feb 17 13:17:08 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFgCn18Tvz6SQC7 for ; Tue, 17 Feb 2026 13:17:09 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFgCm4jqPz3kmt for ; Tue, 17 Feb 2026 13:17:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771334228; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=x7R9YOHRhYIRBOLD+ucVSEOhQQIhbFNaU32ZPwyfWE0=; b=FfMfDPjJT2OyHW3bwYPac0tQY0/oJ4prfgMpUkb9OGGBuUab/scodrc1JNKw9/ee53EWzk RVg7eKHPYHN4QUsrBpxPR0qCMGpoJZz/pogJau8flMQ/vRznD/7ANdY3IEurX5ePdO9ri6 TPCa/mJ0oIEKjS0PQp30oPkwcKje66m9nA3TaA+GLfhtQH2Lc6ECDJxh7aSlRQJ8BVN+9A snxGpuAmADaOkGqf8cuZPxypLrzrwB6D0/MYLmJZ8FuXQAPPSgHLQMLUJZWbRfLIEJEwG8 HFABNNaFPvNSW12SD636WV8g/PZh/Sro0J1Wp5O6rJiErX0aC3I+k8PJV+ljow== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771334228; a=rsa-sha256; cv=none; b=ZiHO+xcunjBZ2RKmwsISf2VV2NlqaUtaBriJQl0f9rui2O86karMUCqGOdSSDL/D9eSxOB P7zoIleL5r8IuMJ1E/k1tjbgSj+Uj8nuQ/r2OxDHEP8TGdbl6MLdOvwVC5qaVi7CfztEjy NiE9HbyMk+ZHEHDXVOTiTghtdK38MbBxSpnw0FX3TE/rlf8hEUNuXvaFSoGZTjbb1rp51k 6huwlNNoJDR5V9jKVK/maT4sq/GDeX8uc8SrKry3Eg2Gt+UXL6Tm5cDQoowkiIxt+l4FrU c+RjoIgIu/aURUyLqOuCN4HXYp2H7QXlcQhg5fyopvVbScEK2HL0HWzFiDhQ9g== 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=1771334228; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=x7R9YOHRhYIRBOLD+ucVSEOhQQIhbFNaU32ZPwyfWE0=; b=yf7S7UlJ8FNezm91y7qtMDGQzSEHAQNGPPElhOU6NO8ungk9OiaQhT2zyUlQu+DsrCYuZs qHfybVezKppo1XU3kOv6pE+lgVVWqv8e/KyFymUOntl7ggWIRcMzd27n5mnNelV1KOGP2b 93xET77/5heIMwx37pDQ7Xbo5BmaZhKb4QL2FytGLpr0dSheMhfCvU7SgaZax363jj/HN9 BgqWxbxUxdFqZCKd5bs545efJq0JVrZOtGSLXj+9ZvAhCkk7o4fwC75nfEG7b/sVrLlHxF Zt3UzijiUSrDxADrnH95AqaE1EU9F9sQmfJbDK3xYUC1LMZmUOIZpqasjwiQWQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFgCm48fQz19RZ for ; Tue, 17 Feb 2026 13:17:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3f3ca by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 17 Feb 2026 13:17:08 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Aymeric Wibo Subject: git: b6279be747fa - stable/15 - libc: Improve {,l,ll,imax}div(3) manpages List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: obiwac X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: b6279be747facd85eb4490fc874148fede854d03 Auto-Submitted: auto-generated Date: Tue, 17 Feb 2026 13:17:08 +0000 Message-Id: <69946a54.3f3ca.4d461241@gitrepo.freebsd.org> The branch stable/15 has been updated by obiwac: URL: https://cgit.FreeBSD.org/src/commit/?id=b6279be747facd85eb4490fc874148fede854d03 commit b6279be747facd85eb4490fc874148fede854d03 Author: Aymeric Wibo AuthorDate: 2026-02-12 14:50:19 +0000 Commit: Aymeric Wibo CommitDate: 2026-02-17 13:16:20 +0000 libc: Improve {,l,ll,imax}div(3) manpages Mainly rename numerator parameter of div(3) and ldiv(3) from num to numer, and explicitly specify what "numer", "denom", and "rem" mean in the manpages. MFC after: 3 days Obtained from: https://github.com/apple-oss-distributions/libc (partially) Sponsored by: Klara, Inc. (cherry picked from commit 0bba277f2223a31e4453ade39be110b1b3aeb1dd) --- lib/libc/stdlib/div.3 | 14 ++++++++------ lib/libc/stdlib/div.c | 6 +++--- lib/libc/stdlib/imaxdiv.3 | 6 +++--- lib/libc/stdlib/ldiv.3 | 14 ++++++++------ lib/libc/stdlib/ldiv.c | 8 +++----- lib/libc/stdlib/lldiv.3 | 6 +++--- 6 files changed, 28 insertions(+), 26 deletions(-) diff --git a/lib/libc/stdlib/div.3 b/lib/libc/stdlib/div.3 index 55c1bd107cb7..87b9665684fb 100644 --- a/lib/libc/stdlib/div.3 +++ b/lib/libc/stdlib/div.3 @@ -27,7 +27,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd November 14, 2001 +.Dd February 12, 2026 .Dt DIV 3 .Os .Sh NAME @@ -38,21 +38,23 @@ .Sh SYNOPSIS .In stdlib.h .Ft div_t -.Fn div "int num" "int denom" +.Fn div "int numer" "int denom" .Sh DESCRIPTION The .Fn div function computes the value -.Fa num/denom -and returns the quotient and remainder in a structure named +.Fa numer Ns / Ns Fa denom +(numerator/denominator). +It returns a structure named .Fa div_t that contains two .Vt int members named .Va quot -and -.Va rem . +(quotient) and +.Va rem +(remainder). .Sh SEE ALSO .Xr imaxdiv 3 , .Xr ldiv 3 , diff --git a/lib/libc/stdlib/div.c b/lib/libc/stdlib/div.c index 351dca870553..cdc6e1922060 100644 --- a/lib/libc/stdlib/div.c +++ b/lib/libc/stdlib/div.c @@ -35,12 +35,12 @@ #include /* div_t */ div_t -div(int num, int denom) +div(int numer, int denom) { div_t r; - r.quot = num / denom; - r.rem = num % denom; + r.quot = numer / denom; + r.rem = numer % denom; return (r); } diff --git a/lib/libc/stdlib/imaxdiv.3 b/lib/libc/stdlib/imaxdiv.3 index 1553a81edae2..9e51c47b53c3 100644 --- a/lib/libc/stdlib/imaxdiv.3 +++ b/lib/libc/stdlib/imaxdiv.3 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd November 14, 2001 +.Dd February 12, 2026 .Dt IMAXDIV 3 .Os .Sh NAME @@ -39,9 +39,9 @@ The .Fn imaxdiv function computes the value of .Fa numer -divided by +(numerator) divided by .Fa denom -and returns the stored result in the form of the +(denominator) and returns the stored result in the form of the .Vt imaxdiv_t type. .Pp diff --git a/lib/libc/stdlib/ldiv.3 b/lib/libc/stdlib/ldiv.3 index 66abb00d4d6c..c2ab444bdcab 100644 --- a/lib/libc/stdlib/ldiv.3 +++ b/lib/libc/stdlib/ldiv.3 @@ -29,7 +29,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd April 3, 2022 +.Dd February 12, 2026 .Dt LDIV 3 .Os .Sh NAME @@ -40,21 +40,23 @@ .Sh SYNOPSIS .In stdlib.h .Ft ldiv_t -.Fn ldiv "long num" "long denom" +.Fn ldiv "long numer" "long denom" .Sh DESCRIPTION The .Fn ldiv function computes the value -.Fa num Ns / Ns Fa denom -and returns the quotient and remainder in a structure named +.Fa numer Ns / Ns Fa denom +(numerator/denominator). +It returns the quotient and remainder in a structure named .Vt ldiv_t that contains two .Vt long members named .Va quot -and -.Va rem . +(quotient) and +.Va rem +(remainder). .Sh SEE ALSO .Xr div 3 , .Xr imaxdiv 3 , diff --git a/lib/libc/stdlib/ldiv.c b/lib/libc/stdlib/ldiv.c index 4c73bcc14af4..4e92c56dd3e2 100644 --- a/lib/libc/stdlib/ldiv.c +++ b/lib/libc/stdlib/ldiv.c @@ -35,14 +35,12 @@ #include /* ldiv_t */ ldiv_t -ldiv(long num, long denom) +ldiv(long numer, long denom) { ldiv_t r; - /* see div.c for comments */ - - r.quot = num / denom; - r.rem = num % denom; + r.quot = numer / denom; + r.rem = numer % denom; return (r); } diff --git a/lib/libc/stdlib/lldiv.3 b/lib/libc/stdlib/lldiv.3 index d1de4e9234e3..783ea3df6554 100644 --- a/lib/libc/stdlib/lldiv.3 +++ b/lib/libc/stdlib/lldiv.3 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd November 14, 2001 +.Dd February 12, 2026 .Dt LLDIV 3 .Os .Sh NAME @@ -39,9 +39,9 @@ The .Fn lldiv function computes the value of .Fa numer -divided by +(numerator) divided by .Fa denom -and returns the stored result in the form of the +(denominator) and returns the stored result in the form of the .Vt lldiv_t type. .Pp From nobody Tue Feb 17 13:17:07 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFgCl6lf2z6SQ4B for ; Tue, 17 Feb 2026 13:17:07 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFgCl3zsmz3l4c for ; Tue, 17 Feb 2026 13:17:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771334227; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PVebD7A9dvyLnzepdX9PiN5dNsjhh5vhq9OuZrHrDVk=; b=Dl1uGzY3ur0iNortrzBFVSiH5u/hi/lmKy1hVTTet0hi0y5APz3FFmD4ie0mTQ51//JdKS uWu+phlbDtARo8yEcpaTx6skhFFr2Crd9K27vouyzdc21r9He4B0OXkmrPn6Toj+Y5vBq8 5/8WrtVbgowh8GDwvoz7CnjVi94qQd4g0vkTrC0TH9qpbOxlaOpqpBabmM8YjTG/LJvmib zfBVjqr6FJNeiDILBSRXtJMLisZGCr5ggBOyI9AmdAHe1R+FMzZ9sGS9oQ2GkGl9h07GIP omET4Gfj9PL6lmo7xqALiCVG1LRfkVJ4dp9vBBeGCxrtC6D2368UriLyF21QcQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771334227; a=rsa-sha256; cv=none; b=ZB68O3/df19U0p5tHy+/B4fKylEx4l17OeUA6qmW2YAxJpQmBbv9WNtpeJfVC9+BXK03oY BhnHWXJqd99D+ocM2hPNTvQMxMTVx8h2TYxiSsuj146JomBIxhQRlv1hz81LWXZu0y4Isk VUbk8ZYsEXQt7RrMk9hPPQnrdcB0Cfr/n2qjHEjpXlZvJFz21ncrSYfvEPMB29Af5yQme7 MPXfKALHIoNsrDgcWFl9tC+NhZBsMukpzEhnVd7rFVAE1WwXG0CF6tch+GunhOtNuYH1j2 HjagBB6ECJ+58GGP6g0XkuawyBG6XCXJmDfaKsynscO7V9o60FsNNfweQ0yGLA== 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=1771334227; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PVebD7A9dvyLnzepdX9PiN5dNsjhh5vhq9OuZrHrDVk=; b=vgEJgbXZ9vb7t5+YAAkOVPMuAFCcyobk7ApfLvlsw9KkEs23H+gKxTrUuvAFgFaHAcY2Sr qwJPyI1FrZbE/rTHUcHS3d/+A6bYj6+e7ikviSide+TKpqqpqwnKYrCE6MlJ01tOEgLy07 GwdOaGd6oo556nfBed1X02BI4t1iTg77VnViLzBHprdad8QVlMP7wRQ7EIHBSYb0TsRvA2 qOJa/dlcBiaR7IJB8G9gPQoM22nwCoCO49G1H85RJIG6FDGH6ZnJJqpubfWQ5odWjZCSoz U3KY5/kvOBZxAaukc6HoJ8gOPv4fmdMTNaplto+oJXr+n9OS1zTIvRfaH8sJNA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFgCl3SkFz19gS for ; Tue, 17 Feb 2026 13:17:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3f5f0 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 17 Feb 2026 13:17:07 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Aymeric Wibo Subject: git: 69a3d9ab8019 - stable/15 - touch: Fix setting time of created file if fstat() fails List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: obiwac X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 69a3d9ab8019752608f2597e9f0c7a4b8c21a062 Auto-Submitted: auto-generated Date: Tue, 17 Feb 2026 13:17:07 +0000 Message-Id: <69946a53.3f5f0.127b282b@gitrepo.freebsd.org> The branch stable/15 has been updated by obiwac: URL: https://cgit.FreeBSD.org/src/commit/?id=69a3d9ab8019752608f2597e9f0c7a4b8c21a062 commit 69a3d9ab8019752608f2597e9f0c7a4b8c21a062 Author: Aymeric Wibo AuthorDate: 2026-02-04 20:58:13 +0000 Commit: Aymeric Wibo CommitDate: 2026-02-17 13:14:14 +0000 touch: Fix setting time of created file if fstat() fails Previously, if creating the file and fstat() fails, we would've ended up calling utimensat() on that file anyways with whatever was in sb. Not that this is an error likely to happen... We don't check for the return value of close() as we aren't writing anything to the file and the file is always created on success of open(). Reviewed by: kevans Approved by: kevans Fixes: cb54c500d0e1 ("touch: don't leak descriptor if fstat(2) fails") Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D55117 MFC after: 1 week (cherry picked from commit b8d55a86995b5a8db5d1651c8dc9fc5093b67d2c) --- usr.bin/touch/touch.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/usr.bin/touch/touch.c b/usr.bin/touch/touch.c index 70257e320a60..2be2e369596c 100644 --- a/usr.bin/touch/touch.c +++ b/usr.bin/touch/touch.c @@ -163,19 +163,14 @@ main(int argc, char *argv[]) /* Create the file. */ fd = open(*argv, O_WRONLY | O_CREAT, DEFFILEMODE); - if (fd == -1) { + if (fd < 0 || fstat(fd, &sb) < 0) { rval = 1; warn("%s", *argv); + if (fd >= 0) + (void)close(fd); continue; } - if (fstat(fd, &sb) < 0) { - warn("%s", *argv); - rval = 1; - } - if (close(fd) < 0) { - warn("%s", *argv); - rval = 1; - } + (void)close(fd); /* If using the current time, we're done. */ if (!timeset) From nobody Tue Feb 17 13:17:06 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFgCl0mXkz6SQ45 for ; Tue, 17 Feb 2026 13:17: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFgCk3CMLz3kwd for ; Tue, 17 Feb 2026 13:17:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771334226; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=W6BCBHVT8x4CmRy7JpS1rXhqvpsnwCvkXwy85HMhDuc=; b=UzrVu/cQDDfJgx/yttU4Es7f4QX1vXlKNwKcbZRRPdvr6uL+lyY1YVUoA+qnvy1KM9u4ha L+P30g/hhoPOZ+fE2upC9oCNa+SttcpAnzwUAfsxUJQP+wldFpZlM7bhqySoKtOJgC5p5y Wu3gjSznREUoVWMh2QxXKZf1fHKifLH6RGi81C3qiBLpD6epg6T6nTk5Sj9j/Xh+erzDv4 /c0cmdTapYDbbOBCbsZxn5Vu4TQVOkb1XAY0SSvMIZw9Gf6jIrHVrQRVHjUNTKP1kmyA2G mRJPSQhZFOlcC3Z6LoCyWvam66tC9GkG3NTlSwzDhcNlK2rxoN56nf8LcElgug== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771334226; a=rsa-sha256; cv=none; b=TAJ9uLnbs3VyJ3z4fvhgBSPFxRHIo83U8Op7PKCoVSjSDTlGXNoVkObnQns7sV+hH7qExG +Ike31Ss8+F5y3ck94PBv96tDk4xSUG+WW5YYUGPphhQ1dsfkOmfBaMgWihyC3Y1e0jmyp 4HZk5GWWkHSVjdDzuHoj6VYuMOoAzGZYDUJR+CrpIs0lkZ2XPhN4LNTmxZPIXQde3A5Sew KvDLQQb4fWVBMGe7ECmtAYiA0ji5qosWXggvVsfFIDYmN0AdaneVA3kdzzMqFQUw21XJyM DLAlcXhCXEWRO9mfvQjzqmXZLcKC832c7vhuGhkcp6DRVGvmf9ZyzmhDz0KHVA== 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=1771334226; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=W6BCBHVT8x4CmRy7JpS1rXhqvpsnwCvkXwy85HMhDuc=; b=RaddA3A+pK/JAF/Tt4vuYdoZMcQ5jf5gpQHSA7rE8jdyL+YVYbAhVM1JsGvyxUtr0Zh4nG qU5m/LwVPjhflB3HMkjeqVPY4j0rWX9LVaMHdGupbMW0t8K8XaErQBxACQY5RylocO5+dg KmBa6d5GDHQoGTbL1ElBrBUEC5N7wOQYcC5wYGwa1UNAtTuxOgIuo6R9oflG6Q2K3+Wsvt fR+vzb1k8fsiYVmnaav/GOvgB5P3by9hpBRZtI64tag36KZ937BsNcW822F1inELO39AjE 4IIsfbFOQUPRnZM52OasRsjw2dMbCZnDVQ2BqZTUeY+2ZnaIYqASr877GofFzw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFgCk2grlz19YK for ; Tue, 17 Feb 2026 13:17:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3f412 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 17 Feb 2026 13:17:06 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Aymeric Wibo Subject: git: d93f337357a8 - stable/15 - EVENTHANDLER.9: EVENTHANDLER_REGISTER never fails List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: obiwac X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: d93f337357a8c557c98559a9a45051587e879c91 Auto-Submitted: auto-generated Date: Tue, 17 Feb 2026 13:17:06 +0000 Message-Id: <69946a52.3f412.64811982@gitrepo.freebsd.org> The branch stable/15 has been updated by obiwac: URL: https://cgit.FreeBSD.org/src/commit/?id=d93f337357a8c557c98559a9a45051587e879c91 commit d93f337357a8c557c98559a9a45051587e879c91 Author: Aymeric Wibo AuthorDate: 2026-01-31 15:54:11 +0000 Commit: Aymeric Wibo CommitDate: 2026-02-17 13:12:13 +0000 EVENTHANDLER.9: EVENTHANDLER_REGISTER never fails Since ecdf4409f910 ("Rework the eventhandler locking [...]"), EVENTHANDLER_REGISTER() can never return NULL. Suggested by: olce Reviewed by: olce, ziaee, zlei Approved by: olce, zlei Fixes: ecdf4409f910 ("Rework the eventhandler locking [...]") Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D55014 (cherry picked from commit 9d4bad45e233ca7d93666ff1feff6282a88f8a9d) --- share/man/man9/EVENTHANDLER.9 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/share/man/man9/EVENTHANDLER.9 b/share/man/man9/EVENTHANDLER.9 index 4bf3eebaa445..c3e7c9519b3b 100644 --- a/share/man/man9/EVENTHANDLER.9 +++ b/share/man/man9/EVENTHANDLER.9 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd October 7, 2022 +.Dd January 31, 2025 .Dt EVENTHANDLER 9 .Os .Sh NAME @@ -125,7 +125,6 @@ as its first parameter along with any additional parameters passed in via macro .Fn EVENTHANDLER_INVOKE (see below). -If registration is successful, .Fn EVENTHANDLER_REGISTER returns a cookie of type .Vt eventhandler_tag . From nobody Tue Feb 17 14:29:45 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFhqY48mhz6QHFW for ; Tue, 17 Feb 2026 14:29: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFhqY2Btgz3sdF for ; Tue, 17 Feb 2026 14:29:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771338585; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QrWHrPoTis1m8pFWGHA+7KVcrCh9f5MgVkGtEUMaCzA=; b=ix3WzgXWa0kZFROLGK0+9TZ7BwEIiS/XwjkmuUqo/WV3H3FD92NLjpSdeooMx/hVrjjlIs Mff4p+KPLLitx2grXpvN8sGYe3RkckLqLWjcmIwmqclsuHwwxpoEYobCHJhSxFbR/rXUxA GmrvD15WtzBozeikD49kfEKDj0U0775Zys1s/pxBv4P0F85rOeAYDPG/a71NwiJB1Cm8Jq ZCYEaDvYfZjlqlXDxHBq+AdLU3dEV8c5pNTKOGTrGuQpP1HjIZUwwKRW1aAE1j4Effb/xx cp2Zy1eHChVGGzyXBx1cXB1xIo4WRJM5Px2JsdUkvCJ3cP2ztioN0HGlk2BqBw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771338585; a=rsa-sha256; cv=none; b=HF1GepH+/8y5aT08Tqo6wqRVjdUV/x2+jj3ATIGi/rMiRSQOFITgQ12PB2+ni1JCM5l5Dq a5sYYCVXQeIv5pDtEisNMM3rAUnEqBir/bE3DNrftq0Ld+lTmqwcZ72/Uji/hY0anVDA5Q 3RZJZePBw8KioOnf5++fuqAOmfILAbRSp1amorLQfNICMtF2to/BhK/nwXfAXQArhz3iA7 gCdt4l9NvUjfslUv53h7xPvKi0WMzBRFn0HysSNdfwGA/hYvGN666nadC5Nd9B9S2x8i8Q wYtSjjNLdc8R7cNFuRcjA28MVcFmNlkMWDIZL0JWTmUNmVxf0nYk9DqzSh9xwQ== 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=1771338585; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QrWHrPoTis1m8pFWGHA+7KVcrCh9f5MgVkGtEUMaCzA=; b=QlZsnIZnVkFFNuRjRfqIZmoBDnew0Vwd0bG+iHbw3KQv4er3LWfcuor2+Nq1DG8pkTdU6w ht6F+5rhr0hEgDZnqTj9bCviH7j1mm6AC9/CJ6Xb2XLTncurGicq9G7Ix70U9QlABtk5Ej 8RVKV8L0Qvi6BmkXQDRanNbfI/79m/4+dK2VbhAG6E998nd+Uyi2P4y+AdESVLLjePxxrb VPYoW95Gs5F2FS6FO8cxqnhJJ+jQvLxThyIy7o/EqYyjvGbrAy7v6dExGAK8kZ6GOK5qPs mSq3DsiotCN3ysZAoId+7hninoU1NJEte5pmkAUjtBl/Qy0ENLYy1E9O9pAmQA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFhqY0xHFz1C0G for ; Tue, 17 Feb 2026 14:29:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 4613e by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 17 Feb 2026 14:29:45 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: f3a0e54656cc - stable/15 - pf: fix use of uninitialised variable List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: f3a0e54656ccec66ae94af0d717918eafa7c632b Auto-Submitted: auto-generated Date: Tue, 17 Feb 2026 14:29:45 +0000 Message-Id: <69947b59.4613e.7fe2e0a8@gitrepo.freebsd.org> The branch stable/15 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=f3a0e54656ccec66ae94af0d717918eafa7c632b commit f3a0e54656ccec66ae94af0d717918eafa7c632b Author: Kristof Provost AuthorDate: 2026-02-03 12:17:08 +0000 Commit: Kristof Provost CommitDate: 2026-02-17 14:21:14 +0000 pf: fix use of uninitialised variable In pf_match_rule() we attempt to append matching rules to the end of 'match_rules'. We want to preserve the order to make the multiple pflog entries easier to understand. So we keep track of the last added rule item in 'rt'. However, that assumed that 'match_rules' was only ever added to in that one call to pf_match_rules(). This isn't always the case, for example if we have match rules in different anchors. In that case we'd end up using the uninitialised 'rt' variable in the SLIST_INSERT_AFTER call. Instead track the match rules and the last matching rule (to enable easy appending) in the struct pf_test_ctx. This also allows us to reduce the number of arguments for some functions, because we passed a ctx to most functions that needed 'match_rules'. While here also make pf_match_rules() static, because it's only ever used in pf.c Add a test case to exercise the relevant code path. MFC after: 2 weeks Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit fe9e4eb6f38ae004efb576bf44aded08852f9e6b) --- sys/net/pfvar.h | 7 +++--- sys/netpfil/pf/pf.c | 41 ++++++++++++++---------------- tests/sys/netpfil/pf/match.sh | 58 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 80 insertions(+), 26 deletions(-) diff --git a/sys/net/pfvar.h b/sys/net/pfvar.h index a6b2f8f11e0f..9e0917b501e7 100644 --- a/sys/net/pfvar.h +++ b/sys/net/pfvar.h @@ -1165,6 +1165,8 @@ struct pf_test_ctx { int rewrite; u_short reason; struct pf_src_node *sns[PF_SN_MAX]; + struct pf_krule_slist *match_rules; + struct pf_krule_item *last_match_rule; struct pf_krule *nr; struct pf_krule *tr; struct pf_krule **rm; @@ -2724,10 +2726,7 @@ int pf_osfp_match(struct pf_osfp_enlist *, pf_osfp_t); #ifdef _KERNEL void pf_print_host(struct pf_addr *, u_int16_t, sa_family_t); -enum pf_test_status pf_step_into_anchor(struct pf_test_ctx *, struct pf_krule *, - struct pf_krule_slist *match_rules); -enum pf_test_status pf_match_rule(struct pf_test_ctx *, struct pf_kruleset *, - struct pf_krule_slist *); +enum pf_test_status pf_step_into_anchor(struct pf_test_ctx *, struct pf_krule *); void pf_step_into_keth_anchor(struct pf_keth_anchor_stackframe *, int *, struct pf_keth_ruleset **, struct pf_keth_rule **, struct pf_keth_rule **, diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index dee02d296f1f..882c7f4cc0dc 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -342,14 +342,14 @@ static int pf_dummynet_route(struct pf_pdesc *, struct ifnet *, const struct sockaddr *, struct mbuf **); static int pf_test_eth_rule(int, struct pfi_kkif *, struct mbuf **); +static enum pf_test_status pf_match_rule(struct pf_test_ctx *, struct pf_kruleset *); static int pf_test_rule(struct pf_krule **, struct pf_kstate **, struct pf_pdesc *, struct pf_krule **, struct pf_kruleset **, u_short *, struct inpcb *, struct pf_krule_slist *); static int pf_create_state(struct pf_krule *, struct pf_test_ctx *, - struct pf_kstate **, u_int16_t, u_int16_t, - struct pf_krule_slist *match_rules); + struct pf_kstate **, u_int16_t, u_int16_t); static int pf_state_key_addr_setup(struct pf_pdesc *, struct pf_state_key_cmp *, int); static int pf_tcp_track_full(struct pf_kstate *, @@ -4758,8 +4758,7 @@ pf_tag_packet(struct pf_pdesc *pd, int tag) } while (0) enum pf_test_status -pf_step_into_anchor(struct pf_test_ctx *ctx, struct pf_krule *r, - struct pf_krule_slist *match_rules) +pf_step_into_anchor(struct pf_test_ctx *ctx, struct pf_krule *r) { enum pf_test_status rv; @@ -4777,7 +4776,7 @@ pf_step_into_anchor(struct pf_test_ctx *ctx, struct pf_krule *r, struct pf_kanchor *child; rv = PF_TEST_OK; RB_FOREACH(child, pf_kanchor_node, &r->anchor->children) { - rv = pf_match_rule(ctx, &child->ruleset, match_rules); + rv = pf_match_rule(ctx, &child->ruleset); if ((rv == PF_TEST_QUICK) || (rv == PF_TEST_FAIL)) { /* * we either hit a rule with quick action @@ -4788,7 +4787,7 @@ pf_step_into_anchor(struct pf_test_ctx *ctx, struct pf_krule *r, } } } else { - rv = pf_match_rule(ctx, &r->anchor->ruleset, match_rules); + rv = pf_match_rule(ctx, &r->anchor->ruleset); /* * Unless errors occured, stop iff any rule matched * within quick anchors. @@ -5637,10 +5636,9 @@ pf_rule_apply_nat(struct pf_test_ctx *ctx, struct pf_krule *r) } enum pf_test_status -pf_match_rule(struct pf_test_ctx *ctx, struct pf_kruleset *ruleset, - struct pf_krule_slist *match_rules) +pf_match_rule(struct pf_test_ctx *ctx, struct pf_kruleset *ruleset) { - struct pf_krule_item *ri, *rt; + struct pf_krule_item *ri; struct pf_krule *r; struct pf_krule *save_a; struct pf_kruleset *save_aruleset; @@ -5780,12 +5778,12 @@ pf_match_rule(struct pf_test_ctx *ctx, struct pf_kruleset *ruleset, } ri->r = r; - if (SLIST_EMPTY(match_rules)) { - SLIST_INSERT_HEAD(match_rules, ri, entry); + if (SLIST_EMPTY(ctx->match_rules)) { + SLIST_INSERT_HEAD(ctx->match_rules, ri, entry); } else { - SLIST_INSERT_AFTER(rt, ri, entry); + SLIST_INSERT_AFTER(ctx->last_match_rule, ri, entry); } - rt = ri; + ctx->last_match_rule = ri; pf_rule_to_actions(r, &pd->act); if (r->log) @@ -5810,7 +5808,7 @@ pf_match_rule(struct pf_test_ctx *ctx, struct pf_kruleset *ruleset, ctx->arsm = ctx->aruleset; } if (pd->act.log & PF_LOG_MATCHES) - pf_log_matches(pd, r, ctx->a, ruleset, match_rules); + pf_log_matches(pd, r, ctx->a, ruleset, ctx->match_rules); if (r->quick) { ctx->test_status = PF_TEST_QUICK; break; @@ -5827,7 +5825,7 @@ pf_match_rule(struct pf_test_ctx *ctx, struct pf_kruleset *ruleset, * Note: we don't need to restore if we are not going * to continue with ruleset evaluation. */ - if (pf_step_into_anchor(ctx, r, match_rules) != PF_TEST_OK) { + if (pf_step_into_anchor(ctx, r) != PF_TEST_OK) { break; } ctx->a = save_a; @@ -5863,6 +5861,7 @@ pf_test_rule(struct pf_krule **rm, struct pf_kstate **sm, ctx.rsm = rsm; ctx.th = &pd->hdr.tcp; ctx.reason = *reason; + ctx.match_rules = match_rules; pf_addrcpy(&pd->nsaddr, pd->src, pd->af); pf_addrcpy(&pd->ndaddr, pd->dst, pd->af); @@ -5960,7 +5959,7 @@ pf_test_rule(struct pf_krule **rm, struct pf_kstate **sm, ruleset = *ctx.rsm; } else { ruleset = &pf_main_ruleset; - rv = pf_match_rule(&ctx, ruleset, match_rules); + rv = pf_match_rule(&ctx, ruleset); if (rv == PF_TEST_FAIL) { /* * Reason has been set in pf_match_rule() already. @@ -5997,7 +5996,7 @@ pf_test_rule(struct pf_krule **rm, struct pf_kstate **sm, PFLOG_PACKET(r->action, ctx.reason, r, ctx.a, ruleset, pd, 1, NULL); } if (pd->act.log & PF_LOG_MATCHES) - pf_log_matches(pd, r, ctx.a, ruleset, match_rules); + pf_log_matches(pd, r, ctx.a, ruleset, ctx.match_rules); if (pd->virtual_proto != PF_VPROTO_FRAGMENT && (r->action == PF_DROP) && ((r->rule_flag & PFRULE_RETURNRST) || @@ -6042,8 +6041,7 @@ pf_test_rule(struct pf_krule **rm, struct pf_kstate **sm, (pd->flags & PFDESC_TCP_NORM)))) { bool nat64; - action = pf_create_state(r, &ctx, sm, bproto_sum, bip_sum, - match_rules); + action = pf_create_state(r, &ctx, sm, bproto_sum, bip_sum); ctx.sk = ctx.nk = NULL; if (action != PF_PASS) { pf_udp_mapping_release(ctx.udp_mapping); @@ -6126,8 +6124,7 @@ cleanup: static int pf_create_state(struct pf_krule *r, struct pf_test_ctx *ctx, - struct pf_kstate **sm, u_int16_t bproto_sum, u_int16_t bip_sum, - struct pf_krule_slist *match_rules) + struct pf_kstate **sm, u_int16_t bproto_sum, u_int16_t bip_sum) { struct pf_pdesc *pd = ctx->pd; struct pf_kstate *s = NULL; @@ -6192,7 +6189,7 @@ pf_create_state(struct pf_krule *r, struct pf_test_ctx *ctx, s->rule = r; s->nat_rule = ctx->nr; s->anchor = ctx->a; - s->match_rules = *match_rules; + s->match_rules = *ctx->match_rules; memcpy(&s->act, &pd->act, sizeof(struct pf_rule_actions)); if (pd->act.allow_opts) diff --git a/tests/sys/netpfil/pf/match.sh b/tests/sys/netpfil/pf/match.sh index 58c1e021310a..992e32d9f887 100644 --- a/tests/sys/netpfil/pf/match.sh +++ b/tests/sys/netpfil/pf/match.sh @@ -177,9 +177,67 @@ allow_opts_cleanup() pft_cleanup } +atf_test_case "double_match" "cleanup" +double_match_head() +{ + atf_set descr 'Test two match statements in separate anchors' + atf_set require.user root +} + +double_match_body() +{ + pft_init + + epair_one=$(vnet_mkepair) + epair_two=$(vnet_mkepair) + vnet_mkjail rtr ${epair_one}a ${epair_two}a + vnet_mkjail srv ${epair_two}b + + ifconfig ${epair_one}b 192.0.2.2/24 up + + jexec rtr ifconfig ${epair_one}a 192.0.2.1/24 up + jexec rtr ifconfig ${epair_two}a 198.51.100.1/24 up + jexec rtr sysctl net.inet.ip.forwarding=1 + + jexec srv ifconfig ${epair_two}b 198.51.100.2/24 up + + route add default 192.0.2.1 + + # Sanity check + atf_check -s exit:0 -o ignore \ + ping -c 1 192.0.2.1 + + jexec rtr pfctl -e + pft_set_rules rtr \ + "nat on ${epair_two}a from 192.0.2.0/24 to any -> (${epair_two}a)" \ + "block all" \ + "anchor \"userrules\" all {\n \ + anchor \"one\" all { \n\ + match in tag \"allow\"\n\ + }\n\ + anchor \"two\" all { \n\ + match tag \"allow\"\n\ + }\n\ + }\n" \ + "pass quick tagged \"allow\"" + + atf_check -s exit:0 -o ignore \ + ping -c 1 198.51.100.2 + + jexec rtr pfctl -ss -vv + jexec rtr pfctl -sr -vv -a "*" + jexec rtr pfctl -sr -a "*" +} + +double_match_cleanup() +{ + pft_cleanup +} + atf_init_test_cases() { atf_add_test_case "dummynet" atf_add_test_case "quick" atf_add_test_case "allow_opts" + atf_add_test_case "double_match" } From nobody Tue Feb 17 20:41:20 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFs4J3TzNz6S32j for ; Tue, 17 Feb 2026 20:41: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFs4J2kxpz3rd5 for ; Tue, 17 Feb 2026 20:41:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771360880; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QRQfXr+cW6ky3sevl15K0q052bb932TJxo/k3QjwGjM=; b=mQ/WKfoWy3quqdSWGUMztXRp7tmgxNFqRFaM475kbgLyT0BDZo38mR8A7rsxI+bRsxT+vv /3i8KPvJUuYev3loZqNgBbh0q7RHf3QLfakVprvyUHH43vWqkk+pcvsJZwRBWGCOCSVah4 qI2AxBXCu18v2dnbrdyE+umRA5wr/TmsZ17mAXqOKTwZLcEoHJt/SQxCXDCOSfMBlawRro lQCZUALFKVagFlBqQwQd8ci+kUl7Tyhz9R18kK7HQbqX9j74KCzc7FXUoGv7h9dMHBrvyW wU21lb5JlWwOqPCLwGwRhor69eXE3rlGnz3vmqGa/pi3LH83GFdpYYNb5rK73g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771360880; a=rsa-sha256; cv=none; b=EsupmA/cJe0D+z5+FrdagXFjvHxzmMsGeqEU6jGZxwp3dm1lqxGGngjWRP2j3mTyP2s5gQ TECmZLn7DaQgtdSJA2G5/zGc1B2hV/7+srsRyY8Grd6FDrW/jlErP+sTu72cid8od6Uo18 N7WwWkYTfELHEW7iH3nFP44HCz0pyaIFP5DvMm7vd/9vtpkGLIW1YfFkDHNZr74UWwTuPq 27MzRZgVLyj7ohhl0R6LdhzAV8uIS4ofEQGvlCCc3uQ9jhRa1rEK3DOzaT7mxciLOtCwCn lD5M/E1KotvqaGO/sqsZD5jpDMa9K2MHU8Ue9u/b8r/7MQySpiPdUvNbIbmd5g== 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=1771360880; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QRQfXr+cW6ky3sevl15K0q052bb932TJxo/k3QjwGjM=; b=o/kuznVsdXorkVMljbG2ZXqiSot3ZBMZNsNOn7pZdSPbkAHqOaw0jgRlnx1kdjvc4gw8Qh glYWG348ID2GrRqVNSWI6cNrZG5ECBSjL9XYGBMkZWhfhc7to74MfvhZxjTIchep6UWDmy 9YEci7AjdStKr0F9vqv6tyay8DtEwkACPDgAIJNS1dxvGDqXIe3gWYva/MGpPNQNcOhgTG 7KvbR6+G+BcbQQYTKBkPWLWMFdT190WB7LKDfkK7dQpiSOWLilfVClkKHOa8y50PbrxQ6L 8TYK4A3lgk8QKKhwkQHnEbZ06Z9k13VXZFo46NCHFrZd4Dfvh2irFls8JJYZyQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFs4J2K41z92g for ; Tue, 17 Feb 2026 20:41:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1d274 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 17 Feb 2026 20:41:20 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Vladimir Kondratyev Subject: git: bcc06806430a - stable/15 - evdev: Allow setting of character device ownership and access mode List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: bcc06806430aa0cba72d0355555453732a95bb08 Auto-Submitted: auto-generated Date: Tue, 17 Feb 2026 20:41:20 +0000 Message-Id: <6994d270.1d274.5146e9e0@gitrepo.freebsd.org> The branch stable/15 has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=bcc06806430aa0cba72d0355555453732a95bb08 commit bcc06806430aa0cba72d0355555453732a95bb08 Author: Vladimir Kondratyev AuthorDate: 2025-12-01 20:42:14 +0000 Commit: Vladimir Kondratyev CommitDate: 2026-02-17 20:38:26 +0000 evdev: Allow setting of character device ownership and access mode by device driver. That is required as game pad and joystick events have to be accessible by ordinary users. MFC after: 1 month (cherry picked from commit ecccc9d99901dd874e8d122853026d7c28fa4fcf) --- sys/dev/evdev/cdev.c | 6 +++--- sys/dev/evdev/evdev.c | 17 ++++++++++++++++- sys/dev/evdev/evdev.h | 1 + sys/dev/evdev/evdev_private.h | 3 +++ 4 files changed, 23 insertions(+), 4 deletions(-) diff --git a/sys/dev/evdev/cdev.c b/sys/dev/evdev/cdev.c index dd4115cdfc71..2f47056081d2 100644 --- a/sys/dev/evdev/cdev.c +++ b/sys/dev/evdev/cdev.c @@ -772,9 +772,9 @@ evdev_cdev_create(struct evdev_dev *evdev) make_dev_args_init(&mda); mda.mda_flags = MAKEDEV_WAITOK | MAKEDEV_CHECKNAME; mda.mda_devsw = &evdev_cdevsw; - mda.mda_uid = UID_ROOT; - mda.mda_gid = GID_WHEEL; - mda.mda_mode = 0600; + mda.mda_uid = evdev->ev_cdev_uid; + mda.mda_gid = evdev->ev_cdev_gid; + mda.mda_mode = evdev->ev_cdev_mode; mda.mda_si_drv1 = evdev; /* Try to coexist with cuse-backed input/event devices */ diff --git a/sys/dev/evdev/evdev.c b/sys/dev/evdev/evdev.c index e71f4f389d5c..4dcd6f23d338 100644 --- a/sys/dev/evdev/evdev.c +++ b/sys/dev/evdev/evdev.c @@ -37,6 +37,7 @@ #include #include #include +#include #include #include #include @@ -94,8 +95,14 @@ static int evdev_check_event(struct evdev_dev *, uint16_t, uint16_t, int32_t); struct evdev_dev * evdev_alloc(void) { + struct evdev_dev *evdev; - return malloc(sizeof(struct evdev_dev), M_EVDEV, M_WAITOK | M_ZERO); + evdev = malloc(sizeof(struct evdev_dev), M_EVDEV, M_WAITOK | M_ZERO); + evdev->ev_cdev_uid = UID_ROOT; + evdev->ev_cdev_gid = GID_WHEEL; + evdev->ev_cdev_mode = S_IRUSR | S_IWUSR; + + return (evdev); } void @@ -584,6 +591,14 @@ evdev_set_flag(struct evdev_dev *evdev, uint16_t flag) bit_set(evdev->ev_flags, flag); } +void +evdev_set_cdev_mode(struct evdev_dev *evdev, uid_t uid, gid_t gid, int mode) +{ + evdev->ev_cdev_uid = uid; + evdev->ev_cdev_gid = gid; + evdev->ev_cdev_mode = mode; +} + static int evdev_check_event(struct evdev_dev *evdev, uint16_t type, uint16_t code, int32_t value) diff --git a/sys/dev/evdev/evdev.h b/sys/dev/evdev/evdev.h index 2ee374f184cc..d5aa58f0ccc4 100644 --- a/sys/dev/evdev/evdev.h +++ b/sys/dev/evdev/evdev.h @@ -153,6 +153,7 @@ void evdev_support_sw(struct evdev_dev *, uint16_t); void evdev_set_repeat_params(struct evdev_dev *, uint16_t, int); int evdev_set_report_size(struct evdev_dev *, size_t); void evdev_set_flag(struct evdev_dev *, uint16_t); +void evdev_set_cdev_mode(struct evdev_dev *, uid_t, gid_t, int); void *evdev_get_softc(struct evdev_dev *); bool evdev_is_grabbed(struct evdev_dev *); diff --git a/sys/dev/evdev/evdev_private.h b/sys/dev/evdev/evdev_private.h index 661259bd2594..4c371e538598 100644 --- a/sys/dev/evdev/evdev_private.h +++ b/sys/dev/evdev/evdev_private.h @@ -111,6 +111,9 @@ struct evdev_dev char ev_shortname[NAMELEN]; char ev_serial[NAMELEN]; struct cdev * ev_cdev; + uid_t ev_cdev_uid; + gid_t ev_cdev_gid; + int ev_cdev_mode; int ev_unit; enum evdev_lock_type ev_lock_type; struct mtx * ev_state_lock; /* State lock */ From nobody Tue Feb 17 20:41:21 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFs4K5Ct8z6S3L1 for ; Tue, 17 Feb 2026 20:41: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFs4K2xDtz3rm5 for ; Tue, 17 Feb 2026 20:41:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771360881; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=COns/A1iyWn+kmpM2XTKHy8A/L7QwXnhqHBhFEBBFZs=; b=yelshvoqj+SsDUOm8cgBI4K4+jIzHDbKGvjCu1XUHCjQpc0uO1Vtwk3oK3BhWkd9Ce6zKu 7CtAyfsRaQKqLjgDSAMGNIjCefuHlOKG9TmkS2eLx6USXl0q4/pfAxSo+lGQ9qvo2BR1Uj oVr7oYSqd+Ji+NWXg5a/g5ZSbNGGVNzpx2hzkDIHWs1wL+xmaIXCyOrSNK/B+YZ/p5sU5+ QmpWPBgvqyaGPfNK3ZJAUHKt419p3VDOxgXV/Y7wbBXV3TIvP5feUKYm9aKkzDk6um34Tu WIKmk3bJCx+e+PkAcgX1j5iUSKtyuxzHutKphmpVvjouha4OhNnwyw9392Sm6g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771360881; a=rsa-sha256; cv=none; b=RXoFsAYwhJOW15IAIyJhFR7TSwyPEc39KP4yO40tDX4ur5Fy6M/7CJB54ONavTqbqZd3LW L+B6h9U+EQm/p/yk/AY3ERP+bDMU+C/x7KOR7jnp5A1hoSvoPDQClIunEkNdxCTlVw7kkR 4lyUzAy4fPAXNC20tmH+sx988VR996+Xh947yi2VTNSK4K0F9aurevDnQ8p33VIOPVTWqw a+e+yEyM1aQzi/9aLQvYeooujmFkujuG9yrk+h/zxTKPbk2xyEdb5INqUkcrKpV5t3p2xH KkHSOx5Jq9l8E6oiRIs8x5fb2qiKnUPx4a2tGlxkcKJY17H3H8hNSu7JBr+zGw== 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=1771360881; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=COns/A1iyWn+kmpM2XTKHy8A/L7QwXnhqHBhFEBBFZs=; b=B6wRvcHRhHdMHpuqPZKbNinIezD8dBGw532oSk5X+YzsOMgoY4nEtynnsbrPLUnF9oqU46 St64O7on5bsYzRWBx2xeHyNprWiEgcsFY3W6cGWPgqM2SSUtGUIQU4HezVB4AeR2ArnOTO l4CPyLCEUUXCeR80ZWZGKTML55GRKuy+UqywDvReTK2hGw3diHgzCHAkOhUaXUHNdfcqmk afpdobSy5Kx6+GAKIrKE5j2K+KU4UDNCNjmJGgR/BOGccp74gIoEsqBwHGld0kGjRwKmti Vz4EfGNuRbKN3ncLE2tie7tTrQGrC8clek24oxqrnzfoiaLTsKxktjn24pyhrA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFs4K2Vhmz9RM for ; Tue, 17 Feb 2026 20:41:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1f204 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 17 Feb 2026 20:41:21 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Vladimir Kondratyev Subject: git: d0e1b3edee70 - stable/15 - hid: Make game controllers accessible to members of the game group List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: d0e1b3edee707ed0af989e89b967c2f88c04ce41 Auto-Submitted: auto-generated Date: Tue, 17 Feb 2026 20:41:21 +0000 Message-Id: <6994d271.1f204.7c49fe6f@gitrepo.freebsd.org> The branch stable/15 has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=d0e1b3edee707ed0af989e89b967c2f88c04ce41 commit d0e1b3edee707ed0af989e89b967c2f88c04ce41 Author: Vladimir Kondratyev AuthorDate: 2025-12-01 20:42:15 +0000 Commit: Vladimir Kondratyev CommitDate: 2026-02-17 20:38:26 +0000 hid: Make game controllers accessible to members of the game group Their events have to be accessible by unprivileged users via e.g. libsdl. MFC after: 1 month (cherry picked from commit b6cad334e649f49c57da52b139de353ad9078985) --- share/man/man4/hgame.4 | 7 ++++--- share/man/man4/ps4dshock.4 | 5 ++++- share/man/man4/xb360gp.4 | 5 ++++- sys/dev/hid/hgame.c | 7 ++++++- sys/dev/hid/ps4dshock.c | 9 ++++++++- 5 files changed, 26 insertions(+), 7 deletions(-) diff --git a/share/man/man4/hgame.4 b/share/man/man4/hgame.4 index f816d2a442d0..b662a07993ac 100644 --- a/share/man/man4/hgame.4 +++ b/share/man/man4/hgame.4 @@ -24,7 +24,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd November 12, 2025 +.Dd November 30, 2025 .Dt HGAME 4 .Os .Sh NAME @@ -69,8 +69,9 @@ prompt, or add it to To give user applications access to the game controllers, allow user access to the .Pa /dev/input/event* -nodes with -.Xr devfs.rules 5 . +nodes with inclusion of user in the +.Em games +group. .Sh HARDWARE The .Nm diff --git a/share/man/man4/ps4dshock.4 b/share/man/man4/ps4dshock.4 index 282a58c49e63..f48e2c07c1b7 100644 --- a/share/man/man4/ps4dshock.4 +++ b/share/man/man4/ps4dshock.4 @@ -21,7 +21,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd September 19, 2020 +.Dd November 30, 2025 .Dt PS4DSHOCK 4 .Os .Sh NAME @@ -55,6 +55,9 @@ The device presents the game controller as a .Ar evdev type device. +It is accessible to members of the +.Em games +group. .Sh SYSCTL VARIABLES Next parameters are available as .Xr sysctl 8 diff --git a/share/man/man4/xb360gp.4 b/share/man/man4/xb360gp.4 index 4e8d4b65fcfd..1ff42e970858 100644 --- a/share/man/man4/xb360gp.4 +++ b/share/man/man4/xb360gp.4 @@ -21,7 +21,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd September 16, 2020 +.Dd November 30, 2025 .Dt XB360GP 4 .Os .Sh NAME @@ -56,6 +56,9 @@ The device presents the game controller as a .Ar evdev type device. +It is accessible to members of the +.Em games +group. .Sh SYSCTL VARIABLES The following variable is available as both .Xr sysctl 8 diff --git a/sys/dev/hid/hgame.c b/sys/dev/hid/hgame.c index b074f6145d0e..8dde6b5550c9 100644 --- a/sys/dev/hid/hgame.c +++ b/sys/dev/hid/hgame.c @@ -33,8 +33,10 @@ #include #include +#include #include #include +#include #include #include @@ -170,8 +172,11 @@ hgame_final_cb(HIDMAP_CB_ARGS) { struct evdev_dev *evdev = HIDMAP_CB_GET_EVDEV(); - if (HIDMAP_CB_GET_STATE() == HIDMAP_CB_IS_ATTACHING) + if (HIDMAP_CB_GET_STATE() == HIDMAP_CB_IS_ATTACHING) { evdev_support_prop(evdev, INPUT_PROP_DIRECT); + evdev_set_cdev_mode(evdev, UID_ROOT, GID_GAMES, + S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP); + } /* Do not execute callback at interrupt handler and detach */ return (ENOSYS); diff --git a/sys/dev/hid/ps4dshock.c b/sys/dev/hid/ps4dshock.c index d3c6b3eeadf9..1cd9cb13bad3 100644 --- a/sys/dev/hid/ps4dshock.c +++ b/sys/dev/hid/ps4dshock.c @@ -37,10 +37,12 @@ #include #include +#include #include #include #include #include +#include #include #include @@ -806,8 +808,11 @@ ps4dshock_final_cb(HIDMAP_CB_ARGS) { struct evdev_dev *evdev = HIDMAP_CB_GET_EVDEV(); - if (HIDMAP_CB_GET_STATE() == HIDMAP_CB_IS_ATTACHING) + if (HIDMAP_CB_GET_STATE() == HIDMAP_CB_IS_ATTACHING) { evdev_support_prop(evdev, INPUT_PROP_DIRECT); + evdev_set_cdev_mode(evdev, UID_ROOT, GID_GAMES, + S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP); + } /* Do not execute callback at interrupt handler and detach */ return (ENOSYS); @@ -886,6 +891,8 @@ ps4dsacc_final_cb(HIDMAP_CB_ARGS) if (HIDMAP_CB_GET_STATE() == HIDMAP_CB_IS_ATTACHING) { evdev_support_event(evdev, EV_ABS); evdev_support_prop(evdev, INPUT_PROP_ACCELEROMETER); + evdev_set_cdev_mode(evdev, UID_ROOT, GID_GAMES, + S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP); } /* Do not execute callback at interrupt handler and detach */ return (ENOSYS); From nobody Tue Feb 17 20:41:22 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFs4L6GBcz6S3Bq for ; Tue, 17 Feb 2026 20:41: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFs4L3Ml5z3rgb for ; Tue, 17 Feb 2026 20:41:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771360882; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ilD3cIUa+/A3aqexqYrhknJzABuJ4/dVtW+e1zt5Sq4=; b=dViVuqJpIngZemrLc6QiB9W2wVAc4LsGl4smQQ0ilc5u4NR4Sd7KVp0YrVOQ0xbSHdCyGG L6rQamugExhAx6aARsPLry1mOQEiuPbTS9yCe6iEVtU5j7wdoBO1G+Uk0OtDY1nY8b37n0 A7CpGMorNBAh5UGeJzFNH4ZupPxQWtbs9SkFHNP5cDFvkRMqx87rN/YG7MOj8XMflw4fog 1AVtD5qEQCciggqX0gAgIgjMNdJrhjMGvvd07K6aY665QABdieP3bpkM7CCZ4VsvD2fxFq 3/+bAiX4kuMd9iMYUgXu//dwLBnpJ0Hulc4U1pEMmoam0lwq281caWeU3i6zsQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771360882; a=rsa-sha256; cv=none; b=cR1RjSXDS0ceIrGvBPybnNCJqNqpBiHWHoT0WN/MJdlFMvhL6kYLtGE0k9wLKEEHMG07KN Wyps3+RhT37hIk8R6K0dAtVCKiX4SD+NIn2zsCZplntmKm0JDVJ9QRYgvpg8yLWGrDbijN 3eqNQ25ri9BpCPixWb8pHRfjzZkjS2BkoZWlLR2T7jw2IJ9OUYOVxVZQQW5G7IFdG6aRnF MwGHG3pakbHpUMN954yAllEFla89mYY7Ik4teTXpeWddCgiU41egElNzACdnyJs3EtK9pk dZuRoeTSIWy0D0LMIZN5hBYQO6RJ2FnpG9YJ+qI92Mk5r4cLBTy5nuNCNoxPlA== 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=1771360882; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ilD3cIUa+/A3aqexqYrhknJzABuJ4/dVtW+e1zt5Sq4=; b=Cg8UFRnJfzDXGz6ZP4a4LKX5pP9hh9V9y2NMBpUtbo1A8uDPuiJBdGNOyTEkL4DKObvyRf cYb1TRBo77gf6+epl1v96nk+X6MT5maMmwwwIaT73St/sOnMYJfBXxXSbTG4r1fMePN1v9 2iafcBUNFNBa9ucu0aODXl/zMjSixScE/Gg2h+297TLJADV7+vyShvXIGMrqrZpCKZAkK/ 3zggKX9HUnyXC6CerQUmEQ3L4lit6s9ptlJ/mRl/wIKqTj6xPWhDAU53P3WVoSkv/a0fNl ayg3POPmkxlJeiyTyFEfkbdqkUGZGgJdRe5QQE38Kss5n8e96gEVlhyG/IaL/Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFs4L2wQTz9jB for ; Tue, 17 Feb 2026 20:41:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1f38f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 17 Feb 2026 20:41:22 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Vladimir Kondratyev Subject: git: 11231c820699 - stable/15 - msconvd(8): Drop mentions of Bus/InPort mouse support in manual page List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 11231c8206993e68001d17da8a2b45759715a17a Auto-Submitted: auto-generated Date: Tue, 17 Feb 2026 20:41:22 +0000 Message-Id: <6994d272.1f38f.c78b63c@gitrepo.freebsd.org> The branch stable/15 has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=11231c8206993e68001d17da8a2b45759715a17a commit 11231c8206993e68001d17da8a2b45759715a17a Author: Vladimir Kondratyev AuthorDate: 2025-12-01 21:09:00 +0000 Commit: Vladimir Kondratyev CommitDate: 2026-02-17 20:38:26 +0000 msconvd(8): Drop mentions of Bus/InPort mouse support in manual page mse(4) was removed long ago. MFC after: 1 month (cherry picked from commit dc6f609685a9bc41c67d3c1219311e0096982865) --- usr.sbin/moused/msconvd/msconvd.8 | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/usr.sbin/moused/msconvd/msconvd.8 b/usr.sbin/moused/msconvd/msconvd.8 index 17434ecb9b60..b5d738d5b5ed 100644 --- a/usr.sbin/moused/msconvd/msconvd.8 +++ b/usr.sbin/moused/msconvd/msconvd.8 @@ -160,10 +160,11 @@ information are: .It Ar port Port (device file) name, i.e.\& .Pa /dev/cuau0 , +.Pa /dev/ums0 and .Pa /dev/psm0 . .It Ar if -Interface type: serial, bus, inport or ps/2. +Interface type: serial or ps/2. .It Ar type Protocol type. It is one of the types listed under the @@ -243,12 +244,6 @@ always choose or .Ar ps/2 , regardless of the brand and model of the mouse. -Likewise, if your -mouse is attached to the bus mouse port, choose -.Ar auto -or -.Ar busmouse . -Serial mouse protocols will not work with these mice. .Pp For the USB mouse, the protocol must be .Ar auto . @@ -304,14 +299,6 @@ Interlink VersaPad protocol. GTCO Digipad protocol. .El .Pp -For the bus and InPort mouse: -.Bl -tag -compact -width mousesystemsxxx -.It Ar busmouse -This is the only protocol type available for -the bus and InPort mouse and should be specified for any bus mice -and InPort mice, regardless of the brand. -.El -.Pp For the PS/2 mouse: .Bl -tag -compact -width mousesystemsxxx .It Ar ps/2 @@ -402,10 +389,6 @@ There is rule of thumb: .Pp .Bl -enum -compact -width 1.X .It -The bus and InPort mice always use -.Ar busmouse -protocol regardless of the brand of the mouse. -.It The .Ar ps/2 protocol should always be specified for the PS/2 mouse From nobody Tue Feb 17 20:41:23 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFs4N6BQFz6S38q for ; Tue, 17 Feb 2026 20:41: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFs4M5P8Pz3rmR for ; Tue, 17 Feb 2026 20:41:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771360883; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=r57QOGUXAY+A8iNGue9+q/01umunsQFy7MfAP7rdjrU=; b=XANq6LrceAylFwDUF/6sWwmsCZ8UDQsUh7XU4RgkuBP4vH4Dq4nkc40Zl5ilF8t5EFso1+ v+JmSzaVXhp+9gsG3tc7f9F7GGTOU0WCkiCNnOrA8CcyHnHz4jQGRaJhozJCDMgJ22rJHF G50iSDXZxyHtA11CqFSJfUSJFUvzWwAgvuNSC9j3a4V16vBblwO1LheugJ8qcncgXRrj6N mQJUrvke0yW746I9mhsi1KQYEcFSxkRsJb5szm0uDLXZkf410PvwJcwzTg7mIu+66ka55j VdBrBWdwYr9JdK0WKSP+F4HF9hwpDUfVJ0PevboXrJvGYq3G7XM9TgxPnP+4/g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771360883; a=rsa-sha256; cv=none; b=MrGE+NQj3/HZTTxE0932jATpfh6FHWVQVE1QC9+qwgpSOG7kuqnyJ/YL3Dc/bWQqKB3qBy 1BwNmj/JAZ1020MLKjtlGZJsr5b+9RDnypJ7ShV/yWzdCxOFvV1Z3q2m6L1O9a+l3WWptS FOghz71RhoVNRgM1hcRER1sO1MoFTAZWZxqhsP4L+tAaoiAxi3bRPNOYt/QqvIaO1YY+R+ +WFzORGea6wHiRoX0+rMz6FzB9PFMyryM88kB4yqUfhkXCaDx2a3yixk2zyTpQE4L2W80E 7npN/hBOoZaYT8Xxv8qXVuhf02JPZipzPfZ9XkAhJB3SLQu9tcLKEFBgBWDL9w== 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=1771360883; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=r57QOGUXAY+A8iNGue9+q/01umunsQFy7MfAP7rdjrU=; b=dk510YwBCvx0XMqjWa5oZzpmLoo/UMDPbX8kbaaBt1TugUHUKuAhkd298tVbMEQb/DlzQj wVxhnc+Ft6YoHdqPMqtvX2oupRT/ykfebNRYWRldPYaRGl2wU1WGR+6NW5sxYUbgso4nKb GZr94tIekpLk/Oox2zwot03OBmATF9X7O8aATXMQhuRULqwQ2utEyPh9YoUN9+rI0jWMci TxVtqsKD7bQ/ILulgrX5jJgZ2oonXEh8AI6PgANkQaK4/YcLsK4Ssh1EZYtOUAJzcLdMtO msWpKP30EbteBa+X2UsX6rxBUfu42DXOYFmfRr05tQpN0MgsmNh09qStnl3TTg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFs4M3m5Gz9XB for ; Tue, 17 Feb 2026 20:41:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1ebb4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 17 Feb 2026 20:41:23 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Robert Wahlberg From: Vladimir Kondratyev Subject: git: 68ab94288203 - stable/15 - psm: Fix three finger tap on elantech v4 touchpads List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 68ab9428820348f1e3923532a041898bb95bcf5c Auto-Submitted: auto-generated Date: Tue, 17 Feb 2026 20:41:23 +0000 Message-Id: <6994d273.1ebb4.3837da6e@gitrepo.freebsd.org> The branch stable/15 has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=68ab9428820348f1e3923532a041898bb95bcf5c commit 68ab9428820348f1e3923532a041898bb95bcf5c Author: Robert Wahlberg AuthorDate: 2025-12-01 20:42:15 +0000 Commit: Vladimir Kondratyev CommitDate: 2026-02-17 20:38:26 +0000 psm: Fix three finger tap on elantech v4 touchpads Fix an issue where a three finger tap would generate additional events when fingers moved slightly during the tap. Signed-off-by: Robert Wahlberg Pull Request: https://github.com/freebsd/freebsd-src/pull/1792 Reviewed by: wulf MFC after: 1 month (cherry picked from commit e3201cec8381c0582374f93991eff4a71bb95e9b) --- sys/dev/atkbdc/psm.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sys/dev/atkbdc/psm.c b/sys/dev/atkbdc/psm.c index 137758b104d3..d36396df0fa0 100644 --- a/sys/dev/atkbdc/psm.c +++ b/sys/dev/atkbdc/psm.c @@ -4666,6 +4666,13 @@ proc_elantech(struct psm_softc *sc, packetbuf_t *pb, mousestatus_t *ms, mask = sc->elanaction.mask; nfingers = bitcount(mask); + /* The motion packet can only update two fingers at a time. + * Copy the previous state to get all active fingers. */ + for (id = 0; id < ELANTECH_MAX_FINGERS; id++) + if (sc->elanaction.mask & (1 << id)) + f[id] = sc->elanaction.fingers[id]; + + /* Update finger positions from the new packet */ scale = (pb->ipacket[0] & 0x10) ? 5 : 1; for (i = 0; i <= 3; i += 3) { id = ((pb->ipacket[i] & 0xe0) >> 5) - 1; From nobody Tue Feb 17 20:41:24 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFs4P1czdz6S37t for ; Tue, 17 Feb 2026 20:41: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFs4N5Hw2z3rgx for ; Tue, 17 Feb 2026 20:41:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771360884; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Rdh6wxYBs7LVPaVtgyEgdAuZ7b+cjUJvvOSkVxDEkAo=; b=bY8urSxN/zpoQsHiG/1KMNzMVb5dak1X6yPt+BRCeBGyyJg1dzl3uDpCMFskr5U6zseKM9 Tvhp4XcrMAys1RcqtCRII0nYi9F1s90wR1npl/MmsuKLSe0C72GMuy48yYQcWdKLRQIaqh 8Y4Gb51JVAf+BNryEu+QHLYYe95IROWqh/GylFap0XsTm2QBuFS6wSAr+IOvZ5zRK+LS1T 8c+u6qEeIDWgiQE/0VVoxx9Q4y+0/z5fdGAGm+/wYRtjAoupRWzwrmusKTNQXsejZ7dbmf N5fkHk8Ceys7l8RvIInfO8dOOu9GbLyMGWe5r64x5I8vOIx7EPJ6pFzOX+QqbA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771360884; a=rsa-sha256; cv=none; b=xWYEkJpRBCduA6d420+B3r2yuJJXsDJXqn6SaRHyjJyXN0pp4kUA3ZrXlueHoZ2OYRALMg qmyl8yw7rnIUyP0lnj1FG3T80KHm/Rk5jhPX9/98qn+10FIxqlC6drpMTqYm1uVkCfW3gT emtMKbdqbBG+rn2gy3P/s1s05z6HdFfuBNyGkbF78yGSDOLaGvS5zpnPYNAQkZPk/bj9qf 1I/krqaSRoSf+UpLBh8uveA866Me2ZnVseun6LJyncHif56nG3Wbg+ro6UhXJ605zejcDZ iBNHFHHxMdt6SY/a7yIo8ks4e+NCz2daUJUv/caRBc0gh5UCb2PAT/vHZmFRFw== 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=1771360884; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Rdh6wxYBs7LVPaVtgyEgdAuZ7b+cjUJvvOSkVxDEkAo=; b=YmJo1XaUxmyAKIGh5pqw5aAslgzmkPO5Q/b4gGXm83/lOUuhEgtNMpz6uj1pzG7XNLGYOi H1dp/7GfGpk6MKX/oTxwXjOJQ+DAypAWij+Eb/bwhxdK0GEmrx3RebyhsT9hJBqIpUrc4L HmX+YULu2wy+o2hNXziggnnr9M3e76vGdzyHVAE+h00oy2Qi9S6LMEIyYkDYHJf/VwrAwW y265fmkuty/VKlBtD3vnYrNmlKJ6jRhErYv380053UT0FESONUJdhAwnC22AKiad+SYks6 O/sg7r9xl0gIQHiCbi06mbFqMF6HIV6yAV/qoihaM8GKDy+2QaqwMqqjSDvj9w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFs4N4RmVz99c for ; Tue, 17 Feb 2026 20:41:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1e9a7 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 17 Feb 2026 20:41:24 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Vladimir Kondratyev Subject: git: 09f1db900c6c - stable/15 - evdev: Sync event codes with Linux kernel 6.18 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 09f1db900c6cd3937d9ee78d885cc30ab06a67f2 Auto-Submitted: auto-generated Date: Tue, 17 Feb 2026 20:41:24 +0000 Message-Id: <6994d274.1e9a7.7ca202bf@gitrepo.freebsd.org> The branch stable/15 has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=09f1db900c6cd3937d9ee78d885cc30ab06a67f2 commit 09f1db900c6cd3937d9ee78d885cc30ab06a67f2 Author: Vladimir Kondratyev AuthorDate: 2025-12-01 20:42:15 +0000 Commit: Vladimir Kondratyev CommitDate: 2026-02-17 20:38:27 +0000 evdev: Sync event codes with Linux kernel 6.18 MFC after: 1 month (cherry picked from commit 8d9a5d44b155af7123893a6948ad7e86b48c57b3) --- sys/dev/evdev/input-event-codes.h | 28 ++++++++++++++- sys/dev/evdev/input.h | 73 +++++++++++++++++++++++---------------- 2 files changed, 71 insertions(+), 30 deletions(-) diff --git a/sys/dev/evdev/input-event-codes.h b/sys/dev/evdev/input-event-codes.h index 59eb8e104c87..81c88ec86b9b 100644 --- a/sys/dev/evdev/input-event-codes.h +++ b/sys/dev/evdev/input-event-codes.h @@ -39,6 +39,7 @@ #define INPUT_PROP_TOPBUTTONPAD 0x04 /* softbuttons at top of pad */ #define INPUT_PROP_POINTING_STICK 0x05 /* is a pointing stick */ #define INPUT_PROP_ACCELEROMETER 0x06 /* has accelerometer */ +#define INPUT_PROP_PRESSUREPAD 0x07 /* pressure triggers clicks */ #define INPUT_PROP_MAX 0x1f #define INPUT_PROP_CNT (INPUT_PROP_MAX + 1) @@ -531,6 +532,7 @@ #define KEY_NOTIFICATION_CENTER 0x1bc /* Show/hide the notification center */ #define KEY_PICKUP_PHONE 0x1bd /* Answer incoming call */ #define KEY_HANGUP_PHONE 0x1be /* Decline incoming call */ +#define KEY_LINK_PHONE 0x1bf /* AL Phone Syncing */ #define KEY_DEL_EOL 0x1c0 #define KEY_DEL_EOS 0x1c1 @@ -612,8 +614,14 @@ #define BTN_DPAD_LEFT 0x222 #define BTN_DPAD_RIGHT 0x223 +#define BTN_GRIPL 0x224 +#define BTN_GRIPR 0x225 +#define BTN_GRIPL2 0x226 +#define BTN_GRIPR2 0x227 + #define KEY_ALS_TOGGLE 0x230 /* Ambient light sensor */ #define KEY_ROTATE_LOCK_TOGGLE 0x231 /* Display rotation lock */ +#define KEY_REFRESH_RATE_TOGGLE 0x232 /* Display refresh rate toggle */ #define KEY_BUTTONCONFIG 0x240 /* AL Button Configuration */ #define KEY_TASKMANAGER 0x241 /* AL Task/Project Manager */ @@ -629,10 +637,24 @@ #define KEY_CAMERA_ACCESS_ENABLE 0x24b /* Enables programmatic access to camera devices. (HUTRR72) */ #define KEY_CAMERA_ACCESS_DISABLE 0x24c /* Disables programmatic access to camera devices. (HUTRR72) */ #define KEY_CAMERA_ACCESS_TOGGLE 0x24d /* Toggles the current state of the camera access control. (HUTRR72) */ +#define KEY_ACCESSIBILITY 0x24e /* Toggles the system bound accessibility UI/command (HUTRR116) */ +#define KEY_DO_NOT_DISTURB 0x24f /* Toggles the system-wide "Do Not Disturb" control (HUTRR94)*/ #define KEY_BRIGHTNESS_MIN 0x250 /* Set Brightness to Minimum */ #define KEY_BRIGHTNESS_MAX 0x251 /* Set Brightness to Maximum */ +/* + * Keycodes for hotkeys toggling the electronic privacy screen found on some + * laptops on/off. Note when the embedded-controller turns on/off the eprivacy + * screen itself then the state should be reported through drm connecter props: + * https://www.kernel.org/doc/html/latest/gpu/drm-kms.html#standard-connector-properties + * Except when implementing the drm connecter properties API is not possible + * because e.g. the firmware does not allow querying the presence and/or status + * of the eprivacy screen at boot. + */ +#define KEY_EPRIVACY_SCREEN_ON 0x252 +#define KEY_EPRIVACY_SCREEN_OFF 0x253 + #define KEY_KBDINPUTASSIST_PREV 0x260 #define KEY_KBDINPUTASSIST_NEXT 0x261 #define KEY_KBDINPUTASSIST_PREVGROUP 0x262 @@ -773,6 +795,9 @@ #define KEY_KBD_LCD_MENU4 0x2bb #define KEY_KBD_LCD_MENU5 0x2bc +/* Performance Boost key (Alienware)/G-Mode key (Dell) */ +#define KEY_PERFORMANCE 0x2bd + #define BTN_TRIGGER_HAPPY 0x2c0 #define BTN_TRIGGER_HAPPY1 0x2c0 #define BTN_TRIGGER_HAPPY2 0x2c1 @@ -932,7 +957,8 @@ #define SW_MUTE_DEVICE 0x0e /* set = device disabled */ #define SW_PEN_INSERTED 0x0f /* set = pen inserted */ #define SW_MACHINE_COVER 0x10 /* set = cover closed */ -#define SW_MAX 0x10 +#define SW_USB_INSERT 0x11 /* set = USB audio device connected */ +#define SW_MAX 0x11 #define SW_CNT (SW_MAX+1) /* diff --git a/sys/dev/evdev/input.h b/sys/dev/evdev/input.h index 3b87101da75f..ce0fb616a3df 100644 --- a/sys/dev/evdev/input.h +++ b/sys/dev/evdev/input.h @@ -142,6 +142,8 @@ struct input_keymap_entry { #define BUS_RMI 0x1D #define BUS_CEC 0x1E #define BUS_INTEL_ISHTP 0x1F +#define BUS_AMD_SFH 0x20 +#define BUS_SDW 0x21 /* * MT_TOOL types @@ -203,20 +205,6 @@ struct ff_condition_effect { int16_t center; /* center of dead zone */ }; -/* - * Force feedback periodic effect types - */ - -#define FF_SQUARE 0x58 -#define FF_TRIANGLE 0x59 -#define FF_SINE 0x5a -#define FF_SAW_UP 0x5b -#define FF_SAW_DOWN 0x5c -#define FF_CUSTOM 0x5d - -#define FF_WAVEFORM_MIN FF_SQUARE -#define FF_WAVEFORM_MAX FF_CUSTOM - struct ff_periodic_effect { uint16_t waveform; uint16_t period; /* ms */ @@ -233,21 +221,14 @@ struct ff_rumble_effect { uint16_t weak_magnitude; /* magnitude of the light motor */ }; -/* - * Force feedback effect types - */ - -#define FF_RUMBLE 0x50 -#define FF_PERIODIC 0x51 -#define FF_CONSTANT 0x52 -#define FF_SPRING 0x53 -#define FF_FRICTION 0x54 -#define FF_DAMPER 0x55 -#define FF_INERTIA 0x56 -#define FF_RAMP 0x57 - -#define FF_EFFECT_MIN FF_RUMBLE -#define FF_EFFECT_MAX FF_RAMP +struct ff_haptic_effect { + uint16_t hid_usage; + uint16_t vendor_id; + uint8_t vendor_waveform_page; + uint16_t intensity; + uint16_t repeat_count; + uint16_t retrigger_period; +}; struct ff_effect { uint16_t type; @@ -262,9 +243,41 @@ struct ff_effect { struct ff_periodic_effect periodic; struct ff_condition_effect condition[2]; /* One for each axis */ struct ff_rumble_effect rumble; + struct ff_haptic_effect haptic; } u; }; +/* + * Force feedback effect types + */ + +#define FF_HAPTIC 0x4f +#define FF_RUMBLE 0x50 +#define FF_PERIODIC 0x51 +#define FF_CONSTANT 0x52 +#define FF_SPRING 0x53 +#define FF_FRICTION 0x54 +#define FF_DAMPER 0x55 +#define FF_INERTIA 0x56 +#define FF_RAMP 0x57 + +#define FF_EFFECT_MIN FF_HAPTIC +#define FF_EFFECT_MAX FF_RAMP + +/* + * Force feedback periodic effect types + */ + +#define FF_SQUARE 0x58 +#define FF_TRIANGLE 0x59 +#define FF_SINE 0x5a +#define FF_SAW_UP 0x5b +#define FF_SAW_DOWN 0x5c +#define FF_CUSTOM 0x5d + +#define FF_WAVEFORM_MIN FF_SQUARE +#define FF_WAVEFORM_MAX FF_CUSTOM + /* * force feedback device properties */ @@ -272,6 +285,8 @@ struct ff_effect { #define FF_GAIN 0x60 #define FF_AUTOCENTER 0x61 +#define FF_MAX_EFFECTS FF_GAIN + #define FF_MAX 0x7f #define FF_CNT (FF_MAX+1) From nobody Tue Feb 17 20:41:25 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFs4Q0XZvz6S3By for ; Tue, 17 Feb 2026 20:41:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFs4P5p7sz3rpS for ; Tue, 17 Feb 2026 20:41:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771360885; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ofRmCI/iOTtP5OA/J0GRD8paSQLJT4r73MX9w/s38eo=; b=AXaEvNbOPhNR7SiaPU12zW55cMzAvXSRztTBs5uFDn8YTmpieRrMmM7PxvFcrJj3mRqSsb C657V/oEHkwGuHwn8wFkrZP1fYMPozJ06xvJ0t5qPnYwRdfVIVLoTDpunXg87YpuGeVMOW yByk4PsZMxNQhQUf8gNBIPBnBeXCIxykVkDSh4NravYlQl0kprfNzuSYdDA55l927TgXid W+z6E+xjwPRoXP/1/sKu9JjMLnwI0dvGfzPCC97UyF/hTY6uvJiJlPsaqkBa7xG5aGXMD7 U1M8B3VMtBw+ucQashmCoDP/H0GIme5JCbNKbYzmKz4qS9RFGSHZ63wjcWk2jA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771360885; a=rsa-sha256; cv=none; b=jRkHfo8SdcR3EWoDwfzmxpB7UUVuayGCPO+qVUxBcjw4mp3bJOBBnJEZFgk7YRTlTYQxAT JkLbJwuZgkiZkQ1vxE/cdO2eHCH4cRPLYLKle0bcPVedgi7Kb79wuR5BzLK923148Q7i9B IrvcieNsZIZIm2aLkhLwmhhkr0+A+p7urLmiNCvfzS4fyERZnRGXZguGApFb58NbBUDj/M iwmMve9pDpFLwvJvTBl3ITCGvX0BppHhcOj+ii8klHqATsuDveUEeORBO7EEDMcBvuONLa otl/rrd4Efgr/zokvplmbTOvT+LdG28TG0W06Dxfja83aCR6w7klZ1Ux/Xmnhg== 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=1771360885; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ofRmCI/iOTtP5OA/J0GRD8paSQLJT4r73MX9w/s38eo=; b=umEmlCMzc355Rp0ZCFugfqYQkKrJou+Sr6nSpUZ1su00jyX4lDgsTdjSIGXFcxzVYLo4ba L8N5k1ixc8enyui+XCRiPNlmtJCPkz9Hvgs+ARcOnPLAfN2ePxzNN82dk9jL/+u9i+ckaw M5HqhsEok4KhFKH/ffJzYIuRSR/9bMd8PtPGK1ABGNpFUSA8xXVa5vwR9mIYWh7fbv6nCJ a+G5tHQLlLYsB7aqvRFuTpdg94UtX7bnAng92tClwhZ/wWupoDbC2PNza8eaSWc8uKoJNr EiVeRjrbz0piJ2XwBlqM2IV7G39ECFuwjrz+ra8UzN8h2OWImSiS5tJP3dIpxA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFs4P5JZxz9PZ for ; Tue, 17 Feb 2026 20:41:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1f1a4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 17 Feb 2026 20:41:25 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Vladimir Kondratyev Subject: git: 5bf02d480f5b - stable/15 - evdev: Drop comments from input-event-codes.h List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 5bf02d480f5b1c89b7d9f04bbd4e7eca4e5cf1c5 Auto-Submitted: auto-generated Date: Tue, 17 Feb 2026 20:41:25 +0000 Message-Id: <6994d275.1f1a4.14e82cf@gitrepo.freebsd.org> The branch stable/15 has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=5bf02d480f5b1c89b7d9f04bbd4e7eca4e5cf1c5 commit 5bf02d480f5b1c89b7d9f04bbd4e7eca4e5cf1c5 Author: Vladimir Kondratyev AuthorDate: 2026-02-10 22:59:06 +0000 Commit: Vladimir Kondratyev CommitDate: 2026-02-17 20:38:27 +0000 evdev: Drop comments from input-event-codes.h They were copied intact from the Linux GPL-only file. Requested by: imp, glebius MFC after: 1 week (cherry picked from commit 89aa8a94053fdd22ed716fdf424a2d10e70b3188) --- sys/dev/evdev/input-event-codes.h | 485 ++++++++++++++------------------------ 1 file changed, 177 insertions(+), 308 deletions(-) diff --git a/sys/dev/evdev/input-event-codes.h b/sys/dev/evdev/input-event-codes.h index 81c88ec86b9b..4f1d0f96e400 100644 --- a/sys/dev/evdev/input-event-codes.h +++ b/sys/dev/evdev/input-event-codes.h @@ -28,26 +28,18 @@ #ifndef _EVDEV_INPUT_EVENT_CODES_H #define _EVDEV_INPUT_EVENT_CODES_H -/* - * Device properties and quirks - */ - -#define INPUT_PROP_POINTER 0x00 /* needs a pointer */ -#define INPUT_PROP_DIRECT 0x01 /* direct input devices */ -#define INPUT_PROP_BUTTONPAD 0x02 /* has button(s) under pad */ -#define INPUT_PROP_SEMI_MT 0x03 /* touch rectangle only */ -#define INPUT_PROP_TOPBUTTONPAD 0x04 /* softbuttons at top of pad */ -#define INPUT_PROP_POINTING_STICK 0x05 /* is a pointing stick */ -#define INPUT_PROP_ACCELEROMETER 0x06 /* has accelerometer */ -#define INPUT_PROP_PRESSUREPAD 0x07 /* pressure triggers clicks */ +#define INPUT_PROP_POINTER 0x00 +#define INPUT_PROP_DIRECT 0x01 +#define INPUT_PROP_BUTTONPAD 0x02 +#define INPUT_PROP_SEMI_MT 0x03 +#define INPUT_PROP_TOPBUTTONPAD 0x04 +#define INPUT_PROP_POINTING_STICK 0x05 +#define INPUT_PROP_ACCELEROMETER 0x06 +#define INPUT_PROP_PRESSUREPAD 0x07 #define INPUT_PROP_MAX 0x1f #define INPUT_PROP_CNT (INPUT_PROP_MAX + 1) -/* - * Event types - */ - #define EV_SYN 0x00 #define EV_KEY 0x01 #define EV_REL 0x02 @@ -63,10 +55,6 @@ #define EV_MAX 0x1f #define EV_CNT (EV_MAX+1) -/* - * Synchronization events. - */ - #define SYN_REPORT 0 #define SYN_CONFIG 1 #define SYN_MT_REPORT 2 @@ -74,17 +62,6 @@ #define SYN_MAX 0xf #define SYN_CNT (SYN_MAX+1) -/* - * Keys and buttons - * - * Most of the keys/buttons are modeled after USB HUT 1.12 - * (see http://www.usb.org/developers/hidpage). - * Abbreviations in the comments: - * AC - Application Control - * AL - Application Launch Button - * SC - System Control - */ - #define KEY_RESERVED 0 #define KEY_ESC 1 #define KEY_1 2 @@ -201,11 +178,11 @@ #define KEY_MUTE 113 #define KEY_VOLUMEDOWN 114 #define KEY_VOLUMEUP 115 -#define KEY_POWER 116 /* SC System Power Down */ +#define KEY_POWER 116 #define KEY_KPEQUAL 117 #define KEY_KPPLUSMINUS 118 #define KEY_PAUSE 119 -#define KEY_SCALE 120 /* AL Compiz Scale (Expose) */ +#define KEY_SCALE 120 #define KEY_KPCOMMA 121 #define KEY_HANGEUL 122 @@ -216,40 +193,40 @@ #define KEY_RIGHTMETA 126 #define KEY_COMPOSE 127 -#define KEY_STOP 128 /* AC Stop */ +#define KEY_STOP 128 #define KEY_AGAIN 129 -#define KEY_PROPS 130 /* AC Properties */ -#define KEY_UNDO 131 /* AC Undo */ +#define KEY_PROPS 130 +#define KEY_UNDO 131 #define KEY_FRONT 132 -#define KEY_COPY 133 /* AC Copy */ -#define KEY_OPEN 134 /* AC Open */ -#define KEY_PASTE 135 /* AC Paste */ -#define KEY_FIND 136 /* AC Search */ -#define KEY_CUT 137 /* AC Cut */ -#define KEY_HELP 138 /* AL Integrated Help Center */ -#define KEY_MENU 139 /* Menu (show menu) */ -#define KEY_CALC 140 /* AL Calculator */ +#define KEY_COPY 133 +#define KEY_OPEN 134 +#define KEY_PASTE 135 +#define KEY_FIND 136 +#define KEY_CUT 137 +#define KEY_HELP 138 +#define KEY_MENU 139 +#define KEY_CALC 140 #define KEY_SETUP 141 -#define KEY_SLEEP 142 /* SC System Sleep */ -#define KEY_WAKEUP 143 /* System Wake Up */ -#define KEY_FILE 144 /* AL Local Machine Browser */ +#define KEY_SLEEP 142 +#define KEY_WAKEUP 143 +#define KEY_FILE 144 #define KEY_SENDFILE 145 #define KEY_DELETEFILE 146 #define KEY_XFER 147 #define KEY_PROG1 148 #define KEY_PROG2 149 -#define KEY_WWW 150 /* AL Internet Browser */ +#define KEY_WWW 150 #define KEY_MSDOS 151 -#define KEY_COFFEE 152 /* AL Terminal Lock/Screensaver */ +#define KEY_COFFEE 152 #define KEY_SCREENLOCK KEY_COFFEE -#define KEY_ROTATE_DISPLAY 153 /* Display orientation for e.g. tablets */ +#define KEY_ROTATE_DISPLAY 153 #define KEY_DIRECTION KEY_ROTATE_DISPLAY #define KEY_CYCLEWINDOWS 154 #define KEY_MAIL 155 -#define KEY_BOOKMARKS 156 /* AC Bookmarks */ +#define KEY_BOOKMARKS 156 #define KEY_COMPUTER 157 -#define KEY_BACK 158 /* AC Back */ -#define KEY_FORWARD 159 /* AC Forward */ +#define KEY_BACK 158 +#define KEY_FORWARD 159 #define KEY_CLOSECD 160 #define KEY_EJECTCD 161 #define KEY_EJECTCLOSECD 162 @@ -259,20 +236,20 @@ #define KEY_STOPCD 166 #define KEY_RECORD 167 #define KEY_REWIND 168 -#define KEY_PHONE 169 /* Media Select Telephone */ +#define KEY_PHONE 169 #define KEY_ISO 170 -#define KEY_CONFIG 171 /* AL Consumer Control Configuration */ -#define KEY_HOMEPAGE 172 /* AC Home */ -#define KEY_REFRESH 173 /* AC Refresh */ -#define KEY_EXIT 174 /* AC Exit */ +#define KEY_CONFIG 171 +#define KEY_HOMEPAGE 172 +#define KEY_REFRESH 173 +#define KEY_EXIT 174 #define KEY_MOVE 175 #define KEY_EDIT 176 #define KEY_SCROLLUP 177 #define KEY_SCROLLDOWN 178 #define KEY_KPLEFTPAREN 179 #define KEY_KPRIGHTPAREN 180 -#define KEY_NEW 181 /* AC New */ -#define KEY_REDO 182 /* AC Redo/Repeat */ +#define KEY_NEW 181 +#define KEY_REDO 182 #define KEY_F13 183 #define KEY_F14 184 @@ -291,14 +268,14 @@ #define KEY_PAUSECD 201 #define KEY_PROG3 202 #define KEY_PROG4 203 -#define KEY_ALL_APPLICATIONS 204 /* AC Desktop Show All Applications */ +#define KEY_ALL_APPLICATIONS 204 #define KEY_DASHBOARD KEY_ALL_APPLICATIONS #define KEY_SUSPEND 205 -#define KEY_CLOSE 206 /* AC Close */ +#define KEY_CLOSE 206 #define KEY_PLAY 207 #define KEY_FASTFORWARD 208 #define KEY_BASSBOOST 209 -#define KEY_PRINT 210 /* AC Print */ +#define KEY_PRINT 210 #define KEY_HP 211 #define KEY_CAMERA 212 #define KEY_SOUND 213 @@ -307,25 +284,24 @@ #define KEY_CHAT 216 #define KEY_SEARCH 217 #define KEY_CONNECT 218 -#define KEY_FINANCE 219 /* AL Checkbook/Finance */ +#define KEY_FINANCE 219 #define KEY_SPORT 220 #define KEY_SHOP 221 #define KEY_ALTERASE 222 -#define KEY_CANCEL 223 /* AC Cancel */ +#define KEY_CANCEL 223 #define KEY_BRIGHTNESSDOWN 224 #define KEY_BRIGHTNESSUP 225 #define KEY_MEDIA 226 -#define KEY_SWITCHVIDEOMODE 227 /* Cycle between available video - outputs (Monitor/LCD/TV-out/etc) */ +#define KEY_SWITCHVIDEOMODE 227 #define KEY_KBDILLUMTOGGLE 228 #define KEY_KBDILLUMDOWN 229 #define KEY_KBDILLUMUP 230 -#define KEY_SEND 231 /* AC Send */ -#define KEY_REPLY 232 /* AC Reply */ -#define KEY_FORWARDMAIL 233 /* AC Forward Msg */ -#define KEY_SAVE 234 /* AC Save */ +#define KEY_SEND 231 +#define KEY_REPLY 232 +#define KEY_FORWARDMAIL 233 +#define KEY_SAVE 234 #define KEY_DOCUMENTS 235 #define KEY_BATTERY 236 @@ -336,22 +312,18 @@ #define KEY_UNKNOWN 240 -#define KEY_VIDEO_NEXT 241 /* drive next video source */ -#define KEY_VIDEO_PREV 242 /* drive previous video source */ -#define KEY_BRIGHTNESS_CYCLE 243 /* brightness up, after max is min */ -#define KEY_BRIGHTNESS_AUTO 244 /* Set Auto Brightness: manual - brightness control is off, - rely on ambient */ +#define KEY_VIDEO_NEXT 241 +#define KEY_VIDEO_PREV 242 +#define KEY_BRIGHTNESS_CYCLE 243 +#define KEY_BRIGHTNESS_AUTO 244 #define KEY_BRIGHTNESS_ZERO KEY_BRIGHTNESS_AUTO -#define KEY_DISPLAY_OFF 245 /* display device to off state */ +#define KEY_DISPLAY_OFF 245 -#define KEY_WWAN 246 /* Wireless WAN (LTE, UMTS, GSM, etc.) */ +#define KEY_WWAN 246 #define KEY_WIMAX KEY_WWAN -#define KEY_RFKILL 247 /* Key that controls all radios */ - -#define KEY_MICMUTE 248 /* Mute / unmute the microphone */ +#define KEY_RFKILL 247 -/* Code 255 is reserved for special needs of AT keyboard driver */ +#define KEY_MICMUTE 248 #define BTN_MISC 0x100 #define BTN_0 0x100 @@ -420,14 +392,14 @@ #define BTN_TOOL_FINGER 0x145 #define BTN_TOOL_MOUSE 0x146 #define BTN_TOOL_LENS 0x147 -#define BTN_TOOL_QUINTTAP 0x148 /* Five fingers on trackpad */ +#define BTN_TOOL_QUINTTAP 0x148 #define BTN_STYLUS3 0x149 #define BTN_TOUCH 0x14a #define BTN_STYLUS 0x14b #define BTN_STYLUS2 0x14c #define BTN_TOOL_DOUBLETAP 0x14d #define BTN_TOOL_TRIPLETAP 0x14e -#define BTN_TOOL_QUADTAP 0x14f /* Four fingers on trackpad */ +#define BTN_TOOL_QUADTAP 0x14f #define BTN_WHEEL 0x150 #define BTN_GEAR_DOWN 0x150 @@ -439,56 +411,56 @@ #define KEY_CLEAR 0x163 #define KEY_POWER2 0x164 #define KEY_OPTION 0x165 -#define KEY_INFO 0x166 /* AL OEM Features/Tips/Tutorial */ +#define KEY_INFO 0x166 #define KEY_TIME 0x167 #define KEY_VENDOR 0x168 #define KEY_ARCHIVE 0x169 -#define KEY_PROGRAM 0x16a /* Media Select Program Guide */ +#define KEY_PROGRAM 0x16a #define KEY_CHANNEL 0x16b #define KEY_FAVORITES 0x16c #define KEY_EPG 0x16d -#define KEY_PVR 0x16e /* Media Select Home */ +#define KEY_PVR 0x16e #define KEY_MHP 0x16f #define KEY_LANGUAGE 0x170 #define KEY_TITLE 0x171 #define KEY_SUBTITLE 0x172 #define KEY_ANGLE 0x173 -#define KEY_FULL_SCREEN 0x174 /* AC View Toggle */ +#define KEY_FULL_SCREEN 0x174 #define KEY_ZOOM KEY_FULL_SCREEN #define KEY_MODE 0x175 #define KEY_KEYBOARD 0x176 -#define KEY_ASPECT_RATIO 0x177 /* HUTRR37: Aspect */ +#define KEY_ASPECT_RATIO 0x177 #define KEY_SCREEN KEY_ASPECT_RATIO -#define KEY_PC 0x178 /* Media Select Computer */ -#define KEY_TV 0x179 /* Media Select TV */ -#define KEY_TV2 0x17a /* Media Select Cable */ -#define KEY_VCR 0x17b /* Media Select VCR */ -#define KEY_VCR2 0x17c /* VCR Plus */ -#define KEY_SAT 0x17d /* Media Select Satellite */ +#define KEY_PC 0x178 +#define KEY_TV 0x179 +#define KEY_TV2 0x17a +#define KEY_VCR 0x17b +#define KEY_VCR2 0x17c +#define KEY_SAT 0x17d #define KEY_SAT2 0x17e -#define KEY_CD 0x17f /* Media Select CD */ -#define KEY_TAPE 0x180 /* Media Select Tape */ +#define KEY_CD 0x17f +#define KEY_TAPE 0x180 #define KEY_RADIO 0x181 -#define KEY_TUNER 0x182 /* Media Select Tuner */ +#define KEY_TUNER 0x182 #define KEY_PLAYER 0x183 #define KEY_TEXT 0x184 -#define KEY_DVD 0x185 /* Media Select DVD */ +#define KEY_DVD 0x185 #define KEY_AUX 0x186 #define KEY_MP3 0x187 -#define KEY_AUDIO 0x188 /* AL Audio Browser */ -#define KEY_VIDEO 0x189 /* AL Movie Browser */ +#define KEY_AUDIO 0x188 +#define KEY_VIDEO 0x189 #define KEY_DIRECTORY 0x18a #define KEY_LIST 0x18b -#define KEY_MEMO 0x18c /* Media Select Messages */ +#define KEY_MEMO 0x18c #define KEY_CALENDAR 0x18d #define KEY_RED 0x18e #define KEY_GREEN 0x18f #define KEY_YELLOW 0x190 #define KEY_BLUE 0x191 -#define KEY_CHANNELUP 0x192 /* Channel Increment */ -#define KEY_CHANNELDOWN 0x193 /* Channel Decrement */ +#define KEY_CHANNELUP 0x192 +#define KEY_CHANNELDOWN 0x193 #define KEY_FIRST 0x194 -#define KEY_LAST 0x195 /* Recall Last */ +#define KEY_LAST 0x195 #define KEY_AB 0x196 #define KEY_NEXT 0x197 #define KEY_RESTART 0x198 @@ -499,40 +471,40 @@ #define KEY_DIGITS 0x19d #define KEY_TEEN 0x19e #define KEY_TWEN 0x19f -#define KEY_VIDEOPHONE 0x1a0 /* Media Select Video Phone */ -#define KEY_GAMES 0x1a1 /* Media Select Games */ -#define KEY_ZOOMIN 0x1a2 /* AC Zoom In */ -#define KEY_ZOOMOUT 0x1a3 /* AC Zoom Out */ -#define KEY_ZOOMRESET 0x1a4 /* AC Zoom */ -#define KEY_WORDPROCESSOR 0x1a5 /* AL Word Processor */ -#define KEY_EDITOR 0x1a6 /* AL Text Editor */ -#define KEY_SPREADSHEET 0x1a7 /* AL Spreadsheet */ -#define KEY_GRAPHICSEDITOR 0x1a8 /* AL Graphics Editor */ -#define KEY_PRESENTATION 0x1a9 /* AL Presentation App */ -#define KEY_DATABASE 0x1aa /* AL Database App */ -#define KEY_NEWS 0x1ab /* AL Newsreader */ -#define KEY_VOICEMAIL 0x1ac /* AL Voicemail */ -#define KEY_ADDRESSBOOK 0x1ad /* AL Contacts/Address Book */ -#define KEY_MESSENGER 0x1ae /* AL Instant Messaging */ -#define KEY_DISPLAYTOGGLE 0x1af /* Turn display (LCD) on and off */ +#define KEY_VIDEOPHONE 0x1a0 +#define KEY_GAMES 0x1a1 +#define KEY_ZOOMIN 0x1a2 +#define KEY_ZOOMOUT 0x1a3 +#define KEY_ZOOMRESET 0x1a4 +#define KEY_WORDPROCESSOR 0x1a5 +#define KEY_EDITOR 0x1a6 +#define KEY_SPREADSHEET 0x1a7 +#define KEY_GRAPHICSEDITOR 0x1a8 +#define KEY_PRESENTATION 0x1a9 +#define KEY_DATABASE 0x1aa +#define KEY_NEWS 0x1ab +#define KEY_VOICEMAIL 0x1ac +#define KEY_ADDRESSBOOK 0x1ad +#define KEY_MESSENGER 0x1ae +#define KEY_DISPLAYTOGGLE 0x1af #define KEY_BRIGHTNESS_TOGGLE KEY_DISPLAYTOGGLE -#define KEY_SPELLCHECK 0x1b0 /* AL Spell Check */ -#define KEY_LOGOFF 0x1b1 /* AL Logoff */ +#define KEY_SPELLCHECK 0x1b0 +#define KEY_LOGOFF 0x1b1 #define KEY_DOLLAR 0x1b2 #define KEY_EURO 0x1b3 -#define KEY_FRAMEBACK 0x1b4 /* Consumer - transport controls */ +#define KEY_FRAMEBACK 0x1b4 #define KEY_FRAMEFORWARD 0x1b5 -#define KEY_CONTEXT_MENU 0x1b6 /* GenDesc - system context menu */ -#define KEY_MEDIA_REPEAT 0x1b7 /* Consumer - transport control */ -#define KEY_10CHANNELSUP 0x1b8 /* 10 channels up (10+) */ -#define KEY_10CHANNELSDOWN 0x1b9 /* 10 channels down (10-) */ -#define KEY_IMAGES 0x1ba /* AL Image Browser */ -#define KEY_NOTIFICATION_CENTER 0x1bc /* Show/hide the notification center */ -#define KEY_PICKUP_PHONE 0x1bd /* Answer incoming call */ -#define KEY_HANGUP_PHONE 0x1be /* Decline incoming call */ -#define KEY_LINK_PHONE 0x1bf /* AL Phone Syncing */ +#define KEY_CONTEXT_MENU 0x1b6 +#define KEY_MEDIA_REPEAT 0x1b7 +#define KEY_10CHANNELSUP 0x1b8 +#define KEY_10CHANNELSDOWN 0x1b9 +#define KEY_IMAGES 0x1ba +#define KEY_NOTIFICATION_CENTER 0x1bc +#define KEY_PICKUP_PHONE 0x1bd +#define KEY_HANGUP_PHONE 0x1be +#define KEY_LINK_PHONE 0x1bf #define KEY_DEL_EOL 0x1c0 #define KEY_DEL_EOS 0x1c1 @@ -573,8 +545,8 @@ #define KEY_BRL_DOT9 0x1f9 #define KEY_BRL_DOT10 0x1fa -#define KEY_NUMERIC_0 0x200 /* used by phones, remote controls, */ -#define KEY_NUMERIC_1 0x201 /* and other keypads */ +#define KEY_NUMERIC_0 0x200 +#define KEY_NUMERIC_1 0x201 #define KEY_NUMERIC_2 0x202 #define KEY_NUMERIC_3 0x203 #define KEY_NUMERIC_4 0x204 @@ -585,15 +557,14 @@ #define KEY_NUMERIC_9 0x209 #define KEY_NUMERIC_STAR 0x20a #define KEY_NUMERIC_POUND 0x20b -#define KEY_NUMERIC_A 0x20c /* Phone key A - HUT Telephony 0xb9 */ +#define KEY_NUMERIC_A 0x20c #define KEY_NUMERIC_B 0x20d #define KEY_NUMERIC_C 0x20e #define KEY_NUMERIC_D 0x20f - #define KEY_CAMERA_FOCUS 0x210 -#define KEY_WPS_BUTTON 0x211 /* WiFi Protected Setup key */ +#define KEY_WPS_BUTTON 0x211 -#define KEY_TOUCHPAD_TOGGLE 0x212 /* Request switch touchpad on or off */ +#define KEY_TOUCHPAD_TOGGLE 0x212 #define KEY_TOUCHPAD_ON 0x213 #define KEY_TOUCHPAD_OFF 0x214 @@ -603,11 +574,10 @@ #define KEY_CAMERA_DOWN 0x218 #define KEY_CAMERA_LEFT 0x219 #define KEY_CAMERA_RIGHT 0x21a - #define KEY_ATTENDANT_ON 0x21b #define KEY_ATTENDANT_OFF 0x21c -#define KEY_ATTENDANT_TOGGLE 0x21d /* Attendant call on or off */ -#define KEY_LIGHTS_TOGGLE 0x21e /* Reading light on or off */ +#define KEY_ATTENDANT_TOGGLE 0x21d +#define KEY_LIGHTS_TOGGLE 0x21e #define BTN_DPAD_UP 0x220 #define BTN_DPAD_DOWN 0x221 @@ -619,94 +589,69 @@ #define BTN_GRIPL2 0x226 #define BTN_GRIPR2 0x227 -#define KEY_ALS_TOGGLE 0x230 /* Ambient light sensor */ -#define KEY_ROTATE_LOCK_TOGGLE 0x231 /* Display rotation lock */ -#define KEY_REFRESH_RATE_TOGGLE 0x232 /* Display refresh rate toggle */ - -#define KEY_BUTTONCONFIG 0x240 /* AL Button Configuration */ -#define KEY_TASKMANAGER 0x241 /* AL Task/Project Manager */ -#define KEY_JOURNAL 0x242 /* AL Log/Journal/Timecard */ -#define KEY_CONTROLPANEL 0x243 /* AL Control Panel */ -#define KEY_APPSELECT 0x244 /* AL Select Task/Application */ -#define KEY_SCREENSAVER 0x245 /* AL Screen Saver */ -#define KEY_VOICECOMMAND 0x246 /* Listening Voice Command */ -#define KEY_ASSISTANT 0x247 /* AL Context-aware desktop assistant */ -#define KEY_KBD_LAYOUT_NEXT 0x248 /* AC Next Keyboard Layout Select */ -#define KEY_EMOJI_PICKER 0x249 /* Show/hide emoji picker (HUTRR101) */ -#define KEY_DICTATE 0x24a /* Start or Stop Voice Dictation Session (HUTRR99) */ -#define KEY_CAMERA_ACCESS_ENABLE 0x24b /* Enables programmatic access to camera devices. (HUTRR72) */ -#define KEY_CAMERA_ACCESS_DISABLE 0x24c /* Disables programmatic access to camera devices. (HUTRR72) */ -#define KEY_CAMERA_ACCESS_TOGGLE 0x24d /* Toggles the current state of the camera access control. (HUTRR72) */ -#define KEY_ACCESSIBILITY 0x24e /* Toggles the system bound accessibility UI/command (HUTRR116) */ -#define KEY_DO_NOT_DISTURB 0x24f /* Toggles the system-wide "Do Not Disturb" control (HUTRR94)*/ - -#define KEY_BRIGHTNESS_MIN 0x250 /* Set Brightness to Minimum */ -#define KEY_BRIGHTNESS_MAX 0x251 /* Set Brightness to Maximum */ - -/* - * Keycodes for hotkeys toggling the electronic privacy screen found on some - * laptops on/off. Note when the embedded-controller turns on/off the eprivacy - * screen itself then the state should be reported through drm connecter props: - * https://www.kernel.org/doc/html/latest/gpu/drm-kms.html#standard-connector-properties - * Except when implementing the drm connecter properties API is not possible - * because e.g. the firmware does not allow querying the presence and/or status - * of the eprivacy screen at boot. - */ +#define KEY_ALS_TOGGLE 0x230 +#define KEY_ROTATE_LOCK_TOGGLE 0x231 +#define KEY_REFRESH_RATE_TOGGLE 0x232 + +#define KEY_BUTTONCONFIG 0x240 +#define KEY_TASKMANAGER 0x241 +#define KEY_JOURNAL 0x242 +#define KEY_CONTROLPANEL 0x243 +#define KEY_APPSELECT 0x244 +#define KEY_SCREENSAVER 0x245 +#define KEY_VOICECOMMAND 0x246 +#define KEY_ASSISTANT 0x247 +#define KEY_KBD_LAYOUT_NEXT 0x248 +#define KEY_EMOJI_PICKER 0x249 +#define KEY_DICTATE 0x24a +#define KEY_CAMERA_ACCESS_ENABLE 0x24b +#define KEY_CAMERA_ACCESS_DISABLE 0x24c +#define KEY_CAMERA_ACCESS_TOGGLE 0x24d +#define KEY_ACCESSIBILITY 0x24e +#define KEY_DO_NOT_DISTURB 0x24f + +#define KEY_BRIGHTNESS_MIN 0x250 +#define KEY_BRIGHTNESS_MAX 0x251 + #define KEY_EPRIVACY_SCREEN_ON 0x252 #define KEY_EPRIVACY_SCREEN_OFF 0x253 #define KEY_KBDINPUTASSIST_PREV 0x260 #define KEY_KBDINPUTASSIST_NEXT 0x261 -#define KEY_KBDINPUTASSIST_PREVGROUP 0x262 -#define KEY_KBDINPUTASSIST_NEXTGROUP 0x263 -#define KEY_KBDINPUTASSIST_ACCEPT 0x264 -#define KEY_KBDINPUTASSIST_CANCEL 0x265 +#define KEY_KBDINPUTASSIST_PREVGROUP 0x262 +#define KEY_KBDINPUTASSIST_NEXTGROUP 0x263 +#define KEY_KBDINPUTASSIST_ACCEPT 0x264 +#define KEY_KBDINPUTASSIST_CANCEL 0x265 -/* Diagonal movement keys */ #define KEY_RIGHT_UP 0x266 #define KEY_RIGHT_DOWN 0x267 #define KEY_LEFT_UP 0x268 #define KEY_LEFT_DOWN 0x269 -#define KEY_ROOT_MENU 0x26a /* Show Device's Root Menu */ -/* Show Top Menu of the Media (e.g. DVD) */ +#define KEY_ROOT_MENU 0x26a #define KEY_MEDIA_TOP_MENU 0x26b #define KEY_NUMERIC_11 0x26c #define KEY_NUMERIC_12 0x26d -/* - * Toggle Audio Description: refers to an audio service that helps blind and - * visually impaired consumers understand the action in a program. Note: in - * some countries this is referred to as "Video Description". - */ #define KEY_AUDIO_DESC 0x26e #define KEY_3D_MODE 0x26f #define KEY_NEXT_FAVORITE 0x270 #define KEY_STOP_RECORD 0x271 #define KEY_PAUSE_RECORD 0x272 -#define KEY_VOD 0x273 /* Video on Demand */ +#define KEY_VOD 0x273 #define KEY_UNMUTE 0x274 #define KEY_FASTREVERSE 0x275 #define KEY_SLOWREVERSE 0x276 -/* - * Control a data application associated with the currently viewed channel, - * e.g. teletext or data broadcast application (MHEG, MHP, HbbTV, etc.) - */ #define KEY_DATA 0x277 #define KEY_ONSCREEN_KEYBOARD 0x278 -/* Electronic privacy screen control */ #define KEY_PRIVACY_SCREEN_TOGGLE 0x279 -/* Select an area of screen to be copied */ #define KEY_SELECTIVE_SCREENSHOT 0x27a -/* Move the focus to the next or previous user controllable element within a UI container */ #define KEY_NEXT_ELEMENT 0x27b #define KEY_PREVIOUS_ELEMENT 0x27c -/* Toggle Autopilot engagement */ #define KEY_AUTOPILOT_ENGAGE_TOGGLE 0x27d -/* Shortcut Keys */ #define KEY_MARK_WAYPOINT 0x27e #define KEY_SOS 0x27f #define KEY_NAV_CHART 0x280 @@ -720,21 +665,6 @@ #define KEY_NAV_INFO 0x288 #define KEY_BRIGHTNESS_MENU 0x289 -/* - * Some keyboards have keys which do not have a defined meaning, these keys - * are intended to be programmed / bound to macros by the user. For most - * keyboards with these macro-keys the key-sequence to inject, or action to - * take, is all handled by software on the host side. So from the kernel's - * point of view these are just normal keys. - * - * The KEY_MACRO# codes below are intended for such keys, which may be labeled - * e.g. G1-G18, or S1 - S30. The KEY_MACRO# codes MUST NOT be used for keys - * where the marking on the key does indicate a defined meaning / purpose. - * - * The KEY_MACRO# codes MUST also NOT be used as fallback for when no existing - * KEY_FOO define matches the marking / purpose. In this case a new KEY_FOO - * define MUST be added. - */ #define KEY_MACRO1 0x290 #define KEY_MACRO2 0x291 #define KEY_MACRO3 0x292 @@ -766,16 +696,6 @@ #define KEY_MACRO29 0x2ac #define KEY_MACRO30 0x2ad -/* - * Some keyboards with the macro-keys described above have some extra keys - * for controlling the host-side software responsible for the macro handling: - * -A macro recording start/stop key. Note that not all keyboards which emit - * KEY_MACRO_RECORD_START will also emit KEY_MACRO_RECORD_STOP if - * KEY_MACRO_RECORD_STOP is not advertised, then KEY_MACRO_RECORD_START - * should be interpreted as a recording start/stop toggle; - * -Keys for switching between different macro (pre)sets, either a key for - * cycling through the configured presets or keys to directly select a preset. - */ #define KEY_MACRO_RECORD_START 0x2b0 #define KEY_MACRO_RECORD_STOP 0x2b1 #define KEY_MACRO_PRESET_CYCLE 0x2b2 @@ -783,19 +703,12 @@ #define KEY_MACRO_PRESET2 0x2b4 #define KEY_MACRO_PRESET3 0x2b5 -/* - * Some keyboards have a buildin LCD panel where the contents are controlled - * by the host. Often these have a number of keys directly below the LCD - * intended for controlling a menu shown on the LCD. These keys often don't - * have any labeling so we just name them KEY_KBD_LCD_MENU# - */ #define KEY_KBD_LCD_MENU1 0x2b8 #define KEY_KBD_LCD_MENU2 0x2b9 #define KEY_KBD_LCD_MENU3 0x2ba #define KEY_KBD_LCD_MENU4 0x2bb #define KEY_KBD_LCD_MENU5 0x2bc -/* Performance Boost key (Alienware)/G-Mode key (Dell) */ #define KEY_PERFORMANCE 0x2bd #define BTN_TRIGGER_HAPPY 0x2c0 @@ -840,15 +753,10 @@ #define BTN_TRIGGER_HAPPY39 0x2e6 #define BTN_TRIGGER_HAPPY40 0x2e7 -/* We avoid low common keys in module aliases so they don't get huge. */ #define KEY_MIN_INTERESTING KEY_MUTE #define KEY_MAX 0x2ff #define KEY_CNT (KEY_MAX+1) -/* - * Relative axes - */ - #define REL_X 0x00 #define REL_Y 0x01 #define REL_Z 0x02 @@ -859,23 +767,12 @@ #define REL_DIAL 0x07 #define REL_WHEEL 0x08 #define REL_MISC 0x09 -/* - * 0x0a is reserved and should not be used in input drivers. - * It was used by HID as REL_MISC+1 and userspace needs to detect if - * the next REL_* event is correct or is just REL_MISC + n. - * We define here REL_RESERVED so userspace can rely on it and detect - * the situation described above. - */ #define REL_RESERVED 0x0a #define REL_WHEEL_HI_RES 0x0b #define REL_HWHEEL_HI_RES 0x0c #define REL_MAX 0x0f #define REL_CNT (REL_MAX+1) -/* - * Absolute axes - */ - #define ABS_X 0x00 #define ABS_Y 0x01 #define ABS_Z 0x02 @@ -906,65 +803,49 @@ #define ABS_MISC 0x28 -/* - * 0x2e is reserved and should not be used in input drivers. - * It was used by HID as ABS_MISC+6 and userspace needs to detect if - * the next ABS_* event is correct or is just ABS_MISC + n. - * We define here ABS_RESERVED so userspace can rely on it and detect - * the situation described above. - */ #define ABS_RESERVED 0x2e -#define ABS_MT_SLOT 0x2f /* MT slot being modified */ -#define ABS_MT_TOUCH_MAJOR 0x30 /* Major axis of touching ellipse */ -#define ABS_MT_TOUCH_MINOR 0x31 /* Minor axis (omit if circular) */ -#define ABS_MT_WIDTH_MAJOR 0x32 /* Major axis of approaching ellipse */ -#define ABS_MT_WIDTH_MINOR 0x33 /* Minor axis (omit if circular) */ -#define ABS_MT_ORIENTATION 0x34 /* Ellipse orientation */ -#define ABS_MT_POSITION_X 0x35 /* Center X touch position */ -#define ABS_MT_POSITION_Y 0x36 /* Center Y touch position */ -#define ABS_MT_TOOL_TYPE 0x37 /* Type of touching device */ -#define ABS_MT_BLOB_ID 0x38 /* Group a set of packets as a blob */ -#define ABS_MT_TRACKING_ID 0x39 /* Unique ID of initiated contact */ -#define ABS_MT_PRESSURE 0x3a /* Pressure on contact area */ -#define ABS_MT_DISTANCE 0x3b /* Contact hover distance */ -#define ABS_MT_TOOL_X 0x3c /* Center X tool position */ -#define ABS_MT_TOOL_Y 0x3d /* Center Y tool position */ +#define ABS_MT_SLOT 0x2f +#define ABS_MT_TOUCH_MAJOR 0x30 +#define ABS_MT_TOUCH_MINOR 0x31 +#define ABS_MT_WIDTH_MAJOR 0x32 +#define ABS_MT_WIDTH_MINOR 0x33 +#define ABS_MT_ORIENTATION 0x34 +#define ABS_MT_POSITION_X 0x35 +#define ABS_MT_POSITION_Y 0x36 +#define ABS_MT_TOOL_TYPE 0x37 +#define ABS_MT_BLOB_ID 0x38 +#define ABS_MT_TRACKING_ID 0x39 +#define ABS_MT_PRESSURE 0x3a +#define ABS_MT_DISTANCE 0x3b +#define ABS_MT_TOOL_X 0x3c +#define ABS_MT_TOOL_Y 0x3d #define ABS_MAX 0x3f #define ABS_CNT (ABS_MAX+1) -/* - * Switch events - */ - -#define SW_LID 0x00 /* set = lid shut */ -#define SW_TABLET_MODE 0x01 /* set = tablet mode */ -#define SW_HEADPHONE_INSERT 0x02 /* set = inserted */ -#define SW_RFKILL_ALL 0x03 /* rfkill master switch, type "any" - set = radio enabled */ -#define SW_RADIO SW_RFKILL_ALL /* deprecated */ -#define SW_MICROPHONE_INSERT 0x04 /* set = inserted */ -#define SW_DOCK 0x05 /* set = plugged into dock */ -#define SW_LINEOUT_INSERT 0x06 /* set = inserted */ -#define SW_JACK_PHYSICAL_INSERT 0x07 /* set = mechanical switch set */ -#define SW_VIDEOOUT_INSERT 0x08 /* set = inserted */ -#define SW_CAMERA_LENS_COVER 0x09 /* set = lens covered */ -#define SW_KEYPAD_SLIDE 0x0a /* set = keypad slide out */ -#define SW_FRONT_PROXIMITY 0x0b /* set = front proximity sensor active */ -#define SW_ROTATE_LOCK 0x0c /* set = rotate locked/disabled */ -#define SW_LINEIN_INSERT 0x0d /* set = inserted */ -#define SW_MUTE_DEVICE 0x0e /* set = device disabled */ -#define SW_PEN_INSERTED 0x0f /* set = pen inserted */ -#define SW_MACHINE_COVER 0x10 /* set = cover closed */ -#define SW_USB_INSERT 0x11 /* set = USB audio device connected */ +#define SW_LID 0x00 +#define SW_TABLET_MODE 0x01 +#define SW_HEADPHONE_INSERT 0x02 +#define SW_RFKILL_ALL 0x03 +#define SW_RADIO SW_RFKILL_ALL +#define SW_MICROPHONE_INSERT 0x04 +#define SW_DOCK 0x05 +#define SW_LINEOUT_INSERT 0x06 +#define SW_JACK_PHYSICAL_INSERT 0x07 +#define SW_VIDEOOUT_INSERT 0x08 +#define SW_CAMERA_LENS_COVER 0x09 +#define SW_KEYPAD_SLIDE 0x0a +#define SW_FRONT_PROXIMITY 0x0b +#define SW_ROTATE_LOCK 0x0c +#define SW_LINEIN_INSERT 0x0d +#define SW_MUTE_DEVICE 0x0e +#define SW_PEN_INSERTED 0x0f +#define SW_MACHINE_COVER 0x10 +#define SW_USB_INSERT 0x11 #define SW_MAX 0x11 #define SW_CNT (SW_MAX+1) -/* - * Misc events - */ - #define MSC_SERIAL 0x00 #define MSC_PULSELED 0x01 #define MSC_GESTURE 0x02 @@ -974,10 +855,6 @@ #define MSC_MAX 0x07 #define MSC_CNT (MSC_MAX+1) -/* - * LEDs - */ - #define LED_NUML 0x00 #define LED_CAPSL 0x01 #define LED_SCROLLL 0x02 @@ -992,19 +869,11 @@ #define LED_MAX 0x0f #define LED_CNT (LED_MAX+1) -/* - * Autorepeat values - */ - #define REP_DELAY 0x00 #define REP_PERIOD 0x01 #define REP_MAX 0x01 #define REP_CNT (REP_MAX+1) -/* - * Sounds - */ - #define SND_CLICK 0x00 #define SND_BELL 0x01 #define SND_TONE 0x02 From nobody Tue Feb 17 20:41:45 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFs4p0Rn2z6S3CG for ; Tue, 17 Feb 2026 20: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFs4n5Kg8z3sN7 for ; Tue, 17 Feb 2026 20:41:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771360905; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zE9wmuvFrKX8BhoV8MXOGFzBhgUrweq6OJ848NGRw3o=; b=OvYjYjH9bKOBjJKEbeoEYPyRkWfpDQ9dRkCu4GUqwnB4kuPGJwEHX44GCdZ+DCgZaioeor GUzpQCJnjalW5VrghpSVmwri7lluKc6pp4m64S+TCeJRQuk2Nu7h2SAjFiqpEVWD+pK13Z QhM3MsTVXN01ol/dMlrLUvU4b5mIUO+FU5Cm9f88T+ktGHa9m7OVSjJRuViIelyZdKu3fV BzYq7rwMaZV65cr3h1SyNTTg7jkbMQ8ZiwhqoJIAlxFWteK3dZJebjmMSX2n/mDA9B3Zjc E/WPEwLyAlg2PxXZVkRBQOFMydY2OUy+wWpFpaYHeiX/JsisB+lJr/q7PC2qjw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771360905; a=rsa-sha256; cv=none; b=VLfGSixmCiEwk4rP/az3tro5Bv7HlEs0uJGRjc3gv14qrUlLtix/bHWT01hqPZ1um6UOIP Ss06HFcG3IzZUh48qdVKGa3Bow//X8NnqQ34VRxaIQ3sJk5rJWLPBEcVxWY4AdqtC9M1ly fiNlCNlNcR5hcgKEiw5VPlO1JolLHm8FrJK1xtM9NKPO+AyriUY6yU8BM3rNYqRC5AhrFu vHWscimneKcpuFI94w2ueNbQhLFO6tkjQueEaDBjdH5IOXzUT7wp7OJlNpV4OoLAwLEGHY ELmnlYeoMbLapRgtIR0uDhnqnvfuzt+F8RCU1gxtkStBJpdH2edQDCz3dPORQg== 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=1771360905; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zE9wmuvFrKX8BhoV8MXOGFzBhgUrweq6OJ848NGRw3o=; b=SQfcPDIxXMZlboWOVVh2eFInxtLwAuvKUq1GcSxHEosvVRV58nVPokgQBozS4cShEV5Otg P354oTvB0FC7w7mat8aAt0DSD2bVBs8SQE8dncucENgnetcjjEO7p9LvsseidQIHNcEvLr OSXnuJL8QvMUW5ocEwIxZbL63eZrHovffjpG+jBEazptmj5JGHk0BYskgHSmtI4B6MwLQ0 E6ADVtHVVGIE5ZDAIF00Wf58DaZ03/52ijrq6Bft/5QMMOcO+B/nXTYbKAjbzBO9YBc0Vj xOgy6IsLT8T49ZxY3eYNgYcmgiM+jz0+uHQszQKTINrQiocIJTD+up5V/5wBQg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFs4n4sbVz9K3 for ; Tue, 17 Feb 2026 20:41:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1ffc2 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 17 Feb 2026 20:41:45 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Vladimir Kondratyev Subject: git: 0280fef4ba5e - stable/14 - evdev: Drop comments from input-event-codes.h List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 0280fef4ba5e3baeac7511deea50b91466a69e95 Auto-Submitted: auto-generated Date: Tue, 17 Feb 2026 20:41:45 +0000 Message-Id: <6994d289.1ffc2.5c9aacf9@gitrepo.freebsd.org> The branch stable/14 has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=0280fef4ba5e3baeac7511deea50b91466a69e95 commit 0280fef4ba5e3baeac7511deea50b91466a69e95 Author: Vladimir Kondratyev AuthorDate: 2026-02-10 22:59:06 +0000 Commit: Vladimir Kondratyev CommitDate: 2026-02-17 20:40:16 +0000 evdev: Drop comments from input-event-codes.h They were copied intact from the Linux GPL-only file. Requested by: imp, glebius MFC after: 1 week (cherry picked from commit 89aa8a94053fdd22ed716fdf424a2d10e70b3188) --- sys/dev/evdev/input-event-codes.h | 485 ++++++++++++++------------------------ 1 file changed, 177 insertions(+), 308 deletions(-) diff --git a/sys/dev/evdev/input-event-codes.h b/sys/dev/evdev/input-event-codes.h index 81c88ec86b9b..4f1d0f96e400 100644 --- a/sys/dev/evdev/input-event-codes.h +++ b/sys/dev/evdev/input-event-codes.h @@ -28,26 +28,18 @@ #ifndef _EVDEV_INPUT_EVENT_CODES_H #define _EVDEV_INPUT_EVENT_CODES_H -/* - * Device properties and quirks - */ - -#define INPUT_PROP_POINTER 0x00 /* needs a pointer */ -#define INPUT_PROP_DIRECT 0x01 /* direct input devices */ -#define INPUT_PROP_BUTTONPAD 0x02 /* has button(s) under pad */ -#define INPUT_PROP_SEMI_MT 0x03 /* touch rectangle only */ -#define INPUT_PROP_TOPBUTTONPAD 0x04 /* softbuttons at top of pad */ -#define INPUT_PROP_POINTING_STICK 0x05 /* is a pointing stick */ -#define INPUT_PROP_ACCELEROMETER 0x06 /* has accelerometer */ -#define INPUT_PROP_PRESSUREPAD 0x07 /* pressure triggers clicks */ +#define INPUT_PROP_POINTER 0x00 +#define INPUT_PROP_DIRECT 0x01 +#define INPUT_PROP_BUTTONPAD 0x02 +#define INPUT_PROP_SEMI_MT 0x03 +#define INPUT_PROP_TOPBUTTONPAD 0x04 +#define INPUT_PROP_POINTING_STICK 0x05 +#define INPUT_PROP_ACCELEROMETER 0x06 +#define INPUT_PROP_PRESSUREPAD 0x07 #define INPUT_PROP_MAX 0x1f #define INPUT_PROP_CNT (INPUT_PROP_MAX + 1) -/* - * Event types - */ - #define EV_SYN 0x00 #define EV_KEY 0x01 #define EV_REL 0x02 @@ -63,10 +55,6 @@ #define EV_MAX 0x1f #define EV_CNT (EV_MAX+1) -/* - * Synchronization events. - */ - #define SYN_REPORT 0 #define SYN_CONFIG 1 #define SYN_MT_REPORT 2 @@ -74,17 +62,6 @@ #define SYN_MAX 0xf #define SYN_CNT (SYN_MAX+1) -/* - * Keys and buttons - * - * Most of the keys/buttons are modeled after USB HUT 1.12 - * (see http://www.usb.org/developers/hidpage). - * Abbreviations in the comments: - * AC - Application Control - * AL - Application Launch Button - * SC - System Control - */ - #define KEY_RESERVED 0 #define KEY_ESC 1 #define KEY_1 2 @@ -201,11 +178,11 @@ #define KEY_MUTE 113 #define KEY_VOLUMEDOWN 114 #define KEY_VOLUMEUP 115 -#define KEY_POWER 116 /* SC System Power Down */ +#define KEY_POWER 116 #define KEY_KPEQUAL 117 #define KEY_KPPLUSMINUS 118 #define KEY_PAUSE 119 -#define KEY_SCALE 120 /* AL Compiz Scale (Expose) */ +#define KEY_SCALE 120 #define KEY_KPCOMMA 121 #define KEY_HANGEUL 122 @@ -216,40 +193,40 @@ #define KEY_RIGHTMETA 126 #define KEY_COMPOSE 127 -#define KEY_STOP 128 /* AC Stop */ +#define KEY_STOP 128 #define KEY_AGAIN 129 -#define KEY_PROPS 130 /* AC Properties */ -#define KEY_UNDO 131 /* AC Undo */ +#define KEY_PROPS 130 +#define KEY_UNDO 131 #define KEY_FRONT 132 -#define KEY_COPY 133 /* AC Copy */ -#define KEY_OPEN 134 /* AC Open */ -#define KEY_PASTE 135 /* AC Paste */ -#define KEY_FIND 136 /* AC Search */ -#define KEY_CUT 137 /* AC Cut */ -#define KEY_HELP 138 /* AL Integrated Help Center */ -#define KEY_MENU 139 /* Menu (show menu) */ -#define KEY_CALC 140 /* AL Calculator */ +#define KEY_COPY 133 +#define KEY_OPEN 134 +#define KEY_PASTE 135 +#define KEY_FIND 136 +#define KEY_CUT 137 +#define KEY_HELP 138 +#define KEY_MENU 139 +#define KEY_CALC 140 #define KEY_SETUP 141 -#define KEY_SLEEP 142 /* SC System Sleep */ -#define KEY_WAKEUP 143 /* System Wake Up */ -#define KEY_FILE 144 /* AL Local Machine Browser */ +#define KEY_SLEEP 142 +#define KEY_WAKEUP 143 +#define KEY_FILE 144 #define KEY_SENDFILE 145 #define KEY_DELETEFILE 146 #define KEY_XFER 147 #define KEY_PROG1 148 #define KEY_PROG2 149 -#define KEY_WWW 150 /* AL Internet Browser */ +#define KEY_WWW 150 #define KEY_MSDOS 151 -#define KEY_COFFEE 152 /* AL Terminal Lock/Screensaver */ +#define KEY_COFFEE 152 #define KEY_SCREENLOCK KEY_COFFEE -#define KEY_ROTATE_DISPLAY 153 /* Display orientation for e.g. tablets */ +#define KEY_ROTATE_DISPLAY 153 #define KEY_DIRECTION KEY_ROTATE_DISPLAY #define KEY_CYCLEWINDOWS 154 #define KEY_MAIL 155 -#define KEY_BOOKMARKS 156 /* AC Bookmarks */ +#define KEY_BOOKMARKS 156 #define KEY_COMPUTER 157 -#define KEY_BACK 158 /* AC Back */ -#define KEY_FORWARD 159 /* AC Forward */ +#define KEY_BACK 158 +#define KEY_FORWARD 159 #define KEY_CLOSECD 160 #define KEY_EJECTCD 161 #define KEY_EJECTCLOSECD 162 @@ -259,20 +236,20 @@ #define KEY_STOPCD 166 #define KEY_RECORD 167 #define KEY_REWIND 168 -#define KEY_PHONE 169 /* Media Select Telephone */ +#define KEY_PHONE 169 #define KEY_ISO 170 -#define KEY_CONFIG 171 /* AL Consumer Control Configuration */ -#define KEY_HOMEPAGE 172 /* AC Home */ -#define KEY_REFRESH 173 /* AC Refresh */ -#define KEY_EXIT 174 /* AC Exit */ +#define KEY_CONFIG 171 +#define KEY_HOMEPAGE 172 +#define KEY_REFRESH 173 +#define KEY_EXIT 174 #define KEY_MOVE 175 #define KEY_EDIT 176 #define KEY_SCROLLUP 177 #define KEY_SCROLLDOWN 178 #define KEY_KPLEFTPAREN 179 #define KEY_KPRIGHTPAREN 180 -#define KEY_NEW 181 /* AC New */ -#define KEY_REDO 182 /* AC Redo/Repeat */ +#define KEY_NEW 181 +#define KEY_REDO 182 #define KEY_F13 183 #define KEY_F14 184 @@ -291,14 +268,14 @@ #define KEY_PAUSECD 201 #define KEY_PROG3 202 #define KEY_PROG4 203 -#define KEY_ALL_APPLICATIONS 204 /* AC Desktop Show All Applications */ +#define KEY_ALL_APPLICATIONS 204 #define KEY_DASHBOARD KEY_ALL_APPLICATIONS #define KEY_SUSPEND 205 -#define KEY_CLOSE 206 /* AC Close */ +#define KEY_CLOSE 206 #define KEY_PLAY 207 #define KEY_FASTFORWARD 208 #define KEY_BASSBOOST 209 -#define KEY_PRINT 210 /* AC Print */ +#define KEY_PRINT 210 #define KEY_HP 211 #define KEY_CAMERA 212 #define KEY_SOUND 213 @@ -307,25 +284,24 @@ #define KEY_CHAT 216 #define KEY_SEARCH 217 #define KEY_CONNECT 218 -#define KEY_FINANCE 219 /* AL Checkbook/Finance */ +#define KEY_FINANCE 219 #define KEY_SPORT 220 #define KEY_SHOP 221 #define KEY_ALTERASE 222 -#define KEY_CANCEL 223 /* AC Cancel */ +#define KEY_CANCEL 223 #define KEY_BRIGHTNESSDOWN 224 #define KEY_BRIGHTNESSUP 225 #define KEY_MEDIA 226 -#define KEY_SWITCHVIDEOMODE 227 /* Cycle between available video - outputs (Monitor/LCD/TV-out/etc) */ +#define KEY_SWITCHVIDEOMODE 227 #define KEY_KBDILLUMTOGGLE 228 #define KEY_KBDILLUMDOWN 229 #define KEY_KBDILLUMUP 230 -#define KEY_SEND 231 /* AC Send */ -#define KEY_REPLY 232 /* AC Reply */ -#define KEY_FORWARDMAIL 233 /* AC Forward Msg */ -#define KEY_SAVE 234 /* AC Save */ +#define KEY_SEND 231 +#define KEY_REPLY 232 +#define KEY_FORWARDMAIL 233 +#define KEY_SAVE 234 #define KEY_DOCUMENTS 235 #define KEY_BATTERY 236 @@ -336,22 +312,18 @@ #define KEY_UNKNOWN 240 -#define KEY_VIDEO_NEXT 241 /* drive next video source */ -#define KEY_VIDEO_PREV 242 /* drive previous video source */ -#define KEY_BRIGHTNESS_CYCLE 243 /* brightness up, after max is min */ -#define KEY_BRIGHTNESS_AUTO 244 /* Set Auto Brightness: manual - brightness control is off, - rely on ambient */ +#define KEY_VIDEO_NEXT 241 +#define KEY_VIDEO_PREV 242 +#define KEY_BRIGHTNESS_CYCLE 243 +#define KEY_BRIGHTNESS_AUTO 244 #define KEY_BRIGHTNESS_ZERO KEY_BRIGHTNESS_AUTO -#define KEY_DISPLAY_OFF 245 /* display device to off state */ +#define KEY_DISPLAY_OFF 245 -#define KEY_WWAN 246 /* Wireless WAN (LTE, UMTS, GSM, etc.) */ +#define KEY_WWAN 246 #define KEY_WIMAX KEY_WWAN -#define KEY_RFKILL 247 /* Key that controls all radios */ - -#define KEY_MICMUTE 248 /* Mute / unmute the microphone */ +#define KEY_RFKILL 247 -/* Code 255 is reserved for special needs of AT keyboard driver */ +#define KEY_MICMUTE 248 #define BTN_MISC 0x100 #define BTN_0 0x100 @@ -420,14 +392,14 @@ #define BTN_TOOL_FINGER 0x145 #define BTN_TOOL_MOUSE 0x146 #define BTN_TOOL_LENS 0x147 -#define BTN_TOOL_QUINTTAP 0x148 /* Five fingers on trackpad */ +#define BTN_TOOL_QUINTTAP 0x148 #define BTN_STYLUS3 0x149 #define BTN_TOUCH 0x14a #define BTN_STYLUS 0x14b #define BTN_STYLUS2 0x14c #define BTN_TOOL_DOUBLETAP 0x14d #define BTN_TOOL_TRIPLETAP 0x14e -#define BTN_TOOL_QUADTAP 0x14f /* Four fingers on trackpad */ +#define BTN_TOOL_QUADTAP 0x14f #define BTN_WHEEL 0x150 #define BTN_GEAR_DOWN 0x150 @@ -439,56 +411,56 @@ #define KEY_CLEAR 0x163 #define KEY_POWER2 0x164 #define KEY_OPTION 0x165 -#define KEY_INFO 0x166 /* AL OEM Features/Tips/Tutorial */ +#define KEY_INFO 0x166 #define KEY_TIME 0x167 #define KEY_VENDOR 0x168 #define KEY_ARCHIVE 0x169 -#define KEY_PROGRAM 0x16a /* Media Select Program Guide */ +#define KEY_PROGRAM 0x16a #define KEY_CHANNEL 0x16b #define KEY_FAVORITES 0x16c #define KEY_EPG 0x16d -#define KEY_PVR 0x16e /* Media Select Home */ +#define KEY_PVR 0x16e #define KEY_MHP 0x16f #define KEY_LANGUAGE 0x170 #define KEY_TITLE 0x171 #define KEY_SUBTITLE 0x172 #define KEY_ANGLE 0x173 -#define KEY_FULL_SCREEN 0x174 /* AC View Toggle */ +#define KEY_FULL_SCREEN 0x174 #define KEY_ZOOM KEY_FULL_SCREEN #define KEY_MODE 0x175 #define KEY_KEYBOARD 0x176 -#define KEY_ASPECT_RATIO 0x177 /* HUTRR37: Aspect */ +#define KEY_ASPECT_RATIO 0x177 #define KEY_SCREEN KEY_ASPECT_RATIO -#define KEY_PC 0x178 /* Media Select Computer */ -#define KEY_TV 0x179 /* Media Select TV */ -#define KEY_TV2 0x17a /* Media Select Cable */ -#define KEY_VCR 0x17b /* Media Select VCR */ -#define KEY_VCR2 0x17c /* VCR Plus */ -#define KEY_SAT 0x17d /* Media Select Satellite */ +#define KEY_PC 0x178 +#define KEY_TV 0x179 +#define KEY_TV2 0x17a +#define KEY_VCR 0x17b +#define KEY_VCR2 0x17c +#define KEY_SAT 0x17d #define KEY_SAT2 0x17e -#define KEY_CD 0x17f /* Media Select CD */ -#define KEY_TAPE 0x180 /* Media Select Tape */ +#define KEY_CD 0x17f +#define KEY_TAPE 0x180 #define KEY_RADIO 0x181 -#define KEY_TUNER 0x182 /* Media Select Tuner */ +#define KEY_TUNER 0x182 #define KEY_PLAYER 0x183 #define KEY_TEXT 0x184 -#define KEY_DVD 0x185 /* Media Select DVD */ +#define KEY_DVD 0x185 #define KEY_AUX 0x186 #define KEY_MP3 0x187 -#define KEY_AUDIO 0x188 /* AL Audio Browser */ -#define KEY_VIDEO 0x189 /* AL Movie Browser */ +#define KEY_AUDIO 0x188 +#define KEY_VIDEO 0x189 #define KEY_DIRECTORY 0x18a #define KEY_LIST 0x18b -#define KEY_MEMO 0x18c /* Media Select Messages */ +#define KEY_MEMO 0x18c #define KEY_CALENDAR 0x18d #define KEY_RED 0x18e #define KEY_GREEN 0x18f #define KEY_YELLOW 0x190 #define KEY_BLUE 0x191 -#define KEY_CHANNELUP 0x192 /* Channel Increment */ -#define KEY_CHANNELDOWN 0x193 /* Channel Decrement */ +#define KEY_CHANNELUP 0x192 +#define KEY_CHANNELDOWN 0x193 #define KEY_FIRST 0x194 -#define KEY_LAST 0x195 /* Recall Last */ +#define KEY_LAST 0x195 #define KEY_AB 0x196 #define KEY_NEXT 0x197 #define KEY_RESTART 0x198 @@ -499,40 +471,40 @@ #define KEY_DIGITS 0x19d #define KEY_TEEN 0x19e #define KEY_TWEN 0x19f -#define KEY_VIDEOPHONE 0x1a0 /* Media Select Video Phone */ -#define KEY_GAMES 0x1a1 /* Media Select Games */ -#define KEY_ZOOMIN 0x1a2 /* AC Zoom In */ -#define KEY_ZOOMOUT 0x1a3 /* AC Zoom Out */ -#define KEY_ZOOMRESET 0x1a4 /* AC Zoom */ -#define KEY_WORDPROCESSOR 0x1a5 /* AL Word Processor */ -#define KEY_EDITOR 0x1a6 /* AL Text Editor */ -#define KEY_SPREADSHEET 0x1a7 /* AL Spreadsheet */ -#define KEY_GRAPHICSEDITOR 0x1a8 /* AL Graphics Editor */ -#define KEY_PRESENTATION 0x1a9 /* AL Presentation App */ -#define KEY_DATABASE 0x1aa /* AL Database App */ -#define KEY_NEWS 0x1ab /* AL Newsreader */ -#define KEY_VOICEMAIL 0x1ac /* AL Voicemail */ -#define KEY_ADDRESSBOOK 0x1ad /* AL Contacts/Address Book */ -#define KEY_MESSENGER 0x1ae /* AL Instant Messaging */ -#define KEY_DISPLAYTOGGLE 0x1af /* Turn display (LCD) on and off */ +#define KEY_VIDEOPHONE 0x1a0 +#define KEY_GAMES 0x1a1 +#define KEY_ZOOMIN 0x1a2 +#define KEY_ZOOMOUT 0x1a3 +#define KEY_ZOOMRESET 0x1a4 +#define KEY_WORDPROCESSOR 0x1a5 +#define KEY_EDITOR 0x1a6 +#define KEY_SPREADSHEET 0x1a7 +#define KEY_GRAPHICSEDITOR 0x1a8 +#define KEY_PRESENTATION 0x1a9 +#define KEY_DATABASE 0x1aa +#define KEY_NEWS 0x1ab +#define KEY_VOICEMAIL 0x1ac +#define KEY_ADDRESSBOOK 0x1ad +#define KEY_MESSENGER 0x1ae +#define KEY_DISPLAYTOGGLE 0x1af #define KEY_BRIGHTNESS_TOGGLE KEY_DISPLAYTOGGLE -#define KEY_SPELLCHECK 0x1b0 /* AL Spell Check */ -#define KEY_LOGOFF 0x1b1 /* AL Logoff */ +#define KEY_SPELLCHECK 0x1b0 +#define KEY_LOGOFF 0x1b1 #define KEY_DOLLAR 0x1b2 #define KEY_EURO 0x1b3 -#define KEY_FRAMEBACK 0x1b4 /* Consumer - transport controls */ +#define KEY_FRAMEBACK 0x1b4 #define KEY_FRAMEFORWARD 0x1b5 -#define KEY_CONTEXT_MENU 0x1b6 /* GenDesc - system context menu */ -#define KEY_MEDIA_REPEAT 0x1b7 /* Consumer - transport control */ -#define KEY_10CHANNELSUP 0x1b8 /* 10 channels up (10+) */ -#define KEY_10CHANNELSDOWN 0x1b9 /* 10 channels down (10-) */ -#define KEY_IMAGES 0x1ba /* AL Image Browser */ -#define KEY_NOTIFICATION_CENTER 0x1bc /* Show/hide the notification center */ -#define KEY_PICKUP_PHONE 0x1bd /* Answer incoming call */ -#define KEY_HANGUP_PHONE 0x1be /* Decline incoming call */ -#define KEY_LINK_PHONE 0x1bf /* AL Phone Syncing */ +#define KEY_CONTEXT_MENU 0x1b6 +#define KEY_MEDIA_REPEAT 0x1b7 +#define KEY_10CHANNELSUP 0x1b8 +#define KEY_10CHANNELSDOWN 0x1b9 +#define KEY_IMAGES 0x1ba +#define KEY_NOTIFICATION_CENTER 0x1bc +#define KEY_PICKUP_PHONE 0x1bd +#define KEY_HANGUP_PHONE 0x1be +#define KEY_LINK_PHONE 0x1bf #define KEY_DEL_EOL 0x1c0 #define KEY_DEL_EOS 0x1c1 @@ -573,8 +545,8 @@ #define KEY_BRL_DOT9 0x1f9 #define KEY_BRL_DOT10 0x1fa -#define KEY_NUMERIC_0 0x200 /* used by phones, remote controls, */ -#define KEY_NUMERIC_1 0x201 /* and other keypads */ +#define KEY_NUMERIC_0 0x200 +#define KEY_NUMERIC_1 0x201 #define KEY_NUMERIC_2 0x202 #define KEY_NUMERIC_3 0x203 #define KEY_NUMERIC_4 0x204 @@ -585,15 +557,14 @@ #define KEY_NUMERIC_9 0x209 #define KEY_NUMERIC_STAR 0x20a #define KEY_NUMERIC_POUND 0x20b -#define KEY_NUMERIC_A 0x20c /* Phone key A - HUT Telephony 0xb9 */ +#define KEY_NUMERIC_A 0x20c #define KEY_NUMERIC_B 0x20d #define KEY_NUMERIC_C 0x20e #define KEY_NUMERIC_D 0x20f - #define KEY_CAMERA_FOCUS 0x210 -#define KEY_WPS_BUTTON 0x211 /* WiFi Protected Setup key */ +#define KEY_WPS_BUTTON 0x211 -#define KEY_TOUCHPAD_TOGGLE 0x212 /* Request switch touchpad on or off */ +#define KEY_TOUCHPAD_TOGGLE 0x212 #define KEY_TOUCHPAD_ON 0x213 #define KEY_TOUCHPAD_OFF 0x214 @@ -603,11 +574,10 @@ #define KEY_CAMERA_DOWN 0x218 #define KEY_CAMERA_LEFT 0x219 #define KEY_CAMERA_RIGHT 0x21a - #define KEY_ATTENDANT_ON 0x21b #define KEY_ATTENDANT_OFF 0x21c -#define KEY_ATTENDANT_TOGGLE 0x21d /* Attendant call on or off */ -#define KEY_LIGHTS_TOGGLE 0x21e /* Reading light on or off */ +#define KEY_ATTENDANT_TOGGLE 0x21d +#define KEY_LIGHTS_TOGGLE 0x21e #define BTN_DPAD_UP 0x220 #define BTN_DPAD_DOWN 0x221 @@ -619,94 +589,69 @@ #define BTN_GRIPL2 0x226 #define BTN_GRIPR2 0x227 -#define KEY_ALS_TOGGLE 0x230 /* Ambient light sensor */ -#define KEY_ROTATE_LOCK_TOGGLE 0x231 /* Display rotation lock */ -#define KEY_REFRESH_RATE_TOGGLE 0x232 /* Display refresh rate toggle */ - -#define KEY_BUTTONCONFIG 0x240 /* AL Button Configuration */ -#define KEY_TASKMANAGER 0x241 /* AL Task/Project Manager */ -#define KEY_JOURNAL 0x242 /* AL Log/Journal/Timecard */ -#define KEY_CONTROLPANEL 0x243 /* AL Control Panel */ -#define KEY_APPSELECT 0x244 /* AL Select Task/Application */ -#define KEY_SCREENSAVER 0x245 /* AL Screen Saver */ -#define KEY_VOICECOMMAND 0x246 /* Listening Voice Command */ -#define KEY_ASSISTANT 0x247 /* AL Context-aware desktop assistant */ -#define KEY_KBD_LAYOUT_NEXT 0x248 /* AC Next Keyboard Layout Select */ -#define KEY_EMOJI_PICKER 0x249 /* Show/hide emoji picker (HUTRR101) */ -#define KEY_DICTATE 0x24a /* Start or Stop Voice Dictation Session (HUTRR99) */ -#define KEY_CAMERA_ACCESS_ENABLE 0x24b /* Enables programmatic access to camera devices. (HUTRR72) */ -#define KEY_CAMERA_ACCESS_DISABLE 0x24c /* Disables programmatic access to camera devices. (HUTRR72) */ -#define KEY_CAMERA_ACCESS_TOGGLE 0x24d /* Toggles the current state of the camera access control. (HUTRR72) */ -#define KEY_ACCESSIBILITY 0x24e /* Toggles the system bound accessibility UI/command (HUTRR116) */ -#define KEY_DO_NOT_DISTURB 0x24f /* Toggles the system-wide "Do Not Disturb" control (HUTRR94)*/ - -#define KEY_BRIGHTNESS_MIN 0x250 /* Set Brightness to Minimum */ -#define KEY_BRIGHTNESS_MAX 0x251 /* Set Brightness to Maximum */ - -/* - * Keycodes for hotkeys toggling the electronic privacy screen found on some - * laptops on/off. Note when the embedded-controller turns on/off the eprivacy - * screen itself then the state should be reported through drm connecter props: - * https://www.kernel.org/doc/html/latest/gpu/drm-kms.html#standard-connector-properties - * Except when implementing the drm connecter properties API is not possible - * because e.g. the firmware does not allow querying the presence and/or status - * of the eprivacy screen at boot. - */ +#define KEY_ALS_TOGGLE 0x230 +#define KEY_ROTATE_LOCK_TOGGLE 0x231 +#define KEY_REFRESH_RATE_TOGGLE 0x232 + +#define KEY_BUTTONCONFIG 0x240 +#define KEY_TASKMANAGER 0x241 +#define KEY_JOURNAL 0x242 +#define KEY_CONTROLPANEL 0x243 +#define KEY_APPSELECT 0x244 +#define KEY_SCREENSAVER 0x245 +#define KEY_VOICECOMMAND 0x246 +#define KEY_ASSISTANT 0x247 +#define KEY_KBD_LAYOUT_NEXT 0x248 +#define KEY_EMOJI_PICKER 0x249 +#define KEY_DICTATE 0x24a +#define KEY_CAMERA_ACCESS_ENABLE 0x24b +#define KEY_CAMERA_ACCESS_DISABLE 0x24c +#define KEY_CAMERA_ACCESS_TOGGLE 0x24d +#define KEY_ACCESSIBILITY 0x24e +#define KEY_DO_NOT_DISTURB 0x24f + +#define KEY_BRIGHTNESS_MIN 0x250 +#define KEY_BRIGHTNESS_MAX 0x251 + #define KEY_EPRIVACY_SCREEN_ON 0x252 #define KEY_EPRIVACY_SCREEN_OFF 0x253 #define KEY_KBDINPUTASSIST_PREV 0x260 #define KEY_KBDINPUTASSIST_NEXT 0x261 -#define KEY_KBDINPUTASSIST_PREVGROUP 0x262 -#define KEY_KBDINPUTASSIST_NEXTGROUP 0x263 -#define KEY_KBDINPUTASSIST_ACCEPT 0x264 -#define KEY_KBDINPUTASSIST_CANCEL 0x265 +#define KEY_KBDINPUTASSIST_PREVGROUP 0x262 +#define KEY_KBDINPUTASSIST_NEXTGROUP 0x263 +#define KEY_KBDINPUTASSIST_ACCEPT 0x264 +#define KEY_KBDINPUTASSIST_CANCEL 0x265 -/* Diagonal movement keys */ #define KEY_RIGHT_UP 0x266 #define KEY_RIGHT_DOWN 0x267 #define KEY_LEFT_UP 0x268 #define KEY_LEFT_DOWN 0x269 -#define KEY_ROOT_MENU 0x26a /* Show Device's Root Menu */ -/* Show Top Menu of the Media (e.g. DVD) */ +#define KEY_ROOT_MENU 0x26a #define KEY_MEDIA_TOP_MENU 0x26b #define KEY_NUMERIC_11 0x26c #define KEY_NUMERIC_12 0x26d -/* - * Toggle Audio Description: refers to an audio service that helps blind and - * visually impaired consumers understand the action in a program. Note: in - * some countries this is referred to as "Video Description". - */ #define KEY_AUDIO_DESC 0x26e #define KEY_3D_MODE 0x26f #define KEY_NEXT_FAVORITE 0x270 #define KEY_STOP_RECORD 0x271 #define KEY_PAUSE_RECORD 0x272 -#define KEY_VOD 0x273 /* Video on Demand */ +#define KEY_VOD 0x273 #define KEY_UNMUTE 0x274 #define KEY_FASTREVERSE 0x275 #define KEY_SLOWREVERSE 0x276 -/* - * Control a data application associated with the currently viewed channel, - * e.g. teletext or data broadcast application (MHEG, MHP, HbbTV, etc.) - */ #define KEY_DATA 0x277 #define KEY_ONSCREEN_KEYBOARD 0x278 -/* Electronic privacy screen control */ #define KEY_PRIVACY_SCREEN_TOGGLE 0x279 -/* Select an area of screen to be copied */ #define KEY_SELECTIVE_SCREENSHOT 0x27a -/* Move the focus to the next or previous user controllable element within a UI container */ #define KEY_NEXT_ELEMENT 0x27b #define KEY_PREVIOUS_ELEMENT 0x27c -/* Toggle Autopilot engagement */ #define KEY_AUTOPILOT_ENGAGE_TOGGLE 0x27d -/* Shortcut Keys */ #define KEY_MARK_WAYPOINT 0x27e #define KEY_SOS 0x27f #define KEY_NAV_CHART 0x280 @@ -720,21 +665,6 @@ #define KEY_NAV_INFO 0x288 #define KEY_BRIGHTNESS_MENU 0x289 -/* - * Some keyboards have keys which do not have a defined meaning, these keys - * are intended to be programmed / bound to macros by the user. For most - * keyboards with these macro-keys the key-sequence to inject, or action to - * take, is all handled by software on the host side. So from the kernel's - * point of view these are just normal keys. - * - * The KEY_MACRO# codes below are intended for such keys, which may be labeled - * e.g. G1-G18, or S1 - S30. The KEY_MACRO# codes MUST NOT be used for keys - * where the marking on the key does indicate a defined meaning / purpose. - * - * The KEY_MACRO# codes MUST also NOT be used as fallback for when no existing - * KEY_FOO define matches the marking / purpose. In this case a new KEY_FOO - * define MUST be added. - */ #define KEY_MACRO1 0x290 #define KEY_MACRO2 0x291 #define KEY_MACRO3 0x292 @@ -766,16 +696,6 @@ #define KEY_MACRO29 0x2ac #define KEY_MACRO30 0x2ad -/* - * Some keyboards with the macro-keys described above have some extra keys - * for controlling the host-side software responsible for the macro handling: - * -A macro recording start/stop key. Note that not all keyboards which emit - * KEY_MACRO_RECORD_START will also emit KEY_MACRO_RECORD_STOP if - * KEY_MACRO_RECORD_STOP is not advertised, then KEY_MACRO_RECORD_START - * should be interpreted as a recording start/stop toggle; - * -Keys for switching between different macro (pre)sets, either a key for - * cycling through the configured presets or keys to directly select a preset. - */ #define KEY_MACRO_RECORD_START 0x2b0 #define KEY_MACRO_RECORD_STOP 0x2b1 #define KEY_MACRO_PRESET_CYCLE 0x2b2 @@ -783,19 +703,12 @@ #define KEY_MACRO_PRESET2 0x2b4 #define KEY_MACRO_PRESET3 0x2b5 -/* - * Some keyboards have a buildin LCD panel where the contents are controlled - * by the host. Often these have a number of keys directly below the LCD - * intended for controlling a menu shown on the LCD. These keys often don't - * have any labeling so we just name them KEY_KBD_LCD_MENU# - */ #define KEY_KBD_LCD_MENU1 0x2b8 #define KEY_KBD_LCD_MENU2 0x2b9 #define KEY_KBD_LCD_MENU3 0x2ba #define KEY_KBD_LCD_MENU4 0x2bb #define KEY_KBD_LCD_MENU5 0x2bc -/* Performance Boost key (Alienware)/G-Mode key (Dell) */ #define KEY_PERFORMANCE 0x2bd #define BTN_TRIGGER_HAPPY 0x2c0 @@ -840,15 +753,10 @@ #define BTN_TRIGGER_HAPPY39 0x2e6 #define BTN_TRIGGER_HAPPY40 0x2e7 -/* We avoid low common keys in module aliases so they don't get huge. */ #define KEY_MIN_INTERESTING KEY_MUTE #define KEY_MAX 0x2ff #define KEY_CNT (KEY_MAX+1) -/* - * Relative axes - */ - #define REL_X 0x00 #define REL_Y 0x01 #define REL_Z 0x02 @@ -859,23 +767,12 @@ #define REL_DIAL 0x07 #define REL_WHEEL 0x08 #define REL_MISC 0x09 -/* - * 0x0a is reserved and should not be used in input drivers. - * It was used by HID as REL_MISC+1 and userspace needs to detect if - * the next REL_* event is correct or is just REL_MISC + n. - * We define here REL_RESERVED so userspace can rely on it and detect - * the situation described above. - */ #define REL_RESERVED 0x0a #define REL_WHEEL_HI_RES 0x0b #define REL_HWHEEL_HI_RES 0x0c #define REL_MAX 0x0f #define REL_CNT (REL_MAX+1) -/* - * Absolute axes - */ - #define ABS_X 0x00 #define ABS_Y 0x01 #define ABS_Z 0x02 @@ -906,65 +803,49 @@ #define ABS_MISC 0x28 -/* - * 0x2e is reserved and should not be used in input drivers. - * It was used by HID as ABS_MISC+6 and userspace needs to detect if - * the next ABS_* event is correct or is just ABS_MISC + n. - * We define here ABS_RESERVED so userspace can rely on it and detect - * the situation described above. - */ #define ABS_RESERVED 0x2e -#define ABS_MT_SLOT 0x2f /* MT slot being modified */ -#define ABS_MT_TOUCH_MAJOR 0x30 /* Major axis of touching ellipse */ -#define ABS_MT_TOUCH_MINOR 0x31 /* Minor axis (omit if circular) */ -#define ABS_MT_WIDTH_MAJOR 0x32 /* Major axis of approaching ellipse */ -#define ABS_MT_WIDTH_MINOR 0x33 /* Minor axis (omit if circular) */ -#define ABS_MT_ORIENTATION 0x34 /* Ellipse orientation */ -#define ABS_MT_POSITION_X 0x35 /* Center X touch position */ -#define ABS_MT_POSITION_Y 0x36 /* Center Y touch position */ -#define ABS_MT_TOOL_TYPE 0x37 /* Type of touching device */ -#define ABS_MT_BLOB_ID 0x38 /* Group a set of packets as a blob */ -#define ABS_MT_TRACKING_ID 0x39 /* Unique ID of initiated contact */ -#define ABS_MT_PRESSURE 0x3a /* Pressure on contact area */ -#define ABS_MT_DISTANCE 0x3b /* Contact hover distance */ -#define ABS_MT_TOOL_X 0x3c /* Center X tool position */ -#define ABS_MT_TOOL_Y 0x3d /* Center Y tool position */ +#define ABS_MT_SLOT 0x2f +#define ABS_MT_TOUCH_MAJOR 0x30 +#define ABS_MT_TOUCH_MINOR 0x31 +#define ABS_MT_WIDTH_MAJOR 0x32 +#define ABS_MT_WIDTH_MINOR 0x33 +#define ABS_MT_ORIENTATION 0x34 +#define ABS_MT_POSITION_X 0x35 +#define ABS_MT_POSITION_Y 0x36 +#define ABS_MT_TOOL_TYPE 0x37 +#define ABS_MT_BLOB_ID 0x38 +#define ABS_MT_TRACKING_ID 0x39 +#define ABS_MT_PRESSURE 0x3a +#define ABS_MT_DISTANCE 0x3b +#define ABS_MT_TOOL_X 0x3c +#define ABS_MT_TOOL_Y 0x3d #define ABS_MAX 0x3f #define ABS_CNT (ABS_MAX+1) -/* - * Switch events - */ - -#define SW_LID 0x00 /* set = lid shut */ -#define SW_TABLET_MODE 0x01 /* set = tablet mode */ -#define SW_HEADPHONE_INSERT 0x02 /* set = inserted */ -#define SW_RFKILL_ALL 0x03 /* rfkill master switch, type "any" - set = radio enabled */ -#define SW_RADIO SW_RFKILL_ALL /* deprecated */ -#define SW_MICROPHONE_INSERT 0x04 /* set = inserted */ -#define SW_DOCK 0x05 /* set = plugged into dock */ -#define SW_LINEOUT_INSERT 0x06 /* set = inserted */ -#define SW_JACK_PHYSICAL_INSERT 0x07 /* set = mechanical switch set */ -#define SW_VIDEOOUT_INSERT 0x08 /* set = inserted */ -#define SW_CAMERA_LENS_COVER 0x09 /* set = lens covered */ -#define SW_KEYPAD_SLIDE 0x0a /* set = keypad slide out */ -#define SW_FRONT_PROXIMITY 0x0b /* set = front proximity sensor active */ -#define SW_ROTATE_LOCK 0x0c /* set = rotate locked/disabled */ -#define SW_LINEIN_INSERT 0x0d /* set = inserted */ -#define SW_MUTE_DEVICE 0x0e /* set = device disabled */ -#define SW_PEN_INSERTED 0x0f /* set = pen inserted */ -#define SW_MACHINE_COVER 0x10 /* set = cover closed */ -#define SW_USB_INSERT 0x11 /* set = USB audio device connected */ +#define SW_LID 0x00 +#define SW_TABLET_MODE 0x01 +#define SW_HEADPHONE_INSERT 0x02 +#define SW_RFKILL_ALL 0x03 +#define SW_RADIO SW_RFKILL_ALL +#define SW_MICROPHONE_INSERT 0x04 +#define SW_DOCK 0x05 +#define SW_LINEOUT_INSERT 0x06 +#define SW_JACK_PHYSICAL_INSERT 0x07 +#define SW_VIDEOOUT_INSERT 0x08 +#define SW_CAMERA_LENS_COVER 0x09 +#define SW_KEYPAD_SLIDE 0x0a +#define SW_FRONT_PROXIMITY 0x0b +#define SW_ROTATE_LOCK 0x0c +#define SW_LINEIN_INSERT 0x0d +#define SW_MUTE_DEVICE 0x0e +#define SW_PEN_INSERTED 0x0f +#define SW_MACHINE_COVER 0x10 +#define SW_USB_INSERT 0x11 #define SW_MAX 0x11 #define SW_CNT (SW_MAX+1) -/* - * Misc events - */ - #define MSC_SERIAL 0x00 #define MSC_PULSELED 0x01 #define MSC_GESTURE 0x02 @@ -974,10 +855,6 @@ #define MSC_MAX 0x07 #define MSC_CNT (MSC_MAX+1) -/* - * LEDs - */ - #define LED_NUML 0x00 #define LED_CAPSL 0x01 #define LED_SCROLLL 0x02 @@ -992,19 +869,11 @@ #define LED_MAX 0x0f #define LED_CNT (LED_MAX+1) -/* - * Autorepeat values - */ - #define REP_DELAY 0x00 #define REP_PERIOD 0x01 #define REP_MAX 0x01 #define REP_CNT (REP_MAX+1) -/* - * Sounds - */ - #define SND_CLICK 0x00 #define SND_BELL 0x01 #define SND_TONE 0x02 From nobody Tue Feb 17 20:41:44 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFs4m60XFz6S3R3 for ; Tue, 17 Feb 2026 20:41:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFs4m54gDz3sW9 for ; Tue, 17 Feb 2026 20:41:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771360904; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SPMaX+GLwOVV3Hu0Lh2zLWaLdyX1QwJqX6GBsitWo84=; b=TYli8Ddgbg1PfVuH/wt/mSIjTUoCVx8W2afa51LmIB0MKLKREqInjq3dxt/xsbzwjkOjd6 okioVDBXk5J0G1LauOF/jvt5Lw1vhtesNY41HfiRsvTHrBmnJOfExrjRQYi+c4fzEm797A 82G7izCOkMSKeVVp5m8k5n+J/FHM18tw0rHgDVobUqAEbjO93VwS3wgr66yTixAYuPjuf/ wuGQlRlsg05/2WeI7YtDgX0smJJ6C9VDdvmnNSGcQ9Uci5xCuTjjpy7SKwdFGKm3VAKiLv 8zyWzpx+2Fw7QGi7dCTGVfbMUCYk09HY9s6zXCp5sv7ymsW8LKuC8JiQ4ABb1g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771360904; a=rsa-sha256; cv=none; b=WhT8jWE9ZY4D8ZkIwOmEWVI6VHUDx1c/nMeEJRYr6XKOxirmRDGqzfHey8DxnNcCyRX8Vt wX1CN89bPAPlA8RfgwRe8VBVX2yTm4hoOf5DPtQkK6HXJnly3KWu4s/0j9pyudfG0HpLN6 IIISduVsCiXvgGLPHbg2efZBfjTq7QazLheghvMqcMr9ve6HrUughLFnMP0CGdRriB1QwN UrkyNq5UGXXP3icyxpNxuPDXT8M+RoXv58GxrWhwO6Z/NkH79tIhlqAJ6U42rGo5MIokpf aLt5IoLd3bobwrv2biYUHMH59dVEoyTNrjFeO2o4T3teGOUm4irXD9wyWAMqjA== 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=1771360904; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=SPMaX+GLwOVV3Hu0Lh2zLWaLdyX1QwJqX6GBsitWo84=; b=UJ7r5qaY1QFxDcDmfeBLA9aRzphidqT2kubqZDLsQEK1Se5e+TY6oMeu1nPZ+DMx2hjZlC j+InFKCSxuMHz5de2P8NHKv93xZzCsqOAAmiWYDXjy3DPY8ajOmhroZPi3Wr/W3322+7VQ D82E/jZSFvvHm5wXIuWjMXmDM6ngnl9eiFEd0hV0q4vXmNUmsc44lm897jdjEV88Q0NpjN CScRek/y4kSiF42H66WlEXe62o7eZZ0Eij6e7ygy210sDI0+nejDMcqZJT1AecsOgHirX6 /J+cy3z4fkJgnadIOVLAPtoCMo0OKgrHG3qqkZ0H7j4cXePLGq2BZvwfq3QZVw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFs4m4FrTz99h for ; Tue, 17 Feb 2026 20:41:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1f1a8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 17 Feb 2026 20:41:44 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Vladimir Kondratyev Subject: git: 4291d770fd8a - stable/14 - evdev: Sync event codes with Linux kernel 6.18 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 4291d770fd8a9190f06910a91fb6bd6e77ded9ef Auto-Submitted: auto-generated Date: Tue, 17 Feb 2026 20:41:44 +0000 Message-Id: <6994d288.1f1a8.4068ca47@gitrepo.freebsd.org> The branch stable/14 has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=4291d770fd8a9190f06910a91fb6bd6e77ded9ef commit 4291d770fd8a9190f06910a91fb6bd6e77ded9ef Author: Vladimir Kondratyev AuthorDate: 2025-12-01 20:42:15 +0000 Commit: Vladimir Kondratyev CommitDate: 2026-02-17 20:40:09 +0000 evdev: Sync event codes with Linux kernel 6.18 MFC after: 1 month (cherry picked from commit 8d9a5d44b155af7123893a6948ad7e86b48c57b3) --- sys/dev/evdev/input-event-codes.h | 28 ++++++++++++++- sys/dev/evdev/input.h | 73 +++++++++++++++++++++++---------------- 2 files changed, 71 insertions(+), 30 deletions(-) diff --git a/sys/dev/evdev/input-event-codes.h b/sys/dev/evdev/input-event-codes.h index 59eb8e104c87..81c88ec86b9b 100644 --- a/sys/dev/evdev/input-event-codes.h +++ b/sys/dev/evdev/input-event-codes.h @@ -39,6 +39,7 @@ #define INPUT_PROP_TOPBUTTONPAD 0x04 /* softbuttons at top of pad */ #define INPUT_PROP_POINTING_STICK 0x05 /* is a pointing stick */ #define INPUT_PROP_ACCELEROMETER 0x06 /* has accelerometer */ +#define INPUT_PROP_PRESSUREPAD 0x07 /* pressure triggers clicks */ #define INPUT_PROP_MAX 0x1f #define INPUT_PROP_CNT (INPUT_PROP_MAX + 1) @@ -531,6 +532,7 @@ #define KEY_NOTIFICATION_CENTER 0x1bc /* Show/hide the notification center */ #define KEY_PICKUP_PHONE 0x1bd /* Answer incoming call */ #define KEY_HANGUP_PHONE 0x1be /* Decline incoming call */ +#define KEY_LINK_PHONE 0x1bf /* AL Phone Syncing */ #define KEY_DEL_EOL 0x1c0 #define KEY_DEL_EOS 0x1c1 @@ -612,8 +614,14 @@ #define BTN_DPAD_LEFT 0x222 #define BTN_DPAD_RIGHT 0x223 +#define BTN_GRIPL 0x224 +#define BTN_GRIPR 0x225 +#define BTN_GRIPL2 0x226 +#define BTN_GRIPR2 0x227 + #define KEY_ALS_TOGGLE 0x230 /* Ambient light sensor */ #define KEY_ROTATE_LOCK_TOGGLE 0x231 /* Display rotation lock */ +#define KEY_REFRESH_RATE_TOGGLE 0x232 /* Display refresh rate toggle */ #define KEY_BUTTONCONFIG 0x240 /* AL Button Configuration */ #define KEY_TASKMANAGER 0x241 /* AL Task/Project Manager */ @@ -629,10 +637,24 @@ #define KEY_CAMERA_ACCESS_ENABLE 0x24b /* Enables programmatic access to camera devices. (HUTRR72) */ #define KEY_CAMERA_ACCESS_DISABLE 0x24c /* Disables programmatic access to camera devices. (HUTRR72) */ #define KEY_CAMERA_ACCESS_TOGGLE 0x24d /* Toggles the current state of the camera access control. (HUTRR72) */ +#define KEY_ACCESSIBILITY 0x24e /* Toggles the system bound accessibility UI/command (HUTRR116) */ +#define KEY_DO_NOT_DISTURB 0x24f /* Toggles the system-wide "Do Not Disturb" control (HUTRR94)*/ #define KEY_BRIGHTNESS_MIN 0x250 /* Set Brightness to Minimum */ #define KEY_BRIGHTNESS_MAX 0x251 /* Set Brightness to Maximum */ +/* + * Keycodes for hotkeys toggling the electronic privacy screen found on some + * laptops on/off. Note when the embedded-controller turns on/off the eprivacy + * screen itself then the state should be reported through drm connecter props: + * https://www.kernel.org/doc/html/latest/gpu/drm-kms.html#standard-connector-properties + * Except when implementing the drm connecter properties API is not possible + * because e.g. the firmware does not allow querying the presence and/or status + * of the eprivacy screen at boot. + */ +#define KEY_EPRIVACY_SCREEN_ON 0x252 +#define KEY_EPRIVACY_SCREEN_OFF 0x253 + #define KEY_KBDINPUTASSIST_PREV 0x260 #define KEY_KBDINPUTASSIST_NEXT 0x261 #define KEY_KBDINPUTASSIST_PREVGROUP 0x262 @@ -773,6 +795,9 @@ #define KEY_KBD_LCD_MENU4 0x2bb #define KEY_KBD_LCD_MENU5 0x2bc +/* Performance Boost key (Alienware)/G-Mode key (Dell) */ +#define KEY_PERFORMANCE 0x2bd + #define BTN_TRIGGER_HAPPY 0x2c0 #define BTN_TRIGGER_HAPPY1 0x2c0 #define BTN_TRIGGER_HAPPY2 0x2c1 @@ -932,7 +957,8 @@ #define SW_MUTE_DEVICE 0x0e /* set = device disabled */ #define SW_PEN_INSERTED 0x0f /* set = pen inserted */ #define SW_MACHINE_COVER 0x10 /* set = cover closed */ -#define SW_MAX 0x10 +#define SW_USB_INSERT 0x11 /* set = USB audio device connected */ +#define SW_MAX 0x11 #define SW_CNT (SW_MAX+1) /* diff --git a/sys/dev/evdev/input.h b/sys/dev/evdev/input.h index 3b87101da75f..ce0fb616a3df 100644 --- a/sys/dev/evdev/input.h +++ b/sys/dev/evdev/input.h @@ -142,6 +142,8 @@ struct input_keymap_entry { #define BUS_RMI 0x1D #define BUS_CEC 0x1E #define BUS_INTEL_ISHTP 0x1F +#define BUS_AMD_SFH 0x20 +#define BUS_SDW 0x21 /* * MT_TOOL types @@ -203,20 +205,6 @@ struct ff_condition_effect { int16_t center; /* center of dead zone */ }; -/* - * Force feedback periodic effect types - */ - -#define FF_SQUARE 0x58 -#define FF_TRIANGLE 0x59 -#define FF_SINE 0x5a -#define FF_SAW_UP 0x5b -#define FF_SAW_DOWN 0x5c -#define FF_CUSTOM 0x5d - -#define FF_WAVEFORM_MIN FF_SQUARE -#define FF_WAVEFORM_MAX FF_CUSTOM - struct ff_periodic_effect { uint16_t waveform; uint16_t period; /* ms */ @@ -233,21 +221,14 @@ struct ff_rumble_effect { uint16_t weak_magnitude; /* magnitude of the light motor */ }; -/* - * Force feedback effect types - */ - -#define FF_RUMBLE 0x50 -#define FF_PERIODIC 0x51 -#define FF_CONSTANT 0x52 -#define FF_SPRING 0x53 -#define FF_FRICTION 0x54 -#define FF_DAMPER 0x55 -#define FF_INERTIA 0x56 -#define FF_RAMP 0x57 - -#define FF_EFFECT_MIN FF_RUMBLE -#define FF_EFFECT_MAX FF_RAMP +struct ff_haptic_effect { + uint16_t hid_usage; + uint16_t vendor_id; + uint8_t vendor_waveform_page; + uint16_t intensity; + uint16_t repeat_count; + uint16_t retrigger_period; +}; struct ff_effect { uint16_t type; @@ -262,9 +243,41 @@ struct ff_effect { struct ff_periodic_effect periodic; struct ff_condition_effect condition[2]; /* One for each axis */ struct ff_rumble_effect rumble; + struct ff_haptic_effect haptic; } u; }; +/* + * Force feedback effect types + */ + +#define FF_HAPTIC 0x4f +#define FF_RUMBLE 0x50 +#define FF_PERIODIC 0x51 +#define FF_CONSTANT 0x52 +#define FF_SPRING 0x53 +#define FF_FRICTION 0x54 +#define FF_DAMPER 0x55 +#define FF_INERTIA 0x56 +#define FF_RAMP 0x57 + +#define FF_EFFECT_MIN FF_HAPTIC +#define FF_EFFECT_MAX FF_RAMP + +/* + * Force feedback periodic effect types + */ + +#define FF_SQUARE 0x58 +#define FF_TRIANGLE 0x59 +#define FF_SINE 0x5a +#define FF_SAW_UP 0x5b +#define FF_SAW_DOWN 0x5c +#define FF_CUSTOM 0x5d + +#define FF_WAVEFORM_MIN FF_SQUARE +#define FF_WAVEFORM_MAX FF_CUSTOM + /* * force feedback device properties */ @@ -272,6 +285,8 @@ struct ff_effect { #define FF_GAIN 0x60 #define FF_AUTOCENTER 0x61 +#define FF_MAX_EFFECTS FF_GAIN + #define FF_MAX 0x7f #define FF_CNT (FF_MAX+1) From nobody Tue Feb 17 22:20:17 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFvGV2wXJz6S9j8 for ; Tue, 17 Feb 2026 22:20:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFvGT5kfVz49R5 for ; Tue, 17 Feb 2026 22: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=1771366817; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+zdmtV5LdxKP2aOYh+o3Lu5DuW/FAue55NzkvBJS1oI=; b=G20bnN0gyMFcPPDukvQDGA3zC+UcGnuUVh2kh6y51TUWmEai/nmTIVwdq5sPd1au4U7hGd GMvK+7W6B78GiLrb8JPhxUehjCwXAIoBYrDW5W8oK6njAGLYGqqYxzAZYJG2bl3zJuvfBH hsVL04dDQK8Pm1w2BBInWQB3lDlWRXRceFsDIo3WmRvpDM+1b4Qewz95W7JH7p6Usr2gTy Klf74ENrgGh8qSLEofBReFHuIE2TDsB5AznM0cbb45Be46TF8OjNFZKFgcuQbkGYZv52le QJUzlupSnmyyfN27qGz/d17LrZwuNZSox9s1Z6YcTF4FTNokIMguEde4yH5yvA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771366817; a=rsa-sha256; cv=none; b=uJgA/TDFVs9TILlW7MsTfQq44ifkzG5/U8mW4cxZ39CxdeCvwJnX0ux1FzJjKG40mzz9SV k0w3jOAS4EVxbuOnjffbl1uHO3s9bGcJ13EesQIPtHA6sEu3YZZMI7+nIQohY3fmHJVPXB gH63mNYBeD7ssi3xiMiGf43MAYil2qhjnptmbBbCh4SLEDYEIIEjWOK8qQyIiylA85Vtmj ZYPvQAgBqAvMWWqpydbA1wuGVNF76qONCK3qzvx7CORgf4QYBd9YXxGqeqjPAFbE+WlfBW Jo7oZviBBTR6OMKnpfs7u7PlTdpUd3BD6t0vg4TFalOCDYHfQJZrQC7uWQUoEA== 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=1771366817; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+zdmtV5LdxKP2aOYh+o3Lu5DuW/FAue55NzkvBJS1oI=; b=TzdK062fGSVlhLd+MGdm/ijqD7FCPZmHSPH9fZaFAvL09oBRGnsIrrKUXVovpBycFE9Kh8 dIpCABWqh39EFLXQdz3ga79IDapi2HudVYYJHeRXcdlIoU5Hbzebs/D8wuWHTvFWMHb83Z DoJc0Pcgj2rYefL1xTx7+tr5HKAtUbOYnQ0HVtK/4Vmg6RyyWYQ5gy02s2CAMSi08cMzy+ EWrBm7gX9lb8hwWlkjE7PYsEO92QGb5yp2EOCye12xh+KJn3wIsuZg0fqEv2Mn0L/BnfBb eHr8fPb3hZmFmkOa7+lHNFo8MYl/EwaCtozuuU52FLxt0ghyRx9vO9N9IxbCBw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFvGT4nRszCxb for ; Tue, 17 Feb 2026 22:20:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 31913 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 17 Feb 2026 22:20:17 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Vladimir Kondratyev Subject: git: 262ea9d9a9aa - stable/13 - evdev: Sync event codes with Linux kernel 6.18 List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 262ea9d9a9aa09cf8e38478c33f6301d7db448fa Auto-Submitted: auto-generated Date: Tue, 17 Feb 2026 22:20:17 +0000 Message-Id: <6994e9a1.31913.63f32a6c@gitrepo.freebsd.org> The branch stable/13 has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=262ea9d9a9aa09cf8e38478c33f6301d7db448fa commit 262ea9d9a9aa09cf8e38478c33f6301d7db448fa Author: Vladimir Kondratyev AuthorDate: 2025-12-01 20:42:15 +0000 Commit: Vladimir Kondratyev CommitDate: 2026-02-17 22:19:50 +0000 evdev: Sync event codes with Linux kernel 6.18 MFC after: 1 month (cherry picked from commit 8d9a5d44b155af7123893a6948ad7e86b48c57b3) --- sys/dev/evdev/input-event-codes.h | 28 ++++++++++++++- sys/dev/evdev/input.h | 73 +++++++++++++++++++++++---------------- 2 files changed, 71 insertions(+), 30 deletions(-) diff --git a/sys/dev/evdev/input-event-codes.h b/sys/dev/evdev/input-event-codes.h index 59eb8e104c87..81c88ec86b9b 100644 --- a/sys/dev/evdev/input-event-codes.h +++ b/sys/dev/evdev/input-event-codes.h @@ -39,6 +39,7 @@ #define INPUT_PROP_TOPBUTTONPAD 0x04 /* softbuttons at top of pad */ #define INPUT_PROP_POINTING_STICK 0x05 /* is a pointing stick */ #define INPUT_PROP_ACCELEROMETER 0x06 /* has accelerometer */ +#define INPUT_PROP_PRESSUREPAD 0x07 /* pressure triggers clicks */ #define INPUT_PROP_MAX 0x1f #define INPUT_PROP_CNT (INPUT_PROP_MAX + 1) @@ -531,6 +532,7 @@ #define KEY_NOTIFICATION_CENTER 0x1bc /* Show/hide the notification center */ #define KEY_PICKUP_PHONE 0x1bd /* Answer incoming call */ #define KEY_HANGUP_PHONE 0x1be /* Decline incoming call */ +#define KEY_LINK_PHONE 0x1bf /* AL Phone Syncing */ #define KEY_DEL_EOL 0x1c0 #define KEY_DEL_EOS 0x1c1 @@ -612,8 +614,14 @@ #define BTN_DPAD_LEFT 0x222 #define BTN_DPAD_RIGHT 0x223 +#define BTN_GRIPL 0x224 +#define BTN_GRIPR 0x225 +#define BTN_GRIPL2 0x226 +#define BTN_GRIPR2 0x227 + #define KEY_ALS_TOGGLE 0x230 /* Ambient light sensor */ #define KEY_ROTATE_LOCK_TOGGLE 0x231 /* Display rotation lock */ +#define KEY_REFRESH_RATE_TOGGLE 0x232 /* Display refresh rate toggle */ #define KEY_BUTTONCONFIG 0x240 /* AL Button Configuration */ #define KEY_TASKMANAGER 0x241 /* AL Task/Project Manager */ @@ -629,10 +637,24 @@ #define KEY_CAMERA_ACCESS_ENABLE 0x24b /* Enables programmatic access to camera devices. (HUTRR72) */ #define KEY_CAMERA_ACCESS_DISABLE 0x24c /* Disables programmatic access to camera devices. (HUTRR72) */ #define KEY_CAMERA_ACCESS_TOGGLE 0x24d /* Toggles the current state of the camera access control. (HUTRR72) */ +#define KEY_ACCESSIBILITY 0x24e /* Toggles the system bound accessibility UI/command (HUTRR116) */ +#define KEY_DO_NOT_DISTURB 0x24f /* Toggles the system-wide "Do Not Disturb" control (HUTRR94)*/ #define KEY_BRIGHTNESS_MIN 0x250 /* Set Brightness to Minimum */ #define KEY_BRIGHTNESS_MAX 0x251 /* Set Brightness to Maximum */ +/* + * Keycodes for hotkeys toggling the electronic privacy screen found on some + * laptops on/off. Note when the embedded-controller turns on/off the eprivacy + * screen itself then the state should be reported through drm connecter props: + * https://www.kernel.org/doc/html/latest/gpu/drm-kms.html#standard-connector-properties + * Except when implementing the drm connecter properties API is not possible + * because e.g. the firmware does not allow querying the presence and/or status + * of the eprivacy screen at boot. + */ +#define KEY_EPRIVACY_SCREEN_ON 0x252 +#define KEY_EPRIVACY_SCREEN_OFF 0x253 + #define KEY_KBDINPUTASSIST_PREV 0x260 #define KEY_KBDINPUTASSIST_NEXT 0x261 #define KEY_KBDINPUTASSIST_PREVGROUP 0x262 @@ -773,6 +795,9 @@ #define KEY_KBD_LCD_MENU4 0x2bb #define KEY_KBD_LCD_MENU5 0x2bc +/* Performance Boost key (Alienware)/G-Mode key (Dell) */ +#define KEY_PERFORMANCE 0x2bd + #define BTN_TRIGGER_HAPPY 0x2c0 #define BTN_TRIGGER_HAPPY1 0x2c0 #define BTN_TRIGGER_HAPPY2 0x2c1 @@ -932,7 +957,8 @@ #define SW_MUTE_DEVICE 0x0e /* set = device disabled */ #define SW_PEN_INSERTED 0x0f /* set = pen inserted */ #define SW_MACHINE_COVER 0x10 /* set = cover closed */ -#define SW_MAX 0x10 +#define SW_USB_INSERT 0x11 /* set = USB audio device connected */ +#define SW_MAX 0x11 #define SW_CNT (SW_MAX+1) /* diff --git a/sys/dev/evdev/input.h b/sys/dev/evdev/input.h index 3b87101da75f..ce0fb616a3df 100644 --- a/sys/dev/evdev/input.h +++ b/sys/dev/evdev/input.h @@ -142,6 +142,8 @@ struct input_keymap_entry { #define BUS_RMI 0x1D #define BUS_CEC 0x1E #define BUS_INTEL_ISHTP 0x1F +#define BUS_AMD_SFH 0x20 +#define BUS_SDW 0x21 /* * MT_TOOL types @@ -203,20 +205,6 @@ struct ff_condition_effect { int16_t center; /* center of dead zone */ }; -/* - * Force feedback periodic effect types - */ - -#define FF_SQUARE 0x58 -#define FF_TRIANGLE 0x59 -#define FF_SINE 0x5a -#define FF_SAW_UP 0x5b -#define FF_SAW_DOWN 0x5c -#define FF_CUSTOM 0x5d - -#define FF_WAVEFORM_MIN FF_SQUARE -#define FF_WAVEFORM_MAX FF_CUSTOM - struct ff_periodic_effect { uint16_t waveform; uint16_t period; /* ms */ @@ -233,21 +221,14 @@ struct ff_rumble_effect { uint16_t weak_magnitude; /* magnitude of the light motor */ }; -/* - * Force feedback effect types - */ - -#define FF_RUMBLE 0x50 -#define FF_PERIODIC 0x51 -#define FF_CONSTANT 0x52 -#define FF_SPRING 0x53 -#define FF_FRICTION 0x54 -#define FF_DAMPER 0x55 -#define FF_INERTIA 0x56 -#define FF_RAMP 0x57 - -#define FF_EFFECT_MIN FF_RUMBLE -#define FF_EFFECT_MAX FF_RAMP +struct ff_haptic_effect { + uint16_t hid_usage; + uint16_t vendor_id; + uint8_t vendor_waveform_page; + uint16_t intensity; + uint16_t repeat_count; + uint16_t retrigger_period; +}; struct ff_effect { uint16_t type; @@ -262,9 +243,41 @@ struct ff_effect { struct ff_periodic_effect periodic; struct ff_condition_effect condition[2]; /* One for each axis */ struct ff_rumble_effect rumble; + struct ff_haptic_effect haptic; } u; }; +/* + * Force feedback effect types + */ + +#define FF_HAPTIC 0x4f +#define FF_RUMBLE 0x50 +#define FF_PERIODIC 0x51 +#define FF_CONSTANT 0x52 +#define FF_SPRING 0x53 +#define FF_FRICTION 0x54 +#define FF_DAMPER 0x55 +#define FF_INERTIA 0x56 +#define FF_RAMP 0x57 + +#define FF_EFFECT_MIN FF_HAPTIC +#define FF_EFFECT_MAX FF_RAMP + +/* + * Force feedback periodic effect types + */ + +#define FF_SQUARE 0x58 +#define FF_TRIANGLE 0x59 +#define FF_SINE 0x5a +#define FF_SAW_UP 0x5b +#define FF_SAW_DOWN 0x5c +#define FF_CUSTOM 0x5d + +#define FF_WAVEFORM_MIN FF_SQUARE +#define FF_WAVEFORM_MAX FF_CUSTOM + /* * force feedback device properties */ @@ -272,6 +285,8 @@ struct ff_effect { #define FF_GAIN 0x60 #define FF_AUTOCENTER 0x61 +#define FF_MAX_EFFECTS FF_GAIN + #define FF_MAX 0x7f #define FF_CNT (FF_MAX+1) From nobody Tue Feb 17 22:20:18 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFvGW1NTVz6S9wd for ; Tue, 17 Feb 2026 22:20: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFvGV5zqHz49Lw for ; Tue, 17 Feb 2026 22:20:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771366818; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lrdwNMV2axD1EBJN5Uo9Kz66lH/vt16v2BN4HN+/6xQ=; b=v5Y4dDphiODfvIVlnolb3gcKadYmLdbthOJdOOFHddq0KentrGD5baWmBPx6/ZIjJxYP2c eGEwoaxG6FFwOztLCAK4WCKVTO65RCpSzR6pXNGuGD5SPEF/mzsKBUfxX8wiv+SXRaOCP2 gBErIi6+AVQR0prAH1Q0K1X/k/Ax24BBvQaipVh7dXEQ+RVVq/ghRJlnDBrqDsExYkkigZ KzKLm3Vmsx5SxtDLXQqpDDYZ+/kHGGkNKAglYp6jbcoyLBlqR5QX+Q56bDGH2r5SXdtNss 4hbm9OLraKds9+DNk2xsB2nfHPBto2jWzlAaYMySLwhYu0yxeDPsur6s2TWaig== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771366818; a=rsa-sha256; cv=none; b=JAZAU0og4s4846MNIXRmGVZjMO94HPQK0ZmXrVmPJQ3L8tf87uMkxjmf5FgrUVg+5mARcY YG+QNM3D98yqAupWUvPCE4slTSZmovPG5xc4iz0mMkGGmguFshsRPqRGafUCGguQgVfUCT Xkv7C23KSTsGaWwFgUIrSXMKYwFWgAQPrppCRxvM82IfbnLqF3WT3BFXgRx1b/mvAN7PhC acfmuJYs06R4S74sQAFSQEbUx75CwUdzy2yzBgNbgFX+SF5Xe9UyVvXDuD7yxw6KIbnaj+ 6rlS6zqa3g7/YA6oJQbbQl5cZHpyoMX7OvLDI3q6vliX74YIYRF0SmH8iaPcog== 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=1771366818; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lrdwNMV2axD1EBJN5Uo9Kz66lH/vt16v2BN4HN+/6xQ=; b=THcpebuOjJ55uSLf6Lyqp6Xoz+B5/wjblibnFgwud22cGI1gCaoQms37+nZJzP2TZOCw2y SSZfPyyprqwHQG+2ZDcJ3rUlsLHxPOWDXpyKV7mQDGpl6aWLqnw/uFffuFl7G/aL0UWSdx EVkO/SAw0CV+34mFJ7O30orpSdEiR5IeAXI0fwl0JoDixsEpUsc44DwczANvVh1GBiML8m N3hSpy1XSmHq/ehATddFfsJjWIXMEA/mIy0j1zYJz2XG10hTUPpjowkYa2895emW82r6sb 2oaStn51jPyLNzdFMjVkX1xsBKhgvhFkR4wts059XQgIvp0TfVtWjV1y0UB3rA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFvGV5HkNzCxf for ; Tue, 17 Feb 2026 22:20:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 30f46 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 17 Feb 2026 22:20:18 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Vladimir Kondratyev Subject: git: b66993bd51d3 - stable/13 - evdev: Drop comments from input-event-codes.h List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: wulf X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: b66993bd51d32d673c2da708a0430a528a82b100 Auto-Submitted: auto-generated Date: Tue, 17 Feb 2026 22:20:18 +0000 Message-Id: <6994e9a2.30f46.69f3d26e@gitrepo.freebsd.org> The branch stable/13 has been updated by wulf: URL: https://cgit.FreeBSD.org/src/commit/?id=b66993bd51d32d673c2da708a0430a528a82b100 commit b66993bd51d32d673c2da708a0430a528a82b100 Author: Vladimir Kondratyev AuthorDate: 2026-02-10 22:59:06 +0000 Commit: Vladimir Kondratyev CommitDate: 2026-02-17 22:19:56 +0000 evdev: Drop comments from input-event-codes.h They were copied intact from the Linux GPL-only file. Requested by: imp, glebius MFC after: 1 week (cherry picked from commit 89aa8a94053fdd22ed716fdf424a2d10e70b3188) --- sys/dev/evdev/input-event-codes.h | 485 ++++++++++++++------------------------ 1 file changed, 177 insertions(+), 308 deletions(-) diff --git a/sys/dev/evdev/input-event-codes.h b/sys/dev/evdev/input-event-codes.h index 81c88ec86b9b..4f1d0f96e400 100644 --- a/sys/dev/evdev/input-event-codes.h +++ b/sys/dev/evdev/input-event-codes.h @@ -28,26 +28,18 @@ #ifndef _EVDEV_INPUT_EVENT_CODES_H #define _EVDEV_INPUT_EVENT_CODES_H -/* - * Device properties and quirks - */ - -#define INPUT_PROP_POINTER 0x00 /* needs a pointer */ -#define INPUT_PROP_DIRECT 0x01 /* direct input devices */ -#define INPUT_PROP_BUTTONPAD 0x02 /* has button(s) under pad */ -#define INPUT_PROP_SEMI_MT 0x03 /* touch rectangle only */ -#define INPUT_PROP_TOPBUTTONPAD 0x04 /* softbuttons at top of pad */ -#define INPUT_PROP_POINTING_STICK 0x05 /* is a pointing stick */ -#define INPUT_PROP_ACCELEROMETER 0x06 /* has accelerometer */ -#define INPUT_PROP_PRESSUREPAD 0x07 /* pressure triggers clicks */ +#define INPUT_PROP_POINTER 0x00 +#define INPUT_PROP_DIRECT 0x01 +#define INPUT_PROP_BUTTONPAD 0x02 +#define INPUT_PROP_SEMI_MT 0x03 +#define INPUT_PROP_TOPBUTTONPAD 0x04 +#define INPUT_PROP_POINTING_STICK 0x05 +#define INPUT_PROP_ACCELEROMETER 0x06 +#define INPUT_PROP_PRESSUREPAD 0x07 #define INPUT_PROP_MAX 0x1f #define INPUT_PROP_CNT (INPUT_PROP_MAX + 1) -/* - * Event types - */ - #define EV_SYN 0x00 #define EV_KEY 0x01 #define EV_REL 0x02 @@ -63,10 +55,6 @@ #define EV_MAX 0x1f #define EV_CNT (EV_MAX+1) -/* - * Synchronization events. - */ - #define SYN_REPORT 0 #define SYN_CONFIG 1 #define SYN_MT_REPORT 2 @@ -74,17 +62,6 @@ #define SYN_MAX 0xf #define SYN_CNT (SYN_MAX+1) -/* - * Keys and buttons - * - * Most of the keys/buttons are modeled after USB HUT 1.12 - * (see http://www.usb.org/developers/hidpage). - * Abbreviations in the comments: - * AC - Application Control - * AL - Application Launch Button - * SC - System Control - */ - #define KEY_RESERVED 0 #define KEY_ESC 1 #define KEY_1 2 @@ -201,11 +178,11 @@ #define KEY_MUTE 113 #define KEY_VOLUMEDOWN 114 #define KEY_VOLUMEUP 115 -#define KEY_POWER 116 /* SC System Power Down */ +#define KEY_POWER 116 #define KEY_KPEQUAL 117 #define KEY_KPPLUSMINUS 118 #define KEY_PAUSE 119 -#define KEY_SCALE 120 /* AL Compiz Scale (Expose) */ +#define KEY_SCALE 120 #define KEY_KPCOMMA 121 #define KEY_HANGEUL 122 @@ -216,40 +193,40 @@ #define KEY_RIGHTMETA 126 #define KEY_COMPOSE 127 -#define KEY_STOP 128 /* AC Stop */ +#define KEY_STOP 128 #define KEY_AGAIN 129 -#define KEY_PROPS 130 /* AC Properties */ -#define KEY_UNDO 131 /* AC Undo */ +#define KEY_PROPS 130 +#define KEY_UNDO 131 #define KEY_FRONT 132 -#define KEY_COPY 133 /* AC Copy */ -#define KEY_OPEN 134 /* AC Open */ -#define KEY_PASTE 135 /* AC Paste */ -#define KEY_FIND 136 /* AC Search */ -#define KEY_CUT 137 /* AC Cut */ -#define KEY_HELP 138 /* AL Integrated Help Center */ -#define KEY_MENU 139 /* Menu (show menu) */ -#define KEY_CALC 140 /* AL Calculator */ +#define KEY_COPY 133 +#define KEY_OPEN 134 +#define KEY_PASTE 135 +#define KEY_FIND 136 +#define KEY_CUT 137 +#define KEY_HELP 138 +#define KEY_MENU 139 +#define KEY_CALC 140 #define KEY_SETUP 141 -#define KEY_SLEEP 142 /* SC System Sleep */ -#define KEY_WAKEUP 143 /* System Wake Up */ -#define KEY_FILE 144 /* AL Local Machine Browser */ +#define KEY_SLEEP 142 +#define KEY_WAKEUP 143 +#define KEY_FILE 144 #define KEY_SENDFILE 145 #define KEY_DELETEFILE 146 #define KEY_XFER 147 #define KEY_PROG1 148 #define KEY_PROG2 149 -#define KEY_WWW 150 /* AL Internet Browser */ +#define KEY_WWW 150 #define KEY_MSDOS 151 -#define KEY_COFFEE 152 /* AL Terminal Lock/Screensaver */ +#define KEY_COFFEE 152 #define KEY_SCREENLOCK KEY_COFFEE -#define KEY_ROTATE_DISPLAY 153 /* Display orientation for e.g. tablets */ +#define KEY_ROTATE_DISPLAY 153 #define KEY_DIRECTION KEY_ROTATE_DISPLAY #define KEY_CYCLEWINDOWS 154 #define KEY_MAIL 155 -#define KEY_BOOKMARKS 156 /* AC Bookmarks */ +#define KEY_BOOKMARKS 156 #define KEY_COMPUTER 157 -#define KEY_BACK 158 /* AC Back */ -#define KEY_FORWARD 159 /* AC Forward */ +#define KEY_BACK 158 +#define KEY_FORWARD 159 #define KEY_CLOSECD 160 #define KEY_EJECTCD 161 #define KEY_EJECTCLOSECD 162 @@ -259,20 +236,20 @@ #define KEY_STOPCD 166 #define KEY_RECORD 167 #define KEY_REWIND 168 -#define KEY_PHONE 169 /* Media Select Telephone */ +#define KEY_PHONE 169 #define KEY_ISO 170 -#define KEY_CONFIG 171 /* AL Consumer Control Configuration */ -#define KEY_HOMEPAGE 172 /* AC Home */ -#define KEY_REFRESH 173 /* AC Refresh */ -#define KEY_EXIT 174 /* AC Exit */ +#define KEY_CONFIG 171 +#define KEY_HOMEPAGE 172 +#define KEY_REFRESH 173 +#define KEY_EXIT 174 #define KEY_MOVE 175 #define KEY_EDIT 176 #define KEY_SCROLLUP 177 #define KEY_SCROLLDOWN 178 #define KEY_KPLEFTPAREN 179 #define KEY_KPRIGHTPAREN 180 -#define KEY_NEW 181 /* AC New */ -#define KEY_REDO 182 /* AC Redo/Repeat */ +#define KEY_NEW 181 +#define KEY_REDO 182 #define KEY_F13 183 #define KEY_F14 184 @@ -291,14 +268,14 @@ #define KEY_PAUSECD 201 #define KEY_PROG3 202 #define KEY_PROG4 203 -#define KEY_ALL_APPLICATIONS 204 /* AC Desktop Show All Applications */ +#define KEY_ALL_APPLICATIONS 204 #define KEY_DASHBOARD KEY_ALL_APPLICATIONS #define KEY_SUSPEND 205 -#define KEY_CLOSE 206 /* AC Close */ +#define KEY_CLOSE 206 #define KEY_PLAY 207 #define KEY_FASTFORWARD 208 #define KEY_BASSBOOST 209 -#define KEY_PRINT 210 /* AC Print */ +#define KEY_PRINT 210 #define KEY_HP 211 #define KEY_CAMERA 212 #define KEY_SOUND 213 @@ -307,25 +284,24 @@ #define KEY_CHAT 216 #define KEY_SEARCH 217 #define KEY_CONNECT 218 -#define KEY_FINANCE 219 /* AL Checkbook/Finance */ +#define KEY_FINANCE 219 #define KEY_SPORT 220 #define KEY_SHOP 221 #define KEY_ALTERASE 222 -#define KEY_CANCEL 223 /* AC Cancel */ +#define KEY_CANCEL 223 #define KEY_BRIGHTNESSDOWN 224 #define KEY_BRIGHTNESSUP 225 #define KEY_MEDIA 226 -#define KEY_SWITCHVIDEOMODE 227 /* Cycle between available video - outputs (Monitor/LCD/TV-out/etc) */ +#define KEY_SWITCHVIDEOMODE 227 #define KEY_KBDILLUMTOGGLE 228 #define KEY_KBDILLUMDOWN 229 #define KEY_KBDILLUMUP 230 -#define KEY_SEND 231 /* AC Send */ -#define KEY_REPLY 232 /* AC Reply */ -#define KEY_FORWARDMAIL 233 /* AC Forward Msg */ -#define KEY_SAVE 234 /* AC Save */ +#define KEY_SEND 231 +#define KEY_REPLY 232 +#define KEY_FORWARDMAIL 233 +#define KEY_SAVE 234 #define KEY_DOCUMENTS 235 #define KEY_BATTERY 236 @@ -336,22 +312,18 @@ #define KEY_UNKNOWN 240 -#define KEY_VIDEO_NEXT 241 /* drive next video source */ -#define KEY_VIDEO_PREV 242 /* drive previous video source */ -#define KEY_BRIGHTNESS_CYCLE 243 /* brightness up, after max is min */ -#define KEY_BRIGHTNESS_AUTO 244 /* Set Auto Brightness: manual - brightness control is off, - rely on ambient */ +#define KEY_VIDEO_NEXT 241 +#define KEY_VIDEO_PREV 242 +#define KEY_BRIGHTNESS_CYCLE 243 +#define KEY_BRIGHTNESS_AUTO 244 #define KEY_BRIGHTNESS_ZERO KEY_BRIGHTNESS_AUTO -#define KEY_DISPLAY_OFF 245 /* display device to off state */ +#define KEY_DISPLAY_OFF 245 -#define KEY_WWAN 246 /* Wireless WAN (LTE, UMTS, GSM, etc.) */ +#define KEY_WWAN 246 #define KEY_WIMAX KEY_WWAN -#define KEY_RFKILL 247 /* Key that controls all radios */ - -#define KEY_MICMUTE 248 /* Mute / unmute the microphone */ +#define KEY_RFKILL 247 -/* Code 255 is reserved for special needs of AT keyboard driver */ +#define KEY_MICMUTE 248 #define BTN_MISC 0x100 #define BTN_0 0x100 @@ -420,14 +392,14 @@ #define BTN_TOOL_FINGER 0x145 #define BTN_TOOL_MOUSE 0x146 #define BTN_TOOL_LENS 0x147 -#define BTN_TOOL_QUINTTAP 0x148 /* Five fingers on trackpad */ +#define BTN_TOOL_QUINTTAP 0x148 #define BTN_STYLUS3 0x149 #define BTN_TOUCH 0x14a #define BTN_STYLUS 0x14b #define BTN_STYLUS2 0x14c #define BTN_TOOL_DOUBLETAP 0x14d #define BTN_TOOL_TRIPLETAP 0x14e -#define BTN_TOOL_QUADTAP 0x14f /* Four fingers on trackpad */ +#define BTN_TOOL_QUADTAP 0x14f #define BTN_WHEEL 0x150 #define BTN_GEAR_DOWN 0x150 @@ -439,56 +411,56 @@ #define KEY_CLEAR 0x163 #define KEY_POWER2 0x164 #define KEY_OPTION 0x165 -#define KEY_INFO 0x166 /* AL OEM Features/Tips/Tutorial */ +#define KEY_INFO 0x166 #define KEY_TIME 0x167 #define KEY_VENDOR 0x168 #define KEY_ARCHIVE 0x169 -#define KEY_PROGRAM 0x16a /* Media Select Program Guide */ +#define KEY_PROGRAM 0x16a #define KEY_CHANNEL 0x16b #define KEY_FAVORITES 0x16c #define KEY_EPG 0x16d -#define KEY_PVR 0x16e /* Media Select Home */ +#define KEY_PVR 0x16e #define KEY_MHP 0x16f #define KEY_LANGUAGE 0x170 #define KEY_TITLE 0x171 #define KEY_SUBTITLE 0x172 #define KEY_ANGLE 0x173 -#define KEY_FULL_SCREEN 0x174 /* AC View Toggle */ +#define KEY_FULL_SCREEN 0x174 #define KEY_ZOOM KEY_FULL_SCREEN #define KEY_MODE 0x175 #define KEY_KEYBOARD 0x176 -#define KEY_ASPECT_RATIO 0x177 /* HUTRR37: Aspect */ +#define KEY_ASPECT_RATIO 0x177 #define KEY_SCREEN KEY_ASPECT_RATIO -#define KEY_PC 0x178 /* Media Select Computer */ -#define KEY_TV 0x179 /* Media Select TV */ -#define KEY_TV2 0x17a /* Media Select Cable */ -#define KEY_VCR 0x17b /* Media Select VCR */ -#define KEY_VCR2 0x17c /* VCR Plus */ -#define KEY_SAT 0x17d /* Media Select Satellite */ +#define KEY_PC 0x178 +#define KEY_TV 0x179 +#define KEY_TV2 0x17a +#define KEY_VCR 0x17b +#define KEY_VCR2 0x17c +#define KEY_SAT 0x17d #define KEY_SAT2 0x17e -#define KEY_CD 0x17f /* Media Select CD */ -#define KEY_TAPE 0x180 /* Media Select Tape */ +#define KEY_CD 0x17f +#define KEY_TAPE 0x180 #define KEY_RADIO 0x181 -#define KEY_TUNER 0x182 /* Media Select Tuner */ +#define KEY_TUNER 0x182 #define KEY_PLAYER 0x183 #define KEY_TEXT 0x184 -#define KEY_DVD 0x185 /* Media Select DVD */ +#define KEY_DVD 0x185 #define KEY_AUX 0x186 #define KEY_MP3 0x187 -#define KEY_AUDIO 0x188 /* AL Audio Browser */ -#define KEY_VIDEO 0x189 /* AL Movie Browser */ +#define KEY_AUDIO 0x188 +#define KEY_VIDEO 0x189 #define KEY_DIRECTORY 0x18a #define KEY_LIST 0x18b -#define KEY_MEMO 0x18c /* Media Select Messages */ +#define KEY_MEMO 0x18c #define KEY_CALENDAR 0x18d #define KEY_RED 0x18e #define KEY_GREEN 0x18f #define KEY_YELLOW 0x190 #define KEY_BLUE 0x191 -#define KEY_CHANNELUP 0x192 /* Channel Increment */ -#define KEY_CHANNELDOWN 0x193 /* Channel Decrement */ +#define KEY_CHANNELUP 0x192 +#define KEY_CHANNELDOWN 0x193 #define KEY_FIRST 0x194 -#define KEY_LAST 0x195 /* Recall Last */ +#define KEY_LAST 0x195 #define KEY_AB 0x196 #define KEY_NEXT 0x197 #define KEY_RESTART 0x198 @@ -499,40 +471,40 @@ #define KEY_DIGITS 0x19d #define KEY_TEEN 0x19e #define KEY_TWEN 0x19f -#define KEY_VIDEOPHONE 0x1a0 /* Media Select Video Phone */ -#define KEY_GAMES 0x1a1 /* Media Select Games */ -#define KEY_ZOOMIN 0x1a2 /* AC Zoom In */ -#define KEY_ZOOMOUT 0x1a3 /* AC Zoom Out */ -#define KEY_ZOOMRESET 0x1a4 /* AC Zoom */ -#define KEY_WORDPROCESSOR 0x1a5 /* AL Word Processor */ -#define KEY_EDITOR 0x1a6 /* AL Text Editor */ -#define KEY_SPREADSHEET 0x1a7 /* AL Spreadsheet */ -#define KEY_GRAPHICSEDITOR 0x1a8 /* AL Graphics Editor */ -#define KEY_PRESENTATION 0x1a9 /* AL Presentation App */ -#define KEY_DATABASE 0x1aa /* AL Database App */ -#define KEY_NEWS 0x1ab /* AL Newsreader */ -#define KEY_VOICEMAIL 0x1ac /* AL Voicemail */ -#define KEY_ADDRESSBOOK 0x1ad /* AL Contacts/Address Book */ -#define KEY_MESSENGER 0x1ae /* AL Instant Messaging */ -#define KEY_DISPLAYTOGGLE 0x1af /* Turn display (LCD) on and off */ +#define KEY_VIDEOPHONE 0x1a0 +#define KEY_GAMES 0x1a1 +#define KEY_ZOOMIN 0x1a2 +#define KEY_ZOOMOUT 0x1a3 +#define KEY_ZOOMRESET 0x1a4 +#define KEY_WORDPROCESSOR 0x1a5 +#define KEY_EDITOR 0x1a6 +#define KEY_SPREADSHEET 0x1a7 +#define KEY_GRAPHICSEDITOR 0x1a8 +#define KEY_PRESENTATION 0x1a9 +#define KEY_DATABASE 0x1aa +#define KEY_NEWS 0x1ab +#define KEY_VOICEMAIL 0x1ac +#define KEY_ADDRESSBOOK 0x1ad +#define KEY_MESSENGER 0x1ae +#define KEY_DISPLAYTOGGLE 0x1af #define KEY_BRIGHTNESS_TOGGLE KEY_DISPLAYTOGGLE -#define KEY_SPELLCHECK 0x1b0 /* AL Spell Check */ -#define KEY_LOGOFF 0x1b1 /* AL Logoff */ +#define KEY_SPELLCHECK 0x1b0 +#define KEY_LOGOFF 0x1b1 #define KEY_DOLLAR 0x1b2 #define KEY_EURO 0x1b3 -#define KEY_FRAMEBACK 0x1b4 /* Consumer - transport controls */ +#define KEY_FRAMEBACK 0x1b4 #define KEY_FRAMEFORWARD 0x1b5 -#define KEY_CONTEXT_MENU 0x1b6 /* GenDesc - system context menu */ -#define KEY_MEDIA_REPEAT 0x1b7 /* Consumer - transport control */ -#define KEY_10CHANNELSUP 0x1b8 /* 10 channels up (10+) */ -#define KEY_10CHANNELSDOWN 0x1b9 /* 10 channels down (10-) */ -#define KEY_IMAGES 0x1ba /* AL Image Browser */ -#define KEY_NOTIFICATION_CENTER 0x1bc /* Show/hide the notification center */ -#define KEY_PICKUP_PHONE 0x1bd /* Answer incoming call */ -#define KEY_HANGUP_PHONE 0x1be /* Decline incoming call */ -#define KEY_LINK_PHONE 0x1bf /* AL Phone Syncing */ +#define KEY_CONTEXT_MENU 0x1b6 +#define KEY_MEDIA_REPEAT 0x1b7 +#define KEY_10CHANNELSUP 0x1b8 +#define KEY_10CHANNELSDOWN 0x1b9 +#define KEY_IMAGES 0x1ba +#define KEY_NOTIFICATION_CENTER 0x1bc +#define KEY_PICKUP_PHONE 0x1bd +#define KEY_HANGUP_PHONE 0x1be +#define KEY_LINK_PHONE 0x1bf #define KEY_DEL_EOL 0x1c0 #define KEY_DEL_EOS 0x1c1 @@ -573,8 +545,8 @@ #define KEY_BRL_DOT9 0x1f9 #define KEY_BRL_DOT10 0x1fa -#define KEY_NUMERIC_0 0x200 /* used by phones, remote controls, */ -#define KEY_NUMERIC_1 0x201 /* and other keypads */ +#define KEY_NUMERIC_0 0x200 +#define KEY_NUMERIC_1 0x201 #define KEY_NUMERIC_2 0x202 #define KEY_NUMERIC_3 0x203 #define KEY_NUMERIC_4 0x204 @@ -585,15 +557,14 @@ #define KEY_NUMERIC_9 0x209 #define KEY_NUMERIC_STAR 0x20a #define KEY_NUMERIC_POUND 0x20b -#define KEY_NUMERIC_A 0x20c /* Phone key A - HUT Telephony 0xb9 */ +#define KEY_NUMERIC_A 0x20c #define KEY_NUMERIC_B 0x20d #define KEY_NUMERIC_C 0x20e #define KEY_NUMERIC_D 0x20f - #define KEY_CAMERA_FOCUS 0x210 -#define KEY_WPS_BUTTON 0x211 /* WiFi Protected Setup key */ +#define KEY_WPS_BUTTON 0x211 -#define KEY_TOUCHPAD_TOGGLE 0x212 /* Request switch touchpad on or off */ +#define KEY_TOUCHPAD_TOGGLE 0x212 #define KEY_TOUCHPAD_ON 0x213 #define KEY_TOUCHPAD_OFF 0x214 @@ -603,11 +574,10 @@ #define KEY_CAMERA_DOWN 0x218 #define KEY_CAMERA_LEFT 0x219 #define KEY_CAMERA_RIGHT 0x21a - #define KEY_ATTENDANT_ON 0x21b #define KEY_ATTENDANT_OFF 0x21c -#define KEY_ATTENDANT_TOGGLE 0x21d /* Attendant call on or off */ -#define KEY_LIGHTS_TOGGLE 0x21e /* Reading light on or off */ +#define KEY_ATTENDANT_TOGGLE 0x21d +#define KEY_LIGHTS_TOGGLE 0x21e #define BTN_DPAD_UP 0x220 #define BTN_DPAD_DOWN 0x221 @@ -619,94 +589,69 @@ #define BTN_GRIPL2 0x226 #define BTN_GRIPR2 0x227 -#define KEY_ALS_TOGGLE 0x230 /* Ambient light sensor */ -#define KEY_ROTATE_LOCK_TOGGLE 0x231 /* Display rotation lock */ -#define KEY_REFRESH_RATE_TOGGLE 0x232 /* Display refresh rate toggle */ - -#define KEY_BUTTONCONFIG 0x240 /* AL Button Configuration */ -#define KEY_TASKMANAGER 0x241 /* AL Task/Project Manager */ -#define KEY_JOURNAL 0x242 /* AL Log/Journal/Timecard */ -#define KEY_CONTROLPANEL 0x243 /* AL Control Panel */ -#define KEY_APPSELECT 0x244 /* AL Select Task/Application */ -#define KEY_SCREENSAVER 0x245 /* AL Screen Saver */ -#define KEY_VOICECOMMAND 0x246 /* Listening Voice Command */ -#define KEY_ASSISTANT 0x247 /* AL Context-aware desktop assistant */ -#define KEY_KBD_LAYOUT_NEXT 0x248 /* AC Next Keyboard Layout Select */ -#define KEY_EMOJI_PICKER 0x249 /* Show/hide emoji picker (HUTRR101) */ -#define KEY_DICTATE 0x24a /* Start or Stop Voice Dictation Session (HUTRR99) */ -#define KEY_CAMERA_ACCESS_ENABLE 0x24b /* Enables programmatic access to camera devices. (HUTRR72) */ -#define KEY_CAMERA_ACCESS_DISABLE 0x24c /* Disables programmatic access to camera devices. (HUTRR72) */ -#define KEY_CAMERA_ACCESS_TOGGLE 0x24d /* Toggles the current state of the camera access control. (HUTRR72) */ -#define KEY_ACCESSIBILITY 0x24e /* Toggles the system bound accessibility UI/command (HUTRR116) */ -#define KEY_DO_NOT_DISTURB 0x24f /* Toggles the system-wide "Do Not Disturb" control (HUTRR94)*/ - -#define KEY_BRIGHTNESS_MIN 0x250 /* Set Brightness to Minimum */ -#define KEY_BRIGHTNESS_MAX 0x251 /* Set Brightness to Maximum */ - -/* - * Keycodes for hotkeys toggling the electronic privacy screen found on some - * laptops on/off. Note when the embedded-controller turns on/off the eprivacy - * screen itself then the state should be reported through drm connecter props: - * https://www.kernel.org/doc/html/latest/gpu/drm-kms.html#standard-connector-properties - * Except when implementing the drm connecter properties API is not possible - * because e.g. the firmware does not allow querying the presence and/or status - * of the eprivacy screen at boot. - */ +#define KEY_ALS_TOGGLE 0x230 +#define KEY_ROTATE_LOCK_TOGGLE 0x231 +#define KEY_REFRESH_RATE_TOGGLE 0x232 + +#define KEY_BUTTONCONFIG 0x240 +#define KEY_TASKMANAGER 0x241 +#define KEY_JOURNAL 0x242 +#define KEY_CONTROLPANEL 0x243 +#define KEY_APPSELECT 0x244 +#define KEY_SCREENSAVER 0x245 +#define KEY_VOICECOMMAND 0x246 +#define KEY_ASSISTANT 0x247 +#define KEY_KBD_LAYOUT_NEXT 0x248 +#define KEY_EMOJI_PICKER 0x249 +#define KEY_DICTATE 0x24a +#define KEY_CAMERA_ACCESS_ENABLE 0x24b +#define KEY_CAMERA_ACCESS_DISABLE 0x24c +#define KEY_CAMERA_ACCESS_TOGGLE 0x24d +#define KEY_ACCESSIBILITY 0x24e +#define KEY_DO_NOT_DISTURB 0x24f + +#define KEY_BRIGHTNESS_MIN 0x250 +#define KEY_BRIGHTNESS_MAX 0x251 + #define KEY_EPRIVACY_SCREEN_ON 0x252 #define KEY_EPRIVACY_SCREEN_OFF 0x253 #define KEY_KBDINPUTASSIST_PREV 0x260 #define KEY_KBDINPUTASSIST_NEXT 0x261 -#define KEY_KBDINPUTASSIST_PREVGROUP 0x262 -#define KEY_KBDINPUTASSIST_NEXTGROUP 0x263 -#define KEY_KBDINPUTASSIST_ACCEPT 0x264 -#define KEY_KBDINPUTASSIST_CANCEL 0x265 +#define KEY_KBDINPUTASSIST_PREVGROUP 0x262 +#define KEY_KBDINPUTASSIST_NEXTGROUP 0x263 +#define KEY_KBDINPUTASSIST_ACCEPT 0x264 +#define KEY_KBDINPUTASSIST_CANCEL 0x265 -/* Diagonal movement keys */ #define KEY_RIGHT_UP 0x266 #define KEY_RIGHT_DOWN 0x267 #define KEY_LEFT_UP 0x268 #define KEY_LEFT_DOWN 0x269 -#define KEY_ROOT_MENU 0x26a /* Show Device's Root Menu */ -/* Show Top Menu of the Media (e.g. DVD) */ +#define KEY_ROOT_MENU 0x26a #define KEY_MEDIA_TOP_MENU 0x26b #define KEY_NUMERIC_11 0x26c #define KEY_NUMERIC_12 0x26d -/* - * Toggle Audio Description: refers to an audio service that helps blind and - * visually impaired consumers understand the action in a program. Note: in - * some countries this is referred to as "Video Description". - */ #define KEY_AUDIO_DESC 0x26e #define KEY_3D_MODE 0x26f #define KEY_NEXT_FAVORITE 0x270 #define KEY_STOP_RECORD 0x271 #define KEY_PAUSE_RECORD 0x272 -#define KEY_VOD 0x273 /* Video on Demand */ +#define KEY_VOD 0x273 #define KEY_UNMUTE 0x274 #define KEY_FASTREVERSE 0x275 #define KEY_SLOWREVERSE 0x276 -/* - * Control a data application associated with the currently viewed channel, - * e.g. teletext or data broadcast application (MHEG, MHP, HbbTV, etc.) - */ #define KEY_DATA 0x277 #define KEY_ONSCREEN_KEYBOARD 0x278 -/* Electronic privacy screen control */ #define KEY_PRIVACY_SCREEN_TOGGLE 0x279 -/* Select an area of screen to be copied */ #define KEY_SELECTIVE_SCREENSHOT 0x27a -/* Move the focus to the next or previous user controllable element within a UI container */ #define KEY_NEXT_ELEMENT 0x27b #define KEY_PREVIOUS_ELEMENT 0x27c -/* Toggle Autopilot engagement */ #define KEY_AUTOPILOT_ENGAGE_TOGGLE 0x27d -/* Shortcut Keys */ #define KEY_MARK_WAYPOINT 0x27e #define KEY_SOS 0x27f #define KEY_NAV_CHART 0x280 @@ -720,21 +665,6 @@ #define KEY_NAV_INFO 0x288 #define KEY_BRIGHTNESS_MENU 0x289 -/* - * Some keyboards have keys which do not have a defined meaning, these keys - * are intended to be programmed / bound to macros by the user. For most - * keyboards with these macro-keys the key-sequence to inject, or action to - * take, is all handled by software on the host side. So from the kernel's - * point of view these are just normal keys. - * - * The KEY_MACRO# codes below are intended for such keys, which may be labeled - * e.g. G1-G18, or S1 - S30. The KEY_MACRO# codes MUST NOT be used for keys - * where the marking on the key does indicate a defined meaning / purpose. - * - * The KEY_MACRO# codes MUST also NOT be used as fallback for when no existing - * KEY_FOO define matches the marking / purpose. In this case a new KEY_FOO - * define MUST be added. - */ #define KEY_MACRO1 0x290 #define KEY_MACRO2 0x291 #define KEY_MACRO3 0x292 @@ -766,16 +696,6 @@ #define KEY_MACRO29 0x2ac #define KEY_MACRO30 0x2ad -/* - * Some keyboards with the macro-keys described above have some extra keys - * for controlling the host-side software responsible for the macro handling: - * -A macro recording start/stop key. Note that not all keyboards which emit - * KEY_MACRO_RECORD_START will also emit KEY_MACRO_RECORD_STOP if - * KEY_MACRO_RECORD_STOP is not advertised, then KEY_MACRO_RECORD_START - * should be interpreted as a recording start/stop toggle; - * -Keys for switching between different macro (pre)sets, either a key for - * cycling through the configured presets or keys to directly select a preset. - */ #define KEY_MACRO_RECORD_START 0x2b0 #define KEY_MACRO_RECORD_STOP 0x2b1 #define KEY_MACRO_PRESET_CYCLE 0x2b2 @@ -783,19 +703,12 @@ #define KEY_MACRO_PRESET2 0x2b4 #define KEY_MACRO_PRESET3 0x2b5 -/* - * Some keyboards have a buildin LCD panel where the contents are controlled - * by the host. Often these have a number of keys directly below the LCD - * intended for controlling a menu shown on the LCD. These keys often don't - * have any labeling so we just name them KEY_KBD_LCD_MENU# - */ #define KEY_KBD_LCD_MENU1 0x2b8 #define KEY_KBD_LCD_MENU2 0x2b9 #define KEY_KBD_LCD_MENU3 0x2ba #define KEY_KBD_LCD_MENU4 0x2bb #define KEY_KBD_LCD_MENU5 0x2bc -/* Performance Boost key (Alienware)/G-Mode key (Dell) */ #define KEY_PERFORMANCE 0x2bd #define BTN_TRIGGER_HAPPY 0x2c0 @@ -840,15 +753,10 @@ #define BTN_TRIGGER_HAPPY39 0x2e6 #define BTN_TRIGGER_HAPPY40 0x2e7 -/* We avoid low common keys in module aliases so they don't get huge. */ #define KEY_MIN_INTERESTING KEY_MUTE #define KEY_MAX 0x2ff #define KEY_CNT (KEY_MAX+1) -/* - * Relative axes - */ - #define REL_X 0x00 #define REL_Y 0x01 #define REL_Z 0x02 @@ -859,23 +767,12 @@ #define REL_DIAL 0x07 #define REL_WHEEL 0x08 #define REL_MISC 0x09 -/* - * 0x0a is reserved and should not be used in input drivers. - * It was used by HID as REL_MISC+1 and userspace needs to detect if - * the next REL_* event is correct or is just REL_MISC + n. - * We define here REL_RESERVED so userspace can rely on it and detect - * the situation described above. - */ #define REL_RESERVED 0x0a #define REL_WHEEL_HI_RES 0x0b #define REL_HWHEEL_HI_RES 0x0c #define REL_MAX 0x0f #define REL_CNT (REL_MAX+1) -/* - * Absolute axes - */ - #define ABS_X 0x00 #define ABS_Y 0x01 #define ABS_Z 0x02 @@ -906,65 +803,49 @@ #define ABS_MISC 0x28 -/* - * 0x2e is reserved and should not be used in input drivers. - * It was used by HID as ABS_MISC+6 and userspace needs to detect if - * the next ABS_* event is correct or is just ABS_MISC + n. - * We define here ABS_RESERVED so userspace can rely on it and detect - * the situation described above. - */ #define ABS_RESERVED 0x2e -#define ABS_MT_SLOT 0x2f /* MT slot being modified */ -#define ABS_MT_TOUCH_MAJOR 0x30 /* Major axis of touching ellipse */ -#define ABS_MT_TOUCH_MINOR 0x31 /* Minor axis (omit if circular) */ -#define ABS_MT_WIDTH_MAJOR 0x32 /* Major axis of approaching ellipse */ -#define ABS_MT_WIDTH_MINOR 0x33 /* Minor axis (omit if circular) */ -#define ABS_MT_ORIENTATION 0x34 /* Ellipse orientation */ -#define ABS_MT_POSITION_X 0x35 /* Center X touch position */ -#define ABS_MT_POSITION_Y 0x36 /* Center Y touch position */ -#define ABS_MT_TOOL_TYPE 0x37 /* Type of touching device */ -#define ABS_MT_BLOB_ID 0x38 /* Group a set of packets as a blob */ -#define ABS_MT_TRACKING_ID 0x39 /* Unique ID of initiated contact */ -#define ABS_MT_PRESSURE 0x3a /* Pressure on contact area */ -#define ABS_MT_DISTANCE 0x3b /* Contact hover distance */ -#define ABS_MT_TOOL_X 0x3c /* Center X tool position */ -#define ABS_MT_TOOL_Y 0x3d /* Center Y tool position */ +#define ABS_MT_SLOT 0x2f +#define ABS_MT_TOUCH_MAJOR 0x30 +#define ABS_MT_TOUCH_MINOR 0x31 +#define ABS_MT_WIDTH_MAJOR 0x32 +#define ABS_MT_WIDTH_MINOR 0x33 +#define ABS_MT_ORIENTATION 0x34 +#define ABS_MT_POSITION_X 0x35 +#define ABS_MT_POSITION_Y 0x36 +#define ABS_MT_TOOL_TYPE 0x37 +#define ABS_MT_BLOB_ID 0x38 +#define ABS_MT_TRACKING_ID 0x39 +#define ABS_MT_PRESSURE 0x3a +#define ABS_MT_DISTANCE 0x3b +#define ABS_MT_TOOL_X 0x3c +#define ABS_MT_TOOL_Y 0x3d #define ABS_MAX 0x3f #define ABS_CNT (ABS_MAX+1) -/* - * Switch events - */ - -#define SW_LID 0x00 /* set = lid shut */ -#define SW_TABLET_MODE 0x01 /* set = tablet mode */ -#define SW_HEADPHONE_INSERT 0x02 /* set = inserted */ -#define SW_RFKILL_ALL 0x03 /* rfkill master switch, type "any" - set = radio enabled */ -#define SW_RADIO SW_RFKILL_ALL /* deprecated */ -#define SW_MICROPHONE_INSERT 0x04 /* set = inserted */ -#define SW_DOCK 0x05 /* set = plugged into dock */ -#define SW_LINEOUT_INSERT 0x06 /* set = inserted */ -#define SW_JACK_PHYSICAL_INSERT 0x07 /* set = mechanical switch set */ -#define SW_VIDEOOUT_INSERT 0x08 /* set = inserted */ -#define SW_CAMERA_LENS_COVER 0x09 /* set = lens covered */ -#define SW_KEYPAD_SLIDE 0x0a /* set = keypad slide out */ -#define SW_FRONT_PROXIMITY 0x0b /* set = front proximity sensor active */ -#define SW_ROTATE_LOCK 0x0c /* set = rotate locked/disabled */ -#define SW_LINEIN_INSERT 0x0d /* set = inserted */ -#define SW_MUTE_DEVICE 0x0e /* set = device disabled */ -#define SW_PEN_INSERTED 0x0f /* set = pen inserted */ -#define SW_MACHINE_COVER 0x10 /* set = cover closed */ -#define SW_USB_INSERT 0x11 /* set = USB audio device connected */ +#define SW_LID 0x00 +#define SW_TABLET_MODE 0x01 +#define SW_HEADPHONE_INSERT 0x02 +#define SW_RFKILL_ALL 0x03 +#define SW_RADIO SW_RFKILL_ALL +#define SW_MICROPHONE_INSERT 0x04 +#define SW_DOCK 0x05 +#define SW_LINEOUT_INSERT 0x06 +#define SW_JACK_PHYSICAL_INSERT 0x07 +#define SW_VIDEOOUT_INSERT 0x08 +#define SW_CAMERA_LENS_COVER 0x09 +#define SW_KEYPAD_SLIDE 0x0a +#define SW_FRONT_PROXIMITY 0x0b +#define SW_ROTATE_LOCK 0x0c +#define SW_LINEIN_INSERT 0x0d +#define SW_MUTE_DEVICE 0x0e +#define SW_PEN_INSERTED 0x0f +#define SW_MACHINE_COVER 0x10 +#define SW_USB_INSERT 0x11 #define SW_MAX 0x11 #define SW_CNT (SW_MAX+1) -/* - * Misc events - */ - #define MSC_SERIAL 0x00 #define MSC_PULSELED 0x01 #define MSC_GESTURE 0x02 @@ -974,10 +855,6 @@ #define MSC_MAX 0x07 #define MSC_CNT (MSC_MAX+1) -/* - * LEDs - */ - #define LED_NUML 0x00 #define LED_CAPSL 0x01 #define LED_SCROLLL 0x02 @@ -992,19 +869,11 @@ #define LED_MAX 0x0f #define LED_CNT (LED_MAX+1) -/* - * Autorepeat values - */ - #define REP_DELAY 0x00 #define REP_PERIOD 0x01 #define REP_MAX 0x01 #define REP_CNT (REP_MAX+1) -/* - * Sounds - */ - #define SND_CLICK 0x00 #define SND_BELL 0x01 #define SND_TONE 0x02 From nobody Tue Feb 17 23:57:57 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFxR93WMhz6SK26 for ; Tue, 17 Feb 2026 23:57: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFxR92bFxz4Q85 for ; Tue, 17 Feb 2026 23:57:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771372677; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=upVKnb6gMWen9kZ91nAj8Apn9tFBjLSyLMFlz7vvrHU=; b=Dq4EnxEPjFHU4DMxVIygS0lpeEeQRXHN0ic5ghCqmXr3OP9YkwUshV2M2Unpbc1XGoSsZS Zh7CDxawc33cTnl8NYljRyRTXQbFdTZI6xhBoRj+dlfQOZ3X0JLTq7tXzA7sxhpAA6Cuqq hRsegEDX7wgaS1ywtWc9F8Fc0oQRtCoGIY1bXH++qr0ARPazfU2Xo1ZF1dXEOyjHWCvoQw crNUkeCLLKP4cg8ek+wAggGWg9SAWlNz1f76qwTdJcy5JcqjkwS1Squ1ATOKtIRJ2nXN+d sX+iinuooXfcmceATLiGL+UIdSrd8hV205f63PPtbHg6WXG7dn6YKJOIJLyFBg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771372677; a=rsa-sha256; cv=none; b=ZgRBX9slp4CVhdLfI27FRYyDjvXiFVJFVTDsrZ1U+yZvuhoYR21ss7NBuMD1eK22sGp1Em 4W51Nz1MFuilstHzRmHWcMQV30LndB94r00rvQChSsZSzdIQ4QbTHr4s8GKQL29/88eFw/ Du8kk7nWTz5vNg9eQcchwVGtnpQMp46BS5il1VHD52vzBn5WNP2Ozm3Ldz0y1/w4PS56B1 KD+v9TPIbYD0OSU86NMKdwVZd1OxIN1lObTMg1mw0tymj2W3ISvTeW4Bm8epUhjpjEuZfn OUjxDvBs55NbHGDUAozwYo/tYg4HxpDFAoyUc3lND0w1I0t4mB5H9Er8A7c2Sw== 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=1771372677; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=upVKnb6gMWen9kZ91nAj8Apn9tFBjLSyLMFlz7vvrHU=; b=SFoY2qg/6WecZ3kdfzG9SWn/lsMGNzQIMo6oVswEh3lN4+pkb0AuiOR8jXO03d7LYMhvnR QP/vIGyQgsFxyeou3kLxQw0CLOJ1RmwuM94hzAuWkqS1OJznRekPHwmSZm9Swayds0gDkz VaZ6X+671RqBGf4l9GQLeZSxaG+8tOWrBiL/gffVZAtWk30zbTu6gonSlKD62BrSp3fB3a V5+ShsUk8xtX5PGkluDtWgew66OJUAWJ71NpQg43+CNUjBl5v2I7p1lwsOFEIb0Hw5kmj8 eNQNLfumY2M03/JVvPahwtM/D12MXH9UuSEgbfnd/LPkYWjVTTmHmazQPDYOKA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFxR91ncSzXPp for ; Tue, 17 Feb 2026 23:57:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3b52c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 17 Feb 2026 23:57:57 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: 05f0dcd80d6a - stable/15 - tests: Simplify libarchive tests List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 05f0dcd80d6a5203c061825ba8435a4732754930 Auto-Submitted: auto-generated Date: Tue, 17 Feb 2026 23:57:57 +0000 Message-Id: <69950085.3b52c.1ec45335@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=05f0dcd80d6a5203c061825ba8435a4732754930 commit 05f0dcd80d6a5203c061825ba8435a4732754930 Author: Dag-Erling Smørgrav AuthorDate: 2025-12-06 13:48:32 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-17 23:11:48 +0000 tests: Simplify libarchive tests The ATF tests work by first running the test program with an invalid flag, which causes it to print an error message, a summary of options, and a list of available test cases. Switch to the new -l option which simply prints the list, and simplify the awk script used to parse the output. No functional change. MFC after: 1 week (cherry picked from commit 394201ce5b4e2f84f1e39a7ce8bdc3f5a5ef8390) --- lib/libarchive/tests/functional_test.sh | 2 +- usr.bin/bsdcat/tests/functional_test.sh | 2 +- usr.bin/cpio/tests/functional_test.sh | 2 +- usr.bin/tar/tests/functional_test.sh | 4 ++-- usr.bin/unzip/tests/functional_test.sh | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/libarchive/tests/functional_test.sh b/lib/libarchive/tests/functional_test.sh index 191eae65f4dc..db3845b5e6f7 100755 --- a/lib/libarchive/tests/functional_test.sh +++ b/lib/libarchive/tests/functional_test.sh @@ -40,7 +40,7 @@ atf_init_test_cases() # Redirect stderr to stdout for the usage message because if you don't # kyua list/kyua test will break: # https://github.com/jmmv/kyua/issues/149 - testcases=$(${TESTER} -h 2>&1 | awk 'p != 0 && $1 ~ /^[0-9]+:/ { print $NF } /Available tests:/ { p=1 }') + testcases=$(${TESTER} -l 2>&1 | awk '/^ [0-9]+: / { print $2 }') for testcase in ${testcases}; do atf_test_case ${testcase} eval "${testcase}_body() { check ${testcase}; }" diff --git a/usr.bin/bsdcat/tests/functional_test.sh b/usr.bin/bsdcat/tests/functional_test.sh index efed232374e2..27bf51298bb8 100755 --- a/usr.bin/bsdcat/tests/functional_test.sh +++ b/usr.bin/bsdcat/tests/functional_test.sh @@ -46,7 +46,7 @@ atf_init_test_cases() # Redirect stderr to stdout for the usage message because if you don't # kyua list/kyua test will break: # https://github.com/jmmv/kyua/issues/149 - testcases=$(${TESTER} -h 2>&1 | awk 'p != 0 && $1 ~ /^[0-9]+:/ { print $NF } /Available tests:/ { p=1 }') + testcases=$(${TESTER} -l 2>&1 | awk '/^ [0-9]+: / { print $2 }') for testcase in ${testcases}; do atf_test_case ${testcase} eval "${testcase}_body() { check ${testcase}; }" diff --git a/usr.bin/cpio/tests/functional_test.sh b/usr.bin/cpio/tests/functional_test.sh index a915cc91faea..6bc58e5236ae 100755 --- a/usr.bin/cpio/tests/functional_test.sh +++ b/usr.bin/cpio/tests/functional_test.sh @@ -46,7 +46,7 @@ atf_init_test_cases() # Redirect stderr to stdout for the usage message because if you don't # kyua list/kyua test will break: # https://github.com/jmmv/kyua/issues/149 - testcases=$(${TESTER} -h 2>&1 | awk 'p != 0 && $1 ~ /^[0-9]+:/ { print $NF } /Available tests:/ { p=1 }') + testcases=$(${TESTER} -l 2>&1 | awk '/^ [0-9]+: / { print $2 }') for testcase in ${testcases}; do atf_test_case ${testcase} eval "${testcase}_body() { check ${testcase}; }" diff --git a/usr.bin/tar/tests/functional_test.sh b/usr.bin/tar/tests/functional_test.sh index 39a73abd0a79..11f3cb6dd122 100755 --- a/usr.bin/tar/tests/functional_test.sh +++ b/usr.bin/tar/tests/functional_test.sh @@ -25,9 +25,9 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # -export BSDTAR=$(which tar) SRCDIR=$(atf_get_srcdir) TESTER="${SRCDIR}/bsdtar_test" +export BSDTAR=$(which tar) check() { @@ -41,7 +41,7 @@ atf_init_test_cases() # Redirect stderr to stdout for the usage message because if you don't # kyua list/kyua test will break: # https://github.com/jmmv/kyua/issues/149 - testcases=$(${TESTER} -h 2>&1 | awk 'p != 0 && $1 ~ /^[0-9]+:/ { print $NF } /Available tests:/ { p=1 }') + testcases=$(${TESTER} -l 2>&1 | awk '/^ [0-9]+: / { print $2 }') for testcase in ${testcases}; do atf_test_case ${testcase} eval "${testcase}_body() { check ${testcase}; }" diff --git a/usr.bin/unzip/tests/functional_test.sh b/usr.bin/unzip/tests/functional_test.sh index e668453d8882..c6b25cfc2e7e 100755 --- a/usr.bin/unzip/tests/functional_test.sh +++ b/usr.bin/unzip/tests/functional_test.sh @@ -46,7 +46,7 @@ atf_init_test_cases() # Redirect stderr to stdout for the usage message because if you don't # kyua list/kyua test will break: # https://github.com/jmmv/kyua/issues/149 - testcases=$(${TESTER} -h 2>&1 | awk 'p != 0 && $1 ~ /^[0-9]+:/ { print $NF } /Available tests:/ { p=1 }') + testcases=$(${TESTER} -l 2>&1 | awk '/^ [0-9]+: / { print $2 }') for testcase in ${testcases}; do atf_test_case ${testcase} eval "${testcase}_body() { check ${testcase}; }" From nobody Tue Feb 17 23:57:58 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFxRB4Vjtz6SK4T for ; Tue, 17 Feb 2026 23:57: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFxRB38J1z4QM5 for ; Tue, 17 Feb 2026 23:57:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771372678; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rh3cXeL3bCEyp1zuPsB/cn9a0GGib7NXuRvgzMXaaCk=; b=lK40gvJ3ePm8d9bhwuvWtupZtFUxNJHRW2Vh3j7GSITbTiph9FPErmXBED1YbAlZrM6BoY Ppq6Il6BdzqgSvEviJQ4JE7y0urxFbBawTNXUZZEXVOQdclpVsW3zWKrHt9Rr1aKWqwI0X fjGGPy1Yj8EcMKu12zQnlYeacIn82hPPFbygrDVzdJve0I6p2cXwDkR3xGojD0xNQeiwZ7 pR/0KzsRftLswaiOD3SexAB3uXuHKOxMATw4SQnt9wn494TKdNlyOYgL/jR6vMl0733LR8 ou+WRN+SmSWoRrpoyikFsuMlhMvGOGBLjn0FIzgWeD7dO2jugdB/T+X5qq3gSQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771372678; a=rsa-sha256; cv=none; b=G4/zRtL68TQjv+1qedDRUHgW5ojA0DXNI157E01dzqqrREXjumhvHSGM5gOY5pN4CPZBvL X7N4kWObywlEnU5RtMJMUrsHCMrcipqp0BvE6Xs/uGMUrpI/88Q9rVxzTEbxVvfKxrEfxI NGZtLwlWV4iJ7V3ixf0HIxPGZ6cqFHC3XpAyEbM5DztnLbx28icxbu+c2v0U/XhJRI+MjJ Ofa4uV7KOG0gSJLUKI4YBYLd5NAHoKPDAVQRqmtL5lnxSYoEQGE6KBovb0+pXCA8eoUvP0 pJjf11GjzlzNbnAE10UCyGCv1Xe36cH0l4w18HuzTlVumZ/pG5I9L8W+etW/Rg== 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=1771372678; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rh3cXeL3bCEyp1zuPsB/cn9a0GGib7NXuRvgzMXaaCk=; b=bqhETLzmJoXOpvMQ05tS/Uoe2/e3+QgZxdV0ngZuWZFPqWoXRbor1T5McyNn5zCL0HeQ0e 6el1rKzGPMc2A0pQsF9bDb9OlHnMo9UY8vY6rLkllkS+p9E2uwiubUXSHpdw2sv0NzkQmx Ht7CPuErhTBuyJrkEIo7//6DE016dHZVZdkFyAnDsy0349VK8VJSqvIaGJSfNk04Q1kN5B sjOqjTZhugwkhxhH3oxY8qTcfaWC2Yh2BXWMEUd72wLE3DgEFQxbCBsZT7FOwHtB9hvZYp Lg6RkfgEL0/onsiIX+Ao4VlC9qylh6uwlKo9XLlLfhNcm546Jp5L8OWyY0EHtw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFxRB2jzqzXh2 for ; Tue, 17 Feb 2026 23:57:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3c27d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 17 Feb 2026 23:57:58 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: c8d2ac71e8cf - stable/15 - ngctl: Modernize code somewhat List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: c8d2ac71e8cf2bc6a5ac8fdf212178a165e1a564 Auto-Submitted: auto-generated Date: Tue, 17 Feb 2026 23:57:58 +0000 Message-Id: <69950086.3c27d.3e9482c8@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=c8d2ac71e8cf2bc6a5ac8fdf212178a165e1a564 commit c8d2ac71e8cf2bc6a5ac8fdf212178a165e1a564 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-13 15:57:40 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-17 23:11:48 +0000 ngctl: Modernize code somewhat * Replace fgets(3) with getline(3) * Replace select(2) with poll(2) * Avoid needlessly copying text around * Correct use of getopt(3) * Pick some style and whitespace nits MFC after: 1 week Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D55257 (cherry picked from commit 3cbdcabf714d5187e22d8ff1cbfbc261dc8622eb) --- usr.sbin/ngctl/config.c | 9 +- usr.sbin/ngctl/connect.c | 6 +- usr.sbin/ngctl/debug.c | 6 +- usr.sbin/ngctl/dot.c | 7 +- usr.sbin/ngctl/list.c | 14 ++- usr.sbin/ngctl/main.c | 243 ++++++++++++++++++++++------------------------ usr.sbin/ngctl/mkpeer.c | 6 +- usr.sbin/ngctl/msg.c | 39 +++----- usr.sbin/ngctl/name.c | 6 +- usr.sbin/ngctl/rmhook.c | 6 +- usr.sbin/ngctl/show.c | 9 +- usr.sbin/ngctl/shutdown.c | 7 +- usr.sbin/ngctl/status.c | 10 +- usr.sbin/ngctl/types.c | 6 +- usr.sbin/ngctl/write.c | 10 +- 15 files changed, 168 insertions(+), 216 deletions(-) diff --git a/usr.sbin/ngctl/config.c b/usr.sbin/ngctl/config.c index 261bc950f570..25cd841494d1 100644 --- a/usr.sbin/ngctl/config.c +++ b/usr.sbin/ngctl/config.c @@ -3,7 +3,7 @@ * * Copyright (c) 1996-1999 Whistle Communications, Inc. * All rights reserved. - * + * * Subject to the following obligations and disclaimer of warranty, use and * redistribution of this software, in source or object code forms, with or * without modifications are expressly permitted by Whistle Communications; @@ -14,7 +14,7 @@ * Communications, Inc. trademarks, including the mark "WHISTLE * COMMUNICATIONS" on advertising, endorsements, or otherwise except as * such appears in the above copyright notice or in the software. - * + * * THIS SOFTWARE IS BEING PROVIDED BY WHISTLE COMMUNICATIONS "AS IS", AND * TO THE MAXIMUM EXTENT PERMITTED BY LAW, WHISTLE COMMUNICATIONS MAKES NO * REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, REGARDING THIS SOFTWARE, @@ -94,8 +94,8 @@ ConfigCmd(int ac, char **av) return (CMDRTN_ERROR); } } else { - if (NgRecvMsg(csock, resp, sizeof(sbuf), NULL) < 0 - || (resp->header.flags & NGF_RESP) == 0) + if (NgRecvMsg(csock, resp, sizeof(sbuf), NULL) < 0 || + (resp->header.flags & NGF_RESP) == 0) nostat = 1; } @@ -106,4 +106,3 @@ ConfigCmd(int ac, char **av) printf("Config for \"%s\":\n%s\n", path, status); return (CMDRTN_OK); } - diff --git a/usr.sbin/ngctl/connect.c b/usr.sbin/ngctl/connect.c index 7f538e0a442d..c3e7d0b5a1b4 100644 --- a/usr.sbin/ngctl/connect.c +++ b/usr.sbin/ngctl/connect.c @@ -1,10 +1,9 @@ - /* * connect.c * * Copyright (c) 1996-1999 Whistle Communications, Inc. * All rights reserved. - * + * * Subject to the following obligations and disclaimer of warranty, use and * redistribution of this software, in source or object code forms, with or * without modifications are expressly permitted by Whistle Communications; @@ -15,7 +14,7 @@ * Communications, Inc. trademarks, including the mark "WHISTLE * COMMUNICATIONS" on advertising, endorsements, or otherwise except as * such appears in the above copyright notice or in the software. - * + * * THIS SOFTWARE IS BEING PROVIDED BY WHISTLE COMMUNICATIONS "AS IS", AND * TO THE MAXIMUM EXTENT PERMITTED BY LAW, WHISTLE COMMUNICATIONS MAKES NO * REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, REGARDING THIS SOFTWARE, @@ -85,4 +84,3 @@ ConnectCmd(int ac, char **av) } return (CMDRTN_OK); } - diff --git a/usr.sbin/ngctl/debug.c b/usr.sbin/ngctl/debug.c index bbc329acdcd2..1f64dfd466e9 100644 --- a/usr.sbin/ngctl/debug.c +++ b/usr.sbin/ngctl/debug.c @@ -1,10 +1,9 @@ - /* * debug.c * * Copyright (c) 1996-1999 Whistle Communications, Inc. * All rights reserved. - * + * * Subject to the following obligations and disclaimer of warranty, use and * redistribution of this software, in source or object code forms, with or * without modifications are expressly permitted by Whistle Communications; @@ -15,7 +14,7 @@ * Communications, Inc. trademarks, including the mark "WHISTLE * COMMUNICATIONS" on advertising, endorsements, or otherwise except as * such appears in the above copyright notice or in the software. - * + * * THIS SOFTWARE IS BEING PROVIDED BY WHISTLE COMMUNICATIONS "AS IS", AND * TO THE MAXIMUM EXTENT PERMITTED BY LAW, WHISTLE COMMUNICATIONS MAKES NO * REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, REGARDING THIS SOFTWARE, @@ -79,4 +78,3 @@ DebugCmd(int ac, char **av) } return (CMDRTN_OK); } - diff --git a/usr.sbin/ngctl/dot.c b/usr.sbin/ngctl/dot.c index 95132a5d0785..9893dc27f845 100644 --- a/usr.sbin/ngctl/dot.c +++ b/usr.sbin/ngctl/dot.c @@ -1,4 +1,3 @@ - /* * dot.c * @@ -6,7 +5,7 @@ * Copyright (c) 2004 Brian Fundakowski Feldman * Copyright (c) 1996-1999 Whistle Communications, Inc. * All rights reserved. - * + * * Subject to the following obligations and disclaimer of warranty, use and * redistribution of this software, in source or object code forms, with or * without modifications are expressly permitted by Whistle Communications; @@ -17,7 +16,7 @@ * Communications, Inc. trademarks, including the mark "WHISTLE * COMMUNICATIONS" on advertising, endorsements, or otherwise except as * such appears in the above copyright notice or in the software. - * + * * THIS SOFTWARE IS BEING PROVIDED BY WHISTLE COMMUNICATIONS "AS IS", AND * TO THE MAXIMUM EXTENT PERMITTED BY LAW, WHISTLE COMMUNICATIONS MAKES NO * REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, REGARDING THIS SOFTWARE, @@ -71,13 +70,13 @@ DotCmd(int ac, char **av) u_int i; /* Get options */ + optreset = 1; optind = 1; while ((ch = getopt(ac, av, "c")) != -1) { switch (ch) { case 'c': compact = 1; break; - case '?': default: return (CMDRTN_USAGE); break; diff --git a/usr.sbin/ngctl/list.c b/usr.sbin/ngctl/list.c index d13de1c4c57f..77fc7a4bbcf5 100644 --- a/usr.sbin/ngctl/list.c +++ b/usr.sbin/ngctl/list.c @@ -1,10 +1,9 @@ - /* * list.c * * Copyright (c) 1996-1999 Whistle Communications, Inc. * All rights reserved. - * + * * Subject to the following obligations and disclaimer of warranty, use and * redistribution of this software, in source or object code forms, with or * without modifications are expressly permitted by Whistle Communications; @@ -15,7 +14,7 @@ * Communications, Inc. trademarks, including the mark "WHISTLE * COMMUNICATIONS" on advertising, endorsements, or otherwise except as * such appears in the above copyright notice or in the software. - * + * * THIS SOFTWARE IS BEING PROVIDED BY WHISTLE COMMUNICATIONS "AS IS", AND * TO THE MAXIMUM EXTENT PERMITTED BY LAW, WHISTLE COMMUNICATIONS MAKES NO * REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, REGARDING THIS SOFTWARE, @@ -70,6 +69,7 @@ ListCmd(int ac, char **av) int ch, rtn = CMDRTN_OK; /* Get options */ + optreset = 1; optind = 1; while ((ch = getopt(ac, av, "ln")) != -1) { switch (ch) { @@ -79,7 +79,6 @@ ListCmd(int ac, char **av) case 'n': named_only = 1; break; - case '?': default: return (CMDRTN_USAGE); break; @@ -114,11 +113,11 @@ ListCmd(int ac, char **av) ninfo = nlist->nodeinfo; if (list_hooks) { char path[NG_PATHSIZ]; - char *argv[2] = { "show", path }; + char *argv[] = { "show", path, NULL }; while (nlist->numnames > 0) { - snprintf(path, sizeof(path), - "[%lx]:", (u_long)ninfo->id); + snprintf(path, sizeof(path), "[%lx]:", + (unsigned long)ninfo->id); if ((rtn = (*show_cmd.func)(2, argv)) != CMDRTN_OK) break; ninfo++; @@ -143,4 +142,3 @@ ListCmd(int ac, char **av) free(resp); return (rtn); } - diff --git a/usr.sbin/ngctl/main.c b/usr.sbin/ngctl/main.c index b86f1ca27e71..b58de1e042b3 100644 --- a/usr.sbin/ngctl/main.c +++ b/usr.sbin/ngctl/main.c @@ -1,10 +1,9 @@ - /* * main.c * * Copyright (c) 1996-1999 Whistle Communications, Inc. * All rights reserved. - * + * * Subject to the following obligations and disclaimer of warranty, use and * redistribution of this software, in source or object code forms, with or * without modifications are expressly permitted by Whistle Communications; @@ -15,7 +14,7 @@ * Communications, Inc. trademarks, including the mark "WHISTLE * COMMUNICATIONS" on advertising, endorsements, or otherwise except as * such appears in the above copyright notice or in the software. - * + * * THIS SOFTWARE IS BEING PROVIDED BY WHISTLE COMMUNICATIONS "AS IS", AND * TO THE MAXIMUM EXTENT PERMITTED BY LAW, WHISTLE COMMUNICATIONS MAKES NO * REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, REGARDING THIS SOFTWARE, @@ -39,12 +38,12 @@ #include #include -#include #include #include #include #include +#include #include #include #include @@ -71,7 +70,8 @@ /* Internal functions */ static int ReadFile(FILE *fp); -static void ReadSockets(fd_set *); +static void ReadCtrlSocket(void); +static void ReadDataSocket(void); static int DoParseCommand(const char *line); static int DoCommand(int ac, char **av); static int DoInteractive(void); @@ -146,6 +146,7 @@ main(int ac, char *av[]) FILE *fp = NULL; #ifdef JAIL const char *jail_name = NULL; + int jid; #endif int ch, rtn = 0; @@ -174,7 +175,6 @@ main(int ac, char *av[]) case 'n': snprintf(name, sizeof(name), "%s", optarg); break; - case '?': default: Usage((char *)NULL); break; @@ -185,8 +185,6 @@ main(int ac, char *av[]) #ifdef JAIL if (jail_name != NULL) { - int jid; - if (jail_name[0] == '\0') Usage("invalid jail name"); @@ -239,18 +237,25 @@ main(int ac, char *av[]) static int ReadFile(FILE *fp) { - char line[LINE_MAX]; - int num, rtn; - - for (num = 1; fgets(line, sizeof(line), fp) != NULL; num++) { + char *line = NULL; + ssize_t len; + size_t sz = 0; + unsigned int lineno = 0; + int rtn = CMDRTN_OK; + + while ((len = getline(&line, &sz, fp)) > 0) { + lineno++; if (*line == '#') continue; - if ((rtn = DoParseCommand(line)) != 0) { - warnx("line %d: error in file", num); - return (rtn); + if ((rtn = DoParseCommand(line)) != CMDRTN_OK) { + warnx("line %d: error in file", lineno); + break; } } - return (CMDRTN_OK); + if (len < 0) + rtn = CMDRTN_ERROR; + free(line); + return (rtn); } #ifdef EDITLINE @@ -258,7 +263,6 @@ ReadFile(FILE *fp) static void Unblock(int signal __unused) { - unblock = 1; } @@ -269,8 +273,11 @@ Unblock(int signal __unused) static void * Monitor(void *v __unused) { + struct pollfd pfds[2] = { + { .fd = csock, .events = POLLIN }, + { .fd = dsock, .events = POLLIN }, + }; struct sigaction act; - const int maxfd = MAX(csock, dsock) + 1; act.sa_handler = Unblock; sigemptyset(&act.sa_mask); @@ -279,22 +286,19 @@ Monitor(void *v __unused) pthread_mutex_lock(&mutex); for (;;) { - fd_set rfds; - - /* See if any data or control messages are arriving. */ - FD_ZERO(&rfds); - FD_SET(csock, &rfds); - FD_SET(dsock, &rfds); unblock = 0; - if (select(maxfd, &rfds, NULL, NULL, NULL) <= 0) { + if (poll(pfds, 2, INFTIM) <= 0) { if (errno == EINTR) { if (unblock == 1) pthread_cond_wait(&cond, &mutex); continue; } - err(EX_OSERR, "select"); + err(EX_OSERR, "poll"); } - ReadSockets(&rfds); + if (pfds[0].revents != 0) + ReadCtrlSocket(); + if (pfds[1].revents != 0) + ReadDataSocket(); } return (NULL); @@ -303,7 +307,6 @@ Monitor(void *v __unused) static char * Prompt(EditLine *el __unused) { - return (PROMPT); } @@ -376,49 +379,48 @@ DoInteractive(void) static int DoInteractive(void) { - const int maxfd = MAX(csock, dsock) + 1; + struct pollfd pfds[3] = { + { .fd = csock, .events = POLLIN }, + { .fd = dsock, .events = POLLIN }, + { .fd = STDIN_FILENO, .events = POLLIN }, + }; + char *line = NULL; + ssize_t len; + size_t sz = 0; (*help_cmd.func)(0, NULL); - while (1) { - struct timeval tv; - fd_set rfds; - + for (;;) { /* See if any data or control messages are arriving */ - FD_ZERO(&rfds); - FD_SET(csock, &rfds); - FD_SET(dsock, &rfds); - memset(&tv, 0, sizeof(tv)); - if (select(maxfd, &rfds, NULL, NULL, &tv) <= 0) { - + if (poll(pfds, 2, 0) <= 0) { /* Issue prompt and wait for anything to happen */ printf("%s", PROMPT); fflush(stdout); - FD_ZERO(&rfds); - FD_SET(0, &rfds); - FD_SET(csock, &rfds); - FD_SET(dsock, &rfds); - if (select(maxfd, &rfds, NULL, NULL, NULL) < 0) - err(EX_OSERR, "select"); - - /* If not user input, print a newline first */ - if (!FD_ISSET(0, &rfds)) - printf("\n"); + if (poll(pfds, 3, INFTIM) < 0 && errno != EINTR) + err(EX_OSERR, "poll"); + } else { + pfds[2].revents = 0; } - ReadSockets(&rfds); + /* If not user input, print a newline first */ + if (pfds[2].revents == 0) + printf("\n"); + + if (pfds[0].revents != 0) + ReadCtrlSocket(); + if (pfds[1].revents != 0) + ReadDataSocket(); /* Get any user input */ - if (FD_ISSET(0, &rfds)) { - char buf[LINE_MAX]; - - if (fgets(buf, sizeof(buf), stdin) == NULL) { + if (pfds[2].revents != 0) { + if ((len = getline(&line, &sz, stdin)) <= 0) { printf("\n"); break; } - if (DoParseCommand(buf) == CMDRTN_QUIT) + if (DoParseCommand(line) == CMDRTN_QUIT) break; } } + free(line); return (CMDRTN_QUIT); } #endif /* !EDITLINE */ @@ -427,29 +429,28 @@ DoInteractive(void) * Read and process data on netgraph control and data sockets. */ static void -ReadSockets(fd_set *rfds) +ReadCtrlSocket(void) { - /* Display any incoming control message. */ - if (FD_ISSET(csock, rfds)) - MsgRead(); - - /* Display any incoming data packet. */ - if (FD_ISSET(dsock, rfds)) { - char hook[NG_HOOKSIZ]; - u_char *buf; - int rl; - - /* Read packet from socket. */ - if ((rl = NgAllocRecvData(dsock, &buf, hook)) < 0) - err(EX_OSERR, "reading hook \"%s\"", hook); - if (rl == 0) - errx(EX_OSERR, "EOF from hook \"%s\"?", hook); - - /* Write packet to stdout. */ - printf("Rec'd data packet on hook \"%s\":\n", hook); - DumpAscii(buf, rl); - free(buf); - } + MsgRead(); +} + +static void +ReadDataSocket(void) +{ + char hook[NG_HOOKSIZ]; + u_char *buf; + int rl; + + /* Read packet from socket. */ + if ((rl = NgAllocRecvData(dsock, &buf, hook)) < 0) + err(EX_OSERR, "reading hook \"%s\"", hook); + if (rl == 0) + errx(EX_OSERR, "EOF from hook \"%s\"?", hook); + + /* Write packet to stdout. */ + printf("Rec'd data packet on hook \"%s\":\n", hook); + DumpAscii(buf, rl); + free(buf); } /* @@ -561,6 +562,8 @@ ReadCmd(int ac, char **av) /* Process it */ rtn = ReadFile(fp); + if (ferror(fp)) + warn("%s", av[1]); fclose(fp); return (rtn); } @@ -572,7 +575,9 @@ static int HelpCmd(int ac, char **av) { const struct ngcmd *cmd; - int k; + const char *s; + const int maxcol = 63; + int a, k, len; switch (ac) { case 0: @@ -580,13 +585,11 @@ HelpCmd(int ac, char **av) /* Show all commands */ printf("Available commands:\n"); for (k = 0; cmds[k] != NULL; k++) { - char *s, buf[100]; - cmd = cmds[k]; - snprintf(buf, sizeof(buf), "%s", cmd->cmd); - for (s = buf; *s != '\0' && !isspace(*s); s++); - *s = '\0'; - printf(" %-10s %s\n", buf, cmd->desc); + for (s = cmd->cmd; *s != '\0' && !isspace(*s); s++) + /* nothing */; + printf(" %.*s%*s %s\n", (int)(s - cmd->cmd), cmd->cmd, + (int)(10 - (s - cmd->cmd)), "", cmd->desc); } return (CMDRTN_OK); default: @@ -594,40 +597,29 @@ HelpCmd(int ac, char **av) if ((cmd = FindCommand(av[1])) != NULL) { printf("usage: %s\n", cmd->cmd); if (cmd->aliases[0] != NULL) { - int a = 0; - printf("Aliases: "); - while (1) { - printf("%s", cmd->aliases[a++]); - if (a == MAX_CMD_ALIAS - || cmd->aliases[a] == NULL) { - printf("\n"); - break; - } - printf(", "); + for (a = 0; a < MAX_CMD_ALIAS && + cmd->aliases[a] != NULL; a++) { + if (a > 0) + printf(", "); + printf("%s", cmd->aliases[a]); } + printf("\n"); } printf("Summary: %s\n", cmd->desc); - if (cmd->help != NULL) { - const char *s; - char buf[65]; - int tot, len, done; - - printf("Description:\n"); - for (s = cmd->help; *s != '\0'; s += len) { - while (isspace(*s)) - s++; - tot = snprintf(buf, - sizeof(buf), "%s", s); - len = strlen(buf); - done = len == tot; - if (!done) { - while (len > 0 - && !isspace(buf[len-1])) - buf[--len] = '\0'; - } - printf(" %s\n", buf); - } + if (cmd->help == NULL) + break; + printf("Description:\n"); + for (s = cmd->help; *s != '\0'; s += len) { + while (isspace(*s)) + s++; + /* advance to the column limit */ + for (len = 0; s[len] && len < maxcol; len++) + /* nothing */; + /* back up to previous interword space */ + while (len > 0 && s[len] && !isblank(s[len])) + len--; + printf(" %.*s\n", len, s); } } } @@ -649,34 +641,27 @@ QuitCmd(int ac __unused, char **av __unused) void DumpAscii(const u_char *buf, int len) { - char ch, sbuf[100]; int k, count; for (count = 0; count < len; count += DUMP_BYTES_PER_LINE) { - snprintf(sbuf, sizeof(sbuf), "%04x: ", count); + printf("%04x: ", count); for (k = 0; k < DUMP_BYTES_PER_LINE; k++) { if (count + k < len) { - snprintf(sbuf + strlen(sbuf), - sizeof(sbuf) - strlen(sbuf), - "%02x ", buf[count + k]); + printf("%02x ", buf[count + k]); } else { - snprintf(sbuf + strlen(sbuf), - sizeof(sbuf) - strlen(sbuf), " "); + printf(" "); } } - snprintf(sbuf + strlen(sbuf), sizeof(sbuf) - strlen(sbuf), " "); + printf(" "); for (k = 0; k < DUMP_BYTES_PER_LINE; k++) { if (count + k < len) { - ch = isprint(buf[count + k]) ? - buf[count + k] : '.'; - snprintf(sbuf + strlen(sbuf), - sizeof(sbuf) - strlen(sbuf), "%c", ch); + printf("%c", isprint(buf[count + k]) ? + buf[count + k] : '.'); } else { - snprintf(sbuf + strlen(sbuf), - sizeof(sbuf) - strlen(sbuf), " "); + printf(" "); } } - printf("%s\n", sbuf); + printf("\n"); } } diff --git a/usr.sbin/ngctl/mkpeer.c b/usr.sbin/ngctl/mkpeer.c index b16260a7cce1..5884c898a165 100644 --- a/usr.sbin/ngctl/mkpeer.c +++ b/usr.sbin/ngctl/mkpeer.c @@ -1,10 +1,9 @@ - /* * mkpeer.c * * Copyright (c) 1996-1999 Whistle Communications, Inc. * All rights reserved. - * + * * Subject to the following obligations and disclaimer of warranty, use and * redistribution of this software, in source or object code forms, with or * without modifications are expressly permitted by Whistle Communications; @@ -15,7 +14,7 @@ * Communications, Inc. trademarks, including the mark "WHISTLE * COMMUNICATIONS" on advertising, endorsements, or otherwise except as * such appears in the above copyright notice or in the software. - * + * * THIS SOFTWARE IS BEING PROVIDED BY WHISTLE COMMUNICATIONS "AS IS", AND * TO THE MAXIMUM EXTENT PERMITTED BY LAW, WHISTLE COMMUNICATIONS MAKES NO * REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, REGARDING THIS SOFTWARE, @@ -85,4 +84,3 @@ MkPeerCmd(int ac, char **av) } return (CMDRTN_OK); } - diff --git a/usr.sbin/ngctl/msg.c b/usr.sbin/ngctl/msg.c index 2cc733408380..3be10293e82b 100644 --- a/usr.sbin/ngctl/msg.c +++ b/usr.sbin/ngctl/msg.c @@ -1,10 +1,9 @@ - /* * msg.c * * Copyright (c) 1999 Whistle Communications, Inc. * All rights reserved. - * + * * Subject to the following obligations and disclaimer of warranty, use and * redistribution of this software, in source or object code forms, with or * without modifications are expressly permitted by Whistle Communications; @@ -15,7 +14,7 @@ * Communications, Inc. trademarks, including the mark "WHISTLE * COMMUNICATIONS" on advertising, endorsements, or otherwise except as * such appears in the above copyright notice or in the software. - * + * * THIS SOFTWARE IS BEING PROVIDED BY WHISTLE COMMUNICATIONS "AS IS", AND * TO THE MAXIMUM EXTENT PERMITTED BY LAW, WHISTLE COMMUNICATIONS MAKES NO * REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, REGARDING THIS SOFTWARE, @@ -37,9 +36,9 @@ * $Whistle: msg.c,v 1.2 1999/11/29 23:38:35 archie Exp $ */ -#include #include #include +#include #include #include #include @@ -64,6 +63,9 @@ const struct ngcmd msg_cmd = { static int MsgCmd(int ac, char **av) { + struct pollfd pfds[1] = { + { .fd = csock, .events = POLLIN }, + }; char *buf; char *path, *cmdstr; int i, len; @@ -95,22 +97,14 @@ MsgCmd(int ac, char **av) free(buf); /* See if a synchronous reply awaits */ - { - struct timeval tv; - fd_set rfds; - - FD_ZERO(&rfds); - FD_SET(csock, &rfds); - memset(&tv, 0, sizeof(tv)); - switch (select(csock + 1, &rfds, NULL, NULL, &tv)) { - case -1: - err(EX_OSERR, "select"); - case 0: - break; - default: - MsgRead(); - break; - } + switch (poll(pfds, 1, 0)) { + case -1: + err(EX_OSERR, "poll"); + case 0: + break; + default: + MsgRead(); + break; } /* Done */ @@ -135,8 +129,8 @@ MsgRead(void) /* Ask originating node to convert message to ASCII */ if (NgSendMsg(csock, path, NGM_GENERIC_COOKIE, - NGM_BINARY2ASCII, m, sizeof(*m) + m->header.arglen) < 0 - || NgAllocRecvMsg(csock, &m2, NULL) < 0) { + NGM_BINARY2ASCII, m, sizeof(*m) + m->header.arglen) < 0 || + NgAllocRecvMsg(csock, &m2, NULL) < 0) { printf("Rec'd %s %d from \"%s\":\n", (m->header.flags & NGF_RESP) != 0 ? "response" : "command", m->header.cmd, path); @@ -160,4 +154,3 @@ MsgRead(void) printf("No arguments\n"); free(m2); } - diff --git a/usr.sbin/ngctl/name.c b/usr.sbin/ngctl/name.c index 79ddcad2f0c7..56c2040c3961 100644 --- a/usr.sbin/ngctl/name.c +++ b/usr.sbin/ngctl/name.c @@ -1,10 +1,9 @@ - /* * name.c * * Copyright (c) 1996-1999 Whistle Communications, Inc. * All rights reserved. - * + * * Subject to the following obligations and disclaimer of warranty, use and * redistribution of this software, in source or object code forms, with or * without modifications are expressly permitted by Whistle Communications; @@ -15,7 +14,7 @@ * Communications, Inc. trademarks, including the mark "WHISTLE * COMMUNICATIONS" on advertising, endorsements, or otherwise except as * such appears in the above copyright notice or in the software. - * + * * THIS SOFTWARE IS BEING PROVIDED BY WHISTLE COMMUNICATIONS "AS IS", AND * TO THE MAXIMUM EXTENT PERMITTED BY LAW, WHISTLE COMMUNICATIONS MAKES NO * REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, REGARDING THIS SOFTWARE, @@ -76,4 +75,3 @@ NameCmd(int ac, char **av) } return (CMDRTN_OK); } - diff --git a/usr.sbin/ngctl/rmhook.c b/usr.sbin/ngctl/rmhook.c index 5591d39cb078..d8fbbec18579 100644 --- a/usr.sbin/ngctl/rmhook.c +++ b/usr.sbin/ngctl/rmhook.c @@ -1,10 +1,9 @@ - /* * rmhook.c * * Copyright (c) 1996-1999 Whistle Communications, Inc. * All rights reserved. - * + * * Subject to the following obligations and disclaimer of warranty, use and * redistribution of this software, in source or object code forms, with or * without modifications are expressly permitted by Whistle Communications; @@ -15,7 +14,7 @@ * Communications, Inc. trademarks, including the mark "WHISTLE * COMMUNICATIONS" on advertising, endorsements, or otherwise except as * such appears in the above copyright notice or in the software. - * + * * THIS SOFTWARE IS BEING PROVIDED BY WHISTLE COMMUNICATIONS "AS IS", AND * TO THE MAXIMUM EXTENT PERMITTED BY LAW, WHISTLE COMMUNICATIONS MAKES NO * REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, REGARDING THIS SOFTWARE, @@ -81,4 +80,3 @@ RmHookCmd(int ac, char **av) } return (CMDRTN_OK); } - diff --git a/usr.sbin/ngctl/show.c b/usr.sbin/ngctl/show.c index 35d1aa2e5192..3536a5c39ae4 100644 --- a/usr.sbin/ngctl/show.c +++ b/usr.sbin/ngctl/show.c @@ -1,10 +1,9 @@ - /* * show.c * * Copyright (c) 1996-1999 Whistle Communications, Inc. * All rights reserved. - * + * * Subject to the following obligations and disclaimer of warranty, use and * redistribution of this software, in source or object code forms, with or * without modifications are expressly permitted by Whistle Communications; @@ -15,7 +14,7 @@ * Communications, Inc. trademarks, including the mark "WHISTLE * COMMUNICATIONS" on advertising, endorsements, or otherwise except as * such appears in the above copyright notice or in the software. - * + * * THIS SOFTWARE IS BEING PROVIDED BY WHISTLE COMMUNICATIONS "AS IS", AND * TO THE MAXIMUM EXTENT PERMITTED BY LAW, WHISTLE COMMUNICATIONS MAKES NO * REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, REGARDING THIS SOFTWARE, @@ -67,13 +66,13 @@ ShowCmd(int ac, char **av) int ch, no_hooks = 0; /* Get options */ + optreset = 1; optind = 1; while ((ch = getopt(ac, av, "n")) != -1) { switch (ch) { case 'n': no_hooks = 1; break; - case '?': default: return (CMDRTN_USAGE); break; @@ -133,5 +132,3 @@ ShowCmd(int ac, char **av) free(resp); return (CMDRTN_OK); } - - diff --git a/usr.sbin/ngctl/shutdown.c b/usr.sbin/ngctl/shutdown.c index fd38b9dc152b..9e221d1b0ba5 100644 --- a/usr.sbin/ngctl/shutdown.c +++ b/usr.sbin/ngctl/shutdown.c @@ -1,10 +1,9 @@ - /* * shutdown.c * * Copyright (c) 1996-1999 Whistle Communications, Inc. * All rights reserved. - * + * * Subject to the following obligations and disclaimer of warranty, use and * redistribution of this software, in source or object code forms, with or * without modifications are expressly permitted by Whistle Communications; @@ -15,7 +14,7 @@ * Communications, Inc. trademarks, including the mark "WHISTLE * COMMUNICATIONS" on advertising, endorsements, or otherwise except as * such appears in the above copyright notice or in the software. - * + * * THIS SOFTWARE IS BEING PROVIDED BY WHISTLE COMMUNICATIONS "AS IS", AND * TO THE MAXIMUM EXTENT PERMITTED BY LAW, WHISTLE COMMUNICATIONS MAKES NO * REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, REGARDING THIS SOFTWARE, @@ -73,5 +72,3 @@ ShutdownCmd(int ac, char **av) } return (CMDRTN_OK); } - - diff --git a/usr.sbin/ngctl/status.c b/usr.sbin/ngctl/status.c index 10007255d551..3af258f00a7d 100644 --- a/usr.sbin/ngctl/status.c +++ b/usr.sbin/ngctl/status.c @@ -1,10 +1,9 @@ - /* * status.c * * Copyright (c) 1996-1999 Whistle Communications, Inc. * All rights reserved. - * + * * Subject to the following obligations and disclaimer of warranty, use and * redistribution of this software, in source or object code forms, with or * without modifications are expressly permitted by Whistle Communications; @@ -15,7 +14,7 @@ * Communications, Inc. trademarks, including the mark "WHISTLE * COMMUNICATIONS" on advertising, endorsements, or otherwise except as * such appears in the above copyright notice or in the software. - * + * * THIS SOFTWARE IS BEING PROVIDED BY WHISTLE COMMUNICATIONS "AS IS", AND * TO THE MAXIMUM EXTENT PERMITTED BY LAW, WHISTLE COMMUNICATIONS MAKES NO * REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, REGARDING THIS SOFTWARE, @@ -84,8 +83,8 @@ StatusCmd(int ac, char **av) return (CMDRTN_ERROR); } } else { - if (NgRecvMsg(csock, resp, sizeof(sbuf), NULL) < 0 - || (resp->header.flags & NGF_RESP) == 0) + if (NgRecvMsg(csock, resp, sizeof(sbuf), NULL) < 0 || + (resp->header.flags & NGF_RESP) == 0) nostat = 1; } @@ -96,4 +95,3 @@ StatusCmd(int ac, char **av) printf("Status for \"%s\":\n%s\n", path, status); return (CMDRTN_OK); } - diff --git a/usr.sbin/ngctl/types.c b/usr.sbin/ngctl/types.c index 555960a59c02..dbbb8c60c84d 100644 --- a/usr.sbin/ngctl/types.c +++ b/usr.sbin/ngctl/types.c @@ -1,10 +1,9 @@ - *** 64 LINES SKIPPED *** From nobody Tue Feb 17 23:57:59 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFxRC6rqBz6SJrS for ; Tue, 17 Feb 2026 23:57: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFxRC3mh8z4QJd for ; Tue, 17 Feb 2026 23:57:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771372679; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CX9rvOaGnZytfwETcSK2k0FIiqlJhZcQLvakQ9G+6Do=; b=kngKTrkyxOLepVPmWLTXHfIARLpt6tXfLOBSCTnPznvuekFWshp1zzyeAvFVhftfOObT6j QafjWAD8CLeTkx06mdbJRue9oKiECXJwsgnxJwrDhZoqJmC+04e1LbJjRO0xcL1NgY1v84 rhlVAGkeyFcxTmOX7LVdbN4yUDtFWLyq/oHG4x5kYr6p+M88MO2Fg6OEPk5imiVi4X1IwC LT4QVw9SbxOKEImByUOaUOHmh+HUeZ0cSnb3EE2OCwi4cHLpC8zbkMKsRQ5d9PbDhPqQKT UA/+nkkNCl8+pR2wYx9zvz6C71rctM63vu+VCM+8cggjQyXBZw1Y+Nd95TKWDg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771372679; a=rsa-sha256; cv=none; b=nIufvRIqkHPHbDHhFz0YKwytMRcwRxsKdlsiE1bfdDhks15Cl4oKpS3iPkbcS/4UOFCTpm NiCFU9S39vTZgsDkf6I5kBofbiQqhzNjxxWTORLGGcE2n7m0XQdPwXAp2qlLFMEIfYKYLH AR6tiMnz9WCYa1OZrlyZtDZTL/nNiWayEqAO/JBglqg2Ol1YMtPqOB7vqkIpARY7kXwuOI 5ZTx8yMU5vjhB0B+W+KRx+ySEnF3Qgxfp1hRNmPilnbvR217YjatL9wIcJY+4YkCyiEXN2 98SZoXqvVUOAlpz7m4TGQHS0k4oAPDb1rPjrthc6alb3ZIKHKS3KyrFwXW4SMA== 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=1771372679; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CX9rvOaGnZytfwETcSK2k0FIiqlJhZcQLvakQ9G+6Do=; b=uZT+eNjf4iNSrC0AmtWXrglWPLwmArfNNcdEsgEJFD6y/HmygOiNUlile3cN28fN59B9uX aWB18w6055zgVZFH2uYonS9u0H9wkMY7JqcLqLe6bpBHOAlVr3LSXxoEDyeyVwXKvvNGxB Imk2oRz96LHk7/vjcydlFXDPGTm+A63+IhJ60iz1edEwLfWeuy9WnelHLJZAPeTO5kEtds J+dlkVlxMJ3EqnR7+2zaRfkKASur2sX1TPe2mgH/kqL0eacC6n8XsJLxVFkWZmtZXchMAi PZVuVtjg9EZcPHz1XI0zUXHhBonkjXfq38ac6Go67rUt5W91U3+wVaRnvBRdwA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFxRC3L8FzXdL for ; Tue, 17 Feb 2026 23:57:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3baa0 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 17 Feb 2026 23:57:59 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: 221c09cab60a - stable/15 - ngctl: Check hook name length List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 221c09cab60a8257b41be9067f1712d77ba828d8 Auto-Submitted: auto-generated Date: Tue, 17 Feb 2026 23:57:59 +0000 Message-Id: <69950087.3baa0.55b65aed@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=221c09cab60a8257b41be9067f1712d77ba828d8 commit 221c09cab60a8257b41be9067f1712d77ba828d8 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-13 15:57:46 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-17 23:11:48 +0000 ngctl: Check hook name length Check the length of the hook name when copying it into the sockaddr. MFC after: 1 week Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D55258 (cherry picked from commit 585190dff436eeea3be97300e36c82559028d3dd) --- usr.sbin/ngctl/write.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/usr.sbin/ngctl/write.c b/usr.sbin/ngctl/write.c index 98bf213a2dad..b86533eca49c 100644 --- a/usr.sbin/ngctl/write.c +++ b/usr.sbin/ngctl/write.c @@ -34,10 +34,12 @@ #include #include +#include #include #include #include +#include #include #include "ngctl.h" @@ -62,6 +64,7 @@ WriteCmd(int ac, char **av) struct sockaddr_ng *sag = (struct sockaddr_ng *)sagbuf; u_char buf[BUF_SIZE]; const char *hook; + size_t hooklen; FILE *fp; u_int len; int byte; @@ -71,6 +74,14 @@ WriteCmd(int ac, char **av) if (ac < 3) return (CMDRTN_USAGE); hook = av[1]; + _Static_assert(sizeof(sagbuf) >= + offsetof(struct sockaddr_ng, sg_data) + NG_HOOKSIZ, + "sagbuf is too small for NG_HOOKSIZ"); + hooklen = strlcpy(sag->sg_data, hook, NG_HOOKSIZ); + if (hooklen >= NG_HOOKSIZ) { + warnx("hook name \"%s\" too long", hook); + return (CMDRTN_ERROR); + } /* Get data */ if (strcmp(av[2], "-f") == 0) { @@ -103,11 +114,10 @@ WriteCmd(int ac, char **av) } /* Send data */ - sag->sg_len = 3 + strlen(hook); + sag->sg_len = 3 + hooklen; sag->sg_family = AF_NETGRAPH; - strlcpy(sag->sg_data, hook, sizeof(sagbuf) - 2); - if (sendto(dsock, buf, len, - 0, (struct sockaddr *)sag, sag->sg_len) == -1) { + if (sendto(dsock, buf, len, 0, (struct sockaddr *)sag, + sag->sg_len) < 0) { warn("writing to hook \"%s\"", hook); return (CMDRTN_ERROR); } From nobody Tue Feb 17 23:58:00 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFxRF2YYbz6SK6v for ; Tue, 17 Feb 2026 23:58:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFxRF0Gsqz4Q15 for ; Tue, 17 Feb 2026 23:58:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771372681; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JTE4Yowto/YXMREu0eqiWiBYT9zI6ymIN2hQo2USuvw=; b=DZXsLZYn/zKhflO4aOmPACvJGahvOX5kp9ZwolQRVj9sZEWW/jRfFuKqzXz89vf5ouZ/68 Oc8hUbGRQXIxvhnxz+lOO5W+adLvPIHfD7FqDi2mtMa/imDCByFTN949E5/Vt6sXUBxxKL jWN9VP/PejTkn9su6pnLAgkFZT+u+iUXxMVsjkl3qI+u2r9HvhDSY74xqeeJQCL+UpFPxQ 1RL5rY/e+xk6k+E0ZoQqRV4o03icfq2LrHjb28ziba5mXs9+eUkSlyEjsye7J7b7uaxm/5 hUrLORN2eZmrEgIzxWGVcQzTMqwHaTKr+1wPwwESTsmEdppIsk7K2bn8g+gkhg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771372681; a=rsa-sha256; cv=none; b=Jw4Lz7VBHBEeY/jSLl8WlK6NMAi+FNr9gzwOhuMOreaS49Z/k1UdRDFIUD6i1I2DsVQyPE kWjhGX8UhC17FVarROBaRPbGWCN2FR/kgCe1nFtTMpmPdqftDA8R8FUnYqgAltX4FSaLM3 M6WaQQjjpdyfmYSipedtEn6mTE2T1RI1Idz10xvOcTgbyo0akwoqf6mxk0iuavSXoO1Gfr vGF13kINqK42ijepHafiViN8RAddk1HRS4IQ42mSRJZ7dPUDvNUJGuwsuo5E1nGgzxQf5R Vq0pzBLvdyUUZm98eugjHrObrh0DuTcU+OY/cgQU4a94GHXI62apiInTmlTu8A== 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=1771372681; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=JTE4Yowto/YXMREu0eqiWiBYT9zI6ymIN2hQo2USuvw=; b=JVN7F0D0+zqBDtXEjitFgiIFUUWDxqrFfLLZmuAqF0WkFpnzDtTDRwd0nP1gM/RpEuiWCA qrJ8FxSFAdlu8Rwh0F+6FjGeL5M3jVFqtM3TXXOK/OJ8ibiQZQT6Yla4K+nZh1RVAga0od U7WsKBKImD+oGlimHsce0OW8NPAZDT1kRp3AfxXLo8euVl8R+spdfAtxbsS1gj8Uc57cAe 3UrkdR+a4fASnn0ZuiXp3B+4hASQ5XgEoXRRiCYP9SEuBYAbg7rRQMzmQysmAX3rZqrCqn 3GR8ZFbPf1M0xaQlpJ3vY27kwlEwwsnAB5VctOdr2C8/D7S7O7m1LuBhBfp3bw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFxRD3lq4zXW0 for ; Tue, 17 Feb 2026 23:58:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3bda8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 17 Feb 2026 23:58:00 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: 669347f67a07 - stable/15 - ngctl: Fix buffer overflow in config command List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 669347f67a07db17a8b1a748cbc05e859d8095cd Auto-Submitted: auto-generated Date: Tue, 17 Feb 2026 23:58:00 +0000 Message-Id: <69950088.3bda8.34db282f@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=669347f67a07db17a8b1a748cbc05e859d8095cd commit 669347f67a07db17a8b1a748cbc05e859d8095cd Author: Dag-Erling Smørgrav AuthorDate: 2026-02-13 15:57:50 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-17 23:11:48 +0000 ngctl: Fix buffer overflow in config command Keep track of our buffer length when assembling the argument list. PR: 293075 MFC after: 1 week Reviewed by: zlei, markj Differential Revision: https://reviews.freebsd.org/D55259 (cherry picked from commit 59906a163e474c8d00bdebe226c4d47332b91bad) --- usr.sbin/ngctl/config.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/usr.sbin/ngctl/config.c b/usr.sbin/ngctl/config.c index 25cd841494d1..0c9096738efa 100644 --- a/usr.sbin/ngctl/config.c +++ b/usr.sbin/ngctl/config.c @@ -62,7 +62,7 @@ ConfigCmd(int ac, char **av) struct ng_mesg *const resp = (struct ng_mesg *) sbuf; char *const status = (char *) resp->data; char *path; - char buf[NG_TEXTRESPONSE]; + char buf[NG_TEXTRESPONSE], *pos, *end; int nostat = 0, i; /* Get arguments */ @@ -70,20 +70,26 @@ ConfigCmd(int ac, char **av) return (CMDRTN_USAGE); path = av[1]; - *buf = '\0'; + pos = buf; + end = buf + sizeof(buf); for (i = 2; i < ac; i++) { - if (i != 2) - strcat(buf, " "); - strcat(buf, av[i]); + if (i > 2) { + if (pos == end) + return (CMDRTN_USAGE); + *pos++ = ' '; + } + if ((pos += strlcpy(pos, av[i], end - pos)) >= end) + return (CMDRTN_USAGE); } - + *pos = '\0'; + /* Get node config summary */ if (*buf != '\0') i = NgSendMsg(csock, path, NGM_GENERIC_COOKIE, - NGM_TEXT_CONFIG, buf, strlen(buf) + 1); + NGM_TEXT_CONFIG, buf, pos - buf + 1); else i = NgSendMsg(csock, path, NGM_GENERIC_COOKIE, - NGM_TEXT_CONFIG, NULL, 0); + NGM_TEXT_CONFIG, NULL, 0); if (i < 0) { switch (errno) { case EINVAL: From nobody Wed Feb 18 00:08:59 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFxgv6V7Wz6SKlf for ; Wed, 18 Feb 2026 00:08: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFxgv4JrQz3D1w for ; Wed, 18 Feb 2026 00:08:59 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771373339; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HDIvu5RLhR+kqHS9hYSWbzviubhYp2/0ezdNv8GTloo=; b=LkFc3w7DvdPcHskFdfaq4R+IUZaguzufFe6B+bCUaKlZZf6ZsU/6GCEOmvFXJ7xWsNVQsd DddYCpSIyOdztyMoVJqBKgHeZnBrABfKLN0/WkVLko4rWceciw2XpYRUL3OVHT3IXwgOzo +RuzlZY2PFodOCvLjZwhEampKGLapnwK0SxoNnYK7RSKAtuLgghMa1q2gnBZi2NpCBeGzp GM0wSM7fUeziMNFZp9n++LymV04T3zuLpcUksikjud0ZtTGWaVsn4IG4+mZczmTX2zTHfB pIdOD2AZEzTxKa34SkxzaukK0tsJd2/gZmmkNSoawQuBEn+7xSwS4qBhxKwf6g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771373339; a=rsa-sha256; cv=none; b=Q4ZCr0ar6bGyx+gh2aYBeVO2xIX50BP5mhhFPR4tPmedjilqlNnyCneIdhsaJgiWXF9P86 7xVN3sq+pdEjvXiWB6VNMZGGBOkoOhBvAhqQnRcYm9xSQ6WK6oZ0epL1uh8v/SgxRmXcOE L8OMvKJWxdhoqiqG0TFR4GlnVFvzX7b2pa1U48Mb3HtYQd5695A9leXrQjCrCo1svjCloh 71Wjl8Tf2U3a3AWhGlQmXxml5q0EvG4vfUmpo5LpULbOEbePLzP+wvHUota+jiNFpVruEd S2cquwXVjU4Bq4lZuItdvrwv53QVoBBm/M6mSdKO9WTy6zQ+y8ME3UKF1vuO2w== 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=1771373339; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HDIvu5RLhR+kqHS9hYSWbzviubhYp2/0ezdNv8GTloo=; b=N3R4nesmXCAnGMAzjFo81KUjAKLPOqI5r7ZHgFYARii0luTb2vQ2H98/7sqXGuwzhKSDpv b5LyjhjOO8fo+sFjVN9VcPxzIEQpql46FyiQWZEx05A6mHFJCZOj3m8f/BCGCX8QqZfcT1 SPDxfZW0iAovnYfd4sNVaCB6MutzcE7rOpBJT4Q1vY9172Cd5vnNhQgElSVDPz0cPN8FHF ZMW4ohmQoGPy/OKLsqXi/dEtH+DEWZAX/ml2SsDwRvhQOYO2GnC6I7ffvGG8EV/eMUSX30 PacpPRw1NnKGCr8kqsBJR9uB0mQ7u123df+QaPJfO99VCmRH5ao7vAakLCmCWw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFxgv2W9HzYMY for ; Wed, 18 Feb 2026 00:08:59 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3c4a4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 18 Feb 2026 00:08:59 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: 71c0f48ab19f - stable/14 - ngctl: Check hook name length List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 71c0f48ab19fbac3d93e29d8964db2f215ddf722 Auto-Submitted: auto-generated Date: Wed, 18 Feb 2026 00:08:59 +0000 Message-Id: <6995031b.3c4a4.69963026@gitrepo.freebsd.org> The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=71c0f48ab19fbac3d93e29d8964db2f215ddf722 commit 71c0f48ab19fbac3d93e29d8964db2f215ddf722 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-13 15:57:46 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-17 23:12:02 +0000 ngctl: Check hook name length Check the length of the hook name when copying it into the sockaddr. MFC after: 1 week Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D55258 (cherry picked from commit 585190dff436eeea3be97300e36c82559028d3dd) --- usr.sbin/ngctl/write.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/usr.sbin/ngctl/write.c b/usr.sbin/ngctl/write.c index 1e86963fb39c..7ee8dcfaa241 100644 --- a/usr.sbin/ngctl/write.c +++ b/usr.sbin/ngctl/write.c @@ -35,10 +35,12 @@ #include #include +#include #include #include #include +#include #include #include "ngctl.h" @@ -63,6 +65,7 @@ WriteCmd(int ac, char **av) struct sockaddr_ng *sag = (struct sockaddr_ng *)sagbuf; u_char buf[BUF_SIZE]; const char *hook; + size_t hooklen; FILE *fp; u_int len; int byte; @@ -72,6 +75,14 @@ WriteCmd(int ac, char **av) if (ac < 3) return (CMDRTN_USAGE); hook = av[1]; + _Static_assert(sizeof(sagbuf) >= + offsetof(struct sockaddr_ng, sg_data) + NG_HOOKSIZ, + "sagbuf is too small for NG_HOOKSIZ"); + hooklen = strlcpy(sag->sg_data, hook, NG_HOOKSIZ); + if (hooklen >= NG_HOOKSIZ) { + warnx("hook name \"%s\" too long", hook); + return (CMDRTN_ERROR); + } /* Get data */ if (strcmp(av[2], "-f") == 0) { @@ -104,11 +115,10 @@ WriteCmd(int ac, char **av) } /* Send data */ - sag->sg_len = 3 + strlen(hook); + sag->sg_len = 3 + hooklen; sag->sg_family = AF_NETGRAPH; - strlcpy(sag->sg_data, hook, sizeof(sagbuf) - 2); - if (sendto(dsock, buf, len, - 0, (struct sockaddr *)sag, sag->sg_len) == -1) { + if (sendto(dsock, buf, len, 0, (struct sockaddr *)sag, + sag->sg_len) < 0) { warn("writing to hook \"%s\"", hook); return (CMDRTN_ERROR); } From nobody Wed Feb 18 00:09:00 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFxgx0CYmz6SKjK for ; Wed, 18 Feb 2026 00:09: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFxgw3RwCz3D1x for ; Wed, 18 Feb 2026 00:09:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771373340; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hVcA9u/Ql6E8k1tYoLmLocDXMaPlgLGyC3dIHl3jip8=; b=sRly78WTTqSUceg0Fe9PZwfTW1fa5HfZ0u0BABeNjBDMn7ROv99VjKOOI7iJm1uC8Mi0aT Xcisj9RqWZTDmsPiUu+V0LcgYvu26Kwt4MeTPfSMsDMobBOJOyO/VEjH8vg08Wq+nZo5EA CR9WJBg+zbLKSrtseGmJjMLNprXyxERTRSmXYdPzNCr3dOIBB665UUlQFwRjjv2qKzQW/O 8RqRP+qYMUbgcbZUZuH6e/lehR/Pvl1yMCT9dfG3t3fCJ+9WPsnA9B1KVrBINnQP+RaiHL 68/vXbAW5JZ+KU1bXNXIiM4RLnVSs9bMJ9V1dY9U9mWh3lFhu+QJHWmUYTvfrw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771373340; a=rsa-sha256; cv=none; b=wm30JXNn68KxD8GLv3dIhcpNwCuwxUrKpFatsDxz6AfDC2KllHvVI+9o6EDD6BxIHyyjIu hYYWYf18Lio/K7TnW5gAVRnmesAMwVO7Rgwh/LMmfiRY8+E5vxvDd3nVky6qrTPh1RmnpF NDFqCYAzss7cBJJOZwSmD6JYBrQI7/uYoYX838CEqQthIVo/dWYsWZyBPvRaJSmTryOdEl 86BXIeMtpL9z2trp+NRe9SigFTuvgC+0s9QoJZN9JFQURlezl7L04MmYz7RKJxqe5VIfZ3 +yZ9vhFVj/d+Mll4eDW48mDl/Clp0Cg0pmi0au89fI4fMz6RV07PHn0bzp1q2w== 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=1771373340; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hVcA9u/Ql6E8k1tYoLmLocDXMaPlgLGyC3dIHl3jip8=; b=WgC+1zns9F9RxFFcgwO+1Kdk7GxTr1e93DTEh+5N1xyqOMkmEeL9arTNux7hqkJCnvVS2r yZ34EuP1y5SQr5Vm9yvlx9DixNQU4WE2f0NvvkV8wBXDBvAc54EUA39PpbGSirs3Q0x1vf W/vq9rGTmTeBRfi1+BdVabKzyAHQ4kmkAGMFoJvk0c3aqxdVYf/vANR//3P02f4P/cuPGn bz50yN8SqkVbo/nD4MxhNhsuXoeNAPTLN0j3gvXhHzaZ9ylL/Z4WWt3iiiYE8Bqz0Edxrm vO8P87i5EA53M++J9uxOs+WcUh2O57nf5r1YawKcuNMBi9rvA4IiBxaWK8v9aA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFxgw33jbzYND for ; Wed, 18 Feb 2026 00:09:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3c820 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 18 Feb 2026 00:09:00 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: e5bf728058da - stable/14 - ngctl: Fix buffer overflow in config command List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: e5bf728058da2b9cdc056e49bd82b57310588b3e Auto-Submitted: auto-generated Date: Wed, 18 Feb 2026 00:09:00 +0000 Message-Id: <6995031c.3c820.325e0566@gitrepo.freebsd.org> The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=e5bf728058da2b9cdc056e49bd82b57310588b3e commit e5bf728058da2b9cdc056e49bd82b57310588b3e Author: Dag-Erling Smørgrav AuthorDate: 2026-02-13 15:57:50 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-17 23:12:02 +0000 ngctl: Fix buffer overflow in config command Keep track of our buffer length when assembling the argument list. PR: 293075 MFC after: 1 week Reviewed by: zlei, markj Differential Revision: https://reviews.freebsd.org/D55259 (cherry picked from commit 59906a163e474c8d00bdebe226c4d47332b91bad) --- usr.sbin/ngctl/config.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/usr.sbin/ngctl/config.c b/usr.sbin/ngctl/config.c index 261bc950f570..611975ef5b10 100644 --- a/usr.sbin/ngctl/config.c +++ b/usr.sbin/ngctl/config.c @@ -62,7 +62,7 @@ ConfigCmd(int ac, char **av) struct ng_mesg *const resp = (struct ng_mesg *) sbuf; char *const status = (char *) resp->data; char *path; - char buf[NG_TEXTRESPONSE]; + char buf[NG_TEXTRESPONSE], *pos, *end; int nostat = 0, i; /* Get arguments */ @@ -70,20 +70,26 @@ ConfigCmd(int ac, char **av) return (CMDRTN_USAGE); path = av[1]; - *buf = '\0'; + pos = buf; + end = buf + sizeof(buf); for (i = 2; i < ac; i++) { - if (i != 2) - strcat(buf, " "); - strcat(buf, av[i]); + if (i > 2) { + if (pos == end) + return (CMDRTN_USAGE); + *pos++ = ' '; + } + if ((pos += strlcpy(pos, av[i], end - pos)) >= end) + return (CMDRTN_USAGE); } - + *pos = '\0'; + /* Get node config summary */ if (*buf != '\0') i = NgSendMsg(csock, path, NGM_GENERIC_COOKIE, - NGM_TEXT_CONFIG, buf, strlen(buf) + 1); + NGM_TEXT_CONFIG, buf, pos - buf + 1); else i = NgSendMsg(csock, path, NGM_GENERIC_COOKIE, - NGM_TEXT_CONFIG, NULL, 0); + NGM_TEXT_CONFIG, NULL, 0); if (i < 0) { switch (errno) { case EINVAL: From nobody Wed Feb 18 00:15:14 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFxq64CvBz6SL2q for ; Wed, 18 Feb 2026 00:15: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFxq618SFz3FNC for ; Wed, 18 Feb 2026 00:15:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771373714; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lOZ5dg44nUdhATWxcwtiyOZJUc7wkQ9en2YpDTnRmbU=; b=L+4vwVwjjuPRrEkk61ZWWWY5DJR7KI+Ht4nVGB5rorbgMAr1maot+ArJpLzHPt74m38Y5r iNf1oujxIlK5pP1qxt73vhD0zQtGWg+9IbP+szOta5Bs3mwFf4kTJ+QFfTB6wOnT5YiQlZ x09elZ8C0mXTCBCPcT+UZ1RYx5/SOoEMMA0oR+odwMHM9ARRh/UEpV6ymmBatCPPHpGs08 UYNmOZx/I8PufvvfB4F9rx/JYbY/JsmvhrPggIPImNhQlv307YopDcLrzlbvRYsEEvqnft V7Tb3DIcBIO0ESgrMjE7TZLS7n8l4ZNBa1YzMbTql3od0MdCJCcTX//2za4IWQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771373714; a=rsa-sha256; cv=none; b=Ve6CGsVGw0H763d10l2L8iSkcPSAgB1JlBSkGAH0PMcDeH4KpdBvz9pDOTop1Pjl/mYvNL hZveyNAHR0Ub1WkxPxfxXKVbiAjjsUC/pQHj2xaZsO0TFka3cwLIteun+0GUgT1aYlHRXD zsw3fQrhRg7RR7TOWzv5XTolaNMJnfQcaMX6YK+VzJBbXHV8GmpwKEij1GOy4/jddbBcnU qBZSc6E4/73/OWQwj2ojdCxLmxzsjG3xfbHDEEeAxSZQaW56rQn8YSlc5rsUri3fJfxFWm PRNhhb/LdGD0E0yK4oH3tv2TvWnK2tq3XG48f+okKdu2Ax0ZFMYUHUyfarkiog== 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=1771373714; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=lOZ5dg44nUdhATWxcwtiyOZJUc7wkQ9en2YpDTnRmbU=; b=hGUxnUz1C/OvjLz6qCEjqJivqszonjQy8cDavtNbHpOEwyuwFOJZatV53I5bHAOvaQGCBQ ESO/zHvFKTyvSSKEKE9vm09AmgXBYgCfRdfFiLj66PvwEzqzqovPdaF8vIZIITbUevrDpU ckM/5Q1zkojgsG2p3KXU4gSK26UEq+2yvcxcFZNeRzVMTgmhxCUB70a9S0K0OU8K4uERDv zt/O+5WudC1+2iNNltj+KpfZiSnTEq7xbf46fDAWvDeGdkOIBX0wjqxX8s7s1jpaGGyNjo UE0D3iVpqDUG8rmgZt05yM2iMToxofjTn4potIorUNSp2hZxluDQLCF3vhnG3g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFxq60lnWzXjf for ; Wed, 18 Feb 2026 00:15:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3d5d4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 18 Feb 2026 00:15:14 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: cff16d69d751 - stable/13 - ngctl: Check hook name length List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: cff16d69d75151e280a83695f52db608bab51a49 Auto-Submitted: auto-generated Date: Wed, 18 Feb 2026 00:15:14 +0000 Message-Id: <69950492.3d5d4.43402850@gitrepo.freebsd.org> The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=cff16d69d75151e280a83695f52db608bab51a49 commit cff16d69d75151e280a83695f52db608bab51a49 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-13 15:57:46 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-17 23:12:13 +0000 ngctl: Check hook name length Check the length of the hook name when copying it into the sockaddr. MFC after: 1 week Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D55258 (cherry picked from commit 585190dff436eeea3be97300e36c82559028d3dd) --- usr.sbin/ngctl/write.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/usr.sbin/ngctl/write.c b/usr.sbin/ngctl/write.c index 1e86963fb39c..7ee8dcfaa241 100644 --- a/usr.sbin/ngctl/write.c +++ b/usr.sbin/ngctl/write.c @@ -35,10 +35,12 @@ #include #include +#include #include #include #include +#include #include #include "ngctl.h" @@ -63,6 +65,7 @@ WriteCmd(int ac, char **av) struct sockaddr_ng *sag = (struct sockaddr_ng *)sagbuf; u_char buf[BUF_SIZE]; const char *hook; + size_t hooklen; FILE *fp; u_int len; int byte; @@ -72,6 +75,14 @@ WriteCmd(int ac, char **av) if (ac < 3) return (CMDRTN_USAGE); hook = av[1]; + _Static_assert(sizeof(sagbuf) >= + offsetof(struct sockaddr_ng, sg_data) + NG_HOOKSIZ, + "sagbuf is too small for NG_HOOKSIZ"); + hooklen = strlcpy(sag->sg_data, hook, NG_HOOKSIZ); + if (hooklen >= NG_HOOKSIZ) { + warnx("hook name \"%s\" too long", hook); + return (CMDRTN_ERROR); + } /* Get data */ if (strcmp(av[2], "-f") == 0) { @@ -104,11 +115,10 @@ WriteCmd(int ac, char **av) } /* Send data */ - sag->sg_len = 3 + strlen(hook); + sag->sg_len = 3 + hooklen; sag->sg_family = AF_NETGRAPH; - strlcpy(sag->sg_data, hook, sizeof(sagbuf) - 2); - if (sendto(dsock, buf, len, - 0, (struct sockaddr *)sag, sag->sg_len) == -1) { + if (sendto(dsock, buf, len, 0, (struct sockaddr *)sag, + sag->sg_len) < 0) { warn("writing to hook \"%s\"", hook); return (CMDRTN_ERROR); } From nobody Wed Feb 18 00:15:15 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFxq74ylHz6SLDn for ; Wed, 18 Feb 2026 00:15: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFxq726y4z3FTJ for ; Wed, 18 Feb 2026 00:15:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771373715; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nI64rqiT3LfnTVhLHlkFTfXnchaII4woPeVdwQB99ko=; b=BxI6vm2QaMZQHlMgGc/tdazP3I8fbx9VBXAQYmKXlYUzb7nEkCAJ7sKcoSwP5rkjurIgs4 SMVHpEqybVqG4x9Jvo9Z704ajs/ZBONqTdZJWhkoM3UqNTL1/Sv9uGIf7vRmpUk7If5tMb REzhbVwJjUJBO1fZ7TQa7m0JVd5Ca1lc5kJvVnOKk3CuHpvMElc08ddhknaXmaEf3hK6Pr VtpLNDUqheriE0RF/rKTH68If/PYErGCCZIrDhH/rxQCcE6+U8wRfnpUO2cXbOWpp7wC/2 uDBiLUY5cF+kuHL2fAeladjZ2Uub/62M9a1wfVTeSIdsxF45oR+DlYeyvv0jKQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771373715; a=rsa-sha256; cv=none; b=cv8csqxLgxjTyBFt5Pj/2j0a7OIt2dPvkBBEtIq9OaH9O4pvaedX43/EjtaMh5Av/+wbcK aTr5eExc/fBaOIE1lr4DA8Ue3Zu2KQ2uxY1+aUi/uf3IEl9xC22220VLWww8VRv17OZHNn X6H4jFcLK0+gSdg2EnJTGl5Z3PRXr9Skd3qgTHvsiHYKGGclVk9+l3/bNyv+q/HKko0X6/ OMbWt/Tb8nwX73xL8EyEYSSfWrB5yaJrpt6s41fxSshZD2XB7n3YBUVAlmT9tAr88UgLHJ Q1MJvdORZCoeeHLdrIiiSWIonewpQqQfNYWzmP53xVOST+RqzCk9eqG2KxhHiQ== 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=1771373715; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nI64rqiT3LfnTVhLHlkFTfXnchaII4woPeVdwQB99ko=; b=RrZiZIYMZFAHnpQ4AKghKFmNj1HwqlZpAZ00BMWdr+E5F5UlvMYw/EG+qvnALZ/7uZEB42 q4T81re3NPzFU6K+Emg1z8BPkJ9sntSBqR230tYb2rZmIiOGEiBJKwSpFCqH0tvlB+3FZF MaP1KovC/n7ZAkU1BIG+Hf+rs6PP6zCG+x0H51cYvFkQghAPS2N3RGiX2VbnVdSs/DsNnX AbCJbW5apfqNY96k8bqZ4U4ShcgrxRzOeAb+NpucYIwJxFvdLfg6sveSw/L5hjXR3CNgLY bQBkGyEm+3s4y8VKJgyYcqkVeRl1bAcmaluGDW1Wx32wpmYUm6Ntuy5A+P/3zg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFxq71fBjzYrd for ; Wed, 18 Feb 2026 00:15:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3dfc2 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 18 Feb 2026 00:15:15 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: 2b11bbd790ac - stable/13 - ngctl: Fix buffer overflow in config command List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 2b11bbd790aca47bfd994863b03af7c7b4523e15 Auto-Submitted: auto-generated Date: Wed, 18 Feb 2026 00:15:15 +0000 Message-Id: <69950493.3dfc2.6fbdc410@gitrepo.freebsd.org> The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=2b11bbd790aca47bfd994863b03af7c7b4523e15 commit 2b11bbd790aca47bfd994863b03af7c7b4523e15 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-13 15:57:50 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-17 23:12:13 +0000 ngctl: Fix buffer overflow in config command Keep track of our buffer length when assembling the argument list. PR: 293075 MFC after: 1 week Reviewed by: zlei, markj Differential Revision: https://reviews.freebsd.org/D55259 (cherry picked from commit 59906a163e474c8d00bdebe226c4d47332b91bad) --- usr.sbin/ngctl/config.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/usr.sbin/ngctl/config.c b/usr.sbin/ngctl/config.c index 261bc950f570..611975ef5b10 100644 --- a/usr.sbin/ngctl/config.c +++ b/usr.sbin/ngctl/config.c @@ -62,7 +62,7 @@ ConfigCmd(int ac, char **av) struct ng_mesg *const resp = (struct ng_mesg *) sbuf; char *const status = (char *) resp->data; char *path; - char buf[NG_TEXTRESPONSE]; + char buf[NG_TEXTRESPONSE], *pos, *end; int nostat = 0, i; /* Get arguments */ @@ -70,20 +70,26 @@ ConfigCmd(int ac, char **av) return (CMDRTN_USAGE); path = av[1]; - *buf = '\0'; + pos = buf; + end = buf + sizeof(buf); for (i = 2; i < ac; i++) { - if (i != 2) - strcat(buf, " "); - strcat(buf, av[i]); + if (i > 2) { + if (pos == end) + return (CMDRTN_USAGE); + *pos++ = ' '; + } + if ((pos += strlcpy(pos, av[i], end - pos)) >= end) + return (CMDRTN_USAGE); } - + *pos = '\0'; + /* Get node config summary */ if (*buf != '\0') i = NgSendMsg(csock, path, NGM_GENERIC_COOKIE, - NGM_TEXT_CONFIG, buf, strlen(buf) + 1); + NGM_TEXT_CONFIG, buf, pos - buf + 1); else i = NgSendMsg(csock, path, NGM_GENERIC_COOKIE, - NGM_TEXT_CONFIG, NULL, 0); + NGM_TEXT_CONFIG, NULL, 0); if (i < 0) { switch (errno) { case EINVAL: From nobody Wed Feb 18 00:25:52 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFy3N5jxmz6SM5s for ; Wed, 18 Feb 2026 00:25: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFy3N4tcGz3GZF for ; Wed, 18 Feb 2026 00:25:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771374352; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zCzFe0uKo1q3Fuu0GOa/nbZEb5W8QRLU0rAV88FIDl0=; b=feFWiZgmZ6M7ObtaJ8mhr4yLPo3HZP+UnRoF9+8pT88yxGjcnXJM1SMNC+bC9Q8JIU0nR9 3udlsSF3XlqawIT/TX15xgSS9jzIXOC/8+kPcMdXmC6LY3wQPjgDWGCUi7mW/X8bpTg6SF lkYmiRJNsyG33crAg+rdgseql+tBF78u98/DW6v3ETMfdxXsRn+IaPQ2wtWS1fL9wBpI3b EYWHOoc1fIC7i4AOtl92BhOlEAN24uwrVu31f1PzHeWAWRi8n6w5PT0a1VfIBFHOC2kA1X RAK8mHmDVHL/TrDAVaBIacsKxw1zGTXISjO8gocDMYdRhCK2rvV2Hj11bf1KTg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771374352; a=rsa-sha256; cv=none; b=BXDSVXZAXU+VI96Jc5j7QpaiJpEM41UDvr/9eUEEPljIWhIcTWbsaVhreDbFulomuwm8xq K144v3RlZSIXBWPja4H294rbAiMy+zFGafKjrbH5slrE+zkZqrRBa3ydGKsZovYNghqVhE NEoQLtTC2JFZCFy3YdQxKDLPVRaRtnM/k5clal9Os3nHzHg36G6p9XBCtiPQ/IOh5YRlnJ ArE7Gj+4cpUBSh05GJrYi9H8BBmmef/YZabSH0/RkWo0Kos3bYpvETPojfGJxVUsthdCMp RzhgsY3izLzhJqYfPTni6Y5GVOKqUhDUCbV33Tg+qco/JJbY+KrXc8rmabD/Nw== 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=1771374352; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zCzFe0uKo1q3Fuu0GOa/nbZEb5W8QRLU0rAV88FIDl0=; b=Xd/eylN8PNxSevpXaUEKiNxnmI/4Iv3Ug4+xySjHZ8iA5XmvbIh+XvMf7fH8hwMmDBS9Jz jrrXBIcmO99pVybV3bKEY18vKKGqZ51YJkK5N1FABpPVrgGmQ/ad4/a5EFhInrG4aoH9Wl UcWNMx/5+sugMuU4iAnWxam+YsMoga1jnFhTWUVyjN6w7bJVgEz0g1HS3vv/VqUKF5JnVa uGihDlM6287ZCxduggB43eGVR7vFc6PoljPXJmAPPNRBsDH8aknxhTOfWJO6vC08uArjwz BZ2BYnU9MABC/aivRkJ92US2oRP3kF44Q0nPeH/5Z4QzNmHB22y5eQBEsvYeTA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFy3N4Hd3zY64 for ; Wed, 18 Feb 2026 00:25:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3dfeb by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 18 Feb 2026 00:25:52 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: 6458b1a2fde1 - stable/15 - nvme: Use __diagused instead of __unused List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 6458b1a2fde14c6f58377d58231ccd490359a232 Auto-Submitted: auto-generated Date: Wed, 18 Feb 2026 00:25:52 +0000 Message-Id: <69950710.3dfeb.51e99133@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=6458b1a2fde14c6f58377d58231ccd490359a232 commit 6458b1a2fde14c6f58377d58231ccd490359a232 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-05 16:09:30 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-18 00:15:34 +0000 nvme: Use __diagused instead of __unused Reviewed by: imp Sponsored by: Klara, Inc. Sponsored by: NetApp, Inc. (cherry picked from commit 1c09ae2be059da0b945a2543ac7dd0bd5198d0e3) --- sys/dev/nvme/nvme_qpair.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/dev/nvme/nvme_qpair.c b/sys/dev/nvme/nvme_qpair.c index 4f2c44da3b4f..f7dc231d74df 100644 --- a/sys/dev/nvme/nvme_qpair.c +++ b/sys/dev/nvme/nvme_qpair.c @@ -1209,7 +1209,7 @@ nvme_qpair_submit_request(struct nvme_qpair *qpair, struct nvme_request *req) static void nvme_qpair_enable(struct nvme_qpair *qpair) { - bool is_admin __unused = qpair == &qpair->ctrlr->adminq; + bool is_admin __diagused = qpair == &qpair->ctrlr->adminq; if (mtx_initialized(&qpair->recovery)) mtx_assert(&qpair->recovery, MA_OWNED); From nobody Wed Feb 18 00:25:53 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFy3P704lz6SM5v for ; Wed, 18 Feb 2026 00:25: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFy3P5mZdz3GGv for ; Wed, 18 Feb 2026 00:25:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771374353; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KxIXw500i+fuZjYbmk/NcQIHROfQN4uu8PloojIMR5g=; b=JqzvGereCSystQqeXTUtStEPnUND9k/kVbjjpXPR4wFa53h5oB+t/FFoXuxmgYOi1oQpoq PQ/UQWkuHKzc3KictIFo0OmSWppCTC37E/j5L+0LBSLk4wbg0AC5Zf5DKzM+EhdaEs0oOW DiSr3rLRzclwPgtNTRbmlhgjb2X/ptlSyzlc67hfEn7hOkShSz6y5OPdYJ8zv2tPqUhTYC slsPKALWD+4ATxBOPklDrCmhyqkR5D2FpESOOT3y2oI7dEHNwQGb/Dhu1FFbf+E4ehgUi7 FaS5ED3yTp7k8VK22VxQgIDqvwboRSFnxasCdyE9OvwJMvSWx+oQYyS7fYTbTA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771374353; a=rsa-sha256; cv=none; b=hplRKONL3EEIvm923nrigAtnfVyzgQIiC1fTE6pHQj1HzJAo47WTYFo5D2yiIwjz8A8lGN ucz9Ns7gkeoPjV+Xc5WeK/NNJT/0v7vV11IZH9w21qsxYgKAxx5tJP/H92788ZS3o6L1xb bGIWTEaGYgWjXiYmCckE/V/UGzYoPBdXkdWQE9vOX89Y3iA6CtR463tf/RMf7EYA1odXLO IGB3GQVo+m91mnYG3VMcYToV3HAyb6LnUX8gPjyO1mI6HC3Vgql66iRm5eXyB+/sHGU2Se WXNRiuv7JvJ4fW+IFtNIH++qGL3/9krAFkPA4FfZ76C06MP7S0jYsNnmiIFsOQ== 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=1771374353; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KxIXw500i+fuZjYbmk/NcQIHROfQN4uu8PloojIMR5g=; b=HHTj9uQf9jHC+vI5DTRMzOHBD8iCCUxNWGZ3/jOYQ4exZUpwjHxKiYBJwVBrAVrgAuB+MI SiT0Txay0bySQo3QwhlGRqQOsx2mtY2Oa5I+oBTfuWnlmpWYD3VP3cUkJSGvLNe7OgM3pA jNMRXr1cpSr7NpNPn571w87PQKI99ez3HC30j2ZlQQRNRfXjke5P3uY+BXsGZ5n2IiltzP P3ZdILZ0NtyGqPxdsbLzVcqscYbiCryE8oKJPzsz39sKyvTKsefyyOx5mLP9X0ICvQM2nJ 2PMqSJTi8FQeXvaFOWdFqX5URO8M8ngX70s7LxNVZf122izNv6/apJCn+BiJ/w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFy3P56DSzYsD for ; Wed, 18 Feb 2026 00:25:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3e48f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 18 Feb 2026 00:25:53 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: 3562c80f4144 - stable/15 - nvme: Use size_t for payload size List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 3562c80f41446550829728edf7b6ee695563dc66 Auto-Submitted: auto-generated Date: Wed, 18 Feb 2026 00:25:53 +0000 Message-Id: <69950711.3e48f.6dc4b6a5@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=3562c80f41446550829728edf7b6ee695563dc66 commit 3562c80f41446550829728edf7b6ee695563dc66 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-13 18:37:07 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-18 00:15:34 +0000 nvme: Use size_t for payload size Using uint32_t here can cause spurious compiler warnings. I assume it was done to constrain the range; use a KASSERT instead. Sponsored by: Klara, Inc. Sponsored by: NetApp, Inc. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D55279 (cherry picked from commit be7e4dc878eab090cd411c9ef28880e4f62116f5) --- sys/dev/nvme/nvme_private.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/dev/nvme/nvme_private.h b/sys/dev/nvme/nvme_private.h index dd45e1acd0aa..8b5737dfb72b 100644 --- a/sys/dev/nvme/nvme_private.h +++ b/sys/dev/nvme/nvme_private.h @@ -504,11 +504,13 @@ _nvme_allocate_request(const int how, nvme_cb_fn_t cb_fn, void *cb_arg) } static __inline struct nvme_request * -nvme_allocate_request_vaddr(void *payload, uint32_t payload_size, +nvme_allocate_request_vaddr(void *payload, size_t payload_size, const int how, nvme_cb_fn_t cb_fn, void *cb_arg) { struct nvme_request *req; + KASSERT(payload_size <= UINT32_MAX, + ("payload size %zu exceeds maximum", payload_size)); req = _nvme_allocate_request(how, cb_fn, cb_arg); if (req != NULL) { req->payload = memdesc_vaddr(payload, payload_size); From nobody Wed Feb 18 00:25:54 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFy3R266tz6SM5y for ; Wed, 18 Feb 2026 00:25: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFy3Q6Qcdz3GH8 for ; Wed, 18 Feb 2026 00:25:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771374354; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pOZtgoQHpCd/X7UJbfmtse9M28RFZl6hI9U6M/HY2Dg=; b=iex60Y3+95/H6eYoy7dnE39ul70N/UX66DvBZr/gBjoQiBJHM6i8Adr3Svpi9mrNITNAEh 9ki7n4BuNzKj9/JP8V347wlRZ6DD0MYtvCqBT8QG7oLj8yqgAhey0NHNgUmB4wBhRp2iTq f4Vl67AKDHheDcXZTo+IxJqrr00jKrT0qaJvXCC2kiqyP0vhW6CIPz473vGAhgkz/vQyvm rgSsCylfPixuHG7nT5mlG/PrWlgWUrnMoinJVJgnLtYMg+t2w/RwoCxqjcLgf7Vx+IL+NH M1P03f3k6v1HeYXEhFtDKcMLqVVr4qCqDdNilLI3behdqcutsv+Ip0kPt1ROUA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771374354; a=rsa-sha256; cv=none; b=ZH6G4JELB/bIYuh9Bg7P70o+5mdgDZ9K2PFbvDyI9GQuzw5TO6/Nvt5jxLVu5vWJGjf8N/ weYBSxgDDMAKgu3ozH5pXTxjbPlNExTyeKWHU42+PmvQxPW8NXbjbpo3G8hw8BstO8taBA yqCkGAXFnxgR837syEOmfLy/p/EQCuv+50H/1gDiRWTAHMZXM9lWE4NPdFoI/DYEx9Ov65 ydvXTY2bveKKgDQ6o0bOWv/kcDtEiEMT/G+TJAOznpgXb/XynHp7fbRYk+7GM/QD+W93AQ VsNb4jUWWssYo7Um0oPBkiJCKJi8y26wEpvTihGjDqHJjdarMlbNvVK9zELJxg== 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=1771374354; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pOZtgoQHpCd/X7UJbfmtse9M28RFZl6hI9U6M/HY2Dg=; b=bmSFyjPgbLcVKqurm8hqu7/ms7HjPJZ1rU+zxmMmM6OrEY2EZ4wsECXnJZ/ltg7RbRutJo i6Yd093uFQZ0M4Tq0NzeRUthgy6UVozmjq2xLB2s3ZE59iTx1vuBiqS4r29ZFdwqPu5K4o lT7R/3qlmQjY74zHyJNGPPIdIYDOD3OGZH1vfOU2Da/xtPE9DXmaztjqM/Rz8y7j3Vnxxp CT32QFUDEtbE/8PeIkKa8BzBDj3vzuvUgrPf+bKgqBfj8GoxVinewuTeQpVZw83gEhVWmi Rkvebl+b24nYBhGznjnQMsaDGHn8rFi7htXVDSi+/YW7djEd2xkG5GV/lCPDLg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFy3Q5z0FzY67 for ; Wed, 18 Feb 2026 00:25:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3d743 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 18 Feb 2026 00:25:54 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: 23a8479c702b - stable/15 - diff: Tweak range of -C and -U arguments List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 23a8479c702b17d930718c2cdeb75ba8e44cd4c5 Auto-Submitted: auto-generated Date: Wed, 18 Feb 2026 00:25:54 +0000 Message-Id: <69950712.3d743.6a754d52@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=23a8479c702b17d930718c2cdeb75ba8e44cd4c5 commit 23a8479c702b17d930718c2cdeb75ba8e44cd4c5 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-13 20:18:24 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-18 00:15:34 +0000 diff: Tweak range of -C and -U arguments POSIX uses the terms “positive decimal integer” for -C and “non-negative decimal integer” for -U, which translates into lower bounds of 1 for -C and 0 for -U. POSIX does not specify a minimum upper bound for either mode, but as of 5fc739eb5949 both our backends support context sizes up to and including INT_MAX, so use that. Having had the opportunity to consult the Unix System Test Suite, the diff test cases found therein happen to precisely match these bounds. While here, switch to using strtonum() to parse numerical arguments, and try to be more consistent in how we report usage errors. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D55261 (cherry picked from commit 790f1d1cc5fa892ba59fd7f239b22064c8ab14c7) --- usr.bin/diff/diff.c | 44 +++++++++++++++++------------ usr.bin/diff/tests/diff_test.sh | 62 +++++++++++++++++++++++++---------------- 2 files changed, 64 insertions(+), 42 deletions(-) diff --git a/usr.bin/diff/diff.c b/usr.bin/diff/diff.c index 9bf3f2ad79eb..b5fa12268bac 100644 --- a/usr.bin/diff/diff.c +++ b/usr.bin/diff/diff.c @@ -137,10 +137,9 @@ static bool do_color(void); int main(int argc, char **argv) { - const char *errstr = NULL; - char *ep, **oargv; - long l; - int ch, dflags, lastch, gotstdin, prevoptind, newarg; + const char *errstr; + char **oargv; + int ch, dflags, lastch, gotstdin, prevoptind, newarg; oargv = argv; gotstdin = 0; @@ -177,7 +176,7 @@ main(int argc, char **argv) } if (diff_algorithm == D_DIFFNONE) { - printf("unknown algorithm: %s\n", optarg); + warnx("unknown algorithm: %s", optarg); usage(); } break; @@ -194,10 +193,13 @@ main(int argc, char **argv) cflag = true; diff_format = D_CONTEXT; if (optarg != NULL) { - l = strtol(optarg, &ep, 10); - if (*ep != '\0' || l < 0 || l >= INT_MAX) + diff_context = (int) strtonum(optarg, + 1, INT_MAX, &errstr); + if (errstr != NULL) { + warnx("context size is %s: %s", + errstr, optarg); usage(); - diff_context = (int)l; + } } break; case 'd': @@ -294,10 +296,13 @@ main(int argc, char **argv) conflicting_format(); diff_format = D_UNIFIED; if (optarg != NULL) { - l = strtol(optarg, &ep, 10); - if (*ep != '\0' || l < 0 || l >= INT_MAX) + diff_context = (int) strtonum(optarg, + 0, INT_MAX, &errstr); + if (errstr != NULL) { + warnx("context size is %s: %s", + errstr, optarg); usage(); - diff_context = (int)l; + } } break; case 'w': @@ -305,8 +310,8 @@ main(int argc, char **argv) break; case 'W': width = (int) strtonum(optarg, 1, INT_MAX, &errstr); - if (errstr) { - warnx("Invalid argument for width"); + if (errstr != NULL) { + warnx("width is %s: %s", errstr, optarg); usage(); } break; @@ -346,8 +351,8 @@ main(int argc, char **argv) break; case OPT_TSIZE: tabsize = (int) strtonum(optarg, 1, INT_MAX, &errstr); - if (errstr) { - warnx("Invalid argument for tabsize"); + if (errstr != NULL) { + warnx("tabsize is %s: %s", errstr, optarg); usage(); } break; @@ -364,9 +369,12 @@ main(int argc, char **argv) colorflag = COLORFLAG_ALWAYS; else if (strncmp(optarg, "never", 5) == 0) colorflag = COLORFLAG_NEVER; - else - errx(2, "unsupported --color value '%s' (must be always, auto, or never)", - optarg); + else { + warnx("unsupported --color value " + "(must be always, auto, or never): " + "%s", optarg); + usage(); + } break; case OPT_NO_DEREFERENCE: noderef = true; diff --git a/usr.bin/diff/tests/diff_test.sh b/usr.bin/diff/tests/diff_test.sh index 0d3acf50edf9..3afd12355a80 100755 --- a/usr.bin/diff/tests/diff_test.sh +++ b/usr.bin/diff/tests/diff_test.sh @@ -24,8 +24,8 @@ atf_test_case functionname atf_test_case noderef atf_test_case ignorecase atf_test_case dirloop -atf_test_case bigc -atf_test_case bigu +atf_test_case crange +atf_test_case urange atf_test_case prleak atf_test_case same @@ -389,34 +389,48 @@ dirloop_body() atf_check diff -r a b } -bigc_head() +crange_head() { - atf_set "descr" "Context diff with very large context" + atf_set "descr" "Context diff context length range" } -bigc_body() +crange_body() { - echo $'x\na\ny' >a - echo $'x\nb\ny' >b - atf_check -s exit:2 -e ignore diff -C$(((1<<31)-1)) a b - atf_check -s exit:1 -o match:'--- 1,3 ---' \ - diff -C$(((1<<31)-2)) a b - atf_check -s exit:1 -o match:'--- 1,3 ---' \ - diff -Astone -C$(((1<<31)-2)) a b + echo $'x\nx\na\ny\ny' >a + echo $'x\nx\nb\ny\ny' >b + atf_check -s exit:2 -e match:'too small' \ + diff -C-1 a b + atf_check -s exit:2 -e match:'too small' \ + diff -C0 a b + atf_check -s exit:1 -o match:'--- 2,4 ---' \ + diff -C1 a b + atf_check -s exit:1 -o match:'--- 2,4 ---' \ + diff -Astone -C1 a b + atf_check -s exit:2 -e match:'too large' \ + diff -C$((1<<31)) a b + atf_check -s exit:1 -o match:'--- 1,5 ---' \ + diff -C$(((1<<31)-1)) a b + atf_check -s exit:1 -o match:'--- 1,5 ---' \ + diff -Astone -C$(((1<<31)-1)) a b } -bigu_head() +urange_head() { - atf_set "descr" "Unified diff with very large context" + atf_set "descr" "Unified diff context length range" } -bigu_body() +urange_body() { - echo $'x\na\ny' >a - echo $'x\nb\ny' >b - atf_check -s exit:2 -e ignore diff -U$(((1<<31)-1)) a b - atf_check -s exit:1 -o match:'^@@ -1,3 \+1,3 @@$' \ - diff -U$(((1<<31)-2)) a b - atf_check -s exit:1 -o match:'^@@ -1,3 \+1,3 @@$' \ - diff -Astone -U$(((1<<31)-2)) a b + echo $'x\nx\na\ny\ny' >a + echo $'x\nx\nb\ny\ny' >b + atf_check -s exit:2 -e match:'too small' \ + diff -U-1 a b + atf_check -s exit:1 -o match:'^@@ -3 \+3 @@$' \ + diff -U0 a b + atf_check -s exit:2 -e match:'too large' \ + diff -U$((1<<31)) a b + atf_check -s exit:1 -o match:'^@@ -1,5 \+1,5 @@$' \ + diff -U$(((1<<31)-1)) a b + atf_check -s exit:1 -o match:'^@@ -1,5 \+1,5 @@$' \ + diff -Astone -U$(((1<<31)-1)) a b } prleak_head() @@ -485,8 +499,8 @@ atf_init_test_cases() atf_add_test_case noderef atf_add_test_case ignorecase atf_add_test_case dirloop - atf_add_test_case bigc - atf_add_test_case bigu + atf_add_test_case crange + atf_add_test_case urange atf_add_test_case prleak atf_add_test_case same } From nobody Wed Feb 18 00:25:55 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFy3S21mmz6SM7w for ; Wed, 18 Feb 2026 00:25: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFy3R6yPjz3GX7 for ; Wed, 18 Feb 2026 00:25:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771374356; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5pWvu3x9Dtb1BCSoN9sBeaHozF3uXWWe0IberNDDT6c=; b=Jt5fPLV3ogP/i5Z1F/6uVQ6y1xiM7X5pRq8lkId5XW2b0Dw2xvkeKwjjoUy5f6Tf14LnnQ FjejRBrEFHA6repblUvEZtXLIEm1V5I81rclor1giyIcnl004Nn1/LjMTXbAAtk+/gaq+7 NBwk6JqdeIGl3jAzrqS2JI9aBE+mOP8NplHU89bF3oAnZ+3KFLQM3S65NU3jFpdMVN4nXJ Mb/64ZcpASR8UH2MAwry/KfDW5o4LbUhkk/22jbTxMFJ+M4VBay4oh/reOlzILBLsUVILT KG1NEReur/FoE4G9OO2es+rsrMzDXoGYhaudv34JcpovSao5XGTVyx0mLj4+2w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771374356; a=rsa-sha256; cv=none; b=hwpdss4k9noXPVJJmLvHR1RDbr9+n0Fgrm59zLJzFbfnur+AjpdaF+A5NAmJwHZa2YQVaV yHYoqBxIqCpdr6/AOfTnHNvpwICpoBu8AAkcIMnii/t7gNYXjV1dQd9u6HxNERid+A0ygf LLGDWXNr3eD5wrACG/LvQF8PmcVrzyVbiqmRZQPoq/OSl3CL3R9OuyS2IcJs1T2P96q6HF rkGryemdYvZND87k3RdgCNl6q4ustGdOYMVrSXREKWR/saAcpRoj09c0dr/7rsyJydAEl2 SsQLHyCYc/+Dv0QMsiixiiVlRx5VRI9Xx2lLADoH6Z4MoBackX47bTfHxq+j4w== 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=1771374356; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5pWvu3x9Dtb1BCSoN9sBeaHozF3uXWWe0IberNDDT6c=; b=iE8P0OUVVgauhHW9aBvxIPxZHvi4WbUOSwl3QEzqqDK/0W8Qbz8sfddmtto7JcigAsptGa gAaxHpb8qijDyzCbG3gygJYjqAtgin8rT/elJ2R5yoGcD8ilww3yylZNiFZiHzhIOTMRV+ C49KXlScAAN1BXkKTiWf9hj6okjgqqgNrIAinxxTWf0XRE78vEoGzeh09//ep4s5fj+2Dc I6GO97fRAmQKnasMzZ0oP3utHvvtLA9H1aRB/Ms9O1MrPs7JgYZWaeq7hx4LWtslfnT0Bz jV9h5AlImm+YDKb2Z5Qc6dW4XYbAF/aDEAglxuCHSe/STxag3YpwJ+90hFN2Hw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFy3R6LDFzYsF for ; Wed, 18 Feb 2026 00:25:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3d747 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 18 Feb 2026 00:25:55 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: 608d3c746d1b - stable/15 - diff: Tweak recursion tests List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 608d3c746d1baf9f96b1655564582c7742465b16 Auto-Submitted: auto-generated Date: Wed, 18 Feb 2026 00:25:55 +0000 Message-Id: <69950713.3d747.503a6b21@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=608d3c746d1baf9f96b1655564582c7742465b16 commit 608d3c746d1baf9f96b1655564582c7742465b16 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-13 20:18:30 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-18 00:15:34 +0000 diff: Tweak recursion tests The -r flag is not required to compare two directories; it is only required to compare them recursively, i.e. descend into their common subdirectories. Adjust tests that use -r needlessly, and adjust the dirloop test to verify that these two cases remain distinct. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D55262 (cherry picked from commit b2532432971fbd9339a9a49eca1b532978bb6d48) --- usr.bin/diff/tests/diff_test.sh | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/usr.bin/diff/tests/diff_test.sh b/usr.bin/diff/tests/diff_test.sh index 3afd12355a80..872103b24cef 100755 --- a/usr.bin/diff/tests/diff_test.sh +++ b/usr.bin/diff/tests/diff_test.sh @@ -1,4 +1,3 @@ - atf_test_case simple atf_test_case unified atf_test_case header @@ -191,19 +190,19 @@ brief_format_body() atf_check \ -s exit:1 \ -o inline:"Files A/test-file and B/test-file differ\n" \ - diff -rq A B + diff -q A B atf_check diff -rq A C atf_check \ -s exit:1 \ -o inline:"Only in D: another-test-file\n" \ - diff -rq A D + diff -q A D atf_check \ -s exit:1 \ -o inline:"Files A/another-test-file and D/another-test-file differ\n" \ - diff -Nrq A D + diff -Nq A D } Bflag_body() @@ -225,9 +224,9 @@ Nflag_body() { atf_check -x 'printf "foo" > A' - atf_check -s exit:1 -o ignore -e ignore diff -N A NOFILE - atf_check -s exit:1 -o ignore -e ignore diff -N NOFILE A - atf_check -s exit:2 -o ignore -e ignore diff -N NOFILE1 NOFILE2 + atf_check -s exit:1 -o ignore -e ignore diff -N A NOFILE + atf_check -s exit:1 -o ignore -e ignore diff -N NOFILE A + atf_check -s exit:2 -o ignore -e ignore diff -N NOFILE1 NOFILE2 } tabsize_body() @@ -339,23 +338,23 @@ noderef_body() atf_check ln -s $(pwd)/test-file B/test-file - atf_check -o empty -s exit:0 diff -r A B + atf_check -o empty -s exit:0 diff A B atf_check -o inline:"File A/test-file is a file while file B/test-file is a symbolic link\n" \ - -s exit:1 diff -r --no-dereference A B + -s exit:1 diff --no-dereference A B # both test files are now the same symbolic link atf_check rm A/test-file atf_check ln -s $(pwd)/test-file A/test-file - atf_check -o empty -s exit:0 diff -r A B - atf_check -o empty -s exit:0 diff -r --no-dereference A B + atf_check -o empty -s exit:0 diff A B + atf_check -o empty -s exit:0 diff --no-dereference A B # make test files different symbolic links, but same contents atf_check unlink A/test-file atf_check ln -s $(pwd)/test-file2 A/test-file - atf_check -o empty -s exit:0 diff -r A B - atf_check -o inline:"Symbolic links A/test-file and B/test-file differ\n" -s exit:1 diff -r --no-dereference A B + atf_check -o empty -s exit:0 diff A B + atf_check -o inline:"Symbolic links A/test-file and B/test-file differ\n" -s exit:1 diff --no-dereference A B } ignorecase_body() @@ -366,7 +365,7 @@ ignorecase_body() atf_check -x "echo hello > A/foo" atf_check -x "echo hello > B/FOO" - atf_check -o empty -s exit:0 diff -u -r --ignore-file-name-case A B + atf_check -o empty -s exit:0 diff -u --ignore-file-name-case A B } dirloop_head() @@ -378,6 +377,9 @@ dirloop_body() atf_check mkdir -p a/foo/bar atf_check ln -s .. a/foo/bar/up atf_check cp -a a b + atf_check \ + -o inline:"Common subdirectories: a/foo and b/foo\n" \ + diff a b atf_check \ -e match:"a/foo/bar/up: Directory loop detected" \ -e match:"b/foo/bar/up: Directory loop detected" \ From nobody Wed Feb 18 00:25:57 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFy3T36cXz6SM7x for ; Wed, 18 Feb 2026 00:25: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFy3T0kQqz3GlR for ; Wed, 18 Feb 2026 00:25:57 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771374357; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HybnOtY7SFl6iWJbWzd8CcrhodVYAPOGJ+JbwtLX/NE=; b=jtByWlGq9EWHn9Ma/Li6cUk1ZkAhCToZypEcVnxVDN14sJoyuqgFG0tEpqeS8fLA1jFaw/ H4VPj/OYEaAKiTP4WK+BpdoKy/wcQfq7DaegZBV9kz/KiGrDZzHnm6g4M9bshv/pDmRW4L HmemJ29E1cH/QqR8u3leRfx4PFQpR4ypClHr9EmocbFM5BFR0tC85BNMHCinUOmiEA4yuS Eogc4s6G1bu/CIwDt8F/2zU0mM3+zFW4PIpk6jiJKfdJqrd/L633XF9glWUNPZV+n+Bt03 tbRVGw65EJomVw/xhq6PZw+kqiDHB10xYnIpQ9Q3EmuEUCSaJoM8HbCIbBq2Fw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771374357; a=rsa-sha256; cv=none; b=ZedwxolUYGYq4tQq/AOtjXFsWYzqtFEaFwiengKkyIJxlIS1GUUF6j+29DTw1kmAuCbRpF bPyiy2r+W/3rvsxo73YcAR5ILqSEuNJ2Cw3JICp9ixrnkHC9aWCnbaAObw6X/VPbPp9Vbg WJJ5LeIMBMcgEgR34AzgQucVK+hkK+zTOJNyZc2aGRDOH40NvhC5VDgr5Z2iOq3Sd5bolT 1yhDSCZ3w6bN2fvF0GKB3TZyXph44T8Jgxd5p9CEfqeNz0KS3aYMbT4+9Qp4HMBzrsIKGd 9+mVK3CxyfBvvHD0dA2jxftRO7oPHg46OrYoJnDCsGNehmQCnOrTKIx623/1EA== 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=1771374357; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HybnOtY7SFl6iWJbWzd8CcrhodVYAPOGJ+JbwtLX/NE=; b=V7wM3NDpHp1HtPRU2l4OON5pZlU0c1P8ZqZLiUuUMjimNP/FsCwukRszVgPpUKJF+vtSw/ BcUgV9nNgIeIosiJNPIkdONhc9gwb39bu46XaZwnlNbRtI1ULcwf5R1sB+h2QGw9Q/3ZHZ uFHVsQNSUWCz8Ltrjf0zaGD4uSQM+cM6/7vMU7AT7IpWHSGFZquhiD8nUbbeQrxWT5BReR iCWF5HUKMh7eZMXW4jjkaVq9QCf0r5BbevvqbtuhaCC1iBCbeVOtLXflcdXcUHO6wnpBiF vFPuWVzrHibHlASkrlQcPzGYCYL9izEEwMj+LHiL1fwJnoss2OnclHBSzvunxA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFy3T04MvzYjx for ; Wed, 18 Feb 2026 00:25:57 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3e392 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 18 Feb 2026 00:25:57 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: 3bfe51c7252a - stable/15 - timeout: Clean up List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 3bfe51c7252ac3e61ab00208e63c0baad8d7229e Auto-Submitted: auto-generated Date: Wed, 18 Feb 2026 00:25:57 +0000 Message-Id: <69950715.3e392.6f36294f@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=3bfe51c7252ac3e61ab00208e63c0baad8d7229e commit 3bfe51c7252ac3e61ab00208e63c0baad8d7229e Author: Dag-Erling Smørgrav AuthorDate: 2026-02-13 20:18:35 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-18 00:15:34 +0000 timeout: Clean up * Annotate logv() and fix format string bug. * Don't reinvent str2sig(3). * Reorganize kill_self() so we unblock signals as late as possible, and use raise(2) instead of kill(2). * Explicitly close unused pipe descriptors. * Use correct type to collect result of read(2) and write(2). * Compare return values to 0, not -1. * Sort local variables according to style(9). * Reduce unnecessary nesting. * Reindent. * Fix typo in manual page. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D55277 (cherry picked from commit 08208cd694815cc855835960f55231342eb35934) --- bin/timeout/timeout.1 | 2 +- bin/timeout/timeout.c | 156 +++++++++++++++++++++++--------------------------- 2 files changed, 73 insertions(+), 85 deletions(-) diff --git a/bin/timeout/timeout.1 b/bin/timeout/timeout.1 index 6486ccf99a36..0a9754a2cc4e 100644 --- a/bin/timeout/timeout.1 +++ b/bin/timeout/timeout.1 @@ -188,7 +188,7 @@ will terminate itself with the same signal if the is terminated by a signal. .Pp If an error occurred, the following exit values are returned: -.Bl -tag -offset indent with indent -compact +.Bl -tag -offset indent -width indent -compact .It 125 An error other than the two described below occurred. For example, an invalid duration or signal was specified. diff --git a/bin/timeout/timeout.c b/bin/timeout/timeout.c index 58a5797f3eaf..5f045653f35b 100644 --- a/bin/timeout/timeout.c +++ b/bin/timeout/timeout.c @@ -26,13 +26,13 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include #include #include #include #include #include +#include #include #include #include @@ -60,14 +60,14 @@ static void __dead2 usage(void) { fprintf(stderr, - "Usage: %s [-f | --foreground] [-k time | --kill-after time]" - " [-p | --preserve-status] [-s signal | --signal signal] " - " [-v | --verbose] [arg ...]\n", - getprogname()); + "Usage: %s [-f | --foreground] [-k time | --kill-after time]" + " [-p | --preserve-status] [-s signal | --signal signal] " + " [-v | --verbose] [arg ...]\n", + getprogname()); exit(EXIT_FAILURE); } -static void +static void __printflike(1, 2) logv(const char *fmt, ...) { va_list ap; @@ -118,26 +118,6 @@ parse_duration(const char *duration) return (ret); } -static int -parse_signal(const char *str) -{ - int sig, i; - const char *errstr; - - sig = strtonum(str, 1, sys_nsig - 1, &errstr); - if (errstr == NULL) - return (sig); - - if (strncasecmp(str, "SIG", 3) == 0) - str += 3; - for (i = 1; i < sys_nsig; i++) { - if (strcasecmp(str, sys_signame[i]) == 0) - return (i); - } - - errx(EXIT_INVALID, "invalid signal"); -} - static void sig_handler(int signo) { @@ -188,28 +168,22 @@ static void send_sig(pid_t pid, int signo, bool foreground) { struct procctl_reaper_kill rk; - int error; logv("sending signal %s(%d) to command '%s'", - sys_signame[signo], signo, command); + sys_signame[signo], signo, command); if (foreground) { - if (kill(pid, signo) == -1) { - if (errno != ESRCH) - warn("kill(%d, %s)", (int)pid, - sys_signame[signo]); - } + if (kill(pid, signo) < 0 && errno != ESRCH) + warn("kill(%d, %s)", (int)pid, sys_signame[signo]); } else { memset(&rk, 0, sizeof(rk)); rk.rk_sig = signo; - error = procctl(P_PID, getpid(), PROC_REAP_KILL, &rk); - if (error == 0 || (error == -1 && errno == ESRCH)) - ; - else if (error == -1) { + if (procctl(P_PID, getpid(), PROC_REAP_KILL, &rk) < 0 && + errno != ESRCH) { warn("procctl(PROC_REAP_KILL)"); - if (rk.rk_fpid > 0) - warnx( - "failed to signal some processes: first pid=%d", - (int)rk.rk_fpid); + if (rk.rk_fpid > 0) { + warnx("failed to signal some processes:" + " first pid=%d", (int)rk.rk_fpid); + } } logv("signaled %u processes", rk.rk_killed); } @@ -222,7 +196,7 @@ send_sig(pid_t pid, int signo, bool foreground) */ if (signo != SIGKILL && signo != SIGSTOP && signo != SIGCONT) { logv("sending signal %s(%d) to command '%s'", - sys_signame[SIGCONT], SIGCONT, command); + sys_signame[SIGCONT], SIGCONT, command); if (foreground) { kill(pid, SIGCONT); } else { @@ -245,7 +219,7 @@ set_interval(double iv) tim.it_value.tv_usec = (suseconds_t)(iv * 1000000UL); } - if (setitimer(ITIMER_REAL, &tim, NULL) == -1) + if (setitimer(ITIMER_REAL, &tim, NULL) < 0) err(EXIT_FAILURE, "setitimer()"); } @@ -261,20 +235,20 @@ kill_self(int signo) sigset_t mask; struct rlimit rl; + logv("killing self with signal %s(%d)", sys_signame[signo], signo); + + /* Disable core generation. */ + memset(&rl, 0, sizeof(rl)); + setrlimit(RLIMIT_CORE, &rl); + /* Reset the signal disposition and make sure it's unblocked. */ signal(signo, SIG_DFL); sigfillset(&mask); sigdelset(&mask, signo); sigprocmask(SIG_SETMASK, &mask, NULL); - /* Disable core generation. */ - memset(&rl, 0, sizeof(rl)); - setrlimit(RLIMIT_CORE, &rl); - - logv("killing self with signal %s(%d)", sys_signame[signo], signo); - kill(getpid(), signo); - err(128 + signo, "signal %s(%d) failed to kill self", - sys_signame[signo], signo); + raise(signo); + err(128 + signo, "raise(%d)", signo); } static void @@ -285,7 +259,7 @@ log_termination(const char *name, const siginfo_t *si) } else if (si->si_code == CLD_DUMPED || si->si_code == CLD_KILLED) { logv("%s: pid=%d, sig=%d", name, si->si_pid, si->si_status); } else { - logv("%s: pid=%d, reason=%d, status=%d", si->si_pid, + logv("%s: pid=%d, reason=%d, status=%d", name, si->si_pid, si->si_code, si->si_status); } } @@ -293,22 +267,23 @@ log_termination(const char *name, const siginfo_t *si) int main(int argc, char **argv) { + struct procctl_reaper_status info; + siginfo_t si, child_si; + struct sigaction sa; + sigset_t zeromask, allmask, oldmask; + double first_kill; + double second_kill = 0; + ssize_t error; + pid_t pid; + int pp[2]; int ch, sig; int pstat = 0; - pid_t pid; - int pp[2], error; char c; - double first_kill; - double second_kill = 0; bool foreground = false; bool preserve = false; bool timedout = false; bool do_second_kill = false; bool child_done = false; - sigset_t zeromask, allmask, oldmask; - struct sigaction sa; - struct procctl_reaper_status info; - siginfo_t si, child_si; const char optstr[] = "+fhk:ps:v"; const struct option longopts[] = { @@ -334,7 +309,8 @@ main(int argc, char **argv) preserve = true; break; case 's': - killsig = parse_signal(optarg); + if (str2sig(optarg, &killsig) != 0) + errx(EXIT_INVALID, "invalid signal"); break; case 'v': verbose = true; @@ -358,22 +334,22 @@ main(int argc, char **argv) if (!foreground) { /* Acquire a reaper */ - if (procctl(P_PID, getpid(), PROC_REAP_ACQUIRE, NULL) == -1) + if (procctl(P_PID, getpid(), PROC_REAP_ACQUIRE, NULL) < 0) err(EXIT_FAILURE, "procctl(PROC_REAP_ACQUIRE)"); } /* Block all signals to avoid racing against the child. */ sigfillset(&allmask); - if (sigprocmask(SIG_BLOCK, &allmask, &oldmask) == -1) + if (sigprocmask(SIG_BLOCK, &allmask, &oldmask) < 0) err(EXIT_FAILURE, "sigprocmask()"); - if (pipe2(pp, O_CLOEXEC) == -1) + if (pipe2(pp, O_CLOEXEC) < 0) err(EXIT_FAILURE, "pipe2"); pid = fork(); - if (pid == -1) { + if (pid < 0) err(EXIT_FAILURE, "fork()"); - } else if (pid == 0) { + if (pid == 0) { /* * child process * @@ -382,11 +358,12 @@ main(int argc, char **argv) * inherited, except for the signal to be sent upon timeout. */ signal(killsig, SIG_DFL); - if (sigprocmask(SIG_SETMASK, &oldmask, NULL) == -1) + if (sigprocmask(SIG_SETMASK, &oldmask, NULL) < 0) err(EXIT_FAILURE, "sigprocmask(oldmask)"); + (void)close(pp[1]); error = read(pp[0], &c, 1); - if (error == -1) + if (error < 0) err(EXIT_FAILURE, "read from control pipe"); if (error == 0) errx(EXIT_FAILURE, "eof from control pipe"); @@ -396,6 +373,7 @@ main(int argc, char **argv) } /* parent continues here */ + (void)close(pp[0]); /* Catch all signals in order to propagate them. */ memset(&sa, 0, sizeof(sa)); @@ -403,25 +381,36 @@ main(int argc, char **argv) sa.sa_handler = sig_handler; sa.sa_flags = SA_RESTART; for (sig = 1; sig < sys_nsig; sig++) { - if (sig == SIGKILL || sig == SIGSTOP || sig == SIGCONT || - sig == SIGTTIN || sig == SIGTTOU) - continue; - if (sigaction(sig, &sa, NULL) == -1) - err(EXIT_FAILURE, "sigaction(%d)", sig); + switch (sig) { + case SIGTTIN: + case SIGTTOU: + /* Don't stop if background child needs TTY */ + if (signal(sig, SIG_IGN) == SIG_ERR) + err(EXIT_FAILURE, "signal(%d)", sig); + break; + case SIGKILL: + case SIGSTOP: + case SIGCONT: + /* These can't be caught or ignored */ + break; + default: + if (sigaction(sig, &sa, NULL) < 0) + err(EXIT_FAILURE, "sigaction(%d)", sig); + } } - /* Don't stop if background child needs TTY */ - signal(SIGTTIN, SIG_IGN); - signal(SIGTTOU, SIG_IGN); - + /* Start the timer */ set_interval(first_kill); + + /* Let the child know we're ready */ error = write(pp[1], "a", 1); - if (error == -1) + if (error < 0) err(EXIT_FAILURE, "write to control pipe"); if (error == 0) errx(EXIT_FAILURE, "short write to control pipe"); - sigemptyset(&zeromask); + (void)close(pp[1]); + sigemptyset(&zeromask); for (;;) { sigsuspend(&zeromask); @@ -430,9 +419,8 @@ main(int argc, char **argv) for (;;) { memset(&si, 0, sizeof(si)); - error = waitid(P_ALL, -1, &si, WEXITED | - WNOHANG); - if (error == -1) { + if (waitid(P_ALL, -1, &si, + WEXITED | WNOHANG) < 0) { if (errno != EINTR) break; } else if (si.si_pid == pid) { @@ -456,7 +444,7 @@ main(int argc, char **argv) break; } else { procctl(P_PID, getpid(), - PROC_REAP_STATUS, &info); + PROC_REAP_STATUS, &info); if (info.rs_children == 0) break; } @@ -471,7 +459,7 @@ main(int argc, char **argv) sig = sig_term; sig_term = 0; logv("received terminating signal %s(%d)", - sys_signame[sig], sig); + sys_signame[sig], sig); } send_sig(pid, sig, foreground); From nobody Wed Feb 18 00:25:58 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFy3W2VS4z6SLm0 for ; Wed, 18 Feb 2026 00:25: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFy3V732hz3Gjn for ; Wed, 18 Feb 2026 00:25:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771374359; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QkIT2tLYHJ0MV4/fA1JOJ6zPD+kUOCRc9PFp1a4nmZ8=; b=MJk6Gm90xBPJz2qogj7+hP/HdqAiPuWJsWCBHhb44TZE7M70HtHikqKigdc2hryRDldak3 d14bwRX/+L5gF8AGbxdRyzf9yOCSM+cXUeYE1O7Xf0sBIqSnLRmcZzH0AwaPanLsYcwI95 YBI3lrN5iBwSxcZSyrPzLh36KQ0ngvssJUCHq4mFC1jBY8o6aEHiQtQVuVmNiJTnmIoGP5 E3VgKMXwLSQ38BnYtAkEdohsm6AyeCym+Z2tXBCFvBf8yztZGeCp0RmnykjeP/eHyVMwBh GTcJDtE7iWziKk7yvRCTytA18Yr9mnKymzj5OenwvS4OnCi9vToMz6Ih6l2Imw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771374359; a=rsa-sha256; cv=none; b=Rjj9A4QOI/NAdhF7LXOIHNWjMDBGk06MAhpPt4CoC9FKtqGDGFUAJbTWRBvkBECfff+5LO n74YsBVY/H7UR/FOlOs4MnuSYg+jiD+h3jfPIkIn2BjuS/k0FlSl9Twhe8kUvLBfWsO5uK y01hLjFXuT2NMN7RDoxlw7VE2QJuiTudhPNKraT2AdFzRkSRYnZoE82HWgBF33WIKunGYa Sis6aKhlRQ6mkcMylxiP87ve1b5bZQ4YG8CT4b687MVsJ7fOj9LDRlU9JM8eqSgAQaaow9 XdJ5r/UkwUDPi/p0A8kWXuJAqFc5SINFWw4WWrWoJD2vzx+xkQ/BPlG/S8ES1w== 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=1771374359; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QkIT2tLYHJ0MV4/fA1JOJ6zPD+kUOCRc9PFp1a4nmZ8=; b=PYt+gH/yVKJ7mMf5wv8dILHgpx6mA5X+7w0aMyqNB+3D+xTi2vf4BcbiIHtueOXN6mB02h zpdFOp569f2DQXrqvCYyQpBKg6arDZamTID9PZV/tRg7iF9m1wPQnzf0mnqjo4rptGFSVp IhmzD3Yjac3FeLCHjS8fXuQ8gqW/KSFbA/wCxN+Jn33gUawtyfN2pg5zJAt/gjbaW6+h2S dev7BLMNhVkvu/crQ4LFmsZuT6dSR7Ref6Yty+HceBsjT65WxZmbi4U2tC4jjEOWI60xcq yu/FYOkeolxE12FJedbkl/F4U/o4smd5ZYNq27jokmrj6zwVrwoewQocMQ/NzQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFy3V6bvPzYqq for ; Wed, 18 Feb 2026 00:25:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3d2c8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 18 Feb 2026 00:25:58 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: ce4f512dc004 - stable/14 - diff: Tweak range of -C and -U arguments List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: ce4f512dc004bae5b4b9ec22b449c785e1bf5297 Auto-Submitted: auto-generated Date: Wed, 18 Feb 2026 00:25:58 +0000 Message-Id: <69950716.3d2c8.624e90e@gitrepo.freebsd.org> The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=ce4f512dc004bae5b4b9ec22b449c785e1bf5297 commit ce4f512dc004bae5b4b9ec22b449c785e1bf5297 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-13 20:18:24 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-18 00:18:37 +0000 diff: Tweak range of -C and -U arguments POSIX uses the terms “positive decimal integer” for -C and “non-negative decimal integer” for -U, which translates into lower bounds of 1 for -C and 0 for -U. POSIX does not specify a minimum upper bound for either mode, but as of 5fc739eb5949 both our backends support context sizes up to and including INT_MAX, so use that. Having had the opportunity to consult the Unix System Test Suite, the diff test cases found therein happen to precisely match these bounds. While here, switch to using strtonum() to parse numerical arguments, and try to be more consistent in how we report usage errors. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D55261 (cherry picked from commit 790f1d1cc5fa892ba59fd7f239b22064c8ab14c7) --- usr.bin/diff/diff.c | 46 ++++++++++++++++++++++-------------- usr.bin/diff/tests/diff_test.sh | 52 +++++++++++++++++++++++++---------------- 2 files changed, 61 insertions(+), 37 deletions(-) diff --git a/usr.bin/diff/diff.c b/usr.bin/diff/diff.c index ba88964ca131..53b62766ba3e 100644 --- a/usr.bin/diff/diff.c +++ b/usr.bin/diff/diff.c @@ -126,10 +126,9 @@ static bool do_color(void); int main(int argc, char **argv) { - const char *errstr = NULL; - char *ep, **oargv; - long l; - int ch, dflags, lastch, gotstdin, prevoptind, newarg; + const char *errstr; + char **oargv; + int ch, dflags, lastch, gotstdin, prevoptind, newarg; oargv = argv; gotstdin = 0; @@ -166,10 +165,13 @@ main(int argc, char **argv) cflag = true; diff_format = D_CONTEXT; if (optarg != NULL) { - l = strtol(optarg, &ep, 10); - if (*ep != '\0' || l < 0 || l >= INT_MAX) + diff_context = (int) strtonum(optarg, + 1, INT_MAX, &errstr); + if (errstr != NULL) { + warnx("context size is %s: %s", + errstr, optarg); usage(); - diff_context = (int)l; + } } break; case 'd': @@ -265,10 +267,13 @@ main(int argc, char **argv) conflicting_format(); diff_format = D_UNIFIED; if (optarg != NULL) { - l = strtol(optarg, &ep, 10); - if (*ep != '\0' || l < 0 || l >= INT_MAX) + diff_context = (int) strtonum(optarg, + 0, INT_MAX, &errstr); + if (errstr != NULL) { + warnx("context size is %s: %s", + errstr, optarg); usage(); - diff_context = (int)l; + } } break; case 'w': @@ -276,8 +281,10 @@ main(int argc, char **argv) break; case 'W': width = (int) strtonum(optarg, 1, INT_MAX, &errstr); - if (errstr) - errx(1, "width is %s: %s", errstr, optarg); + if (errstr != NULL) { + warnx("width is %s: %s", errstr, optarg); + usage(); + } break; case 'X': read_excludes_file(optarg); @@ -315,8 +322,10 @@ main(int argc, char **argv) break; case OPT_TSIZE: tabsize = (int) strtonum(optarg, 1, INT_MAX, &errstr); - if (errstr) - errx(1, "tabsize is %s: %s", errstr, optarg); + if (errstr != NULL) { + warnx("tabsize is %s: %s", errstr, optarg); + usage(); + } break; case OPT_STRIPCR: dflags |= D_STRIPCR; @@ -331,9 +340,12 @@ main(int argc, char **argv) colorflag = COLORFLAG_ALWAYS; else if (strncmp(optarg, "never", 5) == 0) colorflag = COLORFLAG_NEVER; - else - errx(2, "unsupported --color value '%s' (must be always, auto, or never)", - optarg); + else { + warnx("unsupported --color value " + "(must be always, auto, or never): " + "%s", optarg); + usage(); + } break; case OPT_NO_DEREFERENCE: noderef = true; diff --git a/usr.bin/diff/tests/diff_test.sh b/usr.bin/diff/tests/diff_test.sh index 61fa618b8d2c..07e019aafc4e 100755 --- a/usr.bin/diff/tests/diff_test.sh +++ b/usr.bin/diff/tests/diff_test.sh @@ -24,8 +24,8 @@ atf_test_case functionname atf_test_case noderef atf_test_case ignorecase atf_test_case dirloop -atf_test_case bigc -atf_test_case bigu +atf_test_case crange +atf_test_case urange atf_test_case prleak atf_test_case same @@ -385,30 +385,42 @@ dirloop_body() atf_check diff -r a b } -bigc_head() +crange_head() { - atf_set "descr" "Context diff with very large context" + atf_set "descr" "Context diff context length range" } -bigc_body() +crange_body() { - echo $'x\na\ny' >a - echo $'x\nb\ny' >b - atf_check -s exit:2 -e ignore diff -C$(((1<<31)-1)) a b - atf_check -s exit:1 -o match:'--- 1,3 ---' \ - diff -C$(((1<<31)-2)) a b + echo $'x\nx\na\ny\ny' >a + echo $'x\nx\nb\ny\ny' >b + atf_check -s exit:2 -e match:'too small' \ + diff -C-1 a b + atf_check -s exit:2 -e match:'too small' \ + diff -C0 a b + atf_check -s exit:1 -o match:'--- 2,4 ---' \ + diff -C1 a b + atf_check -s exit:2 -e match:'too large' \ + diff -C$((1<<31)) a b + atf_check -s exit:1 -o match:'--- 1,5 ---' \ + diff -C$(((1<<31)-1)) a b } -bigu_head() +urange_head() { - atf_set "descr" "Unified diff with very large context" + atf_set "descr" "Unified diff context length range" } -bigu_body() +urange_body() { - echo $'x\na\ny' >a - echo $'x\nb\ny' >b - atf_check -s exit:2 -e ignore diff -U$(((1<<31)-1)) a b - atf_check -s exit:1 -o match:'^@@ -1,3 \+1,3 @@$' \ - diff -U$(((1<<31)-2)) a b + echo $'x\nx\na\ny\ny' >a + echo $'x\nx\nb\ny\ny' >b + atf_check -s exit:2 -e match:'too small' \ + diff -U-1 a b + atf_check -s exit:1 -o match:'^@@ -3 \+3 @@$' \ + diff -U0 a b + atf_check -s exit:2 -e match:'too large' \ + diff -U$((1<<31)) a b + atf_check -s exit:1 -o match:'^@@ -1,5 \+1,5 @@$' \ + diff -U$(((1<<31)-1)) a b } prleak_head() @@ -476,8 +488,8 @@ atf_init_test_cases() atf_add_test_case noderef atf_add_test_case ignorecase atf_add_test_case dirloop - atf_add_test_case bigc - atf_add_test_case bigu + atf_add_test_case crange + atf_add_test_case urange atf_add_test_case prleak atf_add_test_case same } From nobody Wed Feb 18 00:26:00 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFy3X52Vjz6SMBn for ; Wed, 18 Feb 2026 00:26: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFy3X0wH4z3GgT for ; Wed, 18 Feb 2026 00:26:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771374360; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Wv3H3roe+a5fegESU19lm1vsp9j8ULCze2mDn6tF3uo=; b=AzpdGcfGqSZWYGu43mpCMlNxEkR4tQGO2PHxHyV+Dd2lm6Y26SRTSPdLjIjmKSpUA89OYR vNWsmBVDP+bhfrp5tl4L3OgbgAhQRU6iSjB7Ssh0NuoT/rAF7zT89GdfZoN0tkEq53Wld5 NfHtQVJkJURMZ5MkALbQwDV16J5QwTMD8RM0WfuVBen9cdJdjDdu5dHYqjOCOTlFa4n7xP pYL2VnBRBbv5e84KkJ00+ewE2G+SgXmhw3J4KfX59oUMIBC3SoM+Izz4bSDtDhRWoxvmCX 5I8FetRs3uoix1cCjz69WT1ddW0HVxlYXee3zrWWNPP+EIU64jIbcSPJtfDiwA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771374360; a=rsa-sha256; cv=none; b=r4u38i4aTSYHYfXrXpqrDtJYStA3nZkWnEIgdvdmZaaczVuStc/as6WhwcSH/rCpq/6T+d kPr8j6TkAZiR5KdGfDHkZvmtTU2eY3hDdzYJyVMdk4qFAwToU/bhZQiFaZriKt7Zxwb0Xy dmdNyhQM8hIpA75QGj0XRnh96cM4aOCJvjKgQVLlSXaLcn9aTOjTZEwEpDVhkRiDAX5ACu ekOp4uKcwZ+uHeXQjavqbZsglu1fZxwVy+8iT2IUlsuKYNtE4NKoR290inELQ2ovIKO5/O RK7rKqxtU7zl0nkKgUQ2jEdqGsqmKWt8vD1JBi1mnXwKZ1zkTxLdyvKLaBQ9Rw== 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=1771374360; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Wv3H3roe+a5fegESU19lm1vsp9j8ULCze2mDn6tF3uo=; b=fS3pb7bUBgx1OaGsPrdqR2hnmwYWHIuqTeR4doXTuwvRC2gAp7nP/T6/ooji4TxNzTfP45 yhr1le8U+P2iC2vZune0bxnPPRV3aolEStn0nR/bioS5h2LcPdLrtWEHzmWNv8gjAmkWTT 0XgPtPJncdN9DnW0LoAi3mhWFQPA5iRWsO7nWX5q2QYYYYI5CwTn8IrE4Oj3b5Aq6+Ztfa Ny+7Qa1MS4o6bDDp3RKq/wc85JmfNLavHCEkhbcdofOOOzGxVzoIKCweVTgz7khvcLqGBK 8yd8PhHR/YmNXIADDLMPBPz+pSP7EaYmIbM8go8RQDvCHZZDc1r0tPNyKfd3rw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFy3X0JQszYwD for ; Wed, 18 Feb 2026 00:26:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3e0a1 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 18 Feb 2026 00:26:00 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: f10da155fafa - stable/14 - diff: Tweak recursion tests List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: f10da155fafad0fc450f974e3ae1421d7f78f123 Auto-Submitted: auto-generated Date: Wed, 18 Feb 2026 00:26:00 +0000 Message-Id: <69950718.3e0a1.2136dc13@gitrepo.freebsd.org> The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=f10da155fafad0fc450f974e3ae1421d7f78f123 commit f10da155fafad0fc450f974e3ae1421d7f78f123 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-13 20:18:30 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-18 00:18:38 +0000 diff: Tweak recursion tests The -r flag is not required to compare two directories; it is only required to compare them recursively, i.e. descend into their common subdirectories. Adjust tests that use -r needlessly, and adjust the dirloop test to verify that these two cases remain distinct. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D55262 (cherry picked from commit b2532432971fbd9339a9a49eca1b532978bb6d48) --- usr.bin/diff/tests/diff_test.sh | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/usr.bin/diff/tests/diff_test.sh b/usr.bin/diff/tests/diff_test.sh index 07e019aafc4e..19e9bfb25728 100755 --- a/usr.bin/diff/tests/diff_test.sh +++ b/usr.bin/diff/tests/diff_test.sh @@ -1,4 +1,3 @@ - atf_test_case simple atf_test_case unified atf_test_case header @@ -191,19 +190,19 @@ brief_format_body() atf_check \ -s exit:1 \ -o inline:"Files A/test-file and B/test-file differ\n" \ - diff -rq A B + diff -q A B atf_check diff -rq A C atf_check \ -s exit:1 \ -o inline:"Only in D: another-test-file\n" \ - diff -rq A D + diff -q A D atf_check \ -s exit:1 \ -o inline:"Files A/another-test-file and D/another-test-file differ\n" \ - diff -Nrq A D + diff -Nq A D } Bflag_body() @@ -225,9 +224,9 @@ Nflag_body() { atf_check -x 'printf "foo" > A' - atf_check -s exit:1 -o ignore -e ignore diff -N A NOFILE - atf_check -s exit:1 -o ignore -e ignore diff -N NOFILE A - atf_check -s exit:2 -o ignore -e ignore diff -N NOFILE1 NOFILE2 + atf_check -s exit:1 -o ignore -e ignore diff -N A NOFILE + atf_check -s exit:1 -o ignore -e ignore diff -N NOFILE A + atf_check -s exit:2 -o ignore -e ignore diff -N NOFILE1 NOFILE2 } tabsize_body() @@ -335,23 +334,23 @@ noderef_body() atf_check ln -s $(pwd)/test-file B/test-file - atf_check -o empty -s exit:0 diff -r A B + atf_check -o empty -s exit:0 diff A B atf_check -o inline:"File A/test-file is a file while file B/test-file is a symbolic link\n" \ - -s exit:1 diff -r --no-dereference A B + -s exit:1 diff --no-dereference A B # both test files are now the same symbolic link atf_check rm A/test-file atf_check ln -s $(pwd)/test-file A/test-file - atf_check -o empty -s exit:0 diff -r A B - atf_check -o empty -s exit:0 diff -r --no-dereference A B + atf_check -o empty -s exit:0 diff A B + atf_check -o empty -s exit:0 diff --no-dereference A B # make test files different symbolic links, but same contents atf_check unlink A/test-file atf_check ln -s $(pwd)/test-file2 A/test-file - atf_check -o empty -s exit:0 diff -r A B - atf_check -o inline:"Symbolic links A/test-file and B/test-file differ\n" -s exit:1 diff -r --no-dereference A B + atf_check -o empty -s exit:0 diff A B + atf_check -o inline:"Symbolic links A/test-file and B/test-file differ\n" -s exit:1 diff --no-dereference A B } ignorecase_body() @@ -362,7 +361,7 @@ ignorecase_body() atf_check -x "echo hello > A/foo" atf_check -x "echo hello > B/FOO" - atf_check -o empty -s exit:0 diff -u -r --ignore-file-name-case A B + atf_check -o empty -s exit:0 diff -u --ignore-file-name-case A B } dirloop_head() @@ -374,6 +373,9 @@ dirloop_body() atf_check mkdir -p a/foo/bar atf_check ln -s .. a/foo/bar/up atf_check cp -a a b + atf_check \ + -o inline:"Common subdirectories: a/foo and b/foo\n" \ + diff a b atf_check \ -e match:"a/foo/bar/up: Directory loop detected" \ -e match:"b/foo/bar/up: Directory loop detected" \ From nobody Wed Feb 18 00:26:02 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFy3b0Hvwz6SLm8 for ; Wed, 18 Feb 2026 00:26: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFy3Z3v11z3Gpb for ; Wed, 18 Feb 2026 00:26:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771374362; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eQ8C2z1DuEPcRTGSXGYQ5yeIARYylD7gtH8Gice7Igk=; b=jac8e8OilGsAXjwZd18+PriepusXpisZFbdrqPl8th034uNPW8Tbg6pQgmdWGZUBg0f09d iLXRf4ijK7D8ZpsLiEC823UGESIm4XJqADwSIJ4Q8CJBblWbOAtdia4Pn8A6BDq5eI+eWS PO1QjSFU21eJqh9VsDlPVGww+Oxxm2F5ZBXS+cHvGxKTetON36iuX9cmtyNdN1oLP+4fD7 XSPtp/d5sFLv8UMqE9X024Ybh0+4Cnd+ijX/ihaMaINF+OzwXUBdd3wBAqOWtQgG2uSw1D ztxbAXttCHCIcbKCoIo8xPjgvtKaf1R/2liHtLhvLE6a2kbhq8/4hKzPvGHquw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771374362; a=rsa-sha256; cv=none; b=IYEGTZRQpoGv2E/yjitE3/ijQ46x7ZQodG9XjBau5cHf1bAxrUV5j36WMfv6AsLM8kfIKu /dLhvKyhvBuvhRkcArTgi78exe3MOJi06YiNFo/h7Dha65Q1Yigt4FAkjlSiAOG1Us4Oln 1LmbEsuo04rzJT2m/atYU6m7txhaNvUB9Gs4oZfJPSXhe5gUme2SqJZ0SK1ybuTlbuQOeZ bgstMBo6c43cEpK/OhyE8bD0wjkYtGOI8awV+y0nXKxh5z2vtbdEO2xGpTkJ6/afXaGOhA qmXZuP26V/TfmonFgWM4L3zwvtoCHrI+bMxsQrX2bnpGLhadItdX+F2bFZXMrQ== 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=1771374362; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eQ8C2z1DuEPcRTGSXGYQ5yeIARYylD7gtH8Gice7Igk=; b=NgzX3az1N/vycyzKgjgUokF/XGCxVNZE37Nzetm6qwJJe5qkcv9nHv3Nve8RkknqrJjWEk 1fL7pLwjrvPOGgl3CMdrARbEZFi3A6ZT+l/RTiB8AbOincHU2/SX6LLFOl0cMC1kOIU/wA UyaTlGy5YPrWDuKnyZyZY8XQJ0NA1RNPdfP9AZzcGzwObWPKzZvrjjHkLRCvF+azFTbDV6 h+uu7Q6rABk1W9+hsnin7G0HROsy51OndXUOZT9K02EiMgS716v1FgeIPtohJ1hdNZv46q UD6xubD2Sf9+7jeRJAnXmJPqYK4maU8hoQYQJp2qPGBT7Y3/McMJAu80UUJk5Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFy3Z3PXczYk0 for ; Wed, 18 Feb 2026 00:26:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3e316 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 18 Feb 2026 00:26:02 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: c6038436360e - stable/13 - diff: Tweak range of -C and -U arguments List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: c6038436360ebf6344e6f65d40e1d38611d1d603 Auto-Submitted: auto-generated Date: Wed, 18 Feb 2026 00:26:02 +0000 Message-Id: <6995071a.3e316.71e15360@gitrepo.freebsd.org> The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=c6038436360ebf6344e6f65d40e1d38611d1d603 commit c6038436360ebf6344e6f65d40e1d38611d1d603 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-13 20:18:24 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-18 00:20:36 +0000 diff: Tweak range of -C and -U arguments POSIX uses the terms “positive decimal integer” for -C and “non-negative decimal integer” for -U, which translates into lower bounds of 1 for -C and 0 for -U. POSIX does not specify a minimum upper bound for either mode, but as of 5fc739eb5949 both our backends support context sizes up to and including INT_MAX, so use that. Having had the opportunity to consult the Unix System Test Suite, the diff test cases found therein happen to precisely match these bounds. While here, switch to using strtonum() to parse numerical arguments, and try to be more consistent in how we report usage errors. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D55261 (cherry picked from commit 790f1d1cc5fa892ba59fd7f239b22064c8ab14c7) --- usr.bin/diff/diff.c | 33 +++++++++++++++----------- usr.bin/diff/tests/diff_test.sh | 52 +++++++++++++++++++++++++---------------- 2 files changed, 51 insertions(+), 34 deletions(-) diff --git a/usr.bin/diff/diff.c b/usr.bin/diff/diff.c index 71f0ac94c7ab..b9a9b13c5d4d 100644 --- a/usr.bin/diff/diff.c +++ b/usr.bin/diff/diff.c @@ -108,10 +108,9 @@ void set_argstr(char **, char **); int main(int argc, char **argv) { - const char *errstr = NULL; - char *ep, **oargv; - long l; - int ch, dflags, lastch, gotstdin, prevoptind, newarg; + const char *errstr; + char **oargv; + int ch, dflags, lastch, gotstdin, prevoptind, newarg; oargv = argv; gotstdin = 0; @@ -148,10 +147,13 @@ main(int argc, char **argv) cflag = 1; diff_format = D_CONTEXT; if (optarg != NULL) { - l = strtol(optarg, &ep, 10); - if (*ep != '\0' || l < 0 || l >= INT_MAX) + diff_context = (int) strtonum(optarg, + 1, INT_MAX, &errstr); + if (errstr != NULL) { + warnx("context size is %s: %s", + errstr, optarg); usage(); - diff_context = (int)l; + } } break; case 'd': @@ -239,10 +241,13 @@ main(int argc, char **argv) conflicting_format(); diff_format = D_UNIFIED; if (optarg != NULL) { - l = strtol(optarg, &ep, 10); - if (*ep != '\0' || l < 0 || l >= INT_MAX) + diff_context = (int) strtonum(optarg, + 0, INT_MAX, &errstr); + if (errstr != NULL) { + warnx("context size is %s: %s", + errstr, optarg); usage(); - diff_context = (int)l; + } } break; case 'w': @@ -251,8 +256,8 @@ main(int argc, char **argv) case 'W': Wflag = 1; width = (int) strtonum(optarg, 1, INT_MAX, &errstr); - if (errstr) { - warnx("Invalid argument for width"); + if (errstr != NULL) { + warnx("width is %s: %s", errstr, optarg); usage(); } break; @@ -288,8 +293,8 @@ main(int argc, char **argv) break; case OPT_TSIZE: tabsize = (int) strtonum(optarg, 1, INT_MAX, &errstr); - if (errstr) { - warnx("Invalid argument for tabsize"); + if (errstr != NULL) { + warnx("tabsize is %s: %s", errstr, optarg); usage(); } break; diff --git a/usr.bin/diff/tests/diff_test.sh b/usr.bin/diff/tests/diff_test.sh index df98540083f9..9914cdcf84c7 100755 --- a/usr.bin/diff/tests/diff_test.sh +++ b/usr.bin/diff/tests/diff_test.sh @@ -20,8 +20,8 @@ atf_test_case report_identical atf_test_case non_regular_file atf_test_case binary atf_test_case dirloop -atf_test_case bigc -atf_test_case bigu +atf_test_case crange +atf_test_case urange atf_test_case prleak atf_test_case same @@ -309,30 +309,42 @@ dirloop_body() atf_check diff -r a b } -bigc_head() +crange_head() { - atf_set "descr" "Context diff with very large context" + atf_set "descr" "Context diff context length range" } -bigc_body() +crange_body() { - echo $'x\na\ny' >a - echo $'x\nb\ny' >b - atf_check -s exit:2 -e ignore diff -C$(((1<<31)-1)) a b - atf_check -s exit:1 -o match:'--- 1,3 ---' \ - diff -C$(((1<<31)-2)) a b + echo $'x\nx\na\ny\ny' >a + echo $'x\nx\nb\ny\ny' >b + atf_check -s exit:2 -e match:'too small' \ + diff -C-1 a b + atf_check -s exit:2 -e match:'too small' \ + diff -C0 a b + atf_check -s exit:1 -o match:'--- 2,4 ---' \ + diff -C1 a b + atf_check -s exit:2 -e match:'too large' \ + diff -C$((1<<31)) a b + atf_check -s exit:1 -o match:'--- 1,5 ---' \ + diff -C$(((1<<31)-1)) a b } -bigu_head() +urange_head() { - atf_set "descr" "Unified diff with very large context" + atf_set "descr" "Unified diff context length range" } -bigu_body() +urange_body() { - echo $'x\na\ny' >a - echo $'x\nb\ny' >b - atf_check -s exit:2 -e ignore diff -U$(((1<<31)-1)) a b - atf_check -s exit:1 -o match:'^@@ -1,3 \+1,3 @@$' \ - diff -U$(((1<<31)-2)) a b + echo $'x\nx\na\ny\ny' >a + echo $'x\nx\nb\ny\ny' >b + atf_check -s exit:2 -e match:'too small' \ + diff -U-1 a b + atf_check -s exit:1 -o match:'^@@ -3 \+3 @@$' \ + diff -U0 a b + atf_check -s exit:2 -e match:'too large' \ + diff -U$((1<<31)) a b + atf_check -s exit:1 -o match:'^@@ -1,5 \+1,5 @@$' \ + diff -U$(((1<<31)-1)) a b } prleak_head() @@ -396,8 +408,8 @@ atf_init_test_cases() atf_add_test_case non_regular_file atf_add_test_case binary atf_add_test_case dirloop - atf_add_test_case bigc - atf_add_test_case bigu + atf_add_test_case crange + atf_add_test_case urange atf_add_test_case prleak atf_add_test_case same } From nobody Wed Feb 18 00:26:03 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFy3b6JJFz6SMBs for ; Wed, 18 Feb 2026 00:26: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFy3b4ryrz3Gx2 for ; Wed, 18 Feb 2026 00:26:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771374363; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=X1kiV/KmBeSkHUgxKkZTGH/HzLWBnUwowNrAXXmhIkM=; b=K3CGNVS3YJh9JgmfvUf5xTEAtHuJp7FD5GcBScrilaphrNu+OjRgGc/vFw3Mrg+kvOls/W s24W+fESlUJXcMdSIx1hOL+gUXUnLMaYbYdjyP2dQow1r6Prmy6M+g1DDGw7YvVOO4j1qS NBlY06uyo8VxnBAQNfPFhuXNikuK1otG/AytcPwLfQ/vG5k87348s3W9J8OgOEWlltPz2b RmHDDDVdoj63kBIOICqHrc6nnogL6PoqJbRjoQ4B5AMeagwsaOmbYXPvgjckJuRxsyr5DF LiI+zmGZtnllTI779zZI1mhqHtlrtcpX/rpoPiGUbi7evF5yQQKMFWeEL3q81A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771374363; a=rsa-sha256; cv=none; b=BOh8v5cMjsIooDQ4fXQA2Bad49kegjDo184mSYcrRjpibbklMrhmMhNL0rBIy4pkahuask SYXRzqGBLc5U9NBGw+OeObN1f8ArE5KHrTno2pRTo2i7m7Zd9mEJRq2VYGWNDIhTa5GHJf otM2d2JhqJMXnLDGLvoio5VucEuj7FppX0jmYjNyq4u8KAmJC3IRlqTA5VCeX5zZPRZXzZ tzpyxbljIKJF5RQHqBUFxYWyQQEqxpOUZmyqXUPkRMtv1OaIosswGV/8DFY1aunMF0zoZH jLDSKyBvccPnxZ+3hD2DaEqiDvCXEUMZFhkcqHCmYTBUCVOWJ8D8AlHfLuy5cA== 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=1771374363; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=X1kiV/KmBeSkHUgxKkZTGH/HzLWBnUwowNrAXXmhIkM=; b=mP1n8mbx7gP+tY6tXQnp4XIKmfNmaZqFk65VXOyGlnHxomYx/mLwYU2yFCaUCIaoDVm94A 14xKOh5S9Vo8oPijrOx4NiwQsl/rMXc4QYJICuQT9IBVpRhX8TNWPBhUixnRd+3CnK2xgf T5t4OvMlPabgXUkiMdW7F5qIJPky/5SDYj1zFr/lZIORxlWinXK/l1Qbc2cfVoOjOrmrvi zhK2IdwzKNkNctQaTM0w7sWUKQdHzdc709PZq88y+0LCC/UOzG/laZxPB1jT5CYbJog90s 9GS5gOdLNURDvW5+/WTocS/h5yhpdzaw9BM8yJf2HpBgPV4NzrOksNaVArDuLA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFy3b4G0nzYqr for ; Wed, 18 Feb 2026 00:26:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3d2cc by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 18 Feb 2026 00:26:03 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: b9a6888b37cc - stable/13 - diff: Tweak recursion tests List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: b9a6888b37cce03a5a04f376a1d782498f4352af Auto-Submitted: auto-generated Date: Wed, 18 Feb 2026 00:26:03 +0000 Message-Id: <6995071b.3d2cc.2845ec8c@gitrepo.freebsd.org> The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=b9a6888b37cce03a5a04f376a1d782498f4352af commit b9a6888b37cce03a5a04f376a1d782498f4352af Author: Dag-Erling Smørgrav AuthorDate: 2026-02-13 20:18:30 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-18 00:21:16 +0000 diff: Tweak recursion tests The -r flag is not required to compare two directories; it is only required to compare them recursively, i.e. descend into their common subdirectories. Adjust tests that use -r needlessly, and adjust the dirloop test to verify that these two cases remain distinct. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D55262 (cherry picked from commit b2532432971fbd9339a9a49eca1b532978bb6d48) --- usr.bin/diff/tests/diff_test.sh | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/usr.bin/diff/tests/diff_test.sh b/usr.bin/diff/tests/diff_test.sh index 9914cdcf84c7..0fcd5b02c29c 100755 --- a/usr.bin/diff/tests/diff_test.sh +++ b/usr.bin/diff/tests/diff_test.sh @@ -1,4 +1,3 @@ - atf_test_case simple atf_test_case unified atf_test_case header @@ -170,19 +169,19 @@ brief_format_body() atf_check \ -s exit:1 \ -o inline:"Files A/test-file and B/test-file differ\n" \ - diff -rq A B + diff -q A B atf_check diff -rq A C atf_check \ -s exit:1 \ -o inline:"Only in D: another-test-file\n" \ - diff -rq A D + diff -q A D atf_check \ -s exit:1 \ -o inline:"Files A/another-test-file and D/another-test-file differ\n" \ - diff -Nrq A D + diff -Nq A D } Bflag_body() @@ -204,9 +203,9 @@ Nflag_body() { atf_check -x 'printf "foo" > A' - atf_check -s exit:1 -o ignore -e ignore diff -N A NOFILE - atf_check -s exit:1 -o ignore -e ignore diff -N NOFILE A - atf_check -s exit:2 -o ignore -e ignore diff -N NOFILE1 NOFILE2 + atf_check -s exit:1 -o ignore -e ignore diff -N A NOFILE + atf_check -s exit:1 -o ignore -e ignore diff -N NOFILE A + atf_check -s exit:2 -o ignore -e ignore diff -N NOFILE1 NOFILE2 } tabsize_body() @@ -298,6 +297,9 @@ dirloop_body() atf_check mkdir -p a/foo/bar atf_check ln -s .. a/foo/bar/up atf_check cp -a a b + atf_check \ + -o inline:"Common subdirectories: a/foo and b/foo\n" \ + diff a b atf_check \ -e match:"a/foo/bar/up: Directory loop detected" \ -e match:"b/foo/bar/up: Directory loop detected" \ From nobody Wed Feb 18 01:53:02 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fFzzz0HMHz6SSxJ for ; Wed, 18 Feb 2026 01:53: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFzzy5P52z3QgL for ; Wed, 18 Feb 2026 01:53:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771379582; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=H7EkTQGOUTVu2z15ZfdN06xWhGRl3Eff8kEL6GBzQ8A=; b=RxN1fEkZAAcFO+7WZqYD3RVvXssAuhaYmD61mA/LIfYYTbOh1Lv4voodnFyYcGnulHyAed A/4M1+vMESKHDTLTOP88She8P0+DlOjPo5CasY25Xpw0XFizIvNtGPtUr7uBIdRX61nG6+ 9FWUS6TesLdXTVrGJiOG/0uxqxoZbi3tFGXFiiKGkd6Ww5ycmbrI+w89mZVE2/VkOdgEx5 doztXxDqG7ncdz99yoyileXFHxGWKXidFWLzVgGDmzM2tbo2vOfBiZ1hdbIJ+wi3iIzyZH igUbpNBklFmnAlxNwBwr9/1QvhG8pAisMWfjsthGGhBY677Dny+5SrjOQxtltw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771379582; a=rsa-sha256; cv=none; b=El0IIoecOV1ss5wdiaOehrZ3mzzzCErRMZAnNHcJaIvT4PJM1/YxD699p5hTZabAk9klYP +m2MJTS4RSGd0dvAjKkTBXd43VYIAUXBKCkUzHS0IOgxgaTa9k2y4kGVnud6R69S8OCfJJ FB2mwBEoS9gex4HRbyTFHTclHqxTUH1TmB6oGAPKjsuRVURtiaZNQi/Cw3DtcS5vzSEXPx RY7iQrUSZHmS0NxC4CLf/CmbMmwtvgprSTaz38ueCBzn+XjwAoXhE7PAAPixZ8HEAaRyup mwryJIF2tpyf5IY17pxyfH+Dop6ru+EXgHiZX0wHTOnLJMn1FW17whbzYuYiag== 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=1771379582; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=H7EkTQGOUTVu2z15ZfdN06xWhGRl3Eff8kEL6GBzQ8A=; b=oIFwKSzh7fyvLgvEIPtk8PjeL81NQA2uCSmNCHc8sT4Wl2/V7k9BxXlU/FTQC/45geQc/q EBnBWRJ4/Wq95WP2T2itEDf0p2T3R+QkHBEW/JW4rEBCNNau2/0CQ62E9T17goyJg0c2SG X0X8bU+wfFGIYdbnnCGqN1Q9wxnO92iKprYrBIEZ5pbmdVsJCkl1bRi1UjVulbsguDKkhs fxYq6mq2caZ09OntPXFVYpJ6PIX0xeDlY6TleNQUka/ls49tBv5Duk8nKMxIX8nBC9L7fa x99XhBCMCXx376Js9Jne8pGM8hT1CMZbmdegKq37/Ylq93zcJplyM1jP1O6veg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFzzy4sDXzc7m for ; Wed, 18 Feb 2026 01:53:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 472c8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 18 Feb 2026 01:53:02 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Konstantin Belousov From: Colin Percival Subject: git: 37fa2e769581 - releng/14.4 - filt_timerexpire_l(): re-insert restarted timer into head instead of tail List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.4 X-Git-Reftype: branch X-Git-Commit: 37fa2e7695818d4da269a24e2de1a653828947dd Auto-Submitted: auto-generated Date: Wed, 18 Feb 2026 01:53:02 +0000 Message-Id: <69951b7e.472c8.74152afc@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=37fa2e7695818d4da269a24e2de1a653828947dd commit 37fa2e7695818d4da269a24e2de1a653828947dd Author: Konstantin Belousov AuthorDate: 2026-02-12 20:24:13 +0000 Commit: Colin Percival CommitDate: 2026-02-18 01:47:15 +0000 filt_timerexpire_l(): re-insert restarted timer into head instead of tail PR: 293141 (cherry picked from commit 75a30ea09f4e75480743fae5c2369d50a6d8526c) (cherry picked from commit 119af90d483aee79bf549b3d63e1093bb59e1092) --- sys/kern/kern_event.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index 835a22c81528..869c4cf24ddb 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -769,8 +769,13 @@ filt_timerexpire_l(struct knote *kn, bool proc_locked) PROC_LOCK(p); if (P_SHOULDSTOP(p) || P_KILLED(p)) { if ((kc->flags & KQ_TIMER_CB_ENQUEUED) == 0) { + /* + * Insert into head so that + * kqtimer_proc_continue() does not + * iterate into us again. + */ kc->flags |= KQ_TIMER_CB_ENQUEUED; - TAILQ_INSERT_TAIL(&p->p_kqtim_stop, kc, link); + TAILQ_INSERT_HEAD(&p->p_kqtim_stop, kc, link); } if (!proc_locked) PROC_UNLOCK(p); From nobody Wed Feb 18 01:53:03 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fG0001plVz6SSld for ; Wed, 18 Feb 2026 01:53: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fFzzz5b44z3QgN for ; Wed, 18 Feb 2026 01:53:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771379583; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=26lm+5maV6eLbmyvOy6J7t1/QwxKq4vxEIb3/TLElY4=; b=Wp+TIhc7gZW011iQ8uBzfU7o742aHvcAjP0N1dyJkurizQFIEXsYWFF7A9N3Fl3u6dzxLK HRG0w3+Rk4DBgwsgJ69UOWBRjBN+8kbbtUkKWU/KLftO0l8JUN9jlCHOpzJITty9aHHNec wYhHcVIafyGGJz6zAvAh09oKlnicAe4oP/HlmAmu8vIGYDo01q5eGZ7HzwTiGYnSEtoDnP Yht1u7t4U0Y6h22yZszmJ6DJhzZyDf9Ptw1HKZQUKGfo0sAsiH/Q9VgqbzTmKubtw52w3U W7NhPchPRdBBF276jJIRft3If3QnoHw9ihyiiXWThJ1bsWhOfGFGQfWYFiDB5A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771379583; a=rsa-sha256; cv=none; b=d7x2BGv8m+4MfbOqE9HBTDN87G/Z363zFF951tGIg5SwPXEnNbjNd9z8xFzDcSouqBb7q9 p8NheK74xdQhz6ufKr8rgpYB9snl6Kx135HsukTlh92v8MYWLLNh2/DovG5fNNN93Do93V IB3Ci7ajkOKBR1SqgYEIg/57aLWSeWWagxWbwiij3Te0LsqnmMq9iqb0oSQdcFH/kUzVRm ztVjKyOwXJ7ai9RTNgfViOXDq5PrWWCAEMBGGAXxrE/PZBEHIekgONuZT/jdlnVHjHR//M HCDK147HN7cFb1rIEG7yrEPaWw5P3/OULA/WwzFmgEuAbDvTFFCj7d0SSnL07A== 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=1771379583; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=26lm+5maV6eLbmyvOy6J7t1/QwxKq4vxEIb3/TLElY4=; b=XCA+gc7nyihxWosqdUEtWwnBXLvq4vGmqaBw/O7vpHjIwumP0p4XVoC+zu7HUloGo8lkxB 4JlYDtEBBjyxb/Wkiw5/mqdT7Oy+lF2/+nJgZn5lVA5lLZhiB8/DouP9mbP3bnYYb1n93H trbDj6tBJxXDNcMt6+flb30zUc2dAAcxI9xe9kodIs10JTnesEYwCvSWjm2S5/uFV5CJ0z jKyQmgF60KRDi+ezEz92bgjBIz+GJoevMNv523SWJgOKeEQPW9flks4ExjxGZmvlCt++wo 2xACAzdmSxgcljy1izTMxMLjEitju8NRWoCACffFn/jgfR6Q9p+rBOsEvYmztw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fFzzz57lfzbx6 for ; Wed, 18 Feb 2026 01:53:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 4664f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 18 Feb 2026 01:53:03 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Konstantin Belousov From: Colin Percival Subject: git: 39dd0d8a0d69 - releng/14.4 - kqtimer_proc_continue(): correct calculation of 'now' List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.4 X-Git-Reftype: branch X-Git-Commit: 39dd0d8a0d6929aa62191b616614135474e382d6 Auto-Submitted: auto-generated Date: Wed, 18 Feb 2026 01:53:03 +0000 Message-Id: <69951b7f.4664f.3c59a8ea@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=39dd0d8a0d6929aa62191b616614135474e382d6 commit 39dd0d8a0d6929aa62191b616614135474e382d6 Author: Konstantin Belousov AuthorDate: 2026-02-13 15:32:40 +0000 Commit: Colin Percival CommitDate: 2026-02-18 01:47:15 +0000 kqtimer_proc_continue(): correct calculation of 'now' PR: 293141 (cherry picked from commit e7f86f8b1383d278fff1d973230972325072ead6) (cherry picked from commit cf941029dd0291c8b685aa3f6d7872371e6136b9) --- sys/kern/kern_event.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c index 869c4cf24ddb..920256f8c1bd 100644 --- a/sys/kern/kern_event.c +++ b/sys/kern/kern_event.c @@ -710,14 +710,11 @@ void kqtimer_proc_continue(struct proc *p) { struct kq_timer_cb_data *kc, *kc1; - struct bintime bt; sbintime_t now; PROC_LOCK_ASSERT(p, MA_OWNED); - getboottimebin(&bt); - now = bttosbt(bt); - + now = sbinuptime(); TAILQ_FOREACH_SAFE(kc, &p->p_kqtim_stop, link, kc1) { TAILQ_REMOVE(&p->p_kqtim_stop, kc, link); kc->flags &= ~KQ_TIMER_CB_ENQUEUED; From nobody Wed Feb 18 01:53:04 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fG0011Bj1z6SSfr for ; Wed, 18 Feb 2026 01:53:05 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fG0006sljz3Qcm for ; Wed, 18 Feb 2026 01:53:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771379585; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5CKebPqMaIWXlfYdoN+r120DYmBZTL4LGH/UXQFg6u8=; b=f8BRuSEDetjiOZjk7byb8ksymOMLGYbXg/jC67qfBft9FnxVQgOdxU8Bl3ciAXfBSMD55N RKx0g2TXaq1yENFGkDghE7pSc/andX0aPZ1e+7HguLVmb+qO/9tnzkRYvUiEqk/9sNRoLg SlNtogG+QNlmzvZV3EcuHrzuaAue6Zur85sUTkUo0YTRv21vDJO6tTF4Oky+vf6TzgQ2+8 ZNRXJ/NLp74jO76q3+1hKnSYJfY3pim5nQGXmgolX5RF1Umn+aYJCd9I7FGX3Rbkd957Zj r+h0pHsFDgwvKvKFt2Fsrn6B76a6e8ctw4e8K8f4quV03tTUAGodlUqn9+awUw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771379585; a=rsa-sha256; cv=none; b=Sj+Ar5KZovR3AUnsvAsrn/z8rX3GmITqxBb5BAfWq++U79NbFJ7g16ExZSvZw/wuVkw50a E2vmLLgeFOStF0vxUVFAQCQZ1YGg7vF3tjfLfzqA+aHAGLXnI/ZlxlsFvU+/lW3QVqOzfu sowHDitfq8dHNKnli81QcEjRNihyqWa8l7B5tKZBilcldkTzJo/PpT5hDAvHJ0uLGURNTf ddfHw8yIxrTeFIhD/fWb7fGtDaHM/bTmjl9GIhaGEZO/Sr/c9P5PPLQ8zuQU61uswcn1wp GmcpX6zep9Gs+407HnZQkIEVYxKQH6hh0C2o1a/eaXJaDdu3RDhghLDIuWGdLA== 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=1771379585; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5CKebPqMaIWXlfYdoN+r120DYmBZTL4LGH/UXQFg6u8=; b=Q+ckZx85SVWsHd5/gc35KU9Rya2IbxqUuUxhmr/2Ywwy1KJoyezR/CmaMNngIsfP+n0Cj+ 5v3VaK2jyTkx3TDzkDHckBNoCrLQ9uYjyOpvJk+TrCFXmVcUoQFzlyFuolrWwVMCotpwZb Tf727OK2s045bz00V/RipEZ9u31p9KDulmakQ5WqwuylRSlV8uiSNuLUfp9eiqL7vnaKiL 1H88BGCAzA3Q66sPMz5JQFkOPwBbb6gZkRev52mc2aC7fZ092G12Q6xRB1Md8uuneOlmU0 tGVl+MpjOUJFqoR6Sdx/bP0iQ2BP9bo0XRNtcdNkgzfjsRlh2ziwMyCx/OFjKw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fG0006HryzcTK for ; Wed, 18 Feb 2026 01:53:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 47603 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 18 Feb 2026 01:53:04 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Konstantin Belousov From: Colin Percival Subject: git: 0235e9e56947 - releng/14.4 - unmount(2): do not allow MNT_DEFERRED or MNT_RECURSE flags from userspace List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.4 X-Git-Reftype: branch X-Git-Commit: 0235e9e56947c5419e2bef7562c2b7221b82c90f Auto-Submitted: auto-generated Date: Wed, 18 Feb 2026 01:53:04 +0000 Message-Id: <69951b80.47603.c893970@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=0235e9e56947c5419e2bef7562c2b7221b82c90f commit 0235e9e56947c5419e2bef7562c2b7221b82c90f Author: Konstantin Belousov AuthorDate: 2026-02-02 22:38:32 +0000 Commit: Colin Percival CommitDate: 2026-02-18 01:47:16 +0000 unmount(2): do not allow MNT_DEFERRED or MNT_RECURSE flags from userspace (cherry picked from commit cd8d44173adc375b59a24b1363476c086a7c86b4) (cherry picked from commit a893e8463ab2741204debd17901539708ec3a970) --- sys/kern/vfs_mount.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c index 85d14a943d01..5ca7c43269ce 100644 --- a/sys/kern/vfs_mount.c +++ b/sys/kern/vfs_mount.c @@ -1733,6 +1733,8 @@ kern_unmount(struct thread *td, const char *path, int flags) int error; AUDIT_ARG_VALUE(flags); + if ((flags & (MNT_DEFERRED | MNT_RECURSE)) != 0) + return (EINVAL); if (jailed(td->td_ucred) || usermount == 0) { error = priv_check(td, PRIV_VFS_UNMOUNT); if (error) From nobody Wed Feb 18 01:53:05 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fG0022DpQz6SScS for ; Wed, 18 Feb 2026 01:53: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fG0020CWpz3QjZ for ; Wed, 18 Feb 2026 01:53:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771379586; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=khFT8tEzaVIqKBtKNloLGz3izJaf9HraB56YIrFntps=; b=ELRU1fNoCM8yKa5E++r7wHM3IwjJnEYo7w5FoB4IsM27mNJBHwvlLCgS5WsfaxQ8bYZkVe POXuw7uP0fI4sj5cXYzzyXAZDJ8Vk6k0wrqROnakZiKTBlFh/+obELaY1r29Agex3BUUpO HnN3dm05lbuiQi3LLSBtDjGAOzRcTPbxqoYOmn9wpZeU7jQkO9QTNtnDHaAnGowqK7qJup o1Zm//PkMid55UgqFP9WmJ4exyLKEqa7Cm0bZRmUHN1k2Rd3u1/7JQALZGgHj2v4B7Oqp4 OCQJxpYGm5KJ3DfDoTeDSNqImjAf/tM5MT8nOazZdFvS828oKnEwNsbAD7+HSg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771379586; a=rsa-sha256; cv=none; b=UoiulDlTuvE/rwy3eAJyje3pjJm8d6zWheSgNrAvJFxbtFVmel45++uAWp3FSi7J0f/cJB xwU0cnxMLOQ9d3FPcgjokFM+gBY0wR9m4ljit2lo6EsYovMBHdLqgrQ+hG/aTUv+EI8orb +stp0uMOnVfG7tbK2gIZIT+CeFb3nZG+ljVlIs92yCJ0bpNRaBFjXZ9TyCDhkxPZDuk1C9 mOzYc3H92hGntx1FntVSOWvTnvxTQMjpogofuFeWWrjn5iA6Srr1SyX82JyayoELKK2uTq ERQsQB9JVUvn9jtNruKBQsXaFP2RcuCYArcgIwNbFKqNuZzem02np87GeUmrdg== 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=1771379586; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=khFT8tEzaVIqKBtKNloLGz3izJaf9HraB56YIrFntps=; b=IOCbUDylZsX8ur17ZTO7hrk+bBIhup7NxU4+Wn9mRyZ52k8/sRtioLumcfhZhbyck3L26a V1KHhkpSD8M+dBrugydcUDrSNrJy/XjQ0YOCWchujtrfs2nHJRaImqitHx7sUGsKuES+Fm Mmi6NV7HNH7xRXBKpb/BqQ3DVhenhlC1CQaq9LOafIup0FQ8FibLYo4ov2jVJJHPnCOJTW hB+o1IDMQVFWO2dWo61zWehCdmHPh9mQ16Hu5/zHUy5FF2ILznK0/UUbHRoIcgkxKN1DER g/3gIykbMhiYqSWorhKNA7eqTVUwzDrFC3YUFjWdlyRlJBBN2QujaZCxhVVwug== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fG0016q6RzcKG for ; Wed, 18 Feb 2026 01:53:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 4565c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 18 Feb 2026 01:53:05 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Konstantin Belousov From: Colin Percival Subject: git: 71ed9ae5e6ed - releng/14.4 - kern/vfs_unmount.c: promote flags to uint64_t List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.4 X-Git-Reftype: branch X-Git-Commit: 71ed9ae5e6ed72f172ae640382cb76c2e0f5d847 Auto-Submitted: auto-generated Date: Wed, 18 Feb 2026 01:53:05 +0000 Message-Id: <69951b81.4565c.1a485c6d@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=71ed9ae5e6ed72f172ae640382cb76c2e0f5d847 commit 71ed9ae5e6ed72f172ae640382cb76c2e0f5d847 Author: Konstantin Belousov AuthorDate: 2026-02-09 03:11:15 +0000 Commit: Colin Percival CommitDate: 2026-02-18 01:47:16 +0000 kern/vfs_unmount.c: promote flags to uint64_t (cherry picked from commit 8066b8923ebfd438dc8cb840d2f57066f4daa45d) (cherry picked from commit 00095a089604aba93ef265fb0a52e170bcb77da7) --- sys/compat/linux/linux_file.c | 2 +- sys/kern/vfs_mount.c | 4 ++-- sys/sys/syscallsubr.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sys/compat/linux/linux_file.c b/sys/compat/linux/linux_file.c index 1341df8bc7fc..4861dafe27b3 100644 --- a/sys/compat/linux/linux_file.c +++ b/sys/compat/linux/linux_file.c @@ -1169,7 +1169,7 @@ linux_oldumount(struct thread *td, struct linux_oldumount_args *args) int linux_umount(struct thread *td, struct linux_umount_args *args) { - int flags; + uint64_t flags; flags = 0; if ((args->flags & LINUX_MNT_FORCE) != 0) { diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c index 5ca7c43269ce..b380a7fdaf6b 100644 --- a/sys/kern/vfs_mount.c +++ b/sys/kern/vfs_mount.c @@ -1720,11 +1720,11 @@ int sys_unmount(struct thread *td, struct unmount_args *uap) { - return (kern_unmount(td, uap->path, uap->flags)); + return (kern_unmount(td, uap->path, (unsigned)uap->flags)); } int -kern_unmount(struct thread *td, const char *path, int flags) +kern_unmount(struct thread *td, const char *path, uint64_t flags) { struct nameidata nd; struct mount *mp; diff --git a/sys/sys/syscallsubr.h b/sys/sys/syscallsubr.h index 8fafb8ace311..ab56b22978c2 100644 --- a/sys/sys/syscallsubr.h +++ b/sys/sys/syscallsubr.h @@ -390,7 +390,7 @@ int kern_wait6(struct thread *td, enum idtype idtype, id_t id, int *status, int kern_writev(struct thread *td, int fd, struct uio *auio); int kern_socketpair(struct thread *td, int domain, int type, int protocol, int *rsv); -int kern_unmount(struct thread *td, const char *path, int flags); +int kern_unmount(struct thread *td, const char *path, uint64_t flags); /* flags for kern_sigaction */ #define KSA_OSIGSET 0x0001 /* uses osigact_t */ From nobody Wed Feb 18 01:53:07 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fG0036KkXz6SSlh for ; Wed, 18 Feb 2026 01:53:07 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fG0031Xgdz3QmP for ; Wed, 18 Feb 2026 01:53:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771379587; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ChxpwPYWreHrJ9QNn8iLXw6Y174q0ViCiW2BDLcIjKk=; b=TL4kiUR/ggnzp7u7WlNStqEEoaxedH7nTvI/kecNfFn0n/eDLqtbtxw4beg6PxUch5HGO/ cgBQOHSwNXKyq5k1WO3jWjv8tVVP79X+bvosiz9uE7iXM3yL43Zc0iD47CpTKm7h9qCqH5 Qyr7AUwPT5gdCmk+/+ZeECQA2mwZLGkkVPjge+P1jP3ateT5m5xTCi3uG93K3yPu3/lGAu aaVcNG8kXbR4MDf0PBz6YK0MDWH6/98scHPjwZo+Erdc/+9Ra637yzLvVeF9EPgCPHb/rh 9l41KeDjtDUoIIz21Aom2S97SJVjkbVQ+35zn2icaFxxx94RwzwHQipAuS+hrA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771379587; a=rsa-sha256; cv=none; b=AXgqtv8JoWie35YLUfNyw7iM0nhMWWCgRuhCa7qAD4wwPPXwpYhmbAo++D3LH7hXVbDkoM tZzy5wZOpjhdVuiwz1EY84h+uPYhp4vl5DwT1YNc0v3+QP5WAdejOVFACOB8pXH7q0gBFS 6QTRbMZe1RRysPYFs7+9LtarelUfaVO4snjZAgHIWaV8MeY3dqnHnVwaNHBI3U96gcMJoc rjVl7nDmSEyNvH42Wxa+fZc8QgkgTR/25k1MFh5J0O/k5oupplRMsrfHYGucjCJ2YmfiK1 tU7XxVZhEbA1c74v6/MHAhLY/ieaTnSt+aD6iNaWwbM4g89h48pDGB5AGk7GUA== 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=1771379587; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ChxpwPYWreHrJ9QNn8iLXw6Y174q0ViCiW2BDLcIjKk=; b=sKnwYPEN0PBLJelnTTlxjqIgcIrbVHVxQATzKUeeXnoVQOYPPXitbOG2EmYVey7aWKeUXY D6zoreTeUnw0EQCxBPA08mFQPLEjB0Oj75eHvkd+uiPAI/j24MH5buL7dcCuhib2wJUkX3 fjkQDytmIXHFPzo2cxVb9zj3XRVv7Hfz9Thdu/fWn/JdJLnsyjIrx/q95e8uSP3ZqLFp6J 9W9sxj3TQb/4/OfWDTAIVNUPMC3eO+UtwCz6XAR0QghFHihJgYpH5zGRRNbmYgG9LBPMbS GZWvL9ImYFsf8nxrCDFcsw1z56tXcrRYjZoUQ3PbLVaPhrZ8g0M9kO3+tKy2dA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fG0030VKYzcKH for ; Wed, 18 Feb 2026 01:53:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 457ff by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 18 Feb 2026 01:53:07 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav From: Colin Percival Subject: git: 6316ab68d331 - releng/14.4 - ngctl: Check hook name length List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.4 X-Git-Reftype: branch X-Git-Commit: 6316ab68d331098749ad1eac63a183a4c9ccda3c Auto-Submitted: auto-generated Date: Wed, 18 Feb 2026 01:53:07 +0000 Message-Id: <69951b83.457ff.8656ec9@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=6316ab68d331098749ad1eac63a183a4c9ccda3c commit 6316ab68d331098749ad1eac63a183a4c9ccda3c Author: Dag-Erling Smørgrav AuthorDate: 2026-02-13 15:57:46 +0000 Commit: Colin Percival CommitDate: 2026-02-18 01:48:33 +0000 ngctl: Check hook name length Check the length of the hook name when copying it into the sockaddr. MFC after: 1 week Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D55258 (cherry picked from commit 585190dff436eeea3be97300e36c82559028d3dd) (cherry picked from commit 71c0f48ab19fbac3d93e29d8964db2f215ddf722) --- usr.sbin/ngctl/write.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/usr.sbin/ngctl/write.c b/usr.sbin/ngctl/write.c index 1e86963fb39c..7ee8dcfaa241 100644 --- a/usr.sbin/ngctl/write.c +++ b/usr.sbin/ngctl/write.c @@ -35,10 +35,12 @@ #include #include +#include #include #include #include +#include #include #include "ngctl.h" @@ -63,6 +65,7 @@ WriteCmd(int ac, char **av) struct sockaddr_ng *sag = (struct sockaddr_ng *)sagbuf; u_char buf[BUF_SIZE]; const char *hook; + size_t hooklen; FILE *fp; u_int len; int byte; @@ -72,6 +75,14 @@ WriteCmd(int ac, char **av) if (ac < 3) return (CMDRTN_USAGE); hook = av[1]; + _Static_assert(sizeof(sagbuf) >= + offsetof(struct sockaddr_ng, sg_data) + NG_HOOKSIZ, + "sagbuf is too small for NG_HOOKSIZ"); + hooklen = strlcpy(sag->sg_data, hook, NG_HOOKSIZ); + if (hooklen >= NG_HOOKSIZ) { + warnx("hook name \"%s\" too long", hook); + return (CMDRTN_ERROR); + } /* Get data */ if (strcmp(av[2], "-f") == 0) { @@ -104,11 +115,10 @@ WriteCmd(int ac, char **av) } /* Send data */ - sag->sg_len = 3 + strlen(hook); + sag->sg_len = 3 + hooklen; sag->sg_family = AF_NETGRAPH; - strlcpy(sag->sg_data, hook, sizeof(sagbuf) - 2); - if (sendto(dsock, buf, len, - 0, (struct sockaddr *)sag, sag->sg_len) == -1) { + if (sendto(dsock, buf, len, 0, (struct sockaddr *)sag, + sag->sg_len) < 0) { warn("writing to hook \"%s\"", hook); return (CMDRTN_ERROR); } From nobody Wed Feb 18 01:53:08 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fG0044MzVz6SSlk for ; Wed, 18 Feb 2026 01:53: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fG0041wzMz3Qcy for ; Wed, 18 Feb 2026 01:53:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771379588; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bAQsCEUzHQraWeEGid0cEwwX3ZnHIz7biSt6jhitvTE=; b=o+dgDuz3bMtPpwVKidPmf7xad1D2H5LOElDI+q00dxZAW1CXSaHQRf3IoBIbnpJ4LhUJtb 7qm37AJ/CWC6bfwSYfcms3z6+fdzj1feJbNCAuRqFS+2duweJ7eUnbUc3Ju+QC7eDoB8WR seAY0Wp+KQ7QY17ZxGE1lfdze5i3nF+qwu9nET06PDzLQuEOJR4mK6m6E5snPGQfWeen+X c4voKHl1aTTJQCA3t7FvMUQKw3YpV4ZayLMp/VptirWx4+g2ay+BV2hA8qOqyIwU+/QKsE sQVdLJMlh1rWoIDzRq7xxdcSnBbt3eUp7VbomCbjGsmZuwJZoAZbaZJ+I7illw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771379588; a=rsa-sha256; cv=none; b=JcZ6VSYbMFqdSmdB3naDaXMDpHjBgXPy/DDBKikgs8l+rfzXBDixZdCc80ANOmfcEDlMCK OTutsjWXFPPHKn6QqRMvTmD6htt1zWH7wdVX2xHte53DGTeHKoLpjFi/ykwFsduje7+Siz +9vyn5/QicDI+Ak9CVP96PZ2lf4Ld/UdqbvDmjjQ1cnXGOBvvMocbD/dToBlFno4ewQ5vv AR2dVmv1UXDOWZjV4mBjPBNYikfO5hwkwP8Ph4feRI/N5Y+Ck9UwEtgQHUo5le5YovCPKe OxebnL4NUVuozIN9pEvKGQJtXCb6OorjaWqmagfKbphe8coqrzE+ec6pXmFx2w== 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=1771379588; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=bAQsCEUzHQraWeEGid0cEwwX3ZnHIz7biSt6jhitvTE=; b=H7xTbwd+/srsyxFnkm0vUronhN42hnk5UwjvQ6O2CL5UZzSs88iNaDqMBrxrMmM/bZ2RAu YFAnuhGhbeWWVrUW6mFsQ98Z6kHM45LFviKKV8ItZp9VtuthkiSNsxMjPBla2sC93wJvbA ds+6G0RR/z44hMXFzKrxW8sN3NNnec6v2lr3QNORsoy7MSguw5aswJgzcbjkJY0FXP292m gT0nDQlZs38J/i3G3o9TVKa6J5jM2WdgUvlyZmbcgaYNGgR5jVbTliix2s2/H/LWdO9kzz 0giGquarOxu+/N1AhcNNwYB7TNjDyFzxXR8i38zjLMV/Qj12EY6nIB6sl97dhA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fG0040vbFzcKJ for ; Wed, 18 Feb 2026 01:53:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 44fc7 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 18 Feb 2026 01:53:08 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav From: Colin Percival Subject: git: f16fc39527ee - releng/14.4 - ngctl: Fix buffer overflow in config command List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.4 X-Git-Reftype: branch X-Git-Commit: f16fc39527ee758aca81085c11e2b677895ee4e5 Auto-Submitted: auto-generated Date: Wed, 18 Feb 2026 01:53:08 +0000 Message-Id: <69951b84.44fc7.3477c742@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=f16fc39527ee758aca81085c11e2b677895ee4e5 commit f16fc39527ee758aca81085c11e2b677895ee4e5 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-13 15:57:50 +0000 Commit: Colin Percival CommitDate: 2026-02-18 01:48:33 +0000 ngctl: Fix buffer overflow in config command Keep track of our buffer length when assembling the argument list. PR: 293075 MFC after: 1 week Reviewed by: zlei, markj Differential Revision: https://reviews.freebsd.org/D55259 (cherry picked from commit 59906a163e474c8d00bdebe226c4d47332b91bad) (cherry picked from commit e5bf728058da2b9cdc056e49bd82b57310588b3e) --- usr.sbin/ngctl/config.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/usr.sbin/ngctl/config.c b/usr.sbin/ngctl/config.c index 261bc950f570..611975ef5b10 100644 --- a/usr.sbin/ngctl/config.c +++ b/usr.sbin/ngctl/config.c @@ -62,7 +62,7 @@ ConfigCmd(int ac, char **av) struct ng_mesg *const resp = (struct ng_mesg *) sbuf; char *const status = (char *) resp->data; char *path; - char buf[NG_TEXTRESPONSE]; + char buf[NG_TEXTRESPONSE], *pos, *end; int nostat = 0, i; /* Get arguments */ @@ -70,20 +70,26 @@ ConfigCmd(int ac, char **av) return (CMDRTN_USAGE); path = av[1]; - *buf = '\0'; + pos = buf; + end = buf + sizeof(buf); for (i = 2; i < ac; i++) { - if (i != 2) - strcat(buf, " "); - strcat(buf, av[i]); + if (i > 2) { + if (pos == end) + return (CMDRTN_USAGE); + *pos++ = ' '; + } + if ((pos += strlcpy(pos, av[i], end - pos)) >= end) + return (CMDRTN_USAGE); } - + *pos = '\0'; + /* Get node config summary */ if (*buf != '\0') i = NgSendMsg(csock, path, NGM_GENERIC_COOKIE, - NGM_TEXT_CONFIG, buf, strlen(buf) + 1); + NGM_TEXT_CONFIG, buf, pos - buf + 1); else i = NgSendMsg(csock, path, NGM_GENERIC_COOKIE, - NGM_TEXT_CONFIG, NULL, 0); + NGM_TEXT_CONFIG, NULL, 0); if (i < 0) { switch (errno) { case EINVAL: From nobody Wed Feb 18 08:04:35 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fG8Dg6RVcz6QTwP for ; Wed, 18 Feb 2026 08:04: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fG8Dg3n2Nz45V4 for ; Wed, 18 Feb 2026 08:04:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771401875; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2IT0wn0mwvt3xaqC/Hs0IvxZYub2feOXCg7s8xjSkyo=; b=ai2KzBuW7VhJGdnvP+HzY2fxvLc4lx0qiXmnCDl1VFiKfJQGKRMRDlSYwi30sBPzHCKDJl jgW3qaByvx5U7H/VIZXcv1vshKa5uf+E4AteegC9pwbt0gUDVs3HrCJifFLUnmnbaG4drw 8fjYvDju1JWLJZ938OA1gFIKTnVYmkMv2ni/exa5+kPPjCFEJ5N2ia6qqiRKnwz7zFUIJl 4exjUcm5F4A4DJL9L2es/4vc37DSR2E8nDsDB77+C2uVjBTYDSYT02+xFpmI7ANgMIar12 6tXJqxeRv2LdMPX0A580IwhgHCmnDRAvegY1mJhgFEppDg10NLY2Q5T+XSwGkQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771401875; a=rsa-sha256; cv=none; b=MVCOXhXa3hWQ3Jo6WHb7giglSFdMuhFujYNBBLUNV2I7lVLjBDkqE/C6IfLzzaQHa5PEB+ jP9kB0tKFbj777NkiNpqllkFLjQ0Yi6cOhpEH4ipKNBnp0u7PzNlOWW69PJpTQfi4IKlqR h096XDsT6idpOfBF+y7CNUU+SKpWKqos2uzdCUR+zXNWP3uSV0RoejSF5prM7MaxZVfw46 lqK8cNyN6/kHPjOunIhV3PBTTSPq2iWAvoJWXt1hUSm+OPSyMZCywhG4RqL0/fyhmd9Q5c BW+CUheJXRuxTCCwBzAIfx0hd6bgmLt/o//FHFLx278hWWTxWE0F6tyl/3enmw== 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=1771401875; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2IT0wn0mwvt3xaqC/Hs0IvxZYub2feOXCg7s8xjSkyo=; b=iZ2PcZOPV8GEHK5hP3tmqnj/mdQ4Fhf7eQi37qsgBo6vWZldtbjOPsxvM6xc9nrSM8u6mM 6tknvLzAKuih4mr5RM4V+31TaiFukZ9QkFr051X0MzNsAo9lF/wN1Bx9C5D7GwRn1taG80 anE8Vec422TLVLjmmZ3aakRv/kXlhWjnDu4yWgQq421mjg8PXd9kKKbkCBr7m2/UdUPSXZ PZNZJCU5XHPjcb8AcCQaj19OLVrVf8AO0bFfsYIvihORyimyLaaxrSZMXVU9KQKlzkwCnm B+T53bRhxQ8qC2tZYiJeZ82hj2IOftRiwiqEvXkxfEKJFtlC6CMg74zurU3ShQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fG8Dg3MSxznNY for ; Wed, 18 Feb 2026 08:04:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 45fdc by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 18 Feb 2026 08:04:35 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 48aeff4df8e7 - stable/15 - open.2: grammar improvements List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 48aeff4df8e74eb7cc8f75f64be79cc0e7bdcacd Auto-Submitted: auto-generated Date: Wed, 18 Feb 2026 08:04:35 +0000 Message-Id: <69957293.45fdc.6965c870@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=48aeff4df8e74eb7cc8f75f64be79cc0e7bdcacd commit 48aeff4df8e74eb7cc8f75f64be79cc0e7bdcacd Author: Konstantin Belousov AuthorDate: 2026-02-16 15:34:35 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-18 08:00:50 +0000 open.2: grammar improvements (cherry picked from commit f1f142c01db43c7dc8d0d172fc1726da2ee01972) --- lib/libsys/open.2 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/libsys/open.2 b/lib/libsys/open.2 index b4463180e4bc..4527100252eb 100644 --- a/lib/libsys/open.2 +++ b/lib/libsys/open.2 @@ -81,9 +81,9 @@ and relative .Fa path , when .Fa fd -references directory and without the +references a directory, and the .Va O_EMPTY_PATH -flag, +flag is not specified, the file to be opened is determined relative to the directory associated with the file descriptor .Fa fd From nobody Wed Feb 18 08:04:33 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fG8Dd6xvJz6QTSN for ; Wed, 18 Feb 2026 08:04: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fG8Dd3nnfz45S5 for ; Wed, 18 Feb 2026 08:04:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771401873; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4ONlSF8WffXAf21qme+p3Jn/gD17nw6bLJR+NV7pPuE=; b=PfhPArOOCFFhj8xMjYm8raD1nhSsdFYb+EfyE91wL5lkD7JO4fng4MrO1t5vM447bc2uSS Wo0Y5gwC4zlBE8BqYHA92GuiaMWOsoYYRKuZxhKAIAkW1OOyJs9193cggOCJ/ULaDXgkwE whu2vggW4EyGbaHvT6EcPHXW6RiDeIIleolyFh43iwYoc5xHsrmXmB1wsl2dALQM3B2rJF eQDreYtWcV02dw3Ntp9Mz2upOtOZl/ykghQ1E002eEZCPiU2KFLb+cTIpuSEJ7PpkWhWkM D0TlmOG4zik/J3SDIa3KOBQSuqNGJTFBqVrayDoZ27aqg0/IkefuYJcr/yTYbg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771401873; a=rsa-sha256; cv=none; b=mMQYWj8PgSrE74AOBznxYRlooFONsEzeSLVNtFnPsdq4bslRrk+ZrVjdrWKFEb8lrwCtwH +Cb97MDyuY563Zyzssac2vlGSDkv6w37DzYlv6e7Tt+9RUHMs3FLACYFXbSED4WbIGYFIj HKVQ5O6fekBzpPp0NLcFYIzRdWmV/XqK999jb0ckn1vsqflSneRUUvrcrqT4h4ubKmC5yZ dtSK+FsD6Dckqv0sBpUmgdcIzDobRfBwebLutqE/nm8urncJBf6xLVNzIzl6+DL3U+2Bi9 ubaWLQWqchTqssPGoEFXR4h66Jk9VO8BIeOd55OZuYMw0oUcKRRlyUHCtCrNEw== 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=1771401873; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4ONlSF8WffXAf21qme+p3Jn/gD17nw6bLJR+NV7pPuE=; b=Y9R/uvRYP8ZXReM6iN2LiGTucgDVIKRihLV/Zq0P6LgfbJpw7PUBYkCiPA+5nvK3ReHxg3 BN9J3Jflh2aEnV10/lQoCxTwPHsrxv7ek09Rryp/Maa07liM+9Eo3XPPWF3qW5r1M/vh3Y QJSUY185gMWNbMvFkYMSkM/WO+gmt+eB/U9Lmp5QuhfQuvfOEELbPDOnZY5loreBnoeDD8 Y1xMAj4Er4rFa4uhV4uXwPNDRbe4qRxfoTqo4kw4heHlLO3J3OLPNiLsXzMgVZqE9stS/C eP+Gvj1kyWOw8QAUsJcY4wzxXcTCwjxW4/yiBIfQa4C82ABi52yMP/ZhCXOqfg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fG8Dd2qH0znTn for ; Wed, 18 Feb 2026 08:04:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 44d50 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 18 Feb 2026 08:04:33 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 532c8d3f90b9 - stable/15 - amd64: add LASS support List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 532c8d3f90b95fb13b320cdfdc89e3d7d08875db Auto-Submitted: auto-generated Date: Wed, 18 Feb 2026 08:04:33 +0000 Message-Id: <69957291.44d50.7ebebeca@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=532c8d3f90b95fb13b320cdfdc89e3d7d08875db commit 532c8d3f90b95fb13b320cdfdc89e3d7d08875db Author: Konstantin Belousov AuthorDate: 2024-10-24 02:12:25 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-18 08:00:04 +0000 amd64: add LASS support (cherry picked from commit 89589b6d3fbac43eb7c6b3cdbdd6f077888b2142) --- sys/amd64/amd64/efirt_machdep.c | 4 ++++ sys/amd64/amd64/initcpu.c | 13 +++++++++++++ sys/amd64/amd64/machdep.c | 1 + sys/amd64/amd64/pmap.c | 9 +++++++++ sys/amd64/include/md_var.h | 1 + 5 files changed, 28 insertions(+) diff --git a/sys/amd64/amd64/efirt_machdep.c b/sys/amd64/amd64/efirt_machdep.c index fe5d60c978dd..203b2b264587 100644 --- a/sys/amd64/amd64/efirt_machdep.c +++ b/sys/amd64/amd64/efirt_machdep.c @@ -348,6 +348,8 @@ efi_arch_enter(void) */ if (!pmap_pcid_enabled) invltlb(); + if (lass_enabled) + load_cr4(rcr4() & ~CR4_LASS); return (0); } @@ -357,6 +359,8 @@ efi_arch_leave(void) pmap_t curpmap; uint64_t cr3; + if (lass_enabled) + load_cr4(rcr4() | CR4_LASS); curpmap = &curproc->p_vmspace->vm_pmap; cr3 = curpmap->pm_cr3; if (pmap_pcid_enabled) { diff --git a/sys/amd64/amd64/initcpu.c b/sys/amd64/amd64/initcpu.c index 7f317674907e..4c57c27596ad 100644 --- a/sys/amd64/amd64/initcpu.c +++ b/sys/amd64/amd64/initcpu.c @@ -290,6 +290,19 @@ initializecpu(void) if (cpu_stdext_feature2 & CPUID_STDEXT2_PKU) cr4 |= CR4_PKE; + /* + * Any CPU having Linear Address Space Separation (LASS) + * should have SMAP, but check it to be sure. Otherwise + * userspace accesses from kernel cannot work. + */ + if (IS_BSP() && (cpu_stdext_feature4 & CPUID_STDEXT4_LASS) != 0 && + (cpu_stdext_feature & CPUID_STDEXT_SMAP) != 0) { + lass_enabled = 1; + TUNABLE_INT_FETCH("hw.lass", &lass_enabled); + } + if (lass_enabled) + cr4 |= CR4_LASS; + /* * If SMEP is present, we only need to flush RSB (by default) * on context switches, to prevent cross-process ret2spec diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c index e56de986ccba..20d221279bd3 100644 --- a/sys/amd64/amd64/machdep.c +++ b/sys/amd64/amd64/machdep.c @@ -204,6 +204,7 @@ int cold = 1; long Maxmem = 0; long realmem = 0; int late_console = 1; +int lass_enabled = 0; struct kva_md_info kmi; diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index 243a6625bece..8695dd61316e 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -1737,6 +1737,7 @@ pmap_bootstrap_la57(vm_paddr_t *firstaddr) { void (*la57_tramp)(uint64_t pml5); pml5_entry_t *pt; + uint64_t cr4; if ((cpu_stdext_feature2 & CPUID_STDEXT2_LA57) == 0) return; @@ -1757,8 +1758,16 @@ pmap_bootstrap_la57(vm_paddr_t *firstaddr) KERNSTART + amd64_loadaddr()); printf("Calling la57 trampoline at %p, KPML5phys %#lx ...", la57_tramp, KPML5phys); + if (lass_enabled) { + cr4 = rcr4(); + load_cr4(cr4 & ~CR4_LASS); + } la57_tramp(KPML5phys); printf(" alive in la57 mode\n"); + if (lass_enabled) { + cr4 = rcr4(); + load_cr4(cr4 | CR4_LASS); + } } static void diff --git a/sys/amd64/include/md_var.h b/sys/amd64/include/md_var.h index 19eab48168f7..7bb8ace27061 100644 --- a/sys/amd64/include/md_var.h +++ b/sys/amd64/include/md_var.h @@ -45,6 +45,7 @@ extern int hw_ibrs_disable; extern int hw_ssb_disable; extern int nmi_flush_l1d_sw; extern int syscall_ret_l1d_flush_mode; +extern int lass_enabled; extern vm_paddr_t intel_graphics_stolen_base; extern vm_paddr_t intel_graphics_stolen_size; From nobody Wed Feb 18 08:04:34 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fG8Df5KDjz6QTp4 for ; Wed, 18 Feb 2026 08:04: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fG8Df3HqXz45X9 for ; Wed, 18 Feb 2026 08:04:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771401874; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qKyDSUL1amNwxlBr23pQPkafbtd3ICwJA927eXJeYCw=; b=kOFSA7CHqV2coHZ4Z9dc4dCNl2bI18Ww9lam0Q65n9YmJMCaxi8N3ACI1h/tmmTG+TPzrc GOIUKhV05W39jbC1BSHp3XIYnvhHYg3fZR++v7DbR8YwRcPC9ii98DJnI/olvAe3xerMFx /h8Am3RTo/SWkicM+DGUAc/+yu0Xq0yq79ri0ivvSDNjqyxReD+6jO/BxukubMR4e7g78v WD+xXz1b2Et0VpEHuU2i1WwRch/aE0AFtSrzcSs3dPhEqXrgtZGAI4wX+ibdpQ3kr4uoCr 7jyJYbKPb8UwQd/lRFIHLOUkBkSoIx7VlDuUvJAlipM2G0mV5F87fQvNLKQTVg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771401874; a=rsa-sha256; cv=none; b=bAEA1Utt28bOLJmwGck2ZdE0JG02hZUBtAtVZmWUQyo+aCi7vDWnIM1/mPziGI/CJeUBQe sd/1/zosonXP0c58JzGoSzacNu4YT1j+rb8AVcVY+znruw7ySRE3OHuyHTkxd5WJLkqbyc v9T1n80cPeB5Cc/aY7bHqipvcUWbirUZCW4K0VDxxLKC+IqMX5IWHAgGEeDcYqYJpk1Ley nx1JV33vJRWWK5VNkJW2bz9W7WRrE7L9Mf5oZfYx7b9L88+imKpSmEOcCfzx4GmrWlpoVY WqwkOT2sjj/WZglvQd+NUkSkTTzlqsESSnxcUWR189fEZqeNgkwbG6Yk8eQJQA== 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=1771401874; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qKyDSUL1amNwxlBr23pQPkafbtd3ICwJA927eXJeYCw=; b=yFPbusdoe06f24fzglBG49dTvotamjTrYl9xyVArYg7Z/OicagqHmYHPzx8RAkCXUsf19u IFBeoHvUz7qYv1DN3OpSNlU4U2wXRfrztquKE3GjUzvhKMYjAy5shM/McPY82JC/r+rp/T 6B0h+txYofc2jSzjiVR2JV6Ye5OtMxjYuTBWvImRB3ZqIcXJoi9h/QmCiUJuGFqhnObwt2 B/1ZbVJxobv3EwkTszIq2Q3Ft8DwL9mVWRqfeUQPv4ahkwu5nNYlq0lNVR7EllqFQSOslF K9VUImZpcLNMmYSgISQKwKpsj/IwaNLhtgbZpm55di8GJqWU94c1m8rwBakbgA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fG8Df2cHdznr5 for ; Wed, 18 Feb 2026 08:04:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 43fe3 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 18 Feb 2026 08:04:34 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 4338c437910b - stable/15 - open.2: stop making impression that fd must be directory List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 4338c437910bfd3ab262e4f4f544590f968b8d30 Auto-Submitted: auto-generated Date: Wed, 18 Feb 2026 08:04:34 +0000 Message-Id: <69957292.43fe3.2fc76e8e@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=4338c437910bfd3ab262e4f4f544590f968b8d30 commit 4338c437910bfd3ab262e4f4f544590f968b8d30 Author: Konstantin Belousov AuthorDate: 2026-02-16 07:28:22 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-18 08:00:04 +0000 open.2: stop making impression that fd must be directory (cherry picked from commit 5bcccc702b29a0e173a5916b001771dd7b280c7c) --- lib/libsys/open.2 | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/lib/libsys/open.2 b/lib/libsys/open.2 index a0e905a8f375..b4463180e4bc 100644 --- a/lib/libsys/open.2 +++ b/lib/libsys/open.2 @@ -72,11 +72,18 @@ function is equivalent to the .Fn open function except in the case where the .Fa path -specifies a relative path. +specifies a relative path or the +.Va O_EMPTY_PATH +flag is specified. For .Fn openat and relative .Fa path , +when +.Fa fd +references directory and without the +.Va O_EMPTY_PATH +flag, the file to be opened is determined relative to the directory associated with the file descriptor .Fa fd @@ -104,6 +111,14 @@ it ignores the .Fa fd argument. .Pp +When +.Fn openat +is called with the +.Fa fd +argument that does not reference a directory, the call fails unless +.Va O_EMPTY_PATH +flag is specified, see below. +.Pp In .Xr capsicum 4 capability mode, @@ -421,9 +436,11 @@ by the descriptor at the time of the call. .Pp .Dv O_PATH -returns a file descriptor that can be used as a directory file descriptor for +returns a file descriptor that can be used as the first argument for .Fn openat -and other system calls taking a file descriptor argument, like +and other filesystem-related system calls collectively named +.Fn *at +taking a file descriptor argument, like .Xr fstatat 2 and others. The other functionality of the returned file descriptor is limited to From nobody Wed Feb 18 09:46:51 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fGBVg6HxKz6Rs9w for ; Wed, 18 Feb 2026 09:46: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fGBVg4Ch7z3J6S for ; Wed, 18 Feb 2026 09:46:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771408011; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8BAZAiAQbsG6q/k49b4VN4P1IfaXIdpW10TKc/Qp31A=; b=eUpnEZ1JV5S8uVj+jFFUiypDuO4IpnyxewMwC1GHTFrCcJLwpJzpOquAy/KWrmZ8QXveiu A+9/5eEk7U0rZfah/lXWU8bOHnGja9Mq+JukGZJ2SfvNCi2nbDSYg+ESOMBC5LtK4uc0Vd zah8qdfc0Gp0+fOZMeLd/Wzrw6+voRhY2OJpFrkXLe+bNkdVslYgZN9iNysbo+RgAAcYJw I0B4AtWuPhniw1wjtz0ih7tyaDLOD9hAlyCWbka4PjvqC2jjsIThR05NJimGaNOThXDP7O tBJUNC9jSc+A1SjX05XcQuq/9FruQarIf2AJGt6EFa7KLZ41Y48AyoTAydl35Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771408011; a=rsa-sha256; cv=none; b=r0nD9AgVDwwh1mPjqSAuXnsOFfNga3UTrh9ue8wLIg4JywWYHGTWVUPIhVrMmzKYqWm4zc hvEgUNXfarLsTEPmHWpli7HX9oulZGiGSk7cxmOskwHwjKm2hbziughaz2zE3jg6SspXLO IpyB8OVx19wnGyzkZ0SFIg+eqDgoMBve11qvhSF7qYbO9LNOyVaDhhqxpB0cl9nPADz3No kOS8Nazdx9dRnPEqx+/XmoVZAG/qf3esq+Et/PfVSBSDee+sV1ZojOBKx2GYkZllvQuDfv IeDdjclD5K9NBI02VcvR2oFDE3YCVI+c1hRfho0vKDXHK6xg6MERZwODHGS5cw== 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=1771408011; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8BAZAiAQbsG6q/k49b4VN4P1IfaXIdpW10TKc/Qp31A=; b=BKC6mMLJISebBe72sI8XGfKbvD13czrhxeODhT2SRu+EDNyOPA29RQroauVLo0YeLaEbM0 KkjrYMRM8ZFQUGB2e5GoX3LQL0Ei9rCK5uc1EDjrgzaFFrtOGdIkQ/+3dCHvHF9+5v8ETm X5QPOLlqFsJHoG/fnxZ+jteFjBeT/RYwMeRgTLyUqdVQpV7QoAka8LJwdYim1kr32QxIxX lvp38cMe9uV4j8iLmGYEkRJwROy5aK+TZ10hXLgzj9wipZQmkvfDuSp2BJ8XEaKJUrgoVh 02iqmpSCJf9jotnR4x5Ez1uY+iBhiFikJlfqhzKImqu1j1Ch3eQTlkDiUX+DVg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fGBVg3bPdzrNC for ; Wed, 18 Feb 2026 09:46:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 21317 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 18 Feb 2026 09:46:51 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dmitry Morozovsky Subject: git: 05305aceebab - stable/15 - pw: make manual page more friendly for uid/gid search List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: marck X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 05305aceebabbf304f1fec312f2942f10535fe10 Auto-Submitted: auto-generated Date: Wed, 18 Feb 2026 09:46:51 +0000 Message-Id: <69958a8b.21317.545ef0a8@gitrepo.freebsd.org> The branch stable/15 has been updated by marck: URL: https://cgit.FreeBSD.org/src/commit/?id=05305aceebabbf304f1fec312f2942f10535fe10 commit 05305aceebabbf304f1fec312f2942f10535fe10 Author: Dmitry Morozovsky AuthorDate: 2026-02-11 19:34:00 +0000 Commit: Dmitry Morozovsky CommitDate: 2026-02-18 09:44:50 +0000 pw: make manual page more friendly for uid/gid search pw.8 structure is quite different from usual manual page, especially in describing -o option usage. Specifically, these paragraphs do not contain "uid/gid" terms, and have "user id"/"group id" instead, making searching for "override duplicate safety belt" difficult. Try to simplify such searches. Also, clarify uid/gid space between 100 and 1000 as "somewhat special", as it actually is. Discussed on: russian telegram FreeBSD group Reviewed by: eugen, novel MFC after: 1 week (cherry picked from commit e89454417b2bfecce9daee10dece2f49632640d3) --- usr.sbin/pw/pw.8 | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/usr.sbin/pw/pw.8 b/usr.sbin/pw/pw.8 index f6d9ebca6308..9b75ff772c25 100644 --- a/usr.sbin/pw/pw.8 +++ b/usr.sbin/pw/pw.8 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd August 19, 2025 +.Dd February 11, 2026 .Dt PW 8 .Os .Sh NAME @@ -572,8 +572,8 @@ It is possible to use to create a new account that duplicates an existing user id. While this is normally considered an error and will be rejected, the .Fl o -option overrides the check for duplicates and allows the duplication of -the user id. +option overrides the check for uniqueness and allows the duplication of +the uid. This may be useful if you allow the same user to login under different contexts (different group allocations, different home directory, different shell) while providing basically the same @@ -686,6 +686,9 @@ In general, user and group ids less than 100 are reserved for use by the system, and numbers greater than 32000 may also be reserved for special purposes .Pq used by some system daemons . +Also, uids and gids between 100 and 999 are commonly used by pseudo-users +assotiated with third-party programs, and generally should be avoided for +assigning for normal users. .It Fl w Ar passmethod The .Fl w @@ -886,7 +889,7 @@ also has a option that allows allocation of an existing group id to a new group. The default action is to reject an attempt to add a group, and this option overrides the check for duplicate group ids. -There is rarely any need to duplicate a group id. +There is rarely any need to duplicate a gid. .Pp The .Cm groupmod From nobody Wed Feb 18 09:48:00 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fGBX04h9Sz6RsGJ for ; Wed, 18 Feb 2026 09:48: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fGBX021wvz3JcH for ; Wed, 18 Feb 2026 09:48:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771408080; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BRK2Mov/P4kGCGAGxReRnIarv4yHilnSwxnxb2VTupE=; b=DGY+A4Pdx0Y/R6fTpDO38tC5kDMHqy9bR16+W65TEyYIoEtKjPUitW5CwAzlYcabYquj4K L7QZQydMIJg1okIIWQi6k6ryOfGG+kxMWOujmDoadrmQX5R0jJQxVRfX5EgF3uDRce8MR0 n6NY67+UCMQfFoqQsuztCo57dXDoGiO4QqbB/qG24d3zUhFaIsGOXchEXPLS7cODrbIJ7x I28kgY59bnQPtHk3kMzGs65BnYo7/vHaIAEoiuHt/3/JmuILi0tSW2YRxegz6xfP0gQr/b g2EzmpzLLJnG1LtxQq1b3r2zyD7XpXN18b5Wf5r0TVHPyIZ8QYHKKpkaiHDR9w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771408080; a=rsa-sha256; cv=none; b=qHLFcSK2/u509C85LVUDrN8A4iycMgnFlbbKzKstoTLnMQA2k5LNBUIKORVFvmj6AvpZ9n x3oJP6Qr5Cvx0QRLYterxsxoehQR4OEUbvd673xyr9kUxexggKHhLDALkXbGzXsmk68fpx AuIqiX4tatjYGWzNgjrMi3B1eY2gqREPWtEzY9BDADFQDPTEeLPgEZGP49VROjwUVQDMrh OsWBmmK+mR6E3fdNiNCeNVIH902XKqpiVEtOju/dFMHXDhwl0vq6BjLlhncsSON7jnfPUJ 1gom8nyqobKc0OOnIh4dT8T0DIGrYleGJUED+pduSQDklKrrGivWbu6S05DD2w== 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=1771408080; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BRK2Mov/P4kGCGAGxReRnIarv4yHilnSwxnxb2VTupE=; b=B78YBjF2qRcp4sDw0yQANt5Ggd0Z7M77/rhnNC2xMO2f31LBMpDqSl1E5SZkLl5MOBbxQ5 f5RBHruuWgzrZW1YIbsjde+r2wsdATKEN/6jXfl7mzb1u0NNAtIeBJVAZoWXPQSlMUvgFX d4OjXOrEBj1U6xj9oStuNOSHkZu+kD/RcXAM0XXKG9u5yiXf3uZnV8yhHvmNcCImiErhLL l35gTJRN/qzqr0yZhTqp5Qn/R11XYWEp0y9touh5oa32KyKhpNE2KQahnk/N3D0pQwQg4c oYlpKXq1MWnTIpcSwvvQph2cfZj1LnazyOdQA2uhrj7uSC8MdYwc8mRi/CAhzA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fGBX01ZHgzrQp for ; Wed, 18 Feb 2026 09:48:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2106d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 18 Feb 2026 09:48:00 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dmitry Morozovsky Subject: git: 8a2d04cf8c86 - stable/14 - pw: make manual page more friendly for uid/gid search List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: marck X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 8a2d04cf8c866ff3a6f358257d7aeeefbdd84455 Auto-Submitted: auto-generated Date: Wed, 18 Feb 2026 09:48:00 +0000 Message-Id: <69958ad0.2106d.1e1f2029@gitrepo.freebsd.org> The branch stable/14 has been updated by marck: URL: https://cgit.FreeBSD.org/src/commit/?id=8a2d04cf8c866ff3a6f358257d7aeeefbdd84455 commit 8a2d04cf8c866ff3a6f358257d7aeeefbdd84455 Author: Dmitry Morozovsky AuthorDate: 2026-02-11 19:34:00 +0000 Commit: Dmitry Morozovsky CommitDate: 2026-02-18 09:47:48 +0000 pw: make manual page more friendly for uid/gid search pw.8 structure is quite different from usual manual page, especially in describing -o option usage. Specifically, these paragraphs do not contain "uid/gid" terms, and have "user id"/"group id" instead, making searching for "override duplicate safety belt" difficult. Try to simplify such searches. Also, clarify uid/gid space between 100 and 1000 as "somewhat special", as it actually is. Discussed on: russian telegram FreeBSD group Reviewed by: eugen, novel MFC after: 1 week (cherry picked from commit e89454417b2bfecce9daee10dece2f49632640d3) --- usr.sbin/pw/pw.8 | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/usr.sbin/pw/pw.8 b/usr.sbin/pw/pw.8 index f6d9ebca6308..9b75ff772c25 100644 --- a/usr.sbin/pw/pw.8 +++ b/usr.sbin/pw/pw.8 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd August 19, 2025 +.Dd February 11, 2026 .Dt PW 8 .Os .Sh NAME @@ -572,8 +572,8 @@ It is possible to use to create a new account that duplicates an existing user id. While this is normally considered an error and will be rejected, the .Fl o -option overrides the check for duplicates and allows the duplication of -the user id. +option overrides the check for uniqueness and allows the duplication of +the uid. This may be useful if you allow the same user to login under different contexts (different group allocations, different home directory, different shell) while providing basically the same @@ -686,6 +686,9 @@ In general, user and group ids less than 100 are reserved for use by the system, and numbers greater than 32000 may also be reserved for special purposes .Pq used by some system daemons . +Also, uids and gids between 100 and 999 are commonly used by pseudo-users +assotiated with third-party programs, and generally should be avoided for +assigning for normal users. .It Fl w Ar passmethod The .Fl w @@ -886,7 +889,7 @@ also has a option that allows allocation of an existing group id to a new group. The default action is to reject an attempt to add a group, and this option overrides the check for duplicate group ids. -There is rarely any need to duplicate a group id. +There is rarely any need to duplicate a gid. .Pp The .Cm groupmod From nobody Wed Feb 18 09:51:44 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fGBcK4fDRz6RsYc for ; Wed, 18 Feb 2026 09:51: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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fGBcK16VXz3K95 for ; Wed, 18 Feb 2026 09:51:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1771408305; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KBzrl2kylABTKUaQnX3CGRIrHpzZnpIq6+0Ej//ffcE=; b=QL/E6fyTUI0fpz5JXgUJagfNZLkqxcYBoGpaCRti8nD1OVMYtb17ij3Rh/G1H76YKo7s7Y WXzA0MLg5LUr2UzFSWk1GCOlcjtCdY9fohDYhOJLKDX7jxN2LFuorYZD55ojfYEtK9gS7v YSmvjywaXRGIH++NZ1aKYlY7Yx+Q0tTUXvvtlD1XDma1Ia0V+zxUJgz4Bkg0h6/mW9d1d2 VOVrk2X0stkPI2ElvROqFmHTVSBcKirFSRz93eAbDz8a5Js6klxramMzeT8CILtYE9t0tS cCIjhibs0sXPiDxXe4WagND9x8Vzi0F2o3dyz1tYCPtaJbyE/Hy5/+Gff5PyRg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1771408305; a=rsa-sha256; cv=none; b=f66TH2guGiRjN4Lvg/6zfIqiWKVnSN6fMleOoSiLBxAUSDEVeo/KTIuF7t7vczLP8P5voM iiEeIFg+pwh9vLAkPrsZh4SoBKdI6T26bP4KKH/4hEiLWYRJ9u8d3n/1pfPbmxeA+KUQTB xj+IbzLBUbddyhMkIZ1JHlZKzzJRyvOKLO1LPEsodIT9KYxF3elExNbM6xnDQZkc5jNA3+ 6rYH34DOYtdsVEbeMGp7fNEojR7Uc1rZkuRSABdvM4GF4/0AIhFEDoGHUp+wX6iTd+a6Kj ia+QlwpbV9NmIIzIkYv6nCathWvgPAnXjHSIAMVGKYsuZJA1vXZdThgf0aA/pQ== 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=1771408305; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KBzrl2kylABTKUaQnX3CGRIrHpzZnpIq6+0Ej//ffcE=; b=sUNaXZA4hRWtzEXXtLLP2xOepAOG94pRO8CKXepghCE+tEj64Y34tHHy/vCk2eYV0/uj2G BkTrijsBlO0Xarc7hNxmYXsTIXp77V7PhF/bbBstWWeUfz4RY8flEQ0zhBpQnYjOSEcfcm eqcL4mHrFqyx4L4gjdmEwlLLxO22PxSfyFBN2EJxZqDkr/IHzLtkCWJ+SVThAxFxAlt+jP Lyg7shRf8qcF2eDWNuXZBehek1ObxhX4zxOIakDWQs1X7d837F97iVWjw/J6+sntcHOm6n OOxszMh0pPvPahdKXOgusgGYCoIO07G/bSCBC+FSY8qlEkjk8iLf8jtyRKJscg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fGBcJ6ycMzrTF for ; Wed, 18 Feb 2026 09:51:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2163b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 18 Feb 2026 09:51:44 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dmitry Morozovsky Subject: git: 4c66fafd6b29 - stable/13 - pw: make manual page more friendly for uid/gid search List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: marck X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 4c66fafd6b29e306184ff3bd1bcd6c8f4a29f11c Auto-Submitted: auto-generated Date: Wed, 18 Feb 2026 09:51:44 +0000 Message-Id: <69958bb0.2163b.6f8a7e08@gitrepo.freebsd.org> The branch stable/13 has been updated by marck: URL: https://cgit.FreeBSD.org/src/commit/?id=4c66fafd6b29e306184ff3bd1bcd6c8f4a29f11c commit 4c66fafd6b29e306184ff3bd1bcd6c8f4a29f11c Author: Dmitry Morozovsky AuthorDate: 2026-02-11 19:34:00 +0000 Commit: Dmitry Morozovsky CommitDate: 2026-02-18 09:50:59 +0000 pw: make manual page more friendly for uid/gid search pw.8 structure is quite different from usual manual page, especially in describing -o option usage. Specifically, these paragraphs do not contain "uid/gid" terms, and have "user id"/"group id" instead, making searching for "override duplicate safety belt" difficult. Try to simplify such searches. Also, clarify uid/gid space between 100 and 1000 as "somewhat special", as it actually is. Discussed on: russian telegram FreeBSD group Reviewed by: eugen, novel MFC after: 1 week (cherry picked from commit e89454417b2bfecce9daee10dece2f49632640d3) --- usr.sbin/pw/pw.8 | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/usr.sbin/pw/pw.8 b/usr.sbin/pw/pw.8 index 5ba35c193811..9bbb05ae0082 100644 --- a/usr.sbin/pw/pw.8 +++ b/usr.sbin/pw/pw.8 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd November 28, 2022 +.Dd February 11, 2026 .Dt PW 8 .Os .Sh NAME @@ -551,8 +551,8 @@ It is possible to use to create a new account that duplicates an existing user id. While this is normally considered an error and will be rejected, the .Fl o -option overrides the check for duplicates and allows the duplication of -the user id. +option overrides the check for uniqueness and allows the duplication of +the uid. This may be useful if you allow the same user to login under different contexts (different group allocations, different home directory, different shell) while providing basically the same @@ -665,6 +665,9 @@ In general, user and group ids less than 100 are reserved for use by the system, and numbers greater than 32000 may also be reserved for special purposes .Pq used by some system daemons . +Also, uids and gids between 100 and 999 are commonly used by pseudo-users +assotiated with third-party programs, and generally should be avoided for +assigning for normal users. .It Fl w Ar passmethod The .Fl w @@ -864,7 +867,7 @@ also has a option that allows allocation of an existing group id to a new group. The default action is to reject an attempt to add a group, and this option overrides the check for duplicate group ids. -There is rarely any need to duplicate a group id. +There is rarely any need to duplicate a gid. .Pp The .Cm groupmod