From nobody Mon Feb 9 00:52: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 4f8R461BZmz6S0rN for ; Mon, 09 Feb 2026 00:52: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 4f8R4603qdz3XNx for ; Mon, 09 Feb 2026 00:52:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770598342; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=z82hu8LTj4muT81X2sTcDXq9mkuQ6UNrT99NuL8Y8Bs=; b=Z5deArpzwN/QcxjcGdVg+SPqK1xK5KM3sY4KuhOFs+T9gb/p+K5dpATtlwLwiWT1iHQhMD 8h7tJB0q8UTGhkfET8HfvfZv2NJRdsh+M/1/ODArtt+u0BFGecs9N1Uf8aj5AhsZ2BIaWX iRTaqZtlGQ2KicMQ/OQUkF8+i9koeMJyjsU689zVxZdX0rQyEhk0QxtguvuVAYfEqqO6xN FXgIqMuzfULoEU7NclQWRhXoPij1+offyn0ZftS+DEctJkK06O0RtRAwC7p/tAubhtlfat v5jo0zKfZD1uKSFiYwzjpk0k2Mj7NGDe8a9zCKDQO0TM7zhwqv5koLmuzrX1tg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770598342; a=rsa-sha256; cv=none; b=Yo9+9TmUp8ut95aLWi5YGLM/z3RPsI3jDRJ5B/UI5B1UgzhthNWSjNJy2jNBjg+WDS1/sT uckxPNOzRxnywO6AIqRHP6Aal8bhsXNshdDSGUSIWF7kiXHn0nPPOeUNsUoCXjqZUG+Ohv QZFqG9UiqoYAktoEH1QA1sIEakBRImkREVhcCq08wCnAKdqKLu/t544foM1T86VMTM8mlR 7G4mRvH7GAZb5rQS6zy1B+iYWnNde+IPZhqzTLhWCxr1Xxp4x+h3To1mKMXRIKF03lCFvJ nkEAyHynxl4aqiNdkj14pwmJD/8Yy2Q1WbwkNC7FUrxx6MZxSLEBCHWC4PtHSA== 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=1770598342; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=z82hu8LTj4muT81X2sTcDXq9mkuQ6UNrT99NuL8Y8Bs=; b=evHlroNLPtWDMPGLS/PB9XsHRekJY9BkuHMYGY/x4wcvRpX84o6hgMugOlcd5t7qJQa4JK I1AADAu8Dy0LlWnSj2yJ7eQols1mrmZrtzDEUcRTZSgtNSLRBeFRo2uhZQwJSd+FgLUw+0 uJ3Y+KlM86E75rqykFGxKAt6JW7nWbTvorGPA7pKZTHXWp27xCCdA7Kck39lqydBItkEgJ WsN23iIDKbHmD1QlwAZXxmPhD/2nB0D7he2bqoQcmozw03uwYKFGmIb84XLBQvYu37VxpZ eP+h6tMBJNldvyTbRuBYCGWZVhD4AQOcC5hFRwRL+hqFXAKD/CPqI+6KcoG5Fw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8R456mr8z195H for ; Mon, 09 Feb 2026 00:52:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3226c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 00:52:21 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: fffd409a29ce - stable/15 - devfs: unlock the directory vnode around the call to dev_clone handler 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: fffd409a29ce4966f2cca620aedc9f0eb1df9862 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 00:52:21 +0000 Message-Id: <69892fc5.3226c.54b1ca4f@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=fffd409a29ce4966f2cca620aedc9f0eb1df9862 commit fffd409a29ce4966f2cca620aedc9f0eb1df9862 Author: Konstantin Belousov AuthorDate: 2026-01-26 01:49:32 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-09 00:51:57 +0000 devfs: unlock the directory vnode around the call to dev_clone handler (cherry picked from commit a8e92198f854c2766eedec5a2ea3cc23c64d7b12) --- sys/fs/devfs/devfs_vnops.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/sys/fs/devfs/devfs_vnops.c b/sys/fs/devfs/devfs_vnops.c index 880756264b0f..8c188e768de8 100644 --- a/sys/fs/devfs/devfs_vnops.c +++ b/sys/fs/devfs/devfs_vnops.c @@ -367,6 +367,9 @@ devfs_populate_vp(struct vnode *vp) ASSERT_VOP_LOCKED(vp, "devfs_populate_vp"); + if (VN_IS_DOOMED(vp)) + return (ENOENT); + dmp = VFSTODEVFS(vp->v_mount); if (!devfs_populate_needed(dmp)) { sx_xlock(&dmp->dm_lock); @@ -1128,8 +1131,25 @@ devfs_lookupx(struct vop_lookup_args *ap, int *dm_unlock) cdev = NULL; DEVFS_DMP_HOLD(dmp); sx_xunlock(&dmp->dm_lock); + dvplocked = VOP_ISLOCKED(dvp); + + /* + * Invoke the dev_clone handler. Unlock dvp around it + * to simplify the cloner operations. + * + * If dvp is reclaimed while we unlocked it, we return + * with ENOENT by some of the paths below. If cloner + * returned cdev, then devfs_populate_vp() notes the + * reclamation. Otherwise, note that either our devfs + * mount is being unmounted, then DEVFS_DMP_DROP() + * returns true, and we return ENOENT this way. Or, + * because de == NULL, the check for it after the loop + * returns ENOENT. + */ + VOP_UNLOCK(dvp); EVENTHANDLER_INVOKE(dev_clone, td->td_ucred, pname, strlen(pname), &cdev); + vn_lock(dvp, dvplocked | LK_RETRY); if (cdev == NULL) sx_xlock(&dmp->dm_lock); From nobody Mon Feb 9 00:52: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 4f8R490cWvz6S0ls for ; Mon, 09 Feb 2026 00:52: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 4f8R471tfKz3XgW for ; Mon, 09 Feb 2026 00:52:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770598343; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yyxwzDRFvbRg+tKFOwmmhxMi1GOSmgBRTBWVN3F4DPY=; b=jcg+2MzP/vyRwD30r1jR49gUVfnhiQRTtbvCSRRucv/7lC++zKzTJu3kSFMRCwmYmjeT8D C6NnWKDosvRO8zSbuDcmeBSDY2O8YVj7nL0yutENkcmo0lGZwsXJ4ZY1vz6HY1Bp/ikdbo 1Ty4if/uKenvX4aYwwLOrmg2P6ZhJ3/PKXEGutbcwfQJX0G3afmitBwx45O6ht0cXBcgjZ 6uDMZzNLgNYqj+3vsi8A4BEyoUkjbfP478WduDFPVQS20Mumm+2it/GD0mCidKBY987/Z/ IL81WrMD6QAUG5udCWstWviIrkFZOTS9uv5qN+Mbb+urtyX5JfmEOjlfBhxDpg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770598343; a=rsa-sha256; cv=none; b=jwGVU1AdT5HeguG/jSZJJFYNF76iz4/NYdJRTI5d4D4a+19VpNcWezanRA93ZWqKkfxngk eugmLI4SEt+WoALQH8C26UFDeiWU2qPfQql93GWTqe1v799VyISGdgHF1t4mk34QNjMNyi qNFfiPkmE/nLsLnjHanmmp+WtyXbhbrkqm9Jfgeb/m0/63YpH70/xSYNYLJemF6M4qisA5 MjsguJF/KyFvMu6wiPvEC/opyn5piNncJtOgErp3G9Kb+yWJXlN2qnUwh87jY5/J1eJlQg JsTp5cvN3wiQPh/xKYkowDlAkJePHgAf8ebf2cHGOHLYhRvKttkgFVr8CALAsQ== 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=1770598343; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yyxwzDRFvbRg+tKFOwmmhxMi1GOSmgBRTBWVN3F4DPY=; b=leR6/ENZLEcdWNXs6WfbtwyHpm37OwVD6MM6nZNwTo1tjYY9DpFhlJ1X6qIqWNGnS0y2Le OXGOd4ZAtrLh+cax64+kKH7EmJWdC8VBEqk7oqThkdGWlOrnnL7efwAoNlcWUQpDYgPasi 2jzDKiaqYc7NKF1wSQEDG73p8L0RTDLUuGFK3XQvXcFbq0qdj2oLfUAqea+2NYNPlZusrv hlXardQgFQ9yx9VKefW9RWmQgC6nf6QteVzTQUu/ZZuo0pYH5Ie0A3+i5cGqdcWFnACtva EWad8rbsOmunaKj8pdU7ghs6tytg+wr6sayBqu/8xO+cr0V8fR6PBNeFVG2kpQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8R470B5Bz19HG for ; Mon, 09 Feb 2026 00:52:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 32c77 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 00:52:23 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: dc6c80476b5a - stable/15 - 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/15 X-Git-Reftype: branch X-Git-Commit: dc6c80476b5a2e9aa3cda203e89827fed7e04893 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 00:52:23 +0000 Message-Id: <69892fc7.32c77.44bc95a6@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=dc6c80476b5a2e9aa3cda203e89827fed7e04893 commit dc6c80476b5a2e9aa3cda203e89827fed7e04893 Author: Konstantin Belousov AuthorDate: 2026-02-02 22:38:32 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-09 00:51:57 +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 13403acacc08..240bf5451a84 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 9 01:30: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 4f8Rwf4lZVz6S2yS for ; Mon, 09 Feb 2026 01:30:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f8Rwf3X7Xz3cbp for ; Mon, 09 Feb 2026 01:30:58 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770600658; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UJeaK7tWRpyZyM5T6IShhv1tEELuplcQP2f3H9YFjgc=; b=vbFsnZDKOW0z5Cq6Kpk3BoOFTedKs0qor6Z7J/w55w9Dq4Oyec3pLofCDP4+kBiVvNtkPy FPXWyCWNlDQY7+cCYA6nTca1qk1nthZjxiNrT+6Rcr9T46xt9hWF9yK9Yiit6FNPPHdpms TGuX5aYX2IcyD7bF9t19P19L3M02E9Wik/Hl2E1PfzdFpkdpnWt6+UAuLT+vMpFn1Pb2kv G62wmu7T2nTJd9RDLMl4L9OfQ5ipnXqFhtipId1fxq9WpnRvu+3j6V/KB98wbe0itoWgrF MR8Bun8k1HTDNX96lnSv3XyXjnpxczhahFHIZ96bIFtkqlEdYNygCyDSqJtXYA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770600658; a=rsa-sha256; cv=none; b=Iwc5o7ed8iK9Oosh9vQblP02P96r31lsquCDboj9JeJRcyc0b5yyeddfTlxWkjn1ilEsHd 4pZhNqE5iFY+jeI1J7IfYj+6i943/JgNKCE5XeyxxFZaMqhdNcOGDu8eUFuBoPXUEYKnu3 LVeyyQeWSxuiqptktUcZeUT6hnX8MdBjg0v/rg71L+K59VnADNCZ/n/4rkbEYsMQZ4rqb8 TyqomV7NvHe25c2DSy9M6JZnsi6ZYzE2jJ8x+kYGPzzRMEZzhRl5maot+BeybQs0gZ3vcF PfydIR05cBWXxkFxM31IfvY/zYLCMCRwq8qjvICu7y2aSfJqvPm6aia5u9v/jw== 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=1770600658; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UJeaK7tWRpyZyM5T6IShhv1tEELuplcQP2f3H9YFjgc=; b=tz1ygE6mgiicyamyTYQVoQ5g00ao/HLkgeR7/0k4YkIklj9jodZhNnFTqUBIpkCoZNg5qG 91G1uJJVJ91+sHO7GUKg/wSm7qJNPHzJ98xIWQpwkGlMCrNjEzo5B4YdNpr47p+Qfc2K2s vd3OjxdG8G6W+hbrzOw5ziNJuANKEjK3/jmwSy1R3g/rdqrt/rA3XfL+eXS99XZ67JbenT C8vOewSog3Hz22Cpep/ulZs/CpxtaRLexYpaMbrwBWaITop+qERSxALTIrUVlcZ1mXvizk R3JIdm0YsWxYfC3jzb7b/6Kzig8lOYyQIOkxY+zJIsd4ViQUQDqFoUuoDJXa4g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8Rwf36JHz1B9D for ; Mon, 09 Feb 2026 01:30:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 378a8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 01:30:58 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: cd8a5000b398 - stable/14 - Makefile.incl1: .WAIT before distribute in etc 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/stable/14 X-Git-Reftype: branch X-Git-Commit: cd8a5000b398b022f044cf8811131ca7d4187fd6 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 01:30:58 +0000 Message-Id: <698938d2.378a8.25e3a359@gitrepo.freebsd.org> The branch stable/14 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=cd8a5000b398b022f044cf8811131ca7d4187fd6 commit cd8a5000b398b022f044cf8811131ca7d4187fd6 Author: Colin Percival AuthorDate: 2025-11-02 04:22:26 +0000 Commit: Colin Percival CommitDate: 2026-02-09 01:30:16 +0000 Makefile.incl1: .WAIT before distribute in etc In order to make sure that man pages are all installed before we run makewhatis to generate mandoc.db files, we have long placed etc at the end of the list of subdirectories being recursed into by the build. In order to support installworld -jN, a .WAIT was more recently added here. With the recent adoption by the release engineering team of parallel *release* builds (aka 'make release -jN') it is now also necessary to add the same .WAIT before recursing for the 'distribute' target, as we otherwise end up with distribution sets containing incomplete mandoc.db files. Reviewed by: bdrewery PR: 289683 MFC after: 3 days Sponsored by: https://www.patreon.com/cperciva Differential Revision: https://reviews.freebsd.org/D53533 (cherry picked from commit dcb6706ba494f34e2a2ce97e5c5f2867b9e1f5ef) --- Makefile.inc1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.inc1 b/Makefile.inc1 index 87e67925698e..98065ae70977 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -437,7 +437,7 @@ SUBDIR+= ${_DIR} # by calling 'makedb' in share/man. This is only relevant for # install/distribute so they build the whatis file after every manpage is # installed. -.if make(installworld) || make(install) +.if make(installworld) || make(install) || make(distributeworld) || make(distribute) SUBDIR+=.WAIT .endif SUBDIR+=etc From nobody Mon Feb 9 03:09:49 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 4f8V6j3QNGz6S8LG for ; Mon, 09 Feb 2026 03:09:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f8V6j2KZBz3n6w for ; Mon, 09 Feb 2026 03:09:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770606589; 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=nKQkKhH9onyIiU0sKRwRY8cQihZmkpjQbFDabqXjTIY=; b=yYrXRAQYL/mAKWkTPzkcnKzSbRWDpBz06h+uE8W740I0h5t6QrJZEScZaQnNbCTnk6UTEd MJRwcyoRSh+XPD+Ho7NzzhYKD4HQmqGylwsQd61pWtbHW6P+WdBcBHzBzh0/Zkt9JXs/HT qmFQIy12K0OO4qwzaGVQ91IctxZBuHAeYjWqMqtlZR68zBsgdRHQBImDGk6gt1OX8DRGc/ 0Ty5eBW2xRo0w7a9sLEMedwFNHMY7eNgKcknvhsflDzecdVuLtBc5sYURJAec8V4dLx6JT IavILQLDxMPmCHYK86SZOY+I0nYYfMd7EmH17xvn1NNfLBwyw7C3ZY/Ar716yg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770606589; a=rsa-sha256; cv=none; b=ZreB/icI3IBdXBaKpzdJqSdsAI988M/cg5kqnShBitem/jqnJJn6h7XAx3uNHN7c/uu8sh r7hLe4+jkXZOiaQlea2sbMC4Qk+XbF4CcrttSnm7PgVFTBOb/TQ2rktcyzmkUFZviLQgY4 0aS4ib3KzcVIelDZqfoiey0VHblNIm5DcVE1kLL2PUhaQ7iXMDudRLlBS6po3eny5lE1o1 5vsZ9xNCOmV2cG5aTd/yKq+tFak43z7aYEaxX8GqvvkcxyzxEgu3A6aip4YWdjOSlHC5xa 27DSM/C/Enti5W2DHZGYG9whPwWWwLjL+xXhuCloEmuTp/cGGfVFkG2VF/fR+A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770606589; 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=nKQkKhH9onyIiU0sKRwRY8cQihZmkpjQbFDabqXjTIY=; b=Tn6I9DBqxZAix83F17/+oFrNeYvYGtlb1mMLdFtDbI28jS1X/AnQym0grYGpk/oIRmph1w yYy/yzKDmTpVaY4W6zs6FROZGBDbJpxOMcEnoVVknPNFE8RnFcwCHy4KwtFQ52RJm6nu7C 1qLfXJKQsrZsUdFyV/N7h8Y90K1FPsbEfA8sv3Itj3/97F0/CA9FL0P2O5QBbw1hH+9UeY tX5Adn+rr5kc7nm4dBsJqD8HIJorymP++KV2T/XDq7I0lYyU5OfgGzt6FEUcFOMRLJGyow bSM23TMtguu3lo471D/0TLsVa3oTFPx3Pp+z/WLMhMtQDka7FpgA+gXaXZ2ryQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8V6j1sPvzng for ; Mon, 09 Feb 2026 03:09:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3ecfe by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 03:09:49 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Bojan Novk=?utf-8?Q?ovi=C4=87?= From: Colin Percival Subject: git: 5d7d22588dad - releng/14.4 - pmc: Import Intel Granite Rapids events 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: 5d7d22588dada885d7d8e2db306aa6e0ac030ef1 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 03:09:49 +0000 Message-Id: <69894ffd.3ecfe.6a72391b@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=5d7d22588dada885d7d8e2db306aa6e0ac030ef1 commit 5d7d22588dada885d7d8e2db306aa6e0ac030ef1 Author: Bojan Novković AuthorDate: 2026-02-02 10:13:12 +0000 Commit: Colin Percival CommitDate: 2026-02-09 03:09:29 +0000 pmc: Import Intel Granite Rapids events Approved by: re (cperciva) Reviewed by: mhorne Sponsored by: Klara, Inc. Obtained from: Intel perfmon (JSON event definitions) Differential Revision: https://reviews.freebsd.org/D55081 MFC after: 2 days (cherry picked from commit a3ff85e11925ba1e25465c8ba633356f405f9214) (cherry picked from commit 625ed651833e76a439a7010aa28c93bc83013168) --- .../pmu-events/arch/x86/graniterapids/cache.json | 1230 +++++++ .../arch/x86/graniterapids/floating-point.json | 242 ++ .../arch/x86/graniterapids/frontend.json | 476 +++ .../pmu-events/arch/x86/graniterapids/memory.json | 523 +++ .../pmu-events/arch/x86/graniterapids/other.json | 65 + .../arch/x86/graniterapids/pipeline.json | 1145 ++++++ .../arch/x86/graniterapids/uncore-cache.json | 3745 ++++++++++++++++++++ .../arch/x86/graniterapids/uncore-cxl.json | 29 + .../x86/graniterapids/uncore-interconnect.json | 1979 +++++++++++ .../arch/x86/graniterapids/uncore-io.json | 1925 ++++++++++ .../arch/x86/graniterapids/uncore-memory.json | 890 +++++ .../arch/x86/graniterapids/uncore-power.json | 109 + .../arch/x86/graniterapids/virtual-memory.json | 185 + lib/libpmc/pmu-events/arch/x86/mapfile.csv | 1 + sys/dev/hwpmc/hwpmc_intel.c | 5 + sys/sys/pmc.h | 1 + 16 files changed, 12550 insertions(+) diff --git a/lib/libpmc/pmu-events/arch/x86/graniterapids/cache.json b/lib/libpmc/pmu-events/arch/x86/graniterapids/cache.json new file mode 100644 index 000000000000..135264595c11 --- /dev/null +++ b/lib/libpmc/pmu-events/arch/x86/graniterapids/cache.json @@ -0,0 +1,1230 @@ +[ + { + "BriefDescription": "L1D.HWPF_MISS", + "Counter": "0,1,2,3", + "EventCode": "0x51", + "EventName": "L1D.HWPF_MISS", + "SampleAfterValue": "1000003", + "UMask": "0x20" + }, + { + "BriefDescription": "Counts the number of cache lines replaced in L1 data cache.", + "Counter": "0,1,2,3", + "EventCode": "0x51", + "EventName": "L1D.REPLACEMENT", + "PublicDescription": "Counts L1D data line replacements including opportunistic replacements, and replacements that require stall-for-replace or block-for-replace.", + "SampleAfterValue": "100003", + "UMask": "0x1" + }, + { + "BriefDescription": "Number of cycles a demand request has waited due to L1D Fill Buffer (FB) unavailability.", + "Counter": "0,1,2,3", + "EventCode": "0x48", + "EventName": "L1D_PEND_MISS.FB_FULL", + "PublicDescription": "Counts number of cycles a demand request has waited due to L1D Fill Buffer (FB) unavailability. Demand requests include cacheable/uncacheable demand load, store, lock or SW prefetch accesses.", + "SampleAfterValue": "1000003", + "UMask": "0x2" + }, + { + "BriefDescription": "Number of phases a demand request has waited due to L1D Fill Buffer (FB) unavailability.", + "Counter": "0,1,2,3", + "CounterMask": "1", + "EdgeDetect": "1", + "EventCode": "0x48", + "EventName": "L1D_PEND_MISS.FB_FULL_PERIODS", + "PublicDescription": "Counts number of phases a demand request has waited due to L1D Fill Buffer (FB) unavailability. Demand requests include cacheable/uncacheable demand load, store, lock or SW prefetch accesses.", + "SampleAfterValue": "1000003", + "UMask": "0x2" + }, + { + "BriefDescription": "Number of cycles a demand request has waited due to L1D due to lack of L2 resources.", + "Counter": "0,1,2,3", + "EventCode": "0x48", + "EventName": "L1D_PEND_MISS.L2_STALLS", + "PublicDescription": "Counts number of cycles a demand request has waited due to L1D due to lack of L2 resources. Demand requests include cacheable/uncacheable demand load, store, lock or SW prefetch accesses.", + "SampleAfterValue": "1000003", + "UMask": "0x4" + }, + { + "BriefDescription": "Number of L1D misses that are outstanding", + "Counter": "0,1,2,3", + "EventCode": "0x48", + "EventName": "L1D_PEND_MISS.PENDING", + "PublicDescription": "Counts number of L1D misses that are outstanding in each cycle, that is each cycle the number of Fill Buffers (FB) outstanding required by Demand Reads. FB either is held by demand loads, or it is held by non-demand loads and gets hit at least once by demand. The valid outstanding interval is defined until the FB deallocation by one of the following ways: from FB allocation, if FB is allocated by demand from the demand Hit FB, if it is allocated by hardware or software prefetch. Note: In the L1D, a Demand Read contains cacheable or noncacheable demand loads, including ones causing cache-line splits and reads due to page walks resulted from any request type.", + "SampleAfterValue": "1000003", + "UMask": "0x1" + }, + { + "BriefDescription": "Cycles with L1D load Misses outstanding.", + "Counter": "0,1,2,3", + "CounterMask": "1", + "EventCode": "0x48", + "EventName": "L1D_PEND_MISS.PENDING_CYCLES", + "PublicDescription": "Counts duration of L1D miss outstanding in cycles.", + "SampleAfterValue": "1000003", + "UMask": "0x1" + }, + { + "BriefDescription": "L2 cache lines filling L2", + "Counter": "0,1,2,3", + "EventCode": "0x25", + "EventName": "L2_LINES_IN.ALL", + "PublicDescription": "Counts the number of L2 cache lines filling the L2. Counting does not cover rejects.", + "SampleAfterValue": "100003", + "UMask": "0x1f" + }, + { + "BriefDescription": "Modified cache lines that are evicted by L2 cache when triggered by an L2 cache fill.", + "Counter": "0,1,2,3", + "EventCode": "0x26", + "EventName": "L2_LINES_OUT.NON_SILENT", + "PublicDescription": "Counts the number of lines that are evicted by L2 cache when triggered by an L2 cache fill. Those lines are in Modified state. Modified lines are written back to L3", + "SampleAfterValue": "200003", + "UMask": "0x2" + }, + { + "BriefDescription": "Non-modified cache lines that are silently dropped by L2 cache.", + "Counter": "0,1,2,3", + "EventCode": "0x26", + "EventName": "L2_LINES_OUT.SILENT", + "PublicDescription": "Counts the number of lines that are silently dropped by L2 cache. These lines are typically in Shared or Exclusive state. A non-threaded event.", + "SampleAfterValue": "200003", + "UMask": "0x1" + }, + { + "BriefDescription": "Cache lines that have been L2 hardware prefetched but not used by demand accesses", + "Counter": "0,1,2,3", + "EventCode": "0x26", + "EventName": "L2_LINES_OUT.USELESS_HWPF", + "PublicDescription": "Counts the number of cache lines that have been prefetched by the L2 hardware prefetcher but not used by demand access when evicted from the L2 cache", + "SampleAfterValue": "200003", + "UMask": "0x4" + }, + { + "BriefDescription": "All accesses to L2 cache [This event is alias to L2_RQSTS.REFERENCES]", + "Counter": "0,1,2,3", + "EventCode": "0x24", + "EventName": "L2_REQUEST.ALL", + "PublicDescription": "Counts all requests that were hit or true misses in L2 cache. True-miss excludes misses that were merged with ongoing L2 misses. [This event is alias to L2_RQSTS.REFERENCES]", + "SampleAfterValue": "200003", + "UMask": "0xff" + }, + { + "BriefDescription": "All requests that hit L2 cache. [This event is alias to L2_RQSTS.HIT]", + "Counter": "0,1,2,3", + "EventCode": "0x24", + "EventName": "L2_REQUEST.HIT", + "PublicDescription": "Counts all requests that hit L2 cache. [This event is alias to L2_RQSTS.HIT]", + "SampleAfterValue": "200003", + "UMask": "0xdf" + }, + { + "BriefDescription": "Read requests with true-miss in L2 cache [This event is alias to L2_RQSTS.MISS]", + "Counter": "0,1,2,3", + "EventCode": "0x24", + "EventName": "L2_REQUEST.MISS", + "PublicDescription": "Counts read requests of any type with true-miss in the L2 cache. True-miss excludes L2 misses that were merged with ongoing L2 misses. [This event is alias to L2_RQSTS.MISS]", + "SampleAfterValue": "200003", + "UMask": "0x3f" + }, + { + "BriefDescription": "L2 code requests", + "Counter": "0,1,2,3", + "EventCode": "0x24", + "EventName": "L2_RQSTS.ALL_CODE_RD", + "PublicDescription": "Counts the total number of L2 code requests.", + "SampleAfterValue": "200003", + "UMask": "0xe4" + }, + { + "BriefDescription": "Demand Data Read access L2 cache", + "Counter": "0,1,2,3", + "EventCode": "0x24", + "EventName": "L2_RQSTS.ALL_DEMAND_DATA_RD", + "PublicDescription": "Counts Demand Data Read requests accessing the L2 cache. These requests may hit or miss L2 cache. True-miss exclude misses that were merged with ongoing L2 misses. An access is counted once.", + "SampleAfterValue": "200003", + "UMask": "0xe1" + }, + { + "BriefDescription": "Demand requests that miss L2 cache", + "Counter": "0,1,2,3", + "EventCode": "0x24", + "EventName": "L2_RQSTS.ALL_DEMAND_MISS", + "PublicDescription": "Counts demand requests that miss L2 cache.", + "SampleAfterValue": "200003", + "UMask": "0x27" + }, + { + "BriefDescription": "Demand requests to L2 cache", + "Counter": "0,1,2,3", + "EventCode": "0x24", + "EventName": "L2_RQSTS.ALL_DEMAND_REFERENCES", + "PublicDescription": "Counts demand requests to L2 cache.", + "SampleAfterValue": "200003", + "UMask": "0xe7" + }, + { + "BriefDescription": "L2_RQSTS.ALL_HWPF", + "Counter": "0,1,2,3", + "EventCode": "0x24", + "EventName": "L2_RQSTS.ALL_HWPF", + "SampleAfterValue": "200003", + "UMask": "0xf0" + }, + { + "BriefDescription": "RFO requests to L2 cache", + "Counter": "0,1,2,3", + "EventCode": "0x24", + "EventName": "L2_RQSTS.ALL_RFO", + "PublicDescription": "Counts the total number of RFO (read for ownership) requests to L2 cache. L2 RFO requests include both L1D demand RFO misses as well as L1D RFO prefetches.", + "SampleAfterValue": "200003", + "UMask": "0xe2" + }, + { + "BriefDescription": "L2 cache hits when fetching instructions, code reads.", + "Counter": "0,1,2,3", + "EventCode": "0x24", + "EventName": "L2_RQSTS.CODE_RD_HIT", + "PublicDescription": "Counts L2 cache hits when fetching instructions, code reads.", + "SampleAfterValue": "200003", + "UMask": "0xc4" + }, + { + "BriefDescription": "L2 cache misses when fetching instructions", + "Counter": "0,1,2,3", + "EventCode": "0x24", + "EventName": "L2_RQSTS.CODE_RD_MISS", + "PublicDescription": "Counts L2 cache misses when fetching instructions.", + "SampleAfterValue": "200003", + "UMask": "0x24" + }, + { + "BriefDescription": "Demand Data Read requests that hit L2 cache", + "Counter": "0,1,2,3", + "EventCode": "0x24", + "EventName": "L2_RQSTS.DEMAND_DATA_RD_HIT", + "PublicDescription": "Counts the number of demand Data Read requests initiated by load instructions that hit L2 cache.", + "SampleAfterValue": "200003", + "UMask": "0xc1" + }, + { + "BriefDescription": "Demand Data Read miss L2 cache", + "Counter": "0,1,2,3", + "EventCode": "0x24", + "EventName": "L2_RQSTS.DEMAND_DATA_RD_MISS", + "PublicDescription": "Counts demand Data Read requests with true-miss in the L2 cache. True-miss excludes misses that were merged with ongoing L2 misses. An access is counted once.", + "SampleAfterValue": "200003", + "UMask": "0x21" + }, + { + "BriefDescription": "All requests that hit L2 cache. [This event is alias to L2_REQUEST.HIT]", + "Counter": "0,1,2,3", + "EventCode": "0x24", + "EventName": "L2_RQSTS.HIT", + "PublicDescription": "Counts all requests that hit L2 cache. [This event is alias to L2_REQUEST.HIT]", + "SampleAfterValue": "200003", + "UMask": "0xdf" + }, + { + "BriefDescription": "L2_RQSTS.HWPF_MISS", + "Counter": "0,1,2,3", + "EventCode": "0x24", + "EventName": "L2_RQSTS.HWPF_MISS", + "SampleAfterValue": "200003", + "UMask": "0x30" + }, + { + "BriefDescription": "Read requests with true-miss in L2 cache [This event is alias to L2_REQUEST.MISS]", + "Counter": "0,1,2,3", + "EventCode": "0x24", + "EventName": "L2_RQSTS.MISS", + "PublicDescription": "Counts read requests of any type with true-miss in the L2 cache. True-miss excludes L2 misses that were merged with ongoing L2 misses. [This event is alias to L2_REQUEST.MISS]", + "SampleAfterValue": "200003", + "UMask": "0x3f" + }, + { + "BriefDescription": "All accesses to L2 cache [This event is alias to L2_REQUEST.ALL]", + "Counter": "0,1,2,3", + "EventCode": "0x24", + "EventName": "L2_RQSTS.REFERENCES", + "PublicDescription": "Counts all requests that were hit or true misses in L2 cache. True-miss excludes misses that were merged with ongoing L2 misses. [This event is alias to L2_REQUEST.ALL]", + "SampleAfterValue": "200003", + "UMask": "0xff" + }, + { + "BriefDescription": "RFO requests that hit L2 cache", + "Counter": "0,1,2,3", + "EventCode": "0x24", + "EventName": "L2_RQSTS.RFO_HIT", + "PublicDescription": "Counts the RFO (Read-for-Ownership) requests that hit L2 cache.", + "SampleAfterValue": "200003", + "UMask": "0xc2" + }, + { + "BriefDescription": "RFO requests that miss L2 cache", + "Counter": "0,1,2,3", + "EventCode": "0x24", + "EventName": "L2_RQSTS.RFO_MISS", + "PublicDescription": "Counts the RFO (Read-for-Ownership) requests that miss L2 cache.", + "SampleAfterValue": "200003", + "UMask": "0x22" + }, + { + "BriefDescription": "SW prefetch requests that hit L2 cache.", + "Counter": "0,1,2,3", + "EventCode": "0x24", + "EventName": "L2_RQSTS.SWPF_HIT", + "PublicDescription": "Counts Software prefetch requests that hit the L2 cache. Accounts for PREFETCHNTA and PREFETCHT0/1/2 instructions when FB is not full.", + "SampleAfterValue": "200003", + "UMask": "0xc8" + }, + { + "BriefDescription": "SW prefetch requests that miss L2 cache.", + "Counter": "0,1,2,3", + "EventCode": "0x24", + "EventName": "L2_RQSTS.SWPF_MISS", + "PublicDescription": "Counts Software prefetch requests that miss the L2 cache. Accounts for PREFETCHNTA and PREFETCHT0/1/2 instructions when FB is not full.", + "SampleAfterValue": "200003", + "UMask": "0x28" + }, + { + "BriefDescription": "L2 writebacks that access L2 cache", + "Counter": "0,1,2,3", + "EventCode": "0x23", + "EventName": "L2_TRANS.L2_WB", + "PublicDescription": "Counts L2 writebacks that access L2 cache.", + "SampleAfterValue": "200003", + "UMask": "0x40" + }, + { + "BriefDescription": "Core-originated cacheable requests that missed L3 (Except hardware prefetches to the L3)", + "Counter": "0,1,2,3,4,5,6,7", + "EventCode": "0x2e", + "EventName": "LONGEST_LAT_CACHE.MISS", + "PublicDescription": "Counts core-originated cacheable requests that miss the L3 cache (Longest Latency cache). Requests include data and code reads, Reads-for-Ownership (RFOs), speculative accesses and hardware prefetches to the L1 and L2. It does not include hardware prefetches to the L3, and may not count other types of requests to the L3.", + "SampleAfterValue": "100003", + "UMask": "0x41" + }, + { + "BriefDescription": "Core-originated cacheable requests that refer to L3 (Except hardware prefetches to the L3)", + "Counter": "0,1,2,3,4,5,6,7", + "EventCode": "0x2e", + "EventName": "LONGEST_LAT_CACHE.REFERENCE", + "PublicDescription": "Counts core-originated cacheable requests to the L3 cache (Longest Latency cache). Requests include data and code reads, Reads-for-Ownership (RFOs), speculative accesses and hardware prefetches to the L1 and L2. It does not include hardware prefetches to the L3, and may not count other types of requests to the L3.", + "SampleAfterValue": "100003", + "UMask": "0x4f" + }, + { + "BriefDescription": "Retired load instructions.", + "Counter": "0,1,2,3", + "Data_LA": "1", + "EventCode": "0xd0", + "EventName": "MEM_INST_RETIRED.ALL_LOADS", + "PublicDescription": "Counts all retired load instructions. This event accounts for SW prefetch instructions of PREFETCHNTA or PREFETCHT0/1/2 or PREFETCHW. Available PDIST counters: 0", + "SampleAfterValue": "1000003", + "UMask": "0x81" + }, + { + "BriefDescription": "Retired store instructions.", + "Counter": "0,1,2,3", + "Data_LA": "1", + "EventCode": "0xd0", + "EventName": "MEM_INST_RETIRED.ALL_STORES", + "PublicDescription": "Counts all retired store instructions. Available PDIST counters: 0", + "SampleAfterValue": "1000003", + "UMask": "0x82" + }, + { + "BriefDescription": "All retired memory instructions.", + "Counter": "0,1,2,3", + "Data_LA": "1", + "EventCode": "0xd0", + "EventName": "MEM_INST_RETIRED.ANY", + "PublicDescription": "Counts all retired memory instructions - loads and stores. Available PDIST counters: 0", + "SampleAfterValue": "1000003", + "UMask": "0x83" + }, + { + "BriefDescription": "Retired load instructions with locked access.", + "Counter": "0,1,2,3", + "Data_LA": "1", + "EventCode": "0xd0", + "EventName": "MEM_INST_RETIRED.LOCK_LOADS", + "PublicDescription": "Counts retired load instructions with locked access. Available PDIST counters: 0", + "RetirementLatencyMax": "5156", + "RetirementLatencyMean": "63.76", + "RetirementLatencyMin": "15", + "SampleAfterValue": "100007", + "UMask": "0x21" + }, + { + "BriefDescription": "Retired load instructions that split across a cacheline boundary.", + "Counter": "0,1,2,3", + "Data_LA": "1", + "EventCode": "0xd0", + "EventName": "MEM_INST_RETIRED.SPLIT_LOADS", + "PublicDescription": "Counts retired load instructions that split across a cacheline boundary. Available PDIST counters: 0", + "RetirementLatencyMax": "4704", + "RetirementLatencyMean": "3.97", + "RetirementLatencyMin": "0", + "SampleAfterValue": "100003", + "UMask": "0x41" + }, + { + "BriefDescription": "Retired store instructions that split across a cacheline boundary.", + "Counter": "0,1,2,3", + "Data_LA": "1", + "EventCode": "0xd0", + "EventName": "MEM_INST_RETIRED.SPLIT_STORES", + "PublicDescription": "Counts retired store instructions that split across a cacheline boundary. Available PDIST counters: 0", + "RetirementLatencyMax": "65535", + "RetirementLatencyMean": "19.0", + "RetirementLatencyMin": "0", + "SampleAfterValue": "100003", + "UMask": "0x42" + }, + { + "BriefDescription": "Retired load instructions that hit the STLB.", + "Counter": "0,1,2,3", + "Data_LA": "1", + "EventCode": "0xd0", + "EventName": "MEM_INST_RETIRED.STLB_HIT_LOADS", + "PublicDescription": "Number of retired load instructions with a clean hit in the 2nd-level TLB (STLB). Available PDIST counters: 0", + "RetirementLatencyMax": "3424", + "RetirementLatencyMean": "1.57", + "RetirementLatencyMin": "0", + "SampleAfterValue": "100003", + "UMask": "0x9" + }, + { + "BriefDescription": "Retired store instructions that hit the STLB.", + "Counter": "0,1,2,3", + "Data_LA": "1", + "EventCode": "0xd0", + "EventName": "MEM_INST_RETIRED.STLB_HIT_STORES", + "PublicDescription": "Number of retired store instructions that hit in the 2nd-level TLB (STLB). Available PDIST counters: 0", + "RetirementLatencyMax": "65535", + "RetirementLatencyMean": "5.24", + "RetirementLatencyMin": "0", + "SampleAfterValue": "100003", + "UMask": "0xa" + }, + { + "BriefDescription": "Retired load instructions that miss the STLB.", + "Counter": "0,1,2,3", + "Data_LA": "1", + "EventCode": "0xd0", + "EventName": "MEM_INST_RETIRED.STLB_MISS_LOADS", + "PublicDescription": "Number of retired load instructions that (start a) miss in the 2nd-level TLB (STLB). Available PDIST counters: 0", + "SampleAfterValue": "100003", + "UMask": "0x11" + }, + { + "BriefDescription": "Retired store instructions that miss the STLB.", + "Counter": "0,1,2,3", + "Data_LA": "1", + "EventCode": "0xd0", + "EventName": "MEM_INST_RETIRED.STLB_MISS_STORES", + "PublicDescription": "Number of retired store instructions that (start a) miss in the 2nd-level TLB (STLB). Available PDIST counters: 0", + "SampleAfterValue": "100003", + "UMask": "0x12" + }, + { + "BriefDescription": "Completed demand load uops that miss the L1 d-cache.", + "Counter": "0,1,2,3", + "EventCode": "0x43", + "EventName": "MEM_LOAD_COMPLETED.L1_MISS_ANY", + "PublicDescription": "Number of completed demand load requests that missed the L1 data cache including shadow misses (FB hits, merge to an ongoing L1D miss)", + "SampleAfterValue": "1000003", + "UMask": "0xfd" + }, + { + "BriefDescription": "Retired load instructions whose data sources were HitM responses from shared L3", + "Counter": "0,1,2,3", + "Data_LA": "1", + "EventCode": "0xd2", + "EventName": "MEM_LOAD_L3_HIT_RETIRED.XSNP_FWD", + "PublicDescription": "Counts retired load instructions whose data sources were HitM responses from shared L3. Available PDIST counters: 0", + "RetirementLatencyMax": "4472", + "RetirementLatencyMean": "353.04", + "RetirementLatencyMin": "0", + "SampleAfterValue": "20011", + "UMask": "0x4" + }, + { + "BriefDescription": "Retired load instructions whose data sources were L3 hit and cross-core snoop missed in on-pkg core cache.", + "Counter": "0,1,2,3", + "Data_LA": "1", + "EventCode": "0xd2", + "EventName": "MEM_LOAD_L3_HIT_RETIRED.XSNP_MISS", + "PublicDescription": "Counts the retired load instructions whose data sources were L3 hit and cross-core snoop missed in on-pkg core cache. Available PDIST counters: 0", + "RetirementLatencyMax": "830", + "RetirementLatencyMean": "125.27", + "RetirementLatencyMin": "0", + "SampleAfterValue": "20011", + "UMask": "0x1" + }, + { + "BriefDescription": "Retired load instructions whose data sources were hits in L3 without snoops required", + "Counter": "0,1,2,3", + "Data_LA": "1", + "EventCode": "0xd2", + "EventName": "MEM_LOAD_L3_HIT_RETIRED.XSNP_NONE", + "PublicDescription": "Counts retired load instructions whose data sources were hits in L3 without snoops required. Available PDIST counters: 0", + "SampleAfterValue": "100003", + "UMask": "0x8" + }, + { + "BriefDescription": "Retired load instructions whose data sources were L3 and cross-core snoop hits in on-pkg core cache", + "Counter": "0,1,2,3", + "Data_LA": "1", + "EventCode": "0xd2", + "EventName": "MEM_LOAD_L3_HIT_RETIRED.XSNP_NO_FWD", + "PublicDescription": "Counts retired load instructions whose data sources were L3 and cross-core snoop hits in on-pkg core cache. Available PDIST counters: 0", + "RetirementLatencyMax": "3939", + "RetirementLatencyMean": "289.9", + "RetirementLatencyMin": "0", + "SampleAfterValue": "20011", + "UMask": "0x2" + }, + { + "BriefDescription": "Retired load instructions which data sources missed L3 but serviced from dram homed in the local socket", + "Counter": "0,1,2,3", + "Data_LA": "1", + "EventCode": "0xd3", + "EventName": "MEM_LOAD_L3_MISS_RETIRED.LOCAL_DRAM", + "PublicDescription": "Retired load instructions which data sources missed L3 but serviced from DRAM homed in the local socket. Available PDIST counters: 0", + "RetirementLatencyMax": "4146", + "RetirementLatencyMean": "115.83", + "RetirementLatencyMin": "0", + "SampleAfterValue": "100007", + "UMask": "0x1" + }, + { + "BriefDescription": "Retired load instructions with remote cxl mem as the data source where the data request missed all caches.", + "Counter": "0,1,2,3", + "EventCode": "0xd3", + "EventName": "MEM_LOAD_L3_MISS_RETIRED.REMOTE_CXL_MEM", + "PublicDescription": "Counts retired load instructions with remote cxl mem as the data source and the data request missed L3. Available PDIST counters: 0", + "SampleAfterValue": "100007", + "UMask": "0x10" + }, + { + "BriefDescription": "MEM_LOAD_L3_MISS_RETIRED.REMOTE_DRAM", + "Counter": "0,1,2,3", + "Data_LA": "1", + "EventCode": "0xd3", + "EventName": "MEM_LOAD_L3_MISS_RETIRED.REMOTE_DRAM", + "PublicDescription": "MEM_LOAD_L3_MISS_RETIRED.REMOTE_DRAM Available PDIST counters: 0", + "RetirementLatencyMax": "3572", + "RetirementLatencyMean": "430.22", + "RetirementLatencyMin": "0", + "SampleAfterValue": "1000003", + "UMask": "0x2" + }, + { + "BriefDescription": "Retired load instructions whose data sources was forwarded from a remote cache", + "Counter": "0,1,2,3", + "Data_LA": "1", + "EventCode": "0xd3", + "EventName": "MEM_LOAD_L3_MISS_RETIRED.REMOTE_FWD", + "PublicDescription": "Retired load instructions whose data sources was forwarded from a remote cache. Available PDIST counters: 0", + "RetirementLatencyMax": "8552", + "RetirementLatencyMean": "125.36", + "RetirementLatencyMin": "0", + "SampleAfterValue": "100007", + "UMask": "0x8" + }, + { + "BriefDescription": "MEM_LOAD_L3_MISS_RETIRED.REMOTE_HITM", + "Counter": "0,1,2,3", + "Data_LA": "1", + "EventCode": "0xd3", + "EventName": "MEM_LOAD_L3_MISS_RETIRED.REMOTE_HITM", + "PublicDescription": "MEM_LOAD_L3_MISS_RETIRED.REMOTE_HITM Available PDIST counters: 0", + "RetirementLatencyMax": "2580", + "RetirementLatencyMean": "135.29", + "RetirementLatencyMin": "0", + "SampleAfterValue": "1000003", + "UMask": "0x4" + }, + { + "BriefDescription": "Retired instructions with at least 1 uncacheable load or lock.", + "Counter": "0,1,2,3", + "Data_LA": "1", + "EventCode": "0xd4", + "EventName": "MEM_LOAD_MISC_RETIRED.UC", + "PublicDescription": "Retired instructions with at least one load to uncacheable memory-type, or at least one cache-line split locked access (Bus Lock). Available PDIST counters: 0", + "SampleAfterValue": "100007", + "UMask": "0x4" + }, + { + "BriefDescription": "Number of completed demand load requests that missed the L1, but hit the FB(fill buffer), because a preceding miss to the same cacheline initiated the line to be brought into L1, but data is not yet ready in L1.", + "Counter": "0,1,2,3", + "Data_LA": "1", + "EventCode": "0xd1", + "EventName": "MEM_LOAD_RETIRED.FB_HIT", + "PublicDescription": "Counts retired load instructions with at least one uop was load missed in L1 but hit FB (Fill Buffers) due to preceding miss to the same cache line with data not ready. Available PDIST counters: 0", + "SampleAfterValue": "100007", + "UMask": "0x40" + }, + { + "BriefDescription": "Retired load instructions with L1 cache hits as data sources", + "Counter": "0,1,2,3", + "Data_LA": "1", + "EventCode": "0xd1", + "EventName": "MEM_LOAD_RETIRED.L1_HIT", + "PublicDescription": "Counts retired load instructions with at least one uop that hit in the L1 data cache. This event includes all SW prefetches and lock instructions regardless of the data source. Available PDIST counters: 0", + "SampleAfterValue": "1000003", + "UMask": "0x1" + }, + { + "BriefDescription": "Retired load instructions missed L1 cache as data sources", + "Counter": "0,1,2,3", + "Data_LA": "1", + "EventCode": "0xd1", + "EventName": "MEM_LOAD_RETIRED.L1_MISS", + "PublicDescription": "Counts retired load instructions with at least one uop that missed in the L1 cache. Available PDIST counters: 0", + "SampleAfterValue": "200003", + "UMask": "0x8" + }, + { + "BriefDescription": "Retired load instructions with L2 cache hits as data sources", + "Counter": "0,1,2,3", + "Data_LA": "1", + "EventCode": "0xd1", + "EventName": "MEM_LOAD_RETIRED.L2_HIT", + "PublicDescription": "Counts retired load instructions with L2 cache hits as data sources. Available PDIST counters: 0", + "RetirementLatencyMax": "7140", + "RetirementLatencyMean": "5.71", + "RetirementLatencyMin": "0", + "SampleAfterValue": "200003", + "UMask": "0x2" + }, + { + "BriefDescription": "Retired load instructions missed L2 cache as data sources", + "Counter": "0,1,2,3", + "Data_LA": "1", + "EventCode": "0xd1", + "EventName": "MEM_LOAD_RETIRED.L2_MISS", + "PublicDescription": "Counts retired load instructions missed L2 cache as data sources. Available PDIST counters: 0", + "SampleAfterValue": "100021", + "UMask": "0x10" + }, + { + "BriefDescription": "Retired load instructions with L3 cache hits as data sources", + "Counter": "0,1,2,3", + "Data_LA": "1", + "EventCode": "0xd1", + "EventName": "MEM_LOAD_RETIRED.L3_HIT", + "PublicDescription": "Counts retired load instructions with at least one uop that hit in the L3 cache. Available PDIST counters: 0", + "RetirementLatencyMax": "5630", + "RetirementLatencyMean": "57.64", + "RetirementLatencyMin": "0", + "SampleAfterValue": "100021", + "UMask": "0x4" + }, + { + "BriefDescription": "Retired load instructions missed L3 cache as data sources", + "Counter": "0,1,2,3", + "Data_LA": "1", + "EventCode": "0xd1", + "EventName": "MEM_LOAD_RETIRED.L3_MISS", + "PublicDescription": "Counts retired load instructions with at least one uop that missed in the L3 cache. Available PDIST counters: 0", + "SampleAfterValue": "50021", + "UMask": "0x20" + }, + { + "BriefDescription": "Retired load instructions with local cxl mem as the data source where the data request missed all caches.", + "Counter": "0,1,2,3", + "Data_LA": "1", + "EventCode": "0xd1", + "EventName": "MEM_LOAD_RETIRED.LOCAL_CXL_MEM", + "PublicDescription": "Counts retired load instructions with local cxl mem as the data source and the data request missed L3. Available PDIST counters: 0", + "SampleAfterValue": "1000003", + "UMask": "0x80" + }, + { + "BriefDescription": "MEM_STORE_RETIRED.L2_HIT", + "Counter": "0,1,2,3", + "EventCode": "0x44", + "EventName": "MEM_STORE_RETIRED.L2_HIT", + "SampleAfterValue": "200003", + "UMask": "0x1" + }, + { + "BriefDescription": "Retired memory uops for any access", + "Counter": "0,1,2,3,4,5,6,7", + "EventCode": "0xe5", + "EventName": "MEM_UOP_RETIRED.ANY", + "PublicDescription": "Number of retired micro-operations (uops) for load or store memory accesses", + "SampleAfterValue": "1000003", + "UMask": "0x3" + }, + { + "BriefDescription": "Counts demand instruction fetches and L1 instruction cache prefetches that have any type of response.", + "Counter": "0,1,2,3", + "EventCode": "0x2A,0x2B", + "EventName": "OCR.DEMAND_CODE_RD.ANY_RESPONSE", + "MSRIndex": "0x1a6,0x1a7", + "MSRValue": "0x10004", + "PublicDescription": "Counts demand instruction fetches and L1 instruction cache prefetches that have any type of response. Available PDIST counters: 0", + "SampleAfterValue": "100003", + "UMask": "0x1" + }, + { + "BriefDescription": "Counts demand instruction fetches and L1 instruction cache prefetches that hit in the L3 or were snooped from another core's caches on the same socket.", + "Counter": "0,1,2,3", + "EventCode": "0x2A,0x2B", + "EventName": "OCR.DEMAND_CODE_RD.L3_HIT", + "MSRIndex": "0x1a6,0x1a7", + "MSRValue": "0x3F803C0004", + "PublicDescription": "Counts demand instruction fetches and L1 instruction cache prefetches that hit in the L3 or were snooped from another core's caches on the same socket. Available PDIST counters: 0", + "SampleAfterValue": "100003", + "UMask": "0x1" + }, + { + "BriefDescription": "Counts demand instruction fetches and L1 instruction cache prefetches that resulted in a snoop hit a modified line in another core's caches which forwarded the data.", + "Counter": "0,1,2,3", + "EventCode": "0x2A,0x2B", + "EventName": "OCR.DEMAND_CODE_RD.L3_HIT.SNOOP_HITM", + "MSRIndex": "0x1a6,0x1a7", + "MSRValue": "0x10003C0004", + "PublicDescription": "Counts demand instruction fetches and L1 instruction cache prefetches that resulted in a snoop hit a modified line in another core's caches which forwarded the data. Available PDIST counters: 0", + "SampleAfterValue": "100003", + "UMask": "0x1" + }, + { + "BriefDescription": "Counts demand data reads that have any type of response.", + "Counter": "0,1,2,3", + "EventCode": "0x2A,0x2B", + "EventName": "OCR.DEMAND_DATA_RD.ANY_RESPONSE", + "MSRIndex": "0x1a6,0x1a7", + "MSRValue": "0x10001", + "PublicDescription": "Counts demand data reads that have any type of response. Available PDIST counters: 0", + "SampleAfterValue": "100003", + "UMask": "0x1" + }, + { + "BriefDescription": "Counts demand data reads that were supplied by CXL MEM (Type 2 or Type 3).", + "Counter": "0,1,2,3", + "EventCode": "0x2A,0x2B", + "EventName": "OCR.DEMAND_DATA_RD.CXL_MEM", + "MSRIndex": "0x1a6,0x1a7", + "MSRValue": "0x703C00001", + "PublicDescription": "Counts demand data reads that were supplied by CXL MEM (Type 2 or Type 3). Available PDIST counters: 0", + "SampleAfterValue": "100003", + "UMask": "0x1" + }, + { + "BriefDescription": "Counts demand data reads that hit in the L3 or were snooped from another core's caches on the same socket.", + "Counter": "0,1,2,3", + "EventCode": "0x2A,0x2B", + "EventName": "OCR.DEMAND_DATA_RD.L3_HIT", + "MSRIndex": "0x1a6,0x1a7", + "MSRValue": "0x3F803C0001", + "PublicDescription": "Counts demand data reads that hit in the L3 or were snooped from another core's caches on the same socket. Available PDIST counters: 0", + "SampleAfterValue": "100003", + "UMask": "0x1" + }, + { + "BriefDescription": "Counts demand data reads that resulted in a snoop hit a modified line in another core's caches which forwarded the data.", + "Counter": "0,1,2,3", + "EventCode": "0x2A,0x2B", + "EventName": "OCR.DEMAND_DATA_RD.L3_HIT.SNOOP_HITM", + "MSRIndex": "0x1a6,0x1a7", + "MSRValue": "0x10003C0001", + "PublicDescription": "Counts demand data reads that resulted in a snoop hit a modified line in another core's caches which forwarded the data. Available PDIST counters: 0", + "SampleAfterValue": "100003", + "UMask": "0x1" + }, + { + "BriefDescription": "Counts demand data reads that resulted in a snoop that hit in another core, which did not forward the data.", + "Counter": "0,1,2,3", + "EventCode": "0x2A,0x2B", + "EventName": "OCR.DEMAND_DATA_RD.L3_HIT.SNOOP_HIT_NO_FWD", + "MSRIndex": "0x1a6,0x1a7", + "MSRValue": "0x4003C0001", + "PublicDescription": "Counts demand data reads that resulted in a snoop that hit in another core, which did not forward the data. Available PDIST counters: 0", + "SampleAfterValue": "100003", + "UMask": "0x1" + }, + { + "BriefDescription": "Counts demand data reads that resulted in a snoop hit in another core's caches which forwarded the unmodified data to the requesting core.", + "Counter": "0,1,2,3", + "EventCode": "0x2A,0x2B", + "EventName": "OCR.DEMAND_DATA_RD.L3_HIT.SNOOP_HIT_WITH_FWD", + "MSRIndex": "0x1a6,0x1a7", + "MSRValue": "0x8003C0001", + "PublicDescription": "Counts demand data reads that resulted in a snoop hit in another core's caches which forwarded the unmodified data to the requesting core. Available PDIST counters: 0", + "SampleAfterValue": "100003", + "UMask": "0x1" + }, + { + "BriefDescription": "Counts demand data reads that were supplied by CXL MEM (Type 2 and Type 3) attached to local socket.", + "Counter": "0,1,2,3", + "EventCode": "0x2A,0x2B", + "EventName": "OCR.DEMAND_DATA_RD.LOCAL_CXL_MEM", + "MSRIndex": "0x1a6,0x1a7", + "MSRValue": "0x700C00001", + "PublicDescription": "Counts demand data reads that were supplied by CXL MEM (Type 2 and Type 3) attached to local socket. Available PDIST counters: 0", + "SampleAfterValue": "100003", + "UMask": "0x1" + }, + { + "BriefDescription": "Counts demand data reads that were supplied by a cache on a remote socket where a snoop hit a modified line in another core's caches which forwarded the data.", + "Counter": "0,1,2,3", + "EventCode": "0x2A,0x2B", + "EventName": "OCR.DEMAND_DATA_RD.REMOTE_CACHE.SNOOP_HITM", + "MSRIndex": "0x1a6,0x1a7", + "MSRValue": "0x1030000001", + "PublicDescription": "Counts demand data reads that were supplied by a cache on a remote socket where a snoop hit a modified line in another core's caches which forwarded the data. Available PDIST counters: 0", + "SampleAfterValue": "100003", + "UMask": "0x1" + }, + { + "BriefDescription": "Counts demand data reads that were supplied by a cache on a remote socket where a snoop hit in another core's caches which forwarded the unmodified data to the requesting core.", + "Counter": "0,1,2,3", + "EventCode": "0x2A,0x2B", + "EventName": "OCR.DEMAND_DATA_RD.REMOTE_CACHE.SNOOP_HIT_WITH_FWD", + "MSRIndex": "0x1a6,0x1a7", + "MSRValue": "0x830000001", + "PublicDescription": "Counts demand data reads that were supplied by a cache on a remote socket where a snoop hit in another core's caches which forwarded the unmodified data to the requesting core. Available PDIST counters: 0", + "SampleAfterValue": "100003", + "UMask": "0x1" + }, + { + "BriefDescription": "Counts demand data reads that were supplied by CXL MEM (Type 2 or Type 3) attached to another socket.", + "Counter": "0,1,2,3", + "EventCode": "0x2A,0x2B", + "EventName": "OCR.DEMAND_DATA_RD.REMOTE_CXL_MEM", + "MSRIndex": "0x1a6,0x1a7", + "MSRValue": "0x703000001", + "PublicDescription": "Counts demand data reads that were supplied by CXL MEM (Type 2 or Type 3) attached to another socket. Available PDIST counters: 0", + "SampleAfterValue": "100003", + "UMask": "0x1" + }, + { + "BriefDescription": "Counts demand data reads that hit a modified line in a distant L3 Cache or were snooped from a distant core's L1/L2 caches on this socket when the system is in SNC (sub-NUMA cluster) mode.", + "Counter": "0,1,2,3", + "EventCode": "0x2A,0x2B", + "EventName": "OCR.DEMAND_DATA_RD.SNC_CACHE.HITM", + "MSRIndex": "0x1a6,0x1a7", + "MSRValue": "0x1008000001", + "PublicDescription": "Counts demand data reads that hit a modified line in a distant L3 Cache or were snooped from a distant core's L1/L2 caches on this socket when the system is in SNC (sub-NUMA cluster) mode. Available PDIST counters: 0", + "SampleAfterValue": "100003", + "UMask": "0x1" + }, + { + "BriefDescription": "Counts demand data reads that either hit a non-modified line in a distant L3 Cache or were snooped from a distant core's L1/L2 caches on this socket when the system is in SNC (sub-NUMA cluster) mode.", + "Counter": "0,1,2,3", + "EventCode": "0x2A,0x2B", + "EventName": "OCR.DEMAND_DATA_RD.SNC_CACHE.HIT_WITH_FWD", + "MSRIndex": "0x1a6,0x1a7", + "MSRValue": "0x808000001", + "PublicDescription": "Counts demand data reads that either hit a non-modified line in a distant L3 Cache or were snooped from a distant core's L1/L2 caches on this socket when the system is in SNC (sub-NUMA cluster) mode. Available PDIST counters: 0", + "SampleAfterValue": "100003", + "UMask": "0x1" + }, + { + "BriefDescription": "Counts demand reads for ownership (RFO) requests and software prefetches for exclusive ownership (PREFETCHW) that have any type of response.", + "Counter": "0,1,2,3", + "EventCode": "0x2A,0x2B", + "EventName": "OCR.DEMAND_RFO.ANY_RESPONSE", + "MSRIndex": "0x1a6,0x1a7", + "MSRValue": "0x3F3FFC0002", + "PublicDescription": "Counts demand reads for ownership (RFO) requests and software prefetches for exclusive ownership (PREFETCHW) that have any type of response. Available PDIST counters: 0", + "SampleAfterValue": "100003", + "UMask": "0x1" + }, + { + "BriefDescription": "Counts demand reads for ownership (RFO) requests and software prefetches for exclusive ownership (PREFETCHW) that were supplied by CXL MEM (Type 2 or Type 3).", + "Counter": "0,1,2,3", + "EventCode": "0x2A,0x2B", + "EventName": "OCR.DEMAND_RFO.CXL_MEM", + "MSRIndex": "0x1a6,0x1a7", + "MSRValue": "0x703C00002", + "PublicDescription": "Counts demand reads for ownership (RFO) requests and software prefetches for exclusive ownership (PREFETCHW) that were supplied by CXL MEM (Type 2 or Type 3). Available PDIST counters: 0", + "SampleAfterValue": "100003", + "UMask": "0x1" + }, + { + "BriefDescription": "Counts demand reads for ownership (RFO) requests and software prefetches for exclusive ownership (PREFETCHW) that hit in the L3 or were snooped from another core's caches on the same socket.", + "Counter": "0,1,2,3", + "EventCode": "0x2A,0x2B", + "EventName": "OCR.DEMAND_RFO.L3_HIT", + "MSRIndex": "0x1a6,0x1a7", + "MSRValue": "0x3F803C0002", + "PublicDescription": "Counts demand reads for ownership (RFO) requests and software prefetches for exclusive ownership (PREFETCHW) that hit in the L3 or were snooped from another core's caches on the same socket. Available PDIST counters: 0", + "SampleAfterValue": "100003", + "UMask": "0x1" + }, + { + "BriefDescription": "Counts demand reads for ownership (RFO) requests and software prefetches for exclusive ownership (PREFETCHW) that resulted in a snoop hit a modified line in another core's caches which forwarded the data.", + "Counter": "0,1,2,3", + "EventCode": "0x2A,0x2B", + "EventName": "OCR.DEMAND_RFO.L3_HIT.SNOOP_HITM", + "MSRIndex": "0x1a6,0x1a7", + "MSRValue": "0x10003C0002", + "PublicDescription": "Counts demand reads for ownership (RFO) requests and software prefetches for exclusive ownership (PREFETCHW) that resulted in a snoop hit a modified line in another core's caches which forwarded the data. Available PDIST counters: 0", + "SampleAfterValue": "100003", + "UMask": "0x1" + }, + { + "BriefDescription": "Counts demand reads for ownership (RFO) requests and software prefetches for exclusive ownership (PREFETCHW) that were supplied by CXL MEM (Type 2 and Type 3) attached to local socket.", + "Counter": "0,1,2,3", + "EventCode": "0x2A,0x2B", + "EventName": "OCR.DEMAND_RFO.LOCAL_CXL_MEM", + "MSRIndex": "0x1a6,0x1a7", + "MSRValue": "0x700C00002", + "PublicDescription": "Counts demand reads for ownership (RFO) requests and software prefetches for exclusive ownership (PREFETCHW) that were supplied by CXL MEM (Type 2 and Type 3) attached to local socket. Available PDIST counters: 0", + "SampleAfterValue": "100003", + "UMask": "0x1" + }, + { + "BriefDescription": "Counts demand reads for ownership (RFO) requests and software prefetches for exclusive ownership (PREFETCHW) that were supplied by CXL MEM (Type 2 or Type 3) attached to another socket.", + "Counter": "0,1,2,3", + "EventCode": "0x2A,0x2B", + "EventName": "OCR.DEMAND_RFO.REMOTE_CXL_MEM", + "MSRIndex": "0x1a6,0x1a7", + "MSRValue": "0x703000002", + "PublicDescription": "Counts demand reads for ownership (RFO) requests and software prefetches for exclusive ownership (PREFETCHW) that were supplied by CXL MEM (Type 2 or Type 3) attached to another socket. Available PDIST counters: 0", + "SampleAfterValue": "100003", + "UMask": "0x1" + }, + { + "BriefDescription": "Counts writebacks of modified cachelines and streaming stores that have any type of response.", + "Counter": "0,1,2,3", + "EventCode": "0x2A,0x2B", + "EventName": "OCR.MODIFIED_WRITE.ANY_RESPONSE", + "MSRIndex": "0x1a6,0x1a7", + "MSRValue": "0x10808", + "PublicDescription": "Counts writebacks of modified cachelines and streaming stores that have any type of response. Available PDIST counters: 0", + "SampleAfterValue": "100003", + "UMask": "0x1" + }, + { + "BriefDescription": "Counts all (cacheable) data read, code read and RFO requests including demands and prefetches to the core caches (L1 or L2) that have any type of response.", + "Counter": "0,1,2,3", + "EventCode": "0x2A,0x2B", + "EventName": "OCR.READS_TO_CORE.ANY_RESPONSE", + "MSRIndex": "0x1a6,0x1a7", + "MSRValue": "0x3F3FFC4477", + "PublicDescription": "Counts all (cacheable) data read, code read and RFO requests including demands and prefetches to the core caches (L1 or L2) that have any type of response. Available PDIST counters: 0", + "SampleAfterValue": "100003", + "UMask": "0x1" + }, + { + "BriefDescription": "Counts all (cacheable) data read, code read and RFO requests including demands and prefetches to the core caches (L1 or L2) that were supplied by CXL MEM (Type 2 or Type 3).", + "Counter": "0,1,2,3", + "EventCode": "0x2A,0x2B", + "EventName": "OCR.READS_TO_CORE.CXL_MEM", + "MSRIndex": "0x1a6,0x1a7", + "MSRValue": "0x703C04477", + "PublicDescription": "Counts all (cacheable) data read, code read and RFO requests including demands and prefetches to the core caches (L1 or L2) that were supplied by CXL MEM (Type 2 or Type 3). Available PDIST counters: 0", + "SampleAfterValue": "100003", + "UMask": "0x1" + }, + { + "BriefDescription": "Counts all (cacheable) data read, code read and RFO requests including demands and prefetches to the core caches (L1 or L2) that hit in the L3 or were snooped from another core's caches on the same socket.", + "Counter": "0,1,2,3", + "EventCode": "0x2A,0x2B", + "EventName": "OCR.READS_TO_CORE.L3_HIT", + "MSRIndex": "0x1a6,0x1a7", + "MSRValue": "0x3F003C4477", + "PublicDescription": "Counts all (cacheable) data read, code read and RFO requests including demands and prefetches to the core caches (L1 or L2) that hit in the L3 or were snooped from another core's caches on the same socket. Available PDIST counters: 0", + "SampleAfterValue": "100003", + "UMask": "0x1" + }, + { + "BriefDescription": "Counts all (cacheable) data read, code read and RFO requests including demands and prefetches to the core caches (L1 or L2) that resulted in a snoop hit a modified line in another core's caches which forwarded the data.", *** 11728 LINES SKIPPED *** From nobody Mon Feb 9 03:09:50 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 4f8V6k3vq6z6S8Nm for ; Mon, 09 Feb 2026 03:09:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f8V6k35BLz3nFb for ; Mon, 09 Feb 2026 03:09:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770606590; 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=jDlTWVoZrZK27EQyC7ELVgSIt1N7RgPf4PkGBRSeV9I=; b=TXdksovmW1su4t5Q32Y1mKEf8gT4e6fj88dqhAXgNcLMYGngOyohnsiVPvZkbrTlJqA5c0 B7Fh6b+SesjJB40EOBIB6HvWyxpUcVH0Q9N1BDov5EDub83LQPhO+ZbQcC92Y3jTYUJUZP nVH1ZDvqAjxY946FwgO9pCMGfb1ngRU+eVpmYF07h/sZT9XsZUJjaQe3zKaXA4ftQ0vY++ 6t0bJwSpZqtomy8SEKOGkOPHcuKGXDRAh+RQFCJyXHwZYg1VKyqsqe/BtAZ+MWZek3v/5G Pbh/VnthHyjCn4EuJkMGvaEUwKdv++shtq31tHqkNqq2L/b/cGihONlxV4wG2Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770606590; a=rsa-sha256; cv=none; b=ZMIwwqZswXoiSB/2q8ODt0kV0m2f774YNFQP4XiQ6BusYXfdmvW1BvQFR84FMbfWE/z9W7 zr/UFpw9GxSklo4ofV9oasjl2VMQX/BEvz+NHIHxM25KSgwtVRLvQHDjQ14zSJTiYKDsCq z8k11kAZtSafAl/IFR2ZiskAhBJmX4B5vQu/Klx2iYv2vt2slRzyd7W6B28K/D/oWYI/y9 N6oBbr3n68Sp0GomIq3N/5p7KSb0wJRQYmH/rmfxkbDofXwasesUKSsOSHkEQ2y3zIGB1c gVju2hc86dkh/9ZM2cm/GFgHufEJQCi/8+rzLlupVjVlbFpM7YDyCS5iSM6DUw== 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=1770606590; 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=jDlTWVoZrZK27EQyC7ELVgSIt1N7RgPf4PkGBRSeV9I=; b=ufVUTiidzbPXmudrI/f+SNfyecKUeQ5swmLsO8L5eyF2Wli/fuXbcMB9MFgNAT6Jr0Sf52 w7B/FvPMBJHTzqGKuFPJ/zYK0MXylipPcHMcdJkt8GLWiOxQ4m0adMX9BkVkep8YUfNUxL cOP5pH1q+Q4kTbBNzPYBvIuphsxnm10wwKwPh4XuEbi1WD1esyZpMSCvXGJiqKBwNN/ff7 8TEpAHJsQH9pJgSTy9+pSyhoZa7++yMLvKWQajyME4O0MsQKMbhh07d/0vOCkwEwA4jPCL Kyvai/zlFKMSTojXtbsn2q/kMqf9yYImallbMWCDgVx/THZbNKCREbAqMEM/Kw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8V6k2dTszJN for ; Mon, 09 Feb 2026 03:09:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3fc67 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 03:09:50 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Michael Osipov From: Colin Percival Subject: git: 11b616d9de3f - releng/14.4 - sockstat: Surround explicit IPv6 addresses with brackets 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: 11b616d9de3f1d106cd9f2bfe4c45013f3b1528f Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 03:09:50 +0000 Message-Id: <69894ffe.3fc67.7cc9dfca@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=11b616d9de3f1d106cd9f2bfe4c45013f3b1528f commit 11b616d9de3f1d106cd9f2bfe4c45013f3b1528f Author: Michael Osipov AuthorDate: 2025-12-26 17:27:12 +0000 Commit: Colin Percival CommitDate: 2026-02-09 03:09:35 +0000 sockstat: Surround explicit IPv6 addresses with brackets Approved by: re (cperciva) PR: 254611 Approved by: otis, tuexen, des MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D54375 (cherry picked from commit fe81e3944c085e765c83c4f78941d7529ceb556e) (cherry picked from commit 03c8e3e77114530f61e0dd9f2b1757eeea033d0e) --- usr.bin/sockstat/sockstat.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/usr.bin/sockstat/sockstat.c b/usr.bin/sockstat/sockstat.c index 805e48715529..58950c92cafb 100644 --- a/usr.bin/sockstat/sockstat.c +++ b/usr.bin/sockstat/sockstat.c @@ -64,6 +64,7 @@ #include #include #include +#include #include #include #include @@ -956,6 +957,7 @@ printaddr(struct sockaddr_storage *ss) struct sockaddr_un *sun; char addrstr[NI_MAXHOST] = ""; int error, off, port = 0; + bool needs_ipv6_brackets = false; switch (ss->ss_family) { case AF_INET: @@ -966,6 +968,8 @@ printaddr(struct sockaddr_storage *ss) case AF_INET6: if (IN6_IS_ADDR_UNSPECIFIED(&sstosin6(ss)->sin6_addr)) addrstr[0] = '*'; + else + needs_ipv6_brackets = true; port = ntohs(sstosin6(ss)->sin6_port); break; case AF_UNIX: @@ -979,6 +983,11 @@ printaddr(struct sockaddr_storage *ss) if (error) errx(1, "cap_getnameinfo()"); } + if (needs_ipv6_brackets) { + if (port == 0) + return (xprintf("[%s]:*", addrstr)); + return (xprintf("[%s]:%d", addrstr, port)); + } if (port == 0) return (xprintf("%s:*", addrstr)); else From nobody Mon Feb 9 06:56: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 4f8b8Y4CJ1z6QgdL for ; Mon, 09 Feb 2026 06:56: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f8b8Y1yLYz45lM for ; Mon, 09 Feb 2026 06:56:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770620205; 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=2843nI2RCHjFFZno7WDyNQ+892gFg2uT3bQH5GHJs10=; b=j51QNaj/rIB0odfuKkPi81F10NQ8/6FmMbiC3BYhKsxjWmAM0gbiErWTYWo0tdgeGKPyAz gZiiSCqONHT8nmTqolS1qIgTpMyvaxhQ72eExqVu+xYJsoRLDENgA9emS3n/X0aVN9fD1X iv758/E1Q2LhimRnMnj21XK83KDMoO0YXUPKfheXwDxVCyAFQRKJmMrLx1P8hrFpd90MTg GmrTv2qahaPqU5FWFh3riOQhJoorpsDCAl0w5VOoHNf1Lf7xX4H3hUCRkV1FT6W8lOpaDW T4PRgrMnxkSnkTiXLWeA+5k3Nf5zh0jDgse/cjKI4VWPcBjsCRHCaw2hHDsa/A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770620205; a=rsa-sha256; cv=none; b=vZuWPPlOvnH8v7vt9bJi7BTStN88ZtqCppAd/wz7pNqIspHEBzpR08RPcPbEBJVD7noNrD 8VrGNjiDZVl9XNojp7/YXsE5TidmHvvZAfAZDtkknoLuMf6ZT911QsPGxeblqp8JaXk7SJ zx2o9zcrq+WwTQ74WkYqo7Wn8/aQNY5TPYyEdZ9tdwjjksm+4B22B+6N5X2ThEn+EfGJg5 EVzhTABTVdRNYi+iDGXwgq0k7XbXmQ/n3TvrjxIMOGkGyGGTBWt6BCnWIvubF4/59Cy8xM MNdPFlTl5w4HHqfKiNK4mSQqOUsKfNppKbIglpCPxmLVeYTCLU6+0kKvRIifDw== 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=1770620205; 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=2843nI2RCHjFFZno7WDyNQ+892gFg2uT3bQH5GHJs10=; b=a1o0+Q5gBRwHaLMuwVfchbKFxLBJYeQ4MqZ28gtP33JkDXbjXz2HKmskLqblautVptRXPL jl64dL0IkXzIXDpSRhAsAKBhN5tLH11SwG9DE51+9NQ6bJ6oWFyOZ5a532sZKwVYeBY6DV Pw6YxTm0Wn6URCSTvgG5RlOWTefkxLXka9L4HiM+RXwU1gqVr2v1BY/Djv1GJRsQJf1RuS lb9OFGIPZFRrd+xMhQ2YnU0FcEVX6+DbDGpP+jBaiKIig89VDBcMW1xiofsE2YbPRB7EuS DURb0040j2gy9A9uckHuGUvQMfU/qd2hASM0iBGtHAlxR/bv5iewt9Z17brG1Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8b8Y09B9z5r6 for ; Mon, 09 Feb 2026 06:56:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3990e by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 06:56:44 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Yogesh Bhosale From: Kevin Bowling Subject: git: 0c733d04939d - stable/15 - ice(4): Handle allmulti flag in ice_if_promisc_set 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: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 0c733d04939db88194472227268fd7468dc2a6ce Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 06:56:44 +0000 Message-Id: <6989852c.3990e.4a1ef810@gitrepo.freebsd.org> The branch stable/15 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=0c733d04939db88194472227268fd7468dc2a6ce commit 0c733d04939db88194472227268fd7468dc2a6ce Author: Yogesh Bhosale AuthorDate: 2026-02-01 17:27:36 +0000 Commit: Kevin Bowling CommitDate: 2026-02-09 06:56:21 +0000 ice(4): Handle allmulti flag in ice_if_promisc_set function In the ice_if_promisc_set function, the driver currently disables the IFF_ALLMULTI flag, thereby preventing the activation of multicast mode. To address this issue, implement appropriate handling to ensure the flag is managed correctly. Signed-off-by: Yogesh Bhosale Tested by: Gowthamkumar K S Differential Revision: https://reviews.freebsd.org/D54186 (cherry picked from commit 98bdf63f6e94be42a1787de73608de15bcb3419a) --- sys/dev/ice/if_ice_iflib.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/sys/dev/ice/if_ice_iflib.c b/sys/dev/ice/if_ice_iflib.c index 1469d2916465..6ea539d52e02 100644 --- a/sys/dev/ice/if_ice_iflib.c +++ b/sys/dev/ice/if_ice_iflib.c @@ -1907,15 +1907,13 @@ ice_if_promisc_set(if_ctx_t ctx, int flags) ice_set_default_promisc_mask(promisc_mask); - if (multi_enable) - return (EOPNOTSUPP); - if (promisc_enable) { status = ice_set_vsi_promisc(hw, sc->pf_vsi.idx, promisc_mask, 0); if (status && status != ICE_ERR_ALREADY_EXISTS) { device_printf(dev, - "Failed to enable promiscuous mode for PF VSI, err %s aq_err %s\n", + "Failed to enable promiscuous mode for " + "PF VSI, err %s aq_err %s\n", ice_status_str(status), ice_aq_str(hw->adminq.sq_last_status)); return (EIO); @@ -1925,11 +1923,28 @@ ice_if_promisc_set(if_ctx_t ctx, int flags) promisc_mask, 0); if (status) { device_printf(dev, - "Failed to disable promiscuous mode for PF VSI, err %s aq_err %s\n", + "Failed to disable promiscuous mode for" + " PF VSI, err %s aq_err %s\n", ice_status_str(status), ice_aq_str(hw->adminq.sq_last_status)); return (EIO); } + + if (multi_enable) { + ice_clear_bit(ICE_PROMISC_UCAST_TX, promisc_mask); + ice_clear_bit(ICE_PROMISC_UCAST_RX, promisc_mask); + status = ice_set_vsi_promisc(hw, sc->pf_vsi.idx, + promisc_mask, 0); + if (status && status != ICE_ERR_ALREADY_EXISTS) { + device_printf(dev, + "Failed to enable allmulti mode " + "for PF VSI, err %s aq_err %s\n", + ice_status_str(status), + ice_aq_str( + hw->adminq.sq_last_status)); + return (EIO); + } + } } return (0); From nobody Mon Feb 9 06:57: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 4f8b9D3wFMz6Qh8p for ; Mon, 09 Feb 2026 06:57: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f8b9D2ynkz46Q3 for ; Mon, 09 Feb 2026 06:57:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770620240; 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=xCAPwFAXSjycITpAhh4tBzMUzc3OqrUcI6rDZ1XOTH8=; b=kDsMuujiCUHZ7+tH0M41g64Ft4hAFFfBZeo9hMeyMJUCQTh/lXt5vsrCH702n9WAQv4raF pyTXyCbKrTD6uefGOfas/+XPElOcz9iHXgeljBKijh0/qzFeNANguxVer8l2ngQICQfGtI SbwzI9xnfjushbzGjVV9VxYQvSncCar2B2jc8Yp0XVkD+SGzQIJWmpiEzq7qLUQAAp1I4D R5hM4qzlDWn6WImI7z3EpampXnG0jAmGs5VLJjXOXAUOGy21xs//HqwHByBOc/E3jr92qt HX++lzXtDJBUYjyFmPd45Zp04qeniJeOlSaJhHgEGHAubYN+J3DK5ABPAH7wIQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770620240; a=rsa-sha256; cv=none; b=NXVkXAwBsTYNTF/C6SPsGgV2E8rpXDBT1mFldt2CkeN3D5a9Ev3/huErgrEAK9EOr6CBNe Am/G+HYkbKk2tzMCvkjWeDGwVksD7KWxymvjn2j2aodYMMSV+ZRHBfkbzeXW4p3lIj9c+G qJLXzLIvSTJIwPFpWWO5OKFtcMiOCCh2q79x8XVr8+qKG5/MMkeckvNig5IVBdj2Pzi6Qd 3uXgip5PSyJEs/hnwNgnuVZ1XJpi3cXG1VGA3lje9XrKIY9Jd05T2umhIY6Vfw7eXyEc0J 0bbikgGLjjOQY44xWB7wQr6T4xwGrs/ux6JsFUM5P9B1jZcQhyt/d5yKZlIj6g== 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=1770620240; 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=xCAPwFAXSjycITpAhh4tBzMUzc3OqrUcI6rDZ1XOTH8=; b=yP9DK52a4TTT+17EAm7NOjh6iilVqMVf2bZlQ1R+Q8oU+96XCmVED6JU03eIaubD4Yx/AQ +LvBDP3r7UwVqXl48jwOR9W39+hCIXLRz20QUmSngiU6UNAdeTNEWK4npZmiTmo6ceuLKF FPisw+f29G01MbN+9YCjvgf19gcHs8APg9JJl7KmB6+PeE/3PqmjExewlHgyQ8zcbAQuPY L7ryLsXq5EE1O9z8UAHiYf3/BiARLEb+gb4FgMWR93KmzKOASGfTIDFC12ns24LQVa5r0x 0QwB95vXhNeedLr5bbMxM9V8nRNIjFjonT1Z1Jot16Y28NPalpVLgezDXIOOvw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8b9D2FW1z6rl for ; Mon, 09 Feb 2026 06:57:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 39e6d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 06:57:20 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Yogesh Bhosale From: Kevin Bowling Subject: git: 2f91ff89c56e - stable/14 - ice(4): Handle allmulti flag in ice_if_promisc_set 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: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 2f91ff89c56eb18c0979ba6050f66bfd50c9aef5 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 06:57:20 +0000 Message-Id: <69898550.39e6d.98732c5@gitrepo.freebsd.org> The branch stable/14 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=2f91ff89c56eb18c0979ba6050f66bfd50c9aef5 commit 2f91ff89c56eb18c0979ba6050f66bfd50c9aef5 Author: Yogesh Bhosale AuthorDate: 2026-02-01 17:27:36 +0000 Commit: Kevin Bowling CommitDate: 2026-02-09 06:57:05 +0000 ice(4): Handle allmulti flag in ice_if_promisc_set function In the ice_if_promisc_set function, the driver currently disables the IFF_ALLMULTI flag, thereby preventing the activation of multicast mode. To address this issue, implement appropriate handling to ensure the flag is managed correctly. Signed-off-by: Yogesh Bhosale Tested by: Gowthamkumar K S Differential Revision: https://reviews.freebsd.org/D54186 (cherry picked from commit 98bdf63f6e94be42a1787de73608de15bcb3419a) --- sys/dev/ice/if_ice_iflib.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/sys/dev/ice/if_ice_iflib.c b/sys/dev/ice/if_ice_iflib.c index e60ee0f1c5c3..a844df9d5a4a 100644 --- a/sys/dev/ice/if_ice_iflib.c +++ b/sys/dev/ice/if_ice_iflib.c @@ -1866,15 +1866,13 @@ ice_if_promisc_set(if_ctx_t ctx, int flags) ice_set_default_promisc_mask(promisc_mask); - if (multi_enable) - return (EOPNOTSUPP); - if (promisc_enable) { status = ice_set_vsi_promisc(hw, sc->pf_vsi.idx, promisc_mask, 0); if (status && status != ICE_ERR_ALREADY_EXISTS) { device_printf(dev, - "Failed to enable promiscuous mode for PF VSI, err %s aq_err %s\n", + "Failed to enable promiscuous mode for " + "PF VSI, err %s aq_err %s\n", ice_status_str(status), ice_aq_str(hw->adminq.sq_last_status)); return (EIO); @@ -1884,11 +1882,28 @@ ice_if_promisc_set(if_ctx_t ctx, int flags) promisc_mask, 0); if (status) { device_printf(dev, - "Failed to disable promiscuous mode for PF VSI, err %s aq_err %s\n", + "Failed to disable promiscuous mode for" + " PF VSI, err %s aq_err %s\n", ice_status_str(status), ice_aq_str(hw->adminq.sq_last_status)); return (EIO); } + + if (multi_enable) { + ice_clear_bit(ICE_PROMISC_UCAST_TX, promisc_mask); + ice_clear_bit(ICE_PROMISC_UCAST_RX, promisc_mask); + status = ice_set_vsi_promisc(hw, sc->pf_vsi.idx, + promisc_mask, 0); + if (status && status != ICE_ERR_ALREADY_EXISTS) { + device_printf(dev, + "Failed to enable allmulti mode " + "for PF VSI, err %s aq_err %s\n", + ice_status_str(status), + ice_aq_str( + hw->adminq.sq_last_status)); + return (EIO); + } + } } return (0); From nobody Mon Feb 9 06: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 4f8b9y49vmz6Qh46 for ; Mon, 09 Feb 2026 06: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f8b9y1d2Kz46gt for ; Mon, 09 Feb 2026 06: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=1770620278; 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=XdxlsbYDDvGOWxW/d7XvCtdK+hM07blID8tFFZiZ6L8=; b=iWoJazw9mjyQ4UigbxTfrjD+EyFNMVhAm/GEho7jKY/eaVv45vcLn/cl6+sdtAuNcDa5yj ef1E/I4BdwUFH5pLhJ7F8ZBOU1lfUWAh3Vib+eGnlGQdvNpn8TpLJukS4o5+7U9DlXOT2m 0WHgiNVxGOlabtADmiAhOOg/F+FQVdWymw9Y/Dc35ovmhYIB3ckkHVGIU1+TsblHCFqkPB Ppb4A9ssdquSDEzQHYL34Jd2o9RvSIWmwdeKyIDd+g446CG7PjWqHmLol193O1fmGdCB9S qThG9NGLhEl8CJTrs30ALTAqiuNak+BqBe3F53Gxia/+GffKnH925Kpqe8P3QA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770620278; a=rsa-sha256; cv=none; b=U8VM21IBEeXobe+GhOjufz4l3v1ACl9e5LgfIYjGPXYkbh4hnvmHmlksot147vAk8TjlLa zEvQMwpqgJmmIIGrqGxzX74KAUFwI2Wl8w4kjYcPh473jsRUSEX98Cq3u/9ipsMfqCvc5p GlicN6cyhwx7cYW1W+9vu765PMfGhUpXA51dniQ+/7nkjj1SxRX/Lm9he6nLlBr/NP7u8e aVM3MiMLFIlAJfF4zAFz3+cE21Wwrf4h1lbLz96ZvFyX6gUCEtmjHj0qrh3v/1AiHlMr68 bYBUEW3IFE3Um09nEW5kYGG/Ubz5raRPezSp5R5y+HiPxkOXFvn1JC1z6IIVuA== 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=1770620278; 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=XdxlsbYDDvGOWxW/d7XvCtdK+hM07blID8tFFZiZ6L8=; b=WMVI9yf0eyH8c7s/HXrxu5V92bnzTeZQGenCQRWB9lFaluPw4Xbb9IUZyIgtJsJcOfnxmI zYomjLua5WzMzI5HunqL/xkPJGzs4dV/npbfLor/VB+sJNeeZ4KIbtSOEzm7IykHbbSPO1 8RbV0nLZjEX2cOvc5Egtc0ESbuCOEPIe0l0LBt85M2eLudoBzWx0OlEtpkywOhvJ8MgbZP TZ539y+GAdGhWx+o5A/uYnE/O8k00obh4w5zSwxxoRqUGD5fMbh8K7HsE0p3JtBMVJr9tp 28Y0dcqeXlQKp2QeEmvbCUGSu0/pzM7c0uEXuKUkPuW5BaIeXxOM+Tkvd+FSGA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8b9y0lJZz6Tt for ; Mon, 09 Feb 2026 06:57:58 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 39a0a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 06:57:58 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Yogesh Bhosale From: Kevin Bowling Subject: git: f418e65768df - stable/13 - ice(4): Handle allmulti flag in ice_if_promisc_set 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: kbowling X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: f418e65768dff2a7fd871e19184a9cf3470cad57 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 06:57:58 +0000 Message-Id: <69898576.39a0a.aad04d6@gitrepo.freebsd.org> The branch stable/13 has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=f418e65768dff2a7fd871e19184a9cf3470cad57 commit f418e65768dff2a7fd871e19184a9cf3470cad57 Author: Yogesh Bhosale AuthorDate: 2026-02-01 17:27:36 +0000 Commit: Kevin Bowling CommitDate: 2026-02-09 06:57:46 +0000 ice(4): Handle allmulti flag in ice_if_promisc_set function In the ice_if_promisc_set function, the driver currently disables the IFF_ALLMULTI flag, thereby preventing the activation of multicast mode. To address this issue, implement appropriate handling to ensure the flag is managed correctly. Signed-off-by: Yogesh Bhosale Tested by: Gowthamkumar K S Differential Revision: https://reviews.freebsd.org/D54186 (cherry picked from commit 98bdf63f6e94be42a1787de73608de15bcb3419a) --- sys/dev/ice/if_ice_iflib.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/sys/dev/ice/if_ice_iflib.c b/sys/dev/ice/if_ice_iflib.c index 72482d534eb5..e1e5d0ca04d7 100644 --- a/sys/dev/ice/if_ice_iflib.c +++ b/sys/dev/ice/if_ice_iflib.c @@ -1873,15 +1873,13 @@ ice_if_promisc_set(if_ctx_t ctx, int flags) ice_set_default_promisc_mask(promisc_mask); - if (multi_enable) - return (EOPNOTSUPP); - if (promisc_enable) { status = ice_set_vsi_promisc(hw, sc->pf_vsi.idx, promisc_mask, 0); if (status && status != ICE_ERR_ALREADY_EXISTS) { device_printf(dev, - "Failed to enable promiscuous mode for PF VSI, err %s aq_err %s\n", + "Failed to enable promiscuous mode for " + "PF VSI, err %s aq_err %s\n", ice_status_str(status), ice_aq_str(hw->adminq.sq_last_status)); return (EIO); @@ -1891,11 +1889,28 @@ ice_if_promisc_set(if_ctx_t ctx, int flags) promisc_mask, 0); if (status) { device_printf(dev, - "Failed to disable promiscuous mode for PF VSI, err %s aq_err %s\n", + "Failed to disable promiscuous mode for" + " PF VSI, err %s aq_err %s\n", ice_status_str(status), ice_aq_str(hw->adminq.sq_last_status)); return (EIO); } + + if (multi_enable) { + ice_clear_bit(ICE_PROMISC_UCAST_TX, promisc_mask); + ice_clear_bit(ICE_PROMISC_UCAST_RX, promisc_mask); + status = ice_set_vsi_promisc(hw, sc->pf_vsi.idx, + promisc_mask, 0); + if (status && status != ICE_ERR_ALREADY_EXISTS) { + device_printf(dev, + "Failed to enable allmulti mode " + "for PF VSI, err %s aq_err %s\n", + ice_status_str(status), + ice_aq_str( + hw->adminq.sq_last_status)); + return (EIO); + } + } } return (0); From nobody Mon Feb 9 13:42: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 4f8m8l46rWz6RSq3 for ; Mon, 09 Feb 2026 13:42: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 4f8m8l20RFz3pcG for ; Mon, 09 Feb 2026 13:42:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770644551; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wjmZv2mHI9I61d4/iGwepQLbUzq2KLNJy2y1HCf2kY4=; b=lyTUcAAdFk03B1+Ham+Cm/nRTM62sIT2LcFgxYhniETgvT9Ch5mscptTyCRd8ddqT8xR0k +PmSLZCYQk9oqLZu2SIsVOI8YR8CjLOK4/HGOk/MBQm2kuiHhlKk3NjMGKhQVktvT1m3UN F5sgXdwUO7ePQyjw1ok9PB1brvL/ameA4idwD2D8ElU+8EnGPH8bSmz04Ycj5HWzgIoRbB 0/RaUjLzdyhkXEpky7AdDyJKjRC1Jq1MY9eb5Hxzq9P9eOrek37XBVM0ARCY7qdMh5SWpP Ofsd2P1aRMMlV9tE4O5AvPsfvIs4hHOiPOcquL6D5aCtpe/bqlwABIvWIjOykw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770644551; a=rsa-sha256; cv=none; b=t5AVjuhDqDNRf5iPn3hNEmCcNo503L3BVlz8WwUFbihCo294NQ/8G4AyDNyN9WwJw6NMLd vU3C3adQrNUPiO6Rp8lS6C06O7XW1XSQ4hKstb+47H0RL3pzibAHBnpJjVJZt6unWaVb8c cSggDmxnH9PKdMHncwpy/GLpB3sthcYaZZqnXqth8PnuRX1VNg8fK5eYFUKdxitZ0ZLNdq 4sVAR5b1NK7TWHEX5mitl1t349mV1WikrQFZCFq9+fZTk7zN4Rr+TFo/41XrIWhiiYauJq E31Jj7qcf3LJ+1GY/kYpgEM1KvfbDTN/gjohWu0uXC3STBw/QEElKRH+lfr0bQ== 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=1770644551; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wjmZv2mHI9I61d4/iGwepQLbUzq2KLNJy2y1HCf2kY4=; b=VIoFd/15D02ompZsxc98nCCq4EV1d98sCphwHGXF2oSW7YoPgpGGKOWpRv6udqASq5Xpng DTucT8BxbaOcoxyLjvH7mjc+XrpdK2J6ViX6nFa7q0cy+lePZG1LoY3rtm+It2hAS1M5zw LAVElugX1M3vPf+ohHrmSy9zu8/PDkRCU87uXmOmjWm7ibNGhylsMNIdQZlp5+JjH5ib7Q 23nZgNLjRxoXkHX012noWJYv5PYLTw5jRQ+J8bh15GvfzFccXwXHR7D+s1xbdu1SP3D9P3 8qnOFLibDWgSZSQHXx9zOQswrSSQBnYmKWPL0eVCRotmU7/C/hT89aloj8pgTA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8m8l1bVYzbqV for ; Mon, 09 Feb 2026 13:42:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3b7dd by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 13:42:31 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Cy Schubert Subject: git: e5434587ccdf - stable/15 - krb5: Fix another GCC build issue 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: cy X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: e5434587ccdf288f7df9c3398c12fc50719f998e Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 13:42:31 +0000 Message-Id: <6989e447.3b7dd.1a49764d@gitrepo.freebsd.org> The branch stable/15 has been updated by cy: URL: https://cgit.FreeBSD.org/src/commit/?id=e5434587ccdf288f7df9c3398c12fc50719f998e commit e5434587ccdf288f7df9c3398c12fc50719f998e Author: Cy Schubert AuthorDate: 2026-01-20 17:33:17 +0000 Commit: Cy Schubert CommitDate: 2026-02-09 13:41:56 +0000 krb5: Fix another GCC build issue Fixes: 1876de606eb8 (cherry picked from commit 2d8ec3bab2d8af9d0f3322c4d752ff928620491c) --- krb5/lib/krb5/version.map | 4 ---- 1 file changed, 4 deletions(-) diff --git a/krb5/lib/krb5/version.map b/krb5/lib/krb5/version.map index 924737afcedc..18104fc97564 100644 --- a/krb5/lib/krb5/version.map +++ b/krb5/lib/krb5/version.map @@ -1741,8 +1741,6 @@ krb5_3_MIT { localauth_rule_initvt; profile_abandon; profile_add_node; - profile_add_relation; - profile_clear_relation; profile_close_file; profile_copy; profile_copy_file; @@ -1798,7 +1796,6 @@ krb5_3_MIT { profile_release_string; profile_remove_node; profile_rename_node; - profile_rename_section; profile_ser_externalize; profile_ser_internalize; profile_ser_size; @@ -1806,7 +1803,6 @@ krb5_3_MIT { profile_unlock_global; profile_update_file_data; profile_update_file_data_locked; - profile_update_relation; profile_verify_node; profile_write_tree_file; profile_write_tree_to_buffer; From nobody Mon Feb 9 13:42: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 4f8m8j4MzQz6RSq1 for ; Mon, 09 Feb 2026 13:42: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 4f8m8j16C1z3pfF for ; Mon, 09 Feb 2026 13:42:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770644549; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CYSo10wHXIfvaHMZQLkqekmoX+5r3tGwnHcKdvbwnNY=; b=gCYQXJBMs6oGYq6yhJlnJczHHwoHVx0HYDz5/T/1qeMG6sxsN1mAU+YPwyOs3copZsWDt0 FxuX6u3EYx7kakW4E13eJk7fC9BIcSFZJNoRcGX7Tnl7++3+pCwSJe/qL/naEyY58TOmNC hSVB8ZBCePevAK5yKEf0zod90U+OaoYiLaDRzzo2fmu6RYwcUcXKk8xMiFlmKW5LMJIGqn af55FlxNHXqlGuoQs3jk3bh8LMifyHD3dNYjtneSgfNYZzuIgttV/N+11QjypDHNMKBfnP WI46CvNRiyaxqleAQkmCRrwuBL2bGxstqV9EPIpGwgOyVE+pUByYJhZ+50VXdw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770644549; a=rsa-sha256; cv=none; b=Uvq04Q2RnINj+hmmVY/5WjUFUxy1mHH0I367DVEuJKN0fuZozZwiK3JSoZ6A0kJLUVLm+O FDsukOwRGQv1/uCDaIELtCZ59rWu5uiYspf9HLEXkRym8zc8R7HCHy2Cim/4S4Pp5HoiJq 3G4stil5vp7s2Q+pqXVsC4zV7JCT7VYD5nv6dCsKloyfKk2KarDo8WYyw6XMcavZlOrNKr +N5NESGOq7+JcECTvw9sceXvbq6fbU7ftUAE8GDeuIjJMwB0dTnWjfPfmykLc3vMUUJmed dZoZywSsaZAFDsJ0oNhunRJAIIuQwx7AbcvzztT1kC0qPonyyUNdUm44lwF2SQ== 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=1770644549; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CYSo10wHXIfvaHMZQLkqekmoX+5r3tGwnHcKdvbwnNY=; b=Vsexm+QU9gM4IWH7BW83tr6Cb50BvPNfWYWN6SRECazBRG+0EP/HtKT7LheFywK2OaASHI SXzDxQt6P0PlKzphkA2CYnsw+oq1C5Uljqa7qbGuZAe8rFyy7RnbobdzQPV+E9mDGckwzR NU6JiXOrznEpY1eZBOeKfEkKskqrOaNtiqwCCoNFsB/qQtQQ/PQ29Tx54dUUetHFaP+gtC iQcPVySVlaln68kG5+SvpyDkmFRKInPMkmu0RlAw4GyU/LFIJjS3e20ufuTEZUgjG5nKs7 WRO/DvhfLnRG7wqxaRAWMuYAZNYPbvv1KVjFtiMQ0IRWS0JynVcK/ziHpgvQtw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8m8j0jWvzc2M for ; Mon, 09 Feb 2026 13:42:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3c7be by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 13:42:28 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Cy Schubert Subject: git: 25a9a3987fa2 - stable/15 - krb5: Expose missing symbols 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: cy X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 25a9a3987fa22b3935ce011ca4c891bf197db12d Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 13:42:28 +0000 Message-Id: <6989e444.3c7be.c201eed@gitrepo.freebsd.org> The branch stable/15 has been updated by cy: URL: https://cgit.FreeBSD.org/src/commit/?id=25a9a3987fa22b3935ce011ca4c891bf197db12d commit 25a9a3987fa22b3935ce011ca4c891bf197db12d Author: Cy Schubert AuthorDate: 2025-12-18 00:50:44 +0000 Commit: Cy Schubert CommitDate: 2026-02-09 13:41:56 +0000 krb5: Expose missing symbols Add symbols found in the port but not in base. This requires replacing a shared libkrb5profile.so with libkrb5profile.a (with -fPIC so it can be used by shared libraries). We do this by making libkrb5profile INTERNALLIB. Base currently has libkrb5profile in a shared library. The patch moves those functions to the various "consumer" libraries as the port does. Symbols that should be in the other libraries are in libkrb5profile.so. This is causing some ports issues. PR: 291695 Reported by: michaelo, markj, Chris Inacio Tested by: michaelo Fixes: ae07a5805b19 Reviewed by: michaelo (previous version) Differential revision: https://reviews.freebsd.org/D54323 (cherry picked from commit 1876de606eb876b7a97beccfe6fcc89e60a72a25) --- ObsoleteFiles.inc | 4 + krb5/lib/apputils/Makefile | 1 + krb5/lib/crypto/Makefile | 3 +- krb5/lib/crypto/version.map | 59 ++ krb5/lib/gssapi/Makefile | 3 +- krb5/lib/gssapi/version.map | 308 ++++++++ krb5/lib/kadm5clnt/Makefile | 3 +- krb5/lib/kadm5clnt/version.map | 36 + krb5/lib/kadm5srv/Makefile | 3 +- krb5/lib/kadm5srv/version.map | 29 + krb5/lib/kadmin_common/Makefile | 1 + krb5/lib/kdb/Makefile | 3 +- krb5/lib/kdb/version.map | 27 + krb5/lib/kprop_util/Makefile | 1 + krb5/lib/krad/Makefile | 1 + krb5/lib/krad/version.map | 11 + krb5/lib/krb5/Makefile | 5 +- krb5/lib/krb5/version.map | 1196 ++++++++++++++++++++++++++++++ krb5/lib/rpc/Makefile | 1 + krb5/lib/rpc/version.map | 28 + krb5/libexec/kadmind/Makefile | 3 +- krb5/libexec/kdc/Makefile | 1 + krb5/libexec/kprop/Makefile | 3 +- krb5/libexec/kpropd/Makefile | 3 +- krb5/libexec/kproplog/Makefile | 3 +- krb5/plugins/audit/Makefile | 1 + krb5/plugins/k5tls/Makefile | 3 +- krb5/plugins/kdb/db2/Makefile | 3 +- krb5/plugins/kdb/db2/version.map | 148 ++++ krb5/plugins/preauth/otp/Makefile | 3 +- krb5/plugins/preauth/otp/version.map | 3 + krb5/plugins/preauth/pkinit/Makefile | 3 +- krb5/plugins/preauth/pkinit/version.map | 128 ++++ krb5/plugins/preauth/spake/Makefile | 3 +- krb5/plugins/preauth/spake/version.map | 22 + krb5/plugins/preauth/test/Makefile | 3 +- krb5/plugins/preauth/test/version.map | 2 + krb5/usr.bin/gss-client/Makefile | 3 +- krb5/usr.bin/kadmin/Makefile | 3 +- krb5/usr.bin/kdestroy/Makefile | 3 +- krb5/usr.bin/kinit/Makefile | 3 +- krb5/usr.bin/klist/Makefile | 3 +- krb5/usr.bin/kpasswd/Makefile | 3 +- krb5/usr.bin/ksu/Makefile | 1 + krb5/usr.bin/kswitch/Makefile | 3 +- krb5/usr.bin/ktutil/Makefile | 3 +- krb5/usr.bin/kvno/Makefile | 3 +- krb5/usr.bin/sclient/Makefile | 3 +- krb5/usr.bin/sim_client/Makefile | 3 +- krb5/usr.sbin/gss-server/Makefile | 3 +- krb5/usr.sbin/kadmin.local/Makefile | 3 +- krb5/usr.sbin/kdb5_util/Makefile | 3 +- krb5/usr.sbin/sim_server/Makefile | 3 +- krb5/usr.sbin/sserver/Makefile | 3 +- krb5/util/et/version.map | 2 + krb5/util/profile/Makefile | 4 +- krb5/util/profile/version.map | 74 -- krb5/util/support/version.map | 5 + krb5/util/verto/version.map | 7 + lib/libpam/modules/pam_krb5/Makefile | 1 + lib/libpam/modules/pam_ksu/Makefile | 1 + share/mk/src.libnames.mk | 2 +- tools/build/depend-cleanup.sh | 9 + tools/build/mk/OptionalObsoleteFiles.inc | 2 - 64 files changed, 2103 insertions(+), 111 deletions(-) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index e7ddca0e47bc..670a15cfba06 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -51,6 +51,10 @@ # xargs -n1 | sort | uniq -d; # done +# 20260202: Made libkrb5profile INTERNALLIB +OLD_LIBS+=usr/lib/libkrb5profile.so.122 +OLD_FILES+=usr/lib/libkrb5profile.so + # 20251218: Remove old MLINK to apmconf(8) OLD_FILES+=usr/share/man/man8/apmconf.8.gz diff --git a/krb5/lib/apputils/Makefile b/krb5/lib/apputils/Makefile index 1a79b3800863..38491579a619 100644 --- a/krb5/lib/apputils/Makefile +++ b/krb5/lib/apputils/Makefile @@ -22,6 +22,7 @@ SRCS= net-server.c \ CFLAGS+=-I${KRB5_DIR}/lib/apputils \ -I${KRB5_DIR}/include \ -I${KRB5_SRCTOP}/include \ + -I${KRB5_OBJTOP}/util/profile \ -I${.OBJDIR} .include diff --git a/krb5/lib/crypto/Makefile b/krb5/lib/crypto/Makefile index 9521b48f020c..a130a858cfa4 100644 --- a/krb5/lib/crypto/Makefile +++ b/krb5/lib/crypto/Makefile @@ -41,6 +41,7 @@ CFLAGS+=-I${.CURDIR:H:H}/include \ -I${KRB5_DIR}/lib/crypto/builtin/md5 \ -I${KRB5_DIR}/lib/crypto/builtin/sha1 \ -I${KRB5_DIR}/lib/crypto/builtin/sha2 \ - -I${SRCTOP}/crypto/openssl/include + -I${SRCTOP}/crypto/openssl/include \ + -I${KRB5_OBJTOP}/util/profile .include diff --git a/krb5/lib/crypto/version.map b/krb5/lib/crypto/version.map index 702abf195db0..4cb528537201 100644 --- a/krb5/lib/crypto/version.map +++ b/krb5/lib/crypto/version.map @@ -106,5 +106,64 @@ k5crypto_3_MIT { k5_enctype_to_ssf; krb5int_c_deprecated_enctype; krb5_c_checksum_length; + k5_derive_random_rfc3961; + k5_des_fixup_key_parity; + k5_iov_cursor_get; + k5_iov_cursor_init; + k5_iov_cursor_put; + k5_rand2key_des3; + k5_rand2key_direct; + k5_sp800_108_counter_hmac; + k5_sp800_108_feedback_cmac; + krb5_decrypt_data; + krb5_random_confounder; + krb5int_MD4Final; + krb5int_MD4Init; + krb5int_MD4Update; + krb5int_aes2_crypto_length; + krb5int_aes2_prf; + krb5int_aes2_string_to_key; + krb5int_aes_crypto_length; + krb5int_aes_string_to_key; + krb5int_arcfour_crypto_length; + krb5int_arcfour_decrypt; + krb5int_arcfour_encrypt; + krb5int_arcfour_prf; + krb5int_arcfour_string_to_key; + krb5int_arcfour_translate_usage; + krb5int_c_iov_decrypt_stream; + krb5int_c_locate_iov; + krb5int_c_padding_length; + krb5int_camellia_crypto_length; + krb5int_camellia_string_to_key; + krb5int_cksumtypes_list; + krb5int_default_free_state; + krb5int_derive_keyblock; + krb5int_des_init_state; + krb5int_des_prf; + krb5int_dk_checksum; + krb5int_dk_cmac_checksum; + krb5int_dk_cmac_decrypt; + krb5int_dk_cmac_encrypt; + krb5int_dk_cmac_prf; + krb5int_dk_crypto_length; + krb5int_dk_decrypt; + krb5int_dk_encrypt; + krb5int_dk_prf; + krb5int_dk_string_to_key; + krb5int_enctypes_list; + krb5int_etm_checksum; + krb5int_etm_decrypt; + krb5int_etm_encrypt; + krb5int_hash_sha1; + krb5int_hmac_keyblock; + krb5int_hmacmd5_checksum; + krb5int_pbkdf2_hmac; + krb5int_raw_crypto_length; + krb5int_raw_decrypt; + krb5int_raw_encrypt; + krb5int_unkeyed_checksum; + mit_des_fixup_key_parity; + unsupported_etypes; }; HIDDEN { local: __*; _rest*; _save*; *; }; diff --git a/krb5/lib/gssapi/Makefile b/krb5/lib/gssapi/Makefile index a434b29a2dfb..eca8dd6ffde9 100644 --- a/krb5/lib/gssapi/Makefile +++ b/krb5/lib/gssapi/Makefile @@ -43,7 +43,8 @@ CFLAGS+=${DEFINES} \ -I${KRB5_OBJTOP}/lib/gssapi \ -I${KRB5_OBJTOP}/lib \ -I${KRB5_DIR}/include \ - -I${KRB5_SRCTOP}/include + -I${KRB5_SRCTOP}/include \ + -I${KRB5_OBJTOP}/util/profile .include diff --git a/krb5/lib/gssapi/version.map b/krb5/lib/gssapi/version.map index 42f32cc55edf..e6358e8226fe 100644 --- a/krb5/lib/gssapi/version.map +++ b/krb5/lib/gssapi/version.map @@ -172,5 +172,313 @@ gssapi_krb5_2_MIT { gss_add_cred_from; gss_store_cred_into; gssint_g_seqstate_init; + GSS_C_INQ_ODBC_SESSION_KEY; + et_ggss_error_table; + et_k5g_error_table; + generic_gss_add_buffer_set_member; + generic_gss_add_oid_set_member; + generic_gss_copy_oid; + generic_gss_copy_oid_set; + generic_gss_create_empty_buffer_set; + generic_gss_create_empty_oid_set; + generic_gss_display_mech_attr; + generic_gss_oid_compose; + generic_gss_oid_decompose; + generic_gss_oid_to_str; + generic_gss_release_buffer; + generic_gss_release_buffer_set; + generic_gss_release_oid; + generic_gss_release_oid_set; + generic_gss_str_to_oid; + generic_gss_test_oid_set_member; + gss_krb5int_ccache_name; + gss_krb5int_copy_ccache; + gss_krb5int_export_lucid_sec_context; + gss_krb5int_extract_authtime_from_sec_context; + gss_krb5int_extract_authz_data_from_sec_context; + gss_krb5int_free_lucid_sec_context; + gss_krb5int_get_cred_impersonator; + gss_krb5int_get_tkt_flags; + gss_krb5int_import_cred; + gss_krb5int_initialize_library; + gss_krb5int_inq_odbc_session_key; + gss_krb5int_inq_sspi_session_key; + gss_krb5int_lib_fini; + gss_krb5int_lib_init; + gss_krb5int_make_seal_token_v3_iov; + gss_krb5int_register_acceptor_identity; + gss_krb5int_rotate_left; + gss_krb5int_sec_context_sasl_ssf; + gss_krb5int_set_allowable_enctypes; + gss_krb5int_set_cred_rcache; + gss_krb5int_unseal_v3_iov; + gss_ma_known_attrs; + gss_mech_set_spnego; + gss_mech_spnego; + gss_spnegoint_lib_fini; + gss_spnegoint_lib_init; + gssint_convert_name_to_union_name; + gssint_create_copy_buffer; + gssint_create_union_context; + gssint_delete_internal_sec_context; + gssint_display_internal_name; + gssint_export_internal_name; + gssint_g_display_com_err_status; + gssint_g_display_major_status; + gssint_g_get_token_header; + gssint_g_make_string_buffer; + gssint_g_make_token_header; + gssint_g_seqstate_check; + gssint_g_seqstate_externalize; + gssint_g_seqstate_free; + gssint_g_seqstate_internalize; + gssint_g_seqstate_size; + gssint_g_token_size; + gssint_g_verify_token_header; + gssint_get_mech_type; + gssint_get_mechanism; + gssint_get_mechanism_cred; + gssint_get_modOptions; + gssint_get_public_oid; + gssint_import_internal_name; + gssint_krb5_keytab_lock; + gssint_make_public_oid_set; + gssint_mecherrmap_destroy; + gssint_mecherrmap_get; + gssint_mecherrmap_init; + gssint_mecherrmap_map; + gssint_mecherrmap_map_errcode; + gssint_mechglue_initialize_library; + gssint_register_mechinfo; + gssint_release_internal_name; + gssint_select_mech_type; + gssint_unwrap_aead; + gssint_wrap_aead; + gssspi_exchange_meta_data; + gssspi_query_mechanism_info; + gssspi_query_meta_data; + iakerb_gss_accept_sec_context; + iakerb_gss_acquire_cred; + iakerb_gss_acquire_cred_from; + iakerb_gss_acquire_cred_with_password; + iakerb_gss_context_time; + iakerb_gss_delete_sec_context; + iakerb_gss_export_sec_context; + iakerb_gss_get_mic; + iakerb_gss_get_mic_iov; + iakerb_gss_get_mic_iov_length; + iakerb_gss_import_name; + iakerb_gss_import_sec_context; + iakerb_gss_init_sec_context; + iakerb_gss_inquire_context; + iakerb_gss_inquire_sec_context_by_oid; + iakerb_gss_process_context_token; + iakerb_gss_pseudo_random; + iakerb_gss_set_sec_context_option; + iakerb_gss_unwrap; + iakerb_gss_unwrap_iov; + iakerb_gss_verify_mic; + iakerb_gss_verify_mic_iov; + iakerb_gss_wrap; + iakerb_gss_wrap_iov; + iakerb_gss_wrap_iov_length; + iakerb_gss_wrap_size_limit; + iakerb_make_finished; + iakerb_verify_finished; + initialize_ggss_error_table; + initialize_k5g_error_table; + kg_acceptor_princ; + kg_all_mechs; + kg_allocate_iov; + kg_arcfour_docrypt; + kg_arcfour_docrypt_iov; + kg_caller_provided_ccache_name; + kg_checksum_channel_bindings; + kg_compare_name; + kg_compose_deleg_cred; + kg_confounder_size; + kg_cred_resolve; + kg_cred_set_initial_refresh; + kg_cred_time_to_refresh; + kg_ctx_externalize; + kg_ctx_internalize; + kg_ctx_size; + kg_decrypt; + kg_decrypt_iov; + kg_duplicate_name; + kg_encrypt; + kg_encrypt_inplace; + kg_encrypt_iov; + kg_fixup_padding_iov; + kg_get_ccache_name; + kg_get_defcred; + kg_get_seq_num; + kg_init_name; + kg_integ_only_iov; + kg_iov_msglen; + kg_kdc_flag_mutex; + kg_locate_header_iov; + kg_locate_iov; + kg_make_checksum_iov_v1; + kg_make_checksum_iov_v3; + kg_make_confounder; + kg_make_seed; + kg_make_seq_num; + kg_release_iov; + kg_release_name; + kg_seal; + kg_seal_iov; + kg_seal_iov_length; + kg_set_ccache_name; + kg_setup_keys; + kg_sync_ccache_name; + kg_translate_flag_iov; + kg_unseal_iov; + kg_value_from_cred_store; + kg_verify_checksum_iov_v3; + kg_verify_checksum_v1; + kg_verify_checksum_v3; + kg_verify_mic_v1; + krb5_gss_accept_sec_context; + krb5_gss_accept_sec_context_ext; + krb5_gss_acquire_cred; + krb5_gss_acquire_cred_from; + krb5_gss_acquire_cred_impersonate_name; + krb5_gss_acquire_cred_with_password; + krb5_gss_canonicalize_name; + krb5_gss_compare_name; + krb5_gss_context_time; + krb5_gss_convert_static_mech_oid; + krb5_gss_delete_error_info; + krb5_gss_delete_name_attribute; + krb5_gss_delete_sec_context; + krb5_gss_display_name; + krb5_gss_display_status; + krb5_gss_duplicate_name; + krb5_gss_export_cred; + krb5_gss_export_name; + krb5_gss_export_name_composite; + krb5_gss_export_sec_context; + krb5_gss_get_error_message; + krb5_gss_get_mic; + krb5_gss_get_mic_iov; + krb5_gss_get_mic_iov_length; + krb5_gss_get_name_attribute; + krb5_gss_import_cred; + krb5_gss_import_name; + krb5_gss_import_sec_context; + krb5_gss_indicate_mechs; + krb5_gss_init_context; + krb5_gss_init_sec_context; + krb5_gss_init_sec_context_ext; + krb5_gss_inquire_context; + krb5_gss_inquire_cred; + krb5_gss_inquire_cred_by_mech; + krb5_gss_inquire_name; + krb5_gss_inquire_names_for_mech; + krb5_gss_inquire_sec_context_by_oid; + krb5_gss_internal_release_oid; + krb5_gss_map_name_to_any; + krb5_gss_oid_array; + krb5_gss_process_context_token; + krb5_gss_pseudo_random; + krb5_gss_release_any_name_mapping; + krb5_gss_release_cred; + krb5_gss_release_name; + krb5_gss_release_oid; + krb5_gss_save_error_info; + krb5_gss_save_error_message; + krb5_gss_save_error_string; + krb5_gss_set_name_attribute; + krb5_gss_set_sec_context_option; + krb5_gss_store_cred; + krb5_gss_store_cred_into; + krb5_gss_unwrap; + krb5_gss_unwrap_iov; + krb5_gss_validate_cred; + krb5_gss_validate_cred_1; + krb5_gss_verify_mic; + krb5_gss_verify_mic_iov; + krb5_gss_wrap; + krb5_gss_wrap_iov; + krb5_gss_wrap_iov_length; + krb5_gss_wrap_size_limit; + krb5int_gss_use_kdc_context; + negoex_accept; + negoex_add_auth_mech; + negoex_add_exchange_message; + negoex_add_nego_message; + negoex_add_verify_message; + negoex_add_verify_no_key_alert; + negoex_common_auth_schemes; + negoex_delete_auth_mech; + negoex_init; + negoex_locate_alert_message; + negoex_locate_auth_scheme; + negoex_locate_exchange_message; + negoex_locate_nego_message; + negoex_locate_verify_message; + negoex_parse_token; + negoex_prep_context_for_negoex; + negoex_prep_context_for_spnego; + negoex_random; + negoex_release_context; + negoex_restrict_auth_schemes; + negoex_select_auth_mech; + spnego_gss_accept_sec_context; + spnego_gss_acquire_cred; + spnego_gss_acquire_cred_from; + spnego_gss_acquire_cred_impersonate_name; + spnego_gss_acquire_cred_with_password; + spnego_gss_compare_name; + spnego_gss_complete_auth_token; + spnego_gss_context_time; + spnego_gss_delete_name_attribute; + spnego_gss_delete_sec_context; + spnego_gss_display_name; + spnego_gss_display_name_ext; + spnego_gss_display_status; + spnego_gss_duplicate_name; + spnego_gss_export_cred; + spnego_gss_export_name_composite; + spnego_gss_export_sec_context; + spnego_gss_get_mic; + spnego_gss_get_mic_iov; + spnego_gss_get_mic_iov_length; + spnego_gss_get_name_attribute; + spnego_gss_import_cred; + spnego_gss_import_name; + spnego_gss_import_sec_context; + spnego_gss_init_sec_context; + spnego_gss_inquire_attrs_for_mech; + spnego_gss_inquire_context; + spnego_gss_inquire_cred; + spnego_gss_inquire_cred_by_oid; + spnego_gss_inquire_mech_for_saslname; + spnego_gss_inquire_name; + spnego_gss_inquire_names_for_mech; + spnego_gss_inquire_saslname_for_mech; + spnego_gss_inquire_sec_context_by_oid; + spnego_gss_localname; + spnego_gss_map_name_to_any; + spnego_gss_process_context_token; + spnego_gss_pseudo_random; + spnego_gss_release_any_name_mapping; + spnego_gss_release_cred; + spnego_gss_release_name; + spnego_gss_set_cred_option; + spnego_gss_set_name_attribute; + spnego_gss_set_neg_mechs; + spnego_gss_set_sec_context_option; + spnego_gss_unwrap; + spnego_gss_unwrap_aead; + spnego_gss_unwrap_iov; + spnego_gss_verify_mic; + spnego_gss_verify_mic_iov; + spnego_gss_wrap; + spnego_gss_wrap_aead; + spnego_gss_wrap_iov; + spnego_gss_wrap_iov_length; + spnego_gss_wrap_size_limit; }; HIDDEN { local: __*; _rest*; _save*; *; }; diff --git a/krb5/lib/kadm5clnt/Makefile b/krb5/lib/kadm5clnt/Makefile index ef01a5f779e3..27546a87949e 100644 --- a/krb5/lib/kadm5clnt/Makefile +++ b/krb5/lib/kadm5clnt/Makefile @@ -35,7 +35,8 @@ CFLAGS+=-I${KRB5_DIR}/lib \ -I${KRB5_DIR}/include \ -I${KRB5_OBJTOP}/include/krb5_private \ -I${KRB5_SRCTOP}/include \ - -I${KRB5_OBJTOP}/lib + -I${KRB5_OBJTOP}/lib \ + -I${KRB5_OBJTOP}/util/profile INCSDIR=${INCLUDEDIR}/kadm5 INCS= admin.h \ diff --git a/krb5/lib/kadm5clnt/version.map b/krb5/lib/kadm5clnt/version.map index bb3feb11cff1..4343dbd9f04e 100644 --- a/krb5/lib/kadm5clnt/version.map +++ b/krb5/lib/kadm5clnt/version.map @@ -117,5 +117,41 @@ kadm5clnt_mit_12_MIT { kadm5_init_iprop; xdr_calias_arg; kadm5_create_alias; + chpass_principal3_2; + chpass_principal_2; + chrand_principal3_2; + chrand_principal_2; + create_alias_2; + create_policy_2; + create_principal3_2; + create_principal_2; + delete_policy_2; + delete_principal_2; + et_ovk_error_table; + et_ovku_error_table; + get_policy_2; + get_pols_2; + get_principal_2; + get_principal_keys_2; + get_princs_2; + get_privs_2; + get_strings_2; + init_2; + initialize_ovk_error_table; + initialize_ovku_error_table; + krb5_aprof_get_string_all; + modify_policy_2; + modify_principal_2; + purgekeys_2; + rename_principal_2; + set_string_2; + setkey_principal3_2; + setkey_principal4_2; + setkey_principal_2; + xdr_gstrings_arg; + xdr_gstrings_ret; + xdr_krb5_string_attr; + xdr_purgekeys_arg; + xdr_sstring_arg; }; HIDDEN { local: __*; _rest*; _save*; *; }; diff --git a/krb5/lib/kadm5srv/Makefile b/krb5/lib/kadm5srv/Makefile index 9eecd20ca822..826a9edad25a 100644 --- a/krb5/lib/kadm5srv/Makefile +++ b/krb5/lib/kadm5srv/Makefile @@ -41,7 +41,8 @@ CFLAGS+=-I${KRB5_DIR}/lib \ -I${KRB5_OBJTOP}/lib \ -I${KRB5_OBJTOP}/lib/gssapi \ -I${KRB5_DIR}/lib/gssapi/krb5 \ - -I${KRB5_DIR}/lib/gssapi/generic + -I${KRB5_DIR}/lib/gssapi/generic \ + -I${KRB5_OBJTOP}/util/profile CWARNFLAGS.gcc+=-Wno-alloc-size-larger-than GEN_KADM_ERR= kadm_err.et diff --git a/krb5/lib/kadm5srv/version.map b/krb5/lib/kadm5srv/version.map index 4eb5ba7c3ead..d8dc8cfe0b0d 100644 --- a/krb5/lib/kadm5srv/version.map +++ b/krb5/lib/kadm5srv/version.map @@ -136,5 +136,34 @@ kadm5srv_mit_12_MIT { kadm5_init_iprop; xdr_calias_arg; kadm5_create_alias; + destroy_pwqual; + et_ovk_error_table; + et_ovku_error_table; + init_pwqual; + initialize_ovk_error_table; + initialize_ovku_error_table; + k5_kadm5_hook_alias; + k5_kadm5_hook_chpass; + k5_kadm5_hook_create; + k5_kadm5_hook_free_handles; + k5_kadm5_hook_load; + k5_kadm5_hook_modify; + k5_kadm5_hook_remove; + k5_kadm5_hook_rename; + k5_pwqual_check; + k5_pwqual_free_handles; + k5_pwqual_load; + k5_pwqual_name; + kadm5_get_admin_service_name; + kdb_free_keyblocks; + kdb_get_active_mkey; + kdb_get_entry; + kdb_get_hist_key; + master_keyblock; + pwqual_dict_initvt; + pwqual_empty_initvt; + pwqual_hesiod_initvt; + pwqual_princ_initvt; + xdr_kadm5_key_data; }; HIDDEN { local: __*; _rest*; _save*; *; }; diff --git a/krb5/lib/kadmin_common/Makefile b/krb5/lib/kadmin_common/Makefile index 9eed31bc94f3..926a7b266c05 100644 --- a/krb5/lib/kadmin_common/Makefile +++ b/krb5/lib/kadmin_common/Makefile @@ -27,6 +27,7 @@ CFLAGS+=-I${KRB5_DIR}/lib/krad \ -I${KRB5_SRCTOP}/include \ -I${KRB5_DIR}/util \ -I${KRB5_OBJTOP}/util \ + -I${KRB5_OBJTOP}/util/profile \ -I${.OBJDIR} CLEANFILES= kadmin_ct.c ktutil_ct.c diff --git a/krb5/lib/kdb/Makefile b/krb5/lib/kdb/Makefile index 80039ad83502..52087f9cd389 100644 --- a/krb5/lib/kdb/Makefile +++ b/krb5/lib/kdb/Makefile @@ -37,7 +37,8 @@ CFLAGS+=${DEFINES} \ -I${KRB5_DIR}/lib/kdb \ -I${KRB5_OBJTOP}/lib/kdb \ -I${KRB5_DIR}/include \ - -I${KRB5_SRCTOP}/include + -I${KRB5_SRCTOP}/include \ + -I${KRB5_OBJTOP}/util/profile ADB_ERR= adb_err.et ADB_ERR_C= ${ADB_ERR:S/.et$/.c/} diff --git a/krb5/lib/kdb/version.map b/krb5/lib/kdb/version.map index 54a093ff72bc..4a0b0d3df1b7 100644 --- a/krb5/lib/kdb/version.map +++ b/krb5/lib/kdb/version.map @@ -110,5 +110,32 @@ kdb5_10_MIT { krb5_dbe_sort_key_data; krb5_dbe_make_alias_entry; krb5_dbe_read_alias; + et_adb_error_table; + initialize_adb_error_table; + krb5_db_def_fetch_mkey; + krb5_db_def_rename_principal; + krb5_db_load_module; + krb5_dbe_def_cpw; + krb5_dbe_def_search_enctype; + krb5_dbe_delete_tl_data; + krb5_dbe_free_tl_data; + krb5_def_fetch_mkey_list; + krb5int_delete_principal_no_log; + krb5int_put_principal_no_log; + ulog_conv_2dbentry; + ulog_conv_2logentry; + xdr_kdb_sno_t; + xdr_kdb_ulog_t; + xdr_kdbe_attr_type_t; + xdr_kdbe_data_t; + xdr_kdbe_key_t; + xdr_kdbe_princ_t; + xdr_kdbe_pw_hist_t; + xdr_kdbe_t; + xdr_kdbe_time_t; + xdr_kdbe_tl_t; + xdr_kdbe_val_t; + xdr_update_status_t; + xdr_utf8str_t; }; HIDDEN { local: __*; _rest*; _save*; *; }; diff --git a/krb5/lib/kprop_util/Makefile b/krb5/lib/kprop_util/Makefile index aaaeb969058d..d29f17e20b65 100644 --- a/krb5/lib/kprop_util/Makefile +++ b/krb5/lib/kprop_util/Makefile @@ -21,6 +21,7 @@ SRCS= kprop_util.c CFLAGS+=-I${KRB5_DIR}/lib/krad \ -I${KRB5_DIR}/include \ -I${KRB5_SRCTOP}/include \ + -I${KRB5_OBJTOP}/util/profile \ -I${.OBJDIR} .include diff --git a/krb5/lib/krad/Makefile b/krb5/lib/krad/Makefile index 36074dff1296..17cd4f8142b5 100644 --- a/krb5/lib/krad/Makefile +++ b/krb5/lib/krad/Makefile @@ -27,6 +27,7 @@ SRCS= attr.c \ CFLAGS+=-I${KRB5_DIR}/lib/krad \ -I${KRB5_DIR}/include \ -I${KRB5_SRCTOP}/include \ + -I${KRB5_OBJTOP}/util/profile \ -I${.OBJDIR} .include diff --git a/krb5/lib/krad/version.map b/krb5/lib/krad/version.map index a18fa4665e50..6ffe589a4226 100644 --- a/krb5/lib/krad/version.map +++ b/krb5/lib/krad/version.map @@ -23,5 +23,16 @@ krad_0_MIT { krad_client_new; krad_client_free; krad_client_send; + kr_attr_decode; + kr_attr_encode; + kr_attr_valid; + kr_attrset_decode; + kr_attrset_encode; + kr_remote_cancel; + kr_remote_cancel_all; + kr_remote_equals; + kr_remote_free; + kr_remote_new; + kr_remote_send; }; HIDDEN { local: __*; _rest*; _save*; *; }; diff --git a/krb5/lib/krb5/Makefile b/krb5/lib/krb5/Makefile index b3587cf58c2b..b232a8a3e6ee 100644 --- a/krb5/lib/krb5/Makefile +++ b/krb5/lib/krb5/Makefile @@ -51,7 +51,10 @@ CFLAGS+=${DEFINES} \ -I${KRB5_DIR}/util/profile \ -I${KRB5_DIR}/include \ -I${KRB5_SRCTOP}/include \ - -I${KRB5_DIR} + -I${KRB5_DIR} \ + -I${KRB5_OBJTOP}/util/profile + +LDFLAGS+=-Wl,--error-limit=0 MANGROUPS= KRB5 KRB5= k5identity.5 \ diff --git a/krb5/lib/krb5/version.map b/krb5/lib/krb5/version.map index 3de2fdd879d0..924737afcedc 100644 --- a/krb5/lib/krb5/version.map +++ b/krb5/lib/krb5/version.map @@ -634,5 +634,1201 @@ krb5_3_MIT { k5_addr_directional_init; k5_print_addr; k5_print_addr_port; + _krb5_use_dns_kdc; + _krb5_use_dns_realm; + anon_princ; + aux_info_address_1_untagged; + aux_info_authdata_1_untagged; + aux_info_authdata_types; + aux_info_bitstring_data; + aux_info_checksum_1_untagged; + aux_info_der_data; + aux_info_etype_info2_1_def_untagged; + aux_info_etype_info_1_def_untagged; + aux_info_etype_list; + aux_info_gstring_data; + aux_info_keyblock_1_untagged; + aux_info_oid_data; + aux_info_ostring_data; + aux_info_pa_data_2_untagged; + aux_info_pa_pk_as_rep; + aux_info_pa_spake; + aux_info_princname_1_untagged; + aux_info_req_body_8_untagged; + aux_info_spake_support_0_untagged; + aux_info_typed_data_1_untagged; + aux_info_utf8_data; + ccselect_hostname_initvt; + ccselect_k5identity_initvt; + ccselect_realm_initvt; + clpreauth_encrypted_challenge_initvt; + clpreauth_encrypted_timestamp_initvt; + clpreauth_otp_initvt; + clpreauth_sam2_initvt; + decode_krb5_auth_pack; + decode_krb5_checksum; + decode_krb5_etype_list; + decode_krb5_kdc_dh_key_info; + decode_krb5_pa_pk_as_rep; + decode_krb5_pa_pk_as_req; + decode_krb5_principal_name; + decode_krb5_reply_key_pack; + decode_krb5_safe_with_body; + decode_krb5_td_dh_parameters; + decode_krb5_td_trusted_certifiers; + encode_krb5_auth_pack; + encode_krb5_etype_list; + encode_krb5_fast_req; + encode_krb5_kdc_dh_key_info; + encode_krb5_pa_fx_fast_request; + encode_krb5_pa_pac_req; + encode_krb5_pa_pk_as_rep; + encode_krb5_pa_pk_as_req; + encode_krb5_reply_key_pack; + encode_krb5_safe_with_body; + encode_krb5_setpw_req; + encode_krb5_td_dh_parameters; + encode_krb5_td_trusted_certifiers; + et_k5e1_error_table; + et_prof_error_table; + hostrealm_dns_initvt; + hostrealm_domain_initvt; + hostrealm_profile_initvt; + hostrealm_registry_initvt; + initialize_prof_error_table; + interface_names; + k5_asn1_decode_atype; + k5_asn1_decode_bitstring; + k5_asn1_decode_bool; + k5_asn1_decode_bytestring; + k5_asn1_decode_generaltime; + k5_asn1_decode_int; + k5_asn1_decode_uint; + k5_asn1_encode_atype; + k5_asn1_encode_bitstring; + k5_asn1_encode_bool; + k5_asn1_encode_bytestring; + k5_asn1_encode_generaltime; + k5_asn1_encode_int; + k5_asn1_encode_uint; + k5_asn1_full_decode; + k5_asn1_full_encode; + k5_atype_ad_kdc_issued; + k5_atype_ad_kdcissued_0; + k5_atype_ad_kdcissued_0_untagged; + k5_atype_ad_kdcissued_1; + k5_atype_ad_kdcissued_1_untagged; + k5_atype_ad_kdcissued_2; + k5_atype_ad_kdcissued_2_untagged; + k5_atype_ad_kdcissued_3; + k5_atype_ad_kdcissued_3_untagged; + k5_atype_address; + k5_atype_address_0; + k5_atype_address_0_untagged; + k5_atype_address_1; + k5_atype_address_1_untagged; + k5_atype_address_ptr; + k5_atype_algid_0; + k5_atype_algid_1; + k5_atype_algorithm_identifier; + k5_atype_ap_rep; + k5_atype_ap_rep_0; + k5_atype_ap_rep_1; + k5_atype_ap_rep_2; + k5_atype_ap_rep_2_untagged; + k5_atype_ap_rep_enc_part; + k5_atype_ap_rep_enc_part_0; + k5_atype_ap_rep_enc_part_0_untagged; + k5_atype_ap_rep_enc_part_1; + k5_atype_ap_rep_enc_part_1_untagged; + k5_atype_ap_rep_enc_part_2; + k5_atype_ap_rep_enc_part_2_untagged; + k5_atype_ap_rep_enc_part_3; + k5_atype_ap_rep_enc_part_3_untagged; + k5_atype_ap_rep_msg_type; + k5_atype_ap_req; + k5_atype_ap_req_0; + k5_atype_ap_req_1; + k5_atype_ap_req_2; + k5_atype_ap_req_2_untagged; + k5_atype_ap_req_3; + k5_atype_ap_req_3_untagged; + k5_atype_ap_req_4; + k5_atype_ap_req_4_untagged; + k5_atype_ap_req_msg_type; + k5_atype_as_rep; + k5_atype_as_req; + k5_atype_as_req_2; + k5_atype_as_req_encode; + k5_atype_as_req_msg_type; + k5_atype_auth_data; + k5_atype_auth_data_ptr; + k5_atype_auth_pack; + k5_atype_auth_pack_0; + k5_atype_auth_pack_0_untagged; + k5_atype_auth_pack_1; + k5_atype_auth_pack_1_untagged; + k5_atype_auth_pack_2; + k5_atype_auth_pack_2_untagged; + k5_atype_auth_pack_3; + k5_atype_auth_pack_3_untagged; + k5_atype_auth_pack_4; + k5_atype_auth_pack_4_untagged; + k5_atype_authdata_0; + k5_atype_authdata_0_untagged; + k5_atype_authdata_1; + k5_atype_authdata_1_untagged; + k5_atype_authdata_elt; + k5_atype_authdata_elt_ptr; + k5_atype_authdata_elt_type; + k5_atype_authdata_elt_type_0; + k5_atype_authdata_types; + k5_atype_authenticator; + k5_atype_authenticator_0; + k5_atype_authenticator_1; + k5_atype_authenticator_1_untagged; + k5_atype_authenticator_2; + k5_atype_authenticator_2_untagged; + k5_atype_authenticator_3; + k5_atype_authenticator_3_untagged; + k5_atype_authenticator_4; + k5_atype_authenticator_4_untagged; + k5_atype_authenticator_5; + k5_atype_authenticator_5_untagged; + k5_atype_authenticator_6; + k5_atype_authenticator_6_untagged; + k5_atype_authenticator_7; + k5_atype_authenticator_7_untagged; + k5_atype_authenticator_8; + k5_atype_authenticator_8_untagged; + k5_atype_bitstring_data; + k5_atype_cammac; + k5_atype_cammac_0; + k5_atype_cammac_0_untagged; + k5_atype_cammac_1; + k5_atype_cammac_1_untagged; + k5_atype_cammac_2; + k5_atype_cammac_2_untagged; + k5_atype_cammac_3; + k5_atype_cammac_3_untagged; + k5_atype_checksum; + k5_atype_checksum_0; + k5_atype_checksum_0_untagged; + k5_atype_checksum_1; + k5_atype_checksum_1_untagged; + k5_atype_checksum_ptr; + k5_atype_cred_0; + k5_atype_cred_1; + k5_atype_cred_2; + k5_atype_cred_2_untagged; + k5_atype_cred_3; + k5_atype_cred_3_untagged; + k5_atype_cred_info; + k5_atype_cred_info_0; + k5_atype_cred_info_0_untagged; + k5_atype_cred_info_1; + k5_atype_cred_info_10; + k5_atype_cred_info_10_untagged; + k5_atype_cred_info_1_untagged; + k5_atype_cred_info_2; + k5_atype_cred_info_2_untagged; + k5_atype_cred_info_3; + k5_atype_cred_info_3_untagged; + k5_atype_cred_info_4; + k5_atype_cred_info_4_untagged; + k5_atype_cred_info_5; + k5_atype_cred_info_5_untagged; *** 2018 LINES SKIPPED *** From nobody Mon Feb 9 13:42: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 4f8m8n0Ttyz6RT1f for ; Mon, 09 Feb 2026 13:42: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 4f8m8m2p3Qz3pht for ; Mon, 09 Feb 2026 13:42:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770644552; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Z724ZqDKYc70hE5a4jnGex9WGsbIeWym6gt1N4x6bTk=; b=BROZCpAdtqc0KsaFF0jfMDCjIm0ecncgXwxAB2+SoNPF+b5vZmxRjKB4xrkhXhTOumCan5 /AjRpcSTtNjErBhJLm6Uhy4nWZ6iBGo4eAV07G9/bszZ+39vQXsr1qaitaDW/wh/fot/Qe mjFOJkrgBu87ZJy4nj+R7/A+kguFpcHsNaoFBwaoXgBwtZxItWmit7oLo0dMIZ1if8YRsM SxiI5X5R58OLkfZFZcCP/YuaBu1Z43m3au3H48xiulRr1QaAyrRkpBsXLrp5oJGbW8PXmm Jn7l6INIqIl8LGjYe/9jrFVQFMhBpFopfTq0LDdWNf8Jv7MG/EuZ5b7qoKlMwg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770644552; a=rsa-sha256; cv=none; b=x5IexgftuNc/0i7QaOJJC6dl2YDRzKH6EMcq9/vX4s6G2hM6RPf27bOhvx0LVw5HeavXtB wpvFGtqC2i9gMjE357PKc5Qc7T8iK0w4SgqNFXgPRrUqbmjzlJvYo73VkWN1uQoBkrqPMi wbKxmKwr3bGWp4ehY9HkHc5mOFg2PUsdeupugjEUWLB0ZwpzN66uDxOyxdgTJBxvVv49gv VFJMq0UcKW/aQ4d+BaUbke7E4ARmQ7mvdqFod+wo+vIEAs+mgKf5xePeD1BMqcuixQ6nET /5/yKXM5Y76WcSxnZPto1q61B6hgXP6iVtRm1yf5Y/PXVnC5SOEH14XnNbBHVw== 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=1770644552; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Z724ZqDKYc70hE5a4jnGex9WGsbIeWym6gt1N4x6bTk=; b=B1mQ8vLlDRmPndP45NoKGy90k95MLUQXLgHzOFJfzJjuydiVoGULaHA6E6otnV4ftTghOi VQ1wL68PefOF52mzjgWCJX43vnx68sJec3yxqMkexdQMt2KaFJtvLozpMgfhski+RXr1Uz 0R5yDH6mXMNPzDEfZlRD4tQ86vaR+6D8d4gKu51cs+mVU5gukerogg1XwkU9NHy7oBjX9L jHPwHE4cktAe2Qkv9eOgebKEiWXpqIw82Gxyz5SCXJ75nCVvzmFPHooQG8rsrCuuQNypvj /+QLSdj3rsOvxWnWhF2iMTl9+2UYAGk3q+8l+H8ZxqbB+mtKbd9GU0Q4m8Ma8w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8m8m2NvSzbmk for ; Mon, 09 Feb 2026 13:42:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3c61a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 13:42:32 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Cy Schubert Subject: git: 0e7db4109606 - stable/15 - ObsoleteFiles.mk: Remove obsolete MIT KRB5 plugins 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: cy X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 0e7db410960672e49c89e94edd8aaaffe8004391 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 13:42:32 +0000 Message-Id: <6989e448.3c61a.49d7f016@gitrepo.freebsd.org> The branch stable/15 has been updated by cy: URL: https://cgit.FreeBSD.org/src/commit/?id=0e7db410960672e49c89e94edd8aaaffe8004391 commit 0e7db410960672e49c89e94edd8aaaffe8004391 Author: Cy Schubert AuthorDate: 2026-01-19 15:51:47 +0000 Commit: Cy Schubert CommitDate: 2026-02-09 13:41:56 +0000 ObsoleteFiles.mk: Remove obsolete MIT KRB5 plugins Fixes: 1f9da4793cb1, dd0ec030f8fd Differential revision: https://reviews.freebsd.org/D54780 (cherry picked from commit d0309745e621dd0554f271f4b7e2bc5e8ff597e4) --- ObsoleteFiles.inc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc index 670a15cfba06..6cb2b129a8fc 100644 --- a/ObsoleteFiles.inc +++ b/ObsoleteFiles.inc @@ -51,6 +51,15 @@ # xargs -n1 | sort | uniq -d; # done + +# 20260202: remove obsolete MIT KRB5 plugin files +OLD_LIBS+=usr/lib/krb5/plugins/kdb/db2.so.121 +OLD_LIBS+=usr/lib/krb5/plugins/preauth/otp.so.121 +OLD_LIBS+=usr/lib/krb5/plugins/preauth/pkinit.so.121 +OLD_LIBS+=usr/lib/krb5/plugins/preauth/spake.so.121 +OLD_LIBS+=usr/lib/krb5/plugins/preauth/test.so.121 +OLD_LIBS+=usr/lib/krb5/plugins/tls/k5tls.so.121 + # 20260202: Made libkrb5profile INTERNALLIB OLD_LIBS+=usr/lib/libkrb5profile.so.122 OLD_FILES+=usr/lib/libkrb5profile.so From nobody Mon Feb 9 13:42: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 4f8m8k3Qp7z6RSq2 for ; Mon, 09 Feb 2026 13:42: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 4f8m8k1HClz3pXw for ; Mon, 09 Feb 2026 13:42:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770644550; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=leY0Vz2YRX51rWGUmBm7ZPPIVkE9UjfliJxsx29JBNc=; b=LXTj/bpPIW9dOlzHjXWBB1ReXyYJ4vkE3Ve9h5R7jtp+mzVxzeqAELS6EoZKWQT13h43q7 iVUxD5xkVFyStc8W+sXBieP5+FNE4wUyohJEDqGjTPOaER3f+JES1baTD/yU2IhobvbS1b TPxK1itdoO43Sj5p9K7gjmW1TGGsfLGz9g8NIP/XPG54Cav3KGvcj/bWb+GkXS/N/7JUOs f3K4PZaYuvJcKTqxwnGfF+fcmEGFrwMU0jRM1ZyX7mkeRzkpqGLb+PYK4UNAYLTQ6ffnAq rkcdZVMZjVZ/NzIy+DM49iq8QfvPhpH7koMKMifyVW6oU6kHuwh9ffayPT0CQQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770644550; a=rsa-sha256; cv=none; b=AvrgpDuS7naral0gAFfL0pWxPJyCv3qUP5qgpuTj4NFmCF8EoulJO6MQGk6s76gHBcita3 46r/V4BRWQQ6wG8dxfaCEWGOn1VYRNGG09bVplo3Hzzj2wvAT6CD2IFSFpBWmwyDKcVWWs 5TjjMScLiv769I9BQ1VrydPf8InJ240wL2Z3E1RYCk9ctBiwRkzAjkHxymBW9btwMNRCEP 1Ge6ZunPhzSxVb0NxQasEANBpe1NmPtd2JowDl8xDkrUpJ+Cl3AMNQJTyzxf7xAcwJward 2zrKwxNAJndlnNUeaSFIBE8R/cP7zQd8AzQeuY2rWulfP5TsU25TM19wJgRIcg== 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=1770644550; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=leY0Vz2YRX51rWGUmBm7ZPPIVkE9UjfliJxsx29JBNc=; b=CI/jhr/taM1anSCHPDtX3sl4twQXTsHcNkQAdbAHob/9UflVApbt1upe5GOzQdPfaRpzug jxAHi3fGMDVtCoYPhQTzoMWb+ydqT8aEsZPdX2w4zWsUhc/y3c9PaUD0mfu3HykT1f4qI2 UQMGED2I/69mG7nopbRkTfXCHw3sa3y7d/JMhsUAz9SPKs8K2rL6ztnXS2MP8DNmBsObKD 2Bz082DRnarugLlI+fc6zFivndo3jCDWWDYmpTuzMUx4/qana5+L6TWfDH5RF+gt7h2QlU DxGD6RMstQ4P4bV4ZgWMPUtN1ipJTBcS484CBA10Zclnmjn0Bgc5rc+kPPz7VQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8m8k0sypzbhW for ; Mon, 09 Feb 2026 13:42:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3c4ad by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 13:42:30 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Cy Schubert Subject: git: 55a08524b1aa - stable/15 - krb5: Fix gcc14 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: cy X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 55a08524b1aae479db727dd6ed1fbc6272da93d1 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 13:42:30 +0000 Message-Id: <6989e446.3c4ad.13208591@gitrepo.freebsd.org> The branch stable/15 has been updated by cy: URL: https://cgit.FreeBSD.org/src/commit/?id=55a08524b1aae479db727dd6ed1fbc6272da93d1 commit 55a08524b1aae479db727dd6ed1fbc6272da93d1 Author: Cy Schubert AuthorDate: 2026-01-20 15:35:00 +0000 Commit: Cy Schubert CommitDate: 2026-02-09 13:41:56 +0000 krb5: Fix gcc14 build Fixes: 1876de606eb8 (cherry picked from commit 6637e8f616f0e94c7801698dd11bee5ebcf3799a) --- krb5/lib/krb5/Makefile | 2 -- 1 file changed, 2 deletions(-) diff --git a/krb5/lib/krb5/Makefile b/krb5/lib/krb5/Makefile index b232a8a3e6ee..a502b10f9a03 100644 --- a/krb5/lib/krb5/Makefile +++ b/krb5/lib/krb5/Makefile @@ -54,8 +54,6 @@ CFLAGS+=${DEFINES} \ -I${KRB5_DIR} \ -I${KRB5_OBJTOP}/util/profile -LDFLAGS+=-Wl,--error-limit=0 - MANGROUPS= KRB5 KRB5= k5identity.5 \ k5login.5 \ From nobody Mon Feb 9 16:28: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 4f8qrC72TBz6RgFx for ; Mon, 09 Feb 2026 16:28: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 4f8qrC5fgHz3P9f for ; Mon, 09 Feb 2026 16:28:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770654507; 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=X7JFwkHftUpAkxq6NV0UD7jmZxHNwhwM67D1adYThFQ=; b=vNMpwQmAfChFbkp7kvzc9QumYi7ut4RHYq0zJP0Ra6elSeOpnw9sjQHTdZtYBnbbX4nl6s qTbC6a26Ngja2vyhlHpN3UmXigERpETOL0DOE8Z5FYijojHis7nI9HSp5qZRj5H1bPFatE sXJmvWXlaH1J7ck/lTPWH+OgPRmjOinGS/ti08XHbfVWLSwQ9LNjS6cpPdkHPdW0ttlLuN cOR/tq6Ar58T50sSOXF63G+nVmd5DEhVu9HpWNy4J5S+OGEN9Aafqq2ztin5hGYA3Ui8Ff Fd5LIO8+ca+LVsIeZWrDhRA+KjhgSiksXPE9cWmo3ilctFmhZut6HtLAwErhTA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770654507; a=rsa-sha256; cv=none; b=xk/ie3qZEcRv/dnU3s/SnVOq85bnQCECGYr0JRY9fIJwNMePwvvd2XjdhQKk37DfRTkbwe HsCwLH+OmrjEeQz+pSCRdSU5HlIGgThUGj0a4V4s6Q4/MrikifsTvyxgPMAo6DMdSCmqLd eMa7iicafl6RA79GeFb0uLvcCfa2nADCw7kmVc/GM4YD5cqJCwvDfNtHehlOrgpd/T3cEr TFeKnCCaiWLrThZPsyQDfk33kP0RfL3WyzwS0eXXPmEqHZXRWtC03SvHjuBHZZNyzZ4vqL k2j/y1HwYVFXeSxQpv4VEDAEXUJQYc0Xsz+tWjJn1mlJZoMdnqRxXU6XBQydWw== 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=1770654507; 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=X7JFwkHftUpAkxq6NV0UD7jmZxHNwhwM67D1adYThFQ=; b=aePAi52epvhPSpjacSJ30rJar+996Oz0SNyMGFirrKbFaZQgguM3eDvPG88SEFs/zw1I6E PVOSgsuN+UGN5QsvGEHKENQBCIKFIDLlkR9GYzUr52cRsx58d4FXM903wy64PNwBS+htqM uAsgmpWFt5uMMkZCqY4CNuZVWS+WnJOlX+LdFO3kG69MdqECNcYRW317tUbDa1/F6fuGOl Qmhxn0V1Dk7Wv31w9gIFHpLr8XsFEJaFm/MHWP1jSU28LlgrUDzNlrW+fyDTXfkMbxrX9z Ndv64y3CSQsL3g63jwPTzUrJXI06NHgciWpc/HWYsyN0wu7v0UmbZUKlYiYCIw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8qrC524VzgJ1 for ; Mon, 09 Feb 2026 16:28:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1d827 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 16:28:27 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Marian Cingel From: Andrew Turner Subject: git: 5ca05e51c861 - stable/15 - arm64: Fix jump to wrong label in case of 0 entries 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: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 5ca05e51c861387003f0ef0ee6862bc39583dab0 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 16:28:27 +0000 Message-Id: <698a0b2b.1d827.5e553699@gitrepo.freebsd.org> The branch stable/15 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=5ca05e51c861387003f0ef0ee6862bc39583dab0 commit 5ca05e51c861387003f0ef0ee6862bc39583dab0 Author: Marian Cingel AuthorDate: 2026-01-03 14:45:27 +0000 Commit: Andrew Turner CommitDate: 2026-02-09 14:47:51 +0000 arm64: Fix jump to wrong label in case of 0 entries Broke qemu-system-aarch6 boot with VIRT kernconf PR: 292156 Fixes: ea8dc498aa8e ("arm64: Create an L3 table to limit permissions") Signed-off-by: Marian Cingel Pull Request: https://github.com/freebsd/freebsd-src/pull/1943 (cherry picked from commit a9f2f92322f211921b955b13b088624efe7f901a) --- sys/arm64/arm64/locore.S | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sys/arm64/arm64/locore.S b/sys/arm64/arm64/locore.S index d35e334905a7..cebea0b13649 100644 --- a/sys/arm64/arm64/locore.S +++ b/sys/arm64/arm64/locore.S @@ -957,7 +957,7 @@ LEND(link_l2_pagetable) * VA start (x8) modulo L3C_SIZE must equal PA start (x9) modulo L3C_SIZE. */ LENTRY(build_l3_page_pagetable) - cbz x10, 2f + cbz x10, 4f /* * Build the L3 table entry. */ @@ -997,7 +997,7 @@ LENTRY(build_l3_page_pagetable) add x11, x11, #1 add x9, x9, #1 cbnz x10, 1b -2: +4: ret LEND(build_l3_page_pagetable) From nobody Mon Feb 9 16:28: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 4f8qrF0ysLz6RgFy for ; Mon, 09 Feb 2026 16:28: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 4f8qrD6Gq6z3PGk for ; Mon, 09 Feb 2026 16:28:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770654508; 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=kbOcmEx6D9jupfjtpGpfVhJUF5Q9ONYWPkpYBoieAv0=; b=xoxwNvuYaaCXzoBBbdZqJYI7iYHK/jWZU7S22IP+xlHmwoYBw3B2vjubjot60T5Q6Rivsb WRaLRCmGmxvq1+zqzDfrgG6acjPtnDQq4ey0t1yID8n+DPEVN5YSkQP/mN5tZltCgSI2NH b7hFIekmxvywV/Qg2Zesxv8YBrhWn8e4+3HOOOb/2cLWeYEL7b3YeXso4YrVrTITZ+IQH4 rJYvjiDspZIi8wnRS+s6v920ncqFvBwQymJiTAjTIfV+yJUkbiOQY9vyL8dkA/aqD27x0D AX/mWM18C4MVGuySdffQWl/Pt3dXLRLLP/gnQuZy4LWfWnQmm2uweUkBqdyZrA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770654508; a=rsa-sha256; cv=none; b=KvcRULTLyvsddRPMrlUFCJ9dNX+oCquvxDoC/c9eYaRUiCDyDKDaz2xgX/j01A8gEHWZuQ 4CpGoxtC4G9BQpL5AVjXee5Z/EnTqLA21XnhHjwdU39SMdj/nR6tGM9J5gOLCLaRIj/MWj fkTCB+ns2r3voVc05v4c9apTab018id/W1r7i9yVZWmnOYulCQ7QAujOhNT/EyfE4kKTsT hOsbbtJzxRCu8Is8eoyBv5innjpxkVjxHrlUKJSGfSoXmMtWYAAih0mTrIhiniJxtYzIrD X4lWphVxvECwLoL6vyAhZaWJFfzehG+KBO+1rTLetp5ypnbHjrNgj1gnvwQ4WQ== 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=1770654508; 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=kbOcmEx6D9jupfjtpGpfVhJUF5Q9ONYWPkpYBoieAv0=; b=Q8FVbiACN0whRbhD1Cr0Xyk2AoUH2nw60YYWHJ/nuSr5ej3H3Tx66s71QypE9cZRdZUFEk dXprjTKahgEN//gKriJdL0kDLvSwwjOqDbPGVBG/LQTUD7+Ct3IgGAN+YOtVNV/oJ/5wcG tg/30IHcLBtYGi77Wwhfn+QTyyKUvvswNYvKKsmIdH46r3ho9ol4vZY0f4p5+QQ7Nfh+Fr /htnLHbOfBwkxGEKld6NdjjmVLSgBq7ARwkIOMR8UkLRsf7NK1Gfj1fZQYzcqvQUXuoipA 6Pwln14mll4kOBYzBS+0pAKA6URP2YQ0umrVltwbjynvIOV0lH3yJcVc0GdtFA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8qrD5nxbzgY5 for ; Mon, 09 Feb 2026 16:28:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1dcc0 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 16:28:28 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Sarah Walker From: Andrew Turner Subject: git: 565f47e8f470 - stable/15 - arm64: Add FEAT_MOPS register fields 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: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 565f47e8f47080e0bb89219e04f7e18b68b34e9a Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 16:28:28 +0000 Message-Id: <698a0b2c.1dcc0.3a35d8d1@gitrepo.freebsd.org> The branch stable/15 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=565f47e8f47080e0bb89219e04f7e18b68b34e9a commit 565f47e8f47080e0bb89219e04f7e18b68b34e9a Author: Sarah Walker AuthorDate: 2026-01-13 15:26:10 +0000 Commit: Andrew Turner CommitDate: 2026-02-09 14:50:02 +0000 arm64: Add FEAT_MOPS register fields (commit message by andrew@) Reviewed by: andrew Sponsored by: Arm Ltd (cherry picked from commit 0685fc435c2b6750762d50985bc6876dede5fbe2) --- sys/arm64/include/armreg.h | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/sys/arm64/include/armreg.h b/sys/arm64/include/armreg.h index 27b02c44cd76..28dec3a40b26 100644 --- a/sys/arm64/include/armreg.h +++ b/sys/arm64/include/armreg.h @@ -592,6 +592,27 @@ #define ISS_MSR_REG(reg) \ __ISS_MSR_REG(reg##_op0, reg##_op1, reg##_CRn, reg##_CRm, reg##_op2) +#define ISS_MOE_MEMINST_SHIFT 24 +#define ISS_MOE_MEMINST (0x01 << ISS_MOE_MEMINST_SHIFT) +#define ISS_MOE_isSETG_SHIFT 24 +#define ISS_MOE_isSETG (0x01 << ISS_MOE_isSETG_SHIFT) +#define ISS_MOE_OPTIONS_SHIFT 19 +#define ISS_MOE_OPTIONS_MASK (0x0f << ISS_MOE_OPTIONS_SHIFT) +#define ISS_MOE_FROM_EPILOGUE_SHIFT 18 +#define ISS_MOE_FROM_EPILOGUE (0x01 << ISS_MOE_FROM_EPILOGUE_SHIFT) +#define ISS_MOE_FORMAT_OPTION_SHIFT 16 +#define ISS_MOE_FORMAT_OPTION_MASK (0x03 << ISS_MOE_FORMAT_OPTION_SHIFT) +#define ISS_MOE_FORMAT_OPTION_B (0x00 << ISS_MOE_FORMAT_OPTION_SHIFT) +#define ISS_MOE_FORMAT_OPTION_A (0x01 << ISS_MOE_FORMAT_OPTION_SHIFT) +#define ISS_MOE_FORMAT_OPTION_A2 (0x02 << ISS_MOE_FORMAT_OPTION_SHIFT) +#define ISS_MOE_FORMAT_OPTION_B2 (0x03 << ISS_MOE_FORMAT_OPTION_SHIFT) +#define ISS_MOE_DESTREG_SHIFT 10 +#define ISS_MOE_DESTREG_MASK (0x1f << ISS_MOE_DESTREG_SHIFT) +#define ISS_MOE_SRCREG_SHIFT 5 +#define ISS_MOE_SRCREG_MASK (0x1f << ISS_MOE_SRCREG_SHIFT) +#define ISS_MOE_SIZEREG_SHIFT 0 +#define ISS_MOE_SIZEREG_MASK (0x1f << ISS_MOE_SIZEREG_SHIFT) + #define ISS_DATA_ISV_SHIFT 24 #define ISS_DATA_ISV (0x01 << ISS_DATA_ISV_SHIFT) #define ISS_DATA_SAS_SHIFT 22 @@ -656,6 +677,7 @@ #define EXCP_DATA_ABORT_L 0x24 /* Data abort, from lower EL */ #define EXCP_DATA_ABORT 0x25 /* Data abort, from same EL */ #define EXCP_SP_ALIGN 0x26 /* SP slignment fault */ +#define EXCP_MOE 0x27 /* Memory Operation Exception */ #define EXCP_TRAP_FP 0x2c /* Trapped FP exception */ #define EXCP_SERROR 0x2f /* SError interrupt */ #define EXCP_BRKPT_EL0 0x30 /* Hardware breakpoint, from same EL */ @@ -2627,7 +2649,9 @@ #define SCTLR_LSMAOE (UL(0x1) << 29) #define SCTLR_EnIB (UL(0x1) << 30) #define SCTLR_EnIA (UL(0x1) << 31) -/* Bits 34:32 are reserved */ +/* Bit 32 is reserved */ +#define SCTLR_MSCEn (UL(0x1) << 33) +/* Bit 34 is reserved */ #define SCTLR_BT0 (UL(0x1) << 35) #define SCTLR_BT1 (UL(0x1) << 36) #define SCTLR_ITFSB (UL(0x1) << 37) From nobody Mon Feb 9 16:28: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 4f8qrG13Kzz6Rg35 for ; Mon, 09 Feb 2026 16:28: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 4f8qrF6ZCRz3P34 for ; Mon, 09 Feb 2026 16:28:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770654509; 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=KvJu/jzDOVLhRb5zys5z9yXFYfGuJ5ns55C1nQm5YwA=; b=tWG3cqKGe22Z9z3OV0RNsxdcjdFgvHgvPv6jxAcdQFPl3+nXHhKL3IGCJSjVRiiklFZ4tu /RVKETge6RyGKsfKdFSlkmS4rARfYTTHBWIflQTkura/KhlhmbZHYnAXukGqhUnFF0d3RJ 9oR3G8qvDlXnItDnBIA4hBY4nrrryjsv09wggg2QQlluzo9/85xb8zqb/dxE9jNC1gF/Dl NTImWCQ3YGZmoBAh7TkO8dK0+CkVjMOZp1eSjmKwTrJLj9NF50oxFyKUTgqPLSArGG6q4J RzXM+/JKNH/avaZKJl2dMJjqWfXP20M+rJQgjaNhtNmBB4MfqVdGALeT3YVHDg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770654509; a=rsa-sha256; cv=none; b=mvzLsL5EydESbDKuoVno7b1cuIR5GIuZhDGwXMftslrhA1XAJpBSj2A7Go40cVdBVRdX6D ruOgMnwvEQlz4HhtQi5zitapno7POuL2J50AV8eXUiYn5WzICZuL9fJrfrwg4Sldnuwaw1 5UFE8jwS1hpsRdx8uX34wGbyUoAmPsd5oAqdItvC66MM7fg07TYi3n+Lec/exR0n5ydGQu Op1NQPkTqpTwUvrlPFTwX9vQOfubnD9ru6SO7RuXkdxUA+WqsQvciRH+cuYJV0GTU+p5eS BCz1NXKPCuYKccpOWsS45BVC1gKqKTy3YTQ9X7d+QPNGcBwvKxoX6nG86n036w== 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=1770654509; 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=KvJu/jzDOVLhRb5zys5z9yXFYfGuJ5ns55C1nQm5YwA=; b=Zs48PR7Z6IRmMCiLSZe84Hp1ufVuw7BlbJw6O95rf2WE9PfE3DTLQ4H3mPIcjC6L3xUR43 2iKIW84xM3dKod3il/+YdeQ8YtelyqOHrgUe9uYJBaDMCWnNtsMKJvguVLCeR/2UIrG7UI Gq3QtgXISMIupqLAE55/lDdY4u2j9lXG2p/woSLNtTOupYOrgiTScg3Dal3vmS697udD52 23bvxShETMuvRZkgXYwEtS9ZMoKpgCBg83oz15QXJFUZVISwyyTdKL//UhgGh6wOMVan8D CWMI4XVFzPxEp4FWK/ukVT2gHU3dgOD1Qbl6FAeE8UYRhkRitoiK6WN+KU8YGg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8qrF66dczgpm for ; Mon, 09 Feb 2026 16:28:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1d30e by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 16:28:29 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Sarah Walker From: Andrew Turner Subject: git: 2a9a92ba7bd7 - stable/15 - arm64: Enable MOPS in 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: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 2a9a92ba7bd7b42ecd6f47e2fdaddf8e03b0643f Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 16:28:29 +0000 Message-Id: <698a0b2d.1d30e.6171fcbb@gitrepo.freebsd.org> The branch stable/15 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=2a9a92ba7bd7b42ecd6f47e2fdaddf8e03b0643f commit 2a9a92ba7bd7b42ecd6f47e2fdaddf8e03b0643f Author: Sarah Walker AuthorDate: 2026-01-13 14:18:31 +0000 Commit: Andrew Turner CommitDate: 2026-02-09 14:50:03 +0000 arm64: Enable MOPS in userspace Detect presence of FEAT_MOPS, and enable instruction set and set HWCAP2 flag if present. Add handler for MOE exceptions. Reviewed by: andrew Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D54558 (cherry picked from commit 591c7a08bf8addce4b047ef9c8033c33099e4688) --- sys/arm64/arm64/identcpu.c | 8 +++++- sys/arm64/arm64/machdep.c | 35 +++++++++++++++++++++++++ sys/arm64/arm64/trap.c | 64 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 106 insertions(+), 1 deletion(-) diff --git a/sys/arm64/arm64/identcpu.c b/sys/arm64/arm64/identcpu.c index 2d07420bcdb0..e37c9813582b 100644 --- a/sys/arm64/arm64/identcpu.c +++ b/sys/arm64/arm64/identcpu.c @@ -1094,6 +1094,11 @@ static const struct mrs_field_value id_aa64isar2_mops[] = { MRS_FIELD_VALUE_END, }; +static const struct mrs_field_hwcap id_aa64isar2_mops_caps[] = { + MRS_HWCAP(2, HWCAP2_MOPS, ID_AA64ISAR2_MOPS_IMPL), + MRS_HWCAP_END +}; + static const struct mrs_field_value id_aa64isar2_apa3[] = { MRS_FIELD_VALUE(ID_AA64ISAR2_APA3_NONE, ""), MRS_FIELD_VALUE(ID_AA64ISAR2_APA3_PAC, "APA3 PAC"), @@ -1149,7 +1154,8 @@ static const struct mrs_field id_aa64isar2_fields[] = { MRS_FIELD(ID_AA64ISAR2, PAC_frac, false, MRS_LOWER, 0, id_aa64isar2_pac_frac), MRS_FIELD(ID_AA64ISAR2, BC, false, MRS_LOWER, 0, id_aa64isar2_bc), - MRS_FIELD(ID_AA64ISAR2, MOPS, false, MRS_LOWER, 0, id_aa64isar2_mops), + MRS_FIELD_HWCAP(ID_AA64ISAR2, MOPS, false, MRS_LOWER, MRS_USERSPACE, + id_aa64isar2_mops, id_aa64isar2_mops_caps), MRS_FIELD_HWCAP(ID_AA64ISAR2, APA3, false, MRS_LOWER, MRS_USERSPACE, id_aa64isar2_apa3, id_aa64isar2_apa3_caps), MRS_FIELD_HWCAP(ID_AA64ISAR2, GPA3, false, MRS_LOWER, MRS_USERSPACE, diff --git a/sys/arm64/arm64/machdep.c b/sys/arm64/arm64/machdep.c index 322bad273a08..6790f47a0f82 100644 --- a/sys/arm64/arm64/machdep.c +++ b/sys/arm64/arm64/machdep.c @@ -219,6 +219,41 @@ CPU_FEAT(feat_pan, "Privileged access never", pan_check, NULL, pan_enable, pan_disabled, CPU_FEAT_AFTER_DEV | CPU_FEAT_PER_CPU); +static cpu_feat_en +mops_check(const struct cpu_feat *feat __unused, u_int midr __unused) +{ + uint64_t id_aa64isar2; + + if (!get_kernel_reg(ID_AA64ISAR2_EL1, &id_aa64isar2)) + return (FEAT_ALWAYS_DISABLE); + if (ID_AA64ISAR2_MOPS_VAL(id_aa64isar2) == ID_AA64ISAR2_MOPS_NONE) + return (FEAT_ALWAYS_DISABLE); + + return (FEAT_DEFAULT_ENABLE); +} + +static bool +mops_enable(const struct cpu_feat *feat __unused, + cpu_feat_errata errata_status __unused, u_int *errata_list __unused, + u_int errata_count __unused) +{ + WRITE_SPECIALREG(sctlr_el1, READ_SPECIALREG(sctlr_el1) | SCTLR_MSCEn); + isb(); + + return (true); +} + +static void +mops_disabled(const struct cpu_feat *feat __unused) +{ + WRITE_SPECIALREG(sctlr_el1, READ_SPECIALREG(sctlr_el1) & ~SCTLR_MSCEn); + isb(); +} + +CPU_FEAT(feat_mops, "MOPS", + mops_check, NULL, mops_enable, mops_disabled, + CPU_FEAT_AFTER_DEV | CPU_FEAT_PER_CPU); + bool has_hyp(void) { diff --git a/sys/arm64/arm64/trap.c b/sys/arm64/arm64/trap.c index 75c9b5f87892..3de56187657c 100644 --- a/sys/arm64/arm64/trap.c +++ b/sys/arm64/arm64/trap.c @@ -597,6 +597,66 @@ do_el1h_sync(struct thread *td, struct trapframe *frame) } } +static void +handle_moe(struct thread *td, struct trapframe *frame, uint64_t esr) +{ + uint64_t src; + uint64_t dest; + uint64_t size; + int src_reg; + int dest_reg; + int size_reg; + int format_option; + + format_option = esr & ISS_MOE_FORMAT_OPTION_MASK; + dest_reg = (esr & ISS_MOE_DESTREG_MASK) >> ISS_MOE_DESTREG_SHIFT; + size_reg = (esr & ISS_MOE_SIZEREG_MASK) >> ISS_MOE_SIZEREG_SHIFT; + dest = frame->tf_x[dest_reg]; + size = frame->tf_x[size_reg]; + + /* + * Put the registers back in the original format suitable for a + * prologue instruction, using the generic return routine from the + * Arm ARM (DDI 0487I.a) rules CNTMJ and MWFQH. + */ + if (esr & ISS_MOE_MEMINST) { + /* SET* instruction */ + if (format_option == ISS_MOE_FORMAT_OPTION_A || + format_option == ISS_MOE_FORMAT_OPTION_A2) { + /* Format is from Option A; forward set */ + frame->tf_x[dest_reg] = dest + size; + frame->tf_x[size_reg] = -size; + } + } else { + /* CPY* instruction */ + src_reg = (esr & ISS_MOE_SRCREG_MASK) >> ISS_MOE_SRCREG_SHIFT; + src = frame->tf_x[src_reg]; + + if (format_option == ISS_MOE_FORMAT_OPTION_B || + format_option == ISS_MOE_FORMAT_OPTION_B2) { + /* Format is from Option B */ + if (frame->tf_spsr & PSR_N) { + /* Backward copy */ + frame->tf_x[dest_reg] = dest - size; + frame->tf_x[src_reg] = src + size; + } + } else { + /* Format is from Option A */ + if (frame->tf_x[size_reg] & (1UL << 63)) { + /* Forward copy */ + frame->tf_x[dest_reg] = dest + size; + frame->tf_x[src_reg] = src + size; + frame->tf_x[size_reg] = -size; + } + } + } + + if (esr & ISS_MOE_FROM_EPILOGUE) + frame->tf_elr -= 8; + else + frame->tf_elr -= 4; +} + void do_el0_sync(struct thread *td, struct trapframe *frame) { @@ -738,6 +798,10 @@ do_el0_sync(struct thread *td, struct trapframe *frame) exception); userret(td, frame); break; + case EXCP_MOE: + handle_moe(td, frame, esr); + userret(td, frame); + break; default: call_trapsignal(td, SIGBUS, BUS_OBJERR, (void *)frame->tf_elr, exception); From nobody Mon Feb 9 16:28: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 4f8qrH1Ck2z6Rg7R for ; Mon, 09 Feb 2026 16:28: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 4f8qrH09Rjz3PNr for ; Mon, 09 Feb 2026 16:28:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770654511; 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=JrMWMMoK00/z4ggnVevM1beR4gckAnGdNgmVTbkLM6I=; b=vGAwfbVAh1EYi5n0EgEN64ZdPWoWROgivEB1/acWKfoOFfnYTf8uIaoR3gCA/6+kkE4jrh 4d15iSYvbeibuWEmCUJ8TKVF99+A36MJ9fipjxbo6BLz3riST9pVO+brmakueZ2gMBzisZ lpLH7ludzJMEM04Vv9+vyFkMpWqPtFcqC6ciO2FrhZOw/NdeitU4PKCojZp0t66h39g5v7 oSGKDSWWuVF6zE/AeBl2pHJZIwrcfJNdzV7TcYd79QzcG5Y18ZoXZ2HKFGC5JEqkmKlfDB KA21vs01xH6b9ZM2+xWjnni5C/27tBDyVki0ltSLOrtK5q7YT6cS8yKeRpKMDw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770654511; a=rsa-sha256; cv=none; b=pZZFeKQVSKlL3qDIN9oTbYUSbOtorM0YFobVPoKnaUfhOtuY6RXIb9msL6esnPx+ANKAl5 Q/Xj1MYmSUC5EVWRzCmI5ME7c1C9gUVTpOqYO05AfBmVgsbXf9eS/47h+WsyiMk/1UZMq9 6oyGzohufulrLs2cMSJUgua4lqj/tm7wIj/aqeaUStxE6/R0FfVP2NV+BmUnfye4ICuk0u MHNHSxweD/CzlcqluQjKFSzs3PQlSn9Rj9kjFUR6yIBdeNj4By6cANddDD5KOhsslcX+W1 Z0jZYVPED57cxLvhBHoWmUOMyB7KRh3FT0IMQzaZ7sioQ3SdfS5R12vuC9i4jQ== 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=1770654511; 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=JrMWMMoK00/z4ggnVevM1beR4gckAnGdNgmVTbkLM6I=; b=AxJxC6YPNtHAstSmDeLWrFU+zIDC3m5kzDtdD+b5xXIRh8FeRPbua+iuqKDeQm5JzP2vmt 8a3r+HbqKoP8MggbAI+XoxkafcG5uRf09BdG6sbR+qNSVmyX0x6Q208Q6zK6O9wrlPSjK3 ugYaX6Wpy20CCPL7myRhT31tqQekVTUGrWzC/UD8hBDZ20ate6mRkKw1skpaT50UjKd6IY UPf+LQk8MSmxYIqj+vJ3D2oR6cl6XlDUxUKXjEiw1lcNftN9nN6yFWlwaRy5h2lW1tmdKY v4oGWcDxyZV+U4c9eQ7sqSeY5aC0bylEjA2bnJKjvPE+n6o+e9QlX2FEv+U/0Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8qrG6v3bzgkw for ; Mon, 09 Feb 2026 16:28:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1d1e4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 16:28:30 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Sarah Walker From: Andrew Turner Subject: git: d8d8be5bbcae - stable/15 - arm64: Provide ifunc HWCAP structure definitions 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: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: d8d8be5bbcaea330a6baafc975dd1a6a9f2e132a Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 16:28:30 +0000 Message-Id: <698a0b2e.1d1e4.5a82860b@gitrepo.freebsd.org> The branch stable/15 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=d8d8be5bbcaea330a6baafc975dd1a6a9f2e132a commit d8d8be5bbcaea330a6baafc975dd1a6a9f2e132a Author: Sarah Walker AuthorDate: 2026-01-13 14:19:56 +0000 Commit: Andrew Turner CommitDate: 2026-02-09 14:50:03 +0000 arm64: Provide ifunc HWCAP structure definitions IFUNC structure is based on Section 9.4.1 "GNU C Library IFUNC interface" from "System V ABI for the Arm 64-bit Architecture (AArch64)", 2025Q1. (https://github.com/ARM-software/abi-aa/releases/download/2025Q1/sysvabi64.pdf) Reviewed by: andrew Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D54598 (cherry picked from commit 449339bdba2470eded4d55c41b084cfc8f5ef73a) --- sys/arm64/include/ifunc.h | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/sys/arm64/include/ifunc.h b/sys/arm64/include/ifunc.h index de452ad34c8f..34e783df8fe5 100644 --- a/sys/arm64/include/ifunc.h +++ b/sys/arm64/include/ifunc.h @@ -29,20 +29,38 @@ #ifndef __ARM64_IFUNC_H #define __ARM64_IFUNC_H +struct __ifunc_arg_t +{ + unsigned long _size; /* Size of the struct, so it can grow. */ + unsigned long _hwcap; + unsigned long _hwcap2; + unsigned long _hwcap3; + unsigned long _hwcap4; +}; + +typedef struct __ifunc_arg_t __ifunc_arg_t; + +#define _IFUNC_ARG_HWCAP (1ULL << 62) + #define DEFINE_IFUNC(qual, ret_type, name, args) \ static ret_type (*name##_resolver(void))args __used; \ qual ret_type name args __attribute__((ifunc(#name "_resolver"))); \ static ret_type (*name##_resolver(void))args #define DEFINE_UIFUNC(qual, ret_type, name, args) \ - static ret_type (*name##_resolver(uint64_t, uint64_t, \ + static ret_type (*name##_resolver(uint64_t, \ + const struct __ifunc_arg_t *ifunc_arg, \ uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, \ uint64_t))args __used; \ qual ret_type name args __attribute__((ifunc(#name "_resolver"))); \ - static ret_type (*name##_resolver(uint64_t _arg1 __unused, \ - uint64_t _arg2 __unused, uint64_t _arg3 __unused, \ - uint64_t _arg4 __unused, uint64_t _arg5 __unused, \ - uint64_t _arg6 __unused, uint64_t _arg7 __unused, \ + static ret_type (*name##_resolver( \ + uint64_t at_hwcap __unused, \ + const struct __ifunc_arg_t *ifunc_arg __unused, \ + uint64_t _arg3 __unused, \ + uint64_t _arg4 __unused, \ + uint64_t _arg5 __unused, \ + uint64_t _arg6 __unused, \ + uint64_t _arg7 __unused, \ uint64_t _arg8 __unused))args #endif From nobody Mon Feb 9 16:28: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 4f8qrJ4v4Cz6Rg38 for ; Mon, 09 Feb 2026 16:28: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 4f8qrJ11Qgz3PDX for ; Mon, 09 Feb 2026 16:28:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770654512; 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=7UOUMF/+R6PDEl+Ys8lBp8MfIIndu3kYOVyLiqst+T8=; b=RtSV3FuXt+6oBY/ircdhPyu1GRuVF5+WvHP7dOs+vt1buOfA/Vyoh9eFg/VIxWcpPU3dMU +pgggKE3Fxq8pLizFxftvxrGbCH9WD04UfFSMFsOr6FJWh9fXJ1FVwBk6B7S9Sb5etw+mu qxrmlvggcelxyrmaUxIK2WwYWLjnOfpL6G5ZXsHBJkXo+/ZmbQhX5uEUN7YM9EZiuo74V9 oqVv4bR3PZMs8oG6A+94DXniOLy2z7LmwyVgWUGgwzx3v7bL9r+h+K0IH/LYquRj/O31K7 aP5YadH9zX9x8aBY+xbkigQQPbP+GX5n0AjDFwLJfAA5VHug7EFPxbBOjTg0oQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770654512; a=rsa-sha256; cv=none; b=lQZyx0fq6BQHDEXP/sE1Uk+Ke+81s9tEB/WDE/gitMrZ3MKFOmnHVTjFH3qcmInHWqcJD3 Yo+UMXV25RVv2DpR6DE4k5+InhMLJ9LHYIazeKsW1mQ2HpKjvXoJaEZ7Z1OrYNK8xqQ4Om auzS/8GPf7Jw3fv3qiSVRsHhquniJ4+m6XzQab06JCTkTttyanw08mcTwweFnol0KRmGb+ dYEH30CVaqmBm3s6pqlOvS7mI0thR+4S98OEaTIWIAIlRYmW6JZuzg0i0aAtad9jVN7Ymw pmdf/2JkRF3QOXZV/TfTHHAbYeqpzOHg1tBHeSlFPFhO9aL4Cxs9iP9gK8levw== 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=1770654512; 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=7UOUMF/+R6PDEl+Ys8lBp8MfIIndu3kYOVyLiqst+T8=; b=T4A7dZHQF9cwH2lkofaQd8R0EIA25boLiBWOflnF6z3mCthd2rcf+yRO2r25TFdmlLHQiS JlZrcM1hsbuCC6t8Vt7rSpGrI7QxP48UZ2z4ai3VOjxV1upSOfqfKlbMtNstWeezNmkh/K qsv5UXZvU+si5G7qNdjXUXlK5x5haKXu9ymZNX3Jb9ukLxEaf721uQqfIGVKlITHanmoR7 VO20UJkqZNAvGrXkMCOcYPZMTiEXlQ4nGNfzNy/YC8GM04d4xh+vbiJD9ijlydJEmk2VfQ KdetorFm1E9ds9o12I2oWyMqSC32vi0PMg/reXXcPwGh8rF7bBuPmrF79FUBKw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8qrJ0ZX4zgY7 for ; Mon, 09 Feb 2026 16:28:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1cae1 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 16:28:32 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Sarah Walker From: Andrew Turner Subject: git: dd8075045315 - stable/15 - rtld-elf: Pass HWCAP flags to ifunc resolver functions 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: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: dd80750453156ea0af5c1e203b09cec6e2e9e36e Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 16:28:32 +0000 Message-Id: <698a0b30.1cae1.449d9c43@gitrepo.freebsd.org> The branch stable/15 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=dd80750453156ea0af5c1e203b09cec6e2e9e36e commit dd80750453156ea0af5c1e203b09cec6e2e9e36e Author: Sarah Walker AuthorDate: 2026-01-13 14:23:03 +0000 Commit: Andrew Turner CommitDate: 2026-02-09 14:50:03 +0000 rtld-elf: Pass HWCAP flags to ifunc resolver functions Function arguments are based on Section 9.4.1 "GNU C Library IFUNC interface" from "System V ABI for the Arm 64-bit Architecture (AArch64)", 2025Q1. (https://github.com/ARM-software/abi-aa/releases/download/2025Q1/sysvabi64.pdf) Reviewed by: kib, andrew Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D54559 (cherry picked from commit a652357fb59f03bee85d61814002f9c60ea52340) --- libexec/rtld-elf/aarch64/reloc.c | 15 +++++++++++++-- libexec/rtld-elf/aarch64/rtld_machdep.h | 10 +++++++--- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/libexec/rtld-elf/aarch64/reloc.c b/libexec/rtld-elf/aarch64/reloc.c index 62d664f8fb80..85f7c1b4022a 100644 --- a/libexec/rtld-elf/aarch64/reloc.c +++ b/libexec/rtld-elf/aarch64/reloc.c @@ -444,10 +444,21 @@ reloc_jmpslot(Elf_Addr *where, Elf_Addr target, return (target); } +__ifunc_arg_t ifunc_arg = { + ._size = sizeof(__ifunc_arg_t) +}; + void -ifunc_init(Elf_Auxinfo *aux_info[__min_size(AT_COUNT)] __unused) +ifunc_init(Elf_Auxinfo *aux_info[__min_size(AT_COUNT)]) { - + ifunc_arg._hwcap = aux_info[AT_HWCAP] != NULL ? + (aux_info[AT_HWCAP]->a_un.a_val | _IFUNC_ARG_HWCAP) : 0; + ifunc_arg._hwcap2 = aux_info[AT_HWCAP2] != NULL ? + aux_info[AT_HWCAP2]->a_un.a_val : 0; + ifunc_arg._hwcap3 = aux_info[AT_HWCAP3] != NULL ? + aux_info[AT_HWCAP3]->a_un.a_val : 0; + ifunc_arg._hwcap4 = aux_info[AT_HWCAP4] != NULL ? + aux_info[AT_HWCAP4]->a_un.a_val : 0; } /* diff --git a/libexec/rtld-elf/aarch64/rtld_machdep.h b/libexec/rtld-elf/aarch64/rtld_machdep.h index d689ae354c49..4b5ad523ee87 100644 --- a/libexec/rtld-elf/aarch64/rtld_machdep.h +++ b/libexec/rtld-elf/aarch64/rtld_machdep.h @@ -33,6 +33,7 @@ #include #include +#include #include struct Struct_Obj_Entry; @@ -67,6 +68,8 @@ Elf_Addr reloc_jmpslot(Elf_Addr *where, Elf_Addr target, #define call_init_pointer(obj, target) \ (((InitArrFunc)(target))(main_argc, main_argv, environ)) +extern struct __ifunc_arg_t ifunc_arg; + /* * Pass zeros into the ifunc resolver so we can change them later. The first * 8 arguments on arm64 are passed in registers so make them known values @@ -74,9 +77,10 @@ Elf_Addr reloc_jmpslot(Elf_Addr *where, Elf_Addr target, * no arguments are passed in, and if this changes later will be able to * compare the argument with 0 to see if it is set. */ -#define call_ifunc_resolver(ptr) \ - (((Elf_Addr (*)(uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, \ - uint64_t, uint64_t, uint64_t))ptr)(0, 0, 0, 0, 0, 0, 0, 0)) +#define call_ifunc_resolver(ptr) \ + (((Elf_Addr (*)(uint64_t, const struct __ifunc_arg_t *, uint64_t, \ + uint64_t, uint64_t, uint64_t, uint64_t, uint64_t))ptr)( \ + ifunc_arg._hwcap, &ifunc_arg, 0, 0, 0, 0, 0, 0)) #define round(size, align) \ (((size) + (align) - 1) & ~((align) - 1)) From nobody Mon Feb 9 16:28: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 4f8qrK477Sz6RgG2 for ; Mon, 09 Feb 2026 16:28: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 4f8qrK1nlRz3PRc for ; Mon, 09 Feb 2026 16:28:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770654513; 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=E6VZeG59rvFy8PXLCepV0TZ3z+QcqDhEQtniNXpeZuA=; b=CC6jQph4E8fC2io/ZsCxD+sLrIg4bKYECMtfSwTWoCAuSp4gXuBgmWL3Pb624rhFVhtD56 w0fcufxtvg3FMbfHo6W9JNMy8MFT+L8o5E5QUI9IQHkhbKZuvfswqqfCNLeEBjyEqgfDRu CCB/T7XjNwBzEyBMlcG3RriH6g2cB3Wmnx0Gfrwtnq1X0s0RLp9l2h49+LYIa97Z0/B7zP BZaCpp3erreahMhx4C3NIBBshTvweTg/IPEVHSs3H70ffE7FIVdAzinl5KAPzhbX2CvfQ7 lGYI5cf3L3S655BZPx0+2lQZrRRs7pKd/JyWLmQQZG0FdEEHAAR+kJcya6jaww== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770654513; a=rsa-sha256; cv=none; b=InT2fhYZQuxwBQUrIsNYff7SHqcyXpJsJy9n7Y7r72PJSXuotYTa9cKME0kiIZOZ0CUt3x UfB4IqA9A8Az3MPQ2Jcf5vvee4M0fjrcAheRcb8Eb7c1EUUu8VsSIcgbY9O4QoAhBrgITt anmbJiCppZFiC+BhasS4Fv2oTC1HXYNBMiLdEygocjsrdXLhaKIm56MPWUidZ1FmhV2XNf vaQA+EoNMPzPq0WM5pD2GfhyBsacH3e52FRaVHnFnmQZ2ooXXRnuoCsDdF7oa0NrjouDN+ 5MiZ7r3lRikZLcE7WHnW/xRPGR2Q/eYbqerG5aYvPo/39HkaMF0krpc0QjXisg== 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=1770654513; 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=E6VZeG59rvFy8PXLCepV0TZ3z+QcqDhEQtniNXpeZuA=; b=IYAxcuYOhix8ZNMyw0JAD3vpQfqPQj/BdkLU8RCfzNqaG6KkGT+wBBUSPVx88tgKf+4Sp8 ZnI5C/Hk2N5ugk6h9/+KLBnUWGxXxtPrQ0OkFkggyv5wLaMkoDw4N3sWkUcS5X3cWhihDT nE4nQtwyL1iTkt2PortYKVKK7l4ZvRoXiJduoFeZAtR/BsOti4XbtSeRZs6t+ULo5IBMJ1 ifQyuhXai+OdQNu3WmS2wXbhEzOPtI+13llet5p3Of00wvoIdVqHb30OpcCkiLZTNSrIti ZYf9hGu4zHlIrI4tGsoCaGTfEud6lpbPY59QBgmuz9V3lh0J1rM+mdl4KLjUUA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8qrK1MHzzgpn for ; Mon, 09 Feb 2026 16:28:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1d520 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 16:28:33 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Sarah Walker From: Andrew Turner Subject: git: dee5c2665452 - stable/15 - libc/csu: Pass HWCAP flags to ifunc resolver functions 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: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: dee5c26654529566712f8cde2f8d81fa17d6e03c Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 16:28:33 +0000 Message-Id: <698a0b31.1d520.4b787361@gitrepo.freebsd.org> The branch stable/15 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=dee5c26654529566712f8cde2f8d81fa17d6e03c commit dee5c26654529566712f8cde2f8d81fa17d6e03c Author: Sarah Walker AuthorDate: 2026-01-13 14:24:00 +0000 Commit: Andrew Turner CommitDate: 2026-02-09 14:50:03 +0000 libc/csu: Pass HWCAP flags to ifunc resolver functions Function arguments are based on Section 9.4.1 "GNU C Library IFUNC interface" from "System V ABI for the Arm 64-bit Architecture (AArch64)", 2025Q1. (https://github.com/ARM-software/abi-aa/releases/download/2025Q1/sysvabi64.pdf) Reviewed by: andrew Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D54599 (cherry picked from commit 5eec3531204bd93426642a9c45b0c292a01447e4) --- lib/libc/csu/aarch64/reloc.c | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/lib/libc/csu/aarch64/reloc.c b/lib/libc/csu/aarch64/reloc.c index 4ba7920bcb07..77e8a38176ce 100644 --- a/lib/libc/csu/aarch64/reloc.c +++ b/lib/libc/csu/aarch64/reloc.c @@ -25,17 +25,42 @@ */ #include +#include + +static __ifunc_arg_t ifunc_arg; static void -ifunc_init(const Elf_Auxinfo *aux __unused) +ifunc_init(const Elf_Auxinfo *aux) { + ifunc_arg._size = sizeof(ifunc_arg); + ifunc_arg._hwcap = 0; + ifunc_arg._hwcap2 = 0; + ifunc_arg._hwcap3 = 0; + ifunc_arg._hwcap4 = 0; + + for (; aux->a_type != AT_NULL; aux++) { + switch (aux->a_type) { + case AT_HWCAP: + ifunc_arg._hwcap = aux->a_un.a_val | _IFUNC_ARG_HWCAP; + break; + case AT_HWCAP2: + ifunc_arg._hwcap2 = aux->a_un.a_val; + break; + case AT_HWCAP3: + ifunc_arg._hwcap3 = aux->a_un.a_val; + break; + case AT_HWCAP4: + ifunc_arg._hwcap4 = aux->a_un.a_val; + break; + } + } } static void crt1_handle_rela(const Elf_Rela *r) { typedef Elf_Addr (*ifunc_resolver_t)( - uint64_t, uint64_t, uint64_t, uint64_t, + uint64_t, const __ifunc_arg_t *, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t); Elf_Addr *ptr, *where, target; @@ -43,7 +68,7 @@ crt1_handle_rela(const Elf_Rela *r) case R_AARCH64_IRELATIVE: ptr = (Elf_Addr *)r->r_addend; where = (Elf_Addr *)r->r_offset; - target = ((ifunc_resolver_t)ptr)(0, 0, 0, 0, 0, 0, 0, 0); + target = ((ifunc_resolver_t)ptr)(ifunc_arg._hwcap, &ifunc_arg, 0, 0, 0, 0, 0, 0); *where = target; break; } From nobody Mon Feb 9 16:28: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 4f8qrN06Xjz6RgMJ for ; Mon, 09 Feb 2026 16:28: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 4f8qrM43Mnz3PXf for ; Mon, 09 Feb 2026 16:28:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770654515; 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=nqXk5+M3tjxxaDY8NVQ+R95tmssGTAuDH1ona+ipvfM=; b=NQ9qe7eWcsrbolZTEzdu5jxAWgSIIbV8AfC4qE0mpt33NE1rjNU1vqdeENis/EDC3iTBia RTNACk/mxXXZRMKN6zx8+O0XJaYMneFrepGBIKcgJscL6E1gj9hcq95XRr7D6N81461LqB y8ILF6harbagK80Taw8seYyHe3RM23VJT8bWJMB4H+ArrCS969TirQXaeWTxc8vlAu2QAj Ryvi/m9KELamt7OlEbdh6SYqztwFDA6UUjdUuYGjdbQuKACUKAZ5aegstmVp5fb3mQlo+i kTNPcRqiUHrKdbsnSOfAKUS6GWnYB0qaSwHPJyr7dtiGgi6g8Ct045iHwXLjJg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770654515; a=rsa-sha256; cv=none; b=vOAJ/N1IehXLxPa2GcrkJ2GlK3dzCC7bHWvSrsubGjrlHEURIQpVL2oUEhVVJv0kZPJ7/C i1xtOMzFq4BgWr3u/Oj/akqrVAzVEpp8r9bK+SRE+9HAJd9Xbc00R79QtRCkNOXjmQWQf1 5MFK9pjnhXpOyT66B32HaPkt+Yim9eM+9Zat01SyHG8v1lIwRYVm8uY2dJHuLPxmQyZWzg BI4xt1nACVinDUchJe+CTLDm7VKvpb8v0EBNBaQcPZzgnK9jb2QREtP3h0O6VtkkyXVBWT 3eAEWYidX503gSd4wAhbDILtu1efx2o5FCOh4yqGMEuND+IrCKUDUTPab+vizg== 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=1770654515; 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=nqXk5+M3tjxxaDY8NVQ+R95tmssGTAuDH1ona+ipvfM=; b=lP4YVOZUreUaePiROnbYEUIYdRqnjJf+dXXEPq32uCo8I0cIBUl+cTjLWCYxry2G7B7yOW o4yRYiSIC/TUdLdN89i9ma8Hj8rsk82MVDUjIfyCdV0GsTqMA8BtM6BIsYctC3FOIo046v ulkEW42vtb1KXUC5xB18HkhJyStYW4p+ZZGPgl+Xcx0tlexyinMk0D4GZHzCR03+T9ZInG 10s/QDj38K/Qg1VRuMx5pJZgAIan39zQ3zl+vqg6jfbp7sCvQ68WSqZQxklb/RvhHigEyx 9ryL1+mNZsB2sagqXLv3rUip6dYVfkCYIZGOkpqB7lCjgjtQ2m3PPLfwLZBT4A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8qrM2mmXzgY9 for ; Mon, 09 Feb 2026 16:28:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1d718 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 16:28:35 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Sarah Walker From: Andrew Turner Subject: git: b0d8e99424f6 - stable/15 - crypto: Update sha256 and sha512 ifuncs to use passed HWCAP flags 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: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: b0d8e99424f6294d110b9b21582a4588ffef129e Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 16:28:35 +0000 Message-Id: <698a0b33.1d718.23d07b32@gitrepo.freebsd.org> The branch stable/15 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=b0d8e99424f6294d110b9b21582a4588ffef129e commit b0d8e99424f6294d110b9b21582a4588ffef129e Author: Sarah Walker AuthorDate: 2026-01-13 14:25:50 +0000 Commit: Andrew Turner CommitDate: 2026-02-09 14:51:59 +0000 crypto: Update sha256 and sha512 ifuncs to use passed HWCAP flags Reviewed by: andrew Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D54600 (cherry picked from commit 27083693955d563f836fd1b6b1bc4e1a249d3b6b) --- sys/crypto/sha2/sha256c.c | 8 ++------ sys/crypto/sha2/sha512c.c | 9 ++------- 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/sys/crypto/sha2/sha256c.c b/sys/crypto/sha2/sha256c.c index b7f7295c5c85..c7f9bbf119a5 100644 --- a/sys/crypto/sha2/sha256c.c +++ b/sys/crypto/sha2/sha256c.c @@ -206,12 +206,8 @@ SHA256_Transform_arm64(uint32_t * state, const unsigned char block[64]) DEFINE_UIFUNC(static, void, SHA256_Transform, (uint32_t * state, const unsigned char block[64])) { - u_long hwcap; - - if (elf_aux_info(AT_HWCAP, &hwcap, sizeof(hwcap)) == 0) { - if ((hwcap & HWCAP_SHA2) != 0) - return (SHA256_Transform_arm64); - } + if ((at_hwcap & HWCAP_SHA2) != 0) + return (SHA256_Transform_arm64); return (SHA256_Transform_c); } diff --git a/sys/crypto/sha2/sha512c.c b/sys/crypto/sha2/sha512c.c index 076cb30a1dfa..335dae08abb7 100644 --- a/sys/crypto/sha2/sha512c.c +++ b/sys/crypto/sha2/sha512c.c @@ -236,13 +236,8 @@ SHA512_Transform_arm64(uint64_t * state, DEFINE_UIFUNC(static, void, SHA512_Transform, (uint64_t * state, const unsigned char block[SHA512_BLOCK_LENGTH])) { - u_long hwcap; - - if (elf_aux_info(AT_HWCAP, &hwcap, sizeof(hwcap)) == 0) { - if ((hwcap & HWCAP_SHA512) != 0) { - return (SHA512_Transform_arm64); - } - } + if ((at_hwcap & HWCAP_SHA512) != 0) + return (SHA512_Transform_arm64); return (SHA512_Transform_c); } From nobody Mon Feb 9 16:28: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 4f8qrL6Flfz6Rg5R for ; Mon, 09 Feb 2026 16:28: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 4f8qrL2kzwz3PN1 for ; Mon, 09 Feb 2026 16:28:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770654514; 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=g4U9DkvOlO8viYL+A5Yx78CMLCrvRedTL47QGVBkMmo=; b=bRUzXIRnI/7/LD55U6CqgN3ot9cX/hmXU1G4iLGbkjzbu4Y+HjRY+BDFZIQy2krsnbwWVj 8o1oV89WGnapWBQcxiuH7k/jhRp+5FdpyNL0SyTo6LA1REgUVvqX/mZOMAMV2+pk5LY5cy YmztgpJVLg4P2/XNTkol/eq/9RwRz1zhlDSaUWhGfzcG4KcVwxWAjOXCc5fG8vBUBfy/NN /u3IfID8eAfQJZQ1XuiyCNz68z/VwPY7lGkXXbirpgA8EhCJbOtdnk1m7d7UuUGagHnZCm gC3RU4fZL5R3O+oZ+dms1wrQ0I1kFqeTn92BJxjJoE7hOHSoxK58if/Dxb671Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770654514; a=rsa-sha256; cv=none; b=IT6td/5i7YjOLIOZyWLNr5ZU8YJClZM2ruzsdi6OE2pSgCA3GBjTr8kt86xdzumiKhDsvN EHtDsFQ1pNuc051rdmwjuA0fVsHfmzeL2/J+Eg6yTIMMNilleuQSqpkf4bhagcQlZIaRZr IsIeqF4I4XVv2f/tLDCeMxF7vpwunXZZhq/o4E8MGCz1Z+WKqwZ/UHk5WUCfe9yG7GYJUF uOdpxwMZt4VcpUz/oU5xGSiHySmEDErQrd4zUDwt9zDQEe9gtPT3BpxyVyaZFepdzeqOIQ jcI5ZL5mdL+f3OT/FVYWQPaX2AklZyhjqeGONrda2ismKo+Qdx3Zf1pmiNrVWw== 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=1770654514; 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=g4U9DkvOlO8viYL+A5Yx78CMLCrvRedTL47QGVBkMmo=; b=KOw1xtUQXOXCCrLk0crBnB36NM2zeqBtMCmhCI4o6G24G5wkrCvBMIlDl2fWDU11PuwrLz mPIWwq2hkRpvifHb6DGUmI6yDTgnpue+WIPNTLdtqOidcx5C6uzthHVEcpqS/RZB+1Cz5k MkxR/evr8Ktoymm0YMTMyh1aJbwK4Q1JYQ8YskjwNhKwV7gZeXFVTIYCi/BH/765QfAZJA 2XPcYg+VK+7Jp4xYcpsEodhm/DukvcMCClT9m6bNAWNgtHiZM9oSM/ePmbp4m74O9k5pjo q0xHKZoGkWAJWfYi1pl1+xMegyu+ei0OBhu9o3KJOKuQSZpW5MnbYbt6RDmlsQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8qrL21DmzgY8 for ; Mon, 09 Feb 2026 16:28:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1d713 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 16:28:34 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Sarah Walker From: Andrew Turner Subject: git: d8e700f2eeb9 - stable/15 - libc/aarch64: Use MOPS implementations of memcpy/memmove/memset where availble 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: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: d8e700f2eeb96e54e3d0e8c6fde0710004e32b4c Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 16:28:34 +0000 Message-Id: <698a0b32.1d713.6e46e634@gitrepo.freebsd.org> The branch stable/15 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=d8e700f2eeb96e54e3d0e8c6fde0710004e32b4c commit d8e700f2eeb96e54e3d0e8c6fde0710004e32b4c Author: Sarah Walker AuthorDate: 2026-01-13 14:24:53 +0000 Commit: Andrew Turner CommitDate: 2026-02-09 14:50:14 +0000 libc/aarch64: Use MOPS implementations of memcpy/memmove/memset where availble Reviewed by: andrew Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D54560 (cherry picked from commit 41ccf82b29f3b16fcd1ccb4987569c851222ef8d) (cherry picked from commit fb96702a034c663adb4a1b44299af01fa71e29fd) --- lib/libc/aarch64/string/Makefile.inc | 13 ++++++--- lib/libc/aarch64/string/memcpy.S | 4 +-- lib/libc/aarch64/string/memcpy_resolver.c | 42 ++++++++++++++++++++++++++++++ lib/libc/aarch64/string/memmove_resolver.c | 42 ++++++++++++++++++++++++++++++ lib/libc/aarch64/string/memset.S | 2 ++ lib/libc/aarch64/string/memset_resolver.c | 42 ++++++++++++++++++++++++++++++ tools/build/depend-cleanup.sh | 6 +++++ 7 files changed, 145 insertions(+), 6 deletions(-) diff --git a/lib/libc/aarch64/string/Makefile.inc b/lib/libc/aarch64/string/Makefile.inc index 35523fb954be..528c19574a1c 100644 --- a/lib/libc/aarch64/string/Makefile.inc +++ b/lib/libc/aarch64/string/Makefile.inc @@ -5,10 +5,8 @@ AARCH64_STRING_FUNCS= \ memcmp \ - memcpy \ memmove \ memrchr \ - memset \ stpcpy \ strchr \ strchrnul \ @@ -34,7 +32,12 @@ MDSRCS+= \ timingsafe_bcmp.S \ timingsafe_memcmp.S \ bcopy.c \ - bzero.c + bzero.c \ + memcpy.S \ + memcpy_resolver.c \ + memmove_resolver.c \ + memset.S \ + memset_resolver.c # # Add the above functions. Generate an asm file that includes the needed @@ -55,6 +58,8 @@ MDSRCS+= ${FUNC}.S CFLAGS.${FUNC}.S+=-I${SRCTOP}/contrib/arm-optimized-routines/string .endfor -# memchr.S is a wrapper in the src tree for the implementation from +# Several files are wrappers in the src tree for the implementation from # arm-optimized-routines CFLAGS.memchr.S+=-I${SRCTOP}/contrib/arm-optimized-routines/string +CFLAGS.memcpy.S+=-I${SRCTOP}/contrib/arm-optimized-routines/string +CFLAGS.memset.S+=-I${SRCTOP}/contrib/arm-optimized-routines/string diff --git a/lib/libc/aarch64/string/memcpy.S b/lib/libc/aarch64/string/memcpy.S index 53e860750eb2..06598d59bcf2 100644 --- a/lib/libc/aarch64/string/memcpy.S +++ b/lib/libc/aarch64/string/memcpy.S @@ -1,3 +1,3 @@ -#define __memcpy_aarch64_simd memcpy -#define __memmove_aarch64_simd memmove #include "aarch64/memcpy-advsimd.S" +#include "aarch64/memcpy-mops.S" +#include "aarch64/memmove-mops.S" diff --git a/lib/libc/aarch64/string/memcpy_resolver.c b/lib/libc/aarch64/string/memcpy_resolver.c new file mode 100644 index 000000000000..c2a7477a939e --- /dev/null +++ b/lib/libc/aarch64/string/memcpy_resolver.c @@ -0,0 +1,42 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2026 Arm Ltd + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +#include +#include + +#include + +void *__memcpy_aarch64_simd(void *, const void *, size_t); +void *__memcpy_aarch64_mops(void *, const void *, size_t); + +DEFINE_UIFUNC(, void *, memcpy, (void *, const void *, size_t)) +{ + if (ifunc_arg->_hwcap2 & HWCAP2_MOPS) + return (__memcpy_aarch64_mops); + + return (__memcpy_aarch64_simd); +} + diff --git a/lib/libc/aarch64/string/memmove_resolver.c b/lib/libc/aarch64/string/memmove_resolver.c new file mode 100644 index 000000000000..95cf3deca966 --- /dev/null +++ b/lib/libc/aarch64/string/memmove_resolver.c @@ -0,0 +1,42 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2026 Arm Ltd + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +#include +#include + +#include + +void *__memmove_aarch64_simd(void *, const void *, size_t); +void *__memmove_aarch64_mops(void *, const void *, size_t); + +DEFINE_UIFUNC(, void *, memmove, (void *, const void *, size_t)) +{ + if (ifunc_arg->_hwcap2 & HWCAP2_MOPS) + return (__memmove_aarch64_mops); + + return (__memmove_aarch64_simd); +} + diff --git a/lib/libc/aarch64/string/memset.S b/lib/libc/aarch64/string/memset.S new file mode 100644 index 000000000000..dfe1c54273b9 --- /dev/null +++ b/lib/libc/aarch64/string/memset.S @@ -0,0 +1,2 @@ +#include "aarch64/memset.S" +#include "aarch64/memset-mops.S" diff --git a/lib/libc/aarch64/string/memset_resolver.c b/lib/libc/aarch64/string/memset_resolver.c new file mode 100644 index 000000000000..34ca98aa1d34 --- /dev/null +++ b/lib/libc/aarch64/string/memset_resolver.c @@ -0,0 +1,42 @@ +/*- + * SPDX-License-Identifier: BSD-2-Clause + * + * Copyright (c) 2026 Arm Ltd + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ +#include +#include + +#include + +void *__memset_aarch64(void *, int, size_t); +void *__memset_aarch64_mops(void *, int, size_t); + +DEFINE_UIFUNC(, void *, memset, (void *, int, size_t)) +{ + if (ifunc_arg->_hwcap2 & HWCAP2_MOPS) + return (__memset_aarch64_mops); + + return (__memset_aarch64); +} + diff --git a/tools/build/depend-cleanup.sh b/tools/build/depend-cleanup.sh index bfe7b65c61d1..8e4b552edb0c 100755 --- a/tools/build/depend-cleanup.sh +++ b/tools/build/depend-cleanup.sh @@ -555,3 +555,9 @@ if [ ${MACHINE} = riscv ]; then clean_dep lib/libc bcopy c "libc.string.bcopy.c" clean_dep lib/libc bzero c "libc.string.bzero.c" fi + +if [ ${MACHINE_ARCH} = "aarch64" ]; then + # 20260113 41ccf82b29f3 libc/aarch64: Use MOPS implementations of memcpy/memmove/memset where availble + clean_dep lib/libc memset S "[^/]memset.S" + run rm -fv "$OBJTOP"/lib/libc/memset.S +fi From nobody Mon Feb 9 16:28: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 4f8qrN5rT0z6Rg9n for ; Mon, 09 Feb 2026 16:28: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 4f8qrN40Nzz3PSS for ; Mon, 09 Feb 2026 16:28:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770654516; 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=Sbtz6MNTael7QmYHRRojXIG3RWH+mRu1085vbHDvwg4=; b=IPhnh1h6QA/1oCeL8CMACOTqJSTrCPlKRqrFfbd2iXR77zEDgvv/aE6jopEhWPQhSMzisv iG0mjk3eW44lgmqMAz/uW4vw6L85OG8H67HVjYDEH0dKumJ0q/xmb7paA3+bi7BbIhrF6F XZg0E3j/6G45AxQnAAdhJdwPsSiTYHJ/HznlJL5iLLWWTriTAhXWn/J5D2Z6h4xat1jZ7C bFdyzydi60v0ZlzlrRVmD15PfEWyEW1A7HWSSCLrZeucaoQnbWARy2xeJN03kWcDOsUn1p bdbX74KCacxzQ26HH1eFmfDHFdgFHTcIgt2mhRfwiHY4PhI6NOOddBN1FJ9hDg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770654516; a=rsa-sha256; cv=none; b=tSEmy6/G2gwJHplkWgVL+IZaiBzmdPc4P5DluZ38PclWe/sK/qoKaeUCnq47pcZlJzrHlN XKrHQcae2JnNdSzMCkuxopsuwCjrJdABIgDustKaODpk3SQGTJr0wUz0rhoLowANVdclLa Xit+DDN+FLbBLDD4/v6jLJc+BKNvvzMfjYq21YZ9gIlVYU6wVLpTRIAI6jC42cwAJEDFg1 L6JCLnS0aS1QfEq+WgamyhsY9FQCGsy7m73hpFNxpzFD7W+2dqEPrB3UaSr0pKXu//05Yc f0ngYzSc5Ous0PV5EIWMzLj5N9qGUKwgP/4YYr2IY+NYQHaekrC7iZ1Bhptx0g== 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=1770654516; 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=Sbtz6MNTael7QmYHRRojXIG3RWH+mRu1085vbHDvwg4=; b=imSEkHdAl/mmK1bgSlnYgoA/Oosr9DTIs/t5KvOkW6r9IozCYQbvsft/YO4856Vr2pfcDq MvFSwhyVbfjkMaHLPvMYvfjgI9jj1W3wFTw2FOSY+m3uO5+uSVFluK2mMcGPecluE/oqcv mKr+/230Y2IjBwwb9S3lomg/cbe27WoXjTmnisP7z7qruPVyYjdBdoRzSEIDW8gm839dii VvnznTj5L3BNYFN60yPAyUZnQRfqGoWtRUu8Okml5XhkvSD5U7EpZ/IWlDoYQyNrVwFCBr ENq71cXEUI+Yahf5Y0RiE7mg0gh1nuyjWEqMyqztEa1/j9UefWuj3lej3kPN2Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8qrN3TxCzgJ5 for ; Mon, 09 Feb 2026 16:28:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1d0ef by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 16:28:36 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Harry Moulton From: Andrew Turner Subject: git: 5b818d9f3f4d - stable/15 - arm64: Fix MAIR_ATTR_MASK 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: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 5b818d9f3f4d478f13df8478c1ac209d276ce3f4 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 16:28:36 +0000 Message-Id: <698a0b34.1d0ef.1f800f2b@gitrepo.freebsd.org> The branch stable/15 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=5b818d9f3f4d478f13df8478c1ac209d276ce3f4 commit 5b818d9f3f4d478f13df8478c1ac209d276ce3f4 Author: Harry Moulton AuthorDate: 2026-01-07 14:20:19 +0000 Commit: Andrew Turner CommitDate: 2026-02-09 14:51:59 +0000 arm64: Fix MAIR_ATTR_MASK Use the correct value when calculating the mask. (commit message by andrew@) Sponsored by: Arm Ltd (cherry picked from commit bdaa120b30006d7ef841a966414795416ce93eea) --- sys/arm64/include/armreg.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/arm64/include/armreg.h b/sys/arm64/include/armreg.h index 28dec3a40b26..138a1eff51ac 100644 --- a/sys/arm64/include/armreg.h +++ b/sys/arm64/include/armreg.h @@ -1982,7 +1982,7 @@ #define MAIR_EL1_CRn 10 #define MAIR_EL1_CRm 2 #define MAIR_EL1_op2 0 -#define MAIR_ATTR_MASK(idx) (UL(0xff) << ((n)* 8)) +#define MAIR_ATTR_MASK(idx) (UL(0xff) << ((idx) * 8)) #define MAIR_ATTR(attr, idx) ((attr) << ((idx) * 8)) #define MAIR_DEVICE_nGnRnE UL(0x00) #define MAIR_DEVICE_nGnRE UL(0x04) From nobody Mon Feb 9 16:28: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 4f8qrP6xcSz6RgJc for ; Mon, 09 Feb 2026 16:28: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 4f8qrP4Mcmz3Ph1 for ; Mon, 09 Feb 2026 16:28:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770654517; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Iz8JF3NwiEDUI8LXBHXNnGPmbT2gvanrT0goRxlmQMA=; b=wfdoRy6mHcr+gIcn67xmi41EdI/bdEzceoIca5Gl4c9QNRtOR4Y408C6BA7jjQWMev1gX3 0ShmN0lZpcMuG+a0JgZ0+BdvKNRrs8ETTGz6MK3aZjJhg9FX539I4lBytm2DUR4n28+Gcl c92rYRgiCwlWqXt9o861W5Q906cU2fc2ErB4DVbiihivgyk/2yAfYQCsuRDtNGKkvc4Tf4 raZXkfDB8p1t0wbG7M9lG53NzpyTqKSkZ0FNgYIb4yEMgsiwqtkUO2GMXSWpS9OIt49t1I UavoCL9VQUR5AwdWcAn9wXZAllATs8rF/a/WCyADQ1a3AeS3152bq6+jyEI7rw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770654517; a=rsa-sha256; cv=none; b=Mb2qjfCfpH07Zg217N09MEs3tZjYAKt+tyNX+9cl1t4uTLeK3PeXEsUFsGQYsjbre6Z/Mn yPchHolDMpWqgN3bC82RrN8E2b5Eem/XdNZ8NbE+6iYzsjvRCDn6B8VQ3y4rXOlLUp8K2l R2DKe0HHyJI+yDSegQtKa8gytr8kH73q+vP9Z+KKuhL/a++Jw8/S3VP0JSIB6SKaOKO58k EaCmhgT2KumVBRM8O0Z4YTIuQpveLha2/xNkjj2EMigX/89pUsjHKPpqtkXYta+B4eTE/U DQq/pEc5D+t0p/8vRVb/01KBCznAtO6vKuEmysgYfFbJyetMM7H1cKVWOW86cA== 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=1770654517; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Iz8JF3NwiEDUI8LXBHXNnGPmbT2gvanrT0goRxlmQMA=; b=MjTWsaxYZUuYjVcO5iyRLobDoAUMo9Wh8aERDPOerMo8k68IJ8c2NXXTHXA8zR7uaHeQgm 9wY1nIpQSjEHTnrNpOfkMJzOKA6t2VMmv8VUoDKnc44a/iwc69zhVQnDHSfqqXzkq5052r xVLvDQ+5q5uovckwKfGgdid0hz2euxL1rARr8sBBADJq4mSpzEdMyNVoNNwR5hTtRpb3tP 8M60JPuxHRgfow2ViVqMXmS1Et8+3S5WC4NL+CuxMwkiDKw7HO79dz4qS6qOH/EBqSaqgR c4vzCtZM3fap2zacs38FNmiH3H/8Ma62fETSyq0TPJ6A0coHE/yPbU2OwZN17A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8qrP3wPnzh2K for ; Mon, 09 Feb 2026 16:28:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1c4c3 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 16:28:37 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: bcb8b267f323 - stable/15 - arm/gic: Detect broken configurations 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: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: bcb8b267f323bdc91cad9655bdc8f194ba020137 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 16:28:37 +0000 Message-Id: <698a0b35.1c4c3.6403ba3e@gitrepo.freebsd.org> The branch stable/15 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=bcb8b267f323bdc91cad9655bdc8f194ba020137 commit bcb8b267f323bdc91cad9655bdc8f194ba020137 Author: Andrew Turner AuthorDate: 2026-01-23 14:31:04 +0000 Commit: Andrew Turner CommitDate: 2026-02-09 14:51:59 +0000 arm/gic: Detect broken configurations Some virtualization platforms provide broken configurations. There is a GIC interrupt controller, however accessing the CPU interface registers leads to an external data abort. As these are needed to handle interrupts we are unable to boot further. Detect this misconfiguration and panic to tell the user the issue. Reviewed by: emaste Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D54832 (cherry picked from commit 6c5fdba45a63d66984e15ddc6996f5e88a55f22c) --- sys/arm/arm/gic.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/sys/arm/arm/gic.c b/sys/arm/arm/gic.c index c1b2cf626ed8..da91f7e1b22d 100644 --- a/sys/arm/arm/gic.c +++ b/sys/arm/arm/gic.c @@ -151,6 +151,8 @@ static struct arm_gic_softc *gic_sc = NULL; /* CPU Interface */ #define gic_c_read_4(_sc, _reg) \ bus_read_4((_sc)->gic_res[GIC_RES_CPU], (_reg)) +#define gic_c_peek_4(_sc, _reg, _val) \ + bus_peek_4((_sc)->gic_res[GIC_RES_CPU], (_reg), (_val)) #define gic_c_write_4(_sc, _reg, _val) \ bus_write_4((_sc)->gic_res[GIC_RES_CPU], (_reg), (_val)) /* Distributor Interface */ @@ -347,7 +349,18 @@ arm_gic_attach(device_t dev) goto cleanup; } - icciidr = gic_c_read_4(sc, GICC_IIDR); + /* + * Try accessing a CPU interface register. On some broken + * virtualization environments this will raise an external + * data abort. When this happens we can detect it using + * by peeking at the register & checking for the fault. + * As there is no way to continue with a normal boot we + * panic. + */ + if (gic_c_peek_4(sc, GICC_IIDR, &icciidr) != 0) + panic("Unable to access %s CPU registers, " + "broken hardware or hypervisor configuration", + device_get_nameunit(dev)); device_printf(dev, "pn 0x%x, arch 0x%x, rev 0x%x, implementer 0x%x irqs %u\n", GICD_IIDR_PROD(icciidr), GICD_IIDR_VAR(icciidr), From nobody Mon Feb 9 16:28: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 4f8qrR0BRXz6Rg7l for ; Mon, 09 Feb 2026 16:28: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 4f8qrQ5Tnvz3PYD for ; Mon, 09 Feb 2026 16:28:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770654518; 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=ZS+IRcjQ9GPyALmAfbUkF1KulmQyIfQN6Br7QjlH4VY=; b=qvmKbvHR5swj8S1k+i7wMQ8KNgmQNf/PjmN99ZQEFSKGaJFfBxjonCD5ZQ4rRIJrHOrRBF HL9pL6Mh5Fd1yacEEAniUm0TJ0PLF3lFsgPkNYuYUz2kaPayygYMDr0QAnBfqJh53b/CL2 n+t8qlbcGpSZVOBU/ZCRuabUAhcr84d1ehEIG3MZSug/jE7BKSdq59XX0DkhE++LDHLW2g GaFCuvlez1YxX6fUqJyZjGuZa8HKeXp5XdauXdxI8WPTTQXhwic8thEWcP2xDjHsY1SJxc MQ9XgT7I9zLZBVRGdwP0U/F8dkGMQpqECALPwDq6ZcV9QrdbhXUs7sfx1/28Gg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770654518; a=rsa-sha256; cv=none; b=ah3Ld7dYWQQzr2X7C/pdrt8SQ/RDxvGwqw4Qd1CW1zDC59AlAOL4KDXJ1QoG2iOFWotkiG mk+QVOftLKv14/qAgjG8Eh4CONnO8XMSqBZeAWBq1UsXr3MQyQNHRWTX8TaNG2a4ZktCJ+ zsC7nWKTnffzbjMeAfHk3r0xY3gn04rlWdoAu0OYzaGH7xna8S6MK8gpuhOuq5kSUFdCqj qpOAdVuug1oh4oJJ+SRs7wvG6Zc9suDUMpsKJtDwMH3RrVyjr//73lxIqLOY5iVWcAzpEm c8Jxo8uTaLfWbquX3e1x/NMUbraIhrXP0Hs52GxksJtM68n0BhgxGFnv85l1Jg== 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=1770654518; 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=ZS+IRcjQ9GPyALmAfbUkF1KulmQyIfQN6Br7QjlH4VY=; b=B2BXsYugBVyhA/avbzSELnEVK+HPIYbSyiqPtdr0xNK4wWwJJOQyv8qnyY617E4trML8lC QbTPdTewGEqh/TSUYNUeBS6Lh9ul+AivI0kPNC3LeXQrYKG8gU1k5dT2HQAXP0I84dfPMs ecbsRCBc1YbhEiRc3c6pgUg/HVh/dbv9jLIHzW2Bitj+2xEScfnQE3kV37JFKv3smNOyCd hzSk1CW/LBGsZan5PQICHXsjYSnI8DaymBDPWlHw1Wa+vK0ufyL0Y0IEoL5IW8FaM0v4RL u2cRV5EQHcBnTROe1RVB+Udlxk4h46RmrnkiH6DgGiL1h0zu8wIwkd0Lb9z8lw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8qrQ4j13zh4X for ; Mon, 09 Feb 2026 16:28:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1d8a7 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 16:28:38 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Andy Carrel From: Andrew Turner Subject: git: c70a68bbdbf6 - stable/15 - arm64: Fix kernel panic in get_arm64_sve during core dump 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: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: c70a68bbdbf67e10a8cd8d46857cc6d4533096a9 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 16:28:38 +0000 Message-Id: <698a0b36.1d8a7.25fad201@gitrepo.freebsd.org> The branch stable/15 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=c70a68bbdbf67e10a8cd8d46857cc6d4533096a9 commit c70a68bbdbf67e10a8cd8d46857cc6d4533096a9 Author: Andy Carrel AuthorDate: 2026-01-05 07:50:27 +0000 Commit: Andrew Turner CommitDate: 2026-02-09 14:51:59 +0000 arm64: Fix kernel panic in get_arm64_sve during core dump The coredump logic calls get_arm64_sve twice: once to get the note size, and once to get the data. The note size calculation depended on the volatile `PCB_FP_SVEVALID` flag. If this flag was cleared between the two calls (e.g., due to a context switch clearing the flag to comply with the ABI), the second call would expect a smaller buffer size than the first, triggering a KASSERT panic ("invalid size"). Fix this by ensuring the SVE state is saved to the PCB before we decide whether to use SVE or VFP. PR: 292195 Reviewed by: andrew Differential Revision: https://reviews.freebsd.org/D54532 (cherry picked from commit 93d3ac1daa0ef3ac54ffcd5cc64a14638d04bd60) --- sys/arm64/arm64/vfp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/arm64/arm64/vfp.c b/sys/arm64/arm64/vfp.c index bcddebfaf66e..64f13458e2d9 100644 --- a/sys/arm64/arm64/vfp.c +++ b/sys/arm64/arm64/vfp.c @@ -934,6 +934,9 @@ get_arm64_sve(struct regset *rs, struct thread *td, void *buf, pcb = td->td_pcb; + if (td == curthread && (pcb->pcb_fpflags & PCB_FP_STARTED) != 0) + vfp_save_state(td, pcb); + /* If there is no SVE support in HW then we don't support NT_ARM_SVE */ if (pcb->pcb_sve_len == 0) return (false); @@ -955,9 +958,6 @@ get_arm64_sve(struct regset *rs, struct thread *td, void *buf, KASSERT(*sizep == sizeof(struct svereg_header) + buf_size, ("%s: invalid size", __func__)); - if (td == curthread && (pcb->pcb_fpflags & PCB_FP_STARTED) != 0) - vfp_save_state(td, pcb); - header = buf; memset(header, 0, sizeof(*header)); From nobody Mon Feb 9 16:28: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 4f8qrS2Mh4z6RgJf for ; Mon, 09 Feb 2026 16:28: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 4f8qrR5vZLz3Pbv for ; Mon, 09 Feb 2026 16:28:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770654519; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=//QAQhEtkXZxvQQC/qvF6l+68/1+KhP4qB/hNYxTyHo=; b=fiGGlyCJk1qCYorS80Zhv0BKbZ+3g9kzpab8QDwvtni4v2uKIx4vtEiw/hy5DxBv1wjZP4 vB5W7vm+JV4htP7nptLLnhP1lnd31vxxrrjAdAYQKKp+y3YoZMd/W54KHu0SKE0D1xrmaJ 7obLmKRNfRFeHopDvfbLmH/zUgaHUnjiHOiJWFzXWBrpgENSYqR/JlcPJJVEegwQwVV5/R okx0svAD1M/vbj8ARLjbqqsv0+/AyRrv1xhEZXBb4e3Z1kHSloCFSzHDtSdn7Z8+qMiATS xHlFbrdbmmQNIIWrWkASZmKW2+nAxphr9DwAZjyN6fWks0gkW/RA+cjDx9zmXg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770654519; a=rsa-sha256; cv=none; b=JkJyjnHVHAOg+M3KxGqIwxZfXt1OLPfmFw6K0KZLQgCNwYeo4PZu0/gTmjVZEPwJIW1my4 8HUy8M9qlSd1f61JZDteePUs6Du67sQNzLt1GAuH+K/hF5mAcTZ3UpUEWHzKmCIFv9iHBR PusqnED6LtPPuXO1qpq8DBzVO0puj7f9ziy1fKwdRcmQifVNZ+uawMUvhaBI6T8JJqbaA/ eOvSkCyhZIAjUGHNNTdDFo2mrKSfiLenI35aE+h8Qco155/Bc1Oz2rPFuz5VCX5Zu62it3 jYPOBSnXMbMqTHaIrFnfRcggWe2r3puOax+FVI7xtKrU8GIpfg+aKZUb7g/7GQ== 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=1770654519; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=//QAQhEtkXZxvQQC/qvF6l+68/1+KhP4qB/hNYxTyHo=; b=yUryz8ea7TfS4cuUskj5D4bG37DmFTDU4HCRHbFUTDJR9ohMWBGDo0k9KgYPU5aHaIIx1+ rroLRtHYFgumOV3eFd2MNZZ+RQQnBHXq+Umt0+WjD7z56VGXpYyjM4OcJSoeFp//lSWFE6 zLHPz+Z3coC7gHtJo+aEB86L1n4/3AbGBwzkEit7IOkcl5u6Gq1faJd3QZdlAxp1sIxQlv v1zy2hwMwf6mor6OLgMUK6zKvcLkJOA9nZndwwRPkfpT3aVK+o5a7e5p4drzXrjH2kx4y+ e6QRsCmZ4jZHjVEuquCMsVHN7GVm5oZ/JHC+DVp6DNQQEltp+GNWxsaYxQygVA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8qrR5Rwczh2L for ; Mon, 09 Feb 2026 16:28:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1d313 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 16:28:39 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 50144c002555 - stable/15 - libc/aarch64: Add a Makefile.inc dependency 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: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 50144c00255518584db50e40e3a9c5e37f0d32bb Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 16:28:39 +0000 Message-Id: <698a0b37.1d313.1693ddf5@gitrepo.freebsd.org> The branch stable/15 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=50144c00255518584db50e40e3a9c5e37f0d32bb commit 50144c00255518584db50e40e3a9c5e37f0d32bb Author: Andrew Turner AuthorDate: 2026-02-03 14:00:46 +0000 Commit: Andrew Turner CommitDate: 2026-02-09 14:51:59 +0000 libc/aarch64: Add a Makefile.inc dependency If we update Makefile.inc it may be to change the contents of these files. Reviewed by: imp Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D54774 (cherry picked from commit 00f68392130cf597c7c76669c63dab26b31630c1) --- lib/libc/aarch64/string/Makefile.inc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/libc/aarch64/string/Makefile.inc b/lib/libc/aarch64/string/Makefile.inc index 528c19574a1c..faf2f4566b30 100644 --- a/lib/libc/aarch64/string/Makefile.inc +++ b/lib/libc/aarch64/string/Makefile.inc @@ -46,8 +46,8 @@ MDSRCS+= \ # override the generated file in these cases. # .for FUNC in ${AARCH64_STRING_FUNCS} -.if !exists(${FUNC}.S) -${FUNC}.S: +.if !exists(${LIBC_SRCTOP}/aarch64/string/${FUNC}.S) +${FUNC}.S: ${LIBC_SRCTOP}/aarch64/string/Makefile.inc printf '/* %sgenerated by libc/aarch64/string/Makefile.inc */\n' @ > ${.TARGET} printf '#define __%s_aarch64 %s\n' ${FUNC} ${FUNC} >> ${.TARGET} printf '#include "aarch64/%s.S"\n' ${FUNC} >> ${.TARGET} From nobody Mon Feb 9 16:28: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 4f8qrT2w9Kz6RgDS for ; Mon, 09 Feb 2026 16:28:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f8qrS6qf0z3PQk for ; Mon, 09 Feb 2026 16:28:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770654521; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=iwC9YysTEUDmoobsJ4H3WRnGHl6LC5QJtWTNOu3GhIE=; b=D7U+on8RKHflq9qoH+OX4jEUJD5xmqEpi5jBtKpEXjHkHGHRF7TtLXPydbdy1gDWQZb0We ubuYHbFp4SW81JrswtUXz3rjnRg/HERtWOBH6WEUy/oLQ9AikbiIvllZ+QWAhjBPbYwYfm K5vewZbul0nO4T5dzIsRrV7+rwWoMjLzg70WphEl1PZ7zBOQKjWHAJIpE7akpExVj/egIB Zc3tcgxGsAp7lWNeFs534Oc4/hpC0/nrvpODNbKNHW36qaQ92SrfopoLzYfURPogctOaih OE1IFg5XLpoPShbPsEMRqqeK5T6Hpcsxdf1QhfnwT6OCSaV3cyvxdgpW5sGOKg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770654521; a=rsa-sha256; cv=none; b=x2LwJ9iW+Hy8+Bq7oF8tRmP1cgizXLP5Md7qhZhNH2QH8IK642OBi34Rp9+LcQgPWYiMZ4 SQZNUGH5470IuS9ImHhq1LmcNwQhOStH1N3iI/BwW2C7nH9Y10+3OiFnVwQG4j0vDR5E42 pZjPdclPvR+ji3pQt4x0ULtC8NXVg8AZsSQBzIaHiiv8TgRsqM4i5k6Jg7C+dO+oAO2/MA SimIJhYOB4DgfTpnzqi9FMGIiMW8WETcq6h2b9Swm7EbvznLJnrBHUbMM725wSB3KCzLAi mzzdz0Nwe1cQaoCchumW/Znc4txJR7T0zfubt/TFFNbJg1PaoP0GD8Ka3Ih6BQ== 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=1770654521; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=iwC9YysTEUDmoobsJ4H3WRnGHl6LC5QJtWTNOu3GhIE=; b=O0q7twSzRPBcP+crEeTA/7bqOSz5M6jnF98Lj/2B9PrJjKLdhqV/j5a7GuI23dZ63pAag7 Y8eGh5WiilsLTa7xX0deIDwYOs7+2ZXXpk1+dP9gIQ5HUPz6h+TrxWxCcIrrCKglNzycms OMZ+57UzyYqXPbc4YyqaewTHK26mNg1DZqrbXmkZCw4Qmh5TkOxnEI5A8x072ADQYlPZU4 rfxUhznMTHXysECHDMyfrfjupN7bZWA7B8p4uE25tvQ/o5w4aqPixu9UCa3fAKsBR+3z1i fWNrGjWMd+xPSH+Y/XYGEYGa4y36rE1aDToRu2yA57YFTf0ccBNIrlA+Sge2eQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8qrS6ChWzh2M for ; Mon, 09 Feb 2026 16:28:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1d996 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 16:28:40 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: db96d49bdebf - stable/15 - libc/aarch64: Split out the MOPS functions 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: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: db96d49bdebf8d529fe18800ea5abbc0827e50d7 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 16:28:40 +0000 Message-Id: <698a0b38.1d996.5c7c83b2@gitrepo.freebsd.org> The branch stable/15 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=db96d49bdebf8d529fe18800ea5abbc0827e50d7 commit db96d49bdebf8d529fe18800ea5abbc0827e50d7 Author: Andrew Turner AuthorDate: 2026-02-03 14:01:07 +0000 Commit: Andrew Turner CommitDate: 2026-02-09 14:52:00 +0000 libc/aarch64: Split out the MOPS functions This allows static binaries to only include the functions they reference. Reviewed by: imp Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D54775 (cherry picked from commit f0516ed4652cfb7435f8c5a16b46dc067779a1a8) --- lib/libc/aarch64/string/Makefile.inc | 14 ++++++++++++++ lib/libc/aarch64/string/memcpy.S | 2 -- lib/libc/aarch64/string/memset.S | 1 - 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/lib/libc/aarch64/string/Makefile.inc b/lib/libc/aarch64/string/Makefile.inc index faf2f4566b30..20a844f80e17 100644 --- a/lib/libc/aarch64/string/Makefile.inc +++ b/lib/libc/aarch64/string/Makefile.inc @@ -14,6 +14,11 @@ AARCH64_STRING_FUNCS= \ strnlen \ strrchr +AARCH64_STRING_IFUNC_FILES= \ + memcpy-mops.S \ + memmove-mops.S \ + memset-mops.S + # SIMD-enhanced routines not derived from Arm's code MDSRCS+= \ memchr.S \ @@ -58,6 +63,15 @@ MDSRCS+= ${FUNC}.S CFLAGS.${FUNC}.S+=-I${SRCTOP}/contrib/arm-optimized-routines/string .endfor +.for FILE in ${AARCH64_STRING_IFUNC_FILES} +${FILE}: ${LIBC_SRCTOP}/aarch64/string/Makefile.inc + printf '/* %sgenerated by libc/aarch64/string/Makefile.inc */\n' @ > ${.TARGET} + printf '#include "aarch64/%s"\n' ${FILE} >> ${.TARGET} +CLEANFILES+= ${FILE} +MDSRCS+= ${FILE} +CFLAGS.${FILE}+=-I${SRCTOP}/contrib/arm-optimized-routines/string +.endfor + # Several files are wrappers in the src tree for the implementation from # arm-optimized-routines CFLAGS.memchr.S+=-I${SRCTOP}/contrib/arm-optimized-routines/string diff --git a/lib/libc/aarch64/string/memcpy.S b/lib/libc/aarch64/string/memcpy.S index 06598d59bcf2..c4601d158d6b 100644 --- a/lib/libc/aarch64/string/memcpy.S +++ b/lib/libc/aarch64/string/memcpy.S @@ -1,3 +1 @@ #include "aarch64/memcpy-advsimd.S" -#include "aarch64/memcpy-mops.S" -#include "aarch64/memmove-mops.S" diff --git a/lib/libc/aarch64/string/memset.S b/lib/libc/aarch64/string/memset.S index dfe1c54273b9..acf707cdb7ec 100644 --- a/lib/libc/aarch64/string/memset.S +++ b/lib/libc/aarch64/string/memset.S @@ -1,2 +1 @@ #include "aarch64/memset.S" -#include "aarch64/memset-mops.S" From nobody Mon Feb 9 16:28: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 4f8qrV3cgXz6RgRR for ; Mon, 09 Feb 2026 16:28:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f8qrV0HCRz3PTb for ; Mon, 09 Feb 2026 16:28:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770654522; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4lNQpUxCPDzd8QIMqBXOF/UNZnL3UnIcoLkrBPhQfZk=; b=ZV+xD5yshkYn3663DYBDtgKyUWQcoDAr/lJCDnOSI6gQjlTeYsDkG1njLsnkxZXHEDagXE 9JKL6dJtbJq4uBynXvanJA/qJxCclQPzXwFlFGZr3/afHwkyzJ/m+y8nh4QCont3SqBVvT J3QXcRJtggEse22+JZjS0W9d+TWlZPI2Z63GppYkicsXw/HX+UuwCYYiaiAbfWkFDsK5Qc NKpeimK+jnrS4qfqh9baygzyjc2qL3U4YiLQq8cNxYGxePRYm6q1tQZl/MtrWXw7BWrfHi b/lylss29qdLICjXk95s2zjr6EdxJM+r0QaWQPHOJQ4msXYVyLRem6daF1zbIg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770654522; a=rsa-sha256; cv=none; b=nMWFG8r4V02HGA6vF3x2077CnbQG22TT98mkiyRUA1XNYdyHVobZMmBr1JcFaR+AfIdtKl T3FOqEv8vLLu1+9+It4nGXO4dLiqGMMXn2xu738JZw99Z3umDQtL1mkK0gMFrvWHjtMiT3 mDVvOw8hjf2PkkssMcpl/g96ndKa0wj2eeCahy3ONgsDNbbAFMLE8/4lBGbUdY4juoSfST wfioLR/ryKR+VJ2f70bLoK4GG8I/JEzxWf8dP0Mxi5Poxgt/8l0bL7avwjD3lHyxU0l845 PaEm31wrPe+Tpd55TlKTGAsnnZJsonadX84CZccnsowbPGFIOese0pKtpSg40w== 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=1770654522; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4lNQpUxCPDzd8QIMqBXOF/UNZnL3UnIcoLkrBPhQfZk=; b=TiMxl9T5YPFSrhwcGoDl1cYPkOwi/Aaz4lDj6I+6Rb4Qt0dg5njJ1ZMUBdqy/VnqXcXhez Hk+H9SraD74WEm/3TIGOvO1HMqTpNKWgtRuH3u8IPsqN0XswaZT05r6oWK5uJi2T68xKkZ B8bsl9BQdhZQgI4+V0rdwnp+9jZFjT+l+G3/5nb/4hz3r3mRM7SNvexSi9zRV139oeaehc mwlxNkBm4JyXfm9R9dDh6SIY8r8R1UcB+ChUz367K97tYFKEvnhO386kDgm6cPcPWrIi9p eKSS3fkaFaWTS0WaUnaMz4dbcZ724o3wV2jTa7HYKWzzjxgi8ybPe0Mb9qcPIw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8qrT6yxpzh01 for ; Mon, 09 Feb 2026 16:28:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1d317 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 16:28:41 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 067250e857b4 - stable/15 - libc/aarch64: Add memset for a 64 byte dc zva 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: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 067250e857b4e8f6d3ee9ff20c155d44c75c95e7 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 16:28:41 +0000 Message-Id: <698a0b39.1d317.21c1b2dd@gitrepo.freebsd.org> The branch stable/15 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=067250e857b4e8f6d3ee9ff20c155d44c75c95e7 commit 067250e857b4e8f6d3ee9ff20c155d44c75c95e7 Author: Andrew Turner AuthorDate: 2026-02-03 14:01:32 +0000 Commit: Andrew Turner CommitDate: 2026-02-09 14:52:00 +0000 libc/aarch64: Add memset for a 64 byte dc zva On arm64 we can use the "dc zva" instruction to zero memory. The CPU tells software if the instruction is implemented, and if so the size and alignment it will use. When the size is 64-bytes the Arm Optimized Routines implementation of memset can use dc zva to zero memory, and has a build flag to skip checking. Use this flag to build a version of memset that will be used when this assumption is true. Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D54776 (cherry picked from commit 32d1f18865abe94d351a6f178a93b7195595ec69) --- lib/libc/aarch64/string/Makefile.inc | 4 +++- lib/libc/aarch64/string/memset_resolver.c | 13 +++++++++++++ lib/libc/aarch64/string/memset_zva64.S | 4 ++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/libc/aarch64/string/Makefile.inc b/lib/libc/aarch64/string/Makefile.inc index 20a844f80e17..bc05e849aa20 100644 --- a/lib/libc/aarch64/string/Makefile.inc +++ b/lib/libc/aarch64/string/Makefile.inc @@ -42,7 +42,8 @@ MDSRCS+= \ memcpy_resolver.c \ memmove_resolver.c \ memset.S \ - memset_resolver.c + memset_resolver.c \ + memset_zva64.S # # Add the above functions. Generate an asm file that includes the needed @@ -77,3 +78,4 @@ CFLAGS.${FILE}+=-I${SRCTOP}/contrib/arm-optimized-routines/string CFLAGS.memchr.S+=-I${SRCTOP}/contrib/arm-optimized-routines/string CFLAGS.memcpy.S+=-I${SRCTOP}/contrib/arm-optimized-routines/string CFLAGS.memset.S+=-I${SRCTOP}/contrib/arm-optimized-routines/string +CFLAGS.memset_zva64.S+=-I${SRCTOP}/contrib/arm-optimized-routines/string diff --git a/lib/libc/aarch64/string/memset_resolver.c b/lib/libc/aarch64/string/memset_resolver.c index 34ca98aa1d34..277e8c177de9 100644 --- a/lib/libc/aarch64/string/memset_resolver.c +++ b/lib/libc/aarch64/string/memset_resolver.c @@ -25,18 +25,31 @@ * SUCH DAMAGE. */ #include + +#include #include #include void *__memset_aarch64(void *, int, size_t); +void *__memset_aarch64_zva64(void *, int, size_t); void *__memset_aarch64_mops(void *, int, size_t); DEFINE_UIFUNC(, void *, memset, (void *, int, size_t)) { + uint64_t dczid; + if (ifunc_arg->_hwcap2 & HWCAP2_MOPS) return (__memset_aarch64_mops); + /* + * Check for the DC ZVA instruction, and it will + * zero 64 bytes (4 * 4byte words). + */ + dczid = READ_SPECIALREG(dczid_el0); + if ((dczid & DCZID_DZP) == 0 && DCZID_BS_SIZE(dczid) == 4) + return (__memset_aarch64_zva64); + return (__memset_aarch64); } diff --git a/lib/libc/aarch64/string/memset_zva64.S b/lib/libc/aarch64/string/memset_zva64.S new file mode 100644 index 000000000000..7f1cf6ba577a --- /dev/null +++ b/lib/libc/aarch64/string/memset_zva64.S @@ -0,0 +1,4 @@ +/* Used when we know we have a 64-byte dc zva instruction */ +#define __memset_aarch64 __memset_aarch64_zva64 +#define SKIP_ZVA_CHECK +#include "aarch64/memset.S" From nobody Mon Feb 9 16:28: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 4f8qrW2pq2z6RgRT for ; Mon, 09 Feb 2026 16:28:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f8qrW1B2Qz3Pmt for ; Mon, 09 Feb 2026 16:28:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770654523; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mK7vF0cd1ko8G0r5BpErel09wNv2HzcuK3KAljJqIpc=; b=dgMn6E/63sqkIhKWfYPsbTnRjd5G+pJ9Qbir+P0CR8FLLgkUUdR/aFGxlLMMieoKiuOLxs gUEt72HjhfeDETe8Dqust0eys2L7RnkcPWLokKvrWtH6XbCFDEWEp5xIn3pBFKOoq7gn9q fJxXDb6iykJV3MNdiBgn0KapbDxBxkcXwgwvwGem+zy+7wOHtPAp3OyQb2ay0jq1dFw7xS FyGLAjzhyM56kBDnLxud3O7rLJ51z+KCV4F06KsZB44LV9YFIbZKIJOGTwE3y8l2BJD2I9 CFDYrO427aDS2ovPZa330AeOdXiK9yafdAffULGP4vKEUuYmu53+bXlxjJ5C8Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770654523; a=rsa-sha256; cv=none; b=YmXR/Ppg87ijJqyX0dPTKQdN6PM/Mt83DBf6f7jc472OPXFNLb3FvgoBjdViFa3wovkPgr 1VUJP+Lghgw2BRvMBmWD6upnjzQh479JOB4kmVCI8fz9WEaz1gCxdhkltEwLTWG+inVkCM R+DMgRALxCjuM0qk3G29TYzfFqRKP47r/l0WnmQsVZF5hKW9J5mIqoIRRkJ/qvpRr+rLHC tu3QgMRA6vyI08/I0pVXwpJIhVTG47JRFkSfoC2vkfIZ6nlr5kojRFA28rMF6o+j2Mu21p wPqCwhz13xJ/ECKusFEksiVu/JBOPLGK2hbJL+wfgAYCXFKdUZd87Jffo87sSw== 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=1770654523; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mK7vF0cd1ko8G0r5BpErel09wNv2HzcuK3KAljJqIpc=; b=bHEgkSVKQ28+LCtypnJSLKQtjp4Cb7A27yX2RBxMwEgMJ87baHrk+HFMe6ceYyaYOQrZVV ZhlgKeuZRt/f8Tn4sA3IpYrOYTPPuh/tOysmMeVPQWLN1pvYgRyxlyZAtXS8Fj6INxhl/O MbFeOo84mJstrljQ7U9RLWguD+CLGIKGUfe88YDK/yhGSe/oZw9TDHO/ObaPVcW3+0gtB6 a5fMNhBIGcU3RR5s/Indro9koTAPOaYOubbUSenVrD7GBwJICGYbfpJgvGUNPZ6y2kk0By B4uuLRUk1/Dhttgsir97J54EL6jZZ87motpV4mrI/H8bjUmLLrFfUSdMF6EOog== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8qrW0dSWzh4Z for ; Mon, 09 Feb 2026 16:28:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1d82c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 16:28:43 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 6bea105bcd96 - stable/15 - virtio_p9fs: Use VIRTIO_SIMPLE_PNPINFO 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: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 6bea105bcd9608c65037c4950e96ef40ebdce4a0 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 16:28:43 +0000 Message-Id: <698a0b3b.1d82c.66894885@gitrepo.freebsd.org> The branch stable/15 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=6bea105bcd9608c65037c4950e96ef40ebdce4a0 commit 6bea105bcd9608c65037c4950e96ef40ebdce4a0 Author: Andrew Turner AuthorDate: 2026-02-03 17:13:35 +0000 Commit: Andrew Turner CommitDate: 2026-02-09 14:52:00 +0000 virtio_p9fs: Use VIRTIO_SIMPLE_PNPINFO This allows us to also use the common VIRTIO_SIMPLE_PROBE and to have devmatch load the driver when detected. Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D54684 (cherry picked from commit 2f3f5055e7f69567f7aaca2f5b77655df34c4bb0) --- sys/dev/virtio/p9fs/virtio_p9fs.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/sys/dev/virtio/p9fs/virtio_p9fs.c b/sys/dev/virtio/p9fs/virtio_p9fs.c index aa84d3970698..2b276a60aa9a 100644 --- a/sys/dev/virtio/p9fs/virtio_p9fs.c +++ b/sys/dev/virtio/p9fs/virtio_p9fs.c @@ -84,6 +84,8 @@ static struct virtio_feature_desc virtio_9p_feature_desc[] = { { 0, NULL } }; +VIRTIO_SIMPLE_PNPINFO(virtio_p9fs, VIRTIO_ID_9P, "VirtIO 9P Transport"); + /* We don't currently allow canceling of virtio requests */ static int vt9p_cancel(void *handle, struct p9_req_t *req) @@ -257,13 +259,7 @@ vt9p_alloc_virtqueue(struct vt9p_softc *sc) static int vt9p_probe(device_t dev) { - - /* If the virtio device type is a 9P device, then we claim and attach it */ - if (virtio_get_device_type(dev) != VIRTIO_ID_9P) - return (ENXIO); - device_set_desc(dev, "VirtIO 9P Transport"); - - return (BUS_PROBE_DEFAULT); + return (VIRTIO_SIMPLE_PROBE(dev, virtio_p9fs)); } static void From nobody Mon Feb 9 16:28: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 4f8qrX45Vrz6RgBF for ; Mon, 09 Feb 2026 16:28: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 4f8qrX1fh4z3PjT for ; Mon, 09 Feb 2026 16:28:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770654524; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pmlIUms3DIuO9knFWsY+33DAb7t3XMSfKMmdx53XjKc=; b=FrILwAu2TEK+yIUXaM4AfKlnfJopETGykooMFM0rEXEXyBbUyrLjgdZJdWc+KIPxlYQawQ ogPNOLHxGGMJMo/LYqNzWeQe+K2sTsVy8Lc89BIxWGvXrTcBVzSv1pL6pQOQYYLB41/NuN SCeOdiz8X0xyLgd4Ep4sSLNpq12aJQItXg75KxsFzQ2CMpNsuRpGrHYt1fKek5xV6NPeI5 T+6YGf50VhE9YFooVKHbTEg8BzZHkE2gy/Q9GfaKbC4hCjaNYisdfgKowqMYvjWKtMZ3Va yd/jCQQJuOJANn9aivaanz4jq6eqOV86wka35Xdc88Vc85R+iTmS+wkoXkn+og== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770654524; a=rsa-sha256; cv=none; b=l8l9B+yv3Pw5wugtHm+gvBJsEU3qAho+sJ2x6u0iqHxW7LTJ70Z5sxsodGEuvj5KN94+kE MHiKKsffhAzI1Wzq8vf/m1L4tnqwIFmOp0x3A0MKQLKR8uBO22QvG9j0ES9KCayAV6j6FC 1wV0N9CGLJky0d1v+WkO3sccDpIcoMV/hy78lCLCJiLCDD5wAurQYMEU4jiTqwtSQbT2O9 c0cYg8ZVMZSwAKq8/dQKwL5JH8zssDhi+WWAhm3bPXyJ6Pm4myoWLbsCHkNIH5QYBcnxUs XxGXJCbN0gxeKzEHqhXtSkshRUmb84VzvkL5r9ucz4nW3lsriU2jAd60siCgxQ== 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=1770654524; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pmlIUms3DIuO9knFWsY+33DAb7t3XMSfKMmdx53XjKc=; b=Q1gsia2E8OKVxCWNi8bXoj80JVyrEp2BhiFfbyYpHi1SRrA74SVYoLxlTs8jHZaFoh8sta H8EcDjwn09r/xGPhsgSqAJVc4pzHklKCVRemXVCVQY4xTjou2VU7XjJFfpNh4n8+SnGV3f HqD56S4A5gebX0RBML7cKHnVJ0yIvg+lKQXV4LflWDGxg2Sfsril+ZlTIu2agC3YFVlq/t 2pM9J8VVQZiXSZbhN923pZM3oVs+z8Kbdi6B20Mo9WxrNEYGEdcjZtubRVjCo9KruHJNC3 gi0yZeOZ4+4svbgRprF1n3/9bbnD/ZfnPdXKdgFJlna7uV+ryh4vp1yIRq/OVg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8qrX1Cfwzh02 for ; Mon, 09 Feb 2026 16:28:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1d12c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 16:28:44 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 89776ce6a7b7 - stable/15 - arm64: Add the Fine-Grained Trap registers 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: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 89776ce6a7b700d98e9e102b367f03ab9536c5b5 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 16:28:44 +0000 Message-Id: <698a0b3c.1d12c.76ab442c@gitrepo.freebsd.org> The branch stable/15 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=89776ce6a7b700d98e9e102b367f03ab9536c5b5 commit 89776ce6a7b700d98e9e102b367f03ab9536c5b5 Author: Andrew Turner AuthorDate: 2026-02-03 17:14:03 +0000 Commit: Andrew Turner CommitDate: 2026-02-09 14:52:00 +0000 arm64: Add the Fine-Grained Trap registers Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D54685 (cherry picked from commit 4f82ce5191d550b875f7f760c83e05167728fe69) --- sys/arm64/include/hypervisor.h | 1744 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1744 insertions(+) diff --git a/sys/arm64/include/hypervisor.h b/sys/arm64/include/hypervisor.h index f3d7027269c9..3ee5c12f2265 100644 --- a/sys/arm64/include/hypervisor.h +++ b/sys/arm64/include/hypervisor.h @@ -134,6 +134,15 @@ /* Unconditionally valid */ #define CPTR_TCPAC 0x80000000 +/* HAFGRTR_EL2 */ +#define HAFGRTR_EL2_REG MRS_REG_ALT_NAME(HAFGRTR_EL2) +#define HAFGRTR_EL2_op0 3 +#define HAFGRTR_EL2_op1 4 +#define HAFGRTR_EL2_CRn 3 +#define HAFGRTR_EL2_CRm 1 +#define HAFGRTR_EL2_op2 6 +#define HAFGRTR_EL2_TRAP_ALL UL(0x0003fffffffe001f) + /* HCR_EL2 - Hypervisor Config Register */ #define HCR_VM (UL(0x1) << 0) #define HCR_SWIO (UL(0x1) << 1) @@ -234,6 +243,1741 @@ /* Bit 25 is reserved */ #define HCRX_SRMASKEn (UL(0x1) << 26) +/* HDFGRTR2_EL2 */ +#define HDFGRTR2_EL2_REG MRS_REG_ALT_NAME(HDFGRTR2_EL2) +#define HDFGRTR2_EL2_op0 3 +#define HDFGRTR2_EL2_op1 4 +#define HDFGRTR2_EL2_CRn 3 +#define HDFGRTR2_EL2_CRm 1 +#define HDFGRTR2_EL2_op2 0 +#define HDFGRTR2_EL2_nMDSTEPOP_EL1_SHIFT 23 +#define HDFGRTR2_EL2_nMDSTEPOP_EL1_MASK (UL(0x1) << HDFGRTR2_EL2_nMDSTEPOP_EL1_SHIFT) +#define HDFGRTR2_EL2_nMDSTEPOP_EL1_VAL(x) ((x) & HDFGRTR2_EL2_nMDSTEPOP_EL1_MASK) +#define HDFGRTR2_EL2_nMDSTEPOP_EL1_TRAP (UL(0x0) << HDFGRTR2_EL2_nMDSTEPOP_EL1_SHIFT) +#define HDFGRTR2_EL2_nMDSTEPOP_EL1_NOTRAP (UL(0x1) << HDFGRTR2_EL2_nMDSTEPOP_EL1_SHIFT) +#define HDFGRTR2_EL2_nTRBMPAM_EL1_SHIFT 22 +#define HDFGRTR2_EL2_nTRBMPAM_EL1_MASK (UL(0x1) << HDFGRTR2_EL2_nTRBMPAM_EL1_SHIFT) +#define HDFGRTR2_EL2_nTRBMPAM_EL1_VAL(x) ((x) & HDFGRTR2_EL2_nTRBMPAM_EL1_MASK) +#define HDFGRTR2_EL2_nTRBMPAM_EL1_TRAP (UL(0x0) << HDFGRTR2_EL2_nTRBMPAM_EL1_SHIFT) +#define HDFGRTR2_EL2_nTRBMPAM_EL1_NOTRAP (UL(0x1) << HDFGRTR2_EL2_nTRBMPAM_EL1_SHIFT) +#define HDFGRTR2_EL2_nTRCITECR_EL1_SHIFT 20 +#define HDFGRTR2_EL2_nTRCITECR_EL1_MASK (UL(0x1) << HDFGRTR2_EL2_nTRCITECR_EL1_SHIFT) +#define HDFGRTR2_EL2_nTRCITECR_EL1_VAL(x) ((x) & HDFGRTR2_EL2_nTRCITECR_EL1_MASK) +#define HDFGRTR2_EL2_nTRCITECR_EL1_TRAP (UL(0x0) << HDFGRTR2_EL2_nTRCITECR_EL1_SHIFT) +#define HDFGRTR2_EL2_nTRCITECR_EL1_NOTRAP (UL(0x1) << HDFGRTR2_EL2_nTRCITECR_EL1_SHIFT) +#define HDFGRTR2_EL2_nPMSDSFR_EL1_SHIFT 19 +#define HDFGRTR2_EL2_nPMSDSFR_EL1_MASK (UL(0x1) << HDFGRTR2_EL2_nPMSDSFR_EL1_SHIFT) +#define HDFGRTR2_EL2_nPMSDSFR_EL1_VAL(x) ((x) & HDFGRTR2_EL2_nPMSDSFR_EL1_MASK) +#define HDFGRTR2_EL2_nPMSDSFR_EL1_TRAP (UL(0x0) << HDFGRTR2_EL2_nPMSDSFR_EL1_SHIFT) +#define HDFGRTR2_EL2_nPMSDSFR_EL1_NOTRAP (UL(0x1) << HDFGRTR2_EL2_nPMSDSFR_EL1_SHIFT) +#define HDFGRTR2_EL2_nSPMDEVAFF_EL1_SHIFT 18 +#define HDFGRTR2_EL2_nSPMDEVAFF_EL1_MASK (UL(0x1) << HDFGRTR2_EL2_nSPMDEVAFF_EL1_SHIFT) +#define HDFGRTR2_EL2_nSPMDEVAFF_EL1_VAL(x) ((x) & HDFGRTR2_EL2_nSPMDEVAFF_EL1_MASK) +#define HDFGRTR2_EL2_nSPMDEVAFF_EL1_TRAP (UL(0x0) << HDFGRTR2_EL2_nSPMDEVAFF_EL1_SHIFT) +#define HDFGRTR2_EL2_nSPMDEVAFF_EL1_NOTRAP (UL(0x1) << HDFGRTR2_EL2_nSPMDEVAFF_EL1_SHIFT) +#define HDFGRTR2_EL2_nSPMID_SHIFT 17 +#define HDFGRTR2_EL2_nSPMID_MASK (UL(0x1) << HDFGRTR2_EL2_nSPMID_SHIFT) +#define HDFGRTR2_EL2_nSPMID_VAL(x) ((x) & HDFGRTR2_EL2_nSPMID_MASK) +#define HDFGRTR2_EL2_nSPMID_TRAP (UL(0x0) << HDFGRTR2_EL2_nSPMID_SHIFT) +#define HDFGRTR2_EL2_nSPMID_NOTRAP (UL(0x1) << HDFGRTR2_EL2_nSPMID_SHIFT) +#define HDFGRTR2_EL2_nSPMSCR_EL1_SHIFT 16 +#define HDFGRTR2_EL2_nSPMSCR_EL1_MASK (UL(0x1) << HDFGRTR2_EL2_nSPMSCR_EL1_SHIFT) +#define HDFGRTR2_EL2_nSPMSCR_EL1_VAL(x) ((x) & HDFGRTR2_EL2_nSPMSCR_EL1_MASK) +#define HDFGRTR2_EL2_nSPMSCR_EL1_TRAP (UL(0x0) << HDFGRTR2_EL2_nSPMSCR_EL1_SHIFT) +#define HDFGRTR2_EL2_nSPMSCR_EL1_NOTRAP (UL(0x1) << HDFGRTR2_EL2_nSPMSCR_EL1_SHIFT) +#define HDFGRTR2_EL2_nSPMACCESSR_EL1_SHIFT 15 +#define HDFGRTR2_EL2_nSPMACCESSR_EL1_MASK (UL(0x1) << HDFGRTR2_EL2_nSPMACCESSR_EL1_SHIFT) +#define HDFGRTR2_EL2_nSPMACCESSR_EL1_VAL(x) ((x) & HDFGRTR2_EL2_nSPMACCESSR_EL1_MASK) +#define HDFGRTR2_EL2_nSPMACCESSR_EL1_TRAP (UL(0x0) << HDFGRTR2_EL2_nSPMACCESSR_EL1_SHIFT) +#define HDFGRTR2_EL2_nSPMACCESSR_EL1_NOTRAP (UL(0x1) << HDFGRTR2_EL2_nSPMACCESSR_EL1_SHIFT) +#define HDFGRTR2_EL2_nSPMCR_EL0_SHIFT 14 +#define HDFGRTR2_EL2_nSPMCR_EL0_MASK (UL(0x1) << HDFGRTR2_EL2_nSPMCR_EL0_SHIFT) +#define HDFGRTR2_EL2_nSPMCR_EL0_VAL(x) ((x) & HDFGRTR2_EL2_nSPMCR_EL0_MASK) +#define HDFGRTR2_EL2_nSPMCR_EL0_TRAP (UL(0x0) << HDFGRTR2_EL2_nSPMCR_EL0_SHIFT) +#define HDFGRTR2_EL2_nSPMCR_EL0_NOTRAP (UL(0x1) << HDFGRTR2_EL2_nSPMCR_EL0_SHIFT) +#define HDFGRTR2_EL2_nSPMOVS_SHIFT 13 +#define HDFGRTR2_EL2_nSPMOVS_MASK (UL(0x1) << HDFGRTR2_EL2_nSPMOVS_SHIFT) +#define HDFGRTR2_EL2_nSPMOVS_VAL(x) ((x) & HDFGRTR2_EL2_nSPMOVS_MASK) +#define HDFGRTR2_EL2_nSPMOVS_TRAP (UL(0x0) << HDFGRTR2_EL2_nSPMOVS_SHIFT) +#define HDFGRTR2_EL2_nSPMOVS_NOTRAP (UL(0x1) << HDFGRTR2_EL2_nSPMOVS_SHIFT) +#define HDFGRTR2_EL2_nSPMINTEN_SHIFT 12 +#define HDFGRTR2_EL2_nSPMINTEN_MASK (UL(0x1) << HDFGRTR2_EL2_nSPMINTEN_SHIFT) +#define HDFGRTR2_EL2_nSPMINTEN_VAL(x) ((x) & HDFGRTR2_EL2_nSPMINTEN_MASK) +#define HDFGRTR2_EL2_nSPMINTEN_TRAP (UL(0x0) << HDFGRTR2_EL2_nSPMINTEN_SHIFT) +#define HDFGRTR2_EL2_nSPMINTEN_NOTRAP (UL(0x1) << HDFGRTR2_EL2_nSPMINTEN_SHIFT) +#define HDFGRTR2_EL2_nSPMCNTEN_SHIFT 11 +#define HDFGRTR2_EL2_nSPMCNTEN_MASK (UL(0x1) << HDFGRTR2_EL2_nSPMCNTEN_SHIFT) +#define HDFGRTR2_EL2_nSPMCNTEN_VAL(x) ((x) & HDFGRTR2_EL2_nSPMCNTEN_MASK) +#define HDFGRTR2_EL2_nSPMCNTEN_TRAP (UL(0x0) << HDFGRTR2_EL2_nSPMCNTEN_SHIFT) +#define HDFGRTR2_EL2_nSPMCNTEN_NOTRAP (UL(0x1) << HDFGRTR2_EL2_nSPMCNTEN_SHIFT) +#define HDFGRTR2_EL2_nSPMSELR_EL0_SHIFT 10 +#define HDFGRTR2_EL2_nSPMSELR_EL0_MASK (UL(0x1) << HDFGRTR2_EL2_nSPMSELR_EL0_SHIFT) +#define HDFGRTR2_EL2_nSPMSELR_EL0_VAL(x) ((x) & HDFGRTR2_EL2_nSPMSELR_EL0_MASK) +#define HDFGRTR2_EL2_nSPMSELR_EL0_TRAP (UL(0x0) << HDFGRTR2_EL2_nSPMSELR_EL0_SHIFT) +#define HDFGRTR2_EL2_nSPMSELR_EL0_NOTRAP (UL(0x1) << HDFGRTR2_EL2_nSPMSELR_EL0_SHIFT) +#define HDFGRTR2_EL2_nSPMEVTYPERn_EL0_SHIFT 9 +#define HDFGRTR2_EL2_nSPMEVTYPERn_EL0_MASK (UL(0x1) << HDFGRTR2_EL2_nSPMEVTYPERn_EL0_SHIFT) +#define HDFGRTR2_EL2_nSPMEVTYPERn_EL0_VAL(x) ((x) & HDFGRTR2_EL2_nSPMEVTYPERn_EL0_MASK) +#define HDFGRTR2_EL2_nSPMEVTYPERn_EL0_TRAP (UL(0x0) << HDFGRTR2_EL2_nSPMEVTYPERn_EL0_SHIFT) +#define HDFGRTR2_EL2_nSPMEVTYPERn_EL0_NOTRAP (UL(0x1) << HDFGRTR2_EL2_nSPMEVTYPERn_EL0_SHIFT) +#define HDFGRTR2_EL2_nSPMEVCNTRn_EL0_SHIFT 8 +#define HDFGRTR2_EL2_nSPMEVCNTRn_EL0_MASK (UL(0x1) << HDFGRTR2_EL2_nSPMEVCNTRn_EL0_SHIFT) +#define HDFGRTR2_EL2_nSPMEVCNTRn_EL0_VAL(x) ((x) & HDFGRTR2_EL2_nSPMEVCNTRn_EL0_MASK) +#define HDFGRTR2_EL2_nSPMEVCNTRn_EL0_TRAP (UL(0x0) << HDFGRTR2_EL2_nSPMEVCNTRn_EL0_SHIFT) +#define HDFGRTR2_EL2_nSPMEVCNTRn_EL0_NOTRAP (UL(0x1) << HDFGRTR2_EL2_nSPMEVCNTRn_EL0_SHIFT) +#define HDFGRTR2_EL2_nPMSSCR_EL1_SHIFT 7 +#define HDFGRTR2_EL2_nPMSSCR_EL1_MASK (UL(0x1) << HDFGRTR2_EL2_nPMSSCR_EL1_SHIFT) +#define HDFGRTR2_EL2_nPMSSCR_EL1_VAL(x) ((x) & HDFGRTR2_EL2_nPMSSCR_EL1_MASK) +#define HDFGRTR2_EL2_nPMSSCR_EL1_TRAP (UL(0x0) << HDFGRTR2_EL2_nPMSSCR_EL1_SHIFT) +#define HDFGRTR2_EL2_nPMSSCR_EL1_NOTRAP (UL(0x1) << HDFGRTR2_EL2_nPMSSCR_EL1_SHIFT) +#define HDFGRTR2_EL2_nPMSSDATA_SHIFT 6 +#define HDFGRTR2_EL2_nPMSSDATA_MASK (UL(0x1) << HDFGRTR2_EL2_nPMSSDATA_SHIFT) +#define HDFGRTR2_EL2_nPMSSDATA_VAL(x) ((x) & HDFGRTR2_EL2_nPMSSDATA_MASK) +#define HDFGRTR2_EL2_nPMSSDATA_TRAP (UL(0x0) << HDFGRTR2_EL2_nPMSSDATA_SHIFT) +#define HDFGRTR2_EL2_nPMSSDATA_NOTRAP (UL(0x1) << HDFGRTR2_EL2_nPMSSDATA_SHIFT) +#define HDFGRTR2_EL2_nMDSELR_EL1_SHIFT 5 +#define HDFGRTR2_EL2_nMDSELR_EL1_MASK (UL(0x1) << HDFGRTR2_EL2_nMDSELR_EL1_SHIFT) +#define HDFGRTR2_EL2_nMDSELR_EL1_VAL(x) ((x) & HDFGRTR2_EL2_nMDSELR_EL1_MASK) +#define HDFGRTR2_EL2_nMDSELR_EL1_TRAP (UL(0x0) << HDFGRTR2_EL2_nMDSELR_EL1_SHIFT) +#define HDFGRTR2_EL2_nMDSELR_EL1_NOTRAP (UL(0x1) << HDFGRTR2_EL2_nMDSELR_EL1_SHIFT) +#define HDFGRTR2_EL2_nPMUACR_EL1_SHIFT 4 +#define HDFGRTR2_EL2_nPMUACR_EL1_MASK (UL(0x1) << HDFGRTR2_EL2_nPMUACR_EL1_SHIFT) +#define HDFGRTR2_EL2_nPMUACR_EL1_VAL(x) ((x) & HDFGRTR2_EL2_nPMUACR_EL1_MASK) +#define HDFGRTR2_EL2_nPMUACR_EL1_TRAP (UL(0x0) << HDFGRTR2_EL2_nPMUACR_EL1_SHIFT) +#define HDFGRTR2_EL2_nPMUACR_EL1_NOTRAP (UL(0x1) << HDFGRTR2_EL2_nPMUACR_EL1_SHIFT) +#define HDFGRTR2_EL2_nPMICFILTR_EL0_SHIFT 3 +#define HDFGRTR2_EL2_nPMICFILTR_EL0_MASK (UL(0x1) << HDFGRTR2_EL2_nPMICFILTR_EL0_SHIFT) +#define HDFGRTR2_EL2_nPMICFILTR_EL0_VAL(x) ((x) & HDFGRTR2_EL2_nPMICFILTR_EL0_MASK) +#define HDFGRTR2_EL2_nPMICFILTR_EL0_TRAP (UL(0x0) << HDFGRTR2_EL2_nPMICFILTR_EL0_SHIFT) +#define HDFGRTR2_EL2_nPMICFILTR_EL0_NOTRAP (UL(0x1) << HDFGRTR2_EL2_nPMICFILTR_EL0_SHIFT) +#define HDFGRTR2_EL2_nPMICNTR_EL0_SHIFT 2 +#define HDFGRTR2_EL2_nPMICNTR_EL0_MASK (UL(0x1) << HDFGRTR2_EL2_nPMICNTR_EL0_SHIFT) +#define HDFGRTR2_EL2_nPMICNTR_EL0_VAL(x) ((x) & HDFGRTR2_EL2_nPMICNTR_EL0_MASK) +#define HDFGRTR2_EL2_nPMICNTR_EL0_TRAP (UL(0x0) << HDFGRTR2_EL2_nPMICNTR_EL0_SHIFT) +#define HDFGRTR2_EL2_nPMICNTR_EL0_NOTRAP (UL(0x1) << HDFGRTR2_EL2_nPMICNTR_EL0_SHIFT) +#define HDFGRTR2_EL2_nPMIAR_EL1_SHIFT 1 +#define HDFGRTR2_EL2_nPMIAR_EL1_MASK (UL(0x1) << HDFGRTR2_EL2_nPMIAR_EL1_SHIFT) +#define HDFGRTR2_EL2_nPMIAR_EL1_VAL(x) ((x) & HDFGRTR2_EL2_nPMIAR_EL1_MASK) +#define HDFGRTR2_EL2_nPMIAR_EL1_TRAP (UL(0x0) << HDFGRTR2_EL2_nPMIAR_EL1_SHIFT) +#define HDFGRTR2_EL2_nPMIAR_EL1_NOTRAP (UL(0x1) << HDFGRTR2_EL2_nPMIAR_EL1_SHIFT) +#define HDFGRTR2_EL2_nPMECR_EL1_SHIFT 0 +#define HDFGRTR2_EL2_nPMECR_EL1_MASK (UL(0x1) << HDFGRTR2_EL2_nPMECR_EL1_SHIFT) +#define HDFGRTR2_EL2_nPMECR_EL1_VAL(x) ((x) & HDFGRTR2_EL2_nPMECR_EL1_MASK) +#define HDFGRTR2_EL2_nPMECR_EL1_TRAP (UL(0x0) << HDFGRTR2_EL2_nPMECR_EL1_SHIFT) +#define HDFGRTR2_EL2_nPMECR_EL1_NOTRAP (UL(0x1) << HDFGRTR2_EL2_nPMECR_EL1_SHIFT) + +/* HDFGRTR_EL2 */ +#define HDFGRTR_EL2_REG MRS_REG_ALT_NAME(HDFGRTR_EL2) +#define HDFGRTR_EL2_op0 3 +#define HDFGRTR_EL2_op1 4 +#define HDFGRTR_EL2_CRn 3 +#define HDFGRTR_EL2_CRm 1 +#define HDFGRTR_EL2_op2 4 +#define HDFGRTR_EL2_PMBIDR_EL1_SHIFT 63 +#define HDFGRTR_EL2_PMBIDR_EL1_MASK (UL(0x1) << HDFGRTR_EL2_PMBIDR_EL1_SHIFT) +#define HDFGRTR_EL2_PMBIDR_EL1_VAL(x) ((x) & HDFGRTR_EL2_PMBIDR_EL1_MASK) +#define HDFGRTR_EL2_PMBIDR_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_PMBIDR_EL1_SHIFT) +#define HDFGRTR_EL2_PMBIDR_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_PMBIDR_EL1_SHIFT) +#define HDFGRTR_EL2_nPMSNEVFR_EL1_SHIFT 62 +#define HDFGRTR_EL2_nPMSNEVFR_EL1_MASK (UL(0x1) << HDFGRTR_EL2_nPMSNEVFR_EL1_SHIFT) +#define HDFGRTR_EL2_nPMSNEVFR_EL1_VAL(x) ((x) & HDFGRTR_EL2_nPMSNEVFR_EL1_MASK) +#define HDFGRTR_EL2_nPMSNEVFR_EL1_TRAP (UL(0x0) << HDFGRTR_EL2_nPMSNEVFR_EL1_SHIFT) +#define HDFGRTR_EL2_nPMSNEVFR_EL1_NOTRAP (UL(0x1) << HDFGRTR_EL2_nPMSNEVFR_EL1_SHIFT) +#define HDFGRTR_EL2_nBRBDATA_SHIFT 61 +#define HDFGRTR_EL2_nBRBDATA_MASK (UL(0x1) << HDFGRTR_EL2_nBRBDATA_SHIFT) +#define HDFGRTR_EL2_nBRBDATA_VAL(x) ((x) & HDFGRTR_EL2_nBRBDATA_MASK) +#define HDFGRTR_EL2_nBRBDATA_TRAP (UL(0x0) << HDFGRTR_EL2_nBRBDATA_SHIFT) +#define HDFGRTR_EL2_nBRBDATA_NOTRAP (UL(0x1) << HDFGRTR_EL2_nBRBDATA_SHIFT) +#define HDFGRTR_EL2_nBRBCTL_SHIFT 60 +#define HDFGRTR_EL2_nBRBCTL_MASK (UL(0x1) << HDFGRTR_EL2_nBRBCTL_SHIFT) +#define HDFGRTR_EL2_nBRBCTL_VAL(x) ((x) & HDFGRTR_EL2_nBRBCTL_MASK) +#define HDFGRTR_EL2_nBRBCTL_TRAP (UL(0x0) << HDFGRTR_EL2_nBRBCTL_SHIFT) +#define HDFGRTR_EL2_nBRBCTL_NOTRAP (UL(0x1) << HDFGRTR_EL2_nBRBCTL_SHIFT) +#define HDFGRTR_EL2_nBRBIDR_SHIFT 59 +#define HDFGRTR_EL2_nBRBIDR_MASK (UL(0x1) << HDFGRTR_EL2_nBRBIDR_SHIFT) +#define HDFGRTR_EL2_nBRBIDR_VAL(x) ((x) & HDFGRTR_EL2_nBRBIDR_MASK) +#define HDFGRTR_EL2_nBRBIDR_TRAP (UL(0x0) << HDFGRTR_EL2_nBRBIDR_SHIFT) +#define HDFGRTR_EL2_nBRBIDR_NOTRAP (UL(0x1) << HDFGRTR_EL2_nBRBIDR_SHIFT) +#define HDFGRTR_EL2_PMCEIDn_EL0_SHIFT 58 +#define HDFGRTR_EL2_PMCEIDn_EL0_MASK (UL(0x1) << HDFGRTR_EL2_PMCEIDn_EL0_SHIFT) +#define HDFGRTR_EL2_PMCEIDn_EL0_VAL(x) ((x) & HDFGRTR_EL2_PMCEIDn_EL0_MASK) +#define HDFGRTR_EL2_PMCEIDn_EL0_NOTRAP (UL(0x0) << HDFGRTR_EL2_PMCEIDn_EL0_SHIFT) +#define HDFGRTR_EL2_PMCEIDn_EL0_TRAP (UL(0x1) << HDFGRTR_EL2_PMCEIDn_EL0_SHIFT) +#define HDFGRTR_EL2_PMUSERENR_EL0_SHIFT 57 +#define HDFGRTR_EL2_PMUSERENR_EL0_MASK (UL(0x1) << HDFGRTR_EL2_PMUSERENR_EL0_SHIFT) +#define HDFGRTR_EL2_PMUSERENR_EL0_VAL(x) ((x) & HDFGRTR_EL2_PMUSERENR_EL0_MASK) +#define HDFGRTR_EL2_PMUSERENR_EL0_NOTRAP (UL(0x0) << HDFGRTR_EL2_PMUSERENR_EL0_SHIFT) +#define HDFGRTR_EL2_PMUSERENR_EL0_TRAP (UL(0x1) << HDFGRTR_EL2_PMUSERENR_EL0_SHIFT) +#define HDFGRTR_EL2_TRBTRG_EL1_SHIFT 56 +#define HDFGRTR_EL2_TRBTRG_EL1_MASK (UL(0x1) << HDFGRTR_EL2_TRBTRG_EL1_SHIFT) +#define HDFGRTR_EL2_TRBTRG_EL1_VAL(x) ((x) & HDFGRTR_EL2_TRBTRG_EL1_MASK) +#define HDFGRTR_EL2_TRBTRG_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_TRBTRG_EL1_SHIFT) +#define HDFGRTR_EL2_TRBTRG_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_TRBTRG_EL1_SHIFT) +#define HDFGRTR_EL2_TRBSR_EL1_SHIFT 55 +#define HDFGRTR_EL2_TRBSR_EL1_MASK (UL(0x1) << HDFGRTR_EL2_TRBSR_EL1_SHIFT) +#define HDFGRTR_EL2_TRBSR_EL1_VAL(x) ((x) & HDFGRTR_EL2_TRBSR_EL1_MASK) +#define HDFGRTR_EL2_TRBSR_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_TRBSR_EL1_SHIFT) +#define HDFGRTR_EL2_TRBSR_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_TRBSR_EL1_SHIFT) +#define HDFGRTR_EL2_TRBPTR_EL1_SHIFT 54 +#define HDFGRTR_EL2_TRBPTR_EL1_MASK (UL(0x1) << HDFGRTR_EL2_TRBPTR_EL1_SHIFT) +#define HDFGRTR_EL2_TRBPTR_EL1_VAL(x) ((x) & HDFGRTR_EL2_TRBPTR_EL1_MASK) +#define HDFGRTR_EL2_TRBPTR_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_TRBPTR_EL1_SHIFT) +#define HDFGRTR_EL2_TRBPTR_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_TRBPTR_EL1_SHIFT) +#define HDFGRTR_EL2_TRBMAR_EL1_SHIFT 53 +#define HDFGRTR_EL2_TRBMAR_EL1_MASK (UL(0x1) << HDFGRTR_EL2_TRBMAR_EL1_SHIFT) +#define HDFGRTR_EL2_TRBMAR_EL1_VAL(x) ((x) & HDFGRTR_EL2_TRBMAR_EL1_MASK) +#define HDFGRTR_EL2_TRBMAR_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_TRBMAR_EL1_SHIFT) +#define HDFGRTR_EL2_TRBMAR_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_TRBMAR_EL1_SHIFT) +#define HDFGRTR_EL2_TRBLIMITR_EL1_SHIFT 52 +#define HDFGRTR_EL2_TRBLIMITR_EL1_MASK (UL(0x1) << HDFGRTR_EL2_TRBLIMITR_EL1_SHIFT) +#define HDFGRTR_EL2_TRBLIMITR_EL1_VAL(x) ((x) & HDFGRTR_EL2_TRBLIMITR_EL1_MASK) +#define HDFGRTR_EL2_TRBLIMITR_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_TRBLIMITR_EL1_SHIFT) +#define HDFGRTR_EL2_TRBLIMITR_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_TRBLIMITR_EL1_SHIFT) +#define HDFGRTR_EL2_TRBIDR_EL1_SHIFT 51 +#define HDFGRTR_EL2_TRBIDR_EL1_MASK (UL(0x1) << HDFGRTR_EL2_TRBIDR_EL1_SHIFT) +#define HDFGRTR_EL2_TRBIDR_EL1_VAL(x) ((x) & HDFGRTR_EL2_TRBIDR_EL1_MASK) +#define HDFGRTR_EL2_TRBIDR_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_TRBIDR_EL1_SHIFT) +#define HDFGRTR_EL2_TRBIDR_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_TRBIDR_EL1_SHIFT) +#define HDFGRTR_EL2_TRBBASER_EL1_SHIFT 50 +#define HDFGRTR_EL2_TRBBASER_EL1_MASK (UL(0x1) << HDFGRTR_EL2_TRBBASER_EL1_SHIFT) +#define HDFGRTR_EL2_TRBBASER_EL1_VAL(x) ((x) & HDFGRTR_EL2_TRBBASER_EL1_MASK) +#define HDFGRTR_EL2_TRBBASER_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_TRBBASER_EL1_SHIFT) +#define HDFGRTR_EL2_TRBBASER_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_TRBBASER_EL1_SHIFT) +#define HDFGRTR_EL2_TRCVICTLR_SHIFT 48 +#define HDFGRTR_EL2_TRCVICTLR_MASK (UL(0x1) << HDFGRTR_EL2_TRCVICTLR_SHIFT) +#define HDFGRTR_EL2_TRCVICTLR_VAL(x) ((x) & HDFGRTR_EL2_TRCVICTLR_MASK) +#define HDFGRTR_EL2_TRCVICTLR_NOTRAP (UL(0x0) << HDFGRTR_EL2_TRCVICTLR_SHIFT) +#define HDFGRTR_EL2_TRCVICTLR_TRAP (UL(0x1) << HDFGRTR_EL2_TRCVICTLR_SHIFT) +#define HDFGRTR_EL2_TRCSTATR_SHIFT 47 +#define HDFGRTR_EL2_TRCSTATR_MASK (UL(0x1) << HDFGRTR_EL2_TRCSTATR_SHIFT) +#define HDFGRTR_EL2_TRCSTATR_VAL(x) ((x) & HDFGRTR_EL2_TRCSTATR_MASK) +#define HDFGRTR_EL2_TRCSTATR_NOTRAP (UL(0x0) << HDFGRTR_EL2_TRCSTATR_SHIFT) +#define HDFGRTR_EL2_TRCSTATR_TRAP (UL(0x1) << HDFGRTR_EL2_TRCSTATR_SHIFT) +#define HDFGRTR_EL2_TRCSSCSRn_SHIFT 46 +#define HDFGRTR_EL2_TRCSSCSRn_MASK (UL(0x1) << HDFGRTR_EL2_TRCSSCSRn_SHIFT) +#define HDFGRTR_EL2_TRCSSCSRn_VAL(x) ((x) & HDFGRTR_EL2_TRCSSCSRn_MASK) +#define HDFGRTR_EL2_TRCSSCSRn_NOTRAP (UL(0x0) << HDFGRTR_EL2_TRCSSCSRn_SHIFT) +#define HDFGRTR_EL2_TRCSSCSRn_TRAP (UL(0x1) << HDFGRTR_EL2_TRCSSCSRn_SHIFT) +#define HDFGRTR_EL2_TRCSEQSTR_SHIFT 45 +#define HDFGRTR_EL2_TRCSEQSTR_MASK (UL(0x1) << HDFGRTR_EL2_TRCSEQSTR_SHIFT) +#define HDFGRTR_EL2_TRCSEQSTR_VAL(x) ((x) & HDFGRTR_EL2_TRCSEQSTR_MASK) +#define HDFGRTR_EL2_TRCSEQSTR_NOTRAP (UL(0x0) << HDFGRTR_EL2_TRCSEQSTR_SHIFT) +#define HDFGRTR_EL2_TRCSEQSTR_TRAP (UL(0x1) << HDFGRTR_EL2_TRCSEQSTR_SHIFT) +#define HDFGRTR_EL2_TRCPRGCTLR_SHIFT 44 +#define HDFGRTR_EL2_TRCPRGCTLR_MASK (UL(0x1) << HDFGRTR_EL2_TRCPRGCTLR_SHIFT) +#define HDFGRTR_EL2_TRCPRGCTLR_VAL(x) ((x) & HDFGRTR_EL2_TRCPRGCTLR_MASK) +#define HDFGRTR_EL2_TRCPRGCTLR_NOTRAP (UL(0x0) << HDFGRTR_EL2_TRCPRGCTLR_SHIFT) +#define HDFGRTR_EL2_TRCPRGCTLR_TRAP (UL(0x1) << HDFGRTR_EL2_TRCPRGCTLR_SHIFT) +#define HDFGRTR_EL2_TRCOSLSR_SHIFT 43 +#define HDFGRTR_EL2_TRCOSLSR_MASK (UL(0x1) << HDFGRTR_EL2_TRCOSLSR_SHIFT) +#define HDFGRTR_EL2_TRCOSLSR_VAL(x) ((x) & HDFGRTR_EL2_TRCOSLSR_MASK) +#define HDFGRTR_EL2_TRCOSLSR_NOTRAP (UL(0x0) << HDFGRTR_EL2_TRCOSLSR_SHIFT) +#define HDFGRTR_EL2_TRCOSLSR_TRAP (UL(0x1) << HDFGRTR_EL2_TRCOSLSR_SHIFT) +#define HDFGRTR_EL2_TRCIMSPECn_SHIFT 41 +#define HDFGRTR_EL2_TRCIMSPECn_MASK (UL(0x1) << HDFGRTR_EL2_TRCIMSPECn_SHIFT) +#define HDFGRTR_EL2_TRCIMSPECn_VAL(x) ((x) & HDFGRTR_EL2_TRCIMSPECn_MASK) +#define HDFGRTR_EL2_TRCIMSPECn_NOTRAP (UL(0x0) << HDFGRTR_EL2_TRCIMSPECn_SHIFT) +#define HDFGRTR_EL2_TRCIMSPECn_TRAP (UL(0x1) << HDFGRTR_EL2_TRCIMSPECn_SHIFT) +#define HDFGRTR_EL2_TRCID_SHIFT 40 +#define HDFGRTR_EL2_TRCID_MASK (UL(0x1) << HDFGRTR_EL2_TRCID_SHIFT) +#define HDFGRTR_EL2_TRCID_VAL(x) ((x) & HDFGRTR_EL2_TRCID_MASK) +#define HDFGRTR_EL2_TRCID_NOTRAP (UL(0x0) << HDFGRTR_EL2_TRCID_SHIFT) +#define HDFGRTR_EL2_TRCID_TRAP (UL(0x1) << HDFGRTR_EL2_TRCID_SHIFT) +#define HDFGRTR_EL2_TRCCNTVRn_SHIFT 37 +#define HDFGRTR_EL2_TRCCNTVRn_MASK (UL(0x1) << HDFGRTR_EL2_TRCCNTVRn_SHIFT) +#define HDFGRTR_EL2_TRCCNTVRn_VAL(x) ((x) & HDFGRTR_EL2_TRCCNTVRn_MASK) +#define HDFGRTR_EL2_TRCCNTVRn_NOTRAP (UL(0x0) << HDFGRTR_EL2_TRCCNTVRn_SHIFT) +#define HDFGRTR_EL2_TRCCNTVRn_TRAP (UL(0x1) << HDFGRTR_EL2_TRCCNTVRn_SHIFT) +#define HDFGRTR_EL2_TRCCLAIM_SHIFT 36 +#define HDFGRTR_EL2_TRCCLAIM_MASK (UL(0x1) << HDFGRTR_EL2_TRCCLAIM_SHIFT) +#define HDFGRTR_EL2_TRCCLAIM_VAL(x) ((x) & HDFGRTR_EL2_TRCCLAIM_MASK) +#define HDFGRTR_EL2_TRCCLAIM_NOTRAP (UL(0x0) << HDFGRTR_EL2_TRCCLAIM_SHIFT) +#define HDFGRTR_EL2_TRCCLAIM_TRAP (UL(0x1) << HDFGRTR_EL2_TRCCLAIM_SHIFT) +#define HDFGRTR_EL2_TRCAUXCTLR_SHIFT 35 +#define HDFGRTR_EL2_TRCAUXCTLR_MASK (UL(0x1) << HDFGRTR_EL2_TRCAUXCTLR_SHIFT) +#define HDFGRTR_EL2_TRCAUXCTLR_VAL(x) ((x) & HDFGRTR_EL2_TRCAUXCTLR_MASK) +#define HDFGRTR_EL2_TRCAUXCTLR_NOTRAP (UL(0x0) << HDFGRTR_EL2_TRCAUXCTLR_SHIFT) +#define HDFGRTR_EL2_TRCAUXCTLR_TRAP (UL(0x1) << HDFGRTR_EL2_TRCAUXCTLR_SHIFT) +#define HDFGRTR_EL2_TRCAUTHSTATUS_SHIFT 34 +#define HDFGRTR_EL2_TRCAUTHSTATUS_MASK (UL(0x1) << HDFGRTR_EL2_TRCAUTHSTATUS_SHIFT) +#define HDFGRTR_EL2_TRCAUTHSTATUS_VAL(x) ((x) & HDFGRTR_EL2_TRCAUTHSTATUS_MASK) +#define HDFGRTR_EL2_TRCAUTHSTATUS_NOTRAP (UL(0x0) << HDFGRTR_EL2_TRCAUTHSTATUS_SHIFT) +#define HDFGRTR_EL2_TRCAUTHSTATUS_TRAP (UL(0x1) << HDFGRTR_EL2_TRCAUTHSTATUS_SHIFT) +#define HDFGRTR_EL2_TRC_SHIFT 33 +#define HDFGRTR_EL2_TRC_MASK (UL(0x1) << HDFGRTR_EL2_TRC_SHIFT) +#define HDFGRTR_EL2_TRC_VAL(x) ((x) & HDFGRTR_EL2_TRC_MASK) +#define HDFGRTR_EL2_TRC_NOTRAP (UL(0x0) << HDFGRTR_EL2_TRC_SHIFT) +#define HDFGRTR_EL2_TRC_TRAP (UL(0x1) << HDFGRTR_EL2_TRC_SHIFT) +#define HDFGRTR_EL2_PMSLATFR_EL1_SHIFT 32 +#define HDFGRTR_EL2_PMSLATFR_EL1_MASK (UL(0x1) << HDFGRTR_EL2_PMSLATFR_EL1_SHIFT) +#define HDFGRTR_EL2_PMSLATFR_EL1_VAL(x) ((x) & HDFGRTR_EL2_PMSLATFR_EL1_MASK) +#define HDFGRTR_EL2_PMSLATFR_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_PMSLATFR_EL1_SHIFT) +#define HDFGRTR_EL2_PMSLATFR_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_PMSLATFR_EL1_SHIFT) +#define HDFGRTR_EL2_PMSIRR_EL1_SHIFT 31 +#define HDFGRTR_EL2_PMSIRR_EL1_MASK (UL(0x1) << HDFGRTR_EL2_PMSIRR_EL1_SHIFT) +#define HDFGRTR_EL2_PMSIRR_EL1_VAL(x) ((x) & HDFGRTR_EL2_PMSIRR_EL1_MASK) +#define HDFGRTR_EL2_PMSIRR_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_PMSIRR_EL1_SHIFT) +#define HDFGRTR_EL2_PMSIRR_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_PMSIRR_EL1_SHIFT) +#define HDFGRTR_EL2_PMSIDR_EL1_SHIFT 30 +#define HDFGRTR_EL2_PMSIDR_EL1_MASK (UL(0x1) << HDFGRTR_EL2_PMSIDR_EL1_SHIFT) +#define HDFGRTR_EL2_PMSIDR_EL1_VAL(x) ((x) & HDFGRTR_EL2_PMSIDR_EL1_MASK) +#define HDFGRTR_EL2_PMSIDR_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_PMSIDR_EL1_SHIFT) +#define HDFGRTR_EL2_PMSIDR_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_PMSIDR_EL1_SHIFT) +#define HDFGRTR_EL2_PMSICR_EL1_SHIFT 29 +#define HDFGRTR_EL2_PMSICR_EL1_MASK (UL(0x1) << HDFGRTR_EL2_PMSICR_EL1_SHIFT) +#define HDFGRTR_EL2_PMSICR_EL1_VAL(x) ((x) & HDFGRTR_EL2_PMSICR_EL1_MASK) +#define HDFGRTR_EL2_PMSICR_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_PMSICR_EL1_SHIFT) +#define HDFGRTR_EL2_PMSICR_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_PMSICR_EL1_SHIFT) +#define HDFGRTR_EL2_PMSFCR_EL1_SHIFT 28 +#define HDFGRTR_EL2_PMSFCR_EL1_MASK (UL(0x1) << HDFGRTR_EL2_PMSFCR_EL1_SHIFT) +#define HDFGRTR_EL2_PMSFCR_EL1_VAL(x) ((x) & HDFGRTR_EL2_PMSFCR_EL1_MASK) +#define HDFGRTR_EL2_PMSFCR_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_PMSFCR_EL1_SHIFT) +#define HDFGRTR_EL2_PMSFCR_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_PMSFCR_EL1_SHIFT) +#define HDFGRTR_EL2_PMSEVFR_EL1_SHIFT 27 +#define HDFGRTR_EL2_PMSEVFR_EL1_MASK (UL(0x1) << HDFGRTR_EL2_PMSEVFR_EL1_SHIFT) +#define HDFGRTR_EL2_PMSEVFR_EL1_VAL(x) ((x) & HDFGRTR_EL2_PMSEVFR_EL1_MASK) +#define HDFGRTR_EL2_PMSEVFR_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_PMSEVFR_EL1_SHIFT) +#define HDFGRTR_EL2_PMSEVFR_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_PMSEVFR_EL1_SHIFT) +#define HDFGRTR_EL2_PMSCR_EL1_SHIFT 26 +#define HDFGRTR_EL2_PMSCR_EL1_MASK (UL(0x1) << HDFGRTR_EL2_PMSCR_EL1_SHIFT) +#define HDFGRTR_EL2_PMSCR_EL1_VAL(x) ((x) & HDFGRTR_EL2_PMSCR_EL1_MASK) +#define HDFGRTR_EL2_PMSCR_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_PMSCR_EL1_SHIFT) +#define HDFGRTR_EL2_PMSCR_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_PMSCR_EL1_SHIFT) +#define HDFGRTR_EL2_PMBSR_EL1_SHIFT 25 +#define HDFGRTR_EL2_PMBSR_EL1_MASK (UL(0x1) << HDFGRTR_EL2_PMBSR_EL1_SHIFT) +#define HDFGRTR_EL2_PMBSR_EL1_VAL(x) ((x) & HDFGRTR_EL2_PMBSR_EL1_MASK) +#define HDFGRTR_EL2_PMBSR_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_PMBSR_EL1_SHIFT) +#define HDFGRTR_EL2_PMBSR_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_PMBSR_EL1_SHIFT) +#define HDFGRTR_EL2_PMBPTR_EL1_SHIFT 24 +#define HDFGRTR_EL2_PMBPTR_EL1_MASK (UL(0x1) << HDFGRTR_EL2_PMBPTR_EL1_SHIFT) +#define HDFGRTR_EL2_PMBPTR_EL1_VAL(x) ((x) & HDFGRTR_EL2_PMBPTR_EL1_MASK) +#define HDFGRTR_EL2_PMBPTR_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_PMBPTR_EL1_SHIFT) +#define HDFGRTR_EL2_PMBPTR_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_PMBPTR_EL1_SHIFT) +#define HDFGRTR_EL2_PMBLIMITR_EL1_SHIFT 23 +#define HDFGRTR_EL2_PMBLIMITR_EL1_MASK (UL(0x1) << HDFGRTR_EL2_PMBLIMITR_EL1_SHIFT) +#define HDFGRTR_EL2_PMBLIMITR_EL1_VAL(x) ((x) & HDFGRTR_EL2_PMBLIMITR_EL1_MASK) +#define HDFGRTR_EL2_PMBLIMITR_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_PMBLIMITR_EL1_SHIFT) +#define HDFGRTR_EL2_PMBLIMITR_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_PMBLIMITR_EL1_SHIFT) +#define HDFGRTR_EL2_PMMIR_EL1_SHIFT 22 +#define HDFGRTR_EL2_PMMIR_EL1_MASK (UL(0x1) << HDFGRTR_EL2_PMMIR_EL1_SHIFT) +#define HDFGRTR_EL2_PMMIR_EL1_VAL(x) ((x) & HDFGRTR_EL2_PMMIR_EL1_MASK) +#define HDFGRTR_EL2_PMMIR_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_PMMIR_EL1_SHIFT) +#define HDFGRTR_EL2_PMMIR_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_PMMIR_EL1_SHIFT) +#define HDFGRTR_EL2_PMSELR_EL0_SHIFT 19 +#define HDFGRTR_EL2_PMSELR_EL0_MASK (UL(0x1) << HDFGRTR_EL2_PMSELR_EL0_SHIFT) +#define HDFGRTR_EL2_PMSELR_EL0_VAL(x) ((x) & HDFGRTR_EL2_PMSELR_EL0_MASK) +#define HDFGRTR_EL2_PMSELR_EL0_NOTRAP (UL(0x0) << HDFGRTR_EL2_PMSELR_EL0_SHIFT) +#define HDFGRTR_EL2_PMSELR_EL0_TRAP (UL(0x1) << HDFGRTR_EL2_PMSELR_EL0_SHIFT) +#define HDFGRTR_EL2_PMOVS_SHIFT 18 +#define HDFGRTR_EL2_PMOVS_MASK (UL(0x1) << HDFGRTR_EL2_PMOVS_SHIFT) +#define HDFGRTR_EL2_PMOVS_VAL(x) ((x) & HDFGRTR_EL2_PMOVS_MASK) +#define HDFGRTR_EL2_PMOVS_NOTRAP (UL(0x0) << HDFGRTR_EL2_PMOVS_SHIFT) +#define HDFGRTR_EL2_PMOVS_TRAP (UL(0x1) << HDFGRTR_EL2_PMOVS_SHIFT) +#define HDFGRTR_EL2_PMINTEN_SHIFT 17 +#define HDFGRTR_EL2_PMINTEN_MASK (UL(0x1) << HDFGRTR_EL2_PMINTEN_SHIFT) +#define HDFGRTR_EL2_PMINTEN_VAL(x) ((x) & HDFGRTR_EL2_PMINTEN_MASK) +#define HDFGRTR_EL2_PMINTEN_NOTRAP (UL(0x0) << HDFGRTR_EL2_PMINTEN_SHIFT) +#define HDFGRTR_EL2_PMINTEN_TRAP (UL(0x1) << HDFGRTR_EL2_PMINTEN_SHIFT) +#define HDFGRTR_EL2_PMCNTEN_SHIFT 16 +#define HDFGRTR_EL2_PMCNTEN_MASK (UL(0x1) << HDFGRTR_EL2_PMCNTEN_SHIFT) +#define HDFGRTR_EL2_PMCNTEN_VAL(x) ((x) & HDFGRTR_EL2_PMCNTEN_MASK) +#define HDFGRTR_EL2_PMCNTEN_NOTRAP (UL(0x0) << HDFGRTR_EL2_PMCNTEN_SHIFT) +#define HDFGRTR_EL2_PMCNTEN_TRAP (UL(0x1) << HDFGRTR_EL2_PMCNTEN_SHIFT) +#define HDFGRTR_EL2_PMCCNTR_EL0_SHIFT 15 +#define HDFGRTR_EL2_PMCCNTR_EL0_MASK (UL(0x1) << HDFGRTR_EL2_PMCCNTR_EL0_SHIFT) +#define HDFGRTR_EL2_PMCCNTR_EL0_VAL(x) ((x) & HDFGRTR_EL2_PMCCNTR_EL0_MASK) +#define HDFGRTR_EL2_PMCCNTR_EL0_NOTRAP (UL(0x0) << HDFGRTR_EL2_PMCCNTR_EL0_SHIFT) +#define HDFGRTR_EL2_PMCCNTR_EL0_TRAP (UL(0x1) << HDFGRTR_EL2_PMCCNTR_EL0_SHIFT) +#define HDFGRTR_EL2_PMCCFILTR_EL0_SHIFT 14 +#define HDFGRTR_EL2_PMCCFILTR_EL0_MASK (UL(0x1) << HDFGRTR_EL2_PMCCFILTR_EL0_SHIFT) +#define HDFGRTR_EL2_PMCCFILTR_EL0_VAL(x) ((x) & HDFGRTR_EL2_PMCCFILTR_EL0_MASK) +#define HDFGRTR_EL2_PMCCFILTR_EL0_NOTRAP (UL(0x0) << HDFGRTR_EL2_PMCCFILTR_EL0_SHIFT) +#define HDFGRTR_EL2_PMCCFILTR_EL0_TRAP (UL(0x1) << HDFGRTR_EL2_PMCCFILTR_EL0_SHIFT) +#define HDFGRTR_EL2_PMEVTYPERn_EL0_SHIFT 13 +#define HDFGRTR_EL2_PMEVTYPERn_EL0_MASK (UL(0x1) << HDFGRTR_EL2_PMEVTYPERn_EL0_SHIFT) +#define HDFGRTR_EL2_PMEVTYPERn_EL0_VAL(x) ((x) & HDFGRTR_EL2_PMEVTYPERn_EL0_MASK) +#define HDFGRTR_EL2_PMEVTYPERn_EL0_NOTRAP (UL(0x0) << HDFGRTR_EL2_PMEVTYPERn_EL0_SHIFT) +#define HDFGRTR_EL2_PMEVTYPERn_EL0_TRAP (UL(0x1) << HDFGRTR_EL2_PMEVTYPERn_EL0_SHIFT) +#define HDFGRTR_EL2_PMEVCNTRn_EL0_SHIFT 12 +#define HDFGRTR_EL2_PMEVCNTRn_EL0_MASK (UL(0x1) << HDFGRTR_EL2_PMEVCNTRn_EL0_SHIFT) +#define HDFGRTR_EL2_PMEVCNTRn_EL0_VAL(x) ((x) & HDFGRTR_EL2_PMEVCNTRn_EL0_MASK) +#define HDFGRTR_EL2_PMEVCNTRn_EL0_NOTRAP (UL(0x0) << HDFGRTR_EL2_PMEVCNTRn_EL0_SHIFT) +#define HDFGRTR_EL2_PMEVCNTRn_EL0_TRAP (UL(0x1) << HDFGRTR_EL2_PMEVCNTRn_EL0_SHIFT) +#define HDFGRTR_EL2_OSDLR_EL1_SHIFT 11 +#define HDFGRTR_EL2_OSDLR_EL1_MASK (UL(0x1) << HDFGRTR_EL2_OSDLR_EL1_SHIFT) +#define HDFGRTR_EL2_OSDLR_EL1_VAL(x) ((x) & HDFGRTR_EL2_OSDLR_EL1_MASK) +#define HDFGRTR_EL2_OSDLR_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_OSDLR_EL1_SHIFT) +#define HDFGRTR_EL2_OSDLR_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_OSDLR_EL1_SHIFT) +#define HDFGRTR_EL2_OSECCR_EL1_SHIFT 10 +#define HDFGRTR_EL2_OSECCR_EL1_MASK (UL(0x1) << HDFGRTR_EL2_OSECCR_EL1_SHIFT) +#define HDFGRTR_EL2_OSECCR_EL1_VAL(x) ((x) & HDFGRTR_EL2_OSECCR_EL1_MASK) +#define HDFGRTR_EL2_OSECCR_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_OSECCR_EL1_SHIFT) +#define HDFGRTR_EL2_OSECCR_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_OSECCR_EL1_SHIFT) +#define HDFGRTR_EL2_OSLSR_EL1_SHIFT 9 +#define HDFGRTR_EL2_OSLSR_EL1_MASK (UL(0x1) << HDFGRTR_EL2_OSLSR_EL1_SHIFT) +#define HDFGRTR_EL2_OSLSR_EL1_VAL(x) ((x) & HDFGRTR_EL2_OSLSR_EL1_MASK) +#define HDFGRTR_EL2_OSLSR_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_OSLSR_EL1_SHIFT) +#define HDFGRTR_EL2_OSLSR_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_OSLSR_EL1_SHIFT) +#define HDFGRTR_EL2_DBGPRCR_EL1_SHIFT 7 +#define HDFGRTR_EL2_DBGPRCR_EL1_MASK (UL(0x1) << HDFGRTR_EL2_DBGPRCR_EL1_SHIFT) +#define HDFGRTR_EL2_DBGPRCR_EL1_VAL(x) ((x) & HDFGRTR_EL2_DBGPRCR_EL1_MASK) +#define HDFGRTR_EL2_DBGPRCR_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_DBGPRCR_EL1_SHIFT) +#define HDFGRTR_EL2_DBGPRCR_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_DBGPRCR_EL1_SHIFT) +#define HDFGRTR_EL2_DBGAUTHSTATUS_EL1_SHIFT 6 +#define HDFGRTR_EL2_DBGAUTHSTATUS_EL1_MASK (UL(0x1) << HDFGRTR_EL2_DBGAUTHSTATUS_EL1_SHIFT) +#define HDFGRTR_EL2_DBGAUTHSTATUS_EL1_VAL(x) ((x) & HDFGRTR_EL2_DBGAUTHSTATUS_EL1_MASK) +#define HDFGRTR_EL2_DBGAUTHSTATUS_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_DBGAUTHSTATUS_EL1_SHIFT) +#define HDFGRTR_EL2_DBGAUTHSTATUS_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_DBGAUTHSTATUS_EL1_SHIFT) +#define HDFGRTR_EL2_DBGCLAIM_SHIFT 5 +#define HDFGRTR_EL2_DBGCLAIM_MASK (UL(0x1) << HDFGRTR_EL2_DBGCLAIM_SHIFT) +#define HDFGRTR_EL2_DBGCLAIM_VAL(x) ((x) & HDFGRTR_EL2_DBGCLAIM_MASK) +#define HDFGRTR_EL2_DBGCLAIM_NOTRAP (UL(0x0) << HDFGRTR_EL2_DBGCLAIM_SHIFT) +#define HDFGRTR_EL2_DBGCLAIM_TRAP (UL(0x1) << HDFGRTR_EL2_DBGCLAIM_SHIFT) +#define HDFGRTR_EL2_MDSCR_EL1_SHIFT 4 +#define HDFGRTR_EL2_MDSCR_EL1_MASK (UL(0x1) << HDFGRTR_EL2_MDSCR_EL1_SHIFT) +#define HDFGRTR_EL2_MDSCR_EL1_VAL(x) ((x) & HDFGRTR_EL2_MDSCR_EL1_MASK) +#define HDFGRTR_EL2_MDSCR_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_MDSCR_EL1_SHIFT) +#define HDFGRTR_EL2_MDSCR_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_MDSCR_EL1_SHIFT) +#define HDFGRTR_EL2_DBGWVRn_EL1_SHIFT 3 +#define HDFGRTR_EL2_DBGWVRn_EL1_MASK (UL(0x1) << HDFGRTR_EL2_DBGWVRn_EL1_SHIFT) +#define HDFGRTR_EL2_DBGWVRn_EL1_VAL(x) ((x) & HDFGRTR_EL2_DBGWVRn_EL1_MASK) +#define HDFGRTR_EL2_DBGWVRn_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_DBGWVRn_EL1_SHIFT) +#define HDFGRTR_EL2_DBGWVRn_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_DBGWVRn_EL1_SHIFT) +#define HDFGRTR_EL2_DBGWCRn_EL1_SHIFT 2 +#define HDFGRTR_EL2_DBGWCRn_EL1_MASK (UL(0x1) << HDFGRTR_EL2_DBGWCRn_EL1_SHIFT) +#define HDFGRTR_EL2_DBGWCRn_EL1_VAL(x) ((x) & HDFGRTR_EL2_DBGWCRn_EL1_MASK) +#define HDFGRTR_EL2_DBGWCRn_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_DBGWCRn_EL1_SHIFT) +#define HDFGRTR_EL2_DBGWCRn_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_DBGWCRn_EL1_SHIFT) +#define HDFGRTR_EL2_DBGBVRn_EL1_SHIFT 1 +#define HDFGRTR_EL2_DBGBVRn_EL1_MASK (UL(0x1) << HDFGRTR_EL2_DBGBVRn_EL1_SHIFT) +#define HDFGRTR_EL2_DBGBVRn_EL1_VAL(x) ((x) & HDFGRTR_EL2_DBGBVRn_EL1_MASK) +#define HDFGRTR_EL2_DBGBVRn_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_DBGBVRn_EL1_SHIFT) +#define HDFGRTR_EL2_DBGBVRn_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_DBGBVRn_EL1_SHIFT) +#define HDFGRTR_EL2_DBGBCRn_EL1_SHIFT 0 +#define HDFGRTR_EL2_DBGBCRn_EL1_MASK (UL(0x1) << HDFGRTR_EL2_DBGBCRn_EL1_SHIFT) +#define HDFGRTR_EL2_DBGBCRn_EL1_VAL(x) ((x) & HDFGRTR_EL2_DBGBCRn_EL1_MASK) +#define HDFGRTR_EL2_DBGBCRn_EL1_NOTRAP (UL(0x0) << HDFGRTR_EL2_DBGBCRn_EL1_SHIFT) +#define HDFGRTR_EL2_DBGBCRn_EL1_TRAP (UL(0x1) << HDFGRTR_EL2_DBGBCRn_EL1_SHIFT) + +/* HDFGWTR2_EL2 */ +#define HDFGWTR2_EL2_REG MRS_REG_ALT_NAME(HDFGWTR2_EL2) +#define HDFGWTR2_EL2_op0 3 +#define HDFGWTR2_EL2_op1 4 +#define HDFGWTR2_EL2_CRn 3 +#define HDFGWTR2_EL2_CRm 1 +#define HDFGWTR2_EL2_op2 1 +#define HDFGWTR2_EL2_nMDSTEPOP_EL1_SHIFT 23 +#define HDFGWTR2_EL2_nMDSTEPOP_EL1_MASK (UL(0x1) << HDFGWTR2_EL2_nMDSTEPOP_EL1_SHIFT) +#define HDFGWTR2_EL2_nMDSTEPOP_EL1_VAL(x) ((x) & HDFGWTR2_EL2_nMDSTEPOP_EL1_MASK) +#define HDFGWTR2_EL2_nMDSTEPOP_EL1_TRAP (UL(0x0) << HDFGWTR2_EL2_nMDSTEPOP_EL1_SHIFT) +#define HDFGWTR2_EL2_nMDSTEPOP_EL1_NOTRAP (UL(0x1) << HDFGWTR2_EL2_nMDSTEPOP_EL1_SHIFT) +#define HDFGWTR2_EL2_nTRBMPAM_EL1_SHIFT 22 +#define HDFGWTR2_EL2_nTRBMPAM_EL1_MASK (UL(0x1) << HDFGWTR2_EL2_nTRBMPAM_EL1_SHIFT) +#define HDFGWTR2_EL2_nTRBMPAM_EL1_VAL(x) ((x) & HDFGWTR2_EL2_nTRBMPAM_EL1_MASK) +#define HDFGWTR2_EL2_nTRBMPAM_EL1_TRAP (UL(0x0) << HDFGWTR2_EL2_nTRBMPAM_EL1_SHIFT) +#define HDFGWTR2_EL2_nTRBMPAM_EL1_NOTRAP (UL(0x1) << HDFGWTR2_EL2_nTRBMPAM_EL1_SHIFT) +#define HDFGWTR2_EL2_nPMZR_EL0_SHIFT 21 +#define HDFGWTR2_EL2_nPMZR_EL0_MASK (UL(0x1) << HDFGWTR2_EL2_nPMZR_EL0_SHIFT) +#define HDFGWTR2_EL2_nPMZR_EL0_VAL(x) ((x) & HDFGWTR2_EL2_nPMZR_EL0_MASK) +#define HDFGWTR2_EL2_nPMZR_EL0_TRAP (UL(0x0) << HDFGWTR2_EL2_nPMZR_EL0_SHIFT) +#define HDFGWTR2_EL2_nPMZR_EL0_NOTRAP (UL(0x1) << HDFGWTR2_EL2_nPMZR_EL0_SHIFT) +#define HDFGWTR2_EL2_nTRCITECR_EL1_SHIFT 20 +#define HDFGWTR2_EL2_nTRCITECR_EL1_MASK (UL(0x1) << HDFGWTR2_EL2_nTRCITECR_EL1_SHIFT) +#define HDFGWTR2_EL2_nTRCITECR_EL1_VAL(x) ((x) & HDFGWTR2_EL2_nTRCITECR_EL1_MASK) +#define HDFGWTR2_EL2_nTRCITECR_EL1_TRAP (UL(0x0) << HDFGWTR2_EL2_nTRCITECR_EL1_SHIFT) +#define HDFGWTR2_EL2_nTRCITECR_EL1_NOTRAP (UL(0x1) << HDFGWTR2_EL2_nTRCITECR_EL1_SHIFT) +#define HDFGWTR2_EL2_nPMSDSFR_EL1_SHIFT 19 +#define HDFGWTR2_EL2_nPMSDSFR_EL1_MASK (UL(0x1) << HDFGWTR2_EL2_nPMSDSFR_EL1_SHIFT) +#define HDFGWTR2_EL2_nPMSDSFR_EL1_VAL(x) ((x) & HDFGWTR2_EL2_nPMSDSFR_EL1_MASK) +#define HDFGWTR2_EL2_nPMSDSFR_EL1_TRAP (UL(0x0) << HDFGWTR2_EL2_nPMSDSFR_EL1_SHIFT) +#define HDFGWTR2_EL2_nPMSDSFR_EL1_NOTRAP (UL(0x1) << HDFGWTR2_EL2_nPMSDSFR_EL1_SHIFT) +#define HDFGWTR2_EL2_nSPMSCR_EL1_SHIFT 16 +#define HDFGWTR2_EL2_nSPMSCR_EL1_MASK (UL(0x1) << HDFGWTR2_EL2_nSPMSCR_EL1_SHIFT) +#define HDFGWTR2_EL2_nSPMSCR_EL1_VAL(x) ((x) & HDFGWTR2_EL2_nSPMSCR_EL1_MASK) +#define HDFGWTR2_EL2_nSPMSCR_EL1_TRAP (UL(0x0) << HDFGWTR2_EL2_nSPMSCR_EL1_SHIFT) +#define HDFGWTR2_EL2_nSPMSCR_EL1_NOTRAP (UL(0x1) << HDFGWTR2_EL2_nSPMSCR_EL1_SHIFT) +#define HDFGWTR2_EL2_nSPMACCESSR_EL1_SHIFT 15 +#define HDFGWTR2_EL2_nSPMACCESSR_EL1_MASK (UL(0x1) << HDFGWTR2_EL2_nSPMACCESSR_EL1_SHIFT) +#define HDFGWTR2_EL2_nSPMACCESSR_EL1_VAL(x) ((x) & HDFGWTR2_EL2_nSPMACCESSR_EL1_MASK) +#define HDFGWTR2_EL2_nSPMACCESSR_EL1_TRAP (UL(0x0) << HDFGWTR2_EL2_nSPMACCESSR_EL1_SHIFT) +#define HDFGWTR2_EL2_nSPMACCESSR_EL1_NOTRAP (UL(0x1) << HDFGWTR2_EL2_nSPMACCESSR_EL1_SHIFT) +#define HDFGWTR2_EL2_nSPMCR_EL0_SHIFT 14 +#define HDFGWTR2_EL2_nSPMCR_EL0_MASK (UL(0x1) << HDFGWTR2_EL2_nSPMCR_EL0_SHIFT) +#define HDFGWTR2_EL2_nSPMCR_EL0_VAL(x) ((x) & HDFGWTR2_EL2_nSPMCR_EL0_MASK) +#define HDFGWTR2_EL2_nSPMCR_EL0_TRAP (UL(0x0) << HDFGWTR2_EL2_nSPMCR_EL0_SHIFT) +#define HDFGWTR2_EL2_nSPMCR_EL0_NOTRAP (UL(0x1) << HDFGWTR2_EL2_nSPMCR_EL0_SHIFT) +#define HDFGWTR2_EL2_nSPMOVS_SHIFT 13 +#define HDFGWTR2_EL2_nSPMOVS_MASK (UL(0x1) << HDFGWTR2_EL2_nSPMOVS_SHIFT) +#define HDFGWTR2_EL2_nSPMOVS_VAL(x) ((x) & HDFGWTR2_EL2_nSPMOVS_MASK) +#define HDFGWTR2_EL2_nSPMOVS_TRAP (UL(0x0) << HDFGWTR2_EL2_nSPMOVS_SHIFT) +#define HDFGWTR2_EL2_nSPMOVS_NOTRAP (UL(0x1) << HDFGWTR2_EL2_nSPMOVS_SHIFT) +#define HDFGWTR2_EL2_nSPMINTEN_SHIFT 12 +#define HDFGWTR2_EL2_nSPMINTEN_MASK (UL(0x1) << HDFGWTR2_EL2_nSPMINTEN_SHIFT) +#define HDFGWTR2_EL2_nSPMINTEN_VAL(x) ((x) & HDFGWTR2_EL2_nSPMINTEN_MASK) +#define HDFGWTR2_EL2_nSPMINTEN_TRAP (UL(0x0) << HDFGWTR2_EL2_nSPMINTEN_SHIFT) +#define HDFGWTR2_EL2_nSPMINTEN_NOTRAP (UL(0x1) << HDFGWTR2_EL2_nSPMINTEN_SHIFT) +#define HDFGWTR2_EL2_nSPMCNTEN_SHIFT 11 +#define HDFGWTR2_EL2_nSPMCNTEN_MASK (UL(0x1) << HDFGWTR2_EL2_nSPMCNTEN_SHIFT) +#define HDFGWTR2_EL2_nSPMCNTEN_VAL(x) ((x) & HDFGWTR2_EL2_nSPMCNTEN_MASK) +#define HDFGWTR2_EL2_nSPMCNTEN_TRAP (UL(0x0) << HDFGWTR2_EL2_nSPMCNTEN_SHIFT) +#define HDFGWTR2_EL2_nSPMCNTEN_NOTRAP (UL(0x1) << HDFGWTR2_EL2_nSPMCNTEN_SHIFT) +#define HDFGWTR2_EL2_nSPMSELR_EL0_SHIFT 10 +#define HDFGWTR2_EL2_nSPMSELR_EL0_MASK (UL(0x1) << HDFGWTR2_EL2_nSPMSELR_EL0_SHIFT) +#define HDFGWTR2_EL2_nSPMSELR_EL0_VAL(x) ((x) & HDFGWTR2_EL2_nSPMSELR_EL0_MASK) +#define HDFGWTR2_EL2_nSPMSELR_EL0_TRAP (UL(0x0) << HDFGWTR2_EL2_nSPMSELR_EL0_SHIFT) +#define HDFGWTR2_EL2_nSPMSELR_EL0_NOTRAP (UL(0x1) << HDFGWTR2_EL2_nSPMSELR_EL0_SHIFT) +#define HDFGWTR2_EL2_nSPMEVTYPERn_EL0_SHIFT 9 +#define HDFGWTR2_EL2_nSPMEVTYPERn_EL0_MASK (UL(0x1) << HDFGWTR2_EL2_nSPMEVTYPERn_EL0_SHIFT) +#define HDFGWTR2_EL2_nSPMEVTYPERn_EL0_VAL(x) ((x) & HDFGWTR2_EL2_nSPMEVTYPERn_EL0_MASK) +#define HDFGWTR2_EL2_nSPMEVTYPERn_EL0_TRAP (UL(0x0) << HDFGWTR2_EL2_nSPMEVTYPERn_EL0_SHIFT) +#define HDFGWTR2_EL2_nSPMEVTYPERn_EL0_NOTRAP (UL(0x1) << HDFGWTR2_EL2_nSPMEVTYPERn_EL0_SHIFT) +#define HDFGWTR2_EL2_nSPMEVCNTRn_EL0_SHIFT 8 +#define HDFGWTR2_EL2_nSPMEVCNTRn_EL0_MASK (UL(0x1) << HDFGWTR2_EL2_nSPMEVCNTRn_EL0_SHIFT) +#define HDFGWTR2_EL2_nSPMEVCNTRn_EL0_VAL(x) ((x) & HDFGWTR2_EL2_nSPMEVCNTRn_EL0_MASK) +#define HDFGWTR2_EL2_nSPMEVCNTRn_EL0_TRAP (UL(0x0) << HDFGWTR2_EL2_nSPMEVCNTRn_EL0_SHIFT) +#define HDFGWTR2_EL2_nSPMEVCNTRn_EL0_NOTRAP (UL(0x1) << HDFGWTR2_EL2_nSPMEVCNTRn_EL0_SHIFT) +#define HDFGWTR2_EL2_nPMSSCR_EL1_SHIFT 7 +#define HDFGWTR2_EL2_nPMSSCR_EL1_MASK (UL(0x1) << HDFGWTR2_EL2_nPMSSCR_EL1_SHIFT) +#define HDFGWTR2_EL2_nPMSSCR_EL1_VAL(x) ((x) & HDFGWTR2_EL2_nPMSSCR_EL1_MASK) +#define HDFGWTR2_EL2_nPMSSCR_EL1_TRAP (UL(0x0) << HDFGWTR2_EL2_nPMSSCR_EL1_SHIFT) +#define HDFGWTR2_EL2_nPMSSCR_EL1_NOTRAP (UL(0x1) << HDFGWTR2_EL2_nPMSSCR_EL1_SHIFT) +#define HDFGWTR2_EL2_nMDSELR_EL1_SHIFT 5 +#define HDFGWTR2_EL2_nMDSELR_EL1_MASK (UL(0x1) << HDFGWTR2_EL2_nMDSELR_EL1_SHIFT) +#define HDFGWTR2_EL2_nMDSELR_EL1_VAL(x) ((x) & HDFGWTR2_EL2_nMDSELR_EL1_MASK) +#define HDFGWTR2_EL2_nMDSELR_EL1_TRAP (UL(0x0) << HDFGWTR2_EL2_nMDSELR_EL1_SHIFT) +#define HDFGWTR2_EL2_nMDSELR_EL1_NOTRAP (UL(0x1) << HDFGWTR2_EL2_nMDSELR_EL1_SHIFT) +#define HDFGWTR2_EL2_nPMUACR_EL1_SHIFT 4 +#define HDFGWTR2_EL2_nPMUACR_EL1_MASK (UL(0x1) << HDFGWTR2_EL2_nPMUACR_EL1_SHIFT) +#define HDFGWTR2_EL2_nPMUACR_EL1_VAL(x) ((x) & HDFGWTR2_EL2_nPMUACR_EL1_MASK) +#define HDFGWTR2_EL2_nPMUACR_EL1_TRAP (UL(0x0) << HDFGWTR2_EL2_nPMUACR_EL1_SHIFT) +#define HDFGWTR2_EL2_nPMUACR_EL1_NOTRAP (UL(0x1) << HDFGWTR2_EL2_nPMUACR_EL1_SHIFT) +#define HDFGWTR2_EL2_nPMICFILTR_EL0_SHIFT 3 +#define HDFGWTR2_EL2_nPMICFILTR_EL0_MASK (UL(0x1) << HDFGWTR2_EL2_nPMICFILTR_EL0_SHIFT) +#define HDFGWTR2_EL2_nPMICFILTR_EL0_VAL(x) ((x) & HDFGWTR2_EL2_nPMICFILTR_EL0_MASK) +#define HDFGWTR2_EL2_nPMICFILTR_EL0_TRAP (UL(0x0) << HDFGWTR2_EL2_nPMICFILTR_EL0_SHIFT) +#define HDFGWTR2_EL2_nPMICFILTR_EL0_NOTRAP (UL(0x1) << HDFGWTR2_EL2_nPMICFILTR_EL0_SHIFT) +#define HDFGWTR2_EL2_nPMICNTR_EL0_SHIFT 2 +#define HDFGWTR2_EL2_nPMICNTR_EL0_MASK (UL(0x1) << HDFGWTR2_EL2_nPMICNTR_EL0_SHIFT) +#define HDFGWTR2_EL2_nPMICNTR_EL0_VAL(x) ((x) & HDFGWTR2_EL2_nPMICNTR_EL0_MASK) +#define HDFGWTR2_EL2_nPMICNTR_EL0_TRAP (UL(0x0) << HDFGWTR2_EL2_nPMICNTR_EL0_SHIFT) +#define HDFGWTR2_EL2_nPMICNTR_EL0_NOTRAP (UL(0x1) << HDFGWTR2_EL2_nPMICNTR_EL0_SHIFT) +#define HDFGWTR2_EL2_nPMIAR_EL1_SHIFT 1 +#define HDFGWTR2_EL2_nPMIAR_EL1_MASK (UL(0x1) << HDFGWTR2_EL2_nPMIAR_EL1_SHIFT) +#define HDFGWTR2_EL2_nPMIAR_EL1_VAL(x) ((x) & HDFGWTR2_EL2_nPMIAR_EL1_MASK) +#define HDFGWTR2_EL2_nPMIAR_EL1_TRAP (UL(0x0) << HDFGWTR2_EL2_nPMIAR_EL1_SHIFT) +#define HDFGWTR2_EL2_nPMIAR_EL1_NOTRAP (UL(0x1) << HDFGWTR2_EL2_nPMIAR_EL1_SHIFT) +#define HDFGWTR2_EL2_nPMECR_EL1_SHIFT 0 +#define HDFGWTR2_EL2_nPMECR_EL1_MASK (UL(0x1) << HDFGWTR2_EL2_nPMECR_EL1_SHIFT) +#define HDFGWTR2_EL2_nPMECR_EL1_VAL(x) ((x) & HDFGWTR2_EL2_nPMECR_EL1_MASK) +#define HDFGWTR2_EL2_nPMECR_EL1_TRAP (UL(0x0) << HDFGWTR2_EL2_nPMECR_EL1_SHIFT) +#define HDFGWTR2_EL2_nPMECR_EL1_NOTRAP (UL(0x1) << HDFGWTR2_EL2_nPMECR_EL1_SHIFT) + +/* HDFGWTR_EL2 */ +#define HDFGWTR_EL2_REG MRS_REG_ALT_NAME(HDFGWTR_EL2) +#define HDFGWTR_EL2_op0 3 +#define HDFGWTR_EL2_op1 4 +#define HDFGWTR_EL2_CRn 3 +#define HDFGWTR_EL2_CRm 1 +#define HDFGWTR_EL2_op2 5 +#define HDFGWTR_EL2_nPMSNEVFR_EL1_SHIFT 62 +#define HDFGWTR_EL2_nPMSNEVFR_EL1_MASK (UL(0x1) << HDFGWTR_EL2_nPMSNEVFR_EL1_SHIFT) +#define HDFGWTR_EL2_nPMSNEVFR_EL1_VAL(x) ((x) & HDFGWTR_EL2_nPMSNEVFR_EL1_MASK) +#define HDFGWTR_EL2_nPMSNEVFR_EL1_TRAP (UL(0x0) << HDFGWTR_EL2_nPMSNEVFR_EL1_SHIFT) +#define HDFGWTR_EL2_nPMSNEVFR_EL1_NOTRAP (UL(0x1) << HDFGWTR_EL2_nPMSNEVFR_EL1_SHIFT) +#define HDFGWTR_EL2_nBRBDATA_SHIFT 61 +#define HDFGWTR_EL2_nBRBDATA_MASK (UL(0x1) << HDFGWTR_EL2_nBRBDATA_SHIFT) +#define HDFGWTR_EL2_nBRBDATA_VAL(x) ((x) & HDFGWTR_EL2_nBRBDATA_MASK) +#define HDFGWTR_EL2_nBRBDATA_TRAP (UL(0x0) << HDFGWTR_EL2_nBRBDATA_SHIFT) +#define HDFGWTR_EL2_nBRBDATA_NOTRAP (UL(0x1) << HDFGWTR_EL2_nBRBDATA_SHIFT) +#define HDFGWTR_EL2_nBRBCTL_SHIFT 60 +#define HDFGWTR_EL2_nBRBCTL_MASK (UL(0x1) << HDFGWTR_EL2_nBRBCTL_SHIFT) +#define HDFGWTR_EL2_nBRBCTL_VAL(x) ((x) & HDFGWTR_EL2_nBRBCTL_MASK) +#define HDFGWTR_EL2_nBRBCTL_TRAP (UL(0x0) << HDFGWTR_EL2_nBRBCTL_SHIFT) +#define HDFGWTR_EL2_nBRBCTL_NOTRAP (UL(0x1) << HDFGWTR_EL2_nBRBCTL_SHIFT) +#define HDFGWTR_EL2_PMUSERENR_EL0_SHIFT 57 +#define HDFGWTR_EL2_PMUSERENR_EL0_MASK (UL(0x1) << HDFGWTR_EL2_PMUSERENR_EL0_SHIFT) +#define HDFGWTR_EL2_PMUSERENR_EL0_VAL(x) ((x) & HDFGWTR_EL2_PMUSERENR_EL0_MASK) +#define HDFGWTR_EL2_PMUSERENR_EL0_NOTRAP (UL(0x0) << HDFGWTR_EL2_PMUSERENR_EL0_SHIFT) +#define HDFGWTR_EL2_PMUSERENR_EL0_TRAP (UL(0x1) << HDFGWTR_EL2_PMUSERENR_EL0_SHIFT) +#define HDFGWTR_EL2_TRBTRG_EL1_SHIFT 56 +#define HDFGWTR_EL2_TRBTRG_EL1_MASK (UL(0x1) << HDFGWTR_EL2_TRBTRG_EL1_SHIFT) +#define HDFGWTR_EL2_TRBTRG_EL1_VAL(x) ((x) & HDFGWTR_EL2_TRBTRG_EL1_MASK) +#define HDFGWTR_EL2_TRBTRG_EL1_NOTRAP (UL(0x0) << HDFGWTR_EL2_TRBTRG_EL1_SHIFT) +#define HDFGWTR_EL2_TRBTRG_EL1_TRAP (UL(0x1) << HDFGWTR_EL2_TRBTRG_EL1_SHIFT) +#define HDFGWTR_EL2_TRBSR_EL1_SHIFT 55 +#define HDFGWTR_EL2_TRBSR_EL1_MASK (UL(0x1) << HDFGWTR_EL2_TRBSR_EL1_SHIFT) +#define HDFGWTR_EL2_TRBSR_EL1_VAL(x) ((x) & HDFGWTR_EL2_TRBSR_EL1_MASK) +#define HDFGWTR_EL2_TRBSR_EL1_NOTRAP (UL(0x0) << HDFGWTR_EL2_TRBSR_EL1_SHIFT) +#define HDFGWTR_EL2_TRBSR_EL1_TRAP (UL(0x1) << HDFGWTR_EL2_TRBSR_EL1_SHIFT) +#define HDFGWTR_EL2_TRBPTR_EL1_SHIFT 54 +#define HDFGWTR_EL2_TRBPTR_EL1_MASK (UL(0x1) << HDFGWTR_EL2_TRBPTR_EL1_SHIFT) +#define HDFGWTR_EL2_TRBPTR_EL1_VAL(x) ((x) & HDFGWTR_EL2_TRBPTR_EL1_MASK) +#define HDFGWTR_EL2_TRBPTR_EL1_NOTRAP (UL(0x0) << HDFGWTR_EL2_TRBPTR_EL1_SHIFT) +#define HDFGWTR_EL2_TRBPTR_EL1_TRAP (UL(0x1) << HDFGWTR_EL2_TRBPTR_EL1_SHIFT) +#define HDFGWTR_EL2_TRBMAR_EL1_SHIFT 53 +#define HDFGWTR_EL2_TRBMAR_EL1_MASK (UL(0x1) << HDFGWTR_EL2_TRBMAR_EL1_SHIFT) +#define HDFGWTR_EL2_TRBMAR_EL1_VAL(x) ((x) & HDFGWTR_EL2_TRBMAR_EL1_MASK) +#define HDFGWTR_EL2_TRBMAR_EL1_NOTRAP (UL(0x0) << HDFGWTR_EL2_TRBMAR_EL1_SHIFT) +#define HDFGWTR_EL2_TRBMAR_EL1_TRAP (UL(0x1) << HDFGWTR_EL2_TRBMAR_EL1_SHIFT) +#define HDFGWTR_EL2_TRBLIMITR_EL1_SHIFT 52 +#define HDFGWTR_EL2_TRBLIMITR_EL1_MASK (UL(0x1) << HDFGWTR_EL2_TRBLIMITR_EL1_SHIFT) +#define HDFGWTR_EL2_TRBLIMITR_EL1_VAL(x) ((x) & HDFGWTR_EL2_TRBLIMITR_EL1_MASK) +#define HDFGWTR_EL2_TRBLIMITR_EL1_NOTRAP (UL(0x0) << HDFGWTR_EL2_TRBLIMITR_EL1_SHIFT) +#define HDFGWTR_EL2_TRBLIMITR_EL1_TRAP (UL(0x1) << HDFGWTR_EL2_TRBLIMITR_EL1_SHIFT) +#define HDFGWTR_EL2_TRBBASER_EL1_SHIFT 50 +#define HDFGWTR_EL2_TRBBASER_EL1_MASK (UL(0x1) << HDFGWTR_EL2_TRBBASER_EL1_SHIFT) +#define HDFGWTR_EL2_TRBBASER_EL1_VAL(x) ((x) & HDFGWTR_EL2_TRBBASER_EL1_MASK) +#define HDFGWTR_EL2_TRBBASER_EL1_NOTRAP (UL(0x0) << HDFGWTR_EL2_TRBBASER_EL1_SHIFT) +#define HDFGWTR_EL2_TRBBASER_EL1_TRAP (UL(0x1) << HDFGWTR_EL2_TRBBASER_EL1_SHIFT) +#define HDFGWTR_EL2_TRFCR_EL1_SHIFT 49 +#define HDFGWTR_EL2_TRFCR_EL1_MASK (UL(0x1) << HDFGWTR_EL2_TRFCR_EL1_SHIFT) +#define HDFGWTR_EL2_TRFCR_EL1_VAL(x) ((x) & HDFGWTR_EL2_TRFCR_EL1_MASK) +#define HDFGWTR_EL2_TRFCR_EL1_NOTRAP (UL(0x0) << HDFGWTR_EL2_TRFCR_EL1_SHIFT) +#define HDFGWTR_EL2_TRFCR_EL1_TRAP (UL(0x1) << HDFGWTR_EL2_TRFCR_EL1_SHIFT) +#define HDFGWTR_EL2_TRCVICTLR_SHIFT 48 +#define HDFGWTR_EL2_TRCVICTLR_MASK (UL(0x1) << HDFGWTR_EL2_TRCVICTLR_SHIFT) +#define HDFGWTR_EL2_TRCVICTLR_VAL(x) ((x) & HDFGWTR_EL2_TRCVICTLR_MASK) +#define HDFGWTR_EL2_TRCVICTLR_NOTRAP (UL(0x0) << HDFGWTR_EL2_TRCVICTLR_SHIFT) +#define HDFGWTR_EL2_TRCVICTLR_TRAP (UL(0x1) << HDFGWTR_EL2_TRCVICTLR_SHIFT) +#define HDFGWTR_EL2_TRCSSCSRn_SHIFT 46 +#define HDFGWTR_EL2_TRCSSCSRn_MASK (UL(0x1) << HDFGWTR_EL2_TRCSSCSRn_SHIFT) +#define HDFGWTR_EL2_TRCSSCSRn_VAL(x) ((x) & HDFGWTR_EL2_TRCSSCSRn_MASK) +#define HDFGWTR_EL2_TRCSSCSRn_NOTRAP (UL(0x0) << HDFGWTR_EL2_TRCSSCSRn_SHIFT) +#define HDFGWTR_EL2_TRCSSCSRn_TRAP (UL(0x1) << HDFGWTR_EL2_TRCSSCSRn_SHIFT) +#define HDFGWTR_EL2_TRCSEQSTR_SHIFT 45 +#define HDFGWTR_EL2_TRCSEQSTR_MASK (UL(0x1) << HDFGWTR_EL2_TRCSEQSTR_SHIFT) +#define HDFGWTR_EL2_TRCSEQSTR_VAL(x) ((x) & HDFGWTR_EL2_TRCSEQSTR_MASK) +#define HDFGWTR_EL2_TRCSEQSTR_NOTRAP (UL(0x0) << HDFGWTR_EL2_TRCSEQSTR_SHIFT) +#define HDFGWTR_EL2_TRCSEQSTR_TRAP (UL(0x1) << HDFGWTR_EL2_TRCSEQSTR_SHIFT) +#define HDFGWTR_EL2_TRCPRGCTLR_SHIFT 44 +#define HDFGWTR_EL2_TRCPRGCTLR_MASK (UL(0x1) << HDFGWTR_EL2_TRCPRGCTLR_SHIFT) +#define HDFGWTR_EL2_TRCPRGCTLR_VAL(x) ((x) & HDFGWTR_EL2_TRCPRGCTLR_MASK) +#define HDFGWTR_EL2_TRCPRGCTLR_NOTRAP (UL(0x0) << HDFGWTR_EL2_TRCPRGCTLR_SHIFT) +#define HDFGWTR_EL2_TRCPRGCTLR_TRAP (UL(0x1) << HDFGWTR_EL2_TRCPRGCTLR_SHIFT) +#define HDFGWTR_EL2_TRCOSLAR_SHIFT 42 +#define HDFGWTR_EL2_TRCOSLAR_MASK (UL(0x1) << HDFGWTR_EL2_TRCOSLAR_SHIFT) +#define HDFGWTR_EL2_TRCOSLAR_VAL(x) ((x) & HDFGWTR_EL2_TRCOSLAR_MASK) +#define HDFGWTR_EL2_TRCOSLAR_NOTRAP (UL(0x0) << HDFGWTR_EL2_TRCOSLAR_SHIFT) +#define HDFGWTR_EL2_TRCOSLAR_TRAP (UL(0x1) << HDFGWTR_EL2_TRCOSLAR_SHIFT) +#define HDFGWTR_EL2_TRCIMSPECn_SHIFT 41 +#define HDFGWTR_EL2_TRCIMSPECn_MASK (UL(0x1) << HDFGWTR_EL2_TRCIMSPECn_SHIFT) +#define HDFGWTR_EL2_TRCIMSPECn_VAL(x) ((x) & HDFGWTR_EL2_TRCIMSPECn_MASK) +#define HDFGWTR_EL2_TRCIMSPECn_NOTRAP (UL(0x0) << HDFGWTR_EL2_TRCIMSPECn_SHIFT) +#define HDFGWTR_EL2_TRCIMSPECn_TRAP (UL(0x1) << HDFGWTR_EL2_TRCIMSPECn_SHIFT) +#define HDFGWTR_EL2_TRCCNTVRn_SHIFT 37 +#define HDFGWTR_EL2_TRCCNTVRn_MASK (UL(0x1) << HDFGWTR_EL2_TRCCNTVRn_SHIFT) +#define HDFGWTR_EL2_TRCCNTVRn_VAL(x) ((x) & HDFGWTR_EL2_TRCCNTVRn_MASK) +#define HDFGWTR_EL2_TRCCNTVRn_NOTRAP (UL(0x0) << HDFGWTR_EL2_TRCCNTVRn_SHIFT) +#define HDFGWTR_EL2_TRCCNTVRn_TRAP (UL(0x1) << HDFGWTR_EL2_TRCCNTVRn_SHIFT) +#define HDFGWTR_EL2_TRCCLAIM_SHIFT 36 +#define HDFGWTR_EL2_TRCCLAIM_MASK (UL(0x1) << HDFGWTR_EL2_TRCCLAIM_SHIFT) +#define HDFGWTR_EL2_TRCCLAIM_VAL(x) ((x) & HDFGWTR_EL2_TRCCLAIM_MASK) +#define HDFGWTR_EL2_TRCCLAIM_NOTRAP (UL(0x0) << HDFGWTR_EL2_TRCCLAIM_SHIFT) +#define HDFGWTR_EL2_TRCCLAIM_TRAP (UL(0x1) << HDFGWTR_EL2_TRCCLAIM_SHIFT) +#define HDFGWTR_EL2_TRCAUXCTLR_SHIFT 35 +#define HDFGWTR_EL2_TRCAUXCTLR_MASK (UL(0x1) << HDFGWTR_EL2_TRCAUXCTLR_SHIFT) +#define HDFGWTR_EL2_TRCAUXCTLR_VAL(x) ((x) & HDFGWTR_EL2_TRCAUXCTLR_MASK) +#define HDFGWTR_EL2_TRCAUXCTLR_NOTRAP (UL(0x0) << HDFGWTR_EL2_TRCAUXCTLR_SHIFT) +#define HDFGWTR_EL2_TRCAUXCTLR_TRAP (UL(0x1) << HDFGWTR_EL2_TRCAUXCTLR_SHIFT) +#define HDFGWTR_EL2_TRC_SHIFT 33 +#define HDFGWTR_EL2_TRC_MASK (UL(0x1) << HDFGWTR_EL2_TRC_SHIFT) +#define HDFGWTR_EL2_TRC_VAL(x) ((x) & HDFGWTR_EL2_TRC_MASK) +#define HDFGWTR_EL2_TRC_NOTRAP (UL(0x0) << HDFGWTR_EL2_TRC_SHIFT) +#define HDFGWTR_EL2_TRC_TRAP (UL(0x1) << HDFGWTR_EL2_TRC_SHIFT) +#define HDFGWTR_EL2_PMSLATFR_EL1_SHIFT 32 +#define HDFGWTR_EL2_PMSLATFR_EL1_MASK (UL(0x1) << HDFGWTR_EL2_PMSLATFR_EL1_SHIFT) +#define HDFGWTR_EL2_PMSLATFR_EL1_VAL(x) ((x) & HDFGWTR_EL2_PMSLATFR_EL1_MASK) +#define HDFGWTR_EL2_PMSLATFR_EL1_NOTRAP (UL(0x0) << HDFGWTR_EL2_PMSLATFR_EL1_SHIFT) +#define HDFGWTR_EL2_PMSLATFR_EL1_TRAP (UL(0x1) << HDFGWTR_EL2_PMSLATFR_EL1_SHIFT) +#define HDFGWTR_EL2_PMSIRR_EL1_SHIFT 31 +#define HDFGWTR_EL2_PMSIRR_EL1_MASK (UL(0x1) << HDFGWTR_EL2_PMSIRR_EL1_SHIFT) +#define HDFGWTR_EL2_PMSIRR_EL1_VAL(x) ((x) & HDFGWTR_EL2_PMSIRR_EL1_MASK) +#define HDFGWTR_EL2_PMSIRR_EL1_NOTRAP (UL(0x0) << HDFGWTR_EL2_PMSIRR_EL1_SHIFT) +#define HDFGWTR_EL2_PMSIRR_EL1_TRAP (UL(0x1) << HDFGWTR_EL2_PMSIRR_EL1_SHIFT) +#define HDFGWTR_EL2_PMSICR_EL1_SHIFT 29 +#define HDFGWTR_EL2_PMSICR_EL1_MASK (UL(0x1) << HDFGWTR_EL2_PMSICR_EL1_SHIFT) +#define HDFGWTR_EL2_PMSICR_EL1_VAL(x) ((x) & HDFGWTR_EL2_PMSICR_EL1_MASK) +#define HDFGWTR_EL2_PMSICR_EL1_NOTRAP (UL(0x0) << HDFGWTR_EL2_PMSICR_EL1_SHIFT) +#define HDFGWTR_EL2_PMSICR_EL1_TRAP (UL(0x1) << HDFGWTR_EL2_PMSICR_EL1_SHIFT) +#define HDFGWTR_EL2_PMSFCR_EL1_SHIFT 28 +#define HDFGWTR_EL2_PMSFCR_EL1_MASK (UL(0x1) << HDFGWTR_EL2_PMSFCR_EL1_SHIFT) +#define HDFGWTR_EL2_PMSFCR_EL1_VAL(x) ((x) & HDFGWTR_EL2_PMSFCR_EL1_MASK) +#define HDFGWTR_EL2_PMSFCR_EL1_NOTRAP (UL(0x0) << HDFGWTR_EL2_PMSFCR_EL1_SHIFT) +#define HDFGWTR_EL2_PMSFCR_EL1_TRAP (UL(0x1) << HDFGWTR_EL2_PMSFCR_EL1_SHIFT) +#define HDFGWTR_EL2_PMSEVFR_EL1_SHIFT 27 +#define HDFGWTR_EL2_PMSEVFR_EL1_MASK (UL(0x1) << HDFGWTR_EL2_PMSEVFR_EL1_SHIFT) +#define HDFGWTR_EL2_PMSEVFR_EL1_VAL(x) ((x) & HDFGWTR_EL2_PMSEVFR_EL1_MASK) +#define HDFGWTR_EL2_PMSEVFR_EL1_NOTRAP (UL(0x0) << HDFGWTR_EL2_PMSEVFR_EL1_SHIFT) +#define HDFGWTR_EL2_PMSEVFR_EL1_TRAP (UL(0x1) << HDFGWTR_EL2_PMSEVFR_EL1_SHIFT) +#define HDFGWTR_EL2_PMSCR_EL1_SHIFT 26 +#define HDFGWTR_EL2_PMSCR_EL1_MASK (UL(0x1) << HDFGWTR_EL2_PMSCR_EL1_SHIFT) +#define HDFGWTR_EL2_PMSCR_EL1_VAL(x) ((x) & HDFGWTR_EL2_PMSCR_EL1_MASK) +#define HDFGWTR_EL2_PMSCR_EL1_NOTRAP (UL(0x0) << HDFGWTR_EL2_PMSCR_EL1_SHIFT) +#define HDFGWTR_EL2_PMSCR_EL1_TRAP (UL(0x1) << HDFGWTR_EL2_PMSCR_EL1_SHIFT) +#define HDFGWTR_EL2_PMBSR_EL1_SHIFT 25 +#define HDFGWTR_EL2_PMBSR_EL1_MASK (UL(0x1) << HDFGWTR_EL2_PMBSR_EL1_SHIFT) +#define HDFGWTR_EL2_PMBSR_EL1_VAL(x) ((x) & HDFGWTR_EL2_PMBSR_EL1_MASK) +#define HDFGWTR_EL2_PMBSR_EL1_NOTRAP (UL(0x0) << HDFGWTR_EL2_PMBSR_EL1_SHIFT) +#define HDFGWTR_EL2_PMBSR_EL1_TRAP (UL(0x1) << HDFGWTR_EL2_PMBSR_EL1_SHIFT) +#define HDFGWTR_EL2_PMBPTR_EL1_SHIFT 24 +#define HDFGWTR_EL2_PMBPTR_EL1_MASK (UL(0x1) << HDFGWTR_EL2_PMBPTR_EL1_SHIFT) +#define HDFGWTR_EL2_PMBPTR_EL1_VAL(x) ((x) & HDFGWTR_EL2_PMBPTR_EL1_MASK) +#define HDFGWTR_EL2_PMBPTR_EL1_NOTRAP (UL(0x0) << HDFGWTR_EL2_PMBPTR_EL1_SHIFT) +#define HDFGWTR_EL2_PMBPTR_EL1_TRAP (UL(0x1) << HDFGWTR_EL2_PMBPTR_EL1_SHIFT) +#define HDFGWTR_EL2_PMBLIMITR_EL1_SHIFT 23 +#define HDFGWTR_EL2_PMBLIMITR_EL1_MASK (UL(0x1) << HDFGWTR_EL2_PMBLIMITR_EL1_SHIFT) +#define HDFGWTR_EL2_PMBLIMITR_EL1_VAL(x) ((x) & HDFGWTR_EL2_PMBLIMITR_EL1_MASK) +#define HDFGWTR_EL2_PMBLIMITR_EL1_NOTRAP (UL(0x0) << HDFGWTR_EL2_PMBLIMITR_EL1_SHIFT) +#define HDFGWTR_EL2_PMBLIMITR_EL1_TRAP (UL(0x1) << HDFGWTR_EL2_PMBLIMITR_EL1_SHIFT) +#define HDFGWTR_EL2_PMCR_EL0_SHIFT 21 +#define HDFGWTR_EL2_PMCR_EL0_MASK (UL(0x1) << HDFGWTR_EL2_PMCR_EL0_SHIFT) +#define HDFGWTR_EL2_PMCR_EL0_VAL(x) ((x) & HDFGWTR_EL2_PMCR_EL0_MASK) +#define HDFGWTR_EL2_PMCR_EL0_NOTRAP (UL(0x0) << HDFGWTR_EL2_PMCR_EL0_SHIFT) +#define HDFGWTR_EL2_PMCR_EL0_TRAP (UL(0x1) << HDFGWTR_EL2_PMCR_EL0_SHIFT) +#define HDFGWTR_EL2_PMSWINC_EL0_SHIFT 20 +#define HDFGWTR_EL2_PMSWINC_EL0_MASK (UL(0x1) << HDFGWTR_EL2_PMSWINC_EL0_SHIFT) +#define HDFGWTR_EL2_PMSWINC_EL0_VAL(x) ((x) & HDFGWTR_EL2_PMSWINC_EL0_MASK) +#define HDFGWTR_EL2_PMSWINC_EL0_NOTRAP (UL(0x0) << HDFGWTR_EL2_PMSWINC_EL0_SHIFT) +#define HDFGWTR_EL2_PMSWINC_EL0_TRAP (UL(0x1) << HDFGWTR_EL2_PMSWINC_EL0_SHIFT) +#define HDFGWTR_EL2_PMSELR_EL0_SHIFT 19 +#define HDFGWTR_EL2_PMSELR_EL0_MASK (UL(0x1) << HDFGWTR_EL2_PMSELR_EL0_SHIFT) +#define HDFGWTR_EL2_PMSELR_EL0_VAL(x) ((x) & HDFGWTR_EL2_PMSELR_EL0_MASK) +#define HDFGWTR_EL2_PMSELR_EL0_NOTRAP (UL(0x0) << HDFGWTR_EL2_PMSELR_EL0_SHIFT) +#define HDFGWTR_EL2_PMSELR_EL0_TRAP (UL(0x1) << HDFGWTR_EL2_PMSELR_EL0_SHIFT) +#define HDFGWTR_EL2_PMOVS_SHIFT 18 +#define HDFGWTR_EL2_PMOVS_MASK (UL(0x1) << HDFGWTR_EL2_PMOVS_SHIFT) +#define HDFGWTR_EL2_PMOVS_VAL(x) ((x) & HDFGWTR_EL2_PMOVS_MASK) +#define HDFGWTR_EL2_PMOVS_NOTRAP (UL(0x0) << HDFGWTR_EL2_PMOVS_SHIFT) +#define HDFGWTR_EL2_PMOVS_TRAP (UL(0x1) << HDFGWTR_EL2_PMOVS_SHIFT) +#define HDFGWTR_EL2_PMINTEN_SHIFT 17 +#define HDFGWTR_EL2_PMINTEN_MASK (UL(0x1) << HDFGWTR_EL2_PMINTEN_SHIFT) +#define HDFGWTR_EL2_PMINTEN_VAL(x) ((x) & HDFGWTR_EL2_PMINTEN_MASK) +#define HDFGWTR_EL2_PMINTEN_NOTRAP (UL(0x0) << HDFGWTR_EL2_PMINTEN_SHIFT) +#define HDFGWTR_EL2_PMINTEN_TRAP (UL(0x1) << HDFGWTR_EL2_PMINTEN_SHIFT) +#define HDFGWTR_EL2_PMCNTEN_SHIFT 16 +#define HDFGWTR_EL2_PMCNTEN_MASK (UL(0x1) << HDFGWTR_EL2_PMCNTEN_SHIFT) +#define HDFGWTR_EL2_PMCNTEN_VAL(x) ((x) & HDFGWTR_EL2_PMCNTEN_MASK) +#define HDFGWTR_EL2_PMCNTEN_NOTRAP (UL(0x0) << HDFGWTR_EL2_PMCNTEN_SHIFT) +#define HDFGWTR_EL2_PMCNTEN_TRAP (UL(0x1) << HDFGWTR_EL2_PMCNTEN_SHIFT) +#define HDFGWTR_EL2_PMCCNTR_EL0_SHIFT 15 +#define HDFGWTR_EL2_PMCCNTR_EL0_MASK (UL(0x1) << HDFGWTR_EL2_PMCCNTR_EL0_SHIFT) +#define HDFGWTR_EL2_PMCCNTR_EL0_VAL(x) ((x) & HDFGWTR_EL2_PMCCNTR_EL0_MASK) +#define HDFGWTR_EL2_PMCCNTR_EL0_NOTRAP (UL(0x0) << HDFGWTR_EL2_PMCCNTR_EL0_SHIFT) +#define HDFGWTR_EL2_PMCCNTR_EL0_TRAP (UL(0x1) << HDFGWTR_EL2_PMCCNTR_EL0_SHIFT) +#define HDFGWTR_EL2_PMCCFILTR_EL0_SHIFT 14 +#define HDFGWTR_EL2_PMCCFILTR_EL0_MASK (UL(0x1) << HDFGWTR_EL2_PMCCFILTR_EL0_SHIFT) +#define HDFGWTR_EL2_PMCCFILTR_EL0_VAL(x) ((x) & HDFGWTR_EL2_PMCCFILTR_EL0_MASK) +#define HDFGWTR_EL2_PMCCFILTR_EL0_NOTRAP (UL(0x0) << HDFGWTR_EL2_PMCCFILTR_EL0_SHIFT) +#define HDFGWTR_EL2_PMCCFILTR_EL0_TRAP (UL(0x1) << HDFGWTR_EL2_PMCCFILTR_EL0_SHIFT) +#define HDFGWTR_EL2_PMEVTYPERn_EL0_SHIFT 13 +#define HDFGWTR_EL2_PMEVTYPERn_EL0_MASK (UL(0x1) << HDFGWTR_EL2_PMEVTYPERn_EL0_SHIFT) +#define HDFGWTR_EL2_PMEVTYPERn_EL0_VAL(x) ((x) & HDFGWTR_EL2_PMEVTYPERn_EL0_MASK) +#define HDFGWTR_EL2_PMEVTYPERn_EL0_NOTRAP (UL(0x0) << HDFGWTR_EL2_PMEVTYPERn_EL0_SHIFT) +#define HDFGWTR_EL2_PMEVTYPERn_EL0_TRAP (UL(0x1) << HDFGWTR_EL2_PMEVTYPERn_EL0_SHIFT) +#define HDFGWTR_EL2_PMEVCNTRn_EL0_SHIFT 12 +#define HDFGWTR_EL2_PMEVCNTRn_EL0_MASK (UL(0x1) << HDFGWTR_EL2_PMEVCNTRn_EL0_SHIFT) +#define HDFGWTR_EL2_PMEVCNTRn_EL0_VAL(x) ((x) & HDFGWTR_EL2_PMEVCNTRn_EL0_MASK) +#define HDFGWTR_EL2_PMEVCNTRn_EL0_NOTRAP (UL(0x0) << HDFGWTR_EL2_PMEVCNTRn_EL0_SHIFT) +#define HDFGWTR_EL2_PMEVCNTRn_EL0_TRAP (UL(0x1) << HDFGWTR_EL2_PMEVCNTRn_EL0_SHIFT) +#define HDFGWTR_EL2_OSDLR_EL1_SHIFT 11 +#define HDFGWTR_EL2_OSDLR_EL1_MASK (UL(0x1) << HDFGWTR_EL2_OSDLR_EL1_SHIFT) +#define HDFGWTR_EL2_OSDLR_EL1_VAL(x) ((x) & HDFGWTR_EL2_OSDLR_EL1_MASK) +#define HDFGWTR_EL2_OSDLR_EL1_NOTRAP (UL(0x0) << HDFGWTR_EL2_OSDLR_EL1_SHIFT) +#define HDFGWTR_EL2_OSDLR_EL1_TRAP (UL(0x1) << HDFGWTR_EL2_OSDLR_EL1_SHIFT) +#define HDFGWTR_EL2_OSECCR_EL1_SHIFT 10 +#define HDFGWTR_EL2_OSECCR_EL1_MASK (UL(0x1) << HDFGWTR_EL2_OSECCR_EL1_SHIFT) +#define HDFGWTR_EL2_OSECCR_EL1_VAL(x) ((x) & HDFGWTR_EL2_OSECCR_EL1_MASK) +#define HDFGWTR_EL2_OSECCR_EL1_NOTRAP (UL(0x0) << HDFGWTR_EL2_OSECCR_EL1_SHIFT) +#define HDFGWTR_EL2_OSECCR_EL1_TRAP (UL(0x1) << HDFGWTR_EL2_OSECCR_EL1_SHIFT) +#define HDFGWTR_EL2_OSLAR_EL1_SHIFT 8 +#define HDFGWTR_EL2_OSLAR_EL1_MASK (UL(0x1) << HDFGWTR_EL2_OSLAR_EL1_SHIFT) +#define HDFGWTR_EL2_OSLAR_EL1_VAL(x) ((x) & HDFGWTR_EL2_OSLAR_EL1_MASK) +#define HDFGWTR_EL2_OSLAR_EL1_NOTRAP (UL(0x0) << HDFGWTR_EL2_OSLAR_EL1_SHIFT) +#define HDFGWTR_EL2_OSLAR_EL1_TRAP (UL(0x1) << HDFGWTR_EL2_OSLAR_EL1_SHIFT) +#define HDFGWTR_EL2_DBGPRCR_EL1_SHIFT 7 +#define HDFGWTR_EL2_DBGPRCR_EL1_MASK (UL(0x1) << HDFGWTR_EL2_DBGPRCR_EL1_SHIFT) +#define HDFGWTR_EL2_DBGPRCR_EL1_VAL(x) ((x) & HDFGWTR_EL2_DBGPRCR_EL1_MASK) +#define HDFGWTR_EL2_DBGPRCR_EL1_NOTRAP (UL(0x0) << HDFGWTR_EL2_DBGPRCR_EL1_SHIFT) +#define HDFGWTR_EL2_DBGPRCR_EL1_TRAP (UL(0x1) << HDFGWTR_EL2_DBGPRCR_EL1_SHIFT) +#define HDFGWTR_EL2_DBGCLAIM_SHIFT 5 +#define HDFGWTR_EL2_DBGCLAIM_MASK (UL(0x1) << HDFGWTR_EL2_DBGCLAIM_SHIFT) +#define HDFGWTR_EL2_DBGCLAIM_VAL(x) ((x) & HDFGWTR_EL2_DBGCLAIM_MASK) +#define HDFGWTR_EL2_DBGCLAIM_NOTRAP (UL(0x0) << HDFGWTR_EL2_DBGCLAIM_SHIFT) +#define HDFGWTR_EL2_DBGCLAIM_TRAP (UL(0x1) << HDFGWTR_EL2_DBGCLAIM_SHIFT) +#define HDFGWTR_EL2_MDSCR_EL1_SHIFT 4 +#define HDFGWTR_EL2_MDSCR_EL1_MASK (UL(0x1) << HDFGWTR_EL2_MDSCR_EL1_SHIFT) +#define HDFGWTR_EL2_MDSCR_EL1_VAL(x) ((x) & HDFGWTR_EL2_MDSCR_EL1_MASK) +#define HDFGWTR_EL2_MDSCR_EL1_NOTRAP (UL(0x0) << HDFGWTR_EL2_MDSCR_EL1_SHIFT) +#define HDFGWTR_EL2_MDSCR_EL1_TRAP (UL(0x1) << HDFGWTR_EL2_MDSCR_EL1_SHIFT) +#define HDFGWTR_EL2_DBGWVRn_EL1_SHIFT 3 +#define HDFGWTR_EL2_DBGWVRn_EL1_MASK (UL(0x1) << HDFGWTR_EL2_DBGWVRn_EL1_SHIFT) +#define HDFGWTR_EL2_DBGWVRn_EL1_VAL(x) ((x) & HDFGWTR_EL2_DBGWVRn_EL1_MASK) +#define HDFGWTR_EL2_DBGWVRn_EL1_NOTRAP (UL(0x0) << HDFGWTR_EL2_DBGWVRn_EL1_SHIFT) +#define HDFGWTR_EL2_DBGWVRn_EL1_TRAP (UL(0x1) << HDFGWTR_EL2_DBGWVRn_EL1_SHIFT) +#define HDFGWTR_EL2_DBGWCRn_EL1_SHIFT 2 +#define HDFGWTR_EL2_DBGWCRn_EL1_MASK (UL(0x1) << HDFGWTR_EL2_DBGWCRn_EL1_SHIFT) +#define HDFGWTR_EL2_DBGWCRn_EL1_VAL(x) ((x) & HDFGWTR_EL2_DBGWCRn_EL1_MASK) +#define HDFGWTR_EL2_DBGWCRn_EL1_NOTRAP (UL(0x0) << HDFGWTR_EL2_DBGWCRn_EL1_SHIFT) +#define HDFGWTR_EL2_DBGWCRn_EL1_TRAP (UL(0x1) << HDFGWTR_EL2_DBGWCRn_EL1_SHIFT) +#define HDFGWTR_EL2_DBGBVRn_EL1_SHIFT 1 +#define HDFGWTR_EL2_DBGBVRn_EL1_MASK (UL(0x1) << HDFGWTR_EL2_DBGBVRn_EL1_SHIFT) +#define HDFGWTR_EL2_DBGBVRn_EL1_VAL(x) ((x) & HDFGWTR_EL2_DBGBVRn_EL1_MASK) +#define HDFGWTR_EL2_DBGBVRn_EL1_NOTRAP (UL(0x0) << HDFGWTR_EL2_DBGBVRn_EL1_SHIFT) +#define HDFGWTR_EL2_DBGBVRn_EL1_TRAP (UL(0x1) << HDFGWTR_EL2_DBGBVRn_EL1_SHIFT) +#define HDFGWTR_EL2_DBGBCRn_EL1_SHIFT 0 +#define HDFGWTR_EL2_DBGBCRn_EL1_MASK (UL(0x1) << HDFGWTR_EL2_DBGBCRn_EL1_SHIFT) +#define HDFGWTR_EL2_DBGBCRn_EL1_VAL(x) ((x) & HDFGWTR_EL2_DBGBCRn_EL1_MASK) +#define HDFGWTR_EL2_DBGBCRn_EL1_NOTRAP (UL(0x0) << HDFGWTR_EL2_DBGBCRn_EL1_SHIFT) +#define HDFGWTR_EL2_DBGBCRn_EL1_TRAP (UL(0x1) << HDFGWTR_EL2_DBGBCRn_EL1_SHIFT) + +/* HFGITR2_EL2 */ +#define HFGITR2_EL2_REG MRS_REG_ALT_NAME(HFGITR2_EL2) +#define HFGITR2_EL2_op0 3 +#define HFGITR2_EL2_op1 4 +#define HFGITR2_EL2_CRn 3 +#define HFGITR2_EL2_CRm 1 +#define HFGITR2_EL2_op2 7 + +/* HFGITR_EL2 */ +#define HFGITR_EL2_REG MRS_REG_ALT_NAME(HFGITR_EL2) +#define HFGITR_EL2_op0 3 +#define HFGITR_EL2_op1 4 +#define HFGITR_EL2_CRn 1 +#define HFGITR_EL2_CRm 1 +#define HFGITR_EL2_op2 6 +#define HFGITR_EL2_ATS1E1A_SHIFT 62 +#define HFGITR_EL2_ATS1E1A_MASK (UL(0x1) << HFGITR_EL2_ATS1E1A_SHIFT) +#define HFGITR_EL2_ATS1E1A_VAL(x) ((x) & HFGITR_EL2_ATS1E1A_MASK) +#define HFGITR_EL2_ATS1E1A_NOTRAP (UL(0x0) << HFGITR_EL2_ATS1E1A_SHIFT) +#define HFGITR_EL2_ATS1E1A_TRAP (UL(0x1) << HFGITR_EL2_ATS1E1A_SHIFT) +#define HFGITR_EL2_COSPRCTX_SHIFT 60 +#define HFGITR_EL2_COSPRCTX_MASK (UL(0x1) << HFGITR_EL2_COSPRCTX_SHIFT) +#define HFGITR_EL2_COSPRCTX_VAL(x) ((x) & HFGITR_EL2_COSPRCTX_MASK) +#define HFGITR_EL2_COSPRCTX_NOTRAP (UL(0x0) << HFGITR_EL2_COSPRCTX_SHIFT) +#define HFGITR_EL2_COSPRCTX_TRAP (UL(0x1) << HFGITR_EL2_COSPRCTX_SHIFT) +#define HFGITR_EL2_nGCSEPP_SHIFT 59 +#define HFGITR_EL2_nGCSEPP_MASK (UL(0x1) << HFGITR_EL2_nGCSEPP_SHIFT) +#define HFGITR_EL2_nGCSEPP_VAL(x) ((x) & HFGITR_EL2_nGCSEPP_MASK) +#define HFGITR_EL2_nGCSEPP_TRAP (UL(0x0) << HFGITR_EL2_nGCSEPP_SHIFT) +#define HFGITR_EL2_nGCSEPP_NOTRAP (UL(0x1) << HFGITR_EL2_nGCSEPP_SHIFT) +#define HFGITR_EL2_nGCSSTR_EL1_SHIFT 58 +#define HFGITR_EL2_nGCSSTR_EL1_MASK (UL(0x1) << HFGITR_EL2_nGCSSTR_EL1_SHIFT) +#define HFGITR_EL2_nGCSSTR_EL1_VAL(x) ((x) & HFGITR_EL2_nGCSSTR_EL1_MASK) +#define HFGITR_EL2_nGCSSTR_EL1_TRAP (UL(0x0) << HFGITR_EL2_nGCSSTR_EL1_SHIFT) +#define HFGITR_EL2_nGCSSTR_EL1_NOTRAP (UL(0x1) << HFGITR_EL2_nGCSSTR_EL1_SHIFT) +#define HFGITR_EL2_nGCSPUSHM_EL1_SHIFT 57 +#define HFGITR_EL2_nGCSPUSHM_EL1_MASK (UL(0x1) << HFGITR_EL2_nGCSPUSHM_EL1_SHIFT) +#define HFGITR_EL2_nGCSPUSHM_EL1_VAL(x) ((x) & HFGITR_EL2_nGCSPUSHM_EL1_MASK) +#define HFGITR_EL2_nGCSPUSHM_EL1_TRAP (UL(0x0) << HFGITR_EL2_nGCSPUSHM_EL1_SHIFT) +#define HFGITR_EL2_nGCSPUSHM_EL1_NOTRAP (UL(0x1) << HFGITR_EL2_nGCSPUSHM_EL1_SHIFT) +#define HFGITR_EL2_nBRBIALL_SHIFT 56 +#define HFGITR_EL2_nBRBIALL_MASK (UL(0x1) << HFGITR_EL2_nBRBIALL_SHIFT) +#define HFGITR_EL2_nBRBIALL_VAL(x) ((x) & HFGITR_EL2_nBRBIALL_MASK) +#define HFGITR_EL2_nBRBIALL_TRAP (UL(0x0) << HFGITR_EL2_nBRBIALL_SHIFT) +#define HFGITR_EL2_nBRBIALL_NOTRAP (UL(0x1) << HFGITR_EL2_nBRBIALL_SHIFT) +#define HFGITR_EL2_nBRBINJ_SHIFT 55 +#define HFGITR_EL2_nBRBINJ_MASK (UL(0x1) << HFGITR_EL2_nBRBINJ_SHIFT) +#define HFGITR_EL2_nBRBINJ_VAL(x) ((x) & HFGITR_EL2_nBRBINJ_MASK) +#define HFGITR_EL2_nBRBINJ_TRAP (UL(0x0) << HFGITR_EL2_nBRBINJ_SHIFT) +#define HFGITR_EL2_nBRBINJ_NOTRAP (UL(0x1) << HFGITR_EL2_nBRBINJ_SHIFT) +#define HFGITR_EL2_DCCVAC_SHIFT 54 +#define HFGITR_EL2_DCCVAC_MASK (UL(0x1) << HFGITR_EL2_DCCVAC_SHIFT) +#define HFGITR_EL2_DCCVAC_VAL(x) ((x) & HFGITR_EL2_DCCVAC_MASK) +#define HFGITR_EL2_DCCVAC_NOTRAP (UL(0x0) << HFGITR_EL2_DCCVAC_SHIFT) +#define HFGITR_EL2_DCCVAC_TRAP (UL(0x1) << HFGITR_EL2_DCCVAC_SHIFT) +#define HFGITR_EL2_SVC_EL1_SHIFT 53 +#define HFGITR_EL2_SVC_EL1_MASK (UL(0x1) << HFGITR_EL2_SVC_EL1_SHIFT) +#define HFGITR_EL2_SVC_EL1_VAL(x) ((x) & HFGITR_EL2_SVC_EL1_MASK) +#define HFGITR_EL2_SVC_EL1_NOTRAP (UL(0x0) << HFGITR_EL2_SVC_EL1_SHIFT) +#define HFGITR_EL2_SVC_EL1_TRAP (UL(0x1) << HFGITR_EL2_SVC_EL1_SHIFT) +#define HFGITR_EL2_SVC_EL0_SHIFT 52 +#define HFGITR_EL2_SVC_EL0_MASK (UL(0x1) << HFGITR_EL2_SVC_EL0_SHIFT) +#define HFGITR_EL2_SVC_EL0_VAL(x) ((x) & HFGITR_EL2_SVC_EL0_MASK) +#define HFGITR_EL2_SVC_EL0_NOTRAP (UL(0x0) << HFGITR_EL2_SVC_EL0_SHIFT) +#define HFGITR_EL2_SVC_EL0_TRAP (UL(0x1) << HFGITR_EL2_SVC_EL0_SHIFT) +#define HFGITR_EL2_ERET_SHIFT 51 +#define HFGITR_EL2_ERET_MASK (UL(0x1) << HFGITR_EL2_ERET_SHIFT) +#define HFGITR_EL2_ERET_VAL(x) ((x) & HFGITR_EL2_ERET_MASK) +#define HFGITR_EL2_ERET_NOTRAP (UL(0x0) << HFGITR_EL2_ERET_SHIFT) +#define HFGITR_EL2_ERET_TRAP (UL(0x1) << HFGITR_EL2_ERET_SHIFT) +#define HFGITR_EL2_CPPRCTX_SHIFT 50 +#define HFGITR_EL2_CPPRCTX_MASK (UL(0x1) << HFGITR_EL2_CPPRCTX_SHIFT) +#define HFGITR_EL2_CPPRCTX_VAL(x) ((x) & HFGITR_EL2_CPPRCTX_MASK) +#define HFGITR_EL2_CPPRCTX_NOTRAP (UL(0x0) << HFGITR_EL2_CPPRCTX_SHIFT) +#define HFGITR_EL2_CPPRCTX_TRAP (UL(0x1) << HFGITR_EL2_CPPRCTX_SHIFT) +#define HFGITR_EL2_DVPRCTX_SHIFT 49 +#define HFGITR_EL2_DVPRCTX_MASK (UL(0x1) << HFGITR_EL2_DVPRCTX_SHIFT) +#define HFGITR_EL2_DVPRCTX_VAL(x) ((x) & HFGITR_EL2_DVPRCTX_MASK) +#define HFGITR_EL2_DVPRCTX_NOTRAP (UL(0x0) << HFGITR_EL2_DVPRCTX_SHIFT) +#define HFGITR_EL2_DVPRCTX_TRAP (UL(0x1) << HFGITR_EL2_DVPRCTX_SHIFT) +#define HFGITR_EL2_CFPRCTX_SHIFT 48 +#define HFGITR_EL2_CFPRCTX_MASK (UL(0x1) << HFGITR_EL2_CFPRCTX_SHIFT) +#define HFGITR_EL2_CFPRCTX_VAL(x) ((x) & HFGITR_EL2_CFPRCTX_MASK) +#define HFGITR_EL2_CFPRCTX_NOTRAP (UL(0x0) << HFGITR_EL2_CFPRCTX_SHIFT) +#define HFGITR_EL2_CFPRCTX_TRAP (UL(0x1) << HFGITR_EL2_CFPRCTX_SHIFT) +#define HFGITR_EL2_TLBIVAALE1_SHIFT 47 +#define HFGITR_EL2_TLBIVAALE1_MASK (UL(0x1) << HFGITR_EL2_TLBIVAALE1_SHIFT) +#define HFGITR_EL2_TLBIVAALE1_VAL(x) ((x) & HFGITR_EL2_TLBIVAALE1_MASK) +#define HFGITR_EL2_TLBIVAALE1_NOTRAP (UL(0x0) << HFGITR_EL2_TLBIVAALE1_SHIFT) +#define HFGITR_EL2_TLBIVAALE1_TRAP (UL(0x1) << HFGITR_EL2_TLBIVAALE1_SHIFT) +#define HFGITR_EL2_TLBIVALE1_SHIFT 46 +#define HFGITR_EL2_TLBIVALE1_MASK (UL(0x1) << HFGITR_EL2_TLBIVALE1_SHIFT) +#define HFGITR_EL2_TLBIVALE1_VAL(x) ((x) & HFGITR_EL2_TLBIVALE1_MASK) +#define HFGITR_EL2_TLBIVALE1_NOTRAP (UL(0x0) << HFGITR_EL2_TLBIVALE1_SHIFT) +#define HFGITR_EL2_TLBIVALE1_TRAP (UL(0x1) << HFGITR_EL2_TLBIVALE1_SHIFT) +#define HFGITR_EL2_TLBIVAAE1_SHIFT 45 +#define HFGITR_EL2_TLBIVAAE1_MASK (UL(0x1) << HFGITR_EL2_TLBIVAAE1_SHIFT) +#define HFGITR_EL2_TLBIVAAE1_VAL(x) ((x) & HFGITR_EL2_TLBIVAAE1_MASK) +#define HFGITR_EL2_TLBIVAAE1_NOTRAP (UL(0x0) << HFGITR_EL2_TLBIVAAE1_SHIFT) +#define HFGITR_EL2_TLBIVAAE1_TRAP (UL(0x1) << HFGITR_EL2_TLBIVAAE1_SHIFT) +#define HFGITR_EL2_TLBIASIDE1_SHIFT 44 +#define HFGITR_EL2_TLBIASIDE1_MASK (UL(0x1) << HFGITR_EL2_TLBIASIDE1_SHIFT) +#define HFGITR_EL2_TLBIASIDE1_VAL(x) ((x) & HFGITR_EL2_TLBIASIDE1_MASK) +#define HFGITR_EL2_TLBIASIDE1_NOTRAP (UL(0x0) << HFGITR_EL2_TLBIASIDE1_SHIFT) +#define HFGITR_EL2_TLBIASIDE1_TRAP (UL(0x1) << HFGITR_EL2_TLBIASIDE1_SHIFT) +#define HFGITR_EL2_TLBIVAE1_SHIFT 43 +#define HFGITR_EL2_TLBIVAE1_MASK (UL(0x1) << HFGITR_EL2_TLBIVAE1_SHIFT) +#define HFGITR_EL2_TLBIVAE1_VAL(x) ((x) & HFGITR_EL2_TLBIVAE1_MASK) +#define HFGITR_EL2_TLBIVAE1_NOTRAP (UL(0x0) << HFGITR_EL2_TLBIVAE1_SHIFT) +#define HFGITR_EL2_TLBIVAE1_TRAP (UL(0x1) << HFGITR_EL2_TLBIVAE1_SHIFT) +#define HFGITR_EL2_TLBIVMALLE1_SHIFT 42 +#define HFGITR_EL2_TLBIVMALLE1_MASK (UL(0x1) << HFGITR_EL2_TLBIVMALLE1_SHIFT) +#define HFGITR_EL2_TLBIVMALLE1_VAL(x) ((x) & HFGITR_EL2_TLBIVMALLE1_MASK) +#define HFGITR_EL2_TLBIVMALLE1_NOTRAP (UL(0x0) << HFGITR_EL2_TLBIVMALLE1_SHIFT) +#define HFGITR_EL2_TLBIVMALLE1_TRAP (UL(0x1) << HFGITR_EL2_TLBIVMALLE1_SHIFT) +#define HFGITR_EL2_TLBIRVAALE1_SHIFT 41 +#define HFGITR_EL2_TLBIRVAALE1_MASK (UL(0x1) << HFGITR_EL2_TLBIRVAALE1_SHIFT) +#define HFGITR_EL2_TLBIRVAALE1_VAL(x) ((x) & HFGITR_EL2_TLBIRVAALE1_MASK) +#define HFGITR_EL2_TLBIRVAALE1_NOTRAP (UL(0x0) << HFGITR_EL2_TLBIRVAALE1_SHIFT) +#define HFGITR_EL2_TLBIRVAALE1_TRAP (UL(0x1) << HFGITR_EL2_TLBIRVAALE1_SHIFT) +#define HFGITR_EL2_TLBIRVALE1_SHIFT 40 +#define HFGITR_EL2_TLBIRVALE1_MASK (UL(0x1) << HFGITR_EL2_TLBIRVALE1_SHIFT) +#define HFGITR_EL2_TLBIRVALE1_VAL(x) ((x) & HFGITR_EL2_TLBIRVALE1_MASK) +#define HFGITR_EL2_TLBIRVALE1_NOTRAP (UL(0x0) << HFGITR_EL2_TLBIRVALE1_SHIFT) +#define HFGITR_EL2_TLBIRVALE1_TRAP (UL(0x1) << HFGITR_EL2_TLBIRVALE1_SHIFT) +#define HFGITR_EL2_TLBIRVAAE1_SHIFT 39 +#define HFGITR_EL2_TLBIRVAAE1_MASK (UL(0x1) << HFGITR_EL2_TLBIRVAAE1_SHIFT) +#define HFGITR_EL2_TLBIRVAAE1_VAL(x) ((x) & HFGITR_EL2_TLBIRVAAE1_MASK) +#define HFGITR_EL2_TLBIRVAAE1_NOTRAP (UL(0x0) << HFGITR_EL2_TLBIRVAAE1_SHIFT) +#define HFGITR_EL2_TLBIRVAAE1_TRAP (UL(0x1) << HFGITR_EL2_TLBIRVAAE1_SHIFT) +#define HFGITR_EL2_TLBIRVAE1_SHIFT 38 +#define HFGITR_EL2_TLBIRVAE1_MASK (UL(0x1) << HFGITR_EL2_TLBIRVAE1_SHIFT) +#define HFGITR_EL2_TLBIRVAE1_VAL(x) ((x) & HFGITR_EL2_TLBIRVAE1_MASK) +#define HFGITR_EL2_TLBIRVAE1_NOTRAP (UL(0x0) << HFGITR_EL2_TLBIRVAE1_SHIFT) +#define HFGITR_EL2_TLBIRVAE1_TRAP (UL(0x1) << HFGITR_EL2_TLBIRVAE1_SHIFT) +#define HFGITR_EL2_TLBIRVAALE1IS_SHIFT 37 +#define HFGITR_EL2_TLBIRVAALE1IS_MASK (UL(0x1) << HFGITR_EL2_TLBIRVAALE1IS_SHIFT) +#define HFGITR_EL2_TLBIRVAALE1IS_VAL(x) ((x) & HFGITR_EL2_TLBIRVAALE1IS_MASK) +#define HFGITR_EL2_TLBIRVAALE1IS_NOTRAP (UL(0x0) << HFGITR_EL2_TLBIRVAALE1IS_SHIFT) +#define HFGITR_EL2_TLBIRVAALE1IS_TRAP (UL(0x1) << HFGITR_EL2_TLBIRVAALE1IS_SHIFT) +#define HFGITR_EL2_TLBIRVALE1IS_SHIFT 36 +#define HFGITR_EL2_TLBIRVALE1IS_MASK (UL(0x1) << HFGITR_EL2_TLBIRVALE1IS_SHIFT) +#define HFGITR_EL2_TLBIRVALE1IS_VAL(x) ((x) & HFGITR_EL2_TLBIRVALE1IS_MASK) +#define HFGITR_EL2_TLBIRVALE1IS_NOTRAP (UL(0x0) << HFGITR_EL2_TLBIRVALE1IS_SHIFT) +#define HFGITR_EL2_TLBIRVALE1IS_TRAP (UL(0x1) << HFGITR_EL2_TLBIRVALE1IS_SHIFT) +#define HFGITR_EL2_TLBIRVAAE1IS_SHIFT 35 +#define HFGITR_EL2_TLBIRVAAE1IS_MASK (UL(0x1) << HFGITR_EL2_TLBIRVAAE1IS_SHIFT) +#define HFGITR_EL2_TLBIRVAAE1IS_VAL(x) ((x) & HFGITR_EL2_TLBIRVAAE1IS_MASK) +#define HFGITR_EL2_TLBIRVAAE1IS_NOTRAP (UL(0x0) << HFGITR_EL2_TLBIRVAAE1IS_SHIFT) +#define HFGITR_EL2_TLBIRVAAE1IS_TRAP (UL(0x1) << HFGITR_EL2_TLBIRVAAE1IS_SHIFT) +#define HFGITR_EL2_TLBIRVAE1IS_SHIFT 34 +#define HFGITR_EL2_TLBIRVAE1IS_MASK (UL(0x1) << HFGITR_EL2_TLBIRVAE1IS_SHIFT) +#define HFGITR_EL2_TLBIRVAE1IS_VAL(x) ((x) & HFGITR_EL2_TLBIRVAE1IS_MASK) +#define HFGITR_EL2_TLBIRVAE1IS_NOTRAP (UL(0x0) << HFGITR_EL2_TLBIRVAE1IS_SHIFT) +#define HFGITR_EL2_TLBIRVAE1IS_TRAP (UL(0x1) << HFGITR_EL2_TLBIRVAE1IS_SHIFT) +#define HFGITR_EL2_TLBIVAALE1IS_SHIFT 33 *** 795 LINES SKIPPED *** From nobody Mon Feb 9 16:28: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 4f8qrY4cbgz6Rg80 for ; Mon, 09 Feb 2026 16:28: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f8qrY27B2z3PZJ for ; Mon, 09 Feb 2026 16:28:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770654525; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Lth6bu3Zsez1zPIpJql9KCaNdlI3+LPpQTD2r8Gn5zc=; b=xTfZBKLI2yn9Z/HJT3uN8a/OeML9i3TdZPcWg67+Kd+fyY3DQtvLTSYIDukuJtvehRF7gH k2LINovWA9muZznUe/hQtHKSAwTTfrhJCy/Ch/cs1r7m++4lFz6Za+hdJdY1i1XDproIRY iFRWUeck+ZlAnalrABmBHdn5srnAIfqjmgkumHrns75oPmel4fA6vY7ISVfRDut9NCfTOR yhm7PiIJeoho9cLB+FaAE5OfZ4xfkN2R3EUeCaG1qAcaislccUVWTA8JeQvqQH5iRLf85X 2WkD1xsBg3knWI6vostS4y87/c9xgesVay1G2KBp2bhgHNJhoq127O62LSy5cQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770654525; a=rsa-sha256; cv=none; b=Imtj0GDOqOrrsPg10tt7iaJK39h16gQQMKa21/A5+3SKhBObiN+IsobqCO4Y5u4pvyupv8 3INsUSrXrsFc/Prme8K9e8m/3NyRkJqOgZ9hqGsaXqs0JMVdy2LAXG2ydsh6WOqIGd9Mez bFj+HJ4RUngs9ZNiH2pMjTUMY1N1+J3kOPT9LGzxFo/kr+rPO/Qrmrs9HwIdeLBu+M03dG c9rf7Tez1Qg+JcknHOOjvtM7CkeSmfk7rKBV2lYHL+wxb2+ZYJ3jF2oDEz5QNsEqIcBsAN TT29J1rBSQ7CsG+IMR/Upn8zLb8tqfSk6GE9dMMzrjuY90arCUveHVgRhTu3gg== 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=1770654525; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Lth6bu3Zsez1zPIpJql9KCaNdlI3+LPpQTD2r8Gn5zc=; b=SxjlxWulx5GD5E2p3P7GJBNe5hXqDjZQ8MIqRcOwgtl9+3nxjhGIImckwzU1OuLQhiK3v9 3mtv4OVaPHd7g1DWVQepwHK6fxUWHW3HQAePL4jw4llHcHI3RZBJVh4IxxqLwm+37tYM9S duV5r4Uw5F1OECJyTy2qQbn/KnWnPI40EYYmMDhjm9T2TMp5FtBrCrjLr9dupQ7c9M22WV LyLmbMxCprYGlcboySA5WVslIWGxeUHQFP5q7kNC5UGWbUb7iI/RTcn2/ZZPWlRQe26DEA B9Y9kHqBDitQqwR73o817ko8dEqFnj2/Jb6euqr1NeTphWY4DYDrdgZ3XysNmg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8qrY1kqpzgYG for ; Mon, 09 Feb 2026 16:28:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1cbda by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 16:28:45 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: c98aa51be91a - stable/15 - arm64/vmm: Add HYP_FEAT_FGT{,2} 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: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: c98aa51be91a2146f2d4fb10723bc8032f58084b Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 16:28:45 +0000 Message-Id: <698a0b3d.1cbda.36673aa2@gitrepo.freebsd.org> The branch stable/15 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=c98aa51be91a2146f2d4fb10723bc8032f58084b commit c98aa51be91a2146f2d4fb10723bc8032f58084b Author: Andrew Turner AuthorDate: 2026-02-03 17:14:26 +0000 Commit: Andrew Turner CommitDate: 2026-02-09 14:52:00 +0000 arm64/vmm: Add HYP_FEAT_FGT{,2} Add the macros and detection for Fine-grained traps (FEAT_FGT and FEAT_FGT2). Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D54686 (cherry picked from commit 095a7871f4320e7667a644e6e34a27e1f526b053) --- sys/arm64/vmm/arm64.h | 2 ++ sys/arm64/vmm/vmm_arm64.c | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/sys/arm64/vmm/arm64.h b/sys/arm64/vmm/arm64.h index f530dab05331..1b8762545925 100644 --- a/sys/arm64/vmm/arm64.h +++ b/sys/arm64/vmm/arm64.h @@ -131,6 +131,8 @@ struct hyp { uint64_t feats; /* Which features are enabled */ #define HYP_FEAT_HCX (0x1ul << 0) #define HYP_FEAT_ECV_POFF (0x1ul << 1) +#define HYP_FEAT_FGT (0x1ul << 2) +#define HYP_FEAT_FGT2 (0x1ul << 3) bool vgic_attached; struct vgic_v3 *vgic; struct hypctx *ctx[]; diff --git a/sys/arm64/vmm/vmm_arm64.c b/sys/arm64/vmm/vmm_arm64.c index aa1361049f49..5a7654ab250f 100644 --- a/sys/arm64/vmm/vmm_arm64.c +++ b/sys/arm64/vmm/vmm_arm64.c @@ -525,6 +525,18 @@ vmmops_init(struct vm *vm, pmap_t pmap) if (get_kernel_reg(ID_AA64MMFR0_EL1, &idreg)) { if (ID_AA64MMFR0_ECV_VAL(idreg) >= ID_AA64MMFR0_ECV_POFF) hyp->feats |= HYP_FEAT_ECV_POFF; + + switch (ID_AA64MMFR0_FGT_VAL(idreg)) { + case ID_AA64MMFR0_FGT_NONE: + break; + default: + case ID_AA64MMFR0_FGT_8_9: + hyp->feats |= HYP_FEAT_FGT2; + /* FALLTHROUGH */ + case ID_AA64MMFR0_FGT_8_6: + hyp->feats |= HYP_FEAT_FGT; + break; + } } if (get_kernel_reg(ID_AA64MMFR1_EL1, &idreg)) { From nobody Mon Feb 9 16:28:46 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 4f8qrZ56v5z6RgRj for ; Mon, 09 Feb 2026 16:28: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f8qrZ2n1Wz3Pk1 for ; Mon, 09 Feb 2026 16:28:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770654526; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vCyi0PUeOMqFJGR6IEhgk22G09nf0iIuW+5kmawCdnI=; b=tluWnxxEgEJr1eFL/Ouh2VhlahqLy6W7SH6/pIHB0Ie9uWGfvSErs8QMM6096rHUv8Tc3P BFthd7yAgz7uFdQG0zFfPJy43XGdw9Ii+Zhuk4t0I5wFCQzwVGYcx6cdtcS9ivgTN/u2ct MHNemjVPZmGVl2o5a+AKKZcLx2jYHsDmw+yowV9HWlpZgprwJr8tfaxxMu7odY0sKY3N6Y 1lcV5hrzhyrfyhKzaag+rOWyfKz3yaOr37KCnkwuaKTaVMskcg57ilfPc/7y4+VCdboj/K gTq0aSkH5PJrOp+eUaVpBzWt82kycFkoyWXE+qIeG91SXdN5GZGltqmnQsFnzg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770654526; a=rsa-sha256; cv=none; b=VuuNeiTuXM8V9ovzYuuDgTorFWvNKV5Cogq5v2XbQO6kRnFyHWuOEaTpYzEXiDkB2gpP5t Xpx81k3CX4ltifxqx6e36WFIKq0j3j5reJXjsTuoEf+RARVDWxPbIKLR/eOfVLEM1ZILRG hn3VzyiegQV9IpRxU9xVlqTa4VMsA4BG5fz3/AKyHDgT0/zPADrQ0AE6No4c6oepW0JGEc v9iG45ZBXwv2+7kN4RKZICw6E9zBwl0F58P0+vAoEE4kFf1v7EhDjl8KE2ocHsFtt+S3Xm Wc/dLuH0aaQWOikxyCPVZHXzKjZ2Rts1yIHJYE1SB2u/BJHi1W0tljUx8QeqNA== 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=1770654526; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vCyi0PUeOMqFJGR6IEhgk22G09nf0iIuW+5kmawCdnI=; b=CWCaAS3seDhIBL9Djk92ZVNeo4OttwVdbJHjArGF1wrNrN3GPhwdUyWy0fxjwIAVzduwx2 RPw8/kXahxEY0f/0Yg2Q8PjIBd/R261PKm1Pg978aRY00xD1fDCm/lK6oedgpgIrrI27RW pQ7ehAGAf85bTfdAxdL/8j3guq7yvv5R70HqN9iWdU8VUEVajKCrJ3cjDCReP6Ze8E7Z// Da/mZMBcKuy+troI9Uq7AUEBw64eASBMsV86Q4hzI504PboADvhdlsFSTwzMkPww1Ksnpt lsYgfkXl7TuTL+YlOoTfYAfRgq67xmYmzQArY9SY1viwYfdSwPqC9V0kGPBXmQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8qrZ27zvzgl2 for ; Mon, 09 Feb 2026 16:28:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1d8ac by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 16:28:46 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: e0fdcb8cafa2 - stable/15 - arm64/vmm: Set and use the fine-grained traps 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: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: e0fdcb8cafa28e4f535d7226af7ac14cfecda0ba Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 16:28:46 +0000 Message-Id: <698a0b3e.1d8ac.39421112@gitrepo.freebsd.org> The branch stable/15 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=e0fdcb8cafa28e4f535d7226af7ac14cfecda0ba commit e0fdcb8cafa28e4f535d7226af7ac14cfecda0ba Author: Andrew Turner AuthorDate: 2026-02-03 17:14:44 +0000 Commit: Andrew Turner CommitDate: 2026-02-09 14:52:00 +0000 arm64/vmm: Set and use the fine-grained traps Set the Fine-grained trap registers to trap any features we don't support. These are expected to be more useful when we support nested virtualisation, so for now just the base features and GICv3 are not trapped. As nested virtualisation will require VHE we only set the fine-grained trap registers when VHE is used. Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D54687 (cherry picked from commit a4f0e93c514280bfd0ff3897e5171ec7bbe4796b) --- sys/arm64/vmm/arm64.h | 16 ++ sys/arm64/vmm/vmm_hyp.c | 22 +++ sys/arm64/vmm/vmm_reset.c | 405 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 443 insertions(+) diff --git a/sys/arm64/vmm/arm64.h b/sys/arm64/vmm/arm64.h index 1b8762545925..6062d1c07ae4 100644 --- a/sys/arm64/vmm/arm64.h +++ b/sys/arm64/vmm/arm64.h @@ -100,6 +100,22 @@ struct hypctx { uint64_t mdcr_el2; /* Monitor Debug Configuration Register */ uint64_t vpidr_el2; /* Virtualization Processor ID Register */ uint64_t vmpidr_el2; /* Virtualization Multiprocessor ID Register */ + + /* FEAT_FGT registers */ + /*uint64_t hafgrtr_el2; *//* For FEAT_AMUv1 (not supported) */ + uint64_t hdfgrtr_el2; + uint64_t hdfgwtr_el2; + uint64_t hfgitr_el2; + uint64_t hfgrtr_el2; + uint64_t hfgwtr_el2; + + /* FEAT_FGT2 registers */ + uint64_t hdfgrtr2_el2; + uint64_t hdfgwtr2_el2; + uint64_t hfgitr2_el2; + uint64_t hfgrtr2_el2; + uint64_t hfgwtr2_el2; + uint64_t el2_addr; /* The address of this in el2 space */ struct hyp *hyp; struct vcpu *vcpu; diff --git a/sys/arm64/vmm/vmm_hyp.c b/sys/arm64/vmm/vmm_hyp.c index 0ad7930e9a87..75c15f06dd08 100644 --- a/sys/arm64/vmm/vmm_hyp.c +++ b/sys/arm64/vmm/vmm_hyp.c @@ -293,6 +293,28 @@ vmm_hyp_reg_restore(struct hypctx *hypctx, struct hyp *hyp, bool guest, } isb(); +#ifdef VMM_VHE + if (guest) { + /* Fine-grained trap controls */ + if ((hyp->feats & HYP_FEAT_FGT) != 0) { + WRITE_SPECIALREG(HDFGWTR_EL2_REG, hypctx->hdfgwtr_el2); + WRITE_SPECIALREG(HFGITR_EL2_REG, hypctx->hfgitr_el2); + WRITE_SPECIALREG(HFGRTR_EL2_REG, hypctx->hfgrtr_el2); + WRITE_SPECIALREG(HFGWTR_EL2_REG, hypctx->hfgwtr_el2); + } + + if ((hyp->feats & HYP_FEAT_FGT2) != 0) { + WRITE_SPECIALREG(HDFGRTR2_EL2_REG, + hypctx->hdfgrtr2_el2); + WRITE_SPECIALREG(HDFGWTR2_EL2_REG, + hypctx->hdfgwtr2_el2); + WRITE_SPECIALREG(HFGITR2_EL2_REG, hypctx->hfgitr2_el2); + WRITE_SPECIALREG(HFGRTR2_EL2_REG, hypctx->hfgrtr2_el2); + WRITE_SPECIALREG(HFGWTR2_EL2_REG, hypctx->hfgwtr2_el2); + } + } +#endif + WRITE_SPECIALREG(sp_el0, hypctx->sp_el0); WRITE_SPECIALREG(tpidr_el0, hypctx->tpidr_el0); WRITE_SPECIALREG(tpidrro_el0, hypctx->tpidrro_el0); diff --git a/sys/arm64/vmm/vmm_reset.c b/sys/arm64/vmm/vmm_reset.c index 0e4910ea87b4..a2752b5c66cb 100644 --- a/sys/arm64/vmm/vmm_reset.c +++ b/sys/arm64/vmm/vmm_reset.c @@ -185,4 +185,409 @@ reset_vm_el2_regs(void *vcpu) el2ctx->tf.tf_spsr = PSR_D | PSR_A | PSR_I | PSR_F; /* Use the EL1 stack when taking exceptions to EL1 */ el2ctx->tf.tf_spsr |= PSR_M_EL1h; + + /* FEAT_FGT traps */ + if ((el2ctx->hyp->feats & HYP_FEAT_FGT) != 0) { +#define HFGT_TRAP_FIELDS(read, write, read_pfx, write_pfx, name, trap) \ +do { \ + el2ctx->read |= read_pfx ## _EL2_ ## name ## _ ## trap; \ + el2ctx->write |= write_pfx ## _EL2_ ## name ## _ ## trap; \ +} while (0) + + + /* + * Traps for special registers + */ + + /* Debug registers */ + el2ctx->hdfgrtr_el2 = 0; + el2ctx->hdfgwtr_el2 = 0; + + /* FEAT_BRBE */ + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + nBRBDATA, TRAP); + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + nBRBCTL, TRAP); + el2ctx->hdfgrtr_el2 |= HDFGRTR_EL2_nBRBIDR_TRAP; + + /* FEAT_TRBE */ + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + TRBTRG_EL1, TRAP); + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + TRBSR_EL1, TRAP); + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + TRBPTR_EL1, TRAP); + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + TRBMAR_EL1, TRAP); + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + TRBLIMITR_EL1, TRAP); + el2ctx->hdfgrtr_el2 |= HDFGRTR_EL2_TRBIDR_EL1_TRAP; + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + TRBBASER_EL1, TRAP); + + /* FEAT_TRF */ + el2ctx->hdfgwtr_el2 |= HDFGWTR_EL2_TRFCR_EL1_TRAP; + + /* FEAT_ETE */ + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + TRCVICTLR, TRAP); + el2ctx->hdfgrtr_el2 |= HDFGRTR_EL2_TRCSTATR_TRAP; + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + TRCSSCSRn, TRAP); + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + TRCSEQSTR, TRAP); + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + TRCPRGCTLR, TRAP); + el2ctx->hdfgrtr_el2 |= HDFGRTR_EL2_TRCOSLSR_TRAP; + el2ctx->hdfgwtr_el2 |= HDFGWTR_EL2_TRCOSLAR_TRAP; + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + TRCIMSPECn, TRAP); + el2ctx->hdfgrtr_el2 |= HDFGRTR_EL2_TRCID_TRAP; + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + TRCCNTVRn, TRAP); + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + TRCCLAIM, TRAP); + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + TRCAUXCTLR, TRAP); + el2ctx->hdfgrtr_el2 |= HDFGRTR_EL2_TRCAUTHSTATUS_TRAP; + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + TRC, TRAP); + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + PMSLATFR_EL1, TRAP); + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + PMSIRR_EL1, TRAP); + + /* FEAT_SPE */ + el2ctx->hdfgrtr_el2 |= HDFGRTR_EL2_PMBIDR_EL1_TRAP; + el2ctx->hdfgrtr_el2 |= HDFGRTR_EL2_PMSIDR_EL1_TRAP; + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + PMSICR_EL1, TRAP); + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + PMSFCR_EL1, TRAP); + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + PMSEVFR_EL1, TRAP); + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + PMSCR_EL1, TRAP); + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + PMBSR_EL1, TRAP); + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + PMBPTR_EL1, TRAP); + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + PMBLIMITR_EL1, TRAP); + + /* FEAT_SPE_FnE */ + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + nPMSNEVFR_EL1, TRAP); + + /* FEAT_PMUv3 */ + el2ctx->hdfgrtr_el2 |= HDFGRTR_EL2_PMCEIDn_EL0_NOTRAP; + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + PMUSERENR_EL0, NOTRAP); + el2ctx->hdfgrtr_el2 |= HDFGRTR_EL2_PMMIR_EL1_NOTRAP; + el2ctx->hdfgwtr_el2 |= HDFGWTR_EL2_PMCR_EL0_NOTRAP; + el2ctx->hdfgwtr_el2 |= HDFGWTR_EL2_PMSWINC_EL0_NOTRAP; + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + PMSELR_EL0, NOTRAP); + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + PMOVS, NOTRAP); + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + PMINTEN, NOTRAP); + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + PMCNTEN, NOTRAP); + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + PMCCNTR_EL0, NOTRAP); + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + PMCCFILTR_EL0, NOTRAP); + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + PMEVTYPERn_EL0, NOTRAP); + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + PMEVCNTRn_EL0, NOTRAP); + + /* FEAT_DoubleLock */ + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + OSDLR_EL1, TRAP); + + /* Base architecture */ + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + OSECCR_EL1, NOTRAP); + el2ctx->hdfgrtr_el2 |= HDFGRTR_EL2_OSLSR_EL1_NOTRAP; + el2ctx->hdfgwtr_el2 |= HDFGWTR_EL2_OSLAR_EL1_NOTRAP; + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + DBGPRCR_EL1, NOTRAP); + el2ctx->hdfgrtr_el2 |= HDFGRTR_EL2_DBGAUTHSTATUS_EL1_NOTRAP; + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + DBGCLAIM, NOTRAP); + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + MDSCR_EL1, NOTRAP); + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + DBGWVRn_EL1, NOTRAP); + el2ctx->hdfgwtr_el2 |= HDFGWTR_EL2_DBGWCRn_EL1_NOTRAP; + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + DBGBVRn_EL1, NOTRAP); + HFGT_TRAP_FIELDS(hdfgrtr_el2, hdfgwtr_el2, HDFGRTR, HDFGWTR, + DBGBCRn_EL1, NOTRAP); + + + /* Non-debug special registers */ + el2ctx->hfgrtr_el2 = 0; + el2ctx->hfgwtr_el2 = 0; + + /* FEAT_AIE */ + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + nAMAIR2_EL1, TRAP); + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + nMAIR2_EL1, TRAP); + + /* FEAT_S2POE */ + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + nS2POR_EL1, TRAP); + + /* FEAT_S1POE */ + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + nPOR_EL1, TRAP); + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + nPOR_EL0, TRAP); + + /* FEAT_S1PIE */ + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + nPIR_EL1, TRAP); + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + nPIRE0_EL1, TRAP); + + /* FEAT_THE */ + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + nRCWMASK_EL1, TRAP); + + /* FEAT_SME */ + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + nTPIDR2_EL0, TRAP); + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + nSMPRI_EL1, TRAP); + + /* FEAT_GCS */ + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + nGCS_EL1, TRAP); + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + nGCS_EL0, TRAP); + + /* FEAT_LS64_ACCDATA */ + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + nACCDATA_EL1, TRAP); + + /* FEAT_RASv1p1 */ + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + ERXPFGCDN_EL1, TRAP); + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + ERXPFGCTL_EL1, TRAP); + el2ctx->hfgrtr_el2 |= HFGRTR_EL2_ERXPFGF_EL1_TRAP; + + /* FEAT_RAS */ + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + ERXADDR_EL1, TRAP); + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + ERXMISCn_EL1, TRAP); + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + ERXSTATUS_EL1, TRAP); + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + ERXCTLR_EL1, TRAP); + el2ctx->hfgrtr_el2 |= HFGRTR_EL2_ERXFR_EL1_TRAP; + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + ERRSELR_EL1, TRAP); + el2ctx->hfgrtr_el2 |= HFGRTR_EL2_ERRIDR_EL1_TRAP; + + /* GICv3 */ + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + ICC_IGRPENn_EL1, NOTRAP); + + /* FEAT_LOR */ + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + LORSA_EL1, TRAP); + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + LORN_EL1, TRAP); + el2ctx->hfgrtr_el2 |= HFGRTR_EL2_LORID_EL1_TRAP; + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + LOREA_EL1, TRAP); + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + LORC_EL1, TRAP); + + /* FEAT_PAuth */ + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + APIBKey, TRAP); + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + APIAKey, TRAP); + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + APGAKey, TRAP); + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + APDBKey, TRAP); + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + APDAKey, TRAP); + + /* Base architecture */ + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + VBAR_EL1, NOTRAP); + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + TTBR1_EL1, NOTRAP); + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + TTBR0_EL1, NOTRAP); + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + TPIDR_EL0, NOTRAP); + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + TPIDRRO_EL0, NOTRAP); + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + TPIDR_EL1, NOTRAP); + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + TCR_EL1, NOTRAP); + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + SCXTNUM_EL0, TRAP); + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + SCXTNUM_EL1, TRAP); + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + SCTLR_EL1, NOTRAP); + el2ctx->hfgrtr_el2 |= HFGRTR_EL2_REVIDR_EL1_NOTRAP; + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + PAR_EL1, NOTRAP); + el2ctx->hfgrtr_el2 |= HFGRTR_EL2_MPIDR_EL1_NOTRAP; + el2ctx->hfgrtr_el2 |= HFGRTR_EL2_MIDR_EL1_NOTRAP; + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + MAIR_EL1, NOTRAP); + el2ctx->hfgrtr_el2 |= HFGRTR_EL2_ISR_EL1_NOTRAP; + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + FAR_EL1, NOTRAP); + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + ESR_EL1, NOTRAP); + el2ctx->hfgrtr_el2 |= HFGRTR_EL2_DCZID_EL0_NOTRAP; + el2ctx->hfgrtr_el2 |= HFGRTR_EL2_CTR_EL0_NOTRAP; + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + CSSELR_EL1, NOTRAP); + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + CPACR_EL1, NOTRAP); + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + CONTEXTIDR_EL1, NOTRAP); + el2ctx->hfgrtr_el2 |= HFGRTR_EL2_CLIDR_EL1_NOTRAP; + el2ctx->hfgrtr_el2 |= HFGRTR_EL2_CCSIDR_EL1_NOTRAP; + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + AMAIR_EL1, NOTRAP); + el2ctx->hfgrtr_el2 |= HFGRTR_EL2_AIDR_EL1_NOTRAP; + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + AFSR1_EL1, NOTRAP); + HFGT_TRAP_FIELDS(hfgrtr_el2, hfgwtr_el2, HFGRTR, HFGWTR, + AFSR0_EL1, NOTRAP); + + /* + * Traps for instructions + */ + + /* Enable all TLBI, cache and AT variants */ + el2ctx->hfgitr_el2 = 0; + + /* FEAT_ATS1A */ + el2ctx->hfgitr_el2 |= + HFGITR_EL2_ATS1E1A_TRAP; + + /* FEAT_SPECRES2 */ + el2ctx->hfgitr_el2 |= + HFGITR_EL2_COSPRCTX_TRAP; + + /* FEAT_GCS */ + el2ctx->hfgitr_el2 |= + HFGITR_EL2_nGCSEPP_TRAP | + HFGITR_EL2_nGCSSTR_EL1_TRAP | + HFGITR_EL2_nGCSPUSHM_EL1_TRAP; + + /* FEAT_BRBE */ + el2ctx->hfgitr_el2 |= + HFGITR_EL2_nBRBIALL_TRAP | + HFGITR_EL2_nBRBINJ_TRAP; + + /* FEAT_SPECRES */ + el2ctx->hfgitr_el2 |= + HFGITR_EL2_CPPRCTX_TRAP | + HFGITR_EL2_DVPRCTX_TRAP | + HFGITR_EL2_CFPRCTX_TRAP; + + /* FEAT_TLBIRANGE */ + el2ctx->hfgitr_el2 |= + HFGITR_EL2_TLBIRVAALE1_TRAP | + HFGITR_EL2_TLBIRVALE1_TRAP | + HFGITR_EL2_TLBIRVAAE1_TRAP | + HFGITR_EL2_TLBIRVAE1_TRAP | + HFGITR_EL2_TLBIRVAALE1IS_TRAP | + HFGITR_EL2_TLBIRVALE1IS_TRAP | + HFGITR_EL2_TLBIRVAAE1IS_TRAP | + HFGITR_EL2_TLBIRVAE1IS_TRAP; + + /* FEAT_TLBIRANGE && FEAT_TLBIOS */ + el2ctx->hfgitr_el2 |= + HFGITR_EL2_TLBIRVAALE1OS_TRAP | + HFGITR_EL2_TLBIRVALE1OS_TRAP | + HFGITR_EL2_TLBIRVAAE1OS_TRAP | + HFGITR_EL2_TLBIRVAE1OS_TRAP; + + /* FEAT_TLBIOS */ + el2ctx->hfgitr_el2 |= + HFGITR_EL2_TLBIVAALE1OS_TRAP | + HFGITR_EL2_TLBIVALE1OS_TRAP | + HFGITR_EL2_TLBIVAAE1OS_TRAP | + HFGITR_EL2_TLBIASIDE1OS_TRAP | + HFGITR_EL2_TLBIVAE1OS_TRAP | + HFGITR_EL2_TLBIVMALLE1OS_TRAP; + + /* FEAT_PAN2 */ + el2ctx->hfgitr_el2 |= + HFGITR_EL2_ATS1E1WP_TRAP | + HFGITR_EL2_ATS1E1RP_TRAP; + + /* FEAT_DPB2 */ + el2ctx->hfgitr_el2 |= + HFGITR_EL2_DCCVADP_TRAP; + + /* Base architecture */ + el2ctx->hfgitr_el2 |= + HFGITR_EL2_DCCVAC_NOTRAP | + HFGITR_EL2_SVC_EL1_NOTRAP | + HFGITR_EL2_SVC_EL0_NOTRAP | + HFGITR_EL2_ERET_NOTRAP; + + el2ctx->hfgitr_el2 |= + HFGITR_EL2_TLBIVAALE1_NOTRAP | + HFGITR_EL2_TLBIVALE1_NOTRAP | + HFGITR_EL2_TLBIVAAE1_NOTRAP | + HFGITR_EL2_TLBIASIDE1_NOTRAP | + HFGITR_EL2_TLBIVAE1_NOTRAP | + HFGITR_EL2_TLBIVMALLE1_NOTRAP | + HFGITR_EL2_TLBIVAALE1IS_NOTRAP | + HFGITR_EL2_TLBIVALE1IS_NOTRAP | + HFGITR_EL2_TLBIVAAE1IS_NOTRAP | + HFGITR_EL2_TLBIASIDE1IS_NOTRAP | + HFGITR_EL2_TLBIVAE1IS_NOTRAP | + HFGITR_EL2_TLBIVMALLE1IS_NOTRAP; + + el2ctx->hfgitr_el2 |= + HFGITR_EL2_ATS1E0W_NOTRAP | + HFGITR_EL2_ATS1E0R_NOTRAP | + HFGITR_EL2_ATS1E1W_NOTRAP | + HFGITR_EL2_ATS1E1R_NOTRAP | + HFGITR_EL2_DCZVA_NOTRAP | + HFGITR_EL2_DCCIVAC_NOTRAP | + HFGITR_EL2_DCCVAP_NOTRAP | + HFGITR_EL2_DCCVAU_NOTRAP | + HFGITR_EL2_DCCISW_NOTRAP | + HFGITR_EL2_DCCSW_NOTRAP | + HFGITR_EL2_DCISW_NOTRAP | + HFGITR_EL2_DCIVAC_NOTRAP | + HFGITR_EL2_ICIVAU_NOTRAP | + HFGITR_EL2_ICIALLU_NOTRAP | + HFGITR_EL2_ICIALLUIS_NOTRAP; + + } + + /* FEAT_FGT2 traps */ + if ((el2ctx->hyp->feats & HYP_FEAT_FGT2) != 0) { + /* Trap everything here until we support the feature */ + el2ctx->hdfgrtr2_el2 = 0; + el2ctx->hdfgwtr2_el2 = 0; + el2ctx->hfgitr2_el2 = 0; + el2ctx->hfgrtr2_el2 = 0; + el2ctx->hfgwtr2_el2 = 0; + } } From nobody Mon Feb 9 16:28:47 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 4f8qrb5nHYz6RgMv for ; Mon, 09 Feb 2026 16:28:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f8qrb3Hrbz3PX2 for ; Mon, 09 Feb 2026 16:28:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770654527; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sA9/MkPUJ240uILWdV4HP+uvKCOIRPTRavixFlzQpVY=; b=iUg3ObGIcLl5wzHzZ4L6I9e+L4iRwK3oWSz2HogUbF0il7rM9UJNh1Ur9I1Hl/2qQB22Ww ChuBFbDQnwkwNjggsZPQyLTnqkL9axEUtV5W5TjR5T6i6Uyt76/zdcNg0SyJBAZ79eyMSE WqOf0YTu9IWs07vUcZlnXMi4WgtE6mqr61GBlGl3XSEnPhSpeoUs/vXwdYwP3nvOTexe/Z re+wddzCfAVxe1+usbAvtwuNao6cd3GAbV00uwFLLlvnVtEm74qOBMK/6L0ruBPBsxoibN gdl6vWZthdxA05ccPJqm4yYvRDc6q56IgEzqjzTfpZue2zJins7EBdVmhpn5sA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770654527; a=rsa-sha256; cv=none; b=CWLJEai2/hR/6C/AEc+XhhxaWvUYOnpxM12CWq7asFw3ICUi/Sux2R6BXCTUvzvZSqOYrl g8nlgJqW11d/7soLo/0Zvh6eBCsDTwTQzRadOiqXCLHrLXS43dKJrUgIxMp1R8POnj7SWm 24fezwYz7CsGxgfTgMUlgFncRSx3swW9H4qO+k13mVOeUsax+g9szUy3MGSWPFndQdeI3P 5SHCyVKxGFSrJOui74xpGRVFtwe5QAgcP/4WkXwtAK6HqzySfk7T/15Hezs9rIArfyj6LS uiyW/OfrCVBAi/yIikhD5woBCBWsJUwgIBjrMbdIHuslF5cyd23+ft/437RpTg== 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=1770654527; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sA9/MkPUJ240uILWdV4HP+uvKCOIRPTRavixFlzQpVY=; b=wIfdnUBFNxhyNCd8pCjtxoKAk5QK0hdMtDLKtgVHMB68xscsA5MLS8tS5lU0Q2WRbYNaeB F6868PVHEmjuyLjWCcT0cv0Y1psaG+C5dMGxlou4nnr3CKFGRRLJm2qIjDFryo+9xKSDTw 9RKg5F8mizyqE06bNLhve7sAIA9aR6lCSZyGHMyw0MC6c11+5Ir7jsmj1QTgNl4HjOdSvB il1fbB7ehVUtA24SYapwJuUtXRTz9m3TUIXZREVFmkMpuSdFJlxgTBU+CdbCNxZUp5LHk0 zm5y8YYVw4Tv/vLneV2CGZ9WncJ2lEVUexvits86Qrju1f1G0yJlQTIA5k3huQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8qrb2s9zzfsK for ; Mon, 09 Feb 2026 16:28:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1d71d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 16:28:47 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Andrew Turner Subject: git: 93ba7dce8954 - stable/15 - arm64: Attach the vgic even if there is no ITS 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: andrew X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 93ba7dce8954bc61d9d87170936e203e443bbdd3 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 16:28:47 +0000 Message-Id: <698a0b3f.1d71d.701db2f5@gitrepo.freebsd.org> The branch stable/15 has been updated by andrew: URL: https://cgit.FreeBSD.org/src/commit/?id=93ba7dce8954bc61d9d87170936e203e443bbdd3 commit 93ba7dce8954bc61d9d87170936e203e443bbdd3 Author: Andrew Turner AuthorDate: 2026-01-19 14:24:14 +0000 Commit: Andrew Turner CommitDate: 2026-02-09 14:52:00 +0000 arm64: Attach the vgic even if there is no ITS If there is no ITS device so no memory resources the gicv3 driver would exit attaching early. This caused the vgic driver to also not be attached, even if it could. Reported by: novel@ Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D54791 (cherry picked from commit c12d6cc326b70326d776324067bdf07e4fa328aa) --- sys/arm64/arm64/gic_v3_fdt.c | 57 +++++++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/sys/arm64/arm64/gic_v3_fdt.c b/sys/arm64/arm64/gic_v3_fdt.c index 4bea4040c0ba..efe4a39c1cba 100644 --- a/sys/arm64/arm64/gic_v3_fdt.c +++ b/sys/arm64/arm64/gic_v3_fdt.c @@ -86,7 +86,7 @@ EARLY_DRIVER_MODULE(gic_v3, ofwbus, gic_v3_fdt_driver, 0, 0, /* * Helper functions declarations. */ -static int gic_v3_ofw_bus_attach(device_t); +static void gic_v3_ofw_bus_attach(device_t); /* * Device interface. @@ -180,12 +180,7 @@ gic_v3_fdt_attach(device_t dev) * GIC will act as a bus in that case. * Failure here will not affect main GIC functionality. */ - if (gic_v3_ofw_bus_attach(dev) != 0) { - if (bootverbose) { - device_printf(dev, - "Failed to attach ITS to this GIC\n"); - } - } + gic_v3_ofw_bus_attach(dev); if (device_get_children(dev, &sc->gic_children, &sc->gic_nchildren) != 0) sc->gic_nchildren = 0; @@ -285,7 +280,7 @@ gic_v3_ofw_fill_ranges(phandle_t parent, struct gic_v3_softc *sc, * Collects and configures device informations and finally * adds ITS device as a child of GICv3 in Newbus hierarchy. */ -static int +static void gic_v3_ofw_bus_attach(device_t dev) { struct gic_v3_ofw_devinfo *di; @@ -300,8 +295,13 @@ gic_v3_ofw_bus_attach(device_t dev) if (parent > 0) { rv = gic_v3_ofw_fill_ranges(parent, sc, &addr_cells, &size_cells); - if (rv != 0) - return (rv); + if (rv != 0) { + if (bootverbose) { + device_printf(dev, + "Failed to attach ITS to this GIC\n"); + } + goto vgic; + } /* Iterate through all GIC subordinates */ for (node = OF_child(parent); node > 0; node = OF_peer(node)) { @@ -356,28 +356,31 @@ gic_v3_ofw_bus_attach(device_t dev) sc->gic_nchildren++; device_set_ivars(child, di); } - } - /* - * If there is a vgic maintanance interrupt add a virtual gic - * child so we can use this in the vmm module for bhyve. - */ - if (OF_hasprop(parent, "interrupts")) { - child = device_add_child(dev, "vgic", DEVICE_UNIT_ANY); - if (child == NULL) { - device_printf(dev, "Could not add vgic child\n"); - } else { - di = malloc(sizeof(*di), M_GIC_V3, M_WAITOK | M_ZERO); - resource_list_init(&di->di_rl); - di->di_gic_dinfo.gic_domain = -1; - di->di_gic_dinfo.is_vgic = 1; - device_set_ivars(child, di); - sc->gic_nchildren++; +vgic: + + /* + * If there is a vgic maintanance interrupt add a virtual gic + * child so we can use this in the vmm module for bhyve. + */ + if (OF_hasprop(parent, "interrupts")) { + child = device_add_child(dev, "vgic", DEVICE_UNIT_ANY); + if (child == NULL) { + device_printf(dev, + "Could not add vgic child\n"); + } else { + di = malloc(sizeof(*di), M_GIC_V3, + M_WAITOK | M_ZERO); + resource_list_init(&di->di_rl); + di->di_gic_dinfo.gic_domain = -1; + di->di_gic_dinfo.is_vgic = 1; + device_set_ivars(child, di); + sc->gic_nchildren++; + } } } bus_attach_children(dev); - return (0); } static struct resource_list * From nobody Mon Feb 9 18:04:10 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 4f8syf6Q8fz6Rnj1 for ; Mon, 09 Feb 2026 18:04:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f8syf5qDRz3tV8 for ; Mon, 09 Feb 2026 18:04:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770660250; 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=jAcVN/3DUi8YjieMnA5Jzdu4YnYPPP5EdhcOQveKP6E=; b=dcURyLiJlA2g1G5uP9uxWSQqu8ZYFD8AmmZR5lduRMNhy6Je9ICZpgopib/Ls38xv0SVk/ UvORfGdgKHMfPJZHLEkkGI0wK35hB82jCK1NPtJ92+b+hMR8bGUzHSsfvY8rSq2DR8140D +aZBXOb+DbbNeGWh2EgWfNCKIYA4D0j/EQckh7qz3VH9npDRws1QeCzrBO1nrX8e7lub4D /xg/Y4vnSFcwEYiVpY/alZaUAd7EHOzcHE142VsT3BjkVp4YNcmuoSUC/iuUngF+CEX7Z+ WEU6EHZboFzObmd7SAXeUKxkIfumq0Qbz+x4Ef6tU4EgJjooTRKAUoXEjJbayw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770660250; a=rsa-sha256; cv=none; b=rhtiHRUhOPC7xhd6YDKl0ntV48B+RuZpFIQDW/ApB2YCfUDs5mCQobmWREABuM+cZgYxWk CpTmXHxPC/J7azqebw3n2pmWX+nrpMB/P5pYznjiZhULv4nftmFvpptZMYTOMR+JnoG6BN PhVbQlcSAf0U40MhL7AgJTl7N9aGxbSqpjFHUQw+78NJxIqz/vz8TDaEr6A2jwEqN1hm/Y q4y2FeJtSRBbpDfeeceq3qxoVV4yvWIeF25R7HnAxhsXrZCsm+kcw050RXVOSd+hioGv8S k+tCFEGjRi3TyRAFtP2Ts5YRBkKSE378VgBcoU7ysM2d4mPQaLaAxZDi3md3XA== 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=1770660250; 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=jAcVN/3DUi8YjieMnA5Jzdu4YnYPPP5EdhcOQveKP6E=; b=qkfrtzLyZViszz12hq6rimpo42ocWiy+rzKPzdA+Vb1VdyjlgKP5xC9BOy6ksJG8stRQth 06vUYrnizXHKUk1/g+AYykogf5U/b7e0GvbNwHnY4D5SSjbKn1Mh6f32D1ORkH0ZBKFLZU ushPaapWB4LZXiKqXU8m2FPDq3LI1lEMygmnAOTNYkHerfFXbUCAFJi+s979Z3QO0gNgPg yC3iW3/MPoUFm2w/Yu5pOTZyYxgNTu9GlQezqgvtno9xDSk8l2d7f3unO87UF6khJ/VJJH Ee8Q7aUYnyK4hTRt+w9n+CTd03BPbuW42lZpD7dDhjkudwK368b6FxLzQMEfQg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8syf5QL7zkln for ; Mon, 09 Feb 2026 18:04:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26a42 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 18:04:10 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Artem Bunichev From: Mark Johnston Subject: git: 389762add05c - stable/15 - kqueue.2: Fix reference to unexisting kevent1() 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: 389762add05c201ad2941ac50ba31c89ded62356 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 18:04:10 +0000 Message-Id: <698a219a.26a42.252c4893@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=389762add05c201ad2941ac50ba31c89ded62356 commit 389762add05c201ad2941ac50ba31c89ded62356 Author: Artem Bunichev AuthorDate: 2026-01-25 15:39:48 +0000 Commit: Mark Johnston CommitDate: 2026-02-09 18:03:41 +0000 kqueue.2: Fix reference to unexisting kevent1() kqueue1() was meant. While here, make the wording in the AUTHORS section more clear. PR: 291908 Fixes: 9b1585384d53 ("kqueue.2: Editorial pass") Reviewed by: kib, dab MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D54858 (cherry picked from commit 4efe75af0869dd71a26685c432e5284d71bf4dc8) --- lib/libsys/kqueue.2 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/libsys/kqueue.2 b/lib/libsys/kqueue.2 index a8ebabf02cf7..97532c530b20 100644 --- a/lib/libsys/kqueue.2 +++ b/lib/libsys/kqueue.2 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd September 12, 2025 +.Dd January 24, 2026 .Dt KQUEUE 2 .Os .Sh NAME @@ -971,13 +971,13 @@ The .Fn kqueuex system call and -.Fn kevent1 +.Fn kqueue1 function first appeared in .Fx 14.0 . .Sh AUTHORS The -.Fn kqueue -system and this manual page were written by +.Em kqueue +subsystem and this manual page were written by .An Jonathan Lemon Aq Mt jlemon@FreeBSD.org . .Sh BUGS .Pp From nobody Mon Feb 9 18:04:11 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 4f8syh0Ds1z6Rnqg for ; Mon, 09 Feb 2026 18:04:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f8syg6WDpz3tV9 for ; Mon, 09 Feb 2026 18:04:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770660251; 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=3DW7/uxjCD7LRh3wZ57zti/v5/W//+Dcklo1D92HCeM=; b=gILf4CezEFMZsj/cIZYN8lM5l7tiKl/sBB1guxo7UWmDUS02EPlbKfnlBfHpiqUexYVIqB 4So4IWKpm2i8a12ZNSomjFROddfnfuDyCGZbn5Cd38jic69u96imInyozvmXgeKCFCv8sr vCuYqTWQ3HPrxl+yxOs7lijUiI+v4UtUTYSw3DPpyKOBAnpEHnQOXXKFI6dkifHcDR7f5w MEQ28sTQlG7u/Scf583SvBSo5ijcBlmZArsV6McYer8rDn60hS0KQBHiYyeJm4/GsHskEK iil91N/jcJOBYzDZi2B691ZZXPKl2zfGxIK4uyuX1tZU/HSlrqx+3joft+B2rg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770660251; a=rsa-sha256; cv=none; b=UrtLqyUv4TPCJfJLRvOwSSBNBkiF/QoQMcPfYEF9X8HDlQ7ywgYFge4Q3H4OoBva8YhN1m 7YLHd26uigJWmKmw8D6F/721l4TBINomUIrQQ8YuoYP2Dc/67Nz3UgAb7rA/UBFjmHX/5y oo0xcap2YayzVPy92WUEwAp3BlydtRFcNzKQwkHV6rlW2Aes3iUxg7jhpNNpkPLa6yaBZu 5tUnVj+f7+q5b9w805SoF5sFyxMvMpYMl08M4w3p6ZU8oOZxqymO6l7Lb0ivyYt8cicSHi ZPFlZsvTIAIkpzXbAMbVmxuBW6uzCRs3CxG3u4C1ldMRaZew6N8FBVFMQM6eMw== 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=1770660251; 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=3DW7/uxjCD7LRh3wZ57zti/v5/W//+Dcklo1D92HCeM=; b=ip4TdjFa5waXcgSCmpYMjNeM0nE48ooAkIsldzaql8JAroa0vk3br+RzaS1I96pTG46sjm XAoh7TqjIO1fKi0fAKj9S4ZfxHG3urZFMC4y0fWNz5t5wQtycIpjVkmaF9mCYzLARblfAT d+ryFR0IFAaVgYwq+clkQqxUE7j37Jsl+TofxgNx0lHN38fXZQ9pYfj82Kp3yv+LM/amO0 5POkc490DxgRkUCeHYNxMzvbMFZrHpG1KWgn+TgdLJvPdG3oEUJJi2IXoEqtaJp3zV4RxW ViRXVSrYdQL0SAPgJrhFSBlm3U2DCjPbN0iQmzJ9dyGZ/gcNaKl3ZYEFy71TZQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8syg63Y6zkjF for ; Mon, 09 Feb 2026 18:04:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27b08 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 18:04:11 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Hans Rosenfeld From: Mark Johnston Subject: git: 71dd4e041e9e - stable/15 - amd64: Fix sys/pcpu.h usage in vmm_host.h and md_var.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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 71dd4e041e9ecbc010c051b9a9903ffe05f43f0f Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 18:04:11 +0000 Message-Id: <698a219b.27b08.19fe31c@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=71dd4e041e9ecbc010c051b9a9903ffe05f43f0f commit 71dd4e041e9ecbc010c051b9a9903ffe05f43f0f Author: Hans Rosenfeld AuthorDate: 2026-01-24 01:29:00 +0000 Commit: Mark Johnston CommitDate: 2026-02-09 18:03:41 +0000 amd64: Fix sys/pcpu.h usage in vmm_host.h and md_var.h Include sys/pcpu in vmm_host.h as its structs and functions are used there, and add a forward declaration of struct pcpu to md_var.h as it is used in some function prototypes. Reviewed by: corvink, markj MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D51550 (cherry picked from commit 202e3109a9d6699cf78e83f9047cefeb07659767) --- sys/amd64/include/md_var.h | 1 + sys/amd64/vmm/vmm_host.h | 2 ++ 2 files changed, 3 insertions(+) diff --git a/sys/amd64/include/md_var.h b/sys/amd64/include/md_var.h index b6d8c469cdf6..19eab48168f7 100644 --- a/sys/amd64/include/md_var.h +++ b/sys/amd64/include/md_var.h @@ -58,6 +58,7 @@ extern vm_paddr_t KERNend; extern bool efi_boot; struct __mcontext; +struct pcpu; struct savefpu; struct sysentvec; diff --git a/sys/amd64/vmm/vmm_host.h b/sys/amd64/vmm/vmm_host.h index eebb794843b6..adca53271448 100644 --- a/sys/amd64/vmm/vmm_host.h +++ b/sys/amd64/vmm/vmm_host.h @@ -29,6 +29,8 @@ #ifndef _VMM_HOST_H_ #define _VMM_HOST_H_ +#include + #ifndef _KERNEL #error "no user-serviceable parts inside" #endif From nobody Mon Feb 9 18:04:12 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 4f8syj1ZVqz6RnQY for ; Mon, 09 Feb 2026 18:04:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f8syh6tPKz3tPR for ; Mon, 09 Feb 2026 18:04:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770660253; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HKZ0HnD6fpocQHcpgk1+Twfg7/BriWczLnYWMWEjmJo=; b=ievcPCViYm+nOirvBJSR6WxA5EZ7E/xZ2S1JR9bfXrBr/kXtIY66o+OUphIO64xS1jPeAS BRKPyzHHrumpwgevig2vDrimeiipvuJPowm6/8a+iv0YI45Bn0x36iFewbkDCf+Y98tk5d SwKj42yXn49zbb3u5b6xeHXzymB+zEI8JVElT3CxB7em0HUsKmXfnN1m4DZSSnsfd6ucZS 3klHm/KYV5iwK0cx89KGpvbw+X1ySMRRKR33/tkbWJykkdU/+8EIM5O01etZfMOa5x0ulJ njX1ztsFKLVrtj3Lx/EnnHNXAXA60gMjmopyq8M/Znb8yX6FTXeWIzu8C8tNRw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770660253; a=rsa-sha256; cv=none; b=F6HYhWQnO8P9uLmdRIiFC1zCSTMynz2AJh9QRveQNiyPUiJx/y6+HfXELnQzzEyuYWJ+k0 xB6nLdHsGYxOTyCPQRs4BPvRlQzHM008gbKoivVIPKh7ncBOCBhj+iHHHKFJN/fz6QMmLp tAiVnE0ez0uV1dHvtY1PpWv465Y/Skv17AwVB7+0bNnSkEn1IRN/Qzy/OSoL8SUsCW2IRx nCpQZj/KO+fLiy5XGyvC7/zbDJt8SIRtFhtRCFeO/KzRvx6xNOmNeSVTuOH2NLjGEz3DR2 BvglqgynWcUJ9j942gP2sRjqg9d6pF/XrHgy0M8iLkDMouIJHf7UNP53hrnJhg== 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=1770660253; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HKZ0HnD6fpocQHcpgk1+Twfg7/BriWczLnYWMWEjmJo=; b=YN/TRX52JvFVPCw25Yp8nY4ff0rCWQwQEuskPymMDtcpUWlJ+USNfb/hx7wnO2LzIbu8QS 9PmXsFGNtlwLMOHD668TKmeStjWZBpW66UxNHBABtINBZ9Kz6e6KYtnM2IEAgnJcOz3JZU 7TDyd2R0WTVDN/j/vi3NwhFfpuwxuQnYlASFYq8iPiMFoYnqFnFlzUedFHeB7pSqyt/t1v xqbXbd+7J2VwUh5VZrm5SJAD2r1qJrEBdd3GJK6mj/RDqVzd92NI/IN4D+wwLnXsMCo7Ic h3pd8YNGUZ2R0hYkz3gVJ8f72BT5pMOo7phza9LzwPNi0a3r5cEOB3T30xVEkg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8syh6L6BzkBj for ; Mon, 09 Feb 2026 18:04:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2771d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 18:04:12 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 9e921752f965 - stable/15 - 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/15 X-Git-Reftype: branch X-Git-Commit: 9e921752f965d85bd0ad2b7b13fd0dc9c1094968 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 18:04:12 +0000 Message-Id: <698a219c.2771d.3b0bf7cc@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=9e921752f965d85bd0ad2b7b13fd0dc9c1094968 commit 9e921752f965d85bd0ad2b7b13fd0dc9c1094968 Author: Mark Johnston AuthorDate: 2026-01-27 14:57:31 +0000 Commit: Mark Johnston CommitDate: 2026-02-09 18:03:41 +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 02ed502ace67..c7b63a0c6c76 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 9 18:04:13 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 4f8syk3X3gz6Rnqp for ; Mon, 09 Feb 2026 18:04: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f8syk0WfJz3t7l for ; Mon, 09 Feb 2026 18:04:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770660254; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2fjhLFiW+uKblSrjtwz9I+IVHaS00Wc8cYlZlYE7q9U=; b=mh3/PdTNPkCGQZPAa17H/c9ctDH3c1AEXXCTNV12fARcbOzaPr+79a5PJjh/JrkTBs1Ni/ xlOEatdMkCaGjZcMSL5LyEjOqMdjVLbotquktuOE67TNBNmA2ojplZO7IrF6AK8iDJEkVw L2yUaqQfY+e/EKoawPLbKQ7R7lewzJv7fJ2zpiypaHXlTGwLnI4cD/2shIenswKvidevTs rUpGZp2958ZGpTEcaqaS7jBpo9oSOO7piprVoyKNY4SSNL/Ck4TB0a7TOGhu5HLWTdr9vL uEAWYGqpcOoJsCnIYCor9ZIoSsHR7LHykf5ewdTOKg3KcCcNYB5ej7r/HyDTWQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770660254; a=rsa-sha256; cv=none; b=vSvBPoN9C1/fBcST/pFZyqm+K5TO/S9O198uHL8EGNhRdr+FCJPbow/9GZdLnMNytTXliD G2ptykW0ELSXTx9zcoODkR9l8UqD3avdWyHQbgbIG6kiDCHnGQZ7BtWBHpA8hqQIwhSwvD On9aTGySLVu699gJ9s4bFvkUqcm52epHIiuvCY1z7k0F0cGbodjFH/q2fdAdzYsUOF+PVP fdYB6zuIZKdjF2jXmOCju13Dpe2eXvIUOHf13axBQJ5rnymUJ6qe8RTW2F8zDJF2Yd39oA txOo5X+CFr2snfRLd/QqColdaXH1xcwKSjx8qBHlpYs2BoYiOgmdE2QRzsFaQg== 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=1770660254; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=2fjhLFiW+uKblSrjtwz9I+IVHaS00Wc8cYlZlYE7q9U=; b=QI8f/Py8wjhYUBLQAUT40ZgBMV9bX370NL0EDmEcT4UkwCCr3ihfqQ0osHqppHTfWQAT8w l7CG7SXlY22B3x/wBmVXJ0nk8qdlNxpEjKxYo6NtjHZEdjo7rmHqKGEuRakrTOq+H5wAXl /B1xLNPQ/ZAhEMaR4eLYdS42iL9lPCi1L5wi6Si+U+wbhaIXWNMlS5b0k1QyRdEAEDnSid AHTxFknxoMr8vkfZZeYb6V+2Uigb+Ikftmh+de1K/GoatY50aeOqxgJ6tA/RuOFOB4YcpA Wr85NU5zsF59Hu+pEY3cx1OCS97IT/+lKdYMGCeoh6gZfwFzMyfNGr/T7bUecg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8syj71H0zkcX for ; Mon, 09 Feb 2026 18:04:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27176 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 18:04:13 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: d17e192524a6 - stable/15 - netbsd-tests: Fix regcomp_too_big flakiness 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: d17e192524a62801e3ca52ead3716be6c7c22531 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 18:04:13 +0000 Message-Id: <698a219d.27176.51f92274@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=d17e192524a62801e3ca52ead3716be6c7c22531 commit d17e192524a62801e3ca52ead3716be6c7c22531 Author: Mark Johnston AuthorDate: 2026-01-27 21:08:35 +0000 Commit: Mark Johnston CommitDate: 2026-02-09 18:03:41 +0000 netbsd-tests: Fix regcomp_too_big flakiness The test sometimes crashes with ASLR enabled. This seems to happen when regcomp() grows the process stack and happens to run into the virtual memory limit set at the beginning of the test. ASLR triggers the problem since it introduces a bit of fragmentation and thus introduces cases where stack allocation can be the trigger of virtual memory exhaustion, rather than dynamic memory allocation in regcomp(). Make the test stable by priming the stack before doing anything else. This effectively reserves 16MB of virtual memory for the stack, which in practice is enough to make the test stable on amd64. PR: 259971 Reviewed by: ngie, emaste MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D54880 (cherry picked from commit 938915a22c84af88afa587694e8d63ce9dd202f4) --- contrib/netbsd-tests/lib/libc/regex/t_exhaust.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/contrib/netbsd-tests/lib/libc/regex/t_exhaust.c b/contrib/netbsd-tests/lib/libc/regex/t_exhaust.c index 2f3d1025536b..9741f3311ae0 100644 --- a/contrib/netbsd-tests/lib/libc/regex/t_exhaust.c +++ b/contrib/netbsd-tests/lib/libc/regex/t_exhaust.c @@ -168,6 +168,14 @@ static const struct { { p6, REG_BASIC }, }; +static void __noinline +prime_stack(void) +{ + char buf[16 * 1024 * 1024]; + + explicit_bzero(buf, sizeof(buf)); +} + ATF_TC(regcomp_too_big); ATF_TC_HEAD(regcomp_too_big, tc) @@ -186,12 +194,15 @@ ATF_TC_BODY(regcomp_too_big, tc) int e; struct rlimit limit; - if (atf_tc_get_config_var_as_bool_wd(tc, "ci", false)) - atf_tc_skip("https://bugs.freebsd.org/259971"); - limit.rlim_cur = limit.rlim_max = 256 * 1024 * 1024; ATF_REQUIRE(setrlimit(RLIMIT_VMEM, &limit) != -1); + /* + * Pre-fault the stack to avoid crashes caused by growing the stack + * beyond the limit. + */ + prime_stack(); + for (size_t i = 0; i < __arraycount(tests); i++) { char *d = (*tests[i].pattern)(REGEX_MAXSIZE); e = regcomp(&re, d, tests[i].type); From nobody Mon Feb 9 18:04:16 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 4f8sym48n0z6RnNR for ; Mon, 09 Feb 2026 18:04:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f8sym2dRLz3tdN for ; Mon, 09 Feb 2026 18:04:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770660256; 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=0XP76DNTEBuiaF5KLb4PjKPtsfzkonkb9fWbsJf7ZZg=; b=TbdMdOlCors55lLxEoU9UEfwNoxr3dckuFOeAFeFe3Cs8+sHOiAaeBzItAPEnyCqLSd5wf d+M8cPChbOo2+CL4aV531Tv0Yr/+KHrkyGfD+WOOf5VO4qCpyOpJQKCbTedUcuAutoY7Pm H50HPWqd4DoSB1alacd0xxoe9t0+p8YMTAMEzW0laQEASjJKF728XD86b56sgngNjCkzlp dPhWTpEWng57vcWsBPA6pEULUE8Ln7cFgt05wNWcxAXiCLHa9h1VyE9mtj8+O8TRZzSv64 xidNEbaZDYXzCW6sT5LkHsJm2qBOnx1vDcnEks7y2j6CyUj/QTA/EaeTYNXfZg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770660256; a=rsa-sha256; cv=none; b=GgBMUkBIzG6AmCmY6oWsxhxLfAl+Ag1YXvnkp4BAIBnhE6IjTG63TogTx9fQy1/QXyirFg honApIZbX1VdTcC/fOZL9wadsKSplFzQIeFX4TG6K50hgLIRDEefuJ6aVi+lUSXVn0x9Pn kDNyV1EVYO+wVXdjdF1MgBN68fOZV3EVKlXQmo1ai83qMsm61ocqgvY352UyaKUfAqnoar hpoiL+rKF20y//yWENFCL140c8uosQmOzsZjM5GgCHKB7W7SjSzR+p4vAJCMbjWoOBn/7v 1iSCMylCxggCYvLeump+Vree+JZ7dflPvwAsYwMjy8sHJIEJEeAhPWIi1YPnYQ== 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=1770660256; 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=0XP76DNTEBuiaF5KLb4PjKPtsfzkonkb9fWbsJf7ZZg=; b=hT4SBuU8QXQYOVBPagmUI4rWp7zfoD5c+IIaq7K9o8tAVB1OdkGyUxn0DiKHULcGnKmLVQ /syaw1Zo1oNAOlcoUdUASOf6pXkkJ5+kVX1aymo8ZkcCVgxFdMi013gjExN8Y3llEc80Pz tR/3Nshb29F9Nm2PQxvr37cJKtEe4aMP3CsdjukX08wfqb0MIrQbgLdyQj4iIXTlauqSYo 5IMJ/Syda4hF2k7ooDiDN0fKJ0OJHrQLmIwjS475EG/b7SZE+8fxXwUwwPSFiWucjE32af hyb6F+PL+xVi6KcoYPRyq/X4ng1n+6VdMh5vMoZWg/uNO3JPw5itYy3UQ/rEDw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8sym1RlqzkR1 for ; Mon, 09 Feb 2026 18:04:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3011b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 18:04:16 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Jake Freeland From: Mark Johnston Subject: git: eefbbef54bc3 - stable/15 - syslogd: Terminate pipe processes gracefully 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: eefbbef54bc3eec4630bfe568b93cd13c61d1a56 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 18:04:16 +0000 Message-Id: <698a21a0.3011b.3923673c@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=eefbbef54bc3eec4630bfe568b93cd13c61d1a56 commit eefbbef54bc3eec4630bfe568b93cd13c61d1a56 Author: Jake Freeland AuthorDate: 2025-12-22 06:05:37 +0000 Commit: Mark Johnston CommitDate: 2026-02-09 18:03:41 +0000 syslogd: Terminate pipe processes gracefully Pipe actions spawn a process based on the command provided in the syslogd configuration file. When a HUP signal is received, enter the process into the deadq instead of immediately killing it. This matches the behavior of syslogd prior to it being Capsicumized. Fixes: d2d180fb7736 (cherry picked from commit 60ae4e52f33e3c67720b68a29e35f6c114a3386c) --- usr.sbin/syslogd/syslogd.c | 94 +++++++++++++--------------------- usr.sbin/syslogd/tests/syslogd_test.sh | 34 ++++++++++++ 2 files changed, 70 insertions(+), 58 deletions(-) diff --git a/usr.sbin/syslogd/syslogd.c b/usr.sbin/syslogd/syslogd.c index 81bbbbe66be8..972b64ed732e 100644 --- a/usr.sbin/syslogd/syslogd.c +++ b/usr.sbin/syslogd/syslogd.c @@ -370,43 +370,19 @@ static void increase_rcvbuf(int); static void close_filed(struct filed *f) { - switch (f->f_type) { - case F_FORW: - if (f->f_addr_fds != NULL) { - free(f->f_addrs); - for (size_t i = 0; i < f->f_num_addr_fds; ++i) - close(f->f_addr_fds[i]); - free(f->f_addr_fds); - f->f_addr_fds = NULL; - f->f_num_addr_fds = 0; - } - /* FALLTHROUGH */ - case F_FILE: - case F_TTY: - case F_CONSOLE: - f->f_type = F_UNUSED; - break; - case F_PIPE: - if (f->f_procdesc != -1) { - /* - * Close the procdesc, killing the underlying - * process (if it is still alive). - */ - (void)close(f->f_procdesc); - f->f_procdesc = -1; - /* - * The pipe process is guaranteed to be dead now, - * so remove it from the deadq. - */ - if (f->f_dq != NULL) { - deadq_remove(f->f_dq); - f->f_dq = NULL; - } - } - break; - default: - break; + if (f->f_type == F_FORW && f->f_addr_fds != NULL) { + free(f->f_addrs); + for (size_t i = 0; i < f->f_num_addr_fds; ++i) + close(f->f_addr_fds[i]); + free(f->f_addr_fds); + f->f_addr_fds = NULL; + f->f_num_addr_fds = 0; + } else if (f->f_type == F_PIPE && f->f_procdesc != -1) { + f->f_dq = deadq_enter(f->f_procdesc); } + + f->f_type = F_UNUSED; + if (f->f_file != -1) (void)close(f->f_file); f->f_file = -1; @@ -820,8 +796,23 @@ main(int argc, char *argv[]) break; case EVFILT_PROCDESC: if ((ev.fflags & NOTE_EXIT) != 0) { - log_deadchild(ev.ident, ev.data, ev.udata); - close_filed(ev.udata); + struct filed *f = ev.udata; + + log_deadchild(f->f_procdesc, ev.data, f); + (void)close(f->f_procdesc); + + f->f_procdesc = -1; + if (f->f_dq != NULL) { + deadq_remove(f->f_dq); + f->f_dq = NULL; + } + + /* + * If it is unused, then it was already closed. + * Free the file data in this case. + */ + if (f->f_type == F_UNUSED) + free(f); } break; } @@ -2270,9 +2261,6 @@ die(int signo) /* flush any pending output */ if (f->f_prevcount) fprintlog_successive(f, 0); - /* terminate existing pipe processes */ - if (f->f_type == F_PIPE) - close_filed(f); } if (signo) { dprintf("syslogd: exiting on signal %d\n", signo); @@ -2515,23 +2503,7 @@ closelogfiles(void) case F_FORW: case F_CONSOLE: case F_TTY: - close_filed(f); - break; case F_PIPE: - if (f->f_procdesc != -1) { - struct kevent ev; - /* - * This filed is going to be freed. - * Delete procdesc kevents that reference it. - */ - EV_SET(&ev, f->f_procdesc, EVFILT_PROCDESC, - EV_DELETE, NOTE_EXIT, 0, f); - if (kevent(kq, &ev, 1, NULL, 0, NULL) == -1) { - logerror("failed to delete procdesc" - "kevent"); - exit(1); - } - } close_filed(f); break; default: @@ -2552,7 +2524,13 @@ closelogfiles(void) } free(f->f_prop_filter); } - free(f); + + /* + * If a piped process is running, then defer the filed + * cleanup until it exits. + */ + if (f->f_type != F_PIPE || f->f_procdesc == -1) + free(f); } } diff --git a/usr.sbin/syslogd/tests/syslogd_test.sh b/usr.sbin/syslogd/tests/syslogd_test.sh index 2d093dd80c35..5422e78f6831 100644 --- a/usr.sbin/syslogd/tests/syslogd_test.sh +++ b/usr.sbin/syslogd/tests/syslogd_test.sh @@ -313,6 +313,39 @@ pipe_action_cleanup() syslogd_stop } +atf_test_case "pipe_action_reload" "cleanup" +pipe_action_reload_head() +{ + atf_set descr "Pipe processes terminate gracefully on reload" +} +pipe_action_reload_body() +{ + local logfile="${PWD}/pipe_reload.log" + local pipecmd="${PWD}/pipe_cmd.sh" + + cat <<__EOF__ > "${pipecmd}" +#!/bin/sh +echo START > ${logfile} +while read msg; do + echo \${msg} >> ${logfile} +done +echo END >> ${logfile} +exit 0 +__EOF__ + chmod +x "${pipecmd}" + + printf "!pipe\nuser.debug\t| %s\n" "${pipecmd}" > "${SYSLOGD_CONFIG}" + syslogd_start + + syslogd_log -p user.debug -t "pipe" -h "${SYSLOGD_LOCAL_SOCKET}" "MSG" + syslogd_reload + atf_check -s exit:0 -o match:"END" tail -n 1 "${logfile}" +} +pipe_action_reload_cleanup() +{ + syslogd_stop +} + atf_test_case "jail_noinet" "cleanup" jail_noinet_head() { @@ -561,6 +594,7 @@ atf_init_test_cases() atf_add_test_case "prop_filter" atf_add_test_case "host_action" atf_add_test_case "pipe_action" + atf_add_test_case "pipe_action_reload" atf_add_test_case "jail_noinet" atf_add_test_case "allowed_peer" atf_add_test_case "allowed_peer_forwarding" From nobody Mon Feb 9 18:04: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 4f8syp2gHNz6RnfL for ; Mon, 09 Feb 2026 18:04: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f8syn2Mpfz3tMm for ; Mon, 09 Feb 2026 18:04:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770660257; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8NdQ6sQK6sbuF/3OfxMkSqyFxR7SyIsz/5eOVHbyMFA=; b=pdS5hPN6kj1n0q0kQyEPiGR7o7ZUr3/1z+Bp6EgxdYvFsFf0vgD98WETbhtedJoB9VW00l ZZig8G4moGM/WWTcspImLk5CCFCh9La4RDtRqboVHq843maURr5ZJRJEDe1V4REa/MsAY9 gLke3G1vQjPwiN6Ns2cThHHCwqq5SkPIcEVmBwSv+N3X6OX7CxaFz55cwok+q4zCOQszyY nSpZOpmuYpMzk2QLrMvowlfQ8T6gIMZYqSZtUS59MCOuR5jOU1Ar4AEXAZkw7tGvJ6MFP3 7l308fZROZgxs6dcDhThxh24tudf2+6tnFZDmafPV9nTPfEENHu22+/4mi7vew== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770660257; a=rsa-sha256; cv=none; b=Ht/eiSvoqbbjcNmYJwAvOSW42B70BUz1X8btKaUsbNvxbuSmj9z47luBAJYLDcB24LZ1bn Nekg4tVFBAVtPCuXQ2Ra+ZxDyKV6wleRRuWf7Tn97GuICEDTV5LlQR8u/5V/bL02RmW8Id WCZVuj3VIWDjbMaaZLSMklNyDLPWi35z3Emz10BHwavmEiXcIosod8mCjJLeGUKAhnH5n6 7eMKhDas3vzM6Ua+2FAlaqKw5eahPecmX/JjTaK32en2A2LAT+A7tOQLvzp9SiQ+hqVeX+ tZhlC6iK7ooOKHQEweaMk8iJic4tuyFEYHlMoMQ2nkQ7JK6pfYTf7j5dSD6Afw== 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=1770660257; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8NdQ6sQK6sbuF/3OfxMkSqyFxR7SyIsz/5eOVHbyMFA=; b=dm4gSqoUPU74t0WgseuHuUTGHsiKQ6mzeOIaxvylcRURrt+YT7lpS1RTYDzSwnxRDEcLiA +sJ81/nkqJKNUqxZ0yNNTStUw+94cF9ImR/qcq/+aOi/ZHFpz5QESUtr5CC8ydnm7rJCDa OHwORrZYr+D2VXwsCByY1YeOMYEjXl53Cu8jxCh2SjJvJ1URBOs5rAn9K8ckN0GwmZuca5 RXHTrbHJBsrMJay7xb8nCDZm9eKKyi1ytCdI/5EBQa0qNggNufc4R2nTf/sG75M3IfLjqc n1gvM+n54gEO5s1sSCxy2mmfpaor8ADpNSfO9FUGB9JA5vVbk22tiN/zsIFCeQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8syn1vg9zkFx for ; Mon, 09 Feb 2026 18:04:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 30880 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 18:04:17 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: c55fcf37e52c - stable/15 - syslogd/tests: Use a helper function to log from within a jail 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: c55fcf37e52cb4026a3a040ce2a9fb5df96867d2 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 18:04:17 +0000 Message-Id: <698a21a1.30880.6bdd5c43@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=c55fcf37e52cb4026a3a040ce2a9fb5df96867d2 commit c55fcf37e52cb4026a3a040ce2a9fb5df96867d2 Author: Mark Johnston AuthorDate: 2026-01-22 15:50:14 +0000 Commit: Mark Johnston CommitDate: 2026-02-09 18:03:41 +0000 syslogd/tests: Use a helper function to log from within a jail This is just for consistency with all other logger(1) invocations, which happen from the syslogd_log() function. No functional change intended. Reviewed by: jlduran MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D54778 (cherry picked from commit ffdbc1bc2170226547fcad036f01f379625886dd) --- usr.sbin/syslogd/tests/syslogd_test.sh | 60 ++++++++++++++------------- usr.sbin/syslogd/tests/syslogd_test_common.sh | 7 ++++ 2 files changed, 38 insertions(+), 29 deletions(-) diff --git a/usr.sbin/syslogd/tests/syslogd_test.sh b/usr.sbin/syslogd/tests/syslogd_test.sh index 5422e78f6831..fbe390d93aae 100644 --- a/usr.sbin/syslogd/tests/syslogd_test.sh +++ b/usr.sbin/syslogd/tests/syslogd_test.sh @@ -419,15 +419,16 @@ allowed_peer_body() syslogd_start -j syslogd_allowed_peer -b 169.254.0.1:514 -a '169.254.0.2/32' # Make sure that a message from 169.254.0.2:514 is logged. - atf_check jexec syslogd_client \ - logger -p user.debug -t test1 -h 169.254.0.1 -S 169.254.0.2:514 "hello, world" + syslogd_log_jail syslogd_client \ + -p user.debug -t test1 -h 169.254.0.1 -S 169.254.0.2:514 "hello, world" atf_check -o match:"test1: hello, world" cat "${logfile}" + # ... but not a message from port 515. - atf_check -o ignore jexec syslogd_client \ - logger -p user.debug -t test2 -h 169.254.0.1 -S 169.254.0.2:515 "hello, world" + syslogd_log_jail syslogd_client \ + -p user.debug -t test2 -h 169.254.0.1 -S 169.254.0.2:515 "hello, world" atf_check -o not-match:"test2: hello, world" cat "${logfile}" - atf_check -o ignore jexec syslogd_client \ - logger -p user.debug -t test2 -h 169.254.0.1 -S 169.254.0.3:515 "hello, world" + syslogd_log_jail syslogd_client \ + -p user.debug -t test2 -h 169.254.0.1 -S 169.254.0.3:515 "hello, world" atf_check -o not-match:"test2: hello, world" cat "${logfile}" syslogd_stop @@ -435,11 +436,11 @@ allowed_peer_body() # Now make sure that we can filter by port. syslogd_start -j syslogd_allowed_peer -b 169.254.0.1:514 -a '169.254.0.2/32:515' - atf_check jexec syslogd_client \ - logger -p user.debug -t test3 -h 169.254.0.1 -S 169.254.0.2:514 "hello, world" + syslogd_log_jail syslogd_client \ + -p user.debug -t test3 -h 169.254.0.1 -S 169.254.0.2:514 "hello, world" atf_check -o not-match:"test3: hello, world" cat "${logfile}" - atf_check jexec syslogd_client \ - logger -p user.debug -t test4 -h 169.254.0.1 -S 169.254.0.2:515 "hello, world" + syslogd_log_jail syslogd_client \ + -p user.debug -t test4 -h 169.254.0.1 -S 169.254.0.2:515 "hello, world" atf_check -o match:"test4: hello, world" cat "${logfile}" syslogd_stop @@ -472,10 +473,10 @@ allowed_peer_forwarding_body() # A message forwarded to 169.254.0.1:514 should be logged, but one # forwarded to 169.254.0.1:515 should not. - atf_check jexec syslogd_client \ - logger -h 169.254.0.2 -p user.debug -t test1 "hello, world" - atf_check jexec syslogd_client \ - logger -h 169.254.0.2 -p mark.debug -t test2 "hello, world" + syslogd_log_jail syslogd_client \ + -h 169.254.0.2 -p user.debug -t test1 "hello, world" + syslogd_log_jail syslogd_client \ + -h 169.254.0.2 -p mark.debug -t test2 "hello, world" atf_check -o match:"test1: hello, world" cat "${logfile}" atf_check -o not-match:"test2: hello, world" cat "${logfile}" @@ -502,19 +503,19 @@ allowed_peer_wildcard_body() syslogd_start -j syslogd_allowed_peer -b 169.254.0.1:514 -a '169.254.0.2/32:*' # Make sure that a message from 169.254.0.2:514 is logged. - atf_check jexec syslogd_client \ - logger -p user.debug -t test1 -h 169.254.0.1 -S 169.254.0.2:514 "hello, world" + syslogd_log_jail syslogd_client \ + -p user.debug -t test1 -h 169.254.0.1 -S 169.254.0.2:514 "hello, world" atf_check -o match:"test1: hello, world" cat "${logfile}" # ... as is a message from 169.254.0.2:515, allowed by the wildcard. - atf_check jexec syslogd_client \ - logger -p user.debug -t test2 -h 169.254.0.1 -S 169.254.0.2:515 "hello, world" + syslogd_log_jail syslogd_client \ + -p user.debug -t test2 -h 169.254.0.1 -S 169.254.0.2:515 "hello, world" atf_check -o match:"test2: hello, world" cat "${logfile}" # ... but not a message from 169.254.0.3. - atf_check -o ignore jexec syslogd_client \ - logger -p user.debug -t test3 -h 169.254.0.1 -S 169.254.0.3:514 "hello, world" + syslogd_log_jail syslogd_client \ + -p user.debug -t test3 -h 169.254.0.1 -S 169.254.0.3:514 "hello, world" atf_check -o not-match:"test3: hello, world" cat "${logfile}" - atf_check -o ignore jexec syslogd_client \ - logger -p user.debug -t test3 -h 169.254.0.1 -S 169.254.0.3:515 "hello, world" + syslogd_log_jail syslogd_client \ + -p user.debug -t test3 -h 169.254.0.1 -S 169.254.0.3:515 "hello, world" atf_check -o not-match:"test3: hello, world" cat "${logfile}" syslogd_stop @@ -567,15 +568,16 @@ __EOF__ syslogd_start -j syslogd_server -f ${PWD}/server_config -b 169.254.0.1 -b 169.254.0.2 syslogd_start -j syslogd_client -f ${PWD}/client_config -P ${SYSLOGD_PIDFILE}.2 - atf_check jexec syslogd_client \ - logger -h 169.254.0.3 -P $SYSLOGD_UDP_PORT -p user.debug -t test1 "hello, world" - atf_check jexec syslogd_client \ - logger -h 169.254.0.3 -P $SYSLOGD_UDP_PORT -p mail.debug -t test2 "you've got mail" - atf_check jexec syslogd_client \ - logger -h 169.254.0.3 -P $SYSLOGD_UDP_PORT -p ftp.debug -t test3 "transfer complete" - + syslogd_log_jail syslogd_client \ + -h 169.254.0.3 -P $SYSLOGD_UDP_PORT -p user.debug -t test1 "hello, world" atf_check -o match:"test1: hello, world" cat "${logfile}" + + syslogd_log_jail syslogd_client \ + -h 169.254.0.3 -P $SYSLOGD_UDP_PORT -p mail.debug -t test2 "you've got mail" atf_check -o match:"test2: you've got mail" cat "${logfile}" + + syslogd_log_jail syslogd_client \ + -h 169.254.0.3 -P $SYSLOGD_UDP_PORT -p ftp.debug -t test3 "transfer complete" atf_check -o match:"test3: transfer complete" cat "${logfile}" } forward_cleanup() diff --git a/usr.sbin/syslogd/tests/syslogd_test_common.sh b/usr.sbin/syslogd/tests/syslogd_test_common.sh index f06eb417d423..87e9080d99ca 100644 --- a/usr.sbin/syslogd/tests/syslogd_test_common.sh +++ b/usr.sbin/syslogd/tests/syslogd_test_common.sh @@ -96,6 +96,13 @@ syslogd_log() atf_check -s exit:0 -o empty -e empty logger $* } +syslogd_log_jail() +{ + local jailname=$1 + shift + atf_check -s exit:0 -o empty -e empty jexec ${jailname} logger $* +} + # Make syslogd reload its configuration file. syslogd_reload() { From nobody Mon Feb 9 18:04:19 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 4f8syq5ktqz6RnNT for ; Mon, 09 Feb 2026 18:04: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f8syq411sz3tYv for ; Mon, 09 Feb 2026 18:04:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770660259; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PtNhlOROVNKoqZjVSTxTOkSF+pC8IpgWOr4GC8LqbEo=; b=rMSJHgU0qu/NNCDKgU6h6wZQS5By47nve1oaRNcB/dlW0mWlStn/BtPSG3qKm/vBd5d1ve 29k+tsHhDqyyRRCK7n5gwOz1at8l9bY26SP62HES6pH0z2emr1AwgW+VWNgSBFk+/13nO/ r85w7Be/TZ9+LVDrg5xyriwPGiPKOZkfqc0eftiafZ5wms+/GzwdLelkF9GuBSdlom07Wh AZMWYFHi+nkcxECtGfaKUOUjCHjsvSRwgG0f30Qldu8Q8g6AVwu0muKZF97wOzUb/SlRJw 08BWFzw01mT6PgChzSwnvXgqw5xmGUZh3fio58RYO+HeHlUJFDVzg9UDsSNk+Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770660259; a=rsa-sha256; cv=none; b=huQQvr67enCvtY3FI7G59yjblQFWY0bxIBn6XRM1HFkQGZ2fHTCZgv4DIhxFOHfnFyY598 HeguWBeEEyPScDkw8C0H/l3M9nTwOuZ1l4fO1EUPqLVt7Q022bHzLcJV+b0RJHrlwaqUYv MKA9SHn1+JA0zwNHBOSAn2EzlOOXX3z3XcBRQWyaFw6DaRW/KNWCmiOxyoyc/wbbOeLbta e6iSNL84iA9uuxzZr5nOw+sPEqUm9afQhblmKaNihAeAYU3vw3nUexzHSUrzDMYw/fgEK+ w20CtehuH3oZzHxtLOTUWVtYikIACUWW2iMgEwOLK8AsJXSJO3Bf6/GYr7NjAQ== 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=1770660259; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PtNhlOROVNKoqZjVSTxTOkSF+pC8IpgWOr4GC8LqbEo=; b=ygMIuaayAgi1jV+Vb5EyTrkTbGcRsmqcJisu9zIy96iB7DjPIJQ/K44USRi/wooERDsuVv NWxAZAP5CdIBSKsJRnMH7R/fQNS4BhCERWVaPJaVsQSYQBMPyloFI2S1sihoqvOrfLI4M0 v7hHBvf236owhrEStJJLFr+63Vp7rAUYdPE6WVByxF3Hqw7IprFodaxgjJPOtOrT84V/ly V/SJE3sBhsoCe93QdTyCbBU5/z+8QEzm44jx2/ZmOjuKAbKtEFfyCKH/macAS/cv0572+m jYNyTywJzFpodJ5uiTZfgZlh374DvqB3A7lgfjL/pDfbpvSa3Ao2QvN5ZJoaWA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8syq3VQ1zkfv for ; Mon, 09 Feb 2026 18:04:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27c85 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 18:04:19 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 6e7cf7fafa52 - stable/15 - syslogd/tests: Improve loopback interface initialization 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: 6e7cf7fafa528c2b06cfdc8498a822c3492c031a Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 18:04:19 +0000 Message-Id: <698a21a3.27c85.bcbbe88@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=6e7cf7fafa528c2b06cfdc8498a822c3492c031a commit 6e7cf7fafa528c2b06cfdc8498a822c3492c031a Author: Mark Johnston AuthorDate: 2026-01-22 15:51:42 +0000 Commit: Mark Johnston CommitDate: 2026-02-09 18:03:42 +0000 syslogd/tests: Improve loopback interface initialization - In syslogd_start(), assign the lo0 address in the specified jail. - Use the correct netmask. Reviewed by: jlduran MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D54799 (cherry picked from commit 92d251472edba6c1c16a899797982251c585d706) --- usr.sbin/syslogd/tests/syslogd_test.sh | 4 ---- usr.sbin/syslogd/tests/syslogd_test_common.sh | 8 +++++--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/usr.sbin/syslogd/tests/syslogd_test.sh b/usr.sbin/syslogd/tests/syslogd_test.sh index d43473eac12d..d4723b9e05b3 100644 --- a/usr.sbin/syslogd/tests/syslogd_test.sh +++ b/usr.sbin/syslogd/tests/syslogd_test.sh @@ -380,10 +380,8 @@ allowed_peer_test_setup() atf_check ifconfig ${epair}a vnet syslogd_allowed_peer atf_check ifconfig ${epair}b vnet syslogd_client atf_check jexec syslogd_allowed_peer ifconfig ${epair}a inet 169.254.0.1/16 - atf_check jexec syslogd_allowed_peer ifconfig lo0 inet 127.0.0.1/8 atf_check jexec syslogd_client ifconfig ${epair}b inet 169.254.0.2/16 atf_check jexec syslogd_client ifconfig ${epair}b alias 169.254.0.3/16 - atf_check jexec syslogd_client ifconfig lo0 inet 127.0.0.1/8 } allowed_peer_test_cleanup() @@ -529,12 +527,10 @@ forward_body() atf_check ifconfig ${epair}a vnet syslogd_server atf_check jexec syslogd_server ifconfig ${epair}a inet 169.254.0.1/16 atf_check jexec syslogd_server ifconfig ${epair}a alias 169.254.0.2/16 - atf_check jexec syslogd_server ifconfig lo0 inet 127.0.0.1/8 syslogd_mkjail syslogd_client vnet atf_check ifconfig ${epair}b vnet syslogd_client atf_check jexec syslogd_client ifconfig ${epair}b inet 169.254.0.3/16 - atf_check jexec syslogd_client ifconfig lo0 inet 127.0.0.1/8 cat <<__EOF__ > ./client_config user.debug @169.254.0.1 diff --git a/usr.sbin/syslogd/tests/syslogd_test_common.sh b/usr.sbin/syslogd/tests/syslogd_test_common.sh index a4aea07f8528..2f21137cf026 100644 --- a/usr.sbin/syslogd/tests/syslogd_test_common.sh +++ b/usr.sbin/syslogd/tests/syslogd_test_common.sh @@ -23,9 +23,6 @@ syslogd_start() local jail bind_arg conf_file pid_file socket privsocket local opt next other_args - # Setup loopback so we can deliver messages to ourself. - atf_check ifconfig lo0 inet 127.0.0.1/16 - OPTIND=1 while getopts ":b:f:j:P:p:S:" opt; do case "${opt}" in @@ -71,6 +68,11 @@ syslogd_start() esac done + # Setup loopback so we can deliver messages to ourself. + if [ $($jail sysctl -n security.jail.vnet) -ne 0 ]; then + atf_check $jail ifconfig lo0 inet 127.0.0.1/8 + fi + $jail syslogd \ ${bind_arg:--b :${SYSLOGD_UDP_PORT}} \ -C \ From nobody Mon Feb 9 18:04: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 4f8syp4kJ1z6RnfM for ; Mon, 09 Feb 2026 18:04: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f8syp3CFFz3tBF for ; Mon, 09 Feb 2026 18:04:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770660258; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=c644Pasmv9afujruQDy+6Oyl9yy+e5Rw2xIUtDiconc=; b=o2Wo1BW43zq6oawwXsBlIKhYueQO2TvqByv61JI6IwCUwJpqi85bTIJCKY4a7Fpqf4wAey 2JZ5QOLQgZU/3HPbIyxMi/KZTgidjDNoYnGFPhCvhUsjJC3EKuJYOXRa70scfwi4JZb+0v sDgQqC8q1+c5/HeX3fgFGJ++YRa6FMBF2AX+uUlI7i2CIcF9lQXwsx56BDQDXWcd2K5RDf knyEUf1Wo4AfCrffWnxcsjuMf8ixS80J9DRLdzCduhIDLbj79kvdxFLu5Zz6LxD07+Dbjr a4zuRpNQijvHn2lZWfTGc7Vq3f9wfwVJOoju1l4kg+lFHLJvNNfEYaXbBzuznQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770660258; a=rsa-sha256; cv=none; b=qFm9uH/mLteGNs6PAxcBis/RjhYkxvzzvbCcgfM74/9ZI+o+w3oKENfQsA9tNmfdN+aGmi Bmn71RHz1LRvjD618KGARmImERwWp4HAs4rtIpgsTmcOqyHSYWmSTxkgq19jj64qzpnnUj IjKSJCSNNkszcMSvIxofVbpAE4jZnp9m0DseeK9Jzr8IKACqN5jgaDMyk17LpKE7YHcylF Dm8+tKLl4lNmQyukHPBUKYvb8VYbMVMHMt8JkYV6xS0jRD7qpCcv16T38H+3Xy26r+SG4m klXX2zOMCqiJVf4Sc+ZhY2m6OxCna+mHLRaEoXYCirjSTfdcTjG5UnOZOJ1RHA== 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=1770660258; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=c644Pasmv9afujruQDy+6Oyl9yy+e5Rw2xIUtDiconc=; b=uxteq4ZDtSFvcO0QPEDVDbfWSA+Jw4am6de283n7zu2v53IGAfseWBpQkvyedjUK/EKwRA 8onjMokFDqU2Q3qpkypElvMM82vjDQeqpWQnouZSerwgJ/dyqHbOhlUu2al3x1Z6Yl/nvq GsWcMZSTq0m36a4etDE2B2T9WSpwm9fbIGhdwvX3cpwLXnlLRy2yY2fPqJqDO02MHB8Jmg y1w0++miON4iBwXUgOfmbOQaEGKXDfiZn68WT/MExiOWwKKPLfFbsBd6Fx/JAjOxlf1uU4 n9ZfLzyvpa3rVd0Q86cETFh8Q4fv1K3h2MzVixsW7q8S/eiTBr11VEDwI7hmkQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8syp2jyxzk8P for ; Mon, 09 Feb 2026 18:04:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27999 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 18:04:18 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: b4036ae6cc77 - stable/15 - syslogd/tests: Address races 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: b4036ae6cc779ddec1762a6dc720c74e06b32ba3 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 18:04:18 +0000 Message-Id: <698a21a2.27999.cb54e2e@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=b4036ae6cc779ddec1762a6dc720c74e06b32ba3 commit b4036ae6cc779ddec1762a6dc720c74e06b32ba3 Author: Mark Johnston AuthorDate: 2026-01-22 15:50:25 +0000 Commit: Mark Johnston CommitDate: 2026-02-09 18:03:42 +0000 syslogd/tests: Address races I occasionally see failures in the syslogd test suite. The problem is that the tests are racy: they send a message using logger(1), then immediately check whether the message was logged to a log file. If the syslogd instance under test doesn't get a chance to run before the second step, the test fails. This change reworks things to avoid the race while minimizing the amount of time sleeping. 1) Each test uses a single logfile, so have them use a new common variable, SYSLOGD_LOGFILE, instead of something test-specific. 2) In syslogd_start(), if the configuration references SYSLOGD_LOGFILE, wait for it to be created by syslogd before returning. 3) Add a helper syslogd_check_log(), to check for a given log entry in the last line of SYSLOGD_LOGFILE, instead of using atf_check directly. 4) In syslogd_check_log(), poll the logfile until the desired log entry appears, or the test times out. With this change, I was able to run the tests 1000 times in a loop with 4-way parallelism without seeing any test failures. Without the change I usually get a failure within 10 loops. Reviewed by: jlduran MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D54779 (cherry picked from commit 560c22937ba96e8bab57de395dcf340ecf8d6794) --- .../syslogd/tests/syslogd_basic_format_test.sh | 28 +-- .../syslogd/tests/syslogd_format_test_common.sh | 1 - .../syslogd/tests/syslogd_forwarded_format_test.sh | 42 ++-- .../syslogd/tests/syslogd_relayed_format_test.sh | 30 +-- usr.sbin/syslogd/tests/syslogd_test.sh | 241 ++++++++++----------- usr.sbin/syslogd/tests/syslogd_test_common.sh | 33 +++ 6 files changed, 184 insertions(+), 191 deletions(-) diff --git a/usr.sbin/syslogd/tests/syslogd_basic_format_test.sh b/usr.sbin/syslogd/tests/syslogd_basic_format_test.sh index 09477a568ba8..219c3e045676 100644 --- a/usr.sbin/syslogd/tests/syslogd_basic_format_test.sh +++ b/usr.sbin/syslogd/tests/syslogd_basic_format_test.sh @@ -11,9 +11,8 @@ setup_basic_format_test() { local format="$1" - local logfile="$2" - printf "user.debug\t${logfile}\n" > "${SYSLOGD_CONFIG}" + printf "user.debug\t${SYSLOGD_LOGFILE}\n" > "${SYSLOGD_CONFIG}" syslogd_start \ -O "${format}" \ @@ -33,11 +32,10 @@ O_flag_bsd_basic_head() O_flag_bsd_basic_body() { local format="bsd" - local logfile="${PWD}/O_flag_${format}_basic.log" - setup_basic_format_test "${format}" "${logfile}" + setup_basic_format_test "${format}" - atf_check -s exit:0 -o match:"${REGEX_RFC3164_LOGFILE}" cat "${logfile}" + syslogd_check_log "${REGEX_RFC3164_LOGFILE}" } O_flag_bsd_basic_cleanup() { @@ -52,11 +50,10 @@ O_flag_rfc3164_basic_head() O_flag_rfc3164_basic_body() { local format="rfc3164" - local logfile="${PWD}/O_flag_${format}_basic.log" - setup_basic_format_test "${format}" "${logfile}" + setup_basic_format_test "${format}" - atf_check -s exit:0 -o match:"${REGEX_RFC3164_LOGFILE}" cat "${logfile}" + syslogd_check_log "${REGEX_RFC3164_LOGFILE}" } O_flag_rfc3164_basic_cleanup() { @@ -71,11 +68,10 @@ O_flag_rfc3164strict_basic_head() O_flag_rfc3164strict_basic_body() { local format="rfc3164-strict" - local logfile="${PWD}/O_flag_${format}_basic.log" - setup_basic_format_test "${format}" "${logfile}" + setup_basic_format_test "${format}" - atf_check -s exit:0 -o match:"${REGEX_RFC3164_LOGFILE}" cat "${logfile}" + syslogd_check_log "${REGEX_RFC3164_LOGFILE}" } O_flag_rfc3164strict_basic_cleanup() { @@ -90,11 +86,10 @@ O_flag_syslog_basic_head() O_flag_syslog_basic_body() { local format="syslog" - local logfile="${PWD}/O_flag_${format}_basic.log" - setup_basic_format_test "${format}" "${logfile}" + setup_basic_format_test "${format}" - atf_check -s exit:0 -o match:"${REGEX_RFC5424_LOGFILE}" cat "${logfile}" + syslogd_check_log "${REGEX_RFC5424_LOGFILE}" } O_flag_syslog_basic_cleanup() { @@ -109,11 +104,10 @@ O_flag_rfc5424_basic_head() O_flag_rfc5424_basic_body() { local format="rfc5424" - local logfile="${PWD}/O_flag_${format}_basic.log" - setup_basic_format_test "${format}" "${logfile}" + setup_basic_format_test "${format}" - atf_check -s exit:0 -o match:"${REGEX_RFC5424_LOGFILE}" cat "${logfile}" + syslogd_check_log "${REGEX_RFC5424_LOGFILE}" } O_flag_rfc5424_basic_cleanup() { diff --git a/usr.sbin/syslogd/tests/syslogd_format_test_common.sh b/usr.sbin/syslogd/tests/syslogd_format_test_common.sh index 995bb048881b..99623015c15d 100644 --- a/usr.sbin/syslogd/tests/syslogd_format_test_common.sh +++ b/usr.sbin/syslogd/tests/syslogd_format_test_common.sh @@ -55,7 +55,6 @@ confirm_INET_support_or_skip() set_common_atf_metadata() { - atf_set timeout 5 atf_set require.user root } diff --git a/usr.sbin/syslogd/tests/syslogd_forwarded_format_test.sh b/usr.sbin/syslogd/tests/syslogd_forwarded_format_test.sh index b17627a935c8..db607a33d093 100644 --- a/usr.sbin/syslogd/tests/syslogd_forwarded_format_test.sh +++ b/usr.sbin/syslogd/tests/syslogd_forwarded_format_test.sh @@ -14,8 +14,7 @@ SERVER_2_PORT="5141" setup_forwarded_format_test() { local format="$1" - local logfile="$2" - local pcapfile="$3" + local pcapfile="$2" confirm_INET_support_or_skip @@ -25,7 +24,7 @@ setup_forwarded_format_test() tcpdump_pid="$!" # Start first server: receive UDP, log to file - printf "user.debug\t${logfile}\n" > "$(config_filename ${SERVER_1_PORT})" + printf "user.debug\t${SYSLOGD_LOGFILE}\n" > "$(config_filename ${SERVER_1_PORT})" syslogd_start_on_port "${SERVER_1_PORT}" -O "${format}" # Start second server: send UDP, log to first server @@ -49,14 +48,13 @@ O_flag_bsd_forwarded_head() O_flag_bsd_forwarded_body() { local format="bsd" - local logfile="${PWD}/${format}_forwarded.log" local pcapfile="${PWD}/${format}_forwarded.pcap" - setup_forwarded_format_test "${format}" "${logfile}" "${pcapfile}" + setup_forwarded_format_test "${format}" "${pcapfile}" atf_expect_fail \ "PR 220246 syslog -O bsd deviates from RFC 3164 recommendations" - atf_check -s exit:0 -o match:"${REGEX_RFC3164_LOGFILE}" cat "${logfile}" + syslogd_check_log "${REGEX_RFC3164_LOGFILE}" atf_check -s exit:0 -e ignore -o match:"${REGEX_RFC3164_PAYLOAD}" \ tcpdump -A -r "${pcapfile}" } @@ -76,14 +74,13 @@ O_flag_rfc3164_forwarded_head() O_flag_rfc3164_forwarded_body() { local format="rfc3164" - local logfile="${PWD}/${format}_forwarded.log" local pcapfile="${PWD}/${format}_forwarded.pcap" - setup_forwarded_format_test "${format}" "${logfile}" "${pcapfile}" + setup_forwarded_format_test "${format}" "${pcapfile}" atf_expect_fail \ "PR 220246 syslog -O rfc3164 deviates from RFC 3164 recommendations" - atf_check -s exit:0 -o match:"${REGEX_RFC3164_LOGFILE}" cat "${logfile}" + syslogd_check_log "${REGEX_RFC3164_LOGFILE}" atf_check -s exit:0 -e ignore -o match:"${REGEX_RFC3164_PAYLOAD}" \ tcpdump -A -r "${pcapfile}" } @@ -103,12 +100,11 @@ O_flag_rfc3164strict_forwarded_head() O_flag_rfc3164strict_forwarded_body() { local format="rfc3164-strict" - local logfile="${PWD}/${format}_forwarded.log" local pcapfile="${PWD}/${format}_forwarded.pcap" - setup_forwarded_format_test "${format}" "${logfile}" "${pcapfile}" + setup_forwarded_format_test "${format}" "${pcapfile}" - atf_check -s exit:0 -o match:"${REGEX_RFC3164_LOGFILE}" cat "${logfile}" + syslogd_check_log "${REGEX_RFC3164_LOGFILE}" atf_check -s exit:0 -e ignore -o match:"${REGEX_RFC3164_PAYLOAD}" \ tcpdump -A -r "${pcapfile}" } @@ -128,12 +124,11 @@ O_flag_syslog_forwarded_head() O_flag_syslog_forwarded_body() { local format="syslog" - local logfile="${PWD}/${format}_forwarded.log" local pcapfile="${PWD}/${format}_forwarded.pcap" - setup_forwarded_format_test "${format}" "${logfile}" "${pcapfile}" + setup_forwarded_format_test "${format}" "${pcapfile}" - atf_check -s exit:0 -o match:"${REGEX_RFC5424_LOGFILE}" cat "${logfile}" + syslogd_check_log "${REGEX_RFC5424_LOGFILE}" atf_check -s exit:0 -e ignore -o match:"${REGEX_RFC5424_PAYLOAD}" \ tcpdump -A -r "${pcapfile}" } @@ -153,12 +148,11 @@ O_flag_rfc5424_forwarded_head() O_flag_rfc5424_forwarded_body() { local format="rfc5424" - local logfile="${PWD}/${format}_forwarded.log" local pcapfile="${PWD}/${format}_forwarded.pcap" - setup_forwarded_format_test "${format}" "${logfile}" "${pcapfile}" + setup_forwarded_format_test "${format}" "${pcapfile}" - atf_check -s exit:0 -o match:"${REGEX_RFC5424_LOGFILE}" cat "${logfile}" + syslogd_check_log "${REGEX_RFC5424_LOGFILE}" atf_check -s exit:0 -e ignore -o match:"${REGEX_RFC5424_PAYLOAD}" \ tcpdump -A -r "${pcapfile}" } @@ -180,13 +174,11 @@ O_flag_bsd_forwarded_legacy_head() O_flag_bsd_forwarded_legacy_body() { local format="bsd" - local logfile="${PWD}/${format}_forwarded_legacy.log" local pcapfile="${PWD}/${format}_forwarded.pcap" - setup_forwarded_format_test "${format}" "${logfile}" "${pcapfile}" + setup_forwarded_format_test "${format}" "${pcapfile}" - atf_check -s exit:0 -o match:"${REGEX_RFC3164_LEGACY_LOGFILE}" \ - cat "${logfile}" + syslogd_check_log "${REGEX_RFC3164_LEGACY_LOGFILE}" atf_check -s exit:0 -e ignore \ -o match:"${REGEX_RFC3164_LEGACY_PAYLOAD}" \ tcpdump -A -r "${pcapfile}" @@ -208,13 +200,11 @@ O_flag_rfc3164_forwarded_legacy_head() O_flag_rfc3164_forwarded_legacy_body() { local format="rfc3164" - local logfile="${PWD}/${format}_forwarded_legacy.log" local pcapfile="${PWD}/${format}_forwarded.pcap" - setup_forwarded_format_test "${format}" "${logfile}" "${pcapfile}" + setup_forwarded_format_test "${format}" "${pcapfile}" - atf_check -s exit:0 -o match:"${REGEX_RFC3164_LEGACY_LOGFILE}" \ - cat "${logfile}" + syslogd_check_log "${REGEX_RFC3164_LEGACY_LOGFILE}" atf_check -s exit:0 -e ignore \ -o match:"${REGEX_RFC3164_LEGACY_PAYLOAD}" \ tcpdump -A -r "${pcapfile}" diff --git a/usr.sbin/syslogd/tests/syslogd_relayed_format_test.sh b/usr.sbin/syslogd/tests/syslogd_relayed_format_test.sh index d3e0db4e0f1c..6a5aeba77a25 100644 --- a/usr.sbin/syslogd/tests/syslogd_relayed_format_test.sh +++ b/usr.sbin/syslogd/tests/syslogd_relayed_format_test.sh @@ -15,8 +15,7 @@ readonly SERVER_3_PORT="5142" setup_relayed_format_test() { local format="$1" - local logfile="$2" - local pcapfile="$3" + local pcapfile="$2" confirm_INET_support_or_skip @@ -26,7 +25,7 @@ setup_relayed_format_test() tcpdump_pid="$!" # Start first (central) server: receive UDP, log to file - printf "user.debug\t${logfile}\n" \ + printf "user.debug\t${SYSLOGD_LOGFILE}\n" \ > "$(config_filename ${SERVER_1_PORT})" syslogd_start_on_port "${SERVER_1_PORT}" -O "${format}" @@ -56,13 +55,12 @@ O_flag_bsd_relayed_head() O_flag_bsd_relayed_body() { local format="bsd" - local logfile="${PWD}/${format}_relayed.log" local pcapfile="${PWD}/${format}_relayed.pcap" - setup_relayed_format_test "${format}" "${logfile}" "${pcapfile}" + setup_relayed_format_test "${format}" "${pcapfile}" atf_expect_fail "PR 220246 issue with the legacy bsd format" - atf_check -s exit:0 -o match:"${REGEX_RFC3164_LOGFILE}" cat "${logfile}" + syslogd_check_log "${REGEX_RFC3164_LOGFILE}" atf_check -s exit:0 -e ignore -o match:"${REGEX_RFC3164_PAYLOAD}" \ tcpdump -A -r "${pcapfile}" } @@ -83,13 +81,12 @@ O_flag_rfc3164_relayed_head() O_flag_rfc3164_relayed_body() { local format="rfc3164" - local logfile="${PWD}/${format}_relayed.log" local pcapfile="${PWD}/${format}_relayed.pcap" - setup_relayed_format_test "${format}" "${logfile}" "${pcapfile}" + setup_relayed_format_test "${format}" "${pcapfile}" atf_expect_fail "PR 220246 issue with the legacy rfc3164 format" - atf_check -s exit:0 -o match:"${REGEX_RFC3164_LOGFILE}" cat "${logfile}" + syslogd_check_log "${REGEX_RFC3164_LOGFILE}" atf_check -s exit:0 -e ignore -o match:"${REGEX_RFC3164_PAYLOAD}" \ tcpdump -A -r "${pcapfile}" } @@ -110,12 +107,11 @@ O_flag_rfc3164strict_relayed_head() O_flag_rfc3164strict_relayed_body() { local format="rfc3164-strict" - local logfile="${PWD}/${format}_relayed.log" local pcapfile="${PWD}/${format}_relayed.pcap" - setup_relayed_format_test "${format}" "${logfile}" "${pcapfile}" + setup_relayed_format_test "${format}" "${pcapfile}" - atf_check -s exit:0 -o match:"${REGEX_RFC3164_LOGFILE}" cat "${logfile}" + syslogd_check_log "${REGEX_RFC3164_LOGFILE}" atf_check -s exit:0 -e ignore -o match:"${REGEX_RFC3164_PAYLOAD}" \ tcpdump -A -r "${pcapfile}" } @@ -136,12 +132,11 @@ O_flag_syslog_relayed_head() O_flag_syslog_relayed_body() { local format="syslog" - local logfile="${PWD}/${format}_relayed.log" local pcapfile="${PWD}/${format}_relayed.pcap" - setup_relayed_format_test "${format}" "${logfile}" "${pcapfile}" + setup_relayed_format_test "${format}" "${pcapfile}" - atf_check -s exit:0 -o match:"${REGEX_RFC5424_LOGFILE}" cat "${logfile}" + syslogd_check_log "${REGEX_RFC5424_LOGFILE}" atf_check -s exit:0 -e ignore -o match:"${REGEX_RFC5424_PAYLOAD}" \ tcpdump -A -r "${pcapfile}" } @@ -162,12 +157,11 @@ O_flag_rfc5424_relayed_head() O_flag_rfc5424_relayed_body() { local format="rfc5424" - local logfile="${PWD}/${format}_relayed.log" local pcapfile="${PWD}/${format}_relayed.pcap" - setup_relayed_format_test "${format}" "${logfile}" "${pcapfile}" + setup_relayed_format_test "${format}" "${pcapfile}" - atf_check -s exit:0 -o match:"${REGEX_RFC5424_LOGFILE}" cat "${logfile}" + syslogd_check_log "${REGEX_RFC5424_LOGFILE}" atf_check -s exit:0 -e ignore -o match:"${REGEX_RFC5424_PAYLOAD}" \ tcpdump -A -r "${pcapfile}" } diff --git a/usr.sbin/syslogd/tests/syslogd_test.sh b/usr.sbin/syslogd/tests/syslogd_test.sh index fbe390d93aae..d43473eac12d 100644 --- a/usr.sbin/syslogd/tests/syslogd_test.sh +++ b/usr.sbin/syslogd/tests/syslogd_test.sh @@ -23,15 +23,12 @@ unix_head() } unix_body() { - local logfile="${PWD}/unix.log" - - printf "user.debug\t${logfile}\n" > "${SYSLOGD_CONFIG}" + printf "user.debug\t${SYSLOGD_LOGFILE}\n" > "${SYSLOGD_CONFIG}" syslogd_start syslogd_log -p user.debug -t unix -h "${SYSLOGD_LOCAL_SOCKET}" \ "hello, world (unix)" - atf_check -s exit:0 -o match:"unix: hello, world \(unix\)" \ - tail -n 1 "${logfile}" + syslogd_check_log "unix: hello, world \(unix\)" } unix_cleanup() { @@ -45,19 +42,16 @@ inet_head() } inet_body() { - local logfile="${PWD}/inet.log" - [ "$(sysctl -n kern.features.inet)" != "1" ] && atf_skip "Kernel does not support INET" - printf "user.debug\t${logfile}\n" > "${SYSLOGD_CONFIG}" + printf "user.debug\t${SYSLOGD_LOGFILE}\n" > "${SYSLOGD_CONFIG}" syslogd_start # We have INET transport; make sure we can use it. syslogd_log -4 -p user.debug -t inet -h 127.0.0.1 -P "${SYSLOGD_UDP_PORT}" \ "hello, world (v4)" - atf_check -s exit:0 -o match:"inet: hello, world \(v4\)" \ - tail -n 1 "${logfile}" + syslogd_check_log "inet: hello, world \(v4\)" } inet_cleanup() { @@ -71,19 +65,16 @@ inet6_head() } inet6_body() { - local logfile="${PWD}/inet6.log" - [ "$(sysctl -n kern.features.inet6)" != "1" ] && atf_skip "Kernel does not support INET6" - printf "user.debug\t${logfile}\n" > "${SYSLOGD_CONFIG}" + printf "user.debug\t${SYSLOGD_LOGFILE}\n" > "${SYSLOGD_CONFIG}" syslogd_start # We have INET6 transport; make sure we can use it. syslogd_log -6 -p user.debug -t unix -h ::1 -P "${SYSLOGD_UDP_PORT}" \ "hello, world (v6)" - atf_check -s exit:0 -o match:"unix: hello, world \(v6\)" \ - tail -n 1 "${logfile}" + syslogd_check_log "unix: hello, world \(v6\)" } inet6_cleanup() { @@ -97,25 +88,24 @@ reload_head() } reload_body() { - logfile="${PWD}/reload.log" - printf "user.debug\t/${logfile}\n" > "${SYSLOGD_CONFIG}" + printf "user.debug\t${SYSLOGD_LOGFILE}\n" > "${SYSLOGD_CONFIG}" syslogd_start syslogd_log -p user.debug -t reload -h "${SYSLOGD_LOCAL_SOCKET}" \ "pre-reload" - atf_check -s exit:0 -o match:"reload: pre-reload" tail -n 1 "${logfile}" + syslogd_check_log "reload: pre-reload" # Override the old rule. - truncate -s 0 "${logfile}" - printf "news.debug\t${logfile}\n" > "${SYSLOGD_CONFIG}" + printf "news.debug\t${SYSLOGD_LOGFILE}\n" > "${SYSLOGD_CONFIG}" syslogd_reload syslogd_log -p user.debug -t reload -h "${SYSLOGD_LOCAL_SOCKET}" \ "post-reload user" syslogd_log -p news.debug -t reload -h "${SYSLOGD_LOCAL_SOCKET}" \ "post-reload news" - atf_check -s exit:0 -o not-match:"reload: post-reload user" cat ${logfile} - atf_check -s exit:0 -o match:"reload: post-reload news" cat ${logfile} + sleep 0.5 + syslogd_check_log_nopoll "reload: post-reload news" + syslogd_check_log_nomatch "reload: post-reload user" } reload_cleanup() { @@ -129,30 +119,36 @@ prog_filter_head() } prog_filter_body() { - logfile="${PWD}/prog_filter.log" - printf "!prog1,prog2\nuser.debug\t${logfile}\n" > "${SYSLOGD_CONFIG}" + printf "!prog1,prog2\nuser.debug\t${SYSLOGD_LOGFILE}\n" > "${SYSLOGD_CONFIG}" syslogd_start - for i in 1 2 3; do - syslogd_log -p user.debug -t "prog${i}" -h "${SYSLOGD_LOCAL_SOCKET}" \ - "hello this is prog${i}" - done - atf_check -s exit:0 -o match:"prog1: hello this is prog1" cat "${logfile}" - atf_check -s exit:0 -o match:"prog2: hello this is prog2" cat "${logfile}" - atf_check -s exit:0 -o not-match:"prog3: hello this is prog3" cat "${logfile}" + syslogd_log -p user.debug -t "prog1" -h "${SYSLOGD_LOCAL_SOCKET}" \ + "hello this is prog1" + syslogd_check_log "prog1: hello this is prog1" + + syslogd_log -p user.debug -t "prog2" -h "${SYSLOGD_LOCAL_SOCKET}" \ + "hello this is prog2" + syslogd_check_log "prog2: hello this is prog2" + + syslogd_log -p user.debug -t "prog3" -h "${SYSLOGD_LOCAL_SOCKET}" \ + "hello this is prog3" + syslogd_check_log_nomatch "prog3: hello this is prog3" # Override the old rule. - truncate -s 0 ${logfile} - printf "!-prog1,prog2\nuser.debug\t${logfile}\n" > "${SYSLOGD_CONFIG}" + printf "!-prog1,prog2\nuser.debug\t${SYSLOGD_LOGFILE}\n" > "${SYSLOGD_CONFIG}" syslogd_reload - for i in 1 2 3; do - syslogd_log -p user.debug -t "prog${i}" -h "${SYSLOGD_LOCAL_SOCKET}" \ - "hello this is prog${i}" - done - atf_check -s exit:0 -o not-match:"prog1: hello this is prog1" cat "${logfile}" - atf_check -s exit:0 -o not-match:"prog2: hello this is prog2" cat "${logfile}" - atf_check -s exit:0 -o match:"prog3: hello this is prog3" cat "${logfile}" + syslogd_log -p user.debug -t "prog1" -h "${SYSLOGD_LOCAL_SOCKET}" \ + "hello this is prog1" + syslogd_check_log_nomatch "prog1: hello this is prog1" + + syslogd_log -p user.debug -t "prog2" -h "${SYSLOGD_LOCAL_SOCKET}" \ + "hello this is prog2" + syslogd_check_log_nomatch "prog2: hello this is prog2" + + syslogd_log -p user.debug -t "prog3" -h "${SYSLOGD_LOCAL_SOCKET}" \ + "hello this is prog3" + syslogd_check_log "prog3: hello this is prog3" } prog_filter_cleanup() { @@ -166,30 +162,32 @@ host_filter_head() } host_filter_body() { - logfile="${PWD}/host_filter.log" - printf "+host1,host2\nuser.debug\t${logfile}\n" > "${SYSLOGD_CONFIG}" + printf "+host1,host2\nuser.debug\t${SYSLOGD_LOGFILE}\n" > "${SYSLOGD_CONFIG}" syslogd_start - for i in 1 2 3; do - syslogd_log -p user.debug -t "host${i}" -H "host${i}" \ - -h "${SYSLOGD_LOCAL_SOCKET}" "hello this is host${i}" - done - atf_check -s exit:0 -o match:"host1: hello this is host1" cat "${logfile}" - atf_check -s exit:0 -o match:"host2: hello this is host2" cat "${logfile}" - atf_check -s exit:0 -o not-match:"host3: hello this is host3" cat "${logfile}" + syslogd_log -p user.debug -t "host1" -H "host1" \ + -h "${SYSLOGD_LOCAL_SOCKET}" "hello this is host1" + syslogd_check_log "host1: hello this is host1" + syslogd_log -p user.debug -t "host2" -H "host2" \ + -h "${SYSLOGD_LOCAL_SOCKET}" "hello this is host2" + syslogd_check_log "host2: hello this is host2" + syslogd_log -p user.debug -t "host3" -H "host3" \ + -h "${SYSLOGD_LOCAL_SOCKET}" "hello this is host3" + syslogd_check_log_nomatch "host3: hello this is host3" # Override the old rule. - truncate -s 0 ${logfile} - printf "\-host1,host2\nuser.debug\t${logfile}\n" > "${SYSLOGD_CONFIG}" + printf "\-host1,host2\nuser.debug\t${SYSLOGD_LOGFILE}\n" > "${SYSLOGD_CONFIG}" syslogd_reload - for i in 1 2 3; do - syslogd_log -p user.debug -t "host${i}" -H "host${i}" \ - -h "${SYSLOGD_LOCAL_SOCKET}" "hello this is host${i}" - done - atf_check -s exit:0 -o not-match:"host1: hello this is host1" cat "${logfile}" - atf_check -s exit:0 -o not-match:"host2: hello this is host2" cat "${logfile}" - atf_check -s exit:0 -o match:"host3: hello this is host3" cat "${logfile}" + syslogd_log -p user.debug -t "host1" -H "host1" \ + -h "${SYSLOGD_LOCAL_SOCKET}" "hello this is host1" + syslogd_check_log_nomatch "host1: hello this is host1" + syslogd_log -p user.debug -t "host2" -H "host2" \ + -h "${SYSLOGD_LOCAL_SOCKET}" "hello this is host2" + syslogd_check_log_nomatch "host2: hello this is host2" + syslogd_log -p user.debug -t "host3" -H "host3" \ + -h "${SYSLOGD_LOCAL_SOCKET}" "hello this is host3" + syslogd_check_log "host3: hello this is host3" } host_filter_cleanup() { @@ -203,47 +201,43 @@ prop_filter_head() } prop_filter_body() { - logfile="${PWD}/prop_filter.log" - printf ":msg,contains,\"FreeBSD\"\nuser.debug\t${logfile}\n" \ + printf ":msg,contains,\"FreeBSD\"\nuser.debug\t${SYSLOGD_LOGFILE}\n" \ > "${SYSLOGD_CONFIG}" syslogd_start syslogd_log -p user.debug -t "prop1" -h "${SYSLOGD_LOCAL_SOCKET}" "FreeBSD" syslogd_log -p user.debug -t "prop2" -h "${SYSLOGD_LOCAL_SOCKET}" "freebsd" - atf_check -s exit:0 -o match:"prop1: FreeBSD" cat "${logfile}" - atf_check -s exit:0 -o not-match:"prop2: freebsd" cat "${logfile}" + syslogd_check_log "prop1: FreeBSD" + syslogd_check_log_nomatch "prop2: freebsd" - truncate -s 0 ${logfile} - printf ":msg,!contains,\"FreeBSD\"\nuser.debug\t${logfile}\n" \ + printf ":msg,!contains,\"FreeBSD\"\nuser.debug\t${SYSLOGD_LOGFILE}\n" \ > "${SYSLOGD_CONFIG}" syslogd_reload syslogd_log -p user.debug -t "prop1" -h "${SYSLOGD_LOCAL_SOCKET}" "FreeBSD" syslogd_log -p user.debug -t "prop2" -h "${SYSLOGD_LOCAL_SOCKET}" "freebsd" - atf_check -s exit:0 -o not-match:"prop1: FreeBSD" cat "${logfile}" - atf_check -s exit:0 -o match:"prop2: freebsd" cat "${logfile}" + syslogd_check_log_nomatch "prop1: FreeBSD" + syslogd_check_log "prop2: freebsd" - truncate -s 0 ${logfile} - printf ":msg,icase_contains,\"FreeBSD\"\nuser.debug\t${logfile}\n" \ + printf ":msg,icase_contains,\"FreeBSD\"\nuser.debug\t${SYSLOGD_LOGFILE}\n" \ > "${SYSLOGD_CONFIG}" syslogd_reload syslogd_log -p user.debug -t "prop1" -h "${SYSLOGD_LOCAL_SOCKET}" "FreeBSD" + syslogd_check_log "prop1: FreeBSD" syslogd_log -p user.debug -t "prop2" -h "${SYSLOGD_LOCAL_SOCKET}" "freebsd" - atf_check -s exit:0 -o match:"prop1: FreeBSD" cat "${logfile}" - atf_check -s exit:0 -o match:"prop2: freebsd" cat "${logfile}" + syslogd_check_log "prop2: freebsd" - truncate -s 0 ${logfile} - printf ":msg,!icase_contains,\"FreeBSD\"\nuser.debug\t${logfile}\n" \ + printf ":msg,!icase_contains,\"FreeBSD\"\nuser.debug\t${SYSLOGD_LOGFILE}\n" \ > "${SYSLOGD_CONFIG}" syslogd_reload syslogd_log -p user.debug -t "prop1" -h "${SYSLOGD_LOCAL_SOCKET}" "FreeBSD" syslogd_log -p user.debug -t "prop2" -h "${SYSLOGD_LOCAL_SOCKET}" "freebsd" syslogd_log -p user.debug -t "prop3" -h "${SYSLOGD_LOCAL_SOCKET}" "Solaris" - atf_check -s exit:0 -o not-match:"prop1: FreeBSD" cat "${logfile}" - atf_check -s exit:0 -o not-match:"prop2: freebsd" cat "${logfile}" - atf_check -s exit:0 -o match:"prop3: Solaris" cat "${logfile}" + syslogd_check_log_nomatch "prop1: FreeBSD" + syslogd_check_log_nomatch "prop2: freebsd" + syslogd_check_log "prop3: Solaris" } prop_filter_cleanup() { @@ -258,13 +252,12 @@ host_action_head() host_action_body() { local addr="192.0.2.100" - local logfile="${PWD}/host_action.log" atf_check ifconfig lo1 create atf_check ifconfig lo1 inet "${addr}/24" atf_check ifconfig lo1 up - printf "user.debug\t${logfile}\n" > "${SYSLOGD_CONFIG}" + printf "user.debug\t${SYSLOGD_LOGFILE}\n" > "${SYSLOGD_CONFIG}" syslogd_start -b "${addr}" printf "user.debug\t@${addr}\n" > "${SYSLOGD_CONFIG}.2" @@ -276,8 +269,7 @@ host_action_body() syslogd_log -p user.debug -t "test" -h "${SYSLOGD_LOCAL_SOCKET}.2" \ "message from syslogd2" - atf_check -s exit:0 -o match:"test: message from syslogd2" \ - cat "${logfile}" + syslogd_check_log "test: message from syslogd2" } host_action_cleanup() { @@ -296,17 +288,17 @@ pipe_action_head() } pipe_action_body() { - logfile="${PWD}/pipe_action.log" printf "\"While I'm digging in the tunnel, the elves will often come to me \ - with solutions to my problem.\"\n-Saymore Crey" > ${logfile} + with solutions to my problem.\"\n-Saymore Crey" > testfile printf "!pipe\nuser.debug\t| sed -i '' -e 's/Saymore Crey/Seymour Cray/g' \ - ${logfile}\n" > "${SYSLOGD_CONFIG}" + testfile\n" > "${SYSLOGD_CONFIG}" syslogd_start syslogd_log -p user.debug -t "pipe" -h "${SYSLOGD_LOCAL_SOCKET}" \ "fix spelling error" - atf_check -s exit:0 -o match:"Seymour Cray" cat "${logfile}" + sleep 0.5 + atf_check -o match:"Seymour Cray" cat testfile } pipe_action_cleanup() { @@ -320,16 +312,15 @@ pipe_action_reload_head() } pipe_action_reload_body() { - local logfile="${PWD}/pipe_reload.log" local pipecmd="${PWD}/pipe_cmd.sh" cat <<__EOF__ > "${pipecmd}" #!/bin/sh -echo START > ${logfile} +echo START > ${SYSLOGD_LOGFILE} while read msg; do - echo \${msg} >> ${logfile} + echo \${msg} >> ${SYSLOGD_LOGFILE} done -echo END >> ${logfile} +echo END >> ${SYSLOGD_LOGFILE} exit 0 __EOF__ chmod +x "${pipecmd}" @@ -338,8 +329,9 @@ __EOF__ syslogd_start syslogd_log -p user.debug -t "pipe" -h "${SYSLOGD_LOCAL_SOCKET}" "MSG" - syslogd_reload - atf_check -s exit:0 -o match:"END" tail -n 1 "${logfile}" + atf_check pkill -HUP -F "${1:-${SYSLOGD_PIDFILE}}" + sleep 0.1 + syslogd_check_log_nopoll "END" } pipe_action_reload_cleanup() { @@ -354,17 +346,14 @@ jail_noinet_head() } jail_noinet_body() { - local logfile - syslogd_mkjail syslogd_noinet - logfile="${PWD}/jail_noinet.log" - printf "user.debug\t${logfile}\n" > "${SYSLOGD_CONFIG}" + printf "user.debug\t${SYSLOGD_LOGFILE}\n" > "${SYSLOGD_CONFIG}" syslogd_start -j syslogd_noinet -s -s syslogd_log -p user.debug -t "test" -h "${SYSLOGD_LOCAL_SOCKET}" \ "hello, world" - atf_check -s exit:0 -o match:"test: hello, world" cat "${logfile}" + syslogd_check_log "test: hello, world" } jail_noinet_cleanup() { @@ -410,26 +399,25 @@ allowed_peer_head() } allowed_peer_body() { - local logfile - allowed_peer_test_setup - logfile="${PWD}/jail.log" - printf "user.debug\t${logfile}\n" > "${SYSLOGD_CONFIG}" + printf "user.debug\t${SYSLOGD_LOGFILE}\n" > "${SYSLOGD_CONFIG}" syslogd_start -j syslogd_allowed_peer -b 169.254.0.1:514 -a '169.254.0.2/32' # Make sure that a message from 169.254.0.2:514 is logged. syslogd_log_jail syslogd_client \ - -p user.debug -t test1 -h 169.254.0.1 -S 169.254.0.2:514 "hello, world" - atf_check -o match:"test1: hello, world" cat "${logfile}" + -p user.debug -t test1 -h 169.254.0.1 -S 169.254.0.2:514 "hello, world" + syslogd_check_log "test1: hello, world" # ... but not a message from port 515. syslogd_log_jail syslogd_client \ - -p user.debug -t test2 -h 169.254.0.1 -S 169.254.0.2:515 "hello, world" - atf_check -o not-match:"test2: hello, world" cat "${logfile}" + -p user.debug -t test2 -h 169.254.0.1 -S 169.254.0.2:515 "hello, world" + sleep 0.5 + syslogd_check_log_nomatch "test2: hello, world" syslogd_log_jail syslogd_client \ - -p user.debug -t test2 -h 169.254.0.1 -S 169.254.0.3:515 "hello, world" - atf_check -o not-match:"test2: hello, world" cat "${logfile}" + -p user.debug -t test2 -h 169.254.0.1 -S 169.254.0.3:515 "hello, world" + sleep 0.5 + syslogd_check_log_nomatch "test2: hello, world" syslogd_stop @@ -438,10 +426,10 @@ allowed_peer_body() syslogd_log_jail syslogd_client \ -p user.debug -t test3 -h 169.254.0.1 -S 169.254.0.2:514 "hello, world" - atf_check -o not-match:"test3: hello, world" cat "${logfile}" + syslogd_check_log_nomatch "test3: hello, world" syslogd_log_jail syslogd_client \ -p user.debug -t test4 -h 169.254.0.1 -S 169.254.0.2:515 "hello, world" - atf_check -o match:"test4: hello, world" cat "${logfile}" + syslogd_check_log "test4: hello, world" syslogd_stop } @@ -458,16 +446,13 @@ allowed_peer_forwarding_head() } allowed_peer_forwarding_body() { - local logfile - allowed_peer_test_setup printf "user.debug\t@169.254.0.1\n" > client_config printf "mark.debug\t@169.254.0.1:515\n" >> client_config syslogd_start -j syslogd_client -b 169.254.0.2:514 -f ${PWD}/client_config - logfile="${PWD}/jail.log" - printf "+169.254.0.2\nuser.debug\t${logfile}\n" > "${SYSLOGD_CONFIG}" + printf "+169.254.0.2\nuser.debug\t${SYSLOGD_LOGFILE}\n" > "${SYSLOGD_CONFIG}" syslogd_start -j syslogd_allowed_peer -P ${SYSLOGD_PIDFILE}.2 \ -b 169.254.0.1:514 -a 169.254.0.2/32 @@ -478,8 +463,8 @@ allowed_peer_forwarding_body() syslogd_log_jail syslogd_client \ -h 169.254.0.2 -p mark.debug -t test2 "hello, world" - atf_check -o match:"test1: hello, world" cat "${logfile}" - atf_check -o not-match:"test2: hello, world" cat "${logfile}" + syslogd_check_log "test1: hello, world" + syslogd_check_log_nomatch "test2: hello, world" } allowed_peer_forwarding_cleanup() { @@ -494,29 +479,28 @@ allowed_peer_wildcard_head() } allowed_peer_wildcard_body() { - local logfile - allowed_peer_test_setup - logfile="${PWD}/jail.log" - printf "user.debug\t${logfile}\n" > "${SYSLOGD_CONFIG}" + printf "user.debug\t${SYSLOGD_LOGFILE}\n" > "${SYSLOGD_CONFIG}" syslogd_start -j syslogd_allowed_peer -b 169.254.0.1:514 -a '169.254.0.2/32:*' # Make sure that a message from 169.254.0.2:514 is logged. syslogd_log_jail syslogd_client \ -p user.debug -t test1 -h 169.254.0.1 -S 169.254.0.2:514 "hello, world" - atf_check -o match:"test1: hello, world" cat "${logfile}" + syslogd_check_log "test1: hello, world" + # ... as is a message from 169.254.0.2:515, allowed by the wildcard. syslogd_log_jail syslogd_client \ -p user.debug -t test2 -h 169.254.0.1 -S 169.254.0.2:515 "hello, world" - atf_check -o match:"test2: hello, world" cat "${logfile}" + syslogd_check_log "test2: hello, world" + # ... but not a message from 169.254.0.3. syslogd_log_jail syslogd_client \ -p user.debug -t test3 -h 169.254.0.1 -S 169.254.0.3:514 "hello, world" - atf_check -o not-match:"test3: hello, world" cat "${logfile}" + syslogd_check_log_nomatch "test3: hello, world" syslogd_log_jail syslogd_client \ -p user.debug -t test3 -h 169.254.0.1 -S 169.254.0.3:515 "hello, world" - atf_check -o not-match:"test3: hello, world" cat "${logfile}" + syslogd_check_log_nomatch "test3: hello, world" syslogd_stop } @@ -533,9 +517,9 @@ forward_head() } forward_body() { - syslogd_check_req epair + local epair - local epair logfile + syslogd_check_req epair atf_check -o save:epair ifconfig epair create epair=$(cat epair) @@ -558,11 +542,10 @@ mail.debug @169.254.0.2 ftp.debug @169.254.0.1 __EOF__ - logfile="${PWD}/jail.log" cat <<__EOF__ > ./server_config -user.debug ${logfile} -mail.debug ${logfile} -ftp.debug ${logfile} +user.debug ${SYSLOGD_LOGFILE} +mail.debug ${SYSLOGD_LOGFILE} +ftp.debug ${SYSLOGD_LOGFILE} __EOF__ syslogd_start -j syslogd_server -f ${PWD}/server_config -b 169.254.0.1 -b 169.254.0.2 @@ -570,15 +553,15 @@ __EOF__ syslogd_log_jail syslogd_client \ -h 169.254.0.3 -P $SYSLOGD_UDP_PORT -p user.debug -t test1 "hello, world" - atf_check -o match:"test1: hello, world" cat "${logfile}" + syslogd_check_log "test1: hello, world" syslogd_log_jail syslogd_client \ -h 169.254.0.3 -P $SYSLOGD_UDP_PORT -p mail.debug -t test2 "you've got mail" - atf_check -o match:"test2: you've got mail" cat "${logfile}" + syslogd_check_log "test2: you've got mail" syslogd_log_jail syslogd_client \ -h 169.254.0.3 -P $SYSLOGD_UDP_PORT -p ftp.debug -t test3 "transfer complete" - atf_check -o match:"test3: transfer complete" cat "${logfile}" + syslogd_check_log "test3: transfer complete" } forward_cleanup() { diff --git a/usr.sbin/syslogd/tests/syslogd_test_common.sh b/usr.sbin/syslogd/tests/syslogd_test_common.sh index 87e9080d99ca..a4aea07f8528 100644 --- a/usr.sbin/syslogd/tests/syslogd_test_common.sh +++ b/usr.sbin/syslogd/tests/syslogd_test_common.sh @@ -15,6 +15,7 @@ readonly SYSLOGD_CONFIG="${PWD}/syslog.conf" readonly SYSLOGD_LOCAL_SOCKET="${PWD}/log.sock" readonly SYSLOGD_PIDFILE="${PWD}/syslogd.pid" readonly SYSLOGD_LOCAL_PRIVSOCKET="${PWD}/logpriv.sock" +readonly SYSLOGD_LOGFILE="${PWD}/log" # Start a private syslogd instance. syslogd_start() @@ -83,6 +84,11 @@ syslogd_start() & # Give syslogd a bit of time to spin up. + if grep -q "[[:space:]]${SYSLOGD_LOGFILE}$" "${conf_file:-${SYSLOGD_CONFIG}}"; then + while [ ! -f "${SYSLOGD_LOGFILE}" ]; do + sleep 0.1 + done + fi while [ "$((i+=1))" -le 20 ]; do [ -S "${socket:-${SYSLOGD_LOCAL_SOCKET}}" ] && return sleep 0.1 @@ -106,7 +112,9 @@ syslogd_log_jail() # Make syslogd reload its configuration file. syslogd_reload() { + atf_check truncate -s 0 ${SYSLOGD_LOGFILE} atf_check pkill -HUP -F "${1:-${SYSLOGD_PIDFILE}}" + sleep 0.1 } # Stop a private syslogd instance. @@ -165,3 +173,28 @@ syslogd_cleanup() ifconfig $(cat epair) destroy fi } + +# Check the last entry in the log file for a given message. +syslogd_check_log_nopoll() +{ + local msg=$1 + + atf_check -o match:"${msg}" tail -n 1 "${SYSLOGD_LOGFILE}" +} + +# Same as above, but first wait for syslogd to write to the log file. +syslogd_check_log() +{ + local msg=$1 + + atf_check -r 10 -o match:"${msg}" tail -n 1 "${SYSLOGD_LOGFILE}" +} + +# Make sure no log entry matching the given message exists. +syslogd_check_log_nomatch() +{ + local msg=$1 + + sleep 0.5 + atf_check -o not-match:"${msg}" cat "${SYSLOGD_LOGFILE}" +} From nobody Mon Feb 9 18:04: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 4f8sys0XXzz6Rnr8 for ; Mon, 09 Feb 2026 18:04: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 4f8syr4cYMz3tND for ; Mon, 09 Feb 2026 18:04:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770660260; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yoMs53pU/KzGIscAevOS5BoMirM95AgpK0U/+D+9FMA=; b=TA2fSyikWLHKb4c1PtGtdUQS48tfnGM7JEhdXdniKbnRa46Udl93k4r7jxdqPUpTHDlHc8 KQhEDF8cJn99Bo51mSrNPtaKTTswt4GXlPUDnepdj8v6k3Zi92my9fG1fqq6BjfEGhG5jw E1noCYlpwr9A0RLaoXY5mPsenzvYNbBQIfzJrgMPjp6mCMIayAMPMs0K0DIExrU0WHr22T bRj2AhmJJPdj72fNyH6EDTroxfYQPNVKGUej7eIM0m8xpOXKm18R8NJXtkNdOEyO98yJQo 5bVw3MHxg5L+bqCGfi8q+drXG21Go1AF9t03LKnv6UGw8owoKRos1DFy1qQxhg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770660260; a=rsa-sha256; cv=none; b=W+GmFHkilsMTbbau3Hqy+6gMOegrP/JzCYsvh0snbZCD3mUz1JtN6Wmxqb++C7I6Ep8ou7 glz+K27fHoek5jAGhtxVT1BfmPqexg3Rw5L+50y8VsZVtJysrAEFp2YbFFEc3hfaXu8Wvn X+C2lX2rCobXXdvDHWN0DX2uMzsA/Y5n45b/Fxzn8oyItOvtI4wh3r059knff1ROnZx7YP pAheCymqeBhFBzOMQULaBgxBPrjJdV6TU7m2y1a5H6B++sVtnB1nRARhWShdHE9tTa1rIC Ip+zvt0VSUzQeZC5OIcILTYOlILAbV6o0XNOZ+0Bv6uv6sUVQG0tIGzhTfMHoA== 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=1770660260; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yoMs53pU/KzGIscAevOS5BoMirM95AgpK0U/+D+9FMA=; b=i/tnK7kqv24FADqove5CYet5bMhV6BkE1V2bH7bN/5wdFtq84u/c3RkkGQONYmgpV3mnrj yYJOljFd53S09EBDF4wcyn9mgC4o5l2XLeIhWNJd6LxLdJyB/ZGYpVaBV/R4aX/P23dKri WjVdGeCr9PryzbsoYQfmAMPnQ9X9xtNZnMDzGrhUWsjm/+2A+9aIxtdfwyFsXZB02Qwhov 1r5UQrULrY4DRjgvfLV/XzeL3M8UX88jf7NhnJML/G3R0Afas/BE3ver86NP4ndqnSmAN8 PUsxPfX8kEK4eBZQXipg1s8WPK+vBECxhAJhdrSU403XyWWvUCuEKG/6G7QOgw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8syr49WGzkBm for ; Mon, 09 Feb 2026 18:04:20 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 25fb4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 18:04:20 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 0e6751669fc5 - stable/15 - syslogd/tests: Fix flakiness in forwarding 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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 0e6751669fc52477bc1ce90fc5fb54eab840a581 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 18:04:20 +0000 Message-Id: <698a21a4.25fb4.15263d6@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=0e6751669fc52477bc1ce90fc5fb54eab840a581 commit 0e6751669fc52477bc1ce90fc5fb54eab840a581 Author: Mark Johnston AuthorDate: 2026-01-22 15:52:00 +0000 Commit: Mark Johnston CommitDate: 2026-02-09 18:03:42 +0000 syslogd/tests: Fix flakiness in forwarding tests syslogd_start() waits for the local log socket to appear before returning, to ensure that the daemon is ready to handle log messages. Some tests start two daemons, so by default the socket already exists when the second daemon is started, so syslogd_start() returns early. The test subsequently sends a message to this second daemon, which sometimes isn't ready. Define a separate log socket for the second daemon. Add a check to syslogd_start() to help catch this type of bug. Reviewed by: jlduran MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D54800 (cherry picked from commit 14dce731d70686e08ed689729f53c6a5e2225498) --- usr.sbin/syslogd/tests/syslogd_test.sh | 8 +++++--- usr.sbin/syslogd/tests/syslogd_test_common.sh | 9 +++++++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/usr.sbin/syslogd/tests/syslogd_test.sh b/usr.sbin/syslogd/tests/syslogd_test.sh index d4723b9e05b3..1f235c476c49 100644 --- a/usr.sbin/syslogd/tests/syslogd_test.sh +++ b/usr.sbin/syslogd/tests/syslogd_test.sh @@ -452,7 +452,7 @@ allowed_peer_forwarding_body() printf "+169.254.0.2\nuser.debug\t${SYSLOGD_LOGFILE}\n" > "${SYSLOGD_CONFIG}" syslogd_start -j syslogd_allowed_peer -P ${SYSLOGD_PIDFILE}.2 \ - -b 169.254.0.1:514 -a 169.254.0.2/32 + -b 169.254.0.1:514 -a 169.254.0.2/32 -p ${PWD}/peer # A message forwarded to 169.254.0.1:514 should be logged, but one # forwarded to 169.254.0.1:515 should not. @@ -544,8 +544,10 @@ mail.debug ${SYSLOGD_LOGFILE} ftp.debug ${SYSLOGD_LOGFILE} __EOF__ - syslogd_start -j syslogd_server -f ${PWD}/server_config -b 169.254.0.1 -b 169.254.0.2 - syslogd_start -j syslogd_client -f ${PWD}/client_config -P ${SYSLOGD_PIDFILE}.2 + syslogd_start -j syslogd_server -f ${PWD}/server_config \ + -b 169.254.0.1 -b 169.254.0.2 + syslogd_start -j syslogd_client -f ${PWD}/client_config \ + -p ${PWD}/client -P ${SYSLOGD_PIDFILE}.2 syslogd_log_jail syslogd_client \ -h 169.254.0.3 -P $SYSLOGD_UDP_PORT -p user.debug -t test1 "hello, world" diff --git a/usr.sbin/syslogd/tests/syslogd_test_common.sh b/usr.sbin/syslogd/tests/syslogd_test_common.sh index 2f21137cf026..47fca62e66d0 100644 --- a/usr.sbin/syslogd/tests/syslogd_test_common.sh +++ b/usr.sbin/syslogd/tests/syslogd_test_common.sh @@ -68,6 +68,11 @@ syslogd_start() esac done + socket=${socket:-${SYSLOGD_LOCAL_SOCKET}} + if [ -S "${socket}" ]; then + atf_fail "socket ${socket} already exists" + fi + # Setup loopback so we can deliver messages to ourself. if [ $($jail sysctl -n security.jail.vnet) -ne 0 ]; then atf_check $jail ifconfig lo0 inet 127.0.0.1/8 @@ -80,7 +85,7 @@ syslogd_start() -f "${conf_file:-${SYSLOGD_CONFIG}}" \ -H \ -P "${pid_file:-${SYSLOGD_PIDFILE}}" \ - -p "${socket:-${SYSLOGD_LOCAL_SOCKET}}" \ + -p "${socket}" \ -S "${privsocket:-${SYSLOGD_LOCAL_PRIVSOCKET}}" \ ${other_args} \ & @@ -92,7 +97,7 @@ syslogd_start() done fi while [ "$((i+=1))" -le 20 ]; do - [ -S "${socket:-${SYSLOGD_LOCAL_SOCKET}}" ] && return + [ -S "${socket}" ] && return sleep 0.1 done atf_fail "timed out waiting for syslogd to start" From nobody Mon Feb 9 18:04: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 4f8syr3RRpz6RnfP for ; Mon, 09 Feb 2026 18:04: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f8syr18wLz3tZ6 for ; Mon, 09 Feb 2026 18:04:20 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770660260; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5hEtOLuAFQ315inbnuAQaGsJKdFAB8zRoz/9uxrKLbU=; b=S6dqSnJM5p0HEg/hCmUfaPQzyrMaSuuc7IgC0z+WtYTVjDHSbYHcK0kg6I9mCAZ2x+vioA kxcH0ZovOd2QSLvP78DrNjmvLYOql8JC5RDojgiADpiI4XRioGh0rPhUTwlc1q3Z5eaKYt bK7izUvMwZOztPY400EB49560m8fiKoHFxs0IeBcPX8zkrx+kL2QK00+mqPDwJc1RyHf7X oLz62NrjvTVVU4k7teZLpzXrKQw0WbCG6WKbiDzw3HP1lmBYH/zb3s4N+P5ieRyUjLR2yh JP0HtfEMuHAZuP4KEgpJY0mJW/P1DFcBIcveoxmCwRMy9TGcewqA8pUEV8qclg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770660260; a=rsa-sha256; cv=none; b=RQ8/BumgmxMwMfaCHMIk0rIqO5zb8+35eBboNggQnzqy2MzECPAbGaYxUhpQMdo1VKNnSV 9ObbYeuI7ZIVBQxzswUNfAk9KVNxkS0+u0TlYJ4cSNPfyMEuoPH+tp0dyftGLwmGWZmuIn K1Cuosr42QeBC6VHkxK5eBcjIzRHaPazcCG8CScKz9796qNoUkKFR0UGloNzb+nDU37v3D SnsvpdWbfhCPSN1WRamBZcS1D2OMtCoUsoNH77Ai6uxg+UZQMb6H+F+i3jqbY0KAVn0UYw Rm82jhxGk+GM5Hw7ycuLqg0ReFbkgrJVEp+BdnlsvoXJa8JlBt3fKKKnmG+O3A== 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=1770660260; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5hEtOLuAFQ315inbnuAQaGsJKdFAB8zRoz/9uxrKLbU=; b=PB4SGJEG7c8Sbq2UURK850uZVXP3xX3LLUo+X8c9rWGDBfYQSe9UQ7eZKqnNPCpQ8iTA8j zmS5hk3bo4F1MRftG9UhiI0h0E/0zhbI3UDIfnwVVRLD4URyinMuTE+C2jba1av1uA+FGS oSaA5UIhG3W0X/gHJzRCwYzT/Z3hUzMMsF766VNI5LrJw2sX59tFP9s78rXgkqdkUjIH6I jLDjEK8u6NhYdT9pOEfTlj3HURErk7k+DH4faNvGjtSTd38oPG05VwS0+LDwFuAKAd7DBz OXNZAzYaXT7HapVI57pGDZHjjpd/pu97bEBaVd9QUD6dTMBowUfUciV7snW7Tg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8syl0gFGzkfq for ; Mon, 09 Feb 2026 18:04:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3031a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 18:04:15 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 9f8081657d23 - stable/15 - ip_mroute: EVENTHANDLER_REGISTER does not fail 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: 9f8081657d2338c3aada3393b320c237fd1a9ec2 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 18:04:15 +0000 Message-Id: <698a219f.3031a.290dc412@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=9f8081657d2338c3aada3393b320c237fd1a9ec2 commit 9f8081657d2338c3aada3393b320c237fd1a9ec2 Author: Mark Johnston AuthorDate: 2026-01-27 14:56:55 +0000 Commit: Mark Johnston CommitDate: 2026-02-09 18:03:41 +0000 ip_mroute: EVENTHANDLER_REGISTER does not fail No functional change intended. MFC after: 1 week Sponsored by: Stormshield Sponsored by: Klara, Inc. (cherry picked from commit 0f1e1350704af555a4b30136f5f3d16db6f2dc51) --- sys/netinet/ip_mroute.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/sys/netinet/ip_mroute.c b/sys/netinet/ip_mroute.c index d30bd42ec578..267d76111780 100644 --- a/sys/netinet/ip_mroute.c +++ b/sys/netinet/ip_mroute.c @@ -2835,12 +2835,6 @@ ip_mroute_modevent(module_t mod, int type, void *unused) if_detach_event_tag = EVENTHANDLER_REGISTER(ifnet_departure_event, if_detached_event, NULL, EVENTHANDLER_PRI_ANY); - if (if_detach_event_tag == NULL) { - printf("ip_mroute: unable to register " - "ifnet_departure_event handler\n"); - MRW_LOCK_DESTROY(); - return (EINVAL); - } if (!powerof2(mfchashsize)) { printf("WARNING: %s not a power of 2; using default\n", From nobody Mon Feb 9 18:04: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 4f8syt151cz6RnNd for ; Mon, 09 Feb 2026 18:04: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 4f8sys50nvz3tZT for ; Mon, 09 Feb 2026 18:04:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770660261; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eSZ/SzgLr/oFUL6TXk1FrNjo3/d5pZ4yNy0juBmbhsA=; b=CkhCrJScmvbtxKfiiVFhfzQYlM71pPscw/9RqFa0qAEoLzweOj85vhA78cin5R6frrLQwH ESV+v1mxGLruvQqsnhu/wqHsIekjEgrn9AJDyBeGgwDd+35YfmzWgtsidjgwyxFIW5YFPs vVqmSux0DkHJwJ3T3vRTWo9PG4jtMD1Dm11Zr5Gan3pLXUFPw5zfwVOA6sh+Zqq+KZeB5a lbArBgBBsgc841BXbDoJcgiJSqMHE7wpxBeduAmlruTPkQEQw71zuNp7QuXn4fiaxGUz+m Vhcr6PJbDgJPTmO+dclnbXi5BjCvT7sSJ9UiY+3F9ZXQg/wPz+56ygXcChfFCQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770660261; a=rsa-sha256; cv=none; b=doR9QDfeGTOEADi/DxCiJ4fHpJRoRckCAk31mCNhThnrnT855k5RKzuSGyDWn7fYc93r7q uWE32sCr5RuMfNvlq+oI4dYeNVy+pGF+WQv6M4YFjTwzTKA3/k7aQ/3LTPkBnsq3LHZ2HA A8Ojt4/9rUl+ZfzBCoz3E1+7R5lODptoUiQekQXNYqkZkpK7OOnhaV0045aKttCvUXwOW6 vG/5AacbV2breDn/Ac+jV4dCzIYnrVvMRJbvW+nOe9zE7slC2tK8E86h9cOkUllLhLOB8U H8FcLvpzEa5dGLl4U5c3Is8IlUOjwikHvcXXFNO2tDGyQv17XZ01saJiCewwgg== 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=1770660261; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eSZ/SzgLr/oFUL6TXk1FrNjo3/d5pZ4yNy0juBmbhsA=; b=hWyKSvMmpRyJ7RpQMAb5ifHDmBHF9XTaFL6ewi2uU6dQ7dWLkgPplHFKmAdQv09TVeitC6 xNvD8XtXBdGLcWgcPhL+gqYIdEDcKvt2ddjut7qpuQiCEl4KSIPyQrMMcDhuuyAEQqg7/M L1I6BhqYJp2L7jlPKsegWicmL9cKy54Xe5aca35Lq5nSqvLPX4x2bnKBlSJKFpeiaIJr+d XonPOrx7h1gwf9MiMCQHkIM6yIBEtAtU/KV95qGMxT1N5+OdUrKk/OLFgwQdFwxnuX6B4i J7KifvuP5DiM3upQ5mmiDLyFtXfNp2mlgpH8TRg1CiKDoc00nT0kbJPOVnZimA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8sys4TkHzkG1 for ; Mon, 09 Feb 2026 18:04:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2717a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 18:04:21 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 10b4ff3b7700 - stable/15 - ip6_mroute: Remove unnecessary casts 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: 10b4ff3b770050de0a3d4aab20761b5060ec6a99 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 18:04:21 +0000 Message-Id: <698a21a5.2717a.b9c6e43@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=10b4ff3b770050de0a3d4aab20761b5060ec6a99 commit 10b4ff3b770050de0a3d4aab20761b5060ec6a99 Author: Mark Johnston AuthorDate: 2026-01-30 20:39:34 +0000 Commit: Mark Johnston CommitDate: 2026-02-09 18:03:42 +0000 ip6_mroute: Remove unnecessary casts No functional change intended. MFC after: 1 week Sponsored by: Stormshield Sponsored by: Klara, Inc. (cherry picked from commit 56e1cba88bb82f2a6af0212c72182ff6303a1554) --- sys/netinet6/ip6_mroute.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sys/netinet6/ip6_mroute.c b/sys/netinet6/ip6_mroute.c index f3c68d61f245..36136f908307 100644 --- a/sys/netinet6/ip6_mroute.c +++ b/sys/netinet6/ip6_mroute.c @@ -917,8 +917,7 @@ add_m6fc(struct mf6cctl *mfccp) } if (rt == NULL) { /* no upcall, so make a new entry */ - rt = (struct mf6c *)malloc(sizeof(*rt), M_MRTABLE6, - M_NOWAIT); + rt = malloc(sizeof(*rt), M_MRTABLE6, M_NOWAIT); if (rt == NULL) { MFC6_UNLOCK(); return (ENOBUFS); @@ -1135,7 +1134,7 @@ X_ip6_mforward(struct ip6_hdr *ip6, struct ifnet *ifp, struct mbuf *m) * Allocate mbufs early so that we don't do extra work if we * are just going to fail anyway. */ - rte = (struct rtdetq *)malloc(sizeof(*rte), M_MRTABLE6, M_NOWAIT); + rte = malloc(sizeof(*rte), M_MRTABLE6, M_NOWAIT); if (rte == NULL) { MFC6_UNLOCK(); return (ENOBUFS); @@ -1169,7 +1168,7 @@ X_ip6_mforward(struct ip6_hdr *ip6, struct ifnet *ifp, struct mbuf *m) struct omrt6msg *oim; #endif /* no upcall, so make a new entry */ - rt = (struct mf6c *)malloc(sizeof(*rt), M_MRTABLE6, M_NOWAIT); + rt = malloc(sizeof(*rt), M_MRTABLE6, M_NOWAIT); if (rt == NULL) { free(rte, M_MRTABLE6); m_freem(mb0); From nobody Mon Feb 9 18:04: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 4f8syv2K1xz6RnrK for ; Mon, 09 Feb 2026 18:04: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 4f8syt5jcKz3tWq for ; Mon, 09 Feb 2026 18:04:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770660262; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=56/mGRebwa+TBatraaII7jn+LaHnb/Mxzw8q5eO/+4s=; b=nI6LVychNF6lv/QCg0jhtdtyEIcjHl/WadzIreF+f3HhTJZ1nBeWMeZK1dmQnZRJZh7jcE dIHlOgRmdZRDM7KiVxttqM/bUWxKwoI+5hH3sm5SoDNW6w3Doci11vq2hMqLFCJojXvAbL 8srF60NKq107f6ugvkO/9clzEwWNYgC1pRGqbyNtR0aKmqrRusY1iuR0VgOv6iF0mEhctW Op5Usi+TilvT52JilLIu9foGQR/pQOXlmWlvwoGYbFKnC+WL1NisKhzvRV6cT3xoNC7yK6 ojoD7wWIVOzC9V0R2iFNZeUQ5zD0SCOCAR51jkxQPkaW7sNpgRsZzCTco7Nq7w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770660262; a=rsa-sha256; cv=none; b=PQI/q39DGklGtvE7NKaeK+Q4qSGlH52k/imQShJF0LXQ2e7FbeXgzM67Z6+0VLnY8+m92u HgmXdGmk+lRLNs4U2S9Vzs2hI+PO3ejrKjN2O4wmA9OA6lgq0xMD8D4UX1BXzSksJPtTG6 ioqVNVwlao2ZG7ahh6jIjXRSe/KEU4t77hcttNkYs+MA/rKB1n/q136oFgzJh/RhtQLBEB wV42q7svCvNgg68m7XFMdF2jligq4lkjbiN4zLjv4k+JKeloo63QUr4EWqrYf6Lmdiqy+t KrP+Z28W0+tpUcSyTnU/VEUSvU8CcLGVrdzJRZXpA/nDOSo9CIaXhCSzxVN6iw== 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=1770660262; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=56/mGRebwa+TBatraaII7jn+LaHnb/Mxzw8q5eO/+4s=; b=i+Q/txxHazUUPsGMFhfMPCeuE+E58RHNnw3MzM9fnxQ/D45NatgEYcDB4s8hc2oinvV4pA LFJBFEa+KhrTDMsmTVEVMqlukhCQDr9Ag+OM8INm8vIkSupY8NGhwd/PohpJqEYAShsCj1 NwFC9EyljANG+C0WCRuODn/NxNJKBFkCh5vRQTCJOrpY5ukEg1dzzMn3R21DAqjlQeFCc9 Y1zKj0lTXkJVF9nKLLf+8lXV+gp4JekJ4XaslcGz7x4nVDQW7Z/RnwCzBpxTxZQ/1KIOFu WFvOLy+/E8gncd5o5xMXLlTivn5gP60a7mVFSKRVSKsvObsm34JaZqxe1/EVBw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8syt4zLpzkfx for ; Mon, 09 Feb 2026 18:04:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 30884 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 18:04:22 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 7855f839e471 - stable/15 - ip6_output tests: Remove an unused import 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: 7855f839e471a19fc5f5b6225ef2d34fc2dcfb82 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 18:04:22 +0000 Message-Id: <698a21a6.30884.51aae28c@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=7855f839e471a19fc5f5b6225ef2d34fc2dcfb82 commit 7855f839e471a19fc5f5b6225ef2d34fc2dcfb82 Author: Mark Johnston AuthorDate: 2026-01-30 15:27:22 +0000 Commit: Mark Johnston CommitDate: 2026-02-09 18:03:42 +0000 ip6_output tests: Remove an unused import No functional change intended. MFC after: 1 week Sponsored by: Stormshield Sponsored by: Klara, Inc. (cherry picked from commit 1539a657adb4363e7f12d6fd4c1c8ed2e2d842af) --- tests/sys/netinet6/test_ip6_output.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/sys/netinet6/test_ip6_output.py b/tests/sys/netinet6/test_ip6_output.py index fc821606a726..b0828d45bdad 100644 --- a/tests/sys/netinet6/test_ip6_output.py +++ b/tests/sys/netinet6/test_ip6_output.py @@ -10,7 +10,6 @@ from ctypes import Structure import pytest from atf_python.sys.net.rtsock import SaHelper from atf_python.sys.net.tools import ToolsHelper -from atf_python.sys.net.vnet import run_cmd from atf_python.sys.net.vnet import SingleVnetTestTemplate from atf_python.sys.net.vnet import VnetTestTemplate From nobody Mon Feb 9 18:04: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 4f8syx1b1Cz6RnfV for ; Mon, 09 Feb 2026 18:04: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 4f8syx09lwz3thQ for ; Mon, 09 Feb 2026 18:04:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770660265; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FNpWY9ypaFD+6x4uoCNCvPx0MH70jZ1VZfyr8Es6l7g=; b=X0OqDGYXw1fnlm1ywOqNTvuYR93YOGGeGxyagFyfsu7V2/9s0rdo7HNc64egRYwxncb1Wk hTMTDArI9/s/qX2A6HcQXU3lkyjnzEx6NpK6V5mN0urqfCKDT0MB/ttFeHQ59udI0WtTW/ Ab+pfv/aCGKUYwa3vJPHUbd2lEyXyFMWCfmRwOPONyo+aBxDdhPTen3f2jX7f6u0XeYQ2T Me8hbkPfBk2HZc1wB369pGHCKjA/CbImLjF8XqUlsWtNth2bRg7GncoQUwDK7s94sBnMJu ALI5LmAjsl2AfzIG4Ff7ii16+AQMZ11N8gslpvqrXGiaHBzD6nbB16+H1uSQAA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770660265; a=rsa-sha256; cv=none; b=oYvBEjmV1SrASFxft13ilvXxIXjSNwiHiDSBnnjOTUA6UkaYCaLD/E9Hf2ym0trEd+On0t h2OLrz/qLDjJz/B4QPRgrQb8PyVO2+NACnuEOggIK2cxnDkMUXmp0+pMNT2tXNOawuCwsb MirsG6Tkj970id+jY61JwIRdRu5V1++Kqxz6LBkDMckU5PzwHzaDpEQTo5UZTIlWYoi4f0 e2F8YtRa/32s25X2qtY24eYoGIiOTn/CnLRCXo8k3O7Xuf/CAnzWrfsUWdiIC+1opPRYpI WSp+1Uje0PKch0dSAQATmo/okxVjQAQX4LkOdYo5dbHwluh6n6muJ6oI2AmdYA== 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=1770660265; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FNpWY9ypaFD+6x4uoCNCvPx0MH70jZ1VZfyr8Es6l7g=; b=CPnZPb9oR2pJz241mvbUDMN9OmwxJd0P1hGtMeM3zo4lBRRA+8N44WH1n7CH1jsBH64Vsv JJp/JryPiooGDywl8fDuFLL+4ENqee7F8NyAQF2y/iishzI6B+TldvmoaVEprS1D6aGS3L jXNzX+xX5kAD2nqMwXNTrPfrVdS0Tgn36tBjk0c1ZuljTKUE5UqWSp7rEVMjXoPTqNeNH6 msqp8rLKzDnNwGkAOLxqA7SXLxohR0TF272/a0g88y2K4kMs/A2otx2E8rUByla0r60RY4 kF/Ltatov89mAb0vmVXTh/v2AdXP4hnM66bgYQ0jyGeMgys0pNB2ycpJBF7lhA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8syw6V8mzkG2 for ; Mon, 09 Feb 2026 18:04:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 25d66 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 18:04:24 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: c8dad6820630 - stable/15 - pf tests: Set require.kmods in divert-to 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: markj X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: c8dad682063018fdf23f3413694d701993d61389 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 18:04:24 +0000 Message-Id: <698a21a8.25d66.6c529ee1@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=c8dad682063018fdf23f3413694d701993d61389 commit c8dad682063018fdf23f3413694d701993d61389 Author: Mark Johnston AuthorDate: 2026-01-26 17:24:25 +0000 Commit: Mark Johnston CommitDate: 2026-02-09 18:03:43 +0000 pf tests: Set require.kmods in divert-to tests Tests should declare their dependencies rather than testing for them at runtime. Reviewed by: igoro, kp, glebius MFC after: 2 weeks Sponsored by: OPNsense Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D54846 (cherry picked from commit 8934c3dc780d6631cb23e4d98c7b988da9a5b703) --- tests/sys/netpfil/pf/divert-to.sh | 31 ++++++++----------------------- 1 file changed, 8 insertions(+), 23 deletions(-) diff --git a/tests/sys/netpfil/pf/divert-to.sh b/tests/sys/netpfil/pf/divert-to.sh index 3028c9e75afd..2e0f6920db27 100644 --- a/tests/sys/netpfil/pf/divert-to.sh +++ b/tests/sys/netpfil/pf/divert-to.sh @@ -60,30 +60,16 @@ . $(atf_get_srcdir)/utils.subr -divert_init() -{ - if ! kldstat -q -m ipdivert; then - atf_skip "This test requires ipdivert" - fi -} - -dummynet_init() -{ - if ! kldstat -q -m dummynet; then - atf_skip "This test requires dummynet" - fi -} - atf_test_case "in_div" "cleanup" in_div_head() { atf_set descr 'Test inbound > diverted | divapp terminated' atf_set require.user root + atf_set require.kmods ipdivert } in_div_body() { pft_init - divert_init epair=$(vnet_mkepair) vnet_mkjail div ${epair}b @@ -118,11 +104,11 @@ in_div_in_head() { atf_set descr 'Test inbound > diverted > inbound | host terminated' atf_set require.user root + atf_set require.kmods ipdivert } in_div_in_body() { pft_init - divert_init epair=$(vnet_mkepair) vnet_mkjail div ${epair}b @@ -157,11 +143,11 @@ out_div_head() { atf_set descr 'Test outbound > diverted | divapp terminated' atf_set require.user root + atf_set require.kmods ipdivert } out_div_body() { pft_init - divert_init epair=$(vnet_mkepair) vnet_mkjail div ${epair}b @@ -197,11 +183,11 @@ out_div_out_head() { atf_set descr 'Test outbound > diverted > outbound | network terminated' atf_set require.user root + atf_set require.kmods ipdivert } out_div_out_body() { pft_init - divert_init epair=$(vnet_mkepair) vnet_mkjail div ${epair}b @@ -237,11 +223,11 @@ in_div_in_fwd_out_div_out_head() { atf_set descr 'Test inbound > diverted > inbound > forwarded > outbound > diverted > outbound | network terminated' atf_set require.user root + atf_set require.kmods ipdivert } in_div_in_fwd_out_div_out_body() { pft_init - divert_init # host router site epair0=$(vnet_mkepair) @@ -293,12 +279,11 @@ in_dn_in_div_in_out_div_out_dn_out_head() { atf_set descr 'Test inbound > delayed+diverted > outbound > diverted+delayed > outbound | network terminated' atf_set require.user root + atf_set require.kmods dummynet ipdivert } in_dn_in_div_in_out_div_out_dn_out_body() { pft_init - divert_init - dummynet_init epair=$(vnet_mkepair) vnet_mkjail alcatraz ${epair}b @@ -377,12 +362,12 @@ pr260867_head() { atf_set descr 'Test for the loop reported in PR260867' atf_set require.user root + atf_set require.kmods ipdivert } pr260867_body() { pft_init - divert_init epair=$(vnet_mkepair) @@ -417,12 +402,12 @@ pr260867_icmp_head() { atf_set descr 'Variant of the PR260867 test' atf_set require.user root + atf_set require.kmods ipdivert } pr260867_icmp_body() { pft_init - divert_init epair=$(vnet_mkepair) From nobody Mon Feb 9 18:04: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 4f8syw1620z6RnjZ for ; Mon, 09 Feb 2026 18:04: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 4f8syv6Dpbz3tTY for ; Mon, 09 Feb 2026 18:04:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770660263; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CaS57+JE1RWp1woqh4HWFZ1OEQ/AROefWoFQnhDUYRY=; b=rXCT7Ue1DVmjfNkXpILkNguaLd55kb5PsD30vQ8apXWsVRv4dxjEResQij9gbwjc7nFgTQ 9RZ0pmlzDqfTZ/EYfo6Goc00AT2FjqdzCSVgqACCeOUycZ3v+XAHfuka1PK5TX5rqHDlRo RvaQf8mHAUaLjLmGcXaicT6oUcaK7phdkUH+/70jLf83aptPUE8XcAyrUw3x0TePs5VTIn PxnjRsPNq3YTjGwNY+4k3Lmeu1+mi47gMgQtqEv2j8lRm4THMwrkVj/3XyYlVamAQx9SLZ A9jZXsnxMXvImm2XUdilglMF29a+Z/3FdKp4liIzjp//e9ztgXRoMp+z2BGztg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770660263; a=rsa-sha256; cv=none; b=cmJS0Nsa7Y+vpulxnj3sqQ2e9Q+QTyzXmIKij45EoL5gHlX/xOD1kOnrAmdrNZCsXUtk6W lJowtWl31m2pqhTWSB9naRIb70Sc2ff47nA67NIoCV04V21T24PEO9HMy8NZ3P3kBKvJm+ CPvicFTetpz+I99V5w4mzQrTZelu3uwZTLgIF0VF0cVQtMvJwiU6wlAGFEEHiw0K5lieKp +09pLybr6nAX0frOYVAAwdks5ylb23kFEz0r2vzYHC2cWO/2rA7y2x9HlXQ9dwBcK6EBHZ FeFmrNj9cSsiQVfeLSF58Bn/Rcx2UUXsy1Ky7czNp23L1FyevnNK9pY6BGcbsw== 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=1770660263; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=CaS57+JE1RWp1woqh4HWFZ1OEQ/AROefWoFQnhDUYRY=; b=eTpaHf+pTq2cgA95wh3wjLTO2fX9qO18/XjU4E1bHDapEwT2Moxg+iNCIyY2AKDAG1nY/N msYwYJ1UCpYv/lIZsCE2N8m9NB5+hNmXhxxsm36iz8A3wT/6y2oq8vxKAg5VJ1DsJd7AOg JCFzyd6dBt9XayOdsSUx9rhtssYfJ7AC2wvMo6jMbxFL/z1UYxvTfTosdRtR4niTbpS85I zKRF01YGTzLsOiM9XLUS8hcSFWO369v/FFfYVdiUTdmPpbBe9eQYzzaQRYdN1jk5OS37bS uDS6BCbEFZ0CTUWlXuKs8BDcHUUDJfbzx3kfSjblYK7IDIEpDs57G7MtUHRZ0w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8syv5kNBzkfy for ; Mon, 09 Feb 2026 18:04:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 258e0 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 18:04:23 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: fbc561025930 - stable/15 - makefs/zfs/tests: Force-destroy md devices 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: fbc561025930860defc5fdb0dc1284b1caeaef09 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 18:04:23 +0000 Message-Id: <698a21a7.258e0.3dbc6640@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=fbc561025930860defc5fdb0dc1284b1caeaef09 commit fbc561025930860defc5fdb0dc1284b1caeaef09 Author: Mark Johnston AuthorDate: 2026-01-25 15:12:19 +0000 Commit: Mark Johnston CommitDate: 2026-02-09 18:03:42 +0000 makefs/zfs/tests: Force-destroy md devices Most of these tests create a md(4) device backed by a makefs-generated image, then import the pool, using the md device as a pool vdev. When a test finishes, it destroys the pool, then destroys the md device. Once in a while md device destruction fails with EBUSY. This happens when a GEOM consumer is holding the device open; kern_mddetach_locked() simply fails if any consumers are present. zpool destruction is synchronous so ZFS is innocent, rather, the problem seems to be that GEOM re-tastes the device after the zpool reference goes away. This operation creates a transient reference that causes the spurious failure. Use "mdconfig -o force" to work around this. MFC after: 2 weeks (cherry picked from commit d6bc31f92991b6d67da54868f3563278015389ca) --- usr.sbin/makefs/tests/makefs_zfs_tests.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usr.sbin/makefs/tests/makefs_zfs_tests.sh b/usr.sbin/makefs/tests/makefs_zfs_tests.sh index 9d5ce300843e..7f0187be054f 100644 --- a/usr.sbin/makefs/tests/makefs_zfs_tests.sh +++ b/usr.sbin/makefs/tests/makefs_zfs_tests.sh @@ -51,7 +51,7 @@ common_cleanup() if [ -f "$TEST_MD_DEVICE_FILE" ]; then md=$(cat $TEST_MD_DEVICE_FILE) if [ -c /dev/"$md" ]; then - mdconfig -d -u "$md" + mdconfig -o force -d -u "$md" fi fi } @@ -210,7 +210,7 @@ compression_body() atf_check zpool destroy ${ZFS_POOL_NAME} atf_check rm -f ${TEST_ZFS_POOL_NAME} - atf_check mdconfig -d -u $(cat ${TEST_MD_DEVICE_FILE}) + atf_check mdconfig -o force -d -u $(cat ${TEST_MD_DEVICE_FILE}) atf_check rm -f ${TEST_MD_DEVICE_FILE} done } From nobody Mon Feb 9 18:04: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 4f8syy2dykz6Rnlr for ; Mon, 09 Feb 2026 18:04: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 4f8syy08D6z3tsy for ; Mon, 09 Feb 2026 18:04:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770660266; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=g/s7i7YM6bS1m3bjUjKHveYkGtK0tV0fGhGPodhdjBQ=; b=FpU2rQzfFXvXYRCkTDdtS5MvuQiyLlwe6mBNlb95IGyp4oxEHJUalAnL672M/mATfOcZre Vw5Usuya4Orimgym0UW0qcltX6pEOzQlwINUtGxGt/BmA6oEt8bMD2vy7Otbq5yLd1ozig 8ivWTYvwhkEtMlioja3tXML9ltvZV3daM+KYmGODGe9OHeVf0TANBuGrdm5x98tK4YgCQh Ts+cvfbqdW1eUdIK00l+NR0a48LyW2x5uEx0NTrvCOzAgplkkB4XNcVIG5eU5F86YylaXq W9DyjvxpsnKj7clzCN8an0OitVrqpsR8Gn4dJHdRAKaHaQg8kTpEJcxSJrXLLA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770660266; a=rsa-sha256; cv=none; b=txXCw83xnWiWoxTXOXpQaR/H37THgSFJMng3vXoQgJcjdqDjKOZdOVfisij8IzIQ2omI+7 JDN0ntrgO/GD4FQGUqsBEWsnTeBedzvUTVW1vGP+352teXrqwhlDR4gyCTd17aYozDykzi sWOkCrx6HFWPZlVVBAGPRhaOvht1JJFdIUCcEa4B3FN3BKwEFip6ufvEqsVs0HJiMegkeO CrGfUujiJVecDFM+ODb9okylClCjj8AXCA1YJrlTz+uvMle3zDeAqkoMZTwmnE/op1Jdwu mQ7Eh4w5IiLCvw1U4BCLLrJ/zGg7G3gbX8yEflAw6m2GM7YeDfzEH16m/JAD5A== 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=1770660266; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=g/s7i7YM6bS1m3bjUjKHveYkGtK0tV0fGhGPodhdjBQ=; b=DzebWLR3rvJVx6MoMHcIWeWvXtcGPLco57VRDTBKyicNk9gjbPPCTQF3P3WE9tSfNSTzeX fgb8wC/08vITQG1U/En7pSx4tcvy2V85v3dKv/CRjByWftnhEDTdbVgs9NimhZSeIQFZbX QOd1zi4tqEln4IhZZRZpVA49fHeWNlK6ypMTtSYDOhIEgDRQ8LwA/YDFIt/veyyLUP08C1 k9M+BKRrX4dDea014dHuCSstbPd/Fs3A9IxpRy+kHU5e/8ggCvmY46jlhKVP8r3PWJNpnY z8MSRSnwmR7xhe+mWvdNsWj1k/TjYWdTftY20uS2a/6ZD9JQ7PgHCVtq/7jnOA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8syx6pWwzkG3 for ; Mon, 09 Feb 2026 18:04:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2779a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 18:04:25 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 2ca0b727d0f2 - stable/15 - arm64/vmm: Simplify vmmpmap_remove() 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: 2ca0b727d0f2b3e8e0071a3d4f5a8d1142a4cea7 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 18:04:25 +0000 Message-Id: <698a21a9.2779a.751dcc6@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=2ca0b727d0f2b3e8e0071a3d4f5a8d1142a4cea7 commit 2ca0b727d0f2b3e8e0071a3d4f5a8d1142a4cea7 Author: Mark Johnston AuthorDate: 2026-01-26 21:05:43 +0000 Commit: Mark Johnston CommitDate: 2026-02-09 18:03:43 +0000 arm64/vmm: Simplify vmmpmap_remove() This function handles invalid intermediate PTP entries, but there's no reason for this: the passed range should be mapped. In particular, we assert that all L3 entries encountered are mapped. So let's simplify the code a bit. No functional change intended. Reviewed by: andrew MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D54738 (cherry picked from commit 31e5decb18a6633f5137848b5734310b41fc3bdc) --- sys/arm64/vmm/vmm_mmu.c | 27 ++++++--------------------- 1 file changed, 6 insertions(+), 21 deletions(-) diff --git a/sys/arm64/vmm/vmm_mmu.c b/sys/arm64/vmm/vmm_mmu.c index 42537254e27b..ab876d4b47b6 100644 --- a/sys/arm64/vmm/vmm_mmu.c +++ b/sys/arm64/vmm/vmm_mmu.c @@ -350,8 +350,8 @@ vmmpmap_remove(vm_offset_t va, vm_size_t size, bool invalidate) ("%s: Mapping is not page-sized", __func__)); if (invalidate) { - l3_list = malloc((size / PAGE_SIZE) * sizeof(l3_list[0]), - M_TEMP, M_WAITOK | M_ZERO); + l3_list = malloc(atop(size) * sizeof(l3_list[0]), M_TEMP, + M_WAITOK | M_ZERO); } sva = va; @@ -359,32 +359,17 @@ vmmpmap_remove(vm_offset_t va, vm_size_t size, bool invalidate) mtx_lock(&vmmpmap_mtx); for (i = 0; va < eva; va = va_next) { l0e = atomic_load_64(&l0[pmap_l0_index(va)]); - if (l0e == 0) { - va_next = (va + L0_SIZE) & ~L0_OFFSET; - if (va_next < va) - va_next = eva; - continue; - } + MPASS(l0e != 0); MPASS((l0e & ATTR_DESCR_MASK) == L0_TABLE); l1 = (pd_entry_t *)PHYS_TO_DMAP(l0e & ~ATTR_MASK); l1e = atomic_load_64(&l1[pmap_l1_index(va)]); - if (l1e == 0) { - va_next = (va + L1_SIZE) & ~L1_OFFSET; - if (va_next < va) - va_next = eva; - continue; - } + MPASS(l1e != 0); MPASS((l1e & ATTR_DESCR_MASK) == L1_TABLE); l2 = (pd_entry_t *)PHYS_TO_DMAP(l1e & ~ATTR_MASK); l2e = atomic_load_64(&l2[pmap_l2_index(va)]); - if (l2e == 0) { - va_next = (va + L2_SIZE) & ~L2_OFFSET; - if (va_next < va) - va_next = eva; - continue; - } + MPASS(l2e != 0); MPASS((l2e & ATTR_DESCR_MASK) == L2_TABLE); l3 = (pd_entry_t *)PHYS_TO_DMAP(l2e & ~ATTR_MASK); @@ -419,7 +404,7 @@ vmmpmap_remove(vm_offset_t va, vm_size_t size, bool invalidate) /* Invalidate the memory from the D-cache */ vmm_call_hyp(HYP_DC_CIVAC, sva, size); - for (i = 0; i < (size / PAGE_SIZE); i++) { + for (i = 0; i < atop(size); i++) { atomic_store_64(l3_list[i], 0); } From nobody Mon Feb 9 18:04: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 4f8syz41c7z6RnrX for ; Mon, 09 Feb 2026 18:04: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 4f8syz0yHxz3tnT for ; Mon, 09 Feb 2026 18:04:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770660267; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XP5a/2RDS5ioHLKwChHWIGD7CAahlmSUumD/nvN+/QU=; b=aWvLmmOfWlx/DQuDh7RwTh5yHQIGpBWR/Q+KtB4oj9SRhygbe+OLt1Yo0N//2hEad3tRQu 8RPVjWB5sL04j2gROqcX3tp9VDWSCFdZAP0wgkTBaXSVf7oaq3sxKqQE71VW9gda7AvR9J +gZJTsusWOfCQnBhXbLmVFVkTMtoC1yKhoN5s/Bk9Sfk5jXsxgK8Y7+iJNBpYjpAZUGU94 90pYbTJuiYyIz2tN2GHIal377fEy3JjihSyOvdWDEkcOleJCuMMqvwRd4n8Uub8ijRl3eY uqm45yGnrUHVQN0MaaMgOccrwlzYtHMn2khu257sI93IevD8qcAnIoKWpPCKRQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770660267; a=rsa-sha256; cv=none; b=s5zrkJf7mYgCQGzb7fGPtM+fVjtZse1zpjBHkZxW0wHTu+Q/Db4/HGMFDmg6kyXFY3QSdH hMVkYhU2x6ugXcRmXtoJj3I9NrfVhNRNc/RGkYsOetC9QuoV4LBZHtVuU3/3jpzESOyeUh qqZ4FAGintFNdMi/UrkAu87yMyJwdgmWiIwGzTmbpoXSc3XOiZ4bwWYPFTynEFUGLzQv3S HvtHp/deVXP/fcOR+VUEih9xPokNaNeaR0FWHDgq9graB0/e1vsQ+dQaBJHUmL1cULGxBK lBbCcJNF3q/cyeSKx/GoknQYnA8eDP4HHmsC6wB5oED032JKcELqN8AxbHwQqg== 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=1770660267; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XP5a/2RDS5ioHLKwChHWIGD7CAahlmSUumD/nvN+/QU=; b=bECmXrdi+A+wAQoYkMf46EaywPp0JhPUh7tulCyF8Kxrbwl4YnNSRl/BqsvJ2wou0jgpT3 RFc/J5r41jdYt9o85M0XbBQQSkpVB4McQ/xSwa43gYHQgHJ9Vs0bXxh8pn+ETfWHOX4SzX urKCjvbfPFikEsEmyEj5J+yMpa6xmutg3Y/ECfMf14MTncuOlpYlxuPrQs0RNVdQHb4u/m q0bWp983GlymTYa6je8GuN2QSbHT9+yRv9Y2vZwY7X7uyQiKGVnaxqH6G5KFQE2yKUhMXx P19Nl/xpvseX4JvBZF1aV0W12C8iA8cC0CoGF4cKJu48GTTX8lkQwg7V7fMeLQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8syz0T99zkR4 for ; Mon, 09 Feb 2026 18:04:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27da6 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 18:04:27 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 4775399b4e87 - stable/15 - pf: Rationalize the ip_divert_ptr test 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: 4775399b4e87a01f6448a68e8ff13fba8e69876b Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 18:04:27 +0000 Message-Id: <698a21ab.27da6.1df8c3ac@gitrepo.freebsd.org> The branch stable/15 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=4775399b4e87a01f6448a68e8ff13fba8e69876b commit 4775399b4e87a01f6448a68e8ff13fba8e69876b Author: Mark Johnston AuthorDate: 2026-01-26 17:23:33 +0000 Commit: Mark Johnston CommitDate: 2026-02-09 18:03:43 +0000 pf: Rationalize the ip_divert_ptr test If a rule has a divert port set, then we can reasonably predict that ipdivert.ko is loaded, and in particular that ip_divert_ptr is set. Moreover, in this case, if ipdivert.ko is not loaded we should just drop the packet instead of ignoring the divert rule. Reviewed by: igoro, kp, glebius MFC after: 2 weeks Sponsored by: OPNsense Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D54845 (cherry picked from commit 39878d24a690feb4da3fc223649c6a5fd166d09d) --- sys/netpfil/pf/pf.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/sys/netpfil/pf/pf.c b/sys/netpfil/pf/pf.c index 2cd3ee535b85..dee02d296f1f 100644 --- a/sys/netpfil/pf/pf.c +++ b/sys/netpfil/pf/pf.c @@ -11232,11 +11232,11 @@ done: pf_is_loopback(af, pd.dst)) pd.m->m_flags |= M_SKIP_FIREWALL; - if (af == AF_INET && __predict_false(ip_divert_ptr != NULL) && - action == PF_PASS && r->divert.port && !PACKET_LOOPED(&pd)) { + if (af == AF_INET && action == PF_PASS && r->divert.port && + !PACKET_LOOPED(&pd)) { mtag = m_tag_alloc(MTAG_PF_DIVERT, 0, sizeof(struct pf_divert_mtag), M_NOWAIT | M_ZERO); - if (mtag != NULL) { + if (__predict_true(mtag != NULL && ip_divert_ptr != NULL)) { ((struct pf_divert_mtag *)(mtag+1))->port = ntohs(r->divert.port); ((struct pf_divert_mtag *)(mtag+1))->idir = @@ -11265,15 +11265,20 @@ done: } ip_divert_ptr(*m0, dir == PF_IN); *m0 = NULL; - return (action); - } else { + } else if (mtag == NULL) { /* XXX: ipfw has the same behaviour! */ action = PF_DROP; REASON_SET(&reason, PFRES_MEMORY); pd.act.log = PF_LOG_FORCE; DPFPRINTF(PF_DEBUG_MISC, "pf: failed to allocate divert tag"); + } else { + action = PF_DROP; + REASON_SET(&reason, PFRES_MATCH); + pd.act.log = PF_LOG_FORCE; + DPFPRINTF(PF_DEBUG_MISC, + "pf: divert(4) is not loaded"); } } /* XXX: Anybody working on it?! */ From nobody Mon Feb 9 19:41: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 4f8w753cGmz6RvR1 for ; Mon, 09 Feb 2026 19:41: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 4f8w752nyvz3LLk for ; Mon, 09 Feb 2026 19:41:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770666097; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pBYJOfvNWVnSCTNsM1OPEc+SalRMl4VUUa4vVBcQtEA=; b=wsCjvHx20699ayXJlemdhePT6I1p4M98QS59owuzVrf+HYkR4/0ZA5POQiQMVxW1rpfkKG R0xrDvkYYcTPgBkR0mxT4sovJp6fwnMHq84uqTKhw8yFI8dy7JW+tl7CbzSUcDkOaZ3IwN ctwiFy19H7k24PN0hykhNMW7JGgTeGJrq5Irqfr4l+x90kKte91oiWmrRFJMwocamWMxSc KGwwC13UOKiRjwJTc1Shx61ccC0Faf0CXemJ5z9zXt5hT1+KeXaKHKpcIYoADlVvefpXsN IffXNj0YZtWL894HWpuFB1k5O+ZAGY5keS679pxZq7i8kcLfP1OPktGNR3X6/g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770666097; a=rsa-sha256; cv=none; b=xq1R0lYgiszpMkpammDYxkRwG4rEoh+v9tykt60ed6Od8ac1EPF0LgdFiepoIzFpAoJI8r MnyabbS13DeU0A2FxG5cJDLdlz1yumoIKh60pj25+UlgeYfLGyVbW4YrxYVrNo9NvVSHQ1 w+Ay1XUpd/x2jMoIImO+MjzNjU6Fe7Fj0XTiDEFR4VtZhIcK+7DEEqFPGKMqO4FVDf7sKs QkhHKoPgcOMn5D090WAEEtqe5UJFAH1p6xNVmnXPzkkFJaOgWOt5mb8xXq++ey57vEdI8T PQPC5jk+b8aSzeep4xDXK/grwUVgW9PZ0UEthMOjIAyKJ8e3eKKLMzPpdjlTpA== 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=1770666097; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pBYJOfvNWVnSCTNsM1OPEc+SalRMl4VUUa4vVBcQtEA=; b=WDJpvKmuTtitstL6dm4ZeA5CtCrZASDoIgqNHQdMw3salq+H5PwEwWT39NjiZuaoW+Svvl msIzU2/OhExxOIsKWLPnbngSp2JS6MPHdlPzO48X9k9Ft6dZpiPdznTxI1cONFnwJeH9KX NnEWVKvTmci359AEbq0fL79Lc+dEs7WFTvPytR4LC0fBQ4Acl4YGWqrapUheRLdMgBdBRK yrZjsp90cZccgKP5Na9wjcI+EptN28183UsGbj62lDQepDYwUTtVxful4zltHMC7TSA/9i nB20XfI1avK/NMNOigJNysjhTXv2QMdQGUAv6zqh28d57WFHm4r/rTEa1LvTyA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8w752NThzn7K for ; Mon, 09 Feb 2026 19:41:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3ab42 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 19:41:37 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mitchell Horne Subject: git: db0c8752ec05 - stable/15 - riscv: smarter DMAP construction (again) 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: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: db0c8752ec057ffd758dbea3ed998300acc7bbcd Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 19:41:37 +0000 Message-Id: <698a3871.3ab42.63a25bbd@gitrepo.freebsd.org> The branch stable/15 has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=db0c8752ec057ffd758dbea3ed998300acc7bbcd commit db0c8752ec057ffd758dbea3ed998300acc7bbcd Author: Mitchell Horne AuthorDate: 2026-01-21 18:58:01 +0000 Commit: Mitchell Horne CommitDate: 2026-02-09 19:34:43 +0000 riscv: smarter DMAP construction (again) Extend pmap_bootstrap_dmap() to build the DMAP with 4K-page granularity. Recently we have been approximating it with 2MB mappings. The motivation again is the problematic FU540 hardware, which seems to require more accurate mappings still to avoid triggering its PMP errata. Although this hardware alone is of little consequence, constructing the DMAP accurately/correctly may help avoid future surprises. The implementation contains some repetitive code. This could be expressed differently, but my guiding principle for these early routines is that being simple and explicit about what we are doing makes them easier to comprehend. See also 762a3224cde6 ("riscv: smarter DMAP construction). Tested by: Klaus Küchemann MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D54716 (cherry picked from commit 27595bea69400ae71fa778cf1dcb52a793911ad4) --- sys/riscv/riscv/pmap.c | 98 ++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 83 insertions(+), 15 deletions(-) diff --git a/sys/riscv/riscv/pmap.c b/sys/riscv/riscv/pmap.c index 0deb8b93a6dc..3fc261a15c06 100644 --- a/sys/riscv/riscv/pmap.c +++ b/sys/riscv/riscv/pmap.c @@ -578,16 +578,13 @@ pmap_early_alloc_tables(vm_paddr_t *freemempos, int npages) } /* - * Construct the direct map -- a linear mapping of physical memory into + * Construct the Direct Map -- a linear mapping of physical memory into * the kernel address space. * * We walk the list of physical memory segments (of arbitrary size and - * address) mapping each appropriately using L2 and L1 superpages. - * Consequently, the DMAP address space will have unmapped regions - * corresponding to any holes between physical memory segments. - * - * The lowest usable physical address will always be mapped to - * DMAP_MIN_ADDRESS. + * alignment) mapping each appropriately. Consequently, the DMAP address + * space will have unmapped regions corresponding to the holes between + * physical memory segments. */ static vm_paddr_t pmap_bootstrap_dmap(pd_entry_t *l1, vm_paddr_t freemempos) @@ -595,9 +592,9 @@ pmap_bootstrap_dmap(pd_entry_t *l1, vm_paddr_t freemempos) vm_paddr_t physmap[PHYS_AVAIL_ENTRIES]; vm_offset_t va; vm_paddr_t min_pa, max_pa, pa, endpa; - pd_entry_t *l2; + pd_entry_t *l3, *l2; pt_entry_t memattr; - u_int l1slot, l2slot; + u_int l1slot, l2slot, l3slot; int physmap_idx; physmap_idx = physmem_avail(physmap, nitems(physmap)); @@ -614,17 +611,58 @@ pmap_bootstrap_dmap(pd_entry_t *l1, vm_paddr_t freemempos) memattr = pmap_memattr_bits(VM_MEMATTR_DEFAULT); - /* Walk the physmap table. */ - l2 = NULL; - l1slot = Ln_ENTRIES; /* sentinel value */ + /* + * Walk the physmap table, using the largest page sizes possible for each + * mapping. So, for each physmap entry, map as needed/able: + * - 4K/L3 page prefix + * - 2M/L2 superpage prefix + * - 1G/L1 superpages + * - 2M/L2 superpage suffix + * - 4K/L3 page suffix + */ + l3 = l2 = NULL; + l2slot = l1slot = Ln_ENTRIES; /* sentinel value */ for (int idx = 0; idx < physmap_idx; idx += 2) { - pa = rounddown(physmap[idx], L2_SIZE); + pa = rounddown(physmap[idx], L3_SIZE); endpa = physmap[idx + 1]; /* Virtual address for this range. */ va = PHYS_TO_DMAP(pa); - /* Any 1GB possible for this range? */ + /* Any 2MB possible for this range? */ + if (roundup(pa, L2_SIZE) + L2_SIZE > endpa) + goto l3end; + + /* Loop until the next 2MB boundary. */ + while ((pa & L2_OFFSET) != 0) { + if (l2 == NULL || pmap_l1_index(va) != l1slot) { + /* Need to alloc another page table. */ + l2 = pmap_early_alloc_tables(&freemempos, 1); + + /* Link it. */ + l1slot = pmap_l1_index(va); + pmap_store(&l1[l1slot], + L1_PDE((vm_paddr_t)l2, PTE_V)); + } + + if (l3 == NULL || pmap_l2_index(va) != l2slot) { + l3 = pmap_early_alloc_tables(&freemempos, 1); + + /* Link it to L2. */ + l2slot = pmap_l2_index(va); + pmap_store(&l2[l2slot], + L2_PDE((vm_paddr_t)l3, PTE_V)); + } + + /* map l3 pages */ + l3slot = pmap_l3_index(va); + pmap_store(&l3[l3slot], L3_PTE(pa, PTE_KERN | memattr)); + + pa += L3_SIZE; + va += L3_SIZE; + } + + /* Any 1GB possible for remaining range? */ if (roundup(pa, L1_SIZE) + L1_SIZE > endpa) goto l2end; @@ -659,7 +697,8 @@ pmap_bootstrap_dmap(pd_entry_t *l1, vm_paddr_t freemempos) } l2end: - while (pa < endpa) { + /* Map what we can with 2MB superpages. */ + while (pa + L2_SIZE - 1 < endpa) { if (l2 == NULL || pmap_l1_index(va) != l1slot) { /* Need to alloc another page table. */ l2 = pmap_early_alloc_tables(&freemempos, 1); @@ -677,6 +716,35 @@ l2end: pa += L2_SIZE; va += L2_SIZE; } + +l3end: + while (pa < endpa) { + if (l2 == NULL || pmap_l1_index(va) != l1slot) { + /* Need to alloc another page table. */ + l2 = pmap_early_alloc_tables(&freemempos, 1); + + /* Link it. */ + l1slot = pmap_l1_index(va); + pmap_store(&l1[l1slot], + L1_PDE((vm_paddr_t)l2, PTE_V)); + } + + if (l3 == NULL || pmap_l2_index(va) != l2slot) { + l3 = pmap_early_alloc_tables(&freemempos, 1); + + /* Link it to L2. */ + l2slot = pmap_l2_index(va); + pmap_store(&l2[l2slot], + L2_PDE((vm_paddr_t)l3, PTE_V)); + } + + /* map l3 pages */ + l3slot = pmap_l3_index(va); + pmap_store(&l3[l3slot], L3_PTE(pa, PTE_KERN | memattr)); + + pa += L3_SIZE; + va += L3_SIZE; + } } /* And finally, the limit on DMAP VA. */ From nobody Mon Feb 9 19:41: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 4f8w765HNSz6RvNQ for ; Mon, 09 Feb 2026 19:41: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 4f8w7630tkz3LLl for ; Mon, 09 Feb 2026 19:41:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770666098; 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=zucxPCYGM03adogDjydJq0cKK3aVdWUvp/wO9abEJD4=; b=atCQvdejfUyHcKOcI35oH/fXm4JyCGKPicA0k/PwIweqK9an1hO9cDuiu9cmAkH4Z3nuaT YZPEaegDRbfcJNdrWawWDxhMJpzDXjodowcntVl4pBynXJKTNkLqfyDyPHT+IidgUYo6hx vCBVjPqdMl0LCFgG3XXOO1xSXW7LkN1iz9zrRNkgL/S4NNR8ucYpVtxG1qF4kclmID4iPi 9PpTskQy0E/AF+TGomz9QITlnZhuzRoL9MH+v17TOyEi++LQpin3TtOWd3aCyF5zyNxtN8 4ylLNmDGYf6xzQ5y8NukodHbrAyhB/iTnjCTflsu40R9BZvXc+/c4jGqOcR2bw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770666098; a=rsa-sha256; cv=none; b=xLWKY5QzKZnF0z7A9N8CZsmOR1uGAPudtE48ICgYmixYo8F4RjQyj8Lxo03I+amMahkSeC 53onB2K98yw01CAu1ECiI+t4MICmgQYoBAPhN8Jttebtu/rYg3wn4DoKD5J8P/aB7/WK1u fhlFljdzq7PZSi7TOrmvC7WzrATQLHm8upI6NbxGUJ16zCq0YmgnRfdYzHDlPGBiU3gjst u0skj1xFve5/RJ9dBm82GCmiDUqJ3lSCljEV8HDn0dX5j1IjcKM8AluRDGgL4U5MYoC0eY 519eNK8v13o72Rx/cDkIMgF/wGmtW/sogLblryQvmglq4SD2aoaoORhqIIVSyg== 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=1770666098; 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=zucxPCYGM03adogDjydJq0cKK3aVdWUvp/wO9abEJD4=; b=BwWG2j5/hE9tEseq5mmWiLXTiknVfL8zL9HRkhS4DEEIr8t9TeQySD+w+bHCyD1wwFDYdy ElCgSvKlvQSratzQIWMZvr0GsOkyUdBR5q5nu99ldn/J591wrzIOAozohZtTMVggExZJJN XKCgljxkjsSG8Ah/4za/XwwnXiFnNtiiQ/bCzkSCRcWB/GcKlQEeCiTIQYkKuqwfDgXrHu ZtI4p9qjyEFBPJgGDsqXQsDLnp9N8He0ecJExws6YzwAYtWdb52Kwx8JAvf62O9CjxqQUm 1fPjlkv2m7rqtcpH8+0/kzggSmEco7vh58FENM1rziTQZRPUuXZ0PZfbxWHhkA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8w762ZWDzmYn for ; Mon, 09 Feb 2026 19:41:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3b3a9 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 19:41:38 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Doongar Singh From: Mitchell Horne Subject: git: 4a7d42f35107 - stable/15 - riscv: Add macro for hfence.gvma instruction 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: mhorne X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 4a7d42f35107a27c293e0a2b350d15e6829856c7 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 19:41:38 +0000 Message-Id: <698a3872.3b3a9.469e6181@gitrepo.freebsd.org> The branch stable/15 has been updated by mhorne: URL: https://cgit.FreeBSD.org/src/commit/?id=4a7d42f35107a27c293e0a2b350d15e6829856c7 commit 4a7d42f35107a27c293e0a2b350d15e6829856c7 Author: Doongar Singh AuthorDate: 2026-01-26 16:18:22 +0000 Commit: Mitchell Horne CommitDate: 2026-02-09 19:38:23 +0000 riscv: Add macro for hfence.gvma instruction Add an inline function hfence_gvma() for hfence.gvma instruction. Signed-off-by: Doongar Singh Reviewed by: mhorne, markj Differential Revision: https://reviews.freebsd.org/D54857 (cherry picked from commit 972c488bf4117d9eb29e5753c6c5a2250154df3d) --- sys/riscv/include/cpufunc.h | 7 +++++++ sys/riscv/vmm/vmm_riscv.c | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/sys/riscv/include/cpufunc.h b/sys/riscv/include/cpufunc.h index 75b22632c546..c39f17131eb7 100644 --- a/sys/riscv/include/cpufunc.h +++ b/sys/riscv/include/cpufunc.h @@ -119,6 +119,13 @@ sfence_vma_asid_page(uint64_t asid, uintptr_t addr) : "memory"); } +static __inline void +hfence_gvma(void) +{ + + __asm __volatile("hfence.gvma" ::: "memory"); +} + #define rdcycle() csr_read64(cycle) #define rdtime() csr_read64(time) #define rdinstret() csr_read64(instret) diff --git a/sys/riscv/vmm/vmm_riscv.c b/sys/riscv/vmm/vmm_riscv.c index 0e46aca60fdf..5d39c96c682a 100644 --- a/sys/riscv/vmm/vmm_riscv.c +++ b/sys/riscv/vmm/vmm_riscv.c @@ -625,7 +625,7 @@ vmmops_run(void *vcpui, register_t pc, pmap_t pmap, struct vm_eventinfo *evinfo) * have been modified, it may be necessary to execute an HFENCE.GVMA * instruction (see Section 5.3.2) before or after writing hgatp. */ - __asm __volatile("hfence.gvma" ::: "memory"); + hfence_gvma(); csr_write(hgatp, pmap->pm_satp); if (has_sstc) From nobody Mon Feb 9 20:19: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 4f8wyj6FHFz6Rxb5 for ; Mon, 09 Feb 2026 20:19: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 4f8wyj5hCXz3RZB for ; Mon, 09 Feb 2026 20:19:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770668365; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aRTaJrKIjmoSO05NYWWY0cuy2GGdzOE+2Gs5EeBK5S4=; b=vlNGMkLtMT8XuXVYNQG4Q804b34VlT+5msbxvJCYkfaJO+BIKRHPsUW0xudWwL/Admlwyb NCvHyhGDRZRyzDJVmdG2dWl9UuY8gGB2nKKM/7FH6Hsrx9xb4eE8FfcqKQzgKe9Q5dsZ69 Z5fp6+mTcl6V3JHDhtxsjduSmD0L2mixulL8STu/Y4sRAbXYO28qY04q30kTAdFHc8kudX 06W9ZYG8xEUrYxoMqChuAMM6UPHD8Sc9fLGiNbUZLFRLHSbddipzCVG/QPtNlvOoyWhAoB oyQTIl66NeJblsZJu+ayOKrUbmGfM/7Ee7ybHETJDIeVLecMdNr4C/d/5q1ckA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770668365; a=rsa-sha256; cv=none; b=EMujG8Ppi2CJzfc+gOpRfM/ax8qZvIRthkQj1JjMBjX47cRnqYQPtOv0oVSI8cst05SvAy 6wsNPB/hPqP/WIlsHsjCyOhxnaRkZsAoz/ZsKxomcRJc5f6QL/aQ5VmtUEsLv5W6HcjiId cIYR5MYWp9besKC5kBvtrOc4QcFso7CeZmb8Hn4JTEeGY75l1gCrssqdQSatBEk0sJGexk lILuVMe0Y/id5sPJTVctrjgT6a97yZRP/qwSIh/Gl2wPMy8W8xxztCoGlgSJvJNCaTALQJ eR8DODLPbvpAw7+IVGnvhzI2L+biKYAwvQIHHoELAAHoOLZK69+NCREiPw1Bfg== 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=1770668365; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aRTaJrKIjmoSO05NYWWY0cuy2GGdzOE+2Gs5EeBK5S4=; b=J/2jTtFnO1L3c0fZt9YAW0BekscyEJ0XSH5URU09MJaTJ+SU4xR3ekXmyRSrohlf6blBXy PNU1fY/0tNjXQ9mKKCrw7KLXTRiEMNbyCnK4spa7ARsFIhxU4W2cgqkoOOZcpGGvsndgMi taZpFMiqdvsKAqSQrJvOn+K+oM+5xeOt/dR6hhXSdQeJLilpek4FyYJAcE8EjHv0O7NCvU B24njZQGyRsO1jq21bWHe6NgemgVVoYxMrKs6WtdBXrODqGM/P/sKHqE/3WSIWMJV4tA9A 0gxpd6/COvdN4rMz+cvxls5eVUF7bBpaamYBs90pIaal0YzNqwMoQ+kCWrkSKw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8wyj4sgJznMT for ; Mon, 09 Feb 2026 20:19:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3dcd1 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 20:19:25 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 302120bcb934 - stable/14 - amd64/conf: Remove a config committed by accident 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: 302120bcb934ea150555362326c812353fb72eaa Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 20:19:25 +0000 Message-Id: <698a414d.3dcd1.2335953a@gitrepo.freebsd.org> The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=302120bcb934ea150555362326c812353fb72eaa commit 302120bcb934ea150555362326c812353fb72eaa Author: Mark Johnston AuthorDate: 2025-06-25 12:50:50 +0000 Commit: Mark Johnston CommitDate: 2026-02-09 20:19:12 +0000 amd64/conf: Remove a config committed by accident Reported by: kib, kp Fixes: 350ba9672a7f ("unix: Set O_RESOLVE_BENEATH on fds transferred between jails") (cherry picked from commit 3ef39f58e5d63a78fd1c37e6c62d599bc68d5e1e) --- sys/amd64/conf/SYZKALLER | 5 ----- 1 file changed, 5 deletions(-) diff --git a/sys/amd64/conf/SYZKALLER b/sys/amd64/conf/SYZKALLER deleted file mode 100644 index 965841313616..000000000000 --- a/sys/amd64/conf/SYZKALLER +++ /dev/null @@ -1,5 +0,0 @@ -include GENERIC-KASAN -ident SYZKALLER - -options COVERAGE -options KCOV From nobody Mon Feb 9 20:44: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 4f8xW43ZpYz6S08v for ; Mon, 09 Feb 2026 20:44: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 4f8xW41z5Jz3W5x for ; Mon, 09 Feb 2026 20:44:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770669840; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zXVVnIvWzV1fuGLUcSJ8BWaxobJuF6ovoOPIldXRSnE=; b=ibRYE+n3owvMgPUmYAp0LXgwo9v2KbxJaMpSQONHXBYP12FiBdx4TqektZ6pWb8TJAJ2Dw bQCRDE8mxu0VSS53mrb7stUL1jLHugSHSiaTNsE7ULAeAc2ZlKLw78WldiM71o2E8G0ynW jWVfqBvKAh2n2izPg8gCR3g6SeOfpcpqOT/Uz4cXKCqhYzFatrAnAb1wELenbaOpRfeYnh /tsuYECsyFKo0mqbn//0RlgFyS0Bnlt8ihu9EZWlCcOHNTGD2uQ5aW7m4fL+noTKGNZZtQ 2rheoPmj/LEnDYEQfQz1AiwbOUhmBxLCYKQXlG9GD9iapj1IzW/qIwyIJ4qowg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770669840; a=rsa-sha256; cv=none; b=MYag62K17qZa+YI5e+UqNzpQt4H84+HN0A1YRNqMMVNeiyfk1ImRXCYJeVag71cGBm0+So 9qMx15VHEo1IyaWLbsTu/QMGLKewH0ix1e66Wj0qALy3hss3zs6wZEGARcE7UlK6t1vofo T+46SGsn2KUdbTkjEb+0XsE+RhmlRGQr85pddIGNZ6u0RI0jUtjkBOYGLG0xS9d43hYTy7 JmW0qRme+s5WMuSaiR6Nzkvitprgm7YAmMGR6NVhbr3D2g4UA258O7HjlG2LQ+t1kMHIAA OYT6WA+e2sCL5Dd8tHo3c6hcAywf8vnw0AOxTnXQ3mcU17IoErTy1Uca/genAQ== 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=1770669840; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zXVVnIvWzV1fuGLUcSJ8BWaxobJuF6ovoOPIldXRSnE=; b=fxukRDXHtqv3wGaAQZkOgk+hv0fs9xFOEFFq3zeJsJ1lhdkatePgdwyvp4AgAdyFH9wsS1 7B+gf0UdwG7pUK3Z9G8VHYi95YtX9tGze+yjVBpe3ozjn0cg20dgLtj7Ar3FzFL9FVZDCe 3rv/bXsSwhtaL9/Ojy5puqnBSi+i9D7P5RCEnfcMVQe+VLeq8H1Kqd8GJGRMgLD4qgZNun sTEPfmZvNwyuDkrOiiztxNz0l3UFP6xfgZnDv71smlOPfH11hD0+sbIRDZ3RkJil7ClJA2 nAtwBZu9DLpQtb/W9GZjTvPKRbk3FQgRKvcD9ZOY2W0sFG91M0rjNgYBzd+JpA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8xW41YcKzp3m for ; Mon, 09 Feb 2026 20:44:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3fcb6 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 20:44:00 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 73530e4c2ea9 - stable/13 - unix: Set O_RESOLVE_BENEATH on fds transferred between jails 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/13 X-Git-Reftype: branch X-Git-Commit: 73530e4c2ea92564e393e0497f13dfac251a41b7 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 20:44:00 +0000 Message-Id: <698a4710.3fcb6.2c0bcaa1@gitrepo.freebsd.org> The branch stable/13 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=73530e4c2ea92564e393e0497f13dfac251a41b7 commit 73530e4c2ea92564e393e0497f13dfac251a41b7 Author: Mark Johnston AuthorDate: 2025-06-24 20:05:37 +0000 Commit: Mark Johnston CommitDate: 2026-02-09 17:48:55 +0000 unix: Set O_RESOLVE_BENEATH on fds transferred between jails If a pair of jails with different filesystem roots is able to exchange SCM_RIGHTS messages (e.g., using a unix socket in a shared nullfs mount), a process in one jail can open a directory outside of the root of the second jail and then pass the fd to that second jail, allowing the receiving process to escape the jail chroot. Address this using the new FD_RESOLVE_BENEATH flag. When externalizing an SCM_RIGHTS message into the receiving process, automatically set this flag on all new fds where a jail boundary is crossed. This ensures that the receiver cannot do more than access files underneath the directory; in particular, the received fd cannot be used to access vnodes not accessible by the sender. PR: 262179 Reviewed by: kib MFC after: 3 weeks Differential Revision: https://reviews.freebsd.org/D50371 (cherry picked from commit 350ba9672a7f4f16e30534a603df577dfd083b3f) --- sys/amd64/conf/SYZKALLER | 5 +++++ sys/kern/uipc_usrreq.c | 31 +++++++++++++++++++++++-------- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/sys/amd64/conf/SYZKALLER b/sys/amd64/conf/SYZKALLER new file mode 100644 index 000000000000..965841313616 --- /dev/null +++ b/sys/amd64/conf/SYZKALLER @@ -0,0 +1,5 @@ +include GENERIC-KASAN +ident SYZKALLER + +options COVERAGE +options KCOV diff --git a/sys/kern/uipc_usrreq.c b/sys/kern/uipc_usrreq.c index 0f5048a96e89..4043e7260d0f 100644 --- a/sys/kern/uipc_usrreq.c +++ b/sys/kern/uipc_usrreq.c @@ -57,7 +57,6 @@ * need a proper out-of-band */ -#include #include "opt_ddb.h" #include @@ -67,6 +66,7 @@ #include #include #include +#include #include #include #include @@ -1993,22 +1993,34 @@ unp_freerights(struct filedescent **fdep, int fdcount) free(fdep[0], M_FILECAPS); } +static bool +restrict_rights(struct file *fp, struct thread *td) +{ + struct prison *prison1, *prison2; + + prison1 = fp->f_cred->cr_prison; + prison2 = td->td_ucred->cr_prison; + return (prison1 != prison2 && prison1->pr_root != prison2->pr_root && + prison2 != &prison0); +} + static int unp_externalize(struct mbuf *control, struct mbuf **controlp, int flags) { struct thread *td = curthread; /* XXX */ struct cmsghdr *cm = mtod(control, struct cmsghdr *); - int i; int *fdp; struct filedesc *fdesc = td->td_proc->p_fd; struct filedescent **fdep; void *data; socklen_t clen = control->m_len, datalen; - int error, newfds; + int error, fdflags, newfds; u_int newlen; UNP_LINK_UNLOCK_ASSERT(); + fdflags = (flags & MSG_CMSG_CLOEXEC) ? O_CLOEXEC : 0; + error = 0; if (controlp != NULL) /* controlp == NULL => free control messages */ *controlp = NULL; @@ -2059,11 +2071,14 @@ unp_externalize(struct mbuf *control, struct mbuf **controlp, int flags) *controlp = NULL; goto next; } - for (i = 0; i < newfds; i++, fdp++) { - _finstall(fdesc, fdep[i]->fde_file, *fdp, - (flags & MSG_CMSG_CLOEXEC) != 0 ? O_CLOEXEC : 0, - &fdep[i]->fde_caps); - unp_externalize_fp(fdep[i]->fde_file); + for (int i = 0; i < newfds; i++, fdp++) { + struct file *fp; + + fp = fdep[i]->fde_file; + _finstall(fdesc, fp, *fdp, fdflags | + (restrict_rights(fp, td) ? + O_RESOLVE_BENEATH : 0), &fdep[i]->fde_caps); + unp_externalize_fp(fp); } /* From nobody Mon Feb 9 20:44: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 4f8xW60gVlz6S091 for ; Mon, 09 Feb 2026 20:44: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 4f8xW53FHXz3W8W for ; Mon, 09 Feb 2026 20:44:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770669841; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qVqxZZz0DpvrrvCj10gp8OZEyAjcnGTC9GLiwOV/dLE=; b=GfOwEv1xdwHjTQdse7rI1rwV26692y5hu9h8QV5t5Gs27Q/qBpoK8qJhHFDLY4qY7+Gm5N 8gg6GK/kkjyUkoJFnplEmg7CsmJwWs2hsDopEnvELftVKvAcmgB0NCEpmgd3Tf1Aalhrlo ZoDCpjrZFPMMJmvu008ohsjSacJP5D+PHxHJkngy/NY242esqi1RL34Q7cBw6g/dDdaQXC 1MDnonWV0AqjdqSMJr/dskLHawj7KWqZyCyNdliB2veh3t9GWKuI7NlUCwOKDuOZScITos vYmwHTfsOc2guIRNoU2m7mDFGY0YpFAMdl+G8EBBIBGM+QrKMGV4VV2OU5Y++w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770669841; a=rsa-sha256; cv=none; b=ybFeMpw5QKnfX0mHaRgKXzJlqMHCNTJGKWWNt9bLHn1wAI6rKp1a47eGg+bwao6UDC11fV 3ur1Rx5JPJUIAs4f5CQCo4dHOoCFXaFGF0Tz849jlXfgLqaoqfc1OXlBQVILGc5xuXsnh2 A3LWTd+JNZNP+pk4vghGhwDjyyYcl9DzhQghG+OirG/foKOL6vGiOLWajIo4ZrQDp885/C udAFc9kx1Ru45bFFxx3IOtapbXSrqeK2klsqxv1OE7a5O/0sKLxlIA8GJ0POC3fYBDPenj Pul9rDmVnZwEyV0cSv6ORiPPO/MnL1n9L5O9GopneZqSxIQftTVjIrT+mygEWg== 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=1770669841; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qVqxZZz0DpvrrvCj10gp8OZEyAjcnGTC9GLiwOV/dLE=; b=gpGari03SRJWHXi+oS1bANT0m3wql6DBvnFG7c2BytLu7kwk7v8Q8SEnkBRNKA3baA5Aqt VTX5QrnZZagkJh8LKHcg9ll0ZsFqyB+yo1mq078cxa169JkTrc3atmSOP/DXJuS1Bs5c8X rdKIgFMZR2D32xstAZs/BMApcoSpW88qUp9HOaRMwUE5X7fLI+LD78N0rrDFp2tcPz94NW hsBT3oYlV4uVHSPn5u4weLaj0duYtqF1WGPpy4FjzK4qosRVhrdf8X1RE7hid+CYEn7Pkk Uz/zLJ3rilTylrHLY2ykqDcnVoi8nwi85dOcNknBoxI6amN35REqWbIxIzow7w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8xW52RWgzpFp for ; Mon, 09 Feb 2026 20:44:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 40699 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 20:44:01 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: c9977132865e - stable/13 - unix/tests: Add a regression test for fd transfer across jails 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/13 X-Git-Reftype: branch X-Git-Commit: c9977132865ec06d2d3e1f404e946836019ff7a2 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 20:44:01 +0000 Message-Id: <698a4711.40699.67f11e2f@gitrepo.freebsd.org> The branch stable/13 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=c9977132865ec06d2d3e1f404e946836019ff7a2 commit c9977132865ec06d2d3e1f404e946836019ff7a2 Author: Mark Johnston AuthorDate: 2025-06-24 20:08:22 +0000 Commit: Mark Johnston CommitDate: 2026-02-09 18:07:10 +0000 unix/tests: Add a regression test for fd transfer across jails MFC after: 3 weeks (cherry picked from commit 5843b8ee02e99527c28f579acfc1f48e10033529) --- tests/sys/kern/Makefile | 1 + tests/sys/kern/unix_passfd_test.c | 134 +++++++++++++++++++++++++++++++++++++- 2 files changed, 133 insertions(+), 2 deletions(-) diff --git a/tests/sys/kern/Makefile b/tests/sys/kern/Makefile index f862e41d1d72..d499fd525222 100644 --- a/tests/sys/kern/Makefile +++ b/tests/sys/kern/Makefile @@ -75,6 +75,7 @@ LIBADD.socket_msg_waitall+= pthread LIBADD.sendfile_helper+= pthread LIBADD.fdgrowtable_test+= util pthread kvm procstat LIBADD.sigwait+= rt +LIBADD.unix_passfd_test+= jail NETBSD_ATF_TESTS_C+= lockf_test NETBSD_ATF_TESTS_C+= mqueue_test diff --git a/tests/sys/kern/unix_passfd_test.c b/tests/sys/kern/unix_passfd_test.c index d5654ed62315..ea892d7b4a95 100644 --- a/tests/sys/kern/unix_passfd_test.c +++ b/tests/sys/kern/unix_passfd_test.c @@ -25,15 +25,18 @@ * SUCH DAMAGE. */ -#include -#include +#include +#include #include #include #include #include +#include +#include #include #include +#include #include #include #include @@ -713,6 +716,132 @@ ATF_TC_BODY(empty_rights_message, tc) (void)close(putfd); } +ATF_TC_WITH_CLEANUP(cross_jail_dirfd); +ATF_TC_HEAD(cross_jail_dirfd, tc) +{ + atf_tc_set_md_var(tc, "require.user", "root"); +} +ATF_TC_BODY(cross_jail_dirfd, tc) +{ + int error, sock[2], jid1, jid2, status; + pid_t pid1, pid2; + + domainsocketpair(sock); + + error = mkdir("./a", 0755); + ATF_REQUIRE(error == 0); + error = mkdir("./b", 0755); + ATF_REQUIRE(error == 0); + error = mkdir("./c", 0755); + ATF_REQUIRE(error == 0); + error = mkdir("./a/c", 0755); + ATF_REQUIRE(error == 0); + + jid1 = jail_setv(JAIL_CREATE, + "name", "passfd_test_cross_jail_dirfd1", + "path", "./a", + "persist", NULL, + NULL); + ATF_REQUIRE_MSG(jid1 >= 0, "jail_setv: %s", jail_errmsg); + + jid2 = jail_setv(JAIL_CREATE, + "name", "passfd_test_cross_jail_dirfd2", + "path", "./b", + "persist", NULL, + NULL); + ATF_REQUIRE_MSG(jid2 >= 0, "jail_setv: %s", jail_errmsg); + + pid1 = fork(); + ATF_REQUIRE(pid1 >= 0); + if (pid1 == 0) { + ssize_t len; + int dfd, error; + char ch; + + error = jail_attach(jid1); + if (error != 0) + err(1, "jail_attach"); + + dfd = open(".", O_RDONLY | O_DIRECTORY); + if (dfd < 0) + err(1, "open(\".\") in jail %d", jid1); + + ch = 0; + len = sendfd_payload(sock[0], dfd, &ch, sizeof(ch)); + if (len == -1) + err(1, "sendmsg"); + + _exit(0); + } + + pid2 = fork(); + ATF_REQUIRE(pid2 >= 0); + if (pid2 == 0) { + int dfd, dfd2, error, fd; + char ch; + + error = jail_attach(jid2); + if (error != 0) + err(1, "jail_attach"); + + /* Get a directory from outside the jail root. */ + recvfd_payload(sock[1], &dfd, &ch, sizeof(ch), + CMSG_SPACE(sizeof(int)), 0); + + if ((fcntl(dfd, F_GETFD) & FD_RESOLVE_BENEATH) == 0) + errx(1, "dfd does not have FD_RESOLVE_BENEATH set"); + + /* Make sure we can't chdir. */ + error = fchdir(dfd); + if (error == 0) + errx(1, "fchdir succeeded"); + if (errno != ENOTCAPABLE) + err(1, "fchdir"); + + /* Make sure a dotdot access fails. */ + fd = openat(dfd, "../c", O_RDONLY | O_DIRECTORY); + if (fd >= 0) + errx(1, "openat(\"../c\") succeeded"); + if (errno != ENOTCAPABLE) + err(1, "openat"); + + /* Accesses within the sender's jail root are ok. */ + fd = openat(dfd, "c", O_RDONLY | O_DIRECTORY); + if (fd < 0) + err(1, "openat(\"c\")"); + + dfd2 = openat(dfd, "", O_EMPTY_PATH | O_RDONLY | O_DIRECTORY); + if (dfd2 < 0) + err(1, "openat(\"\")"); + if ((fcntl(dfd2, F_GETFD) & FD_RESOLVE_BENEATH) == 0) + errx(1, "dfd2 does not have FD_RESOLVE_BENEATH set"); + + _exit(0); + } + + error = waitpid(pid1, &status, 0); + ATF_REQUIRE(error != -1); + ATF_REQUIRE(WIFEXITED(status)); + ATF_REQUIRE(WEXITSTATUS(status) == 0); + error = waitpid(pid2, &status, 0); + ATF_REQUIRE(error != -1); + ATF_REQUIRE(WIFEXITED(status)); + ATF_REQUIRE(WEXITSTATUS(status) == 0); + + closesocketpair(sock); +} +ATF_TC_CLEANUP(cross_jail_dirfd, tc) +{ + int jid; + + jid = jail_getid("passfd_test_cross_jail_dirfd1"); + if (jid >= 0 && jail_remove(jid) != 0) + err(1, "jail_remove"); + jid = jail_getid("passfd_test_cross_jail_dirfd2"); + if (jid >= 0 && jail_remove(jid) != 0) + err(1, "jail_remove"); +} + ATF_TP_ADD_TCS(tp) { @@ -728,6 +857,7 @@ ATF_TP_ADD_TCS(tp) ATF_TP_ADD_TC(tp, truncated_rights); ATF_TP_ADD_TC(tp, copyout_rights_error); ATF_TP_ADD_TC(tp, empty_rights_message); + ATF_TP_ADD_TC(tp, cross_jail_dirfd); return (atf_no_error()); } From nobody Mon Feb 9 20:44: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 4f8xW65Cl8z6S093 for ; Mon, 09 Feb 2026 20:44: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 4f8xW63FW0z3VyF for ; Mon, 09 Feb 2026 20:44:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770669842; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=g5TUKuVlzjEwtdFAkf+arUlvME8SJVfJFk3Gqaaknx0=; b=tM/wmVAr8pIgtVDxa5BkNN/51sWiliEG0PbGDTeY4/Ai3vw/ZeqevmxEHcq2BlPPa744ub qYfUGfuy29Wnw/99Vatgd4SDIBgVatRSc/5MRiS1m2BOyGM7wDzaydg6V0bkrj0Gf8TlDv w5PcoXIQ4EEwCVM4Qx9rD5bDNcgVWRqv0VVWDR5nIBCFTBmXaht6EodegomsBhyWycStss tKk63mZ+nPnUGluZn16vIdePzbOv1ev1S8708HLo6gB51c/D54IM0Pj8rXWtgoHLq2lng0 sjIGvsqU/0YI+VmOYO4kuLUmZv5Y2zh01qL5P5zfm2Wp7ESLcDxz2N9qMsKEaQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770669842; a=rsa-sha256; cv=none; b=vwl/ctNbxyA2mTsl/mNYFdq7EVj3+0qBxdcHcHzr9zRBZtiBWKw7+CkVoXbuN/0mnzLOx/ iWGrkGhwbzyrmLzLt5E+FnPcHfHWQq/LsTBgkUuoRG8xjOX0SV5IdYNvEuFZzVWtpZrryN rfI5rp7GKj3/a3PQostEXOOHzlzb1QO52JszSkUP1jGKFCZOTQmiY3Ye2uAzTXJw5G8N6e nXwdByWlb1AROTqIJxnOC0QMXqiMZedoX6v7QISn4WuhYa8hS01/5zwHMRuGfHdts6uZOo nvLWcDH7UoPkbvk/nV9dsgEoE2qxGbHlkWDRg5LHHi0EsTvWL/8g2sF2CsFcHw== 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=1770669842; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=g5TUKuVlzjEwtdFAkf+arUlvME8SJVfJFk3Gqaaknx0=; b=Dt74Ax9YKsvGrgx87Cic+GwuwF63sSKT0FByrxaHG4g/N7IN2JmZhvTlT6Zb2wXDcgH8XX r77s2w6tjSkHx+3bKkqkmHj9QwjpGvPdCVUT81SuUFkUSjV8LHCsQg8tPDrHsS4crA8ekC vtx+TgXX4r+9+CzhLe27NtDKzpn87eOs+nmcZiASDSSKks5AL2N888s1mSr1lfjHtYMFxl cDNR0FH6UyXnZ44EkBtZFuJEjKLtZLY3QQzE1pY/NnDgQAf1ut9KTZhCBGOaHVhSqXVT6u 4xVl0vFTWg9DLiFBYZyvum2H51mvNc8YW4GAg22TfEOoxCkbwjyqm6UBcjrYEQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8xW62n04zpP9 for ; Mon, 09 Feb 2026 20:44:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 4069d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 20:44:02 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 3b0f13ca6098 - stable/13 - amd64/conf: Remove a config committed by accident 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/13 X-Git-Reftype: branch X-Git-Commit: 3b0f13ca60981186b1455d1e506ef4365054acc3 Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 20:44:02 +0000 Message-Id: <698a4712.4069d.3d28438b@gitrepo.freebsd.org> The branch stable/13 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=3b0f13ca60981186b1455d1e506ef4365054acc3 commit 3b0f13ca60981186b1455d1e506ef4365054acc3 Author: Mark Johnston AuthorDate: 2025-06-25 12:50:50 +0000 Commit: Mark Johnston CommitDate: 2026-02-09 20:18:58 +0000 amd64/conf: Remove a config committed by accident Reported by: kib, kp Fixes: 350ba9672a7f ("unix: Set O_RESOLVE_BENEATH on fds transferred between jails") (cherry picked from commit 3ef39f58e5d63a78fd1c37e6c62d599bc68d5e1e) --- sys/amd64/conf/SYZKALLER | 5 ----- 1 file changed, 5 deletions(-) diff --git a/sys/amd64/conf/SYZKALLER b/sys/amd64/conf/SYZKALLER deleted file mode 100644 index 965841313616..000000000000 --- a/sys/amd64/conf/SYZKALLER +++ /dev/null @@ -1,5 +0,0 @@ -include GENERIC-KASAN -ident SYZKALLER - -options COVERAGE -options KCOV From nobody Mon Feb 9 20:43: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 4f8xW83D0Cz6S0Hp for ; Mon, 09 Feb 2026 20:44: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 4f8xW81GMYz3Vsf for ; Mon, 09 Feb 2026 20:44:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770669844; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=f8uXbEkr5tsBkOT0I2n0/TrTRvlinMEQk2VPmXBs0fs=; b=IC2Gyl+Xg6RmypHzPBlqygIffen/bA59F0qtU2UYFGy8M3HU4I1lWlXXwZdh7Z3i9bJHEM P3h3HvGLl4S7xUWJ75q/m9PaYZNYrpDlkWEesi/ZLNHIi4XFO3KBt/mvUPFQ31G9ODIJLu J01pg8WPfUtrY4PnWFQQY/FX+/Q0vFVw5TlU17IsVNcUp6cumHO7oh6W++04iEpOAK7sPj uOPcGcxfZqOW+m1XH9YoF1+fUiCIG1b+XhzU0+RrxGJKdqG486IRzfHSdaIrw/xtvKwYon 3khCPOAloOo7Lm5aZMQ55GGMcOqX+9bKKjlISsYJHAESUhC7stW4VHSyYgki8Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770669844; a=rsa-sha256; cv=none; b=fck724IU+aPYBsKDobscAt4qVBPbJQjcdpiIIlo3Yox8H+Nu2Qo48TWOw+dQpsOCI1D5b5 JCdPUtmDDJVBHGaOMQYm2Tud+YlSKoPwZHhr7Ny7X6i1XTeRW6Sgv6Tjd5tQpkC96C4TmF LHrppheBTs+E7ZGrLQXHbxTBr6/FmxpJ1Ue75TkeYTRWyXDsLfjRzIckYy37dkOzKNUTvz dr92tjzJHFlW4prx5LegupI0IHMDKUsi5JHZjxOsDEMNFkRnHUKrEEbymWWxE314Oe/z5/ P1l4YYr1J7dP90ww6z/JuRmNxzwhDRvNvg31nMRohrWxEDh9P8Eo5KSCnk5Wew== 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=1770669844; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=f8uXbEkr5tsBkOT0I2n0/TrTRvlinMEQk2VPmXBs0fs=; b=CV9wfvFIVcFhzHxGh4ansGUz+PpJZssdouaoZnIN/CUX6YEzyxKm7eaZV+n1a1XCNYPQjO jOMLQS02Grmaf90mewDOzFFHAEEt2d4tyddJNxhrKZYfWpNWta0TXUE2zoB/y6ScR+c4Nf dQs0p8o1JNP903wM1YO/NxP36cbSzzEVJaQH/ETxhRWwjykJMmfRjPd0gwhmr5E3v/OiUf EbjkRUFopqIYu8gJKyCyGp2GzXcQ8Db9wLyzVbsRyGsNfj7wmaSTfK3sbes9/NjB+RGYdK SxTNc1gNanrV2l9OuyQC5TaJVYdk5lOlt4i+R6GyuNvn4U/tAxP9ThZyup6wjA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f8xW80l4nzp3p for ; Mon, 09 Feb 2026 20:44:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 40327 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Mon, 09 Feb 2026 20:43:59 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: f7cbcb19a9ec - stable/13 - file: Add a fd flag with O_RESOLVE_BENEATH semantics 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/13 X-Git-Reftype: branch X-Git-Commit: f7cbcb19a9ecf606172d6d6c472b5ba7130a398b Auto-Submitted: auto-generated Date: Mon, 09 Feb 2026 20:43:59 +0000 Message-Id: <698a470f.40327.2604f8c6@gitrepo.freebsd.org> The branch stable/13 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=f7cbcb19a9ecf606172d6d6c472b5ba7130a398b commit f7cbcb19a9ecf606172d6d6c472b5ba7130a398b Author: Mark Johnston AuthorDate: 2026-02-09 16:47:16 +0000 Commit: Mark Johnston CommitDate: 2026-02-09 16:54:57 +0000 file: Add a fd flag with O_RESOLVE_BENEATH semantics The O_RESOLVE_BENEATH openat(2) flag restricts name lookups such that they remain under the directory referenced by the dirfd. This commit introduces an implicit version of the flag, FD_RESOLVE_BENEATH, stored in the file descriptor entry. When the flag is set, any lookup relative to that fd automatically has O_RESOLVE_BENEATH semantics. Furthermore, the flag is sticky, meaning that it cannot be cleared, and it is copied by dup() and openat(). File descriptors with FD_RESOLVE_BENEATH set may not be passed to fchdir(2) or fchroot(2). Various fd lookup routines are modified to return fd flags to the caller. This flag will be used to address a case where jails with different root directories and the ability to pass SCM_RIGHTS messages across the jail boundary can transfer directory fds in such as way as to allow a filesystem escape. PR: 262180 Reviewed by: kib MFC after: 3 weeks Differential Revision: https://reviews.freebsd.org/D50371 (cherry picked from commit f35525ff2053e026a423e852136d73ed93c95803) --- lib/libc/sys/fcntl.2 | 63 +++++++++++++++++++--------- sys/compat/cloudabi/cloudabi_fd.c | 2 +- sys/fs/fdescfs/fdesc_vnops.c | 4 +- sys/kern/kern_descrip.c | 87 ++++++++++++++++++++++++++++----------- sys/kern/uipc_syscalls.c | 2 +- sys/kern/vfs_acl.c | 4 +- sys/kern/vfs_cache.c | 14 +++++-- sys/kern/vfs_extattr.c | 8 ++-- sys/kern/vfs_syscalls.c | 22 +++++++--- sys/sys/fcntl.h | 2 + sys/sys/file.h | 2 +- sys/sys/filedesc.h | 8 +++- sys/sys/namei.h | 1 + 13 files changed, 153 insertions(+), 66 deletions(-) diff --git a/lib/libc/sys/fcntl.2 b/lib/libc/sys/fcntl.2 index 5de41f4c0476..fdd29c9f5d78 100644 --- a/lib/libc/sys/fcntl.2 +++ b/lib/libc/sys/fcntl.2 @@ -27,7 +27,7 @@ .\" .\" @(#)fcntl.2 8.2 (Berkeley) 1/12/94 .\" -.Dd December 7, 2021 +.Dd June 5, 2025 .Dt FCNTL 2 .Os .Sh NAME @@ -82,6 +82,11 @@ associated with the new file descriptor is cleared, so the file descriptor is to remain open across .Xr execve 2 system calls. +.It +The +.Dv FD_RESOLVE_BENEATH +flag, described below, will be set if it was set on the original +descriptor. .El .It Dv F_DUPFD_CLOEXEC Like @@ -115,29 +120,47 @@ Use instead of .Dv F_DUP2FD . .It Dv F_GETFD -Get the close-on-exec flag associated with the file descriptor -.Fa fd -as -.Dv FD_CLOEXEC . -If the returned value ANDed with -.Dv FD_CLOEXEC -is 0, -the file will remain open across -.Fn exec , -otherwise the file will be closed upon execution of +Get the flags associated with the file descriptor +.Fa fd . +The following flags are defined: +.Bl -tag -width FD_RESOLVE_BENEATH +.It Dv FD_CLOEXEC +The file will be closed upon execution of .Fn exec .Fa ( arg is ignored). +Otherwise, the file descriptor will remain open. +.It Dv FD_RESOLVE_BENEATH +All path name lookups relative to that file descriptor +will behave as if the lookup had +.Dv O_RESOLVE_BENEATH +or +.Dv AT_RESOLVE_BENEATH +semantics. +It is not permitted to call +.Xr fchdir 2 +or +.Xr fchroot 2 +on such a file descriptor. +The +.Dv FD_RESOLVE_BENEATH +flag is sticky, meaning that it is preserved by +.Xr dup 2 +and similar operations, and opening a directory with +.Xr openat 2 +where the directory descriptor has the flag set causes the new directory +descriptor to also have the flag set. +.El .It Dv F_SETFD -Set the close-on-exec flag associated with -.Fa fd -to -.Fa arg , -where -.Fa arg -is either 0 or -.Dv FD_CLOEXEC , -as described above. +Set flags associated with +.Fa fd . +The available flags are +.Dv FD_CLOEXEC +and +.Dv FD_RESOLVE_BENEATH . +The +.Dv FD_RESOLVE_BENEATH +flag cannot be cleared once set. .It Dv F_GETFL Get descriptor status flags, as described below .Fa ( arg diff --git a/sys/compat/cloudabi/cloudabi_fd.c b/sys/compat/cloudabi/cloudabi_fd.c index 2883adcda3a8..1c9e77a2f21b 100644 --- a/sys/compat/cloudabi/cloudabi_fd.c +++ b/sys/compat/cloudabi/cloudabi_fd.c @@ -389,7 +389,7 @@ cloudabi_sys_fd_stat_get(struct thread *td, int error, oflags; /* Obtain file descriptor properties. */ - error = fget_cap(td, uap->fd, cap_rights_init(&rights), &fp, + error = fget_cap(td, uap->fd, cap_rights_init(&rights), NULL, &fp, &fcaps); if (error != 0) return (error); diff --git a/sys/fs/fdescfs/fdesc_vnops.c b/sys/fs/fdescfs/fdesc_vnops.c index 44dfc173f49b..b0ce63b2bb1c 100644 --- a/sys/fs/fdescfs/fdesc_vnops.c +++ b/sys/fs/fdescfs/fdesc_vnops.c @@ -515,7 +515,7 @@ fdesc_setattr(struct vop_setattr_args *ap) cap_rights_init_one(&rights, CAP_EXTATTR_SET), &fp); } else { error = getvnode_path(td, fd, - cap_rights_init_one(&rights, CAP_EXTATTR_SET), &fp); + cap_rights_init_one(&rights, CAP_EXTATTR_SET), NULL, &fp); } if (error) { /* @@ -652,7 +652,7 @@ fdesc_readlink(struct vop_readlink_args *va) VOP_UNLOCK(vn); td = curthread; - error = fget_cap(td, fd_fd, &cap_no_rights, &fp, NULL); + error = fget_cap(td, fd_fd, &cap_no_rights, NULL, &fp, NULL); if (error != 0) goto out; diff --git a/sys/kern/kern_descrip.c b/sys/kern/kern_descrip.c index f073fc64e0bc..2412c5e4e332 100644 --- a/sys/kern/kern_descrip.c +++ b/sys/kern/kern_descrip.c @@ -114,8 +114,8 @@ static void fdgrowtable_exp(struct filedesc *fdp, int nfd); static void fdunused(struct filedesc *fdp, int fd); static void fdused(struct filedesc *fdp, int fd); static int fget_unlocked_seq(struct filedesc *fdp, int fd, - const cap_rights_t *needrightsp, struct file **fpp, - seqc_t *seqp); + const cap_rights_t *needrightsp, uint8_t *flagsp, + struct file **fpp, seqc_t *seqp); static int getmaxfd(struct thread *td); static u_long *filecaps_copy_prep(const struct filecaps *src); static void filecaps_copy_finish(const struct filecaps *src, @@ -520,7 +520,9 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_t arg) fde = fdeget_locked(fdp, fd); if (fde != NULL) { td->td_retval[0] = - (fde->fde_flags & UF_EXCLOSE) ? FD_CLOEXEC : 0; + ((fde->fde_flags & UF_EXCLOSE) ? FD_CLOEXEC : 0) | + ((fde->fde_flags & UF_RESOLVE_BENEATH) ? + FD_RESOLVE_BENEATH : 0); error = 0; } FILEDESC_SUNLOCK(fdp); @@ -531,8 +533,13 @@ kern_fcntl(struct thread *td, int fd, int cmd, intptr_t arg) FILEDESC_XLOCK(fdp); fde = fdeget_locked(fdp, fd); if (fde != NULL) { + /* + * UF_RESOLVE_BENEATH is sticky and cannot be cleared. + */ fde->fde_flags = (fde->fde_flags & ~UF_EXCLOSE) | - (arg & FD_CLOEXEC ? UF_EXCLOSE : 0); + ((arg & FD_CLOEXEC) != 0 ? UF_EXCLOSE : 0) | + ((arg & FD_RESOLVE_BENEATH) != 0 ? + UF_RESOLVE_BENEATH : 0); error = 0; } FILEDESC_XUNLOCK(fdp); @@ -2159,7 +2166,8 @@ _finstall(struct filedesc *fdp, struct file *fp, int fd, int flags, seqc_write_begin(&fde->fde_seqc); #endif fde->fde_file = fp; - fde->fde_flags = (flags & O_CLOEXEC) != 0 ? UF_EXCLOSE : 0; + fde->fde_flags = ((flags & O_CLOEXEC) != 0 ? UF_EXCLOSE : 0) | + ((flags & O_RESOLVE_BENEATH) != 0 ? UF_RESOLVE_BENEATH : 0); if (fcaps != NULL) filecaps_move(fcaps, &fde->fde_caps); else @@ -3012,7 +3020,7 @@ out: int fget_cap(struct thread *td, int fd, const cap_rights_t *needrightsp, - struct file **fpp, struct filecaps *havecapsp) + uint8_t *flagsp, struct file **fpp, struct filecaps *havecapsp) { struct filedesc *fdp = td->td_proc->p_fd; int error; @@ -3026,7 +3034,8 @@ fget_cap(struct thread *td, int fd, const cap_rights_t *needrightsp, *fpp = NULL; for (;;) { - error = fget_unlocked_seq(fdp, fd, needrightsp, &fp, &seq); + error = fget_unlocked_seq(fdp, fd, needrightsp, flagsp, &fp, + &seq); if (error != 0) return (error); @@ -3090,7 +3099,7 @@ fget_remote(struct thread *td, struct proc *p, int fd, struct file **fpp) #ifdef CAPABILITIES int -fgetvp_lookup_smr(int fd, struct nameidata *ndp, struct vnode **vpp, bool *fsearch) +fgetvp_lookup_smr(int fd, struct nameidata *ndp, struct vnode **vpp, int *flagsp) { const struct filedescent *fde; const struct fdescenttbl *fdt; @@ -3100,6 +3109,7 @@ fgetvp_lookup_smr(int fd, struct nameidata *ndp, struct vnode **vpp, bool *fsear const cap_rights_t *haverights; cap_rights_t rights; seqc_t seq; + int flags; VFS_SMR_ASSERT_ENTERED(); @@ -3118,7 +3128,9 @@ fgetvp_lookup_smr(int fd, struct nameidata *ndp, struct vnode **vpp, bool *fsear return (EAGAIN); if (__predict_false(cap_check_inline_transient(haverights, &rights))) return (EAGAIN); - *fsearch = ((fp->f_flag & FSEARCH) != 0); + flags = fp->f_flag & FSEARCH; + flags |= (fde->fde_flags & UF_RESOLVE_BENEATH) != 0 ? + O_RESOLVE_BENEATH : 0; vp = fp->f_vnode; if (__predict_false(vp == NULL)) { return (EAGAIN); @@ -3152,16 +3164,19 @@ fgetvp_lookup_smr(int fd, struct nameidata *ndp, struct vnode **vpp, bool *fsear #endif } *vpp = vp; + *flagsp = flags; return (0); } #else int -fgetvp_lookup_smr(int fd, struct nameidata *ndp, struct vnode **vpp, bool *fsearch) +fgetvp_lookup_smr(int fd, struct nameidata *ndp, struct vnode **vpp, int *flagsp) { + const struct filedescent *fde; const struct fdescenttbl *fdt; struct filedesc *fdp; struct file *fp; struct vnode *vp; + int flags; VFS_SMR_ASSERT_ENTERED(); @@ -3169,10 +3184,13 @@ fgetvp_lookup_smr(int fd, struct nameidata *ndp, struct vnode **vpp, bool *fsear fdt = fdp->fd_files; if (__predict_false((u_int)fd >= fdt->fdt_nfiles)) return (EBADF); - fp = fdt->fdt_ofiles[fd].fde_file; + fde = &fdt->fdt_ofiles[fd]; + fp = fde->fde_file; if (__predict_false(fp == NULL)) return (EAGAIN); - *fsearch = ((fp->f_flag & FSEARCH) != 0); + flags = fp->f_flag & FSEARCH; + flags |= (fde->fde_flags & UF_RESOLVE_BENEATH) != 0 ? + O_RESOLVE_BENEATH : 0; vp = fp->f_vnode; if (__predict_false(vp == NULL || vp->v_type != VDIR)) { return (EAGAIN); @@ -3187,6 +3205,7 @@ fgetvp_lookup_smr(int fd, struct nameidata *ndp, struct vnode **vpp, bool *fsear return (EAGAIN); filecaps_fill(&ndp->ni_filecaps); *vpp = vp; + *flagsp = flags; return (0); } #endif @@ -3200,13 +3219,15 @@ fgetvp_lookup(int fd, struct nameidata *ndp, struct vnode **vpp) struct componentname *cnp; cap_rights_t rights; int error; + uint8_t flags; td = curthread; rights = *ndp->ni_rightsneeded; cap_rights_set_one(&rights, CAP_LOOKUP); cnp = &ndp->ni_cnd; - error = fget_cap(td, ndp->ni_dirfd, &rights, &fp, &ndp->ni_filecaps); + error = fget_cap(td, ndp->ni_dirfd, &rights, &flags, &fp, + &ndp->ni_filecaps); if (__predict_false(error != 0)) return (error); if (__predict_false(fp->f_ops == &badfileops)) { @@ -3224,6 +3245,10 @@ fgetvp_lookup(int fd, struct nameidata *ndp, struct vnode **vpp) */ if ((fp->f_flag & FSEARCH) != 0) cnp->cn_flags |= NOEXECCHECK; + if ((flags & UF_RESOLVE_BENEATH) != 0) { + cnp->cn_flags |= RBENEATH; + ndp->ni_resflags |= NIRES_BENEATH; + } fdrop(fp, td); #ifdef CAPABILITIES @@ -3258,11 +3283,9 @@ out_free: static int fget_unlocked_seq(struct filedesc *fdp, int fd, const cap_rights_t *needrightsp, - struct file **fpp, seqc_t *seqp) + uint8_t *flagsp, struct file **fpp, seqc_t *seqp) { -#ifdef CAPABILITIES const struct filedescent *fde; -#endif const struct fdescenttbl *fdt; struct file *fp; #ifdef CAPABILITIES @@ -3270,6 +3293,7 @@ fget_unlocked_seq(struct filedesc *fdp, int fd, const cap_rights_t *needrightsp, cap_rights_t haverights; int error; #endif + uint8_t flags; fdt = fdp->fd_files; if (__predict_false((u_int)fd >= fdt->fdt_nfiles)) @@ -3288,10 +3312,13 @@ fget_unlocked_seq(struct filedesc *fdp, int fd, const cap_rights_t *needrightsp, fde = &fdt->fdt_ofiles[fd]; haverights = *cap_rights_fde_inline(fde); fp = fde->fde_file; + flags = fde->fde_flags; if (!seqc_consistent(fd_seqc(fdt, fd), seq)) continue; #else - fp = fdt->fdt_ofiles[fd].fde_file; + fde = &fdt->fdt_ofiles[fd]; + flags = fde->fde_flags; + fp = fde->fde_file; #endif if (fp == NULL) return (EBADF); @@ -3324,6 +3351,8 @@ fget_unlocked_seq(struct filedesc *fdp, int fd, const cap_rights_t *needrightsp, fdrop(fp, curthread); } *fpp = fp; + if (flagsp != NULL) + *flagsp = flags; if (seqp != NULL) { #ifdef CAPABILITIES *seqp = seq; @@ -3340,8 +3369,8 @@ fget_unlocked_seq(struct filedesc *fdp, int fd, const cap_rights_t *needrightsp, * racing with itself. */ int -fget_unlocked(struct filedesc *fdp, int fd, const cap_rights_t *needrightsp, - struct file **fpp) +fget_unlocked_flags(struct filedesc *fdp, int fd, const cap_rights_t *needrightsp, + uint8_t *flagsp, struct file **fpp) { #ifdef CAPABILITIES const struct filedescent *fde; @@ -3352,6 +3381,7 @@ fget_unlocked(struct filedesc *fdp, int fd, const cap_rights_t *needrightsp, seqc_t seq; const cap_rights_t *haverights; #endif + uint8_t flags; fdt = fdp->fd_files; if (__predict_false((u_int)fd >= fdt->fdt_nfiles)) { @@ -3363,8 +3393,10 @@ fget_unlocked(struct filedesc *fdp, int fd, const cap_rights_t *needrightsp, fde = &fdt->fdt_ofiles[fd]; haverights = cap_rights_fde_inline(fde); fp = fde->fde_file; + flags = fde->fde_flags; #else fp = fdt->fdt_ofiles[fd].fde_file; + flags = fdt->fdt_ofiles[fd].fde_flags; #endif if (__predict_false(fp == NULL)) goto out_fallback; @@ -3388,12 +3420,21 @@ fget_unlocked(struct filedesc *fdp, int fd, const cap_rights_t *needrightsp, #endif goto out_fdrop; *fpp = fp; + if (flagsp != NULL) + *flagsp = flags; return (0); out_fdrop: fdrop(fp, curthread); out_fallback: *fpp = NULL; - return (fget_unlocked_seq(fdp, fd, needrightsp, fpp, NULL)); + return (fget_unlocked_seq(fdp, fd, needrightsp, flagsp, fpp, NULL)); +} + +int +fget_unlocked(struct filedesc *fdp, int fd, const cap_rights_t *needrightsp, + struct file **fpp) +{ + return (fget_unlocked_flags(fdp, fd, needrightsp, NULL, fpp)); } /* @@ -3547,7 +3588,7 @@ fget_mmap(struct thread *td, int fd, const cap_rights_t *rightsp, fdp = td->td_proc->p_fd; MPASS(cap_rights_is_set(rightsp, CAP_MMAP)); for (;;) { - error = fget_unlocked_seq(fdp, fd, rightsp, &fp, &seq); + error = fget_unlocked_seq(fdp, fd, rightsp, NULL, &fp, &seq); if (__predict_false(error != 0)) return (error); if (__predict_false(fp->f_ops == &badfileops)) { @@ -3602,7 +3643,7 @@ fget_fcntl(struct thread *td, int fd, const cap_rights_t *rightsp, *fpp = NULL; MPASS(cap_rights_is_set(rightsp, CAP_FCNTL)); for (;;) { - error = fget_unlocked_seq(fdp, fd, rightsp, &fp, &seq); + error = fget_unlocked_seq(fdp, fd, rightsp, NULL, &fp, &seq); if (error != 0) return (error); error = cap_fcntl_check(fdp, fd, needfcntl); @@ -3664,7 +3705,7 @@ fgetvp_rights(struct thread *td, int fd, const cap_rights_t *needrightsp, struct file *fp; int error; - error = fget_cap(td, fd, needrightsp, &fp, &caps); + error = fget_cap(td, fd, needrightsp, NULL, &fp, &caps); if (error != 0) return (error); if (fp->f_ops == &badfileops) { diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c index 336a0dd77d5c..65ea38dc87f5 100644 --- a/sys/kern/uipc_syscalls.c +++ b/sys/kern/uipc_syscalls.c @@ -97,7 +97,7 @@ getsock_cap(struct thread *td, int fd, const cap_rights_t *rightsp, struct file *fp; int error; - error = fget_cap(td, fd, rightsp, &fp, havecapsp); + error = fget_cap(td, fd, rightsp, NULL, &fp, havecapsp); if (error != 0) return (error); if (fp->f_type != DTYPE_SOCKET) { diff --git a/sys/kern/vfs_acl.c b/sys/kern/vfs_acl.c index ea250104aff4..3120ff007044 100644 --- a/sys/kern/vfs_acl.c +++ b/sys/kern/vfs_acl.c @@ -433,7 +433,7 @@ sys___acl_get_fd(struct thread *td, struct __acl_get_fd_args *uap) AUDIT_ARG_FD(uap->filedes); error = getvnode_path(td, uap->filedes, - cap_rights_init_one(&rights, CAP_ACL_GET), &fp); + cap_rights_init_one(&rights, CAP_ACL_GET), NULL, &fp); if (error == 0) { error = vacl_get_acl(td, fp->f_vnode, uap->type, uap->aclp); fdrop(fp, td); @@ -566,7 +566,7 @@ sys___acl_aclcheck_fd(struct thread *td, struct __acl_aclcheck_fd_args *uap) AUDIT_ARG_FD(uap->filedes); error = getvnode_path(td, uap->filedes, - cap_rights_init_one(&rights, CAP_ACL_CHECK), &fp); + cap_rights_init_one(&rights, CAP_ACL_CHECK), NULL, &fp); if (error == 0) { error = vacl_aclcheck(td, fp->f_vnode, uap->type, uap->aclp); fdrop(fp, td); diff --git a/sys/kern/vfs_cache.c b/sys/kern/vfs_cache.c index 0afb65c55c5a..a7f8179ceb55 100644 --- a/sys/kern/vfs_cache.c +++ b/sys/kern/vfs_cache.c @@ -4365,17 +4365,23 @@ cache_fplookup_dirfd(struct cache_fpl *fpl, struct vnode **vpp) { struct nameidata *ndp; struct componentname *cnp; - int error; - bool fsearch; + int error, flags; ndp = fpl->ndp; cnp = fpl->cnp; - error = fgetvp_lookup_smr(ndp->ni_dirfd, ndp, vpp, &fsearch); + error = fgetvp_lookup_smr(ndp->ni_dirfd, ndp, vpp, &flags); if (__predict_false(error != 0)) { return (cache_fpl_aborted(fpl)); } - fpl->fsearch = fsearch; + if (__predict_false((flags & O_RESOLVE_BENEATH) != 0)) { + _Static_assert((CACHE_FPL_SUPPORTED_CN_FLAGS & RBENEATH) == 0, + "RBENEATH supported by fplookup"); + cache_fpl_smr_exit(fpl); + cache_fpl_aborted(fpl); + return (EOPNOTSUPP); + } + fpl->fsearch = (flags & FSEARCH) != 0; if ((*vpp)->v_type != VDIR) { if (!((cnp->cn_flags & EMPTYPATH) != 0 && cnp->cn_pnbuf[0] == '\0')) { cache_fpl_smr_exit(fpl); diff --git a/sys/kern/vfs_extattr.c b/sys/kern/vfs_extattr.c index c9007c308b58..664d0b4edc5f 100644 --- a/sys/kern/vfs_extattr.c +++ b/sys/kern/vfs_extattr.c @@ -241,7 +241,7 @@ sys_extattr_set_fd(struct thread *td, struct extattr_set_fd_args *uap) AUDIT_ARG_TEXT(attrname); error = getvnode_path(td, uap->fd, - cap_rights_init_one(&rights, CAP_EXTATTR_SET), &fp); + cap_rights_init_one(&rights, CAP_EXTATTR_SET), NULL, &fp); if (error) return (error); @@ -408,7 +408,7 @@ sys_extattr_get_fd(struct thread *td, struct extattr_get_fd_args *uap) AUDIT_ARG_TEXT(attrname); error = getvnode_path(td, uap->fd, - cap_rights_init_one(&rights, CAP_EXTATTR_GET), &fp); + cap_rights_init_one(&rights, CAP_EXTATTR_GET), NULL, &fp); if (error) return (error); @@ -543,7 +543,7 @@ sys_extattr_delete_fd(struct thread *td, struct extattr_delete_fd_args *uap) AUDIT_ARG_TEXT(attrname); error = getvnode_path(td, uap->fd, - cap_rights_init_one(&rights, CAP_EXTATTR_DELETE), &fp); + cap_rights_init_one(&rights, CAP_EXTATTR_DELETE), NULL, &fp); if (error) return (error); @@ -689,7 +689,7 @@ sys_extattr_list_fd(struct thread *td, struct extattr_list_fd_args *uap) AUDIT_ARG_FD(uap->fd); AUDIT_ARG_VALUE(uap->attrnamespace); error = getvnode_path(td, uap->fd, - cap_rights_init_one(&rights, CAP_EXTATTR_LIST), &fp); + cap_rights_init_one(&rights, CAP_EXTATTR_LIST), NULL, &fp); if (error) return (error); diff --git a/sys/kern/vfs_syscalls.c b/sys/kern/vfs_syscalls.c index 75568e858b78..e7353d1f5f9a 100644 --- a/sys/kern/vfs_syscalls.c +++ b/sys/kern/vfs_syscalls.c @@ -371,7 +371,7 @@ kern_fstatfs(struct thread *td, int fd, struct statfs *buf) int error; AUDIT_ARG_FD(fd); - error = getvnode_path(td, fd, &cap_fstatfs_rights, &fp); + error = getvnode_path(td, fd, &cap_fstatfs_rights, NULL, &fp); if (error != 0) return (error); vp = fp->f_vnode; @@ -884,12 +884,17 @@ sys_fchdir(struct thread *td, struct fchdir_args *uap) struct mount *mp; struct file *fp; int error; + uint8_t fdflags; AUDIT_ARG_FD(uap->fd); - error = getvnode_path(td, uap->fd, &cap_fchdir_rights, + error = getvnode_path(td, uap->fd, &cap_fchdir_rights, &fdflags, &fp); if (error != 0) return (error); + if ((fdflags & UF_RESOLVE_BENEATH) != 0) { + fdrop(fp, td); + return (ENOTCAPABLE); + } vp = fp->f_vnode; vrefact(vp); fdrop(fp, td); @@ -1240,6 +1245,10 @@ success: else #endif fcaps = NULL; + if ((nd.ni_resflags & NIRES_BENEATH) != 0) + flags |= O_RESOLVE_BENEATH; + else + flags &= ~O_RESOLVE_BENEATH; error = finstall_refed(td, fp, &indx, flags, fcaps); /* On success finstall_refed() consumes fcaps. */ if (error != 0) { @@ -1930,7 +1939,7 @@ kern_funlinkat(struct thread *td, int dfd, const char *path, int fd, fp = NULL; if (fd != FD_NONE) { - error = getvnode_path(td, fd, &cap_no_rights, &fp); + error = getvnode_path(td, fd, &cap_no_rights, NULL, &fp); if (error != 0) return (error); } @@ -4313,12 +4322,13 @@ out: */ int getvnode_path(struct thread *td, int fd, const cap_rights_t *rightsp, - struct file **fpp) + uint8_t *flagsp, struct file **fpp) { struct file *fp; int error; - error = fget_unlocked(td->td_proc->p_fd, fd, rightsp, &fp); + error = fget_unlocked_flags(td->td_proc->p_fd, fd, rightsp, flagsp, + &fp); if (error != 0) return (error); @@ -4355,7 +4365,7 @@ getvnode(struct thread *td, int fd, const cap_rights_t *rightsp, { int error; - error = getvnode_path(td, fd, rightsp, fpp); + error = getvnode_path(td, fd, rightsp, NULL, fpp); /* * Filter out O_PATH file descriptors, most getvnode() callers diff --git a/sys/sys/fcntl.h b/sys/sys/fcntl.h index ef3e2fbe3ca1..2b7a14027b57 100644 --- a/sys/sys/fcntl.h +++ b/sys/sys/fcntl.h @@ -280,6 +280,8 @@ typedef __pid_t pid_t; /* file descriptor flags (F_GETFD, F_SETFD) */ #define FD_CLOEXEC 1 /* close-on-exec flag */ +#define FD_RESOLVE_BENEATH 2 /* all lookups relative to fd have + O_RESOLVE_BENEATH semantics */ /* record locking flags (F_GETLK, F_SETLK, F_SETLKW) */ #define F_RDLCK 1 /* shared or read lock */ diff --git a/sys/sys/file.h b/sys/sys/file.h index 4c0ec276c700..d3e4a29d0803 100644 --- a/sys/sys/file.h +++ b/sys/sys/file.h @@ -292,7 +292,7 @@ int fgetvp_read(struct thread *td, int fd, const cap_rights_t *rightsp, struct vnode **vpp); int fgetvp_write(struct thread *td, int fd, const cap_rights_t *rightsp, struct vnode **vpp); -int fgetvp_lookup_smr(int fd, struct nameidata *ndp, struct vnode **vpp, bool *fsearch); +int fgetvp_lookup_smr(int fd, struct nameidata *ndp, struct vnode **vpp, int *flagsp); int fgetvp_lookup(int fd, struct nameidata *ndp, struct vnode **vpp); static __inline __result_use_check bool diff --git a/sys/sys/filedesc.h b/sys/sys/filedesc.h index bf7a27e37161..a39716fdce0b 100644 --- a/sys/sys/filedesc.h +++ b/sys/sys/filedesc.h @@ -136,6 +136,7 @@ struct filedesc_to_leader { * Per-process open flags. */ #define UF_EXCLOSE 0x01 /* auto-close on exec */ +#define UF_RESOLVE_BENEATH 0x02 /* lookups must be beneath this dir */ #ifdef _KERNEL @@ -270,17 +271,20 @@ struct filedesc_to_leader * int getvnode(struct thread *td, int fd, const cap_rights_t *rightsp, struct file **fpp); int getvnode_path(struct thread *td, int fd, const cap_rights_t *rightsp, - struct file **fpp); + uint8_t *flagsp, struct file **fpp); void mountcheckdirs(struct vnode *olddp, struct vnode *newdp); int fget_cap_locked(struct filedesc *fdp, int fd, const cap_rights_t *needrightsp, struct file **fpp, struct filecaps *havecapsp); int fget_cap(struct thread *td, int fd, const cap_rights_t *needrightsp, - struct file **fpp, struct filecaps *havecapsp); + uint8_t *flagsp, struct file **fpp, struct filecaps *havecapsp); /* Return a referenced file from an unlocked descriptor. */ int fget_unlocked(struct filedesc *fdp, int fd, const cap_rights_t *needrightsp, struct file **fpp); +int fget_unlocked_flags(struct filedesc *fdp, int fd, + const cap_rights_t *needrightsp, uint8_t *flagsp, + struct file **fpp); /* Return a file pointer without a ref. FILEDESC_IS_ONLY_USER must be true. */ int fget_only_user(struct filedesc *fdp, int fd, const cap_rights_t *needrightsp, struct file **fpp); diff --git a/sys/sys/namei.h b/sys/sys/namei.h index 8ae9f0d786d6..51aa9a6e4f67 100644 --- a/sys/sys/namei.h +++ b/sys/sys/namei.h @@ -208,6 +208,7 @@ int cache_fplookup(struct nameidata *ndp, enum cache_fpl_status *status, #define NIRES_ABS 0x00000001 /* Path was absolute */ #define NIRES_STRICTREL 0x00000002 /* Restricted lookup result */ #define NIRES_EMPTYPATH 0x00000004 /* EMPTYPATH used */ +#define NIRES_BENEATH 0x00000008 /* O_RESOLVE_BENEATH is to be inherited */ /* * Flags in ni_lcf, valid for the duration of the namei call. From nobody Tue Feb 10 01:39: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 4f944056lbz6R8p1 for ; Tue, 10 Feb 2026 01:39: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 4f94404Xwyz3FmZ for ; Tue, 10 Feb 2026 01:39:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770687568; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BXbwx0/OavRIStIbqgLEy/04p/matVsJu+QzGZou7q4=; b=kCvnTAuvTc2kQ+dUo/C6M1zNpHVJDOsnZKLrDV+OOfMRGPgG8fg6SEk8gRNhthfwtCDlgA mU3WeLu13Npy/qGayegwC4x29gzcWW6IkOXahOaQwDj2jctzVvCDtsY9D6gnaJMqL+mxqx hpvrU7sT2sDaouMdxWqPYL/oqJOfMssGg3fNZ9Ms3rnO7WSE6LP8Gd9rmxTaAJMTF5vEiu SribkDg3toN+J8TDFCk1JRf+v89X7KmRWD2XiAfmJmmSO+phY0EsLnrR6e2bbkfWpYae16 5Bk2Zd6FnJ5iD1+bu9zOMzeLSx0BkOisIXGGoncNkUIgYjcIttKL0dIJB3CKlg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770687568; a=rsa-sha256; cv=none; b=aC39jfnlLYdzjoCEZW3ngl3q832sSvw+krHM5h9f49xmHm39h71w+phL3M6/Vp0yuPsI3e i5bbB2SOzusjkJNccW+Aa52kspmjkjJ1A6+gbcP0rutF3LAdWvqB79/tTvamiNiUyfGcU7 9FouoJXQKYeJZZraLq3DefftCGON7Kk6nLXVYfyWNnO35/WAeTlJCNooKvC8vvZJUeeaor Nr4o9cspp26bRpgY14jyGk8G/ehv1/keVo70x2q738jcZ0RMoYnIO/xkOCmFRjPSVJ0cZA GGkie7VNYTkMLLZng5ERYPNq2FtkH7vlywjMYe9oYK8Q3jXOAoWUHFarLJnaKw== 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=1770687568; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BXbwx0/OavRIStIbqgLEy/04p/matVsJu+QzGZou7q4=; b=efvDjWNq+YGlmraMfREa7B73E63rpnAUGNQgI8MDxtx6ax76HdCBXtIRRUkZCO2EhqYsgs JsUI4bkmnwK9qrkLaOYG10W5tmKBoSE+lkrKeS+AnEMwpgXRVYkxz3djQqRT8sLY4E+6D1 9vOYbEENCBT5LpnoeDZt5UC0YE7ppz6ZXGaGBguB3DtYbEdSH0YFThAoy/+NyZlOdyhHAI UYlLvQmiV2UtNpjE5bPvNMg7cSMkqfNWDnuQpfoJaqml1NtbdIllRwGADJD+dz4bDIREEF hZUzxBQ/F7Ho8wqhSugSrDEvEd9LlE+Wj9k/1A86wNpUMkfdxofV808HCDCiQw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f94403LJrzxk4 for ; Tue, 10 Feb 2026 01:39:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 382e1 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 01:39:28 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jose Luis Duran Subject: git: d73fac00cdd4 - stable/15 - MFV: Import blocklist 2026-02-07 (10a907f) 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: jlduran X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: d73fac00cdd413ebfe6f18907ea9ca4cb6051200 Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 01:39:28 +0000 Message-Id: <698a8c50.382e1.523b0c7@gitrepo.freebsd.org> The branch stable/15 has been updated by jlduran: URL: https://cgit.FreeBSD.org/src/commit/?id=d73fac00cdd413ebfe6f18907ea9ca4cb6051200 commit d73fac00cdd413ebfe6f18907ea9ca4cb6051200 Author: Jose Luis Duran AuthorDate: 2026-02-07 22:59:49 +0000 Commit: Jose Luis Duran CommitDate: 2026-02-10 01:33:09 +0000 MFV: Import blocklist 2026-02-07 (10a907f) Merge commit 'a39ba5e2935176fe982235556e46ba3f51178187' Changes: https://github.com/zoulasc/blocklist/compare/8a4b011...10a907f MFC after: 3 days (cherry picked from commit 56c94c76432b1aafcc9b099398e674f0ae87623c) --- contrib/blocklist/bin/blocklistd.c | 28 ++++++------ contrib/blocklist/bin/blocklistd.conf.5 | 6 +-- contrib/blocklist/bin/run.c | 17 ++++---- contrib/blocklist/bin/support.c | 5 +-- contrib/blocklist/port/popenve.c | 75 +++++++++++++++++---------------- 5 files changed, 67 insertions(+), 64 deletions(-) diff --git a/contrib/blocklist/bin/blocklistd.c b/contrib/blocklist/bin/blocklistd.c index 7bbb03c0cc41..86f878960d03 100644 --- a/contrib/blocklist/bin/blocklistd.c +++ b/contrib/blocklist/bin/blocklistd.c @@ -1,4 +1,4 @@ -/* $NetBSD: blocklistd.c,v 1.14 2025/12/15 15:51:37 christos Exp $ */ +/* $NetBSD: blocklistd.c,v 1.15 2026/02/07 14:32:04 christos Exp $ */ /*- * Copyright (c) 2015 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ #ifdef HAVE_SYS_CDEFS_H #include #endif -__RCSID("$NetBSD: blocklistd.c,v 1.14 2025/12/15 15:51:37 christos Exp $"); +__RCSID("$NetBSD: blocklistd.c,v 1.15 2026/02/07 14:32:04 christos Exp $"); #include #include @@ -346,10 +346,10 @@ addfd(struct pollfd **pfdp, bl_t **blp, size_t *nfd, size_t *maxfd, exit(EXIT_FAILURE); if (*nfd >= *maxfd) { *maxfd += 10; - *blp = realloc(*blp, sizeof(**blp) * *maxfd); + *blp = reallocarray(*blp, *maxfd, sizeof(**blp)); if (*blp == NULL) err(EXIT_FAILURE, "malloc"); - *pfdp = realloc(*pfdp, sizeof(**pfdp) * *maxfd); + *pfdp = reallocarray(*pfdp, *maxfd, sizeof(**pfdp)); if (*pfdp == NULL) err(EXIT_FAILURE, "malloc"); } @@ -373,7 +373,7 @@ uniqueadd(struct conf ***listp, size_t *nlist, size_t *mlist, struct conf *c) } if (*nlist == *mlist) { *mlist += 10; - void *p = realloc(*listp, *mlist * sizeof(*list)); + void *p = reallocarray(*listp, *mlist, sizeof(*list)); if (p == NULL) err(EXIT_FAILURE, "Can't allocate for rule list"); list = *listp = p; @@ -410,7 +410,7 @@ rules_restore(void) db = state_open(dbfile, O_RDONLY, 0); if (db == NULL) { (*lfun)(LOG_ERR, "Can't open `%s' to restore state (%m)", - dbfile); + dbfile); return; } for (f = 1; state_iterate(db, &c, &dbi, f) == 1; f = 0) { @@ -468,12 +468,12 @@ main(int argc, char *argv[]) case 's': if (nblsock >= maxblsock) { maxblsock += 10; - void *p = realloc(blsock, - sizeof(*blsock) * maxblsock); + void *p = reallocarray(blsock, maxblsock, + sizeof(*blsock)); if (p == NULL) - err(EXIT_FAILURE, - "Can't allocate memory for %zu sockets", - maxblsock); + err(EXIT_FAILURE, "Can't allocate " + "memory for %zu sockets", + maxblsock); blsock = p; } blsock[nblsock++] = optarg; @@ -552,7 +552,7 @@ main(int argc, char *argv[]) } } if (state == NULL) - return EXIT_FAILURE; + exit(EXIT_FAILURE); if (!debug) { if (daemon(0, 0) == -1) @@ -574,7 +574,7 @@ main(int argc, char *argv[]) if (errno == EINTR) continue; (*lfun)(LOG_ERR, "poll (%m)"); - return EXIT_FAILURE; + exit(EXIT_FAILURE); case 0: state_sync(state); break; @@ -590,5 +590,5 @@ main(int argc, char *argv[]) update(); } state_close(state); - return 0; + exit(EXIT_SUCCESS); } diff --git a/contrib/blocklist/bin/blocklistd.conf.5 b/contrib/blocklist/bin/blocklistd.conf.5 index 3a7dbfc07f58..cff8b33302ef 100644 --- a/contrib/blocklist/bin/blocklistd.conf.5 +++ b/contrib/blocklist/bin/blocklistd.conf.5 @@ -1,4 +1,4 @@ -.\" $NetBSD: blocklistd.conf.5,v 1.7 2025/02/11 17:47:05 christos Exp $ +.\" $NetBSD: blocklistd.conf.5,v 1.9 2026/01/13 21:38:18 christos Exp $ .\" .\" Copyright (c) 2015, 2025 The NetBSD Foundation, Inc. .\" All rights reserved. @@ -27,7 +27,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd February 5, 2025 +.Dd January 13, 2026 .Dt BLOCKLISTD.CONF 5 .Os .Sh NAME @@ -102,7 +102,7 @@ The syntax for the .Va location is: .Bd -literal -offset indent - [
|][/][:] + [
|[/]:] .Ed .Pp The diff --git a/contrib/blocklist/bin/run.c b/contrib/blocklist/bin/run.c index adcc407e65c6..900712918114 100644 --- a/contrib/blocklist/bin/run.c +++ b/contrib/blocklist/bin/run.c @@ -1,4 +1,4 @@ -/* $NetBSD: run.c,v 1.3 2025/02/11 17:48:30 christos Exp $ */ +/* $NetBSD: run.c,v 1.4 2026/02/07 14:29:09 christos Exp $ */ /*- * Copyright (c) 2015 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ #ifdef HAVE_SYS_CDEFS_H #include #endif -__RCSID("$NetBSD: run.c,v 1.3 2025/02/11 17:48:30 christos Exp $"); +__RCSID("$NetBSD: run.c,v 1.4 2026/02/07 14:29:09 christos Exp $"); #include #ifdef HAVE_LIBUTIL_H @@ -64,10 +64,10 @@ static char * run(const char *cmd, const char *name, ...) { const char *argv[20]; - size_t i; + size_t i, len; va_list ap; FILE *fp; - char buf[10240], *res; + char *line, *res; argv[0] = "control"; argv[1] = cmd; @@ -79,6 +79,7 @@ run(const char *cmd, const char *name, ...) va_end(ap); if (debug) { + char buf[2048]; size_t z; int r; @@ -99,10 +100,10 @@ run(const char *cmd, const char *name, ...) (*lfun)(LOG_ERR, "popen %s failed (%m)", controlprog); return NULL; } - if (fgets(buf, sizeof(buf), fp) != NULL) - res = strdup(buf); - else - res = NULL; + line = res = NULL; + len = 0; + if (getline(&line, &len, fp) >= 0) + res = line; pclose(fp); if (debug) (*lfun)(LOG_DEBUG, "%s returns %s", cmd, res); diff --git a/contrib/blocklist/bin/support.c b/contrib/blocklist/bin/support.c index 91e40812611e..66d6ccce7db0 100644 --- a/contrib/blocklist/bin/support.c +++ b/contrib/blocklist/bin/support.c @@ -1,4 +1,4 @@ -/* $NetBSD: support.c,v 1.3 2025/02/11 17:48:30 christos Exp $ */ +/* $NetBSD: support.c,v 1.4 2026/02/07 14:29:58 christos Exp $ */ /*- * Copyright (c) 2015 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ #ifdef HAVE_SYS_CDEFS_H #include #endif -__RCSID("$NetBSD: support.c,v 1.3 2025/02/11 17:48:30 christos Exp $"); +__RCSID("$NetBSD: support.c,v 1.4 2026/02/07 14:29:58 christos Exp $"); #include #include @@ -120,7 +120,6 @@ fmtydhms(char *b, size_t l, time_t t) y = t; - z = 0; o = 0; #define APPEND(a) \ if (a) { \ diff --git a/contrib/blocklist/port/popenve.c b/contrib/blocklist/port/popenve.c index bdff8cdc1de4..30aac98a7f64 100644 --- a/contrib/blocklist/port/popenve.c +++ b/contrib/blocklist/port/popenve.c @@ -1,4 +1,4 @@ -/* $NetBSD: popenve.c,v 1.2 2025/02/11 17:48:30 christos Exp $ */ +/* $NetBSD: popenve.c,v 1.3 2026/02/07 14:26:07 christos Exp $ */ /* * Copyright (c) 1988, 1993 @@ -43,23 +43,23 @@ #if 0 static char sccsid[] = "@(#)popen.c 8.3 (Berkeley) 5/3/95"; #else -__RCSID("$NetBSD: popenve.c,v 1.2 2025/02/11 17:48:30 christos Exp $"); +__RCSID("$NetBSD: popenve.c,v 1.3 2026/02/07 14:26:07 christos Exp $"); #endif #endif /* LIBC_SCCS and not lint */ -#include -#include +#include #include +#include #include #include +#include #include #include #include #include #include #include -#include #ifdef __weak_alias __weak_alias(popen,_popen) @@ -73,8 +73,8 @@ static struct pid { int fd; #endif pid_t pid; -} *pidlist; - +} *pidlist; + #ifdef _REENTRANT static rwlock_t pidlist_lock = RWLOCK_INITIALIZER; #endif @@ -111,11 +111,25 @@ pdes_get(int *pdes, const char **type) #endif } - if ((cur = malloc(sizeof(*cur))) != NULL) - return cur; + if ((cur = malloc(sizeof(*cur))) != NULL) { + if (**type == 'r') { + cur->fp = fdopen(pdes[0], *type); +#ifdef _REENTRANT + cur->fd = pdes[0]; +#endif + } else { + cur->fp = fdopen(pdes[1], *type); +#ifdef _REENTRANT + cur->fd = pdes[1]; +#endif + } + if (cur->fp != NULL) + return cur; + } serrno = errno; (void)close(pdes[0]); (void)close(pdes[1]); + free(cur); errno = serrno; return NULL; } @@ -125,16 +139,6 @@ pdes_child(int *pdes, const char *type) { struct pid *old; - /* POSIX.2 B.3.2.2 "popen() shall ensure that any streams - from previous popen() calls that remain open in the - parent process are closed in the new child process. */ - for (old = pidlist; old; old = old->next) -#ifdef _REENTRANT - (void)close(old->fd); /* don't allow a flush */ -#else - (void)close(fileno(old->fp)); /* don't allow a flush */ -#endif - if (type[0] == 'r') { (void)close(pdes[0]); if (pdes[1] != STDOUT_FILENO) { @@ -150,31 +154,30 @@ pdes_child(int *pdes, const char *type) (void)close(pdes[0]); } } + + /* POSIX.2 B.3.2.2 "popen() shall ensure that any streams + from previous popen() calls that remain open in the + parent process are closed in the new child process. */ + for (old = pidlist; old; old = old->next) { +#ifdef _REENTRANT + (void)close(old->fd); /* don't allow a flush */ +#else + (void)close(fileno(old->fp)); /* don't allow a flush */ +#endif + } } static void pdes_parent(int *pdes, struct pid *cur, pid_t pid, const char *type) { - FILE *iop; - - /* Parent; assume fdopen can't fail. */ - if (*type == 'r') { - iop = fdopen(pdes[0], type); -#ifdef _REENTRANT - cur->fd = pdes[0]; -#endif + /* Parent */ + if (*type == 'r') (void)close(pdes[1]); - } else { - iop = fdopen(pdes[1], type); -#ifdef _REENTRANT - cur->fd = pdes[1]; -#endif + else (void)close(pdes[0]); - } /* Link into list of file descriptors. */ - cur->fp = iop; - cur->pid = pid; + cur->pid = pid; cur->next = pidlist; pidlist = cur; } @@ -200,7 +203,7 @@ popenve(const char *cmd, char *const *argv, char *const *envp, const char *type) #ifdef _REENTRANT (void)rwlock_rdlock(&pidlist_lock); #endif - switch (pid = vfork()) { + switch (pid = fork()) { case -1: /* Error. */ serrno = errno; #ifdef _REENTRANT From nobody Tue Feb 10 01:39: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 4f94416tSvz6R9Jp for ; Tue, 10 Feb 2026 01:39: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 4f94414lCGz3FZ1 for ; Tue, 10 Feb 2026 01:39:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770687569; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8NbAep8fFCk+/0bhKiDsU/FkGkkFv76rhqLxO3/VzvE=; b=QgnsvT8TLlxtfjDAxnQTcd1JsjsLz62aswsAfggKIsc7gk/bfu6fQ2Lt1QGIBpn70JIZ10 jw/2Q2wj/oHgoaiVmb5qnNDHC5xsv28RuRHRCGgfM5s62C/Xg/P+DpYwqTpYQNZdYXXYtz 8DLo7WWAT9wlPcv/vUC8fXxTntQII++50zyvL3NdwMyyMQ6rKhCpuJZBy9rpjvV4u+PdAp NqVuazIwl8XdHnxuMkfd/uUfbAq5v57EoteUX5/bLeiSzCM939mljsPMhRLQZhaFFiNT2P 7uBO+GCenFjERscFAFuEzyjqnu/aeBzBFIss5WtD2TM27wdEYV1WrWJ8FXESQA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770687569; a=rsa-sha256; cv=none; b=sXnJijBMdKAOK/EqVpoAsEf2rGlz/RhNhNQEhxma4vUSRE43kOpAV+nhCzU3ziPtyEOWOz sVevxgjajC5wlsaDzPzrtoTAhR0xZ4aaBm2UpNwcYhNrAiL3f1wwhk59/725ocFQa63+ap RYVyJAOxsr6At93hBWQDGEIDnJnqhAre4n55WoedkJOsIiiXCwiFXVS8Giz5JzvPAamrLZ D/G8AHuK5beyB111vYgaNHSKNyNIs3cEba3KKDsFeQwq0cDKnr0H5LrhUq/dSiFD8PO/xX 8T1kbQrQikK8L8SMHCxYwgpyuQieaZTeOnreaykTEBoZ3GBf8q1AYRIEneCgVw== 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=1770687569; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=8NbAep8fFCk+/0bhKiDsU/FkGkkFv76rhqLxO3/VzvE=; b=qzBvmRoX8AL2EPjr00UR9Z+PrxO6XCt2e/f1GYnmYgkL0xH8556Kqz4gYP6oT0/0Kz0UWc Lfk8NtpdvtoAT9h2uH+z8aIcf/0WSleSauYzgcGKppx6QXRo2rtRd6fnIvvbrQjDOKus4y 5AYqZ0XDXJq3HeqINNlSgmPuuzIk9qh4F3+BGn5MrX/0K3KZV/BEL2o3G3VAyjJhBlDp4f k6/oAxnpei4QnEEWNVSHrUr9Ead1HZxXG8udHHPF4b3JUTyHmkvw2VNrTQYbXSKQlQafBs DGlIOI3Dynx2511qkVY2g979SSW8JauoTfCqle2Bq+hPMEO4O9rBldK0fhjLjw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f944147MlzxpV for ; Tue, 10 Feb 2026 01:39:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 37297 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 01:39:29 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jose Luis Duran Subject: git: 1864a03eb2ac - stable/15 - blocklist: blacklist: Chase recent upstream changes 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: jlduran X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 1864a03eb2ac90faa3381f20eab9672efaa8a3d5 Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 01:39:29 +0000 Message-Id: <698a8c51.37297.bb69663@gitrepo.freebsd.org> The branch stable/15 has been updated by jlduran: URL: https://cgit.FreeBSD.org/src/commit/?id=1864a03eb2ac90faa3381f20eab9672efaa8a3d5 commit 1864a03eb2ac90faa3381f20eab9672efaa8a3d5 Author: Jose Luis Duran AuthorDate: 2026-02-07 23:06:32 +0000 Commit: Jose Luis Duran CommitDate: 2026-02-10 01:33:27 +0000 blocklist: blacklist: Chase recent upstream changes MFC after: 3 days (cherry picked from commit a25b12c6ce63be1fefb31d14daca332682fd31fc) --- contrib/blocklist/bin/blacklistd.c | 28 ++++++++++++++-------------- contrib/blocklist/bin/blacklistd.conf.5 | 6 +++--- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/contrib/blocklist/bin/blacklistd.c b/contrib/blocklist/bin/blacklistd.c index 7dec62cfa58b..01eb662c83fe 100644 --- a/contrib/blocklist/bin/blacklistd.c +++ b/contrib/blocklist/bin/blacklistd.c @@ -1,4 +1,4 @@ -/* $NetBSD: blocklistd.c,v 1.14 2025/12/15 15:51:37 christos Exp $ */ +/* $NetBSD: blocklistd.c,v 1.15 2026/02/07 14:32:04 christos Exp $ */ /*- * Copyright (c) 2015 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ #ifdef HAVE_SYS_CDEFS_H #include #endif -__RCSID("$NetBSD: blocklistd.c,v 1.14 2025/12/15 15:51:37 christos Exp $"); +__RCSID("$NetBSD: blocklistd.c,v 1.15 2026/02/07 14:32:04 christos Exp $"); #include #include @@ -346,10 +346,10 @@ addfd(struct pollfd **pfdp, bl_t **blp, size_t *nfd, size_t *maxfd, exit(EXIT_FAILURE); if (*nfd >= *maxfd) { *maxfd += 10; - *blp = realloc(*blp, sizeof(**blp) * *maxfd); + *blp = reallocarray(*blp, *maxfd, sizeof(**blp)); if (*blp == NULL) err(EXIT_FAILURE, "malloc"); - *pfdp = realloc(*pfdp, sizeof(**pfdp) * *maxfd); + *pfdp = reallocarray(*pfdp, *maxfd, sizeof(**pfdp)); if (*pfdp == NULL) err(EXIT_FAILURE, "malloc"); } @@ -373,7 +373,7 @@ uniqueadd(struct conf ***listp, size_t *nlist, size_t *mlist, struct conf *c) } if (*nlist == *mlist) { *mlist += 10; - void *p = realloc(*listp, *mlist * sizeof(*list)); + void *p = reallocarray(*listp, *mlist, sizeof(*list)); if (p == NULL) err(EXIT_FAILURE, "Can't allocate for rule list"); list = *listp = p; @@ -410,7 +410,7 @@ rules_restore(void) db = state_open(dbfile, O_RDONLY, 0); if (db == NULL) { (*lfun)(LOG_ERR, "Can't open `%s' to restore state (%m)", - dbfile); + dbfile); return; } for (f = 1; state_iterate(db, &c, &dbi, f) == 1; f = 0) { @@ -468,12 +468,12 @@ main(int argc, char *argv[]) case 's': if (nblsock >= maxblsock) { maxblsock += 10; - void *p = realloc(blsock, - sizeof(*blsock) * maxblsock); + void *p = reallocarray(blsock, maxblsock, + sizeof(*blsock)); if (p == NULL) - err(EXIT_FAILURE, - "Can't allocate memory for %zu sockets", - maxblsock); + err(EXIT_FAILURE, "Can't allocate " + "memory for %zu sockets", + maxblsock); blsock = p; } blsock[nblsock++] = optarg; @@ -552,7 +552,7 @@ main(int argc, char *argv[]) } } if (state == NULL) - return EXIT_FAILURE; + exit(EXIT_FAILURE); if (!debug) { if (daemon(0, 0) == -1) @@ -574,7 +574,7 @@ main(int argc, char *argv[]) if (errno == EINTR) continue; (*lfun)(LOG_ERR, "poll (%m)"); - return EXIT_FAILURE; + exit(EXIT_FAILURE); case 0: state_sync(state); break; @@ -590,5 +590,5 @@ main(int argc, char *argv[]) update(); } state_close(state); - return 0; + exit(EXIT_SUCCESS); } diff --git a/contrib/blocklist/bin/blacklistd.conf.5 b/contrib/blocklist/bin/blacklistd.conf.5 index e775d30e7e8e..d4ca6785d5bf 100644 --- a/contrib/blocklist/bin/blacklistd.conf.5 +++ b/contrib/blocklist/bin/blacklistd.conf.5 @@ -1,4 +1,4 @@ -.\" $NetBSD: blocklistd.conf.5,v 1.7 2025/02/11 17:47:05 christos Exp $ +.\" $NetBSD: blocklistd.conf.5,v 1.9 2026/01/13 21:38:18 christos Exp $ .\" .\" Copyright (c) 2015, 2025 The NetBSD Foundation, Inc. .\" All rights reserved. @@ -27,7 +27,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd February 5, 2025 +.Dd January 13, 2026 .Dt BLACKLISTD.CONF 5 .Os .Sh NAME @@ -102,7 +102,7 @@ The syntax for the .Va location is: .Bd -literal -offset indent - [
|][/][:] + [
|[/]:] .Ed .Pp The From nobody Tue Feb 10 04:30: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 4f97sh0HTJz6RPWl for ; Tue, 10 Feb 2026 04:30:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f97sg4Nwrz3c1Q for ; Tue, 10 Feb 2026 04:30:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770697847; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=i/FuAbFW9ULmQfqFP3ERkkgX7VFyc9SDv5H6HyvakIg=; b=DNvXbdBxktdXxbpMdAQ7SOJeH1iccB4YN7xuxC92ysFMFE5sKJ5muzfAHToMswzDMooSZw HLCvrtEfytMkq+rMa5UWbY8n0Vi2ntLhBYQFwEwWY0OZbn3QnEWp7533kx9x5slD0/IS7L ULWzL+XFq3yIOOLoeEu/u2Rfvwhgyo5Y5gbj0fUVdxEQvWdsTZAaTA5mN2jxanmUcGKuiI P2vDcDHAPoSiW0x5wtAnqfns49FYx2tzzlgFkynLu6WrmCyCfDYd5udNKxAzGJkHyXA38B LhNgh+tjueGcv27j0k0ihB78jTHOFcj2QAeBrc7Z26P+a2fugBEjXdYHMi9FXg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770697847; a=rsa-sha256; cv=none; b=RXYL9Mfryo7xSZzoUKE6kusz232GjOUChVoB2XV8db2wV9RJY6vCSILBzXt72asF5352hc aMj9MukVcyQwBp41P4t+FlGx5J0pCKZIChf45LVzJS7EwtgPMhgSk/4Taa4P5+5Covk6/r uNl3GoOzqL+/NVH41nx0TNKUesLeO2lzQ+D/bF15fPsQlRhC4hbk/CX8K0fd+eoFDTdgJv b5uwVO7kVDnj9Eab2uoVvBiED01gU5ThAyx5+cCrG24qbEWkilHwLzCjLLIGyRe5+rwka4 myTltFm2zkCjewG3JVnfU6azJ7MR1MbMYNckrEl/vVkHqGQKEfq2pxfdobpgdA== 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=1770697847; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=i/FuAbFW9ULmQfqFP3ERkkgX7VFyc9SDv5H6HyvakIg=; b=ZJI8ha6BWSdclP/ZwG4bHyPgIgK5intCP5VkCOLsvEd5Hogfr7Hr3P/z9/9TO8RUp+Vsjl ro24Uo7hUxhsumqCzkqhCm6EgJiuqPHK49mOBi/a8pj9tr2nVyc6tOV7eUwbAhD/IgzQ+S VpL0k4EVG6NW21KGi/teb1C01NfyxVdfeOSi5yIWRe3uyl4NilEwpQVedI20/f8iVE5yfX NLfSycB5qFYpymZJngB87NTHnl2zUdpjeDavhM1oHfVMc6XPQDlQ99fway0gXWzriF5Fcb NI1q+V5VoaNMbpnnM6RG5x0PgVtLertzEfr/l1h4HzlNpALdiHP0cGN1TTiHwQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f97sg3VCVz138Z for ; Tue, 10 Feb 2026 04:30:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 22e23 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 04:30:42 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jose Luis Duran Subject: git: 30c04399f2e8 - stable/14 - Adapt changes from blocklist 2026-02-07 (10a907f) 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: jlduran X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 30c04399f2e81b8e71045fc410837461abeb2d8b Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 04:30:42 +0000 Message-Id: <698ab472.22e23.7fc9056b@gitrepo.freebsd.org> The branch stable/14 has been updated by jlduran: URL: https://cgit.FreeBSD.org/src/commit/?id=30c04399f2e81b8e71045fc410837461abeb2d8b commit 30c04399f2e81b8e71045fc410837461abeb2d8b Author: Jose Luis Duran AuthorDate: 2026-02-10 02:05:42 +0000 Commit: Jose Luis Duran CommitDate: 2026-02-10 02:26:13 +0000 Adapt changes from blocklist 2026-02-07 (10a907f) Also apply the fix from PR 258411. This is a direct commit to stable/14, as blacklist has been renamed to blocklist upstream. --- contrib/blocklist/bin/blacklistd.c | 29 +++++++------- contrib/blocklist/bin/blacklistd.conf.5 | 4 +- contrib/blocklist/bin/run.c | 13 +++--- contrib/blocklist/bin/support.c | 1 - contrib/blocklist/port/popenve.c | 71 +++++++++++++++++---------------- 5 files changed, 61 insertions(+), 57 deletions(-) diff --git a/contrib/blocklist/bin/blacklistd.c b/contrib/blocklist/bin/blacklistd.c index 714abcbcaf0e..ded8e684f63c 100644 --- a/contrib/blocklist/bin/blacklistd.c +++ b/contrib/blocklist/bin/blacklistd.c @@ -339,10 +339,10 @@ addfd(struct pollfd **pfdp, bl_t **blp, size_t *nfd, size_t *maxfd, exit(EXIT_FAILURE); if (*nfd >= *maxfd) { *maxfd += 10; - *blp = realloc(*blp, sizeof(**blp) * *maxfd); + *blp = reallocarray(*blp, *maxfd, sizeof(**blp)); if (*blp == NULL) err(EXIT_FAILURE, "malloc"); - *pfdp = realloc(*pfdp, sizeof(**pfdp) * *maxfd); + *pfdp = reallocarray(*pfdp, *maxfd, sizeof(**pfdp)); if (*pfdp == NULL) err(EXIT_FAILURE, "malloc"); } @@ -366,7 +366,7 @@ uniqueadd(struct conf ***listp, size_t *nlist, size_t *mlist, struct conf *c) } if (*nlist == *mlist) { *mlist += 10; - void *p = realloc(*listp, *mlist * sizeof(*list)); + void *p = reallocarray(*listp, *mlist, sizeof(*list)); if (p == NULL) err(EXIT_FAILURE, "Can't allocate for rule list"); list = *listp = p; @@ -451,8 +451,8 @@ main(int argc, char *argv[]) case 's': if (nblsock >= maxblsock) { maxblsock += 10; - void *p = realloc(blsock, - sizeof(*blsock) * maxblsock); + void *p = reallocarray(blsock, maxblsock, + sizeof(*blsock)); if (p == NULL) err(EXIT_FAILURE, "Can't allocate memory for %zu sockets", @@ -527,14 +527,15 @@ main(int argc, char *argv[]) state = state_open(dbfile, flags, 0600); if (state == NULL) state = state_open(dbfile, flags | O_CREAT, 0600); - if (state == NULL) - return EXIT_FAILURE; - - if (restore) { - if (!flush) - rules_flush(); - rules_restore(); + else { + if (restore) { + if (!flush) + rules_flush(); + rules_restore(); + } } + if (state == NULL) + exit(EXIT_FAILURE); if (!debug) { if (daemon(0, 0) == -1) @@ -556,7 +557,7 @@ main(int argc, char *argv[]) if (errno == EINTR) continue; (*lfun)(LOG_ERR, "poll (%m)"); - return EXIT_FAILURE; + exit(EXIT_FAILURE); case 0: state_sync(state); break; @@ -572,5 +573,5 @@ main(int argc, char *argv[]) update(); } state_close(state); - return 0; + exit(EXIT_SUCCESS); } diff --git a/contrib/blocklist/bin/blacklistd.conf.5 b/contrib/blocklist/bin/blacklistd.conf.5 index 70036441eb4b..e557e51a9642 100644 --- a/contrib/blocklist/bin/blacklistd.conf.5 +++ b/contrib/blocklist/bin/blacklistd.conf.5 @@ -27,7 +27,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd May 18, 2020 +.Dd January 13, 2026 .Dt BLACKLISTD.CONF 5 .Os .Sh NAME @@ -102,7 +102,7 @@ The syntax for the .Va location is: .Bd -literal -offset indent - [
|][/][:] + [
|[/]:] .Ed .Pp The diff --git a/contrib/blocklist/bin/run.c b/contrib/blocklist/bin/run.c index 5588f0198c04..e11f8b28e2ef 100644 --- a/contrib/blocklist/bin/run.c +++ b/contrib/blocklist/bin/run.c @@ -62,10 +62,10 @@ static char * run(const char *cmd, const char *name, ...) { const char *argv[20]; - size_t i; + size_t i, len; va_list ap; FILE *fp; - char buf[10240], *res; + char *line, *res; argv[0] = "control"; argv[1] = cmd; @@ -77,6 +77,7 @@ run(const char *cmd, const char *name, ...) va_end(ap); if (debug) { + char buf[2048]; size_t z; int r; @@ -97,10 +98,10 @@ run(const char *cmd, const char *name, ...) (*lfun)(LOG_ERR, "popen %s failed (%m)", controlprog); return NULL; } - if (fgets(buf, sizeof(buf), fp) != NULL) - res = strdup(buf); - else - res = NULL; + line = res = NULL; + len = 0; + if (getline(&line, &len, fp) >= 0) + res = line; pclose(fp); if (debug) (*lfun)(LOG_DEBUG, "%s returns %s", cmd, res); diff --git a/contrib/blocklist/bin/support.c b/contrib/blocklist/bin/support.c index d560d2303223..3e14fcbdc688 100644 --- a/contrib/blocklist/bin/support.c +++ b/contrib/blocklist/bin/support.c @@ -117,7 +117,6 @@ fmtydhms(char *b, size_t l, time_t t) y = t; - z = 0; o = 0; #define APPEND(a) \ if (a) { \ diff --git a/contrib/blocklist/port/popenve.c b/contrib/blocklist/port/popenve.c index 20f6b5b86b68..df57cde9d51f 100644 --- a/contrib/blocklist/port/popenve.c +++ b/contrib/blocklist/port/popenve.c @@ -45,19 +45,19 @@ __RCSID("$NetBSD: popenve.c,v 1.2 2015/01/22 03:10:50 christos Exp $"); #endif #endif /* LIBC_SCCS and not lint */ -#include -#include +#include #include +#include #include #include +#include #include #include #include #include #include #include -#include #ifdef __weak_alias __weak_alias(popen,_popen) @@ -71,8 +71,8 @@ static struct pid { int fd; #endif pid_t pid; -} *pidlist; - +} *pidlist; + #ifdef _REENTRANT static rwlock_t pidlist_lock = RWLOCK_INITIALIZER; #endif @@ -109,11 +109,25 @@ pdes_get(int *pdes, const char **type) #endif } - if ((cur = malloc(sizeof(*cur))) != NULL) - return cur; + if ((cur = malloc(sizeof(*cur))) != NULL) { + if (**type == 'r') { + cur->fp = fdopen(pdes[0], *type); +#ifdef _REENTRANT + cur->fd = pdes[0]; +#endif + } else { + cur->fp = fdopen(pdes[1], *type); +#ifdef _REENTRANT + cur->fd = pdes[1]; +#endif + } + if (cur->fp != NULL) + return cur; + } serrno = errno; (void)close(pdes[0]); (void)close(pdes[1]); + free(cur); errno = serrno; return NULL; } @@ -123,16 +137,6 @@ pdes_child(int *pdes, const char *type) { struct pid *old; - /* POSIX.2 B.3.2.2 "popen() shall ensure that any streams - from previous popen() calls that remain open in the - parent process are closed in the new child process. */ - for (old = pidlist; old; old = old->next) -#ifdef _REENTRANT - (void)close(old->fd); /* don't allow a flush */ -#else - (void)close(fileno(old->fp)); /* don't allow a flush */ -#endif - if (type[0] == 'r') { (void)close(pdes[0]); if (pdes[1] != STDOUT_FILENO) { @@ -148,31 +152,30 @@ pdes_child(int *pdes, const char *type) (void)close(pdes[0]); } } + + /* POSIX.2 B.3.2.2 "popen() shall ensure that any streams + from previous popen() calls that remain open in the + parent process are closed in the new child process. */ + for (old = pidlist; old; old = old->next) { +#ifdef _REENTRANT + (void)close(old->fd); /* don't allow a flush */ +#else + (void)close(fileno(old->fp)); /* don't allow a flush */ +#endif + } } static void pdes_parent(int *pdes, struct pid *cur, pid_t pid, const char *type) { - FILE *iop; - - /* Parent; assume fdopen can't fail. */ - if (*type == 'r') { - iop = fdopen(pdes[0], type); -#ifdef _REENTRANT - cur->fd = pdes[0]; -#endif + /* Parent */ + if (*type == 'r') (void)close(pdes[1]); - } else { - iop = fdopen(pdes[1], type); -#ifdef _REENTRANT - cur->fd = pdes[1]; -#endif + else (void)close(pdes[0]); - } /* Link into list of file descriptors. */ - cur->fp = iop; - cur->pid = pid; + cur->pid = pid; cur->next = pidlist; pidlist = cur; } @@ -198,7 +201,7 @@ popenve(const char *cmd, char *const *argv, char *const *envp, const char *type) #ifdef _REENTRANT (void)rwlock_rdlock(&pidlist_lock); #endif - switch (pid = vfork()) { + switch (pid = fork()) { case -1: /* Error. */ serrno = errno; #ifdef _REENTRANT From nobody Tue Feb 10 04:31:13 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 4f97t93b9hz6RPMP for ; Tue, 10 Feb 2026 04:31:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f97t91w5wz3cjN for ; Tue, 10 Feb 2026 04:31:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770697873; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LJazA4yFjP8WHHj3HcJ0Pkd705Y3O2w0kU93xOWxSA8=; b=hTLr/bcOideMsE6GrcaHmRVmkN494DGGUufQyCoYPU76SnU6Yobn3yZarpmYmRScDPx/aI 5/HxLFp3e8LbTNfuVzXs7po6R7D5kGD7nF2Da7w4lyi8Zepz8NB5iH7T6B7gLniiHkZJEH rOPlDhUAkTGrvpOBhF8T33Y7JHv5MpU2kdWDYQ2vUoF7Eb9Y4vBSE4yv0lt1U7idcVKtVp 07U94KKShWODn6PuRMKdLnnOv6gUTl2Xqh3kWD+6GJLHlouNSbKp9bhdUiBUvkCxmww5cu rr4faQFkRommTfKffttg3SMO/xMiyYTMFF41ogZE7G2aEfSyt0aRbIfSVp07Xw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770697873; a=rsa-sha256; cv=none; b=DJSditlo9R3+2amDiOjL8gt2yTigoIvALbnkINRFPkmBL8AYfFDG0VcPemXxOB8tc6cr9h BwKEFc52NkiOmmUNh8Axywz2Pjt0BdeUFlJZjloLtDQggeEuEXFwlE4FkFANmHC7a05QYQ +kF1+LxVhgNYqQeGvaFCCGJ3YlJTwDR6uQZdRJsHu6PSX9YQTROrMCwIn7m4/WhKSgdlxO eY3/AYUNrPPwBbiRKsNtE4bVjEGl8KItV0EAHBp+5Nvy4Cp3O6MlkGhiDcsgbEvaKvwq7W GX/dRuycqnfpfu7HRr/1JCCbIHyPNYk7rRFWXLW2YqmCOW4cdX5UqIPNZU2kqQ== 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=1770697873; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LJazA4yFjP8WHHj3HcJ0Pkd705Y3O2w0kU93xOWxSA8=; b=fFHgwxrLzBmW3IPvh1BpYkjLH98EARv7VnP9gn7k26JPWbctO5bPV+BmFxUn26hBzqhgGN WNfVCgmh3AKJgAKaoiqkGVslayGVnRsioBpNlD+3+bs0oihpJmnCZIFnm3tX3caYIVt3hn NryI9kbNhrt/l+uhEdh2HAac701cDSXqWk0KQOq2MDh+NrYVwnHgCP0ITI2a7gqi5YcnCN u2Bkdmue//Tj0ce+1jrri6sjNHg3KnW7RTQqqrXGcWhcR4N7/S2csadqiF8+L1MlI78k5i Eh+adQc37MWDgvvwko7KkOBwNMrT1Is81S5j0g9OevRXA6AJgwyT2pguJfWPuQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f97t91Rtxz12ht for ; Tue, 10 Feb 2026 04:31:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 22bf9 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 04:31:13 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Jose Luis Duran Subject: git: 26fcc4afa9ee - stable/13 - Adapt changes from blocklist 2026-02-07 (10a907f) 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: jlduran X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 26fcc4afa9ee8b07da306bd8bf56f5e409f13d2d Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 04:31:13 +0000 Message-Id: <698ab491.22bf9.46b04810@gitrepo.freebsd.org> The branch stable/13 has been updated by jlduran: URL: https://cgit.FreeBSD.org/src/commit/?id=26fcc4afa9ee8b07da306bd8bf56f5e409f13d2d commit 26fcc4afa9ee8b07da306bd8bf56f5e409f13d2d Author: Jose Luis Duran AuthorDate: 2026-02-10 02:22:46 +0000 Commit: Jose Luis Duran CommitDate: 2026-02-10 02:22:46 +0000 Adapt changes from blocklist 2026-02-07 (10a907f) Also apply the fix from PR 258411. This is a direct commit to stable/13, as blacklist has been renamed to blocklist upstream. --- contrib/blacklist/bin/blacklistd.c | 29 +++++++------- contrib/blacklist/bin/blacklistd.conf.5 | 4 +- contrib/blacklist/bin/run.c | 13 +++--- contrib/blacklist/bin/support.c | 1 - contrib/blacklist/port/popenve.c | 71 +++++++++++++++++---------------- 5 files changed, 61 insertions(+), 57 deletions(-) diff --git a/contrib/blacklist/bin/blacklistd.c b/contrib/blacklist/bin/blacklistd.c index 4aa845e46525..ebfcc6e840b4 100644 --- a/contrib/blacklist/bin/blacklistd.c +++ b/contrib/blacklist/bin/blacklistd.c @@ -344,10 +344,10 @@ addfd(struct pollfd **pfdp, bl_t **blp, size_t *nfd, size_t *maxfd, exit(EXIT_FAILURE); if (*nfd >= *maxfd) { *maxfd += 10; - *blp = realloc(*blp, sizeof(**blp) * *maxfd); + *blp = reallocarray(*blp, *maxfd, sizeof(**blp)); if (*blp == NULL) err(EXIT_FAILURE, "malloc"); - *pfdp = realloc(*pfdp, sizeof(**pfdp) * *maxfd); + *pfdp = reallocarray(*pfdp, *maxfd, sizeof(**pfdp)); if (*pfdp == NULL) err(EXIT_FAILURE, "malloc"); } @@ -371,7 +371,7 @@ uniqueadd(struct conf ***listp, size_t *nlist, size_t *mlist, struct conf *c) } if (*nlist == *mlist) { *mlist += 10; - void *p = realloc(*listp, *mlist * sizeof(*list)); + void *p = reallocarray(*listp, *mlist, sizeof(*list)); if (p == NULL) err(EXIT_FAILURE, "Can't allocate for rule list"); list = *listp = p; @@ -456,8 +456,8 @@ main(int argc, char *argv[]) case 's': if (nblsock >= maxblsock) { maxblsock += 10; - void *p = realloc(blsock, - sizeof(*blsock) * maxblsock); + void *p = reallocarray(blsock, maxblsock, + sizeof(*blsock)); if (p == NULL) err(EXIT_FAILURE, "Can't allocate memory for %zu sockets", @@ -532,14 +532,15 @@ main(int argc, char *argv[]) state = state_open(dbfile, flags, 0600); if (state == NULL) state = state_open(dbfile, flags | O_CREAT, 0600); - if (state == NULL) - return EXIT_FAILURE; - - if (restore) { - if (!flush) - rules_flush(); - rules_restore(); + else { + if (restore) { + if (!flush) + rules_flush(); + rules_restore(); + } } + if (state == NULL) + exit(EXIT_FAILURE); if (!debug) { if (daemon(0, 0) == -1) @@ -561,7 +562,7 @@ main(int argc, char *argv[]) if (errno == EINTR) continue; (*lfun)(LOG_ERR, "poll (%m)"); - return EXIT_FAILURE; + exit(EXIT_FAILURE); case 0: state_sync(state); break; @@ -577,5 +578,5 @@ main(int argc, char *argv[]) update(); } state_close(state); - return 0; + exit(EXIT_SUCCESS); } diff --git a/contrib/blacklist/bin/blacklistd.conf.5 b/contrib/blacklist/bin/blacklistd.conf.5 index 84ed9b661298..3cd2ffc2d7ac 100644 --- a/contrib/blacklist/bin/blacklistd.conf.5 +++ b/contrib/blacklist/bin/blacklistd.conf.5 @@ -27,7 +27,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd June 5, 2017 +.Dd January 13, 2026 .Dt BLACKLISTD.CONF 5 .Os .Sh NAME @@ -102,7 +102,7 @@ The syntax for the .Va location is: .Bd -literal -offset indent - [
|][/][:] + [
|[/]:] .Ed .Pp The diff --git a/contrib/blacklist/bin/run.c b/contrib/blacklist/bin/run.c index 5588f0198c04..e11f8b28e2ef 100644 --- a/contrib/blacklist/bin/run.c +++ b/contrib/blacklist/bin/run.c @@ -62,10 +62,10 @@ static char * run(const char *cmd, const char *name, ...) { const char *argv[20]; - size_t i; + size_t i, len; va_list ap; FILE *fp; - char buf[10240], *res; + char *line, *res; argv[0] = "control"; argv[1] = cmd; @@ -77,6 +77,7 @@ run(const char *cmd, const char *name, ...) va_end(ap); if (debug) { + char buf[2048]; size_t z; int r; @@ -97,10 +98,10 @@ run(const char *cmd, const char *name, ...) (*lfun)(LOG_ERR, "popen %s failed (%m)", controlprog); return NULL; } - if (fgets(buf, sizeof(buf), fp) != NULL) - res = strdup(buf); - else - res = NULL; + line = res = NULL; + len = 0; + if (getline(&line, &len, fp) >= 0) + res = line; pclose(fp); if (debug) (*lfun)(LOG_DEBUG, "%s returns %s", cmd, res); diff --git a/contrib/blacklist/bin/support.c b/contrib/blacklist/bin/support.c index d560d2303223..3e14fcbdc688 100644 --- a/contrib/blacklist/bin/support.c +++ b/contrib/blacklist/bin/support.c @@ -117,7 +117,6 @@ fmtydhms(char *b, size_t l, time_t t) y = t; - z = 0; o = 0; #define APPEND(a) \ if (a) { \ diff --git a/contrib/blacklist/port/popenve.c b/contrib/blacklist/port/popenve.c index 20f6b5b86b68..df57cde9d51f 100644 --- a/contrib/blacklist/port/popenve.c +++ b/contrib/blacklist/port/popenve.c @@ -45,19 +45,19 @@ __RCSID("$NetBSD: popenve.c,v 1.2 2015/01/22 03:10:50 christos Exp $"); #endif #endif /* LIBC_SCCS and not lint */ -#include -#include +#include #include +#include #include #include +#include #include #include #include #include #include #include -#include #ifdef __weak_alias __weak_alias(popen,_popen) @@ -71,8 +71,8 @@ static struct pid { int fd; #endif pid_t pid; -} *pidlist; - +} *pidlist; + #ifdef _REENTRANT static rwlock_t pidlist_lock = RWLOCK_INITIALIZER; #endif @@ -109,11 +109,25 @@ pdes_get(int *pdes, const char **type) #endif } - if ((cur = malloc(sizeof(*cur))) != NULL) - return cur; + if ((cur = malloc(sizeof(*cur))) != NULL) { + if (**type == 'r') { + cur->fp = fdopen(pdes[0], *type); +#ifdef _REENTRANT + cur->fd = pdes[0]; +#endif + } else { + cur->fp = fdopen(pdes[1], *type); +#ifdef _REENTRANT + cur->fd = pdes[1]; +#endif + } + if (cur->fp != NULL) + return cur; + } serrno = errno; (void)close(pdes[0]); (void)close(pdes[1]); + free(cur); errno = serrno; return NULL; } @@ -123,16 +137,6 @@ pdes_child(int *pdes, const char *type) { struct pid *old; - /* POSIX.2 B.3.2.2 "popen() shall ensure that any streams - from previous popen() calls that remain open in the - parent process are closed in the new child process. */ - for (old = pidlist; old; old = old->next) -#ifdef _REENTRANT - (void)close(old->fd); /* don't allow a flush */ -#else - (void)close(fileno(old->fp)); /* don't allow a flush */ -#endif - if (type[0] == 'r') { (void)close(pdes[0]); if (pdes[1] != STDOUT_FILENO) { @@ -148,31 +152,30 @@ pdes_child(int *pdes, const char *type) (void)close(pdes[0]); } } + + /* POSIX.2 B.3.2.2 "popen() shall ensure that any streams + from previous popen() calls that remain open in the + parent process are closed in the new child process. */ + for (old = pidlist; old; old = old->next) { +#ifdef _REENTRANT + (void)close(old->fd); /* don't allow a flush */ +#else + (void)close(fileno(old->fp)); /* don't allow a flush */ +#endif + } } static void pdes_parent(int *pdes, struct pid *cur, pid_t pid, const char *type) { - FILE *iop; - - /* Parent; assume fdopen can't fail. */ - if (*type == 'r') { - iop = fdopen(pdes[0], type); -#ifdef _REENTRANT - cur->fd = pdes[0]; -#endif + /* Parent */ + if (*type == 'r') (void)close(pdes[1]); - } else { - iop = fdopen(pdes[1], type); -#ifdef _REENTRANT - cur->fd = pdes[1]; -#endif + else (void)close(pdes[0]); - } /* Link into list of file descriptors. */ - cur->fp = iop; - cur->pid = pid; + cur->pid = pid; cur->next = pidlist; pidlist = cur; } @@ -198,7 +201,7 @@ popenve(const char *cmd, char *const *argv, char *const *envp, const char *type) #ifdef _REENTRANT (void)rwlock_rdlock(&pidlist_lock); #endif - switch (pid = vfork()) { + switch (pid = fork()) { case -1: /* Error. */ serrno = errno; #ifdef _REENTRANT From nobody Tue Feb 10 12:07: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 4f9L0F5xfXz6Rx1s for ; Tue, 10 Feb 2026 12:07: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 4f9L0F5cr7z3XqF for ; Tue, 10 Feb 2026 12:07:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770725229; 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=TyFwO6o3gAXsIqR4Jh5/Umqq+hF7q7CAjvrXEwXwUd0=; b=FiOxZQxoxmbN7SMJ/Lb4rY8/E7Xi+X1qDd8TpCkb8oZuS41/eTE+DrIiS2W8/IZX3qUaVu d27kuLKWdKZcwdo6pmrbZGhKi0Ga/soTWSuqHe10axVbpKyB2cEmug9bjjq6xHz5GRHvvX CH2saHJDkVmWVEGsZeGmKNlD+LEd+qhruf9vKwcxISxh6/5CbP1ZZqJsfBK/3VuJA/vuKr gJ1F7zWqIiNkTrPf7qeGmkAkHfTP6GRJJy8ErzMDC1oUpCaH3yW4Hmi3sMGfODhlX1blWj aQFwjv+z6ZDRjbEzepR6aQpS1tcFvHDY6XneBQXDR6H+JCyxGcEFN5MbWkvr5w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770725229; a=rsa-sha256; cv=none; b=H0yk+4QCHKxYcKxWCb8irMFY7Uw8H2VnvhNElE/Rw2SlHFVm59tPf0MyCT+QClTyfLOpte PJXmzAXE+DZatwnM8N61E3AWW6IeoBNjAMOqvvSLdSRIbAodlKvCROoCXNstAsp4aPZVAW ke10iHNSyox3NAS2/ZD3luVwiF9KEpYyx+aNinMJwavjrO803/SaZFri7qleMoP3EnCrLx UjlEPNsvuHP1YG15zDx8Hd8nGi8mHQjcco4iw7qD4+R4CdPAvPjLSZVH8p4HY80kM3kkMP 5Rxf3NZuPQ2jPy4D1mgTjje44+vJeBp/JbFPVMyVhBoiTb/cZK/JYs/ZKZSGNQ== 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=1770725229; 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=TyFwO6o3gAXsIqR4Jh5/Umqq+hF7q7CAjvrXEwXwUd0=; b=XHKlTM9Illa2RUcyOIJuIITn7Xr0U4jxCNWe9l82tjO0nWI4j+oEiQW85C7g4hnvwsvSpG BbOcc+i8a7r5TL/Ic1l9CDMxsQwFRci76/uyKpW1ZxQXDYkzK5/OrPCYobSscmrDxOqxGl LahfeukqNsT+bz+oGOIW31L2ZLNRyLRxwYZd42vyjmlfVYuHVWyKMEaKaXiOTFNl3w6Avk 9ZcU4lXm1krPf+eUR1Hm2IvSpgTStwv2hfMfOYw9fWpBYOc+2MMrEXFqohId6qI0y8Axjk wWsFlTL2Dr18dPct/I6KVOkoTsS9n//nmVftqmdEtrJyZCbdfshAMUSK2Gei6A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9L0F50PPz1HKH for ; Tue, 10 Feb 2026 12:07:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 32357 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 12:07:09 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Boris Lytochkin From: Andrey V. Elsukov Subject: git: 704ec5e68c44 - stable/14 - ipfw: add ability to run ipfw(8) binary with 15.0+ kernel module 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: ae X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 704ec5e68c44f08d83f3b0daa315c6143338863f Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 12:07:09 +0000 Message-Id: <698b1f6d.32357.78a6474f@gitrepo.freebsd.org> The branch stable/14 has been updated by ae: URL: https://cgit.FreeBSD.org/src/commit/?id=704ec5e68c44f08d83f3b0daa315c6143338863f commit 704ec5e68c44f08d83f3b0daa315c6143338863f Author: Boris Lytochkin AuthorDate: 2026-02-10 11:50:20 +0000 Commit: Andrey V. Elsukov CommitDate: 2026-02-10 11:50:20 +0000 ipfw: add ability to run ipfw(8) binary with 15.0+ kernel module After D46183 the KBI was changed and this made the upgrade procedure to 15.0+ version a bit difficult, because the old binary can not load firewall rules when the new kernel is loaded. This commit adds the sbin/ipfw15 binary that uses new KBI, and then original sbin/ipfw can detect new KBI and run the new binary instead. PR: 291562 Reviewed by: jhb, glebius Fixes: 4a77657cbc01 MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D54763 --- sbin/Makefile | 1 + sbin/ipfw/main.c | 26 + sbin/ipfw15/Makefile | 23 + sbin/ipfw15/Makefile.depend | 19 + sbin/ipfw15/altq.c | 152 + sbin/ipfw15/dummynet.c | 2016 ++++++++ sbin/ipfw15/include15/alias15.h | 259 + sbin/ipfw15/include15/netinet/ip_dummynet15.h | 284 ++ sbin/ipfw15/include15/netinet/ip_fw15.h | 1172 +++++ sbin/ipfw15/include15/netinet6/ip_fw_nat64_15.h | 212 + sbin/ipfw15/include15/netinet6/ip_fw_nptv6_15.h | 52 + sbin/ipfw15/ip_fw15.h | 1172 +++++ sbin/ipfw15/ipfw.8 | 5094 +++++++++++++++++++ sbin/ipfw15/ipfw2.c | 6129 +++++++++++++++++++++++ sbin/ipfw15/ipfw2.h | 470 ++ sbin/ipfw15/ipv6.c | 519 ++ sbin/ipfw15/main.c | 716 +++ sbin/ipfw15/nat.c | 1196 +++++ sbin/ipfw15/nat64clat.c | 536 ++ sbin/ipfw15/nat64lsn.c | 901 ++++ sbin/ipfw15/nat64stl.c | 552 ++ sbin/ipfw15/nptv6.c | 452 ++ sbin/ipfw15/tables.c | 2096 ++++++++ 23 files changed, 24049 insertions(+) diff --git a/sbin/Makefile b/sbin/Makefile index cbfff38cc626..3afe1c6d1d1e 100644 --- a/sbin/Makefile +++ b/sbin/Makefile @@ -78,6 +78,7 @@ SUBDIR.${MK_HAST}+= hastd SUBDIR.${MK_INET6}+= rtsol SUBDIR.${MK_IPFILTER}+= ipf SUBDIR.${MK_IPFW}+= ipfw +SUBDIR.${MK_IPFW}+= ipfw15 SUBDIR.${MK_IPFW}+= natd SUBDIR.${MK_OPENSSL}+= decryptcore SUBDIR.${MK_PF}+= pfctl diff --git a/sbin/ipfw/main.c b/sbin/ipfw/main.c index 1e5f4fbafc1d..3d5cfc96af46 100644 --- a/sbin/ipfw/main.c +++ b/sbin/ipfw/main.c @@ -18,6 +18,7 @@ * Command line interface for IP firewall facility */ +#include #include #include #include @@ -30,6 +31,8 @@ #include #include +#include + #include "ipfw2.h" static void @@ -690,6 +693,29 @@ main(int ac, char *av[]) else g_co.prog = cmdline_prog_ipfw; + /* + * KBI-incompatibility detected, check for availability of ipfw/dnctl15 + * binaries and run them instead + */ + if (getosreldate() >= 1500000) { + const char *releng15_progname; + int ret; + + if (g_co.prog == cmdline_prog_ipfw) + releng15_progname = "/sbin/ipfw15"; + else + releng15_progname = "/sbin/dnctl15"; + + printf("WARNING! KBI incompatibility for ipfw is detected," + " trying to run %s.\n", releng15_progname); + + if ((ret = execv(releng15_progname, av)) < 0) { + printf("execv(%s) error: %s\n", releng15_progname, + strerror(errno)); + } + return (ret); + } + /* * If the last argument is an absolute pathname, interpret it * as a file to be preprocessed. diff --git a/sbin/ipfw15/Makefile b/sbin/ipfw15/Makefile new file mode 100644 index 000000000000..b28b365caa84 --- /dev/null +++ b/sbin/ipfw15/Makefile @@ -0,0 +1,23 @@ +.include + +PACKAGE=ipfw15 +PROG= ipfw15 + +CFLAGS+= -I ${.CURDIR}/include15 + +LINKS= ${BINDIR}/ipfw15 ${BINDIR}/dnctl15 +MK_MAN= no + +SRCS= ipfw2.c dummynet.c ipv6.c main.c nat.c tables.c +SRCS+= nat64clat.c nat64lsn.c nat64stl.c nptv6.c + +.if ${MK_PF} != "no" +SRCS+= altq.c +CFLAGS+=-DPF +.endif + +LIBADD= jail util + +.include + +CWARNFLAGS+= -Wno-cast-align diff --git a/sbin/ipfw15/Makefile.depend b/sbin/ipfw15/Makefile.depend new file mode 100644 index 000000000000..774db391da26 --- /dev/null +++ b/sbin/ipfw15/Makefile.depend @@ -0,0 +1,19 @@ +# Autogenerated - do NOT edit! + +DIRDEPS = \ + include \ + include/arpa \ + include/xlocale \ + lib/${CSU_DIR} \ + lib/libalias/libalias \ + lib/libc \ + lib/libcompiler_rt \ + lib/libjail \ + lib/libutil \ + + +.include + +.if ${DEP_RELDIR} == ${_DEP_RELDIR} +# local dependencies - needed for -jN in clean tree +.endif diff --git a/sbin/ipfw15/altq.c b/sbin/ipfw15/altq.c new file mode 100644 index 000000000000..a49f450e046c --- /dev/null +++ b/sbin/ipfw15/altq.c @@ -0,0 +1,152 @@ +/*- + * Copyright (c) 2002-2003 Luigi Rizzo + * Copyright (c) 1996 Alex Nash, Paul Traina, Poul-Henning Kamp + * Copyright (c) 1994 Ugen J.S.Antsilevich + * + * Idea and grammar partially left from: + * Copyright (c) 1993 Daniel Boulet + * + * Redistribution and use in source forms, with and without modification, + * are permitted provided that this entire comment appears intact. + * + * Redistribution in binary form may occur without any restrictions. + * Obviously, it would be nice if you gave credit where credit is due + * but requiring it would be too onerous. + * + * This software is provided ``AS IS'' without any warranties of any kind. + * + * NEW command line interface for IP firewall facility + * + * altq interface + */ + +#define PFIOC_USE_LATEST + +#include +#include +#include + +#include "ipfw2.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#include /* IFNAMSIZ */ +#include +#include /* in_addr */ +#include + +/* + * Map between current altq queue id numbers and names. + */ +static TAILQ_HEAD(, pf_altq) altq_entries = + TAILQ_HEAD_INITIALIZER(altq_entries); + +void +altq_set_enabled(int enabled) +{ + int pffd; + + pffd = open("/dev/pf", O_RDWR); + if (pffd == -1) + err(EX_UNAVAILABLE, + "altq support opening pf(4) control device"); + if (enabled) { + if (ioctl(pffd, DIOCSTARTALTQ) != 0 && errno != EEXIST) + err(EX_UNAVAILABLE, "enabling altq"); + } else { + if (ioctl(pffd, DIOCSTOPALTQ) != 0 && errno != ENOENT) + err(EX_UNAVAILABLE, "disabling altq"); + } + close(pffd); +} + +static void +altq_fetch(void) +{ + struct pfioc_altq pfioc; + struct pf_altq *altq; + int pffd; + unsigned int mnr; + static int altq_fetched = 0; + + if (altq_fetched) + return; + altq_fetched = 1; + pffd = open("/dev/pf", O_RDONLY); + if (pffd == -1) { + warn("altq support opening pf(4) control device"); + return; + } + bzero(&pfioc, sizeof(pfioc)); + pfioc.version = PFIOC_ALTQ_VERSION; + if (ioctl(pffd, DIOCGETALTQS, &pfioc) != 0) { + warn("altq support getting queue list"); + close(pffd); + return; + } + mnr = pfioc.nr; + for (pfioc.nr = 0; pfioc.nr < mnr; pfioc.nr++) { + if (ioctl(pffd, DIOCGETALTQ, &pfioc) != 0) { + if (errno == EBUSY) + break; + warn("altq support getting queue list"); + close(pffd); + return; + } + if (pfioc.altq.qid == 0) + continue; + altq = safe_calloc(1, sizeof(*altq)); + *altq = pfioc.altq; + TAILQ_INSERT_TAIL(&altq_entries, altq, entries); + } + close(pffd); +} + +u_int32_t +altq_name_to_qid(const char *name) +{ + struct pf_altq *altq; + + altq_fetch(); + TAILQ_FOREACH(altq, &altq_entries, entries) + if (strcmp(name, altq->qname) == 0) + break; + if (altq == NULL) + errx(EX_DATAERR, "altq has no queue named `%s'", name); + return altq->qid; +} + +static const char * +altq_qid_to_name(u_int32_t qid) +{ + struct pf_altq *altq; + + altq_fetch(); + TAILQ_FOREACH(altq, &altq_entries, entries) + if (qid == altq->qid) + break; + if (altq == NULL) + return NULL; + return altq->qname; +} + +void +print_altq_cmd(struct buf_pr *bp, const ipfw_insn_altq *altqptr) +{ + if (altqptr) { + const char *qname; + + qname = altq_qid_to_name(altqptr->qid); + if (qname == NULL) + bprintf(bp, " altq ?<%u>", altqptr->qid); + else + bprintf(bp, " altq %s", qname); + } +} diff --git a/sbin/ipfw15/dummynet.c b/sbin/ipfw15/dummynet.c new file mode 100644 index 000000000000..0d8132f6e249 --- /dev/null +++ b/sbin/ipfw15/dummynet.c @@ -0,0 +1,2016 @@ +/*- + * Codel/FQ_Codel and PIE/FQ_PIE Code: + * Copyright (C) 2016 Centre for Advanced Internet Architectures, + * Swinburne University of Technology, Melbourne, Australia. + * Portions of this code were made possible in part by a gift from + * The Comcast Innovation Fund. + * Implemented by Rasool Al-Saadi + * + * Copyright (c) 2002-2003,2010 Luigi Rizzo + * + * Redistribution and use in source forms, with and without modification, + * are permitted provided that this entire comment appears intact. + * + * Redistribution in binary form may occur without any restrictions. + * Obviously, it would be nice if you gave credit where credit is due + * but requiring it would be too onerous. + * + * This software is provided ``AS IS'' without any warranties of any kind. + * + * dummynet support + */ + +#define NEW_AQM +#include +#include +#include +/* XXX there are several sysctl leftover here */ +#include + +#include "ipfw2.h" + +#ifdef NEW_AQM +#include +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include /* inet_ntoa */ + + +static struct _s_x dummynet_params[] = { + { "plr", TOK_PLR }, + { "noerror", TOK_NOERROR }, + { "buckets", TOK_BUCKETS }, + { "dst-ip", TOK_DSTIP }, + { "src-ip", TOK_SRCIP }, + { "dst-port", TOK_DSTPORT }, + { "src-port", TOK_SRCPORT }, + { "proto", TOK_PROTO }, + { "weight", TOK_WEIGHT }, + { "lmax", TOK_LMAX }, + { "maxlen", TOK_LMAX }, + { "all", TOK_ALL }, + { "mask", TOK_MASK }, /* alias for both */ + { "sched_mask", TOK_SCHED_MASK }, + { "flow_mask", TOK_FLOW_MASK }, + { "droptail", TOK_DROPTAIL }, + { "ecn", TOK_ECN }, + { "red", TOK_RED }, + { "gred", TOK_GRED }, +#ifdef NEW_AQM + { "codel", TOK_CODEL}, /* Codel AQM */ + { "fq_codel", TOK_FQ_CODEL}, /* FQ-Codel */ + { "pie", TOK_PIE}, /* PIE AQM */ + { "fq_pie", TOK_FQ_PIE}, /* FQ-PIE */ +#endif + { "bw", TOK_BW }, + { "bandwidth", TOK_BW }, + { "delay", TOK_DELAY }, + { "link", TOK_LINK }, + { "pipe", TOK_PIPE }, + { "queue", TOK_QUEUE }, + { "flowset", TOK_FLOWSET }, + { "sched", TOK_SCHED }, + { "pri", TOK_PRI }, + { "priority", TOK_PRI }, + { "type", TOK_TYPE }, + { "flow-id", TOK_FLOWID}, + { "dst-ipv6", TOK_DSTIP6}, + { "dst-ip6", TOK_DSTIP6}, + { "src-ipv6", TOK_SRCIP6}, + { "src-ip6", TOK_SRCIP6}, + { "profile", TOK_PROFILE}, + { "burst", TOK_BURST}, + { "dummynet-params", TOK_NULL }, + { NULL, 0 } /* terminator */ +}; + +#ifdef NEW_AQM +/* AQM/extra sched parameters tokens*/ +static struct _s_x aqm_params[] = { + { "target", TOK_TARGET}, + { "interval", TOK_INTERVAL}, + { "limit", TOK_LIMIT}, + { "flows", TOK_FLOWS}, + { "quantum", TOK_QUANTUM}, + { "ecn", TOK_ECN}, + { "noecn", TOK_NO_ECN}, + { "tupdate", TOK_TUPDATE}, + { "max_burst", TOK_MAX_BURST}, + { "max_ecnth", TOK_MAX_ECNTH}, + { "alpha", TOK_ALPHA}, + { "beta", TOK_BETA}, + { "capdrop", TOK_CAPDROP}, + { "nocapdrop", TOK_NO_CAPDROP}, + { "onoff", TOK_ONOFF}, + { "dre", TOK_DRE}, + { "ts", TOK_TS}, + { "derand", TOK_DERAND}, + { "noderand", TOK_NO_DERAND}, + { NULL, 0 } /* terminator */ +}; +#endif + +#define O_NEXT(p, len) ((void *)((char *)p + len)) + +static void +oid_fill(struct dn_id *oid, int len, int type, uintptr_t id) +{ + oid->len = len; + oid->type = type; + oid->subtype = 0; + oid->id = id; +} + +/* make room in the buffer and move the pointer forward */ +static void * +o_next(struct dn_id **o, int len, int type) +{ + struct dn_id *ret = *o; + oid_fill(ret, len, type, 0); + *o = O_NEXT(*o, len); + return ret; +} + +#ifdef NEW_AQM + +/* Codel flags */ +enum { + CODEL_ECN_ENABLED = 1 +}; + +/* PIE flags, from PIE kernel module */ +enum { + PIE_ECN_ENABLED = 1, + PIE_CAPDROP_ENABLED = 2, + PIE_ON_OFF_MODE_ENABLED = 4, + PIE_DEPRATEEST_ENABLED = 8, + PIE_DERAND_ENABLED = 16 +}; + +#define PIE_FIX_POINT_BITS 13 +#define PIE_SCALE (1L<15) + return -1; + for (i = 0; ioid, l, DN_CMD_GET, DN_API_VERSION); + ep->oid.len = l; + ep->oid.subtype = subtype; + ep->nr = nr; + + ret = do_cmd(-IP_DUMMYNET3, ep, (uintptr_t)&l); + if (ret) { + free(ep); + errx(EX_DATAERR, "Error getting extra parameters\n"); + } + + switch (subtype) { + case DN_AQM_PARAMS: + if( !strcasecmp(ep->name, "codel")) { + us_to_time(ep->par[0], strt1); + us_to_time(ep->par[1], strt2); + l = sprintf(out, " AQM CoDel target %s interval %s", + strt1, strt2); + if (ep->par[2] & CODEL_ECN_ENABLED) + l = sprintf(out + l, " ECN"); + else + l += sprintf(out + l, " NoECN"); + } else if( !strcasecmp(ep->name, "pie")) { + us_to_time(ep->par[0], strt1); + us_to_time(ep->par[1], strt2); + us_to_time(ep->par[2], strt3); + l = sprintf(out, " AQM type PIE target %s tupdate %s alpha " + "%g beta %g max_burst %s max_ecnth %.3g", + strt1, + strt2, + ep->par[4] / (float) PIE_SCALE, + ep->par[5] / (float) PIE_SCALE, + strt3, + ep->par[3] / (float) PIE_SCALE + ); + + if (ep->par[6] & PIE_ECN_ENABLED) + l += sprintf(out + l, " ECN"); + else + l += sprintf(out + l, " NoECN"); + if (ep->par[6] & PIE_CAPDROP_ENABLED) + l += sprintf(out + l, " CapDrop"); + else + l += sprintf(out + l, " NoCapDrop"); + if (ep->par[6] & PIE_ON_OFF_MODE_ENABLED) + l += sprintf(out + l, " OnOff"); + if (ep->par[6] & PIE_DEPRATEEST_ENABLED) + l += sprintf(out + l, " DRE"); + else + l += sprintf(out + l, " TS"); + if (ep->par[6] & PIE_DERAND_ENABLED) + l += sprintf(out + l, " Derand"); + else + l += sprintf(out + l, " NoDerand"); + } + break; + + case DN_SCH_PARAMS: + if (!strcasecmp(ep->name,"FQ_CODEL")) { + us_to_time(ep->par[0], strt1); + us_to_time(ep->par[1], strt2); + l = sprintf(out," FQ_CODEL target %s interval %s" + " quantum %jd limit %jd flows %jd", + strt1, strt2, + (intmax_t) ep->par[3], + (intmax_t) ep->par[4], + (intmax_t) ep->par[5] + ); + if (ep->par[2] & CODEL_ECN_ENABLED) + l += sprintf(out + l, " ECN"); + else + l += sprintf(out + l, " NoECN"); + l += sprintf(out + l, "\n"); + } else if (!strcasecmp(ep->name,"FQ_PIE")) { + us_to_time(ep->par[0], strt1); + us_to_time(ep->par[1], strt2); + us_to_time(ep->par[2], strt3); + l = sprintf(out, " FQ_PIE target %s tupdate %s alpha " + "%g beta %g max_burst %s max_ecnth %.3g" + " quantum %jd limit %jd flows %jd", + strt1, + strt2, + ep->par[4] / (float) PIE_SCALE, + ep->par[5] / (float) PIE_SCALE, + strt3, + ep->par[3] / (float) PIE_SCALE, + (intmax_t) ep->par[7], + (intmax_t) ep->par[8], + (intmax_t) ep->par[9] + ); + + if (ep->par[6] & PIE_ECN_ENABLED) + l += sprintf(out + l, " ECN"); + else + l += sprintf(out + l, " NoECN"); + if (ep->par[6] & PIE_CAPDROP_ENABLED) + l += sprintf(out + l, " CapDrop"); + else + l += sprintf(out + l, " NoCapDrop"); + if (ep->par[6] & PIE_ON_OFF_MODE_ENABLED) + l += sprintf(out + l, " OnOff"); + if (ep->par[6] & PIE_DEPRATEEST_ENABLED) + l += sprintf(out + l, " DRE"); + else + l += sprintf(out + l, " TS"); + if (ep->par[6] & PIE_DERAND_ENABLED) + l += sprintf(out + l, " Derand"); + else + l += sprintf(out + l, " NoDerand"); + l += sprintf(out + l, "\n"); + } + break; + } + + free(ep); +} +#endif + + +#if 0 +static int +sort_q(void *arg, const void *pa, const void *pb) +{ + int rev = (co.do_sort < 0); + int field = rev ? -co.do_sort : co.do_sort; + long long res = 0; + const struct dn_flow_queue *a = pa; + const struct dn_flow_queue *b = pb; + + switch (field) { + case 1: /* pkts */ + res = a->len - b->len; + break; + case 2: /* bytes */ + res = a->len_bytes - b->len_bytes; + break; + + case 3: /* tot pkts */ + res = a->tot_pkts - b->tot_pkts; + break; + + case 4: /* tot bytes */ + res = a->tot_bytes - b->tot_bytes; + break; + } + if (res < 0) + res = -1; + if (res > 0) + res = 1; + return (int)(rev ? res : -res); +} +#endif + +/* print a mask and header for the subsequent list of flows */ +static void +print_mask(struct ipfw_flow_id *id) +{ + if (!IS_IP6_FLOW_ID(id)) { + printf(" " + "mask: %s 0x%02x 0x%08x/0x%04x -> 0x%08x/0x%04x\n", + id->extra ? "queue," : "", + id->proto, + id->src_ip, id->src_port, + id->dst_ip, id->dst_port); + } else { + char buf[255]; + printf("\n mask: %sproto: 0x%02x, flow_id: 0x%08x, ", + id->extra ? "queue," : "", + id->proto, id->flow_id6); + inet_ntop(AF_INET6, &(id->src_ip6), buf, sizeof(buf)); + printf("%s/0x%04x -> ", buf, id->src_port); + inet_ntop(AF_INET6, &(id->dst_ip6), buf, sizeof(buf)); + printf("%s/0x%04x\n", buf, id->dst_port); + } +} + +static void +print_header(struct ipfw_flow_id *id) +{ + if (!IS_IP6_FLOW_ID(id)) + printf("BKT Prot ___Source IP/port____ " + "____Dest. IP/port____ " + "Tot_pkt/bytes Pkt/Byte Drp\n"); + else + printf("BKT ___Prot___ _flow-id_ " + "______________Source IPv6/port_______________ " + "_______________Dest. IPv6/port_______________ " + "Tot_pkt/bytes Pkt/Byte Drp\n"); +} + +static void +list_flow(struct buf_pr *bp, struct dn_flow *ni) +{ + char buff[255]; + struct protoent *pe = NULL; + struct in_addr ina; + struct ipfw_flow_id *id = &ni->fid; + + pe = getprotobynumber(id->proto); + /* XXX: Should check for IPv4 flows */ + bprintf(bp, "%3u%c", (ni->oid.id) & 0xff, + id->extra ? '*' : ' '); + if (!IS_IP6_FLOW_ID(id)) { + if (pe) + bprintf(bp, "%-4s ", pe->p_name); + else + bprintf(bp, "%4u ", id->proto); + ina.s_addr = htonl(id->src_ip); + bprintf(bp, "%15s/%-5d ", + inet_ntoa(ina), id->src_port); + ina.s_addr = htonl(id->dst_ip); + bprintf(bp, "%15s/%-5d ", + inet_ntoa(ina), id->dst_port); + } else { + /* Print IPv6 flows */ + if (pe != NULL) + bprintf(bp, "%9s ", pe->p_name); + else + bprintf(bp, "%9u ", id->proto); + bprintf(bp, "%7d %39s/%-5d ", id->flow_id6, + inet_ntop(AF_INET6, &(id->src_ip6), buff, sizeof(buff)), + id->src_port); + bprintf(bp, " %39s/%-5d ", + inet_ntop(AF_INET6, &(id->dst_ip6), buff, sizeof(buff)), + id->dst_port); + } + pr_u64(bp, &ni->tot_pkts, 4); + pr_u64(bp, &ni->tot_bytes, 8); + bprintf(bp, "%2u %4u %3u", + ni->length, ni->len_bytes, ni->drops); +} + +static void +print_flowset_parms(struct dn_fs *fs, char *prefix) +{ + int l; + char qs[30]; + char plr[40]; + char red[200]; /* Display RED parameters */ + + l = fs->qsize; + if (fs->flags & DN_QSIZE_BYTES) { + if (l >= 8192) + sprintf(qs, "%d KB", l / 1024); + else + sprintf(qs, "%d B", l); + } else + sprintf(qs, "%3d sl.", l); + if (fs->plr[0] || fs->plr[1]) { + if (fs->plr[1] == 0) + sprintf(plr, "plr %f", + 1.0 * fs->plr[0] / (double)(0x7fffffff)); + else + sprintf(plr, "plr %f,%f,%f,%f", + 1.0 * fs->plr[0] / (double)(0x7fffffff), + 1.0 * fs->plr[1] / (double)(0x7fffffff), + 1.0 * fs->plr[2] / (double)(0x7fffffff), + 1.0 * fs->plr[3] / (double)(0x7fffffff)); + } else + plr[0] = '\0'; + + if (fs->flags & DN_IS_RED) { /* RED parameters */ + sprintf(red, + "\n\t %cRED w_q %f min_th %d max_th %d max_p %f", + (fs->flags & DN_IS_GENTLE_RED) ? 'G' : ' ', + 1.0 * fs->w_q / (double)(1 << SCALE_RED), + fs->min_th, + fs->max_th, + 1.0 * fs->max_p / (double)(1 << SCALE_RED)); + if (fs->flags & DN_IS_ECN) + strlcat(red, " (ecn)", sizeof(red)); +#ifdef NEW_AQM + /* get AQM parameters */ + } else if (fs->flags & DN_IS_AQM) { + get_extra_parms(fs->fs_nr, red, DN_AQM_PARAMS); +#endif + } else + sprintf(red, "droptail"); + + if (prefix[0]) { + printf("%s %s%s %d queues (%d buckets) %s\n", + prefix, qs, plr, fs->oid.id, fs->buckets, red); + prefix[0] = '\0'; + } else { + printf("q%05d %s%s %d flows (%d buckets) sched %d " + "weight %d lmax %d pri %d %s\n", + fs->fs_nr, qs, plr, fs->oid.id, fs->buckets, + fs->sched_nr, fs->par[0], fs->par[1], fs->par[2], red); + if (fs->flags & DN_HAVE_MASK) + print_mask(&fs->flow_mask); + } +} + +static void +print_extra_delay_parms(struct dn_profile *p) +{ + double loss; + if (p->samples_no <= 0) + return; + + loss = p->loss_level; + loss /= p->samples_no; + printf("\t profile: name \"%s\" loss %f samples %d\n", + p->name, loss, p->samples_no); +} + +static void +flush_buf(char *buf) +{ + if (buf[0]) + printf("%s\n", buf); + buf[0] = '\0'; +} + +/* + * generic list routine. We expect objects in a specific order, i.e. + * PIPES AND SCHEDULERS: + * link; scheduler; internal flowset if any; instances + * we can tell a pipe from the number. + * + * FLOWSETS: + * flowset; queues; + * link i (int queue); scheduler i; si(i) { flowsets() : queues } + */ +static void +list_pipes(struct dn_id *oid, struct dn_id *end) +{ + char buf[160]; /* pending buffer */ + int toPrint = 1; /* print header */ + struct buf_pr bp; + + buf[0] = '\0'; + bp_alloc(&bp, 4096); + for (; oid != end; oid = O_NEXT(oid, oid->len)) { + if (oid->len < sizeof(*oid)) + errx(1, "invalid oid len %d\n", oid->len); + + switch (oid->type) { + default: + flush_buf(buf); + printf("unrecognized object %d size %d\n", oid->type, oid->len); + break; + case DN_TEXT: /* list of attached flowsets */ + { + int i, l; + struct { + struct dn_id id; + uint32_t p[0]; + } *d = (void *)oid; + l = (oid->len - sizeof(*oid))/sizeof(d->p[0]); + if (l == 0) + break; + printf(" Children flowsets: "); + for (i = 0; i < l; i++) + printf("%u ", d->p[i]); + printf("\n"); + break; + } + case DN_CMD_GET: + if (g_co.verbose) + printf("answer for cmd %d, len %d\n", oid->type, oid->id); + break; + case DN_SCH: { + struct dn_sch *s = (struct dn_sch *)oid; + flush_buf(buf); + printf(" sched %d type %s flags 0x%x %d buckets %d active\n", + s->sched_nr, + s->name, s->flags, s->buckets, s->oid.id); +#ifdef NEW_AQM + char parms[200]; + get_extra_parms(s->sched_nr, parms, DN_SCH_PARAMS); + printf("%s",parms); +#endif + if (s->flags & DN_HAVE_MASK) + print_mask(&s->sched_mask); + } + break; + + case DN_FLOW: + if (toPrint != 0) { + print_header(&((struct dn_flow *)oid)->fid); + toPrint = 0; + } + list_flow(&bp, (struct dn_flow *)oid); + printf("%s\n", bp.buf); + bp_flush(&bp); + break; + + case DN_LINK: { + struct dn_link *p = (struct dn_link *)oid; + double b = p->bandwidth; + char bwbuf[30]; + char burst[5 + 7]; + + /* This starts a new object so flush buffer */ + flush_buf(buf); + /* data rate */ + if (b == 0) + sprintf(bwbuf, "unlimited "); + else if (b >= 1000000000) + sprintf(bwbuf, "%7.3f Gbit/s", b/1000000000); + else if (b >= 1000000) + sprintf(bwbuf, "%7.3f Mbit/s", b/1000000); + else if (b >= 1000) + sprintf(bwbuf, "%7.3f Kbit/s", b/1000); + else + sprintf(bwbuf, "%7.3f bit/s ", b); + + if (humanize_number(burst, sizeof(burst), p->burst, + "", HN_AUTOSCALE, 0) < 0 || g_co.verbose) + sprintf(burst, "%d", (int)p->burst); + sprintf(buf, "%05d: %s %4d ms burst %s", + p->link_nr % DN_MAX_ID, bwbuf, p->delay, burst); + } + break; + + case DN_FS: + print_flowset_parms((struct dn_fs *)oid, buf); + break; *** 23275 LINES SKIPPED *** From nobody Tue Feb 10 13:44: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 4f9N884tB3z6RL4k for ; Tue, 10 Feb 2026 13:44: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 4f9N8818qlz3klT for ; Tue, 10 Feb 2026 13:44:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770731048; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pfsAZ2hfi56tl9RO+1YvJVnMXnYk/OI6JsAzeHLglo0=; b=O1cAagiCF36fI2joF8O2yhEKu9M1bSX1vYkp7PjN0qyhifSIQOzi9+1JIJe5JoMeLPhZ1k wmWZlyQ+VqCMXtQwptqMqaZVBsC7a/tm90KiOR1AnZGYKi/fxZqEaAmEVLLP8hOsH7J0FV +jkrsoO2niu6pPrD/qmzSVcE9nTZ3LnY1raEvgsipOkjs3anhhOsrMHIFjw7OfMZ1IxjWi NxQ5W/m97KpMHU9aXXFa4dqA8o6Zk/iX97yA2uvy1jnsf+OY1eJPFxl9cAw1b6+JyQVAYc rsk/wq1jMNeV5KbHxfafQX/fT1Jc+hXIUpGmSXW8GAnEKiLhBBiDVUoRfMADcw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770731048; a=rsa-sha256; cv=none; b=rhLGobh1Af78gdBUsO40KqbJ9NuVxn6PjFOD/oMuyx8sQxaKLsmsdiVISwTY6Av3oa8Ag9 LbW4ddZ7w9orShabC0OE9/JzC3tODtFWnKq4jnGQJsSklDc2ro5bi4eBrmYuHLydnb24mZ csXFfaK3fLOmje/Qb0mgXfEzS1KN/tIKDPQapdIYfY5Q8IWzjBEYPhMn04wgoSttrt6thz hsCnZkZcTaZ1S+JFo/NPCAnK0DV+GtKlO9ZP3NBh5zqHm2x5K8fYKLlOSNDlDQCVAH3CFA ZM6bxrlHbGLoX3dhDZUDVdntPCsOoOrmEVeH/Ub6VB99uh2HWK9mvuHXdXQ/bQ== 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=1770731048; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pfsAZ2hfi56tl9RO+1YvJVnMXnYk/OI6JsAzeHLglo0=; b=eMGk55I4N2rQix/X+nFqMNLj1TQpE8mtEda7qHzUV/qrCQuw/r/LIAqDtmIkyVE/FOmSeu LBetVFzSgczDe1IKAzFGY5OLehBAQMrsHEsVJPsPR3d7vnoZ8Lq4ajfI2mnTpcHMtd3htk a3unA5ilhkXj5nv2gF+BQBzECUkXXyBvGqvI3ZMBopH6d8Bhiah5Cf+AVV2WnVWZY3UaNz Br7upc4rlwwEqaDRsgQTD0a6ypsXmpwX1a56hd9PJZCSnYwvZKeqE5L/mHbtb1t15TRS7L FH4FEWLlcRdPOPuO+bhrzaAnmidOIwVgdA+mu+1pY6m26hkB7fsZqOnMV9BLMw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9N880jmvz1KSR for ; Tue, 10 Feb 2026 13:44:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3a26a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 13:44:03 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Baptiste Daroussin Subject: git: b840145f1985 - stable/15 - nvi: import version 2.2.2 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: bapt X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: b840145f1985658cf17087202472cf1f0aa754ce Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 13:44:03 +0000 Message-Id: <698b3623.3a26a.2ef929c9@gitrepo.freebsd.org> The branch stable/15 has been updated by bapt: URL: https://cgit.FreeBSD.org/src/commit/?id=b840145f1985658cf17087202472cf1f0aa754ce commit b840145f1985658cf17087202472cf1f0aa754ce Author: Baptiste Daroussin AuthorDate: 2026-01-14 15:22:35 +0000 Commit: Baptiste Daroussin CommitDate: 2026-02-10 13:43:59 +0000 nvi: import version 2.2.2 (cherry picked from commit 52d19df19ed6455df025f7ac2c6cf5db7df8e5ec) --- contrib/nvi/.gitignore | 14 -- contrib/nvi/CMakeLists.txt | 67 +++--- contrib/nvi/README | 2 +- contrib/nvi/cl/cl.h | 2 +- contrib/nvi/cl/extern.h | 31 +++ contrib/nvi/common/common.h | 13 +- contrib/nvi/common/cut.c | 5 + contrib/nvi/common/extern.h | 131 ++++++++++++ contrib/nvi/common/line.c | 4 +- contrib/nvi/common/options.c | 39 ++-- contrib/nvi/common/options_def.h | 86 ++++++++ contrib/nvi/common/put.c | 46 ++-- contrib/nvi/common/recover.c | 2 +- contrib/nvi/ex/ex.c | 2 + contrib/nvi/ex/ex.h | 5 +- contrib/nvi/ex/ex_append.c | 21 +- contrib/nvi/ex/ex_bang.c | 4 +- contrib/nvi/ex/ex_def.h | 76 +++++++ contrib/nvi/ex/ex_move.c | 2 +- contrib/nvi/ex/ex_put.c | 2 +- contrib/nvi/ex/ex_shift.c | 8 +- contrib/nvi/ex/extern.h | 131 ++++++++++++ contrib/nvi/vi/extern.h | 145 +++++++++++++ contrib/nvi/vi/v_put.c | 34 ++- contrib/nvi/vi/vi.h | 2 +- usr.bin/vi/cl_extern.h | 31 +++ usr.bin/vi/common_extern.h | 131 ++++++++++++ usr.bin/vi/ex/version.h | 2 +- usr.bin/vi/ex_extern.h | 131 ++++++++++++ usr.bin/vi/extern.h | 444 --------------------------------------- usr.bin/vi/pathnames.h | 1 - usr.bin/vi/version.h | 1 + usr.bin/vi/vi_extern.h | 145 +++++++++++++ 33 files changed, 1179 insertions(+), 581 deletions(-) diff --git a/contrib/nvi/.gitignore b/contrib/nvi/.gitignore deleted file mode 100644 index 2b79229e57e0..000000000000 --- a/contrib/nvi/.gitignore +++ /dev/null @@ -1,14 +0,0 @@ -*.swp -*~ -*.orig -*.core -extern.h -*_def.h -version.h -tags -build/ - -# Ignore files by the GNU Global source code tagging system. -/GPATH -/GRTAGS -/GTAGS diff --git a/contrib/nvi/CMakeLists.txt b/contrib/nvi/CMakeLists.txt index 9451eaa89799..cdb5ed4eb32f 100644 --- a/contrib/nvi/CMakeLists.txt +++ b/contrib/nvi/CMakeLists.txt @@ -42,10 +42,6 @@ add_compile_options(-Wstrict-aliasing -fstrict-aliasing) include_directories(${CMAKE_CURRENT_BINARY_DIR}) -set(MAIN_PROTOS - cl/extern.h common/extern.h ex/extern.h vi/extern.h - common/options_def.h ex/ex_def.h ex/version.h) - set(CL_SRCS cl/cl_funcs.c cl/cl_main.c cl/cl_read.c cl/cl_screen.c cl/cl_term.c) @@ -81,44 +77,59 @@ set(VI_SRCS set(REGEX_SRCS regex/regcomp.c regex/regerror.c regex/regexec.c regex/regfree.c) +set(GENERATED_HDRS + ${CMAKE_CURRENT_BINARY_DIR}/cl_extern.h + ${CMAKE_CURRENT_BINARY_DIR}/common_extern.h + ${CMAKE_CURRENT_BINARY_DIR}/ex_extern.h + ${CMAKE_CURRENT_BINARY_DIR}/vi_extern.h + ${CMAKE_CURRENT_BINARY_DIR}/options_def.h + ${CMAKE_CURRENT_BINARY_DIR}/ex_def.h + ${CMAKE_CURRENT_BINARY_DIR}/version.h) + # commands to generate the public headers set(extract_protos sed -n 's/^ \\* PUBLIC: \\\(.*\\\)/\\1/p') set(extract_version sed -n 's/^.*version \\\([^\)]*\)\\\).*/\#define VI_VERSION \\\"\\1\\\"/p') -add_custom_command(OUTPUT cl/extern.h - COMMAND ${extract_protos} ${CL_SRCS} > cl/extern.h +add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/cl_extern.h + COMMAND ${extract_protos} ${CL_SRCS} > + ${CMAKE_CURRENT_BINARY_DIR}/cl_extern.h WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS ${CL_SRCS}) -add_custom_command(OUTPUT common/extern.h - COMMAND ${extract_protos} ${COMMON_SRCS} > common/extern.h +add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/common_extern.h + COMMAND ${extract_protos} ${COMMON_SRCS} > + ${CMAKE_CURRENT_BINARY_DIR}/common_extern.h WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS ${COMMON_SRCS}) -add_custom_command(OUTPUT ex/extern.h - COMMAND ${extract_protos} ${EX_SRCS} > ex/extern.h +add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ex_extern.h + COMMAND ${extract_protos} ${EX_SRCS} > + ${CMAKE_CURRENT_BINARY_DIR}/ex_extern.h WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS ${EX_SRCS}) -add_custom_command(OUTPUT vi/extern.h - COMMAND ${extract_protos} ${VI_SRCS} > vi/extern.h +add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/vi_extern.h + COMMAND ${extract_protos} ${VI_SRCS} > + ${CMAKE_CURRENT_BINARY_DIR}/vi_extern.h WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS ${VI_SRCS}) -add_custom_command(OUTPUT common/options_def.h - COMMAND awk -f common/options.awk - common/options.c > common/options_def.h +add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/options_def.h + COMMAND awk -f common/options.awk common/options.c > + ${CMAKE_CURRENT_BINARY_DIR}/options_def.h WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS common/options.c) -add_custom_command(OUTPUT ex/ex_def.h - COMMAND awk -f ex/ex.awk ex/ex_cmd.c > ex/ex_def.h +add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/ex_def.h + COMMAND awk -f ex/ex.awk ex/ex_cmd.c > + ${CMAKE_CURRENT_BINARY_DIR}/ex_def.h WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS ex/ex_cmd.c) -add_custom_command(OUTPUT ex/version.h - COMMAND ${extract_version} README > ex/version.h +add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/version.h + COMMAND ${extract_version} README > + ${CMAKE_CURRENT_BINARY_DIR}/version.h WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS README) add_executable(nvi) -target_sources(nvi PRIVATE ${MAIN_PROTOS} ${CL_SRCS} ${COMMON_SRCS} - ${EX_SRCS} ${VI_SRCS}) +target_sources(nvi PRIVATE ${CL_SRCS} ${COMMON_SRCS} ${EX_SRCS} ${VI_SRCS} + ${GENERATED_HDRS}) target_compile_definitions(nvi PRIVATE $<$:DEBUG> $<$:COMLOG>) @@ -208,18 +219,8 @@ check_function_exists(dbopen DBOPEN_IN_LIBC) if(NOT DBOPEN_IN_LIBC) target_link_libraries(nvi PRIVATE db1) endif() -if (APPLE) - # Avoid using an incompatible db.h installed to /usr/local (since this is - # part of the default search path on macOS) - set(DB_H_GUESS "${CMAKE_OSX_SYSROOT}/usr/include/db.h") - if (NOT EXISTS ${DB_H_GUESS}) - message(FATAL_ERROR "Could not find db.h at the expected path (${DB_H_GUESS}).") - endif() - add_definitions("-DDB_H_ABS_PATH=<${DB_H_GUESS}>") -else() - find_path(DB_INCLUDE_DIR db.h PATH_SUFFIXES db1) - target_include_directories(nvi PRIVATE ${DB_INCLUDE_DIR}) -endif() +find_path(DB_INCLUDE_DIR db.h PATH_SUFFIXES db1) +target_include_directories(nvi PRIVATE ${DB_INCLUDE_DIR}) check_include_files(libutil.h HAVE_LIBUTIL_H) check_include_files(ncurses.h HAVE_NCURSES_H) diff --git a/contrib/nvi/README b/contrib/nvi/README index 9e638d952444..d2c26a91bdf0 100644 --- a/contrib/nvi/README +++ b/contrib/nvi/README @@ -1,4 +1,4 @@ -This is version 2.2.1 (2023-09-25) of nex/nvi, a reimplementation of the ex/vi +This is version 2.2.2 (2025-10-08) of nex/nvi, a reimplementation of the ex/vi text editors originally distributed as part of the Fourth Berkeley Software Distribution (4BSD), by the University of California, Berkeley. diff --git a/contrib/nvi/cl/cl.h b/contrib/nvi/cl/cl.h index a04c9e9f1b0d..18fa98b6881f 100644 --- a/contrib/nvi/cl/cl.h +++ b/contrib/nvi/cl/cl.h @@ -77,4 +77,4 @@ typedef enum { INP_OK=0, INP_EOF, INP_ERR, INP_INTR, INP_TIMEOUT } input_t; #define RCNO(sp, cno) (cno) #define RLNO(sp, lno) (lno) -#include "extern.h" +#include "cl_extern.h" diff --git a/contrib/nvi/cl/extern.h b/contrib/nvi/cl/extern.h new file mode 100644 index 000000000000..7b01ccd3f8cf --- /dev/null +++ b/contrib/nvi/cl/extern.h @@ -0,0 +1,31 @@ +int cl_waddstr(SCR *, const CHAR_T *, size_t); +int cl_addstr(SCR *, const char *, size_t); +int cl_attr(SCR *, scr_attr_t, int); +int cl_baud(SCR *, u_long *); +int cl_bell(SCR *); +int cl_clrtoeol(SCR *); +int cl_cursor(SCR *, size_t *, size_t *); +int cl_deleteln(SCR *); +int cl_discard(SCR *, SCR **); +int cl_ex_adjust(SCR *, exadj_t); +int cl_insertln(SCR *); +int cl_keyval(SCR *, scr_keyval_t, CHAR_T *, int *); +int cl_move(SCR *, size_t, size_t); +int cl_refresh(SCR *, int); +int cl_rename(SCR *, char *, int); +void cl_setname(GS *, char *); +int cl_split(SCR *, SCR *); +int cl_suspend(SCR *, int *); +void cl_usage(void); +int sig_init(GS *, SCR *); +int cl_event(SCR *, EVENT *, u_int32_t, int); +int cl_screen(SCR *, u_int32_t); +int cl_quit(GS *); +int cl_getcap(SCR *, char *, char **); +int cl_term_init(SCR *); +int cl_term_end(GS *); +int cl_fmap(SCR *, seq_t, CHAR_T *, size_t, CHAR_T *, size_t); +int cl_optchange(SCR *, int, char *, u_long *); +int cl_omesg(SCR *, CL_PRIVATE *, int); +int cl_ssize(SCR *, int, size_t *, size_t *, int *); +int cl_putchar(int); diff --git a/contrib/nvi/common/common.h b/contrib/nvi/common/common.h index fd97a4655cf5..a04b26ed8eb0 100644 --- a/contrib/nvi/common/common.h +++ b/contrib/nvi/common/common.h @@ -11,11 +11,7 @@ #define TCSASOFT 0 #endif -#ifdef DB_H_ABS_PATH -#include DB_H_ABS_PATH -#else #include -#endif #include /* May refer to the bundled regex. */ #include @@ -92,4 +88,11 @@ typedef enum { SEQ_ABBREV, SEQ_COMMAND, SEQ_INPUT } seq_t; #include "log.h" #include "mem.h" -#include "extern.h" +#include "common_extern.h" + +#ifndef SLIST_REMOVE_AFTER +#define SLIST_REMOVE_AFTER(elm, field) do { \ + SLIST_NEXT(elm, field) = \ + SLIST_NEXT(SLIST_NEXT(elm, field), field); \ +} while (0) +#endif diff --git a/contrib/nvi/common/cut.c b/contrib/nvi/common/cut.c index 7d74f764a6d9..4b00d7c7b174 100644 --- a/contrib/nvi/common/cut.c +++ b/contrib/nvi/common/cut.c @@ -68,6 +68,10 @@ cut(SCR *sp, CHAR_T *namep, MARK *fm, MARK *tm, int flags) recno_t lno; int append, copy_one, copy_def; + /* Check if the line numbers are out-of-band */ + if (fm->lno == OOBLNO || tm->lno == OOBLNO) + return (1); + /* * If the user specified a buffer, put it there. (This may require * a copy into the numeric buffers. We do the copy so that we don't @@ -175,6 +179,7 @@ cut_line_err: text_lfree(cbp->textq); cbp->len = 0; cbp->flags = 0; + sp->gp->dcbp = NULL; return (1); } diff --git a/contrib/nvi/common/extern.h b/contrib/nvi/common/extern.h new file mode 100644 index 000000000000..c887696080de --- /dev/null +++ b/contrib/nvi/common/extern.h @@ -0,0 +1,131 @@ +char * codeset(void); +void conv_init(SCR *, SCR *); +int conv_enc(SCR *, int, char *); +void conv_end(SCR *); +int cut(SCR *, CHAR_T *, MARK *, MARK *, int); +int cut_line(SCR *, recno_t, size_t, size_t, CB *); +void cut_close(GS *); +TEXT *text_init(SCR *, const CHAR_T *, size_t, size_t); +void text_lfree(TEXTH *); +void text_free(TEXT *); +int del(SCR *, MARK *, MARK *, int); +int looks_utf8(const char *, size_t); +int looks_utf16(const char *, size_t); +int decode_utf8(const char *); +int decode_utf16(const char *, int); +FREF *file_add(SCR *, char *); +int file_init(SCR *, FREF *, char *, int); +int file_end(SCR *, EXF *, int); +int file_write(SCR *, MARK *, MARK *, char *, int); +int file_m1(SCR *, int, int); +int file_m2(SCR *, int); +int file_m3(SCR *, int); +int file_aw(SCR *, int); +void set_alt_name(SCR *, char *); +lockr_t file_lock(SCR *, char *, int, int); +int v_key_init(SCR *); +void v_key_ilookup(SCR *); +size_t v_key_len(SCR *, ARG_CHAR_T); +char *v_key_name(SCR *, ARG_CHAR_T); +e_key_t v_key_val(SCR *, ARG_CHAR_T); +int v_event_push(SCR *, EVENT *, CHAR_T *, size_t, u_int); +int v_event_get(SCR *, EVENT *, int, u_int32_t); +void v_event_err(SCR *, EVENT *); +int v_event_flush(SCR *, u_int); +int db_eget(SCR *, recno_t, CHAR_T **, size_t *, int *); +int db_get(SCR *, recno_t, u_int32_t, CHAR_T **, size_t *); +int db_delete(SCR *, recno_t); +int db_append(SCR *, int, recno_t, CHAR_T *, size_t); +int db_insert(SCR *, recno_t, CHAR_T *, size_t); +int db_set(SCR *, recno_t, CHAR_T *, size_t); +int db_exist(SCR *, recno_t); +int db_last(SCR *, recno_t *); +int db_rget(SCR *, recno_t, char **, size_t *); +int db_rset(SCR *, recno_t, char *, size_t); +void db_err(SCR *, recno_t); +int log_init(SCR *, EXF *); +int log_end(SCR *, EXF *); +int log_cursor(SCR *); +int log_line(SCR *, recno_t, u_int); +int log_mark(SCR *, LMARK *); +int log_backward(SCR *, MARK *); +int log_setline(SCR *); +int log_forward(SCR *, MARK *); +int editor(GS *, int, char *[]); +void v_end(GS *); +int mark_init(SCR *, EXF *); +int mark_end(SCR *, EXF *); +int mark_get(SCR *, ARG_CHAR_T, MARK *, mtype_t); +int mark_set(SCR *, ARG_CHAR_T, MARK *, int); +int mark_insdel(SCR *, lnop_t, recno_t); +void msgq(SCR *, mtype_t, const char *, ...); +void msgq_wstr(SCR *, mtype_t, const CHAR_T *, const char *); +void msgq_str(SCR *, mtype_t, const char *, const char *); +void mod_rpt(SCR *); +void msgq_status(SCR *, recno_t, u_int); +int msg_open(SCR *, char *); +void msg_close(GS *); +const char *msg_cmsg(SCR *, cmsg_t, size_t *); +const char *msg_cat(SCR *, const char *, size_t *); +char *msg_print(SCR *, const char *, int *); +int opts_init(SCR *, int *); +int opts_set(SCR *, ARGS *[], char *); +int o_set(SCR *, int, u_int, char *, u_long); +int opts_empty(SCR *, int, int); +void opts_dump(SCR *, enum optdisp); +int opts_save(SCR *, FILE *); +OPTLIST const *opts_search(CHAR_T *); +void opts_nomatch(SCR *, CHAR_T *); +int opts_copy(SCR *, SCR *); +void opts_free(SCR *); +int f_altwerase(SCR *, OPTION *, char *, u_long *); +int f_columns(SCR *, OPTION *, char *, u_long *); +int f_lines(SCR *, OPTION *, char *, u_long *); +int f_lisp(SCR *, OPTION *, char *, u_long *); +int f_msgcat(SCR *, OPTION *, char *, u_long *); +int f_print(SCR *, OPTION *, char *, u_long *); +int f_readonly(SCR *, OPTION *, char *, u_long *); +int f_recompile(SCR *, OPTION *, char *, u_long *); +int f_reformat(SCR *, OPTION *, char *, u_long *); +int f_ttywerase(SCR *, OPTION *, char *, u_long *); +int f_w300(SCR *, OPTION *, char *, u_long *); +int f_w1200(SCR *, OPTION *, char *, u_long *); +int f_w9600(SCR *, OPTION *, char *, u_long *); +int f_window(SCR *, OPTION *, char *, u_long *); +int f_encoding(SCR *, OPTION *, char *, u_long *); +int put(SCR *, CB *, CHAR_T *, MARK *, MARK *, int); +int rcv_tmp(SCR *, EXF *, char *); +int rcv_init(SCR *); +int rcv_sync(SCR *, u_int); +int rcv_list(SCR *); +int rcv_read(SCR *, FREF *); +int screen_init(GS *, SCR *, SCR **); +int screen_end(SCR *); +SCR *screen_next(SCR *); +int f_search(SCR *, + MARK *, MARK *, CHAR_T *, size_t, CHAR_T **, u_int); +int b_search(SCR *, + MARK *, MARK *, CHAR_T *, size_t, CHAR_T **, u_int); +void search_busy(SCR *, busy_t); +int seq_set(SCR *, CHAR_T *, + size_t, CHAR_T *, size_t, CHAR_T *, size_t, seq_t, int); +int seq_delete(SCR *, CHAR_T *, size_t, seq_t); +int seq_free(SEQ *); +SEQ *seq_find + (SCR *, SEQ **, EVENT *, CHAR_T *, size_t, seq_t, int *); +void seq_close(GS *); +int seq_dump(SCR *, seq_t, int); +int seq_save(SCR *, FILE *, char *, seq_t); +int e_memcmp(CHAR_T *, EVENT *, size_t); +void *binc(SCR *, void *, size_t *, size_t); +int nonblank(SCR *, recno_t, size_t *); +char *join(char *, char *); +char *expanduser(char *); +char *quote(char *); +char *v_strdup(SCR *, const char *, size_t); +CHAR_T *v_wstrdup(SCR *, const CHAR_T *, size_t); +enum nresult nget_uslong(u_long *, const CHAR_T *, CHAR_T **, int); +enum nresult nget_slong(long *, const CHAR_T *, CHAR_T **, int); +void timepoint_steady(struct timespec *); +void timepoint_system(struct timespec *); +void TRACE(SCR *, const char *, ...); diff --git a/contrib/nvi/common/line.c b/contrib/nvi/common/line.c index 06d9a3e692d1..d1b7cb51e247 100644 --- a/contrib/nvi/common/line.c +++ b/contrib/nvi/common/line.c @@ -51,7 +51,7 @@ db_eget(SCR *sp, * line in an empty file, find the last line of the file; db_last * fails loudly. */ - if ((lno == 0 || lno == 1) && db_last(sp, &l1)) + if ((lno == OOBLNO || lno == 1) && db_last(sp, &l1)) return (1); /* If the file isn't empty, fail loudly. */ @@ -92,7 +92,7 @@ db_get(SCR *sp, * have to have an OOB condition for the look-aside into the input * buffer anyway. */ - if (lno == 0) + if (lno == OOBLNO) goto err1; /* Check for no underlying file. */ diff --git a/contrib/nvi/common/options.c b/contrib/nvi/common/options.c index 87d5c5a88521..d54bf1d508d2 100644 --- a/contrib/nvi/common/options.c +++ b/contrib/nvi/common/options.c @@ -317,14 +317,13 @@ opts_init(SCR *sp, int *oargs) argv[1] = &b; /* Set numeric and string default values. */ -#define OI(indx, str) do { \ - a.len = STRLEN(str); \ - if (STRCMP((CHAR_T*)str, b2) != 0) \ - (void)MEMCPY(b2, str, a.len+1); \ - if (opts_set(sp, argv, NULL)) { \ - optindx = indx; \ +#define OI(indx, ...) do { \ + size_t len = SPRINTF(b2, SIZE(b2), __VA_ARGS__); \ + if (len < 0 || len >= SIZE(b2) || opts_set(sp, argv, NULL)) { \ + optindx = indx; \ goto err; \ } \ + a.len = len; \ } while (0) /* * Indirect global options to global space. Specifically, set up @@ -345,9 +344,7 @@ opts_init(SCR *sp, int *oargs) F_SET(&sp->opts[O_SECURE], OPT_GLOBAL); /* Initialize string values. */ - (void)SPRINTF(b2, SIZE(b2), - L("cdpath=%s"), (s = getenv("CDPATH")) == NULL ? ":" : s); - OI(O_CDPATH, b2); + OI(O_CDPATH, L("cdpath=%s"), (s = getenv("CDPATH")) == NULL ? ":" : s); OI(O_CEDIT, L("cedit=\033")); /* @@ -357,32 +354,26 @@ opts_init(SCR *sp, int *oargs) * are two ways to change this -- the user can set either the directory * option or the TMPDIR environmental variable. */ - (void)SPRINTF(b2, SIZE(b2), + OI(O_TMPDIR, L("directory=%s"), (s = getenv("TMPDIR")) == NULL ? _PATH_TMP : s); - OI(O_TMPDIR, b2); OI(O_ESCAPETIME, L("escapetime=6")); OI(O_FILEC, L("filec=\t")); OI(O_KEYTIME, L("keytime=6")); OI(O_MATCHCHARS, L("matchchars=()[]{}")); OI(O_MATCHTIME, L("matchtime=7")); - (void)SPRINTF(b2, SIZE(b2), L("msgcat=%s"), _PATH_MSGCAT); - OI(O_MSGCAT, b2); + OI(O_MSGCAT, L("msgcat=%s"), _PATH_MSGCAT); OI(O_REPORT, L("report=5")); OI(O_PARAGRAPHS, L("paragraphs=IPLPPPQPP LIpplpipbp")); - (void)SPRINTF(b2, SIZE(b2), L("path=%s"), ""); - OI(O_PATH, b2); - (void)SPRINTF(b2, SIZE(b2), L("recdir=%s"), NVI_PATH_PRESERVE); - OI(O_RECDIR, b2); + OI(O_PATH, L("path=%s"), ""); + OI(O_RECDIR, L("recdir=%s"), NVI_PATH_PRESERVE); OI(O_SECTIONS, L("sections=NHSHH HUnhsh")); - (void)SPRINTF(b2, SIZE(b2), + OI(O_SHELL, L("shell=%s"), (s = getenv("SHELL")) == NULL ? _PATH_BSHELL : s); - OI(O_SHELL, b2); OI(O_SHELLMETA, L("shellmeta=~{[*?$`'\"\\")); OI(O_SHIFTWIDTH, L("shiftwidth=8")); OI(O_SIDESCROLL, L("sidescroll=16")); OI(O_TABSTOP, L("tabstop=8")); - (void)SPRINTF(b2, SIZE(b2), L("tags=%s"), _PATH_TAGS); - OI(O_TAGS, b2); + OI(O_TAGS, L("tags=%s"), _PATH_TAGS); /* * XXX @@ -391,8 +382,7 @@ opts_init(SCR *sp, int *oargs) */ if ((v = (O_VAL(sp, O_LINES) - 1) / 2) == 0) v = 1; - (void)SPRINTF(b2, SIZE(b2), L("scroll=%ld"), v); - OI(O_SCROLL, b2); + OI(O_SCROLL, L("scroll=%ld"), v); /* * The default window option values are: @@ -412,8 +402,7 @@ opts_init(SCR *sp, int *oargs) else if ((v = O_VAL(sp, O_LINES) - 1) == 0) v = 1; - (void)SPRINTF(b2, SIZE(b2), L("window=%lu"), v); - OI(O_WINDOW, b2); + OI(O_WINDOW, L("window=%lu"), v); /* * Set boolean default values, and copy all settings into the default diff --git a/contrib/nvi/common/options_def.h b/contrib/nvi/common/options_def.h new file mode 100644 index 000000000000..15104845c380 --- /dev/null +++ b/contrib/nvi/common/options_def.h @@ -0,0 +1,86 @@ +#define O_ALTNOTATION 0 +#define O_ALTWERASE 1 +#define O_AUTOINDENT 2 +#define O_AUTOPRINT 3 +#define O_AUTOWRITE 4 +#define O_BACKUP 5 +#define O_BEAUTIFY 6 +#define O_CDPATH 7 +#define O_CEDIT 8 +#define O_COLUMNS 9 +#define O_COMBINED 10 +#define O_COMMENT 11 +#define O_TMPDIR 12 +#define O_EDCOMPATIBLE 13 +#define O_ERRORBELLS 14 +#define O_ESCAPETIME 15 +#define O_EXPANDTAB 16 +#define O_EXRC 17 +#define O_EXTENDED 18 +#define O_FILEC 19 +#define O_FILEENCODING 20 +#define O_FLASH 21 +#define O_HARDTABS 22 +#define O_ICLOWER 23 +#define O_IGNORECASE 24 +#define O_INPUTENCODING 25 +#define O_KEYTIME 26 +#define O_LEFTRIGHT 27 +#define O_LINES 28 +#define O_LISP 29 +#define O_LIST 30 +#define O_LOCKFILES 31 +#define O_MAGIC 32 +#define O_MATCHCHARS 33 +#define O_MATCHTIME 34 +#define O_MESG 35 +#define O_MODELINE 36 +#define O_MSGCAT 37 +#define O_NOPRINT 38 +#define O_NUMBER 39 +#define O_OCTAL 40 +#define O_OPEN 41 +#define O_OPTIMIZE 42 +#define O_PARAGRAPHS 43 +#define O_PATH 44 +#define O_PRINT 45 +#define O_PROMPT 46 +#define O_READONLY 47 +#define O_RECDIR 48 +#define O_REDRAW 49 +#define O_REMAP 50 +#define O_REPORT 51 +#define O_RULER 52 +#define O_SCROLL 53 +#define O_SEARCHINCR 54 +#define O_SECTIONS 55 +#define O_SECURE 56 +#define O_SHELL 57 +#define O_SHELLMETA 58 +#define O_SHIFTWIDTH 59 +#define O_SHOWFILENAME 60 +#define O_SHOWMATCH 61 +#define O_SHOWMODE 62 +#define O_SIDESCROLL 63 +#define O_SLOWOPEN 64 +#define O_SOURCEANY 65 +#define O_TABSTOP 66 +#define O_TAGLENGTH 67 +#define O_TAGS 68 +#define O_TERM 69 +#define O_TERSE 70 +#define O_TILDEOP 71 +#define O_TIMEOUT 72 +#define O_TTYWERASE 73 +#define O_VERBOSE 74 +#define O_W1200 75 +#define O_W300 76 +#define O_W9600 77 +#define O_WARN 78 +#define O_WINDOW 79 +#define O_WINDOWNAME 80 +#define O_WRAPLEN 81 +#define O_WRAPMARGIN 82 +#define O_WRAPSCAN 83 +#define O_WRITEANY 84 +#define O_OPTIONCOUNT 85 diff --git a/contrib/nvi/common/put.c b/contrib/nvi/common/put.c index f39948808e7d..9862682c9bbb 100644 --- a/contrib/nvi/common/put.c +++ b/contrib/nvi/common/put.c @@ -26,16 +26,16 @@ * put -- * Put text buffer contents into the file. * - * PUBLIC: int put(SCR *, CB *, CHAR_T *, MARK *, MARK *, int); + * PUBLIC: int put(SCR *, CB *, CHAR_T *, MARK *, MARK *, int, int); */ int -put(SCR *sp, CB *cbp, CHAR_T *namep, MARK *cp, MARK *rp, int append) +put(SCR *sp, CB *cbp, CHAR_T *namep, MARK *cp, MARK *rp, int append, int cnt) { CHAR_T name; TEXT *ltp, *tp; recno_t lno; size_t blen, clen, len; - int rval; + int rval, i, isempty; CHAR_T *bp, *t; CHAR_T *p; @@ -77,11 +77,16 @@ put(SCR *sp, CB *cbp, CHAR_T *namep, MARK *cp, MARK *rp, int append) if (cp->lno == 1) { if (db_last(sp, &lno)) return (1); - if (lno == 0) { - for (; tp != NULL; - ++lno, ++sp->rptlines[L_ADDED], tp = TAILQ_NEXT(tp, q)) - if (db_append(sp, 1, lno, tp->lb, tp->len)) - return (1); + if (lno == 0 && F_ISSET(cbp, CB_LMODE)) { + for (i = cnt; i > 0; i--) { + for (; tp != NULL; + ++lno, ++sp->rptlines[L_ADDED], + tp = TAILQ_NEXT(tp, q)) + if (db_append(sp, 1, lno, tp->lb, + tp->len)) + return (1); + tp = TAILQ_FIRST(cbp->textq); + } rp->lno = 1; rp->cno = 0; return (0); @@ -92,10 +97,14 @@ put(SCR *sp, CB *cbp, CHAR_T *namep, MARK *cp, MARK *rp, int append) if (F_ISSET(cbp, CB_LMODE)) { lno = append ? cp->lno : cp->lno - 1; rp->lno = lno + 1; - for (; tp != NULL; - ++lno, ++sp->rptlines[L_ADDED], tp = TAILQ_NEXT(tp, q)) - if (db_append(sp, 1, lno, tp->lb, tp->len)) - return (1); + for (i = cnt; i > 0; i--) { + for (; tp != NULL; + ++lno, ++sp->rptlines[L_ADDED], + tp = TAILQ_NEXT(tp, q)) + if (db_append(sp, 1, lno, tp->lb, tp->len)) + return (1); + tp = TAILQ_FIRST(cbp->textq); + } rp->cno = 0; (void)nonblank(sp, rp->lno, &rp->cno); return (0); @@ -111,8 +120,11 @@ put(SCR *sp, CB *cbp, CHAR_T *namep, MARK *cp, MARK *rp, int append) * Get the first line. */ lno = cp->lno; - if (db_get(sp, lno, DBG_FATAL, &p, &len)) - return (1); + if (db_eget(sp, lno, &p, &len, &isempty)) { + if (!isempty) + return (1); + len = 0; + } GET_SPACE_RETW(sp, bp, blen, tp->len + len + 1); t = bp; @@ -126,8 +138,10 @@ put(SCR *sp, CB *cbp, CHAR_T *namep, MARK *cp, MARK *rp, int append) /* First line from the CB. */ if (tp->len != 0) { - MEMCPY(t, tp->lb, tp->len); - t += tp->len; + for (i = cnt; i > 0; i--) { + MEMCPY(t, tp->lb, tp->len); + t += tp->len; + } } /* Calculate length left in the original line. */ diff --git a/contrib/nvi/common/recover.c b/contrib/nvi/common/recover.c index cf222bfb5200..7b3a1791f74d 100644 --- a/contrib/nvi/common/recover.c +++ b/contrib/nvi/common/recover.c @@ -34,8 +34,8 @@ #include #include -#include "../ex/version.h" #include "common.h" +#include "version.h" #include "pathnames.h" /* diff --git a/contrib/nvi/ex/ex.c b/contrib/nvi/ex/ex.c index 900678e942eb..697fc3297525 100644 --- a/contrib/nvi/ex/ex.c +++ b/contrib/nvi/ex/ex.c @@ -773,6 +773,7 @@ skip_srch: if (ecp->cmd == &cmds[C_VISUAL_EX] && F_ISSET(sp, SC_VI)) * no longer useful. */ vi_address = ecp->clen != 0 && ecp->cp[0] != '\n'; + ecp->trailing = 0; for (p = ecp->cp; ecp->clen > 0; --ecp->clen, ++ecp->cp) { ch = ecp->cp[0]; if (IS_ESCAPE(sp, ecp, ch) && ecp->clen > 1) { @@ -788,6 +789,7 @@ skip_srch: if (ecp->cmd == &cmds[C_VISUAL_EX] && F_ISSET(sp, SC_VI)) ch = tmp; } } else if (ch == '\n' || ch == '|') { + ecp->trailing = 1; if (ch == '\n') F_SET(ecp, E_NEWLINE); --ecp->clen; diff --git a/contrib/nvi/ex/ex.h b/contrib/nvi/ex/ex.h index b2d8ad0f4fef..c6de31e2477d 100644 --- a/contrib/nvi/ex/ex.h +++ b/contrib/nvi/ex/ex.h @@ -99,7 +99,8 @@ struct _excmd { #define AGV_GLOBAL 0x04 /* global command. */ #define AGV_V 0x08 /* v command. */ #define AGV_ALL (AGV_AT | AGV_AT_NORANGE | AGV_GLOBAL | AGV_V) - u_int8_t agv_flags; + u_int8_t agv_flags : 4; + u_int8_t trailing : 1; /* Command had trailing | or \n. */ /* Clear the structure before each ex command. */ #define CLEAR_EX_CMD(cmdp) do { \ @@ -228,4 +229,4 @@ typedef enum { } tagmsg_t; #include "ex_def.h" -#include "extern.h" +#include "ex_extern.h" diff --git a/contrib/nvi/ex/ex_append.c b/contrib/nvi/ex/ex_append.c index 5b9a1697e974..f7c8ac65183b 100644 --- a/contrib/nvi/ex/ex_append.c +++ b/contrib/nvi/ex/ex_append.c @@ -149,17 +149,15 @@ ex_aci(SCR *sp, EXCMD *cmdp, enum which cmd) for (p = cmdp->save_cmd, len = cmdp->save_cmdlen; len > 0; p = t) { for (t = p; len > 0 && t[0] != '\n'; ++t, --len); - if (t != p || len == 0) { - if (F_ISSET(sp, SC_EX_GLOBAL) && - t - p == 1 && p[0] == '.') { - ++t; - if (len > 0) - --len; - break; - } - if (db_append(sp, 1, lno++, p, t - p)) - return (1); + if (F_ISSET(sp, SC_EX_GLOBAL) && + t - p == 1 && p[0] == '.') { + ++t; + if (len > 0) + --len; + break; } + if (db_append(sp, 1, lno++, p, t - p)) + return (1); if (len != 0) { ++t; if (--len == 0 && @@ -181,6 +179,9 @@ ex_aci(SCR *sp, EXCMD *cmdp, enum which cmd) if (len != 0) cmdp->save_cmd = t; cmdp->save_cmdlen = len; + } else if (cmdp->trailing) { + if (db_append(sp, 1, lno++, NULL, 0)) + return 1; } if (F_ISSET(sp, SC_EX_GLOBAL)) { diff --git a/contrib/nvi/ex/ex_bang.c b/contrib/nvi/ex/ex_bang.c index c5744708664a..08122f4173d2 100644 --- a/contrib/nvi/ex/ex_bang.c +++ b/contrib/nvi/ex/ex_bang.c @@ -174,8 +174,8 @@ ex_bang(SCR *sp, EXCMD *cmdp) if (!F_ISSET(sp, SC_VI) && !F_ISSET(sp, SC_EX_SILENT)) (void)ex_puts(sp, "!\n"); - /* Apply expandtab to the new text */ - if (O_ISSET(sp, O_EXPANDTAB)) + /* If addresses were specified, apply expandtab to the new text */ + if (cmdp->addrcnt != 0 && O_ISSET(sp, O_EXPANDTAB)) ex_retab(sp, cmdp); /* diff --git a/contrib/nvi/ex/ex_def.h b/contrib/nvi/ex/ex_def.h new file mode 100644 index 000000000000..7afb7b19d677 --- /dev/null +++ b/contrib/nvi/ex/ex_def.h @@ -0,0 +1,76 @@ +#define C_SCROLL 0 +#define C_BANG 1 +#define C_HASH 2 +#define C_SUBAGAIN 3 +#define C_STAR 4 +#define C_SHIFTL 5 +#define C_EQUAL 6 +#define C_SHIFTR 7 +#define C_AT 8 +#define C_APPEND 9 +#define C_ABBR 10 +#define C_ARGS 11 +#define C_BG 12 +#define C_CHANGE 13 +#define C_CD 14 +#define C_CHDIR 15 +#define C_COPY 16 +#define C_CSCOPE 17 +#define C_DELETE 18 +#define C_DISPLAY 19 +#define C_EDIT 20 +#define C_EX 21 +#define C_EXUSAGE 22 +#define C_FILE 23 +#define C_FG 24 +#define C_GLOBAL 25 +#define C_HELP 26 +#define C_INSERT 27 +#define C_JOIN 28 +#define C_K 29 +#define C_LIST 30 +#define C_MOVE 31 +#define C_MARK 32 +#define C_MAP 33 +#define C_MKEXRC 34 +#define C_NEXT 35 +#define C_NUMBER 36 +#define C_OPEN 37 +#define C_PRINT 38 +#define C_PRESERVE 39 +#define C_PREVIOUS 40 +#define C_PUT 41 +#define C_QUIT 42 +#define C_READ 43 +#define C_RECOVER 44 +#define C_RESIZE 45 +#define C_REWIND 46 +#define C_SUBSTITUTE 47 +#define C_SCRIPT 48 +#define C_SET 49 +#define C_SHELL 50 +#define C_SOURCE 51 +#define C_STOP 52 +#define C_SUSPEND 53 +#define C_T 54 +#define C_TAG 55 +#define C_TAGNEXT 56 +#define C_TAGPOP 57 +#define C_TAGPREV 58 +#define C_TAGTOP 59 +#define C_UNDO 60 +#define C_UNABBREVIATE 61 +#define C_UNMAP 62 +#define C_V 63 +#define C_VERSION 64 +#define C_VISUAL_EX 65 +#define C_VISUAL_VI 66 +#define C_VIUSAGE 67 +#define C_VSPLIT 68 +#define C_WRITE 69 +#define C_WN 70 +#define C_WQ 71 +#define C_XIT 72 +#define C_YANK 73 +#define C_Z 74 +#define C_SUBTILDE 75 diff --git a/contrib/nvi/ex/ex_move.c b/contrib/nvi/ex/ex_move.c index d910a7530f81..d4895b81c5cc 100644 --- a/contrib/nvi/ex/ex_move.c +++ b/contrib/nvi/ex/ex_move.c @@ -57,7 +57,7 @@ ex_copy(SCR *sp, EXCMD *cmdp) /* Put the text into place. */ tm.lno = cmdp->lineno; tm.cno = 0; - if (put(sp, &cb, NULL, &tm, &m, 1)) + if (put(sp, &cb, NULL, &tm, &m, 1, 1)) rval = 1; else { /* diff --git a/contrib/nvi/ex/ex_put.c b/contrib/nvi/ex/ex_put.c index c45fc551bfd1..ff8d05604565 100644 --- a/contrib/nvi/ex/ex_put.c +++ b/contrib/nvi/ex/ex_put.c @@ -38,7 +38,7 @@ ex_put(SCR *sp, EXCMD *cmdp) m.cno = sp->cno; if (put(sp, NULL, FL_ISSET(cmdp->iflags, E_C_BUFFER) ? &cmdp->buffer : NULL, - &cmdp->addr1, &m, 1)) + &cmdp->addr1, &m, 1, 1)) return (1); sp->lno = m.lno; sp->cno = m.cno; diff --git a/contrib/nvi/ex/ex_shift.c b/contrib/nvi/ex/ex_shift.c index 97c7840a9a02..f7190b2e8688 100644 --- a/contrib/nvi/ex/ex_shift.c +++ b/contrib/nvi/ex/ex_shift.c @@ -79,8 +79,12 @@ shift(SCR *sp, EXCMD *cmdp, enum which rl) return (0); } - /* Copy the lines being shifted into the unnamed buffer. */ - if (cut(sp, NULL, &cmdp->addr1, &cmdp->addr2, CUT_LINEMODE)) + /* + * When not doing re-expand tabs, copy the lines being shifted into + * the unnamed buffer. + */ + if (rl != RETAB && + cut(sp, NULL, &cmdp->addr1, &cmdp->addr2, CUT_LINEMODE)) return (1); /* diff --git a/contrib/nvi/ex/extern.h b/contrib/nvi/ex/extern.h new file mode 100644 index 000000000000..9d7b1d674c3c --- /dev/null +++ b/contrib/nvi/ex/extern.h @@ -0,0 +1,131 @@ +int ex(SCR **); +int ex_cmd(SCR *); +int ex_range(SCR *, EXCMD *, int *); +int ex_is_abbrev(CHAR_T *, size_t); +int ex_is_unmap(CHAR_T *, size_t); +void ex_badaddr + (SCR *, EXCMDLIST const *, enum badaddr, enum nresult); +int ex_abbr(SCR *, EXCMD *); +int ex_unabbr(SCR *, EXCMD *); +int ex_append(SCR *, EXCMD *); +int ex_change(SCR *, EXCMD *); +int ex_insert(SCR *, EXCMD *); +int ex_next(SCR *, EXCMD *); +int ex_prev(SCR *, EXCMD *); +int ex_rew(SCR *, EXCMD *); +int ex_args(SCR *, EXCMD *); +char **ex_buildargv(SCR *, EXCMD *, char *); *** 1263 LINES SKIPPED *** From nobody Tue Feb 10 15:27: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 4f9QRX1zCGz6RVb2 for ; Tue, 10 Feb 2026 15:27: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 4f9QRX03H1z46Sw for ; Tue, 10 Feb 2026 15:27:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770737256; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZeO3OtoPcM6eaQ9Qor9XPo+1jXt2xijSy4Ice2gmPDI=; b=vpjVizNJMdDm0G4SNdYWP9VTnIhDK3VSoXMcF97hDGFAOSzEbjtoOuNqGY+eoqyJTftnwK 0ton5bVlDR5ASycp6LIK4M46kF2QT96wkPzk5PzxDGVv8zPzoy9mixZToPp/hSdyn1ni4e a4/RFyqUDO/DTs0byWot8QrwwkKvWdqtK8jshAuUpFyPHdbEXdfuHgTD4c+NoCc/HasiBS 6gDkLnONDgFdOfQN9pNm4z9P1ljNuVN8rVG613WfQ3+ftcnS7T01E/8p9apil64IG1WAMI +GczYr+BnYoVdpUX4uLyBS0gWG0GO/uiSf3fXyn35z2qZDvtkuY1UhFOPYVZKQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770737256; a=rsa-sha256; cv=none; b=agylIOuj1VAfneVgB/bDcwp3bDUnDZQakr8TnO98snDsOIdyqFb07hqso5/ioWo30kZ3hJ OK5xR5pxDp/lBYGnw1zklqoxKqp/lit/loSeQN59TyVBsej1u/2o6OzqR0AAM9gFY6b3hD JyjgQlfF5RQs4Oh9+bPwkRP0GnEp9YaWj04tz6jscfzP3VS7TejCfkDEw6gUG4E4c6lkQw L1nU+sGIZxkJD4nXxMRtxx0w49AGPKBgjg5YtbMzV2RXDJpraCRNCPOLMWOCBeh3/nUdQO shajT6Osq1Rly7N8IpCIxOfRCDQOgDAjMHFOoZsMgX4R4adgtP/Lw5FWaPB1YA== 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=1770737256; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZeO3OtoPcM6eaQ9Qor9XPo+1jXt2xijSy4Ice2gmPDI=; b=xvXvOhAP7MqY4aOXa8WQ7fd3aTl5FAN5qLI6vUK6O/UQGyExop8YAiawXlGvl7MJKlnb/X oXZyVJ4i2zuhdpuFVKLZzba087pUHNj6zu34xx1BMNdSyjvGxnn6sSGOMV0Lx5JsxNYZu5 ZKnSgIeQP1PkYr68J0D9Rm/aKQsDsvvEKUOebDM5nfv6tHqcxxbl+eBo2oYnk/LLkza7nJ PP3Hld36JpbCK8oM1KVmLMHPvsxsRmmxie1LziU3QjtkLqG9iFvPDSky97yTBpYFRN61jl a4v0PyL9mWv6bFSBm1GY/ih5Bdw8zbT3sJtfQ2MPKXbIkLD+ON+GI1zittDAWA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9QRW69qSz1MRP for ; Tue, 10 Feb 2026 15:27:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 43fee by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 15:27:35 +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: 07f25fa320af - stable/15 - diff: Print an error message on I/O error 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: 07f25fa320af9dfd452c740127e941d4328ba6d8 Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 15:27:35 +0000 Message-Id: <698b4e67.43fee.7765ce0e@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=07f25fa320af9dfd452c740127e941d4328ba6d8 commit 07f25fa320af9dfd452c740127e941d4328ba6d8 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-05 14:39:39 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-10 14:24:08 +0000 diff: Print an error message on I/O error If an error occurs while atomizing either file, immediately print an error message using the error code returned by the atomizer, and set the error bit in the exit status. PR: 292198 MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: thj, kevans Differential Revision: https://reviews.freebsd.org/D55109 (cherry picked from commit 55f160fb07eaee977c89bdee7bdd83f4d21f5adf) --- usr.bin/diff/diffreg_new.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/usr.bin/diff/diffreg_new.c b/usr.bin/diff/diffreg_new.c index f29e4ad8b9ed..29882923cd0e 100644 --- a/usr.bin/diff/diffreg_new.c +++ b/usr.bin/diff/diffreg_new.c @@ -158,6 +158,7 @@ diffreg_new(char *file1, char *file2, int flags, int capsicum) const struct diff_config *cfg; enum diffreg_algo algo; cap_rights_t rights_ro; + int ret; algo = DIFFREG_ALGO_MYERS_THEN_MYERS_DIVIDE; @@ -219,12 +220,20 @@ diffreg_new(char *file1, char *file2, int flags, int capsicum) if (flags & D_PROTOTYPE) diff_flags |= DIFF_FLAG_SHOW_PROTOTYPES; - if (diff_atomize_file(&left, cfg, f1, (uint8_t *)str1, st1.st_size, diff_flags)) { + ret = diff_atomize_file(&left, cfg, f1, (uint8_t *)str1, st1.st_size, + diff_flags); + if (ret != DIFF_RC_OK) { + warnc(ret, "%s", file1); rc = D_ERROR; + status |= 2; goto done; } - if (diff_atomize_file(&right, cfg, f2, (uint8_t *)str2, st2.st_size, diff_flags)) { + ret = diff_atomize_file(&right, cfg, f2, (uint8_t *)str2, st2.st_size, + diff_flags); + if (ret != DIFF_RC_OK) { + warnc(ret, "%s", file2); rc = D_ERROR; + status |= 2; goto done; } From nobody Tue Feb 10 15:27: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 4f9QRY2Fmnz6RVb8 for ; Tue, 10 Feb 2026 15:27: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 4f9QRY0Whvz46c3 for ; Tue, 10 Feb 2026 15:27:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770737257; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Yfhqdd1Bk8yu5RDkD4DkolS+nP4P8TAtslKcWfXeL6w=; b=u7ww3DePKMHHnCaCP4i/mocsamTLR+Mdw0aZOj3WABdUZNE9+hFGCtS4kg9pmIsKo0D6jn IcNP1XJIoIm7e8i3hz3HeNzHPVV+3qoNbN9OmO5Kk9V5ZYN/Zk4KeGJh6VwNhcsDsrpMwF bFobYcVQv7EkqwPaLtN4golTxWem3BqF46VJ2oxOrKKr6hRj0rFGvQPudrtT7Z3FzVzrW/ OqpbrDDIBOsulKRh9tSf1yjeKlkjK9yQ8rD/FYtCEtt7ABJp29w7tY50REKkBvS+6c+mj4 6QINpFomPmZyYkA3LCN1lEfctRTZExumNDZcFtCMzQ3oQrN/wrwJu82Ewu+gXw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770737257; a=rsa-sha256; cv=none; b=jU76h+oQyFqldjUGvSlAFmOP9FB6YKk3j1H8VnZaWg2Gmlb7RcNnE9wGBd056gfzu64PN4 Ib/XiMk9N7c+XPsCMiP2JervQf1+4AeTwUhHhw8tWmB3yr0zXqzJkpvEph1yZyQUVJ97uO xvwLtW7fwzLW1GNJejfokY1PcsfPjbN6lohJNFRYZleIwwO+pCRrdGQZzXpFdzkGRIy7Db iNBNm0q/nVLEJGkGSf/sxsnyCvJDukKH182qKo6EQbn5mhE+mow35FRVQmip475z7T1jJa 5D/aJHeMxONPzmShEO+cIyP09y38H0xcpGPm2QnNozxNVuiKY8lCb0gB1D/l3w== 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=1770737257; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Yfhqdd1Bk8yu5RDkD4DkolS+nP4P8TAtslKcWfXeL6w=; b=NLQkL4CCoMTXoylvERLhbwht2dIZzMSslhiCfavXDGS9AxPW/UXII35PUPNp+rVDrSkjxj UuhvWYtxBwqDK3MU477OKDAZAlGdusDdx/5+CtU0UopIJXFrTdanPg4V274KhV3VSLBFpm RUEVKSHgAWv2XWEjrRj1G0rKiv5C5HFo9H7NEcvXZ2p0HqJKAUmMye3/SP7hQGmrP76eUc 46hjIFgGT6H0JwbW6IzUb5pf98A+NfKog+Jg0JYwkkx8KwjMThWyVlXjsfONHRXpgg6Zl+ MsVUAb6gVw/qVSvM9ka6LgEWoPmJ2pS/9dTuT3sMkjx5an3jhfQmKNOW2giWNg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9QRY00Cpz1NTl for ; Tue, 10 Feb 2026 15:27:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 44e17 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 15:27:36 +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: 4a30735cddad - stable/15 - diff: Fix integer overflows in Stone algorithm 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: 4a30735cddad592a7445d7473536f4bcdcc0e001 Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 15:27:36 +0000 Message-Id: <698b4e68.44e17.41b9e590@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=4a30735cddad592a7445d7473536f4bcdcc0e001 commit 4a30735cddad592a7445d7473536f4bcdcc0e001 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-05 14:39:43 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-10 14:24:08 +0000 diff: Fix integer overflows in Stone algorithm Fix integer overflows that may occur when the context window is very large and add tests to exercise those conditions. PR: 267032 MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: thj, kevans Differential Revision: https://reviews.freebsd.org/D55110 (cherry picked from commit 5fc739eb5949620da911db2f87ca8faedc549d3a) --- usr.bin/diff/diffreg.c | 32 +++++++++++++++++++++----------- usr.bin/diff/tests/diff_test.sh | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 11 deletions(-) diff --git a/usr.bin/diff/diffreg.c b/usr.bin/diff/diffreg.c index ffa5568bf442..91ae5ee6591a 100644 --- a/usr.bin/diff/diffreg.c +++ b/usr.bin/diff/diffreg.c @@ -77,6 +77,7 @@ #include #include #include +#include #include #include #include @@ -1056,7 +1057,7 @@ change(char *file1, FILE *f1, char *file2, FILE *f2, int a, int b, int c, int d, { static size_t max_context = 64; long curpos; - int i, nc; + int dist, i, nc; const char *walk; bool skip_blanks, ignore; @@ -1120,8 +1121,9 @@ proceed: */ print_header(file1, file2); anychange = 1; - } else if (a > context_vec_ptr->b + (2 * diff_context) + 1 && - c > context_vec_ptr->d + (2 * diff_context) + 1) { + } else if (!ckd_add(&dist, diff_context, diff_context) && + a - context_vec_ptr->b - 1 > dist && + c - context_vec_ptr->d - 1 > dist) { /* * If this change is more than 'diff_context' lines from the * previous change, dump the record and reset it. @@ -1506,10 +1508,14 @@ dump_context_vec(FILE *f1, FILE *f2, int flags) return; b = d = 0; /* gcc */ - lowa = MAX(1, cvp->a - diff_context); - upb = MIN((int)len[0], context_vec_ptr->b + diff_context); - lowc = MAX(1, cvp->c - diff_context); - upd = MIN((int)len[1], context_vec_ptr->d + diff_context); + if (ckd_sub(&lowa, cvp->a, diff_context) || lowa < 1) + lowa = 1; + if (ckd_add(&upb, context_vec_ptr->b, diff_context) || upb > (int)len[0]) + upb = (int)len[0]; + if (ckd_sub(&lowc, cvp->c, diff_context) || lowc < 1) + lowc = 1; + if (ckd_add(&upd, context_vec_ptr->d, diff_context) || upd > (int)len[1]) + upd = (int)len[1]; printf("***************"); if (flags & (D_PROTOTYPE | D_MATCHLAST)) { @@ -1609,10 +1615,14 @@ dump_unified_vec(FILE *f1, FILE *f2, int flags) return; b = d = 0; /* gcc */ - lowa = MAX(1, cvp->a - diff_context); - upb = MIN((int)len[0], context_vec_ptr->b + diff_context); - lowc = MAX(1, cvp->c - diff_context); - upd = MIN((int)len[1], context_vec_ptr->d + diff_context); + if (ckd_sub(&lowa, cvp->a, diff_context) || lowa < 1) + lowa = 1; + if (ckd_add(&upb, context_vec_ptr->b, diff_context) || upb > (int)len[0]) + upb = (int)len[0]; + if (ckd_sub(&lowc, cvp->c, diff_context) || lowc < 1) + lowc = 1; + if (ckd_add(&upd, context_vec_ptr->d, diff_context) || upd > (int)len[1]) + upd = (int)len[1]; printf("@@ -"); uni_range(lowa, upb); diff --git a/usr.bin/diff/tests/diff_test.sh b/usr.bin/diff/tests/diff_test.sh index 691b649813a1..89348d3a8b16 100755 --- a/usr.bin/diff/tests/diff_test.sh +++ b/usr.bin/diff/tests/diff_test.sh @@ -24,6 +24,7 @@ atf_test_case functionname atf_test_case noderef atf_test_case ignorecase atf_test_case dirloop +atf_test_case verylong simple_body() { @@ -380,6 +381,36 @@ dirloop_body() diff -r a b } +bigc_head() +{ + atf_set "descr" "Context diff with very large context" +} +bigc_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 +} + +bigu_head() +{ + atf_set "descr" "Unified diff with very large context" +} +bigu_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 +} + atf_init_test_cases() { atf_add_test_case simple @@ -407,4 +438,6 @@ 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 } From nobody Tue Feb 10 15:27: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 4f9QRZ2gVbz6RVgr for ; Tue, 10 Feb 2026 15:27: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 4f9QRZ1Rd5z46Wx for ; Tue, 10 Feb 2026 15:27:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770737258; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ekT8dIBe1+I2ohLllwq0WvGOHUbvZZsSxnZX5ZoFDDQ=; b=NfjxnQ5KyrSLCYMNNmX6CTppNThy/qaP5QbiZHCMmgMmSmKHfuoWDZCGTVV3zG3hULFL3t MC9OX3KCvOxZOWBZNNYb3va8Kiy54/N/Hd/Q3nC3JXIvD3QX+m/SX64wz+jxvE9aAsukil aviHc39ijk5dishkwjRYywU9i9QOOShGEwSbJ0hZBw4G1SAdG0oZJQuc1TW1NEhdinoQRc jDqUzB4GnuITNEf3jR15IxQu2i3k9XHixgKbirXTap6zoxvzNNFo6+YNTFmrW6Belz4ZfE YnhWPRx2kFivEJtDfaxWuEd6ZZHKNg0VvLGReB981OtT/NhbV4RZUEPQuJn5Cw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770737258; a=rsa-sha256; cv=none; b=QNohE5L6J7hrzcXncf7M/TkMffj4T0xe9cKijeV9SDJsr+2bPAb0/Z9f1PhctnBHcptQ/t Kg/8+LL7xGhMGEpQzsbcUJ4ffh5J6M8/kcNqeT9cpKIp8qDNm5PxDL40iHq5myKNef0zq6 88poB29usTldIZ0CYlhF7p0AxBP8gpJ/HEQ6CFyH4vXjAJkUp1Cl40aM4MOYP/wYoKQJ25 E9ElB1CLkvdmsMHk0QbLlkyOnYmVe2597znsdYSRMrwD+5TjVtSYYt6odMzrtMHZVmM8nD puaZH9xCJeNS6Rj0CVCZYk+Ikf8ww/hhENXuQ8XBsD7oW+q7UoBFADnXO63cRA== 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=1770737258; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ekT8dIBe1+I2ohLllwq0WvGOHUbvZZsSxnZX5ZoFDDQ=; b=sS+lcG9w6gphIB2ViJMXVr/zAnGqhHkRaygXUoB+QVDGmuqtNdRadxd4xz3YXxrTCXh210 b5egAGx/QVmYG6+wn/l4xUU4ZV81L5AyGJkZjj7/eDoZKmb6nX5OCSnRROMX08zMTrpfUb RkubZNJUQxsog6ps3u6cIbS/u/xy713/5MPfoqYjEY7W5r1g1wT9NQIGyYTzk2YtkCKNhe QXBAXgSgYqa3Fe6/Xr4A8qShpdYYePCu4XdVAvtsKln/8fsJjrxfhnTBwBJgxgGB6tOaKF ZV15K8RGah2bU54VeFr6q1T8tMaJxfPP0ogyzFBVxRfCawR6wRU3BccPoe9wOg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9QRZ0ZGPz1MXW for ; Tue, 10 Feb 2026 15:27:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 45bae by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 15:27:38 +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: a0a37c2143e8 - stable/15 - diff: Add test case for pagination resource leak 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: a0a37c2143e82e0df017318d388d12fb2fdf86ea Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 15:27:38 +0000 Message-Id: <698b4e6a.45bae.312d9a49@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=a0a37c2143e82e0df017318d388d12fb2fdf86ea commit a0a37c2143e82e0df017318d388d12fb2fdf86ea Author: Dag-Erling Smørgrav AuthorDate: 2026-02-05 14:39:47 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-10 14:24:08 +0000 diff: Add test case for pagination resource leak The pagination code leaks either processes or descriptors or both, depending on the exact version of the code you have. Add a test case which exercises this leak to facilitate fixing it. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: thj, kevans Differential Revision: https://reviews.freebsd.org/D55111 (cherry picked from commit 270492602b9bd8b8fce4f021f055804978bf3f23) --- usr.bin/diff/tests/diff_test.sh | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/usr.bin/diff/tests/diff_test.sh b/usr.bin/diff/tests/diff_test.sh index 89348d3a8b16..a3f76602cf37 100755 --- a/usr.bin/diff/tests/diff_test.sh +++ b/usr.bin/diff/tests/diff_test.sh @@ -411,6 +411,27 @@ bigu_body() diff -Astone -U$(((1<<31)-2)) a b } +prleak_head() +{ + atf_set "descr" "Verify that pagination does not leak resources" +} +prleak_body() +{ + local n=32 + mkdir a b + for hi in $(jot -w%02x $n 0) ; do + mkdir a/$hi b/$hi + for lo in $(jot -w%02x $n 0) ; do + echo "$hi$lo" >a/$hi/$lo + echo "$hi$lo" >b/$hi/$lo + done + done + ulimit -n 1000 + ulimit -u 1000 + atf_check diff -rul a b + atf_check diff -Astone -rul a b +} + atf_init_test_cases() { atf_add_test_case simple @@ -440,4 +461,5 @@ atf_init_test_cases() atf_add_test_case dirloop atf_add_test_case bigc atf_add_test_case bigu + atf_add_test_case prleak } From nobody Tue Feb 10 15:27: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 4f9QRb55Qpz6RVQp for ; Tue, 10 Feb 2026 15:27: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 4f9QRb28YXz46X7 for ; Tue, 10 Feb 2026 15:27:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770737259; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=42oLt30m+pzt0VhDPC4YohWs7usSyCZhY+G0H3uvpKE=; b=bp37Rqp5R0kc8deo5//zkDc8yBFSwaNPz+/DXULwS843A0D/doWO1XXEGGObuhyAfSE77G UhRdiuuJOWUv16ef58cPinlM5AfliY0P5Ab27rsFL+m638UIXCNaE7CqLHTcWUDlzmYqtG cmU15wJ6xPZm6LzCR7sRuYRHVuQVQJ2SsIeUpAoeehshMCJAfcmCUVslFrUmvKkhzGds9T Iu7GE6bWMDc1BJEKxw2XbpeD7z0hIftVVi/SZDd8q4gsBp6LLJqmO8nx1H+vkQJrnSkhzB bLiU35RLD+9RcNCwkQ5X0wW1UqoSmB0ry6FfwmHIzutKr4FNsr4t0Gk3z78shQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770737259; a=rsa-sha256; cv=none; b=U2eSv3Wvo8WMyp4SVyocrWIMi6R+GPpye/pvXtgg61xD9P3y1qFKAJpj3N8GxbivxfOejt cQkQPz61lq4Snjb5bksT/z+HBlf1O3p8WEjYVNhqbu8TifBj+dQwdXhYCYYo+Qw8MhXBOb oY1gIbMU5MDwf86t1ojk/o39IWbptGy8KhssPyHYhRDCk2HLGyt10PPuLMESuMYAsou5un dk39qMe8TAxS9J1ZMbRSKD3BNWOOZdBlVVM/7+D1iEjNsIDCzqtSwxWIbdRxc8ly33jI8v Qzl/RMY6jZdh5RHfwZVdobqLbkNlpOibt2N0Q/4NGYuNK+IqrKK9u7um2za7lw== 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=1770737259; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=42oLt30m+pzt0VhDPC4YohWs7usSyCZhY+G0H3uvpKE=; b=QFUsmBYSKJbX3XzAzlN4ABpny/p0bvTt87bs5702LeexM5g+3TBA6A8yb3xzFUGiJ3oVrh Vn/uPLP/rlENykGGnn4db7Zd0Ar+CCoxV+kbX8XtTpjVfvJZ54l9z69SpPEBRnQSh2INOw cHAVBIM4+ZsaYXcN35E4b9E6wKYWrgZwDizNIR3bKTtzMo7lzcbo3i1qisdFCVA9DUFgWO xav9fhNXkiedxRNezvFjQcJ5Yvr7OD7BSLF+0orFAxZMZNw2LZ549NAGClTkpBi+0deQUr E3RNqvObxQAJSyGwL0oLVy7FzmhfRkebEcDiLWvsoRQYNwKa8qBXEKpj4AeCeQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9QRb1Nc5z1MXX for ; Tue, 10 Feb 2026 15:27:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 460ec by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 15:27:39 +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: e87b9226551e - stable/15 - diff: Fix pagination leak 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: e87b9226551e88cb0649d4aaa54b041156df83f7 Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 15:27:39 +0000 Message-Id: <698b4e6b.460ec.1d04ac6b@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=e87b9226551e88cb0649d4aaa54b041156df83f7 commit e87b9226551e88cb0649d4aaa54b041156df83f7 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-05 14:39:53 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-10 14:24:08 +0000 diff: Fix pagination leak * Drop an unnecessary variable and rename pidfd to procd. * Rewinding stdout serves no purpose, so stop doing it. * Don't bother freeing memory or setting the global status right before erroring out. * Error out if dup(2) or dup2(2) fail. * In the unlikely case that our pipe is equal to stdout, we need to record that information so we don't close it when cleaning up. * Don't bother closing a descriptor before dup2(2)ing to it. * Don't forget to close the the process descriptor after reaping the child process. PR: 266592 MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: kevans, markj Differential Revision: https://reviews.freebsd.org/D55112 (cherry picked from commit c3904a7de78ca1ca15fcdf4c09f9d4be7f6fe6f5) --- usr.bin/diff/pr.c | 22 ++++++++++------------ usr.bin/diff/pr.h | 2 +- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/usr.bin/diff/pr.c b/usr.bin/diff/pr.c index f254fbab28b7..189e6b34649e 100644 --- a/usr.bin/diff/pr.c +++ b/usr.bin/diff/pr.c @@ -45,7 +45,6 @@ struct pr * start_pr(char *file1, char *file2) { int pfd[2]; - int pr_pd; pid_t pid; char *header; struct pr *pr; @@ -55,13 +54,10 @@ start_pr(char *file1, char *file2) xasprintf(&header, "%s %s %s", diffargs, file1, file2); signal(SIGPIPE, SIG_IGN); fflush(stdout); - rewind(stdout); if (pipe(pfd) == -1) err(2, "pipe"); - switch ((pid = pdfork(&pr_pd, PD_CLOEXEC))) { + switch ((pid = pdfork(&pr->procd, PD_CLOEXEC))) { case -1: - status |= 2; - free(header); err(2, "No more processes"); case 0: /* child */ @@ -73,15 +69,17 @@ start_pr(char *file1, char *file2) execl(_PATH_PR, _PATH_PR, "-h", header, (char *)0); _exit(127); default: - pr->pidfd = pr_pd; /* parent */ - if (pfd[1] != STDOUT_FILENO) { - pr->ostdout = dup(STDOUT_FILENO); - dup2(pfd[1], STDOUT_FILENO); + if (pfd[1] == STDOUT_FILENO) { + pr->ostdout = STDOUT_FILENO; + } else { + if ((pr->ostdout = dup(STDOUT_FILENO)) < 0 || + dup2(pfd[1], STDOUT_FILENO) < 0) { + err(2, "stdout"); + } close(pfd[1]); } close(pfd[0]); - rewind(stdout); free(header); } return (pr); @@ -98,14 +96,14 @@ stop_pr(struct pr *pr) fflush(stdout); if (pr->ostdout != STDOUT_FILENO) { - close(STDOUT_FILENO); dup2(pr->ostdout, STDOUT_FILENO); close(pr->ostdout); } - while (pdwait(pr->pidfd, &wstatus, WEXITED, NULL, NULL) == -1) { + while (pdwait(pr->procd, &wstatus, WEXITED, NULL, NULL) == -1) { if (errno != EINTR) err(2, "pdwait"); } + close(pr->procd); free(pr); if (WIFEXITED(wstatus) && WEXITSTATUS(wstatus) != 0) errx(2, "pr exited abnormally"); diff --git a/usr.bin/diff/pr.h b/usr.bin/diff/pr.h index b2ff7e5d6798..e6abad4466a6 100644 --- a/usr.bin/diff/pr.h +++ b/usr.bin/diff/pr.h @@ -26,7 +26,7 @@ struct pr { int ostdout; - int pidfd; + int procd; }; struct pr *start_pr(char *file1, char *file2); From nobody Tue Feb 10 15:27: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 4f9QRc27Zmz6RVQt for ; Tue, 10 Feb 2026 15:27: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 4f9QRc06qKz46cV for ; Tue, 10 Feb 2026 15:27:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770737260; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DrWt8bLy1o1oNFHvv19E2EDNiPJ6aW8EAslWMvwP1OU=; b=yRmAWVsXPIsIphGPTP/01k941n1zjUMoMkPUG9FYVHMaTB9GB0/fd/sDM7FozFwkpAKeaS gmv2VznnSInhs6IRLiInmMbuG06uvY29Tno7MI0dRpFOJ+p9l3IwZDQ9ZUCIn2+aCNzdWD Tt6INJg5zikE+88zFxrlV4vBxNmEWE7gqY8EnzaCwDtDG+VxAdGp4IddbQQk8SaFP2/smL KH2BeaMXl495jbstgiazEos8o3dE29J3Itv5LXboEJZG1DF/bFG1lNWZxbdtIFSJysx2PH mvpi/EZBcVmtvJjHio2RN+VTYobpZJB8xVvj6BS0kzX0c5ST/+UpQim5AhHLBg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770737260; a=rsa-sha256; cv=none; b=V0CsNCNn49dN2PSISxCX6s86kwafPc2HKEGjrJ356lk7SVjfn62jYHNQjBo0bREfoBt14S Uml9i5jWPtBdKK1BSZ+GoowBVEzpiAk2jX+NpeLNXvkYjEYp7kfctlXZCkin97em56fC1k UUxk52jij9oBaIvBxuWM6jaIBlVv65GjldNhXD/FFd1N6vjIGyoY5s6Mx/25BVEiYOiLR8 /G9TI2HPux90Rx3V9tuNL9m/UuFEwwgJyXtRCNDCXqow5nMBRs82H61sOMm3JkWx2tSFhm HxfQL/CXJAyLud8MT0Q183xvSZkzT7Bn4KfOz2jOI/0hjncW4BK4wOfd+t9D+A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770737260; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DrWt8bLy1o1oNFHvv19E2EDNiPJ6aW8EAslWMvwP1OU=; b=KUqGdnyeVmarVlzG+WY6fi9TqjpdE+IXBMcmSmmFP1csVORhfzuw1ldzaDLepUvlKqwyP5 Nio0yXrmV6iM7g2Za5bkKzulzpJwImEF/zrGuiyg/Gyc2sgrHrxGT9LdoqK16vGQtq5kZM Xk2ookZkV6KNxJQVrztJrOjcrgyapGJsYNy0lVgcIedqlyqC3i3qB2PlCHos1+wUgdIVEE MYk76p61iS+saUxx3s166o8zLkJBQ/9dA8AA5/4433VVwwwSV28fuljtERsBIHqBVDTZLB 4q7La3r7f79YBV7tGTj2+x/RZKJEkLTSMv83Hd4T237qsNjus2QNDbZ1cGWW5Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9QRb5jL5z1NRN for ; Tue, 10 Feb 2026 15:27:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 451d8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 15:27:34 +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: b97396baca2b - stable/15 - libdiff: Simplify truncation detection 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: b97396baca2bff80ba68e1e69dbf9a6ab44e1539 Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 15:27:34 +0000 Message-Id: <698b4e66.451d8.4859031b@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=b97396baca2bff80ba68e1e69dbf9a6ab44e1539 commit b97396baca2bff80ba68e1e69dbf9a6ab44e1539 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-05 14:39:34 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-10 14:24:07 +0000 libdiff: Simplify truncation detection * Adjust the comment to reflect the fact that SIGBUS can occur not only if the file is truncated, but also if an I/O error occurs while paging in any part of it. * Instead of setting a flag, just return EIO. * Adjust the unit test accordingly. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: thj, kevans Differential Revision: https://reviews.freebsd.org/D55108 (cherry picked from commit a689bfa4e25af8307709dc12f75b0e02a65abf18) --- contrib/libdiff/include/diff_main.h | 1 - contrib/libdiff/lib/diff_atomize_text.c | 12 +++++++----- lib/libdiff/tests/libdiff_test.c | 3 +-- usr.bin/diff/diffreg_new.c | 4 ---- 4 files changed, 8 insertions(+), 12 deletions(-) diff --git a/contrib/libdiff/include/diff_main.h b/contrib/libdiff/include/diff_main.h index 11700580db4b..04a6c6e748c9 100644 --- a/contrib/libdiff/include/diff_main.h +++ b/contrib/libdiff/include/diff_main.h @@ -118,7 +118,6 @@ struct diff_data { /* Flags set by file atomizer. */ #define DIFF_ATOMIZER_FOUND_BINARY_DATA 0x00000001 -#define DIFF_ATOMIZER_FILE_TRUNCATED 0x00000002 /* Flags set by caller of diff_main(). */ #define DIFF_FLAG_IGNORE_WHITESPACE 0x00000001 diff --git a/contrib/libdiff/lib/diff_atomize_text.c b/contrib/libdiff/lib/diff_atomize_text.c index d8a69733fc00..9ed611cce4b2 100644 --- a/contrib/libdiff/lib/diff_atomize_text.c +++ b/contrib/libdiff/lib/diff_atomize_text.c @@ -141,6 +141,7 @@ diff_data_atomize_text_lines_mmap(struct diff_data *d) bool embedded_nul = false; unsigned int array_size_estimate = d->len / 50; unsigned int pow2 = 1; + int ret = DIFF_RC_OK; while (array_size_estimate >>= 1) pow2++; @@ -152,13 +153,14 @@ diff_data_atomize_text_lines_mmap(struct diff_data *d) sigaction(SIGBUS, &act, &oact); if (sigsetjmp(diff_data_signal_env, 0) > 0) { /* - * The file was truncated while we were reading it. Set - * the end pointer to the beginning of the line we were - * trying to read, adjust the file length, and set a flag. + * The file was truncated while we were reading it, or an + * I/O error occurred. Set the end pointer to the + * beginning of the line we were trying to read, adjust + * the file length, and set the return value to an error. */ end = pos; d->len = end - d->data; - d->atomizer_flags |= DIFF_ATOMIZER_FILE_TRUNCATED; + ret = EIO; } while (pos < end) { const uint8_t *line_start = pos, *line_end = pos; @@ -203,7 +205,7 @@ diff_data_atomize_text_lines_mmap(struct diff_data *d) if (embedded_nul) d->atomizer_flags |= DIFF_ATOMIZER_FOUND_BINARY_DATA; - return DIFF_RC_OK; + return ret; } static int diff --git a/lib/libdiff/tests/libdiff_test.c b/lib/libdiff/tests/libdiff_test.c index e82a36f3d38a..2a7c1b37e2c2 100644 --- a/lib/libdiff/tests/libdiff_test.c +++ b/lib/libdiff/tests/libdiff_test.c @@ -45,10 +45,9 @@ ATF_TC_BODY(diff_atomize_truncated, tc) rewind(f); ATF_REQUIRE(truncate(fn, size / 2) == 0); ATF_REQUIRE((p = mmap(NULL, size, PROT_READ, MAP_PRIVATE, fileno(f), 0)) != MAP_FAILED); - ATF_REQUIRE(diff_atomize_file(&d, &cfg, f, p, size, 0) == 0); + ATF_REQUIRE(diff_atomize_file(&d, &cfg, f, p, size, 0) == EIO); ATF_REQUIRE((size_t)d.len <= size / 2); ATF_REQUIRE((size_t)d.len >= size / 2 - sizeof(line)); - ATF_REQUIRE(d.atomizer_flags & DIFF_ATOMIZER_FILE_TRUNCATED); } ATF_TC_CLEANUP(diff_atomize_truncated, tc) { diff --git a/usr.bin/diff/diffreg_new.c b/usr.bin/diff/diffreg_new.c index d932764bb6da..f29e4ad8b9ed 100644 --- a/usr.bin/diff/diffreg_new.c +++ b/usr.bin/diff/diffreg_new.c @@ -223,14 +223,10 @@ diffreg_new(char *file1, char *file2, int flags, int capsicum) rc = D_ERROR; goto done; } - if (left.atomizer_flags & DIFF_ATOMIZER_FILE_TRUNCATED) - warnx("%s truncated", file1); if (diff_atomize_file(&right, cfg, f2, (uint8_t *)str2, st2.st_size, diff_flags)) { rc = D_ERROR; goto done; } - if (right.atomizer_flags & DIFF_ATOMIZER_FILE_TRUNCATED) - warnx("%s truncated", file2); result = diff_main(cfg, &left, &right); if (result->rc != DIFF_RC_OK) { From nobody Tue Feb 10 15:27: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 4f9QRd2YlKz6RVNQ for ; Tue, 10 Feb 2026 15:27: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 4f9QRc2xWFz46PF for ; Tue, 10 Feb 2026 15:27:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770737260; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xMpwIH/wpLgqFTHfzxM2WLrv9LVXqwBCHb9KeyqI/yc=; b=UzKDzgC5DyelDTuCNPJHILEu5J9jScC+BZrHjlOovAm2XsPC0MKE3rFVZxMew+yoKxgZ+3 fD4TXiUKTfCye+ohk8POsPYWQDmIklvFzlpdaXsDcCmBYFFG78aaDBA53sjuuNBZmQvLgO XsGKz4iCsDjRqq+JiECKBH/SF47nD5ZIIKyT5xjxqsGglkkhmtboIfICi2tk2Gmh6IoXd9 tIJm2ixDZwEX2v4bMU6EV7+DByMmE+KXGXnUxZh/gbVrPC1AEiW9s4oATQrCNAuSnV35FD sxTQRc7XMrOcUKbco3Szv87dl682ncUuT9Xkz9QVicwBVIZCvPBRBYpcqfqgsA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770737260; a=rsa-sha256; cv=none; b=gNnTWIL46WioIRr8RmhB2LtGlZ8Q5eZFLWnPO9tp/6p76vp+L81LuUUOZ/rdSqwFTmtJDP uPfOR7dmYynCkZS4Ci2AiYdILlBfm8ECUTZVbV2s57mlCNO4NafoC4VRHVvkJ4Cuy/jwdR n5zTBUSCMB3UYvCXspeVnTAOrd+/AU5ZXM2HoEkCkCIC8XMmitROavai1sBf1fJLuXhuhd t1NrL3R+h+6xszbytSZjfg7ZLHPhCkgnjFDih0gN8ns92cB48eN/zxN/smR1RArXr615k+ BVJwE4FJX+y8gxAi/LxZebGr1epjcHnqIXVl7B3V1WPthRYAh2nzMTP9ya0VIg== 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=1770737260; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=xMpwIH/wpLgqFTHfzxM2WLrv9LVXqwBCHb9KeyqI/yc=; b=xqvCivH9XF3xG7UNq6bNaMmwfWOKp8frfdX6PhnFMSMsE7LIOgGhIzULiI36ct+HoUr4Pp sUt+6yBt/MZMPEq0SPaxX0xLXOfQIYf4JRdY7I364QOepw9fxQH4kOW+0Ygs2RIl/GNc2T wOh8MK9PYycMrpLi0/y3BaGqwCck+Cz2R9V+b4Z33ZUm8ifdq5AHSyCTZR5HEG1SCetnny Zrf3IFOxjgDweqd2QGZSWBI2oUn43Ywl2LY+fWVaOJiclSbcjriBle9V8lJ6OAQVzauhcO stQIXk/ivb4+CfH4vPF4IVzPfUXFVltM5N09FByUkYnQAq9VyHaSxoGslYj/QA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9QRc1zFJz1NTm for ; Tue, 10 Feb 2026 15:27:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 43cd7 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 15:27:40 +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: 5fdcdf4a7ed5 - stable/15 - diff: Don't compare a file or directory to itself 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: 5fdcdf4a7ed53bb1e49cd627a0ebeaf3751a7f0b Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 15:27:40 +0000 Message-Id: <698b4e6c.43cd7.7013c43e@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=5fdcdf4a7ed53bb1e49cd627a0ebeaf3751a7f0b commit 5fdcdf4a7ed53bb1e49cd627a0ebeaf3751a7f0b Author: Dag-Erling Smørgrav AuthorDate: 2026-02-05 14:39:57 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-10 14:24:08 +0000 diff: Don't compare a file or directory to itself While here, stop abusing struct dirent for something we don't even need to store. PR: 254455 MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: thj, kevans Differential Revision: https://reviews.freebsd.org/D55113 (cherry picked from commit 590126789c841d80655869bc075c8980c173dd1c) diff: Fix build rc must be defined first. Fixes: 590126789c84 MFC after: 1 week X-MFC with: 590126789c84 (cherry picked from commit ee44ab936e84bacaa49847d36aabdf280f9fecce) --- usr.bin/diff/diffdir.c | 16 ++++++++-------- usr.bin/diff/diffreg.c | 3 +++ usr.bin/diff/tests/diff_test.sh | 19 +++++++++++++++++++ 3 files changed, 30 insertions(+), 8 deletions(-) diff --git a/usr.bin/diff/diffdir.c b/usr.bin/diff/diffdir.c index a55a2bec70ee..0e9beb80e6a1 100644 --- a/usr.bin/diff/diffdir.c +++ b/usr.bin/diff/diffdir.c @@ -41,8 +41,6 @@ static void diffit(struct dirent *, char *, size_t, struct dirent *, char *, size_t, int); static void print_only(const char *, size_t, const char *); -#define d_status d_type /* we need to store status for -l */ - struct inode { dev_t dev; ino_t ino; @@ -237,6 +235,8 @@ static void diffit(struct dirent *dp, char *path1, size_t plen1, struct dirent *dp2, char *path2, size_t plen2, int flags) { + int rc; + flags |= D_HEADER; strlcpy(path1 + plen1, dp->d_name, PATH_MAX - plen1); @@ -258,7 +258,6 @@ diffit(struct dirent *dp, char *path1, size_t plen1, struct dirent *dp2, flags |= D_EMPTY1; memset(&stb1, 0, sizeof(stb1)); } - if (lstat(path2, &stb2) != 0) { if (!Nflag || errno != ENOENT) { warn("%s", path2); @@ -315,7 +314,6 @@ diffit(struct dirent *dp, char *path1, size_t plen1, struct dirent *dp2, flags |= D_EMPTY1; memset(&stb1, 0, sizeof(stb1)); } - if (stat(path2, &stb2) != 0) { if (!Nflag || errno != ENOENT) { warn("%s", path2); @@ -328,6 +326,8 @@ diffit(struct dirent *dp, char *path1, size_t plen1, struct dirent *dp2, if (stb1.st_mode == 0) stb1.st_mode = stb2.st_mode; } + if (stb1.st_dev == stb2.st_dev && stb1.st_ino == stb2.st_ino) + return; if (S_ISDIR(stb1.st_mode) && S_ISDIR(stb2.st_mode)) { if (rflag) diffdir(path1, path2, flags); @@ -337,12 +337,12 @@ diffit(struct dirent *dp, char *path1, size_t plen1, struct dirent *dp2, return; } if (!S_ISREG(stb1.st_mode) && !S_ISDIR(stb1.st_mode)) - dp->d_status = D_SKIPPED1; + rc = D_SKIPPED1; else if (!S_ISREG(stb2.st_mode) && !S_ISDIR(stb2.st_mode)) - dp->d_status = D_SKIPPED2; + rc = D_SKIPPED2; else - dp->d_status = diffreg(path1, path2, flags, 0); - print_status(dp->d_status, path1, path2, ""); + rc = diffreg(path1, path2, flags, 0); + print_status(rc, path1, path2, ""); } /* diff --git a/usr.bin/diff/diffreg.c b/usr.bin/diff/diffreg.c index 91ae5ee6591a..95c724817ede 100644 --- a/usr.bin/diff/diffreg.c +++ b/usr.bin/diff/diffreg.c @@ -372,6 +372,9 @@ diffreg_stone(char *file1, char *file2, int flags, int capsicum) goto closem; } + if (stb1.st_dev == stb2.st_dev && stb1.st_ino == stb2.st_ino) + goto closem; + if (lflag) pr = start_pr(file1, file2); diff --git a/usr.bin/diff/tests/diff_test.sh b/usr.bin/diff/tests/diff_test.sh index a3f76602cf37..0c8147c7ed18 100755 --- a/usr.bin/diff/tests/diff_test.sh +++ b/usr.bin/diff/tests/diff_test.sh @@ -432,6 +432,24 @@ prleak_body() atf_check diff -Astone -rul a b } +same_head() +{ + atf_set "descr" "Don't diff a file or directory with itself" +} +same_body() +{ + local n=256 + mkdir a + for hi in $(jot -w%02x $n 0) ; do + mkdir a/$hi + for lo in $(jot -w%02x $n 0) ; do + echo "$hi$lo" >a/$hi/$lo + done + done + ln -s a b + atf_check timeout 1s diff -rqs a b +} + atf_init_test_cases() { atf_add_test_case simple @@ -462,4 +480,5 @@ atf_init_test_cases() atf_add_test_case bigc atf_add_test_case bigu atf_add_test_case prleak + atf_add_test_case same } From nobody Tue Feb 10 15:27: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 4f9QRf13p8z6RVXc for ; Tue, 10 Feb 2026 15:27: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 4f9QRd3RSnz46Tf for ; Tue, 10 Feb 2026 15:27:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770737261; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fxLjnjA0h6wRO9ybepe3PTjg7FRsF0MM+kLph5csigo=; b=F8i1YWqMoASo6MjD6vLyYILa/G6T+ENbfmtTAOrBv2Ypw5xCsU5PJuFK3rKjwVUkW7map9 F9oKj8itpMqVKdpyWgYY+YbV/Ppn2Vozm1SBokndlQuO1rmfQZ2L7FY346/JH7+wmtCSs/ rUuj5uIvJj8+Xu7YMt6aCDT1HH600rD6mRq4V4h5zXUxZXWjilejPmVhy5+aBWJaTWBaQr RAeKXHBt1C1ie7UUwBiZetysR6TD8hHdk6VwHwmNuGX/PnVWeNPncb5Zz2Vi41gkGTNhs1 XluTmAFk6NY/a52QRKRJ5vGPofzNVu+ibybjqJptJQYcfJopnVoNVLuq/L8OaA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770737261; a=rsa-sha256; cv=none; b=o0wPFfdevVzLsUhr8MQu/b+BBjhvyTk5CCfxhxGe2I3dNHzsRoqBSnmq0ImgQKkdcFLPSR sKNZVTfGNk7r/N/5e0/TQ6U21S14PdiA5mkU/CGM4K2eqoxcn3NTMxudfqPwxUHQbjBQZT 0zDGOc1HlX3FYNqLVdOF7Q2Xe6BN2hEj1tOJTKq7jOnVg4elNXWVTei9jbsNauAkKQIx02 50/dg5ePpNkLnELAxNaPwxIPHgS6gP36RNMLEB5lVHeC9f0a/eD2dIig50BeoKxLf8yAao e1e3bNPfe15+OPV3v7izPCtrayC+J2+qAXBIdoloySmArYxt6URKVEdbZREfnw== 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=1770737261; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fxLjnjA0h6wRO9ybepe3PTjg7FRsF0MM+kLph5csigo=; b=xBPIWuU6qJu6NlKKaXIoEc4Ioobxp16w8brlvLaK0rwc/BY4HvYbX+U9ctijvG2KniLkGe JK0m/K9LcO4pDh/mGriehB5KJBxBFvmL+Wuzo4sOpuwR97ucspghCmS+WPDp1TdyUywAA5 aOJ6fWidjK99lpc9iqYfhUM/7LKaLBB9cbPmvdNCg9aXoc9x0EvpPnVw5N3V2S+afcs0vQ 6tcpATLhywFfe8c9g4klb43zJ4jEyhAtTtRYmdujPbyl4DW4N67ng5P5sN/wGqf/RuSEyv XYnw5F3lYb0b4I9zaPrRsz1Kd6D6BFfDMpe8a/dcnF8lx8mn7LFMM6IDVpN8uw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9QRd2bYrz1MXZ for ; Tue, 10 Feb 2026 15:27:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 4627a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 15:27:41 +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: 2a54bfa0cade - stable/15 - diff: Correctly declare 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: 2a54bfa0cade870b18212899731a373f404287e1 Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 15:27:41 +0000 Message-Id: <698b4e6d.4627a.2ebfa5ca@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=2a54bfa0cade870b18212899731a373f404287e1 commit 2a54bfa0cade870b18212899731a373f404287e1 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-05 16:21:22 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-10 14:24:09 +0000 diff: Correctly declare tests Sponsored by: Klara, Inc. Fixes: 5fc739eb5949 ("diff: Fix integer overflows in Stone algorithm") Fixes: 270492602b9b ("diff: Add test case for pagination resource leak") Fixes: 590126789c84 ("diff: Don't compare a file or directory to itself") (cherry picked from commit 157d6664aeb815db3b758bd3038fd1512a0f4e2c) --- usr.bin/diff/tests/diff_test.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/usr.bin/diff/tests/diff_test.sh b/usr.bin/diff/tests/diff_test.sh index 0c8147c7ed18..6ca19a8f20cb 100755 --- a/usr.bin/diff/tests/diff_test.sh +++ b/usr.bin/diff/tests/diff_test.sh @@ -24,7 +24,10 @@ atf_test_case functionname atf_test_case noderef atf_test_case ignorecase atf_test_case dirloop -atf_test_case verylong +atf_test_case bigc +atf_test_case bigu +atf_test_case prleak +atf_test_case same simple_body() { From nobody Tue Feb 10 15:27: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 4f9QRg1X9Fz6RVbZ for ; Tue, 10 Feb 2026 15:27:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9QRf44Ylz46RV for ; Tue, 10 Feb 2026 15:27:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770737262; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QlXvD8wEcYksspzdJa9SdKHc66Lf5n6uKFDqN4/MAkU=; b=m7uNgUaK0IzijmSjm/4UXESznxZL5tjs1irSXqXjMr9GTkxLQMJiotjIWvl6rugirU9SVG YZqEEjpeQuDCEpF+GseUxo5Boa86WcUtFybSXyyLRNwrojy9LSVubEh89DLtLaa//GLrbr qUIsTgA/976Hnxvz/QH36LWpxn5aaJoI7XgFJ2MFdx4WdQFcpy0DCIBPm/NfCepOz/TjVa DSpPBHMks7ZzOUDxCfGcWNDHxYdlG1/c9mXDHMd9s8xge5z7THZ+qjJagmZPvaKHJLURnI fuuiqlohHlaASMn2YcniLg2LnaHczre42Pn8ows8Vz+Mh+MFrXlAWCM3N0HS9Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770737262; a=rsa-sha256; cv=none; b=YxTip3/osxF1ttiKhw3tr0XpWAwBrew9+RogJMJGnpwf1l3d0JiXo23HFqOe7CslBsDJ1y SrGuhzfV1IueHYFCIUdda1LXeQ0TsYKOcqIo9CiVyUdtWLhhUEP9IGL0w22ZyXwciRJ3gW ZygHzgIIYJJHw0oKaGqREqyrmqLQK5/4B/jUzu42qAb+iaIByOLhRNKIQGtU7feP2Fo7sC hgrMRScn4Jy9uSUOM9oD8ZhZu6s3IxX6JdNKVEZtdP9Mf3hEZew4NbScTKZSxjvBkNUNbS B1Hj1gCJDnDzcuUcrHcVFijfAvDn2H31W04fMJokXi6tdHKmw0NLs7myKGtiEw== 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=1770737262; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=QlXvD8wEcYksspzdJa9SdKHc66Lf5n6uKFDqN4/MAkU=; b=ce9+JIixrQKF4jYfLdCk0WcF8u5s/oSJMKGh+y0kmHXXGw3B4Tb46I2mvlpXS2gSTmFq7c nb8kHg8GAVlXrIj62XWmnP+TfmjkWdqIMbK/UQtae+Qyan8WFbqtaRtsR8YwRZkGausVe4 6evM+wxZaTjF6/psSJ1h0L20mqKmLaknI1z+AzVh0H9TG+fB9lFQDXYj6ZYIiRBWdbNQx7 R5YQwnSlZ31vIFgzAOCRrjX62UOKEBjC/KNaCbjoCy1uRJdCDTogPb25UcLWpysZ8yzyV2 9zvIyu3hjSls82plr2dLjKmpkepqNZ7iOh2ma6s9gG0hwJNk/5PeNeBPJklvMA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9QRf3d80z1MnD for ; Tue, 10 Feb 2026 15:27:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 44ea9 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 15:27:42 +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: cbd160023586 - stable/15 - diff: Report I/O errors in Stone algorithm 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: cbd16002358677d06e8e43b23ed202da2b3c930c Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 15:27:42 +0000 Message-Id: <698b4e6e.44ea9.2f658028@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=cbd16002358677d06e8e43b23ed202da2b3c930c commit cbd16002358677d06e8e43b23ed202da2b3c930c Author: Dag-Erling Smørgrav AuthorDate: 2026-02-05 17:41:56 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-10 14:24:09 +0000 diff: Report I/O errors in Stone algorithm In the legacy Stone algorithm, we do a first pass over the files to check if they're identical before we start diffing them. That code would correctly set the exit status if an I/O error was encountered, but would not emit an error message. Do so. PR: 292198 MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: thj Differential Revision: https://reviews.freebsd.org/D55125 (cherry picked from commit f8c12e6e3874cdd353fb16785da6f4e7eb134cd9) --- usr.bin/diff/diffreg.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/usr.bin/diff/diffreg.c b/usr.bin/diff/diffreg.c index 95c724817ede..8dcf55a7190b 100644 --- a/usr.bin/diff/diffreg.c +++ b/usr.bin/diff/diffreg.c @@ -406,6 +406,10 @@ diffreg_stone(char *file1, char *file2, int flags, int capsicum) break; default: /* error */ + if (ferror(f1)) + warn("%s", file1); + if (ferror(f2)) + warn("%s", file2); rval = D_ERROR; status |= 2; goto closem; @@ -499,9 +503,9 @@ files_differ(FILE *f1, FILE *f2, int flags) return (0); for (;;) { - i = fread(buf1, 1, sizeof(buf1), f1); - j = fread(buf2, 1, sizeof(buf2), f2); - if ((!i && ferror(f1)) || (!j && ferror(f2))) + if ((i = fread(buf1, 1, sizeof(buf1), f1)) == 0 && ferror(f1)) + return (-1); + if ((j = fread(buf2, 1, sizeof(buf2), f2)) == 0 && ferror(f2)) return (-1); if (i != j) return (1); From nobody Tue Feb 10 15:27: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 4f9QRh43drz6RVmb for ; Tue, 10 Feb 2026 15:27: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 4f9QRg4rzMz46hy for ; Tue, 10 Feb 2026 15:27:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770737263; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NHpcw48xs58XsxsPl/p8GernaOH+AF0TSeS8LwMpirI=; b=vWquEYNFQdurBqs2/YntZwPdsM3i1lewKwc3RsTiR/nQTqtmWu4ut2vpzjjNFLmiyO6riA IzGACw4NX0NFVN1pS9ZkSZmkOebBHk3V1pBZAqhas89jPTzwzrMQV5huIYkqn0rLqal4C6 W/G63eofG/+iUPg3Yq75RGuT1QxUUTYG3sXw3+WW7cfFoPGuXFQ0f1c18S7qLqif5MCzKF FNdW8mUq6OzOPqUq++lZJ9ooFjZaUXNTMyNOqLKGKQVMGXc5QLdkrq2AQZE4ijYMqsfekP MRsSYprvo6VWnHoTGSQ+6Cy0u6O0LOT2Ow9Tq+8No+8XXGV/3jLjJXjKkDTySA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770737263; a=rsa-sha256; cv=none; b=gpf2I/Jb5U84hxjh+W+Q5FZ2LQ9kzYeRbLyWeQV+qNG3hm8viwkOt+PC3A8226vpCjWWhc V+BfSzCVK/5Gk6jgS8JszPCnwk7Zbu5t/z+0WR0+O5dSupW+1qnonIiyReLFe9lYHMzMpN YvbUD03AIj6S1b1vDNJ0ZT4SjgsIcjsNFr11jU2ZbTW/IYAuiyageD5EEpikmezbmr7oBD Ibn71NYxalUj9W7v2peRflwVDEaGbUtzIgUkkoRhiRHAPQhApnugrcN0Yqan7kuXctiRbH QgWvwiUSCwefyTV18uxqOdGjl/nCyearsYgV1O4Zulh3v97m9TIcOuf0GzXFww== 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=1770737263; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NHpcw48xs58XsxsPl/p8GernaOH+AF0TSeS8LwMpirI=; b=YE0cc10BnpWY7t4824o0BhtN/d/qq26MvgcOFL1Oc237e5FV0vqr32CHUWONnbXlBgG+lF aGlc/SBL638vzHPcyKZs4FHkyw8NAx+rsMaWM4c6zop+26r+RnhQ7ceab2cUUKlxNrKSCe nklNKU15uEAvEDk9aoWbSNx5NhoQOe5YkBxytWMo9xVotgTOgJFcwI59FlXV2QmJ3whBhS gl+UrFwIGqcRR/qO7CbykurTAb3QEsgRUiscWm3AwSP9C3LZ/BH0uNk7fylN5YynfbBIo+ rye2YyimGyCe1JBspxYNq2O+Or9w7JIMZ/Dt9PjFjx+EY/Ct1+hAvyL41jKhzA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9QRg4MBpz1NTp for ; Tue, 10 Feb 2026 15:27:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 44ead by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 15:27:43 +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: c92f6ee0b4f1 - stable/15 - diff: Bump version number 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: c92f6ee0b4f19c9a4d7706aeeab06bc53361e6f5 Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 15:27:43 +0000 Message-Id: <698b4e6f.44ead.431c0fe0@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=c92f6ee0b4f19c9a4d7706aeeab06bc53361e6f5 commit c92f6ee0b4f19c9a4d7706aeeab06bc53361e6f5 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-06 00:13:27 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-10 14:24:09 +0000 diff: Bump version number MFC after: 1 week Sponsored by: Klara, Inc. (cherry picked from commit 40134060f6583486ad8ab303140fa73960d3de3d) --- usr.bin/diff/diff.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.bin/diff/diff.c b/usr.bin/diff/diff.c index 1aba09f7a5f7..9bf3f2ad79eb 100644 --- a/usr.bin/diff/diff.c +++ b/usr.bin/diff/diff.c @@ -35,7 +35,7 @@ #include "diff.h" #include "xmalloc.h" -static const char diff_version[] = "FreeBSD diff 20240307"; +static const char diff_version[] = "FreeBSD diff 20260206"; bool lflag, Nflag, Pflag, rflag, sflag, Tflag, cflag; bool ignore_file_case, suppress_common, color, noderef; static bool help = false; From nobody Tue Feb 10 15:27:50 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 4f9QRq017lz6RVbl for ; Tue, 10 Feb 2026 15:27:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9QRp3HGqz46gG for ; Tue, 10 Feb 2026 15:27:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770737270; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ejLzCSOUE1/QY1m36092uoQXiP41WuuVyg/rJL4lAIk=; b=m+PPw9NhmN0TXRT/05FC2+1Qq10uazBIRZqM8H0QG7KhaFkos2PkI8XBDpi7usNXObgwSe YWAg2vhzzLvXstVeMof8iv99C/frwH10ILblOCXpILZErMm/7xZZufPmSG/6bkf0Ie4WWF 1oYbDY8wnTIdaKDJI7VYYOs4xeHBbKoP86PxnjTEWsCOLkWYlsfZPvcS0VyYAy1lA0UoOh IJvGQFmoO7WPmWbLEUnM9A7JsP3ibhnP3PTkQ9C8RS0vg9RiGIoH5LMyjF6KhPEB6+SAYr zgMmmU4fSLtSz1lvu0f+AfUDnct42A9NTxXL3TmJjyjE7ELqEy84J2aZmYhHDQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770737270; a=rsa-sha256; cv=none; b=eKSMpTSXOdYfhvHuQuJXgC0GeFs2eIlxmiiLKt+/9ckKCxKssBbSfwdb2rZwVTs17zJUeb TDGYI7ip0Ty+H6oqWmlfjLrFIWojEeEatRqdv7i4FL2k0lL25tRVV+L5Nvh/n/qHNWjEaR Yo4la7+skaAFbihFqm76mWis4JK89vAcupstFIl+GCKgGHgfaCsFpELm7nhGWhX7OFPw0x iO1ZmnP9mrlv54ZHTVNonz9IULlJEab6ByoD1X/rXNV+unsPDleZ7zdSd5T/UErlfL93rS Yk42TBKy2tCqH00Q5mIJY37xLJyeHBo9xzCq/yWx8AeJm3W7Murl/UATHpQ5Ow== 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=1770737270; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ejLzCSOUE1/QY1m36092uoQXiP41WuuVyg/rJL4lAIk=; b=NwvQL10RloWEtJlaPQ0TBUV+OO1VIFirGS4fwP4nbGfSnS3FFyuGtswJmCCBIBhJl8LDGK uZuUifuRumGI0c7pb0S2IUGtB4V4w1FEBdDbWq/maE6NT9H8XlJhOA6Bfbvc0qq9+/6/Yk yhLhNB4JoMAXxa+c0rn1oJ7LXD+S3r4u+ef9WJMC7PLQ6mGxnNVK1bmLzce40BsL0TvKK/ aHziyHBcO8j0Ih7Pdhgn9cCdvOIYFxVRzX6M4d+/MJWCHvgSo52cW2wV7DblnArNtfXGwk 1eIuDMDMBFpg9Ri9RZZJxGcFMeIsoZ5qz67nG90auqdrvJs8VeAz1oKAp975xg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9QRp13HPz1MnH for ; Tue, 10 Feb 2026 15:27:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 44eb3 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 15:27:50 +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: 237fd8dd9697 - stable/14 - diff: Fix integer overflows in Stone algorithm 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: 237fd8dd96979412dd65ce95032aa9957463d069 Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 15:27:50 +0000 Message-Id: <698b4e76.44eb3.2ff82200@gitrepo.freebsd.org> The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=237fd8dd96979412dd65ce95032aa9957463d069 commit 237fd8dd96979412dd65ce95032aa9957463d069 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-05 14:39:43 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-10 14:24:19 +0000 diff: Fix integer overflows in Stone algorithm Fix integer overflows that may occur when the context window is very large and add tests to exercise those conditions. PR: 267032 MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: thj, kevans Differential Revision: https://reviews.freebsd.org/D55110 (cherry picked from commit 5fc739eb5949620da911db2f87ca8faedc549d3a) --- usr.bin/diff/diffreg.c | 32 +++++++++++++++++++++----------- usr.bin/diff/tests/diff_test.sh | 29 +++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 11 deletions(-) diff --git a/usr.bin/diff/diffreg.c b/usr.bin/diff/diffreg.c index 2635c95daf6e..d4d7d6e1c9d7 100644 --- a/usr.bin/diff/diffreg.c +++ b/usr.bin/diff/diffreg.c @@ -79,6 +79,7 @@ #include #include #include +#include #include #include #include @@ -1031,7 +1032,7 @@ change(char *file1, FILE *f1, char *file2, FILE *f2, int a, int b, int c, int d, { static size_t max_context = 64; long curpos; - int i, nc; + int dist, i, nc; const char *walk; bool skip_blanks, ignore; @@ -1095,8 +1096,9 @@ proceed: */ print_header(file1, file2); anychange = 1; - } else if (a > context_vec_ptr->b + (2 * diff_context) + 1 && - c > context_vec_ptr->d + (2 * diff_context) + 1) { + } else if (!ckd_add(&dist, diff_context, diff_context) && + a - context_vec_ptr->b - 1 > dist && + c - context_vec_ptr->d - 1 > dist) { /* * If this change is more than 'diff_context' lines from the * previous change, dump the record and reset it. @@ -1476,10 +1478,14 @@ dump_context_vec(FILE *f1, FILE *f2, int flags) return; b = d = 0; /* gcc */ - lowa = MAX(1, cvp->a - diff_context); - upb = MIN((int)len[0], context_vec_ptr->b + diff_context); - lowc = MAX(1, cvp->c - diff_context); - upd = MIN((int)len[1], context_vec_ptr->d + diff_context); + if (ckd_sub(&lowa, cvp->a, diff_context) || lowa < 1) + lowa = 1; + if (ckd_add(&upb, context_vec_ptr->b, diff_context) || upb > (int)len[0]) + upb = (int)len[0]; + if (ckd_sub(&lowc, cvp->c, diff_context) || lowc < 1) + lowc = 1; + if (ckd_add(&upd, context_vec_ptr->d, diff_context) || upd > (int)len[1]) + upd = (int)len[1]; printf("***************"); if (flags & (D_PROTOTYPE | D_MATCHLAST)) { @@ -1579,10 +1585,14 @@ dump_unified_vec(FILE *f1, FILE *f2, int flags) return; b = d = 0; /* gcc */ - lowa = MAX(1, cvp->a - diff_context); - upb = MIN((int)len[0], context_vec_ptr->b + diff_context); - lowc = MAX(1, cvp->c - diff_context); - upd = MIN((int)len[1], context_vec_ptr->d + diff_context); + if (ckd_sub(&lowa, cvp->a, diff_context) || lowa < 1) + lowa = 1; + if (ckd_add(&upb, context_vec_ptr->b, diff_context) || upb > (int)len[0]) + upb = (int)len[0]; + if (ckd_sub(&lowc, cvp->c, diff_context) || lowc < 1) + lowc = 1; + if (ckd_add(&upd, context_vec_ptr->d, diff_context) || upd > (int)len[1]) + upd = (int)len[1]; printf("@@ -"); uni_range(lowa, upb); diff --git a/usr.bin/diff/tests/diff_test.sh b/usr.bin/diff/tests/diff_test.sh index 2efb2a844078..453d82a4a3f3 100755 --- a/usr.bin/diff/tests/diff_test.sh +++ b/usr.bin/diff/tests/diff_test.sh @@ -24,6 +24,7 @@ atf_test_case functionname atf_test_case noderef atf_test_case ignorecase atf_test_case dirloop +atf_test_case verylong simple_body() { @@ -376,6 +377,32 @@ dirloop_body() diff -r a b } +bigc_head() +{ + atf_set "descr" "Context diff with very large context" +} +bigc_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 +} + +bigu_head() +{ + atf_set "descr" "Unified diff with very large context" +} +bigu_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_init_test_cases() { atf_add_test_case simple @@ -403,4 +430,6 @@ 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 } From nobody Tue Feb 10 15:27: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 4f9QRq4hygz6RVbs for ; Tue, 10 Feb 2026 15:27: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9QRq225mz46f5 for ; Tue, 10 Feb 2026 15:27:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770737271; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HHt8grcBsCRn0TuA7dV3Pi3SF/EmwjqAOQRhBpDUzCM=; b=GVsbDGotGo5NTeaXaZr+3An2kHb9Vtt4uPb2r0Cr37OLXwQYtGsUxio5PxNeaJ/D0c2XlE vXwpg7VH/qwU8z7zLXTWv5wBTOE4ZKy6Hxc7SqRZ08fBJ4dSzTiFlzgscgi2xWH0JM9ARN IqyV5Uf+C/+l/p2jUDVavc71U4FtVeFnwqGek4rmflSCMa4b8WCpPR29x1IMD09d33hK8i smcQOMeCXV5abMR+Fk2puiUHVFao5IUwi0NO0+2uMi5W2CzxRfDen7TVl6GV+K9kYSi5y3 WpvXrJeOee5RYgk67S66wFmGZRr1DdVXcHg9mkALXXl5BYVIYPBZz9F2EXGgFQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770737271; a=rsa-sha256; cv=none; b=VKDPsSG1CNyANoYaQJpnSoBVqs8Kgu7Wqhiup2ESI9pYp7l2jlh4xh0koUVM74sNADkvxP iQTRWZ1PgQnS4U2r6cVLYVfT+9tBi5LHUYDJGmKobQprfGhfJmzNn5ol/SBVGA6f8ur29Z Q54YzgeVAFPjFbl9pMt42/CYNXfkqi/8Wmkolb4ELOEnlwjyoiBX8Mi5JeP1qGrIBh/z7c aqOU7lVxMXRJjbQUYXmzfjBzvq2uVrSUARFLF4Uv7Oz0FsKqknY1xAoLxUZGGAAUV0Xt5v oQppUDxQMdWyLP8A8gAQt7SJ7KJDEWC3qXX+qfqjnRS2FpgdazXE1bBG/J7UfQ== 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=1770737271; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=HHt8grcBsCRn0TuA7dV3Pi3SF/EmwjqAOQRhBpDUzCM=; b=p47AStKwppDHr/up9bCZ7C4DXrnodFL+1i6oWkeb/PAnsQPnbOjjZctgUYdCjrp8dCiIm+ hXS6HhKMnYvaRNfC9kWwK7DJkmNI9c1yh9TtICaaT7aaM2RZfWCiPZJKOy5PykhfbIIYo+ 1507IN1QRAtNhg2c7bkWhEg331DvY16mlZVnwYDzwrmHxZv882I6yDQdviWBeo/kCye66Y PxIu2l5htif8Qz9ITTiyKab/XMjXqkCzd3KULJX5SzsEKJeZSY9wkSpvT6my3PdEAothTL okR9l/TJcWCwtibBDzo2iV91/VLSqre33iCXVhiBXz4gh5YT3Ibm74l0NU5uUQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9QRq1VJRz1NRR for ; Tue, 10 Feb 2026 15:27:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 45e66 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 15:27:51 +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: 51c2384ce049 - stable/14 - diff: Add test case for pagination resource leak 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: 51c2384ce049ec92e07901cf8a84c171e5d72104 Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 15:27:51 +0000 Message-Id: <698b4e77.45e66.2d1849a4@gitrepo.freebsd.org> The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=51c2384ce049ec92e07901cf8a84c171e5d72104 commit 51c2384ce049ec92e07901cf8a84c171e5d72104 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-05 14:39:47 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-10 14:24:19 +0000 diff: Add test case for pagination resource leak The pagination code leaks either processes or descriptors or both, depending on the exact version of the code you have. Add a test case which exercises this leak to facilitate fixing it. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: thj, kevans Differential Revision: https://reviews.freebsd.org/D55111 (cherry picked from commit 270492602b9bd8b8fce4f021f055804978bf3f23) --- usr.bin/diff/tests/diff_test.sh | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/usr.bin/diff/tests/diff_test.sh b/usr.bin/diff/tests/diff_test.sh index 453d82a4a3f3..2a07535d3d86 100755 --- a/usr.bin/diff/tests/diff_test.sh +++ b/usr.bin/diff/tests/diff_test.sh @@ -403,6 +403,27 @@ bigu_body() diff -U$(((1<<31)-2)) a b } +prleak_head() +{ + atf_set "descr" "Verify that pagination does not leak resources" +} +prleak_body() +{ + local n=32 + mkdir a b + for hi in $(jot -w%02x $n 0) ; do + mkdir a/$hi b/$hi + for lo in $(jot -w%02x $n 0) ; do + echo "$hi$lo" >a/$hi/$lo + echo "$hi$lo" >b/$hi/$lo + done + done + ulimit -n 1000 + ulimit -u 1000 + atf_check diff -rul a b + atf_check diff -Astone -rul a b +} + atf_init_test_cases() { atf_add_test_case simple @@ -432,4 +453,5 @@ atf_init_test_cases() atf_add_test_case dirloop atf_add_test_case bigc atf_add_test_case bigu + atf_add_test_case prleak } From nobody Tue Feb 10 15:27: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 4f9QRr6Dh7z6RVSY for ; Tue, 10 Feb 2026 15:27: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9QRr3VL4z46rt for ; Tue, 10 Feb 2026 15:27:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770737272; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nq/r2fb2VFJ2xMFRNc7Fg2dR+QhkSy+zZwZ+3KUV6A0=; b=SajddM62N7be/0FgreUBDUXGOpHAsiwGwjWon8PPE41/A+hz8TTwZ+Udo/3LcFvIQLAK5i PXy9aqN6r6ecpOhGw+pa/W1kx9yThChI+GO6RstnAEwQ7MkcnYVLvf4wg6qt7CytWFYGZO kPk3PlOwkE5FydXVlh2a1EgK4GxWvr5yV8Lm/H83lIUHsSI0gbfDZAQ+wXV7Sn7CozWCAz XTCsZ3IjCLOKFlfl4ad24ysBWAZwuxMqRzVbu/EBPGVO0QgZSgkruECcbV9YZqqDJQLydj eFW3b94vLs4FGHafmxbl3QDZ2XCiXk2W3sSl6gBwx7edjWajvqZrs8v3FgoqCQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770737272; a=rsa-sha256; cv=none; b=BZa+lQUc2fRFmpWLzcXBw1j5oF9vhjM5AKqBuahGrLVuJLw5UAqqJE30RfVGBQUHASJqqn nfQJoiPwnD8aHwKg+ec6W/k9dyFtQRWT/eQ/54WVttE9kUTye3nip2vJaPe/RMIb3/22ch +GtnKlBmN3WyzsdzlyIl2YO5GIcUCMFSY8mrJqfMz1F94g5v7arMb/8bFr1OZIhvQ+5CAP X3kpDhKy7pl+MWNw4KI7lUaEPbE7CT7HKzuzO3EYKT2t/MdpabgDBJ+fM9NJZzCVzz9uvD OjVsq6TELIejBwNK/bpGQ3XcEqI4SG/DjjHhwP6FpqMdnT4uaTx35qNGT0MSHA== 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=1770737272; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nq/r2fb2VFJ2xMFRNc7Fg2dR+QhkSy+zZwZ+3KUV6A0=; b=SrUN3oE4PCwVlmOanKO6Fbygrq9R+9Gm1/cNHPr/sdBQq9wb086rirosFSsFw1HPF8+Y4a c8UyDHgd5b3SvOkjbU2Noi8sV78UC0kqG0iNPIS0AqZzxK5E1d3pwskacmleaVFBGs8D1Y GVgYLd3qLpicMItaDO6kMJXC51UBpIon8OIC1INOTTUnSe6MFgXRelM3x96x/vrHzFMEPO Qat2AP/HJmGrj4sxdZqA1IlbCIXSh77vJcHrTO26tls+jPFFSG4NceaPZLdLEjI5mtezFV vhCIIVldhkp9me3OdVzuqotRxGCITg9ESgvnB+YY0JdF1Sf35EoFgid+xCeJVg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9QRr23Cjz1NF9 for ; Tue, 10 Feb 2026 15:27:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 4614c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 15:27: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: 144455c333dc - stable/14 - diff: Fix pagination leak 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: 144455c333dc0d3db369596038de2e3dd6113b46 Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 15:27:52 +0000 Message-Id: <698b4e78.4614c.104716a2@gitrepo.freebsd.org> The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=144455c333dc0d3db369596038de2e3dd6113b46 commit 144455c333dc0d3db369596038de2e3dd6113b46 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-05 14:39:53 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-10 14:24:19 +0000 diff: Fix pagination leak * Drop an unnecessary variable and rename pidfd to procd. * Rewinding stdout serves no purpose, so stop doing it. * Don't bother freeing memory or setting the global status right before erroring out. * Error out if dup(2) or dup2(2) fail. * In the unlikely case that our pipe is equal to stdout, we need to record that information so we don't close it when cleaning up. * Don't bother closing a descriptor before dup2(2)ing to it. * Don't forget to close the the process descriptor after reaping the child process. PR: 266592 MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: kevans, markj Differential Revision: https://reviews.freebsd.org/D55112 (cherry picked from commit c3904a7de78ca1ca15fcdf4c09f9d4be7f6fe6f5) --- usr.bin/diff/pr.c | 22 ++++++++++------------ usr.bin/diff/pr.h | 1 + usr.bin/diff/tests/diff_test.sh | 1 - 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/usr.bin/diff/pr.c b/usr.bin/diff/pr.c index 5dedf689351c..20869e494d4a 100644 --- a/usr.bin/diff/pr.c +++ b/usr.bin/diff/pr.c @@ -45,7 +45,6 @@ struct pr * start_pr(char *file1, char *file2) { int pfd[2]; - int pr_pd; pid_t pid; char *header; struct pr *pr; @@ -55,13 +54,10 @@ start_pr(char *file1, char *file2) xasprintf(&header, "%s %s %s", diffargs, file1, file2); signal(SIGPIPE, SIG_IGN); fflush(stdout); - rewind(stdout); if (pipe(pfd) == -1) err(2, "pipe"); - switch ((pid = pdfork(&pr_pd, PD_CLOEXEC))) { + switch ((pid = pdfork(&pr->procd, PD_CLOEXEC))) { case -1: - status |= 2; - free(header); err(2, "No more processes"); case 0: /* child */ @@ -73,21 +69,23 @@ start_pr(char *file1, char *file2) execl(_PATH_PR, _PATH_PR, "-h", header, (char *)0); _exit(127); default: - /* parent */ - if (pfd[1] != STDOUT_FILENO) { - pr->ostdout = dup(STDOUT_FILENO); - dup2(pfd[1], STDOUT_FILENO); + if (pfd[1] == STDOUT_FILENO) { + pr->ostdout = STDOUT_FILENO; + } else { + if ((pr->ostdout = dup(STDOUT_FILENO)) < 0 || + dup2(pfd[1], STDOUT_FILENO) < 0) { + err(2, "stdout"); + } close(pfd[1]); } close(pfd[0]); - rewind(stdout); free(header); pr->kq = kqueue(); if (pr->kq == -1) err(2, "kqueue"); pr->e = xmalloc(sizeof(struct kevent)); - EV_SET(pr->e, pr_pd, EVFILT_PROCDESC, EV_ADD, NOTE_EXIT, 0, + EV_SET(pr->e, pr->procd, EVFILT_PROCDESC, EV_ADD, NOTE_EXIT, 0, NULL); if (kevent(pr->kq, pr->e, 1, NULL, 0, NULL) == -1) err(2, "kevent"); @@ -106,7 +104,6 @@ stop_pr(struct pr *pr) fflush(stdout); if (pr->ostdout != STDOUT_FILENO) { - close(STDOUT_FILENO); dup2(pr->ostdout, STDOUT_FILENO); close(pr->ostdout); } @@ -114,6 +111,7 @@ stop_pr(struct pr *pr) err(2, "kevent"); wstatus = pr->e[0].data; close(pr->kq); + close(pr->procd); free(pr); if (WIFEXITED(wstatus) && WEXITSTATUS(wstatus) != 0) errx(2, "pr exited abnormally"); diff --git a/usr.bin/diff/pr.h b/usr.bin/diff/pr.h index 2ff5949f282f..0a1275cfeab5 100644 --- a/usr.bin/diff/pr.h +++ b/usr.bin/diff/pr.h @@ -28,6 +28,7 @@ struct pr { int ostdout; + int procd; int kq; struct kevent *e; }; diff --git a/usr.bin/diff/tests/diff_test.sh b/usr.bin/diff/tests/diff_test.sh index 2a07535d3d86..b499bb709cdd 100755 --- a/usr.bin/diff/tests/diff_test.sh +++ b/usr.bin/diff/tests/diff_test.sh @@ -421,7 +421,6 @@ prleak_body() ulimit -n 1000 ulimit -u 1000 atf_check diff -rul a b - atf_check diff -Astone -rul a b } atf_init_test_cases() From nobody Tue Feb 10 15:27: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 4f9QRt4FJQz6RVmx for ; Tue, 10 Feb 2026 15:27:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9QRs4HmNz46s2 for ; Tue, 10 Feb 2026 15:27:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770737273; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PLz/zJNh6TwWgMADxUm3aqXPK9xjbYafgX+6j7250Yw=; b=g8U6VqPXws9hQpLJDsolfpsMIHW+iz/hZabLj0RHRwuBQPbRDLmhxLekUzfOw2Jq5Al65a VbZZ8zXei52UeSN/tQaYhNz2JvbAZIkSxxgucJBsMPCcsS3I/YqxDxqTat53cmfFWHhKQy g2I2l7Ens6eONtQcEnvTyKrw1jemlEytn8Im25lNp3FcHyAd/CqCde8E0H8gbT7IpRiLby xW+Vy0Rgp2A45QvLKdFmnNlz3IL51URyaR+STfYAJoa6KCBuMpHIGeJ4RjMmZR3pffK9f1 bepIok/8obTViVaLNkRmrwPyIBnYiNdVBk51gHnJXbbiGgX9wtuhmiK8Nz1XfQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770737273; a=rsa-sha256; cv=none; b=plZvIMAOrADJk0bp95XpvfgSjswwlHPFACaK9YE9XOLNNHdsEFPqPY/zZFNYvpkM6gAhMs uOVpoqO6nmShkrmzVg/C6UZErks6QtcWsYmYutYErFthoM4KQsVIPdWuORoamcHPsC+FoB 32o92jcNzbi6GdNmXXSypiFd1T9V12i3H82lX2YHE+h3BaApJ9KKQl2vEsO2bL/FTENosd CKQOXr9kZte6nilFPSuX+TAWTV/z5XkYBk71HWFHppEo3wDagX/OGaKpHQ3u1+n3bFmusN W58hBx39IQluzq67oIAyEuOqgj4DhtgcWWjS5BuujqvemPUCbNasng5IqtrwXA== 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=1770737273; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PLz/zJNh6TwWgMADxUm3aqXPK9xjbYafgX+6j7250Yw=; b=WG7VOIfq/WzCuRAKnu6PfPHmPFleSQ8hO5UfIRsIw+ECnyE8ELtIhXvPoRSOkpPSkTzlme F5+zNWutcTqzazSQeOHJU+PO3vPnsQX1ZNCgyMwFpqON7wfZDNumHBZutf5se2OXH3Ry6o 9H64HpFqWmO6E8YESWcn9LPNnW+m7USqOEWLo+tyYSmiZJMDEDmnc/Vu1tQ3Nr2T1E/jwr E9qyP8f6/a1f1EtLjU59doQepnQvUpGk4P4xtDJIxsLuePNc2u/y14cvMDosyhI1POiuxj b5pp+9Vt90h8Txiouo0ePWFgqWsVICSc0blen0tK87MDtYYXyOD0M9RSEA65+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 4f9QRs2xJGz1N1r for ; Tue, 10 Feb 2026 15:27:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 44e1b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 15:27: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: 7f412c6f88ed - stable/14 - diff: Don't compare a file or directory to itself 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: 7f412c6f88edc3aafb53a83f1743ad49da4679a9 Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 15:27:53 +0000 Message-Id: <698b4e79.44e1b.4f933b3e@gitrepo.freebsd.org> The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=7f412c6f88edc3aafb53a83f1743ad49da4679a9 commit 7f412c6f88edc3aafb53a83f1743ad49da4679a9 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-05 14:39:57 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-10 14:24:19 +0000 diff: Don't compare a file or directory to itself While here, stop abusing struct dirent for something we don't even need to store. PR: 254455 MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: thj, kevans Differential Revision: https://reviews.freebsd.org/D55113 (cherry picked from commit 590126789c841d80655869bc075c8980c173dd1c) diff: Fix build rc must be defined first. Fixes: 590126789c84 MFC after: 1 week X-MFC with: 590126789c84 (cherry picked from commit ee44ab936e84bacaa49847d36aabdf280f9fecce) --- usr.bin/diff/diffdir.c | 16 ++++++++-------- usr.bin/diff/diffreg.c | 3 +++ usr.bin/diff/tests/diff_test.sh | 19 +++++++++++++++++++ 3 files changed, 30 insertions(+), 8 deletions(-) diff --git a/usr.bin/diff/diffdir.c b/usr.bin/diff/diffdir.c index 9ca9b5e1774e..7ea07645d751 100644 --- a/usr.bin/diff/diffdir.c +++ b/usr.bin/diff/diffdir.c @@ -42,8 +42,6 @@ static void diffit(struct dirent *, char *, size_t, struct dirent *, char *, size_t, int); static void print_only(const char *, size_t, const char *); -#define d_status d_type /* we need to store status for -l */ - struct inode { dev_t dev; ino_t ino; @@ -238,6 +236,8 @@ static void diffit(struct dirent *dp, char *path1, size_t plen1, struct dirent *dp2, char *path2, size_t plen2, int flags) { + int rc; + flags |= D_HEADER; strlcpy(path1 + plen1, dp->d_name, PATH_MAX - plen1); @@ -259,7 +259,6 @@ diffit(struct dirent *dp, char *path1, size_t plen1, struct dirent *dp2, flags |= D_EMPTY1; memset(&stb1, 0, sizeof(stb1)); } - if (lstat(path2, &stb2) != 0) { if (!Nflag || errno != ENOENT) { warn("%s", path2); @@ -316,7 +315,6 @@ diffit(struct dirent *dp, char *path1, size_t plen1, struct dirent *dp2, flags |= D_EMPTY1; memset(&stb1, 0, sizeof(stb1)); } - if (stat(path2, &stb2) != 0) { if (!Nflag || errno != ENOENT) { warn("%s", path2); @@ -329,6 +327,8 @@ diffit(struct dirent *dp, char *path1, size_t plen1, struct dirent *dp2, if (stb1.st_mode == 0) stb1.st_mode = stb2.st_mode; } + if (stb1.st_dev == stb2.st_dev && stb1.st_ino == stb2.st_ino) + return; if (S_ISDIR(stb1.st_mode) && S_ISDIR(stb2.st_mode)) { if (rflag) diffdir(path1, path2, flags); @@ -338,12 +338,12 @@ diffit(struct dirent *dp, char *path1, size_t plen1, struct dirent *dp2, return; } if (!S_ISREG(stb1.st_mode) && !S_ISDIR(stb1.st_mode)) - dp->d_status = D_SKIPPED1; + rc = D_SKIPPED1; else if (!S_ISREG(stb2.st_mode) && !S_ISDIR(stb2.st_mode)) - dp->d_status = D_SKIPPED2; + rc = D_SKIPPED2; else - dp->d_status = diffreg(path1, path2, flags, 0); - print_status(dp->d_status, path1, path2, ""); + rc = diffreg(path1, path2, flags, 0); + print_status(rc, path1, path2, ""); } /* diff --git a/usr.bin/diff/diffreg.c b/usr.bin/diff/diffreg.c index d4d7d6e1c9d7..954e0542b576 100644 --- a/usr.bin/diff/diffreg.c +++ b/usr.bin/diff/diffreg.c @@ -347,6 +347,9 @@ diffreg(char *file1, char *file2, int flags, int capsicum) goto closem; } + if (stb1.st_dev == stb2.st_dev && stb1.st_ino == stb2.st_ino) + goto closem; + if (lflag) pr = start_pr(file1, file2); diff --git a/usr.bin/diff/tests/diff_test.sh b/usr.bin/diff/tests/diff_test.sh index b499bb709cdd..d28eeba9604d 100755 --- a/usr.bin/diff/tests/diff_test.sh +++ b/usr.bin/diff/tests/diff_test.sh @@ -423,6 +423,24 @@ prleak_body() atf_check diff -rul a b } +same_head() +{ + atf_set "descr" "Don't diff a file or directory with itself" +} +same_body() +{ + local n=256 + mkdir a + for hi in $(jot -w%02x $n 0) ; do + mkdir a/$hi + for lo in $(jot -w%02x $n 0) ; do + echo "$hi$lo" >a/$hi/$lo + done + done + ln -s a b + atf_check timeout 1s diff -rqs a b +} + atf_init_test_cases() { atf_add_test_case simple @@ -453,4 +471,5 @@ atf_init_test_cases() atf_add_test_case bigc atf_add_test_case bigu atf_add_test_case prleak + atf_add_test_case same } From nobody Tue Feb 10 15:27: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 4f9QRv26XLz6RVXw for ; Tue, 10 Feb 2026 15:27: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9QRt5YY8z46pn for ; Tue, 10 Feb 2026 15:27:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770737274; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uZ5gK2CtCM6/LFQn65ZZI/eWEaJjPeTQ5wW8gmHi9rc=; b=Z1ekjBE2EE0+MBMVxkcRvjYYh161Ruch5SefHrmnTTFNenHuBOrP4hCItB83NZ6oAzBh3t 1YISgpvWA90cSz/RdixqRBw7Gwy89DLejPbdJFRbXRM+F1a8eHUCTu6gXb+z5mgYtNI0Cc 1XlX2GA8kpuUKIGKte/5H14p9aDMBfgHETz4eIZs3KXb2IwQN7yPGSA5e2CyDebqNSXJDg e4t3kBF3EPCk5RCITQKKqR469ekOcb4jUiQYkE3M4QkGZyT1ExLhQelgPAKTxpVQ+iJFmP 4ntgXiYB8brFMbJtNgyqv5DBFEd+l8UPQBPAIpg8D3+9UnujBoAdSnzAbe45Zw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770737274; a=rsa-sha256; cv=none; b=xoeWB4m2BMJJOANkpTGw0oXTpdxxk7oKkgtY5HWoiCJ4tfa5V+17i4bqIKhPl9RXDaq4VJ coPdY4U2UJdp1iiEg2O+ejU500yMDv637lMTYZrE1IN3fPySB9+zpp2HEo+oTApGD1V+os meZPRP9UOYcNXa1oXTKfX47rtbzYCLRQH/NuJu2v5A3pCy4Z7UcUMn9VSccWz+d8U8TK7H 7+DQSNA3+gVuO5e7jr2vWnikmoxh4KIHot6w0SiEfdDDy0XuQYR6mvinR8G8wqLj064jgQ sRIBVSP4lwOijB+7S/8+NMHVSl1qCWbATeQVpwo6Zk/Dh0ReWD0WRb3dSR+fQA== 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=1770737274; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=uZ5gK2CtCM6/LFQn65ZZI/eWEaJjPeTQ5wW8gmHi9rc=; b=a9hc+6+CZ11OuUp6gNlWDE1IHa+sHQIYVmZzsXYI0ITVsHTuKl1r/OEZrlY2nIAYCmebq0 sJkeG5GaWkAkXSpkDwfhhuZRt3mGBjcNxqw6F1lCTIADVFaYqamYudXINEiWy+700FjhNs 6Ce0UdT2/4UT88hLLvbiYunULVLqWdc/rlvFuiksSt48TqMufn2/cSLnqpmpqUPvqX3Qde 2wdwXqkUtx6k8iBC3zQda4y3THJsHWUUOkvqkrQsDA4XZF/VSHDtnsui9UsFWkJT9BnkyD +5JC0KBrCMX9VCicPH3NR7VnnLixLKiG2OjrqNvaKmZT0PG0eG0ZqlPzvfry5g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9QRt43Fkz1MRV for ; Tue, 10 Feb 2026 15:27:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 44e1f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 15:27: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: b8bcf04d6dd3 - stable/14 - diff: Correctly declare 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: b8bcf04d6dd37308834ee258230082ae6875b1f3 Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 15:27:54 +0000 Message-Id: <698b4e7a.44e1f.616fd2fe@gitrepo.freebsd.org> The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=b8bcf04d6dd37308834ee258230082ae6875b1f3 commit b8bcf04d6dd37308834ee258230082ae6875b1f3 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-05 16:21:22 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-10 14:24:19 +0000 diff: Correctly declare tests Sponsored by: Klara, Inc. Fixes: 5fc739eb5949 ("diff: Fix integer overflows in Stone algorithm") Fixes: 270492602b9b ("diff: Add test case for pagination resource leak") Fixes: 590126789c84 ("diff: Don't compare a file or directory to itself") (cherry picked from commit 157d6664aeb815db3b758bd3038fd1512a0f4e2c) --- usr.bin/diff/tests/diff_test.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/usr.bin/diff/tests/diff_test.sh b/usr.bin/diff/tests/diff_test.sh index d28eeba9604d..fb6080ee6916 100755 --- a/usr.bin/diff/tests/diff_test.sh +++ b/usr.bin/diff/tests/diff_test.sh @@ -24,7 +24,10 @@ atf_test_case functionname atf_test_case noderef atf_test_case ignorecase atf_test_case dirloop -atf_test_case verylong +atf_test_case bigc +atf_test_case bigu +atf_test_case prleak +atf_test_case same simple_body() { From nobody Tue Feb 10 15:27: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 4f9QRw5JL9z6RVWV for ; Tue, 10 Feb 2026 15:27: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9QRv65Ppz46sP for ; Tue, 10 Feb 2026 15:27:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770737275; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fJPxSesYYaqeJTcHU4wq4vz9AYEe9oOUZITO42rCYis=; b=uLDIBObRKGsXsLVD5CoC53rAPmAFGYwF7eaXmvKZtGcWhBFs+15uEqpq09sKONPswRKmFH anmg+yUvT5OAa5olL4gHXxc2i658D+ihToPQLfyZClhua9uPOR6BWoIKM4WtBkLwLgfpJC 1EwXuuYBxWBenOWS79s1dCJSkHKXkt2A1pQu2exGpFu2r6WTpTKGh0TeO/HCDN14bb8CTB uQ599pXzBwwWiAEOH4MXy2He8hsVVDHlpWYywCBxMSKviOQaIBQ2rfOTlEonJGrBn9pDsW scgnINVW/laVPjsfKtBwyHJ4SXjQk7fNGWS4+AgpLqdX4EXsS577Lk4rQaBZAg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770737275; a=rsa-sha256; cv=none; b=K5S8Ey+aLQy2khy/CoPaRkygQBiHrXYeOfDQO2YZvym0DwZduFTgFh5OqJ6dQokLAItw85 nV88oyjZs9VU3coBV3avDLEknt6PyMWC9tHBc/AF8K20FZYWDR2TAt1DbvFm3u2a1AG01G O9AvuYIM6xRdf2RfZ07i0cK015UUcaVQKuTBgCUA8uRkEmgLlvoVIYO1QRBkLWHf6VYqnH XGU7ZaYXe4Oc+QU8AHXWDMUxAe3xUfJzO6/Mohp8yzZPPGJv2HYyaRIcljFmnpgpWf11Qo buHFdMi6lfMWE5wtt0vmFfNVjj9tICOlGxWOeRTk6iGsLnAmT+uyYvsSz09BUQ== 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=1770737275; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=fJPxSesYYaqeJTcHU4wq4vz9AYEe9oOUZITO42rCYis=; b=C9+rFd6ABWIY2ZVAoQqWcjJsFEwsRu9GuSk5Fr8n0BKIaYFxc/1VYnlPt76znZxaNFyHro VqsTgTu09glTALEPwI1672IoCeKXhOpQ+iRtdTLpZfOETHihmfEXhw5h878WShfcD8Oi0D WcFupg5fU2rRVK8HPLsB8l6M5iGQlsg/xI9Ved6751O/Ck9kP02FUe3z4qi9puW9vuB/nd 1lo5QtB2s5nOHnBC1VPqLrB/fg141iseSGQDVTNWHmBLQle+YnUqmlj7O4Ob5rb9e51fcT frEEzNZKWJdLZHYrLRyb0KdLIXQBbgHTwvjW+KkmYW4SJQITUt1DI5gsKQtElQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9QRv5QY1z1NTr for ; Tue, 10 Feb 2026 15:27:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 44d40 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 15:27: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: 37ceb8794c22 - stable/14 - diff: Report I/O errors in Stone algorithm 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: 37ceb8794c22d88a41e261d23d347bc7ac08b2c8 Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 15:27:55 +0000 Message-Id: <698b4e7b.44d40.326bdc07@gitrepo.freebsd.org> The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=37ceb8794c22d88a41e261d23d347bc7ac08b2c8 commit 37ceb8794c22d88a41e261d23d347bc7ac08b2c8 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-05 17:41:56 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-10 14:24:20 +0000 diff: Report I/O errors in Stone algorithm In the legacy Stone algorithm, we do a first pass over the files to check if they're identical before we start diffing them. That code would correctly set the exit status if an I/O error was encountered, but would not emit an error message. Do so. PR: 292198 MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: thj Differential Revision: https://reviews.freebsd.org/D55125 (cherry picked from commit f8c12e6e3874cdd353fb16785da6f4e7eb134cd9) --- usr.bin/diff/diffreg.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/usr.bin/diff/diffreg.c b/usr.bin/diff/diffreg.c index 954e0542b576..6ade8bfb8237 100644 --- a/usr.bin/diff/diffreg.c +++ b/usr.bin/diff/diffreg.c @@ -381,6 +381,10 @@ diffreg(char *file1, char *file2, int flags, int capsicum) break; default: /* error */ + if (ferror(f1)) + warn("%s", file1); + if (ferror(f2)) + warn("%s", file2); rval = D_ERROR; status |= 2; goto closem; @@ -474,9 +478,9 @@ files_differ(FILE *f1, FILE *f2, int flags) return (0); for (;;) { - i = fread(buf1, 1, sizeof(buf1), f1); - j = fread(buf2, 1, sizeof(buf2), f2); - if ((!i && ferror(f1)) || (!j && ferror(f2))) + if ((i = fread(buf1, 1, sizeof(buf1), f1)) == 0 && ferror(f1)) + return (-1); + if ((j = fread(buf2, 1, sizeof(buf2), f2)) == 0 && ferror(f2)) return (-1); if (i != j) return (1); From nobody Tue Feb 10 15:28:12 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 4f9QSF1Nf1z6RVWk for ; Tue, 10 Feb 2026 15:28:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9QSD6MKPz479S for ; Tue, 10 Feb 2026 15:28:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770737292; 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=kpS3TcYWbhcWxY/gd5OtMNlaRZ3vHJfSNcLiRfNhagA=; b=k8Vbxs+ASgpC9b8hqdZr3cjjvSNUT4hnj6dzT1CaFQoLH0uVCdrtdmmnUnkbNtrPFimQ4S afCempb5q+472EgAr8ht2UeOfDgaGSCnIDIDBrNhx4Ure08PHJefzJZslf+cN2BbosbYYS ByngRWIQ5Op9moitDT8sII2BkX5O5ydXFPY++kxt8d7QoQ/7jI6Xpz3SLm17rKL0I3+RJi Dlt1JSZarnms/DTOrH7qwfL9b3LqR/tN7yDAp7MChIpZrnYAIiPl9zBTMbT7kei8YfUbfR urWVSy7Tc/dpAYrkU5K1TlMAwCMs9mmSU303qtzzDfaUMjXqVrZbEY7H0uHuVw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770737292; a=rsa-sha256; cv=none; b=sg/IUXak6epqnNQucIuSAN1ltPC713BI3ZjW55U5inREt7JD0sLEl513CiAqkvikRHZAAO ycraf/punJAthcK49RVzjwA/9AJAfss3p6na4+YNnSFe17l0PTKBZm9wQIUZfUsR8P6yuY 2g2zPzRQ9Wxl1TC86Zm5Mp0rHDqIjimEBkg6+r2WoAcUjLIbShwLnyEtFGmP7Wub18Q2Nx fzWwDTSTt4L+RyWQyROv1PBt49vRrRMib/lfiW72r8+0y6Nc3DmtzH+DN5QkRQf5XshXoV zu4ADGQ4TvU9jLoPYM4KHYiD9Z6/CcApYBUDnXphSbjNIqiWOSxLEFGKnOJtjw== 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=1770737292; 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=kpS3TcYWbhcWxY/gd5OtMNlaRZ3vHJfSNcLiRfNhagA=; b=EzrxiFYH1coRHvrz+3mlWB1lA7CCtZDTP53+MzEuQ0tQuinvXDgffH2Y62pkeyuhn88O7o bQWJuRXtB1vfE0WvPBkb4TBbJzMM1snjTzpFD4Q2Q+LuDXsyELJpTQRwH44jZUu+HabhZ0 17ol70vKxR8oPKAHa8025c0UDM2/ztVv6OyPCBezU9JNCo/x+ddZmVTyzG5Ma554tsbAtb 2xyR3LMzXRybgQd8bZLv/GC0OMhZgeQ5cQu8TExIQGncrYwP17cpw0Yy1VXj2FDxq2TX1P S/QTmiwvuVogjvlDA0hv5ZMOB62duRPV1wAdBHRbkkYiCFUwVhdpze7JVUeZEg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9QSD4m8qz1NTv for ; Tue, 10 Feb 2026 15:28:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 43ff6 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 15:28:12 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Konstantin Belousov From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: 9748212e619b - stable/13 - include/stdckdint.h: make the header compatible with C++ 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: 9748212e619b7608ac50ad6d0a768b20d5c9fd0b Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 15:28:12 +0000 Message-Id: <698b4e8c.43ff6.32072bce@gitrepo.freebsd.org> The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=9748212e619b7608ac50ad6d0a768b20d5c9fd0b commit 9748212e619b7608ac50ad6d0a768b20d5c9fd0b Author: Konstantin Belousov AuthorDate: 2025-10-17 03:49:14 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-10 14:24:30 +0000 include/stdckdint.h: make the header compatible with C++ by removing the cast to _Bool. The _Bool type is not defined for C++, and the specification from the gcc info doc states that the return type of the __builtin_{add,sub,mul}_overflow() is bool already. This is done instead of including stdbool.h to avoid namespace pollution, since defining bool from stdckdint.h simingly is not sanctioned by ISO/IEC 9899:2024. PR: 290299 Reviewed by: des Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D53149 (cherry picked from commit 3c052bec12fcf09f81ba0760ebecec38e196d332) --- include/stdckdint.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/stdckdint.h b/include/stdckdint.h index af3074dded89..9cb877fe8198 100644 --- a/include/stdckdint.h +++ b/include/stdckdint.h @@ -13,7 +13,7 @@ #if __GNUC_PREREQ__(5, 1) || __has_builtin(__builtin_add_overflow) #define ckd_add(result, a, b) \ - (_Bool)__builtin_add_overflow((a), (b), (result)) + __builtin_add_overflow((a), (b), (result)) #else #define ckd_add(result, a, b) \ _Static_assert(0, "checked addition not supported") @@ -21,7 +21,7 @@ #if __GNUC_PREREQ__(5, 1) || __has_builtin(__builtin_sub_overflow) #define ckd_sub(result, a, b) \ - (_Bool)__builtin_sub_overflow((a), (b), (result)) + __builtin_sub_overflow((a), (b), (result)) #else #define ckd_sub(result, a, b) \ _Static_assert(0, "checked subtraction not supported") @@ -29,7 +29,7 @@ #if __GNUC_PREREQ__(5, 1) || __has_builtin(__builtin_mul_overflow) #define ckd_mul(result, a, b) \ - (_Bool)__builtin_mul_overflow((a), (b), (result)) + __builtin_mul_overflow((a), (b), (result)) #else #define ckd_mul(result, a, b) \ _Static_assert(0, "checked multiplication not supported") From nobody Tue Feb 10 15:28:11 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 4f9QSF17smz6RVfN for ; Tue, 10 Feb 2026 15:28:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9QSD0Ylmz477G for ; Tue, 10 Feb 2026 15:28:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770737292; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=11a00stCGC02ncchVE7Rb/lAauPMLf0/dt2gSXX+uwQ=; b=ZoFH/8ArKQqND9ybCGw3dQc9EEztq5myWq0Mu9TP9HR7LwNbjHWXx6gq0Q6XbCb12XOXzY SpI3p81b3pukg1qXLog9UTlTkfyZrvmN2MjrSW7v/t3hdQ3eocYIdukrMD/f/OlVXFOGQa iw4xptIs69nXmn1jKsmDGGXv9xNcgOyx+8l/QsCtTfSKtM5+SPhneiopjcSoSaSLFMQg7d E2gFfEucDca+ElePWy65tf4MZ9DyZMHDx6ElAXNpouAZzNL5gef7VRCbQeW+7asdsO7VcI 6DFi+kn5sBeOZ4DzB6HMV8ndujA2YhKCvgVQOyj3FGNc7aH99G9LXNGoKL6n6Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770737292; a=rsa-sha256; cv=none; b=Vtwh1FB9r/fVvaUNXDC4+lr5qOLlqNC4rtn1JEmRydRK768Qr2zCgAsStMy+JQeDJlHPMg +cYBGpLXHO8LtxRN2HZb4xUO6HPquMF9OvgDbOgohcVN08ZicBUVsY1nSJdOY4bWQpkP+J DMYm36KlyZ0loLHq9x4RRyRmct+//2+uDOIBiZMTo1T0cuvW/335cQffvuyIj+aGGyKk+u R9UQiMXKcMuWmtx2Du9prRZtOEZT0l/txXwAX263vwRTcYy/guMunAmT9O52LoFchRvOmk r+A0HlirZKapdj11iAmwbwKCIo842uCdPzN4rHoqf8dtPHw7otApGUzE1ZdBTg== 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=1770737292; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=11a00stCGC02ncchVE7Rb/lAauPMLf0/dt2gSXX+uwQ=; b=yU5/58E76x8XZYUK+X489WW6nGxao4KBhgpaRy03dTqFkWohf2ox6SHsBMqP/oiJaXm2zP soGKVZS2qS9joMeC7k0r5dXzpGVTQU0vARhVvlXOrEm4ffrrTSgXcLcKBjiRUK7Wjrdt03 YzMLAe/l+XrSux7ZrarZF5uFtAWS2MNMa5yLGkGcKZd04xlMLjk68kDPJ7I+S5j3jfQ1a4 OzjSJ0/rmydHCCFysA7sFgiQNTBrtNFn4y6iK2ut5Tyly40iQAliYtzwdVbwPpFviPA+Tr ZnqrK5Ni94d4Klg/uyNgHtPL+Dau/JRds9c8dkxoHPijZx+sdRQl78cwxDzYKA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9QSC4b6Kz1NTt for ; Tue, 10 Feb 2026 15:28:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 44d44 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 15:28:11 +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: fda539d1ea39 - stable/13 - include: Implement N2867. 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: fda539d1ea398ce7c8aa9e7fa25e9d3c53563b5b Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 15:28:11 +0000 Message-Id: <698b4e8b.44d44.501c9786@gitrepo.freebsd.org> The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=fda539d1ea398ce7c8aa9e7fa25e9d3c53563b5b commit fda539d1ea398ce7c8aa9e7fa25e9d3c53563b5b Author: Dag-Erling Smørgrav AuthorDate: 2023-09-07 06:14:54 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-10 14:24:30 +0000 include: Implement N2867. This adds macros for checked addition, subtraction, and multiplication with semantics similar to the builtins gcc and clang have had for years. Reviewed by: kib, emaste Differential Revision: https://reviews.freebsd.org/D41734 (cherry picked from commit e6615b10347caf67f5bc12c9a8e30b8ddd9860ae) --- include/Makefile | 2 +- include/stdckdint.h | 40 +++++++++++++++++ share/man/man3/Makefile | 4 ++ share/man/man3/stdckdint.3 | 106 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 151 insertions(+), 1 deletion(-) diff --git a/include/Makefile b/include/Makefile index d86fe4cc5435..dd4bb01d6339 100644 --- a/include/Makefile +++ b/include/Makefile @@ -22,7 +22,7 @@ INCS= a.out.h ar.h assert.h bitstring.h byteswap.h \ pthread_np.h pwd.h ranlib.h readpassphrase.h regex.h \ res_update.h resolv.h runetype.h sched.h \ search.h semaphore.h setjmp.h \ - signal.h spawn.h stab.h stdalign.h stdbool.h stddef.h \ + signal.h spawn.h stab.h stdalign.h stdbool.h stdckdint.h stddef.h \ stdnoreturn.h stdio.h stdlib.h string.h stringlist.h \ strings.h sysexits.h tar.h termios.h tgmath.h \ time.h timeconv.h timers.h ttyent.h \ diff --git a/include/stdckdint.h b/include/stdckdint.h new file mode 100644 index 000000000000..af3074dded89 --- /dev/null +++ b/include/stdckdint.h @@ -0,0 +1,40 @@ +/*- + * Copyright (c) 2023 Dag-Erling Smørgrav + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#ifndef __STDC_VERSION_STDCKDINT_H__ +#define __STDC_VERSION_STDCKDINT_H__ 202311L + +#include + +#if __BSD_VISIBLE || __ISO_C_VISIBLE >= 2023 + +#if __GNUC_PREREQ__(5, 1) || __has_builtin(__builtin_add_overflow) +#define ckd_add(result, a, b) \ + (_Bool)__builtin_add_overflow((a), (b), (result)) +#else +#define ckd_add(result, a, b) \ + _Static_assert(0, "checked addition not supported") +#endif + +#if __GNUC_PREREQ__(5, 1) || __has_builtin(__builtin_sub_overflow) +#define ckd_sub(result, a, b) \ + (_Bool)__builtin_sub_overflow((a), (b), (result)) +#else +#define ckd_sub(result, a, b) \ + _Static_assert(0, "checked subtraction not supported") +#endif + +#if __GNUC_PREREQ__(5, 1) || __has_builtin(__builtin_mul_overflow) +#define ckd_mul(result, a, b) \ + (_Bool)__builtin_mul_overflow((a), (b), (result)) +#else +#define ckd_mul(result, a, b) \ + _Static_assert(0, "checked multiplication not supported") +#endif + +#endif + +#endif diff --git a/share/man/man3/Makefile b/share/man/man3/Makefile index 5aec58492b8f..7fff5eedd5fb 100644 --- a/share/man/man3/Makefile +++ b/share/man/man3/Makefile @@ -29,6 +29,7 @@ MAN= arb.3 \ snl.3 \ stats.3 \ stdarg.3 \ + stdckdint.3 \ sysexits.3 \ tgmath.3 \ timeradd.3 \ @@ -310,6 +311,9 @@ MLINKS+= stdarg.3 va_arg.3 \ stdarg.3 va_end.3 \ stdarg.3 varargs.3 \ stdarg.3 va_start.3 +MLINKS+= stdckdint.3 ckd_add.3 \ + stdckdint.3 ckd_sub.3 \ + stdckdint.3 ckd_mul.3 MLINKS+= timeradd.3 timerclear.3 \ timeradd.3 timercmp.3 \ timeradd.3 timerisset.3 \ diff --git a/share/man/man3/stdckdint.3 b/share/man/man3/stdckdint.3 new file mode 100644 index 000000000000..e3593472c08b --- /dev/null +++ b/share/man/man3/stdckdint.3 @@ -0,0 +1,106 @@ +.\"- +.\" Copyright (c) 2023 Dag-Erling Smørgrav +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.Dd September 5, 2023 +.Dt STDCKDINT 3 +.Os +.Sh NAME +.Nm stdckdint +.Nd checked integer arithmetic +.Sh SYNOPSIS +.In stdckdint.h +.Ft bool +.Fn ckd_add "type1 *result" "type2 a" "type3 b" +.Ft bool +.Fn ckd_sub "type1 *result" "type2 a" "type3 b" +.Ft bool +.Fn ckd_mul "type1 *result" "type2 a" "type3 b" +.Sh DESCRIPTION +The function-like macros +.Nm ckd_add , +.Nm ckd_sub , +and +.Nm ckd_mul +perform checked integer addition, subtraction, and multiplication, +respectively. +If the result of adding, subtracting, or multiplying +.Fa a +and +.Fa b +as if their respective types had infinite range fits in +.Ft type1 , +it is stored in the location pointed to by +.Fa result +and the macro evaluates to +.Dv false . +Otherwise, the macro evaluates to +.Dv true +and the contents of the location pointed to by +.Fa result +is the result of the operation wrapped to the range of +.Ft type1 . +.Sh RETURN VALUES +The +.Nm ckd_add , +.Nm ckd_sub , +and +.Nm ckd_mul +macros evaluate to +.Dv true +if the requested operation overflowed the result type and +.Dv false +otherwise. +.Sh EXAMPLES +.Bd -literal -offset indent +#include +#include +#include + +int main(void) +{ + int result; + + assert(!ckd_add(&result, INT_MAX, 0)); + assert(result == INT_MAX); + assert(ckd_add(&result, INT_MAX, 1)); + assert(result == INT_MIN); + + assert(!ckd_sub(&result, INT_MIN, 0)); + assert(result == INT_MIN); + assert(ckd_sub(&result, INT_MIN, 1)); + assert(result == INT_MAX); + + assert(!ckd_mul(&result, INT_MAX / 2, 2)); + assert(result == INT_MAX - 1); + assert(ckd_mul(&result, INT_MAX / 2 + 1, 2)); + assert(result == INT_MIN); + + return 0; +} +.Ed +.\" .Sh STANDARDS +.\" The +.\" .Nm ckd_add , +.\" .Nm ckd_sub , +.\" and +.\" .Nm ckd_mul +.\" macros conform to +.\" .St -isoC-23 . +.Sh HISTORY +The +.Nm ckd_add , +.Nm ckd_sub , +and +.Nm ckd_mul +macros were first introduced in +.Fx 14.0 . +.Sh AUTHORS +The +.Nm ckd_add , +.Nm ckd_sub , +and +.Nm ckd_mul +macros and this manual page were written by +.An Dag-Erling Sm\(/orgrav Aq Mt des@FreeBSD.org . From nobody Tue Feb 10 15:28:13 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 4f9QSG4qcmz6RVkb for ; Tue, 10 Feb 2026 15:28: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9QSG0DCNz473P for ; Tue, 10 Feb 2026 15:28:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770737294; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ngqH7LmBGRFZYiwzFC4I1YD1BZEnB5b2rDY2FTBrmqI=; b=H2qGJB/lu/MOT8nK/bIwqIgf3Htn6XsLEcuVaYKlGBAz1MDONjOnxWu8mXK7Q9Vwubps34 z7/a2ZdbDbHvIDug5AZXaef58E6YwLefMNvnB4jIllI7kDTHcS7C2y6gGbkYNX9/2WEttj lBs4FSQVebchrA3Vjwjr1LA0gbCQsc+0nFzWG418VqxlIRtklFZm6ChZPS3JRisrDsbQYi nYpCwExu8cQZQiwdEr0RZJODZF9+mzjLR+0sjzwX3FwJ5hMIlvkTlltHaFvq0FXH1zZFEn BZ34g3kdfBD+4rNy/5v/SBb0fMoPnYYMdFs8dJztVBLtXRn7ZUK7IWpPwNIC+w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770737294; a=rsa-sha256; cv=none; b=cEbxr7Jx1mOJ+2v8BeRijVcHJER1Lf7OTFz+zvX8eNSZVhoMlriNtXmKRVTPbPeeJLXJqa FQ1MD22QtZ0NC9AOYHHbuNlW1fPZqaZ25TOYguGBytFTBm95vHbR9P4vcGIcbfFFKQHeZY rcFSLADfNqS6DlzGdfVkYFaTYHOjuoJ+ahfRCtNfRBty0PQrP2MhxXk6KoGCOkIbbVYt36 EHqTNrpjvb8gUAs7+M9i3GVCaIKMK6oQAnxHB7CyVjGwQakcuUmvTgzVcNzFBwXUGZZDm2 V37IVF7f/pzHQ3dh3gXdd11U6bRI6rX6BObNIRWKJJ+Kb44B/70t6FPlCgUN0Q== 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=1770737294; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ngqH7LmBGRFZYiwzFC4I1YD1BZEnB5b2rDY2FTBrmqI=; b=DYEPGmr3p7aSvMcmMHRTyuklhO3P3o2c6OEiCBDmxc0aQO3Hj9Hj8rnRIXE3bY1+ia26L6 wuhxoaSty8ZVYAD6FXTvHYhHQMqHA/bQikZBnbikxw5nUx0zd/u4xu0sVSAwsBWvVzutdJ WPAE/lquevMcvvt6GUwW1CL+sJyqvzfHhAsnoF0bOPZp28QSkUblzevoeZV1ZFZQDCPxu8 qTH+SfUgAiiJZHctt7R2MN8c9VwhtpAEcVp40a81HltBg9Er+/fvBXnEkl3FJY9Poq0YsT +XLNQ8J+CYvNLoMeBsOv1euBtLNOky0/ZL+rY9fbJJdcVt3Nr48RCZ1AwitBqA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9QSF5V3Bz1N1x for ; Tue, 10 Feb 2026 15:28:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 451dc by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 15:28:13 +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: bfd89763d207 - stable/13 - diff: Detect loops when diffing directories. 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: bfd89763d2079a6f232e8324fc2c688cb336aed9 Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 15:28:13 +0000 Message-Id: <698b4e8d.451dc.5a4d9df5@gitrepo.freebsd.org> The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=bfd89763d2079a6f232e8324fc2c688cb336aed9 commit bfd89763d2079a6f232e8324fc2c688cb336aed9 Author: Dag-Erling Smørgrav AuthorDate: 2025-06-20 11:10:35 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-10 14:24:30 +0000 diff: Detect loops when diffing directories. Sponsored by: Klara, Inc. Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D50936 (cherry picked from commit 42092e1b6625b8226de5f34d22b9a96c713626cb) --- usr.bin/diff/diffdir.c | 88 +++++++++++++++++++++++++++++++++++------ usr.bin/diff/tests/diff_test.sh | 17 ++++++++ 2 files changed, 94 insertions(+), 11 deletions(-) diff --git a/usr.bin/diff/diffdir.c b/usr.bin/diff/diffdir.c index 1ffdf0a8de5b..627e5dd9b983 100644 --- a/usr.bin/diff/diffdir.c +++ b/usr.bin/diff/diffdir.c @@ -22,15 +22,18 @@ #include #include +#include #include #include #include +#include #include +#include #include #include #include -#include +#include #include "diff.h" @@ -39,6 +42,61 @@ static void diffit(struct dirent *, char *, size_t, char *, size_t, int); #define d_status d_type /* we need to store status for -l */ +struct inode { + dev_t dev; + ino_t ino; + RB_ENTRY(inode) entry; +}; + +static int +inodecmp(struct inode *a, struct inode *b) +{ + return (a->dev < b->dev ? -1 : a->dev > b->dev ? 1 : + a->ino < b->ino ? -1 : a->ino > b->ino ? 1 : 0); +} + +RB_HEAD(inodetree, inode); +static struct inodetree v1 = RB_INITIALIZER(&v1); +static struct inodetree v2 = RB_INITIALIZER(&v2); +RB_GENERATE_STATIC(inodetree, inode, entry, inodecmp); + +static int +vscandir(struct inodetree *tree, const char *path, struct dirent ***dirp, + int (*select)(const struct dirent *), + int (*compar)(const struct dirent **, const struct dirent **)) +{ + struct stat sb; + struct inode *ino = NULL; + int fd = -1, ret, serrno; + + if ((fd = open(path, O_DIRECTORY | O_RDONLY)) < 0 || + (ino = calloc(1, sizeof(*ino))) == NULL || + fstat(fd, &sb) != 0) + goto fail; + ino->dev = sb.st_dev; + ino->ino = sb.st_ino; + if (RB_FIND(inodetree, tree, ino)) { + free(ino); + close(fd); + warnx("%s: Directory loop detected", path); + *dirp = NULL; + return (0); + } + if ((ret = scandir(path, dirp, select, compar)) < 0) + goto fail; + RB_INSERT(inodetree, tree, ino); + close(fd); + return (ret); +fail: + serrno = errno; + if (ino != NULL) + free(ino); + if (fd >= 0) + close(fd); + errno = serrno; + return (-1); +} + /* * Diff directory traversal. Will be called recursively if -r was specified. */ @@ -59,26 +117,22 @@ diffdir(char *p1, char *p2, int flags) status |= 2; return; } - if (path1[dirlen1 - 1] != '/') { - path1[dirlen1++] = '/'; - path1[dirlen1] = '\0'; - } + while (dirlen1 > 1 && path1[dirlen1 - 1] == '/') + path1[--dirlen1] = '\0'; dirlen2 = strlcpy(path2, *p2 ? p2 : ".", sizeof(path2)); if (dirlen2 >= sizeof(path2) - 1) { warnc(ENAMETOOLONG, "%s", p2); status |= 2; return; } - if (path2[dirlen2 - 1] != '/') { - path2[dirlen2++] = '/'; - path2[dirlen2] = '\0'; - } + while (dirlen2 > 1 && path2[dirlen2 - 1] == '/') + path2[--dirlen2] = '\0'; /* * Get a list of entries in each directory, skipping "excluded" files * and sorting alphabetically. */ - pos = scandir(path1, &dirp1, selectfile, alphasort); + pos = vscandir(&v1, path1, &dirp1, selectfile, alphasort); if (pos == -1) { if (errno == ENOENT && (Nflag || Pflag)) { pos = 0; @@ -90,7 +144,7 @@ diffdir(char *p1, char *p2, int flags) dp1 = dirp1; edp1 = dirp1 + pos; - pos = scandir(path2, &dirp2, selectfile, alphasort); + pos = vscandir(&v2, path2, &dirp2, selectfile, alphasort); if (pos == -1) { if (errno == ENOENT && Nflag) { pos = 0; @@ -112,6 +166,18 @@ diffdir(char *p1, char *p2, int flags) dp2++; } + /* + * Append separator so children's names can be appended directly. + */ + if (path1[dirlen1 - 1] != '/') { + path1[dirlen1++] = '/'; + path1[dirlen1] = '\0'; + } + if (path2[dirlen2 - 1] != '/') { + path2[dirlen2++] = '/'; + path2[dirlen2] = '\0'; + } + /* * Iterate through the two directory lists, diffing as we go. */ diff --git a/usr.bin/diff/tests/diff_test.sh b/usr.bin/diff/tests/diff_test.sh index 29ab0eaec161..027febf69f64 100755 --- a/usr.bin/diff/tests/diff_test.sh +++ b/usr.bin/diff/tests/diff_test.sh @@ -19,6 +19,7 @@ atf_test_case label atf_test_case report_identical atf_test_case non_regular_file atf_test_case binary +atf_test_case dirloop simple_body() { @@ -284,6 +285,21 @@ binary_body() atf_check -o inline:"176c\nx\n.\n" -s exit:1 diff -ae A B } +dirloop_head() +{ + atf_set "timeout" "10" +} +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 \ + -e match:"a/foo/bar/up: Directory loop detected" \ + -e match:"b/foo/bar/up: Directory loop detected" \ + diff -r a b +} + atf_init_test_cases() { atf_add_test_case simple @@ -306,4 +322,5 @@ atf_init_test_cases() atf_add_test_case report_identical atf_add_test_case non_regular_file atf_add_test_case binary + atf_add_test_case dirloop } From nobody Tue Feb 10 15:28: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 4f9QSJ0rvPz6RVcQ for ; Tue, 10 Feb 2026 15:28: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9QSH0bj4z475J for ; Tue, 10 Feb 2026 15:28:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770737295; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vLHuWYA0e5OxyzIJg+Bdl2gGKEibvcRND6T7JbuGvYM=; b=EHKgdkcUks3mj3WKcK6XYUSKV3luDszz/O/6u+uEDaB86u83JheEiB0cLx+BvnQOctEUVC qlevPuM4y/IRp9yzOOccynTy8XL10w0bimmgvAbNreUiLRe7KUpoiC0pNxtguY0m0JzHOJ tVCdmrWkkqgXgH4GZ/kqD+qrA7n7OVy6RZxS8AhJ3i+qoePSgtxXTCdxqjym79Ma0fBs/8 BoHZOzSwAJRaOsQgbI5o59DO5WmEkrN2ICKRkPQbrNjsj63oXbAjxIIJVZXRxSVjN2EikZ PjITnFVRugB9/yoZqzDNgdK0t06aUn0pKyz2w6kfyxSaDlFSlApC3RZzZvdF+A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770737295; a=rsa-sha256; cv=none; b=MeDKNbpt8XE707rQwi9V8u4Kt2fS9CMryyTXtHZtI6fQyaU7zCvlH8T6Y4ziad3iRGUaUA 6gjcz0kEnflGVW7Ucj9DaqLdYJbtxzblV65acBCXvun3yGKDorhc69j5F58A0f+PqaF97n jGQRoYt7NXAsPBv+hLrLv+L6rSjqmMUeYq7FBVGgZ6UuvBr0atNImSoeUxASfUsPB/hR+h V8FlAWsarP0qXEnOWKRVajUCJFHOryPbWpVyz9puE7h1WAiwP28PxbEC61E53ZmN42QHMQ Zq6qGnXMxQsOVIM4DeLi9MDRa0RmIAQFM1jB8dPRiiRQ8J7LdZeceWwIb7ohrA== 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=1770737295; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vLHuWYA0e5OxyzIJg+Bdl2gGKEibvcRND6T7JbuGvYM=; b=Qi/xc+nkaT5VwYetHz1ANzbLuijJ4u45fvzh3U9hFdxZ26xxkx3xZv585JvG9rXhOFYM54 wpjQShB4Iemyevx7sNEwyFl+6QcWRRe8vJLKQ96Kw5gndodvTLgbo3rM6jMPHFmETYgM0R 1izWFFshvK+mSpZA6S5fmAxv+rAPndQryVdXhoL+MGPSGPVsB6KvqcWrtDRxUpDwuVS8Wo XVBCBDf8Dp0k87YGqfR6NFhuAdNzOGIbha1N9JYcZ77F5VQiNECMhgTkqmJEsMQXUTCeJG ks49DoXTny4ZTFL7Stm3iJxQratp4OSk6DtCEGU1MrcgNp/fgCqdqVDS1wNZrQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9QSG62nvz1MXk for ; Tue, 10 Feb 2026 15:28:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 45e6a by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 15:28: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: 2ae615c4f1d0 - stable/13 - diff: Fix integer overflows in Stone algorithm 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: 2ae615c4f1d0c29984caac73d72091be8c41358f Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 15:28:14 +0000 Message-Id: <698b4e8e.45e6a.5271ab8e@gitrepo.freebsd.org> The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=2ae615c4f1d0c29984caac73d72091be8c41358f commit 2ae615c4f1d0c29984caac73d72091be8c41358f Author: Dag-Erling Smørgrav AuthorDate: 2026-02-05 14:39:43 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-10 14:24:30 +0000 diff: Fix integer overflows in Stone algorithm Fix integer overflows that may occur when the context window is very large and add tests to exercise those conditions. PR: 267032 MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: thj, kevans Differential Revision: https://reviews.freebsd.org/D55110 (cherry picked from commit 5fc739eb5949620da911db2f87ca8faedc549d3a) --- usr.bin/diff/diffreg.c | 32 +++++++++++++++++++++----------- usr.bin/diff/tests/diff_test.sh | 30 ++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 11 deletions(-) diff --git a/usr.bin/diff/diffreg.c b/usr.bin/diff/diffreg.c index fb01fa24a281..ea7732bb6d99 100644 --- a/usr.bin/diff/diffreg.c +++ b/usr.bin/diff/diffreg.c @@ -78,6 +78,7 @@ #include #include #include +#include #include #include #include @@ -1064,7 +1065,7 @@ change(char *file1, FILE *f1, char *file2, FILE *f2, int a, int b, int c, int d, { static size_t max_context = 64; long curpos; - int i, nc; + int dist, i, nc; const char *walk; bool skip_blanks, ignore; @@ -1125,8 +1126,9 @@ proceed: */ print_header(file1, file2); anychange = 1; - } else if (a > context_vec_ptr->b + (2 * diff_context) + 1 && - c > context_vec_ptr->d + (2 * diff_context) + 1) { + } else if (!ckd_add(&dist, diff_context, diff_context) && + a - context_vec_ptr->b - 1 > dist && + c - context_vec_ptr->d - 1 > dist) { /* * If this change is more than 'diff_context' lines from the * previous change, dump the record and reset it. @@ -1490,10 +1492,14 @@ dump_context_vec(FILE *f1, FILE *f2, int flags) return; b = d = 0; /* gcc */ - lowa = MAX(1, cvp->a - diff_context); - upb = MIN((int)len[0], context_vec_ptr->b + diff_context); - lowc = MAX(1, cvp->c - diff_context); - upd = MIN((int)len[1], context_vec_ptr->d + diff_context); + if (ckd_sub(&lowa, cvp->a, diff_context) || lowa < 1) + lowa = 1; + if (ckd_add(&upb, context_vec_ptr->b, diff_context) || upb > (int)len[0]) + upb = (int)len[0]; + if (ckd_sub(&lowc, cvp->c, diff_context) || lowc < 1) + lowc = 1; + if (ckd_add(&upd, context_vec_ptr->d, diff_context) || upd > (int)len[1]) + upd = (int)len[1]; printf("***************"); if ((flags & D_PROTOTYPE)) { @@ -1593,10 +1599,14 @@ dump_unified_vec(FILE *f1, FILE *f2, int flags) return; b = d = 0; /* gcc */ - lowa = MAX(1, cvp->a - diff_context); - upb = MIN((int)len[0], context_vec_ptr->b + diff_context); - lowc = MAX(1, cvp->c - diff_context); - upd = MIN((int)len[1], context_vec_ptr->d + diff_context); + if (ckd_sub(&lowa, cvp->a, diff_context) || lowa < 1) + lowa = 1; + if (ckd_add(&upb, context_vec_ptr->b, diff_context) || upb > (int)len[0]) + upb = (int)len[0]; + if (ckd_sub(&lowc, cvp->c, diff_context) || lowc < 1) + lowc = 1; + if (ckd_add(&upd, context_vec_ptr->d, diff_context) || upd > (int)len[1]) + upd = (int)len[1]; printf("@@ -"); uni_range(lowa, upb); diff --git a/usr.bin/diff/tests/diff_test.sh b/usr.bin/diff/tests/diff_test.sh index 027febf69f64..8b8846925ee8 100755 --- a/usr.bin/diff/tests/diff_test.sh +++ b/usr.bin/diff/tests/diff_test.sh @@ -20,6 +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 simple_body() { @@ -300,6 +302,32 @@ dirloop_body() diff -r a b } +bigc_head() +{ + atf_set "descr" "Context diff with very large context" +} +bigc_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 +} + +bigu_head() +{ + atf_set "descr" "Unified diff with very large context" +} +bigu_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_init_test_cases() { atf_add_test_case simple @@ -323,4 +351,6 @@ 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 } From nobody Tue Feb 10 15:28: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 4f9QSJ4LDdz6RVcS for ; Tue, 10 Feb 2026 15:28:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9QSJ1XBYz47H4 for ; Tue, 10 Feb 2026 15:28:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770737296; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0IMjneTIokmrpvY8GgkVanZfPSsjkKhik64tq/QTonM=; b=w+oKucrNfUTA/wBgBDJmgtEHOo/GU2FQfsrUd5KyZz8wj4OESarSLarHc/wZkZ3W4Kri4l KU0YgGsu0RbEa6x7WQL46QINliGJAw/Ac6AH8nlVyV2cPn2tRJs/mt7q0kb7E5PCGZLolx cOjDjOK5tZeYoPlmyPIlxcHVQDbBBxF1CNyOuPWdWQwhLuuFvH9yawle9iCgiXO+rj82PT nmASUjljRVzqYktJ5FEVL2xD/Bj2saP5CJkiFdDwVrKISqjPhvz7QAeQJHpLjfctMB+Lbb XhFMQtrd7JHb2maqa8I6cIYBc5eUdBDyR66UgDyv7Bi0pJX7yBHRVdpPqX8peA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770737296; a=rsa-sha256; cv=none; b=RPkEdorxMlv6qCEYvTqZ6Kl81XuIwMyQkV22P56+IsV9jSp4P073z2/6zPlA7Car0dyMIL 25Ogz/MlVjgBlk/nPFXYOb+Ez67w79AQN/pQNi6qo972pmjCHfHw7LuMbGWlppok+pc5EL 3+pE84B4QzcR0plWxK2KwhBWxyx4v4D9lNTPvA8ooCoWWZQYxpo+QHuBzZh7E+YDhEIhNV ok1Z/fq8KTUN/zhl014kKRZL/71E/ufBHMVpIUxdmXFsEV+wlyDm6G7c/zFzKKNEEF2qKt F9jE0qQ9CXoYk1qDVP7GPzhCmPqUXA43aljnZ+EzB3q0XcXicjwuD1Rosy1jWQ== 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=1770737296; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=0IMjneTIokmrpvY8GgkVanZfPSsjkKhik64tq/QTonM=; b=tSWi8AjSG0y97hruceBXNl1JY5EpfNhT4kNZw5cgZGIEIlF2Bm84LNPuAp25nSJpqvu7KN O51rvsUMMNneOVwxLUZCR+yJkZzHA73wjpDK1oVYZ4OEDSVFyUJYEt+CnR21opowOHfY43 2L24lbzY8+h/VJv9Vz6EYBnZy4Vqklld3HWxhaqJ85Jxiw2axjff6ypws6THVLq7M0nXc6 4cZTf91382u2kess/IfW3JT0GUPx967zciRUElDWTThXC4V7i3p/OOwyCFGntlcy5W3huP 97TO/o2KaseIeOEUsq37yRkABOmNG8Iu333WNT+WqTwS/YaHCwQ8i8BGdnFmlg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9QSJ0rtrz1MXl for ; Tue, 10 Feb 2026 15:28:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 451e0 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 15:28: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: 641366df41d8 - stable/13 - diff: Report I/O errors in Stone algorithm 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: 641366df41d8e2a3bde877b712a08de8a49a76ee Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 15:28:15 +0000 Message-Id: <698b4e8f.451e0.721764e3@gitrepo.freebsd.org> The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=641366df41d8e2a3bde877b712a08de8a49a76ee commit 641366df41d8e2a3bde877b712a08de8a49a76ee Author: Dag-Erling Smørgrav AuthorDate: 2026-02-05 17:41:56 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-10 14:24:30 +0000 diff: Report I/O errors in Stone algorithm In the legacy Stone algorithm, we do a first pass over the files to check if they're identical before we start diffing them. That code would correctly set the exit status if an I/O error was encountered, but would not emit an error message. Do so. PR: 292198 MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: thj Differential Revision: https://reviews.freebsd.org/D55125 (cherry picked from commit f8c12e6e3874cdd353fb16785da6f4e7eb134cd9) --- usr.bin/diff/diffreg.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/usr.bin/diff/diffreg.c b/usr.bin/diff/diffreg.c index ea7732bb6d99..78f3569a0ecc 100644 --- a/usr.bin/diff/diffreg.c +++ b/usr.bin/diff/diffreg.c @@ -369,6 +369,10 @@ diffreg(char *file1, char *file2, int flags, int capsicum) break; default: /* error */ + if (ferror(f1)) + warn("%s", file1); + if (ferror(f2)) + warn("%s", file2); rval = D_ERROR; status |= 2; goto closem; @@ -458,9 +462,9 @@ files_differ(FILE *f1, FILE *f2, int flags) (stb1.st_mode & S_IFMT) != (stb2.st_mode & S_IFMT)) return (1); for (;;) { - i = fread(buf1, 1, sizeof(buf1), f1); - j = fread(buf2, 1, sizeof(buf2), f2); - if ((!i && ferror(f1)) || (!j && ferror(f2))) + if ((i = fread(buf1, 1, sizeof(buf1), f1)) == 0 && ferror(f1)) + return (-1); + if ((j = fread(buf2, 1, sizeof(buf2), f2)) == 0 && ferror(f2)) return (-1); if (i != j) return (1); From nobody Tue Feb 10 15:33: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 4f9QYy1Qtsz6RWLs for ; Tue, 10 Feb 2026 15:33:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9QYx42VTz3GlJ for ; Tue, 10 Feb 2026 15:33:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770737589; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=iaxZI5bq9dRz9aDsDeqNCKjOPQPWmxS0nEKtiPjNCp0=; b=lWuqe86MfwO3mCThoP87S5bTmGjSzyuu1IjsyLStVDWb1HGErj59v1YnbO32SYJP3FqET8 N/xJPy3Unp9nO5jGPN8vVfdhKZ6gDrFNaSFM3sZ1i0oo0/NAvYJwgvwYe/C70fCjJseT8a sKSKhz0oM4PeSHlkimiljWd0CD4FahMJoA+VUiKyrsInzlHrfvqQdWxlSFvZyV4eFy+byu fw5U7FH5W5omSrFkOZQZGD3ijE4lCnwfVcW6LkG92Z2Sn13C6DMYVArGmtptHVsLnMlTs0 p9q2kMsoPFkVG5G+29qDyy1fAHqETfgA7Ojx9tQ2WL11XQZ5kvG/FDGbvEv/SQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770737589; a=rsa-sha256; cv=none; b=ZUVaAbMDM3LOyDmDpdSWaej80HcFkZGntBqMm0dW11MCuDG1qbzvTzyTCn1ZqJJS+MOCVx kjgYigy5loobZTGG4bDnzWSsKzDLN+S+bN9jiQrgiK6HoDfpNarOa15BdNmWp94u+GR9g1 Lo4KCM5agBEPm4sgQyF8CpDgzyjUQooZfTrxuDYdjYyiXlDD55xQGtgfh3V/5Eq6RVxgae s3lOkLU7tJ4WaF8HHdNqaCZU3lGmJybHqlpFMMiRiUhXndkKhNmlu5xZa4/iWgkCDEDu6i RdwdCAE5LEdOVZCGZvW7+IQxmlGnGAIMa0vUAT+OfFRjTMjlZ2uiAJlYhm/jVQ== 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=1770737589; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=iaxZI5bq9dRz9aDsDeqNCKjOPQPWmxS0nEKtiPjNCp0=; b=lp9Lb0LU9zDqC+VhZspDhMdg6eguiE+XpKjBWoXFvrAtjlro5eH+zQ7/0HYkeArfqW2IwN 9m1nylTrt4XzSjBEv8cNGz8wsW83vW2iE8XIa+i1x+3J95ai/PNY2siOan3P0WNnO1aYES vjD/WPPwdnvTadPLtwD8YvgDpqnvVp5QTDwuOqAtivSx2SWABtyENwlo9dliBnwGMpKEu4 /t1Bu82uio7DuBsBLZGU+KfaKqIXx07FbBGqrrJ/YxF7zU86M2eRhqVV7iAOjFUBS4rn/W MiwKGtP6ma1R2h6uYOz9jHNsu7HN1cAJQK1YmLUt15306pozUwT0aFwfRp1hag== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9QYx3Gzdz1NbZ for ; Tue, 10 Feb 2026 15:33:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 45ccf by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 15:33:09 +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: 44cf3a1f6da6 - stable/13 - diff: Fix pagination leak 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: 44cf3a1f6da63b064b4356d2b3c6d7834ee03a97 Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 15:33:09 +0000 Message-Id: <698b4fb5.45ccf.1b5589c@gitrepo.freebsd.org> The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=44cf3a1f6da63b064b4356d2b3c6d7834ee03a97 commit 44cf3a1f6da63b064b4356d2b3c6d7834ee03a97 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-05 14:39:53 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-10 15:32:47 +0000 diff: Fix pagination leak * Drop an unnecessary variable and rename pidfd to procd. * Rewinding stdout serves no purpose, so stop doing it. * Don't bother freeing memory or setting the global status right before erroring out. * Error out if dup(2) or dup2(2) fail. * In the unlikely case that our pipe is equal to stdout, we need to record that information so we don't close it when cleaning up. * Don't bother closing a descriptor before dup2(2)ing to it. * Don't forget to close the the process descriptor after reaping the child process. PR: 266592 MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: kevans, markj Differential Revision: https://reviews.freebsd.org/D55112 (cherry picked from commit c3904a7de78ca1ca15fcdf4c09f9d4be7f6fe6f5) --- usr.bin/diff/pr.c | 22 ++++++++++------------ usr.bin/diff/pr.h | 1 + 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/usr.bin/diff/pr.c b/usr.bin/diff/pr.c index 5dedf689351c..20869e494d4a 100644 --- a/usr.bin/diff/pr.c +++ b/usr.bin/diff/pr.c @@ -45,7 +45,6 @@ struct pr * start_pr(char *file1, char *file2) { int pfd[2]; - int pr_pd; pid_t pid; char *header; struct pr *pr; @@ -55,13 +54,10 @@ start_pr(char *file1, char *file2) xasprintf(&header, "%s %s %s", diffargs, file1, file2); signal(SIGPIPE, SIG_IGN); fflush(stdout); - rewind(stdout); if (pipe(pfd) == -1) err(2, "pipe"); - switch ((pid = pdfork(&pr_pd, PD_CLOEXEC))) { + switch ((pid = pdfork(&pr->procd, PD_CLOEXEC))) { case -1: - status |= 2; - free(header); err(2, "No more processes"); case 0: /* child */ @@ -73,21 +69,23 @@ start_pr(char *file1, char *file2) execl(_PATH_PR, _PATH_PR, "-h", header, (char *)0); _exit(127); default: - /* parent */ - if (pfd[1] != STDOUT_FILENO) { - pr->ostdout = dup(STDOUT_FILENO); - dup2(pfd[1], STDOUT_FILENO); + if (pfd[1] == STDOUT_FILENO) { + pr->ostdout = STDOUT_FILENO; + } else { + if ((pr->ostdout = dup(STDOUT_FILENO)) < 0 || + dup2(pfd[1], STDOUT_FILENO) < 0) { + err(2, "stdout"); + } close(pfd[1]); } close(pfd[0]); - rewind(stdout); free(header); pr->kq = kqueue(); if (pr->kq == -1) err(2, "kqueue"); pr->e = xmalloc(sizeof(struct kevent)); - EV_SET(pr->e, pr_pd, EVFILT_PROCDESC, EV_ADD, NOTE_EXIT, 0, + EV_SET(pr->e, pr->procd, EVFILT_PROCDESC, EV_ADD, NOTE_EXIT, 0, NULL); if (kevent(pr->kq, pr->e, 1, NULL, 0, NULL) == -1) err(2, "kevent"); @@ -106,7 +104,6 @@ stop_pr(struct pr *pr) fflush(stdout); if (pr->ostdout != STDOUT_FILENO) { - close(STDOUT_FILENO); dup2(pr->ostdout, STDOUT_FILENO); close(pr->ostdout); } @@ -114,6 +111,7 @@ stop_pr(struct pr *pr) err(2, "kevent"); wstatus = pr->e[0].data; close(pr->kq); + close(pr->procd); free(pr); if (WIFEXITED(wstatus) && WEXITSTATUS(wstatus) != 0) errx(2, "pr exited abnormally"); diff --git a/usr.bin/diff/pr.h b/usr.bin/diff/pr.h index 2ff5949f282f..0a1275cfeab5 100644 --- a/usr.bin/diff/pr.h +++ b/usr.bin/diff/pr.h @@ -28,6 +28,7 @@ struct pr { int ostdout; + int procd; int kq; struct kevent *e; }; From nobody Tue Feb 10 15:33: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 4f9QZ22YHXz6RWLv for ; Tue, 10 Feb 2026 15:33: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9QZ14Jphz3GhN for ; Tue, 10 Feb 2026 15:33:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770737593; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eIrFzy/+N6UpnWFqpWR5pLuHo0YPUtFUZNnEnRjEw54=; b=CV3DSFLNxN2xAo6Ae9UfqGszJ4f9Ka3A7bCk+eaCZKZfBg8YdDCkPwpNu4nGkAyI0t99xM pNl2yaEeIaRfzNz4/OOZUYQ3inLLTYUQHLN5PJKCiLZNbjACnKaLaeZFIGx8qwzT/yasYS Ozb3M9vGY2DwkZXyU1sJWde+4bhDny1m/Vdcd5WMB3t6e3aIqDghruNlL1saaue321mA57 G6DlYhFqibYGmnkJGRFEh1e4wF3sj0E4eUfQ98+JPx3pNo8MAZD6OwCcllHpznB557Lsfn FQmktBcRH47SQOFI5kvpzi5GRxmJZ+GAJpH1RPQuPK7Nwn0BGemNkYNgtCLrEw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770737593; a=rsa-sha256; cv=none; b=hI6uJyfpDT0TESmhEacagNaDJfXRxhzJbEQYaeD3VM9vJscSvr1zVV8dg0nUpgnzvWdPeT Q5CIhEyPnyL6UcSNieLYiqATe4rBe77r4t5SdKae0AWIGUWQa2CpxQMGJp0hlEJ1AW15qY Y3x8u4zCRLO5efJ5HXeAvpCsm5Gf4rCUDlu6tU1nA1tSGojZnQhOJ4RDPBpVfcxnMkuRWp W35f8tOi6ywEfUtQeMlqj3HsQNoDJC6chqcnEOauFDmnN482s2x0OhNkNjePzCf48SuiJw VmYjSXNGtFk0G2c4lhBqR1W1UDvBMKy2MasZ5Jg6X2BYresay4+GyNvdL1BLUw== 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=1770737593; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=eIrFzy/+N6UpnWFqpWR5pLuHo0YPUtFUZNnEnRjEw54=; b=d8XTHi1yz5/wib3di6hglgMzmxW0GJliRfDeIkCBezHEwnfNq1JZzoNrnJK7QSbG4IeXkX w6Rm4IkSceP7a6YrppM0L7NCyDi7e/7A4yf2M4J5+b16970NYKu+gt6p/lKUPTr+g+xrrB raZKf7zEEshgH19e55yaDuRPJC5yd8WliWdq7gpfBNKjeCssUf/SHGgTrR5BDA1qqzqYRv RDCZS/eEtiHspdVThA9DL6/CzKRhLpKqnQbhG3JAiavsjEYFWWj4Un05d65igw860n6UNR ldmYPw5adKobBF1GLVapIQWTd0cRDIWfNINjekSKgTdz0SOaxUtC9uxM9iJuJw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9QZ12t8xz1NXx for ; Tue, 10 Feb 2026 15:33:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 47176 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 15:33:08 +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: f0852209a086 - stable/13 - diff: Add test case for pagination resource leak 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: f0852209a086387d8171da58a09faadaf5b0a455 Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 15:33:08 +0000 Message-Id: <698b4fb4.47176.21bc99b0@gitrepo.freebsd.org> The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=f0852209a086387d8171da58a09faadaf5b0a455 commit f0852209a086387d8171da58a09faadaf5b0a455 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-05 14:39:47 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-10 15:32:47 +0000 diff: Add test case for pagination resource leak The pagination code leaks either processes or descriptors or both, depending on the exact version of the code you have. Add a test case which exercises this leak to facilitate fixing it. MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: thj, kevans Differential Revision: https://reviews.freebsd.org/D55111 (cherry picked from commit 270492602b9bd8b8fce4f021f055804978bf3f23) --- usr.bin/diff/tests/diff_test.sh | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/usr.bin/diff/tests/diff_test.sh b/usr.bin/diff/tests/diff_test.sh index 8b8846925ee8..181463ca9be7 100755 --- a/usr.bin/diff/tests/diff_test.sh +++ b/usr.bin/diff/tests/diff_test.sh @@ -328,6 +328,26 @@ bigu_body() diff -U$(((1<<31)-2)) a b } +prleak_head() +{ + atf_set "descr" "Verify that pagination does not leak resources" +} +prleak_body() +{ + local n=32 + mkdir a b + for hi in $(jot -w%02x $n 0) ; do + mkdir a/$hi b/$hi + for lo in $(jot -w%02x $n 0) ; do + echo "$hi$lo" >a/$hi/$lo + echo "$hi$lo" >b/$hi/$lo + done + done + ulimit -n 1000 + ulimit -u 1000 + atf_check diff -rul a b +} + atf_init_test_cases() { atf_add_test_case simple @@ -353,4 +373,5 @@ atf_init_test_cases() atf_add_test_case dirloop atf_add_test_case bigc atf_add_test_case bigu + atf_add_test_case prleak } From nobody Tue Feb 10 15:36: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 4f9Qf52S8vz6RWcS for ; Tue, 10 Feb 2026 15:36: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9Qf50cMpz3HXP for ; Tue, 10 Feb 2026 15:36:45 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770737805; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ikEf3f2YNeojv/N6bWdCHOsvuuEBEHTOw6YciwxHu2g=; b=ADsQYAEO8FvqNLZ6Wn+z/OBALlHXJUibfHC3TRlRlj5eVhH2WYJJwsX5OlyOtZTAyQwX1Q TOqY365+jlVwuLJl9cAOX5KFeOqqcGjwSSrokRYxjaMw1koPuwOILD38+X4IDCL2CDRks3 tsZW2x/var4DOdGDvXlG7Zs+Q214d/jIPERdd8wJu8CwGa09ab9l0vcBOl+TmfetZcXWzY 4/3qDU+6obPynqimECmKyd4V0gc882qdjZktbj53M3fcOGYUa8Ez2rfcHaY2pj7F81DRYL 2msMb5LfIAQ8s46wRv9Q4o/1Odg72f/cYeEon2+WsLoDPiPDH0eNipkUBU7xHQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770737805; a=rsa-sha256; cv=none; b=xWP07aIVt1hpDLUvlMZ1DcTMUi6tbWtW48se4Ny3ZP7ggI7C3qaWsOuunH4tuSH/Q5x3oN ++lWpc1clpBlhzmL3VNNN9l3SJyFlNtdpenT4NFhI/YELI8/eLabZOWi86WixkrjWw8dOf s7Y/Jj9vkdSmEXQLig6RXVsyJKPJIpx+hFTkyJOiBcZTxNNCXCiEgyL7uojPcABE+d0u8V lkaSd48YbB8H6O1Yt0xEiGDsxLoE2G4BNMw2pW3V66FATSgOjZgCBPtT689yLa+K7lsL/s IxelAk8XR/WoPIBj4n3Q654LDD0O8FgCCPYjRtt7xTRSfKo8ySsLSFVBhUrImQ== 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=1770737805; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ikEf3f2YNeojv/N6bWdCHOsvuuEBEHTOw6YciwxHu2g=; b=uPsLhF7a92BNdy6B/0oF3hZcIsddSxIJSgQ8FS0Umfbu/ugZxLiEz8HgHvjRE3JiUfJAPD cbis2uo5rfPwk7nOts9zqyo5PMndbGvetrqEMsJuquicJVLBZ/Qu4rMR+fqlsDq/BNjr// VCVbRnlNh5luIrbm5wNlFfg3OyGJBcpLH/YtOeCV/vgMzNb2Ph8kDlwsRCv/TzPPuPCQYj N2Y01p/mXnysNyUdVeUG7dva2icd1flLIf7CKhVqYMIaUc5dBqsOvafnF/xNLsK9ke5B86 t3Mak/ETQT1AfXviTOixiN1ao89Ik+/koFV5kwbCEehMR9+iLyWE1DV+XHboFA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9Qf46cM1z1Nbd for ; Tue, 10 Feb 2026 15:36:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 43cff by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 15:36:44 +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: 9c99eacbc33b - stable/13 - diff: Don't compare a file or directory to itself 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: 9c99eacbc33b357a0f80603b2e17c927a689fa78 Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 15:36:44 +0000 Message-Id: <698b508c.43cff.637d5fb4@gitrepo.freebsd.org> The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=9c99eacbc33b357a0f80603b2e17c927a689fa78 commit 9c99eacbc33b357a0f80603b2e17c927a689fa78 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-05 14:39:57 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-10 15:36:24 +0000 diff: Don't compare a file or directory to itself While here, stop abusing struct dirent for something we don't even need to store. PR: 254455 MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: thj, kevans Differential Revision: https://reviews.freebsd.org/D55113 (cherry picked from commit 590126789c841d80655869bc075c8980c173dd1c) diff: Fix build rc must be defined first. Fixes: 590126789c84 MFC after: 1 week X-MFC with: 590126789c84 (cherry picked from commit ee44ab936e84bacaa49847d36aabdf280f9fecce) --- usr.bin/diff/diffdir.c | 14 ++++++++------ usr.bin/diff/diffreg.c | 3 +++ usr.bin/diff/tests/diff_test.sh | 19 +++++++++++++++++++ 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/usr.bin/diff/diffdir.c b/usr.bin/diff/diffdir.c index 627e5dd9b983..200613927715 100644 --- a/usr.bin/diff/diffdir.c +++ b/usr.bin/diff/diffdir.c @@ -40,8 +40,6 @@ static int selectfile(const struct dirent *); static void diffit(struct dirent *, char *, size_t, char *, size_t, int); -#define d_status d_type /* we need to store status for -l */ - struct inode { dev_t dev; ino_t ino; @@ -236,6 +234,8 @@ static void diffit(struct dirent *dp, char *path1, size_t plen1, char *path2, size_t plen2, int flags) { + int rc; + flags |= D_HEADER; strlcpy(path1 + plen1, dp->d_name, PATH_MAX - plen1); if (stat(path1, &stb1) != 0) { @@ -260,6 +260,8 @@ diffit(struct dirent *dp, char *path1, size_t plen1, char *path2, size_t plen2, if (stb1.st_mode == 0) stb1.st_mode = stb2.st_mode; + if (stb1.st_dev == stb2.st_dev && stb1.st_ino == stb2.st_ino) + return; if (S_ISDIR(stb1.st_mode) && S_ISDIR(stb2.st_mode)) { if (rflag) diffdir(path1, path2, flags); @@ -269,12 +271,12 @@ diffit(struct dirent *dp, char *path1, size_t plen1, char *path2, size_t plen2, return; } if (!S_ISREG(stb1.st_mode) && !S_ISDIR(stb1.st_mode)) - dp->d_status = D_SKIPPED1; + rc = D_SKIPPED1; else if (!S_ISREG(stb2.st_mode) && !S_ISDIR(stb2.st_mode)) - dp->d_status = D_SKIPPED2; + rc = D_SKIPPED2; else - dp->d_status = diffreg(path1, path2, flags, 0); - print_status(dp->d_status, path1, path2, ""); + rc = diffreg(path1, path2, flags, 0); + print_status(rc, path1, path2, ""); } /* diff --git a/usr.bin/diff/diffreg.c b/usr.bin/diff/diffreg.c index 78f3569a0ecc..a44c504304e6 100644 --- a/usr.bin/diff/diffreg.c +++ b/usr.bin/diff/diffreg.c @@ -338,6 +338,9 @@ diffreg(char *file1, char *file2, int flags, int capsicum) goto closem; } + if (stb1.st_dev == stb2.st_dev && stb1.st_ino == stb2.st_ino) + goto closem; + if (lflag) pr = start_pr(file1, file2); diff --git a/usr.bin/diff/tests/diff_test.sh b/usr.bin/diff/tests/diff_test.sh index 181463ca9be7..5e1c36d14ed2 100755 --- a/usr.bin/diff/tests/diff_test.sh +++ b/usr.bin/diff/tests/diff_test.sh @@ -348,6 +348,24 @@ prleak_body() atf_check diff -rul a b } +same_head() +{ + atf_set "descr" "Don't diff a file or directory with itself" +} +same_body() +{ + local n=256 + mkdir a + for hi in $(jot -w%02x $n 0) ; do + mkdir a/$hi + for lo in $(jot -w%02x $n 0) ; do + echo "$hi$lo" >a/$hi/$lo + done + done + ln -s a b + atf_check timeout 1s diff -rqs a b +} + atf_init_test_cases() { atf_add_test_case simple @@ -374,4 +392,5 @@ atf_init_test_cases() atf_add_test_case bigc atf_add_test_case bigu atf_add_test_case prleak + atf_add_test_case same } From nobody Tue Feb 10 15:37:48 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 4f9QgJ337Rz6RW52 for ; Tue, 10 Feb 2026 15:37:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9QgJ2KgYz3Hw8 for ; Tue, 10 Feb 2026 15:37:48 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770737868; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rcCXwCQhT976n3TXb5DaLyxHQ5cQlhxs4nP162sYTaU=; b=ZwL91lVZN9dFfWtD7EiICupBDqUj5jWRz2DAMAYeQ4RnsVvj9Q5N6YUqzLoPGjtOoeodss JKDfPa01tGYgQ4KW7kL9PYecZH+7crrKPHCwoIZHO39DMNJ7OS+mMPS4abX0TQ6bMGh4K8 +GW6692HndTjzolmnyHw4mqoZ4jNLzHl0KpRxnGx+aGl5tlETTKVl5/DbD3qtdU81/kh9+ lDWBl21SZ9wiK+QJB/tYIOo8kq40Eugyw0a79kDSOgQwEiYl7/U1/+EUMH1ebKMzik2vCe J/3ttj9dA1ycPEGHdedzC9zvvRF6lr3fJhK4vxqCsCT2+h5eqQo7Fy9Ax2wLLw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770737868; a=rsa-sha256; cv=none; b=U+FdbaDdW+x0rJM6mfbfHEQBFrCPERnIoolCKlpxi+seXKGowRuyxHYe7MiORpQzMyWgpu D1lQdSJSC09+6OnW/R4WXYrxKDXTPLgNG/cNJWyJbDcR3rIPmCTyT1fXmD5z2B8hn+WIk9 L9YY+Pg5/S1Gy5Lrc4TEyeLyLjCrHi3nM8WAgdl41vvnNrVBzrZhIt5Rx3JbPkAxsa4vkQ p+AfDguY54F8XGiiY5nM8F8tCxjgjeTquBkyekBGdBS3NiWdKE/kEslUwEo5mk+oel2+A8 Pxiv9sNp0aHPS5g/xk81F32+rN8hBbi4Ka1C6tvJx7nLP713SeS33mccDsSNlg== 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=1770737868; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rcCXwCQhT976n3TXb5DaLyxHQ5cQlhxs4nP162sYTaU=; b=YgHKRmqpWSpFK7BFxP1RndP2314aWJ4xTC14IugaaI0hRnIv2TPa4I7ssUDjScMOtZ/STG RuERB6QKs0eDWe21ukXgQASwSyBb7sZZ3xDNEy09f8vS04AedIN5oCbiiqd3MpOYhPjuGn 2U4cA4JXJufeIJEhgBR16wQQfPaVE1ZiLxtDB1Iml1ec1uidXVgNtLu8uBtstD/v4i1Nqn oagZ6det6bsSAiHMo6BDRlBNApO/6RstiBOLKrjEdpf8X9Pgr2hOx1N1GCAWVfaMRXQ/gq ePQRjXJ4cGu51+cxFUecRp9g3R/BXdQPhmYRCBH9SFwGl0VaYFERUFHI9NjL0w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9QgJ1sNYz1NnR for ; Tue, 10 Feb 2026 15:37:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 44d71 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 15:37:48 +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: 6cfdd559a51d - stable/13 - diff: Correctly declare 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: 6cfdd559a51d5fa4dd0590e00939922313232727 Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 15:37:48 +0000 Message-Id: <698b50cc.44d71.18ee6fd@gitrepo.freebsd.org> The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=6cfdd559a51d5fa4dd0590e00939922313232727 commit 6cfdd559a51d5fa4dd0590e00939922313232727 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-05 16:21:22 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-10 15:37:40 +0000 diff: Correctly declare tests Sponsored by: Klara, Inc. Fixes: 5fc739eb5949 ("diff: Fix integer overflows in Stone algorithm") Fixes: 270492602b9b ("diff: Add test case for pagination resource leak") Fixes: 590126789c84 ("diff: Don't compare a file or directory to itself") (cherry picked from commit 157d6664aeb815db3b758bd3038fd1512a0f4e2c) --- usr.bin/diff/tests/diff_test.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/usr.bin/diff/tests/diff_test.sh b/usr.bin/diff/tests/diff_test.sh index 5e1c36d14ed2..4d9233da1b1e 100755 --- a/usr.bin/diff/tests/diff_test.sh +++ b/usr.bin/diff/tests/diff_test.sh @@ -22,6 +22,8 @@ atf_test_case binary atf_test_case dirloop atf_test_case bigc atf_test_case bigu +atf_test_case prleak +atf_test_case same simple_body() { From nobody Tue Feb 10 16:00:19 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 4f9R9J0WFHz6RY10 for ; Tue, 10 Feb 2026 16:00: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9R9H5ZFqz3PmD for ; Tue, 10 Feb 2026 16:00:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770739219; 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=gbfzQfR1S8+ve19TUMv4/+cfp047S0j9Q5C67sIJBok=; b=ZlDArCxgqTf47ks+pjXaAZXBAwX8wVZ70y2MMWrIkbhVc8zLR/OCI6Qto63/lkzPDNlelG ni+PZC12HxbNHFQv/lPaHVMG47GF+z7AYaVf1NnSG8Bi71WrUmaBr+Vs6vJD3R0L8i2L6C Os5+s2krbBPpA+5dqP6M/7qfSSti73Z49qvZAVNfdo/qZzkEIhJRoWdISBT0AZFqhduX/P optJ8tRoSlPQ2258JKBlzNLEvV5wOuo5wObHoTDXL31q63exs22hnkNp9/h5Uq4pPt82uO pdTPvfSvj44rD19D7tYLztZXxysjDpz0CNCLXXknutF58x/HJ/mkTt8kjTZEuQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770739219; a=rsa-sha256; cv=none; b=DlX8lW7PaW2BhUpR6pU2K77OZc07ufTfPN+xqvyqAn/gldmzure0zEvY5hSKACpLwjwtjy cYsVstuYCGohl1y0873DtQSSDjU7bMSGWywEnsBTDw2tx5SRdHYiJJrJrA6Wz2mTcTVReo TuKUhl+d3Rbbe86v33TD5lSqAwkJj/5qVGkSxkoR+xXoCr2Vly07Nw9tRlypsfX1eqK8YV xcPiclbcfQSQD9n8nj+AMd1d9n+J0efCwG7FA7eEnjd/OF9azuqGqWbm2//uUvyegANQpy XrxevXvj7ajtU0MIzPW2zU5LPZNfd8tuxv4XJmvqoupCpEplfrMiAoIl2ZRpLw== 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=1770739219; 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=gbfzQfR1S8+ve19TUMv4/+cfp047S0j9Q5C67sIJBok=; b=HLe/sM2Lu62LlPljiRneBHt/s9DbKBdMsnxUPZZHW8qEalPVZBzrwdN+X4pQqC517+r2hl od6p7PcpzNAlItZKjr4LS40rJRrgL8A1msBnEeFVZA1qy1wmRq6sjIUqb7G91ALZUcqdLw NbMZ60U2KI3PAaQJ95DroxIOHKeSQsnakstdz8AnC+8LGW74/aGpxywwA4CPpV7LavP1H/ LODKWKlxbNVpOcX28cO0VupGpPWOBGQYJEpSpsvmDPChAARR7vBgZfkGGyKfJ4xaa5gpSF F/HthHggmwzsiDzVDwKfhchfkwKI87W2g1cgYxsiYrsdc/EAIpitbycOWujHQA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9R9H59Ycz1P7k for ; Tue, 10 Feb 2026 16:00:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 193c0 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 16:00:19 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Mark Johnston From: Colin Percival Subject: git: 61dbfaa13cfe - releng/14.4 - amd64/conf: Remove a config committed by accident 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: 61dbfaa13cfea0e867fb304bf28b396a28b5b9c6 Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 16:00:19 +0000 Message-Id: <698b5613.193c0.23e5dd9d@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=61dbfaa13cfea0e867fb304bf28b396a28b5b9c6 commit 61dbfaa13cfea0e867fb304bf28b396a28b5b9c6 Author: Mark Johnston AuthorDate: 2025-06-25 12:50:50 +0000 Commit: Colin Percival CommitDate: 2026-02-09 21:37:40 +0000 amd64/conf: Remove a config committed by accident Approved by: re (cperciva) Reported by: kib, kp Fixes: 350ba9672a7f ("unix: Set O_RESOLVE_BENEATH on fds transferred between jails") (cherry picked from commit 3ef39f58e5d63a78fd1c37e6c62d599bc68d5e1e) (cherry picked from commit 302120bcb934ea150555362326c812353fb72eaa) --- sys/amd64/conf/SYZKALLER | 5 ----- 1 file changed, 5 deletions(-) diff --git a/sys/amd64/conf/SYZKALLER b/sys/amd64/conf/SYZKALLER deleted file mode 100644 index 965841313616..000000000000 --- a/sys/amd64/conf/SYZKALLER +++ /dev/null @@ -1,5 +0,0 @@ -include GENERIC-KASAN -ident SYZKALLER - -options COVERAGE -options KCOV From nobody Tue Feb 10 17:56: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 4f9Tky1YZXz6Rj6w for ; Tue, 10 Feb 2026 17:56:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9Tky0vhRz3fly for ; Tue, 10 Feb 2026 17:56:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770746170; 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=Qzj4b6AEnBA58TgUbnox6fJUPpdiGf6T4VIPmWDSvXU=; b=c/0ayAP/nuP4U0O97ffXWWoYR9f1h3pq3kwNDMvRR9oJd6Efq3dFY4UjFK3+NbTUWlhIdH W3x4Ll0QkukvC7OgkC0SoiW/MgjbYWNPPX7HmB3b4qQog1DGTGZLYORLseQ1hRTvBdAwtZ kJupBQjUfFUuJS/kCiheTCukucY2toMYJzmJmeYt9bG8u+ZzHvGVQbzk8pGXkOaLdZuKrz e++TDj07n+b/H4fgSHFttRHgHZ6t6B3YhuEhVLQ7RSjhfa3bDNEPkgIHue3mXZkN2z2ShQ 0t/xPIMxGn+LawadtdepsJ3YToVyj/l7QoI7JaqP1MMoY0hjUNRvKv0fnurngw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770746170; a=rsa-sha256; cv=none; b=TgUiJlDbDCcfSyVk81H5eygNOhWdp1JyOMIcnJJE+TiGxBlzdUZawBbDu4dC22q5x1XPdr m1HkAmKfJs27FsAOTboXKps8d49+1oyduHpM2cVUIRqA1QMzO6e+DH66TFXrnLcO0lFWE1 LTd66691ePAm6lT3Woy514/vnsPnHNzzhX+asvOVICzoK6mIx9ceDo0YMm8SN8OZNJFW9j HPDsCBD5zZYNSJ9Teo8xNE5tYzu17XEh2WHoLjvfJGMItwO/iDvEJiNbZL7yTge+egvf+Z xnsrz57Y4EIt8BhVMmrgtRmfe+T43Ct8SfUouvxp3gcqIvgjxc3YJ0C51RQBSQ== 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=1770746170; 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=Qzj4b6AEnBA58TgUbnox6fJUPpdiGf6T4VIPmWDSvXU=; b=vDcXtz/LxiJiB0OHLMVV7lNMlq5L5AxzBlB7HJNsjMSHWQNh7DixgMPXT4e8lyz613G7Mk I8yITNl745x6gvTE1FwP+JSzHDFNP+T2RKi+4bnBEea1VTTCMVS1lif12fisRDKSdW/y+e wXGGTKbrBd71llk/KLRLvQWJ38Be4ZAFkXuV/O2EzyYNKqoRu1nZ6jF2za//Z88u9BXOXy COhVKgjkBlSI9BrVd/Zq+uTyPHLVcIDjkZY/EGfP4/swE+Oph63KITtouZPk+Pr8fX/28y UcmkSbagaDbdqzYsG0YPsH9MgNqbF26mT3+LdJCRbEXNjzQQhyVih1iMD1es2A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9Tkx70nRz1RWx for ; Tue, 10 Feb 2026 17:56:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 268b9 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 17:56:09 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Andy Carrel From: Mark Johnston Subject: git: 539bbdbd3b0c - releng/15.0 - arm64: Fix kernel panic in get_arm64_sve during core dump 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/releng/15.0 X-Git-Reftype: branch X-Git-Commit: 539bbdbd3b0c3c235d441024cf28cef3afd6329e Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 17:56:09 +0000 Message-Id: <698b7139.268b9.860c0c0@gitrepo.freebsd.org> The branch releng/15.0 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=539bbdbd3b0c3c235d441024cf28cef3afd6329e commit 539bbdbd3b0c3c235d441024cf28cef3afd6329e Author: Andy Carrel AuthorDate: 2026-01-05 07:50:27 +0000 Commit: Mark Johnston CommitDate: 2026-02-09 16:39:50 +0000 arm64: Fix kernel panic in get_arm64_sve during core dump The coredump logic calls get_arm64_sve twice: once to get the note size, and once to get the data. The note size calculation depended on the volatile `PCB_FP_SVEVALID` flag. If this flag was cleared between the two calls (e.g., due to a context switch clearing the flag to comply with the ABI), the second call would expect a smaller buffer size than the first, triggering a KASSERT panic ("invalid size"). Fix this by ensuring the SVE state is saved to the PCB before we decide whether to use SVE or VFP. Approved by: so Security: FreeBSD-EN-26:04.arm64 PR: 292195 Reviewed by: andrew Differential Revision: https://reviews.freebsd.org/D54532 (cherry picked from commit 93d3ac1daa0ef3ac54ffcd5cc64a14638d04bd60) (cherry picked from commit c70a68bbdbf67e10a8cd8d46857cc6d4533096a9) --- sys/arm64/arm64/vfp.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sys/arm64/arm64/vfp.c b/sys/arm64/arm64/vfp.c index bcddebfaf66e..64f13458e2d9 100644 --- a/sys/arm64/arm64/vfp.c +++ b/sys/arm64/arm64/vfp.c @@ -934,6 +934,9 @@ get_arm64_sve(struct regset *rs, struct thread *td, void *buf, pcb = td->td_pcb; + if (td == curthread && (pcb->pcb_fpflags & PCB_FP_STARTED) != 0) + vfp_save_state(td, pcb); + /* If there is no SVE support in HW then we don't support NT_ARM_SVE */ if (pcb->pcb_sve_len == 0) return (false); @@ -955,9 +958,6 @@ get_arm64_sve(struct regset *rs, struct thread *td, void *buf, KASSERT(*sizep == sizeof(struct svereg_header) + buf_size, ("%s: invalid size", __func__)); - if (td == curthread && (pcb->pcb_fpflags & PCB_FP_STARTED) != 0) - vfp_save_state(td, pcb); - header = buf; memset(header, 0, sizeof(*header)); From nobody Tue Feb 10 17:56:11 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 4f9Tkz3B94z6RhSh for ; Tue, 10 Feb 2026 17:56:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9Tkz1FxXz3fgC for ; Tue, 10 Feb 2026 17:56:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770746171; 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=aHvFp/aYwyGtGeg88zOdUP/n2exu+ZamCETetrgmXaE=; b=snTgqKY6OcmwmlxRk7SSgqjwnImMTYpJrtVwjqVTLthOuW3nobdZPF3ey0pU402QsuH/UN b4lFoZaeuFJud3xuXDHiRj4JKRgcoqVNv+HnAwkX/+fdwEAtzrEY0VKDCQieQoOuQUtPaX /DVpPmkL76lFLs/+Ev8w3Naidwzb3+9NsXhcALbwSWhw92bQPqgeUHa3C5IbT5zr9tLlcf aXhMs71zLPgK4kHLL5NWNGO98Neu2vLgexlFzuokoB1ZLGm7mATM0R84wHhMhLA/V1/RgA Ugr2J+FrMg1Cy4NVz3SghftUYiP1ufSCReOllsjm+L/Fe7hxUkU1Er1sp2jTiw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770746171; a=rsa-sha256; cv=none; b=Uh62Bzd7R+yC+4kooaKMWi6fHgAbpEjfMyOxJXY5wyBsIPQk4xPNriC7KUJn5ghk5NQTlg eSpLKVAIfr8MzSQsEoeokZn3hGHJ0kTLLMp7geLF/wf0atM2FP0oem4qXUc9AHl0B5+cfS ofHd8kUZw9sPBAwdXR5DEJ13FfDjLIOgV20/KbPzCSjCjuDZHaXg0brorIpTN6CbE4Ka5g vgNjkK1DRZL1f8WuXI6Lbn2hTcKsqsrPOXUGDERyIDFhMK5nZx1ogGS/nOzLHRuLK3BZ/U qPjblz9h2Yde08gPFD5OexV/xASzooWBqzGamgpHAR06oG/bcHBiud8NGZz+Qw== 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=1770746171; 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=aHvFp/aYwyGtGeg88zOdUP/n2exu+ZamCETetrgmXaE=; b=xr5kiOxMcy8T9M126kvYnMNJsqOhKYKqfZMEuJGrifXEO9ewDAJ1SZj6c9D2cfBr/5QRUI KjETFrakMkBQZEVY9MKs0vYlVzOsH59Gaa5XLIxlhx+Hr2g6ygqh8Bv/rtCSkyORPp/wcT xubSIGhCmGlknuZj/a2j2kR8/7Q0U7UIRPxA3pHLUisPLX7vQtEPxylVVpeYBhquIpH0aN ibTQCVf2USJarW+YX/6mNMMJDNqqiaV1bFNUsmgHpSdfBpD3fvLJ8mXl3IDoNGJTlnH21r Zgiewszv4ENSmvII2iIniHOUcuGC6XYGkBVXK7Od4L81P6PcGaPM/T+hwoiWMQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9Tkz0p7Qz1SFH for ; Tue, 10 Feb 2026 17:56:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 264d7 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 17:56:11 +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: Mark Johnston Subject: git: e4781e4e6d88 - releng/15.0 - blocklistd: Fix multiple bugs 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/releng/15.0 X-Git-Reftype: branch X-Git-Commit: e4781e4e6d88f73d6fe266eb520c240a343fafcf Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 17:56:11 +0000 Message-Id: <698b713b.264d7.6229df2d@gitrepo.freebsd.org> The branch releng/15.0 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=e4781e4e6d88f73d6fe266eb520c240a343fafcf commit e4781e4e6d88f73d6fe266eb520c240a343fafcf Author: Dag-Erling Smørgrav AuthorDate: 2026-02-07 14:38:34 +0000 Commit: Mark Johnston CommitDate: 2026-02-09 17:54:29 +0000 blocklistd: Fix multiple bugs * Fix file descriptor leak in the server * Fix race between parent and child in popenve() * Don't assume fdopen() can't fail Approved by: so Security: FreeBSD-SA-26:03.blocklistd Security: CVE-2026-2261 --- contrib/blocklist/bin/blacklistd.c | 8 +++-- contrib/blocklist/bin/blocklistd.c | 8 +++-- contrib/blocklist/port/popenve.c | 61 ++++++++++++++++++++------------------ 3 files changed, 42 insertions(+), 35 deletions(-) diff --git a/contrib/blocklist/bin/blacklistd.c b/contrib/blocklist/bin/blacklistd.c index cb6ce6578d9c..6021e70f214c 100644 --- a/contrib/blocklist/bin/blacklistd.c +++ b/contrib/blocklist/bin/blacklistd.c @@ -191,7 +191,7 @@ process(bl_t bl) } if (getremoteaddress(bi, &rss, &rsl) == -1) - return; + goto out; if (debug || bi->bi_msg[0]) { sockaddr_snprintf(rbuf, sizeof(rbuf), "%a:%p", (void *)&rss); @@ -204,12 +204,12 @@ process(bl_t bl) if (conf_find(bi->bi_fd, bi->bi_uid, &rss, &c) == NULL) { (*lfun)(LOG_DEBUG, "no rule matched"); - return; + goto out; } if (state_get(state, &c, &dbi) == -1) - return; + goto out; if (debug) { char b1[128], b2[128]; @@ -269,6 +269,8 @@ process(bl_t bl) state_put(state, &c, &dbi); out: + close(bi->bi_fd); + if (debug) { char b1[128], b2[128]; (*lfun)(LOG_DEBUG, "%s: final db state for %s: count=%d/%d " diff --git a/contrib/blocklist/bin/blocklistd.c b/contrib/blocklist/bin/blocklistd.c index 47c145c7aae1..ffa2ff2d74a6 100644 --- a/contrib/blocklist/bin/blocklistd.c +++ b/contrib/blocklist/bin/blocklistd.c @@ -191,7 +191,7 @@ process(bl_t bl) } if (getremoteaddress(bi, &rss, &rsl) == -1) - return; + goto out; if (debug || bi->bi_msg[0]) { sockaddr_snprintf(rbuf, sizeof(rbuf), "%a:%p", (void *)&rss); @@ -204,12 +204,12 @@ process(bl_t bl) if (conf_find(bi->bi_fd, bi->bi_uid, &rss, &c) == NULL) { (*lfun)(LOG_DEBUG, "no rule matched"); - return; + goto out; } if (state_get(state, &c, &dbi) == -1) - return; + goto out; if (debug) { char b1[128], b2[128]; @@ -269,6 +269,8 @@ process(bl_t bl) state_put(state, &c, &dbi); out: + close(bi->bi_fd); + if (debug) { char b1[128], b2[128]; (*lfun)(LOG_DEBUG, "%s: final db state for %s: count=%d/%d " diff --git a/contrib/blocklist/port/popenve.c b/contrib/blocklist/port/popenve.c index bdff8cdc1de4..e80058a8599a 100644 --- a/contrib/blocklist/port/popenve.c +++ b/contrib/blocklist/port/popenve.c @@ -111,11 +111,25 @@ pdes_get(int *pdes, const char **type) #endif } - if ((cur = malloc(sizeof(*cur))) != NULL) - return cur; + if ((cur = malloc(sizeof(*cur))) != NULL) { + if (**type == 'r') { + cur->fp = fdopen(pdes[0], *type); +#ifdef _REENTRANT + cur->fd = pdes[0]; +#endif + } else { + cur->fp = fdopen(pdes[1], *type); +#ifdef _REENTRANT + cur->fd = pdes[1]; +#endif + } + if (cur->fp != NULL) + return cur; + } serrno = errno; (void)close(pdes[0]); (void)close(pdes[1]); + free(cur); errno = serrno; return NULL; } @@ -125,16 +139,6 @@ pdes_child(int *pdes, const char *type) { struct pid *old; - /* POSIX.2 B.3.2.2 "popen() shall ensure that any streams - from previous popen() calls that remain open in the - parent process are closed in the new child process. */ - for (old = pidlist; old; old = old->next) -#ifdef _REENTRANT - (void)close(old->fd); /* don't allow a flush */ -#else - (void)close(fileno(old->fp)); /* don't allow a flush */ -#endif - if (type[0] == 'r') { (void)close(pdes[0]); if (pdes[1] != STDOUT_FILENO) { @@ -150,31 +154,30 @@ pdes_child(int *pdes, const char *type) (void)close(pdes[0]); } } + + /* POSIX.2 B.3.2.2 "popen() shall ensure that any streams + from previous popen() calls that remain open in the + parent process are closed in the new child process. */ + for (old = pidlist; old; old = old->next) { +#ifdef _REENTRANT + (void)close(old->fd); /* don't allow a flush */ +#else + (void)close(fileno(old->fp)); /* don't allow a flush */ +#endif + } } static void pdes_parent(int *pdes, struct pid *cur, pid_t pid, const char *type) { - FILE *iop; - - /* Parent; assume fdopen can't fail. */ - if (*type == 'r') { - iop = fdopen(pdes[0], type); -#ifdef _REENTRANT - cur->fd = pdes[0]; -#endif + /* Parent */ + if (*type == 'r') (void)close(pdes[1]); - } else { - iop = fdopen(pdes[1], type); -#ifdef _REENTRANT - cur->fd = pdes[1]; -#endif + else (void)close(pdes[0]); - } /* Link into list of file descriptors. */ - cur->fp = iop; - cur->pid = pid; + cur->pid = pid; cur->next = pidlist; pidlist = cur; } @@ -200,7 +203,7 @@ popenve(const char *cmd, char *const *argv, char *const *envp, const char *type) #ifdef _REENTRANT (void)rwlock_rdlock(&pidlist_lock); #endif - switch (pid = vfork()) { + switch (pid = fork()) { case -1: /* Error. */ serrno = errno; #ifdef _REENTRANT From nobody Tue Feb 10 17:56:12 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 4f9Tl03fg7z6Rj33 for ; Tue, 10 Feb 2026 17:56:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9Tl01lb4z3fm3 for ; Tue, 10 Feb 2026 17:56:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770746172; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nLUnqx3AYyqZC8yfbRwP412sqabkWkDEPhX+VHUL3yI=; b=qCAtTq1JhHHww3ElHMqesoZPEJGKaqPL+L7iV1AUZtUb7gv4pJ8OSNs77TFGqiHqJjqPFd gJsD9WkGTHmPT+kEiWq60UDCgo1jbCyjbSEEYJEsX1T25C42qJQc9Bo8rj8gxsfhh7uZQ8 cVyKO8ak6ETEhbwK4HYEF8xe/FnQKyDN5UsxUSVrHLkTLO5JI2WTDgtvyhnFpB4TVfnfNG JffF1wMm9ds7fIbtLnlMSzYDWpzQAeEROK8RUFVgURWVvqzedeFvcy6/vZVPmsW5ZBKus/ FGdlPB+LPNLQz2yVzzMN0LfaRzqwg9wqyjPkMHNwrSUSDkjB7M2kJ02XzMrybg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770746172; a=rsa-sha256; cv=none; b=vMP/BOVP4YNAy0SvUwc7+LuEVzVutBIHBIpofjLF1hkJkgwUWqq6nHDHDDmCDGr6rCrhbf +v2tmvcmWHTsLPRzKra+E2oUEqQegAMNjYb7UfHkf8t/0Qd5Qp1jaA20Nqf7RXFmWFoHlP H8pQD2uZ5kavhtqMbXKXWH6XkcCO9z2zM6Oe3R6nwXRlpqk7E3yJVS2Hqa4/NWv1QpnkbS dLuVHdeV4RVy1cqoixhc3RvXIiGWlN4EgAqUGRRiU7aG8h7cHjHzOZvWwC60KzCYfPsfMY txRKWoY7xpeqVCEcOWuZnbrKO8clqb67+eJ3hI/mVnoM39sy9Ntb4cLjhfc6eA== 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=1770746172; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=nLUnqx3AYyqZC8yfbRwP412sqabkWkDEPhX+VHUL3yI=; b=LLqiJVqI2ARrWzHP8cYCO1cBQN21yxBZ1OAmvwhvwajBAbwJPBw6rKXPSRFsTucerSXeWt hoWKa9gihx2oXGneAyCBcOGai7BSCRxzxH+EKQC2S/0tlujClCtTtf41WFFZ7jSzRiy481 j4IBojt8Nfat4AsAxsNmXz4FCi1t2mThCdcY8FaV7Menm4wk7jd3Y8+N3OviJPSZT2Lsc8 xeHkW6ZstjKV4vWDo+iSEMASVOzQM+yxgGKgL7vG7VWG44LTtI1dyq49fV19zgVvCbCS48 Hde8RCKALcmF/r7KTpBXydUiwGN8DuOfutASUHB7pRNJ18RFyCEvNCdhARzO9g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9Tl01GxBz1SMs for ; Tue, 10 Feb 2026 17:56:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 24a41 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 17:56:12 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 5cf7232732d5 - releng/15.0 - Add UPDATING entries and bump version 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/releng/15.0 X-Git-Reftype: branch X-Git-Commit: 5cf7232732d5cb047e50233b1d668961ebbbf288 Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 17:56:12 +0000 Message-Id: <698b713c.24a41.747914b3@gitrepo.freebsd.org> The branch releng/15.0 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=5cf7232732d5cb047e50233b1d668961ebbbf288 commit 5cf7232732d5cb047e50233b1d668961ebbbf288 Author: Mark Johnston AuthorDate: 2026-02-09 17:56:37 +0000 Commit: Mark Johnston CommitDate: 2026-02-09 17:56:52 +0000 Add UPDATING entries and bump version Approved by: so --- UPDATING | 8 ++++++++ sys/conf/newvers.sh | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/UPDATING b/UPDATING index 5b75a734fd92..086c4b8e2892 100644 --- a/UPDATING +++ b/UPDATING @@ -12,6 +12,14 @@ Items affecting the ports and packages system can be found in /usr/ports/UPDATING. Please read that file before updating system packages and/or ports. +20260210: + 15.0-RELEASE-p3 SA-26:03.blocklistd + EN-26:04.arm64 + + blocklistd(8) socket leak. [SA-26:03.blocklistd] + + Kernel panic when dumping process core on arm64. [EN-26:04.arm64] + 20260127: 15.0-RELEASE-p2 SA-26:01.openssl EN-26:01.devinfo diff --git a/sys/conf/newvers.sh b/sys/conf/newvers.sh index e5ff3ffbba09..3132de9d99cb 100644 --- a/sys/conf/newvers.sh +++ b/sys/conf/newvers.sh @@ -51,7 +51,7 @@ TYPE="FreeBSD" REVISION="15.0" -BRANCH="RELEASE-p2" +BRANCH="RELEASE-p3" if [ -n "${BRANCH_OVERRIDE}" ]; then BRANCH=${BRANCH_OVERRIDE} fi From nobody Tue Feb 10 18:38: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 4f9VgF0mQDz6Rm8w for ; Tue, 10 Feb 2026 18:38: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9VgD65S0z41LX for ; Tue, 10 Feb 2026 18:38:00 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770748680; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sFhquBuWNClytuQgwc/jgmO1FVr6TzlnG/90mfrwa34=; b=i42mJhQco7+aAAmmjyq/6H9uI8WxESTHz56X65qBZvKqkQa8xSgJgZ0Lu0QpFiymsEDkXt 2Y0UxrbX/O+PMfhA0oi4i69Gais7roQgdjizgYSnn65RJjg/iN/42OpCBOxn2ieq+9LFG1 BBCd08iUvmia+ynFD63IkvmrtvBI/9+1oZSVORP1ZhT2fjdCUmuNzx9f/iFJX5t4sRfG2p BMB7/rW0GfYLrpKN0ye5v+vmfGNukEazl6uRe+nmKstZFZ8fN7CbdE9WorXRSDYF9MW2ga QDHl2DEnnf5tOqmGVnKDLQxKHMbdaC61f2jJmJs8qf9dwoSux/jgINfZASZAvA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770748680; a=rsa-sha256; cv=none; b=Fs6H8Nwfcbmta3B0qAM1ugzySHwqJXda5inqTk6vCLmfhftCgeepv9tbFG/MiBKn4Wc7bE A2fdhM5Env8R9xWkhE6q6OqNq6k6JvtQXfoYSa6f0D5ZOE1SwH60O1Z2sglVU4UyQT1io9 qihFLW7bj4NVPqrSb3JZ+gUSPjWFyUNGm2TuprpXjB8POva0CrI5pIkFwA5EM1q6U0kzom R+2SngihczKNFC95GpR/J9eN834mnodCBDObAKrKDxUpIFJZYWpZjgBwwwrbxVFck916Zm PaNBTbRgldEtP3QAoQoVDf4WhYjSCd5fnu1P0Hno/LF/g9wsmFopu94pY66zIg== 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=1770748680; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=sFhquBuWNClytuQgwc/jgmO1FVr6TzlnG/90mfrwa34=; b=OcE3ThZ+dY5dLCxRkJY6j7zDhnT+pylCLTToqloyNxG5yZHoA+IYVAQ63JqSkVtRVKlyrY /FlQFQJkLWVLm53xSOI1eh0AXjB3s0uhQwUsltlNrXza7ShZpR1IuhfZV1tnWT17yzVXc9 0VSHRVJjqsXbzv1KflbEU9BB0CusCQ1hHJW/i0B4tuK5xqZteaDXsiMkBtNXOnXS+Eh7UG QZHqvpeooF6xxBj37CF4gUxwu1eHfHZ9ToJfHkmEBLE6N+ytMzgWO0fs++rstU7EL1RjEP T9mSPFhJMDVkAYlIw/YVoNj2ifGur9rPqTmsUhEcOO1rvvXgdV4Rjui1W1G4aw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9VgD506wzmW for ; Tue, 10 Feb 2026 18:38:00 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 32c44 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 18:38:00 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Mark Johnston Subject: git: 05c5769e4b64 - Create tag release/15.0.0-p3 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/tags/release/15.0.0-p3 X-Git-Reftype: annotated tag X-Git-Commit: 05c5769e4b646aa2e6fe7fd814ba8e20d2a2a813 Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 18:38:00 +0000 Message-Id: <698b7b08.32c44.79119a6a@gitrepo.freebsd.org> The annotated tag release/15.0.0-p3 has been created by markj: URL: https://cgit.FreeBSD.org/src/tag/?h=release/15.0.0-p3 tag release/15.0.0-p3 Tagger: Mark Johnston TaggerDate: 2026-02-10 18:37:11 +0000 Tag FreeBSD 15.0-RELEASE-p3 commit 5cf7232732d5cb047e50233b1d668961ebbbf288 Author: Mark Johnston AuthorDate: 2026-02-09 17:56:37 +0000 Commit: Mark Johnston CommitDate: 2026-02-09 17:56:52 +0000 Add UPDATING entries and bump version Approved by: so From nobody Wed Feb 11 05:17: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 4f9mrk1w8yz6Rtxg for ; Wed, 11 Feb 2026 05:17:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9mrk1Bjlz3Rqc for ; Wed, 11 Feb 2026 05:17:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787030; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ME3ewYsCZ7M153bPLiTJVJnrdVReaebH694EbSTUeno=; b=f/HFPY6auOPf+p2XpHUQoeRPJMEDVdHyMyehT9y04AcjC2xyMnStyUBOpuapy4euRbxe6M 18QrVJIXsrAmqB2RsjcZm2U2bN/IUgxgxE2YStH/Q/fVhdKnR/4l9p/LVd/bekDxwsntd8 aad61ETrQN4HC2uqiHq35rVH+luOnvVh8DwQLUlYb7tr7M8nIYqeexQEZ/pOD4IsNaedfo HJigSrEHia4yuAY3YwpGlDlalmhH9iezbAN+sdeQwcSg+199WLr0UfXGAmx8JgqzIwptLP hMB2xdLq/zM93gFxpJZAMPl25mE4u6puTegYXJ/vUV57bhwNR95zLAr0eM7sEA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787030; a=rsa-sha256; cv=none; b=MTVXsXJGe/cba/E8Tr+5ewrANMSbxvRRf5KQyldp/sI8gLeF9wwLxpZUvNdYgvZOSOfnoL Eh9CMpMGKLFxs93jBpdU+IxpYFvjESo8/wsPPf7fWYstmkUxfb+QO8uNM6nURKn4Eq0YVU 9iDayDQnPvr1l7iQjivUIVTmkkaypT89BvDOg6eaFJPlpW63YczXNFT40+jNTEkAY7dYUr Z2wR4Up+NyUALLvtSMuE3OjXQ7of6xCPn7/sSAGcF0csbxndXqu1sampJNoro6f49Bwhns O/rJDTNhnT/Kpp6VS6VeCKDJQLAPsvZR3u07kqoPyc1qJS+7qQ+Qs1861KrDCw== 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=1770787030; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ME3ewYsCZ7M153bPLiTJVJnrdVReaebH694EbSTUeno=; b=vCaMbTqdl1BZG0kc867zyKWFoWejq50yl7pfQ54NJahTJe2kWU+NvoNHufLm5slo9wH5oS Xm0skWtfMn6ZIHS8O0u752408TTRgp4I1o1r1QihoRaCwSIGMaYK0b65GHCNEFUgz3UmAi GuwZDsMkdCZlwyDAs790mmtZ4hGDA10RmwI+HAhc83eKEgh2eJs9jvn1BV7keecsbeqrns lupJ1SCj/ZP1fsbITQ4TnTBgENO27ICQmx4f9mT6V7n8yhEnj3v+YqkgIfsolor48CoJVe MthfCx6LLN6STIfpiEBPevCywJx9KgRneS1xYnJAYSjh7d7+rhbWqeE2EBEX6A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9mrk0DMXzcT7 for ; Wed, 11 Feb 2026 05:17:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 256a5 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:09 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 5ea48d669304 - stable/15 - arm, riscv: add a preprocessor symbol indicating missed support of ifunc 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: 5ea48d669304947946a09148bb7ad3984159890d Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:09 +0000 Message-Id: <698c10d5.256a5.44dbabf5@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=5ea48d669304947946a09148bb7ad3984159890d commit 5ea48d669304947946a09148bb7ad3984159890d Author: Konstantin Belousov AuthorDate: 2026-01-23 21:33:07 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:35 +0000 arm, riscv: add a preprocessor symbol indicating missed support of ifunc (cherry picked from commit 03d61fe9785793cce9324fd4e6019562586760fa) --- sys/arm/include/ifunc.h | 10 ++++++++++ sys/riscv/include/ifunc.h | 2 ++ 2 files changed, 12 insertions(+) diff --git a/sys/arm/include/ifunc.h b/sys/arm/include/ifunc.h new file mode 100644 index 000000000000..6b7cf20c720f --- /dev/null +++ b/sys/arm/include/ifunc.h @@ -0,0 +1,10 @@ +/* + * This file is in the public domain. + */ + +#ifndef __ARM_IFUNC_H +#define __ARM_IFUNC_H + +#define __DO_NOT_HAVE_SYS_IFUNCS 1 + +#endif diff --git a/sys/riscv/include/ifunc.h b/sys/riscv/include/ifunc.h index 0f9747a2aa14..0d91014ccce8 100644 --- a/sys/riscv/include/ifunc.h +++ b/sys/riscv/include/ifunc.h @@ -30,6 +30,8 @@ #ifndef __RISCV_IFUNC_H #define __RISCV_IFUNC_H +#define __DO_NOT_HAVE_SYS_IFUNCS 1 + #define DEFINE_IFUNC(qual, ret_type, name, args) \ static ret_type (*name##_resolver(void))args __used; \ qual ret_type name args __attribute__((ifunc(#name "_resolver"))); \ From nobody Wed Feb 11 05:17:11 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 4f9mrl2b6jz6Rtmc for ; Wed, 11 Feb 2026 05:17:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9mrl0rkQz3S7X for ; Wed, 11 Feb 2026 05:17:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787031; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aCUFSG9iG9b4B0kFcaK3tnN7zSTvt30LJfo96e5025c=; b=pR9sZsu+Yvy+KrocWS52Q2cPvGcQc2qUr5pVOjEi+UT4X+ZZ8iB3j2IbZFhw2Cpx7ApNtk 95kHtgfBKJOlOL3c8fM1mSJouNWgai3uCwU1XgPTS5jTld0mZceZIxSSkU7yvRfIcN2dZv DXQcUL/kYk+aot8F0pbNITvhVvTDDfAufwqkP+GWJN20YBB07YCl+ibS8DzHmFQgYIg6lY GXfix81sKb5Fn0CWrWQAmRehNlyy4YeWmWDtRGgyKIl/82wSDrUEXHO1YN9ZuLTZUvgEZu Mvq8gbZddKyJ3IJ4jfl55whMJMOjmPJIGzKEzu61504qeae7AREZaJN23NhAJw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787031; a=rsa-sha256; cv=none; b=gkS8xwJIv4FXwviFxciyXKOSojz4uTn83gXxJl6Jwzg9xnJ64QSMNmlOjN3KplqHBYb7OY wMya2RmqZCQC7LetKttq7nOP6PTOXwsttVa23kFldeGPZu86sCfQ+3RZcEuSe8OCp6wzxF qXoMbHvpROcQUe+zdfM/jV0qItv7LzvElRg9wPXBG78sYEB4q36jKELKb1rKmlW5iNeD89 gy3mIXJruyfMzs6fgJSxkeTiq3F+/kgarDI0o31j+fdfzebDXd2qrtQZ4rIcqglXddc63/ Tfrv5sUBWXrxcsVUxMmB2VhPyYtmJOjbH0EyAK5BunQ7pwPEAuNG1RUtuaaEHw== 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=1770787031; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=aCUFSG9iG9b4B0kFcaK3tnN7zSTvt30LJfo96e5025c=; b=yEFmu4HOX1zLTG/AwZBOtSPwTSVOaA1/ue46t4C5bgQZ/Eb6dYxg5BaIBXY+4/zpdh0Uk8 ZK3vKtXrLGjvPEMlwzLFLy61CZW96Mgv3DQm3sSftGt/QM3fORsgr+GbQN9D+xBFjg1o/4 RyknRLky3555fwHG7s20fyBHrSAe9xB4kilZszPpcDcfPf6Cgl86IwqN0jcolnzxgB0Q+c Pxp3McvxFDhPOZNZ/Nnnq5pnq1wt9hxt8UFQ1fbjdg6TYmi+y+LxWN/7pF/pKm+RtcjxHs zyU6Vj2Y0hRUmUwQPDz1sQrDCYP3Z6KHJm/7Gl7P18V2duxjRfpU5fDDblKnlQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9mrl0Rx8zc60 for ; Wed, 11 Feb 2026 05:17:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26640 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:11 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 22ef6c1ab582 - stable/15 - amd64/machdep.c: remove extra empty 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: kib X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 22ef6c1ab5822ef323e1adc7c10775fe82b2d067 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:11 +0000 Message-Id: <698c10d7.26640.710641cc@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=22ef6c1ab5822ef323e1adc7c10775fe82b2d067 commit 22ef6c1ab5822ef323e1adc7c10775fe82b2d067 Author: Konstantin Belousov AuthorDate: 2026-01-22 04:39:54 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:35 +0000 amd64/machdep.c: remove extra empty line (cherry picked from commit 23266bc9928f16fef292f6ab31d7cd8b7ad2ccdb) --- sys/amd64/amd64/machdep.c | 1 - 1 file changed, 1 deletion(-) diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c index cae58181000f..8daa9c250db8 100644 --- a/sys/amd64/amd64/machdep.c +++ b/sys/amd64/amd64/machdep.c @@ -322,7 +322,6 @@ late_ifunc_resolve(void *dummy __unused) } SYSINIT(late_ifunc_resolve, SI_SUB_CPU, SI_ORDER_ANY, late_ifunc_resolve, NULL); - void cpu_setregs(void) { From nobody Wed Feb 11 05:17:12 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 4f9mrm4MZBz6Rtsf for ; Wed, 11 Feb 2026 05:17:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9mrm1fsWz3S7f for ; Wed, 11 Feb 2026 05:17:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787032; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=q3X3FnO9aq0BKDUZCm9wWIl3itud2pWdf/sGJhkOnnE=; b=yyhn7hI2UJEwgHvB8Gu/MwFU7NEpJEmGiWoVYqJKhM+WmriseKyrGIMrv2SOarq5i3umrg igBf8mSbGoagRFwsUcSmydbU2vN6uJ0wuJCbe6EPhgTwQBUjNfY0f9Ul8tggBIf8reD04v m0Rg231Gg7THYzmcGGwAZpA57m6yuo7mOAaz+4KI5TmJxEZNd34lPXy1vpqh+df7hc4Ksm bTTFLQR197ZYkjihROLu3Vh6Wt8rtscEm+x2rcRG1F4oCJF+EumUJXU7ZxA1DlLdr1Zy03 rpIdolstCPvfIsYme3FA6SvHjCDaWkr/6g4bFD9UJ1WW+6WQFal4eKWSa+U91w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787032; a=rsa-sha256; cv=none; b=HwLqFniTvtN1I4bH23VhV1p7VFAN1FIYXFSPQXdHACarknzUhAqPDmiyrvnr29sGYtcDve ZoBXBhUBJWcSgHbjE3XtKGTGQEyFcnmpPRhBV6RYpHpJjwxhTgQyKqnAUTCUNGIgBCxDc3 xlbvnc9q5Jm3tVbMAyV2YJ5aI7D/yKb0Ki8WDOcnydResHXlsl9+kP+URai/KY6BbLxFm8 W3U+CwTFSNr5Eq56u3TXjoVp/cYsHR2bX9BqNEs3Ie2Ptve+zlwjSWV15w7yb/EebL4d7Q a9BR3irM8+QiRXv3+FfoP14qxUodJHq6VLBlG3z5G86s+9qzTvKUupMNK14e8w== 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=1770787032; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=q3X3FnO9aq0BKDUZCm9wWIl3itud2pWdf/sGJhkOnnE=; b=NxbZjfQ22UQY81cWZt/2hki1YroEyHMdSuz9X7ALTa+jFfRFUBfkBAwOplx7YwwGMY1T2t V4IcTI6Fm1JJvZ68KwUB1fxDdlFPO6pdeFlP9hNjxdbg8o7VbmntlNSQTXGgaTARpK4W1R 56b9Di5NWiiGXYHHpPR6AwmmlzJTW/G0gPwQWeKrNLebqi6/Z3D9bSlg8Q5EuBQugW+SLD Z2CpyDL+nITzhHV54d1rGHGcDWLl5W0b+VAsRKSjMGjhNomyWsrc+ovELQtZI+L10kXAsA t+liQfbrOqpZ+C001Dj4HBmHwFOrTgrqtb1sCduDFEiWz7hOWEIxF3iKqI0u8w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9mrm0xyWzbKT for ; Wed, 11 Feb 2026 05:17:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 264bd by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:12 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 87dbcdcb712a - stable/15 - maybe_preempt(): make static in sched_4bsd.c 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: 87dbcdcb712a5130c71e1670fb6611368c1d2017 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:12 +0000 Message-Id: <698c10d8.264bd.9b6d581@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=87dbcdcb712a5130c71e1670fb6611368c1d2017 commit 87dbcdcb712a5130c71e1670fb6611368c1d2017 Author: Konstantin Belousov AuthorDate: 2026-01-22 05:22:15 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:35 +0000 maybe_preempt(): make static in sched_4bsd.c (cherry picked from commit 57bb132e98b0736d15881eb80aba6c2c5dd8ac28) --- sys/kern/sched_4bsd.c | 2 +- sys/sys/proc.h | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/sys/kern/sched_4bsd.c b/sys/kern/sched_4bsd.c index 504f9a2338ef..e40b5c6c6b7f 100644 --- a/sys/kern/sched_4bsd.c +++ b/sys/kern/sched_4bsd.c @@ -322,7 +322,7 @@ maybe_resched(struct thread *td) * determines if the new thread should preempt the current thread. If so, * it sets td_owepreempt to request a preemption. */ -int +static int maybe_preempt(struct thread *td) { #ifdef PREEMPTION diff --git a/sys/sys/proc.h b/sys/sys/proc.h index b27b67999e8b..0c9658fff725 100644 --- a/sys/sys/proc.h +++ b/sys/sys/proc.h @@ -1173,7 +1173,6 @@ void kern_proc_vmmap_resident(struct vm_map *map, struct vm_map_entry *entry, void kern_yield(int); void killjobc(void); int leavepgrp(struct proc *p); -int maybe_preempt(struct thread *td); void maybe_yield(void); void mi_switch(int flags); int p_candebug(struct thread *td, struct proc *p); From nobody Wed Feb 11 05:17:13 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 4f9mrn35nYz6Rtk3 for ; Wed, 11 Feb 2026 05:17:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9mrn2B1dz3SCr for ; Wed, 11 Feb 2026 05:17:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787033; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Dr56eUBIz8UxHviaYcI7EHK8t6nKh0pELuBxJIzabW0=; b=ecnsNxQ3V6XywbHwLkfTbAi5w61Y4FV68Wn699VR0U7CacZWTRkNlrPARvBMO08np+b5ln 6Vjy13V4wDBrNg0bAe10bWVFGMrRL2wnXUNjs15BhINk2rxQEsaZxH7k5Bqbyg83al5dvp kVdTrp1jGf6uvmxmhWuv/e2T/NkJAdcQ03rXqFabgAw5aFhM7m5O25hLYbvP6oG5Fg26m6 nwZuH6nnr53DPZRtkk8tQcSng7JnsHoabFRBfDkoVP5gSrou9MtAg6aQutSstmH5/YW7pW LDMEb0ibft9HcR+UMQ0TAeSNQJO1xpAfW5CsVfKJ4fOwrmtXikuzFEU7hnPJDA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787033; a=rsa-sha256; cv=none; b=mWEvVP+9h8VFyWiosXpHPQXiJMB7uVk9aSFMRVFWbLMNoqiDOPXQnVYRZ1pvygIi/vX8BN ywoNxh+6j1sL+7CvRDqhkw56zWDdlslLpSG3H1vZ6dRwwryBAOn7XIR3idIGjewk1qVE+8 io0uOs8FAdd2tlNbG5DYTelqk5u2L33EG/v7c/rkWnFXM0dbgNqf/TjE0RqYHBclyoLH1t EAzbnxyMoeuV9ICJkk3EW8Vke3rCTjDqNOAa237y6W3K0QJ9PDmgl+fGcIQhKh+YSVonTV A8H+aYX8vpmfc1vAaE5eCCBw5k0fA9b6wu9vHVQUfZ+3s6Oj3/vV8qpLncO5LQ== 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=1770787033; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Dr56eUBIz8UxHviaYcI7EHK8t6nKh0pELuBxJIzabW0=; b=y2saqslwPV8FLhNaUBWsYXtU6+dkRgbGtfrNt+WF70ogRRWalK9u8LNmQgOzn4J7TUdO/J nDloiH+58HRMNya5OtJgWgzh8yfNT1qgI5Tlg0G1iiVsLK/r3vEa58VI3rugH+U31ORy0A zNS2coTi/ae6LS11MnHadWbH8y/S+ckb19vEsHH/4bzwE78pGXCWuUCkXY+wbTE2VLSQWz 0iS6ntNu7rocDnqNT0ri+eGOj0aeWilNfrAzZ8Ts6igz8M6AMRyauhw5tp3uOLSkLduSTn HuYOuXhENmvSnWvx9xZOZAwAZVuu39KcyzSg/ihzChTpU1xsUC+syRVYibjZ5w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9mrn1dfZzcWX for ; Wed, 11 Feb 2026 05:17:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26444 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:13 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: d62afc2e38b5 - stable/15 - sys/sched.h: make sched_clear_tdname() function prototypes unconditional 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: d62afc2e38b5dda05cb4143ea54d7678c42090b4 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:13 +0000 Message-Id: <698c10d9.26444.293b3118@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=d62afc2e38b5dda05cb4143ea54d7678c42090b4 commit d62afc2e38b5dda05cb4143ea54d7678c42090b4 Author: Konstantin Belousov AuthorDate: 2026-01-22 04:00:59 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:35 +0000 sys/sched.h: make sched_clear_tdname() function prototypes unconditional (cherry picked from commit 8515934ce3c290765df9254003f3c6d79da7e538) --- sys/sys/sched.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/sys/sys/sched.h b/sys/sys/sched.h index 052b8bb85f2f..f3a5d1eca874 100644 --- a/sys/sys/sched.h +++ b/sys/sys/sched.h @@ -174,9 +174,7 @@ int sched_sizeof_thread(void); * functions. */ char *sched_tdname(struct thread *td); -#ifdef KTR void sched_clear_tdname(struct thread *td); -#endif static __inline void sched_pin(void) From nobody Wed Feb 11 05:17: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 4f9mrp63dwz6Rtsk for ; Wed, 11 Feb 2026 05:17: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9mrp3SJvz3SDD for ; Wed, 11 Feb 2026 05:17:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787034; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=iBn51//Z0dXihbSVlbxcOdFwZlRT1/ELu8WpviaqZIo=; b=Pb7Gu5zQWE2dewffJHDV19hsClhzTC19ZnROH/LWOjxKB7ji7aQkaKvndoPNa+6nugUmxP V/Hnyn21kQz3UKigqngSp57JGEsAveXfItD4a1l4iUraJuNMS2OSapOC56ia2DKoa1WvVo drNQCid6J3uNY9VGt0X3mgsxL6OHle5qDgMlvaZKu9709XVk85cDRlgEPkz0heydfBHU14 J/iATjU77KaiPKp1VB/lHMbca0kg4EwLC0hNMDrP3C4RS8aFGm2DfqA1CWarCO3PHpep3N ewLy/s3lMzzmdOL00EtcfB0X6h3/HcyEbxbOzqPUdRj+znCRAfHhHiwKNE8fJg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787034; a=rsa-sha256; cv=none; b=yykQjVZ6j7M+mTPBDe9ddWk6EYWoAXld4ppcUBd8Uh8CrLPMRX7B2FgWXWaRq1wYmABiya 6iT+e4e+F9OPpqRX4P2hKyTLabHIlsjxfzRua0fF3ZrUsef1znG/+W6UBtdPFhkErlKGVt KaL3cwg9Z1IW+iAm0yr2G7fLKC3616RGXA26EDEBmohpln1gTxWFG/loWfAH7KM3UkTiD8 CRAsFN0+LuPUKILR5KOA47KgDpXMEIoQ1gSOUJ8vxYUWdfA5TtiSl6lS0XKeV649QXKVN1 eQP6MV/FqTXv7R/Tr4xh40tAu9AxSYol9KjiLfR0Cox8eNgGuIdMTWExaF6jgA== 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=1770787034; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=iBn51//Z0dXihbSVlbxcOdFwZlRT1/ELu8WpviaqZIo=; b=XhDDOiB4F+2pCviY8Xx9NI8qyE83htMb1vOce6cWk3Pf2H3l6z5UxMkA0jn8tOb+JmXeep h49Wpbb2YE7PA6mVFayT/zlnqjUFpiGJuguYPtgGBegIoRBif6w9v7+BaA1wJaD1aeUsJr pLfN2U1lNV0cHt6EKwBOixPtJFvNI1CecW23pyXg6FAVjHFMlhggUiSbDyp9M2gmtKvYj9 MG6PxDmRlsFSwJ2sswMLnV5F7YymA45PL5lRMzazxcLlk0IkZoQyogyFlFzAkoOBmUSF9I okvrNXoaqWhNb228k70hPq2u8wwbZGqu7RtCT5Y3QJwsCrgm5gynTtwpz40TFQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9mrp2czczcYn for ; Wed, 11 Feb 2026 05:17:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26644 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:14 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 90548e0a899f - stable/15 - sched_4bsd: remove unused function sched_pctcpu_delta() 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: 90548e0a899fdf37f4eb0964112efde0acd1638f Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:14 +0000 Message-Id: <698c10da.26644.1233d552@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=90548e0a899fdf37f4eb0964112efde0acd1638f commit 90548e0a899fdf37f4eb0964112efde0acd1638f Author: Konstantin Belousov AuthorDate: 2026-01-24 01:43:25 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:35 +0000 sched_4bsd: remove unused function sched_pctcpu_delta() (cherry picked from commit 610d7062c60b0f1f7c193e01c5238088b2b56c96) --- sys/kern/sched_4bsd.c | 34 ---------------------------------- sys/sys/sched.h | 5 ----- 2 files changed, 39 deletions(-) diff --git a/sys/kern/sched_4bsd.c b/sys/kern/sched_4bsd.c index e40b5c6c6b7f..482d8884c248 100644 --- a/sys/kern/sched_4bsd.c +++ b/sys/kern/sched_4bsd.c @@ -1639,40 +1639,6 @@ sched_pctcpu(struct thread *td) return (ts->ts_pctcpu); } -#ifdef RACCT -/* - * Calculates the contribution to the thread cpu usage for the latest - * (unfinished) second. - */ -fixpt_t -sched_pctcpu_delta(struct thread *td) -{ - struct td_sched *ts; - fixpt_t delta; - int realstathz; - - THREAD_LOCK_ASSERT(td, MA_OWNED); - ts = td_get_sched(td); - delta = 0; - realstathz = stathz ? stathz : hz; - if (ts->ts_cpticks != 0) { -#if (FSHIFT >= CCPU_SHIFT) - delta = (realstathz == 100) - ? ((fixpt_t) ts->ts_cpticks) << - (FSHIFT - CCPU_SHIFT) : - 100 * (((fixpt_t) ts->ts_cpticks) - << (FSHIFT - CCPU_SHIFT)) / realstathz; -#else - delta = ((FSCALE - ccpu) * - (ts->ts_cpticks * - FSCALE / realstathz)) >> FSHIFT; -#endif - } - - return (delta); -} -#endif - u_int sched_estcpu(struct thread *td) { diff --git a/sys/sys/sched.h b/sys/sys/sched.h index f3a5d1eca874..635e8283561a 100644 --- a/sys/sys/sched.h +++ b/sys/sys/sched.h @@ -114,11 +114,6 @@ void sched_throw(struct thread *td); void sched_unlend_prio(struct thread *td, u_char prio); void sched_user_prio(struct thread *td, u_char prio); void sched_userret_slowpath(struct thread *td); -#ifdef RACCT -#ifdef SCHED_4BSD -fixpt_t sched_pctcpu_delta(struct thread *td); -#endif -#endif static inline void sched_userret(struct thread *td) From nobody Wed Feb 11 05:17: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 4f9mrq5nb4z6Rtgq for ; Wed, 11 Feb 2026 05:17:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9mrq3hkZz3Rww for ; Wed, 11 Feb 2026 05:17:15 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787035; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NdsT5QHgJowDojA8XN6ypffxhPRCu0kBbRIzEKLW7JY=; b=LlvibNVTqiqsRn9KxHMX8B2idlUYc42qvOFjkYCKG6CXK6fU2sn0EucEP5A2iE+pXodRjm rT7qSfKkX1Mfryn7b2Gedd+ODN1F2RwzFlNdKzoyxo3x1WjOgdUCMPVVe/xUh2j3ljCWeC kEbE/EEzTqD0z1ryMu3rQVCY4F9siGu7syMGv1HaJBxoAmZcjr4XK4Cuz0Ga+1Ma7QRbss obUpQOz/oozw14QGl66MwFP+3vLRxWx/JX0OfSJHMR3b7Ozn1u7EoZC9jQlxpzQ6v4rt9r Y4BoNrjB5d84/Pq8wa0Ac5QAWpzUDTIzjh6VO9/ePgJMM2jT7PeL8/POSYXsiQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787035; a=rsa-sha256; cv=none; b=lrPHqHfCji4GEhZz/2kI/1Q7FMPLPP7HMQCEN8ZWeGuJ/LnOGPN8Czc/OOxYqeaq/tL/Bu B4r1UaiGFpMTDElbPEliJdV54dX69c2/sT3x5Mc+4pzV8KrfdbgF34pu6Dc+5azFf40Khu 5n8s3nvbfA5hZtM2Nqm3IkTbdGfJlG/R7xU1T7QCkeu5YQ3xMNwH2NfSRCyPLqbDUXP4Ch GOevt3mb1bIiR5unq6Wnve2DpHKT0SQrP5iOtRywaEQzxB7BDkU9WtogHO/eNxevmTWk5N u2xDDkBTMjzR8xR5MWXyGHddhZKtMyWehawiAa0WM8qnl6Rj8LHvjPSRh+iXlA== 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=1770787035; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=NdsT5QHgJowDojA8XN6ypffxhPRCu0kBbRIzEKLW7JY=; b=iyC/hHMJ9Y2fTHi9dwP89ozKLYvs8QAyrXeXWPtXgTYsAjR0fO2UfE+vuuZ+m3PfDoG0Lq KjI0cyc1tOESseuoXm9suVVDbre2/4RHZPoK1r24j3QGgt353CO8Xjqcdc4O81vv/CDJAr z35uecU4ZR86Cx/J2vF9IaENaOF3UbZsrH5xjUP6TE64DVzwaK2MBdp8/FXFogjnjoLVTR arDnuPJSfJvNuW7fOgRk6W4ToQqzABvuViNXQ+8l8wQOz9IFD5k2GkX714Qh2zXXIluWJ4 upRPb6ajFkJA7bmvNYJn419pTlBupvIBKRuMw6IZ4Z6vqKczU3t6La+TQXNAUA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9mrq3BhgzcYp for ; Wed, 11 Feb 2026 05:17:15 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26648 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:15 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 32a6b274b42d - stable/15 - kern/sched_{ule,4bsd}.c: cleanup headers 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: 32a6b274b42db3f0f5cbf3a25115355e66ad4651 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:15 +0000 Message-Id: <698c10db.26648.298e50a9@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=32a6b274b42db3f0f5cbf3a25115355e66ad4651 commit 32a6b274b42db3f0f5cbf3a25115355e66ad4651 Author: Konstantin Belousov AuthorDate: 2026-01-22 04:20:05 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:36 +0000 kern/sched_{ule,4bsd}.c: cleanup headers (cherry picked from commit a556ec46d313f2ed8facd46280d35875e6e50ebe) --- sys/kern/sched_4bsd.c | 2 -- sys/kern/sched_ule.c | 2 -- 2 files changed, 4 deletions(-) diff --git a/sys/kern/sched_4bsd.c b/sys/kern/sched_4bsd.c index 482d8884c248..066a1bc20d26 100644 --- a/sys/kern/sched_4bsd.c +++ b/sys/kern/sched_4bsd.c @@ -34,12 +34,10 @@ * SUCH DAMAGE. */ -#include #include "opt_hwpmc_hooks.h" #include "opt_hwt_hooks.h" #include "opt_sched.h" -#include #include #include #include diff --git a/sys/kern/sched_ule.c b/sys/kern/sched_ule.c index 409439ca34da..59b59a30acab 100644 --- a/sys/kern/sched_ule.c +++ b/sys/kern/sched_ule.c @@ -37,12 +37,10 @@ * Isilon Systems and a general lack of creativity on the part of the author. */ -#include #include "opt_hwpmc_hooks.h" #include "opt_hwt_hooks.h" #include "opt_sched.h" -#include #include #include #include From nobody Wed Feb 11 05:17:16 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 4f9mrs05Wzz6Rtml for ; Wed, 11 Feb 2026 05:17:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9mrr4hNWz3SNq for ; Wed, 11 Feb 2026 05:17:16 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787036; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/f0/8jcubLMjL8QjqDzTUBn8eA7bZeMhFfm8vMXV7CA=; b=AYVFPxxHz1Raf0aj5n9I3E3Ex0/d1jYcBciasuGEZATL/ln7CXnCdHoUMkmj/mjSL5PPfH vKCPuZoRy9GAGevEgZZbGTRROSpcYwDf7k/tio6TGCNM6x55Os7Gjr9F/Uyg6KuYl6cb/B nEeM24UaiDXUsXx9NrgRMJrtb7iJeoyKbZswaR9jbP83dgGpRyvO2RNDn0G2JKWEwaHfXS 0ETbi52sBrMrybq3CgtSQuC2wsjL8Y6dvI8GcIoPlSmddRTV11SYmMQBgLkhYJNW3pUWBS aZyb9cbxfm6EzPxb/ZKpNIBVNS20pI/aalcjNGMS/xJHg65P3ufaEyXjB4ePlg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787036; a=rsa-sha256; cv=none; b=MMtBwQynl92H5Z28KBtTpi/yfPCTX9AhvSDV5PNv6lCINU598oteerYAEAK1axsm1cjqOw EHTXcv17bDauwDps6NZCefeDvijw2KyTe409o11b98CMLNwCxPM9fr/QaqI7HBcJENJlBo E/k6choiUKrz9wya+Te1/o+TMc4QTESlgwbf2GatJcIDEP4p7y4QfvD5T88NJrwbQrPat+ QAOOAMeZaqavHlJZCh8MqE/vYfGQR2/v+vryW8QsDqnartyYQSZJydWzRKrqcn+PdvFvUk ytEQZjKl+D4sd6amoM74SiHOeu2UG6/ichbbLEQ06cWJl+VyrhsPjd53SlnYfA== 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=1770787036; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=/f0/8jcubLMjL8QjqDzTUBn8eA7bZeMhFfm8vMXV7CA=; b=g1MNH9mqfK1PuTg+o6cuUPmeTkSYCL9Lc7jlK1luPeQETMtrdCEB6X7xrilKeIL4Ga4K5O k0S+8UYtPvGFuUC1JEy8YuvS/7b/5GYu/BgL5AGRGDtiFp4JvxSktAS3i7od89nXMq59EX TdioIPlKYHbTpX2twaODQ1HujFJ+3Uwu8g54resqk1JQRJyDb84LTjfjkwY46C/4IVrGuh mEtHQJlzWhl4avOzyx2AKb84FPsVZ/VOd7i6cb8FWNW742A1q2oAACwNgpPK7SscLgvnjM PeZvZlw8CT0t+RPAvZlOTHtLCLGtw6EIxQpBkdTPOFpcmwXdNsrPWqB+D3uE8A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9mrr3yX7zcYq for ; Wed, 11 Feb 2026 05:17:16 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26449 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:16 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 77be529eab3a - stable/15 - sys/sched.h: add SCHED_STAT_DECLARE() 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: 77be529eab3aacad3e1b9253c75bdea44e82f48e Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:16 +0000 Message-Id: <698c10dc.26449.1c14df64@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=77be529eab3aacad3e1b9253c75bdea44e82f48e commit 77be529eab3aacad3e1b9253c75bdea44e82f48e Author: Konstantin Belousov AuthorDate: 2026-01-24 06:00:50 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:36 +0000 sys/sched.h: add SCHED_STAT_DECLARE() (cherry picked from commit 0b474a48dc5866d94988ed3af24019d7074f5e5b) --- sys/sys/sched.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sys/sys/sched.h b/sys/sys/sched.h index 635e8283561a..8f383840192f 100644 --- a/sys/sys/sched.h +++ b/sys/sys/sched.h @@ -214,6 +214,10 @@ SYSINIT(name, SI_SUB_LAST, SI_ORDER_MIDDLE, name ## _add_proc, NULL); #define SCHED_STAT_DEFINE(name, descr) \ DPCPU_DEFINE(unsigned long, name); \ SCHED_STAT_DEFINE_VAR(name, &DPCPU_NAME(name), descr) + +#define SCHED_STAT_DECLARE(name) \ + DPCPU_DECLARE(unsigned long, name); + /* * Sched stats are always incremented in critical sections so no atomic * is necessary to increment them. @@ -222,6 +226,7 @@ SYSINIT(name, SI_SUB_LAST, SI_ORDER_MIDDLE, name ## _add_proc, NULL); #else #define SCHED_STAT_DEFINE_VAR(name, descr, ptr) #define SCHED_STAT_DEFINE(name, descr) +#define SCHED_STAT_DECLARE(name) #define SCHED_STAT_INC(var) (void)0 #endif From nobody Wed Feb 11 05:17: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 4f9mrt0j0sz6RtRL for ; Wed, 11 Feb 2026 05:17: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9mrs5P5Yz3SLc for ; Wed, 11 Feb 2026 05:17:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787037; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MJ5FWtri92WB104Y13Q1rt3NlqxcJUtudp3mPNWgdKo=; b=TpEK/FcIWzoq2rRg42JCQ/et+Sizk1srH6T3s2h6Um3lkLz4C8DjKlgS3Z78IDdQfbG4Ap 0AdhXnmiGxl33TXi1AtvkM2w7qVTkJ+wuE5AXe1HGRENOJZK4ka2eJfu6tcRzDybpjN5r0 Fo+pULTFUSJp1RnVUyh2LYw7XaLjPxl57TpizBRNSjlOWXnPGtwHM1Yvzoe1utmdtm9AdN zanpboupbwLjPVEe6PmAkbc2xHFFuKv3SHst7plYwnCFTtRpj/KMzp5/c19pqlagftddNm aNE2HjOhikrYf5nwsLjcrz6d9JfWEqq3DUnqtDmNpMbCWY8qVMzbvq8O9yi/bQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787037; a=rsa-sha256; cv=none; b=jyYmA48JsKNn1JgKZ8DUq10ytOvEFtJ+fKBxciloM8kAVkyi2nYrAnFVKUs8i5NtcENQ0k SR3W9VAQbHkOI8/gd7KcfKiQOw9et6e0rsm/HCFODh5Wi4RoVNiBp5St1j50aMZEWGQT7S qM+tV/Yoi+gAtfI6KS4QhuHs/3l0MMzWY+tC13KwdEYGWsLydEOT/SRCbxQJ9B/GxLP6Jh 7TPpUKXaK9kOFKcSTFMds3z+ED1MbGfXNR7iq3yYIZDhjoMWfHn2tYdbk6nWooXd6/lHf1 SJxf25n8In2yV9FWaunSdbCgGqhYI15igqW83CR1T6pUIXiMGh9WvVWFz08N8A== 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=1770787037; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=MJ5FWtri92WB104Y13Q1rt3NlqxcJUtudp3mPNWgdKo=; b=PGxfO0M5zK0MmfEs4zfAX3YcY1dJHWl0b62hZlCp1jA60O4Uqs12x2Bkak4VsPMByXkD0w WWSF2yq8xzVQFAVvtx6JASdj1T1CG2l//B/2iE40i4Wug+vqvgQdY0yH4Ht6jufzsgIO+i WKz/bZLwwW76zfBF7Og/Ngx08iWOytXdWUL2JPEJ/lJTm0hN6evvmXk+v69ehTBkNKXfN1 HBywRTlbtdzGDxPL2VS99DjHXIcpqTBAThmGFsElTcCQNPy6bqu5tMfZZeOw2u95TXR2Ou G0q4xeWBYCEesfyYZrRzeTf+QlwUEoGmUadXKKDf9p+pn6payBY3jkbY/Lv2Jw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9mrs4nVMzbtQ for ; Wed, 11 Feb 2026 05:17:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 25bef by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:17 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 9c5067a07b2e - stable/15 - Add kern/sched_shim.c 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: 9c5067a07b2e9b3fde2c12eab3bb297e7d46d00b Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:17 +0000 Message-Id: <698c10dd.25bef.242132f@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=9c5067a07b2e9b3fde2c12eab3bb297e7d46d00b commit 9c5067a07b2e9b3fde2c12eab3bb297e7d46d00b Author: Konstantin Belousov AuthorDate: 2026-01-22 04:19:52 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:36 +0000 Add kern/sched_shim.c (cherry picked from commit ce38acee8d0bb35223b227479b9998c77b47f41b) --- sys/conf/files | 1 + sys/kern/sched_shim.c | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++ sys/sys/sched.h | 48 ++++++++++++++++++++++++++ 3 files changed, 143 insertions(+) diff --git a/sys/conf/files b/sys/conf/files index 20d9fa194b28..e8c9476f29a8 100644 --- a/sys/conf/files +++ b/sys/conf/files @@ -3905,6 +3905,7 @@ kern/linker_if.m standard kern/p1003_1b.c standard kern/posix4_mib.c standard kern/sched_4bsd.c optional sched_4bsd +kern/sched_shim.c standard kern/sched_ule.c optional sched_ule kern/serdev_if.m standard kern/stack_protector.c standard \ diff --git a/sys/kern/sched_shim.c b/sys/kern/sched_shim.c new file mode 100644 index 000000000000..079d7d73ec45 --- /dev/null +++ b/sys/kern/sched_shim.c @@ -0,0 +1,94 @@ +/* + * Copyright 2026 The FreeBSD Foundation + * + * SPDX-License-Identifier: BSD-2-Clause + * + * This software was developed by Konstantin Belousov + * under sponsorship from the FreeBSD Foundation. + */ + +#include "opt_sched.h" + +#include +#include +#include +#include +#include +#include +#include + +const struct sched_instance *active_sched; + +#ifndef __DO_NOT_HAVE_SYS_IFUNCS +#define __DEFINE_SHIM(__m, __r, __n, __p, __a) \ + DEFINE_IFUNC(, __r, __n, __p) \ + { \ + return (active_sched->__m); \ + } +#else +#define __DEFINE_SHIM(__m, __r, __n, __p, __a) \ + __r \ + __n __p \ + { \ + return (active_sched->__m __a); \ + } +#endif +#define DEFINE_SHIM0(__m, __r, __n) \ + __DEFINE_SHIM(__m, __r, __n, (void), ()) +#define DEFINE_SHIM1(__m, __r, __n, __t1, __a1) \ + __DEFINE_SHIM(__m, __r, __n, (__t1 __a1), (__a1)) +#define DEFINE_SHIM2(__m, __r, __n, __t1, __a1, __t2, __a2) \ + __DEFINE_SHIM(__m, __r, __n, (__t1 __a1, __t2 __a2), (__a1, __a2)) + +DEFINE_SHIM0(load, int, sched_load) +DEFINE_SHIM0(rr_interval, int, sched_rr_interval) +DEFINE_SHIM0(runnable, bool, sched_runnable) +DEFINE_SHIM2(exit, void, sched_exit, struct proc *, p, + struct thread *, childtd) +DEFINE_SHIM2(fork, void, sched_fork, struct thread *, td, + struct thread *, childtd) +DEFINE_SHIM1(fork_exit, void, sched_fork_exit, struct thread *, td) +DEFINE_SHIM2(class, void, sched_class, struct thread *, td, int, class) +DEFINE_SHIM2(nice, void, sched_nice, struct proc *, p, int, nice) +DEFINE_SHIM0(ap_entry, void, sched_ap_entry) +DEFINE_SHIM2(exit_thread, void, sched_exit_thread, struct thread *, td, + struct thread *, child) +DEFINE_SHIM1(estcpu, u_int, sched_estcpu, struct thread *, td) +DEFINE_SHIM2(fork_thread, void, sched_fork_thread, struct thread *, td, + struct thread *, child) +DEFINE_SHIM2(ithread_prio, void, sched_ithread_prio, struct thread *, td, + u_char, prio) +DEFINE_SHIM2(lend_prio, void, sched_lend_prio, struct thread *, td, + u_char, prio) +DEFINE_SHIM2(lend_user_prio, void, sched_lend_user_prio, struct thread *, td, + u_char, pri) +DEFINE_SHIM2(lend_user_prio_cond, void, sched_lend_user_prio_cond, + struct thread *, td, u_char, pri) +DEFINE_SHIM1(pctcpu, fixpt_t, sched_pctcpu, struct thread *, td) +DEFINE_SHIM2(prio, void, sched_prio, struct thread *, td, u_char, prio) +DEFINE_SHIM2(sleep, void, sched_sleep, struct thread *, td, int, prio) +DEFINE_SHIM2(sswitch, void, sched_switch, struct thread *, td, int, flags) +DEFINE_SHIM1(throw, void, sched_throw, struct thread *, td) +DEFINE_SHIM2(unlend_prio, void, sched_unlend_prio, struct thread *, td, + u_char, prio) +DEFINE_SHIM2(user_prio, void, sched_user_prio, struct thread *, td, + u_char, prio) +DEFINE_SHIM1(userret_slowpath, void, sched_userret_slowpath, + struct thread *, td) +DEFINE_SHIM2(add, void, sched_add, struct thread *, td, int, flags) +DEFINE_SHIM0(choose, struct thread *, sched_choose) +DEFINE_SHIM2(clock, void, sched_clock, struct thread *, td, int, cnt) +DEFINE_SHIM1(idletd, void, sched_idletd, void *, dummy) +DEFINE_SHIM1(preempt, void, sched_preempt, struct thread *, td) +DEFINE_SHIM1(relinquish, void, sched_relinquish, struct thread *, td) +DEFINE_SHIM1(rem, void, sched_rem, struct thread *, td) +DEFINE_SHIM2(wakeup, void, sched_wakeup, struct thread *, td, int, srqflags) +DEFINE_SHIM2(bind, void, sched_bind, struct thread *, td, int, cpu) +DEFINE_SHIM1(unbind, void, sched_unbind, struct thread *, td) +DEFINE_SHIM1(is_bound, int, sched_is_bound, struct thread *, td) +DEFINE_SHIM1(affinity, void, sched_affinity, struct thread *, td) +DEFINE_SHIM0(sizeof_proc, int, sched_sizeof_proc) +DEFINE_SHIM0(sizeof_thread, int, sched_sizeof_thread) +DEFINE_SHIM1(tdname, char *, sched_tdname, struct thread *, td) +DEFINE_SHIM1(clear_tdname, void, sched_clear_tdname, struct thread *, td) +DEFINE_SHIM0(init_ap, void, schedinit_ap) diff --git a/sys/sys/sched.h b/sys/sys/sched.h index 8f383840192f..b733d4d07e34 100644 --- a/sys/sys/sched.h +++ b/sys/sys/sched.h @@ -239,6 +239,54 @@ void schedinit(void); * Fixup scheduler state for secondary APs */ void schedinit_ap(void); + +struct sched_instance { + int (*load)(void); + int (*rr_interval)(void); + bool (*runnable)(void); + void (*exit)(struct proc *p, struct thread *childtd); + void (*fork)(struct thread *td, struct thread *childtd); + void (*fork_exit)(struct thread *td); + void (*class)(struct thread *td, int class); + void (*nice)(struct proc *p, int nice); + void (*ap_entry)(void); + void (*exit_thread)(struct thread *td, struct thread *child); + u_int (*estcpu)(struct thread *td); + void (*fork_thread)(struct thread *td, struct thread *child); + void (*ithread_prio)(struct thread *td, u_char prio); + void (*lend_prio)(struct thread *td, u_char prio); + void (*lend_user_prio)(struct thread *td, u_char pri); + void (*lend_user_prio_cond)(struct thread *td, u_char pri); + fixpt_t (*pctcpu)(struct thread *td); + void (*prio)(struct thread *td, u_char prio); + void (*sleep)(struct thread *td, int prio); + void (*sswitch)(struct thread *td, int flags); + void (*throw)(struct thread *td); + void (*unlend_prio)(struct thread *td, u_char prio); + void (*user_prio)(struct thread *td, u_char prio); + void (*userret_slowpath)(struct thread *td); + void (*add)(struct thread *td, int flags); + struct thread *(*choose)(void); + void (*clock)(struct thread *td, int cnt); + void (*idletd)(void *); + void (*preempt)(struct thread *td); + void (*relinquish)(struct thread *td); + void (*rem)(struct thread *td); + void (*wakeup)(struct thread *td, int srqflags); + void (*bind)(struct thread *td, int cpu); + void (*unbind)(struct thread *td); + int (*is_bound)(struct thread *td); + void (*affinity)(struct thread *td); + int (*sizeof_proc)(void); + int (*sizeof_thread)(void); + char *(*tdname)(struct thread *td); + void (*clear_tdname)(struct thread *td); + void (*init)(void); + void (*init_ap)(void); +}; + +extern const struct sched_instance *active_sched; + #endif /* _KERNEL */ /* POSIX 1003.1b Process Scheduling */ From nobody Wed Feb 11 05:17: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 4f9mrv2ZHpz6RtkK for ; Wed, 11 Feb 2026 05:17: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9mrt6CTyz3SJd for ; Wed, 11 Feb 2026 05:17:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787038; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YMIwozXwzqfjm0MxVMHtbvndL1/Idcu2GjY9s+Gz5dg=; b=FACmRk7bDME1863vzFneVWvCshwTxpiL3NKfMY1/LUO7xBQ/UwSAi4Sj5ZuURwJkj9xcQU G51/N9W/adow4Aw+Xk/AD+igCjsPPNElazKk9IHHswFqUaSW8eXtXfffCRrEiJJQGV9EZr G5REuikSRl+JvMFCHibmdMBmTSsWHzRCFyca0zWw4VNdnoAwh3fQ3UqmH3w10u3G4tvFme 4WGsr/wJUWMh7g5YNda/KEkmDf8jNx5AIdSIOCDjKJETQTNJQ0SaOuve2bMovdZEk6DqUc wyZtxvf1rD8VSepDcf87hbbql/RbpI8RgXdWHvXuMEOZDvt4YUEeuRTxUUmzXA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787038; a=rsa-sha256; cv=none; b=x4AIW8IVQCQ4sn5f0t0m1I4nca7NWBnr1VRwbe4b82a4a9pD9kQ71JICf+BOMgsC62i65I UAWx4FUtCGuzD8RnvDTEop+AmrWgmM9V0aXaThCs0U6hA/fk2FtI5WbP/mBzJigq+ffut2 O1YbYmpHjdxS7V8judGahR8Jyn3g15t6sM5QHj40q3xXHJ9ZTyQGfWzJ12uN7HYsJlFI/D 7fWjxYCcH0GrwRtP/62tY4yjeDSAR+NLsjyKptbcLdzdjsVKaapj7X7mDlv2mieseV4n7P piEuWYMdarAdRjD2Qbg/7D0yyR0ltman6l8Bm5CXF4GPn/r5MMz/JRHpAN/DHA== 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=1770787038; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YMIwozXwzqfjm0MxVMHtbvndL1/Idcu2GjY9s+Gz5dg=; b=nFV1r9F1+vctfLjmw0Fbk/967s1LhLaj7nK6Chl+tiKRxKHd1SjlhfKUIzFr7/O7I4Ultc ncdJCGHGU11yKTPgzaAzjNRbtYH2Lgygws6B/jvnkvv8ZermGpR+xq76nYKq5DLhuZVFkM 3WT+ZNgnPIInatmoivcX2e6QScEo8nOtZvpo/r2bNSKe2BKU226UOHZk/wFzelQD7WLdGm L7BzEGO/+IEG2QmF49OkSkFqxrP9A1IZAnV9NMTBvolgosmwsaaKq5HDsaXlOn4prtmzKI hpdOywq39hQU8r4i2QLDZXmaWdsXiE+ReXwXBgFpKFr+BFSnvBVJNcexIt0ddQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9mrt5bqXzc62 for ; Wed, 11 Feb 2026 05:17:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 24cdb by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:18 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 159a66aecc9c - stable/15 - kern/sched_shim.c: Provide a scheduler selection machinery 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: 159a66aecc9c3809e9ac8dc0a9943aef5d0d767b Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:18 +0000 Message-Id: <698c10de.24cdb.2521cd25@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=159a66aecc9c3809e9ac8dc0a9943aef5d0d767b commit 159a66aecc9c3809e9ac8dc0a9943aef5d0d767b Author: Konstantin Belousov AuthorDate: 2026-01-22 05:09:57 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:36 +0000 kern/sched_shim.c: Provide a scheduler selection machinery (cherry picked from commit bab24f22ba4518e640d14765dbd196e7709e1f0e) --- sys/amd64/amd64/machdep.c | 2 ++ sys/arm/arm/machdep.c | 3 +++ sys/arm64/arm64/machdep.c | 1 + sys/i386/i386/machdep.c | 1 + sys/kern/sched_shim.c | 49 +++++++++++++++++++++++++++++++++++++++++++ sys/powerpc/powerpc/machdep.c | 2 ++ sys/riscv/riscv/machdep.c | 2 ++ sys/sys/sched.h | 14 +++++++++++++ 8 files changed, 74 insertions(+) diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c index 8daa9c250db8..e56de986ccba 100644 --- a/sys/amd64/amd64/machdep.c +++ b/sys/amd64/amd64/machdep.c @@ -1352,6 +1352,8 @@ hammer_time(u_int64_t modulep, u_int64_t physfree) TUNABLE_INT_FETCH("hw.use_xsave", &use_xsave); } + sched_instance_select(); + link_elf_ireloc(); /* diff --git a/sys/arm/arm/machdep.c b/sys/arm/arm/machdep.c index cfc0b32f5102..3287485d684e 100644 --- a/sys/arm/arm/machdep.c +++ b/sys/arm/arm/machdep.c @@ -523,6 +523,9 @@ initarm(struct arm_boot_params *abp) /* Do basic tuning, hz etc */ init_param1(); + sched_instance_select(); + /* link_elf_ireloc(); */ + /* * Allocate a page for the system page mapped to 0xffff0000 * This page will just contain the system vectors and can be diff --git a/sys/arm64/arm64/machdep.c b/sys/arm64/arm64/machdep.c index 6790f47a0f82..b1e22c900f3f 100644 --- a/sys/arm64/arm64/machdep.c +++ b/sys/arm64/arm64/machdep.c @@ -825,6 +825,7 @@ initarm(struct arm64_bootparams *abp) PCPU_SET(curthread, &thread0); PCPU_SET(midr, get_midr()); + sched_instance_select(); link_elf_ireloc(); #ifdef FDT try_load_dtb(); diff --git a/sys/i386/i386/machdep.c b/sys/i386/i386/machdep.c index 3f659432552c..821265cc2911 100644 --- a/sys/i386/i386/machdep.c +++ b/sys/i386/i386/machdep.c @@ -1544,6 +1544,7 @@ init386(int first) /* Initialize preload_kmdp */ preload_initkmdp(!metadata_missing); + sched_instance_select(); link_elf_ireloc(); vm86_initialize(); diff --git a/sys/kern/sched_shim.c b/sys/kern/sched_shim.c index 079d7d73ec45..2dbb6b928961 100644 --- a/sys/kern/sched_shim.c +++ b/sys/kern/sched_shim.c @@ -15,6 +15,7 @@ #include #include #include +#include #include const struct sched_instance *active_sched; @@ -92,3 +93,51 @@ DEFINE_SHIM0(sizeof_thread, int, sched_sizeof_thread) DEFINE_SHIM1(tdname, char *, sched_tdname, struct thread *, td) DEFINE_SHIM1(clear_tdname, void, sched_clear_tdname, struct thread *, td) DEFINE_SHIM0(init_ap, void, schedinit_ap) + +static char sched_name[32] = "ULE"; + +SET_DECLARE(sched_instance_set, struct sched_selection); + +void +sched_instance_select(void) +{ + struct sched_selection *s, **ss; + int i; + + TUNABLE_STR_FETCH("kern.sched.name", sched_name, sizeof(sched_name)); + SET_FOREACH(ss, sched_instance_set) { + s = *ss; + for (i = 0; s->name[i] == sched_name[i]; i++) { + if (s->name[i] == '\0') { + active_sched = s->instance; + return; + } + } + } + + /* + * No scheduler matching the configuration was found. If + * there is any scheduler compiled in, at all, use the first + * scheduler from the linker set. + */ + if (SET_BEGIN(sched_instance_set) < SET_LIMIT(sched_instance_set)) { + s = *SET_BEGIN(sched_instance_set); + active_sched = s->instance; + for (i = 0;; i++) { + sched_name[i] = s->name[i]; + if (s->name[i] == '\0') + break; + } + } +} + +void +schedinit(void) +{ + if (active_sched == NULL) + panic("Cannot find scheduler %s", sched_name); + active_sched->init(); +} + +SYSCTL_STRING(_kern_sched, OID_AUTO, name, CTLFLAG_RD, sched_name, 0, + "Scheduler name"); diff --git a/sys/powerpc/powerpc/machdep.c b/sys/powerpc/powerpc/machdep.c index e9979712aa9c..1bbe165e5fe5 100644 --- a/sys/powerpc/powerpc/machdep.c +++ b/sys/powerpc/powerpc/machdep.c @@ -83,6 +83,7 @@ #include #include #include +#include #include #include #include @@ -467,6 +468,7 @@ powerpc_init(vm_offset_t fdt, vm_offset_t toc, vm_offset_t ofentry, void *mdp, * Bring up MMU */ pmap_mmu_init(); + sched_instance_select(); link_elf_ireloc(); pmap_bootstrap(startkernel, endkernel); mtmsr(psl_kernset & ~PSL_EE); diff --git a/sys/riscv/riscv/machdep.c b/sys/riscv/riscv/machdep.c index 235cc651b87e..b213e8812bc7 100644 --- a/sys/riscv/riscv/machdep.c +++ b/sys/riscv/riscv/machdep.c @@ -479,6 +479,8 @@ parse_metadata(void) /* Initialize preload_kmdp */ preload_initkmdp(true); + sched_instance_select(); + /* link_elf_ireloc(); */ /* Read the boot metadata */ boothowto = MD_FETCH(preload_kmdp, MODINFOMD_HOWTO, int); diff --git a/sys/sys/sched.h b/sys/sys/sched.h index b733d4d07e34..27d0fc7d0c8d 100644 --- a/sys/sys/sched.h +++ b/sys/sys/sched.h @@ -68,6 +68,7 @@ #ifdef SCHED_STATS #include #endif +#include struct proc; struct thread; @@ -287,6 +288,19 @@ struct sched_instance { extern const struct sched_instance *active_sched; +struct sched_selection { + const char *name; + const struct sched_instance *instance; +}; +#define DECLARE_SCHEDULER(xsel_name, xsched_name, xsched_instance) \ + static struct sched_selection xsel_name = { \ + .name = xsched_name, \ + .instance = xsched_instance, \ + }; \ + DATA_SET(sched_instance_set, xsel_name); + +void sched_instance_select(void); + #endif /* _KERNEL */ /* POSIX 1003.1b Process Scheduling */ From nobody Wed Feb 11 05:17: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 4f9mrx2gxtz6RtqK for ; Wed, 11 Feb 2026 05:17: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 4f9mrx10jRz3SXf for ; Wed, 11 Feb 2026 05:17:21 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787041; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EPhY7sxEhVJPQYuqK3jdhnvlm5pFjYJY0tZLMo80COo=; b=BO9gxDPnrxvbAykpJtoP6ya3U7/f6GrTcxpqlID50XmTWNFtp0auE+4GHMLzbRPrAr89g9 WOtfrzi1O+wTEW+XiznNIpykJtePLP4SxT+uYA1zwWGsd79g+ReioE45mJQLDlIC+CtPNU OAQrK4WpoEZLElxo03juM3/uaNDC5PKYU4HmfNVvIg7VeOLcfQIv2TqkXAWwomT+31Pv6P ERzntp88XhX1wy97U69PzRLcsEJrqZSY+HSyANAeDSqOZ18d7kmNwRhGjRDuwllPz7PgeN WN0OB33N1700WXZGX5Itq3zOFJ30QkiGT/TTPJu87vyy3+NJf2plPQe3PUJPwQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787041; a=rsa-sha256; cv=none; b=cFW41jUP60TD1inDlJ3N5j20hC/JLmnE8ePBkVn5K5FTIgc8bw3tdwPoR29tWeopoaeHDp XdL5hJzC9VnDAD4+Nz6mjVfzrstKOXLSLMwrWBOb9WAIQXJQmFzLSXoK6TLmjQ+VbQsceN jN5pZI4y349WOdYaT9uhTb1tRA9+jfrq8t1eDtOHn1LLxH2pOWK3ALTK2WqTwq9KhpNVGp VkkOZPH5jeLduwlQ9doTaCLpdbrz3O3ZjHR0zlfuUz2ZuNcWQXyH0OZPjuZTAO1kHaletU Bz62hLf7w7eiZTF0AFCsiZHtJqERfiTfeHJHzphSThjj5vPMz1D6+OcFj7XE2g== 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=1770787041; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=EPhY7sxEhVJPQYuqK3jdhnvlm5pFjYJY0tZLMo80COo=; b=vSo61uwYj99nkxehVL5RgWHEKSVFSwZpJqnNA4c9pH1rCKn9RfQdr+3QKTc8lEYZ2+4u8Z 6+8Mcg6S+9NC0SzCL8/3KkV+LylmvjqcM9pTReHsa5mA+ldZLmJ9mE6LAQUKVFujje/FLJ +Oral9Qy9jXRRUmsAB9Tn/VjqsS7PbfJVXHIQQnaELcL0qAbuPUCckTdMrAX/6oNPKUKNP j5aaPsPa+v0AfOvxW4xWN7UhTXqt+m5cUqE34GpFASEZi1WLXsDjFOBgiujY56Zlc8FSHe vmDKN7tpksTYkOC0NcV51c+moqGjKw9rOBo90ujHwv/r7fotrZM4AtDANuU1qw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9mrx0225zcWY for ; Wed, 11 Feb 2026 05:17:21 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 264c1 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:20 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: ec10524db95a - stable/15 - sys: Make sched_ule a sched instance 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: ec10524db95ae5da7df499f035137529702d4be8 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:20 +0000 Message-Id: <698c10e0.264c1.2e9449a9@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=ec10524db95ae5da7df499f035137529702d4be8 commit ec10524db95ae5da7df499f035137529702d4be8 Author: Konstantin Belousov AuthorDate: 2026-01-22 04:36:15 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:36 +0000 sys: Make sched_ule a sched instance (cherry picked from commit d14e018024bb094705dd218ceeeea124706f6ec0) --- sys/kern/sched_ule.c | 243 ++++++++++++++++++++++++++++++--------------------- 1 file changed, 144 insertions(+), 99 deletions(-) diff --git a/sys/kern/sched_ule.c b/sys/kern/sched_ule.c index 59b59a30acab..116a1d6105d0 100644 --- a/sys/kern/sched_ule.c +++ b/sys/kern/sched_ule.c @@ -409,13 +409,6 @@ static int sysctl_kern_sched_topology_spec_internal(struct sbuf *sb, struct cpu_group *cg, int indent); #endif -static void sched_setup(void *dummy); -SYSINIT(sched_setup, SI_SUB_RUN_QUEUE, SI_ORDER_FIRST, sched_setup, NULL); - -static void sched_initticks(void *dummy); -SYSINIT(sched_initticks, SI_SUB_CLOCKS, SI_ORDER_THIRD, sched_initticks, - NULL); - SDT_PROVIDER_DEFINE(sched); SDT_PROBE_DEFINE3(sched, , , change__pri, "struct thread *", @@ -1640,7 +1633,7 @@ sched_setup_smp(void) * information. */ static void -sched_setup(void *dummy) +sched_ule_setup(void) { struct tdq *tdq; @@ -1665,7 +1658,7 @@ sched_setup(void *dummy) */ /* ARGSUSED */ static void -sched_initticks(void *dummy) +sched_ule_initticks(void) { int incr; @@ -1889,8 +1882,8 @@ sched_interact_fork(struct thread *td) /* * Called from proc0_init() to setup the scheduler fields. */ -void -schedinit(void) +static void +sched_ule_init(void) { struct td_sched *ts0; @@ -1914,8 +1907,8 @@ schedinit(void) * TDQ_SELF() relies on the below sched pcpu setting; it may be used only * after schedinit_ap(). */ -void -schedinit_ap(void) +static void +sched_ule_init_ap(void) { #ifdef SMP @@ -1929,8 +1922,8 @@ schedinit_ap(void) * priority they will switch when their slices run out, which will be * at most sched_slice stathz ticks. */ -int -sched_rr_interval(void) +static int +sched_ule_rr_interval(void) { /* Convert sched_slice from stathz to hz. */ @@ -2049,8 +2042,8 @@ sched_thread_priority(struct thread *td, u_char prio) * Update a thread's priority when it is lent another thread's * priority. */ -void -sched_lend_prio(struct thread *td, u_char prio) +static void +sched_ule_lend_prio(struct thread *td, u_char prio) { td->td_flags |= TDF_BORROWING; @@ -2065,8 +2058,8 @@ sched_lend_prio(struct thread *td, u_char prio) * important than prio, the thread will keep a priority boost * of prio. */ -void -sched_unlend_prio(struct thread *td, u_char prio) +static void +sched_ule_unlend_prio(struct thread *td, u_char prio) { u_char base_pri; @@ -2085,8 +2078,8 @@ sched_unlend_prio(struct thread *td, u_char prio) /* * Standard entry for setting the priority to an absolute value. */ -void -sched_prio(struct thread *td, u_char prio) +static void +sched_ule_prio(struct thread *td, u_char prio) { u_char oldprio; @@ -2115,8 +2108,8 @@ sched_prio(struct thread *td, u_char prio) /* * Set the base interrupt thread priority. */ -void -sched_ithread_prio(struct thread *td, u_char prio) +static void +sched_ule_ithread_prio(struct thread *td, u_char prio) { THREAD_LOCK_ASSERT(td, MA_OWNED); MPASS(td->td_pri_class == PRI_ITHD); @@ -2127,8 +2120,8 @@ sched_ithread_prio(struct thread *td, u_char prio) /* * Set the base user priority, does not effect current running priority. */ -void -sched_user_prio(struct thread *td, u_char prio) +static void +sched_ule_user_prio(struct thread *td, u_char prio) { td->td_base_user_pri = prio; @@ -2137,8 +2130,8 @@ sched_user_prio(struct thread *td, u_char prio) td->td_user_pri = prio; } -void -sched_lend_user_prio(struct thread *td, u_char prio) +static void +sched_ule_lend_user_prio(struct thread *td, u_char prio) { THREAD_LOCK_ASSERT(td, MA_OWNED); @@ -2153,8 +2146,8 @@ sched_lend_user_prio(struct thread *td, u_char prio) /* * Like the above but first check if there is anything to do. */ -void -sched_lend_user_prio_cond(struct thread *td, u_char prio) +static void +sched_ule_lend_user_prio_cond(struct thread *td, u_char prio) { if (td->td_lend_user_pri == prio) @@ -2325,8 +2318,8 @@ thread_unblock_switch(struct thread *td, struct mtx *mtx) * migrating a thread from one queue to another as running threads may * be assigned elsewhere via binding. */ -void -sched_switch(struct thread *td, int flags) +static void +sched_ule_sswitch(struct thread *td, int flags) { struct thread *newtd; struct tdq *tdq; @@ -2464,8 +2457,8 @@ sched_switch(struct thread *td, int flags) /* * Adjust thread priorities as a result of a nice request. */ -void -sched_nice(struct proc *p, int nice) +static void +sched_ule_nice(struct proc *p, int nice) { struct thread *td; @@ -2483,8 +2476,8 @@ sched_nice(struct proc *p, int nice) /* * Record the sleep time for the interactivity scorer. */ -void -sched_sleep(struct thread *td, int prio) +static void +sched_ule_sleep(struct thread *td, int prio) { THREAD_LOCK_ASSERT(td, MA_OWNED); @@ -2504,8 +2497,8 @@ sched_sleep(struct thread *td, int prio) * * Requires the thread lock on entry, drops on exit. */ -void -sched_wakeup(struct thread *td, int srqflags) +static void +sched_ule_wakeup(struct thread *td, int srqflags) { struct td_sched *ts; int slptick; @@ -2544,8 +2537,8 @@ sched_wakeup(struct thread *td, int srqflags) * Penalize the parent for creating a new child and initialize the child's * priority. */ -void -sched_fork(struct thread *td, struct thread *child) +static void +sched_ule_fork(struct thread *td, struct thread *child) { THREAD_LOCK_ASSERT(td, MA_OWNED); sched_pctcpu_update(td_get_sched(td), 1); @@ -2563,8 +2556,8 @@ sched_fork(struct thread *td, struct thread *child) /* * Fork a new thread, may be within the same process. */ -void -sched_fork_thread(struct thread *td, struct thread *child) +static void +sched_ule_fork_thread(struct thread *td, struct thread *child) { struct td_sched *ts; struct td_sched *ts2; @@ -2609,8 +2602,8 @@ sched_fork_thread(struct thread *td, struct thread *child) /* * Adjust the priority class of a thread. */ -void -sched_class(struct thread *td, int class) +static void +sched_ule_class(struct thread *td, int class) { THREAD_LOCK_ASSERT(td, MA_OWNED); @@ -2622,8 +2615,8 @@ sched_class(struct thread *td, int class) /* * Return some of the child's priority and interactivity to the parent. */ -void -sched_exit(struct proc *p, struct thread *child) +static void +sched_ule_exit(struct proc *p, struct thread *child) { struct thread *td; @@ -2640,8 +2633,8 @@ sched_exit(struct proc *p, struct thread *child) * jobs such as make. This has little effect on the make process itself but * causes new processes spawned by it to receive worse scores immediately. */ -void -sched_exit_thread(struct thread *td, struct thread *child) +static void +sched_ule_exit_thread(struct thread *td, struct thread *child) { KTR_STATE1(KTR_SCHED, "thread", sched_tdname(child), "thread exit", @@ -2658,8 +2651,8 @@ sched_exit_thread(struct thread *td, struct thread *child) thread_unlock(td); } -void -sched_preempt(struct thread *td) +static void +sched_ule_preempt(struct thread *td) { struct tdq *tdq; int flags; @@ -2689,8 +2682,8 @@ sched_preempt(struct thread *td) * Fix priorities on return to user-space. Priorities may be elevated due * to static priorities in msleep() or similar. */ -void -sched_userret_slowpath(struct thread *td) +static void +sched_ule_userret_slowpath(struct thread *td) { thread_lock(td); @@ -2720,8 +2713,8 @@ td_slice(struct thread *td, struct tdq *tdq) * Handle a stathz tick. This is really only relevant for timeshare * and interrupt threads. */ -void -sched_clock(struct thread *td, int cnt) +static void +sched_ule_clock(struct thread *td, int cnt) { struct tdq *tdq; struct td_sched *ts; @@ -2806,8 +2799,8 @@ sched_clock(struct thread *td, int cnt) } } -u_int -sched_estcpu(struct thread *td __unused) +static u_int +sched_ule_estcpu(struct thread *td __unused) { return (0); @@ -2817,8 +2810,8 @@ sched_estcpu(struct thread *td __unused) * Return whether the current CPU has runnable tasks. Used for in-kernel * cooperative idle threads. */ -bool -sched_runnable(void) +static bool +sched_ule_runnable(void) { struct tdq *tdq; @@ -2830,8 +2823,8 @@ sched_runnable(void) * Choose the highest priority thread to run. The thread is removed from * the run-queue while running however the load remains. */ -struct thread * -sched_choose(void) +static struct thread * +sched_ule_choose(void) { struct thread *td; struct tdq *tdq; @@ -2907,8 +2900,8 @@ tdq_add(struct tdq *tdq, struct thread *td, int flags) * * Requires the thread lock on entry, drops on exit. */ -void -sched_add(struct thread *td, int flags) +static void +sched_ule_add(struct thread *td, int flags) { struct tdq *tdq; #ifdef SMP @@ -2967,8 +2960,8 @@ sched_add(struct thread *td, int flags) * when we're stealing a thread from a remote queue. Otherwise all threads * exit by calling sched_exit_thread() and sched_throw() themselves. */ -void -sched_rem(struct thread *td) +static void +sched_ule_rem(struct thread *td) { struct tdq *tdq; @@ -2990,8 +2983,8 @@ sched_rem(struct thread *td) /* * Fetch cpu utilization information. Updates on demand. */ -fixpt_t -sched_pctcpu(struct thread *td) +static fixpt_t +sched_ule_pctcpu(struct thread *td) { struct td_sched *ts; u_int len; @@ -3012,8 +3005,8 @@ sched_pctcpu(struct thread *td) * Enforce affinity settings for a thread. Called after adjustments to * cpumask. */ -void -sched_affinity(struct thread *td) +static void +sched_ule_affinity(struct thread *td) { #ifdef SMP struct td_sched *ts; @@ -3043,8 +3036,8 @@ sched_affinity(struct thread *td) /* * Bind a thread to a target cpu. */ -void -sched_bind(struct thread *td, int cpu) +static void +sched_ule_bind(struct thread *td, int cpu) { struct td_sched *ts; @@ -3067,8 +3060,8 @@ sched_bind(struct thread *td, int cpu) /* * Release a bound thread. */ -void -sched_unbind(struct thread *td) +static void +sched_ule_unbind(struct thread *td) { struct td_sched *ts; @@ -3081,8 +3074,8 @@ sched_unbind(struct thread *td) sched_unpin(); } -int -sched_is_bound(struct thread *td) +static int +sched_ule_is_bound(struct thread *td) { THREAD_LOCK_ASSERT(td, MA_OWNED); return (td_get_sched(td)->ts_flags & TSF_BOUND); @@ -3091,8 +3084,8 @@ sched_is_bound(struct thread *td) /* * Basic yield call. */ -void -sched_relinquish(struct thread *td) +static void +sched_ule_relinquish(struct thread *td) { thread_lock(td); mi_switch(SW_VOL | SWT_RELINQUISH); @@ -3101,8 +3094,8 @@ sched_relinquish(struct thread *td) /* * Return the total system load. */ -int -sched_load(void) +static int +sched_ule_load(void) { #ifdef SMP int total; @@ -3117,14 +3110,14 @@ sched_load(void) #endif } -int -sched_sizeof_proc(void) +static int +sched_ule_sizeof_proc(void) { return (sizeof(struct proc)); } -int -sched_sizeof_thread(void) +static int +sched_ule_sizeof_thread(void) { return (sizeof(struct thread) + sizeof(struct td_sched)); } @@ -3139,8 +3132,8 @@ sched_sizeof_thread(void) /* * The actual idle process. */ -void -sched_idletd(void *dummy) +static void +sched_ule_idletd(void *dummy) { struct thread *td; struct tdq *tdq; @@ -3242,8 +3235,8 @@ sched_throw_grab(struct tdq *tdq) /* * A CPU is entering for the first time. */ -void -sched_ap_entry(void) +static void +sched_ule_ap_entry(void) { struct thread *newtd; struct tdq *tdq; @@ -3272,8 +3265,8 @@ sched_ap_entry(void) /* * A thread is exiting. */ -void -sched_throw(struct thread *td) +static void +sched_ule_throw(struct thread *td) { struct thread *newtd; struct tdq *tdq; @@ -3303,8 +3296,8 @@ sched_throw(struct thread *td) * This is called from fork_exit(). Just acquire the correct locks and * let fork do the rest of the work. */ -void -sched_fork_exit(struct thread *td) +static void +sched_ule_fork_exit(struct thread *td) { struct tdq *tdq; int cpuid; @@ -3329,8 +3322,8 @@ sched_fork_exit(struct thread *td) /* * Create on first use to catch odd startup conditions. */ -char * -sched_tdname(struct thread *td) +static char * +sched_ule_tdname(struct thread *td) { #ifdef KTR struct td_sched *ts; @@ -3345,16 +3338,72 @@ sched_tdname(struct thread *td) #endif } -#ifdef KTR -void -sched_clear_tdname(struct thread *td) +static void +sched_ule_clear_tdname(struct thread *td) { +#ifdef KTR struct td_sched *ts; ts = td_get_sched(td); ts->ts_name[0] = '\0'; -} #endif +} + +static void +sched_ule_schedcpu(void) +{ +} + +struct sched_instance sched_ule_instance = { +#define SLOT(name) .name = sched_ule_##name + SLOT(load), + SLOT(rr_interval), + SLOT(runnable), + SLOT(exit), + SLOT(fork), + SLOT(fork_exit), + SLOT(class), + SLOT(nice), + SLOT(ap_entry), + SLOT(exit_thread), + SLOT(estcpu), + SLOT(fork_thread), + SLOT(ithread_prio), + SLOT(lend_prio), + SLOT(lend_user_prio), + SLOT(lend_user_prio_cond), + SLOT(pctcpu), + SLOT(prio), + SLOT(sleep), + SLOT(sswitch), + SLOT(throw), + SLOT(unlend_prio), + SLOT(user_prio), + SLOT(userret_slowpath), + SLOT(add), + SLOT(choose), + SLOT(clock), + SLOT(idletd), + SLOT(preempt), + SLOT(relinquish), + SLOT(rem), + SLOT(wakeup), + SLOT(bind), + SLOT(unbind), + SLOT(is_bound), + SLOT(affinity), + SLOT(sizeof_proc), + SLOT(sizeof_thread), + SLOT(tdname), + SLOT(clear_tdname), + SLOT(init), + SLOT(init_ap), + SLOT(setup), + SLOT(initticks), + SLOT(schedcpu), +#undef SLOT +}; +DECLARE_SCHEDULER(ule_sched_selector, "ULE", &sched_ule_instance); #ifdef SMP @@ -3457,10 +3506,6 @@ sysctl_kern_quantum(SYSCTL_HANDLER_ARGS) return (0); } -SYSCTL_NODE(_kern, OID_AUTO, sched, CTLFLAG_RW | CTLFLAG_MPSAFE, 0, - "Scheduler"); -SYSCTL_STRING(_kern_sched, OID_AUTO, name, CTLFLAG_RD, "ULE", 0, - "Scheduler name"); SYSCTL_PROC(_kern_sched, OID_AUTO, quantum, CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, NULL, 0, sysctl_kern_quantum, "I", From nobody Wed Feb 11 05:17:19 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 4f9mrw4JRbz6Rtvv for ; Wed, 11 Feb 2026 05:17: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9mrv6pXbz3SM7 for ; Wed, 11 Feb 2026 05:17:19 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787040; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PYsExOWzfC7johPwQiv6WtM1ZV9RrqCKeht8fzpt59c=; b=kVKIN+tJMGV+wTII6mZydiZpxB8PDX322xpUKWQklJISgIwiarzCZG4qo9zyWWdC0w7qWV o+tAWxHst5BVsdI97tmRu10vI2icjE8dbX36/k13ghs5y7NRgXaH6/aMrmrVpJhIsV2Xlv e+5BqIKcEjE33aeDnkUkiN/dZoyXns0k5k3j5LgX5WdJ6URXmaB6vYJ8M7Bkx4psg786JZ n1tgRRsjgUxJtDdrRyCmYMZ0r+OVoQSkH8eUYjXKSh+7xSKjXGkREJlEwcGqaEKzHHT8QJ yQnuEVgQJCes0kVXvwbogJWptYjbDtuitExehEOt8ChFDOnVxfX+XNtq9goZkQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787040; a=rsa-sha256; cv=none; b=rSJJEGXI3XxUWFP1Q0SJ2jU1O2mrG5Mr5TfP6dkifpknXZnVcu2M58sTvgtieni+Jt4s52 l0ibhqaA4D3Jkusj7+p7j8yN/6JXGYHVDxu1/4ZzY2eStnkp4dDYaHN8hs7VwFeSFVvMYX 4FGPEEUjFsIGiZo8YgD3MpqDAULzREO1ChVgx2+M2Rh3EtlJL7kXyEPuQHZy4KJ+7iv97a sK+XkTu6JtqlDPez0dyYEqxKcyydHzFbtMzALjJnEZfO0Fomi8l3pW3mG/5k/1b9F38lFt hZmtzB7TPGQ//u8HrzGfsNZAR3vGU6RVM6POtFWKJOganv4cSg458cJzRP24aA== 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=1770787040; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PYsExOWzfC7johPwQiv6WtM1ZV9RrqCKeht8fzpt59c=; b=jm+TpH9tR4f0GkLo889wGgz2zssaRYo4yh7qNBRMJQN4b01tt4DAvDoFkbprmLe5jVAu7K t/0r03zCXAwytzxrEQz8loklwz3IPk0ymR6V/W6UBXm8+Disbyz2qcGEYcUwo/iVtJQFCo cgzRzE88JYiJX+n/5NPivYPqreVhmzoVjnxVOa9wN7Ul2P9wjFYODrPQg0xWJC9b3EJ/MJ eP+uiHVn5V/L2ny2Z6YjtpnfO5V1CsczBcYI4RISrjCtGXCUe5c0KqfVwEDW6LPzdiuMFo lL2s5g3l2xYhZt5OXv2iQ6LHsvW4eHBvgx7gy7ZEKiVqb9fpBo0KGj02VzZqhA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9mrv6MKDzbKY for ; Wed, 11 Feb 2026 05:17:19 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 256a9 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:19 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 89388d56afb6 - stable/15 - kern/sched_shim.c: provide required SYSINIT hooks 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: 89388d56afb6c268901ef2adbb67b4cd63e9ac7b Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:19 +0000 Message-Id: <698c10df.256a9.3afd2a04@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=89388d56afb6c268901ef2adbb67b4cd63e9ac7b commit 89388d56afb6c268901ef2adbb67b4cd63e9ac7b Author: Konstantin Belousov AuthorDate: 2026-01-22 13:59:32 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:36 +0000 kern/sched_shim.c: provide required SYSINIT hooks (cherry picked from commit 7efbfd6ff6490fa6b7144cc341eaf282a21fab32) --- sys/kern/sched_shim.c | 25 +++++++++++++++++++++++++ sys/sys/sched.h | 3 +++ 2 files changed, 28 insertions(+) diff --git a/sys/kern/sched_shim.c b/sys/kern/sched_shim.c index 2dbb6b928961..96c824745815 100644 --- a/sys/kern/sched_shim.c +++ b/sys/kern/sched_shim.c @@ -139,5 +139,30 @@ schedinit(void) active_sched->init(); } +static void +sched_setup(void *dummy) +{ + active_sched->setup(); +} +SYSINIT(sched_setup, SI_SUB_RUN_QUEUE, SI_ORDER_FIRST, sched_setup, NULL); + +static void +sched_initticks(void *dummy) +{ + active_sched->initticks(); +} +SYSINIT(sched_initticks, SI_SUB_CLOCKS, SI_ORDER_THIRD, sched_initticks, + NULL); + +static void +sched_schedcpu(void) +{ + active_sched->schedcpu(); +} +SYSINIT(schedcpu, SI_SUB_LAST, SI_ORDER_FIRST, sched_schedcpu, NULL); + +SYSCTL_NODE(_kern, OID_AUTO, sched, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, + "Scheduler"); + SYSCTL_STRING(_kern_sched, OID_AUTO, name, CTLFLAG_RD, sched_name, 0, "Scheduler name"); diff --git a/sys/sys/sched.h b/sys/sys/sched.h index 27d0fc7d0c8d..c8491ede01a0 100644 --- a/sys/sys/sched.h +++ b/sys/sys/sched.h @@ -284,6 +284,9 @@ struct sched_instance { void (*clear_tdname)(struct thread *td); void (*init)(void); void (*init_ap)(void); + void (*setup)(void); + void (*initticks)(void); + void (*schedcpu)(void); }; extern const struct sched_instance *active_sched; From nobody Wed Feb 11 05:17: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 4f9mry5mtjz6Rth0 for ; Wed, 11 Feb 2026 05:17: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 4f9mry1QSDz3SFG for ; Wed, 11 Feb 2026 05:17:22 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787042; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gHOA2bPjd5TH3X4Dn/JHGajDa9lgUbB52j7ITT8WkG4=; b=MxXXIHVQ82WgB/AS3S347sznnbWJ0uMlJOKepWMfjFI2LXKNjbyLJgiDcBYZvCrJ2mfE0i aJxXECb4USWEcke3ob4hBFZ+cQ3FtzDsiEtKa5d9oqSdCSKlUbKfaC8xiael97MyP/EI6B PhRlW3ElWNondKeUErWgdZU89g0wuI0Ozj6kmSZp/K9A1gTwDSGrmjjV11cSixaoSAcpTy ktznW3CtuVTAADn6eUHf35nnvBBE/gm1ramLz0dY69RlKd+l6br3FoYvo1b8xckD9dJ5Kb ciw47BHvowV06y9cTJtvg6XUMAQYQVom5ckahRDKOQw1EUl0ZU7a0vuuPIIRoA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787042; a=rsa-sha256; cv=none; b=Ln4pDl4F33CJDvYuAElegpIz8vU4rQva6VGtIKy/RrwK9B/ObiJBdV+EdFpnYSrgQwjViX 0PT8oZ1uLmdIErlVE5VAHSYeNABfyN9Ff2iXrop1glyNY4Z3Ppnc4iJlj5sNd2oB41Hb2J dOH9IKjLCuSvcrrvK1mnYwgehRGE3sXuRzd1sPcWCtC43/7jQ3/DaAQOnVhqRTsVJKjrQX ImDjGSL2/kjDLqFEsyAeyRU2+6fdBw2e2ZdX5cKwE61DqRItdH8PrNIur09Jo5mUdL8WE1 fml/1MKhAhhmDeVnXRyo0fzqun/i+9QCU/+seTlXVFnPmRCJMY1YREpOLBGqfQ== 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=1770787042; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=gHOA2bPjd5TH3X4Dn/JHGajDa9lgUbB52j7ITT8WkG4=; b=rul2/MqhTV+H6gYLpGLQMOM4pBs5hrKHSA7rzr7tx0si5jfyrh7m02Pklnx0Gjg6qRnpoR 4KpccDUlIl1snXkjUEzi1uT948C/kcW8gWGxUeh/7Ag98OHC52snubQ/YjRvVodhjIX+QI LhifkFcBkMCJvAaFqJIE3LuMFVNdvehg/xDHbzP35MkT9ga3X8tY/tQGdI9m5xnUm8XF4e B89iePMaa/ew0t7EUG0VpJ3OZCYgDAs/iKwZpIKBKNLznlbNJoDil24eqPe8CTnXzb572Y SMqW6l8OuCrYf52oh00KqdMQcu3tGXcBZKhVbMJFxMe3zcS8WArXOrWU9SQP+g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9mry0pSmzcWZ for ; Wed, 11 Feb 2026 05:17:22 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2644d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:22 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: d19ddc36e01d - stable/15 - sys: Move ULE sysctls under kern.sched.ule 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: d19ddc36e01d1dbae60cdac5e6c1a2911288dacc Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:22 +0000 Message-Id: <698c10e2.2644d.275a3c08@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=d19ddc36e01d1dbae60cdac5e6c1a2911288dacc commit d19ddc36e01d1dbae60cdac5e6c1a2911288dacc Author: Konstantin Belousov AuthorDate: 2026-01-22 05:41:21 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:36 +0000 sys: Move ULE sysctls under kern.sched.ule (cherry picked from commit eb454937a3c04e5d1bde4f58d0ebb2dc48472ced) --- sys/kern/sched_ule.c | 60 ++++++++++++++++++++++++++++------------------------ 1 file changed, 32 insertions(+), 28 deletions(-) diff --git a/sys/kern/sched_ule.c b/sys/kern/sched_ule.c index 116a1d6105d0..a285c62a4525 100644 --- a/sys/kern/sched_ule.c +++ b/sys/kern/sched_ule.c @@ -404,8 +404,8 @@ static void sched_balance(void); static bool sched_balance_pair(struct tdq *, struct tdq *); static inline struct tdq *sched_setcpu(struct thread *, int, int); static inline void thread_unblock_switch(struct thread *, struct mtx *); -static int sysctl_kern_sched_topology_spec(SYSCTL_HANDLER_ARGS); -static int sysctl_kern_sched_topology_spec_internal(struct sbuf *sb, +static int sysctl_kern_sched_ule_topology_spec(SYSCTL_HANDLER_ARGS); +static int sysctl_kern_sched_ule_topology_spec_internal(struct sbuf *sb, struct cpu_group *cg, int indent); #endif @@ -3412,8 +3412,8 @@ DECLARE_SCHEDULER(ule_sched_selector, "ULE", &sched_ule_instance); * the topology tree. */ static int -sysctl_kern_sched_topology_spec_internal(struct sbuf *sb, struct cpu_group *cg, - int indent) +sysctl_kern_sched_ule_topology_spec_internal(struct sbuf *sb, + struct cpu_group *cg, int indent) { char cpusetbuf[CPUSETBUFSIZ]; int i, first; @@ -3450,7 +3450,7 @@ sysctl_kern_sched_topology_spec_internal(struct sbuf *sb, struct cpu_group *cg, if (cg->cg_children > 0) { sbuf_printf(sb, "%*s \n", indent, ""); for (i = 0; i < cg->cg_children; i++) - sysctl_kern_sched_topology_spec_internal(sb, + sysctl_kern_sched_ule_topology_spec_internal(sb, &cg->cg_child[i], indent+2); sbuf_printf(sb, "%*s \n", indent, ""); } @@ -3463,7 +3463,7 @@ sysctl_kern_sched_topology_spec_internal(struct sbuf *sb, struct cpu_group *cg, * the recursive sysctl_kern_smp_topology_spec_internal(). */ static int -sysctl_kern_sched_topology_spec(SYSCTL_HANDLER_ARGS) +sysctl_kern_sched_ule_topology_spec(SYSCTL_HANDLER_ARGS) { struct sbuf *topo; int err; @@ -3475,7 +3475,7 @@ sysctl_kern_sched_topology_spec(SYSCTL_HANDLER_ARGS) return (ENOMEM); sbuf_cat(topo, "\n"); - err = sysctl_kern_sched_topology_spec_internal(topo, cpu_top, 1); + err = sysctl_kern_sched_ule_topology_spec_internal(topo, cpu_top, 1); sbuf_cat(topo, "\n"); if (err == 0) { @@ -3506,47 +3506,51 @@ sysctl_kern_quantum(SYSCTL_HANDLER_ARGS) return (0); } -SYSCTL_PROC(_kern_sched, OID_AUTO, quantum, +SYSCTL_NODE(_kern_sched, OID_AUTO, ule, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, + "ULE Scheduler"); + +SYSCTL_PROC(_kern_sched_ule, OID_AUTO, quantum, CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, NULL, 0, sysctl_kern_quantum, "I", "Quantum for timeshare threads in microseconds"); -SYSCTL_INT(_kern_sched, OID_AUTO, slice, CTLFLAG_RW, &sched_slice, 0, +SYSCTL_INT(_kern_sched_ule, OID_AUTO, slice, CTLFLAG_RW, &sched_slice, 0, "Quantum for timeshare threads in stathz ticks"); -SYSCTL_UINT(_kern_sched, OID_AUTO, interact, CTLFLAG_RWTUN, &sched_interact, 0, +SYSCTL_UINT(_kern_sched_ule, OID_AUTO, interact, CTLFLAG_RWTUN, &sched_interact, 0, "Interactivity score threshold"); -SYSCTL_INT(_kern_sched, OID_AUTO, preempt_thresh, CTLFLAG_RWTUN, +SYSCTL_INT(_kern_sched_ule, OID_AUTO, preempt_thresh, CTLFLAG_RWTUN, &preempt_thresh, 0, "Maximal (lowest) priority for preemption"); -SYSCTL_INT(_kern_sched, OID_AUTO, static_boost, CTLFLAG_RWTUN, &static_boost, 0, +SYSCTL_INT(_kern_sched_ule, OID_AUTO, static_boost, CTLFLAG_RWTUN, + &static_boost, 0, "Assign static kernel priorities to sleeping threads"); -SYSCTL_INT(_kern_sched, OID_AUTO, idlespins, CTLFLAG_RWTUN, &sched_idlespins, 0, +SYSCTL_INT(_kern_sched_ule, OID_AUTO, idlespins, CTLFLAG_RWTUN, + &sched_idlespins, 0, "Number of times idle thread will spin waiting for new work"); -SYSCTL_INT(_kern_sched, OID_AUTO, idlespinthresh, CTLFLAG_RW, +SYSCTL_INT(_kern_sched_ule, OID_AUTO, idlespinthresh, CTLFLAG_RW, &sched_idlespinthresh, 0, "Threshold before we will permit idle thread spinning"); #ifdef SMP -SYSCTL_INT(_kern_sched, OID_AUTO, affinity, CTLFLAG_RW, &affinity, 0, +SYSCTL_INT(_kern_sched_ule, OID_AUTO, affinity, CTLFLAG_RW, &affinity, 0, "Number of hz ticks to keep thread affinity for"); -SYSCTL_INT(_kern_sched, OID_AUTO, balance, CTLFLAG_RWTUN, &rebalance, 0, +SYSCTL_INT(_kern_sched_ule, OID_AUTO, balance, CTLFLAG_RWTUN, &rebalance, 0, "Enables the long-term load balancer"); -SYSCTL_INT(_kern_sched, OID_AUTO, balance_interval, CTLFLAG_RW, +SYSCTL_INT(_kern_sched_ule, OID_AUTO, balance_interval, CTLFLAG_RW, &balance_interval, 0, "Average period in stathz ticks to run the long-term balancer"); -SYSCTL_INT(_kern_sched, OID_AUTO, steal_idle, CTLFLAG_RWTUN, &steal_idle, 0, +SYSCTL_INT(_kern_sched_ule, OID_AUTO, steal_idle, CTLFLAG_RWTUN, + &steal_idle, 0, "Attempts to steal work from other cores before idling"); -SYSCTL_INT(_kern_sched, OID_AUTO, steal_thresh, CTLFLAG_RWTUN, &steal_thresh, 0, +SYSCTL_INT(_kern_sched_ule, OID_AUTO, steal_thresh, CTLFLAG_RWTUN, + &steal_thresh, 0, "Minimum load on remote CPU before we'll steal"); -SYSCTL_INT(_kern_sched, OID_AUTO, trysteal_limit, CTLFLAG_RWTUN, +SYSCTL_INT(_kern_sched_ule, OID_AUTO, trysteal_limit, CTLFLAG_RWTUN, &trysteal_limit, 0, "Topological distance limit for stealing threads in sched_switch()"); -SYSCTL_INT(_kern_sched, OID_AUTO, always_steal, CTLFLAG_RWTUN, &always_steal, 0, +SYSCTL_INT(_kern_sched_ule, OID_AUTO, always_steal, CTLFLAG_RWTUN, + &always_steal, 0, "Always run the stealer from the idle thread"); -SYSCTL_PROC(_kern_sched, OID_AUTO, topology_spec, CTLTYPE_STRING | - CTLFLAG_MPSAFE | CTLFLAG_RD, NULL, 0, sysctl_kern_sched_topology_spec, "A", +SYSCTL_PROC(_kern_sched_ule, OID_AUTO, topology_spec, CTLTYPE_STRING | + CTLFLAG_MPSAFE | CTLFLAG_RD, NULL, 0, + sysctl_kern_sched_ule_topology_spec, "A", "XML dump of detected CPU topology"); #endif - -/* ps compat. All cpu percentages from ULE are weighted. */ -static int ccpu = 0; -SYSCTL_INT(_kern, OID_AUTO, ccpu, CTLFLAG_RD, &ccpu, 0, - "Decay factor used for updating %CPU in 4BSD scheduler"); From nobody Wed Feb 11 05:17: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 4f9mrz4L5Qz6Rty7 for ; Wed, 11 Feb 2026 05:17: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 4f9mrz224gz3SVj for ; Wed, 11 Feb 2026 05:17:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787043; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VQC6rtcewUfYr7GpTpNeZjY88pieLcxQXXJAMH8npxs=; b=RIVuz46EAdKnwGv/yF2IurJRNa6pFvHhlp0ZxHrIH+gkT2lVxFh9q8eP11Q8vbMksx/u1A Rv/ki03OqZv+SkIy+bde4xTifEjYRmVRHQ7H2yRHNSExSebFh1nrZ+cbWPdCyu5c6JFLEz PEzeuO5Uv4BBtrdu23+WKbV9HrFpUWV9zf6RqZGKdPVfTNZdShtnL1RruZnFq9UqFvvKNf fWIk/gwnp2RH4FMnFDWkSZ0yxid07m8q5pnkHv/wcxW9R05vTcwoA4BSKNuL4EcQ8uvMRv LBrjdyW0rAr/kh4D8hH1vl/sc4+NWX1/NZT3lT8vh8ZXRyzZM7ecymBJfw/HsA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787043; a=rsa-sha256; cv=none; b=D1WFlkAVCGmW9jE+n2S9fUSIUodV5+pCWbDoMWN0NVEhyq7NOf/URg35Zc+QvaWdJ2/u3j YNz+mRchm7uzHvZraWg7eGVVoKQakFckZ606UKT5odn6VUdPXGrklIPZlbTbdH29TzxGM+ EA0mCEu4JIN0aQWQwmuIjeNyRvacADB9Hel3khjFkjn35wvGh4Du095yDmNIqD67o0GFvc 8yYNsPBdtmvQq68LLt6Q0kzJlUc26NkjOgYG4NxZIdUsB+TQg8Z2e7MsWwMyuF6uLIdpA7 I6vnEvTuRRUIuao4QVC4mFXPBcDNxpNFImFc/g9eYSegx14EC9zJR9MMqKaWVw== 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=1770787043; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=VQC6rtcewUfYr7GpTpNeZjY88pieLcxQXXJAMH8npxs=; b=bo7e/E8+eFXxXFuGKQJyt4nB2U7RO2xuvmiuoul+VZ8rK1S2qPVsJKkVzbdO/GLv6hDB6x n71j8fEJf4e4sfrj8Wsf/ynj1QnfBM+F5wPVQW8Orss2l7Bv7SxAUAAmzBrG0SKW2xxr/X moTUp6qhARPou89oJxP6TogY7tMB10Gk9QzXOIyebUAcnNmv3j6s+3/l/2jk1UhGRkJSx2 rjvaPatnQKxMze9IFbC3r65SCs/HUInwCTuBejmRdfWLqw+KL6nvX19Q+HqvE1zHZ9/tCZ 8aYPbH7mmQgzhXYZwJeWoMukRDjcSPomSzFd+d66F3NxF+RczvzAXhUPYT5/yg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9mrz1bsFzbKd for ; Wed, 11 Feb 2026 05:17:23 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26691 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:23 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 22515fb38f99 - stable/15 - sys: Make sched_4bsd a sched instance 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: 22515fb38f999855940fc03fa8d26a07ca9d1908 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:23 +0000 Message-Id: <698c10e3.26691.4789f10@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=22515fb38f999855940fc03fa8d26a07ca9d1908 commit 22515fb38f999855940fc03fa8d26a07ca9d1908 Author: Konstantin Belousov AuthorDate: 2026-01-22 05:22:58 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:36 +0000 sys: Make sched_4bsd a sched instance (cherry picked from commit b125c4d13095b3f26d105a985099dfe1cc3ac0b3) --- sys/kern/sched_4bsd.c | 245 +++++++++++++++++++++++++++++--------------------- 1 file changed, 144 insertions(+), 101 deletions(-) diff --git a/sys/kern/sched_4bsd.c b/sys/kern/sched_4bsd.c index 066a1bc20d26..d81cbc4e6ddc 100644 --- a/sys/kern/sched_4bsd.c +++ b/sys/kern/sched_4bsd.c @@ -137,7 +137,6 @@ static void setup_runqs(void); static void schedcpu(void); static void schedcpu_thread(void); static void sched_priority(struct thread *td, u_char prio); -static void sched_setup(void *dummy); static void maybe_resched(struct thread *td); static void updatepri(struct thread *td); static void resetpriority(struct thread *td); @@ -153,13 +152,12 @@ static struct kproc_desc sched_kp = { schedcpu_thread, NULL }; -SYSINIT(schedcpu, SI_SUB_LAST, SI_ORDER_FIRST, kproc_start, - &sched_kp); -SYSINIT(sched_setup, SI_SUB_RUN_QUEUE, SI_ORDER_FIRST, sched_setup, NULL); -static void sched_initticks(void *dummy); -SYSINIT(sched_initticks, SI_SUB_CLOCKS, SI_ORDER_THIRD, sched_initticks, - NULL); +static void +sched_4bsd_schedcpu(void) +{ + kproc_start(&sched_kp); +} /* * Global run queue. @@ -213,11 +211,6 @@ sysctl_kern_quantum(SYSCTL_HANDLER_ARGS) return (0); } -SYSCTL_NODE(_kern, OID_AUTO, sched, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, - "Scheduler"); - -SYSCTL_STRING(_kern_sched, OID_AUTO, name, CTLFLAG_RD, "4BSD", 0, - "Scheduler name"); SYSCTL_PROC(_kern_sched, OID_AUTO, quantum, CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, NULL, 0, sysctl_kern_quantum, "I", @@ -638,9 +631,8 @@ resetpriority_thread(struct thread *td) sched_prio(td, td->td_user_pri); } -/* ARGSUSED */ static void -sched_setup(void *dummy) +sched_4bsd_setup(void) { setup_runqs(); @@ -653,7 +645,7 @@ sched_setup(void *dummy) * This routine determines time constants after stathz and hz are setup. */ static void -sched_initticks(void *dummy) +sched_4bsd_initticks(void) { realstathz = stathz ? stathz : hz; @@ -670,8 +662,8 @@ sched_initticks(void *dummy) * Called from: * proc0_init() */ -void -schedinit(void) +static void +sched_4bsd_init(void) { /* @@ -682,15 +674,15 @@ schedinit(void) mtx_init(&sched_lock, "sched lock", NULL, MTX_SPIN); } -void -schedinit_ap(void) +static void +sched_4bsd_init_ap(void) { /* Nothing needed. */ } -bool -sched_runnable(void) +static bool +sched_4bsd_runnable(void) { #ifdef SMP return (runq_not_empty(&runq) || @@ -700,8 +692,8 @@ sched_runnable(void) #endif } -int -sched_rr_interval(void) +static int +sched_4bsd_rr_interval(void) { /* Convert sched_slice from stathz to hz. */ @@ -771,8 +763,8 @@ sched_clock_tick(struct thread *td) stat->idlecalls = 0; } -void -sched_clock(struct thread *td, int cnt) +static void +sched_4bsd_clock(struct thread *td, int cnt) { for ( ; cnt > 0; cnt--) @@ -782,8 +774,8 @@ sched_clock(struct thread *td, int cnt) /* * Charge child's scheduling CPU usage to parent. */ -void -sched_exit(struct proc *p, struct thread *td) +static void +sched_4bsd_exit(struct proc *p, struct thread *td) { KTR_STATE1(KTR_SCHED, "thread", sched_tdname(td), "proc exit", @@ -793,8 +785,8 @@ sched_exit(struct proc *p, struct thread *td) sched_exit_thread(FIRST_THREAD_IN_PROC(p), td); } -void -sched_exit_thread(struct thread *td, struct thread *child) +static void +sched_4bsd_exit_thread(struct thread *td, struct thread *child) { KTR_STATE1(KTR_SCHED, "thread", sched_tdname(child), "exit", @@ -809,14 +801,14 @@ sched_exit_thread(struct thread *td, struct thread *child) thread_unlock(child); } -void -sched_fork(struct thread *td, struct thread *childtd) +static void +sched_4bsd_fork(struct thread *td, struct thread *childtd) { sched_fork_thread(td, childtd); } -void -sched_fork_thread(struct thread *td, struct thread *childtd) +static void +sched_4bsd_fork_thread(struct thread *td, struct thread *childtd) { struct td_sched *ts, *tsc; @@ -834,8 +826,8 @@ sched_fork_thread(struct thread *td, struct thread *childtd) ts->ts_slice = 1; } -void -sched_nice(struct proc *p, int nice) +static void +sched_4bsd_nice(struct proc *p, int nice) { struct thread *td; @@ -849,8 +841,8 @@ sched_nice(struct proc *p, int nice) } } -void -sched_class(struct thread *td, int class) +static void +sched_4bsd_class(struct thread *td, int class) { THREAD_LOCK_ASSERT(td, MA_OWNED); td->td_pri_class = class; @@ -888,8 +880,8 @@ sched_priority(struct thread *td, u_char prio) * Update a thread's priority when it is lent another thread's * priority. */ -void -sched_lend_prio(struct thread *td, u_char prio) +static void +sched_4bsd_lend_prio(struct thread *td, u_char prio) { td->td_flags |= TDF_BORROWING; @@ -904,8 +896,8 @@ sched_lend_prio(struct thread *td, u_char prio) * important than prio the thread will keep a priority boost * of prio. */ -void -sched_unlend_prio(struct thread *td, u_char prio) +static void +sched_4bsd_unlend_prio(struct thread *td, u_char prio) { u_char base_pri; @@ -921,8 +913,8 @@ sched_unlend_prio(struct thread *td, u_char prio) sched_lend_prio(td, prio); } -void -sched_prio(struct thread *td, u_char prio) +static void +sched_4bsd_prio(struct thread *td, u_char prio) { u_char oldprio; @@ -948,8 +940,8 @@ sched_prio(struct thread *td, u_char prio) turnstile_adjust(td, oldprio); } -void -sched_ithread_prio(struct thread *td, u_char prio) +static void +sched_4bsd_ithread_prio(struct thread *td, u_char prio) { THREAD_LOCK_ASSERT(td, MA_OWNED); MPASS(td->td_pri_class == PRI_ITHD); @@ -957,8 +949,8 @@ sched_ithread_prio(struct thread *td, u_char prio) sched_prio(td, prio); } -void -sched_user_prio(struct thread *td, u_char prio) +static void +sched_4bsd_user_prio(struct thread *td, u_char prio) { THREAD_LOCK_ASSERT(td, MA_OWNED); @@ -968,8 +960,8 @@ sched_user_prio(struct thread *td, u_char prio) td->td_user_pri = prio; } -void -sched_lend_user_prio(struct thread *td, u_char prio) +static void +sched_4bsd_lend_user_prio(struct thread *td, u_char prio) { THREAD_LOCK_ASSERT(td, MA_OWNED); @@ -984,8 +976,8 @@ sched_lend_user_prio(struct thread *td, u_char prio) /* * Like the above but first check if there is anything to do. */ -void -sched_lend_user_prio_cond(struct thread *td, u_char prio) +static void +sched_4bsd_lend_user_prio_cond(struct thread *td, u_char prio) { if (td->td_lend_user_pri == prio) @@ -996,8 +988,8 @@ sched_lend_user_prio_cond(struct thread *td, u_char prio) thread_unlock(td); } -void -sched_sleep(struct thread *td, int pri) +static void +sched_4bsd_sleep(struct thread *td, int pri) { THREAD_LOCK_ASSERT(td, MA_OWNED); @@ -1007,8 +999,8 @@ sched_sleep(struct thread *td, int pri) sched_prio(td, pri); } -void -sched_switch(struct thread *td, int flags) +static void +sched_4bsd_sswitch(struct thread *td, int flags) { struct thread *newtd; struct mtx *tmtx; @@ -1140,8 +1132,8 @@ sched_switch(struct thread *td, int flags) mtx_unlock_spin(&sched_lock); } -void -sched_wakeup(struct thread *td, int srqflags) +static void +sched_4bsd_wakeup(struct thread *td, int srqflags) { struct td_sched *ts; @@ -1316,8 +1308,8 @@ sched_pickcpu(struct thread *td) } #endif -void -sched_add(struct thread *td, int flags) +static void +sched_4bsd_add(struct thread *td, int flags) #ifdef SMP { cpuset_t tidlemsk; @@ -1464,8 +1456,8 @@ sched_add(struct thread *td, int flags) } #endif /* SMP */ -void -sched_rem(struct thread *td) +static void +sched_4bsd_rem(struct thread *td) { struct td_sched *ts; @@ -1494,8 +1486,8 @@ sched_rem(struct thread *td) * Select threads to run. Note that running threads still consume a * slot. */ -struct thread * -sched_choose(void) +static struct thread * +sched_4bsd_choose(void) { struct thread *td; struct runq *rq; @@ -1539,8 +1531,8 @@ sched_choose(void) return (PCPU_GET(idlethread)); } -void -sched_preempt(struct thread *td) +static void +sched_4bsd_preempt(struct thread *td) { int flags; @@ -1556,8 +1548,8 @@ sched_preempt(struct thread *td) } } -void -sched_userret_slowpath(struct thread *td) +static void +sched_4bsd_userret_slowpath(struct thread *td) { thread_lock(td); @@ -1566,8 +1558,8 @@ sched_userret_slowpath(struct thread *td) thread_unlock(td); } -void -sched_bind(struct thread *td, int cpu) +static void +sched_4bsd_bind(struct thread *td, int cpu) { #ifdef SMP struct td_sched *ts = td_get_sched(td); @@ -1587,48 +1579,48 @@ sched_bind(struct thread *td, int cpu) #endif } -void -sched_unbind(struct thread* td) +static void +sched_4bsd_unbind(struct thread* td) { THREAD_LOCK_ASSERT(td, MA_OWNED); KASSERT(td == curthread, ("sched_unbind: can only bind curthread")); td->td_flags &= ~TDF_BOUND; } -int -sched_is_bound(struct thread *td) +static int +sched_4bsd_is_bound(struct thread *td) { THREAD_LOCK_ASSERT(td, MA_OWNED); return (td->td_flags & TDF_BOUND); } -void -sched_relinquish(struct thread *td) +static void +sched_4bsd_relinquish(struct thread *td) { thread_lock(td); mi_switch(SW_VOL | SWT_RELINQUISH); } -int -sched_load(void) +static int +sched_4bsd_load(void) { return (sched_tdcnt); } -int -sched_sizeof_proc(void) +static int +sched_4bsd_sizeof_proc(void) { return (sizeof(struct proc)); } -int -sched_sizeof_thread(void) +static int +sched_4bsd_sizeof_thread(void) { return (sizeof(struct thread) + sizeof(struct td_sched)); } -fixpt_t -sched_pctcpu(struct thread *td) +static fixpt_t +sched_4bsd_pctcpu(struct thread *td) { struct td_sched *ts; @@ -1637,8 +1629,8 @@ sched_pctcpu(struct thread *td) return (ts->ts_pctcpu); } -u_int -sched_estcpu(struct thread *td) +static u_int +sched_4bsd_estcpu(struct thread *td) { return (td_get_sched(td)->ts_estcpu); @@ -1647,8 +1639,8 @@ sched_estcpu(struct thread *td) /* * The actual idle process. */ -void -sched_idletd(void *dummy) +static void +sched_4bsd_idletd(void *dummy) { struct pcpuidlestat *stat; @@ -1689,8 +1681,8 @@ sched_throw_tail(struct thread *td) /* * A CPU is entering for the first time. */ -void -sched_ap_entry(void) +static void +sched_4bsd_ap_entry(void) { /* @@ -1713,8 +1705,8 @@ sched_ap_entry(void) /* * A thread is exiting. */ -void -sched_throw(struct thread *td) +static void +sched_4bsd_throw(struct thread *td) { MPASS(td != NULL); @@ -1727,8 +1719,8 @@ sched_throw(struct thread *td) sched_throw_tail(td); } -void -sched_fork_exit(struct thread *td) +static void +sched_4bsd_fork_exit(struct thread *td) { /* @@ -1746,8 +1738,8 @@ sched_fork_exit(struct thread *td) SDT_PROBE0(sched, , , on__cpu); } -char * -sched_tdname(struct thread *td) +static char * +sched_4bsd_tdname(struct thread *td) { #ifdef KTR struct td_sched *ts; @@ -1762,19 +1754,19 @@ sched_tdname(struct thread *td) #endif } -#ifdef KTR -void -sched_clear_tdname(struct thread *td) +static void +sched_4bsd_clear_tdname(struct thread *td) { +#ifdef KTR struct td_sched *ts; ts = td_get_sched(td); ts->ts_name[0] = '\0'; -} #endif +} -void -sched_affinity(struct thread *td) +static void +sched_4bsd_affinity(struct thread *td) { #ifdef SMP struct td_sched *ts; @@ -1836,3 +1828,54 @@ sched_affinity(struct thread *td) } #endif } + +struct sched_instance sched_4bsd_instance = { +#define SLOT(name) .name = sched_4bsd_##name + SLOT(load), + SLOT(rr_interval), + SLOT(runnable), + SLOT(exit), + SLOT(fork), + SLOT(fork_exit), + SLOT(class), + SLOT(nice), + SLOT(ap_entry), + SLOT(exit_thread), + SLOT(estcpu), + SLOT(fork_thread), + SLOT(ithread_prio), + SLOT(lend_prio), + SLOT(lend_user_prio), + SLOT(lend_user_prio_cond), + SLOT(pctcpu), + SLOT(prio), + SLOT(sleep), + SLOT(sswitch), + SLOT(throw), + SLOT(unlend_prio), + SLOT(user_prio), + SLOT(userret_slowpath), + SLOT(add), + SLOT(choose), + SLOT(clock), + SLOT(idletd), + SLOT(preempt), + SLOT(relinquish), + SLOT(rem), + SLOT(wakeup), + SLOT(bind), + SLOT(unbind), + SLOT(is_bound), + SLOT(affinity), + SLOT(sizeof_proc), + SLOT(sizeof_thread), + SLOT(tdname), + SLOT(clear_tdname), + SLOT(init), + SLOT(init_ap), + SLOT(setup), + SLOT(initticks), + SLOT(schedcpu), +#undef SLOT +}; +DECLARE_SCHEDULER(fourbsd_sched_selector, "4BSD", &sched_4bsd_instance); From nobody Wed Feb 11 05:17: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 4f9ms05m5hz6Rty9 for ; Wed, 11 Feb 2026 05:17: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 4f9ms02wLxz3SKl for ; Wed, 11 Feb 2026 05:17:24 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787044; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LpY7lOzOP59EJVKisAA2Kg0b+EBvuWX1/oj5drYfm6E=; b=MnaQnBGEgMmhgNlzIbRBCtO4VQPmFL+bFKXp4iR8zPpmAmqgpI3589Iuf6VIRBwnUYUcqM p+aSp8Hv0zx3v8LoQjXzRZmDucaO4jUPqUD8f0Fr+9+iybMHEHKbpJjS7CK5zZOtZDOdq2 OClp7uxhw0F3PO0M/XrK7GnLQFusSx4JuxPJkE+It688vuoaDYpS7oUvLmPBxNkzaz3jWp tPOJYlLQqJTdCwWLVCVDHLKYVmeg/zgfusp/kXj5tbeydGYwNAqr2vfyiYd57mI1I7mNxH feht5iT0lkpJjlG20pHP/0QpBM3EP+zSB9SzBvAUIevzwdxYzo+6JVmQYifuMA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787044; a=rsa-sha256; cv=none; b=Gy3iCwNt6HfwMQMdje6Pxr/Ya8K6Fgefn58WHKpaS9lNDovlQ11GuKa1Lqr73123o/ATpc fdGl+4YmkNIyAlHw+274X/R9+pDBwZvt2Thg02Ev0pk0tQTAA3+UBrEalG0eyYLHzLy5QP wlYudA4zYlhPXaBmgMxUjW+46b4jG10z+JmxneqxtLWSxPl2WS7lWQ6O/VPObo4WOWbdhj YTwUR7URRhc5AmbFrrBIHC4w8te1WsBKtPPR4nHroYQhyBvMIueBF+tnjfWS4ntEDHIEe/ G9VnsvX4SsGmAm/Oh7xuJ4ZAtSDo4GjiEXuiVgiQz/E38yWiqIfgUryxv7MIkA== 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=1770787044; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=LpY7lOzOP59EJVKisAA2Kg0b+EBvuWX1/oj5drYfm6E=; b=cSQuoMMlBUoBGfSUNarJvxlkO/zk2m8Kdc0sEhv+YQsz1XXxdE1r+BDiP2d8cB4AlqAstc BBT3qWxP7MqfpA3kKCTi7w6EmLfY24hmtpaqdMmy+R979pGjBPDG3LIIgkAz4GiC/7g6Eh B3Muca/HgBZJXE3Lak3uTcNQHCMtg2oa0vm+g95xXsYdCbfmSq5QCR3qiX06Yn+JLn6k7O ywGLvMjP4sca4P9+9zPT6UB0qa0hFnwXhbQeEmPpxz2KVo6COdpwTTEWbrhOvVsfP3dXk/ XL5vKy9UhwSHlgkocBzvZg8QcY6l3dhi0Tgdmgzh0VKw6Z6bCgIMvHgtcg2Gag== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9ms02MV9zcYs for ; Wed, 11 Feb 2026 05:17:24 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 25e70 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:24 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 6300032ff6e9 - stable/15 - sys: Move 4BSD sysctls under kern.sched.4bsd 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: 6300032ff6e90a456a28e6c8923b1bfd8ef953b2 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:24 +0000 Message-Id: <698c10e4.25e70.51c88514@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=6300032ff6e90a456a28e6c8923b1bfd8ef953b2 commit 6300032ff6e90a456a28e6c8923b1bfd8ef953b2 Author: Konstantin Belousov AuthorDate: 2026-01-22 05:46:25 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:36 +0000 sys: Move 4BSD sysctls under kern.sched.4bsd (cherry picked from commit 8aa8289d991bc369b6739ce4c4bcd7d5234f48a2) --- sys/kern/sched_4bsd.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/sys/kern/sched_4bsd.c b/sys/kern/sched_4bsd.c index d81cbc4e6ddc..dae084aabcba 100644 --- a/sys/kern/sched_4bsd.c +++ b/sys/kern/sched_4bsd.c @@ -194,7 +194,7 @@ setup_runqs(void) } static int -sysctl_kern_quantum(SYSCTL_HANDLER_ARGS) +sysctl_kern_4bsd_quantum(SYSCTL_HANDLER_ARGS) { int error, new_val, period; @@ -211,50 +211,54 @@ sysctl_kern_quantum(SYSCTL_HANDLER_ARGS) return (0); } -SYSCTL_PROC(_kern_sched, OID_AUTO, quantum, +SYSCTL_NODE(_kern_sched, OID_AUTO, 4bsd, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, + "4BSD Scheduler"); + +SYSCTL_PROC(_kern_sched_4bsd, OID_AUTO, quantum, CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_MPSAFE, NULL, 0, - sysctl_kern_quantum, "I", + sysctl_kern_4bsd_quantum, "I", "Quantum for timeshare threads in microseconds"); -SYSCTL_INT(_kern_sched, OID_AUTO, slice, CTLFLAG_RW, &sched_slice, 0, +SYSCTL_INT(_kern_sched_4bsd, OID_AUTO, slice, CTLFLAG_RW, &sched_slice, 0, "Quantum for timeshare threads in stathz ticks"); #ifdef SMP /* Enable forwarding of wakeups to all other cpus */ -static SYSCTL_NODE(_kern_sched, OID_AUTO, ipiwakeup, +static SYSCTL_NODE(_kern_sched_4bsd, OID_AUTO, ipiwakeup, CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, "Kernel SMP"); static int runq_fuzz = 1; -SYSCTL_INT(_kern_sched, OID_AUTO, runq_fuzz, CTLFLAG_RW, &runq_fuzz, 0, ""); +SYSCTL_INT(_kern_sched_4bsd, OID_AUTO, runq_fuzz, CTLFLAG_RW, + &runq_fuzz, 0, ""); static int forward_wakeup_enabled = 1; -SYSCTL_INT(_kern_sched_ipiwakeup, OID_AUTO, enabled, CTLFLAG_RW, +SYSCTL_INT(_kern_sched_4bsd_ipiwakeup, OID_AUTO, enabled, CTLFLAG_RW, &forward_wakeup_enabled, 0, "Forwarding of wakeup to idle CPUs"); static int forward_wakeups_requested = 0; -SYSCTL_INT(_kern_sched_ipiwakeup, OID_AUTO, requested, CTLFLAG_RD, +SYSCTL_INT(_kern_sched_4bsd_ipiwakeup, OID_AUTO, requested, CTLFLAG_RD, &forward_wakeups_requested, 0, "Requests for Forwarding of wakeup to idle CPUs"); static int forward_wakeups_delivered = 0; -SYSCTL_INT(_kern_sched_ipiwakeup, OID_AUTO, delivered, CTLFLAG_RD, +SYSCTL_INT(_kern_sched_4bsd_ipiwakeup, OID_AUTO, delivered, CTLFLAG_RD, &forward_wakeups_delivered, 0, "Completed Forwarding of wakeup to idle CPUs"); static int forward_wakeup_use_mask = 1; -SYSCTL_INT(_kern_sched_ipiwakeup, OID_AUTO, usemask, CTLFLAG_RW, +SYSCTL_INT(_kern_sched_4bsd_ipiwakeup, OID_AUTO, usemask, CTLFLAG_RW, &forward_wakeup_use_mask, 0, "Use the mask of idle cpus"); static int forward_wakeup_use_loop = 0; -SYSCTL_INT(_kern_sched_ipiwakeup, OID_AUTO, useloop, CTLFLAG_RW, +SYSCTL_INT(_kern_sched_4bsd_ipiwakeup, OID_AUTO, useloop, CTLFLAG_RW, &forward_wakeup_use_loop, 0, "Use a loop to find idle cpus"); #endif #if 0 static int sched_followon = 0; -SYSCTL_INT(_kern_sched, OID_AUTO, followon, CTLFLAG_RW, +SYSCTL_INT(_kern_sched_4bsd, OID_AUTO, followon, CTLFLAG_RW, &sched_followon, 0, "allow threads to share a quantum"); #endif @@ -434,7 +438,7 @@ maybe_preempt(struct thread *td) /* decay 95% of `ts_pctcpu' in 60 seconds; see CCPU_SHIFT before changing */ static fixpt_t ccpu = 0.95122942450071400909 * FSCALE; /* exp(-1/20) */ -SYSCTL_UINT(_kern, OID_AUTO, ccpu, CTLFLAG_RD, &ccpu, 0, +SYSCTL_UINT(_kern_sched_4bsd, OID_AUTO, ccpu, CTLFLAG_RD, &ccpu, 0, "Decay factor used for updating %CPU"); /* From nobody Wed Feb 11 05:17: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 4f9ms16B2zz6RtyC for ; Wed, 11 Feb 2026 05:17: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 4f9ms13Jtzz3SQH for ; Wed, 11 Feb 2026 05:17:25 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787045; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=STdjikRfk1IlBpSLW0SRqL93rgmjzeIVeOVREIfySwg=; b=QD3VJrNcDBaqUaRu/Y9lQxBf4CZr4WJIGyab/OWANvbjfkBcxAXOuSVZ/gHK2IdBFnAGXr LiwbK1Vg9tXlx729wvZKUifgvU1PAgMjkRXm97Mmr1Q5Va5o7kLWuSXXB1i6hFwDz5Om0J xEz1VbQueAKG4ZoopU7rKmHjgRbLwUxwHPbj10Q63DOMwQSK9p1h+Il3oNqC1LjWaMQvAu Q1GRiNAhXms93d3lHzge1EPz8Y2z0lY0mW+oOuS6vezTIohjxeUYZWJQKhzRzalkKVZeSU RdN5qbSUjBfjdUI93pYxno0/lXG7EvSz3GhJUGYtOXNetm1cvXQNM+tVP5dMwA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787045; a=rsa-sha256; cv=none; b=rdoLNy2rIRgueRIcjqvNJ2G+wGNIpcFZHM+TkBnqEterAYJ1riDgoOPIVOMN+tVZ6yzryR rtULp7pvDvuVXY1m/egUIll0avmtQzT4QDSpWZ2nHziDo5XV11YDvT9VrMVclgZSlADtMc fltLHW7F2HdiIHA2XfNJoNuYLZq7L1DYZ1YWjIApH0e3RqqB540m1VD1xk1MFJLC88o+nh aoJJWn/zv/wzHu2Iz+FUo+1O/txD4+vKbdRCaRthRb8LjUfFhnKRCH8UVvAGzF+O9irOWa 4BRCl5CpeMXiR25XxM7+muo01cURdVsQSLktHaMfCWFaC59Oawh7PHYWqWxqYg== 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=1770787045; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=STdjikRfk1IlBpSLW0SRqL93rgmjzeIVeOVREIfySwg=; b=XYuBoGFUnM352kK7NogG6wzUZ/LDmX6xC3CzrgxVS2UVn1j+o7Bthsy9gRNLS0sQFMvqwA uY98bTbFIWLrUATy9Fss5SX0NMOQ19p+Uosxo7iD62GW81dxk6o2GjSjJBRoyHjfgNfJsU mIP649q+mhfjQgn7RihM6snjdoqmiDIDD32ERAeQSxNsyY1U3qhIbpuQ9iGnrhQvQmCn8x BkkpZSJZoTnn1733IQQvDzZ/HDS2fDx8bUpOO0wrOlW8/9kEqOUbH9nISj7rCM5fMHL3Ab z/ZbBEe7SWfxdkeRhMA7oBlkeh8Bhsml0kl1GYM6B6Tuj7jh1rCs+Wgu1r3KWg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9ms12psBzcTC for ; Wed, 11 Feb 2026 05:17:25 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26451 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:25 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 684091fa5e3a - stable/15 - kern/sched_shim.c: Add sysctl kern.sched.available 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: 684091fa5e3a86d4682fc466c9c582d1e645e047 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:25 +0000 Message-Id: <698c10e5.26451.ed8431f@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=684091fa5e3a86d4682fc466c9c582d1e645e047 commit 684091fa5e3a86d4682fc466c9c582d1e645e047 Author: Konstantin Belousov AuthorDate: 2026-01-22 05:57:49 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:36 +0000 kern/sched_shim.c: Add sysctl kern.sched.available (cherry picked from commit ba8f429f42ecae1881d0face52df87ad1489af15) --- sys/kern/sched_shim.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/sys/kern/sched_shim.c b/sys/kern/sched_shim.c index 96c824745815..f25b803bae82 100644 --- a/sys/kern/sched_shim.c +++ b/sys/kern/sched_shim.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -166,3 +167,33 @@ SYSCTL_NODE(_kern, OID_AUTO, sched, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, SYSCTL_STRING(_kern_sched, OID_AUTO, name, CTLFLAG_RD, sched_name, 0, "Scheduler name"); + +static int +sysctl_kern_sched_available(SYSCTL_HANDLER_ARGS) +{ + struct sched_selection *s, **ss; + struct sbuf *sb, sm; + int error; + bool first; + + sb = sbuf_new_for_sysctl(&sm, NULL, 0, req); + if (sb == NULL) + return (ENOMEM); + first = true; + SET_FOREACH(ss, sched_instance_set) { + s = *ss; + if (first) + first = false; + else + sbuf_cat(sb, ","); + sbuf_cat(sb, s->name); + } + error = sbuf_finish(sb); + sbuf_delete(sb); + return (error); +} + +SYSCTL_PROC(_kern_sched, OID_AUTO, available, + CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, + NULL, 0, sysctl_kern_sched_available, "A", + "List of available schedulers"); From nobody Wed Feb 11 05:17: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 4f9ms30Jdvz6RtRf for ; Wed, 11 Feb 2026 05:17: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 4f9ms246Bhz3SdY for ; Wed, 11 Feb 2026 05:17:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787046; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hrBHu8kYXmwUbN1cdhGItc4YDL8yR7ZFZgd8eLxQnq0=; b=TJBztcjkgSAJCqIMMQShSqgOAB2IuV4d9GE0jeXaPFZVnR9KtsNS4WL+huZxRM04ov3gNb 3GKcupfvJTprvF84gnMkltwqw/HTHL1pfcbCTkTOvjPPf2RyulXRztVdPetrRoytZrjsXv i5JtI9sobA3cTJdnd1GqAP2JRS99knwfDLsG+4r0LkiBNRbLOjNaSk17T7uxk61HjX3nLw Ty/OK6T4tpi62FBjO+E+7tBruCTwkKV3ps1lXxXtHsl8i5Opp83/QZ9I+eE+t/w8v/zRtK GGyv6o6iFVX616/x5H/u7Dl5gZkKZuqfWVgZDbtEGxzEHwa3/XIqfhpo6HkjbQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787046; a=rsa-sha256; cv=none; b=MbCAjG2AuhNccFRB6eMIs59nC+HJzyc8VlPhBZP6/bDBOMmU+6e244vyHZ5BsMepGVz730 hk7JwPxPJr/1lQ7Ak/9dw0KO8wV6AmtAUPGgl63XamMIHsHpPnrF+dhCogBkiCw8onnxAa PV/sLjQdk6uC+AsskoZzCDP8sSPPxbV6Z3RibCh9Bu5m410x46FCM0lY9prJK2GjRJM2cg VN72ParQiZg5wLRvWLBH8Y6FBuGf/DRHJuaNxIpNanr5hb/lvycvyIxh++Oo3wWXN4Sg8K g0lLVCGZSnUWxATQ+z39FNa/QBinpEG+IFD5GRb8g3lIOo3qptmE5RNMHQ94jQ== 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=1770787046; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=hrBHu8kYXmwUbN1cdhGItc4YDL8yR7ZFZgd8eLxQnq0=; b=eaqF6K0qQSZ/SMw1LVAvimsLKFrvpO1tohTelMIrZXjXUto2VsM1i/bZyNzAndkMCmczbg uVNdoHr9ygm+uYnqr5qnZglN0bdvi3GKnISMHH7jkjDEq9Uf2QCvcPkBXYQPC5UbIe7vtx QXbQA1ZWAN2TjrzInR5iROh0ilXunTKN6wgQOm1rYf0/YsboNyJZFkIt/J0LXVDldwMW4G FSMqfvM6uZJ3vY5RMvd0WcozU2EEKXdtqxqxBGuZzeRLqsTubzWGqSmPYXu8uR2F0vVhiR 2MLCf8crvGDkgR9ft8GNX68Xl5BztZw2ZhacsFMmOwG1Qt0ue9OhwzW2c1aowA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9ms23S5zzcHX for ; Wed, 11 Feb 2026 05:17:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26d2f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:26 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 29512eb203ae - stable/15 - cpu_switch(): unconditionally wait on the blocked mutex transient 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: 29512eb203ae77d4927dcecb81a3e09f91f81e47 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:26 +0000 Message-Id: <698c10e6.26d2f.382f0d2e@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=29512eb203ae77d4927dcecb81a3e09f91f81e47 commit 29512eb203ae77d4927dcecb81a3e09f91f81e47 Author: Konstantin Belousov AuthorDate: 2026-01-22 12:57:24 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:37 +0000 cpu_switch(): unconditionally wait on the blocked mutex transient (cherry picked from commit 377c053a43f347588ce6800627adb634f87f8cf9) --- sys/amd64/amd64/cpu_switch.S | 5 ----- sys/arm/arm/swtch-v6.S | 7 +------ sys/arm64/arm64/swtch.S | 3 +-- sys/i386/i386/swtch.S | 31 +++++++++++++------------------ sys/powerpc/powerpc/swtch32.S | 3 +-- sys/powerpc/powerpc/swtch64.S | 3 +-- sys/riscv/riscv/swtch.S | 3 +-- 7 files changed, 18 insertions(+), 37 deletions(-) diff --git a/sys/amd64/amd64/cpu_switch.S b/sys/amd64/amd64/cpu_switch.S index d7e954f573b0..17ff8005e3cd 100644 --- a/sys/amd64/amd64/cpu_switch.S +++ b/sys/amd64/amd64/cpu_switch.S @@ -35,7 +35,6 @@ #include #include "assym.inc" -#include "opt_sched.h" /*****************************************************************************/ /* Scheduling */ @@ -136,13 +135,11 @@ ctx_switch_fpusave_done: movq %r15,TD_LOCK(%r13) /* Release the old thread */ sw1: leaq TD_MD_PCB(%r12),%r8 -#if defined(SCHED_ULE) movq $blocked_lock, %rdx movq TD_LOCK(%r12),%rcx cmpq %rcx, %rdx je sw1wait sw1cont: -#endif /* * At this point, we've switched address spaces and are ready * to load up the rest of the next context. @@ -492,7 +489,6 @@ ENTRY(resumectx) END(resumectx) /* Wait for the new thread to become unblocked */ -#if defined(SCHED_ULE) sw1wait: 1: pause @@ -500,4 +496,3 @@ sw1wait: cmpq %rcx, %rdx je 1b jmp sw1cont -#endif diff --git a/sys/arm/arm/swtch-v6.S b/sys/arm/arm/swtch-v6.S index 97d863b6d4de..98c8e5c41ec5 100644 --- a/sys/arm/arm/swtch-v6.S +++ b/sys/arm/arm/swtch-v6.S @@ -79,7 +79,6 @@ */ #include "assym.inc" -#include "opt_sched.h" #include #include @@ -432,11 +431,7 @@ sw1: * r11 = newtd */ -#if defined(SMP) && defined(SCHED_ULE) - /* - * 386 and amd64 do the blocked lock test only for SMP and SCHED_ULE - * QQQ: What does it mean in reality and why is it done? - */ +#if defined(SMP) ldr r6, =blocked_lock 1: ldr r3, [r11, #TD_LOCK] /* atomic write regular read */ diff --git a/sys/arm64/arm64/swtch.S b/sys/arm64/arm64/swtch.S index a461fded929c..b3bf88135e57 100644 --- a/sys/arm64/arm64/swtch.S +++ b/sys/arm64/arm64/swtch.S @@ -31,7 +31,6 @@ #include "assym.inc" #include "opt_kstack_pages.h" -#include "opt_sched.h" #include @@ -197,7 +196,7 @@ ENTRY(cpu_switch) * Release the old thread. */ stlr x2, [x0, #TD_LOCK] -#if defined(SCHED_ULE) && defined(SMP) +#if defined(SMP) /* Spin if TD_LOCK points to a blocked_lock */ ldr x2, =_C_LABEL(blocked_lock) 1: diff --git a/sys/i386/i386/swtch.S b/sys/i386/i386/swtch.S index 5c2e078b5446..cb03c847fbc9 100644 --- a/sys/i386/i386/swtch.S +++ b/sys/i386/i386/swtch.S @@ -30,27 +30,11 @@ * SUCH DAMAGE. */ -#include "opt_sched.h" - #include #include "assym.inc" -#if defined(SMP) && defined(SCHED_ULE) -#define SETOP xchgl #define BLOCK_SPIN(reg) \ - movl $blocked_lock,%eax ; \ - 100: ; \ - lock ; \ - cmpxchgl %eax,TD_LOCK(reg) ; \ - jne 101f ; \ - pause ; \ - jmp 100b ; \ - 101: -#else -#define SETOP movl -#define BLOCK_SPIN(reg) -#endif /*****************************************************************************/ /* Scheduling */ @@ -162,7 +146,7 @@ ENTRY(cpu_switch) /* Switchout td_lock */ movl %esi,%eax movl PCPU(CPUID),%esi - SETOP %eax,TD_LOCK(%edi) + xchgl %eax,TD_LOCK(%edi) /* Release bit from old pmap->pm_active */ movl PCPU(CURPMAP), %ebx @@ -181,7 +165,18 @@ ENTRY(cpu_switch) #endif btsl %esi, PM_ACTIVE(%ebx) /* set new */ sw1: - BLOCK_SPIN(%ecx) +#ifdef SMP + movl $blocked_lock,%eax +100: + + lock + cmpxchgl %eax,TD_LOCK(reg) + jne 101f + pause + jmp 100b +101: +#endif + /* * At this point, we have managed thread locks and are ready * to load up the rest of the next context. diff --git a/sys/powerpc/powerpc/swtch32.S b/sys/powerpc/powerpc/swtch32.S index ef1a397bf74d..96ac8a161424 100644 --- a/sys/powerpc/powerpc/swtch32.S +++ b/sys/powerpc/powerpc/swtch32.S @@ -56,7 +56,6 @@ */ #include "assym.inc" -#include "opt_sched.h" #include @@ -129,7 +128,7 @@ ENTRY(cpu_switch) sync /* Make sure all of that finished */ cpu_switchin: -#if defined(SMP) && defined(SCHED_ULE) +#if defined(SMP) /* Wait for the new thread to become unblocked */ bl 1f 1: diff --git a/sys/powerpc/powerpc/swtch64.S b/sys/powerpc/powerpc/swtch64.S index ba37274d32bb..61af10aabaee 100644 --- a/sys/powerpc/powerpc/swtch64.S +++ b/sys/powerpc/powerpc/swtch64.S @@ -56,7 +56,6 @@ */ #include "assym.inc" -#include "opt_sched.h" #include @@ -187,7 +186,7 @@ save_tar: sync /* Make sure all of that finished */ cpu_switchin: -#if defined(SMP) && defined(SCHED_ULE) +#if defined(SMP) /* Wait for the new thread to become unblocked */ addis %r6,%r2,TOC_REF(blocked_lock)@ha ld %r6,TOC_REF(blocked_lock)@l(%r6) diff --git a/sys/riscv/riscv/swtch.S b/sys/riscv/riscv/swtch.S index cfd19a2d76d6..fc9b493744b8 100644 --- a/sys/riscv/riscv/swtch.S +++ b/sys/riscv/riscv/swtch.S @@ -33,7 +33,6 @@ */ #include "assym.inc" -#include "opt_sched.h" #include #include @@ -315,7 +314,7 @@ ENTRY(cpu_switch) /* Release the old thread */ sd s2, TD_LOCK(s0) -#if defined(SCHED_ULE) && defined(SMP) +#if defined(SMP) /* Spin if TD_LOCK points to a blocked_lock */ la s2, _C_LABEL(blocked_lock) 1: From nobody Wed Feb 11 05:17: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 4f9ms50j3nz6RthG for ; Wed, 11 Feb 2026 05:17: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 4f9ms45QYSz3STD for ; Wed, 11 Feb 2026 05:17:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787048; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=f8tWeioyjXV6WbPv4GSHCZmJ8Y2itafEMIjZhctX6gk=; b=IlaaJe9s25nCzxudwimOHJMvHOryv9Uo8bjmjxPzqr0StY7x7QmEHl37Y0GGh4XAMQXSyz ZU8kiTHN3AnD7i+Cl+2Zj/V9RmCeWLDTJ/hMPP5GGb95lLbzYHCYMaKKIsxZffwXgckcer hZFJfMeXDbrTfOhRiBxWMfTkN8cITWNLSnQZkZpl4NA/9PgJmJ2+3TnIdvn9Mpi/VdLYJ3 GXmmpGgbOhIC+dvLGkV2zZa6wgy4bncsc1Rytu3kA2bqyBte3Tt8Gx8QuyE33G4lYMzl4D 672f4ygcTux+cSYMh1HL7zQ4afvz3Q77UM6bXTg9ZSNJ2vtYn7lECsJI+ykFdg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787048; a=rsa-sha256; cv=none; b=CjA1nGlfahf1YgTVUE4fCa4q70GxPdxOCTLXEEfkzLc2WfYN9Tz2+NiSHssXB/jPw/dUtm myFrRGcPZj78DpWnNBt8JR7GrO8eMAn++4mY/huIWEwIpxhnEQPfbDIZWAoXkekqay1xEr ErE6oiOPJGp1RB6oNtCZ86M4nYGT2K9gk5n13JZ548U4MSMhnOAy9KjfCDT/yiA+Mk5hAA BtPnEqPx/wwOLgtMIjdKGj5wVbKvbcfetuA0IWk5ViVokFzFbS5kTJxQHg/Fufz/G8c44Y G6ASYB+VswKg/GqlEcNqZGgDnwq81SG6zRbSD6PVF3hgaqd2y6lWbWJXyWS3/g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787048; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=f8tWeioyjXV6WbPv4GSHCZmJ8Y2itafEMIjZhctX6gk=; b=O06EcQc+9BrJCBq1ZOrvdWUHBEZhnWvYjomVoaujY4PDXnEHTfi31VlckrDPPxhH+O0uLy bylZPJCbmaMolocnDbtEAteSmNXzmlH92qQxjUden3wpgEl8NeTSt6mdFawWBun7ihF5RL NICa+OA5UYs4RPJpEMu47uiSwE7hZ6buIQpIflAdOvERANqETcCmEC1/AiDE8es6nSKTU3 nGlFgF05dgZzmsRy+gZMT5UmLETU4CLE04BsZz2EF4lVyxYv7uZgaRKptK7dpUe9WYsUYS YuscuETGGpuevUO68JmEjBO3NOVl1wwrzpzqYeU0RHVFLTZxnI8GJgl0STsISQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9ms451V0zccD for ; Wed, 11 Feb 2026 05:17:28 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 25bf7 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:28 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: f491e0d2a85a - stable/15 - x86/cpu_machdep.c: unconditionally fence 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: f491e0d2a85a7232be33923dcc256e479bf30810 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:28 +0000 Message-Id: <698c10e8.25bf7.5b19b9ee@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=f491e0d2a85a7232be33923dcc256e479bf30810 commit f491e0d2a85a7232be33923dcc256e479bf30810 Author: Konstantin Belousov AuthorDate: 2026-01-22 13:27:00 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:37 +0000 x86/cpu_machdep.c: unconditionally fence (cherry picked from commit 1c4e16f6db81254376f4919aede03267fe572aea) --- sys/x86/x86/cpu_machdep.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/sys/x86/x86/cpu_machdep.c b/sys/x86/x86/cpu_machdep.c index 5b4abfe71642..067374be4941 100644 --- a/sys/x86/x86/cpu_machdep.c +++ b/sys/x86/x86/cpu_machdep.c @@ -47,7 +47,6 @@ #include "opt_kstack_pages.h" #include "opt_maxmem.h" #include "opt_platform.h" -#include "opt_sched.h" #ifdef __i386__ #include "opt_apic.h" #endif @@ -543,9 +542,7 @@ cpu_idle_enter(int *statep, int newstate) * is visible before calling cpu_idle_wakeup(). */ atomic_store_int(statep, newstate); -#if defined(SCHED_ULE) && defined(SMP) atomic_thread_fence_seq_cst(); -#endif /* * Since we may be in a critical section from cpu_idle(), if From nobody Wed Feb 11 05:17: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 4f9ms41y1nz6Rtt1 for ; Wed, 11 Feb 2026 05:17: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 4f9ms34pXsz3SQl for ; Wed, 11 Feb 2026 05:17:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787047; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZGIFpuvSGCKBen+8G2dsnyXyTIzYRl4LzHLYfJW1ZpA=; b=ltwElRJ23Z0MAVWOLzi99J7TDSLHOC3ApVx6SwZp42cgCi8X863iQ/ktwp9ibltgEd1Uuo SF1cn1kK1js2J/j6WDqyQKOqr81Thbc73WMDNyUQIuygRhhAoYRiF7fNVxMk0HWUTe6Z51 DzXVn4yLkx3n1+LdEmtWZme7HLdtGJZRj0VrdFK9MF14tQsnIMzPx5GAZFJCA3MqtCt4qv 0BKdN0xl8oWm7ORawALlnvLZ52IT5xCnS8bTYl6zJvDOLnTpJ4b4a5wsMLgNR/3b+RoaEj y47/9mbmgKg1Y1R3qXecGV6TBtbMDwf0HXdjGMHIaCJr4wsxc0tqTNOrSe/dvg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787047; a=rsa-sha256; cv=none; b=LCMv0LVp7jpbkatq1E24tM5elBPct6lcKjXzTdyc3iaQzF8RUnP6v4CczYRfRliT/ikjl+ V0XlYg9PY3zylzwwwH4QOfJOD50ncQX2mknmiUqgHtfKuceXvO8I78IOYvkiXlo/+2YeI3 kRxFjbY3gvNYI2CSo4p50aJxCuJLMTqbN0Wa6lAYKNA4ryanZgQiV0RrG0lIKhCy7HqL0i s1FJTUKLZZZOw5OCrnocrO4CTWlyCMo9KVRm113VV15rEE8+gkritab87BKVh+RGIvcOb1 dkOBPMabZJL9xe6puR43K6bfxs1SHSL5SWPXVZOAR5wnyzc8v2T/zmQN0n68IA== 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=1770787047; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZGIFpuvSGCKBen+8G2dsnyXyTIzYRl4LzHLYfJW1ZpA=; b=d0VzEvtmbDMJL9RUauPOgYt3Bn2zTAJMyoyPZOusp4iPPz3W6HEp1lSnnIEN/iPURGzPF5 uNPn2ks1rLTcnnaq4Acffot6UCPrF9O1cTfSqlphxcM24qU8o7+tB9bzFydmxZe0BMT2Xa r7RdrEDELQrhK/UQtatstLAHWMOWoMWaKPGn6bp+DO0K7GndiVYnJNmn80cps/YlG9Vw4F rXDR+4qTcUyz7nj6Q5KhM8FJpNiDzXz+w5sPV5cJUh2MCPh4A1lhl1cJce+1lhPx7LjfOr YPZrEduIlfJSBqHk7j+ckORD6d/NYbbDSHnMRfDB7ZXWDloTyY8sw9RgRf5kGA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9ms34FwYzbtR for ; Wed, 11 Feb 2026 05:17:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 25bf3 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:27 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: ac5ea31b474a - stable/15 - x86/local_apic.c: remove direct SCHED_ULE use 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: ac5ea31b474a677bddf56529eb3b27f8c1ee7ce3 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:27 +0000 Message-Id: <698c10e7.25bf3.1fb7e993@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=ac5ea31b474a677bddf56529eb3b27f8c1ee7ce3 commit ac5ea31b474a677bddf56529eb3b27f8c1ee7ce3 Author: Konstantin Belousov AuthorDate: 2026-01-22 13:24:37 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:37 +0000 x86/local_apic.c: remove direct SCHED_ULE use (cherry picked from commit c384b35e42ee5712dda6360ffa287c0350055580) --- sys/kern/sched_4bsd.c | 22 ++++++++++++++++++++++ sys/kern/sched_shim.c | 1 + sys/kern/sched_ule.c | 7 +++++++ sys/sys/sched.h | 3 +++ sys/x86/x86/local_apic.c | 15 +-------------- 5 files changed, 34 insertions(+), 14 deletions(-) diff --git a/sys/kern/sched_4bsd.c b/sys/kern/sched_4bsd.c index dae084aabcba..03e7b71d3fe6 100644 --- a/sys/kern/sched_4bsd.c +++ b/sys/kern/sched_4bsd.c @@ -1833,6 +1833,27 @@ sched_4bsd_affinity(struct thread *td) #endif } +static bool +sched_4bsd_do_timer_accounting(void) +{ +#ifdef SMP + /* + * Don't do any accounting for the disabled HTT cores, since it + * will provide misleading numbers for the userland. + * + * No locking is necessary here, since even if we lose the race + * when hlt_cpus_mask changes it is not a big deal, really. + * + * Don't do that for ULE, since ULE doesn't consider hlt_cpus_mask + * and unlike other schedulers it actually schedules threads to + * those CPUs. + */ + return (!CPU_ISSET(PCPU_GET(cpuid), &hlt_cpus_mask)); +#else + return (true); +#endif +} + struct sched_instance sched_4bsd_instance = { #define SLOT(name) .name = sched_4bsd_##name SLOT(load), @@ -1875,6 +1896,7 @@ struct sched_instance sched_4bsd_instance = { SLOT(sizeof_thread), SLOT(tdname), SLOT(clear_tdname), + SLOT(do_timer_accounting), SLOT(init), SLOT(init_ap), SLOT(setup), diff --git a/sys/kern/sched_shim.c b/sys/kern/sched_shim.c index f25b803bae82..d2f0b5749752 100644 --- a/sys/kern/sched_shim.c +++ b/sys/kern/sched_shim.c @@ -93,6 +93,7 @@ DEFINE_SHIM0(sizeof_proc, int, sched_sizeof_proc) DEFINE_SHIM0(sizeof_thread, int, sched_sizeof_thread) DEFINE_SHIM1(tdname, char *, sched_tdname, struct thread *, td) DEFINE_SHIM1(clear_tdname, void, sched_clear_tdname, struct thread *, td) +DEFINE_SHIM0(do_timer_accounting, bool, sched_do_timer_accounting) DEFINE_SHIM0(init_ap, void, schedinit_ap) static char sched_name[32] = "ULE"; diff --git a/sys/kern/sched_ule.c b/sys/kern/sched_ule.c index a285c62a4525..22257b2c0d7a 100644 --- a/sys/kern/sched_ule.c +++ b/sys/kern/sched_ule.c @@ -3354,6 +3354,12 @@ sched_ule_schedcpu(void) { } +static bool +sched_ule_do_timer_accounting(void) +{ + return (true); +} + struct sched_instance sched_ule_instance = { #define SLOT(name) .name = sched_ule_##name SLOT(load), @@ -3396,6 +3402,7 @@ struct sched_instance sched_ule_instance = { SLOT(sizeof_thread), SLOT(tdname), SLOT(clear_tdname), + SLOT(do_timer_accounting), SLOT(init), SLOT(init_ap), SLOT(setup), diff --git a/sys/sys/sched.h b/sys/sys/sched.h index c8491ede01a0..9c78452432b4 100644 --- a/sys/sys/sched.h +++ b/sys/sys/sched.h @@ -241,6 +241,8 @@ void schedinit(void); */ void schedinit_ap(void); +bool sched_do_timer_accounting(void); + struct sched_instance { int (*load)(void); int (*rr_interval)(void); @@ -282,6 +284,7 @@ struct sched_instance { int (*sizeof_thread)(void); char *(*tdname)(struct thread *td); void (*clear_tdname)(struct thread *td); + bool (*do_timer_accounting)(void); void (*init)(void); void (*init_ap)(void); void (*setup)(void); diff --git a/sys/x86/x86/local_apic.c b/sys/x86/x86/local_apic.c index c5399984c896..54026f83dc15 100644 --- a/sys/x86/x86/local_apic.c +++ b/sys/x86/x86/local_apic.c @@ -1443,21 +1443,8 @@ lapic_handle_timer(struct trapframe *frame) kmsan_mark(frame, sizeof(*frame), KMSAN_STATE_INITED); trap_check_kstack(); -#if defined(SMP) && !defined(SCHED_ULE) - /* - * Don't do any accounting for the disabled HTT cores, since it - * will provide misleading numbers for the userland. - * - * No locking is necessary here, since even if we lose the race - * when hlt_cpus_mask changes it is not a big deal, really. - * - * Don't do that for ULE, since ULE doesn't consider hlt_cpus_mask - * and unlike other schedulers it actually schedules threads to - * those CPUs. - */ - if (CPU_ISSET(PCPU_GET(cpuid), &hlt_cpus_mask)) + if (!sched_do_timer_accounting()) return; -#endif /* Look up our local APIC structure for the tick counters. */ la = &lapics[PCPU_GET(apic_id)]; From nobody Wed Feb 11 05:17: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 4f9ms625l5z6RtyQ for ; Wed, 11 Feb 2026 05:17:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9ms56SMzz3STP for ; Wed, 11 Feb 2026 05:17:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787049; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oTR+NhEToNQbFR5VNo5NfDmGvQGg13Sl9Wob+E+ttq4=; b=QFesiHjmcdyMkuLqJhocKVBWOkVqQ6ziEFckyst6kytLTJSwEUmQrJF4CdpNkevCvHqz2M g+dgzTQnFyyP4M0mu5vBhesBkMqTXZwagfZGt1dUccCFfjz4p9XPLGAcceY8oKGqw6stZx PxTQHChxc6ffJMufvWS/yaHpIKYcrlt4jVNv8dWuSs+rrL9LOaQZ/7cDqiOe1U3mDZIHOe vSz3m5L/GZlys3vL/b4ybPTdQHp58Vr4ov1yMWEpzG08EpOhIPF8lcgn5JnRqhecvbIFyq wFrzDXJi/ZU6vUKLeAX59yYDOfzouycAE8lTRYs2UwFWb0IaaHuhleWfOOiHvw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787049; a=rsa-sha256; cv=none; b=hcmDC2MwgtAf5amYvinCBwm4pZo+av74Xvg8/77wRHdf3A2KboKyNbVXeGSpC5T0GfLVHu vsFFg3Y4611pjZGV2bWekMIakQcJeEUOhwnkmr+5Dz4kWW5ccg/YDwPtJlFXl43iJHPVot 8WNIAg1U8XypQHACYrfCHIwtQHTTFVZTGUuy6+O85SN6Obybh7EvyavH2reVjEMnkBbRb7 LXUyWkvqIUsG+loakHWTbNLAIbatI7Qd6HYQTUov57sSEYrLdUajEzTENRrGkNgHtdjNrI Cy4nWBa4iFjUwMmdJCCWnz/yueSrGQH/iApzKgyhf3m89JgNXvGks3SeUW9ycg== 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=1770787049; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=oTR+NhEToNQbFR5VNo5NfDmGvQGg13Sl9Wob+E+ttq4=; b=aWjeBpLXNTzDQjFTqwiwDSJqnTrXdREZk/iML/WGMX+UZRjSu6HECchFfBiwNw3qsYmHqc ED4d5SavRwLSyNEOmVztmRAe0XZPdir9q3TeeazHLz264FwsxKGsxHWrZltoYvr4j4KQaI dktSevma3taZ+UgG6b3UDOz//JHFuc3onZ/Nx0NgrM3TpNiohKOSGVcTdXjfVBvomhh1OV qtHfhFfmn/VE8ypl2qizT7Nc3rU4ISIDnr4P8XXsfSw8/jzstoV4wnnrTy/OYTCZ3aivw4 xLLYAYib6kwCrZTcCFNBjD9tb3XQr4yFv8fqmwg1ehcKtEV6RVbpkg1PXTcT2g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9ms55t92zccG for ; Wed, 11 Feb 2026 05:17:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 269a3 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:29 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: e642bf4f6dab - stable/15 - net/iflib.c: move out scheduler-depended code into the hook 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: e642bf4f6dabcb7835f9d0ea9fefe3767d392317 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:29 +0000 Message-Id: <698c10e9.269a3.186af751@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=e642bf4f6dabcb7835f9d0ea9fefe3767d392317 commit e642bf4f6dabcb7835f9d0ea9fefe3767d392317 Author: Konstantin Belousov AuthorDate: 2026-01-22 13:38:20 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:37 +0000 net/iflib.c: move out scheduler-depended code into the hook (cherry picked from commit b602ba1b5fd92bb226e32f5720885f856a5cb0bb) --- sys/kern/sched_4bsd.c | 7 +++++ sys/kern/sched_shim.c | 1 + sys/kern/sched_ule.c | 68 ++++++++++++++++++++++++++++++++++++++++++ sys/net/iflib.c | 82 ++------------------------------------------------- sys/sys/sched.h | 8 +++++ 5 files changed, 87 insertions(+), 79 deletions(-) diff --git a/sys/kern/sched_4bsd.c b/sys/kern/sched_4bsd.c index 03e7b71d3fe6..11baf9d2bdfa 100644 --- a/sys/kern/sched_4bsd.c +++ b/sys/kern/sched_4bsd.c @@ -1854,6 +1854,12 @@ sched_4bsd_do_timer_accounting(void) #endif } +static int +sched_4bsd_find_l2_neighbor(int cpu) +{ + return (-1); +} + struct sched_instance sched_4bsd_instance = { #define SLOT(name) .name = sched_4bsd_##name SLOT(load), @@ -1897,6 +1903,7 @@ struct sched_instance sched_4bsd_instance = { SLOT(tdname), SLOT(clear_tdname), SLOT(do_timer_accounting), + SLOT(find_l2_neighbor), SLOT(init), SLOT(init_ap), SLOT(setup), diff --git a/sys/kern/sched_shim.c b/sys/kern/sched_shim.c index d2f0b5749752..816d0b44bb52 100644 --- a/sys/kern/sched_shim.c +++ b/sys/kern/sched_shim.c @@ -94,6 +94,7 @@ DEFINE_SHIM0(sizeof_thread, int, sched_sizeof_thread) DEFINE_SHIM1(tdname, char *, sched_tdname, struct thread *, td) DEFINE_SHIM1(clear_tdname, void, sched_clear_tdname, struct thread *, td) DEFINE_SHIM0(do_timer_accounting, bool, sched_do_timer_accounting) +DEFINE_SHIM1(find_l2_neighbor, int, sched_find_l2_neighbor, int, cpu) DEFINE_SHIM0(init_ap, void, schedinit_ap) static char sched_name[32] = "ULE"; diff --git a/sys/kern/sched_ule.c b/sys/kern/sched_ule.c index 22257b2c0d7a..7a745619480d 100644 --- a/sys/kern/sched_ule.c +++ b/sys/kern/sched_ule.c @@ -3360,6 +3360,73 @@ sched_ule_do_timer_accounting(void) return (true); } +#ifdef SMP +static int +sched_ule_find_child_with_core(int cpu, struct cpu_group *grp) +{ + int i; + + if (grp->cg_children == 0) + return (-1); + + MPASS(grp->cg_child); + for (i = 0; i < grp->cg_children; i++) { + if (CPU_ISSET(cpu, &grp->cg_child[i].cg_mask)) + return (i); + } + + return (-1); +} + +static int +sched_ule_find_l2_neighbor(int cpu) +{ + struct cpu_group *grp; + int i; + + grp = cpu_top; + if (grp == NULL) + return (-1); + + /* + * Find the smallest CPU group that contains the given core. + */ + i = 0; + while ((i = sched_ule_find_child_with_core(cpu, grp)) != -1) { + /* + * If the smallest group containing the given CPU has less + * than two members, we conclude the given CPU has no + * L2 neighbor. + */ + if (grp->cg_child[i].cg_count <= 1) + return (-1); + grp = &grp->cg_child[i]; + } + + /* Must share L2. */ + if (grp->cg_level > CG_SHARE_L2 || grp->cg_level == CG_SHARE_NONE) + return (-1); + + /* + * Select the first member of the set that isn't the reference + * CPU, which at this point is guaranteed to exist. + */ + for (i = 0; i < CPU_SETSIZE; i++) { + if (CPU_ISSET(i, &grp->cg_mask) && i != cpu) + return (i); + } + + /* Should never be reached */ + return (-1); +} +#else +static int +sched_ule_find_l2_neighbor(int cpu) +{ + return (-1); +} +#endif + struct sched_instance sched_ule_instance = { #define SLOT(name) .name = sched_ule_##name SLOT(load), @@ -3403,6 +3470,7 @@ struct sched_instance sched_ule_instance = { SLOT(tdname), SLOT(clear_tdname), SLOT(do_timer_accounting), + SLOT(find_l2_neighbor), SLOT(init), SLOT(init_ap), SLOT(setup), diff --git a/sys/net/iflib.c b/sys/net/iflib.c index f6b25558d0e8..0bea19d75231 100644 --- a/sys/net/iflib.c +++ b/sys/net/iflib.c @@ -29,7 +29,6 @@ #include "opt_inet.h" #include "opt_inet6.h" #include "opt_acpi.h" -#include "opt_sched.h" #include #include @@ -40,8 +39,10 @@ #include #include #include +#include #include #include +#include #include #include #include @@ -4781,83 +4782,6 @@ cpuid_advance(if_ctx_t ctx, unsigned int cpuid, unsigned int n) return (cpuid); } -#if defined(SMP) && defined(SCHED_ULE) -extern struct cpu_group *cpu_top; /* CPU topology */ - -static int -find_child_with_core(int cpu, struct cpu_group *grp) -{ - int i; - - if (grp->cg_children == 0) - return (-1); - - MPASS(grp->cg_child); - for (i = 0; i < grp->cg_children; i++) { - if (CPU_ISSET(cpu, &grp->cg_child[i].cg_mask)) - return (i); - } - - return (-1); -} - - -/* - * Find an L2 neighbor of the given CPU or return -1 if none found. This - * does not distinguish among multiple L2 neighbors if the given CPU has - * more than one (it will always return the same result in that case). - */ -static int -find_l2_neighbor(int cpu) -{ - struct cpu_group *grp; - int i; - - grp = cpu_top; - if (grp == NULL) - return (-1); - - /* - * Find the smallest CPU group that contains the given core. - */ - i = 0; - while ((i = find_child_with_core(cpu, grp)) != -1) { - /* - * If the smallest group containing the given CPU has less - * than two members, we conclude the given CPU has no - * L2 neighbor. - */ - if (grp->cg_child[i].cg_count <= 1) - return (-1); - grp = &grp->cg_child[i]; - } - - /* Must share L2. */ - if (grp->cg_level > CG_SHARE_L2 || grp->cg_level == CG_SHARE_NONE) - return (-1); - - /* - * Select the first member of the set that isn't the reference - * CPU, which at this point is guaranteed to exist. - */ - for (i = 0; i < CPU_SETSIZE; i++) { - if (CPU_ISSET(i, &grp->cg_mask) && i != cpu) - return (i); - } - - /* Should never be reached */ - return (-1); -} - -#else -static int -find_l2_neighbor(int cpu) -{ - - return (-1); -} -#endif - /* * CPU mapping behaviors * --------------------- @@ -4910,7 +4834,7 @@ get_cpuid_for_queue(if_ctx_t ctx, unsigned int base_cpuid, unsigned int qid, unsigned int rx_cpuid; rx_cpuid = cpuid_advance(ctx, base_cpuid, qid); - l2_neighbor = find_l2_neighbor(rx_cpuid); + l2_neighbor = sched_find_l2_neighbor(rx_cpuid); if (l2_neighbor != -1) { return (l2_neighbor); } diff --git a/sys/sys/sched.h b/sys/sys/sched.h index 9c78452432b4..3ba40fb191d3 100644 --- a/sys/sys/sched.h +++ b/sys/sys/sched.h @@ -243,6 +243,13 @@ void schedinit_ap(void); bool sched_do_timer_accounting(void); +/* + * Find an L2 neighbor of the given CPU or return -1 if none found. This + * does not distinguish among multiple L2 neighbors if the given CPU has + * more than one (it will always return the same result in that case). + */ +int sched_find_l2_neighbor(int cpu); + struct sched_instance { int (*load)(void); int (*rr_interval)(void); @@ -285,6 +292,7 @@ struct sched_instance { char *(*tdname)(struct thread *td); void (*clear_tdname)(struct thread *td); bool (*do_timer_accounting)(void); + int (*find_l2_neighbor)(int cpuid); void (*init)(void); void (*init_ap)(void); void (*setup)(void); From nobody Wed Feb 11 05:17: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 4f9ms73pB1z6RtRy for ; Wed, 11 Feb 2026 05:17:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9ms703W5z3Smy for ; Wed, 11 Feb 2026 05:17:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787051; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RkEoZm9HPMYS5CYfNLysdk0vgUcwG36zx+odpA2k3hU=; b=TK7RIASZw4DlJYyYCcSx+138kiDHUbNp/vlfvTM/f/dnb+b0nDI+hKDzx28Qb6HA/VXvn1 yU99Cxwchq/E0vlp+d0DEM24Tbe6cCvp90Wc1Gik1/txWwunYbap9n+O21TxQ8x3YxGDvk 4fDesgkWRXAuKvQBdksdjK2/+E7yg83jPifKlZ7skteg8AlAjOmV/HILPuFDPKZqwbnqPW +nBLuhoY3nOeoGaFcknIOaSusPuke4iXBy79+qrIr3bMDjJJwUKhRYpFKGl+5IH26a44em gyfzw6miuNUlnelWB8gJMZq8k57VxkGSJX/V8LIqY3hasSryU4aw0GHqyT913g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787051; a=rsa-sha256; cv=none; b=xUTi/AZiRnY2J17rTTuO61m60FgwO09HtKPIxp19U4V4kuGa7HabB1o7Q9cNdLPeoe98k0 1GgDWqHEEiL9NUAICtxFWjt+MbpQfaHFq7zuLMoyRlBkjlby6IXLQvjGqPp6WtCp4BAuni Pue6QCEQil7EBUajJspwUM595U8F+rwRgi17KusB6mPT2piCfGhk/2lY9kM8J1lbB5sAy+ dIIOO1CYLjfnSBS3sqqA/sao6FdsXiIutowflgeBlMYRVWTnWr6l173ls2An5aaIiEHnpY bA/b2/5SxmBZk35wRgXl4UIXo6b8XYmjCxR7NnsCuRhT/hmugSniz6hRGdoeRQ== 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=1770787051; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RkEoZm9HPMYS5CYfNLysdk0vgUcwG36zx+odpA2k3hU=; b=g96Du+kzIqh23kFtEbyvbwMQ5VZomjSjPVM74TXGgpYsBrEyVXwArn9Vg+sd2OCQUNYH3e wHBy3TRKW8axiWFEUi360AB9GLp/rXHPS24cJesK+ek9KwKVam7Xd1bSBK0ZeCUn6OQavK +992AxlxiX9Qqz7p60Iw05DRwvVXreeXYGa1wsVbqAPSEgJ2WPdKzM5yQ/KKY/Qtv/rEEH sA/9RtKLelRVTiUNZaWpQGER9IOQPLDZ7SWWpdvNOYj6nMmAPgjez5bNvnO5fJHcw0Frkz Nki1sWtlwQtq/FncMVm81wuHQ93duL9pASYPMp1g0dcV/ZJhkRSVYFxidGV0wQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9ms66k85zc67 for ; Wed, 11 Feb 2026 05:17:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2732c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:30 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 1d4bc1895f88 - stable/15 - sysctl kern.sched.ule.topology_spec: allow to run if ULE is not initialized 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: 1d4bc1895f8870e0a1015f5a4784139244852e00 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:30 +0000 Message-Id: <698c10ea.2732c.703222bb@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=1d4bc1895f8870e0a1015f5a4784139244852e00 commit 1d4bc1895f8870e0a1015f5a4784139244852e00 Author: Konstantin Belousov AuthorDate: 2026-01-23 15:09:56 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:37 +0000 sysctl kern.sched.ule.topology_spec: allow to run if ULE is not initialized (cherry picked from commit 5a6e0e31bc2e8ed8f655be63fa5b8c41f3d60753) --- sys/kern/sched_ule.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/kern/sched_ule.c b/sys/kern/sched_ule.c index 7a745619480d..334b3c0f1de3 100644 --- a/sys/kern/sched_ule.c +++ b/sys/kern/sched_ule.c @@ -3543,7 +3543,8 @@ sysctl_kern_sched_ule_topology_spec(SYSCTL_HANDLER_ARGS) struct sbuf *topo; int err; - KASSERT(cpu_top != NULL, ("cpu_top isn't initialized")); + if (cpu_top == NULL) + return (ENOTTY); topo = sbuf_new_for_sysctl(NULL, NULL, 512, req); if (topo == NULL) From nobody Wed Feb 11 05:17: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 4f9ms93d5rz6RtlD for ; Wed, 11 Feb 2026 05:17:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9ms91YK5z3Sht for ; Wed, 11 Feb 2026 05:17:33 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787053; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qTFw6alcPrRtGkyZYzHxGOmsmXyAEzAP78wQxBN+uBc=; b=LzDhTKYBmezywGssxnw6rPfwgfEMrfRo0xL29ORrMiduRAN9MTTnXdVTVpJuVnkabQ3/Ky iS2H/igeps2Icc3MO2VBQjO4yz1NqnmM2BWfhtS+50UeohQqIim8b3dFiqnRjZGDKpjgOp GKNtGviRD8jaUoSnaRkOXnx/CkAzPrk/CuwtTDaJuWufUtzqdsYwrujDrd+cebXSX19Zrv ZUJnbS3oMC3EOJgvxYOig9u19CjRPdQypwep1gf9H/IvK6bisYsSPqa9/4wd6ytwkjSrVl uTeBD1syB6cxIQO6JUAPyeJ4/UpA6h76bBYUO6oI+f1tJJ6vTJjRWrqGsfVYfA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787053; a=rsa-sha256; cv=none; b=GPiWllemZpxtu/WUzfFBGRmdpfHngJ53I273FV60XwfWebMR//qQMC/yvgGa06B2xRW58g yZ24gKWfbKbUt2Gon5rx2jWe9zGLDZlxQGIOiJZ1ta8Ru65cLIOuUHmY/RNNnl6STZNoY6 M9iaVpnibGZ6xpXE48tT9GvQg+uWfk4VixS/iLC1yl0YmCDHP2aud6SFBtAzFXd2Xh1y+d 63sEpTixHfXrtpFn6akklcufhD/E/pbpl+ZL3jM9bBWBvNdj79rBYMEJOctF73YEwSpHDh CMe1jYyTRyp2PMxmg3UKVMODmHq+VGQPk+WRRbkwy+VRJfx4YNibPRoZAC5mWg== 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=1770787053; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qTFw6alcPrRtGkyZYzHxGOmsmXyAEzAP78wQxBN+uBc=; b=EefaB9JWFAlo7lYhFFCUWMsJq/1koQWRgHEDMhTdPQ/tjsf8eG+7anDEJ3Jy/phy4snmRP VIYFssLIRrItYZhsPpssIPEeUKznIPuOxsONAPruE6o4TXWAnfTyehvusvHSKJVv5/UoTI mI4glc72q6KFcw1WylsoSzF+UaCOtizwZ8G/aou3VkJt1pQDioVJSY3ecEcJe2cYxf3SLz kpXK5GX+U2NRQ/mYEga9EvWBwnoVcZE+qtNAjuL30bJ6rzsX7NOuDod4OtIoCNcKh1UOHS fkchHDfMGCJ8jPQ+CEpHDJF/fSPxd7wHZzsfLB0TO12vfN28DSroi9IBMb+4oA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9ms90tk9zcYv for ; Wed, 11 Feb 2026 05:17:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 24cdf by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:33 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: a3b5daf4242f - stable/15 - sys: enable both SCHED_ULE and SCHED_4BSD for some configs 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: a3b5daf4242f993fb4e2d00979ce712bf1193706 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:33 +0000 Message-Id: <698c10ed.24cdf.4e4761c@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=a3b5daf4242f993fb4e2d00979ce712bf1193706 commit a3b5daf4242f993fb4e2d00979ce712bf1193706 Author: Konstantin Belousov AuthorDate: 2026-01-23 16:15:09 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:37 +0000 sys: enable both SCHED_ULE and SCHED_4BSD for some configs (cherry picked from commit 1322760fd1274930cbb61048d9a6ba3bc1782b2a) --- sys/amd64/conf/GENERIC | 1 + sys/conf/NOTES | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/amd64/conf/GENERIC b/sys/amd64/conf/GENERIC index 9fd35c9569f7..e4ed9704a65b 100644 --- a/sys/amd64/conf/GENERIC +++ b/sys/amd64/conf/GENERIC @@ -24,6 +24,7 @@ makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols makeoptions WITH_CTF=1 # Run ctfconvert(1) for DTrace support options SCHED_ULE # ULE scheduler +options SCHED_4BSD # Original 4.xBSD scheduler options NUMA # Non-Uniform Memory Architecture support options PREEMPTION # Enable kernel thread preemption options EXTERR_STRINGS diff --git a/sys/conf/NOTES b/sys/conf/NOTES index 46787d2e690a..714f88ff2b80 100644 --- a/sys/conf/NOTES +++ b/sys/conf/NOTES @@ -210,7 +210,7 @@ options ROOTDEVNAME=\"ufs:da0s2e\" # options SCHED_4BSD options SCHED_STATS -#options SCHED_ULE +options SCHED_ULE ##################################################################### # SMP OPTIONS: From nobody Wed Feb 11 05:17: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 4f9ms838mdz6Rtqp for ; Wed, 11 Feb 2026 05:17: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 4f9ms819txz3Shj for ; Wed, 11 Feb 2026 05:17:32 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787052; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=X7Hl2Jpgkg4TnNqcY75oKoXKY6ZerCfn6FUUQJUPJgU=; b=wXcxhLmNh/x67WVI39ueOeTFAQSKCEp1XhUgAHqYxeCrmfGfUhi16a8XjYOwrhYJL4bZOD kqDPxMKiD5n5kSoo7OgnbEDs6TW2ny3J9/eminksp9NfyhTnFRQpZI4asU749oACfabvNP G6PU2WmgRbcVvqYhCL2IMUtSz7MYtR6hDkVD6Usu6cVD6SK8V2LWfWvr+H2Vd6+ao2nPsW m9vaB/8HBjHNl0tAJJG5lvAv1C8VOBKn/7n8AObWX1saHSsOp6zWlJ3B0rg4t7HIF4QqOz 2+6APaU9ZW4TfmDdvp2KF/VQEWNUmRTQq5yR6TBOBPyy9xfa9FbOxlUlWgo7xw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787052; a=rsa-sha256; cv=none; b=xuRelc2yalto3zRcPtRjZuT+EhBrIad3jSMYDPfv6NAWh5mrb8XL1WVUN9avVSm0ABJYL1 SrLqQeJdxYjHwIwWIakbio8ERnMKcwEUNZpDRUxJ3doWMdvhpFMFn4WZZSBrT7FF/+0pJA nO9rPjoVlluQOYKO+ta6eBhlbYv+vNrkGeqtTXLD6N1mZ4bRin8jmrbLIL1fLSz82d2lXX H0nkOMVVyXl8QOGbdIBiWVgtzwYyAUVleDPJbds/W1FtRKyYOezN94TUYYVUsL9UT+19oW AF2DzI9X6fIcdtfQyOcfXe4/juDcLLqULMlzbdLBtkd5faUVrH9/I1OnmDY/8A== 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=1770787052; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=X7Hl2Jpgkg4TnNqcY75oKoXKY6ZerCfn6FUUQJUPJgU=; b=trMisZXNCpVgcpTHR9O6MWUtr44dk2nvwc7C/L3DgXbe0apHdTF5AzPCVUhGcWBa36TDX3 88NipEqIszG57MXn9IN295Y0tGTLkctP2sCZEpRd+VsytZzNKrwvV+YsvDfkRQlkN3uibz Hpqc7h871s7Bh4HCFGsFi1w+MCRhWgKmTvdV8OfaedKbf2TK2EWnmRHBqrHejG4BwuRKIw mam+ulEjIpNtR07hTVEygpkNqEAYKYwuux2wW2ABfL6m9L/RsmeZbpEQUhwC+VOQ1BCoiP IArzHpicZhIFscOaNIEAvZkaXrz7gNBG1OpXdiDzxPgJyDc+Xd7I/qbu/hlOVg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9ms80N3DzbtT for ; Wed, 11 Feb 2026 05:17:32 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2587e by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:32 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: bd74830ba874 - stable/15 - sched_shim: restore kern.ccpu sysctl 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: bd74830ba874956a2d0cfe6691da379d084d8e9e Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:32 +0000 Message-Id: <698c10ec.2587e.4a0f04c5@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=bd74830ba874956a2d0cfe6691da379d084d8e9e commit bd74830ba874956a2d0cfe6691da379d084d8e9e Author: Konstantin Belousov AuthorDate: 2026-01-23 15:15:43 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:37 +0000 sched_shim: restore kern.ccpu sysctl (cherry picked from commit ff870b783f098cafd8b938379eada6b8cfe9a4fb) --- sys/kern/sched_4bsd.c | 10 ++++++---- sys/kern/sched_shim.c | 4 ++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/sys/kern/sched_4bsd.c b/sys/kern/sched_4bsd.c index 11baf9d2bdfa..4c24d98173f3 100644 --- a/sys/kern/sched_4bsd.c +++ b/sys/kern/sched_4bsd.c @@ -436,10 +436,7 @@ maybe_preempt(struct thread *td) #define loadfactor(loadav) (2 * (loadav)) #define decay_cpu(loadfac, cpu) (((loadfac) * (cpu)) / ((loadfac) + FSCALE)) -/* decay 95% of `ts_pctcpu' in 60 seconds; see CCPU_SHIFT before changing */ -static fixpt_t ccpu = 0.95122942450071400909 * FSCALE; /* exp(-1/20) */ -SYSCTL_UINT(_kern_sched_4bsd, OID_AUTO, ccpu, CTLFLAG_RD, &ccpu, 0, - "Decay factor used for updating %CPU"); +extern fixpt_t ccpu; /* * If `ccpu' is not equal to `exp(-1/20)' and you still want to use the @@ -638,6 +635,11 @@ resetpriority_thread(struct thread *td) static void sched_4bsd_setup(void) { + /* + * Decay 95% of `ts_pctcpu' in 60 seconds; see CCPU_SHIFT + * before changing. + */ + ccpu = 0.95122942450071400909 * FSCALE; /* exp(-1/20) */ setup_runqs(); diff --git a/sys/kern/sched_shim.c b/sys/kern/sched_shim.c index 816d0b44bb52..f6b1285830fd 100644 --- a/sys/kern/sched_shim.c +++ b/sys/kern/sched_shim.c @@ -199,3 +199,7 @@ SYSCTL_PROC(_kern_sched, OID_AUTO, available, CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, 0, sysctl_kern_sched_available, "A", "List of available schedulers"); + +fixpt_t ccpu; +SYSCTL_UINT(_kern, OID_AUTO, ccpu, CTLFLAG_RD, &ccpu, 0, + "Decay factor used for updating %CPU"); From nobody Wed Feb 11 05:17: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 4f9msB3mVcz6RtlL for ; Wed, 11 Feb 2026 05:17:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9msB1rKhz3Swg for ; Wed, 11 Feb 2026 05:17:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787054; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZMqYJa2f8CyYzZeDZ6S2oKQK/MuJCuQoc0PowsXgBWs=; b=lgkpY+SZffON/liMvgw6pT69W9zp+gq53bE6Mh+l6YTTUIF9e0kOA7s4IF/DRwPvlRySmk Fz6W3g30npCdkC4njWrZbrYpPm+3r1538JtRj5hoOs1jO+QA278F7Wpk2fI6O1zQgRq/ve ACR+KT52MIJNUkj+00/Vmh/fNBr/OREm+wx9//GLbXt9iSQ+PH2seJ8dxFzbM4+0KOsdBt RH+frTooegmlK/ujLVK1RPEvGtIiuVWiwEsMcqXXLdHcM2dLJ+IQdE8pY2XmciHkhcJLPY QFCzS/EB1Yp5gElfnuxutPPaVwByZxrR28JAXucK3+HHwW1vB55vjA396hk22g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787054; a=rsa-sha256; cv=none; b=xVtzMdB25eM/7JqdX5RnSWgncd2oJGTaMSypjZV6FLdfctcz3enkX2QyFv2q4FWlgF66K1 6+6qrHiVMiC6dvKplQ3sB4UJa3JE0cjVN1ISu2TtocyzApUcnsWegu1kzR/Fnic3wDrm8y 1mvnvxJ2CCwwPw4Jaeo0O7d3lNGkYaiqmJxYAkQ4bG5Dn1NE5KprewikqGq80alzSkFESd fQSGAsWPzpIpork22Ur01MF0/oycaqfkKGtXE321OmxBmushAy/rmxhxJMtEI67B9g9q0s B5PQeRnEt1IDeg7bouqKnVN0oAHqdyLNuNrkbgAT2m6gBIb4NKnstpX6XbHvcQ== 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=1770787054; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZMqYJa2f8CyYzZeDZ6S2oKQK/MuJCuQoc0PowsXgBWs=; b=kUhHVTad82HbpdEW9chmyDBkhN8+a70vQFpwhILGV8HRiu4lBbifWyEXPptIG6/0hXNuQP 7Yfbi6sJdZ+Xi0UOnMJvEQyXXdnZPFzxc7X4H3L6pxvQP5dOjzG5jZKvZSx8UzehEHAyV8 G9K6yjhIMZAwdzfHDo1Qk3B0FNCvzQnk3Mnzp/hVknvc1YnIS6zN72FmSdWjue8GRauzFX BfUvyc4r0MvrH+M84nlhZiSKg2+Kzl3XGMxcr41wA2Z4vKHH73gaICbIZDInEqwpkAniGE qT5cukSdnqEEaBVDaMebNzLQYL3cM5a7k6t7nYQl9BcssCFEkNYq9ikZX8iNQA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9msB1HV1zcHZ for ; Wed, 11 Feb 2026 05:17:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 264c5 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:34 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 916cc3877e30 - stable/15 - kern/sched: move duplicate preemption stat vars into sched_shim.c 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: 916cc3877e30a9828d98621ca38732e43d09c251 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:34 +0000 Message-Id: <698c10ee.264c5.54b343fb@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=916cc3877e30a9828d98621ca38732e43d09c251 commit 916cc3877e30a9828d98621ca38732e43d09c251 Author: Konstantin Belousov AuthorDate: 2026-01-24 06:01:48 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:37 +0000 kern/sched: move duplicate preemption stat vars into sched_shim.c (cherry picked from commit a84a39dfe5d1fd98afdf29a74017fce29441b730) --- sys/kern/sched_4bsd.c | 4 ---- sys/kern/sched_shim.c | 5 +++++ sys/kern/sched_ule.c | 4 ---- sys/sys/sched.h | 3 +++ 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/sys/kern/sched_4bsd.c b/sys/kern/sched_4bsd.c index 4c24d98173f3..55a70885ee28 100644 --- a/sys/kern/sched_4bsd.c +++ b/sys/kern/sched_4bsd.c @@ -706,10 +706,6 @@ sched_4bsd_rr_interval(void) return (imax(1, (sched_slice * hz + realstathz / 2) / realstathz)); } -SCHED_STAT_DEFINE(ithread_demotions, "Interrupt thread priority demotions"); -SCHED_STAT_DEFINE(ithread_preemptions, - "Interrupt thread preemptions due to time-sharing"); - /* * We adjust the priority of the current process. The priority of a * process gets worse as it accumulates CPU time. The cpu usage diff --git a/sys/kern/sched_shim.c b/sys/kern/sched_shim.c index f6b1285830fd..9d96c1a2d550 100644 --- a/sys/kern/sched_shim.c +++ b/sys/kern/sched_shim.c @@ -97,6 +97,11 @@ DEFINE_SHIM0(do_timer_accounting, bool, sched_do_timer_accounting) DEFINE_SHIM1(find_l2_neighbor, int, sched_find_l2_neighbor, int, cpu) DEFINE_SHIM0(init_ap, void, schedinit_ap) + +SCHED_STAT_DEFINE(ithread_demotions, "Interrupt thread priority demotions"); +SCHED_STAT_DEFINE(ithread_preemptions, + "Interrupt thread preemptions due to time-sharing"); + static char sched_name[32] = "ULE"; SET_DECLARE(sched_instance_set, struct sched_selection); diff --git a/sys/kern/sched_ule.c b/sys/kern/sched_ule.c index 334b3c0f1de3..201d9c33dda7 100644 --- a/sys/kern/sched_ule.c +++ b/sys/kern/sched_ule.c @@ -2693,10 +2693,6 @@ sched_ule_userret_slowpath(struct thread *td) thread_unlock(td); } -SCHED_STAT_DEFINE(ithread_demotions, "Interrupt thread priority demotions"); -SCHED_STAT_DEFINE(ithread_preemptions, - "Interrupt thread preemptions due to time-sharing"); - /* * Return time slice for a given thread. For ithreads this is * sched_slice. For other threads it is tdq_slice(tdq). diff --git a/sys/sys/sched.h b/sys/sys/sched.h index 3ba40fb191d3..bc8022084de3 100644 --- a/sys/sys/sched.h +++ b/sys/sys/sched.h @@ -231,6 +231,9 @@ SYSINIT(name, SI_SUB_LAST, SI_ORDER_MIDDLE, name ## _add_proc, NULL); #define SCHED_STAT_INC(var) (void)0 #endif +SCHED_STAT_DECLARE(ithread_demotions); +SCHED_STAT_DECLARE(ithread_preemptions); + /* * Fixup scheduler state for proc0 and thread0 */ From nobody Wed Feb 11 05:17: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 4f9msC4PQ0z6RtnW for ; Wed, 11 Feb 2026 05:17:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9msC2WPCz3ScV for ; Wed, 11 Feb 2026 05:17:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787055; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+oQvICro2B9W52My/6X18G+Bwn44qRxugWiBQer1LIY=; b=R3pYPI5zq2bhBAKmLbeFFy6zfn6pwg2T19oW1X+8mVew6/P+6VvC58BudMSMtHEJ3T7y6T PdilDyTDC37hkrvm8nqdx29Mc3Q5s+mVDeYesWf2/VEXHl5OC7ZtGXdvegwETfWen1wrzn yfs2nAY36UAZmK3neu/v28LUY3KyfIF2w7CzwkJu3CRREAdx8sBVXQPlhTPs35MWRXaOvT bQTI/nrotG0TEIDhJRPPRbhQFpIyYj/09NRS2Wimc2cGglSosStrm1I8d5YO1ApLZ9d+GS MeCxpPP7c/MXoR/eevhwrTsL1FLVPKesuR1C4VJAFoWV7/3tq1QT5aHngtugTw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787055; a=rsa-sha256; cv=none; b=cxwqXTFC6nAY65A1z8W6NZehPXY7IMi1vALnHYN+xniLI8jMsSVzy6h8q70ipkshhtxShr bQleNwg02PyJDEURu3hHjJ5Gp3wGwzLjKO3B6MCybz0ns6H+WxddHafGUG1w4C8xHWfK8C KdNQXly0i4jWJ8E22BrJigk7Muvu35A/QUCR8z64h3+4jYN1E/fu4ZBQnKTN+B+QTdRlqb zEF6QRG5fl4Ud9WK5JVmcZRvDRPVNm5LakjqlHTXVgifSsEmvvGEvg3e2p1tSRNH2DIWx7 NuRH6e9mW8ymXMR0mFlpCiFnS7DlynlOArUpNZSD3n1WAJDLBviLOMxU/YGW9Q== 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=1770787055; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+oQvICro2B9W52My/6X18G+Bwn44qRxugWiBQer1LIY=; b=rzoSDWcZEJht8HDZDm9IyFsT/PD88JsMpY9+yHYbiQ9j6T2YsKvqWHNXIX+AkQHL8JA5HR TO89E9vKV3ud4hxjULdciyjETOL/fXS/K8YG8MpiSw0I3QeepA/sPjGmxnH9juYW1sUUCr fegPYh61XMbQpJUNqVKCA43tWF/3JUPP/k8pqEOY4s6KgZDzbOfeOXYL+lmvtz+mdpqtXe ctO3Ro0z4iy0Q6C1ZUWUodKY2W0BekOA/JmOHqqtYRXlPf65JOIDv41B8V/HuF2l1n1un8 V6tYKxiLIk3i9u3AuFa5bYNCwCSamTRXwngb62KQDgGmAtmZ43I0hKUQHg6OKQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9msC23TSzc6B for ; Wed, 11 Feb 2026 05:17:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 258e3 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:35 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: a3fb3d08872b - stable/15 - kern/sched: deduplicate sdt probes 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: a3fb3d08872b72b41f69839ab30db05c24db666f Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:35 +0000 Message-Id: <698c10ef.258e3.2a05b977@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=a3fb3d08872b72b41f69839ab30db05c24db666f commit a3fb3d08872b72b41f69839ab30db05c24db666f Author: Konstantin Belousov AuthorDate: 2026-01-24 06:16:42 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:37 +0000 kern/sched: deduplicate sdt probes (cherry picked from commit 9409e86980302cd495376861de3475b78734bc37) --- sys/kern/sched_4bsd.c | 18 ------------------ sys/kern/sched_shim.c | 18 ++++++++++++++++++ sys/kern/sched_ule.c | 18 ------------------ sys/sys/sched.h | 11 +++++++++++ 4 files changed, 29 insertions(+), 36 deletions(-) diff --git a/sys/kern/sched_4bsd.c b/sys/kern/sched_4bsd.c index 55a70885ee28..57d6f87a4dce 100644 --- a/sys/kern/sched_4bsd.c +++ b/sys/kern/sched_4bsd.c @@ -263,24 +263,6 @@ SYSCTL_INT(_kern_sched_4bsd, OID_AUTO, followon, CTLFLAG_RW, "allow threads to share a quantum"); #endif -SDT_PROVIDER_DEFINE(sched); - -SDT_PROBE_DEFINE3(sched, , , change__pri, "struct thread *", - "struct proc *", "uint8_t"); -SDT_PROBE_DEFINE3(sched, , , dequeue, "struct thread *", - "struct proc *", "void *"); -SDT_PROBE_DEFINE4(sched, , , enqueue, "struct thread *", - "struct proc *", "void *", "int"); -SDT_PROBE_DEFINE4(sched, , , lend__pri, "struct thread *", - "struct proc *", "uint8_t", "struct thread *"); -SDT_PROBE_DEFINE2(sched, , , load__change, "int", "int"); -SDT_PROBE_DEFINE2(sched, , , off__cpu, "struct thread *", - "struct proc *"); -SDT_PROBE_DEFINE(sched, , , on__cpu); -SDT_PROBE_DEFINE(sched, , , remain__cpu); -SDT_PROBE_DEFINE2(sched, , , surrender, "struct thread *", - "struct proc *"); - static __inline void sched_load_add(void) { diff --git a/sys/kern/sched_shim.c b/sys/kern/sched_shim.c index 9d96c1a2d550..4f000d8ace0c 100644 --- a/sys/kern/sched_shim.c +++ b/sys/kern/sched_shim.c @@ -102,6 +102,24 @@ SCHED_STAT_DEFINE(ithread_demotions, "Interrupt thread priority demotions"); SCHED_STAT_DEFINE(ithread_preemptions, "Interrupt thread preemptions due to time-sharing"); +SDT_PROVIDER_DEFINE(sched); + +SDT_PROBE_DEFINE3(sched, , , change__pri, "struct thread *", + "struct proc *", "uint8_t"); +SDT_PROBE_DEFINE3(sched, , , dequeue, "struct thread *", + "struct proc *", "void *"); +SDT_PROBE_DEFINE4(sched, , , enqueue, "struct thread *", + "struct proc *", "void *", "int"); +SDT_PROBE_DEFINE4(sched, , , lend__pri, "struct thread *", + "struct proc *", "uint8_t", "struct thread *"); +SDT_PROBE_DEFINE2(sched, , , load__change, "int", "int"); +SDT_PROBE_DEFINE2(sched, , , off__cpu, "struct thread *", + "struct proc *"); +SDT_PROBE_DEFINE(sched, , , on__cpu); +SDT_PROBE_DEFINE(sched, , , remain__cpu); +SDT_PROBE_DEFINE2(sched, , , surrender, "struct thread *", + "struct proc *"); + static char sched_name[32] = "ULE"; SET_DECLARE(sched_instance_set, struct sched_selection); diff --git a/sys/kern/sched_ule.c b/sys/kern/sched_ule.c index 201d9c33dda7..33a578814e0e 100644 --- a/sys/kern/sched_ule.c +++ b/sys/kern/sched_ule.c @@ -409,24 +409,6 @@ static int sysctl_kern_sched_ule_topology_spec_internal(struct sbuf *sb, struct cpu_group *cg, int indent); #endif -SDT_PROVIDER_DEFINE(sched); - -SDT_PROBE_DEFINE3(sched, , , change__pri, "struct thread *", - "struct proc *", "uint8_t"); -SDT_PROBE_DEFINE3(sched, , , dequeue, "struct thread *", - "struct proc *", "void *"); -SDT_PROBE_DEFINE4(sched, , , enqueue, "struct thread *", - "struct proc *", "void *", "int"); -SDT_PROBE_DEFINE4(sched, , , lend__pri, "struct thread *", - "struct proc *", "uint8_t", "struct thread *"); -SDT_PROBE_DEFINE2(sched, , , load__change, "int", "int"); -SDT_PROBE_DEFINE2(sched, , , off__cpu, "struct thread *", - "struct proc *"); -SDT_PROBE_DEFINE(sched, , , on__cpu); -SDT_PROBE_DEFINE(sched, , , remain__cpu); -SDT_PROBE_DEFINE2(sched, , , surrender, "struct thread *", - "struct proc *"); - /* * Print the threads waiting on a run-queue. */ diff --git a/sys/sys/sched.h b/sys/sys/sched.h index bc8022084de3..e4bd5211c1ae 100644 --- a/sys/sys/sched.h +++ b/sys/sys/sched.h @@ -69,6 +69,7 @@ #include #endif #include +#include struct proc; struct thread; @@ -234,6 +235,16 @@ SYSINIT(name, SI_SUB_LAST, SI_ORDER_MIDDLE, name ## _add_proc, NULL); SCHED_STAT_DECLARE(ithread_demotions); SCHED_STAT_DECLARE(ithread_preemptions); +SDT_PROBE_DECLARE(sched, , , change__pri); +SDT_PROBE_DECLARE(sched, , , dequeue); +SDT_PROBE_DECLARE(sched, , , enqueue); +SDT_PROBE_DECLARE(sched, , , lend__pri); +SDT_PROBE_DECLARE(sched, , , load__change); +SDT_PROBE_DECLARE(sched, , , off__cpu); +SDT_PROBE_DECLARE(sched, , , on__cpu); +SDT_PROBE_DECLARE(sched, , , remain__cpu); +SDT_PROBE_DECLARE(sched, , , surrender); + /* * Fixup scheduler state for proc0 and thread0 */ From nobody Wed Feb 11 05:17: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 4f9msD4RQ8z6RtSF for ; Wed, 11 Feb 2026 05:17: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 4f9msD3Vggz3Sth for ; Wed, 11 Feb 2026 05:17:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787056; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5/Lso31vjWpcWHZr77AUpBW2LoQzxavJlR30c+eQLGg=; b=AcBw9MXATaQtQVovAkc7zp/qMnCmFqTohH8QUsAPxK68kk4Cxu1as+XmVlLyPlTQjskBAl a+6wv1lfMMYfLqhpPVVKG6cunWstNoaKpO7SgxIKPbFrPmBqnV+DWYL00t8OsnSbOaZRyC nHn752NZWKJ9gsXnL2LvUdxGU23lwMfccWoOJvy4ez8vc9kPgs5dHoNMbacXVEXYnLpHZo N81F3shALkpjQFM5+gY3S70+DzHmhRcNV2MDBU50th7TYwup4zjxWFlzONISF/2BN3U4uH NOwdzcizy3htj/6Hk0gXzpqD/c3OPDHnXv7Nho7d42ScmZbufhcNZ5V5bxZkOA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787056; a=rsa-sha256; cv=none; b=XgXYIEBYoGK35b1xyZ6kKUULylx9WdoTvuCSaWJS/9loMOpDfCo4re+bU59unOWKLHbgji iJejFMG8RGibH3PohAEWDV0peyjASkXkWEGLU/Ivxmxg3+KQXjdQyf82EVFAFUEs5K3oCx Q3OdcFUs2QcApnZtrSR0sK+9sf3GdjjyQHAAEavMEpHBdyrVAvDl4VmjUzbsuulDsGBGCS llqRhmrLNaC6G8hO1DDiwJj8qjyTTVIGjQloA1lg2v8c1q+aK2u9yA79waYc9y1MUtwyF5 c4LOEt4mqUpiByEvzs4Ul4BZYGh6Xp2M8mW9867YnjkHwKg0uX6cEciq7Qz92Q== 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=1770787056; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5/Lso31vjWpcWHZr77AUpBW2LoQzxavJlR30c+eQLGg=; b=r+RWmsh+45YnO0eCxRC7L4e1607pkWFxbqw6P/4KLjD4cRwuHt0E2o93oyiakoPzPGM+b4 qo/octv/xtoDFe/JdBfkWESI/oUMp7rXvhYLb2hfVbuc0/RB02jq7AiwooMaaoJMGm4QOL h/SaNA0uGmBHSgDp7GUwLqu5xmj92IwnN1GINJIWg7caOxTDSMzvc2V85GkyId3t2Mpkjn 4gWTucZoqS5Fc0Skg5LTxG9a0KVT6hkpze0N7WCDbEc9FMSVJ4TBF9KjFUiq/dpZB66F99 ++kxjjTvFiWGzuqvL3Yx3xJVAV298Q0nnRsH+Vr6l0dpNxQZS/pnFZxphT0IXA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9msD2rJczcfV for ; Wed, 11 Feb 2026 05:17:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26455 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:36 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 20f2249d3913 - stable/15 - kern/sched: deduplicate dtrace hook vars 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: 20f2249d3913e8bd5fac979df475d5e789591803 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:36 +0000 Message-Id: <698c10f0.26455.16420b90@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=20f2249d3913e8bd5fac979df475d5e789591803 commit 20f2249d3913e8bd5fac979df475d5e789591803 Author: Konstantin Belousov AuthorDate: 2026-01-24 06:22:01 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:37 +0000 kern/sched: deduplicate dtrace hook vars (cherry picked from commit 783b8a0fd880255a8315db7f59d0450bd7276f4d) --- sys/kern/sched_4bsd.c | 6 ------ sys/kern/sched_shim.c | 6 ++++++ sys/kern/sched_ule.c | 6 ------ sys/sys/sched.h | 6 ++++++ 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/sys/kern/sched_4bsd.c b/sys/kern/sched_4bsd.c index 57d6f87a4dce..317b47da2cca 100644 --- a/sys/kern/sched_4bsd.c +++ b/sys/kern/sched_4bsd.c @@ -66,12 +66,6 @@ #include #endif -#ifdef KDTRACE_HOOKS -#include -int __read_mostly dtrace_vtime_active; -dtrace_vtime_switch_func_t dtrace_vtime_switch_func; -#endif - /* * INVERSE_ESTCPU_WEIGHT is only suitable for statclock() frequencies in * the range 100-256 Hz (approximately). diff --git a/sys/kern/sched_shim.c b/sys/kern/sched_shim.c index 4f000d8ace0c..ec5c42c37aab 100644 --- a/sys/kern/sched_shim.c +++ b/sys/kern/sched_shim.c @@ -120,6 +120,12 @@ SDT_PROBE_DEFINE(sched, , , remain__cpu); SDT_PROBE_DEFINE2(sched, , , surrender, "struct thread *", "struct proc *"); +#ifdef KDTRACE_HOOKS +#include +int __read_mostly dtrace_vtime_active; +dtrace_vtime_switch_func_t dtrace_vtime_switch_func; +#endif + static char sched_name[32] = "ULE"; SET_DECLARE(sched_instance_set, struct sched_selection); diff --git a/sys/kern/sched_ule.c b/sys/kern/sched_ule.c index 33a578814e0e..ccad7947c4f5 100644 --- a/sys/kern/sched_ule.c +++ b/sys/kern/sched_ule.c @@ -72,12 +72,6 @@ #include #endif -#ifdef KDTRACE_HOOKS -#include -int __read_mostly dtrace_vtime_active; -dtrace_vtime_switch_func_t dtrace_vtime_switch_func; -#endif - #include #include diff --git a/sys/sys/sched.h b/sys/sys/sched.h index e4bd5211c1ae..08d8636aaa68 100644 --- a/sys/sys/sched.h +++ b/sys/sys/sched.h @@ -245,6 +245,12 @@ SDT_PROBE_DECLARE(sched, , , on__cpu); SDT_PROBE_DECLARE(sched, , , remain__cpu); SDT_PROBE_DECLARE(sched, , , surrender); +#ifdef KDTRACE_HOOKS +#include +extern int dtrace_vtime_active; +extern dtrace_vtime_switch_func_t dtrace_vtime_switch_func; +#endif + /* * Fixup scheduler state for proc0 and thread0 */ From nobody Wed Feb 11 05:17: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 4f9msF5p4hz6Rtww for ; Wed, 11 Feb 2026 05:17: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 4f9msF42lYz3T01 for ; Wed, 11 Feb 2026 05:17:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787057; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=AS0dbJi+CqK2blIEJ0TVWS05t5ejiGY2JTeMVQx0ehM=; b=pfVF8Oby1KktCEigyWniE4RQC6anUTkwbYr9BUsAGbN866lil0851aZr3T5Pp4VUTZJRLj jL19BJozSt5p1f8Lj3ZLxcJewNORrKn1Mmkc83BsE+DsmbScL5HDVf7vtVVIqR70xuHeYP yN9TK+QPR3zFWqxhMbI8cLZH4oxaKiZjG33SgiQ+slSIsuVEEzX7eJPmBGhxyabiPkXDby 5zRKLvZ6GgHSNzsYFS6E9wzxnkA2pASGfYbudLuQgCHLy/i6Jo+0z1rzBWSd0RT6VwXH/9 AnFPCN8hT1uJSJbgc34NPwy3KSqFD3nNPgoP5kpHMql5YSbd42MVDxiUe9EqlA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787057; a=rsa-sha256; cv=none; b=LBGMe/8m6Qk/mgEExOJBQegtfA3gsEtReIYVV3KLo9aZM7nEpFPQ1gdj6ignBMJ3vHMc5C 68E2FhtNtyw89lfgLdpZjycCvDdeDg6AnM2UCGuPGYM9dqdM5rnSs0qcemuwNkjKjxToee GRUP35GfXWSFha+779dXQ7QBfvgnmpmbPNXMCyWnEjU8pgPg6Brbm8nF5xEXTb4/blL9SI GYH8tdlM8fKi5q+cAjth3MsN/rYzxk6VZ9xRazqhXM7o/F53dauJ5My3MivhciSJBs0jyX E0HuIb4dInLAskQfvgzuDHKlKeavC+hQwiHGkKLYP6q+g0G1ZutaYIA8qHovgw== 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=1770787057; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=AS0dbJi+CqK2blIEJ0TVWS05t5ejiGY2JTeMVQx0ehM=; b=D/6P7zZhbRfvkxCKru1ortGiLVIy+Lvqf/MegYkFSrDsWQFW9oBEuZZ4x7TrBxBmFEnL1k 7ec1083BYapjlmXAsEJEDA60WnaV1flGsRkRZI1GiVSzkEt7QbKcIY7eafEqBqlC5fbYPd vXqvw34B9IseVCRGOPv7Pv4cWmcSbusLBcRMuL14FpPXMQnjdEOj519dOq/oufyGM/no0j EWHcVTZydS0ePqkKpzCs4KbpJPOgHFVdDROf11tGVS++6bFPuII7mHyrWGba7PiSDORNrl JiPV3JjlsZ5G1zlIo/LmLh3FHaNd33iVR4TLmBfLyusP1RTWHZB5ZYsIvOMaRg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9msF3bcszcYx for ; Wed, 11 Feb 2026 05:17:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2670b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:37 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 4e5c15f3107e - stable/15 - tuning.7: document schedulers knobs 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: 4e5c15f3107e8c288bab3bfc5a9607c492e4c65d Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:37 +0000 Message-Id: <698c10f1.2670b.2f28d179@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=4e5c15f3107e8c288bab3bfc5a9607c492e4c65d commit 4e5c15f3107e8c288bab3bfc5a9607c492e4c65d Author: Konstantin Belousov AuthorDate: 2026-01-29 21:40:29 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:37 +0000 tuning.7: document schedulers knobs (cherry picked from commit 0730a05cd383276ca8eedf295509e869ac9b88a0) --- share/man/man7/tuning.7 | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/share/man/man7/tuning.7 b/share/man/man7/tuning.7 index c03cce0aba0f..586b63c247a8 100644 --- a/share/man/man7/tuning.7 +++ b/share/man/man7/tuning.7 @@ -601,6 +601,32 @@ See the section in the .Xr sendfile 2 manual page for details. +.Sh SCHEDULERS +.Fx +allows having more than one scheduler specified in the kernel config, +and the desired scheduler selected from them at boot time. +Right now the options are: +.Bl -tag -width SCHED_4BSD +.It Cd SCHED_ULE +The modern scheduler with O(1) thread selection behavior. +.It Cd SCHED_4BSD +Classic scheduler inherited from 4.x BSD. +.El +.Pp +At least one option must be specified. +.Cd SCHED_ULE +is used by default if compiled in. +.Pp +The +.Va kern.sched.available +sysctl provides the comma-separated list of available (compiled in) +schedulers. +The +.Va kern.sched.name +loader tunable can be set to select the desired scheduler at boot time. +The +.Va kern.sched.name +sysctl reports which scheduler is used. .Sh KERNEL CONFIG TUNING There are a number of kernel options that you may have to fiddle with in a large-scale system. From nobody Wed Feb 11 05:17: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 4f9msH06dMz6Rtx1 for ; Wed, 11 Feb 2026 05:17: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 4f9msG4sQTz3Sv4 for ; Wed, 11 Feb 2026 05:17:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787058; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Pw+/maxrgcmRFZu13sfrE18zY2RfsjvPAYohs1eKxKs=; b=BgWIxd3r8fgNxlHj32cYJhfadSliwBdvzFIvEzge4avXQ9XpuZVqHjVkly2F/LllW7AmHf 2cO0PsQfT4jdoCW8qawwR2l8yffgjOibmq1k7h/pRPBV5gbvVWZmADsTyCnqDUgefmJhg4 2W6gmfBYKbIDS0TrMVy2gz2TvVP3gYcX74lECjlFqyxnk+uveOfk/O6fnklj9KuU9C0741 9/X+Wr9fBGVEbYbaGhTJr1gfsgrVkFkRKCFhdlsD8L6TP4c98pZQjGQ0AdAYJ9Jf6RWaCb HnR1ZDDrZfzUsdiiGkB4Kd/UEK7U2m+p8wD4U+3W2l0ZC6EtD/Hk8ZKHESfwMQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787058; a=rsa-sha256; cv=none; b=FwdVy3/fCtohmUbZbEptmoFD2mOOeqYVgzf5X89oCqT3qGN7r9IQGpnJgSuAv+wIIrmme3 7DALqcgNPbPvFA9o/daZCskz4lFdWgieUO+c18f3LOWxh2Sd60mCFjQbs90CG866fcrGEa ovH78FOjtTMmWCiSY2zaOMaK4PYjib8NyfeeVzbVGdfJIVCaVRbACtpgAZ51wenK7ZbWT0 b/nUirfF7ledIXA2BxK7Sr6SzYbJ4BoNDhRbuHlC+BVqZeMVSkcEWwnMwi1KS/WzT2tlvx 3SApTBb6Zl3Gl0/OWel+2GIwnI0u7j6ISZEsZU86i0PMWPC8FCZwC92kdi5t+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=1770787058; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Pw+/maxrgcmRFZu13sfrE18zY2RfsjvPAYohs1eKxKs=; b=iC56/ZR1/MbRRetpldwEwJyUnlbrdI7lwj06CoKoaXb/iS9HlmhJnqb6ZYTIrE8lca5g+T u88+vOtB1sdszw9OHh1f3Axf47rD/mZlFnpY+iEOedGNgDfrZSCBzK/iTy79HekQbEvNkq z0v2nRSjoTxhf8m+DU9usDj6tvh7SRiy9GFgoj07Fm1u51A6D3HkOpjYvlH+lG2eZTq4Ue S+/7ZMevjYb8wIeSaZ7kxDENsA/7cOlfr7BzFQbrTgCRZvkLtTQbot3TkgQa2qV2cfIwav AmkJhhsQ3x69vqlW50pZioBaXmN3+XhfNOtN4qt6bygliHITs9DpBDorJHf96g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9msG4QQczcHb for ; Wed, 11 Feb 2026 05:17:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2670f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:38 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 68feaa1cf268 - stable/15 - SCHED_4BSD: maybe_resched() cannot schedule ast() for curthread 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: 68feaa1cf2684c520829fb245bd4b9381e655c18 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:38 +0000 Message-Id: <698c10f2.2670f.34166c50@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=68feaa1cf2684c520829fb245bd4b9381e655c18 commit 68feaa1cf2684c520829fb245bd4b9381e655c18 Author: Konstantin Belousov AuthorDate: 2026-01-29 08:09:00 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:38 +0000 SCHED_4BSD: maybe_resched() cannot schedule ast() for curthread (cherry picked from commit b249cb2b18b3fddae186d45fe6d984fc7bde10c4) --- sys/kern/kern_synch.c | 2 +- sys/kern/sched_4bsd.c | 21 +++++++++++++++++++-- sys/sys/proc.h | 1 + sys/sys/sched.h | 2 ++ 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/sys/kern/kern_synch.c b/sys/kern/kern_synch.c index 0ab0ccb3d05b..22628c78d8a5 100644 --- a/sys/kern/kern_synch.c +++ b/sys/kern/kern_synch.c @@ -596,7 +596,7 @@ loadav(void *arg) loadav, NULL, C_DIRECT_EXEC | C_PREL(32)); } -static void +void ast_scheduler(struct thread *td, int tda __unused) { #ifdef KTRACE diff --git a/sys/kern/sched_4bsd.c b/sys/kern/sched_4bsd.c index 317b47da2cca..a47fe3ce72c3 100644 --- a/sys/kern/sched_4bsd.c +++ b/sys/kern/sched_4bsd.c @@ -108,6 +108,8 @@ struct td_sched { #define TDF_BOUND TDF_SCHED1 /* Bound to one CPU. */ #define TDF_SLICEEND TDF_SCHED2 /* Thread time slice is over. */ +#define TDP_RESCHED TDP_SCHED1 /* Reschedule due to maybe_resched(). */ + /* flags kept in ts_flags */ #define TSF_AFFINITY 0x0001 /* Has a non-"full" CPU set. */ @@ -274,6 +276,17 @@ sched_load_rem(void) KTR_COUNTER0(KTR_SCHED, "load", "global load", sched_tdcnt); SDT_PROBE2(sched, , , load__change, NOCPU, sched_tdcnt); } + +static void +maybe_resched_ast(struct thread *td, int tda) +{ + MPASS(td == curthread); /* We are AST */ + if ((td->td_pflags & TDP_RESCHED) != 0) { + td->td_pflags &= ~TDP_RESCHED; + ast_scheduler(td, tda); + } +} + /* * Arrange to reschedule if necessary, taking the priorities and * schedulers into account. @@ -281,10 +294,12 @@ sched_load_rem(void) static void maybe_resched(struct thread *td) { + struct thread *ctd; + ctd = curthread; THREAD_LOCK_ASSERT(td, MA_OWNED); - if (td->td_priority < curthread->td_priority) - ast_sched_locked(curthread, TDA_SCHED); + if (td->td_priority < ctd->td_priority) + ctd->td_pflags |= TDP_RESCHED; } /* @@ -621,6 +636,8 @@ sched_4bsd_setup(void) /* Account for thread0. */ sched_load_add(); + + ast_register(TDA_SCHED_PRIV, ASTR_UNCOND, 0, maybe_resched_ast); } /* diff --git a/sys/sys/proc.h b/sys/sys/proc.h index 0c9658fff725..7c4431ab0819 100644 --- a/sys/sys/proc.h +++ b/sys/sys/proc.h @@ -503,6 +503,7 @@ enum { TDA_SIGSUSPEND, TDA_MOD3, /* .. and after */ TDA_MOD4, + TDA_SCHED_PRIV, TDA_MAX, }; #define TDAI(tda) (1U << (tda)) diff --git a/sys/sys/sched.h b/sys/sys/sched.h index 08d8636aaa68..c7b7b849947c 100644 --- a/sys/sys/sched.h +++ b/sys/sys/sched.h @@ -188,6 +188,8 @@ sched_unpin(void) curthread->td_pinned--; } +void ast_scheduler(struct thread *td, int tda); + /* sched_add arguments (formerly setrunqueue) */ #define SRQ_BORING 0x0000 /* No special circumstances. */ #define SRQ_YIELDING 0x0001 /* We are yielding (from mi_switch). */ From nobody Wed Feb 11 05:17: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 4f9msJ1TxKz6RtrB for ; Wed, 11 Feb 2026 05:17: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 4f9msH63K3z3SvX for ; Wed, 11 Feb 2026 05:17:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787059; 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=YPpd/RTpMsXVAFpCq3qe/sRdHBaDHRG3FWVWikj/RYk=; b=Us94cUkJFtPlLFTcG/znI2UjIkMa+/VwJw0f7xEVLqCXzNdObs4BJp0SJBkS3+4GEpRG0U AvRBXGq5z2qvAwpF/OUezAq5GdIv2YPHIvEzWrjDFJ70OG7RivNbuFbPibXKi3SePIsjsf zq/wp/guxzHQ4tDVbL6IkqPDlzibro4t05GrkHCTHBy9DrU4hrJJcb6AWipV93DXXpLCig MBFK+lchQQORBvYKkzmi6FFnTF9eJh+f+vUU+q8pZigWhFwrdkEp/QHOSRte6nhsv47UCN j5a9nTOxikoNej+/D4fjxV7nrrOxLu085fASo4OG6xy3FexBAKf7uaGTWiNB4g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787059; a=rsa-sha256; cv=none; b=HkF9A/ZybFVE2vQiGHhY1OdlcTH284HYI/LtD8cT5r52UALDsf0P5Z4fnhH/a/Nwo+nE0V RZTRHZgH5dCC1+cy8iq4Y/oNvtWxXi56+2ChAxPn2/TkSnaFkqEB9VgyxJYS1CZTSwR9XJ E6D1kqu4coiWermKSg/wSwk5GIgRbGecC6kH/8YYrO8taFo0PhtbOb9WLg14407+xBMwfp D54hWvXggk4new6bNYUO9MrBgPEV5/XO7KMVMKohWqQdEz2RLq8+sm6ewQVsHUxmtdFoE8 XbmQseKCpJ7FIP4oO/ceGK4F9IRkBYHCkGOLAIrK7Jyl7TlJ9jPQkkYR/pQnsQ== 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=1770787059; 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=YPpd/RTpMsXVAFpCq3qe/sRdHBaDHRG3FWVWikj/RYk=; b=O/g3x8u+rHPnLzmQluBFIudxvlpcb3MYCyWMb9Z2BR6LkO0+JsUUAWm2k8exY14obB/PJW FRKP429Kf7bT4dprzKjRVEBb4CwmIUyaatTenLLhGtHBY5WzMuPD9DVTK8P69gw/vJ4y42 S5xDH83dMQV0LOIG0+YldiQH9e+KBhgcLV02mFv3ngDAc5MHdF18F/pJzY8MPl94jUY993 Vm1nZj3p9vtix+UQK2IRVcyDcKnr4bKwp4BH0loh/sWHziwwBZ2qbUvV5XiYYF4KDP/t88 5y+bbLHiZrwoav/PWrySB6rq43tJgyZCJuJZGljsRpwYjNLh5KPLlYvH6fnGVQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9msH5BCRzcfW for ; Wed, 11 Feb 2026 05:17:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 25e74 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:39 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Jessica Clarke From: Konstantin Belousov Subject: git: 164d8af43ecf - stable/15 - i386: Fix build and remove empty unused macro 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: 164d8af43ecf07e42d39ee76b1bedb0ae877b35f Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:39 +0000 Message-Id: <698c10f3.25e74.ecd9800@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=164d8af43ecf07e42d39ee76b1bedb0ae877b35f commit 164d8af43ecf07e42d39ee76b1bedb0ae877b35f Author: Jessica Clarke AuthorDate: 2026-02-02 17:43:50 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:38 +0000 i386: Fix build and remove empty unused macro (cherry picked from commit 9e0fe126714cc0b2045bec16fe8d06dbcd663144) --- sys/i386/i386/swtch.S | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/sys/i386/i386/swtch.S b/sys/i386/i386/swtch.S index cb03c847fbc9..ad7c1d16c788 100644 --- a/sys/i386/i386/swtch.S +++ b/sys/i386/i386/swtch.S @@ -34,8 +34,6 @@ #include "assym.inc" -#define BLOCK_SPIN(reg) \ - /*****************************************************************************/ /* Scheduling */ /*****************************************************************************/ @@ -170,7 +168,7 @@ sw1: 100: lock - cmpxchgl %eax,TD_LOCK(reg) + cmpxchgl %eax,TD_LOCK(%ecx) jne 101f pause jmp 100b From nobody Wed Feb 11 05:17: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 4f9msK4NLtz6RtrF for ; Wed, 11 Feb 2026 05:17: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 4f9msJ6s6kz3T0f for ; Wed, 11 Feb 2026 05:17:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770787061; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RgCrZBufCv/3maKXBy4TtmCWOuAb8b7twcVfTOmNFq0=; b=jydfJilzO7SanEejKis7m8tyBr27qyAQcQuZMbo+hjN/ns4A8RMaJZALwKugLXBhB170sE LJalUnndI/5nTEiWElS8dpcUt9Mhw710Ag8SMXywps/fxUMMFebhvoHp0e1kS2+veKaGRT XUe5pY0WJMqqaeRmUd8XMaa83O4L0RBSfNu00tCQEvhhpRJl2P1VLp9rhyfAk7v4V02ZyM M/io6f3RP5jtR0UvNq9A4xb5xgCa6m9tqStWZqAgyG2Mqq1nHfoBALCwSGgbW0ghT5A3DB d7TfCbfw6KZo0gUUmTTR1A3m8fIcYRPvOlpHGN4dbaXo1OmVgbwqITBbuqKjbQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770787061; a=rsa-sha256; cv=none; b=puEEs6MjqNkIXjv8CcvQGm9C/vx7YhZxohYA9VdnvJm3GlJeiOtC5e6ogDnz7k5UdFgmDS nOMVIzZBE7ZWw0KPZjyIa2WhlbV2kkd0avchCZD0E1MmKxVngKTuM+hHUk8fR1s6hgyjoG I5acVJBDCTCKNACIDHDABP/kPKjJIUOS6WuodY0rsC/hmd1DX4YmII9LZZNGXZEM0W3Pwp UDK36r8DxlE3qx6CxYZ4w+/sPDUOpdDD7TlGGcT2ekAnLpZykyHrndZ6+XLQBBV94l58nS mYbCGoEqd1Fl3ePezxYm24W3mMnE06ae0sWpMXv90zDiaKsclzV7M9ra+yPkig== 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=1770787061; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=RgCrZBufCv/3maKXBy4TtmCWOuAb8b7twcVfTOmNFq0=; b=xbZ9riVgcl6XYFxozXt2Ps3DtJNVmbVSNf7OuPAWF0/htXh1cc376yssLgrIx1SDKZa8oU DjqhrnMfWf3EztLs+ncGpOfu/MTmda2DbgTChAVLNxgG79SAZYeAM5U3kadcqj/9eWyRmI hHV2c64qlpphLP0I2onatRY98a/e+Otl8BfaefyijRkSL0qsUuzuZRKS1gGEvTuqbhCq1x dd5vFxfkIMTVq183QKVeJMxP72hQ0I7JnfqklxJL0ohPv9aHjpSKu9mut64arrAamz5411 yfOrDhUvQRcMtVZ2Bc0eNxYu4/bZswE5DhaM0btC3iZw7hAlH842cI6a+QcwqQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9msJ60lVzcfX for ; Wed, 11 Feb 2026 05:17:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27330 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 05:17:40 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Konstantin Belousov Subject: git: 8cec47467a99 - stable/15 - Re-introduce kern.sched.topology_spec 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: 8cec47467a99f3e581ef36d5be24676da2695083 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 05:17:40 +0000 Message-Id: <698c10f4.27330.3e074aa8@gitrepo.freebsd.org> The branch stable/15 has been updated by kib: URL: https://cgit.FreeBSD.org/src/commit/?id=8cec47467a99f3e581ef36d5be24676da2695083 commit 8cec47467a99f3e581ef36d5be24676da2695083 Author: Konstantin Belousov AuthorDate: 2026-02-02 20:22:46 +0000 Commit: Konstantin Belousov CommitDate: 2026-02-11 05:12:38 +0000 Re-introduce kern.sched.topology_spec PR: 292574 (cherry picked from commit 120ca8d74b46caa260702485e30fe5f9f9984682) --- sys/kern/sched_shim.c | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++ sys/kern/sched_ule.c | 92 --------------------------------------------------- sys/kern/subr_smp.c | 81 ++++++++++++++++++++++++++------------------- sys/sys/smp.h | 9 +++-- 4 files changed, 144 insertions(+), 129 deletions(-) diff --git a/sys/kern/sched_shim.c b/sys/kern/sched_shim.c index ec5c42c37aab..83e4412494d3 100644 --- a/sys/kern/sched_shim.c +++ b/sys/kern/sched_shim.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include @@ -171,9 +172,12 @@ schedinit(void) active_sched->init(); } +struct cpu_group __read_mostly *cpu_top; /* CPU topology */ + static void sched_setup(void *dummy) { + cpu_top = smp_topo(); active_sched->setup(); } SYSINIT(sched_setup, SI_SUB_RUN_QUEUE, SI_ORDER_FIRST, sched_setup, NULL); @@ -232,3 +236,90 @@ SYSCTL_PROC(_kern_sched, OID_AUTO, available, fixpt_t ccpu; SYSCTL_UINT(_kern, OID_AUTO, ccpu, CTLFLAG_RD, &ccpu, 0, "Decay factor used for updating %CPU"); + +/* + * Build the CPU topology dump string. Is recursively called to collect + * the topology tree. + */ +static int +sysctl_kern_sched_topology_spec_internal(struct sbuf *sb, + struct cpu_group *cg, int indent) +{ + char cpusetbuf[CPUSETBUFSIZ]; + int i, first; + + if (cpu_top == NULL) { + sbuf_printf(sb, "%*s\n", + indent, ""); + sbuf_printf(sb, "%*s\n", indent, ""); + return (0); + } + + sbuf_printf(sb, "%*s\n", indent, + "", 1 + indent / 2, cg->cg_level); + sbuf_printf(sb, "%*s ", indent, "", + cg->cg_count, cpusetobj_strprint(cpusetbuf, &cg->cg_mask)); + first = TRUE; + for (i = cg->cg_first; i <= cg->cg_last; i++) { + if (CPU_ISSET(i, &cg->cg_mask)) { + if (!first) + sbuf_cat(sb, ", "); + else + first = FALSE; + sbuf_printf(sb, "%d", i); + } + } + sbuf_cat(sb, "\n"); + + if (cg->cg_flags != 0) { + sbuf_printf(sb, "%*s ", indent, ""); + if ((cg->cg_flags & CG_FLAG_HTT) != 0) + sbuf_cat(sb, "HTT group"); + if ((cg->cg_flags & CG_FLAG_THREAD) != 0) + sbuf_cat(sb, "THREAD group"); + if ((cg->cg_flags & CG_FLAG_SMT) != 0) + sbuf_cat(sb, "SMT group"); + if ((cg->cg_flags & CG_FLAG_NODE) != 0) + sbuf_cat(sb, "NUMA node"); + sbuf_cat(sb, "\n"); + } + + if (cg->cg_children > 0) { + sbuf_printf(sb, "%*s \n", indent, ""); + for (i = 0; i < cg->cg_children; i++) + sysctl_kern_sched_topology_spec_internal(sb, + &cg->cg_child[i], indent + 2); + sbuf_printf(sb, "%*s \n", indent, ""); + } + sbuf_printf(sb, "%*s\n", indent, ""); + return (0); +} + +/* + * Sysctl handler for retrieving topology dump. It's a wrapper for + * the recursive sysctl_kern_smp_topology_spec_internal(). + */ +static int +sysctl_kern_sched_topology_spec(SYSCTL_HANDLER_ARGS) +{ + struct sbuf *topo; + int err; + + topo = sbuf_new_for_sysctl(NULL, NULL, 512, req); + if (topo == NULL) + return (ENOMEM); + + sbuf_cat(topo, "\n"); + err = sysctl_kern_sched_topology_spec_internal(topo, cpu_top, 1); + sbuf_cat(topo, "\n"); + + if (err == 0) + err = sbuf_finish(topo); + sbuf_delete(topo); + return (err); +} + +SYSCTL_PROC(_kern_sched, OID_AUTO, topology_spec, CTLTYPE_STRING | + CTLFLAG_MPSAFE | CTLFLAG_RD, NULL, 0, + sysctl_kern_sched_topology_spec, "A", + "XML dump of detected CPU topology"); diff --git a/sys/kern/sched_ule.c b/sys/kern/sched_ule.c index ccad7947c4f5..c6bfe15e768b 100644 --- a/sys/kern/sched_ule.c +++ b/sys/kern/sched_ule.c @@ -304,7 +304,6 @@ struct tdq { atomic_load_short(&(tdq)->tdq_switchcnt) + 1)) #ifdef SMP -struct cpu_group __read_mostly *cpu_top; /* CPU topology */ #define SCHED_AFFINITY_DEFAULT (max(1, hz / 1000)) /* @@ -398,9 +397,6 @@ static void sched_balance(void); static bool sched_balance_pair(struct tdq *, struct tdq *); static inline struct tdq *sched_setcpu(struct thread *, int, int); static inline void thread_unblock_switch(struct thread *, struct mtx *); -static int sysctl_kern_sched_ule_topology_spec(SYSCTL_HANDLER_ARGS); -static int sysctl_kern_sched_ule_topology_spec_internal(struct sbuf *sb, - struct cpu_group *cg, int indent); #endif /* @@ -1590,7 +1586,6 @@ sched_setup_smp(void) struct tdq *tdq; int i; - cpu_top = smp_topo(); CPU_FOREACH(i) { tdq = DPCPU_ID_PTR(i, tdq); tdq_setup(tdq, i); @@ -3452,89 +3447,6 @@ struct sched_instance sched_ule_instance = { }; DECLARE_SCHEDULER(ule_sched_selector, "ULE", &sched_ule_instance); -#ifdef SMP - -/* - * Build the CPU topology dump string. Is recursively called to collect - * the topology tree. - */ -static int -sysctl_kern_sched_ule_topology_spec_internal(struct sbuf *sb, - struct cpu_group *cg, int indent) -{ - char cpusetbuf[CPUSETBUFSIZ]; - int i, first; - - sbuf_printf(sb, "%*s\n", indent, - "", 1 + indent / 2, cg->cg_level); - sbuf_printf(sb, "%*s ", indent, "", - cg->cg_count, cpusetobj_strprint(cpusetbuf, &cg->cg_mask)); - first = TRUE; - for (i = cg->cg_first; i <= cg->cg_last; i++) { - if (CPU_ISSET(i, &cg->cg_mask)) { - if (!first) - sbuf_cat(sb, ", "); - else - first = FALSE; - sbuf_printf(sb, "%d", i); - } - } - sbuf_cat(sb, "\n"); - - if (cg->cg_flags != 0) { - sbuf_printf(sb, "%*s ", indent, ""); - if ((cg->cg_flags & CG_FLAG_HTT) != 0) - sbuf_cat(sb, "HTT group"); - if ((cg->cg_flags & CG_FLAG_THREAD) != 0) - sbuf_cat(sb, "THREAD group"); - if ((cg->cg_flags & CG_FLAG_SMT) != 0) - sbuf_cat(sb, "SMT group"); - if ((cg->cg_flags & CG_FLAG_NODE) != 0) - sbuf_cat(sb, "NUMA node"); - sbuf_cat(sb, "\n"); - } - - if (cg->cg_children > 0) { - sbuf_printf(sb, "%*s \n", indent, ""); - for (i = 0; i < cg->cg_children; i++) - sysctl_kern_sched_ule_topology_spec_internal(sb, - &cg->cg_child[i], indent+2); - sbuf_printf(sb, "%*s \n", indent, ""); - } - sbuf_printf(sb, "%*s\n", indent, ""); - return (0); -} - -/* - * Sysctl handler for retrieving topology dump. It's a wrapper for - * the recursive sysctl_kern_smp_topology_spec_internal(). - */ -static int -sysctl_kern_sched_ule_topology_spec(SYSCTL_HANDLER_ARGS) -{ - struct sbuf *topo; - int err; - - if (cpu_top == NULL) - return (ENOTTY); - - topo = sbuf_new_for_sysctl(NULL, NULL, 512, req); - if (topo == NULL) - return (ENOMEM); - - sbuf_cat(topo, "\n"); - err = sysctl_kern_sched_ule_topology_spec_internal(topo, cpu_top, 1); - sbuf_cat(topo, "\n"); - - if (err == 0) { - err = sbuf_finish(topo); - } - sbuf_delete(topo); - return (err); -} - -#endif - static int sysctl_kern_quantum(SYSCTL_HANDLER_ARGS) { @@ -3597,8 +3509,4 @@ SYSCTL_INT(_kern_sched_ule, OID_AUTO, trysteal_limit, CTLFLAG_RWTUN, SYSCTL_INT(_kern_sched_ule, OID_AUTO, always_steal, CTLFLAG_RWTUN, &always_steal, 0, "Always run the stealer from the idle thread"); -SYSCTL_PROC(_kern_sched_ule, OID_AUTO, topology_spec, CTLTYPE_STRING | - CTLFLAG_MPSAFE | CTLFLAG_RD, NULL, 0, - sysctl_kern_sched_ule_topology_spec, "A", - "XML dump of detected CPU topology"); #endif diff --git a/sys/kern/subr_smp.c b/sys/kern/subr_smp.c index 1f9577fddf9c..d80048f961bd 100644 --- a/sys/kern/subr_smp.c +++ b/sys/kern/subr_smp.c @@ -50,9 +50,43 @@ #include "opt_sched.h" -#ifdef SMP MALLOC_DEFINE(M_TOPO, "toponodes", "SMP topology data"); +struct cpu_group * +smp_topo_alloc(u_int count) +{ + static struct cpu_group *group = NULL; + static u_int index; + u_int curr; + + if (group == NULL) { + group = mallocarray((mp_maxid + 1) * MAX_CACHE_LEVELS + 1, + sizeof(*group), M_DEVBUF, M_WAITOK | M_ZERO); + } + curr = index; + index += count; + return (&group[curr]); +} + +struct cpu_group * +smp_topo_none(void) +{ + struct cpu_group *top; + + top = smp_topo_alloc(1); + top->cg_parent = NULL; + top->cg_child = NULL; + top->cg_mask = all_cpus; + top->cg_count = mp_ncpus; + top->cg_children = 0; + top->cg_level = CG_SHARE_NONE; + top->cg_flags = 0; + + return (top); +} + +#ifdef SMP + volatile cpuset_t stopped_cpus; volatile cpuset_t started_cpus; volatile cpuset_t suspended_cpus; @@ -711,39 +745,6 @@ smp_topo(void) return (top); } -struct cpu_group * -smp_topo_alloc(u_int count) -{ - static struct cpu_group *group = NULL; - static u_int index; - u_int curr; - - if (group == NULL) { - group = mallocarray((mp_maxid + 1) * MAX_CACHE_LEVELS + 1, - sizeof(*group), M_DEVBUF, M_WAITOK | M_ZERO); - } - curr = index; - index += count; - return (&group[curr]); -} - -struct cpu_group * -smp_topo_none(void) -{ - struct cpu_group *top; - - top = smp_topo_alloc(1); - top->cg_parent = NULL; - top->cg_child = NULL; - top->cg_mask = all_cpus; - top->cg_count = mp_ncpus; - top->cg_children = 0; - top->cg_level = CG_SHARE_NONE; - top->cg_flags = 0; - - return (top); -} - static int smp_topo_addleaf(struct cpu_group *parent, struct cpu_group *child, int share, int count, int flags, int start) @@ -881,6 +882,18 @@ smp_rendezvous(void (*setup_func)(void *), arg); } +struct cpu_group * +smp_topo(void) +{ + static struct cpu_group *top = NULL; + + if (top != NULL) + return (top); + + top = smp_topo_none(); + return (top); +} + /* * Provide dummy SMP support for UP kernels. Modules that need to use SMP * APIs will still work using this dummy support. diff --git a/sys/sys/smp.h b/sys/sys/smp.h index 252dc9dc1cae..a8653cf8314c 100644 --- a/sys/sys/smp.h +++ b/sys/sys/smp.h @@ -88,6 +88,8 @@ struct cpu_group { typedef struct cpu_group *cpu_group_t; +extern cpu_group_t cpu_top; + /* * Defines common resources for CPUs in the group. The highest level * resource should be used when multiple are shared. @@ -146,9 +148,6 @@ int topo_analyze(struct topo_node *topo_root, int all, #define TOPO_FOREACH(i, root) \ for (i = root; i != NULL; i = topo_next_node(root, i)) -struct cpu_group *smp_topo(void); -struct cpu_group *smp_topo_alloc(u_int count); -struct cpu_group *smp_topo_none(void); struct cpu_group *smp_topo_1level(int l1share, int l1count, int l1flags); struct cpu_group *smp_topo_2level(int l2share, int l2count, int l1share, int l1count, int l1flags); @@ -165,6 +164,10 @@ extern cpuset_t hlt_cpus_mask; /* XXX 'mask' is detail in old impl */ extern cpuset_t logical_cpus_mask; #endif /* SMP */ +struct cpu_group *smp_topo(void); +struct cpu_group *smp_topo_alloc(u_int count); +struct cpu_group *smp_topo_none(void); + extern u_int mp_maxid; extern int mp_maxcpus; extern int mp_ncores; From nobody Wed Feb 11 06:15: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 4f9p864Q9cz6S15b for ; Wed, 11 Feb 2026 06:15: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 4f9p862CvNz3jjv for ; Wed, 11 Feb 2026 06:15:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770790534; 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=m3bG1pyqnk46Z8XKM/q74SX8koTLjbQ2LFMOQvbAPKQ=; b=aoxk9SDl2mrmmPUF9YHrDP4bGSmpHIBu22rd3NLtmCloy2G5rzSdL3xBU8Not5LsnHJTZt VxICIHH0EBjt5UMGqvSrH5Picl1WZ4mz0mWFt53Ek+t8KBpK8GF3o3jGoWvsZtKMLpHwaZ /KqhQdhK4uwoT55jUj4p8OtdcubG9p4X1L+sCbxhNJGQiJWeKm0fWpslNTjdpD1lo9dI1C niIHXZR+mW/yDkYnfZQi2b6hT9qoOGbYv3Z6WT/K7AhR4XGudJEbwK4qOgLsBQNT03O85N NK6BnQgSdGmVUXkk3HUcdCOB3Dd+6oeqLHVfhDyuyfKAAX+AM6VYIpqu4ewOIQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770790534; a=rsa-sha256; cv=none; b=TMtjoPjockldKw6HvoBsXQ1KEc7GI4y2H+zfiWeK+rcOUhU61Fc9ue241bw6XgoOrAo8r+ X3RCKrxC+ueQgXLA9u1wIES8vQibO5LUEe9unQE3yE5sergJD7xIGuDLOCmN8LRSgPBhqy sAuAQtZ735I4aNPm1iFCEB42u0VSv7hT0i5qbtlN6yAmRoZ+tTzhjy4Pmb1myFR1bUeXfM B8vSqhFTuIGiijBeVY3N2vkPEL2NZz7t8UmbLT3VCnZP+tPqifK2Z25szT2rpiPPAHR/pK dhFxoBQNHRXacgFaXEbhYm5mDASZ7eTUp9XAR7llNpjbPX7xEvNSDxdVtN6xFQ== 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=1770790534; 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=m3bG1pyqnk46Z8XKM/q74SX8koTLjbQ2LFMOQvbAPKQ=; b=AumKrx/BEs/Y85SeLhD8WPIaiAx2Sfo8kC0PyGPbWbtaw3lvjnWP6euGqV2scUb77k+W9w sV+J+oV4YT9nmoaPwu5JyAn8V94mLE13fxguYpCSZsxWY55kINzPnwFfFfUbAOA4PfOReP NJAC3FdlR2jGCMRdkNvHu/7YBwbgFjrM65AeyCOjYhDhPn7Xiwot+DcLkWqz7Gh3SLkErI ZJegDzZT9I0w13yk5e0lqiMIa5dMYa6gQ3Y2lMoC83WWLJjB1RzH69Max5hkJdE/QrhGvr eoY9oXMZhfNg0WaXGGLrL6SCCF9TqYPsMM863rsYzGq3yndZ5h8GvmNgaEjH7w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9p8613V3zdgV for ; Wed, 11 Feb 2026 06:15:34 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 341bc by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 06:15:34 +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: 238bf5ebf684 - releng/14.4 - diff: Fix integer overflows in Stone algorithm 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: 238bf5ebf68429654caea62f00cb307d37c2a6bb Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 06:15:34 +0000 Message-Id: <698c1e86.341bc.7b95414a@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=238bf5ebf68429654caea62f00cb307d37c2a6bb commit 238bf5ebf68429654caea62f00cb307d37c2a6bb Author: Dag-Erling Smørgrav AuthorDate: 2026-02-05 14:39:43 +0000 Commit: Colin Percival CommitDate: 2026-02-11 06:14:04 +0000 diff: Fix integer overflows in Stone algorithm Fix integer overflows that may occur when the context window is very large and add tests to exercise those conditions. Approved by: re (cperciva) PR: 267032 MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: thj, kevans Differential Revision: https://reviews.freebsd.org/D55110 (cherry picked from commit 5fc739eb5949620da911db2f87ca8faedc549d3a) (cherry picked from commit 237fd8dd96979412dd65ce95032aa9957463d069) --- usr.bin/diff/diffreg.c | 32 +++++++++++++++++++++----------- usr.bin/diff/tests/diff_test.sh | 29 +++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+), 11 deletions(-) diff --git a/usr.bin/diff/diffreg.c b/usr.bin/diff/diffreg.c index 2635c95daf6e..d4d7d6e1c9d7 100644 --- a/usr.bin/diff/diffreg.c +++ b/usr.bin/diff/diffreg.c @@ -79,6 +79,7 @@ #include #include #include +#include #include #include #include @@ -1031,7 +1032,7 @@ change(char *file1, FILE *f1, char *file2, FILE *f2, int a, int b, int c, int d, { static size_t max_context = 64; long curpos; - int i, nc; + int dist, i, nc; const char *walk; bool skip_blanks, ignore; @@ -1095,8 +1096,9 @@ proceed: */ print_header(file1, file2); anychange = 1; - } else if (a > context_vec_ptr->b + (2 * diff_context) + 1 && - c > context_vec_ptr->d + (2 * diff_context) + 1) { + } else if (!ckd_add(&dist, diff_context, diff_context) && + a - context_vec_ptr->b - 1 > dist && + c - context_vec_ptr->d - 1 > dist) { /* * If this change is more than 'diff_context' lines from the * previous change, dump the record and reset it. @@ -1476,10 +1478,14 @@ dump_context_vec(FILE *f1, FILE *f2, int flags) return; b = d = 0; /* gcc */ - lowa = MAX(1, cvp->a - diff_context); - upb = MIN((int)len[0], context_vec_ptr->b + diff_context); - lowc = MAX(1, cvp->c - diff_context); - upd = MIN((int)len[1], context_vec_ptr->d + diff_context); + if (ckd_sub(&lowa, cvp->a, diff_context) || lowa < 1) + lowa = 1; + if (ckd_add(&upb, context_vec_ptr->b, diff_context) || upb > (int)len[0]) + upb = (int)len[0]; + if (ckd_sub(&lowc, cvp->c, diff_context) || lowc < 1) + lowc = 1; + if (ckd_add(&upd, context_vec_ptr->d, diff_context) || upd > (int)len[1]) + upd = (int)len[1]; printf("***************"); if (flags & (D_PROTOTYPE | D_MATCHLAST)) { @@ -1579,10 +1585,14 @@ dump_unified_vec(FILE *f1, FILE *f2, int flags) return; b = d = 0; /* gcc */ - lowa = MAX(1, cvp->a - diff_context); - upb = MIN((int)len[0], context_vec_ptr->b + diff_context); - lowc = MAX(1, cvp->c - diff_context); - upd = MIN((int)len[1], context_vec_ptr->d + diff_context); + if (ckd_sub(&lowa, cvp->a, diff_context) || lowa < 1) + lowa = 1; + if (ckd_add(&upb, context_vec_ptr->b, diff_context) || upb > (int)len[0]) + upb = (int)len[0]; + if (ckd_sub(&lowc, cvp->c, diff_context) || lowc < 1) + lowc = 1; + if (ckd_add(&upd, context_vec_ptr->d, diff_context) || upd > (int)len[1]) + upd = (int)len[1]; printf("@@ -"); uni_range(lowa, upb); diff --git a/usr.bin/diff/tests/diff_test.sh b/usr.bin/diff/tests/diff_test.sh index 2efb2a844078..453d82a4a3f3 100755 --- a/usr.bin/diff/tests/diff_test.sh +++ b/usr.bin/diff/tests/diff_test.sh @@ -24,6 +24,7 @@ atf_test_case functionname atf_test_case noderef atf_test_case ignorecase atf_test_case dirloop +atf_test_case verylong simple_body() { @@ -376,6 +377,32 @@ dirloop_body() diff -r a b } +bigc_head() +{ + atf_set "descr" "Context diff with very large context" +} +bigc_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 +} + +bigu_head() +{ + atf_set "descr" "Unified diff with very large context" +} +bigu_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_init_test_cases() { atf_add_test_case simple @@ -403,4 +430,6 @@ 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 } From nobody Wed Feb 11 06:15: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 4f9p873LYlz6S15c for ; Wed, 11 Feb 2026 06:15: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 4f9p871v1Kz3hy8 for ; Wed, 11 Feb 2026 06:15:35 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770790535; 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=CjAzUBKUPsO9slguk9ZeH41pS3Q9tsU3mkfFuG1huZg=; b=tdaXjW6F5b4NEa9UpAHfL9/K+CfCEepJ/AL5ijuVGcmBeyHaW7e/vHOLa/Q5To2b+Wgk5o DaS9Wy/wRx3iMvzbBlheHOolDxtLJB4qXTIK6FckR/UZC4xTFWXDDZSmknR1P64xrMhXxm MQAsbkrFQLv3TGjn/coFcHHlfL+J4cIx12wpQfPDdsiZ3Y24/RFU92Sw7vz8c78g+9o2Ds hNywlKsIXZpfCY7xBe+mS87U0GNc8ylowGwlZmz7yOo5Zn7ytKVhBbnvtacaBvsL9ZxLA7 d1DexSPis5yyCtobxpQaTpodjsPrtUQxR69MFUGQH/R2/uRGNeDN0tBlksw3TA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770790535; a=rsa-sha256; cv=none; b=IGrPjvwQXYxhldP5dhJNPXgOpd6S8pE8OZA3jJlStcfhN9Gy2lqIAkylTSavWJciAYMQhC 72xCZGA2DllKQFlBEiuij4cu73BSo4kkUEPYOqz97dAICTsIATKCDfbDK0QN1spffcUdsd 5hecPIiKQ2RfoenmZ9bwcSBsmaZgQW49EaVZ4SX82grScfU3j+spU5Rx6OzIH54Po9LLgM JyOV67Oco/eBVwdMfPKww4y167JM8sRl4O0BHzk75GPhxiffP3tI6jN2gqd50lx0l0658r qTQw14tAw6EOXdA9n0Kkzaf1Bau+ZlIJPfy8D9le0fEv6uW6fpcsS0NiyXI0yA== 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=1770790535; 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=CjAzUBKUPsO9slguk9ZeH41pS3Q9tsU3mkfFuG1huZg=; b=bO52e/1XgZYCp9iy/4nFSOoGYUVS3yl4tSiTi25wWsWAutaJhGzsQdNuc7MfHxJs5TAFR/ lEVc1lQi9Qd1/80Qkp1Pi3TsGkoyn9818Cb0BJXzcu+5TT6SDxba7JxwS0X/7P74eJtSug FkOIxqXj7/eK0j73P3DjQzzgVAdkLwkPQGuQe8ht88L/zUTWYxKA//U/KqGittXy3N0W2v rwkc0yDpmvW1E+Y3gPce++WI/CPYOdrUeodIyuYtDVKSZ3Kq30CpK+UwnqVA8etiPA9GuN j/17tiLZAJ0QQjIrjcEB/gw9E5qv4vvmFiCNgS8y6ltvCwRqYO9uTRIGWtqy9Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9p871TGSzdgX for ; Wed, 11 Feb 2026 06:15:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 34313 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 06:15:35 +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: 2434f3b279a9 - releng/14.4 - diff: Add test case for pagination resource leak 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: 2434f3b279a90f9a47a963d5898eea610a94f6e0 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 06:15:35 +0000 Message-Id: <698c1e87.34313.4f3375c0@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=2434f3b279a90f9a47a963d5898eea610a94f6e0 commit 2434f3b279a90f9a47a963d5898eea610a94f6e0 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-05 14:39:47 +0000 Commit: Colin Percival CommitDate: 2026-02-11 06:14:23 +0000 diff: Add test case for pagination resource leak The pagination code leaks either processes or descriptors or both, depending on the exact version of the code you have. Add a test case which exercises this leak to facilitate fixing it. Approved by: re (cperciva) MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: thj, kevans Differential Revision: https://reviews.freebsd.org/D55111 (cherry picked from commit 270492602b9bd8b8fce4f021f055804978bf3f23) (cherry picked from commit 51c2384ce049ec92e07901cf8a84c171e5d72104) --- usr.bin/diff/tests/diff_test.sh | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/usr.bin/diff/tests/diff_test.sh b/usr.bin/diff/tests/diff_test.sh index 453d82a4a3f3..2a07535d3d86 100755 --- a/usr.bin/diff/tests/diff_test.sh +++ b/usr.bin/diff/tests/diff_test.sh @@ -403,6 +403,27 @@ bigu_body() diff -U$(((1<<31)-2)) a b } +prleak_head() +{ + atf_set "descr" "Verify that pagination does not leak resources" +} +prleak_body() +{ + local n=32 + mkdir a b + for hi in $(jot -w%02x $n 0) ; do + mkdir a/$hi b/$hi + for lo in $(jot -w%02x $n 0) ; do + echo "$hi$lo" >a/$hi/$lo + echo "$hi$lo" >b/$hi/$lo + done + done + ulimit -n 1000 + ulimit -u 1000 + atf_check diff -rul a b + atf_check diff -Astone -rul a b +} + atf_init_test_cases() { atf_add_test_case simple @@ -432,4 +453,5 @@ atf_init_test_cases() atf_add_test_case dirloop atf_add_test_case bigc atf_add_test_case bigu + atf_add_test_case prleak } From nobody Wed Feb 11 06:15: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 4f9p890Ng3z6S0vr for ; Wed, 11 Feb 2026 06:15: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 4f9p885n6Sz3kMm for ; Wed, 11 Feb 2026 06:15:36 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770790536; 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=NUcQXPbLYuJFcuXxXGiybz71yaT94JkWmBzhh6q56Ww=; b=IC4921Vnjc10HUKvPxeUTuH8lf2kAu/NvSlm3snYRD64Tk6mG4IRhRmEBpqdoxKbQcfK67 9LAKtmsZ6qGe+xXUqURCn3A9Fc01xOkKjaEdyyulG8GOBjki5u9amLIFKe/xiKCl7v9IQW jox9U71e1hvdmxHpjRYDtnPzExD0ZKLBAnD1f4cbL2gbYfbdWplimHAKJqwU0SnMFacj8/ CV5tYgJxNNO10YonQi5i1NGfDqaqmuyQXN/aC139MQtMgAVjGtFPY4gntkJnzfA99EsjDr WrXEd5h2r06h1uHHJJNzXvYeqrJSDiJvE0L+3XMOa9aWc+GLYF2xUgSNnwdCrA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770790536; a=rsa-sha256; cv=none; b=QPTI1GeyCjrpxESxFMQSEdcuKVWaixb9TnFpMEIE6e45hxJCyFYXFsDXpRj7C/aVO9WDqK sQrf4FThGdkhBOakIx6NXRdLt6/s05N6/80/ymjIhNYpc3sQMiC5U0ujG7k9HmxN9iVhWJ 13lAda9OPLBr7Z2r9Pp/wdcRp7zmaEHkKcx82R4WIFM2ThR+hU7v8ihNPaABz8arBRcG/P RH2aGsGNHhdogXY0p3zUcM86G+mE+n2jLkQJs9i02uTvHojOg35RIV2YvB4hGwbYtiezU6 jhw5a5A2otwdHyq4S79vMWeMHuf1phoaPrfmg9jJfNRubSnQyixswtTitozT1Q== 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=1770790536; 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=NUcQXPbLYuJFcuXxXGiybz71yaT94JkWmBzhh6q56Ww=; b=VvtkDDn1bKq5DUMgBY1xgE+0lxnUJem92NKXVK2wkh/lH2fU8l6lM7uTvt9DtFWln1NqRG 3+Plf7aaZy+helNqVM+EFb04uzkTD8c70kANMq14IdOB4ov6ccId7mdx+xua2aASSgL3gR uXP/eRXVivLQF9BUw/KpSTvZIw0NH4p1RkphZGb8G3a+kNJqdkBHVncKRSUfEs8VG6KUC0 MIzi6fz6pRXueb0w9aTE0Pg7NXfeGIUe0UsG1cNjDw9PVRbgS+8zgpE6/ZGt6M5pdFyo1p 87r7zg3flbnYTrxnmWTO/cPwPpcSanNaWMiq5gKJiFxNZxJP68WbDMeXnl6nyQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9p882G26zdRR for ; Wed, 11 Feb 2026 06:15:36 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 34a1d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 06:15:36 +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: 6761e555376e - releng/14.4 - diff: Fix pagination leak 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: 6761e555376e375f89fe36c72f2813f5e64a7f63 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 06:15:36 +0000 Message-Id: <698c1e88.34a1d.245c14d2@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=6761e555376e375f89fe36c72f2813f5e64a7f63 commit 6761e555376e375f89fe36c72f2813f5e64a7f63 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-05 14:39:53 +0000 Commit: Colin Percival CommitDate: 2026-02-11 06:14:26 +0000 diff: Fix pagination leak * Drop an unnecessary variable and rename pidfd to procd. * Rewinding stdout serves no purpose, so stop doing it. * Don't bother freeing memory or setting the global status right before erroring out. * Error out if dup(2) or dup2(2) fail. * In the unlikely case that our pipe is equal to stdout, we need to record that information so we don't close it when cleaning up. * Don't bother closing a descriptor before dup2(2)ing to it. * Don't forget to close the the process descriptor after reaping the child process. Approved by: re (cperciva) PR: 266592 MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: kevans, markj Differential Revision: https://reviews.freebsd.org/D55112 (cherry picked from commit c3904a7de78ca1ca15fcdf4c09f9d4be7f6fe6f5) (cherry picked from commit 144455c333dc0d3db369596038de2e3dd6113b46) --- usr.bin/diff/pr.c | 22 ++++++++++------------ usr.bin/diff/pr.h | 1 + usr.bin/diff/tests/diff_test.sh | 1 - 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/usr.bin/diff/pr.c b/usr.bin/diff/pr.c index 5dedf689351c..20869e494d4a 100644 --- a/usr.bin/diff/pr.c +++ b/usr.bin/diff/pr.c @@ -45,7 +45,6 @@ struct pr * start_pr(char *file1, char *file2) { int pfd[2]; - int pr_pd; pid_t pid; char *header; struct pr *pr; @@ -55,13 +54,10 @@ start_pr(char *file1, char *file2) xasprintf(&header, "%s %s %s", diffargs, file1, file2); signal(SIGPIPE, SIG_IGN); fflush(stdout); - rewind(stdout); if (pipe(pfd) == -1) err(2, "pipe"); - switch ((pid = pdfork(&pr_pd, PD_CLOEXEC))) { + switch ((pid = pdfork(&pr->procd, PD_CLOEXEC))) { case -1: - status |= 2; - free(header); err(2, "No more processes"); case 0: /* child */ @@ -73,21 +69,23 @@ start_pr(char *file1, char *file2) execl(_PATH_PR, _PATH_PR, "-h", header, (char *)0); _exit(127); default: - /* parent */ - if (pfd[1] != STDOUT_FILENO) { - pr->ostdout = dup(STDOUT_FILENO); - dup2(pfd[1], STDOUT_FILENO); + if (pfd[1] == STDOUT_FILENO) { + pr->ostdout = STDOUT_FILENO; + } else { + if ((pr->ostdout = dup(STDOUT_FILENO)) < 0 || + dup2(pfd[1], STDOUT_FILENO) < 0) { + err(2, "stdout"); + } close(pfd[1]); } close(pfd[0]); - rewind(stdout); free(header); pr->kq = kqueue(); if (pr->kq == -1) err(2, "kqueue"); pr->e = xmalloc(sizeof(struct kevent)); - EV_SET(pr->e, pr_pd, EVFILT_PROCDESC, EV_ADD, NOTE_EXIT, 0, + EV_SET(pr->e, pr->procd, EVFILT_PROCDESC, EV_ADD, NOTE_EXIT, 0, NULL); if (kevent(pr->kq, pr->e, 1, NULL, 0, NULL) == -1) err(2, "kevent"); @@ -106,7 +104,6 @@ stop_pr(struct pr *pr) fflush(stdout); if (pr->ostdout != STDOUT_FILENO) { - close(STDOUT_FILENO); dup2(pr->ostdout, STDOUT_FILENO); close(pr->ostdout); } @@ -114,6 +111,7 @@ stop_pr(struct pr *pr) err(2, "kevent"); wstatus = pr->e[0].data; close(pr->kq); + close(pr->procd); free(pr); if (WIFEXITED(wstatus) && WEXITSTATUS(wstatus) != 0) errx(2, "pr exited abnormally"); diff --git a/usr.bin/diff/pr.h b/usr.bin/diff/pr.h index 2ff5949f282f..0a1275cfeab5 100644 --- a/usr.bin/diff/pr.h +++ b/usr.bin/diff/pr.h @@ -28,6 +28,7 @@ struct pr { int ostdout; + int procd; int kq; struct kevent *e; }; diff --git a/usr.bin/diff/tests/diff_test.sh b/usr.bin/diff/tests/diff_test.sh index 2a07535d3d86..b499bb709cdd 100755 --- a/usr.bin/diff/tests/diff_test.sh +++ b/usr.bin/diff/tests/diff_test.sh @@ -421,7 +421,6 @@ prleak_body() ulimit -n 1000 ulimit -u 1000 atf_check diff -rul a b - atf_check diff -Astone -rul a b } atf_init_test_cases() From nobody Wed Feb 11 06:15: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 4f9p8B0nXdz6S0vs for ; Wed, 11 Feb 2026 06:15: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 4f9p893jD6z3jpS for ; Wed, 11 Feb 2026 06:15:37 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770790537; 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=qxsx4JfrpJswASUaO1NxazwWItf0HoYeQQRsHd3KFQQ=; b=NPXjEpZqbeaLMcerQRB84xhXH0JNmMflpk2M+BisJNpukQBrGPmazYsNTi72oQlnusMnLK w+pOzhBEbrkwsi4K65BOH5kiRK1P1undbUdqBPIOcG/u4aMHCmbNVGjJW6kYGQe+xUZ6FU A/Gpk8VRaNkeg52qfa/IKKHdSBPUo4SOF1i4UH1f7pw7hkdc9iiJLtdbtNRJmaDOUMwQ/d 8w/2PX3+OQIWUsOFNkIkrGAuwfJ9PBPK9H4omrXh+8dxqCbvWHI6oc7f9hauSvP81/wIj/ pOSup+Th8Whvqld06Y9EfsEuy4vL8y57/sxs5f6LGbiHr2iltGtiv+Uc8ebHpA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770790537; a=rsa-sha256; cv=none; b=RCSXtwGY20N4IVKgd6MaQipqzH2pm4tFoXwOw5QL19Hypuh6qSxROX4y9mozRGdz338Pw0 /347NPHYc/HR5uzvajhdPUmQTF+Jipm5M9UDsbhnF6t8n2/ZyGiKw+7W0qI6+NHUP56a9T c4RhAYQRYdKazd/vyqG/am5NAsazV+OIDIcAkHb7hOxXLXPnULOeoyL04b3u7YKuU1kVfp loPj7guSS4mfiUzLnINQ8HaMUVoVaH6KBBqzrv0YyUTWO3PlZAkmV/H6zZLKTZZyMAZ35k J6UhwY4LQjxOQUAYcqIVrsWZW1IblYWcQEbQJ0PqhrkPCu40Yc8sqv6c+Qfiog== 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=1770790537; 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=qxsx4JfrpJswASUaO1NxazwWItf0HoYeQQRsHd3KFQQ=; b=H/4lkFNTP+vXKQrQZRcr6lf80eMiIm4mHZSkjX03NytliSC9DFjwh4lTspYsmwKgRTY0Fa Q/0ZayzwOXxPmUN8Ej5fRSVoQeesSx5xQndnqGFyDfEW3ULevFcDZKLY42xKOwRu854TE7 IlmE0lOtVjG8cxaCfEUWrOY1AglDYWC0mPUg2/LZXyo4wQzC3kLQ4X3lSQKkzTduAbcpOI kvN17P16rLEswB33WQ3VcQuQX8PPgwx2ruve/gt+FpuIzJ2eJ9usryRbc9ZJF1+FwmycvK WUND4/JLnOS+PD7i6ujx0fZ8coiabc7aLZAZqdCldCDcvBHnWpgBtbvRMTZ9xw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9p8935zXzf5y for ; Wed, 11 Feb 2026 06:15:37 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 33b63 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 06:15:37 +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: b4139147bbb7 - releng/14.4 - diff: Don't compare a file or directory to itself 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: b4139147bbb7e368316bee86ffac0fdb79319839 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 06:15:37 +0000 Message-Id: <698c1e89.33b63.695d5275@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=b4139147bbb7e368316bee86ffac0fdb79319839 commit b4139147bbb7e368316bee86ffac0fdb79319839 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-05 14:39:57 +0000 Commit: Colin Percival CommitDate: 2026-02-11 06:14:30 +0000 diff: Don't compare a file or directory to itself While here, stop abusing struct dirent for something we don't even need to store. Approved by: re (cperciva) PR: 254455 MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: thj, kevans Differential Revision: https://reviews.freebsd.org/D55113 (cherry picked from commit 590126789c841d80655869bc075c8980c173dd1c) diff: Fix build rc must be defined first. Fixes: 590126789c84 MFC after: 1 week X-MFC with: 590126789c84 (cherry picked from commit ee44ab936e84bacaa49847d36aabdf280f9fecce) (cherry picked from commit 7f412c6f88edc3aafb53a83f1743ad49da4679a9) --- usr.bin/diff/diffdir.c | 16 ++++++++-------- usr.bin/diff/diffreg.c | 3 +++ usr.bin/diff/tests/diff_test.sh | 19 +++++++++++++++++++ 3 files changed, 30 insertions(+), 8 deletions(-) diff --git a/usr.bin/diff/diffdir.c b/usr.bin/diff/diffdir.c index 9ca9b5e1774e..7ea07645d751 100644 --- a/usr.bin/diff/diffdir.c +++ b/usr.bin/diff/diffdir.c @@ -42,8 +42,6 @@ static void diffit(struct dirent *, char *, size_t, struct dirent *, char *, size_t, int); static void print_only(const char *, size_t, const char *); -#define d_status d_type /* we need to store status for -l */ - struct inode { dev_t dev; ino_t ino; @@ -238,6 +236,8 @@ static void diffit(struct dirent *dp, char *path1, size_t plen1, struct dirent *dp2, char *path2, size_t plen2, int flags) { + int rc; + flags |= D_HEADER; strlcpy(path1 + plen1, dp->d_name, PATH_MAX - plen1); @@ -259,7 +259,6 @@ diffit(struct dirent *dp, char *path1, size_t plen1, struct dirent *dp2, flags |= D_EMPTY1; memset(&stb1, 0, sizeof(stb1)); } - if (lstat(path2, &stb2) != 0) { if (!Nflag || errno != ENOENT) { warn("%s", path2); @@ -316,7 +315,6 @@ diffit(struct dirent *dp, char *path1, size_t plen1, struct dirent *dp2, flags |= D_EMPTY1; memset(&stb1, 0, sizeof(stb1)); } - if (stat(path2, &stb2) != 0) { if (!Nflag || errno != ENOENT) { warn("%s", path2); @@ -329,6 +327,8 @@ diffit(struct dirent *dp, char *path1, size_t plen1, struct dirent *dp2, if (stb1.st_mode == 0) stb1.st_mode = stb2.st_mode; } + if (stb1.st_dev == stb2.st_dev && stb1.st_ino == stb2.st_ino) + return; if (S_ISDIR(stb1.st_mode) && S_ISDIR(stb2.st_mode)) { if (rflag) diffdir(path1, path2, flags); @@ -338,12 +338,12 @@ diffit(struct dirent *dp, char *path1, size_t plen1, struct dirent *dp2, return; } if (!S_ISREG(stb1.st_mode) && !S_ISDIR(stb1.st_mode)) - dp->d_status = D_SKIPPED1; + rc = D_SKIPPED1; else if (!S_ISREG(stb2.st_mode) && !S_ISDIR(stb2.st_mode)) - dp->d_status = D_SKIPPED2; + rc = D_SKIPPED2; else - dp->d_status = diffreg(path1, path2, flags, 0); - print_status(dp->d_status, path1, path2, ""); + rc = diffreg(path1, path2, flags, 0); + print_status(rc, path1, path2, ""); } /* diff --git a/usr.bin/diff/diffreg.c b/usr.bin/diff/diffreg.c index d4d7d6e1c9d7..954e0542b576 100644 --- a/usr.bin/diff/diffreg.c +++ b/usr.bin/diff/diffreg.c @@ -347,6 +347,9 @@ diffreg(char *file1, char *file2, int flags, int capsicum) goto closem; } + if (stb1.st_dev == stb2.st_dev && stb1.st_ino == stb2.st_ino) + goto closem; + if (lflag) pr = start_pr(file1, file2); diff --git a/usr.bin/diff/tests/diff_test.sh b/usr.bin/diff/tests/diff_test.sh index b499bb709cdd..d28eeba9604d 100755 --- a/usr.bin/diff/tests/diff_test.sh +++ b/usr.bin/diff/tests/diff_test.sh @@ -423,6 +423,24 @@ prleak_body() atf_check diff -rul a b } +same_head() +{ + atf_set "descr" "Don't diff a file or directory with itself" +} +same_body() +{ + local n=256 + mkdir a + for hi in $(jot -w%02x $n 0) ; do + mkdir a/$hi + for lo in $(jot -w%02x $n 0) ; do + echo "$hi$lo" >a/$hi/$lo + done + done + ln -s a b + atf_check timeout 1s diff -rqs a b +} + atf_init_test_cases() { atf_add_test_case simple @@ -453,4 +471,5 @@ atf_init_test_cases() atf_add_test_case bigc atf_add_test_case bigu atf_add_test_case prleak + atf_add_test_case same } From nobody Wed Feb 11 06:15: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 4f9p8B6BXDz6S0xW for ; Wed, 11 Feb 2026 06:15: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 4f9p8B4P8vz3kQN for ; Wed, 11 Feb 2026 06:15:38 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770790538; 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=DB3zwc/GEVfTYR+ZUvp9bHrEqQPuC++podFLO5t7K0o=; b=QKda0a/ph+Shrrr2TNUhN10x/U0tKXETZM1pPqiobNZKydj2smzp3Fp7vt0zA2JvPDKCnf bWjQmBs+xMo0Gs6EWXlEV+FKDrZudUK+PMHe9CdeQd6A0OopuAyCq39ShEK0VSJbVgU1cl l5N5lAVdlGW+7rl/HEdu5OeXsq5HnZsnweMlxwznxF2VFh6OqelXrh6FtgB/h8TR8jdk/j cAXCZydlxd+cEoxpPCHVohe7jM1S0n+ILV5j05gWNIGZofpZjgz9Gs0wI3Ikbrc7YHoO/C iVTQ1AD+XpNMYf/3ijUuIui2KXvcEkP6KluFfQxELf8WV5rFU5hINjMwxCNisQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770790538; a=rsa-sha256; cv=none; b=KdLAzgapuO4f0DkxqOsVQG856GBFWQifD7Zuid8/MvVaBQAeCUViMM9bczCqtUOV3JAQjw UbZFAmvHViBHb7hiFlD2lc8PBIdNbPQiFFednGlFPa2dDJk2M16Xbzv9AP/1SffPc5+GBq HgVqcRALFgExrvdWgan8kOzJU3oiq8uJGPIKHM/aCypGBUXqgefaQK87Wg223sf1kjzMV4 ZMdz+w/2FLQAIm6M8oSiTyfa30X3JJGoKJbNRuzMdzHcNa4EZ+0rO4EVcaFbjTtaMNdpwp yUkOwqEy1B8ErMd4KTIsUlZwe+2MiM+ZNuqM0Eg7PTlzIyXfpmL8tDGIFaUltQ== 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=1770790538; 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=DB3zwc/GEVfTYR+ZUvp9bHrEqQPuC++podFLO5t7K0o=; b=qfrV5XDUBMRw7rqL+tr9QAI5YLdlq7MHvbkIELCZ3YPRAAuYPzYlVlROOWpD0OORAQayYv 38UuHL1OXKa0hHIb4//q2Fh2kWP1/Yee6x8ALdhBtB6m/KDV90V9+mxUDwhEkvFqbC9tk+ 5WuV9oPUuAXF/logcqpOK0hgeg0eHxg30QBDqXXiga0qVoN6pIgvCPQH9DQB5mUvUDJ8KM h4Iy1zmmUYF3DSRbS3zCqdxABTcTvztP34SN/Ef1FcjWnR1yXVWeQBvP6AYq86rD4j4iZQ iEbFNurgpWf0Pfamgj350VgHw/C5sIQOng0aKRAG0eWPo0yQ9cpRge3Kb+tznQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9p8B3sLNzdKW for ; Wed, 11 Feb 2026 06:15:38 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 34ace by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 06:15:38 +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: 7cf7c711d979 - releng/14.4 - diff: Correctly declare 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: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.4 X-Git-Reftype: branch X-Git-Commit: 7cf7c711d979fe06e58acade08e6b5e5f460e4c8 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 06:15:38 +0000 Message-Id: <698c1e8a.34ace.f5def86@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=7cf7c711d979fe06e58acade08e6b5e5f460e4c8 commit 7cf7c711d979fe06e58acade08e6b5e5f460e4c8 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-05 16:21:22 +0000 Commit: Colin Percival CommitDate: 2026-02-11 06:14:46 +0000 diff: Correctly declare tests Approved by: re (cperciva) Sponsored by: Klara, Inc. Fixes: 5fc739eb5949 ("diff: Fix integer overflows in Stone algorithm") Fixes: 270492602b9b ("diff: Add test case for pagination resource leak") Fixes: 590126789c84 ("diff: Don't compare a file or directory to itself") (cherry picked from commit 157d6664aeb815db3b758bd3038fd1512a0f4e2c) (cherry picked from commit b8bcf04d6dd37308834ee258230082ae6875b1f3) --- usr.bin/diff/tests/diff_test.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/usr.bin/diff/tests/diff_test.sh b/usr.bin/diff/tests/diff_test.sh index d28eeba9604d..fb6080ee6916 100755 --- a/usr.bin/diff/tests/diff_test.sh +++ b/usr.bin/diff/tests/diff_test.sh @@ -24,7 +24,10 @@ atf_test_case functionname atf_test_case noderef atf_test_case ignorecase atf_test_case dirloop -atf_test_case verylong +atf_test_case bigc +atf_test_case bigu +atf_test_case prleak +atf_test_case same simple_body() { From nobody Wed Feb 11 06:15: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 4f9p8C6j9Vz6S0sJ for ; Wed, 11 Feb 2026 06:15: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 4f9p8C5Gtlz3kQh for ; Wed, 11 Feb 2026 06:15:39 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770790539; 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=4JtS2OU/zAJBHld4ugZPowgsg/WH/y5KDvrwKl7Z+k0=; b=lRvpfVVa/5BOMkVwEzUFO69s8SvojHFWVzdYE11vhbJjuIR+wLNuPAubUGgxcGnOJsmh6r /2AIC9IbTWHd6MTC5xNW5gMiiP41sojsdcbhg3paoHPF3WIJWXB3pTLAxPzMHSinu6micu d1JsTqVgrWN0XSlWg7EHDYoYtjNkPVaKkoKj5yDCMXBz2rpul+0KyVZAi74bERPBATmN2E NlmJfaUZAsf5s+g33gRCM8LqZUL3XPFV4mQ6091jf/f+8qGI21gRmwoDeI7XnM4/sl6l7e xEJ4rXnQOJNaRnDVPjF+2ypLIqfbDB1WvcQiZ9a1QmcTWN5AiZT23oZIqj5Owg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770790539; a=rsa-sha256; cv=none; b=Rw4OTgZOIduGxQa7bZkye9dxDgEiIkq2o4zuMcRtphWVPVHgdIA8RTwU/fUi/za4wHp2uo 5kHng3APsVykx8BKwL6HMJ6svN497Cli13hUgjU3WEx5jIpUk51OvFD+xy9iJAHAiy4gCr 4ecrH4XVApm7Xg3SSnWjwNm75gpSiRkuQ7QDGbbDXSHdhqLB87zRpX5fB1Ghzj40yaOF2d JbKSYFnb/ste9cSJK/gDGXsa2NjvFJ2+mpXifkjeSpxY0ym9EJOiJBiNZebGUYrDH2Nkqj t1n5i9TrLdResrIL/Zi0mKpLiRhh5Bs2vXv/sqgmMds0KyEJi0+YZx7IIpN8iQ== 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=1770790539; 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=4JtS2OU/zAJBHld4ugZPowgsg/WH/y5KDvrwKl7Z+k0=; b=PzPhe9/Is1GTYJR3GE8hjBiX78L1oX00uYyC7LHxM/+7qaoW3dNC+tDrDjMgynhp80nCAk 7CAyAGntxPHWrrJegM6rYU0q5BaJo4yzc5T4I3kqLpHqTBbfdwTROo8pTAWk7/iXpwGcB4 3vOILcN97KRgnOJg3/qyOc/hbTSCxGz6m5jOQ7fQtWxGPP3N7GeULpN4wK5etcT1qfZCm7 zVsg0/IDDBcp+dUhu/ey366Vzoey//f91zgOpPIlcDg0+V3RBH89Eagsq4Y6w33x8uWqXw PcMxjMvm+PswFr0y/85uJBae2o2qt0ohmwMtOeGfh2ogOUVtIZA9pUuoLiPQog== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9p8C4hn6zdhm for ; Wed, 11 Feb 2026 06:15:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 33b68 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 06:15:39 +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: 3c10ed2ba3aa - releng/14.4 - diff: Report I/O errors in Stone algorithm 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: 3c10ed2ba3aaef386e57e6078d6d8421429a55d7 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 06:15:39 +0000 Message-Id: <698c1e8b.33b68.58cd342e@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=3c10ed2ba3aaef386e57e6078d6d8421429a55d7 commit 3c10ed2ba3aaef386e57e6078d6d8421429a55d7 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-05 17:41:56 +0000 Commit: Colin Percival CommitDate: 2026-02-11 06:14:50 +0000 diff: Report I/O errors in Stone algorithm In the legacy Stone algorithm, we do a first pass over the files to check if they're identical before we start diffing them. That code would correctly set the exit status if an I/O error was encountered, but would not emit an error message. Do so. Approved by: re (cperciva) PR: 292198 MFC after: 1 week Sponsored by: Klara, Inc. Reviewed by: thj Differential Revision: https://reviews.freebsd.org/D55125 (cherry picked from commit f8c12e6e3874cdd353fb16785da6f4e7eb134cd9) (cherry picked from commit 37ceb8794c22d88a41e261d23d347bc7ac08b2c8) --- usr.bin/diff/diffreg.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/usr.bin/diff/diffreg.c b/usr.bin/diff/diffreg.c index 954e0542b576..6ade8bfb8237 100644 --- a/usr.bin/diff/diffreg.c +++ b/usr.bin/diff/diffreg.c @@ -381,6 +381,10 @@ diffreg(char *file1, char *file2, int flags, int capsicum) break; default: /* error */ + if (ferror(f1)) + warn("%s", file1); + if (ferror(f2)) + warn("%s", file2); rval = D_ERROR; status |= 2; goto closem; @@ -474,9 +478,9 @@ files_differ(FILE *f1, FILE *f2, int flags) return (0); for (;;) { - i = fread(buf1, 1, sizeof(buf1), f1); - j = fread(buf2, 1, sizeof(buf2), f2); - if ((!i && ferror(f1)) || (!j && ferror(f2))) + if ((i = fread(buf1, 1, sizeof(buf1), f1)) == 0 && ferror(f1)) + return (-1); + if ((j = fread(buf2, 1, sizeof(buf2), f2)) == 0 && ferror(f2)) return (-1); if (i != j) return (1); From nobody Wed Feb 11 06:15: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 4f9p8F2xMLz6S139 for ; Wed, 11 Feb 2026 06:15: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 4f9p8D5tf9z3jl0 for ; Wed, 11 Feb 2026 06:15:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770790540; 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=arPHIXN99w1ULr7/0cwWOherHl2SW4pBo9inlRMDVI0=; b=Aq2IM2J4k21eEhoOkCv0qeBR1UqN2EaIfAoxC8VcHd2V6fpFr/tTIH27VnROWEBoI5RXVm wXgiw6bXkmnbn822BXvgk9E/aWTp5lo7Tw3/OPXksPUTv7sRbb5AbcHG4zQyitnNO8dARn nygMI1EfYlHK+ntEAvtiNMjVB6zdiYRfUbzS60ESEOcz5qEr6heudyRFTdm0jwi0AO1WlW Hjq8hk5l39uVDiV+Ul+2lsRCGgvR/yAYY8ZoHxTMfF102LYF7XV+PQIITAnY/3NeDPYccq 3O0Vs9X6mkredL8uckEPTc6Uk6aUWNHXwJELSr6u3L7DAC4yOFHc3zbfLG4jaw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770790540; a=rsa-sha256; cv=none; b=frmSkbRUTYtRFHp2CPwjf0nQj8uHCflC2IyvxOsza2AuCloLTBAqHHEzOxqhHLzc+d4lfU QzdrzqtOIuVsP0VGqv7IGf0zggwsafimJZ4yhepTuw9k4zi6b3RNWnoEiUpbYM98j9DtRw DDP2TSVwtNQQBl4gJHmw74VZB2AU67yTnjWKM9k+Kw6XRi8WDX3AGAxn17WAyvwCwRFhrD bOwFCcwyl//SDL4uEiiU6FiJL/1o11cPar1tbUp2sYe4asUkAotDi9cOwV6vAyIqHvLUgL 0gsCFI2YQ22Usfey54Hdy3CYhIihNDoKzWvJ7MAdluI72LOHNGGJYcFYLm/0jw== 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=1770790540; 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=arPHIXN99w1ULr7/0cwWOherHl2SW4pBo9inlRMDVI0=; b=ULtXBRtVuo8Q8DZsCbIL1iuAExieZJpJ6LfqFxd6Y1FBwV4e2TrSjzBRf0rDFVrA5fK4wH 6UYK/1kyJ+ONsVWj92xoEifnRXG5ZrR5UERsLgzOvEej73sbpzmeWgHqBUplRS13wX1jhv LcxTdhJ2and0QFNvd/Wh6VFEf/cROZ/t6s3o2TRaF7PFSkCF1SHKjjgo4oPNynzafVET+1 9TJcr1wnJoeyrjv3/JTPlcwlH5hI5QvMQ4pZYgwcyZCd7LEQZVX9Q6tQ0ogJOrPCl1uprq 58cWWgAk4ktx6KOPEiNzzDnWDZ7wBMRNATRCDMnpYxWA45W9aaD6UUfmp8F3Dw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9p8D5QLVzdgZ for ; Wed, 11 Feb 2026 06:15:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 33847 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 06:15:40 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Jose Luis Duran From: Colin Percival Subject: git: 4690a369ff6d - releng/14.4 - Adapt changes from blocklist 2026-02-07 (10a907f) 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: 4690a369ff6da368872eb7ac8664fb81b202ad5b Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 06:15:40 +0000 Message-Id: <698c1e8c.33847.3d4b3c3@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=4690a369ff6da368872eb7ac8664fb81b202ad5b commit 4690a369ff6da368872eb7ac8664fb81b202ad5b Author: Jose Luis Duran AuthorDate: 2026-02-10 02:05:42 +0000 Commit: Colin Percival CommitDate: 2026-02-11 06:14:53 +0000 Adapt changes from blocklist 2026-02-07 (10a907f) Also apply the fix from PR 258411. This is a direct commit to stable/14, as blacklist has been renamed to blocklist upstream. Approved by: re (cperciva) (cherry picked from commit 30c04399f2e81b8e71045fc410837461abeb2d8b) --- contrib/blocklist/bin/blacklistd.c | 29 +++++++------- contrib/blocklist/bin/blacklistd.conf.5 | 4 +- contrib/blocklist/bin/run.c | 13 +++--- contrib/blocklist/bin/support.c | 1 - contrib/blocklist/port/popenve.c | 71 +++++++++++++++++---------------- 5 files changed, 61 insertions(+), 57 deletions(-) diff --git a/contrib/blocklist/bin/blacklistd.c b/contrib/blocklist/bin/blacklistd.c index 714abcbcaf0e..ded8e684f63c 100644 --- a/contrib/blocklist/bin/blacklistd.c +++ b/contrib/blocklist/bin/blacklistd.c @@ -339,10 +339,10 @@ addfd(struct pollfd **pfdp, bl_t **blp, size_t *nfd, size_t *maxfd, exit(EXIT_FAILURE); if (*nfd >= *maxfd) { *maxfd += 10; - *blp = realloc(*blp, sizeof(**blp) * *maxfd); + *blp = reallocarray(*blp, *maxfd, sizeof(**blp)); if (*blp == NULL) err(EXIT_FAILURE, "malloc"); - *pfdp = realloc(*pfdp, sizeof(**pfdp) * *maxfd); + *pfdp = reallocarray(*pfdp, *maxfd, sizeof(**pfdp)); if (*pfdp == NULL) err(EXIT_FAILURE, "malloc"); } @@ -366,7 +366,7 @@ uniqueadd(struct conf ***listp, size_t *nlist, size_t *mlist, struct conf *c) } if (*nlist == *mlist) { *mlist += 10; - void *p = realloc(*listp, *mlist * sizeof(*list)); + void *p = reallocarray(*listp, *mlist, sizeof(*list)); if (p == NULL) err(EXIT_FAILURE, "Can't allocate for rule list"); list = *listp = p; @@ -451,8 +451,8 @@ main(int argc, char *argv[]) case 's': if (nblsock >= maxblsock) { maxblsock += 10; - void *p = realloc(blsock, - sizeof(*blsock) * maxblsock); + void *p = reallocarray(blsock, maxblsock, + sizeof(*blsock)); if (p == NULL) err(EXIT_FAILURE, "Can't allocate memory for %zu sockets", @@ -527,14 +527,15 @@ main(int argc, char *argv[]) state = state_open(dbfile, flags, 0600); if (state == NULL) state = state_open(dbfile, flags | O_CREAT, 0600); - if (state == NULL) - return EXIT_FAILURE; - - if (restore) { - if (!flush) - rules_flush(); - rules_restore(); + else { + if (restore) { + if (!flush) + rules_flush(); + rules_restore(); + } } + if (state == NULL) + exit(EXIT_FAILURE); if (!debug) { if (daemon(0, 0) == -1) @@ -556,7 +557,7 @@ main(int argc, char *argv[]) if (errno == EINTR) continue; (*lfun)(LOG_ERR, "poll (%m)"); - return EXIT_FAILURE; + exit(EXIT_FAILURE); case 0: state_sync(state); break; @@ -572,5 +573,5 @@ main(int argc, char *argv[]) update(); } state_close(state); - return 0; + exit(EXIT_SUCCESS); } diff --git a/contrib/blocklist/bin/blacklistd.conf.5 b/contrib/blocklist/bin/blacklistd.conf.5 index 70036441eb4b..e557e51a9642 100644 --- a/contrib/blocklist/bin/blacklistd.conf.5 +++ b/contrib/blocklist/bin/blacklistd.conf.5 @@ -27,7 +27,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd May 18, 2020 +.Dd January 13, 2026 .Dt BLACKLISTD.CONF 5 .Os .Sh NAME @@ -102,7 +102,7 @@ The syntax for the .Va location is: .Bd -literal -offset indent - [
|][/][:] + [
|[/]:] .Ed .Pp The diff --git a/contrib/blocklist/bin/run.c b/contrib/blocklist/bin/run.c index 5588f0198c04..e11f8b28e2ef 100644 --- a/contrib/blocklist/bin/run.c +++ b/contrib/blocklist/bin/run.c @@ -62,10 +62,10 @@ static char * run(const char *cmd, const char *name, ...) { const char *argv[20]; - size_t i; + size_t i, len; va_list ap; FILE *fp; - char buf[10240], *res; + char *line, *res; argv[0] = "control"; argv[1] = cmd; @@ -77,6 +77,7 @@ run(const char *cmd, const char *name, ...) va_end(ap); if (debug) { + char buf[2048]; size_t z; int r; @@ -97,10 +98,10 @@ run(const char *cmd, const char *name, ...) (*lfun)(LOG_ERR, "popen %s failed (%m)", controlprog); return NULL; } - if (fgets(buf, sizeof(buf), fp) != NULL) - res = strdup(buf); - else - res = NULL; + line = res = NULL; + len = 0; + if (getline(&line, &len, fp) >= 0) + res = line; pclose(fp); if (debug) (*lfun)(LOG_DEBUG, "%s returns %s", cmd, res); diff --git a/contrib/blocklist/bin/support.c b/contrib/blocklist/bin/support.c index d560d2303223..3e14fcbdc688 100644 --- a/contrib/blocklist/bin/support.c +++ b/contrib/blocklist/bin/support.c @@ -117,7 +117,6 @@ fmtydhms(char *b, size_t l, time_t t) y = t; - z = 0; o = 0; #define APPEND(a) \ if (a) { \ diff --git a/contrib/blocklist/port/popenve.c b/contrib/blocklist/port/popenve.c index 20f6b5b86b68..df57cde9d51f 100644 --- a/contrib/blocklist/port/popenve.c +++ b/contrib/blocklist/port/popenve.c @@ -45,19 +45,19 @@ __RCSID("$NetBSD: popenve.c,v 1.2 2015/01/22 03:10:50 christos Exp $"); #endif #endif /* LIBC_SCCS and not lint */ -#include -#include +#include #include +#include #include #include +#include #include #include #include #include #include #include -#include #ifdef __weak_alias __weak_alias(popen,_popen) @@ -71,8 +71,8 @@ static struct pid { int fd; #endif pid_t pid; -} *pidlist; - +} *pidlist; + #ifdef _REENTRANT static rwlock_t pidlist_lock = RWLOCK_INITIALIZER; #endif @@ -109,11 +109,25 @@ pdes_get(int *pdes, const char **type) #endif } - if ((cur = malloc(sizeof(*cur))) != NULL) - return cur; + if ((cur = malloc(sizeof(*cur))) != NULL) { + if (**type == 'r') { + cur->fp = fdopen(pdes[0], *type); +#ifdef _REENTRANT + cur->fd = pdes[0]; +#endif + } else { + cur->fp = fdopen(pdes[1], *type); +#ifdef _REENTRANT + cur->fd = pdes[1]; +#endif + } + if (cur->fp != NULL) + return cur; + } serrno = errno; (void)close(pdes[0]); (void)close(pdes[1]); + free(cur); errno = serrno; return NULL; } @@ -123,16 +137,6 @@ pdes_child(int *pdes, const char *type) { struct pid *old; - /* POSIX.2 B.3.2.2 "popen() shall ensure that any streams - from previous popen() calls that remain open in the - parent process are closed in the new child process. */ - for (old = pidlist; old; old = old->next) -#ifdef _REENTRANT - (void)close(old->fd); /* don't allow a flush */ -#else - (void)close(fileno(old->fp)); /* don't allow a flush */ -#endif - if (type[0] == 'r') { (void)close(pdes[0]); if (pdes[1] != STDOUT_FILENO) { @@ -148,31 +152,30 @@ pdes_child(int *pdes, const char *type) (void)close(pdes[0]); } } + + /* POSIX.2 B.3.2.2 "popen() shall ensure that any streams + from previous popen() calls that remain open in the + parent process are closed in the new child process. */ + for (old = pidlist; old; old = old->next) { +#ifdef _REENTRANT + (void)close(old->fd); /* don't allow a flush */ +#else + (void)close(fileno(old->fp)); /* don't allow a flush */ +#endif + } } static void pdes_parent(int *pdes, struct pid *cur, pid_t pid, const char *type) { - FILE *iop; - - /* Parent; assume fdopen can't fail. */ - if (*type == 'r') { - iop = fdopen(pdes[0], type); -#ifdef _REENTRANT - cur->fd = pdes[0]; -#endif + /* Parent */ + if (*type == 'r') (void)close(pdes[1]); - } else { - iop = fdopen(pdes[1], type); -#ifdef _REENTRANT - cur->fd = pdes[1]; -#endif + else (void)close(pdes[0]); - } /* Link into list of file descriptors. */ - cur->fp = iop; - cur->pid = pid; + cur->pid = pid; cur->next = pidlist; pidlist = cur; } @@ -198,7 +201,7 @@ popenve(const char *cmd, char *const *argv, char *const *envp, const char *type) #ifdef _REENTRANT (void)rwlock_rdlock(&pidlist_lock); #endif - switch (pid = vfork()) { + switch (pid = fork()) { case -1: /* Error. */ serrno = errno; #ifdef _REENTRANT From nobody Wed Feb 11 07: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 4f9rBF7308z6S8gL for ; Wed, 11 Feb 2026 07: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 4f9rBF49Bkz3stH for ; Wed, 11 Feb 2026 07: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=1770796053; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9fHAUYrDJ5L1oaH2fX9uwE+lrHKwb57VGq8PYvkz4l4=; b=IbwhyIeGrhHu0wO4TNlh7DKJImSl33Qf/0XH+qoprWAkUxOkUXVbLp/i47nmCwlH6IeCeq 9weom6eaBIpBx3KWLcjBwlBiqR1WiRE0Be2R1KFqaciPC5IlrgSK5J58yXD/E1WgMu1urG 3lCQWlPQ3lJvq9VZ2/EziyLIZAhKfSB0uzG2/eGvvveJmdjCnko8o2b2p0F/eo2RD8qmKm kZAmtWn54Y3IEn/jXmLnos5FaMcHFPHKtDRO5i81oNJX1Ct31YOeEhnykorn8xD+sbvtwL obQ0+d94aPmv7HYvSo9Im4ge++SZ1xZ8T91h0p4GBBqaWCtadn5S8CbZzMjlYA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770796053; a=rsa-sha256; cv=none; b=x3czDkTFDxuonOT1FN7GR2pUHAm2lvNuFjZz9C5nJAPvLvRLHazUVCiwMbGhEQPIbY5zKl OO5Lnm9WWuRJdLdCJPeXJ6BWfEpQRy9dM4e6rMnjncSmWN8mpL/BQNznZkTJsJ5qawKukj mJjXq27W0CxRCEABKeg3oBDM2wgo2tThheSmwW5qqoszlwLk8+zVyUZ00A3V3K/OL2WFJF s2+ikQycFfdUfwULrDIWrQmONXSOeC9WTQgcxafOAf2J3ajxZ3RLdFneNJNhWq8avM7xar oXtllb6SONtst+remFZr6S+Zk79qNTEl5GNBcXdlB4506LmieXlgDfOFYzPcDg== 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=1770796053; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=9fHAUYrDJ5L1oaH2fX9uwE+lrHKwb57VGq8PYvkz4l4=; b=hbT7kkkklSI/2SGIESvhul0x4QzXEIOF9DxB/ttlWMLSRKBSAxdZhRZIVEmsKwWLC7YCsi MAGQcnHBdC7kwNm8zDhZ4UdFfFda0kMEGqv6T0410rpaBIOWoWo21JOD60N60HQfqM7FO2 UBo2RVgAfbUA5Jv46dj7Z1RzdtkMrR+XxfDR0XUYMA+267jOw5MjugNGGf5IpQBTEu9o+b CcakhMHbewzmRIUOsKB0nrpMl8HEhk8AFjjF/aX25Ihj7AQjREplKXKXTJ7doGIXDnOxgw 1/CzmNkgn+jn3/y5W8eu9Anlm/5Oj4W8jK/GuCSZkDmtJoWg2XjIJL9mWnBPCQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9rBF2zVjzh9H for ; Wed, 11 Feb 2026 07:47:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3e3d8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 07:47:33 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: 4d3b126ccb20 - stable/15 - release: Turn off debugging in pkg(8) 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/stable/15 X-Git-Reftype: branch X-Git-Commit: 4d3b126ccb2049b01f67dff140f45a7ace6f3a65 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 07:47:33 +0000 Message-Id: <698c3415.3e3d8.3b5d6bfb@gitrepo.freebsd.org> The branch stable/15 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=4d3b126ccb2049b01f67dff140f45a7ace6f3a65 commit 4d3b126ccb2049b01f67dff140f45a7ace6f3a65 Author: Colin Percival AuthorDate: 2026-02-06 21:03:11 +0000 Commit: Colin Percival CommitDate: 2026-02-11 07:47:29 +0000 release: Turn off debugging in pkg(8) Running `pkg -d` in pkg-stage.sh results in multiple GB of network traffic being written into the log files, which is less than helpful when it comes to tracking down build failures. Remove the -d flag. MFC after: 5 days X-MFC-note: The code in 15 has diverged from 14, but the flag is there, just in a different place. (cherry picked from commit 18721be356043f6749a6e2470bc9f7351c450c6e) --- release/scripts/pkg-stage.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release/scripts/pkg-stage.sh b/release/scripts/pkg-stage.sh index 5d4d267b150f..f76675543ac5 100755 --- a/release/scripts/pkg-stage.sh +++ b/release/scripts/pkg-stage.sh @@ -61,7 +61,7 @@ while getopts N opt; do esac done -PKG_ARGS="-d --rootdir ${ROOTDIR}" +PKG_ARGS="--rootdir ${ROOTDIR}" if [ $NO_ROOT ]; then PKG_ARGS="$PKG_ARGS -o INSTALL_AS_USER=1" fi From nobody Wed Feb 11 07:47: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 4f9rBQ20FVz6S8Xk for ; Wed, 11 Feb 2026 07:47: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 4f9rBP0NfSz3tRF for ; Wed, 11 Feb 2026 07:47:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770796061; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ek1fNyzvjoe5/0lMIWDqww5KlSClb4dU109iIhwD89I=; b=QHGOTd1npv56lfv9JaqOtmJrSFCzEZYKR08jZRU1WKWu1CJhYmRS5AoKLLGxQrP0Sku4Uf KSGRU79ecKjByTthgedOgcq3NYtOY6+hOrZ1L9HuY5booxxtUFXeOP9dLTORduTmPNpgBS KSOT6Zhn8nbqBa3+UcU5mYw/Bf4Frf8WmZ7JRdRlv/a8MekMA9AV4L1HZOezKuNN5fvMhi Kddn7NxdpfXSfUZnwRsG3AXkbPuo8/l78ezohMC9J2w1LmGg2gopX+NeCoZgMdKLUPghZN VfaP9RlJB10GlntFwEiB3NDIrABtPLL9zth0T8bLjNseJsLG8gzxCIQg1tMdxQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770796061; a=rsa-sha256; cv=none; b=Z0dD2Bh2x2C4mi2QularjbwESchlED7ka8MYOhyFTJfMLTPb0XAp1HcxEg+pKZSTuOhak0 xUPJr+suxEkxCRMePrDeSPpUiAevMo1fmqgu0gkZ2FANrL8y8h8uxeuTu3QumeJWIqGaIv kS5vK7M2y4MZbooY5z9kikVy70ibH/ZI8naGyge1MoJ8mBqVtUqO5khWNHQXwztJm79CPq HMYK+efxyv4ZpMbWChF8pGvgY6B3Gwuc/d0/0Pk1j7nn0AQxLHU3cLSjMbq3oXehXxKvow biGiZjFCQ+C5ywmJO3b26Lv/eI3q2eMjzI2sxr2+UhEKnGTuTJRpxlHyGHZ17w== 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=1770796061; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Ek1fNyzvjoe5/0lMIWDqww5KlSClb4dU109iIhwD89I=; b=SAaedBBcOj7U5qQdixu2s+2Fuerg/dlHzNu1Nq8dO33au3mEawtmeXLkWsSYKctqwzQ1f0 Syv61Y+6ip0aHwi2VWSzFFm4gBesP2if4QzhTajmoclHxqT/VSeOWVSe5EL2TqnhIc2mZz RHytLS+Sz9EhXyA77W8iTSFhwrN3xzISHD8btIpkZXKKjLrtjfeCwPKf4cPd+eUTpith7W l5zaDAOGqfu6YdG3lYCdNFBk/vAE7IEHfJxfsI6YOB+cWY2dv+BKfAgWbHZpE81Euaeg3q 2KFeviU7h21jLdX1tPFh12I5cLU8sMGtAgrhBusp02utWGSYyu+x18XI0KMiCg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9rBN72S9zgPM for ; Wed, 11 Feb 2026 07:47:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3cd62 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 07:47:40 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Colin Percival Subject: git: 721dfa7e5a34 - stable/14 - release: Turn off debugging in pkg(8) 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/stable/14 X-Git-Reftype: branch X-Git-Commit: 721dfa7e5a34e04c463f5afec91df80ba755cdbc Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 07:47:40 +0000 Message-Id: <698c341c.3cd62.75a2f1c@gitrepo.freebsd.org> The branch stable/14 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=721dfa7e5a34e04c463f5afec91df80ba755cdbc commit 721dfa7e5a34e04c463f5afec91df80ba755cdbc Author: Colin Percival AuthorDate: 2026-02-06 21:03:11 +0000 Commit: Colin Percival CommitDate: 2026-02-11 07:46:20 +0000 release: Turn off debugging in pkg(8) Running `pkg -d` in pkg-stage.sh results in multiple GB of network traffic being written into the log files, which is less than helpful when it comes to tracking down build failures. Remove the -d flag. MFC after: 5 days X-MFC-note: The code in 15 has diverged from 14, but the flag is there, just in a different place. (cherry picked from commit 18721be356043f6749a6e2470bc9f7351c450c6e) --- release/scripts/pkg-stage.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release/scripts/pkg-stage.sh b/release/scripts/pkg-stage.sh index d490e83ba9ec..68cfb1c5dc75 100755 --- a/release/scripts/pkg-stage.sh +++ b/release/scripts/pkg-stage.sh @@ -9,7 +9,7 @@ export PKG_DBDIR="/tmp/pkg" export PERMISSIVE="YES" export REPO_AUTOUPDATE="NO" export ROOTDIR="$PWD/dvd" -export PKGCMD="/usr/sbin/pkg -d --rootdir ${ROOTDIR}" +export PKGCMD="/usr/sbin/pkg --rootdir ${ROOTDIR}" export PORTSDIR="${PORTSDIR:-/usr/ports}" _DVD_PACKAGES_MAIN=" From nobody Wed Feb 11 10:03: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 4f9vBZ3B87z6SMZQ for ; Wed, 11 Feb 2026 10:03: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 4f9vBZ0ycRz487f for ; Wed, 11 Feb 2026 10:03:02 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770804182; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=taf9mJvfvdhouHmzhgOvP840RzMmw9Va/xjA9lHXoSg=; b=IZsK+vfpzA7AL+an3fFAf+PPdBXUDPNj+pHCAb4SXsPxaI43ohcS7d57jZ3/WD3ALot4md vhlXcEq7kHavatGWbjnSyYOBGsj2CTuI/B/SyIsO8n1/wm8fxtC6TxngWIGdM3LfwfrFi1 5G3OXkIKtzFLXHil6idM8BvwyjmhTyg577546G7rPGyLeqVlNbWKXHazUECBPeDk0wLz9P IRixQBLZlSWxUfuZh+jZZMaQH7wvhzCpaYS2O+c28mZYA0WQpJ3Jk4+HP09NSOD7pyC3gn dLmlfhjkjDuiQDoAGsSAdOuYhSXZBeriLj+5aC1BzjEuRrpY+X1VmKgFEOnVvQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770804182; a=rsa-sha256; cv=none; b=XLUYTM/vBxJOa68GU4BPe86IXanl4UtA5VHel2rNIwpgru0TPCww25VPTm7mOy+4UgF/4P J492KUAHiODLgWT0M4vwniOPEY94CHgpP36Tb2X2yHWf6Zb0qndhQ6oY4U8HjnnJA1BbVo 3A45BFNE/k300za7CvTYbTwVVw+3zVyja0Y5DSbsk0w4Xah/ExknHomNJ5sjPfICwF9gqS 1qgASZBdwXtqM2w0bYJy9aO6/TQJHeM91V6ovatQf5xxxhgf5SnInPgDzFR7VaTQIPBDGE gmiDV59kPxYjlFteZv0HaixDdxCd1oispzP6QleYFdV7v5o1/A3rSBXQFkATnA== 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=1770804182; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=taf9mJvfvdhouHmzhgOvP840RzMmw9Va/xjA9lHXoSg=; b=xo0nfSXnFcHiI4wfQTLZmq8vUg+ih8WQJ3Cf1RZiUEQahL8o5nf30ozDWiyMDUi249pVEk Lg01ywyifcYibDFrPHwsrGB1iScQPymQ/Np7AkiwAwb4grr0gjewKSodczp//uCpynWSIX Vutsig/QZ24F640EP0RqljFq+yYKSdYG1JPV8PaL3RS7DgOlAtJgD7jvPnafh0LAuqxgYA /l/+y7+B85Tbg8pianZjiBGCFXnVA4LJWhufwv7xhIoOMxiKNmUTwIYqfb0PLzPhTibExH svteTdXBpmWqnqdpJiTMD8XGbK1cIkQMIUkCctHcu7EWrfqbFkih55yffeLwiA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9vBZ0Nb8zlc7 for ; Wed, 11 Feb 2026 10:03:02 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1cb8d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 10:03:02 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 23ffd1650cc4 - stable/15 - qlnxe: Remove a pointless copy back from the link-layer address 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: 23ffd1650cc431e762387d384ede99ae085bc130 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 10:03:02 +0000 Message-Id: <698c53d6.1cb8d.57f20763@gitrepo.freebsd.org> The branch stable/15 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=23ffd1650cc431e762387d384ede99ae085bc130 commit 23ffd1650cc431e762387d384ede99ae085bc130 Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:53 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-11 10:00:42 +0000 qlnxe: Remove a pointless copy back from the link-layer address On ifnet attaching, ether_ifattach() makes the link-layer address by shadow copying the ha->primary_mac. Well, the link-layer address will not be altered during attaching, thus it is pointless to copy it back. No functional change intended. Reviewed by: kbowling MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54883 (cherry picked from commit 4ac3081b282800158df7abe93f307d76e1b5b808) --- sys/dev/qlnx/qlnxe/qlnx_os.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index 99110e5e2d8f..9616d9f4d611 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -2392,8 +2392,6 @@ qlnx_init_ifnet(device_t dev, qlnx_host_t *ha) ifmedia_set(&ha->media, (IFM_ETHER | IFM_AUTO)); ether_ifattach(ifp, ha->primary_mac); - bcopy(if_getlladdr(ha->ifp), ha->primary_mac, ETHER_ADDR_LEN); - QL_DPRINT2(ha, "exit\n"); return; From nobody Wed Feb 11 10:03: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 4f9vBb3NFKz6SMLw for ; Wed, 11 Feb 2026 10:03: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 4f9vBb134Rz49KZ for ; Wed, 11 Feb 2026 10:03:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770804183; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3x031UUjfB6OFWWwLVIelntETLepPBK83GlQ/u7Ar/s=; b=QE8c+J60ZtSD6xA3qYobF4Iav4buTEmpptJ7pW4U8tO3l2LeVG3erEKa3QuoR8rc+Ne/g1 Jx3XTUDWPnGJZa6L3zOfvDk7Rzv+2jdhhfVHac5KhnZfdlz5YwjDYX7OYz63nwwmWahHEB saZ5ep9cxOD/tkpD6WypRi/QeicrskpB4qTJWq0dA/K/LYbMAAM7sTp0IqN++hxxQ+WiZ6 OiE5Zm7VNMa7UPzBFwVHDxxWj+06gNLnuE1s/+Ka15Ty52Q2L5R7y7m6lWYxvv86EyqYzj t9aX+MlNWFiUUE7qkfHw61THDhbEymOlP2yaVGUVrixGC5HrQVwpdxfBv7c6NA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770804183; a=rsa-sha256; cv=none; b=olx48GsvFP9wpDAFixOmteIdXVZSd0OKf7oKtau5e+bAH/iqoPgkfWD97Dp8KqwXIhv1dM lr9pIPRD3BNFbbZsb4QpabkdNonPrFTrW3j7lzs9tYGBtW/uIsY0m7S/1wHaOOLG1NB+Cj UXPOQWQQ037fs9LqXR9TJ/3SXX81p/hJ349WzA4xra/GoMUQGYzscfqCydtDqoeLMLETdV ENd2EKKpNSnt2RbN3n/jkl1bihyenMROfTCSxbafQK2y18Or0St+osAczbUXSr303eW34a yM+AalFts7XXiRSD5tOyPSdD5eP1h0+mEddos3v/vmg7fmReKpftAxMvIzxm9Q== 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=1770804183; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=3x031UUjfB6OFWWwLVIelntETLepPBK83GlQ/u7Ar/s=; b=igf22WTg8nAzO7TnKLVtDTrlr7DyZLvTq2+KtgJx17fICdRhyHUW0PkgKXjAWCeF2bki9f dyB2LB21kqmYmAk/RYcYdXOpnMquwbP975ABY4fq+2i6fTyc2Ez9/I6mnB29YRV+14bAEJ dRGOVfmxrDeeSEjeGTkYYNawSVBs6NZ+qKgRpW4eLew/rYB2vKzgzwi0uUruRM+oaOzjWv bzxRKgNLm2Fc14cMBU42vopaqA9BQ7sgcf/DoUzXEp0ojbQ2gcie4470CVofqV+OQ1UUfD 27hB8P2gkbpY9sZtZOIrJI2tFLfXxibFVE2ohnyQ7a+Ro+amK+4IJTf4aDEm1w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9vBb0f88zlbM for ; Wed, 11 Feb 2026 10:03:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1ccd6 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 10:03:03 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 646218959504 - stable/15 - qlnxe: Avoid memcpy with same source and destination 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: 6462189595047800337aaf052e397d1aade3f9a7 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 10:03:03 +0000 Message-Id: <698c53d7.1ccd6.3c4e99c7@gitrepo.freebsd.org> The branch stable/15 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=6462189595047800337aaf052e397d1aade3f9a7 commit 6462189595047800337aaf052e397d1aade3f9a7 Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:53 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-11 10:00:42 +0000 qlnxe: Avoid memcpy with same source and destination In case the device is VF, qlnx_get_mac_addr() returns ha->primary_mac hence it ends up memcpy with same source and destination. Refactor slightly to avoid that. Reviewed by: kbowling MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54884 (cherry picked from commit 3aeeedc7e0dc231c16406ff64f4a08a716964c40) --- sys/dev/qlnx/qlnxe/qlnx_def.h | 1 - sys/dev/qlnx/qlnxe/qlnx_os.c | 13 +++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/sys/dev/qlnx/qlnxe/qlnx_def.h b/sys/dev/qlnx/qlnxe/qlnx_def.h index 796845f3f8c6..ed3a0403bb6f 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_def.h +++ b/sys/dev/qlnx/qlnxe/qlnx_def.h @@ -683,7 +683,6 @@ extern int qlnx_grc_dump(qlnx_host_t *ha, uint32_t *num_dumped_dwords, int hwfn_index); extern int qlnx_idle_chk(qlnx_host_t *ha, uint32_t *num_dumped_dwords, int hwfn_index); -extern uint8_t *qlnx_get_mac_addr(qlnx_host_t *ha); extern void qlnx_fill_link(qlnx_host_t *ha, struct ecore_hwfn *hwfn, struct qlnx_link_output *if_link); extern int qlnx_set_lldp_tlvx(qlnx_host_t *ha, qlnx_lldp_sys_tlvs_t *lldp_tlvs); diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index 9616d9f4d611..1c885133c3ec 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -101,6 +101,7 @@ static void qlnx_stop(qlnx_host_t *ha); static int qlnx_send(qlnx_host_t *ha, struct qlnx_fastpath *fp, struct mbuf **m_headp); static int qlnx_get_ifq_snd_maxlen(qlnx_host_t *ha); +static void qlnx_get_mac_addr(qlnx_host_t *ha); static uint32_t qlnx_get_optics(qlnx_host_t *ha, struct qlnx_link_output *if_link); static int qlnx_transmit(if_t ifp, struct mbuf *mp); @@ -2322,7 +2323,7 @@ qlnx_init_ifnet(device_t dev, qlnx_host_t *ha) ha->max_frame_size = if_getmtu(ifp) + ETHER_HDR_LEN + ETHER_CRC_LEN; - memcpy(ha->primary_mac, qlnx_get_mac_addr(ha), ETH_ALEN); + qlnx_get_mac_addr(ha); if (!ha->primary_mac[0] && !ha->primary_mac[1] && !ha->primary_mac[2] && !ha->primary_mac[3] && @@ -3772,7 +3773,7 @@ qlnx_get_ifq_snd_maxlen(qlnx_host_t *ha) return(TX_RING_SIZE - 1); } -uint8_t * +static void qlnx_get_mac_addr(qlnx_host_t *ha) { struct ecore_hwfn *p_hwfn; @@ -3781,8 +3782,10 @@ qlnx_get_mac_addr(qlnx_host_t *ha) p_hwfn = &ha->cdev.hwfns[0]; - if (qlnx_vf_device(ha) != 0) - return (p_hwfn->hw_info.hw_mac_addr); + if (qlnx_vf_device(ha) != 0) { + memcpy(ha->primary_mac, p_hwfn->hw_info.hw_mac_addr, ETH_ALEN); + return; + } ecore_vf_read_bulletin(p_hwfn, &p_is_forced); if (ecore_vf_bulletin_get_forced_mac(p_hwfn, mac, &p_is_forced) == @@ -3792,8 +3795,6 @@ qlnx_get_mac_addr(qlnx_host_t *ha) p_is_forced, mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); memcpy(ha->primary_mac, mac, ETH_ALEN); } - - return (ha->primary_mac); } static uint32_t From nobody Wed Feb 11 10:03: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 4f9vBc3p8Kz6SMGV for ; Wed, 11 Feb 2026 10:03: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 4f9vBc24ftz493v for ; Wed, 11 Feb 2026 10:03:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770804184; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UBNxO2PS/h2DDh6ry6wPxh/NeV1iQGLqfmSTQyYcDn4=; b=cV8X+UFx36ZUqT2eFa17flDWwOhBctti9nqBhPL+TrGuRUwR4zV8gTvtNOiiJN7TmtQUaa PPYFozvaVLqPBWQctPpXg7RU6UEfmt6YbK7OLE7CZ+5DaismF+03Vo1sKgZHeuyR2akWYw d/OXmcyEG1R4WlMo2sqcG+kD9gObfbqpJDRhbQHU9dTPVkzkWa8ih7nRElbyTK8jrLPgHI XN4eUDGnDMN1qdwrwqPbihZfBmrrYTYw4Q+RZI59J5T3aARE5kO4JnuPBHL7I7VIsVeX9V pdo1cnmagnZ5tLB5baj1hTj9hPcHk41A6N8TKyTzo2HCevP4MJy3Y8Trq3m7sw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770804184; a=rsa-sha256; cv=none; b=pwcLZSL5+bB0S681024KeyFcBIXJ/nz1el7Zj0Oaiz1cjDmXA03/MldMcYjDvT8DP/XGmg sKL2WAEpQFpLn0NAgXNdFZfPTPxFV35An6TGXITG2dKy5zfSkjfRTfvkD9QLJ2aHwKD0mM VafqRBzKe7Qk9+ywP9KJh/Njr+IayiWrptRIkuvBMQulEpY6CKbv+pBE8KL2dukBZ1ALlJ FD9XbPWd8WjGHtfTMMWjySJOGsaq2R5VRPc6Uj2VEZtj+HwdibA5BAc/gsd2SldXsb63Ob 88dljTD1t46yEiHQt42B0QwOIKpzBWuxBgNX1af10IxTNeDOZU9xl3U4wTnt0A== 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=1770804184; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UBNxO2PS/h2DDh6ry6wPxh/NeV1iQGLqfmSTQyYcDn4=; b=Io6xvvlU3J0OsHzs1RSDfk01rDxQooFG4dbcmhRhLf9xU0QM2jPYkdsJ7+qC+Oklti639K uf9cO/bnfwhZAQpVLv9m7VKFPikXB75yrhRACq1AclsgFWoqhrjGxduV5CZwL2M7/okDkN WOg469OzMz61gwxxuu4ECcEhg2d523Wqw6b2z+jNIeRxWQ63ubnXqTLzWKlznsfFdemr/b s3b5ONByxkkBoeqpoXqMMy88i8841BNdEtmWUmnodQDY5MTaX2h0FJLJvvjekQISgQg+zW h0QMifsSHJcaUZnbA/Mc16zxGYIeCtoo1PbxjhH/IIaf6xhPsGzIvvehg9XyMw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9vBc1Sm9zktw for ; Wed, 11 Feb 2026 10:03:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1ccda by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 10:03:04 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 6d138e958ffb - stable/15 - qlnxe: Fix setting the unicast MAC filter of RX path 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: 6d138e958ffb318595eec29b910cada414e2f86d Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 10:03:04 +0000 Message-Id: <698c53d8.1ccda.c82d62e@gitrepo.freebsd.org> The branch stable/15 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=6d138e958ffb318595eec29b910cada414e2f86d commit 6d138e958ffb318595eec29b910cada414e2f86d Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:53 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-11 10:00:42 +0000 qlnxe: Fix setting the unicast MAC filter of RX path When an Ethernet interface is added to lagg(4) as a child interface, its type, aka if_type, is changed from IFT_ETHER to IFT_IEEE8023ADLAG. Well changing the link-layer address of the lagg(4) interface will be propagated to all child interfaces, hence the drivers of child interfaces shall not presume the type of the interface will not be changed. Meanwhile, on initializing, an ifnet has been fully attached and it is guaranteed to have non-null link-layer address so stop NULL checking for it. Reviewed by: kbowling Fixes: 792226e53023 qlnxe: Allow MAC address override MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54885 (cherry picked from commit f250852c9a0c1021c3be4b498e27cfc7b42a81db) --- sys/dev/qlnx/qlnxe/qlnx_os.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index 1c885133c3ec..ec2fd7cacfae 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -7057,20 +7057,10 @@ qlnx_set_rx_mode(qlnx_host_t *ha) int rc = 0; uint8_t filter; const if_t ifp = ha->ifp; - const struct ifaddr *ifa; - struct sockaddr_dl *sdl; - ifa = if_getifaddr(ifp); - if (if_gettype(ifp) == IFT_ETHER && ifa != NULL && - ifa->ifa_addr != NULL) { - sdl = (struct sockaddr_dl *) ifa->ifa_addr; - - rc = qlnx_set_ucast_rx_mac(ha, ECORE_FILTER_REPLACE, LLADDR(sdl)); - } else { - rc = qlnx_set_ucast_rx_mac(ha, ECORE_FILTER_REPLACE, ha->primary_mac); - } - if (rc) - return rc; + rc = qlnx_set_ucast_rx_mac(ha, ECORE_FILTER_REPLACE, if_getlladdr(ifp)); + if (rc) + return rc; rc = qlnx_remove_all_mcast_mac(ha); if (rc) From nobody Wed Feb 11 10:03: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 4f9vBd3vtbz6SMcp for ; Wed, 11 Feb 2026 10:03: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 4f9vBd2bt3z4942 for ; Wed, 11 Feb 2026 10:03:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770804185; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yFLf4Df5bHkJSrtNTkFthCLxgNZLM6U54VLPXiQ4u+0=; b=ESTvCC7gNhe8q07t5NNDeanOJeq2y0G5G6zLfNAgb9gU0De8IzPt102b8Tfy4O+XSqkR2b PgDtltku91Ry9OAq6TqCsKRvE/mxr0l4YHYVWOUUo7Eq25kIbB5ZL2tSBnHVE+l3K7962j TvnU0yT7OpqEsxyGTjJlYx7p0xdsC477Q1rcWh5XX4IHPv8guBcVtNKXZkpgwAItR8z5ef x++ZVT3aK9D0tyC/3gdT16DMsI8Ds+IJ1cWUX/yBfZR5MqfXGt0Cq4eC1iqdNnaE8Fm4mp O0k+wCBszQ/ovtMigut6x+gdgLoejAl+DH/TMXIsqOTRxHfrN2KxRGVWbyRD3w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770804185; a=rsa-sha256; cv=none; b=tGfoeOPIw7nk2HY33baPz6jVei6XDjvnlycCOSl68jGlIA7cWyw+acgPSyvvIcaroB7lpq xTUYeWF1URqPJ2FvcMofhYQpZ3/8agOyEQER9PedpD/5pbZ9W/j/WzmhEiBugyf4HmPRAd gHRPA7qwtkRchgrtWsz7A+Hzjc23yoDH9sXNtAGLrW8l5EeT+l5y4W+TyCFxiER/i+FTqo 51rRORmqwFAe3/3YL7SnQFbuLxomFDXJOESQgEP+VfkkU5xNTencUv9yTvnWW763ElD0Q3 goIxNH3qX8831WPbvxqzFBXwxfidTPdkcD/vguzfuLVDIpmtwVBrY0wZoh1RsQ== 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=1770804185; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yFLf4Df5bHkJSrtNTkFthCLxgNZLM6U54VLPXiQ4u+0=; b=ARcU17N4A9dKfGubYM7x8FuCyUoxa0d/HFcQb/awZhPK6aJJnEHiF9tKTnH3MDy+15AWsG 6x08QH8tAHKF3M3GEBaNm9D6NS8h9sELQS3+UbWIZzaHe7Q/R+kJF3hjiMhZ0CLxuyib72 DCEXtOMg38s9wYBGwCjIzXXxDxnjz7hCOqbSBaBmmcEbDRQkd1GA2J+P3M6OrceqkUlCz6 R8X9of4F4mlo0/iST4fGU3H9ZLUOLnzCL3i11FVT83kULdabz7uwjknqn0zVww2IQ/Qtky +MVeRod6SdeFlFAY/iGzLNWcPlfXp8xfZIOwXWnh469EfckG+7nL6Cgcs0IyJw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9vBd28M7zlRP for ; Wed, 11 Feb 2026 10:03:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1c6c0 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 10:03:05 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 285b25c080fa - stable/15 - qlnxe: Prevent potential concurrency between ioctls 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: 285b25c080faf71c60de36e834ef31cf70e6b50d Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 10:03:05 +0000 Message-Id: <698c53d9.1c6c0.28f9b0a8@gitrepo.freebsd.org> The branch stable/15 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=285b25c080faf71c60de36e834ef31cf70e6b50d commit 285b25c080faf71c60de36e834ef31cf70e6b50d Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:53 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-11 10:00:43 +0000 qlnxe: Prevent potential concurrency between ioctls The driver-managed status flags should be lock protected to be touched. Also this can serialize ioctls those check the IFF_DRV_RUNNING status. Reviewed by: kbowling MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54886 (cherry picked from commit 0df8a998a9fe28af659cb401c537c6d785e55f81) --- sys/dev/qlnx/qlnxe/qlnx_os.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index ec2fd7cacfae..b0dac3a82582 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -2568,9 +2568,7 @@ qlnx_set_multi(qlnx_host_t *ha, uint32_t add_multi) mcnt = if_foreach_llmaddr(ifp, qlnx_copy_maddr, mta); - QLNX_LOCK(ha); qlnx_hw_set_multi(ha, mta, mcnt, add_multi); - QLNX_UNLOCK(ha); return (0); } @@ -2637,11 +2635,10 @@ qlnx_ioctl(if_t ifp, u_long cmd, caddr_t data) #ifdef INET if (ifa->ifa_addr->sa_family == AF_INET) { if_setflagbits(ifp, IFF_UP, 0); - if (!(if_getdrvflags(ifp) & IFF_DRV_RUNNING)) { - QLNX_LOCK(ha); + QLNX_LOCK(ha); + if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0) qlnx_init_locked(ha); - QLNX_UNLOCK(ha); - } + QLNX_UNLOCK(ha); QL_DPRINT4(ha, "SIOCSIFADDR (0x%lx) ipv4 [0x%08x]\n", cmd, ntohl(IA_SIN(ifa)->sin_addr.s_addr)); @@ -2703,19 +2700,23 @@ qlnx_ioctl(if_t ifp, u_long cmd, caddr_t data) case SIOCADDMULTI: QL_DPRINT4(ha, "%s (0x%lx)\n", "SIOCADDMULTI", cmd); - if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) { + QLNX_LOCK(ha); + if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0) { if (qlnx_set_multi(ha, 1)) ret = EINVAL; } + QLNX_UNLOCK(ha); break; case SIOCDELMULTI: QL_DPRINT4(ha, "%s (0x%lx)\n", "SIOCDELMULTI", cmd); - if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) { + QLNX_LOCK(ha); + if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0) { if (qlnx_set_multi(ha, 0)) ret = EINVAL; } + QLNX_UNLOCK(ha); break; case SIOCSIFMEDIA: From nobody Wed Feb 11 10:03: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 4f9vBg3RlHz6SMGg for ; Wed, 11 Feb 2026 10:03: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 4f9vBf4kXZz49Fg for ; Wed, 11 Feb 2026 10:03:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770804186; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pY/8H/ckjRtaRJtuo+ortaEBlf/uWLSTLZ5J2aWrtrU=; b=dxg2trc/qKfIOPipgsjhRhcxqgJKNb8Ngmohcg3EH/UutV1WzOnjY2kqWVfK7Bbyl/4fwI KmDsFlp55aVLfo54OkPeu+gbt0l8FGyrPeVKsHpHHiCsikHa2ENwE+SHSgc/OoTInHZ1ih l8/llCM3G7iKOwmCaEFVbQWhRNq1xK1DEAxWWTx8VF6cyCdGe/mUQwSE8w89iwdPozOpB7 UzzHS4nkZ841UanKEMlSiFAPje4v/DBoIxm9n5T7/D8rISNzrONFBV5cHfv3o3CMtYrjz0 hha1M+YhJ/PTR/p66MVW9myVBlODk4fYmrNeK/PXjbNDVfxYN1XImD812M64Wg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770804186; a=rsa-sha256; cv=none; b=Jz7qpx+hGNbswyyTrUg2/x4El1yF8RIaTEfW2s1Frmd0rdjRSuHwdLWKm9q8yLNuhjJ2K2 ButXXcRRPY8Zy8TcG5wdap6lSChgPoDHG3pSxiBL+hyP1/9OCp6zkVbay087DOv0Ktq/UL MU5e1YWTCpxMtvlDqFCDd+xMndG7+SmHCTvWsO198bh8QNCCDQky2iPKzYD7RYk/QLP3GK c7MvktApH691x+5d3Zi07O0jCIgNHyUKXeQnZuWSCYtuPMifJdSHI8njAVYIzmfWNvkFBk L0wZAQVad3sn9GMjnx9WPu99kHgMreiDVAxQClAOl1uXD3eD83799ST3AZb43g== 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=1770804186; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pY/8H/ckjRtaRJtuo+ortaEBlf/uWLSTLZ5J2aWrtrU=; b=SLy59kc7+xTgCy25WKhH+Kep23dlex6iHwh0rgPmoBdYycgTt2+9mYZAkd6V4SSks6awjB 3GA9CKuoamYGpu0FHWZUn/wKQeB6pGWF/pxhuB1sHq1l1s8KhKY9k7ucS7qdLmYc0On/1h 1nl8Dozr0a7rFR6V/ukuBfJ5YJcmIyym3J3XVf/SA5r8VGPd5YhkR30ldbQ75S8EHDoedw 5GbyAPhoBRt461Uc5C1ALbGCb2lB9DfQz4GE7CAeVDz9RFHyKeFrziRlaRv0L0hYL0slc1 5AvKN2KKUpGLhRDd9XOkPPJa9C21Be913pO5N0Bu/72fP/gt+usUhWjkpi304Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9vBf361nzlfT for ; Wed, 11 Feb 2026 10:03:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 199f0 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 10:03:06 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 8731ff4871d5 - stable/15 - qlnxe: Avoid reinitializing the interface when it is already initialized 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: 8731ff4871d5397bae65bf184c44629a52c0e97b Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 10:03:06 +0000 Message-Id: <698c53da.199f0.31a84e6@gitrepo.freebsd.org> The branch stable/15 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=8731ff4871d5397bae65bf184c44629a52c0e97b commit 8731ff4871d5397bae65bf184c44629a52c0e97b Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:54 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-11 10:00:43 +0000 qlnxe: Avoid reinitializing the interface when it is already initialized qlnx_init_locked() unconditionally uninitialize the interface thus is actually reinitializing the interface. Well the init routine qlnx_init() is to initialize the interface by net stack when assigned with the first inet or inet6 address. The ioctl SIOCSIFADDR for the first inet6 address is handled by ether_ioctl() thus the interface is reinitialized no matter it was initialized or not. Add a driver status check for that to avoid reinitializing. Further plan is removing SIOCSIFADDR ioctl from the driver and let ether_ioctl() handle it. Reviewed by: kbowling MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54887 (cherry picked from commit c10e6bc0f0079e90cb484323ad71d437f1882422) --- sys/dev/qlnx/qlnxe/qlnx_os.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index b0dac3a82582..bc0282e3c22b 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -2431,7 +2431,8 @@ qlnx_init(void *arg) QL_DPRINT2(ha, "enter\n"); QLNX_LOCK(ha); - qlnx_init_locked(ha); + if ((if_getdrvflags(ha->ifp) & IFF_DRV_RUNNING) == 0) + qlnx_init_locked(ha); QLNX_UNLOCK(ha); QL_DPRINT2(ha, "exit\n"); From nobody Wed Feb 11 10:03: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 4f9vBh0lk5z6SM73 for ; Wed, 11 Feb 2026 10:03: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 4f9vBg51Ctz49Fp for ; Wed, 11 Feb 2026 10:03:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770804187; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rqw35NhewFT0VphBS90fvndLFdYOViAaYQe99drsucg=; b=fDIxELV2c59yKL9e7A6HPYJoCyKgI6dTrsSeco9GRZiaQcSnU84M1/HAhQIfPuhcbVXwat p5RTO/Ks4C2p7K+FjnutzU/p3RZFenscQs/o4n0sLcX53fVWkxSIQhneqVfGtQ5AdM9P1T m4MpkfbE6JTmgMlf1bofrawY3Nf+8c92PwPqb+mIUzXYIs9nGlCW6a+M3j0ggu4nfOjTtQ o/iXbKVQUGLDZY4w+zgHmOVc2AxYqEb0RSDJ1nE8jdxq3ZXCOzlzHbObLRUhIYaGqDHBh6 UT1cj7PO6FJh19vYd+Bryg/P8CB1RRvu6tYCaJcA0W9A4r8VKqjXCl4G9iYrWg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770804187; a=rsa-sha256; cv=none; b=QT6+VcVRnOZh20A/prV1OLXdq2nCwHETJvdmlC5stOSDYly9sPu61qhXQzs3sPeK1xM7ic 2ZJoe16SqgoNCJHo2ODnV0cGZH/+52Qb1zF7R9LUrnD5kL82snTkX8V4z//6230AZfmQCe VZ4HYMCep56wosjQp5hs6JBYc+H0S7AJ3z/F4fe+H4nSMNdetYZDD2Je8icVLldd+y5KJM /nqfKFNeVb0k+K66fwTLqAZyH0Z6Rw1mTmmtOCdmzlB0ypdBLTNKfFylD+VF+HMN5GzlJn UHb1zM4osbpTicONBQ8/7GD8cOwfWkwvBP9ZsiIDCm3wHJ7UmCuLoQWxKwTlBw== 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=1770804187; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rqw35NhewFT0VphBS90fvndLFdYOViAaYQe99drsucg=; b=p220lvLNC2AkeGcGpVOcxhaXt05oc59NWRBdaCUEsFoHgTLuF3V/39pmojhjQbQ1cVfimZ SaW/e4cqTJBoqrgA/ywINK+Y6vfkbbZsKKaCYzYyWqVn0eSYGznNA4joqpwbXIePzmFE++ I8Ek51nZ9h5yvx4DaZBc+g28mpy/VpEBs6u0dKAcuxhkilGnzmYiwiZmPKws6QsiXgedTH oqMcugoFjypWfgDKSLgrQAzZX2m68/7sa2Xow6XsAW9LIjk96cL3qYuoe1ZTIuGd+yGH7f b48xeuBzehrMTXXq0XdfDrACfkxy+YUttWm8CO9zt5ZdbWj3AWzo/YOcJP+aZg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9vBg4WXSzm0T for ; Wed, 11 Feb 2026 10:03:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 199f4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 10:03:07 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 0f383f74b739 - stable/15 - qlnxe: Let ether_ioctl() handle SIOCSIFADDR ioctl 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: 0f383f74b7398161c12a290e50b060baf45d2800 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 10:03:07 +0000 Message-Id: <698c53db.199f4.34355338@gitrepo.freebsd.org> The branch stable/15 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=0f383f74b7398161c12a290e50b060baf45d2800 commit 0f383f74b7398161c12a290e50b060baf45d2800 Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:54 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-11 10:00:43 +0000 qlnxe: Let ether_ioctl() handle SIOCSIFADDR ioctl Since the change [1], the init routine qlnx_init() works as intended. Let ether_ioctl() handle SIOCSIFADDR to simplify the code. Combined with the change [1], this shall be a better fix for PR 287445. [1] c10e6bc0f007 qlnxe: Avoid reinitializing the interface when it is already initialized PR: 287445 Reviewed by: kbowling MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54888 (cherry picked from commit 4012b63889e40bb877bc0e4c8da1792bce472c08) --- sys/dev/qlnx/qlnxe/qlnx_os.c | 25 ------------------------- sys/modules/qlnx/qlnxe/Makefile | 1 - 2 files changed, 26 deletions(-) diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index bc0282e3c22b..8a12d45512ac 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -30,8 +30,6 @@ * Author : David C Somayajulu, Cavium, Inc., San Jose, CA 95131. */ -#include "opt_inet.h" - #include #include "qlnx_os.h" #include "bcm_osal.h" @@ -2622,34 +2620,11 @@ qlnx_ioctl(if_t ifp, u_long cmd, caddr_t data) int ret = 0, mask; int flags; struct ifreq *ifr = (struct ifreq *)data; -#ifdef INET - struct ifaddr *ifa = (struct ifaddr *)data; -#endif qlnx_host_t *ha; ha = (qlnx_host_t *)if_getsoftc(ifp); switch (cmd) { - case SIOCSIFADDR: - QL_DPRINT4(ha, "SIOCSIFADDR (0x%lx)\n", cmd); - -#ifdef INET - if (ifa->ifa_addr->sa_family == AF_INET) { - if_setflagbits(ifp, IFF_UP, 0); - QLNX_LOCK(ha); - if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0) - qlnx_init_locked(ha); - QLNX_UNLOCK(ha); - QL_DPRINT4(ha, "SIOCSIFADDR (0x%lx) ipv4 [0x%08x]\n", - cmd, ntohl(IA_SIN(ifa)->sin_addr.s_addr)); - - arp_ifinit(ifp, ifa); - break; - } -#endif - ether_ioctl(ifp, cmd, data); - break; - case SIOCSIFMTU: QL_DPRINT4(ha, "SIOCSIFMTU (0x%lx)\n", cmd); diff --git a/sys/modules/qlnx/qlnxe/Makefile b/sys/modules/qlnx/qlnxe/Makefile index 2a44ae6ddde5..3d8415cf0e57 100644 --- a/sys/modules/qlnx/qlnxe/Makefile +++ b/sys/modules/qlnx/qlnxe/Makefile @@ -58,7 +58,6 @@ SRCS+=qlnx_rdma.c SRCS+=qlnx_ioctl.c SRCS+=qlnx_os.c -SRCS+=opt_inet.h SRCS+= ${LINUXKPI_GENSRCS} From nobody Wed Feb 11 10:03: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 4f9vBh6J19z6SMZb for ; Wed, 11 Feb 2026 10:03: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 4f9vBh57f8z49T5 for ; Wed, 11 Feb 2026 10:03:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770804188; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Cy3xoHzg3nXwOWlLfkq2s7HYeNPydFj38/wuGP23Pxg=; b=jzZJ4NdGTQmE0RvUbN7wCIiZPIUTh4/Wcb/jNN9L1h6JSuyCGi0zS7NO9ftPyjUvEYkYMx 7gxRs3zJoFf85KPe7EfjgxYALQaOyL+DpM80qr7HNCvozrRZUMM6WO0dXaBXnnbCUlHnt/ kgujggpbsGLl+TR7FQJBc7hWZgZoQut0rPUFJhZui3z1AUfYbXwRn04PjmsKmIR48+cDxL oxa2qp1R8sm/C4YxUClKTZZiNDewJ8Sj6llMAXw7tuNPILAFucnCYyH1QT5aEm71rGsbog XTbSy68HWbh+6shDI+G3YMXOevOL1PfwW8u8ftVHKlzPdwKJ9xJlnRmD4A4CgQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770804188; a=rsa-sha256; cv=none; b=n4uhI7hpDCDr9vgTtsEodMcQkW1CPWzxVt5ysu37YHltL5MGDE031c/hayDob+YoDicBlG R6Yx6ZdzvE+TuBoHHk6+XZ6vj7Gz/+HLGmSTPL6BUlVR1XSk9uGDj1hQ+GMnFect96ihpT 8RK6VlR4L27BynPmeWDZWM8c8juAU95sY77SI8n53hMttSZCH0PtbdAHLW3GbLgffWZrf/ ZlLuR6HbX8cNJVnJ9RpdfSsqkHSSIh7cKVRdRWTAWhc7TzcovC+N/kVqavv/wAB/CzlNE2 IfcPttrbW36M4mCFdapkE+Qos/I3FFZUAPzXet6GbNQvKYp7dK0b+5HxgGGyoA== 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=1770804188; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Cy3xoHzg3nXwOWlLfkq2s7HYeNPydFj38/wuGP23Pxg=; b=mdi3VSli9dvB1qdiM90hzdXUENNgF1oFn3KssxoDj8qhzRyuMRG6aw+Ywh+N9HexThhpTQ QGHctqoxhOKkpP37tqRERFcezCgbrZ3+5O3NtUtDoMd7QcGaGeCcbOHUoS7k5LMgzzU7xG OGCxQiDn+Z3CjwrVY7p8LNGZFUJeSVRBg9G1WHWRoDQGeiTwQFEc/AgEEoJVKoYPDuL57Y Hutb/djgZ6rQMqpRi0jYK+PqP8HphYKBOgQZniummYMxTY5yf+BPZof5qNzO972QjOUqqP 2pldW269sWGL9vqvUnwS/6b2hmAyf6ZGAFOCjo0yjCYugr7Yzauu3/aDFeG9sA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9vBh4j8kzlc9 for ; Wed, 11 Feb 2026 10:03:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1cd14 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 10:03:08 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 926e44b49834 - stable/15 - qlnxev: Remove now unneeded include for opt_inet.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: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 926e44b4983408dd8a4f5d7eb695de75b373548d Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 10:03:08 +0000 Message-Id: <698c53dc.1cd14.1bc222c4@gitrepo.freebsd.org> The branch stable/15 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=926e44b4983408dd8a4f5d7eb695de75b373548d commit 926e44b4983408dd8a4f5d7eb695de75b373548d Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:54 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-11 10:00:43 +0000 qlnxev: Remove now unneeded include for opt_inet.h Since the change [1], this is not required anymore. This change partially reverts commit 8a847947153e. [1] 4012b63889e4 qlnxe: Let ether_ioctl() handle SIOCSIFADDR ioctl Reviewed by: kbowling MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54889 (cherry picked from commit ec7950fe42344900567cb72c83845ea4dc5a7114) --- sys/modules/qlnx/qlnxev/Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/sys/modules/qlnx/qlnxev/Makefile b/sys/modules/qlnx/qlnxev/Makefile index 766a5a950032..ed62f1f1dd40 100644 --- a/sys/modules/qlnx/qlnxev/Makefile +++ b/sys/modules/qlnx/qlnxev/Makefile @@ -49,7 +49,6 @@ SRCS+=ecore_vf.c SRCS+=qlnx_ioctl.c SRCS+=qlnx_os.c -SRCS+=opt_inet.h SRCS+= ${LINUXKPI_GENSRCS} From nobody Wed Feb 11 10:03: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 4f9vBk1P6dz6SMJZ for ; Wed, 11 Feb 2026 10:03:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9vBj65zRz49Qy for ; Wed, 11 Feb 2026 10:03:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770804189; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PIO7K8tbroEzuioLt/1DJPtF36QWr+ENThQPl7a82qA=; b=KNl345wRnd5wUc2fSiv5CzmDASaSnUGb53ss4jTtjkuQ+Gh+hlXunuBNx64Sao0knoETZ8 ARX/DaSn2GEKJCosjwbfx8J1UUfZ4sy42TJyo++9IYCh7hRl4wfbS6dn9RuJDTjKMPFSIo sdF4sl75RSGFBfP1Y2huMptcRVj0Lz3xBFGyf+RRTPwVakcDRNTCVJ9kGi0y3NUQCUf07w 1DXW16Hqr2XtLXsBG7QWi736AHmYJimhOLal1ggkkT4TWI0/1e4ZiMV7eayvJKUpFUtLE7 y8COyFr6y4LCK5BxQijyj+xsZvdFf8PJtlMq/hG2VE7alegy02uGy7H5aa6JmQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770804189; a=rsa-sha256; cv=none; b=IKeI3yUUMA6OOXx0Jpdsls6m/C2Ck5/1i3ZvvlqSq/WMypB7DhlbiU5HHvpbOwsV7IOnsi k9K7zy2YcNqF7dvHWKXlLdiQ2D1avUmcN6qDQSPQ7K52qJJaqYev7Ck3ABMVJLABJzbFlO q+sixcur02sV3G9g272PRkr2PKQSKtqEv9T27mzMXXsDgustD4wn/s0zUjwzIGF6g3fMpb EI4w179XCPrpRgaIctueYJ8JfbBejuwyXSVzZaf5IvlxFyxdURGSHmCkPOI4mHmFNaYY93 v/M5FbowRk7hI8xxqkbJrlJdqJ2s56cef62Q7CUm6t96E7vvSFc7b3h/KUmOiw== 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=1770804189; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PIO7K8tbroEzuioLt/1DJPtF36QWr+ENThQPl7a82qA=; b=CDe4zGTrwPQxbsx6pMtrkTZe1OLnAw88o1OUcvULe82hhKVqRfohdYuq7/p9lcUNGp5mDG 2CcjP+foAjQivT4iNpztLQvd9atscuSW2TKX/DRXNZTggeRC48WwHp4kLMT6xw0MQPDua6 yq6mkCBofc5C/6XKQXhGxEu8iWEtiBd/TZBSZbzXgZIJB1pTc+knKgSe0IF8xWFbISrpB5 gtk/f9eHN+zczbpZhIuA0IM9EN1dSZgF4I+bN0SbxLagbdW3e/VJSYwjHeYH6n1TYYis4s zgx6Eo1dfXGnBS8R4S5bZWqMsmLEdlY3uqKoVL+rtogq8mIQPPu8r1nFXlImAQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9vBj5cr0zlx2 for ; Wed, 11 Feb 2026 10:03:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1996f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 10:03:09 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: b8d2c1c36746 - stable/15 - qlnxe: Refactor setting the promiscuous and allmulti 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: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: b8d2c1c367465506b66a1696483caec1d04b2ea0 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 10:03:09 +0000 Message-Id: <698c53dd.1996f.7a9ab826@gitrepo.freebsd.org> The branch stable/15 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=b8d2c1c367465506b66a1696483caec1d04b2ea0 commit b8d2c1c367465506b66a1696483caec1d04b2ea0 Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:54 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-11 10:00:44 +0000 qlnxe: Refactor setting the promiscuous and allmulti mode There are two entry points to set the promiscuous and allmulti mode. One is ioctl, and another is the init routine. Given they share almost the identical logic, refactor a little to make the code more clear. While here, for the ioctl, translate the error to EINVAL to avoid confusing the net stack. Reviewed by: kbowling MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54890 (cherry picked from commit 45b1718fadae7d56051ba04ef9d7a175a602a226) --- sys/dev/qlnx/qlnxe/qlnx_def.h | 1 - sys/dev/qlnx/qlnxe/qlnx_os.c | 80 +++++++++++++++++++------------------------ 2 files changed, 36 insertions(+), 45 deletions(-) diff --git a/sys/dev/qlnx/qlnxe/qlnx_def.h b/sys/dev/qlnx/qlnxe/qlnx_def.h index ed3a0403bb6f..6184e78fe846 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_def.h +++ b/sys/dev/qlnx/qlnxe/qlnx_def.h @@ -370,7 +370,6 @@ struct qlnx_host { uint16_t device_id; if_t ifp; - int if_flags; volatile int link_up; struct ifmedia media; uint16_t max_frame_size; diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index 8a12d45512ac..bc7ff63fe783 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -90,8 +90,8 @@ static void qlnx_init_ifnet(device_t dev, qlnx_host_t *ha); static void qlnx_init(void *arg); static void qlnx_init_locked(qlnx_host_t *ha); static int qlnx_set_multi(qlnx_host_t *ha, uint32_t add_multi); -static int qlnx_set_promisc(qlnx_host_t *ha, int enabled); -static int qlnx_set_allmulti(qlnx_host_t *ha, int enabled); +static int qlnx_set_promisc_allmulti(qlnx_host_t *ha, int flags); +static int _qlnx_set_promisc_allmulti(qlnx_host_t *ha, bool promisc, bool allmulti); static int qlnx_ioctl(if_t ifp, u_long cmd, caddr_t data); static int qlnx_media_change(if_t ifp); static void qlnx_media_status(if_t ifp, struct ifmediareq *ifmr); @@ -2573,44 +2573,49 @@ qlnx_set_multi(qlnx_host_t *ha, uint32_t add_multi) } static int -qlnx_set_promisc(qlnx_host_t *ha, int enabled) +qlnx_set_promisc_allmulti(qlnx_host_t *ha, int flags) { int rc = 0; - uint8_t filter; if (qlnx_vf_device(ha) == 0) return (0); - filter = ha->filter; - if (enabled) { - filter |= ECORE_ACCEPT_MCAST_UNMATCHED; - filter |= ECORE_ACCEPT_UCAST_UNMATCHED; - } else { - filter &= ~ECORE_ACCEPT_MCAST_UNMATCHED; - filter &= ~ECORE_ACCEPT_UCAST_UNMATCHED; - } - - rc = qlnx_set_rx_accept_filter(ha, filter); + rc = _qlnx_set_promisc_allmulti(ha, flags & IFF_PROMISC, + flags & IFF_ALLMULTI); return (rc); } static int -qlnx_set_allmulti(qlnx_host_t *ha, int enabled) +_qlnx_set_promisc_allmulti(qlnx_host_t *ha, bool promisc, bool allmulti) { int rc = 0; uint8_t filter; - - if (qlnx_vf_device(ha) == 0) - return (0); + bool mcast, ucast; filter = ha->filter; - if (enabled) { + filter |= ECORE_ACCEPT_UCAST_MATCHED; + filter |= ECORE_ACCEPT_MCAST_MATCHED; + filter |= ECORE_ACCEPT_BCAST; + + mcast = promisc || allmulti; + ucast = promisc; + + if (mcast) filter |= ECORE_ACCEPT_MCAST_UNMATCHED; - } else { + else filter &= ~ECORE_ACCEPT_MCAST_UNMATCHED; - } - rc = qlnx_set_rx_accept_filter(ha, filter); + if (ucast) + filter |= ECORE_ACCEPT_UCAST_UNMATCHED; + else + filter &= ~ECORE_ACCEPT_UCAST_UNMATCHED; + + if (filter == ha->filter) + return (0); + + rc = qlnx_set_rx_accept_filter(ha, filter); + if (rc == 0) + ha->filter = filter; return (rc); } @@ -2652,13 +2657,8 @@ qlnx_ioctl(if_t ifp, u_long cmd, caddr_t data) if (flags & IFF_UP) { if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) { - if ((flags ^ ha->if_flags) & - IFF_PROMISC) { - ret = qlnx_set_promisc(ha, flags & IFF_PROMISC); - } else if ((if_getflags(ifp) ^ ha->if_flags) & - IFF_ALLMULTI) { - ret = qlnx_set_allmulti(ha, flags & IFF_ALLMULTI); - } + if (qlnx_set_promisc_allmulti(ha, flags) != 0) + ret = EINVAL; } else { ha->max_frame_size = if_getmtu(ifp) + ETHER_HDR_LEN + ETHER_CRC_LEN; @@ -2669,7 +2669,6 @@ qlnx_ioctl(if_t ifp, u_long cmd, caddr_t data) qlnx_stop(ha); } - ha->if_flags = if_getflags(ifp); QLNX_UNLOCK(ha); break; @@ -6989,6 +6988,9 @@ qlnx_clean_filters(qlnx_host_t *ha) { int rc = 0; + /* Reset rx filter */ + ha->filter = 0; + /* Remove all unicast macs */ rc = qlnx_remove_all_ucast_mac(ha); if (rc) @@ -7032,7 +7034,6 @@ static int qlnx_set_rx_mode(qlnx_host_t *ha) { int rc = 0; - uint8_t filter; const if_t ifp = ha->ifp; rc = qlnx_set_ucast_rx_mac(ha, ECORE_FILTER_REPLACE, if_getlladdr(ifp)); @@ -7043,19 +7044,10 @@ qlnx_set_rx_mode(qlnx_host_t *ha) if (rc) return rc; - filter = ECORE_ACCEPT_UCAST_MATCHED | - ECORE_ACCEPT_MCAST_MATCHED | - ECORE_ACCEPT_BCAST; - - if (qlnx_vf_device(ha) == 0 || (if_getflags(ha->ifp) & IFF_PROMISC)) { - filter |= ECORE_ACCEPT_UCAST_UNMATCHED; - filter |= ECORE_ACCEPT_MCAST_UNMATCHED; - } else if (if_getflags(ha->ifp) & IFF_ALLMULTI) { - filter |= ECORE_ACCEPT_MCAST_UNMATCHED; - } - ha->filter = filter; - - rc = qlnx_set_rx_accept_filter(ha, filter); + if (qlnx_vf_device(ha) == 0) + rc = _qlnx_set_promisc_allmulti(ha, true, true); + else + rc = qlnx_set_promisc_allmulti(ha, if_getflags(ifp)); return (rc); } From nobody Wed Feb 11 10:03:10 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 4f9vBl1hLVz6SMM9 for ; Wed, 11 Feb 2026 10:03:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9vBk75Jyz49RG for ; Wed, 11 Feb 2026 10:03:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770804191; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DiYR2xOysrSC4OxOjLyeoWx6fYX+UlG/jGP+d7h4Sm0=; b=BtSaz8Dxu+hSvmXvTNg/BMsqPrFUZ3EigTiHehN7CQmQjdRcBIBCo9wQ342vGNAQHN43aJ AGktw7lJXzS7PV7B5S/f5MRecN/D4g5IW+TzKe1n8M14q0FyyCGmrwZYRukBZ11lUvhHs2 BQ2RBUSVmDJz2jki96TnP+76bXeTxB30832egr0kWVsxu9jja2uMUX+ap9BjfFYk/UVykm VkSM/3eoqZOzvHYj8vDIeDmCxouSP/QsjHiU4+ABMbPHH/ESWnPVZ8DTwyVe60zUOF9Eiw GyS4sFeSm0YxniskuB2TJQo9gveQfsUUbsJeeqmunmKKg3sc98DAUDQETar6jw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770804191; a=rsa-sha256; cv=none; b=sGmljQLlvs5By6Msw/PCQgvYnJfNsczd4+zxDID56zQJ+mxhn52MMnJffXnZKY80d8g5gZ zeLlgoFFNu79+AOBTXiLsLnp2gg1RoEi+9hsO4+IB4TriZybkzpcqCMcyCw5P9nEy9JE43 HCqxEPcjMIB9OqySS8vSf8TvqJ1s3zZCoBxU3vLTMSoyvh2ZKSYtg6GqtBhVUKH5j1zUYz 9bPJRdKtl3evKGzfm6OEfoyUTalb8VJiIRDlFoqILXvXOh0/CWv7gvoohaKq73UuLAPkV8 IW4bffmmIy6iqGNFQlOpqImFX0ZhvEEklD0K1utGswUfiNbyqTg0jkidQIagAg== 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=1770804191; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=DiYR2xOysrSC4OxOjLyeoWx6fYX+UlG/jGP+d7h4Sm0=; b=m75exRvdWblXWX7F1y3XOBuRtq8NxBNpd5AQ4eNIQ9bE1CeXEi2SlgOh3WUflylGIod2cb G5zjxnF+hRIrmPVE+GB5aILVnxFG2jBrb43megrxHpOALVXxbOwJXzp3ViFEbunj2nJ08e 1p6/K6fxqjtq4D0QPdhZi5JxTLohkeodAO+Y0lfnunP04KdwX+V2yMN9daQahTg+8uUuVv f3k/tw9Lt6kyONZcZZ2YlKDrHMCElPUD+M5JGWidA/8+oUy3ww6eqP6PsbVBrNWlvtAqxv YRpfGv6HQZOLTGru0TOZMwEmGsJxS9336lKOs+CUkcrtrzGTW1nJ6lGyGKkr8Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9vBk6Rkyzlx3 for ; Wed, 11 Feb 2026 10:03:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1cd94 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 10:03:10 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 425b9cec0b8c - stable/15 - qlnxe: Allow tapping the TX packets 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: 425b9cec0b8ce15a6e67d54a73f4f38dc66a4ccc Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 10:03:10 +0000 Message-Id: <698c53de.1cd94.6091959b@gitrepo.freebsd.org> The branch stable/15 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=425b9cec0b8ce15a6e67d54a73f4f38dc66a4ccc commit 425b9cec0b8ce15a6e67d54a73f4f38dc66a4ccc Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:54 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-11 10:00:44 +0000 qlnxe: Allow tapping the TX packets Currently only the packets in the RX path can be captured by tcpdump as the ETHER_BPF_MTAP call in the TX path is missing. Add it so that packets in both directions can be captured. PR: 290973 Reviewed by: kbowling MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54891 (cherry picked from commit 968647502ec21464ad3aecc7577ff0e8dfd41693) --- sys/dev/qlnx/qlnxe/qlnx_os.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index bc7ff63fe783..5f6f336aab8d 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -2993,6 +2993,7 @@ qlnx_transmit_locked(if_t ifp, struct qlnx_fastpath *fp, struct mbuf *mp) drbr_advance(ifp, fp->tx_br); fp->tx_pkts_transmitted++; fp->tx_pkts_processed++; + ETHER_BPF_MTAP(ifp, mp); } mp = drbr_peek(ifp, fp->tx_br); From nobody Wed Feb 11 10:03:11 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 4f9vBm389gz6SM79 for ; Wed, 11 Feb 2026 10:03:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9vBm0YJXz49Yd for ; Wed, 11 Feb 2026 10:03:12 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770804192; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BpygpjMbSdTW3uQTOrVstJnlcKauIQPHphs/oV+7TgY=; b=FbVLTLuVa21Aqf1fS87RXnwApjozk7Tv/bMiEu21Sz52mFspkXG1QGmCeFdB7+62sNNsnJ Abb4ZyMl+TnNcEMQ79UxFp7fKsw00aCi26cDwjcazIHmf8Mro5qZ5cX1oOVxlGi7i+ojOK O8WiVimFfJPF+M4s7gf7bWemCFO2JeFq0vRtZQBnLoBer7pKDMgQR2wr3cGXbalYwQKVVq q5HjRRwe9BKSg0FHbS6q8/K1ZsQ6nBc2Om48woeoFC/i71KV+TkbVxVnZkeDzMI1HJ5mf5 8EJqhxY9Lt1BY3Y5LRgRgrEXpnMXp7ZsBSH2xm5oevxRoal5pZAOQn0npkPgXQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770804192; a=rsa-sha256; cv=none; b=ul4BOg2jkCILbSrWB8DOC6pfuHB1IEwxzMUioisHQX/HxrnJjwiGJrIOXp09pgy/yfJl4U 4K+acAB7PeJfuKoHRktM0n1nEfWsIZQKVQg8xJfTkPBRgiFhMDX2bsjD13s+3JLOec9vVX idYyNXmNk51+3VVyuUluLz5e0MllfjU2/HiBFI1hi+8NWBLB5DZEQmhZ8PWyeEBKV7Oc8s kg5z9WHki4CncUrAdsYe/jYVEgqQ1VMn+6WNEsKpECi/F//zsWgN5+x+Hb1LBlSxdh8anz JhBWdN5hbg6aOdfqfjKldpkHcQ2BrtozdMf89Qb5HxR2SQaVBVX/MPu0bj1qgw== 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=1770804192; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BpygpjMbSdTW3uQTOrVstJnlcKauIQPHphs/oV+7TgY=; b=Wspdxzl5wg/6McIc8CgoBiQc0Z0kfEHjTHrI9dBS3/1t729mqr+9ByoN0oVS+f/EoCY8b+ A6/h8urIdiXln/CLSZ+m+QwhPxXdiz3QF95pspjaU7fF8sH48nSffn29aciJnHU/8SsK0F bYtLDPMHp+nuBajIXLmkcvZQmV1rIVnMY/fjlf9q/T5IsCAo84GS03Y7zIFSlPM/R4aUIl VLU3TYdUgIJd6ldOlvAJec0BkfbaVxz8o9JXDQs+lpmKgfWkMTXPBEZMqz86enoS9Gi9Z6 5rsC6+VL4C+bu6jEPPxPhdh5XlmigephbaIXjpdlhctZnTVqGte0y/nZB19XtA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9vBl72nczlRV for ; Wed, 11 Feb 2026 10:03:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1cd98 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 10:03:11 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 0cfc1145cdfc - stable/15 - qlnxe: Overhaul setting the multicast MAC filters 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: 0cfc1145cdfc2a7beeeb7f39ad2722c7053681c0 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 10:03:11 +0000 Message-Id: <698c53df.1cd98.1dbe8b4f@gitrepo.freebsd.org> The branch stable/15 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=0cfc1145cdfc2a7beeeb7f39ad2722c7053681c0 commit 0cfc1145cdfc2a7beeeb7f39ad2722c7053681c0 Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:55 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-11 10:00:44 +0000 qlnxe: Overhaul setting the multicast MAC filters When operating the multicast MAC filters, the current usage of ECORE_FILTER_ADD and ECORE_FILTER_REMOVE are rather misleading. ECORE_FILTER_ADD reads "adding new filter", but it actually removes any existing filters and then addes a new one. ECORE_FILTER_REMOVE reads "removing a filter", but it actually removes all filters. Let's use ECORE_FILTER_REPLACE and ECORE_FILTER_FLUSH instead to avoid confusion. In the current implementation, only one MAC address is passed to ecore_sp_eth_filter_mcast() and any previously installed filters are removed, hence it breaks the multicast function. That can be observed via either assigning new IPv6 addresses to the interface or putting the interface as a member of lagg(4) interface with LACP aggregation protocol. Fix that by calculating the multicast filter bins directly from multicast MAC addresses and replace the filters every time the bins changes. Due to the nature of the multicast filter, which is hash based, a full 1's multicast filter bin means all multicast packets are to be accepted. Thus there's no need to make the vport into allmulti mode when the number of multicast MAC addresses exceeds the limit (ECORE_MAX_MC_ADDRS, 64). Tested with a FastLinQ QL41212HLCU 25GbE adapter, both MFW_Version 8.35.23.0 and 8.59.16.0 are tested. Note: Currently the VF port is set to promiscuous mode unconditionally, and the setting of the multicast MAC filters for VF ports is short-circuited, so the VF port functions as it did. PR: 265857 PR: 290973 Reviewed by: kbowling MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54892 (cherry picked from commit 70256d2b86d95a678a63c65b157b9c635f1f4c6a) --- sys/dev/qlnx/qlnxe/ecore_l2.c | 41 ++++---- sys/dev/qlnx/qlnxe/ecore_l2_api.h | 9 +- sys/dev/qlnx/qlnxe/ecore_vf.c | 11 +-- sys/dev/qlnx/qlnxe/qlnx_def.h | 5 +- sys/dev/qlnx/qlnxe/qlnx_os.c | 190 ++++++++------------------------------ 5 files changed, 66 insertions(+), 190 deletions(-) diff --git a/sys/dev/qlnx/qlnxe/ecore_l2.c b/sys/dev/qlnx/qlnxe/ecore_l2.c index ee7d225540d0..5e281c330765 100644 --- a/sys/dev/qlnx/qlnxe/ecore_l2.c +++ b/sys/dev/qlnx/qlnxe/ecore_l2.c @@ -1617,14 +1617,13 @@ ecore_sp_eth_filter_mcast(struct ecore_hwfn *p_hwfn, struct ecore_spq_comp_cb *p_comp_data) { struct vport_update_ramrod_data *p_ramrod = OSAL_NULL; - u32 bins[ETH_MULTICAST_MAC_BINS_IN_REGS]; struct ecore_spq_entry *p_ent = OSAL_NULL; struct ecore_sp_init_data init_data; u8 abs_vport_id = 0; enum _ecore_status_t rc; int i; - if (p_filter_cmd->opcode == ECORE_FILTER_ADD) + if (p_filter_cmd->opcode == ECORE_FILTER_REPLACE) rc = ecore_fw_vport(p_hwfn, p_filter_cmd->vport_to_add_to, &abs_vport_id); else @@ -1654,30 +1653,33 @@ ecore_sp_eth_filter_mcast(struct ecore_hwfn *p_hwfn, /* explicitly clear out the entire vector */ OSAL_MEMSET(&p_ramrod->approx_mcast.bins, 0, sizeof(p_ramrod->approx_mcast.bins)); - OSAL_MEMSET(bins, 0, sizeof(u32) * ETH_MULTICAST_MAC_BINS_IN_REGS); - /* filter ADD op is explicit set op and it removes - * any existing filters for the vport. - */ - if (p_filter_cmd->opcode == ECORE_FILTER_ADD) { - for (i = 0; i < p_filter_cmd->num_mc_addrs; i++) { - u32 bit; - - bit = ecore_mcast_bin_from_mac(p_filter_cmd->mac[i]); - bins[bit / 32] |= 1 << (bit % 32); - } - + /* + * filter REPLACE op is explicit set op and it removes + * any existing filters for the vport. + */ + if (p_filter_cmd->opcode == ECORE_FILTER_REPLACE) { + _Static_assert(sizeof(p_filter_cmd->bins) == sizeof(p_ramrod->approx_mcast.bins), "Size mismatch"); + _Static_assert(nitems(p_filter_cmd->bins) == ETH_MULTICAST_MAC_BINS_IN_REGS, "Size mismatch"); /* Convert to correct endianity */ for (i = 0; i < ETH_MULTICAST_MAC_BINS_IN_REGS; i++) { struct vport_update_ramrod_mcast *p_ramrod_bins; p_ramrod_bins = &p_ramrod->approx_mcast; - p_ramrod_bins->bins[i] = OSAL_CPU_TO_LE32(bins[i]); + p_ramrod_bins->bins[i] = OSAL_CPU_TO_LE32(p_filter_cmd->bins[i]); } - } + } /* else FLUSH op clears existing filters */ p_ramrod->common.vport_id = abs_vport_id; rc = ecore_spq_post(p_hwfn, p_ent, OSAL_NULL); + + DP_INFO(p_hwfn, "Multicast filter cmd: [%s], bins: [%08x, %08x, %08x, %08x, %08x, %08x, %08x, %08x], ret = %d\n", + p_filter_cmd->opcode == ECORE_FILTER_REPLACE ? "replace" : "flush", + p_ramrod->approx_mcast.bins[0], p_ramrod->approx_mcast.bins[1], + p_ramrod->approx_mcast.bins[2], p_ramrod->approx_mcast.bins[3], + p_ramrod->approx_mcast.bins[4], p_ramrod->approx_mcast.bins[5], + p_ramrod->approx_mcast.bins[6], p_ramrod->approx_mcast.bins[7], rc); + if (rc != ECORE_SUCCESS) DP_ERR(p_hwfn, "Multicast filter command failed %d\n", rc); @@ -1692,10 +1694,9 @@ enum _ecore_status_t ecore_filter_mcast_cmd(struct ecore_dev *p_dev, enum _ecore_status_t rc = ECORE_SUCCESS; int i; - /* only ADD and REMOVE operations are supported for multi-cast */ - if ((p_filter_cmd->opcode != ECORE_FILTER_ADD && - (p_filter_cmd->opcode != ECORE_FILTER_REMOVE)) || - (p_filter_cmd->num_mc_addrs > ECORE_MAX_MC_ADDRS)) { + /* only REPLACE and FLUSH operations are supported for multi-cast */ + if ((p_filter_cmd->opcode != ECORE_FILTER_REPLACE && + (p_filter_cmd->opcode != ECORE_FILTER_FLUSH))) { return ECORE_INVAL; } diff --git a/sys/dev/qlnx/qlnxe/ecore_l2_api.h b/sys/dev/qlnx/qlnxe/ecore_l2_api.h index 610cc329f1fd..3b2f48e9fe11 100644 --- a/sys/dev/qlnx/qlnxe/ecore_l2_api.h +++ b/sys/dev/qlnx/qlnxe/ecore_l2_api.h @@ -162,14 +162,13 @@ struct ecore_filter_ucast { }; struct ecore_filter_mcast { - /* MOVE is not supported for multicast */ + /* Only REPLACE and FLUSH is supported for multicast */ enum ecore_filter_opcode opcode; u8 vport_to_add_to; u8 vport_to_remove_from; - u8 num_mc_addrs; -#define ECORE_MAX_MC_ADDRS 64 - unsigned char mac[ECORE_MAX_MC_ADDRS][ETH_ALEN]; + u32 bins[ETH_MULTICAST_MAC_BINS_IN_REGS]; }; +#define ECORE_MAX_MC_ADDRS 64 struct ecore_filter_accept_flags { u8 update_rx_mode_config; @@ -384,7 +383,7 @@ struct ecore_sp_vport_update_params { u8 anti_spoofing_en; u8 update_accept_any_vlan_flg; u8 accept_any_vlan; - u32 bins[8]; + u32 bins[ETH_MULTICAST_MAC_BINS_IN_REGS]; struct ecore_rss_params *rss_params; struct ecore_filter_accept_flags accept_flags; struct ecore_sge_tpa_params *sge_tpa_params; diff --git a/sys/dev/qlnx/qlnxe/ecore_vf.c b/sys/dev/qlnx/qlnxe/ecore_vf.c index 6cdc94d05c86..a7b006b982de 100644 --- a/sys/dev/qlnx/qlnxe/ecore_vf.c +++ b/sys/dev/qlnx/qlnxe/ecore_vf.c @@ -1515,18 +1515,13 @@ void ecore_vf_pf_filter_mcast(struct ecore_hwfn *p_hwfn, struct ecore_filter_mcast *p_filter_cmd) { struct ecore_sp_vport_update_params sp_params; - int i; OSAL_MEMSET(&sp_params, 0, sizeof(sp_params)); sp_params.update_approx_mcast_flg = 1; - if (p_filter_cmd->opcode == ECORE_FILTER_ADD) { - for (i = 0; i < p_filter_cmd->num_mc_addrs; i++) { - u32 bit; - - bit = ecore_mcast_bin_from_mac(p_filter_cmd->mac[i]); - sp_params.bins[bit / 32] |= 1 << (bit % 32); - } + if (p_filter_cmd->opcode == ECORE_FILTER_REPLACE) { + _Static_assert(sizeof(sp_params.bins) == sizeof(p_filter_cmd->bins), "Size mismatch"); + memcpy(sp_params.bins, p_filter_cmd->bins, sizeof(sp_params.bins)); } ecore_vf_pf_vport_update(p_hwfn, &sp_params); diff --git a/sys/dev/qlnx/qlnxe/qlnx_def.h b/sys/dev/qlnx/qlnxe/qlnx_def.h index 6184e78fe846..f895487c47e4 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_def.h +++ b/sys/dev/qlnx/qlnxe/qlnx_def.h @@ -319,7 +319,6 @@ typedef struct qlnx_link_output qlnx_link_output_t; #define QLNX_TPA_MAX_AGG_BUFFERS (20) -#define QLNX_MAX_NUM_MULTICAST_ADDRS ECORE_MAX_MC_ADDRS typedef struct _qlnx_mcast { uint16_t rsrvd; uint8_t addr[6]; @@ -442,9 +441,7 @@ struct qlnx_host { qlnx_ivec_t irq_vec[QLNX_MAX_RSS]; uint8_t filter; - uint32_t nmcast; - qlnx_mcast_t mcast[QLNX_MAX_NUM_MULTICAST_ADDRS]; - struct ecore_filter_mcast ecore_mcast; + uint32_t ecore_mcast_bins[ETH_MULTICAST_MAC_BINS_IN_REGS]; uint8_t primary_mac[ETH_ALEN]; uint8_t prio_to_tc[MAX_NUM_PRI]; struct ecore_eth_stats hw_stats; diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index 5f6f336aab8d..85c16842283c 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -48,6 +48,7 @@ #include "ecore_sp_commands.h" #include "ecore_dev_api.h" #include "ecore_l2_api.h" +#include "ecore_l2.h" #include "ecore_mcp.h" #include "ecore_hw_defs.h" #include "mcp_public.h" @@ -89,7 +90,7 @@ static void qlnx_fp_isr(void *arg); static void qlnx_init_ifnet(device_t dev, qlnx_host_t *ha); static void qlnx_init(void *arg); static void qlnx_init_locked(qlnx_host_t *ha); -static int qlnx_set_multi(qlnx_host_t *ha, uint32_t add_multi); +static int qlnx_set_multi(qlnx_host_t *ha); static int qlnx_set_promisc_allmulti(qlnx_host_t *ha, int flags); static int _qlnx_set_promisc_allmulti(qlnx_host_t *ha, bool promisc, bool allmulti); static int qlnx_ioctl(if_t ifp, u_long cmd, caddr_t data); @@ -127,14 +128,13 @@ static void qlnx_set_id(struct ecore_dev *cdev, char name[NAME_SIZE], char ver_str[VER_SIZE]); static void qlnx_unload(qlnx_host_t *ha); static int qlnx_load(qlnx_host_t *ha); -static void qlnx_hw_set_multi(qlnx_host_t *ha, uint8_t *mta, uint32_t mcnt, - uint32_t add_mac); static void qlnx_dump_buf8(qlnx_host_t *ha, const char *msg, void *dbuf, uint32_t len); static int qlnx_alloc_rx_buffer(qlnx_host_t *ha, struct qlnx_rx_queue *rxq); static void qlnx_reuse_rx_data(struct qlnx_rx_queue *rxq); static void qlnx_update_rx_prod(struct ecore_hwfn *p_hwfn, struct qlnx_rx_queue *rxq); +static int qlnx_remove_all_mcast_mac(qlnx_host_t *ha); static int qlnx_set_rx_accept_filter(qlnx_host_t *ha, uint8_t filter); static int qlnx_grc_dumpsize(qlnx_host_t *ha, uint32_t *num_dwords, int hwfn_index); @@ -2438,138 +2438,45 @@ qlnx_init(void *arg) return; } -static int -qlnx_config_mcast_mac_addr(qlnx_host_t *ha, uint8_t *mac_addr, uint32_t add_mac) -{ - struct ecore_filter_mcast *mcast; - struct ecore_dev *cdev; - int rc; - - cdev = &ha->cdev; - - mcast = &ha->ecore_mcast; - bzero(mcast, sizeof(struct ecore_filter_mcast)); - - if (add_mac) - mcast->opcode = ECORE_FILTER_ADD; - else - mcast->opcode = ECORE_FILTER_REMOVE; - - mcast->num_mc_addrs = 1; - memcpy(mcast->mac, mac_addr, ETH_ALEN); - - rc = ecore_filter_mcast_cmd(cdev, mcast, ECORE_SPQ_MODE_CB, NULL); - - return (rc); -} - -static int -qlnx_hw_add_mcast(qlnx_host_t *ha, uint8_t *mta) -{ - int i; - - for (i = 0; i < QLNX_MAX_NUM_MULTICAST_ADDRS; i++) { - if (QL_MAC_CMP(ha->mcast[i].addr, mta) == 0) - return 0; /* its been already added */ - } - - for (i = 0; i < QLNX_MAX_NUM_MULTICAST_ADDRS; i++) { - if ((ha->mcast[i].addr[0] == 0) && - (ha->mcast[i].addr[1] == 0) && - (ha->mcast[i].addr[2] == 0) && - (ha->mcast[i].addr[3] == 0) && - (ha->mcast[i].addr[4] == 0) && - (ha->mcast[i].addr[5] == 0)) { - if (qlnx_config_mcast_mac_addr(ha, mta, 1)) - return (-1); - - bcopy(mta, ha->mcast[i].addr, ETH_ALEN); - ha->nmcast++; - - return 0; - } - } - return 0; -} - -static int -qlnx_hw_del_mcast(qlnx_host_t *ha, uint8_t *mta) -{ - int i; - - for (i = 0; i < QLNX_MAX_NUM_MULTICAST_ADDRS; i++) { - if (QL_MAC_CMP(ha->mcast[i].addr, mta) == 0) { - if (qlnx_config_mcast_mac_addr(ha, mta, 0)) - return (-1); - - ha->mcast[i].addr[0] = 0; - ha->mcast[i].addr[1] = 0; - ha->mcast[i].addr[2] = 0; - ha->mcast[i].addr[3] = 0; - ha->mcast[i].addr[4] = 0; - ha->mcast[i].addr[5] = 0; - - ha->nmcast--; - - return 0; - } - } - return 0; -} - -/* - * Name: qls_hw_set_multi - * Function: Sets the Multicast Addresses provided the host O.S into the - * hardware (for the given interface) - */ -static void -qlnx_hw_set_multi(qlnx_host_t *ha, uint8_t *mta, uint32_t mcnt, - uint32_t add_mac) -{ - int i; - - for (i = 0; i < mcnt; i++) { - if (add_mac) { - if (qlnx_hw_add_mcast(ha, mta)) - break; - } else { - if (qlnx_hw_del_mcast(ha, mta)) - break; - } - - mta += ETHER_ADDR_LEN; - } - return; -} - static u_int -qlnx_copy_maddr(void *arg, struct sockaddr_dl *sdl, u_int mcnt) +qlnx_mcast_bins_from_maddr(void *arg, struct sockaddr_dl *sdl, u_int mcnt) { - uint8_t *mta = arg; - - if (mcnt == QLNX_MAX_NUM_MULTICAST_ADDRS) - return (0); + uint8_t bit; + uint32_t *bins = arg; - bcopy(LLADDR(sdl), &mta[mcnt * ETHER_ADDR_LEN], ETHER_ADDR_LEN); + bit = ecore_mcast_bin_from_mac(LLADDR(sdl)); + bins[bit / 32] |= 1 << (bit % 32); return (1); } static int -qlnx_set_multi(qlnx_host_t *ha, uint32_t add_multi) +qlnx_set_multi(qlnx_host_t *ha) { - uint8_t mta[QLNX_MAX_NUM_MULTICAST_ADDRS * ETHER_ADDR_LEN]; - if_t ifp = ha->ifp; - u_int mcnt; + struct ecore_filter_mcast mcast; + struct ecore_dev *cdev; + if_t ifp = ha->ifp; + u_int mcnt __unused; + int rc; if (qlnx_vf_device(ha) == 0) return (0); - mcnt = if_foreach_llmaddr(ifp, qlnx_copy_maddr, mta); + bzero(&mcast, sizeof(struct ecore_filter_mcast)); + mcnt = if_foreach_llmaddr(ifp, qlnx_mcast_bins_from_maddr, mcast.bins); + QL_DPRINT1(ha, "total %d multicast MACs found\n", mcnt); - qlnx_hw_set_multi(ha, mta, mcnt, add_multi); + if (memcmp(ha->ecore_mcast_bins, mcast.bins, sizeof(mcast.bins)) == 0) + return (0); - return (0); + cdev = &ha->cdev; + mcast.opcode = ECORE_FILTER_REPLACE; + rc = ecore_filter_mcast_cmd(cdev, &mcast, ECORE_SPQ_MODE_CB, NULL); + if (rc == 0) + memcpy(ha->ecore_mcast_bins, mcast.bins, sizeof(mcast.bins)); + + QL_DPRINT1(ha, "ecore_filter_mcast_cmd: end(%d)\n", rc); + return (rc); } static int @@ -2673,22 +2580,12 @@ qlnx_ioctl(if_t ifp, u_long cmd, caddr_t data) break; case SIOCADDMULTI: - QL_DPRINT4(ha, "%s (0x%lx)\n", "SIOCADDMULTI", cmd); - - QLNX_LOCK(ha); - if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0) { - if (qlnx_set_multi(ha, 1)) - ret = EINVAL; - } - QLNX_UNLOCK(ha); - break; - case SIOCDELMULTI: - QL_DPRINT4(ha, "%s (0x%lx)\n", "SIOCDELMULTI", cmd); + QL_DPRINT4(ha, "%s (0x%lx)\n", "SIOCADDMULTI/SIOCDELMULTI", cmd); QLNX_LOCK(ha); if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0) { - if (qlnx_set_multi(ha, 0)) + if (qlnx_set_multi(ha) != 0) ret = EINVAL; } QLNX_UNLOCK(ha); @@ -6955,31 +6852,18 @@ qlnx_remove_all_ucast_mac(qlnx_host_t *ha) static int qlnx_remove_all_mcast_mac(qlnx_host_t *ha) { - struct ecore_filter_mcast *mcast; + struct ecore_filter_mcast mcast; struct ecore_dev *cdev; - int rc, i; + int rc; cdev = &ha->cdev; - mcast = &ha->ecore_mcast; - bzero(mcast, sizeof(struct ecore_filter_mcast)); - - mcast->opcode = ECORE_FILTER_REMOVE; - - for (i = 0; i < QLNX_MAX_NUM_MULTICAST_ADDRS; i++) { - if (ha->mcast[i].addr[0] || ha->mcast[i].addr[1] || - ha->mcast[i].addr[2] || ha->mcast[i].addr[3] || - ha->mcast[i].addr[4] || ha->mcast[i].addr[5]) { - memcpy(&mcast->mac[i][0], &ha->mcast[i].addr[0], ETH_ALEN); - mcast->num_mc_addrs++; - } - } - mcast = &ha->ecore_mcast; - - rc = ecore_filter_mcast_cmd(cdev, mcast, ECORE_SPQ_MODE_CB, NULL); + bzero(&mcast, sizeof(struct ecore_filter_mcast)); + mcast.opcode = ECORE_FILTER_FLUSH; - bzero(ha->mcast, (sizeof(qlnx_mcast_t) * QLNX_MAX_NUM_MULTICAST_ADDRS)); - ha->nmcast = 0; + rc = ecore_filter_mcast_cmd(cdev, &mcast, ECORE_SPQ_MODE_CB, NULL); + if (rc == 0) + bzero(ha->ecore_mcast_bins, sizeof(ha->ecore_mcast_bins)); return (rc); } @@ -7041,7 +6925,7 @@ qlnx_set_rx_mode(qlnx_host_t *ha) if (rc) return rc; - rc = qlnx_remove_all_mcast_mac(ha); + rc = qlnx_set_multi(ha); if (rc) return rc; From nobody Wed Feb 11 10:03:13 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 4f9vBn30qnz6SM7G for ; Wed, 11 Feb 2026 10:03:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9vBn14qDz49Yr for ; Wed, 11 Feb 2026 10:03:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770804193; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N9oKi/OP0CvFqr1CP070p+46h/ted8hjVf3FKmyJTS4=; b=Zx27g88TZp8nW3j0eD5JmMAfmWjx/cdwjE0aGDCJ4WHgKlO+JBrhEfTTUpOv/9a2//2NXw 7bLKfB1HTFEs3XA6o3XoTG2no/QdfjD4Hp4+RHIA8OrF2PJqSM+AAyjV3EnkBIICuOXf+h zdoGn3bswS0nNmaSLOMlEIBUN2KKQn/J2+/G0TYy7QlxLMf7GIJOLDkhZjit9OYym5Z4GO hIycqYrf4iFfUhwVoMMJF+v06jxXB3gJOdOutirfgtKjaXuRly99A66wYzJbir7dJ7h/He VGBozDRJ9sEhITYIVAl4A1xxANwJ2u1BXXzYSIybMNVxuDuya+BVMTGbKBZHqw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770804193; a=rsa-sha256; cv=none; b=p3v2iLXyWcOWChV+K0L2DUBr7bVVXitPDw2jFOC2mc/HHJgUv94DhpWBSrHD7j9HfAa67t RqFuwszY+zpQGXm3kR32whkiSExDUUb4yH9XyfDS1ce/p9qlNx3W9u3hqVQbA4nvDC4i0B pRA5Ov4kYpYJBTpdtZ57G+4LGT33gV2EuF7xSYKp6sVRDq8uJ9bwQWWnP9KoZ4ZqlhWn4H bZV+zso7Aia5mVx8vPoUULk13TzdKgqdWJuJ48j+q/flbLbA7Bzg2kJLLYrM2exrylI0CH 4dwpiC8gxXUlOhBPFYNOYfVPFGDrj1GMoaj2UafTs0AgtJ34XoitHtLM2ThjnQ== 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=1770804193; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=N9oKi/OP0CvFqr1CP070p+46h/ted8hjVf3FKmyJTS4=; b=mYCjpMTqZ0oFfLRdh9rGIir0aWOX2Fq5zvyEkPe6aGeh3/3joDqK0vSTM46IyWxi0VaYGX Te51J2kzGpP1s+XC16r4qTI+RYrg0/VK9ws8Ap7RB3unopj/HA+FApqDRhvF8zeFxKxk0s vpiQkoIATktyQdIJHA0QHFtEUtvXnOfObnx09XDL3cJTwB+xvImXn6yoEBEArB4lSUSqlL D/UIIIrI/ycffpntYiatmIp0E5iD/D5QE2Iw4fLHek4iYhaatHSQyIcRF5MVXSYuIRQjie rtAABbh7LDWTLInH8LVgniX1vXSPFJ23HP8CR8ZZqNNgATkuhF3HolusiAoRIQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9vBn0fjNzlRW for ; Wed, 11 Feb 2026 10:03:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1c08b by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 10:03:13 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 18c70c737cb3 - stable/15 - lagg: Make the none protocol a first-class citizen 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: 18c70c737cb3e488e2658add19134f455add294d Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 10:03:13 +0000 Message-Id: <698c53e1.1c08b.7a9c880b@gitrepo.freebsd.org> The branch stable/15 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=18c70c737cb3e488e2658add19134f455add294d commit 18c70c737cb3e488e2658add19134f455add294d Author: Zhenlei Huang AuthorDate: 2026-02-06 03:37:43 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-11 10:00:44 +0000 lagg: Make the none protocol a first-class citizen All the other protocols have corresponding start and input routines, which are used in the fast path. Currently the none protocol is treated specially. In the fast path it is checked to indicate whether a working protocol is configured. There are two issues raised by this design: 1. In production, other protocols are commonly used, but not the none protocol. It smells like an overkill to always check it in the fast path. It is unfair to other commonly used protocols. 2. PR 289017 reveals that there's a small window between checking the protocol and calling lagg_proto_start(). lagg_proto_start() is possible to see the none protocol and do NULL deferencing. Fix them by making the none protocol a first-class citizen so that it has start and input routines just the same as other protocols. Then we can stop checking it in the fast path, since lagg_proto_start() and lagg_proto_input() will never fail to work. The error ENETDOWN is chosen for the start routine. Obviously no active ports are available, and the packets will go nowhere. It is also a better error than ENXIO, since indeed the interface is configured and has a TX algorithm (the none protocol). PR: 289017 Diagnosed by: Qiu-ji Chen Tested by: Gui-Dong Han Reviewed by: glebius MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D55123 (cherry picked from commit a622030b4baec2136984cea7bd25c2985a2ae9b3) --- sys/net/if_lagg.c | 42 +++++++++++++++++++++++++++++++++--------- 1 file changed, 33 insertions(+), 9 deletions(-) diff --git a/sys/net/if_lagg.c b/sys/net/if_lagg.c index 5b52bfa80e3b..21ea2b30459b 100644 --- a/sys/net/if_lagg.c +++ b/sys/net/if_lagg.c @@ -169,6 +169,11 @@ static void lagg_media_status(struct ifnet *, struct ifmediareq *); static struct lagg_port *lagg_link_active(struct lagg_softc *, struct lagg_port *); +/* No proto */ +static int lagg_none_start(struct lagg_softc *, struct mbuf *); +static struct mbuf *lagg_none_input(struct lagg_softc *, struct lagg_port *, + struct mbuf *); + /* Simple round robin */ static void lagg_rr_attach(struct lagg_softc *); static int lagg_rr_start(struct lagg_softc *, struct mbuf *); @@ -219,7 +224,9 @@ static const struct lagg_proto { void (*pr_portreq)(struct lagg_port *, void *); } lagg_protos[] = { { - .pr_num = LAGG_PROTO_NONE + .pr_num = LAGG_PROTO_NONE, + .pr_start = lagg_none_start, + .pr_input = lagg_none_input, }, { .pr_num = LAGG_PROTO_ROUNDROBIN, @@ -2129,8 +2136,8 @@ lagg_transmit_ethernet(struct ifnet *ifp, struct mbuf *m) if (m->m_pkthdr.csum_flags & CSUM_SND_TAG) MPASS(m->m_pkthdr.snd_tag->ifp == ifp); #endif - /* We need a Tx algorithm and at least one port */ - if (sc->sc_proto == LAGG_PROTO_NONE || sc->sc_count == 0) { + /* We need at least one port */ + if (sc->sc_count == 0) { m_freem(m); if_inc_counter(ifp, IFCOUNTER_OERRORS, 1); return (ENXIO); @@ -2151,8 +2158,8 @@ lagg_transmit_infiniband(struct ifnet *ifp, struct mbuf *m) if (m->m_pkthdr.csum_flags & CSUM_SND_TAG) MPASS(m->m_pkthdr.snd_tag->ifp == ifp); #endif - /* We need a Tx algorithm and at least one port */ - if (sc->sc_proto == LAGG_PROTO_NONE || sc->sc_count == 0) { + /* We need at least one port */ + if (sc->sc_count == 0) { m_freem(m); if_inc_counter(ifp, IFCOUNTER_OERRORS, 1); return (ENXIO); @@ -2180,8 +2187,7 @@ lagg_input_ethernet(struct ifnet *ifp, struct mbuf *m) NET_EPOCH_ASSERT(); if ((scifp->if_drv_flags & IFF_DRV_RUNNING) == 0 || - lp->lp_detaching != 0 || - sc->sc_proto == LAGG_PROTO_NONE) { + lp->lp_detaching != 0) { m_freem(m); return (NULL); } @@ -2215,8 +2221,7 @@ lagg_input_infiniband(struct ifnet *ifp, struct mbuf *m) NET_EPOCH_ASSERT(); if ((scifp->if_drv_flags & IFF_DRV_RUNNING) == 0 || - lp->lp_detaching != 0 || - sc->sc_proto == LAGG_PROTO_NONE) { + lp->lp_detaching != 0) { m_freem(m); return (NULL); } @@ -2390,6 +2395,25 @@ lagg_enqueue(struct ifnet *ifp, struct mbuf *m) return (ifp->if_transmit)(ifp, m); } +/* + * No proto + */ +static int +lagg_none_start(struct lagg_softc *sc, struct mbuf *m) +{ + m_freem(m); + if_inc_counter(sc->sc_ifp, IFCOUNTER_OERRORS, 1); + /* No active ports available */ + return (ENETDOWN); +} + +static struct mbuf * +lagg_none_input(struct lagg_softc *sc, struct lagg_port *lp, struct mbuf *m) +{ + m_freem(m); + return (NULL); +} + /* * Simple round robin aggregation */ From nobody Wed Feb 11 10:03: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 4f9vBp3xp3z6SMZg for ; Wed, 11 Feb 2026 10:03: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9vBp1lllz49PX for ; Wed, 11 Feb 2026 10:03:14 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770804194; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=huoBY4XVgjTTyYHfidbNqQdx0E/BLinE9ZyCMJ/Ggy4=; b=LSaZwQuT7W/XuB4/Y/m3hc6yGcPUNQxoU/YkadoRpU5XDZAXRzZcspADutx9002A/pHVrm HNLdtvXiPZ1kICUAVIGG6kZ/3Fhhd4UHQCCPV+JdtA11IEpyv1AtdYZJH5PhLfTt56rdoR 60HcOq9yV/2xPhX2XSszreGn8i59wsgmb+yWjWpz3xREVNrmfEUdtXL1H52MBgqWAdvFHa MjGDOUlIwAoTpDi89POK34/7BWBLqr8vPVgzsAU6XoeFpACbe8k510lLxFs4BkDKsPKUs1 obToQ3sJHAP5xYelARZtqQYGUUSIff1ytUFoyCOXo1jhOfG5fXK56B94opIKOA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770804194; a=rsa-sha256; cv=none; b=wLKmuJpptkqJR/XUt8YtX5wG7ixc3HkNtTSYX6N9rT7e9eDcB2mGRz8EoY5kXYbwXGxb8r vh94rh2NzY/qIiUAycpY8pGLnfDpy6TBnEcsa4tKsk3F26E71qkyb6FLDlLl3TByAyTHdc gaomXbrjBOZgEE1r7kzkomMcZ3bUdu2XBERn5Gn2L81LZqkni3EU7Ly63EyzZZ7bVKg5q/ WUi/hTeyNcn927EG149lhe2lPnajR1ATzz6jmrXBQA9fDNVd1R+o3IahmpwQFhgN4WiDu1 6pd8YGOrghhOlNtg7DfxU71BKNS55JdpkOsMi/GG7ZGxIZUa9vUKQtPI/rueGw== 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=1770804194; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=huoBY4XVgjTTyYHfidbNqQdx0E/BLinE9ZyCMJ/Ggy4=; b=sR7+Csukavr7R0mSv5DUY1v9NiFVfxYmrTi+x3F7TFEmUrKVo7WGccvM97tcuXVB7LMqIY 7KNWnRKk9qmKRTIxaSPigwAuc3zOfi0v3/gDQWfljwhFSApx4fFJnFAKpDseGVVhwqttXa PAvlm00PFAS5ARlN4la2wByd8b6rVcttAHebLhK4LX8bGv7HM/VRDPDYhLx1H9r+pAtcs6 q3gi1TXX5L4VmbomT5P0ryVYCSGobio/GNIwEP5HoLF4Rr9bmd3Gr5/dLdjbm8PEhzKRNs gIkEK3MsEWLOfbSOBy6JZ4CfdhkLEp/tUgw0o8JSBszaq/16nl5mbhLK7EmZTQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9vBp1JXszlr6 for ; Wed, 11 Feb 2026 10:03:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 1c99d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 10:03:14 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 0233e3f8953b - stable/15 - lagg: Remove the member pr_num from struct lagg_proto 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: 0233e3f8953bbc789f30a977220836fa7723def5 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 10:03:14 +0000 Message-Id: <698c53e2.1c99d.711b281c@gitrepo.freebsd.org> The branch stable/15 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=0233e3f8953bbc789f30a977220836fa7723def5 commit 0233e3f8953bbc789f30a977220836fa7723def5 Author: Zhenlei Huang AuthorDate: 2026-02-06 03:37:43 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-11 10:00:44 +0000 lagg: Remove the member pr_num from struct lagg_proto It is set but never used. Remove it to avoid confusion and save a little space. While here, use designated initializers to initialize the LAGG protocol table. That improves readability, and it will be safer to initialize the table if we introduce new protocols in the future. No functional change intended. Reviewed by: glebius MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D55124 (cherry picked from commit 5ba503fc2cabc1a614997f102ace671d996bcc53) --- sys/net/if_lagg.c | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/sys/net/if_lagg.c b/sys/net/if_lagg.c index 21ea2b30459b..1e4d3d8d85ac 100644 --- a/sys/net/if_lagg.c +++ b/sys/net/if_lagg.c @@ -208,7 +208,6 @@ static struct mbuf *lagg_default_input(struct lagg_softc *, struct lagg_port *, /* lagg protocol table */ static const struct lagg_proto { - lagg_proto pr_num; void (*pr_attach)(struct lagg_softc *); void (*pr_detach)(struct lagg_softc *); int (*pr_start)(struct lagg_softc *, struct mbuf *); @@ -223,24 +222,20 @@ static const struct lagg_proto { void (*pr_request)(struct lagg_softc *, void *); void (*pr_portreq)(struct lagg_port *, void *); } lagg_protos[] = { - { - .pr_num = LAGG_PROTO_NONE, + [LAGG_PROTO_NONE] = { .pr_start = lagg_none_start, .pr_input = lagg_none_input, }, - { - .pr_num = LAGG_PROTO_ROUNDROBIN, + [LAGG_PROTO_ROUNDROBIN] = { .pr_attach = lagg_rr_attach, .pr_start = lagg_rr_start, .pr_input = lagg_default_input, }, - { - .pr_num = LAGG_PROTO_FAILOVER, + [LAGG_PROTO_FAILOVER] = { .pr_start = lagg_fail_start, .pr_input = lagg_fail_input, }, - { - .pr_num = LAGG_PROTO_LOADBALANCE, + [LAGG_PROTO_LOADBALANCE] = { .pr_attach = lagg_lb_attach, .pr_detach = lagg_lb_detach, .pr_start = lagg_lb_start, @@ -248,8 +243,7 @@ static const struct lagg_proto { .pr_addport = lagg_lb_port_create, .pr_delport = lagg_lb_port_destroy, }, - { - .pr_num = LAGG_PROTO_LACP, + [LAGG_PROTO_LACP] = { .pr_attach = lagg_lacp_attach, .pr_detach = lagg_lacp_detach, .pr_start = lagg_lacp_start, @@ -263,8 +257,7 @@ static const struct lagg_proto { .pr_request = lacp_req, .pr_portreq = lacp_portreq, }, - { - .pr_num = LAGG_PROTO_BROADCAST, + [LAGG_PROTO_BROADCAST] = { .pr_start = lagg_bcast_start, .pr_input = lagg_default_input, }, From nobody Wed Feb 11 13:49: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 4fB0CM4821z6RVVF for ; Wed, 11 Feb 2026 13:49: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 4fB0CM13Jnz3ZgV for ; Wed, 11 Feb 2026 13:49:03 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770817743; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OrcdMQ3PVM5NQMS/YfRl27rze2Pyj4jDVbKKRf6dTzo=; b=v2p0W4PsXHNuyZftd297YQJSI9AMR26kwTHyYOGxVdvet+TvTIzAK3ayvkFRXx3Y9motBl mw1wBjDTPZaRyVOuMMrdVqNvhkgmHccQQnzj8kkpNJOZ5HJM++kWi2xC/Y0vPrA98q06o4 MNuwaYS308VtauICwExBwC6iFMQ63lBH0czA1rlY53eoLYPix4/1yCVFAfe2otQ8Vgeg/H 9LZeTNUjC+Q6NzWdEuCEj4IWBYUzMMnKvyl5hOLug+KG8oCBmAwY2/GfU1a62diHdQquWp HHJuXC2c2YVxbOwmveoQBJOLZ8FMT2RQDqb4cnSAAP0inMxUJxFIMxTWCGpA6g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770817743; a=rsa-sha256; cv=none; b=QTiA7fM2SeniwLdg3JDfi4NVIWm2gAzyiBR6gWhJxOA4LT5SOO1s/XgQ5HnwlpZHRH8bz2 7MQqnOUA0fHhTd1ye8T2fV2EhoHsfKFDFBhPcKjpe5IiWlkHI45v9HUPechZ3SbBO38BaI LfpinOhHeKzDAe4hMrtLPfh+bIYPJ5xBMH3d56qQx5UXn2eDV7zkLa3lxcwB7+7S6w62/G hK1TDWkRQjwXJvhu4XH3SHxRRpzhkzfd+gUnX6x9rM8kRsKesfsiDbqpEXgimdhTXz6hBZ w3MSW2ndlcW7eAZVudlOk9FZT7SBhrnErkCKNOebNKKzi09mr2LoqIUvU+eKOA== 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=1770817743; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OrcdMQ3PVM5NQMS/YfRl27rze2Pyj4jDVbKKRf6dTzo=; b=c+IaTf6HrsQAyrx6qPXWAkvybyb23ybWef+0txKUte3tZvyYp88mS/jJE6AhJWPaOaxWaj xRzvfPIICAhOWMPd59FuePBQ0mRVCli+Hha2bx2rj0513QFzHnniTjtvYm4rcTSzcRupST 5xYRLNQuQvgqJhA8fCViBqrwPkgWk6M3I9vSw/sY2zhJxTGPZuWVpHsiLRQZFES4h+MMqB 2S4QbgEd9mEok8TN3NVNLESSIH7t8D7UhsPHgzJrcTTxL9T4X6kfsiBjb68dNgUR+5lgJl HGR7YW1uwMWKolMVN4TUVAI2W5zmDwwq5w/L0/lcYp0NRsrwElCpaMBY+i5QqQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fB0CM0KcgzsK5 for ; Wed, 11 Feb 2026 13:49:03 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3be0f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 13:49:03 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 7d7cee09b9a4 - stable/14 - qlnxe: Remove a pointless copy back from the link-layer address 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/14 X-Git-Reftype: branch X-Git-Commit: 7d7cee09b9a4ac5cbcbac79cb7ccfef5d6db1e0f Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 13:49:03 +0000 Message-Id: <698c88cf.3be0f.8469e93@gitrepo.freebsd.org> The branch stable/14 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=7d7cee09b9a4ac5cbcbac79cb7ccfef5d6db1e0f commit 7d7cee09b9a4ac5cbcbac79cb7ccfef5d6db1e0f Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:53 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-11 13:48:07 +0000 qlnxe: Remove a pointless copy back from the link-layer address On ifnet attaching, ether_ifattach() makes the link-layer address by shadow copying the ha->primary_mac. Well, the link-layer address will not be altered during attaching, thus it is pointless to copy it back. No functional change intended. Reviewed by: kbowling MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54883 (cherry picked from commit 4ac3081b282800158df7abe93f307d76e1b5b808) (cherry picked from commit 23ffd1650cc431e762387d384ede99ae085bc130) --- sys/dev/qlnx/qlnxe/qlnx_os.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index 99110e5e2d8f..9616d9f4d611 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -2392,8 +2392,6 @@ qlnx_init_ifnet(device_t dev, qlnx_host_t *ha) ifmedia_set(&ha->media, (IFM_ETHER | IFM_AUTO)); ether_ifattach(ifp, ha->primary_mac); - bcopy(if_getlladdr(ha->ifp), ha->primary_mac, ETHER_ADDR_LEN); - QL_DPRINT2(ha, "exit\n"); return; From nobody Wed Feb 11 13:49: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 4fB0CN3SKQz6RVVP for ; Wed, 11 Feb 2026 13:49: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 4fB0CN25xNz3ZgW for ; Wed, 11 Feb 2026 13:49:04 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770817744; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mK40fcOoyhV7RwgN+Z59W0FTNCCajl+Vdg5+RQroWaE=; b=f1WthcDQq4Evi3/Vjrq/Qy2NtzDs5qvnAhVkHcABK62CG7oRWQkaCtVKjM0z9gRRG5FK6O XUfxC+VvcHgsOiE9hbh5l8wl2I/oupfp7V7ULn+6ypi0ZTGBYarO2EmgMskcly7cnFo36B PKVGJsZdGBe8MJg36ZxzQp5mVSxo7P+SOj4wRcyYjur5uHkzYXuVrU3EdXBWiNcCxY8NU+ jK0RqKnlJmHaJny2kiC7soXXFJuEcioTJOc7T7lfQlCZcBv/71Q9JJefzZLoFictNWQUJ6 2UWnD6W+CXVEHoq4/nWcicvIFYvu9HyPLlUE74kSs7EBUQTJjiMhegrkD+bCWg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770817744; a=rsa-sha256; cv=none; b=jg/0LLoCQjkzGCLoluCbYbYR/l1o8DbIchGaxTa7MZeejftwK/xew0Lq0A2IqE3SLh95iQ Vr+rHvtOK8kk6ihYoMNsbJ5rghXU4rKe3hi/W5wrsbj4z1Ln1srZnrJkkBTqQysIF/qZuk VlMtyuxN6cU3pelF9LWajHYpnKHcpgmIzVwO1HbKKN7KqvhTun0pD4xsFsKqGJHDKeZb6k azXHloq9+ynjoDr76Ms03NyL7SKDuzn0uqFYDCZTO+d+gXE8gOzTe2ynLI4Y2cKvCEz19b 5mmTxofSn0O8BjYGvKYS5p3n02QTtfD86A+J3uQf7I+ors4+6vZINQ1f5PFP0A== 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=1770817744; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=mK40fcOoyhV7RwgN+Z59W0FTNCCajl+Vdg5+RQroWaE=; b=L2osCa1Vuq3o8KXDJ9cxTasi1JewyDlBsr6Sa4nSznXbFTQikZVYlCLG254C+8CABy8EA8 D6iR5VRJ6ivdX3B6o7zg8rPmsJDwsQ4oCsyTEeEX7lBu5KvtVMmb+7bm3PPStZIz+pASmO Q1IFw4UG7mR14QaCxN0PBfqej980xKBZYHvWP4vrbY74l3vTq8Wx+K9o+KwX06V+WbBSM+ G6LMs9ghXfUXpGUbmZqrwk5L58aWyDNP7PVTUQOE0vkGmIJe3SfBXJ6kUgOC6Ulh3G5njt FLrU3Ebba6Oj28ypUrOjz8z6rfBSMWQAPSbHK2uVrn+cODBrw4SMY5y2pCDVOQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fB0CN18zmzsPp for ; Wed, 11 Feb 2026 13:49:04 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3bbbb by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 13:49:04 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: ea1143bddbc3 - stable/14 - qlnxe: Avoid memcpy with same source and destination 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/14 X-Git-Reftype: branch X-Git-Commit: ea1143bddbc3671f49219a6b2a054965deea0c63 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 13:49:04 +0000 Message-Id: <698c88d0.3bbbb.56a80f9@gitrepo.freebsd.org> The branch stable/14 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=ea1143bddbc3671f49219a6b2a054965deea0c63 commit ea1143bddbc3671f49219a6b2a054965deea0c63 Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:53 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-11 13:48:07 +0000 qlnxe: Avoid memcpy with same source and destination In case the device is VF, qlnx_get_mac_addr() returns ha->primary_mac hence it ends up memcpy with same source and destination. Refactor slightly to avoid that. Reviewed by: kbowling MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54884 (cherry picked from commit 3aeeedc7e0dc231c16406ff64f4a08a716964c40) (cherry picked from commit 6462189595047800337aaf052e397d1aade3f9a7) --- sys/dev/qlnx/qlnxe/qlnx_def.h | 1 - sys/dev/qlnx/qlnxe/qlnx_os.c | 13 +++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/sys/dev/qlnx/qlnxe/qlnx_def.h b/sys/dev/qlnx/qlnxe/qlnx_def.h index 796845f3f8c6..ed3a0403bb6f 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_def.h +++ b/sys/dev/qlnx/qlnxe/qlnx_def.h @@ -683,7 +683,6 @@ extern int qlnx_grc_dump(qlnx_host_t *ha, uint32_t *num_dumped_dwords, int hwfn_index); extern int qlnx_idle_chk(qlnx_host_t *ha, uint32_t *num_dumped_dwords, int hwfn_index); -extern uint8_t *qlnx_get_mac_addr(qlnx_host_t *ha); extern void qlnx_fill_link(qlnx_host_t *ha, struct ecore_hwfn *hwfn, struct qlnx_link_output *if_link); extern int qlnx_set_lldp_tlvx(qlnx_host_t *ha, qlnx_lldp_sys_tlvs_t *lldp_tlvs); diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index 9616d9f4d611..1c885133c3ec 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -101,6 +101,7 @@ static void qlnx_stop(qlnx_host_t *ha); static int qlnx_send(qlnx_host_t *ha, struct qlnx_fastpath *fp, struct mbuf **m_headp); static int qlnx_get_ifq_snd_maxlen(qlnx_host_t *ha); +static void qlnx_get_mac_addr(qlnx_host_t *ha); static uint32_t qlnx_get_optics(qlnx_host_t *ha, struct qlnx_link_output *if_link); static int qlnx_transmit(if_t ifp, struct mbuf *mp); @@ -2322,7 +2323,7 @@ qlnx_init_ifnet(device_t dev, qlnx_host_t *ha) ha->max_frame_size = if_getmtu(ifp) + ETHER_HDR_LEN + ETHER_CRC_LEN; - memcpy(ha->primary_mac, qlnx_get_mac_addr(ha), ETH_ALEN); + qlnx_get_mac_addr(ha); if (!ha->primary_mac[0] && !ha->primary_mac[1] && !ha->primary_mac[2] && !ha->primary_mac[3] && @@ -3772,7 +3773,7 @@ qlnx_get_ifq_snd_maxlen(qlnx_host_t *ha) return(TX_RING_SIZE - 1); } -uint8_t * +static void qlnx_get_mac_addr(qlnx_host_t *ha) { struct ecore_hwfn *p_hwfn; @@ -3781,8 +3782,10 @@ qlnx_get_mac_addr(qlnx_host_t *ha) p_hwfn = &ha->cdev.hwfns[0]; - if (qlnx_vf_device(ha) != 0) - return (p_hwfn->hw_info.hw_mac_addr); + if (qlnx_vf_device(ha) != 0) { + memcpy(ha->primary_mac, p_hwfn->hw_info.hw_mac_addr, ETH_ALEN); + return; + } ecore_vf_read_bulletin(p_hwfn, &p_is_forced); if (ecore_vf_bulletin_get_forced_mac(p_hwfn, mac, &p_is_forced) == @@ -3792,8 +3795,6 @@ qlnx_get_mac_addr(qlnx_host_t *ha) p_is_forced, mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); memcpy(ha->primary_mac, mac, ETH_ALEN); } - - return (ha->primary_mac); } static uint32_t From nobody Wed Feb 11 13:49: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 4fB0CP4ZNtz6RVSL for ; Wed, 11 Feb 2026 13:49: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 4fB0CP2bG5z3ZgX for ; Wed, 11 Feb 2026 13:49:05 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770817745; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TvXGs0xmuyInjtAJam28oFW62Qr0kkKdYuC+zy8R6ZE=; b=xTOJtDSrkEWUjHhgTYzOn4MBG+VcMn8U6ikXVY67MSDEdwiVdNM9QPV3NSTUjGbDgIliXt QzV5ZpCSwTaoHCjrXHVBwE/MuCZOCs4e647d+SPB4yqsoTgW8pGKceOlrDFkm6QCnW87u4 AXCDD3RdxsM/23P6j105Rh6isZqqpiOMZuJzxb4RYqbLAplF1uamqG65ohfOc9CCS9dcCS VXH91LJZK9O/eeF2QVuwS0PemSCNZvQbRVWcg7qcL80LcOOFu+NGyGofG3daqYcoakB2IG lwh90DRKKpwxt3UnGpoZm+Gu4UVawtZ58Eh0Ai+11mljVdwo8V7F+UHooSYQpg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770817745; a=rsa-sha256; cv=none; b=h4IEdV9gvjSw52xUTYB3lo2s6xGJnRg3CQZmu1n5UeZYOLbqtTJ0tHJTWGd3ycd/YXK7pi eFH/c78hiTlRNIFGfK9LV+VfcWBZnwpcYNGdA3OlSpCBiE95/merBKPJ9dNWm7f3+v0rc4 SpztPVgP1RC8J4q6TJV+6DHkWjgF4EMABt5XadkSH32zMXjawDTIgvoQl5hXbZ6evek/p+ /rEufUxR4FeBNzCHe5TnaHwL06OK+eY+BpReL1Pi4UTYYQem/shK//iZ8rRRS7M3Tx19nh O6EyaXLL6UOMgxo1bxGRNP3C8Gi0rXIJ8ElVh5R3p46WOKGsSYkNZ+0p9KpZfw== 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=1770817745; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TvXGs0xmuyInjtAJam28oFW62Qr0kkKdYuC+zy8R6ZE=; b=ZwSYb++Tpvj2WwoAhlaN/HZy5UPNbVvczHpwzCzx/A5pRFSsE24NbAit/ZXD3cAoeRp+9n ymBwnUID1W6py/JW4KqGHX2UYoFfhyucEvVljPNxz/7ZAAw0hH56NDYDr+omx/SVfcFAzt Hn1fdg5etWZ2N+/0I0ebSUKJzehaY6TVFJggU5RfTZcAZnK0LnXpUR6YVSlee1s1m9VU4u X82ys3v/bGmQRD+m9/tM56jJgm/ZOsANwrawcitd/AaI2tbk+Ij3ZuSzE88YxnBpDqMWgA Pg2uppwDIKXreVutniF6R43FO32pZ8Awo16hVZ8yn6q2IWzwaBsrNYSd+thknA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fB0CP1xVYzsGj for ; Wed, 11 Feb 2026 13:49:05 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3bfac by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 13:49:05 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 93719f8c8348 - stable/14 - qlnxe: Fix setting the unicast MAC filter of RX path 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/14 X-Git-Reftype: branch X-Git-Commit: 93719f8c8348a5d13c9037352072ce67f530288b Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 13:49:05 +0000 Message-Id: <698c88d1.3bfac.33a7a67e@gitrepo.freebsd.org> The branch stable/14 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=93719f8c8348a5d13c9037352072ce67f530288b commit 93719f8c8348a5d13c9037352072ce67f530288b Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:53 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-11 13:48:07 +0000 qlnxe: Fix setting the unicast MAC filter of RX path When an Ethernet interface is added to lagg(4) as a child interface, its type, aka if_type, is changed from IFT_ETHER to IFT_IEEE8023ADLAG. Well changing the link-layer address of the lagg(4) interface will be propagated to all child interfaces, hence the drivers of child interfaces shall not presume the type of the interface will not be changed. Meanwhile, on initializing, an ifnet has been fully attached and it is guaranteed to have non-null link-layer address so stop NULL checking for it. Reviewed by: kbowling Fixes: 792226e53023 qlnxe: Allow MAC address override MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54885 (cherry picked from commit f250852c9a0c1021c3be4b498e27cfc7b42a81db) (cherry picked from commit 6d138e958ffb318595eec29b910cada414e2f86d) --- sys/dev/qlnx/qlnxe/qlnx_os.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index 1c885133c3ec..ec2fd7cacfae 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -7057,20 +7057,10 @@ qlnx_set_rx_mode(qlnx_host_t *ha) int rc = 0; uint8_t filter; const if_t ifp = ha->ifp; - const struct ifaddr *ifa; - struct sockaddr_dl *sdl; - ifa = if_getifaddr(ifp); - if (if_gettype(ifp) == IFT_ETHER && ifa != NULL && - ifa->ifa_addr != NULL) { - sdl = (struct sockaddr_dl *) ifa->ifa_addr; - - rc = qlnx_set_ucast_rx_mac(ha, ECORE_FILTER_REPLACE, LLADDR(sdl)); - } else { - rc = qlnx_set_ucast_rx_mac(ha, ECORE_FILTER_REPLACE, ha->primary_mac); - } - if (rc) - return rc; + rc = qlnx_set_ucast_rx_mac(ha, ECORE_FILTER_REPLACE, if_getlladdr(ifp)); + if (rc) + return rc; rc = qlnx_remove_all_mcast_mac(ha); if (rc) From nobody Wed Feb 11 13:49: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 4fB0CR6tQQz6RVZl for ; Wed, 11 Feb 2026 13:49: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 4fB0CR4lJYz3ZdK for ; Wed, 11 Feb 2026 13:49:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770817747; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BgELWEMn91OG3HO4mmA5g0htav0aOFK8IrJYXFu2QiQ=; b=fsMwUFnMXFJrPbe3sAqKbRvG9EI9z5uzlkys3UDFnARZA2giep0t53hkofYNS6474ghV9b VG7PwbgkKDRIUvQ0qXd7y+4pT//LcOZHwQ3giiWIEkPaSvDe3fCL6xUsbl/KPKQfq7fMTD sll73yZF4UhCJag75/HFUvoXWybS1yDfEwU9FbPneW+yanA6ATpcWq6f7o59eCxjV3/0Z+ vhiwX4sR5nV//nAmW76kQwakNK6atTrH0zv/fWwaKFJHUW/SITCIfjGJTO8Atm8hDbtgLz +eUz4Oa1FlvgD0949Iw0wTQfpvCWiH69ipfx7IPWk+ScRdNpiPbbvNxlAW3j7A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770817747; a=rsa-sha256; cv=none; b=OPtoUOseKtXWL/KEk8tIOcwfikCUtUtVE8C4SqtQf6HiNxyIMIMh9hrOgdiyaayM15dnE7 YDsSDGj5N75YRbW2iO8MET3zNCVBQfeI10xThq5lULbSzf93aEK+ETyAsC1sa7ABfQRgc0 xcb0RhM5kQxSlC8PxrwLjIQomrgKBuXqB03BbO1njGXgzjPjcg4tQ+P0hBCIr67PsvjeRq wH5iSOXVEWv51F2GHMiI03m47q5U16wGfYS9nZQP0E+mi5t8gchNgUU7PZS0NM82YINDL+ PKiM3FHbH1jwn2gCrVT+IWn2ZoOvaPwSvQsQVKA5Z9ZS4aP6S4Zmdy9QKRrL8Q== 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=1770817747; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=BgELWEMn91OG3HO4mmA5g0htav0aOFK8IrJYXFu2QiQ=; b=FQvdYf7wh5z5UKWgISwra5UnN+GsCeTAYRLF9ST96NzSmxkQE0PcWcLd76Mph5WjlrstIi Uk0TjFhUmqL7i2deFUce4ov3zc4dp/2C6n0bVrLEwZ2FspFogl3sdYGYLVaB0CfTpRCy9P f1rejgjNgjYfKRwrj4SbwaYCBQFJ0OFiI520SBQYZY4WmIm+mRSa5gGJNBorVXtmrkxxZL ghcMwD91piPJavM+1a5plmD5GSgmJgCpKG/GjpZmwpo6vC9cM4l1t7WzMf0vEi45p0+qV1 0swC3ZljNkVluIzNqXqU2XzZ+2yXSQAjvSyGF6P8ZaHCZZfxfdAe9T9vOggJ8A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fB0CR3T6Yzs3H for ; Wed, 11 Feb 2026 13:49:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3be17 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 13:49:07 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: ee6495580925 - stable/14 - qlnxe: Avoid reinitializing the interface when it is already initialized 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/14 X-Git-Reftype: branch X-Git-Commit: ee6495580925b337f5851b6ee0f1188f81d7a6c8 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 13:49:07 +0000 Message-Id: <698c88d3.3be17.74fae6f4@gitrepo.freebsd.org> The branch stable/14 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=ee6495580925b337f5851b6ee0f1188f81d7a6c8 commit ee6495580925b337f5851b6ee0f1188f81d7a6c8 Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:54 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-11 13:48:08 +0000 qlnxe: Avoid reinitializing the interface when it is already initialized qlnx_init_locked() unconditionally uninitialize the interface thus is actually reinitializing the interface. Well the init routine qlnx_init() is to initialize the interface by net stack when assigned with the first inet or inet6 address. The ioctl SIOCSIFADDR for the first inet6 address is handled by ether_ioctl() thus the interface is reinitialized no matter it was initialized or not. Add a driver status check for that to avoid reinitializing. Further plan is removing SIOCSIFADDR ioctl from the driver and let ether_ioctl() handle it. Reviewed by: kbowling MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54887 (cherry picked from commit c10e6bc0f0079e90cb484323ad71d437f1882422) (cherry picked from commit 8731ff4871d5397bae65bf184c44629a52c0e97b) --- sys/dev/qlnx/qlnxe/qlnx_os.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index b0dac3a82582..bc0282e3c22b 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -2431,7 +2431,8 @@ qlnx_init(void *arg) QL_DPRINT2(ha, "enter\n"); QLNX_LOCK(ha); - qlnx_init_locked(ha); + if ((if_getdrvflags(ha->ifp) & IFF_DRV_RUNNING) == 0) + qlnx_init_locked(ha); QLNX_UNLOCK(ha); QL_DPRINT2(ha, "exit\n"); From nobody Wed Feb 11 13:49: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 4fB0CR4nyzz6RVGn for ; Wed, 11 Feb 2026 13:49: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 4fB0CR0YyDz3ZkJ for ; Wed, 11 Feb 2026 13:49:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770817747; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Mj/jrPqTpyrFvGUHgK71zA2Sku6bqUvY8xXEUTVKSkA=; b=ey3WJJtzRic21eTnCEfvFIZsJ3/OpjhWD//zyyRdiOqGnwJtNTmsTt8O9cgKR50MilLv1Z 6+X3eFT1eZo5Xi8jbyuBFzEDbh34OxDZuoloTdsm+4BVXTTJpf0Yky6FCpizxyy7s9VWz1 3P4EZnMiwM2EjWgoBVAsHIQfA7xxoyjuF66GRKPtNWNVwh426OajZQWTYwLEljpF3YNm+e ZRlZP76mBbFK8sdoqUPuLTArupMVwMR71wQrjkI0vNGt8S3uZExnYHn6P5L39mHmV/FRuU 3YhPb+ZEpJh9Vp3Gaqo2S+sbBIJcyA9v6QlauqE5CaIzcncT7JZtvfmPb43djg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770817747; a=rsa-sha256; cv=none; b=iSD+p/gxHbqPUhK5IXNGGmaUOyrWKPs4LwO5HN/6ObFuDxbXKA/zZc5JYdRUUVQwlpLT93 Qnr6RhkvpqqvOvSRRdtsC+f9hDFsF7oiO24kj7vmUi2/1gbz75+HzR+gWXIm9IA/MrRxQY Vqyrk4/r+v+A7l2u0SFD0VO4xymxX/xddCrNVZudz5gHB5TtcRh6hVbHXZJYgGBPlFYLIA abVjo+z1kArn0hwem43W/WUc6ieXHpsepBlXNziQapqiyPK4+f9H2jQrOM3Wm7aYpTBQgb r3jW4z+4xtesl8a11b3AvRCOU32T5ecbAUv2t92opW8zL8c6yqjPHaBN3pBf/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=1770817747; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Mj/jrPqTpyrFvGUHgK71zA2Sku6bqUvY8xXEUTVKSkA=; b=dm0qAFWWaZoMaZBpRGNVaifsEiAcQEDPi347jn0EMw1mru9TzLfmFAfLrQO0S+HsioVmDm fchRIyJ2kZu/te8xpowwkHfA7hR4kW2s2oeLN59ckiyfocYnVhBJY4fSNn6+Qng6PjP2s+ OEnYmT7HK0JQi9J/WozFcn+4jtU4T2FNWgqNGc6K2fRyP1TF+dfLhcJHzJYcdE8PoeM2kz cGk/G6TbtprCQnPp9kZUZVwyZ9FPpOedqGWwO0vYMEYk3m5qLX6CjReIqtYSHy7CcXZ0eY 1bluCVvMGArkSQIi4tS1WpuLAwan67rPU24F3jhecKGZjyEWzIX/Ns1w9ajf3g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fB0CQ2m58zshp for ; Wed, 11 Feb 2026 13:49:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3be13 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 13:49:06 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 6e5b12acb66a - stable/14 - qlnxe: Prevent potential concurrency between ioctls 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/14 X-Git-Reftype: branch X-Git-Commit: 6e5b12acb66a9e269801b8d88c8f9838044d631c Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 13:49:06 +0000 Message-Id: <698c88d2.3be13.26ff64b6@gitrepo.freebsd.org> The branch stable/14 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=6e5b12acb66a9e269801b8d88c8f9838044d631c commit 6e5b12acb66a9e269801b8d88c8f9838044d631c Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:53 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-11 13:48:07 +0000 qlnxe: Prevent potential concurrency between ioctls The driver-managed status flags should be lock protected to be touched. Also this can serialize ioctls those check the IFF_DRV_RUNNING status. Reviewed by: kbowling MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54886 (cherry picked from commit 0df8a998a9fe28af659cb401c537c6d785e55f81) (cherry picked from commit 285b25c080faf71c60de36e834ef31cf70e6b50d) --- sys/dev/qlnx/qlnxe/qlnx_os.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index ec2fd7cacfae..b0dac3a82582 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -2568,9 +2568,7 @@ qlnx_set_multi(qlnx_host_t *ha, uint32_t add_multi) mcnt = if_foreach_llmaddr(ifp, qlnx_copy_maddr, mta); - QLNX_LOCK(ha); qlnx_hw_set_multi(ha, mta, mcnt, add_multi); - QLNX_UNLOCK(ha); return (0); } @@ -2637,11 +2635,10 @@ qlnx_ioctl(if_t ifp, u_long cmd, caddr_t data) #ifdef INET if (ifa->ifa_addr->sa_family == AF_INET) { if_setflagbits(ifp, IFF_UP, 0); - if (!(if_getdrvflags(ifp) & IFF_DRV_RUNNING)) { - QLNX_LOCK(ha); + QLNX_LOCK(ha); + if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0) qlnx_init_locked(ha); - QLNX_UNLOCK(ha); - } + QLNX_UNLOCK(ha); QL_DPRINT4(ha, "SIOCSIFADDR (0x%lx) ipv4 [0x%08x]\n", cmd, ntohl(IA_SIN(ifa)->sin_addr.s_addr)); @@ -2703,19 +2700,23 @@ qlnx_ioctl(if_t ifp, u_long cmd, caddr_t data) case SIOCADDMULTI: QL_DPRINT4(ha, "%s (0x%lx)\n", "SIOCADDMULTI", cmd); - if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) { + QLNX_LOCK(ha); + if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0) { if (qlnx_set_multi(ha, 1)) ret = EINVAL; } + QLNX_UNLOCK(ha); break; case SIOCDELMULTI: QL_DPRINT4(ha, "%s (0x%lx)\n", "SIOCDELMULTI", cmd); - if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) { + QLNX_LOCK(ha); + if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0) { if (qlnx_set_multi(ha, 0)) ret = EINVAL; } + QLNX_UNLOCK(ha); break; case SIOCSIFMEDIA: From nobody Wed Feb 11 13:49: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 4fB0CT0HW5z6RVdb for ; Wed, 11 Feb 2026 13:49: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 4fB0CS51GXz3bBN for ; Wed, 11 Feb 2026 13:49:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770817748; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yP4MlAZ+SErwhWdFXRSzetK2UivpXlT4BMld5R24Fww=; b=fz7u50Eqs+zN8V7ckB7VzRn2kzVPT4DzwSdOTwNGA+59bY/78QxsgavfYwvycI64T8dut7 sSjkKxNm4YvgUXRMwBSskIIVEjlRol7wPbEzh34ndPMdoV+g8BjEFEw9jEMSekab6vTaCg T/gmwwnp1qXUg3fsz9yStns4QmBJJLKTs/MsMxxOsltResITBiU5QAkOfdfSFhTGnli1Rz hfBkh1NoRLCL4B98msV91KwgDXuq2hNSBX4CammKvdw7MsX4eJSJPbBIvWYx0q2hbE/cPe yAUEfS7sfMV6LIZPOb5pk5KwDavfaq1yIE1OGLr6klUXZiAebe9ovqdcIZGxQQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770817748; a=rsa-sha256; cv=none; b=uQvHDDW6gh08HgkxqjHkVriffJMGJWQ1K6nmTNwPadTvS15CFvSKMyqC3L58bXo08w/1tq qCIXPgUmaX+FeFkW/hzanKa1p9RFrIxzBQxs+OJvuwTFM3i+lQuu9Q0jww9r+1D7bpnbJI jo1x7T5x/Fk0sMIncQTq0SlWsi+uSsHFAL/3Zfuq49hpig2NPajPWvPR29z4mXJ4Vdf8kb 0w7zJpEu23Wxxa0bX//IxYlWdHPBiH0Wu08BkOOWLXqcVpdZmlvGBd49hhcifxSkHAawtQ wYVJLU1x1A/Pi64wG2xxqi5/UmM+9ud0OW177rQh8enPSrZTcRkfmHKw8nNObA== 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=1770817748; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=yP4MlAZ+SErwhWdFXRSzetK2UivpXlT4BMld5R24Fww=; b=c2z52H7Tymd/NgQWXFlmRC+LJ3UzrY9Ebx4rlhebnyBO0z2va8F2N8l7/Ta1b4RfcTV2Bg 0Zxm2NPSL+WzBzdPopKaAXJwImU8DiAVccUbC2hW7t6agSOJ+DWuxHCddbKcW3eWZ3mVjq LrAuhLNqiPc/zt4Mqrmr98Bp2duz6Z+4WS09YDpLIZR3OWUYaqmjYxActTmvP7zn2r7QW3 criQBOKYWavKAPWzhuHzDidH4VEi3GE6LZYsLfbTO9/NcsYAV9zjOU2kh3UsPJkrRmCBMm xw4vTAWNwtOid+XaVrV0idBKDcYmoGHwWtap/qBK9zgqA91QPZ8U2dVMaMQdOg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fB0CS4K8Kzs3J for ; Wed, 11 Feb 2026 13:49:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3b429 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 13:49:08 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 20ffe22fcfe1 - stable/14 - qlnxe: Let ether_ioctl() handle SIOCSIFADDR ioctl 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/14 X-Git-Reftype: branch X-Git-Commit: 20ffe22fcfe13b48a8e993cbf565f9cd9229a4b3 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 13:49:08 +0000 Message-Id: <698c88d4.3b429.7fa08413@gitrepo.freebsd.org> The branch stable/14 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=20ffe22fcfe13b48a8e993cbf565f9cd9229a4b3 commit 20ffe22fcfe13b48a8e993cbf565f9cd9229a4b3 Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:54 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-11 13:48:08 +0000 qlnxe: Let ether_ioctl() handle SIOCSIFADDR ioctl Since the change [1], the init routine qlnx_init() works as intended. Let ether_ioctl() handle SIOCSIFADDR to simplify the code. Combined with the change [1], this shall be a better fix for PR 287445. [1] c10e6bc0f007 qlnxe: Avoid reinitializing the interface when it is already initialized PR: 287445 Reviewed by: kbowling MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54888 (cherry picked from commit 4012b63889e40bb877bc0e4c8da1792bce472c08) (cherry picked from commit 0f383f74b7398161c12a290e50b060baf45d2800) --- sys/dev/qlnx/qlnxe/qlnx_os.c | 25 ------------------------- sys/modules/qlnx/qlnxe/Makefile | 1 - 2 files changed, 26 deletions(-) diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index bc0282e3c22b..8a12d45512ac 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -30,8 +30,6 @@ * Author : David C Somayajulu, Cavium, Inc., San Jose, CA 95131. */ -#include "opt_inet.h" - #include #include "qlnx_os.h" #include "bcm_osal.h" @@ -2622,34 +2620,11 @@ qlnx_ioctl(if_t ifp, u_long cmd, caddr_t data) int ret = 0, mask; int flags; struct ifreq *ifr = (struct ifreq *)data; -#ifdef INET - struct ifaddr *ifa = (struct ifaddr *)data; -#endif qlnx_host_t *ha; ha = (qlnx_host_t *)if_getsoftc(ifp); switch (cmd) { - case SIOCSIFADDR: - QL_DPRINT4(ha, "SIOCSIFADDR (0x%lx)\n", cmd); - -#ifdef INET - if (ifa->ifa_addr->sa_family == AF_INET) { - if_setflagbits(ifp, IFF_UP, 0); - QLNX_LOCK(ha); - if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0) - qlnx_init_locked(ha); - QLNX_UNLOCK(ha); - QL_DPRINT4(ha, "SIOCSIFADDR (0x%lx) ipv4 [0x%08x]\n", - cmd, ntohl(IA_SIN(ifa)->sin_addr.s_addr)); - - arp_ifinit(ifp, ifa); - break; - } -#endif - ether_ioctl(ifp, cmd, data); - break; - case SIOCSIFMTU: QL_DPRINT4(ha, "SIOCSIFMTU (0x%lx)\n", cmd); diff --git a/sys/modules/qlnx/qlnxe/Makefile b/sys/modules/qlnx/qlnxe/Makefile index 2a44ae6ddde5..3d8415cf0e57 100644 --- a/sys/modules/qlnx/qlnxe/Makefile +++ b/sys/modules/qlnx/qlnxe/Makefile @@ -58,7 +58,6 @@ SRCS+=qlnx_rdma.c SRCS+=qlnx_ioctl.c SRCS+=qlnx_os.c -SRCS+=opt_inet.h SRCS+= ${LINUXKPI_GENSRCS} From nobody Wed Feb 11 13:49: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 4fB0CV569Xz6RVYl for ; Wed, 11 Feb 2026 13:49:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fB0CT681Rz3bBZ for ; Wed, 11 Feb 2026 13:49:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770817749; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6c1lvOGEL80Lug8GDbx3v1u1lniZte3GYX5eAQvwpJE=; b=HGiJwPtBsRzH2lelMmuTAnZTgjft51rknwX0hSSo5iYDZCxrIzV8r09pBKZLX3gSxZBtEd hGz7lNdrhc6N3ida9QLi4IluBMPXmNRoQQfuWz9WyYhFL8+DZcHUssIAEl7hPJD25E8nSR Yv8Tw2NmqLf0VCtUaQKf1V9Ae906V6FLYihq4HZLTgGugbKSp+4rpdblkMGU+MuH5ajhvV l71wGYbebUk3SZf/hBNRjAsfKExkmyNxJxJaUfd8TUzWAjApWcIr8JbkYbkz02EX6e8bwJ a+nchY7ppK2/hEAdUPJViQdkeYNHA5Tk474D25gaaRKhWj0nMCZ3TtuSKwGQCA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770817749; a=rsa-sha256; cv=none; b=bUpUwT6Qai56YdybETRAFIWZi885fiQN2upMf5XfEFOO0JIaHZHzU+1khN4QP0zCKhKxWS MuuCPIlUfE0VaLFW78fPNCk/At2yQzdnfczbw1mhLbT/nQws5w4l1hflwC/wwiO8NhvB2f blb7HH0lAP4Bq4EL54Yft9iotwVE0zIleuWsr8ZgCPaH930neDl5EUKDQPGHdT9+LPvaph pGtK7yT6hM7OlgjPOeRF+DrRqX1J3bL5yjxgm+QJadJ8sBtnXmeS0cbKji5fSTiyU0MK23 KP1ADQHJbIuzcZmjxh4IJOZlkAe8YLe1/9gKEgrZ5BKCt9K4QAJVHjtvq+sVNw== 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=1770817749; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6c1lvOGEL80Lug8GDbx3v1u1lniZte3GYX5eAQvwpJE=; b=R41hg67VuRfWHcEtZ/nnttoBFhbnmizkK9sUGlBQl/oSM6XmNyP3zlg2ClTn3ke9/EZAim aT6z8SxVXIk1Swjf939nK2XrrTA+9YzoK/wKRlYw6gu3ZIjhzwbkaj8jTy1nFF2iKT+i22 u1gAGNFD302sahzbuG3hnys2oDHE3XgWXKi8y66xFu8emXZvnZwQIos9VEgyx6/9ug2Zcp Y+1b0V+/sa1Fh1hEvjc/NnXmiU5fbbcJKaG/gxmdhjXopyWn3zJPRK2stV+MmuCwKbTZdY +M4WlK3VoTICEfBTSciXdumXevEgRFajWLxzy0wfS+nIzuUyqJRsUEld6WgfNw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fB0CT57Hkzsht for ; Wed, 11 Feb 2026 13:49:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3bbbf by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 13:49:09 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: e1a051fd53a0 - stable/14 - qlnxev: Remove now unneeded include for opt_inet.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: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: e1a051fd53a026ce6902c5d1df9d99e14e8675d1 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 13:49:09 +0000 Message-Id: <698c88d5.3bbbf.773cebb9@gitrepo.freebsd.org> The branch stable/14 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=e1a051fd53a026ce6902c5d1df9d99e14e8675d1 commit e1a051fd53a026ce6902c5d1df9d99e14e8675d1 Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:54 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-11 13:48:08 +0000 qlnxev: Remove now unneeded include for opt_inet.h Since the change [1], this is not required anymore. This change partially reverts commit 8a847947153e. [1] 4012b63889e4 qlnxe: Let ether_ioctl() handle SIOCSIFADDR ioctl Reviewed by: kbowling MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54889 (cherry picked from commit ec7950fe42344900567cb72c83845ea4dc5a7114) (cherry picked from commit 926e44b4983408dd8a4f5d7eb695de75b373548d) --- sys/modules/qlnx/qlnxev/Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/sys/modules/qlnx/qlnxev/Makefile b/sys/modules/qlnx/qlnxev/Makefile index 766a5a950032..ed62f1f1dd40 100644 --- a/sys/modules/qlnx/qlnxev/Makefile +++ b/sys/modules/qlnx/qlnxev/Makefile @@ -49,7 +49,6 @@ SRCS+=ecore_vf.c SRCS+=qlnx_ioctl.c SRCS+=qlnx_os.c -SRCS+=opt_inet.h SRCS+= ${LINUXKPI_GENSRCS} From nobody Wed Feb 11 13:49:10 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 4fB0CW36n6z6RVkW for ; Wed, 11 Feb 2026 13:49:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fB0CV6rNjz3b6g for ; Wed, 11 Feb 2026 13:49:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770817751; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wkTvSZxwJluTNkQFUovq+UIjLQgn1pkP1ASnP72x2u8=; b=DpgZ4BefAUXvr3SR0DbkfUIDAPeux7XuZl03DYyktoN42vleSGXK6ie4NiuvXCWU3+9OCw dWoQHMaKPGWqOhyLgm10O2zv45CIIeb4S3BFEvwIbPoBk1ZhGITtwm5RyB2YShaG2PNsnp RxUBxvEqautnhoPUE34siPVqIe6q8yibFQIJdLrTRYkkwds9Izm2jSY++UGfTFan0SL7Uy 497aeYDdV+Twg3h0BxqdQ/+DNZ+g0d0AxMWEGWn+sFzG2FQBbjWZrThU2flKtX8Aaa+Dy/ NtK/oPeGZ43egPRIEqR/9FUEorFob+TVXRnbHybt5AoTaXvpc7xHXWLWI6gQng== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770817751; a=rsa-sha256; cv=none; b=hauUAC0Ry31adWzjJMhi7k+XMlGtURA6LRxlvysh5ReoPxqlShTscmeJgYFr9ZvpNFn1xU f6tWWwJQxrPg2nZVe/30mzjL+4a+Ip5d6lD40VJ4RE5Qn0Zlb1Pm1+zUSeW9DOKmhuFjAQ DwfHpJMYkQI039XC6Ztk4FZNzMlu38SAyyZb0mMOdDOXwJ8A3Ijz67HyEiI5eEXjt4o/RY FQab+TY3rFhzxb0pVaK4ku+AzsbOC36ifMfplOJy4lkSaoJMThE+IRMMqEi5Z3YuhIUqlw FkznMLkcMlzoXGiXxDyJnjZJVYuDraG4n3ieotw7MS+eqSZvO6ZePIvuSHPsnQ== 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=1770817751; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=wkTvSZxwJluTNkQFUovq+UIjLQgn1pkP1ASnP72x2u8=; b=lOHS7vA8TiOKSQXDYfwt08NYEi3clNTZApqdaq7vaKGro/8fp6O+tfaGuhLHX6ejEUNCm1 vBOJ+jsOy0SedxEB6SJPY5AQ41cLt9w9UHVKr+ig9hl9ABIwCK5Xop1h7lS71UECwTgqIq 4dq6DCUguDoHFTHTW2AfBgRy0wSEAKwjqfJCMH/2rNuNSZx1A71memKFTUE89QE2v//Nb4 CqV5cPJD9ne+DSjMs4nETV7eZ87R1AQsrY5RzV1Z0WO2zg1Bk33C2RCxjLjL3DM6S9QMWu DnaHK/nE8CwD5D9QVl//OfghHRheVDMM/ZPmstSav4Y9Ua7LGy8zT5xYtTphew== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fB0CV5zrgzsc5 for ; Wed, 11 Feb 2026 13:49:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3aad4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 13:49:10 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 00ab0df79364 - stable/14 - qlnxe: Refactor setting the promiscuous and allmulti 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: zlei X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 00ab0df79364f4567ad61f6a66eba1b2f0a7d507 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 13:49:10 +0000 Message-Id: <698c88d6.3aad4.543dddf5@gitrepo.freebsd.org> The branch stable/14 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=00ab0df79364f4567ad61f6a66eba1b2f0a7d507 commit 00ab0df79364f4567ad61f6a66eba1b2f0a7d507 Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:54 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-11 13:48:08 +0000 qlnxe: Refactor setting the promiscuous and allmulti mode There are two entry points to set the promiscuous and allmulti mode. One is ioctl, and another is the init routine. Given they share almost the identical logic, refactor a little to make the code more clear. While here, for the ioctl, translate the error to EINVAL to avoid confusing the net stack. Reviewed by: kbowling MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54890 (cherry picked from commit 45b1718fadae7d56051ba04ef9d7a175a602a226) (cherry picked from commit b8d2c1c367465506b66a1696483caec1d04b2ea0) --- sys/dev/qlnx/qlnxe/qlnx_def.h | 1 - sys/dev/qlnx/qlnxe/qlnx_os.c | 80 +++++++++++++++++++------------------------ 2 files changed, 36 insertions(+), 45 deletions(-) diff --git a/sys/dev/qlnx/qlnxe/qlnx_def.h b/sys/dev/qlnx/qlnxe/qlnx_def.h index ed3a0403bb6f..6184e78fe846 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_def.h +++ b/sys/dev/qlnx/qlnxe/qlnx_def.h @@ -370,7 +370,6 @@ struct qlnx_host { uint16_t device_id; if_t ifp; - int if_flags; volatile int link_up; struct ifmedia media; uint16_t max_frame_size; diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index 8a12d45512ac..bc7ff63fe783 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -90,8 +90,8 @@ static void qlnx_init_ifnet(device_t dev, qlnx_host_t *ha); static void qlnx_init(void *arg); static void qlnx_init_locked(qlnx_host_t *ha); static int qlnx_set_multi(qlnx_host_t *ha, uint32_t add_multi); -static int qlnx_set_promisc(qlnx_host_t *ha, int enabled); -static int qlnx_set_allmulti(qlnx_host_t *ha, int enabled); +static int qlnx_set_promisc_allmulti(qlnx_host_t *ha, int flags); +static int _qlnx_set_promisc_allmulti(qlnx_host_t *ha, bool promisc, bool allmulti); static int qlnx_ioctl(if_t ifp, u_long cmd, caddr_t data); static int qlnx_media_change(if_t ifp); static void qlnx_media_status(if_t ifp, struct ifmediareq *ifmr); @@ -2573,44 +2573,49 @@ qlnx_set_multi(qlnx_host_t *ha, uint32_t add_multi) } static int -qlnx_set_promisc(qlnx_host_t *ha, int enabled) +qlnx_set_promisc_allmulti(qlnx_host_t *ha, int flags) { int rc = 0; - uint8_t filter; if (qlnx_vf_device(ha) == 0) return (0); - filter = ha->filter; - if (enabled) { - filter |= ECORE_ACCEPT_MCAST_UNMATCHED; - filter |= ECORE_ACCEPT_UCAST_UNMATCHED; - } else { - filter &= ~ECORE_ACCEPT_MCAST_UNMATCHED; - filter &= ~ECORE_ACCEPT_UCAST_UNMATCHED; - } - - rc = qlnx_set_rx_accept_filter(ha, filter); + rc = _qlnx_set_promisc_allmulti(ha, flags & IFF_PROMISC, + flags & IFF_ALLMULTI); return (rc); } static int -qlnx_set_allmulti(qlnx_host_t *ha, int enabled) +_qlnx_set_promisc_allmulti(qlnx_host_t *ha, bool promisc, bool allmulti) { int rc = 0; uint8_t filter; - - if (qlnx_vf_device(ha) == 0) - return (0); + bool mcast, ucast; filter = ha->filter; - if (enabled) { + filter |= ECORE_ACCEPT_UCAST_MATCHED; + filter |= ECORE_ACCEPT_MCAST_MATCHED; + filter |= ECORE_ACCEPT_BCAST; + + mcast = promisc || allmulti; + ucast = promisc; + + if (mcast) filter |= ECORE_ACCEPT_MCAST_UNMATCHED; - } else { + else filter &= ~ECORE_ACCEPT_MCAST_UNMATCHED; - } - rc = qlnx_set_rx_accept_filter(ha, filter); + if (ucast) + filter |= ECORE_ACCEPT_UCAST_UNMATCHED; + else + filter &= ~ECORE_ACCEPT_UCAST_UNMATCHED; + + if (filter == ha->filter) + return (0); + + rc = qlnx_set_rx_accept_filter(ha, filter); + if (rc == 0) + ha->filter = filter; return (rc); } @@ -2652,13 +2657,8 @@ qlnx_ioctl(if_t ifp, u_long cmd, caddr_t data) if (flags & IFF_UP) { if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) { - if ((flags ^ ha->if_flags) & - IFF_PROMISC) { - ret = qlnx_set_promisc(ha, flags & IFF_PROMISC); - } else if ((if_getflags(ifp) ^ ha->if_flags) & - IFF_ALLMULTI) { - ret = qlnx_set_allmulti(ha, flags & IFF_ALLMULTI); - } + if (qlnx_set_promisc_allmulti(ha, flags) != 0) + ret = EINVAL; } else { ha->max_frame_size = if_getmtu(ifp) + ETHER_HDR_LEN + ETHER_CRC_LEN; @@ -2669,7 +2669,6 @@ qlnx_ioctl(if_t ifp, u_long cmd, caddr_t data) qlnx_stop(ha); } - ha->if_flags = if_getflags(ifp); QLNX_UNLOCK(ha); break; @@ -6989,6 +6988,9 @@ qlnx_clean_filters(qlnx_host_t *ha) { int rc = 0; + /* Reset rx filter */ + ha->filter = 0; + /* Remove all unicast macs */ rc = qlnx_remove_all_ucast_mac(ha); if (rc) @@ -7032,7 +7034,6 @@ static int qlnx_set_rx_mode(qlnx_host_t *ha) { int rc = 0; - uint8_t filter; const if_t ifp = ha->ifp; rc = qlnx_set_ucast_rx_mac(ha, ECORE_FILTER_REPLACE, if_getlladdr(ifp)); @@ -7043,19 +7044,10 @@ qlnx_set_rx_mode(qlnx_host_t *ha) if (rc) return rc; - filter = ECORE_ACCEPT_UCAST_MATCHED | - ECORE_ACCEPT_MCAST_MATCHED | - ECORE_ACCEPT_BCAST; - - if (qlnx_vf_device(ha) == 0 || (if_getflags(ha->ifp) & IFF_PROMISC)) { - filter |= ECORE_ACCEPT_UCAST_UNMATCHED; - filter |= ECORE_ACCEPT_MCAST_UNMATCHED; - } else if (if_getflags(ha->ifp) & IFF_ALLMULTI) { - filter |= ECORE_ACCEPT_MCAST_UNMATCHED; - } - ha->filter = filter; - - rc = qlnx_set_rx_accept_filter(ha, filter); + if (qlnx_vf_device(ha) == 0) + rc = _qlnx_set_promisc_allmulti(ha, true, true); + else + rc = qlnx_set_promisc_allmulti(ha, if_getflags(ifp)); return (rc); } From nobody Wed Feb 11 13:49:11 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 4fB0CX2949z6RVbw for ; Wed, 11 Feb 2026 13:49:12 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fB0CW6yZWz3Zmq for ; Wed, 11 Feb 2026 13:49:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770817752; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KFYK1bgAOyrI7maDdeqIzoWVYVPiOb03oumZldosY0I=; b=U/ECaa6Ejvexegm4vfsWwwQi1Q3U4eRRqa7kSPO2M9jbnm0QlzXvEtreCGLV01xPnvL+MF Bsd7E8PE1ax1mdSVR4INFEuow/ia0SITuofMxFMiRNmMC1lvyRJf2jLyIlclFKrdcNKwIT 3fHKS0hSpXX06pW1b/QIo6IvNCMNvhOrmLUYj0A4ZeNqVKodBsPBXyiANkhwM47jkXcD51 FX7OtHgZ4NgnncOVwxxW6m5lYE80+afF2OJaCDPq50SUp+AuQzHuApO603/mTQj96Tn5Uo DCCKTewgbX54FnrpVxkpf1D3k/GRCwK9+LE/bvBWo5Z4/wnqnDnqqx/oX40btw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770817752; a=rsa-sha256; cv=none; b=Pw32R51WU180A6vhKdg2PuTnGIiVXTFpA5O1jhLJDtSEJ8O+hSBF6Slg0yVfpO0RsJoNzM RaffOSAb/BITs4B3VRGVnUI4AC5pJqUM9SAr0q0qa1YYIXkJ/QZPpNwiUP3QRRiqo9sjC2 leHYbkrAZqQnPsMOLZVcx11M8ApN8IF4IUYMmnRtnP06Nz5HepxPiPlhwlEx0sBpZse22f 2Rm4YrVIWHTWXfTk+PO9bUFebS7UiYxvnFqFNsdxAiChv0X69dKP27VZFyKej0CcM/ijbn MzCDJBqYmcVznNOPkwON5V4O3fX4hzJzCtfdGmQrJVzQCmWYBuuwjEjD8enOGg== 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=1770817752; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=KFYK1bgAOyrI7maDdeqIzoWVYVPiOb03oumZldosY0I=; b=qJy9WZG4Aw5W6fqy0nqYJG2vvulkA9+0X1sJzLdoVC94OQNBdwYbDg2FjmwyHO4lRyz/uL 7JzuPZYNjd1PVbtIvfYFUOhBLDajmnZSrUsVjO+MnNkQMhoITKvlz7i92JsHD+pmNacp3l A+mDxmKU9qI0GUahNV6O3UoSsDlea5bCWQ6X4vQSlFVAyGtyFn3Ydnw9i9zWzo6ee5rYN5 HTRpWmBPCblE+exIseNtNIYz2itY1k2Q9QcD8XlpFk3nfUBiGyStIm/U8KjXG36DC6OkFy iDukdNuveNS86gd2qrSi/rFbsd6ylRNTJI35Tw28fIAEZXb5GR7XTRdha1ccww== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fB0CW6TVWzsMR for ; Wed, 11 Feb 2026 13:49:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3afc9 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 13:49:11 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: ddfe98e8ccb1 - stable/14 - qlnxe: Allow tapping the TX packets 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/14 X-Git-Reftype: branch X-Git-Commit: ddfe98e8ccb120a0a5c42b2288694ecd2b70c80c Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 13:49:11 +0000 Message-Id: <698c88d7.3afc9.313c496d@gitrepo.freebsd.org> The branch stable/14 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=ddfe98e8ccb120a0a5c42b2288694ecd2b70c80c commit ddfe98e8ccb120a0a5c42b2288694ecd2b70c80c Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:54 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-11 13:48:09 +0000 qlnxe: Allow tapping the TX packets Currently only the packets in the RX path can be captured by tcpdump as the ETHER_BPF_MTAP call in the TX path is missing. Add it so that packets in both directions can be captured. PR: 290973 Reviewed by: kbowling MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54891 (cherry picked from commit 968647502ec21464ad3aecc7577ff0e8dfd41693) (cherry picked from commit 425b9cec0b8ce15a6e67d54a73f4f38dc66a4ccc) --- sys/dev/qlnx/qlnxe/qlnx_os.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index bc7ff63fe783..5f6f336aab8d 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -2993,6 +2993,7 @@ qlnx_transmit_locked(if_t ifp, struct qlnx_fastpath *fp, struct mbuf *mp) drbr_advance(ifp, fp->tx_br); fp->tx_pkts_transmitted++; fp->tx_pkts_processed++; + ETHER_BPF_MTAP(ifp, mp); } mp = drbr_peek(ifp, fp->tx_br); From nobody Wed Feb 11 13:49:12 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 4fB0CY38MYz6RVZ8 for ; Wed, 11 Feb 2026 13:49:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fB0CY0pfFz3b8s for ; Wed, 11 Feb 2026 13:49:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770817753; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WcYY7zc9biZquMOROI43U2mye9nJz8mp5N7zGkkzx2k=; b=aUgLFTjdQ8MNWbK14VCXWqCE2aL6pjqRoGKVc1hFK0kYRoGKp3reuaAO/hBmG68PDKZS/m GI0FYVkKmCBQLCCqpK5EFMLSLMD8eYcBLMnQOzPQR3/UmNwdKQipaI2uVMfGDGlPQEZLGn Lfepaz1CKWa5IciHG9+c+LTRShMFQcYbP3yhRjrmbDYgyIT/8pGJfrMlOGJQm6hTFTJlhp haJdrRoMF86Q9VK7A1vcV0I9x070yOXRjPpOvDdZ2+YeT/BmVyWcq9TRRkYsdlhvbSn9bQ 3m+jsaWG/tavQ9hs7HyVbjpxmwMr8ogmgHUw3JOblRa/YjN6Si3kwUdr4KxrCg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770817753; a=rsa-sha256; cv=none; b=OAZHxCIBLL/oMB86hbIZzkxdWTFsJI9q38ZTsSgCMrdREfBb7CNR9mFpNJxdqenKMT7JgG 08gOcPptffhj2dTURXCOhMmg3qi26OP4zjB/y8sqhDeouZY/sNe2gxzUNAtxZTCSxnITbT nSlTMbI+Eo4WAbnR2jyngcYmOPvhLsEJKPmfoePQCEJnWTiSqeyo+16NUhmnUoF3UTkR5s exVwvSEcHO4gIFuiLM3WA7bwjp/JJ90L9dEyT8NY6R1zxuLcJHG2LD/PxJQyo8RN4qJgiP dxBSkkJH9YXOgw595mMNz8zGvoz5ZiG914mZP+30Obq4lCE8hjElowN3de8OwA== 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=1770817753; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=WcYY7zc9biZquMOROI43U2mye9nJz8mp5N7zGkkzx2k=; b=FS+MJrZ/D10N2SO9kUTS8RfiCHy4lLFfurNT1VfuHZCPNP+m3+eKc/xpjPraBlS/YvtjAB /A6KA4DPL3a5my9x0noxYdwjoKH5NHFk0hLNIeMsBy6yu8DVvK/ROaXFIRNZSugHrEBG9q rrc/398IocpM8Bfgg660yvJ2DkiKO7pG2LyFYXHGJDqrg1PQsNgvoOX+mrmOOswGqC6jg1 VTjgKDIZ+aXDnD0JIAVn0PqACxUHJv0iBx0y3dusQlCTodd/5G1OveLUGA0K8vg36t/oHR RQM2JfcQ/sfFVZQKQ4RWAALTPxn0n+pasMvQ5DPg06Ji250/LhuBAOat1djm2g== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fB0CY02g6zsGm for ; Wed, 11 Feb 2026 13:49:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3accc by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 13:49:12 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Zhenlei Huang Subject: git: 87942d7f8fc5 - stable/14 - qlnxe: Overhaul setting the multicast MAC filters 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/14 X-Git-Reftype: branch X-Git-Commit: 87942d7f8fc58e8b4af90ec1050b263005c3d64e Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 13:49:12 +0000 Message-Id: <698c88d8.3accc.fb4872d@gitrepo.freebsd.org> The branch stable/14 has been updated by zlei: URL: https://cgit.FreeBSD.org/src/commit/?id=87942d7f8fc58e8b4af90ec1050b263005c3d64e commit 87942d7f8fc58e8b4af90ec1050b263005c3d64e Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:55 +0000 Commit: Zhenlei Huang CommitDate: 2026-02-11 13:48:09 +0000 qlnxe: Overhaul setting the multicast MAC filters When operating the multicast MAC filters, the current usage of ECORE_FILTER_ADD and ECORE_FILTER_REMOVE are rather misleading. ECORE_FILTER_ADD reads "adding new filter", but it actually removes any existing filters and then addes a new one. ECORE_FILTER_REMOVE reads "removing a filter", but it actually removes all filters. Let's use ECORE_FILTER_REPLACE and ECORE_FILTER_FLUSH instead to avoid confusion. In the current implementation, only one MAC address is passed to ecore_sp_eth_filter_mcast() and any previously installed filters are removed, hence it breaks the multicast function. That can be observed via either assigning new IPv6 addresses to the interface or putting the interface as a member of lagg(4) interface with LACP aggregation protocol. Fix that by calculating the multicast filter bins directly from multicast MAC addresses and replace the filters every time the bins changes. Due to the nature of the multicast filter, which is hash based, a full 1's multicast filter bin means all multicast packets are to be accepted. Thus there's no need to make the vport into allmulti mode when the number of multicast MAC addresses exceeds the limit (ECORE_MAX_MC_ADDRS, 64). Tested with a FastLinQ QL41212HLCU 25GbE adapter, both MFW_Version 8.35.23.0 and 8.59.16.0 are tested. Note: Currently the VF port is set to promiscuous mode unconditionally, and the setting of the multicast MAC filters for VF ports is short-circuited, so the VF port functions as it did. PR: 265857 PR: 290973 Reviewed by: kbowling MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54892 (cherry picked from commit 70256d2b86d95a678a63c65b157b9c635f1f4c6a) (cherry picked from commit 0cfc1145cdfc2a7beeeb7f39ad2722c7053681c0) --- sys/dev/qlnx/qlnxe/ecore_l2.c | 41 ++++---- sys/dev/qlnx/qlnxe/ecore_l2_api.h | 9 +- sys/dev/qlnx/qlnxe/ecore_vf.c | 11 +-- sys/dev/qlnx/qlnxe/qlnx_def.h | 5 +- sys/dev/qlnx/qlnxe/qlnx_os.c | 190 ++++++++------------------------------ 5 files changed, 66 insertions(+), 190 deletions(-) diff --git a/sys/dev/qlnx/qlnxe/ecore_l2.c b/sys/dev/qlnx/qlnxe/ecore_l2.c index ee7d225540d0..5e281c330765 100644 --- a/sys/dev/qlnx/qlnxe/ecore_l2.c +++ b/sys/dev/qlnx/qlnxe/ecore_l2.c @@ -1617,14 +1617,13 @@ ecore_sp_eth_filter_mcast(struct ecore_hwfn *p_hwfn, struct ecore_spq_comp_cb *p_comp_data) { struct vport_update_ramrod_data *p_ramrod = OSAL_NULL; - u32 bins[ETH_MULTICAST_MAC_BINS_IN_REGS]; struct ecore_spq_entry *p_ent = OSAL_NULL; struct ecore_sp_init_data init_data; u8 abs_vport_id = 0; enum _ecore_status_t rc; int i; - if (p_filter_cmd->opcode == ECORE_FILTER_ADD) + if (p_filter_cmd->opcode == ECORE_FILTER_REPLACE) rc = ecore_fw_vport(p_hwfn, p_filter_cmd->vport_to_add_to, &abs_vport_id); else @@ -1654,30 +1653,33 @@ ecore_sp_eth_filter_mcast(struct ecore_hwfn *p_hwfn, /* explicitly clear out the entire vector */ OSAL_MEMSET(&p_ramrod->approx_mcast.bins, 0, sizeof(p_ramrod->approx_mcast.bins)); - OSAL_MEMSET(bins, 0, sizeof(u32) * ETH_MULTICAST_MAC_BINS_IN_REGS); - /* filter ADD op is explicit set op and it removes - * any existing filters for the vport. - */ - if (p_filter_cmd->opcode == ECORE_FILTER_ADD) { - for (i = 0; i < p_filter_cmd->num_mc_addrs; i++) { - u32 bit; - - bit = ecore_mcast_bin_from_mac(p_filter_cmd->mac[i]); - bins[bit / 32] |= 1 << (bit % 32); - } - + /* + * filter REPLACE op is explicit set op and it removes + * any existing filters for the vport. + */ + if (p_filter_cmd->opcode == ECORE_FILTER_REPLACE) { + _Static_assert(sizeof(p_filter_cmd->bins) == sizeof(p_ramrod->approx_mcast.bins), "Size mismatch"); + _Static_assert(nitems(p_filter_cmd->bins) == ETH_MULTICAST_MAC_BINS_IN_REGS, "Size mismatch"); /* Convert to correct endianity */ for (i = 0; i < ETH_MULTICAST_MAC_BINS_IN_REGS; i++) { struct vport_update_ramrod_mcast *p_ramrod_bins; p_ramrod_bins = &p_ramrod->approx_mcast; - p_ramrod_bins->bins[i] = OSAL_CPU_TO_LE32(bins[i]); + p_ramrod_bins->bins[i] = OSAL_CPU_TO_LE32(p_filter_cmd->bins[i]); } - } + } /* else FLUSH op clears existing filters */ p_ramrod->common.vport_id = abs_vport_id; rc = ecore_spq_post(p_hwfn, p_ent, OSAL_NULL); + + DP_INFO(p_hwfn, "Multicast filter cmd: [%s], bins: [%08x, %08x, %08x, %08x, %08x, %08x, %08x, %08x], ret = %d\n", + p_filter_cmd->opcode == ECORE_FILTER_REPLACE ? "replace" : "flush", + p_ramrod->approx_mcast.bins[0], p_ramrod->approx_mcast.bins[1], + p_ramrod->approx_mcast.bins[2], p_ramrod->approx_mcast.bins[3], + p_ramrod->approx_mcast.bins[4], p_ramrod->approx_mcast.bins[5], + p_ramrod->approx_mcast.bins[6], p_ramrod->approx_mcast.bins[7], rc); + if (rc != ECORE_SUCCESS) DP_ERR(p_hwfn, "Multicast filter command failed %d\n", rc); @@ -1692,10 +1694,9 @@ enum _ecore_status_t ecore_filter_mcast_cmd(struct ecore_dev *p_dev, enum _ecore_status_t rc = ECORE_SUCCESS; int i; - /* only ADD and REMOVE operations are supported for multi-cast */ - if ((p_filter_cmd->opcode != ECORE_FILTER_ADD && - (p_filter_cmd->opcode != ECORE_FILTER_REMOVE)) || - (p_filter_cmd->num_mc_addrs > ECORE_MAX_MC_ADDRS)) { + /* only REPLACE and FLUSH operations are supported for multi-cast */ + if ((p_filter_cmd->opcode != ECORE_FILTER_REPLACE && + (p_filter_cmd->opcode != ECORE_FILTER_FLUSH))) { return ECORE_INVAL; } diff --git a/sys/dev/qlnx/qlnxe/ecore_l2_api.h b/sys/dev/qlnx/qlnxe/ecore_l2_api.h index 610cc329f1fd..3b2f48e9fe11 100644 --- a/sys/dev/qlnx/qlnxe/ecore_l2_api.h +++ b/sys/dev/qlnx/qlnxe/ecore_l2_api.h @@ -162,14 +162,13 @@ struct ecore_filter_ucast { }; struct ecore_filter_mcast { - /* MOVE is not supported for multicast */ + /* Only REPLACE and FLUSH is supported for multicast */ enum ecore_filter_opcode opcode; u8 vport_to_add_to; u8 vport_to_remove_from; - u8 num_mc_addrs; -#define ECORE_MAX_MC_ADDRS 64 - unsigned char mac[ECORE_MAX_MC_ADDRS][ETH_ALEN]; + u32 bins[ETH_MULTICAST_MAC_BINS_IN_REGS]; }; +#define ECORE_MAX_MC_ADDRS 64 struct ecore_filter_accept_flags { u8 update_rx_mode_config; @@ -384,7 +383,7 @@ struct ecore_sp_vport_update_params { u8 anti_spoofing_en; u8 update_accept_any_vlan_flg; u8 accept_any_vlan; - u32 bins[8]; + u32 bins[ETH_MULTICAST_MAC_BINS_IN_REGS]; struct ecore_rss_params *rss_params; struct ecore_filter_accept_flags accept_flags; struct ecore_sge_tpa_params *sge_tpa_params; diff --git a/sys/dev/qlnx/qlnxe/ecore_vf.c b/sys/dev/qlnx/qlnxe/ecore_vf.c index 6cdc94d05c86..a7b006b982de 100644 --- a/sys/dev/qlnx/qlnxe/ecore_vf.c +++ b/sys/dev/qlnx/qlnxe/ecore_vf.c @@ -1515,18 +1515,13 @@ void ecore_vf_pf_filter_mcast(struct ecore_hwfn *p_hwfn, struct ecore_filter_mcast *p_filter_cmd) { struct ecore_sp_vport_update_params sp_params; - int i; OSAL_MEMSET(&sp_params, 0, sizeof(sp_params)); sp_params.update_approx_mcast_flg = 1; - if (p_filter_cmd->opcode == ECORE_FILTER_ADD) { - for (i = 0; i < p_filter_cmd->num_mc_addrs; i++) { - u32 bit; - - bit = ecore_mcast_bin_from_mac(p_filter_cmd->mac[i]); - sp_params.bins[bit / 32] |= 1 << (bit % 32); - } + if (p_filter_cmd->opcode == ECORE_FILTER_REPLACE) { + _Static_assert(sizeof(sp_params.bins) == sizeof(p_filter_cmd->bins), "Size mismatch"); + memcpy(sp_params.bins, p_filter_cmd->bins, sizeof(sp_params.bins)); } ecore_vf_pf_vport_update(p_hwfn, &sp_params); diff --git a/sys/dev/qlnx/qlnxe/qlnx_def.h b/sys/dev/qlnx/qlnxe/qlnx_def.h index 6184e78fe846..f895487c47e4 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_def.h +++ b/sys/dev/qlnx/qlnxe/qlnx_def.h @@ -319,7 +319,6 @@ typedef struct qlnx_link_output qlnx_link_output_t; #define QLNX_TPA_MAX_AGG_BUFFERS (20) -#define QLNX_MAX_NUM_MULTICAST_ADDRS ECORE_MAX_MC_ADDRS typedef struct _qlnx_mcast { uint16_t rsrvd; uint8_t addr[6]; @@ -442,9 +441,7 @@ struct qlnx_host { qlnx_ivec_t irq_vec[QLNX_MAX_RSS]; uint8_t filter; - uint32_t nmcast; - qlnx_mcast_t mcast[QLNX_MAX_NUM_MULTICAST_ADDRS]; - struct ecore_filter_mcast ecore_mcast; + uint32_t ecore_mcast_bins[ETH_MULTICAST_MAC_BINS_IN_REGS]; uint8_t primary_mac[ETH_ALEN]; uint8_t prio_to_tc[MAX_NUM_PRI]; struct ecore_eth_stats hw_stats; diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index 5f6f336aab8d..85c16842283c 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -48,6 +48,7 @@ #include "ecore_sp_commands.h" #include "ecore_dev_api.h" #include "ecore_l2_api.h" +#include "ecore_l2.h" #include "ecore_mcp.h" #include "ecore_hw_defs.h" #include "mcp_public.h" @@ -89,7 +90,7 @@ static void qlnx_fp_isr(void *arg); static void qlnx_init_ifnet(device_t dev, qlnx_host_t *ha); static void qlnx_init(void *arg); static void qlnx_init_locked(qlnx_host_t *ha); -static int qlnx_set_multi(qlnx_host_t *ha, uint32_t add_multi); +static int qlnx_set_multi(qlnx_host_t *ha); static int qlnx_set_promisc_allmulti(qlnx_host_t *ha, int flags); static int _qlnx_set_promisc_allmulti(qlnx_host_t *ha, bool promisc, bool allmulti); static int qlnx_ioctl(if_t ifp, u_long cmd, caddr_t data); @@ -127,14 +128,13 @@ static void qlnx_set_id(struct ecore_dev *cdev, char name[NAME_SIZE], char ver_str[VER_SIZE]); static void qlnx_unload(qlnx_host_t *ha); static int qlnx_load(qlnx_host_t *ha); -static void qlnx_hw_set_multi(qlnx_host_t *ha, uint8_t *mta, uint32_t mcnt, - uint32_t add_mac); static void qlnx_dump_buf8(qlnx_host_t *ha, const char *msg, void *dbuf, uint32_t len); static int qlnx_alloc_rx_buffer(qlnx_host_t *ha, struct qlnx_rx_queue *rxq); static void qlnx_reuse_rx_data(struct qlnx_rx_queue *rxq); static void qlnx_update_rx_prod(struct ecore_hwfn *p_hwfn, struct qlnx_rx_queue *rxq); +static int qlnx_remove_all_mcast_mac(qlnx_host_t *ha); static int qlnx_set_rx_accept_filter(qlnx_host_t *ha, uint8_t filter); static int qlnx_grc_dumpsize(qlnx_host_t *ha, uint32_t *num_dwords, int hwfn_index); @@ -2438,138 +2438,45 @@ qlnx_init(void *arg) return; } -static int -qlnx_config_mcast_mac_addr(qlnx_host_t *ha, uint8_t *mac_addr, uint32_t add_mac) -{ - struct ecore_filter_mcast *mcast; - struct ecore_dev *cdev; - int rc; - - cdev = &ha->cdev; - - mcast = &ha->ecore_mcast; - bzero(mcast, sizeof(struct ecore_filter_mcast)); - - if (add_mac) - mcast->opcode = ECORE_FILTER_ADD; - else - mcast->opcode = ECORE_FILTER_REMOVE; - - mcast->num_mc_addrs = 1; - memcpy(mcast->mac, mac_addr, ETH_ALEN); - - rc = ecore_filter_mcast_cmd(cdev, mcast, ECORE_SPQ_MODE_CB, NULL); - - return (rc); -} - -static int -qlnx_hw_add_mcast(qlnx_host_t *ha, uint8_t *mta) -{ - int i; - - for (i = 0; i < QLNX_MAX_NUM_MULTICAST_ADDRS; i++) { - if (QL_MAC_CMP(ha->mcast[i].addr, mta) == 0) - return 0; /* its been already added */ - } - - for (i = 0; i < QLNX_MAX_NUM_MULTICAST_ADDRS; i++) { - if ((ha->mcast[i].addr[0] == 0) && - (ha->mcast[i].addr[1] == 0) && - (ha->mcast[i].addr[2] == 0) && - (ha->mcast[i].addr[3] == 0) && - (ha->mcast[i].addr[4] == 0) && - (ha->mcast[i].addr[5] == 0)) { - if (qlnx_config_mcast_mac_addr(ha, mta, 1)) - return (-1); - - bcopy(mta, ha->mcast[i].addr, ETH_ALEN); - ha->nmcast++; - - return 0; - } - } - return 0; -} - -static int -qlnx_hw_del_mcast(qlnx_host_t *ha, uint8_t *mta) -{ - int i; - - for (i = 0; i < QLNX_MAX_NUM_MULTICAST_ADDRS; i++) { - if (QL_MAC_CMP(ha->mcast[i].addr, mta) == 0) { - if (qlnx_config_mcast_mac_addr(ha, mta, 0)) - return (-1); - - ha->mcast[i].addr[0] = 0; - ha->mcast[i].addr[1] = 0; - ha->mcast[i].addr[2] = 0; - ha->mcast[i].addr[3] = 0; - ha->mcast[i].addr[4] = 0; - ha->mcast[i].addr[5] = 0; - - ha->nmcast--; - - return 0; - } - } - return 0; -} - -/* - * Name: qls_hw_set_multi - * Function: Sets the Multicast Addresses provided the host O.S into the - * hardware (for the given interface) - */ -static void -qlnx_hw_set_multi(qlnx_host_t *ha, uint8_t *mta, uint32_t mcnt, - uint32_t add_mac) -{ - int i; - - for (i = 0; i < mcnt; i++) { - if (add_mac) { - if (qlnx_hw_add_mcast(ha, mta)) - break; - } else { - if (qlnx_hw_del_mcast(ha, mta)) - break; - } - - mta += ETHER_ADDR_LEN; - } - return; -} - static u_int -qlnx_copy_maddr(void *arg, struct sockaddr_dl *sdl, u_int mcnt) +qlnx_mcast_bins_from_maddr(void *arg, struct sockaddr_dl *sdl, u_int mcnt) { - uint8_t *mta = arg; - - if (mcnt == QLNX_MAX_NUM_MULTICAST_ADDRS) - return (0); + uint8_t bit; + uint32_t *bins = arg; - bcopy(LLADDR(sdl), &mta[mcnt * ETHER_ADDR_LEN], ETHER_ADDR_LEN); + bit = ecore_mcast_bin_from_mac(LLADDR(sdl)); + bins[bit / 32] |= 1 << (bit % 32); return (1); } static int -qlnx_set_multi(qlnx_host_t *ha, uint32_t add_multi) +qlnx_set_multi(qlnx_host_t *ha) { - uint8_t mta[QLNX_MAX_NUM_MULTICAST_ADDRS * ETHER_ADDR_LEN]; - if_t ifp = ha->ifp; - u_int mcnt; + struct ecore_filter_mcast mcast; + struct ecore_dev *cdev; + if_t ifp = ha->ifp; + u_int mcnt __unused; + int rc; if (qlnx_vf_device(ha) == 0) return (0); - mcnt = if_foreach_llmaddr(ifp, qlnx_copy_maddr, mta); + bzero(&mcast, sizeof(struct ecore_filter_mcast)); + mcnt = if_foreach_llmaddr(ifp, qlnx_mcast_bins_from_maddr, mcast.bins); + QL_DPRINT1(ha, "total %d multicast MACs found\n", mcnt); - qlnx_hw_set_multi(ha, mta, mcnt, add_multi); + if (memcmp(ha->ecore_mcast_bins, mcast.bins, sizeof(mcast.bins)) == 0) + return (0); - return (0); + cdev = &ha->cdev; + mcast.opcode = ECORE_FILTER_REPLACE; + rc = ecore_filter_mcast_cmd(cdev, &mcast, ECORE_SPQ_MODE_CB, NULL); + if (rc == 0) + memcpy(ha->ecore_mcast_bins, mcast.bins, sizeof(mcast.bins)); + + QL_DPRINT1(ha, "ecore_filter_mcast_cmd: end(%d)\n", rc); + return (rc); } static int @@ -2673,22 +2580,12 @@ qlnx_ioctl(if_t ifp, u_long cmd, caddr_t data) break; case SIOCADDMULTI: - QL_DPRINT4(ha, "%s (0x%lx)\n", "SIOCADDMULTI", cmd); - - QLNX_LOCK(ha); - if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0) { - if (qlnx_set_multi(ha, 1)) - ret = EINVAL; - } - QLNX_UNLOCK(ha); - break; - case SIOCDELMULTI: - QL_DPRINT4(ha, "%s (0x%lx)\n", "SIOCDELMULTI", cmd); + QL_DPRINT4(ha, "%s (0x%lx)\n", "SIOCADDMULTI/SIOCDELMULTI", cmd); QLNX_LOCK(ha); if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0) { - if (qlnx_set_multi(ha, 0)) + if (qlnx_set_multi(ha) != 0) ret = EINVAL; } QLNX_UNLOCK(ha); @@ -6955,31 +6852,18 @@ qlnx_remove_all_ucast_mac(qlnx_host_t *ha) static int qlnx_remove_all_mcast_mac(qlnx_host_t *ha) { - struct ecore_filter_mcast *mcast; + struct ecore_filter_mcast mcast; struct ecore_dev *cdev; - int rc, i; + int rc; cdev = &ha->cdev; - mcast = &ha->ecore_mcast; - bzero(mcast, sizeof(struct ecore_filter_mcast)); - - mcast->opcode = ECORE_FILTER_REMOVE; - - for (i = 0; i < QLNX_MAX_NUM_MULTICAST_ADDRS; i++) { - if (ha->mcast[i].addr[0] || ha->mcast[i].addr[1] || - ha->mcast[i].addr[2] || ha->mcast[i].addr[3] || - ha->mcast[i].addr[4] || ha->mcast[i].addr[5]) { - memcpy(&mcast->mac[i][0], &ha->mcast[i].addr[0], ETH_ALEN); - mcast->num_mc_addrs++; - } - } - mcast = &ha->ecore_mcast; - - rc = ecore_filter_mcast_cmd(cdev, mcast, ECORE_SPQ_MODE_CB, NULL); + bzero(&mcast, sizeof(struct ecore_filter_mcast)); + mcast.opcode = ECORE_FILTER_FLUSH; - bzero(ha->mcast, (sizeof(qlnx_mcast_t) * QLNX_MAX_NUM_MULTICAST_ADDRS)); - ha->nmcast = 0; + rc = ecore_filter_mcast_cmd(cdev, &mcast, ECORE_SPQ_MODE_CB, NULL); + if (rc == 0) + bzero(ha->ecore_mcast_bins, sizeof(ha->ecore_mcast_bins)); return (rc); } @@ -7041,7 +6925,7 @@ qlnx_set_rx_mode(qlnx_host_t *ha) if (rc) return rc; - rc = qlnx_remove_all_mcast_mac(ha); + rc = qlnx_set_multi(ha); if (rc) return rc; From nobody Wed Feb 11 20: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 4fB95j5Ffmz6S8pP for ; Wed, 11 Feb 2026 20: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fB95j4PTPz3H5S for ; Wed, 11 Feb 2026 20: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=1770841785; 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=34d6xVPux+SKClmRB37b3yEVA8TGiwKseR5QpeVnC5k=; b=FkwlOwUNsjVwVop/JRxnsVeVEzcNhkoLnapxzZ6GJsy1bW9o87qGc0SrYrNNiwGZQ2Sv09 ljcC9ivunCQdlCyU7uoxIzFEyVJNeSQHU/4aXiiGqRzNnC8lPwDEqID0tco8ULPuqfok4/ +zQRl+pHJFYNZWvc4Qy/241HtpH63ObWc4mOVibiAXepGTOo8CeqHn0JCxp2myLPwSLjoi FosuA+aFzozwXXEhZl6/tK8A4OpTXAbp5th2jLLlQ/CS/5arFug5SwkjUJJGkomIqhgzJg Ezt01j1GJNvh69hq2X1oWn+kVW8JjVA5eSMipsUCf6vpjA6KD5bnVsbYB0Kcyg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770841785; a=rsa-sha256; cv=none; b=DAqOtSSa4mn7lsIe/V6gmcw9Rhyx5GAJRkAAR86pE2ThQNkvytqO1JvAr9wH/yKk1j9KxK MKHTQ3DLgxdXTUmvo2WsT/zuVMyO6fyACP+YpFvBvUGsRPrCB42IFye5xrc6QZOVPhqcjc rLfL5a8aBFQAJC+0GYrRIqmpQ99RA8lDMAvZgvfprwmUxefm9NrlToO1Qhr0LoPSTMbD/a jue4flCt+iwXfr4HLhV8NEGNAG7MOryjwRlWSzVkvYQCYMwWRoyUla8WGS+BJbjGcCclot rPPrdOnno8/u/L4rLKtrVGDi1GpLea46jJD4mh3x8arTGoe8Inz6YmUR7R+kZw== 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=1770841785; 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=34d6xVPux+SKClmRB37b3yEVA8TGiwKseR5QpeVnC5k=; b=LULa2jXgD//id1T+hhAYmzzfzolhcenfde/G/EwcI9mCVkz56VJUcGD+604b5Q8d4Htj4K De2xFpUzMV0HQVmc9VlpI6vTlhW1QPauZvmYDnWL44z0Ru5lNIdtgbJZUqXTJscPPRukL2 PJ8m+tDYFsFgAuJnpAEpsPdXjuZHV0t8VwURuEr0XGNFbEPRWRc3NmaD9BDUQ4XPu7cFdl DHoqTsQ+uodj36fMPOEAaWwtjsCoKmpzY1sRePp3dlwt1gBwXpVrEXcAc507C2a6biMoLh l6ExA/govp0y4EPw8C06+YhWTpgHXJ1HCAQob9n9eb0uhhYu3bq9FnIOz0ne/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 4fB95j3nHvz14N3 for ; Wed, 11 Feb 2026 20:29:45 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 45a83 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 20:29:45 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Zhenlei Huang From: Colin Percival Subject: git: 644486902097 - releng/14.4 - qlnxe: Remove a pointless copy back from the link-layer address 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: 644486902097959108c30721a92420a2a4f15223 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 20:29:45 +0000 Message-Id: <698ce6b9.45a83.35a28c00@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=644486902097959108c30721a92420a2a4f15223 commit 644486902097959108c30721a92420a2a4f15223 Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:53 +0000 Commit: Colin Percival CommitDate: 2026-02-11 20:28:56 +0000 qlnxe: Remove a pointless copy back from the link-layer address On ifnet attaching, ether_ifattach() makes the link-layer address by shadow copying the ha->primary_mac. Well, the link-layer address will not be altered during attaching, thus it is pointless to copy it back. No functional change intended. Approved by: re (cperciva) Reviewed by: kbowling MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54883 (cherry picked from commit 4ac3081b282800158df7abe93f307d76e1b5b808) (cherry picked from commit 23ffd1650cc431e762387d384ede99ae085bc130) (cherry picked from commit 7d7cee09b9a4ac5cbcbac79cb7ccfef5d6db1e0f) --- sys/dev/qlnx/qlnxe/qlnx_os.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index 99110e5e2d8f..9616d9f4d611 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -2392,8 +2392,6 @@ qlnx_init_ifnet(device_t dev, qlnx_host_t *ha) ifmedia_set(&ha->media, (IFM_ETHER | IFM_AUTO)); ether_ifattach(ifp, ha->primary_mac); - bcopy(if_getlladdr(ha->ifp), ha->primary_mac, ETHER_ADDR_LEN); - QL_DPRINT2(ha, "exit\n"); return; From nobody Wed Feb 11 20:29:46 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 4fB95l09Zfz6S9FH for ; Wed, 11 Feb 2026 20:29:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fB95k5D5mz3HD8 for ; Wed, 11 Feb 2026 20:29:46 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770841786; 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=duI2v3XigSFsD8qOP0JMMohnps1986bSDPvXt/wvN7E=; b=pK8oJw70nj2X+JkcGCi2c33oJQbfixm7B/xILdf0yqVhMypaluuAPfu2CHFgSv+4iMSnfX j5d1FudkT8RTLTuBAr9f9pILVi68S/tD4KU7Bb8JIjlVvySRLYsatb0CbiHtGVdtAnLMZA X9GGhoYspSa4jX6aCeIXzBwq4mOS/m/IjuuuiazUFEhno/zLyWXgGHuZb5289v2jBYjZpP OeLeAyL7Q+TmYU6KQxpRRJpXtM5nppDV5aL2jBn8Bk25n7OIJ2Sv2iZQnoaLsfgoaWap6t AhteLXbK3wP4BT/tKSR5+D8D5A9lXfYMuPLRdNjOR7y4QuCuos2Yskxi8yDUUg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770841786; a=rsa-sha256; cv=none; b=Rl6OwI4P8fn6WN1HDwejgq/OsXeZdB9V+pg+CMIN5seUb4ehWB60xsrneRN0oHjsYMbx7d YAujLMFV3wvlr62L4eBmoOoLPPi7UHQ3OpmY4bH9hG35UhJN2ryTNPeBmfXZqfW9mLoRVj 8eYIzTBYeaDiA6L0dVxKVEIba6F7QPYFG5NQe3WCePth8TBVAu+ftrdS33L+vNYi/Umjy5 ZNAfKmMsvLqtfXW/J+f6Y8u/64MAa5GEREIqrqcJPRyCHa3xdmV8aw/P9qzv0ZzhqL3Jgm q9Y9yt59FWO3X5WqRZHQW4gZGze3jETYQZm7MYlu9IbUVQiR8GMtCt+cCqFFiQ== 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=1770841786; 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=duI2v3XigSFsD8qOP0JMMohnps1986bSDPvXt/wvN7E=; b=rLxPQcp6q5TLoD+l+w0AGEpxRNdpgSBPkQOtb3JhW1bRNyUpcqMsjmBIczzmUNYi5yzNfw ulD7ykHs6YUAkCc8Io5+yqn/S0kUQopL4wPb6CQOpr6CrflFl+3mGLDqletfi2rEVVCBHd v5IqwyMg/KfXxTHAlWDkbSaKcDR0D7Gkz1UXg52KJP95pCCOe0Z5tdTt0piC//L3CTw2in T0VKqSBKLEOrZrhK5QSjJFQPb8D8aa1syj2ZgWZcvu9rn9Tsy86KdKq1ABC6iNXnoCqTay gQDg260liLPRPxZ1vpXbIEynm2LMcYsUrB1alQNPzQgy0lvDAf6R1FwY6NJesA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fB95k4YLLz14Vs for ; Wed, 11 Feb 2026 20:29:46 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 457fd by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 20:29:46 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Zhenlei Huang From: Colin Percival Subject: git: 36ebcb4f8219 - releng/14.4 - qlnxe: Avoid memcpy with same source and destination 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: 36ebcb4f8219dcd638e0dbbc738b655bc5e709c2 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 20:29:46 +0000 Message-Id: <698ce6ba.457fd.4c52ad4c@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=36ebcb4f8219dcd638e0dbbc738b655bc5e709c2 commit 36ebcb4f8219dcd638e0dbbc738b655bc5e709c2 Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:53 +0000 Commit: Colin Percival CommitDate: 2026-02-11 20:29:01 +0000 qlnxe: Avoid memcpy with same source and destination In case the device is VF, qlnx_get_mac_addr() returns ha->primary_mac hence it ends up memcpy with same source and destination. Refactor slightly to avoid that. Approved by: re (cperciva) Reviewed by: kbowling MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54884 (cherry picked from commit 3aeeedc7e0dc231c16406ff64f4a08a716964c40) (cherry picked from commit 6462189595047800337aaf052e397d1aade3f9a7) (cherry picked from commit ea1143bddbc3671f49219a6b2a054965deea0c63) --- sys/dev/qlnx/qlnxe/qlnx_def.h | 1 - sys/dev/qlnx/qlnxe/qlnx_os.c | 13 +++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/sys/dev/qlnx/qlnxe/qlnx_def.h b/sys/dev/qlnx/qlnxe/qlnx_def.h index 796845f3f8c6..ed3a0403bb6f 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_def.h +++ b/sys/dev/qlnx/qlnxe/qlnx_def.h @@ -683,7 +683,6 @@ extern int qlnx_grc_dump(qlnx_host_t *ha, uint32_t *num_dumped_dwords, int hwfn_index); extern int qlnx_idle_chk(qlnx_host_t *ha, uint32_t *num_dumped_dwords, int hwfn_index); -extern uint8_t *qlnx_get_mac_addr(qlnx_host_t *ha); extern void qlnx_fill_link(qlnx_host_t *ha, struct ecore_hwfn *hwfn, struct qlnx_link_output *if_link); extern int qlnx_set_lldp_tlvx(qlnx_host_t *ha, qlnx_lldp_sys_tlvs_t *lldp_tlvs); diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index 9616d9f4d611..1c885133c3ec 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -101,6 +101,7 @@ static void qlnx_stop(qlnx_host_t *ha); static int qlnx_send(qlnx_host_t *ha, struct qlnx_fastpath *fp, struct mbuf **m_headp); static int qlnx_get_ifq_snd_maxlen(qlnx_host_t *ha); +static void qlnx_get_mac_addr(qlnx_host_t *ha); static uint32_t qlnx_get_optics(qlnx_host_t *ha, struct qlnx_link_output *if_link); static int qlnx_transmit(if_t ifp, struct mbuf *mp); @@ -2322,7 +2323,7 @@ qlnx_init_ifnet(device_t dev, qlnx_host_t *ha) ha->max_frame_size = if_getmtu(ifp) + ETHER_HDR_LEN + ETHER_CRC_LEN; - memcpy(ha->primary_mac, qlnx_get_mac_addr(ha), ETH_ALEN); + qlnx_get_mac_addr(ha); if (!ha->primary_mac[0] && !ha->primary_mac[1] && !ha->primary_mac[2] && !ha->primary_mac[3] && @@ -3772,7 +3773,7 @@ qlnx_get_ifq_snd_maxlen(qlnx_host_t *ha) return(TX_RING_SIZE - 1); } -uint8_t * +static void qlnx_get_mac_addr(qlnx_host_t *ha) { struct ecore_hwfn *p_hwfn; @@ -3781,8 +3782,10 @@ qlnx_get_mac_addr(qlnx_host_t *ha) p_hwfn = &ha->cdev.hwfns[0]; - if (qlnx_vf_device(ha) != 0) - return (p_hwfn->hw_info.hw_mac_addr); + if (qlnx_vf_device(ha) != 0) { + memcpy(ha->primary_mac, p_hwfn->hw_info.hw_mac_addr, ETH_ALEN); + return; + } ecore_vf_read_bulletin(p_hwfn, &p_is_forced); if (ecore_vf_bulletin_get_forced_mac(p_hwfn, mac, &p_is_forced) == @@ -3792,8 +3795,6 @@ qlnx_get_mac_addr(qlnx_host_t *ha) p_is_forced, mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); memcpy(ha->primary_mac, mac, ETH_ALEN); } - - return (ha->primary_mac); } static uint32_t From nobody Wed Feb 11 20:29:47 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 4fB95l6lcXz6S94y for ; Wed, 11 Feb 2026 20:29:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fB95l5W5wz3HLt for ; Wed, 11 Feb 2026 20:29:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770841787; 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=GwiwrrTASNGJ7Z6pNLFoIpUn0Pzp3sntsgrGF0HLBCM=; b=jIayCnMTaXop66pP4RhGOtQygajQskFvEsxe5vajrJQTC++ZEdHgowmjzb5+espdXMHv1Z W0Tv94hvASOcHAEzFCotBGHMmb91axt6Kqte6mMpRU4cJNHhPr7mX2iOTmqffSJg0po3FG DlgCzGUUJqz+xGrTXU0VWQYw5P7ywNOCk9IU1pltvf+TNvQnbP6GGcqD6ZWWXn/xCAcpJh 3LdYhNXpB5ucxLNVzenH0F411982TSEKm2RtYhgy7Q4k4s17nyk8kpnPOWjwGJPNbK/E8/ CCnlcZ8xNnGQKEjHdLmodhsooRW9ZLhQiKGNH0hA51sX9z0kf/dCkUPKp80Hdg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770841787; a=rsa-sha256; cv=none; b=hMsWgnO43TIpgmOsNI+tpc6RhFj1USJGRTVqmB+GOLBEdm8q9L9OqioTh22SlWz/688Fi7 LwtsxrZjI3vcKw+HlDQZ5xhDaJkYrah2fR6OCywplSEdz3VNKS32zOHXZnk09nlAPH1TiT /PPaCqvnqYjgk4Zi8W7ytYfWkNWswvIF7ivnSksmt6GcYhmmwnbAVksK6/qjkXY8131Xjz Osnc+4RFc4sJ4NgBa+S+XXuFbUMnZbI61X4J1Ak9mhEUU9qZjP4rBHbffmwy1hH23K2itj tjK1kNtkhS6bgzBnFLMEW/ystY1dG6YnoQfDZtFhTDpN92RJqIu93Y89xuXXsg== 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=1770841787; 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=GwiwrrTASNGJ7Z6pNLFoIpUn0Pzp3sntsgrGF0HLBCM=; b=TPhDrHLtg0CtMY5hXxU4USauvgIakpaR2fev+jokOd8rHSEhl93fefDQX5vcYClc3XgXu8 ML8V9aKFfaHHY1JbLQGzYrBcG7bRvU7DzrH2/9Ivwl3iNzvnBYU64tHSXan02vHF1mkEgl sZqocDQ4aT8e4jpnyagwsiCOIJtrL1EvNdIY06CGy4mtLNUqHKcyKHg6uRKUxRsuAZSTP8 QCvdfFeVv+yuzSriDxkWzXNFI9b7HK9R5dW3VZmv72GTEmH5MKQz9zvDJshzCcK8MCp3A6 VyfIRwjvJtKF716M4ZwvGswnA2AmIPZOvDrtb8dqXx2N/qxORrDoWVt4CPn8pg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fB95l4xJHz14bx for ; Wed, 11 Feb 2026 20:29:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 45997 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 20:29:47 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Zhenlei Huang From: Colin Percival Subject: git: f8e20e75a61b - releng/14.4 - qlnxe: Fix setting the unicast MAC filter of RX path 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: f8e20e75a61bf2e9bc108e6745dca57eb51316c7 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 20:29:47 +0000 Message-Id: <698ce6bb.45997.7ec9e2b6@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=f8e20e75a61bf2e9bc108e6745dca57eb51316c7 commit f8e20e75a61bf2e9bc108e6745dca57eb51316c7 Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:53 +0000 Commit: Colin Percival CommitDate: 2026-02-11 20:29:04 +0000 qlnxe: Fix setting the unicast MAC filter of RX path When an Ethernet interface is added to lagg(4) as a child interface, its type, aka if_type, is changed from IFT_ETHER to IFT_IEEE8023ADLAG. Well changing the link-layer address of the lagg(4) interface will be propagated to all child interfaces, hence the drivers of child interfaces shall not presume the type of the interface will not be changed. Meanwhile, on initializing, an ifnet has been fully attached and it is guaranteed to have non-null link-layer address so stop NULL checking for it. Approved by: re (cperciva) Reviewed by: kbowling Fixes: 792226e53023 qlnxe: Allow MAC address override MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54885 (cherry picked from commit f250852c9a0c1021c3be4b498e27cfc7b42a81db) (cherry picked from commit 6d138e958ffb318595eec29b910cada414e2f86d) (cherry picked from commit 93719f8c8348a5d13c9037352072ce67f530288b) --- sys/dev/qlnx/qlnxe/qlnx_os.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index 1c885133c3ec..ec2fd7cacfae 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -7057,20 +7057,10 @@ qlnx_set_rx_mode(qlnx_host_t *ha) int rc = 0; uint8_t filter; const if_t ifp = ha->ifp; - const struct ifaddr *ifa; - struct sockaddr_dl *sdl; - ifa = if_getifaddr(ifp); - if (if_gettype(ifp) == IFT_ETHER && ifa != NULL && - ifa->ifa_addr != NULL) { - sdl = (struct sockaddr_dl *) ifa->ifa_addr; - - rc = qlnx_set_ucast_rx_mac(ha, ECORE_FILTER_REPLACE, LLADDR(sdl)); - } else { - rc = qlnx_set_ucast_rx_mac(ha, ECORE_FILTER_REPLACE, ha->primary_mac); - } - if (rc) - return rc; + rc = qlnx_set_ucast_rx_mac(ha, ECORE_FILTER_REPLACE, if_getlladdr(ifp)); + if (rc) + return rc; rc = qlnx_remove_all_mcast_mac(ha); if (rc) From nobody Wed Feb 11 20:29:48 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 4fB95p0Zy4z6S98l for ; Wed, 11 Feb 2026 20:29:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fB95n4c4Fz3HRC for ; Wed, 11 Feb 2026 20:29:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770841789; 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=pkbF8Q85ovJKw+2d2A/4+EXMzkm8NhwIsIHg7YBiWCU=; b=kfi/eD/+Tic4Co/7EYbYdkSv8rj26epeomqzGMq/JztFj1oXul/LqfMfjyW8jWThoNDoCn FuV/+xea3fgzQmqWRoQAKCGLuETXlCv4MeGT8YgMhBvWB6fC9tPD6SRVCAGlM66k1lck54 vjrV+A2uTcrzCVUGiX9Z98duQdbSDffYa/3gXK9SAQZUdrAwwQXgBow0FVVX8Mk79cUXrG J/h2oIfL2KyWPiy1V0TsBfALWnVCZKKqt+/gFQD8/8HR41z632QHCN5gavZ2QjZLe8o6mE uNozQMFXiZvjwr4Uu49CQOcP+hreNSL7sLeVtkzjrR07p13QfpwWMxPJ6r5SWg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770841789; a=rsa-sha256; cv=none; b=Ds3j2YnKpAOBTKg1vBemU03piH1ttDXKU8p2NAUa6Ac8AvF/pmJwyXoVpWoaCT9Vv6NX3J ZsnOWNduECEt4EY3u67tMa24D7gMxcGwFQn80eCZAooAaw1/f4+yEyPnjJvK3i3jO4KjEM Vy43IP7UIKCanBIzRNo6bstmGjq6bt4qzcrP5HoDPyjg0C4Ta7c/hIuskfUf9VOKQ2pHCZ 51+C/ae0t0xTuBq6vjDVKlp2YQn5BmP6V4c8QfhGxoCojprPpy2vMboWuFaoaEjhWk4eg6 YGsW1y65rmuwodbjxwMIzCbIpEDD3e/xS+CZHyjR9agzHeTi9q+xeUsehtXzzw== 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=1770841789; 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=pkbF8Q85ovJKw+2d2A/4+EXMzkm8NhwIsIHg7YBiWCU=; b=EKRS9hcrNrKAsi+N62yzKHKB63CKYoycubQBCXSz7+JjroM0Pl5pBFkVdpJAWJ8xP+JDew UhdvqkquP8Wd42KlWePwYjD3+YskIlcosqOz2ZqIh98t0YdbJiKKnLwt6cA+iy4d8RL7N8 IgPIt/Pi4VJIvzN+4XCnlSYtI1Q6OsuiUf+aANFkm489eE1+ZieUf9qOlYe9XjRrkKstrN 3Kxihmj0r4LJMAunlrQwdoOdpJMo2nqnYz1y/j1Yi/pzPy00IN6yHIRiEtdWrlQiaVWWAx TsE/LX/vy21ZKSfnheAQ4W45l4Q2qpzN5dXWnoD6TsvYuVJGykJdvqcpDuamAg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fB95m5nCxz13Ly for ; Wed, 11 Feb 2026 20:29:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 450cf by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 20:29:48 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Zhenlei Huang From: Colin Percival Subject: git: 0671ffe268f2 - releng/14.4 - qlnxe: Prevent potential concurrency between ioctls 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: 0671ffe268f2bff72356a2aba27c9965c9c403b4 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 20:29:48 +0000 Message-Id: <698ce6bc.450cf.346f4860@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=0671ffe268f2bff72356a2aba27c9965c9c403b4 commit 0671ffe268f2bff72356a2aba27c9965c9c403b4 Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:53 +0000 Commit: Colin Percival CommitDate: 2026-02-11 20:29:07 +0000 qlnxe: Prevent potential concurrency between ioctls The driver-managed status flags should be lock protected to be touched. Also this can serialize ioctls those check the IFF_DRV_RUNNING status. Approved by: re (cperciva) Reviewed by: kbowling MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54886 (cherry picked from commit 0df8a998a9fe28af659cb401c537c6d785e55f81) (cherry picked from commit 285b25c080faf71c60de36e834ef31cf70e6b50d) (cherry picked from commit 6e5b12acb66a9e269801b8d88c8f9838044d631c) --- sys/dev/qlnx/qlnxe/qlnx_os.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index ec2fd7cacfae..b0dac3a82582 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -2568,9 +2568,7 @@ qlnx_set_multi(qlnx_host_t *ha, uint32_t add_multi) mcnt = if_foreach_llmaddr(ifp, qlnx_copy_maddr, mta); - QLNX_LOCK(ha); qlnx_hw_set_multi(ha, mta, mcnt, add_multi); - QLNX_UNLOCK(ha); return (0); } @@ -2637,11 +2635,10 @@ qlnx_ioctl(if_t ifp, u_long cmd, caddr_t data) #ifdef INET if (ifa->ifa_addr->sa_family == AF_INET) { if_setflagbits(ifp, IFF_UP, 0); - if (!(if_getdrvflags(ifp) & IFF_DRV_RUNNING)) { - QLNX_LOCK(ha); + QLNX_LOCK(ha); + if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0) qlnx_init_locked(ha); - QLNX_UNLOCK(ha); - } + QLNX_UNLOCK(ha); QL_DPRINT4(ha, "SIOCSIFADDR (0x%lx) ipv4 [0x%08x]\n", cmd, ntohl(IA_SIN(ifa)->sin_addr.s_addr)); @@ -2703,19 +2700,23 @@ qlnx_ioctl(if_t ifp, u_long cmd, caddr_t data) case SIOCADDMULTI: QL_DPRINT4(ha, "%s (0x%lx)\n", "SIOCADDMULTI", cmd); - if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) { + QLNX_LOCK(ha); + if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0) { if (qlnx_set_multi(ha, 1)) ret = EINVAL; } + QLNX_UNLOCK(ha); break; case SIOCDELMULTI: QL_DPRINT4(ha, "%s (0x%lx)\n", "SIOCDELMULTI", cmd); - if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) { + QLNX_LOCK(ha); + if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0) { if (qlnx_set_multi(ha, 0)) ret = EINVAL; } + QLNX_UNLOCK(ha); break; case SIOCSIFMEDIA: From nobody Wed Feb 11 20:29:49 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 4fB95p5VWlz6S9Hp for ; Wed, 11 Feb 2026 20:29:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fB95n73xyz3HRF for ; Wed, 11 Feb 2026 20:29:49 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770841790; 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=irtTE6mIqhzmGNUszT2sJorFVT2WOMXZfhtWXgrxtg8=; b=oNYPt0BnhVRC1yDDFO/2Ia3m3RbhijyFk2egp0lOGRDzyL/7aZhb9YkruJGBnexKkfMzu5 O5RbEUG2ipAPBFzmYDSXvolCq8j7tS2Ao6Aa74tVYelimNZnbJ6mGOBHv3CWfSX0TOLTwD 7XCaBPEHcqS7ZcKYqYmFtBfJSVwVqr2JkWFOO2wvog39VkxwDetbuMKEmoAM9PH3lepXSV aGFrKVQLCYhSJtf7m13QHbwmIL32A4pRhNiL5Zfef7lG2uNSg0YmoVCFhaxOZhAbU84liU C06y2nP6AXD1W+CiWDY9Mpt7VV1ZibvHEYMjGRReLp7RIpgN/jjbMoJ4Esknmw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770841790; a=rsa-sha256; cv=none; b=WiRIMOJQuWTurKM9gFEXdUnnCmgS+rAKcubyeAviU9k/V+zqkpshy3RcaZvW7otVGFy+SM VKos0HO8lLkapXTt7cGeBtvlXnfcT1sNSoBbo0cjDf7SJV8eMSrzWcXxni4xD50ddU3yH9 ggVKCHWHWp5a7c9p2uhuFE9DGRzgV+Bqwl8mmLKhOXlLrg1zSacMKV1mK5BZ1Avu0M+0Ye aJjyNdC4shSJcGTN9lm7PSx0ECA4n2Ww/m6d0QOanVOIBlQ//Myoz5e7dqXKrNfHHj2QkC Bu+NPycJnkE5oG1Zs0AYYU/QcYf15AGgdoewSfu4aXldxsvR1wHzFqdIwqNlGw== 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=1770841790; 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=irtTE6mIqhzmGNUszT2sJorFVT2WOMXZfhtWXgrxtg8=; b=sU2Aj00HbqimacN1EOXf9aIc+2IkhZgfWuLNlMqzNxS3CtLGnw4NSHVdOgujA4tQja0f/3 XGu2R93S5qh4XAa4KXXTj/+1Ha4Or4KO5+ZpkZ2tYXfpkVH2BwcYkKNvrMMvkOcl1PqCm1 4fQcACJfVVLKMV9F61+xmmgI+S/MEqmx2wbbODtktmjAA16BCgUmx0hcqTf1pN6ELRkPlq JvGju9wuOqYcl/QCnjvuDE1WKoWVrryKd0t+pBb5m0tZYaVon45wA08bFMMDr4iyRcK6eA ehJw8NZanY9MloDziK9O7pI9GhHDw6XFpCI/NEJelt6Gv88Xc1sTbfDnQQ0b/A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fB95n6cRjz14Pr for ; Wed, 11 Feb 2026 20:29:49 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 451b3 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 20:29:49 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Zhenlei Huang From: Colin Percival Subject: git: 7d0345d32bbd - releng/14.4 - qlnxe: Avoid reinitializing the interface when it is already initialized 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: 7d0345d32bbdfe490ce88bb8704ef9d4e6adb189 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 20:29:49 +0000 Message-Id: <698ce6bd.451b3.65526bde@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=7d0345d32bbdfe490ce88bb8704ef9d4e6adb189 commit 7d0345d32bbdfe490ce88bb8704ef9d4e6adb189 Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:54 +0000 Commit: Colin Percival CommitDate: 2026-02-11 20:29:10 +0000 qlnxe: Avoid reinitializing the interface when it is already initialized qlnx_init_locked() unconditionally uninitialize the interface thus is actually reinitializing the interface. Well the init routine qlnx_init() is to initialize the interface by net stack when assigned with the first inet or inet6 address. The ioctl SIOCSIFADDR for the first inet6 address is handled by ether_ioctl() thus the interface is reinitialized no matter it was initialized or not. Add a driver status check for that to avoid reinitializing. Further plan is removing SIOCSIFADDR ioctl from the driver and let ether_ioctl() handle it. Approved by: re (cperciva) Reviewed by: kbowling MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54887 (cherry picked from commit c10e6bc0f0079e90cb484323ad71d437f1882422) (cherry picked from commit 8731ff4871d5397bae65bf184c44629a52c0e97b) (cherry picked from commit ee6495580925b337f5851b6ee0f1188f81d7a6c8) --- sys/dev/qlnx/qlnxe/qlnx_os.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index b0dac3a82582..bc0282e3c22b 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -2431,7 +2431,8 @@ qlnx_init(void *arg) QL_DPRINT2(ha, "enter\n"); QLNX_LOCK(ha); - qlnx_init_locked(ha); + if ((if_getdrvflags(ha->ifp) & IFF_DRV_RUNNING) == 0) + qlnx_init_locked(ha); QLNX_UNLOCK(ha); QL_DPRINT2(ha, "exit\n"); From nobody Wed Feb 11 20:29: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 4fB95q4dHmz6S96L for ; Wed, 11 Feb 2026 20:29:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fB95q15tlz3HMR for ; Wed, 11 Feb 2026 20:29:51 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770841791; 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=oxv9qcxrIRZVPt+564dvqfQKdULgN8bxqQA+OddltU4=; b=E69VscqRYQSTVE1846BVgEkq2n5PzioFsmbf5Q8+y5PD1Pp0GE3dSp7C+GkoFegHQQ8Q3G DCGVyALsjmCunG5/t2psoJ6+g+a/CtMhLVXykoTyO6OLcKtiFdqkj5dH3EYXoHsyi4PEXy MAenWJvVqI9SnUEISr1rY2Q8oE4jfLyLW3OsilKwzYENh9fooBrvx0xoANOMD0tn3JNAMk gtmWgwTLHqtZL5zEKtQocPn6oZ/LyfyqlNdPf03V0nwnrN0/AHnJwryt0GOvatFkmois4E zdN9K7h5AfUphuCGEkyExdazY2si3JMDKBk5b6uqFoFcfoHA3oUVEmMSPTCinw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770841791; a=rsa-sha256; cv=none; b=BiYOnUYXVZNfN4HH3j8aNLZSved66nCoqI3PsEXnjKaB9q9niHuv3PIgZXkFDKByaakLXr x6K8WywonpRFfotpfemBOuPTnivzfrQdA70d5ASDVQZFuJn4fXD5pQxcL4trMxdfImSZHc 7uzISl1D3G3+M2BWPw1aKZ5bGtjh5FK0w9mh4NUabYq/jpO8rn43cwloCkBwYVDs2hL6vT J+8DzV5rENuKQckTc5TDykSyTuB5vrjmhxHHjHKCq3GCOQ5Zk6zHmywLPz5zas4om5gOmx xoyDCW4x9bZI7foF4spMXZv2VNuX3+F7gv4EMap3JfZBVPY9/jKx6loSRq0Eaw== 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=1770841791; 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=oxv9qcxrIRZVPt+564dvqfQKdULgN8bxqQA+OddltU4=; b=C9+7hH5cCMxpG3In8Gf02u5MGp3E6UL8pfi6O15H/0lcnuGe5NXRNRNUfRPtH4qb9ShA3R XmsbfCowizREdfw9Vd1j+95hTYth6VfmXZsZ0s1SyiuL80iG8ekgv/3vni9ZijBnx/igNf XhyzUwOys1+O8sSno5SusDgtaBMrX9ew0KLOjXo+uJYLKH8/Ooz7SeECGJ0eA4SDEx1ET8 jmYDMeiHWP1GKJX9SkZaYDJqA19uigGqpU3Cm4fx9t129+VkhXL1JmRe866jXNt5REph/E O+TWV/wQv+LbH0WwKPAZBah8bSQ0Rs3FbDecSPff14F8e8Iy4dC9Ts2opbcz+A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fB95q0M8nz14TD for ; Wed, 11 Feb 2026 20:29:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 43c76 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 20:29:51 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Zhenlei Huang From: Colin Percival Subject: git: be256934d62e - releng/14.4 - qlnxe: Let ether_ioctl() handle SIOCSIFADDR ioctl 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: be256934d62e9462211a94ed72fae8e59aa4df72 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 20:29:51 +0000 Message-Id: <698ce6bf.43c76.769cb16f@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=be256934d62e9462211a94ed72fae8e59aa4df72 commit be256934d62e9462211a94ed72fae8e59aa4df72 Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:54 +0000 Commit: Colin Percival CommitDate: 2026-02-11 20:29:13 +0000 qlnxe: Let ether_ioctl() handle SIOCSIFADDR ioctl Since the change [1], the init routine qlnx_init() works as intended. Let ether_ioctl() handle SIOCSIFADDR to simplify the code. Combined with the change [1], this shall be a better fix for PR 287445. [1] c10e6bc0f007 qlnxe: Avoid reinitializing the interface when it is already initialized Approved by: re (cperciva) PR: 287445 Reviewed by: kbowling MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54888 (cherry picked from commit 4012b63889e40bb877bc0e4c8da1792bce472c08) (cherry picked from commit 0f383f74b7398161c12a290e50b060baf45d2800) (cherry picked from commit 20ffe22fcfe13b48a8e993cbf565f9cd9229a4b3) --- sys/dev/qlnx/qlnxe/qlnx_os.c | 25 ------------------------- sys/modules/qlnx/qlnxe/Makefile | 1 - 2 files changed, 26 deletions(-) diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index bc0282e3c22b..8a12d45512ac 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -30,8 +30,6 @@ * Author : David C Somayajulu, Cavium, Inc., San Jose, CA 95131. */ -#include "opt_inet.h" - #include #include "qlnx_os.h" #include "bcm_osal.h" @@ -2622,34 +2620,11 @@ qlnx_ioctl(if_t ifp, u_long cmd, caddr_t data) int ret = 0, mask; int flags; struct ifreq *ifr = (struct ifreq *)data; -#ifdef INET - struct ifaddr *ifa = (struct ifaddr *)data; -#endif qlnx_host_t *ha; ha = (qlnx_host_t *)if_getsoftc(ifp); switch (cmd) { - case SIOCSIFADDR: - QL_DPRINT4(ha, "SIOCSIFADDR (0x%lx)\n", cmd); - -#ifdef INET - if (ifa->ifa_addr->sa_family == AF_INET) { - if_setflagbits(ifp, IFF_UP, 0); - QLNX_LOCK(ha); - if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0) - qlnx_init_locked(ha); - QLNX_UNLOCK(ha); - QL_DPRINT4(ha, "SIOCSIFADDR (0x%lx) ipv4 [0x%08x]\n", - cmd, ntohl(IA_SIN(ifa)->sin_addr.s_addr)); - - arp_ifinit(ifp, ifa); - break; - } -#endif - ether_ioctl(ifp, cmd, data); - break; - case SIOCSIFMTU: QL_DPRINT4(ha, "SIOCSIFMTU (0x%lx)\n", cmd); diff --git a/sys/modules/qlnx/qlnxe/Makefile b/sys/modules/qlnx/qlnxe/Makefile index 2a44ae6ddde5..3d8415cf0e57 100644 --- a/sys/modules/qlnx/qlnxe/Makefile +++ b/sys/modules/qlnx/qlnxe/Makefile @@ -58,7 +58,6 @@ SRCS+=qlnx_rdma.c SRCS+=qlnx_ioctl.c SRCS+=qlnx_os.c -SRCS+=opt_inet.h SRCS+= ${LINUXKPI_GENSRCS} From nobody Wed Feb 11 20:29: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 4fB95r4vvgz6S96M for ; Wed, 11 Feb 2026 20:29: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fB95r1c7Dz3HTq for ; Wed, 11 Feb 2026 20:29:52 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770841792; 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=TxfQtCcwlPtodKxi20SOREFFhha/JUP3Kls50dt7t9c=; b=wJIEkDmgls5n+RT45hr26HyuuoxCf/45dl0CMqRFCrXXL4jGffDVy/cDOlzfZf1pEuwk/Q mo2Uf1zngyEty/i1bKJPnNhzQKXK0OfcGdS0EsuvqBNQMnrC34cLZ8661QiTRlnqOxM/eI 6lkIJJ5os0vlH9Qs/vFUcX23+mXacLTSdjORlac4K65nsB/xwNe1/ofls02qHv1nBt6dKU 62yPO2GSt/mfGyD25dKfwYJ6exvJ+gssfNyXYqPWeSmoFL/gkof83Ziohd161IvVJrTO5L tSLjd6P9JdKUNV+8BY4+2yC4KE8XCdQWqpAjxCUMV/+6fxFsu6d5RxGo+lFY1A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770841792; a=rsa-sha256; cv=none; b=YPNnwJBLVDyiTEIxf0KSUjABaC+1f/w4C7TIZK8HJc4fLupOTYpfMFWf4Zac6Si39z7kGa SKSaf1uPVjczBD7xjdc62KWMqoQHVJpNI0ZFeD/LITiOv5x3If26jQb7Zj4uJTYRjOc44j raLxdkSzQr6q/yOaEvB94pEtRy8N4PdKtFpeg/+NfvBRNoOuljZoGYet0RMSNYAXWcYxSG yBMOGFbIBsykgBXdLKm1L7k76QJuUxbNDAvJ7uaU9wE7c72D4TV+CvVDLzjhqEtO97ZTqn WV8LK0klCpo1phXPVefIdrZVa6KyAy6CjnJTEXrrYS+Rkz9wQNZbGdC9Lvabog== 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=1770841792; 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=TxfQtCcwlPtodKxi20SOREFFhha/JUP3Kls50dt7t9c=; b=My0Z56+ExDODIC2zrJg8JpDOpFkWPg84K60r46CiQzbKnyTJx29rvuJqvSvbKHYYJg6mWL xOciuEYjXF4oXdkGfJNk0R1s1NX9e0+NJzPy++CDqVyoZXonBvAvb4ayPEYVexoiWSzeYf CFwmpmgmHdx4dPeveQUOg4gwvrypKX9hIfLsa9FUs4WNxLng887yuFv9V69kDrQtKmIzyQ DmPD2Yliw+xmTilu+pDzZsRrsFzDmD2kIpnAeOM3ZeVbL2I0jSp89qJI+80ZkWJMH9VJPC 8GxfTEhZc2OEkdh6iwaZOu/Li+FguWY5JGaKeHWcFEsXpAdLlYYT6l7MEJUGBg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fB95r18Q3z14Vv for ; Wed, 11 Feb 2026 20:29:52 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 43ac2 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 20:29:52 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Zhenlei Huang From: Colin Percival Subject: git: 133eae6afd60 - releng/14.4 - qlnxev: Remove now unneeded include for opt_inet.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: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.4 X-Git-Reftype: branch X-Git-Commit: 133eae6afd60042dd2cadadfaad0a22415e14f46 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 20:29:52 +0000 Message-Id: <698ce6c0.43ac2.54939d81@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=133eae6afd60042dd2cadadfaad0a22415e14f46 commit 133eae6afd60042dd2cadadfaad0a22415e14f46 Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:54 +0000 Commit: Colin Percival CommitDate: 2026-02-11 20:29:16 +0000 qlnxev: Remove now unneeded include for opt_inet.h Since the change [1], this is not required anymore. This change partially reverts commit 8a847947153e. [1] 4012b63889e4 qlnxe: Let ether_ioctl() handle SIOCSIFADDR ioctl Approved by: re (cperciva) Reviewed by: kbowling MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54889 (cherry picked from commit ec7950fe42344900567cb72c83845ea4dc5a7114) (cherry picked from commit 926e44b4983408dd8a4f5d7eb695de75b373548d) (cherry picked from commit e1a051fd53a026ce6902c5d1df9d99e14e8675d1) --- sys/modules/qlnx/qlnxev/Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/sys/modules/qlnx/qlnxev/Makefile b/sys/modules/qlnx/qlnxev/Makefile index 766a5a950032..ed62f1f1dd40 100644 --- a/sys/modules/qlnx/qlnxev/Makefile +++ b/sys/modules/qlnx/qlnxev/Makefile @@ -49,7 +49,6 @@ SRCS+=ecore_vf.c SRCS+=qlnx_ioctl.c SRCS+=qlnx_os.c -SRCS+=opt_inet.h SRCS+= ${LINUXKPI_GENSRCS} From nobody Wed Feb 11 20:29: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 4fB95s5jM6z6S98w for ; Wed, 11 Feb 2026 20:29: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fB95s3P29z3HQJ for ; Wed, 11 Feb 2026 20:29:53 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770841793; 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=yrPdYxLrwS1UzwmQgv4WW1CVvYpgh40VDxB7kfmgYDo=; b=dY4wbzmuX8zBp3HeT4EQdjI/iuym+Jc5YJ6Gt9TRNQo6capUOSIBGNXw1X5fwkeL6YoSp1 S5S4Du2G2e/wWjs0KvkknqisxL7sgqlahpV3tn6W0rmZsqw5XupkBjX2FbOSinC/d6lLfm CTjMhBtu9q9jclpidP+Uht64RTY3WuWsMGzt4jbtPQbaxtve/XQZzTEaNsQ/nkTu5nRcJt s1eOJyrwaZzCvsWoACAcaoFJn4YJHF5i1v/g3yotcSvQ8Xg5qIfMf9kx2Wq3BSwEU3wQ7c 2/ZN/xfx4gZF2lRbIPJoOoAnNIDpTOsfatfkZhgi2yYxJnQPjqlWWP9uvUSnVg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770841793; a=rsa-sha256; cv=none; b=Zkdlr7JczbmmQmF60DHlwWUBweesmsCAlpOj5SlWgzyyTVGCE69FQFp7vlz3qRhx6ac+sK GMqgHN/lC8G/Uwz/Lb1zd74vHcMl2qPKn+nVSBc3VPAIFGI2/c7yGcfQDjEuHkFOu0jwYU uM5RPY8g6saUK1HWMPUNRYczNEtyCnGPuzW4qGoUIba7SLOmlsUWMYtjhyM5nkCena+mgX LCiOe/p8rAjwHWxk7K4cpoTIXwYYj8YdKln9vOLjXTth+PIwkjoi8XVfHIOgJuv00q2e7f C6edU92isMetne4ZebsEe25Xd6zIdc8XDmOnWjNnHQztmxbPYdpUePt25uIF6w== 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=1770841793; 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=yrPdYxLrwS1UzwmQgv4WW1CVvYpgh40VDxB7kfmgYDo=; b=HDbgr6WSJDzw1EG9QjxmO63lksk25dlZn1cWN9GPd6gqx/TEKraASzGHXKmCGrKPHbLRk6 PzhCUT8erxm3eMEuBdsromwCCj25Sm2EZmKv+eSu2M/VILYQEspKZC1BdudgU9b7sGV121 ZBSPAIESoQMlmjdRNeQhYt9cvlZQESOD5Y64EsJ6f5Q3CR+KbIXVuVPiqfH88o4aEoWev2 SM2lgq9cMKQUL3oCyl96b45ZVoGEC9fOkq+7LBmJGXE2E7Uh+SJfyYONQPGM7X8d9bMSYE 423t3xqYW8XcqqyDMvvTmeqxkTCf9k0TrZM5ZPwflP2Xeg/NYpwafz1QPSHPtA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fB95s20z6z13M1 for ; Wed, 11 Feb 2026 20:29:53 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 46782 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 20:29:53 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Zhenlei Huang From: Colin Percival Subject: git: 1e2393930601 - releng/14.4 - qlnxe: Refactor setting the promiscuous and allmulti 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: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.4 X-Git-Reftype: branch X-Git-Commit: 1e23939306011ac910837d53efd4456ba29b029f Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 20:29:53 +0000 Message-Id: <698ce6c1.46782.4ccc82ad@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=1e23939306011ac910837d53efd4456ba29b029f commit 1e23939306011ac910837d53efd4456ba29b029f Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:54 +0000 Commit: Colin Percival CommitDate: 2026-02-11 20:29:19 +0000 qlnxe: Refactor setting the promiscuous and allmulti mode There are two entry points to set the promiscuous and allmulti mode. One is ioctl, and another is the init routine. Given they share almost the identical logic, refactor a little to make the code more clear. While here, for the ioctl, translate the error to EINVAL to avoid confusing the net stack. Approved by: re (cperciva) Reviewed by: kbowling MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54890 (cherry picked from commit 45b1718fadae7d56051ba04ef9d7a175a602a226) (cherry picked from commit b8d2c1c367465506b66a1696483caec1d04b2ea0) (cherry picked from commit 00ab0df79364f4567ad61f6a66eba1b2f0a7d507) --- sys/dev/qlnx/qlnxe/qlnx_def.h | 1 - sys/dev/qlnx/qlnxe/qlnx_os.c | 80 +++++++++++++++++++------------------------ 2 files changed, 36 insertions(+), 45 deletions(-) diff --git a/sys/dev/qlnx/qlnxe/qlnx_def.h b/sys/dev/qlnx/qlnxe/qlnx_def.h index ed3a0403bb6f..6184e78fe846 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_def.h +++ b/sys/dev/qlnx/qlnxe/qlnx_def.h @@ -370,7 +370,6 @@ struct qlnx_host { uint16_t device_id; if_t ifp; - int if_flags; volatile int link_up; struct ifmedia media; uint16_t max_frame_size; diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index 8a12d45512ac..bc7ff63fe783 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -90,8 +90,8 @@ static void qlnx_init_ifnet(device_t dev, qlnx_host_t *ha); static void qlnx_init(void *arg); static void qlnx_init_locked(qlnx_host_t *ha); static int qlnx_set_multi(qlnx_host_t *ha, uint32_t add_multi); -static int qlnx_set_promisc(qlnx_host_t *ha, int enabled); -static int qlnx_set_allmulti(qlnx_host_t *ha, int enabled); +static int qlnx_set_promisc_allmulti(qlnx_host_t *ha, int flags); +static int _qlnx_set_promisc_allmulti(qlnx_host_t *ha, bool promisc, bool allmulti); static int qlnx_ioctl(if_t ifp, u_long cmd, caddr_t data); static int qlnx_media_change(if_t ifp); static void qlnx_media_status(if_t ifp, struct ifmediareq *ifmr); @@ -2573,44 +2573,49 @@ qlnx_set_multi(qlnx_host_t *ha, uint32_t add_multi) } static int -qlnx_set_promisc(qlnx_host_t *ha, int enabled) +qlnx_set_promisc_allmulti(qlnx_host_t *ha, int flags) { int rc = 0; - uint8_t filter; if (qlnx_vf_device(ha) == 0) return (0); - filter = ha->filter; - if (enabled) { - filter |= ECORE_ACCEPT_MCAST_UNMATCHED; - filter |= ECORE_ACCEPT_UCAST_UNMATCHED; - } else { - filter &= ~ECORE_ACCEPT_MCAST_UNMATCHED; - filter &= ~ECORE_ACCEPT_UCAST_UNMATCHED; - } - - rc = qlnx_set_rx_accept_filter(ha, filter); + rc = _qlnx_set_promisc_allmulti(ha, flags & IFF_PROMISC, + flags & IFF_ALLMULTI); return (rc); } static int -qlnx_set_allmulti(qlnx_host_t *ha, int enabled) +_qlnx_set_promisc_allmulti(qlnx_host_t *ha, bool promisc, bool allmulti) { int rc = 0; uint8_t filter; - - if (qlnx_vf_device(ha) == 0) - return (0); + bool mcast, ucast; filter = ha->filter; - if (enabled) { + filter |= ECORE_ACCEPT_UCAST_MATCHED; + filter |= ECORE_ACCEPT_MCAST_MATCHED; + filter |= ECORE_ACCEPT_BCAST; + + mcast = promisc || allmulti; + ucast = promisc; + + if (mcast) filter |= ECORE_ACCEPT_MCAST_UNMATCHED; - } else { + else filter &= ~ECORE_ACCEPT_MCAST_UNMATCHED; - } - rc = qlnx_set_rx_accept_filter(ha, filter); + if (ucast) + filter |= ECORE_ACCEPT_UCAST_UNMATCHED; + else + filter &= ~ECORE_ACCEPT_UCAST_UNMATCHED; + + if (filter == ha->filter) + return (0); + + rc = qlnx_set_rx_accept_filter(ha, filter); + if (rc == 0) + ha->filter = filter; return (rc); } @@ -2652,13 +2657,8 @@ qlnx_ioctl(if_t ifp, u_long cmd, caddr_t data) if (flags & IFF_UP) { if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) { - if ((flags ^ ha->if_flags) & - IFF_PROMISC) { - ret = qlnx_set_promisc(ha, flags & IFF_PROMISC); - } else if ((if_getflags(ifp) ^ ha->if_flags) & - IFF_ALLMULTI) { - ret = qlnx_set_allmulti(ha, flags & IFF_ALLMULTI); - } + if (qlnx_set_promisc_allmulti(ha, flags) != 0) + ret = EINVAL; } else { ha->max_frame_size = if_getmtu(ifp) + ETHER_HDR_LEN + ETHER_CRC_LEN; @@ -2669,7 +2669,6 @@ qlnx_ioctl(if_t ifp, u_long cmd, caddr_t data) qlnx_stop(ha); } - ha->if_flags = if_getflags(ifp); QLNX_UNLOCK(ha); break; @@ -6989,6 +6988,9 @@ qlnx_clean_filters(qlnx_host_t *ha) { int rc = 0; + /* Reset rx filter */ + ha->filter = 0; + /* Remove all unicast macs */ rc = qlnx_remove_all_ucast_mac(ha); if (rc) @@ -7032,7 +7034,6 @@ static int qlnx_set_rx_mode(qlnx_host_t *ha) { int rc = 0; - uint8_t filter; const if_t ifp = ha->ifp; rc = qlnx_set_ucast_rx_mac(ha, ECORE_FILTER_REPLACE, if_getlladdr(ifp)); @@ -7043,19 +7044,10 @@ qlnx_set_rx_mode(qlnx_host_t *ha) if (rc) return rc; - filter = ECORE_ACCEPT_UCAST_MATCHED | - ECORE_ACCEPT_MCAST_MATCHED | - ECORE_ACCEPT_BCAST; - - if (qlnx_vf_device(ha) == 0 || (if_getflags(ha->ifp) & IFF_PROMISC)) { - filter |= ECORE_ACCEPT_UCAST_UNMATCHED; - filter |= ECORE_ACCEPT_MCAST_UNMATCHED; - } else if (if_getflags(ha->ifp) & IFF_ALLMULTI) { - filter |= ECORE_ACCEPT_MCAST_UNMATCHED; - } - ha->filter = filter; - - rc = qlnx_set_rx_accept_filter(ha, filter); + if (qlnx_vf_device(ha) == 0) + rc = _qlnx_set_promisc_allmulti(ha, true, true); + else + rc = qlnx_set_promisc_allmulti(ha, if_getflags(ifp)); return (rc); } From nobody Wed Feb 11 20:29: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 4fB95t6kTcz6S8pg for ; Wed, 11 Feb 2026 20:29:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fB95t2ttnz3HN6 for ; Wed, 11 Feb 2026 20:29:54 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770841794; 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=4rcJQB4B1vhXqRdZGBBndDNbXJo9cF71p2OuOS5SjdA=; b=vGrVQ9rr8xraRZ0w5mSZed/QPtb+LISPILs2WsZVlZ4q1pvbaOesVQEyLpdimK1dsHETdu 0ARV35/O1IXF/BBHEwibm6bQnu5z7W/XFqvKGx1uCxtqbZtyfHmOg6dOBKCKaxhLy745zf UVbfSO/1+TT3JVHPF5SRCB2seGt96MhsxkWrbJIvsOQHib9a9mQKnZrnDHGwuq84ZmQvTh 6Cvqv8xnMngaGdP59vFdsor7w5x/9O68kG6hhIwGbQv2Jv7TVUYqT4woogQUFwj0Wk+q05 KujGHOpHLD2ZCOdD413czvtmpvGvNDQRI11ph8OMF1+3/2zHwIzBHcnymG05tw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770841794; a=rsa-sha256; cv=none; b=S2yf8Gatqty1F3WZshgQX13T1lFWIbRtUEEf5kSVfFC+hzkQS4AxXfYR6TX4LxrYVA31QH hT0/YR1Ycz8a+2tJ21fbdD4RkbMhGYRa9hSWa6m+ZBqe7xYwc34mmJtuFfuIGpo5MjKaZW SQojo35FGC4QtHkZg3flKz2m0dtrjDU8I1AsBOujUzDSblnj4TW/yoD4zDZWdP7BsihzMI SsFac1tHCa6TX39Up7N+f2z5wRXnwe8CRcmLpnxpmEaK9WLQs/NlWNqLHvREAE1WzI8krw n4T5ZRpUJ+80hHIvp3g6KjpQRa/NS5cvHOcLKghAeZo61NvrUSAth6Op2zm9mQ== 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=1770841794; 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=4rcJQB4B1vhXqRdZGBBndDNbXJo9cF71p2OuOS5SjdA=; b=lmObqBpo9oX7nRKAyE/QxRs7AVbmMJOEN7CPZBFtGpSCRsKA55Epim8Laukz1q3jUeaGrT vQC/ODVnW1jSc79uGnZRPexamuqFM7JfHiZQwD7g33ayX53FYrdqeQwZob7kWB/SH+G4RU qHbZKuSWfWbYq8FaYwPpPqfZ7tpFK7Ms0Nffn62DmFZPPXnaycXR0/vLwtq2Tx22CABFU4 dnZjIcV6akx84Zma0LTqvYBsIngxZy84V95WSqNWO/lVMmyqVSQbOjmkdjUckqkl04WXFQ eNLG2St0K7XreJAtYCuHSfpIXWrwkUtIhwPzIa720TymWXdsvN4LZKAHBxg/pw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fB95t2RYJz14YP for ; Wed, 11 Feb 2026 20:29:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 4599c by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 20:29:54 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Zhenlei Huang From: Colin Percival Subject: git: 572d4096d3ce - releng/14.4 - qlnxe: Allow tapping the TX packets 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: 572d4096d3cee2811a6a73f0c5a0cc2107f2fa57 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 20:29:54 +0000 Message-Id: <698ce6c2.4599c.301ae464@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=572d4096d3cee2811a6a73f0c5a0cc2107f2fa57 commit 572d4096d3cee2811a6a73f0c5a0cc2107f2fa57 Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:54 +0000 Commit: Colin Percival CommitDate: 2026-02-11 20:29:22 +0000 qlnxe: Allow tapping the TX packets Currently only the packets in the RX path can be captured by tcpdump as the ETHER_BPF_MTAP call in the TX path is missing. Add it so that packets in both directions can be captured. Approved by: re (cperciva) PR: 290973 Reviewed by: kbowling MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54891 (cherry picked from commit 968647502ec21464ad3aecc7577ff0e8dfd41693) (cherry picked from commit 425b9cec0b8ce15a6e67d54a73f4f38dc66a4ccc) (cherry picked from commit ddfe98e8ccb120a0a5c42b2288694ecd2b70c80c) --- sys/dev/qlnx/qlnxe/qlnx_os.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index bc7ff63fe783..5f6f336aab8d 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -2993,6 +2993,7 @@ qlnx_transmit_locked(if_t ifp, struct qlnx_fastpath *fp, struct mbuf *mp) drbr_advance(ifp, fp->tx_br); fp->tx_pkts_transmitted++; fp->tx_pkts_processed++; + ETHER_BPF_MTAP(ifp, mp); } mp = drbr_peek(ifp, fp->tx_br); From nobody Wed Feb 11 20:29: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 4fB95v6hZhz6S95J for ; Wed, 11 Feb 2026 20:29: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fB95v3lqyz3HXh for ; Wed, 11 Feb 2026 20:29:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770841795; 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=jLu+UP0/Gk1T+5vk1xsGC1g8SwcU1S4Jgxj9WvCgiw8=; b=SSD5yisrCgbOuniH3Lpd3TrjYyGhSUvfU29LaTsGjAtEmvRR1tLtA2/G2zPl3/BJaYigs9 NbhZ7gh+kwwI9lZxzYKQFlZ5Uq8W65aieiWDQMMgN7V5z9SLuVbzjczIAzl81IJ1AKZjXm 0R/BxtE1f7QOsrKf7zFwRYTwFQcqp/hhOIx9qlkR+h05VHa4zJIuN2ovokq/M8j7ZP1IWz QIm0214FVhIqMikZovc7jQ6sKwbyWPVyZYTe5+zNnYtvLVvgKI+oURrkbq8iofekOG7LfV PAxHro/wDIe94D6nZDc0DZwwk3dEQ1HZI4ujRPoOk49e2bpTK1bhCAaSYu0kxQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770841795; a=rsa-sha256; cv=none; b=TkI7Zb3rq74AcP0O9UHGLl4gF3J0V7WYFlEKOgpBTvBBpFVE+4iVZdOkI4dIVI78mEqmQt suqoASGgwYvQxliF4pnU9ObI9WgX4cpCUZntSvqTPF1jA1tmYZhJFGIKJXKdOOX/s2g5On rMk9EF3lvKBcUH9BNgMbispeSasAibMHSOJ85UpIPX7nv1hsiTptUFCln+QkXk9i/6OYpr hb/jUQmq8Eu6bPCjkb8ewPQdA4G8dG93fy5Xd4Yia/DbvrYMQ891XWy7EZ4v8cJfd0GeRF NxFuu7+rkW9Y73QA1tKH6c0aWoknPJW1qxS2mRFQ2iMDWvpMlFYSGTI9+sLc8g== 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=1770841795; 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=jLu+UP0/Gk1T+5vk1xsGC1g8SwcU1S4Jgxj9WvCgiw8=; b=JvMikOQuNBS6PUwFuB0uNWCF8Ai5oAXuINSSaMrBdYNFn5tQ6a0s/ln3gyvsJSaTuu8eYG PWT/TWmQYTAP1eB/JIlLcoyBWOl3xhSGqDuJRbqGhjGD4fM9gfWtOAUVg1wfDJkUxGRKMr no8Iz5DjBsDN+Kiq2xdkQI7T3MaAZAgN8Y5/pC2GXJFKVkGJ6kfkrJUgj0VVVAkuDCZIBe pPBRE2AFfxII+S4UMxNsOfeaMWrzdEG9eiep34AIXolqHAbiwzCl94PyaCypFt6f2ppwMK osPbpk1HxOPNskgIubUso2N/NoJmS/4ow1lWqruUf00wlHAZ4t+NrynfUbCX+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 4fB95v3JHbz14Pv for ; Wed, 11 Feb 2026 20:29:55 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 46019 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 20:29:55 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Zhenlei Huang From: Colin Percival Subject: git: 2f4767601230 - releng/14.4 - qlnxe: Overhaul setting the multicast MAC filters 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: 2f4767601230005d77fd57ed287869d882604e96 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 20:29:55 +0000 Message-Id: <698ce6c3.46019.7e9b7781@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=2f4767601230005d77fd57ed287869d882604e96 commit 2f4767601230005d77fd57ed287869d882604e96 Author: Zhenlei Huang AuthorDate: 2026-02-06 17:52:55 +0000 Commit: Colin Percival CommitDate: 2026-02-11 20:29:25 +0000 qlnxe: Overhaul setting the multicast MAC filters When operating the multicast MAC filters, the current usage of ECORE_FILTER_ADD and ECORE_FILTER_REMOVE are rather misleading. ECORE_FILTER_ADD reads "adding new filter", but it actually removes any existing filters and then addes a new one. ECORE_FILTER_REMOVE reads "removing a filter", but it actually removes all filters. Let's use ECORE_FILTER_REPLACE and ECORE_FILTER_FLUSH instead to avoid confusion. In the current implementation, only one MAC address is passed to ecore_sp_eth_filter_mcast() and any previously installed filters are removed, hence it breaks the multicast function. That can be observed via either assigning new IPv6 addresses to the interface or putting the interface as a member of lagg(4) interface with LACP aggregation protocol. Fix that by calculating the multicast filter bins directly from multicast MAC addresses and replace the filters every time the bins changes. Due to the nature of the multicast filter, which is hash based, a full 1's multicast filter bin means all multicast packets are to be accepted. Thus there's no need to make the vport into allmulti mode when the number of multicast MAC addresses exceeds the limit (ECORE_MAX_MC_ADDRS, 64). Tested with a FastLinQ QL41212HLCU 25GbE adapter, both MFW_Version 8.35.23.0 and 8.59.16.0 are tested. Note: Currently the VF port is set to promiscuous mode unconditionally, and the setting of the multicast MAC filters for VF ports is short-circuited, so the VF port functions as it did. Approved by: re (cperciva) PR: 265857 PR: 290973 Reviewed by: kbowling MFC after: 5 days Differential Revision: https://reviews.freebsd.org/D54892 (cherry picked from commit 70256d2b86d95a678a63c65b157b9c635f1f4c6a) (cherry picked from commit 0cfc1145cdfc2a7beeeb7f39ad2722c7053681c0) (cherry picked from commit 87942d7f8fc58e8b4af90ec1050b263005c3d64e) --- sys/dev/qlnx/qlnxe/ecore_l2.c | 41 ++++---- sys/dev/qlnx/qlnxe/ecore_l2_api.h | 9 +- sys/dev/qlnx/qlnxe/ecore_vf.c | 11 +-- sys/dev/qlnx/qlnxe/qlnx_def.h | 5 +- sys/dev/qlnx/qlnxe/qlnx_os.c | 190 ++++++++------------------------------ 5 files changed, 66 insertions(+), 190 deletions(-) diff --git a/sys/dev/qlnx/qlnxe/ecore_l2.c b/sys/dev/qlnx/qlnxe/ecore_l2.c index ee7d225540d0..5e281c330765 100644 --- a/sys/dev/qlnx/qlnxe/ecore_l2.c +++ b/sys/dev/qlnx/qlnxe/ecore_l2.c @@ -1617,14 +1617,13 @@ ecore_sp_eth_filter_mcast(struct ecore_hwfn *p_hwfn, struct ecore_spq_comp_cb *p_comp_data) { struct vport_update_ramrod_data *p_ramrod = OSAL_NULL; - u32 bins[ETH_MULTICAST_MAC_BINS_IN_REGS]; struct ecore_spq_entry *p_ent = OSAL_NULL; struct ecore_sp_init_data init_data; u8 abs_vport_id = 0; enum _ecore_status_t rc; int i; - if (p_filter_cmd->opcode == ECORE_FILTER_ADD) + if (p_filter_cmd->opcode == ECORE_FILTER_REPLACE) rc = ecore_fw_vport(p_hwfn, p_filter_cmd->vport_to_add_to, &abs_vport_id); else @@ -1654,30 +1653,33 @@ ecore_sp_eth_filter_mcast(struct ecore_hwfn *p_hwfn, /* explicitly clear out the entire vector */ OSAL_MEMSET(&p_ramrod->approx_mcast.bins, 0, sizeof(p_ramrod->approx_mcast.bins)); - OSAL_MEMSET(bins, 0, sizeof(u32) * ETH_MULTICAST_MAC_BINS_IN_REGS); - /* filter ADD op is explicit set op and it removes - * any existing filters for the vport. - */ - if (p_filter_cmd->opcode == ECORE_FILTER_ADD) { - for (i = 0; i < p_filter_cmd->num_mc_addrs; i++) { - u32 bit; - - bit = ecore_mcast_bin_from_mac(p_filter_cmd->mac[i]); - bins[bit / 32] |= 1 << (bit % 32); - } - + /* + * filter REPLACE op is explicit set op and it removes + * any existing filters for the vport. + */ + if (p_filter_cmd->opcode == ECORE_FILTER_REPLACE) { + _Static_assert(sizeof(p_filter_cmd->bins) == sizeof(p_ramrod->approx_mcast.bins), "Size mismatch"); + _Static_assert(nitems(p_filter_cmd->bins) == ETH_MULTICAST_MAC_BINS_IN_REGS, "Size mismatch"); /* Convert to correct endianity */ for (i = 0; i < ETH_MULTICAST_MAC_BINS_IN_REGS; i++) { struct vport_update_ramrod_mcast *p_ramrod_bins; p_ramrod_bins = &p_ramrod->approx_mcast; - p_ramrod_bins->bins[i] = OSAL_CPU_TO_LE32(bins[i]); + p_ramrod_bins->bins[i] = OSAL_CPU_TO_LE32(p_filter_cmd->bins[i]); } - } + } /* else FLUSH op clears existing filters */ p_ramrod->common.vport_id = abs_vport_id; rc = ecore_spq_post(p_hwfn, p_ent, OSAL_NULL); + + DP_INFO(p_hwfn, "Multicast filter cmd: [%s], bins: [%08x, %08x, %08x, %08x, %08x, %08x, %08x, %08x], ret = %d\n", + p_filter_cmd->opcode == ECORE_FILTER_REPLACE ? "replace" : "flush", + p_ramrod->approx_mcast.bins[0], p_ramrod->approx_mcast.bins[1], + p_ramrod->approx_mcast.bins[2], p_ramrod->approx_mcast.bins[3], + p_ramrod->approx_mcast.bins[4], p_ramrod->approx_mcast.bins[5], + p_ramrod->approx_mcast.bins[6], p_ramrod->approx_mcast.bins[7], rc); + if (rc != ECORE_SUCCESS) DP_ERR(p_hwfn, "Multicast filter command failed %d\n", rc); @@ -1692,10 +1694,9 @@ enum _ecore_status_t ecore_filter_mcast_cmd(struct ecore_dev *p_dev, enum _ecore_status_t rc = ECORE_SUCCESS; int i; - /* only ADD and REMOVE operations are supported for multi-cast */ - if ((p_filter_cmd->opcode != ECORE_FILTER_ADD && - (p_filter_cmd->opcode != ECORE_FILTER_REMOVE)) || - (p_filter_cmd->num_mc_addrs > ECORE_MAX_MC_ADDRS)) { + /* only REPLACE and FLUSH operations are supported for multi-cast */ + if ((p_filter_cmd->opcode != ECORE_FILTER_REPLACE && + (p_filter_cmd->opcode != ECORE_FILTER_FLUSH))) { return ECORE_INVAL; } diff --git a/sys/dev/qlnx/qlnxe/ecore_l2_api.h b/sys/dev/qlnx/qlnxe/ecore_l2_api.h index 610cc329f1fd..3b2f48e9fe11 100644 --- a/sys/dev/qlnx/qlnxe/ecore_l2_api.h +++ b/sys/dev/qlnx/qlnxe/ecore_l2_api.h @@ -162,14 +162,13 @@ struct ecore_filter_ucast { }; struct ecore_filter_mcast { - /* MOVE is not supported for multicast */ + /* Only REPLACE and FLUSH is supported for multicast */ enum ecore_filter_opcode opcode; u8 vport_to_add_to; u8 vport_to_remove_from; - u8 num_mc_addrs; -#define ECORE_MAX_MC_ADDRS 64 - unsigned char mac[ECORE_MAX_MC_ADDRS][ETH_ALEN]; + u32 bins[ETH_MULTICAST_MAC_BINS_IN_REGS]; }; +#define ECORE_MAX_MC_ADDRS 64 struct ecore_filter_accept_flags { u8 update_rx_mode_config; @@ -384,7 +383,7 @@ struct ecore_sp_vport_update_params { u8 anti_spoofing_en; u8 update_accept_any_vlan_flg; u8 accept_any_vlan; - u32 bins[8]; + u32 bins[ETH_MULTICAST_MAC_BINS_IN_REGS]; struct ecore_rss_params *rss_params; struct ecore_filter_accept_flags accept_flags; struct ecore_sge_tpa_params *sge_tpa_params; diff --git a/sys/dev/qlnx/qlnxe/ecore_vf.c b/sys/dev/qlnx/qlnxe/ecore_vf.c index 6cdc94d05c86..a7b006b982de 100644 --- a/sys/dev/qlnx/qlnxe/ecore_vf.c +++ b/sys/dev/qlnx/qlnxe/ecore_vf.c @@ -1515,18 +1515,13 @@ void ecore_vf_pf_filter_mcast(struct ecore_hwfn *p_hwfn, struct ecore_filter_mcast *p_filter_cmd) { struct ecore_sp_vport_update_params sp_params; - int i; OSAL_MEMSET(&sp_params, 0, sizeof(sp_params)); sp_params.update_approx_mcast_flg = 1; - if (p_filter_cmd->opcode == ECORE_FILTER_ADD) { - for (i = 0; i < p_filter_cmd->num_mc_addrs; i++) { - u32 bit; - - bit = ecore_mcast_bin_from_mac(p_filter_cmd->mac[i]); - sp_params.bins[bit / 32] |= 1 << (bit % 32); - } + if (p_filter_cmd->opcode == ECORE_FILTER_REPLACE) { + _Static_assert(sizeof(sp_params.bins) == sizeof(p_filter_cmd->bins), "Size mismatch"); + memcpy(sp_params.bins, p_filter_cmd->bins, sizeof(sp_params.bins)); } ecore_vf_pf_vport_update(p_hwfn, &sp_params); diff --git a/sys/dev/qlnx/qlnxe/qlnx_def.h b/sys/dev/qlnx/qlnxe/qlnx_def.h index 6184e78fe846..f895487c47e4 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_def.h +++ b/sys/dev/qlnx/qlnxe/qlnx_def.h @@ -319,7 +319,6 @@ typedef struct qlnx_link_output qlnx_link_output_t; #define QLNX_TPA_MAX_AGG_BUFFERS (20) -#define QLNX_MAX_NUM_MULTICAST_ADDRS ECORE_MAX_MC_ADDRS typedef struct _qlnx_mcast { uint16_t rsrvd; uint8_t addr[6]; @@ -442,9 +441,7 @@ struct qlnx_host { qlnx_ivec_t irq_vec[QLNX_MAX_RSS]; uint8_t filter; - uint32_t nmcast; - qlnx_mcast_t mcast[QLNX_MAX_NUM_MULTICAST_ADDRS]; - struct ecore_filter_mcast ecore_mcast; + uint32_t ecore_mcast_bins[ETH_MULTICAST_MAC_BINS_IN_REGS]; uint8_t primary_mac[ETH_ALEN]; uint8_t prio_to_tc[MAX_NUM_PRI]; struct ecore_eth_stats hw_stats; diff --git a/sys/dev/qlnx/qlnxe/qlnx_os.c b/sys/dev/qlnx/qlnxe/qlnx_os.c index 5f6f336aab8d..85c16842283c 100644 --- a/sys/dev/qlnx/qlnxe/qlnx_os.c +++ b/sys/dev/qlnx/qlnxe/qlnx_os.c @@ -48,6 +48,7 @@ #include "ecore_sp_commands.h" #include "ecore_dev_api.h" #include "ecore_l2_api.h" +#include "ecore_l2.h" #include "ecore_mcp.h" #include "ecore_hw_defs.h" #include "mcp_public.h" @@ -89,7 +90,7 @@ static void qlnx_fp_isr(void *arg); static void qlnx_init_ifnet(device_t dev, qlnx_host_t *ha); static void qlnx_init(void *arg); static void qlnx_init_locked(qlnx_host_t *ha); -static int qlnx_set_multi(qlnx_host_t *ha, uint32_t add_multi); +static int qlnx_set_multi(qlnx_host_t *ha); static int qlnx_set_promisc_allmulti(qlnx_host_t *ha, int flags); static int _qlnx_set_promisc_allmulti(qlnx_host_t *ha, bool promisc, bool allmulti); static int qlnx_ioctl(if_t ifp, u_long cmd, caddr_t data); @@ -127,14 +128,13 @@ static void qlnx_set_id(struct ecore_dev *cdev, char name[NAME_SIZE], char ver_str[VER_SIZE]); static void qlnx_unload(qlnx_host_t *ha); static int qlnx_load(qlnx_host_t *ha); -static void qlnx_hw_set_multi(qlnx_host_t *ha, uint8_t *mta, uint32_t mcnt, - uint32_t add_mac); static void qlnx_dump_buf8(qlnx_host_t *ha, const char *msg, void *dbuf, uint32_t len); static int qlnx_alloc_rx_buffer(qlnx_host_t *ha, struct qlnx_rx_queue *rxq); static void qlnx_reuse_rx_data(struct qlnx_rx_queue *rxq); static void qlnx_update_rx_prod(struct ecore_hwfn *p_hwfn, struct qlnx_rx_queue *rxq); +static int qlnx_remove_all_mcast_mac(qlnx_host_t *ha); static int qlnx_set_rx_accept_filter(qlnx_host_t *ha, uint8_t filter); static int qlnx_grc_dumpsize(qlnx_host_t *ha, uint32_t *num_dwords, int hwfn_index); @@ -2438,138 +2438,45 @@ qlnx_init(void *arg) return; } -static int -qlnx_config_mcast_mac_addr(qlnx_host_t *ha, uint8_t *mac_addr, uint32_t add_mac) -{ - struct ecore_filter_mcast *mcast; - struct ecore_dev *cdev; - int rc; - - cdev = &ha->cdev; - - mcast = &ha->ecore_mcast; - bzero(mcast, sizeof(struct ecore_filter_mcast)); - - if (add_mac) - mcast->opcode = ECORE_FILTER_ADD; - else - mcast->opcode = ECORE_FILTER_REMOVE; - - mcast->num_mc_addrs = 1; - memcpy(mcast->mac, mac_addr, ETH_ALEN); - - rc = ecore_filter_mcast_cmd(cdev, mcast, ECORE_SPQ_MODE_CB, NULL); - - return (rc); -} - -static int -qlnx_hw_add_mcast(qlnx_host_t *ha, uint8_t *mta) -{ - int i; - - for (i = 0; i < QLNX_MAX_NUM_MULTICAST_ADDRS; i++) { - if (QL_MAC_CMP(ha->mcast[i].addr, mta) == 0) - return 0; /* its been already added */ - } - - for (i = 0; i < QLNX_MAX_NUM_MULTICAST_ADDRS; i++) { - if ((ha->mcast[i].addr[0] == 0) && - (ha->mcast[i].addr[1] == 0) && - (ha->mcast[i].addr[2] == 0) && - (ha->mcast[i].addr[3] == 0) && - (ha->mcast[i].addr[4] == 0) && - (ha->mcast[i].addr[5] == 0)) { - if (qlnx_config_mcast_mac_addr(ha, mta, 1)) - return (-1); - - bcopy(mta, ha->mcast[i].addr, ETH_ALEN); - ha->nmcast++; - - return 0; - } - } - return 0; -} - -static int -qlnx_hw_del_mcast(qlnx_host_t *ha, uint8_t *mta) -{ - int i; - - for (i = 0; i < QLNX_MAX_NUM_MULTICAST_ADDRS; i++) { - if (QL_MAC_CMP(ha->mcast[i].addr, mta) == 0) { - if (qlnx_config_mcast_mac_addr(ha, mta, 0)) - return (-1); - - ha->mcast[i].addr[0] = 0; - ha->mcast[i].addr[1] = 0; - ha->mcast[i].addr[2] = 0; - ha->mcast[i].addr[3] = 0; - ha->mcast[i].addr[4] = 0; - ha->mcast[i].addr[5] = 0; - - ha->nmcast--; - - return 0; - } - } - return 0; -} - -/* - * Name: qls_hw_set_multi - * Function: Sets the Multicast Addresses provided the host O.S into the - * hardware (for the given interface) - */ -static void -qlnx_hw_set_multi(qlnx_host_t *ha, uint8_t *mta, uint32_t mcnt, - uint32_t add_mac) -{ - int i; - - for (i = 0; i < mcnt; i++) { - if (add_mac) { - if (qlnx_hw_add_mcast(ha, mta)) - break; - } else { - if (qlnx_hw_del_mcast(ha, mta)) - break; - } - - mta += ETHER_ADDR_LEN; - } - return; -} - static u_int -qlnx_copy_maddr(void *arg, struct sockaddr_dl *sdl, u_int mcnt) +qlnx_mcast_bins_from_maddr(void *arg, struct sockaddr_dl *sdl, u_int mcnt) { - uint8_t *mta = arg; - - if (mcnt == QLNX_MAX_NUM_MULTICAST_ADDRS) - return (0); + uint8_t bit; + uint32_t *bins = arg; - bcopy(LLADDR(sdl), &mta[mcnt * ETHER_ADDR_LEN], ETHER_ADDR_LEN); + bit = ecore_mcast_bin_from_mac(LLADDR(sdl)); + bins[bit / 32] |= 1 << (bit % 32); return (1); } static int -qlnx_set_multi(qlnx_host_t *ha, uint32_t add_multi) +qlnx_set_multi(qlnx_host_t *ha) { - uint8_t mta[QLNX_MAX_NUM_MULTICAST_ADDRS * ETHER_ADDR_LEN]; - if_t ifp = ha->ifp; - u_int mcnt; + struct ecore_filter_mcast mcast; + struct ecore_dev *cdev; + if_t ifp = ha->ifp; + u_int mcnt __unused; + int rc; if (qlnx_vf_device(ha) == 0) return (0); - mcnt = if_foreach_llmaddr(ifp, qlnx_copy_maddr, mta); + bzero(&mcast, sizeof(struct ecore_filter_mcast)); + mcnt = if_foreach_llmaddr(ifp, qlnx_mcast_bins_from_maddr, mcast.bins); + QL_DPRINT1(ha, "total %d multicast MACs found\n", mcnt); - qlnx_hw_set_multi(ha, mta, mcnt, add_multi); + if (memcmp(ha->ecore_mcast_bins, mcast.bins, sizeof(mcast.bins)) == 0) + return (0); - return (0); + cdev = &ha->cdev; + mcast.opcode = ECORE_FILTER_REPLACE; + rc = ecore_filter_mcast_cmd(cdev, &mcast, ECORE_SPQ_MODE_CB, NULL); + if (rc == 0) + memcpy(ha->ecore_mcast_bins, mcast.bins, sizeof(mcast.bins)); + + QL_DPRINT1(ha, "ecore_filter_mcast_cmd: end(%d)\n", rc); + return (rc); } static int @@ -2673,22 +2580,12 @@ qlnx_ioctl(if_t ifp, u_long cmd, caddr_t data) break; case SIOCADDMULTI: - QL_DPRINT4(ha, "%s (0x%lx)\n", "SIOCADDMULTI", cmd); - - QLNX_LOCK(ha); - if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0) { - if (qlnx_set_multi(ha, 1)) - ret = EINVAL; - } - QLNX_UNLOCK(ha); - break; - case SIOCDELMULTI: - QL_DPRINT4(ha, "%s (0x%lx)\n", "SIOCDELMULTI", cmd); + QL_DPRINT4(ha, "%s (0x%lx)\n", "SIOCADDMULTI/SIOCDELMULTI", cmd); QLNX_LOCK(ha); if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0) { - if (qlnx_set_multi(ha, 0)) + if (qlnx_set_multi(ha) != 0) ret = EINVAL; } QLNX_UNLOCK(ha); @@ -6955,31 +6852,18 @@ qlnx_remove_all_ucast_mac(qlnx_host_t *ha) static int qlnx_remove_all_mcast_mac(qlnx_host_t *ha) { - struct ecore_filter_mcast *mcast; + struct ecore_filter_mcast mcast; struct ecore_dev *cdev; - int rc, i; + int rc; cdev = &ha->cdev; - mcast = &ha->ecore_mcast; - bzero(mcast, sizeof(struct ecore_filter_mcast)); - - mcast->opcode = ECORE_FILTER_REMOVE; - - for (i = 0; i < QLNX_MAX_NUM_MULTICAST_ADDRS; i++) { - if (ha->mcast[i].addr[0] || ha->mcast[i].addr[1] || - ha->mcast[i].addr[2] || ha->mcast[i].addr[3] || - ha->mcast[i].addr[4] || ha->mcast[i].addr[5]) { - memcpy(&mcast->mac[i][0], &ha->mcast[i].addr[0], ETH_ALEN); - mcast->num_mc_addrs++; - } - } - mcast = &ha->ecore_mcast; - - rc = ecore_filter_mcast_cmd(cdev, mcast, ECORE_SPQ_MODE_CB, NULL); + bzero(&mcast, sizeof(struct ecore_filter_mcast)); + mcast.opcode = ECORE_FILTER_FLUSH; - bzero(ha->mcast, (sizeof(qlnx_mcast_t) * QLNX_MAX_NUM_MULTICAST_ADDRS)); - ha->nmcast = 0; + rc = ecore_filter_mcast_cmd(cdev, &mcast, ECORE_SPQ_MODE_CB, NULL); + if (rc == 0) + bzero(ha->ecore_mcast_bins, sizeof(ha->ecore_mcast_bins)); return (rc); } @@ -7041,7 +6925,7 @@ qlnx_set_rx_mode(qlnx_host_t *ha) if (rc) return rc; - rc = qlnx_remove_all_mcast_mac(ha); + rc = qlnx_set_multi(ha); if (rc) return rc; From nobody Wed Feb 11 20:38:47 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 4fB9J80Hktz6SBLS for ; Wed, 11 Feb 2026 20:38:48 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fB9J73fqdz3M2y for ; Wed, 11 Feb 2026 20:38:47 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770842327; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=STzZXdaegwVgo6z8OFMMVeZguZnP6oHUHVxwK1FZDlM=; b=enVCm9SXG1nBN+DaGEnPHBZUFHs5f+x0ozqQnol9YOqwZlDoHJbwrrwqGba6cNrvw7UfHJ /uo+cLT6OG0tBRpKvF6GOVvfjObah03cHuiva2PvIgoIYYInBJjkMDxEsStNwqjhyOyggw c+OMtZO5gM5AbL95hHSnvNC8Mfxn9XSq8vXeDKU2JvqylhdR39QMbB3IkIW4uRxaSKAoXO eJu0UFMFWEuFm5PP8N3njDes7j5eB8PfNIid9LGQKu4etn+BLG4hO2/4UMEDeR+fDg33Mh 2NPomTA5Odr+zy6psV1AQNmxanQLzgIZ72M9nSNFu1cqGNpfiElLAzPHN9k3Iw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770842327; a=rsa-sha256; cv=none; b=hHQb056+EXNzufo7Iaf4Oop7k7YM7G/ghkT/+AslIoLqrnVDz+Q0oAg5a2yFi8RZz/juYr 7U4MAtzIAO06QCuxg4syejp0YezHxbXBoMmkAYXobWG4pOqH5VV18TgRPEWOJoX4gVtBSm rYzxto1b7ewuZm+krp5aPvL/vI6tIgZ+pGRJEUzCzVMFl89SHO9ymfzWocvNymUl0JLvTB Lz04Q/oFDS5nX3mVUT6XfJUYZVE430y13C2FanZqNeQ78Hp6n43d+TCntKmif9Ln6W4OdE HDbGjWqwkXEz6BA8yglVx2DGSObj8bITdQsEAHJBl+Fo6m/d+JdCh8IxinpG6A== 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=1770842327; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=STzZXdaegwVgo6z8OFMMVeZguZnP6oHUHVxwK1FZDlM=; b=OpRvLBVKEtTH72bNpfZn/mImxBewdou4Pe5KSNeL/9Jo633bOaQ10SOvaIwreKL4d38mX1 0gczhSBXoCgFylPfZk/By6xudGbFhz6Efj2+iVlVeIcg+tK9mIuL9/XSGXZfeUqtLvt3kq bhD3naBOQ548NCNuTHplAv7ElCm5U3OQa338Uv3SrvPhWdnBImDLKRHCg/GSJYPQw4fCj9 VfMh9jT1dv18D8rFLekwEsI6eBKCdnwhJJ1kdLmaf5N2yNRZ1YkWk4UUO5q2VeBJZrmr69 QNWdBJdVfsdWCE5BZqI9JDUe5ATZCKaep15acGUsbjf8noeXsF5/+9b+U7IzvA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fB9J72QDdz14x6 for ; Wed, 11 Feb 2026 20:38:47 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 44ff1 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 20:38:47 +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: d653f474e901 - stable/15 - libfetch: Check for failure to create SSL context 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: d653f474e901b1d43657b8955247d1bbd1c3d248 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 20:38:47 +0000 Message-Id: <698ce8d7.44ff1.68d1a45d@gitrepo.freebsd.org> The branch stable/15 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=d653f474e901b1d43657b8955247d1bbd1c3d248 commit d653f474e901b1d43657b8955247d1bbd1c3d248 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-07 14:24:40 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-11 13:54:39 +0000 libfetch: Check for failure to create SSL context * Drop the ssl_meth member, there is no reason to hang on to it. * Replace deprecated SSLv23_client_method() with TLS_client_method(). * Check the return value from SSL_CTX_new(). MFC after: 1 week PR: 292903 Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D55098 (cherry picked from commit 4e160c6197f75fda3d5d5997ce893087058cf718) --- lib/libfetch/common.c | 10 +++++++--- lib/libfetch/common.h | 1 - 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/libfetch/common.c b/lib/libfetch/common.c index f59ef9a8bbb0..584973476068 100644 --- a/lib/libfetch/common.c +++ b/lib/libfetch/common.c @@ -1182,8 +1182,11 @@ fetch_ssl(conn_t *conn, const struct url *URL, int verbose) X509_NAME *name; char *str; - conn->ssl_meth = SSLv23_client_method(); - conn->ssl_ctx = SSL_CTX_new(conn->ssl_meth); + if ((conn->ssl_ctx = SSL_CTX_new(TLS_client_method())) == NULL) { + fprintf(stderr, "SSL context creation failed\n"); + ERR_print_errors_fp(stderr); + return (-1); + } SSL_CTX_set_mode(conn->ssl_ctx, SSL_MODE_AUTO_RETRY); fetch_ssl_setup_transport_layer(conn->ssl_ctx, verbose); @@ -1194,7 +1197,8 @@ fetch_ssl(conn_t *conn, const struct url *URL, int verbose) conn->ssl = SSL_new(conn->ssl_ctx); if (conn->ssl == NULL) { - fprintf(stderr, "SSL context creation failed\n"); + fprintf(stderr, "SSL connection creation failed\n"); + ERR_print_errors_fp(stderr); return (-1); } SSL_set_fd(conn->ssl, conn->sd); diff --git a/lib/libfetch/common.h b/lib/libfetch/common.h index 7396c8a68ab6..06089aae5451 100644 --- a/lib/libfetch/common.h +++ b/lib/libfetch/common.h @@ -56,7 +56,6 @@ struct fetchconn { SSL *ssl; /* SSL handle */ SSL_CTX *ssl_ctx; /* SSL context */ X509 *ssl_cert; /* server certificate */ - const SSL_METHOD *ssl_meth; /* SSL method */ #endif int ref; /* reference count */ }; From nobody Wed Feb 11 20:41: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 4fB9MF66QTz6SBN6 for ; Wed, 11 Feb 2026 20:41: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 4fB9MF3zb0z3MR0 for ; Wed, 11 Feb 2026 20:41:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770842489; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GqkYwTu3xfD7BLhdzFTDC6sMz+wiv1xfG0zjnjfAT+A=; b=DKdDwundvJCQlZAaJcG0y+/drVMiyuXjPsgQFM+UhmLmV2F41RiB4bnx3W/hdxvzzsuhY8 bBuk/Ha/EHChLPIZfQ/zxlSRVRrRW0vl02uoVn9NQBfGS6cbCkIUVEL/NR1cUL0hr9xKoW 5PzehIOim/QXwrgqjjSqcJzLqyfzUlNZadFiGt10i7L6lmnPIRufLWe1g1fCWCVf3JpOQd wbrBE1z1ej7AlQm+D8/Nr3HHl0EoHA2YbqepueQUo+Vjm3z5MQPcd34cqqHUtL9Mq71Fdm JfxR3AuBGt40Eb+emcPtWdaDe4EcbbRyQefnwXdP2OhuzsENAQ2mTA+aCWxxcw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770842489; a=rsa-sha256; cv=none; b=bh0crW6KvzNzZvQJly4hVAjEzZ7nC2xlsYpctdn3CWnWGM7GyF6jjzoZ7z0ENirxnE9A1e 9Ab++/fTk+4Un8tjmlI4spjfdYUtMBLhbLUEKrpQx3OwC10n6cFCLMDAhSD/pTDFMuI4Dg 7GA4nVyOsIsYCvFpcU8faKMqjuhbTZDKDob4R1f9Kb0XPb2X6SEeJ1/PrzBobtpz8rr/Kb MfGldKNwawLXQqZ7O0Y1gwQOhUvyddrX5PvLn+agTmIacS0L4C0MwUUnWG5dBApvWTv+j+ chdHTC1FZsDym3GdekgsCWu1rKlvoaSPImPeDuI61aJaPddlrl1WjUJYXWcdVw== 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=1770842489; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=GqkYwTu3xfD7BLhdzFTDC6sMz+wiv1xfG0zjnjfAT+A=; b=BlpNHZwEKIBCebELFGMM+gBdtO4vOml+M3fteYb28qRaZC/Dh1ysu1bARSsFCJYCSWhpEJ AbiwFbXkvKfkDRxCsWLUWYBQWugq/73/HX+XXZZRJFpxryZy5UiAcVo1O0Kerqh4wRPXOB zz5/JxUCvZGI1G0WQTdD48B2VBtbBPomIO2hObQzIxr1mT6TdBGCp70dpKnFt6ga4pkxkQ IgvayigjsbBfX+SOj6lkfxOc9PqBiVHBWMHzmz/0S5u8nv4Lxagb2gvej9n1fwlmMbekyo jNGAxNdzgpf/p8usXUEDbMdlnWshmohnIV4TdRqLn/7jJXxFHos7YUqyLd/fyw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fB9MF3XZYz14d4 for ; Wed, 11 Feb 2026 20:41:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 4779f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 20:41:29 +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: 4781aeb5b9cb - stable/14 - libfetch: Check for failure to create SSL context 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: 4781aeb5b9cb564a53fee8128f6827402deaf9df Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 20:41:29 +0000 Message-Id: <698ce979.4779f.3cdbead5@gitrepo.freebsd.org> The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=4781aeb5b9cb564a53fee8128f6827402deaf9df commit 4781aeb5b9cb564a53fee8128f6827402deaf9df Author: Dag-Erling Smørgrav AuthorDate: 2026-02-07 14:24:40 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-11 13:54:41 +0000 libfetch: Check for failure to create SSL context * Drop the ssl_meth member, there is no reason to hang on to it. * Replace deprecated SSLv23_client_method() with TLS_client_method(). * Check the return value from SSL_CTX_new(). MFC after: 1 week PR: 292903 Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D55098 (cherry picked from commit 4e160c6197f75fda3d5d5997ce893087058cf718) --- lib/libfetch/common.c | 10 +++++++--- lib/libfetch/common.h | 1 - 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/libfetch/common.c b/lib/libfetch/common.c index a39bfb33e95c..d5423d8eb5d1 100644 --- a/lib/libfetch/common.c +++ b/lib/libfetch/common.c @@ -1183,8 +1183,11 @@ fetch_ssl(conn_t *conn, const struct url *URL, int verbose) X509_NAME *name; char *str; - conn->ssl_meth = SSLv23_client_method(); - conn->ssl_ctx = SSL_CTX_new(conn->ssl_meth); + if ((conn->ssl_ctx = SSL_CTX_new(TLS_client_method())) == NULL) { + fprintf(stderr, "SSL context creation failed\n"); + ERR_print_errors_fp(stderr); + return (-1); + } SSL_CTX_set_mode(conn->ssl_ctx, SSL_MODE_AUTO_RETRY); fetch_ssl_setup_transport_layer(conn->ssl_ctx, verbose); @@ -1195,7 +1198,8 @@ fetch_ssl(conn_t *conn, const struct url *URL, int verbose) conn->ssl = SSL_new(conn->ssl_ctx); if (conn->ssl == NULL) { - fprintf(stderr, "SSL context creation failed\n"); + fprintf(stderr, "SSL connection creation failed\n"); + ERR_print_errors_fp(stderr); return (-1); } SSL_set_fd(conn->ssl, conn->sd); diff --git a/lib/libfetch/common.h b/lib/libfetch/common.h index 7396c8a68ab6..06089aae5451 100644 --- a/lib/libfetch/common.h +++ b/lib/libfetch/common.h @@ -56,7 +56,6 @@ struct fetchconn { SSL *ssl; /* SSL handle */ SSL_CTX *ssl_ctx; /* SSL context */ X509 *ssl_cert; /* server certificate */ - const SSL_METHOD *ssl_meth; /* SSL method */ #endif int ref; /* reference count */ }; From nobody Wed Feb 11 20:42: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 4fB9My5tXQz6SBR2 for ; Wed, 11 Feb 2026 20:42: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 4fB9My51cDz3N2C for ; Wed, 11 Feb 2026 20:42:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770842526; 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=rk9zWW2r6rJnMv/av1VWHuxXgzlcvTLisuzp+1yc3A4=; b=u0G/BlQpmr9Gf2WrzrbHkgnBeDMr915obFMHufrEDO5/mRzBA2Ps6r9nprfPUQgyNe+/7a 8LlXSBVJaGsaLuARNOg0HIAlH44eerVQ9szKusovlb4K8udd0HWwNCN2zcoMhigF/Zenn/ SPKyGrvmAyWmZt5FiRF7q4Ugaj0PkjDH9s04d3+MOruV9FGluu416lplNioh2Z/lHWCs6C mVgNp94kO9q7WOQPV5yMYP0jODJTHSrKjbWSYhcFtvaKyuSxdw7fqLpdtf362UDmvsA4hg fKajLzjVbyjbUzFuKdQeSzYpKP0HDTxZce+RsVR+ta8LGwFQ4MlMGHVRGhQRmA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770842526; a=rsa-sha256; cv=none; b=PmBh24l19nYNR5bVqy85GUFi8MbGm+40ZguIYbZLh2Z04mPWAMzueszX+xezW9jb/QmOX/ Nag6KJxsZRtTEP2AGKjM1N2YkeILCfTlhWbc6z8C2Jc4VTTg2eLhwkgwNprvvREndXWcPo 8aGI1atlnY9Zj2lBZNjXzFXVrq+HwYOjW/P2rtIvxl1dM5qcRqh1Faix90ou4vVOBWiQm6 ng7bZFoIxXY8PkcW+uZ3lZL2p31/rHZ3A+JXUxfwYNj8FIrK9/EgTYxE9D+8hhc1MW3r7Q KnP0jCSGNcRuW0WT5UOYzCge7tV8XRfPLeFfZtTBmH2Aty5Hh7uub4IDF1ORUA== 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=1770842526; 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=rk9zWW2r6rJnMv/av1VWHuxXgzlcvTLisuzp+1yc3A4=; b=BI7dCP64Jov8nxS7ZlfnuLZu5IdEFQiNfSmNpSeQKv4YcLv8TC5o15Y9+p7Pcql7yDABbX BcScnN3+jNEQeDKdiOMAle6FrtUEh2QYo1J5iLS69/Zmx/lVZ51l7dJwA/aH7axxZsDnBN 04LCecm7fM/Hwt/bkyNOJOKo/j7zIjP5NkqQAnHFCQu7GWt5+qfxv09yvKim0KV5F412/T 5UvyZx4yzhrSqrLWYXACtWDwtoFlN5fvq8aUjznGB7CnvpCoYlsjlYCjKoGNsQwg5ICD2R 1kWvXipdJKS6elX41q8cDOmrx/fdoSpoctIX/DNbajX8gcHmDqk+LDIkgYlrhQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fB9My4b8mz14xf for ; Wed, 11 Feb 2026 20:42:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 18082 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 20:42:06 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Ed Maste From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: be6ed6b2779a - stable/13 - libfetch: do not call deprecated OpenSSL functions 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: be6ed6b2779a883e2583763634db4fff9077ddbc Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 20:42:06 +0000 Message-Id: <698ce99e.18082.30d777f1@gitrepo.freebsd.org> The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=be6ed6b2779a883e2583763634db4fff9077ddbc commit be6ed6b2779a883e2583763634db4fff9077ddbc Author: Ed Maste AuthorDate: 2023-05-25 15:24:48 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-11 13:53:17 +0000 libfetch: do not call deprecated OpenSSL functions As of OpenSSL 1.1 SSL_library_init() and SSL_load_error_strings() are deprecated. There are replacement initialization functions but they do not need to be called: "As of version 1.1.0 OpenSSL will automatically allocate all resources that it needs so no explicit initialisation is required." Wrap both calls in an OPENSSL_VERSION_NUMBER block. PR: 271615 Reviewed by: Pierre Pronchery Event: Kitchener-Waterloo Hackathon 202305 Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D40265 (cherry picked from commit 01aee8c92d936470c44821736e0d9e11ed7ce812) --- lib/libfetch/common.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/libfetch/common.c b/lib/libfetch/common.c index 766aa2200f26..3a7aba160206 100644 --- a/lib/libfetch/common.c +++ b/lib/libfetch/common.c @@ -1196,6 +1196,7 @@ fetch_ssl(conn_t *conn, const struct url *URL, int verbose) X509_NAME *name; char *str; +#if OPENSSL_VERSION_NUMBER < 0x10100000L /* Init the SSL library and context */ if (!SSL_library_init()){ fprintf(stderr, "SSL library init failed\n"); @@ -1203,6 +1204,7 @@ fetch_ssl(conn_t *conn, const struct url *URL, int verbose) } SSL_load_error_strings(); +#endif conn->ssl_meth = SSLv23_client_method(); conn->ssl_ctx = SSL_CTX_new(conn->ssl_meth); From nobody Wed Feb 11 20:42: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 4fB9N01MZvz6SBJK for ; Wed, 11 Feb 2026 20:42: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 4fB9Mz5mRyz3Mlr for ; Wed, 11 Feb 2026 20:42:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770842527; 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=vqRDp9IR+lvNQpd10h/5G0ZEn/UbzLjvgRhmOM6a8IM=; b=myBdpwPljc0nluCjMIUAlPyg4KbQRWXVISCKVvJy1+w9jzmrBqqN2FxS9MR/9yB9RIkefS 9qFzXyIA1p02d3grvx0PSv7xmbMvu3DLCaXzOVKB6GiQQAN5dhO1JjZAGbXcpqBq66MglM YCJlBGhngRU+DNsV56fb0SrqV5PncW3c6XYhtZRbsoOv0jVAfE9x4rb62x2rqPRFYbUhWF CmCxq1l5cXw0WGNDawiOSfMyb7dbs/tfHKXDr+oTCq9OBuEwWQ+x9HJog4jf9OZsD1Ko/Z nluYurtKjj0mhmFjY+1VcS7sGlPzwmQ+pqyTAY8S6/YyYc9SMFmczDXYLH+I9A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770842527; a=rsa-sha256; cv=none; b=vkkIZiW3Kt4PVFDd0vD7dm/oWbO2Oj7uB1TuDdoq3oRo74sdWLlqmdZyPU0E261lwrdVVO 5LD0xgGPsAwmTSnVUAGM8GEdaz9juUhvk+hhqU56NJ2xSROkryMByIfXnbOBYf8ymdx6hX Z30e4NGrkL+cT0ysKz+6AdUsKu9Wf7IXkGu/mjBJSrpg14MR4lkLSpo93YrgB0GfmgTDpK beeOGP6QUiBjMNejt6ZMrKnlSgp4xnp54C73F1+a2G/OHnDFTRWRh5+uLOMq+t+XlaMgPb H9Yo9Y2j/16niq185n9tWEZlky8cqIODltXTECh1y5yPzvJMmcrZenTRxGUTsw== 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=1770842527; 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=vqRDp9IR+lvNQpd10h/5G0ZEn/UbzLjvgRhmOM6a8IM=; b=uDtatu6Wle+NlwyBfjyCI7puRZGn9XBHBc4TbJNuoP0z1nHj0evkHO1SZNjLm9Id7UQPhB KXzWICBhjdM5a2fMeVoPqAHs9IT3D42KJ4BBjcBgXMVa9eyczFBde6XBjhu28AU/jWT06v MWmGYiMA6+0ON+E9t4gQGb4hyNGYDg0C0OxSlJFouqTDnewbbUFLGAt4GAOKN0spVsPa6u gSBSF8Nqn6eWc03C6N3fMZ6IaRw6o7QO2+PgrTKsfO6JF+Y6KujAHBOvPFTOAwBpiWDPGM Jg5LJ6xuQP8n0ZQs8jeSGZiUzn8vIfuv1V4U5PYcVcJWhBed7Njkgh+7lGWEWA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fB9Mz5MD9z14Qx for ; Wed, 11 Feb 2026 20:42:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 47b94 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 20:42:07 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Enji Cooper From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav Subject: git: e20dba3a212d - stable/13 - libfetch: remove all old OpenSSL 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: des X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: e20dba3a212d9e114c697b31ae9104e21a03a6d2 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 20:42:07 +0000 Message-Id: <698ce99f.47b94.7963d8cf@gitrepo.freebsd.org> The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=e20dba3a212d9e114c697b31ae9104e21a03a6d2 commit e20dba3a212d9e114c697b31ae9104e21a03a6d2 Author: Enji Cooper AuthorDate: 2023-06-22 03:53:54 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-11 13:53:30 +0000 libfetch: remove all old OpenSSL support This change removes pre-OpenSSL 1.1 supporting code and removes/adjusted preprocessor conditionals which were tautilogically true as FreeBSD main has shipped with OpenSSL 1.1+ for some time. Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D40711 (cherry picked from commit bc1027a7785166fde9c2a3b48e6e70d198377d4b) --- lib/libfetch/common.c | 28 +--------------------------- 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/lib/libfetch/common.c b/lib/libfetch/common.c index 3a7aba160206..723cba62bb57 100644 --- a/lib/libfetch/common.c +++ b/lib/libfetch/common.c @@ -948,24 +948,8 @@ fetch_ssl_verify_altname(STACK_OF(GENERAL_NAME) *altnames, const char *ns; for (i = 0; i < sk_GENERAL_NAME_num(altnames); ++i) { -#if OPENSSL_VERSION_NUMBER < 0x10000000L - /* - * This is a workaround, since the following line causes - * alignment issues in clang: - * name = sk_GENERAL_NAME_value(altnames, i); - * OpenSSL explicitly warns not to use those macros - * directly, but there isn't much choice (and there - * shouldn't be any ill side effects) - */ - name = (GENERAL_NAME *)SKM_sk_value(void, altnames, i); -#else name = sk_GENERAL_NAME_value(altnames, i); -#endif -#if OPENSSL_VERSION_NUMBER < 0x10100000L - ns = (const char *)ASN1_STRING_data(name->d.ia5); -#else ns = (const char *)ASN1_STRING_get0_data(name->d.ia5); -#endif nslen = (size_t)ASN1_STRING_length(name->d.ia5); if (name->type == GEN_DNS && ip == NULL && @@ -1196,16 +1180,6 @@ fetch_ssl(conn_t *conn, const struct url *URL, int verbose) X509_NAME *name; char *str; -#if OPENSSL_VERSION_NUMBER < 0x10100000L - /* Init the SSL library and context */ - if (!SSL_library_init()){ - fprintf(stderr, "SSL library init failed\n"); - return (-1); - } - - SSL_load_error_strings(); -#endif - conn->ssl_meth = SSLv23_client_method(); conn->ssl_ctx = SSL_CTX_new(conn->ssl_meth); SSL_CTX_set_mode(conn->ssl_ctx, SSL_MODE_AUTO_RETRY); @@ -1223,7 +1197,7 @@ fetch_ssl(conn_t *conn, const struct url *URL, int verbose) } SSL_set_fd(conn->ssl, conn->sd); -#if OPENSSL_VERSION_NUMBER >= 0x0090806fL && !defined(OPENSSL_NO_TLSEXT) +#if !defined(OPENSSL_NO_TLSEXT) if (!SSL_set_tlsext_host_name(conn->ssl, __DECONST(struct url *, URL)->host)) { fprintf(stderr, From nobody Wed Feb 11 20:42: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 4fB9N11GYHz6SBR7 for ; Wed, 11 Feb 2026 20:42: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 4fB9N06gSJz3NDg for ; Wed, 11 Feb 2026 20:42:08 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770842529; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=amcPGpqCurW2EiUSGr5KdCUNFksiEvJn7Z8lJZQSp/s=; b=BJh3I+BZn59D2x4K5HOffimy1NR54LVAjbxCKLr3zoHa5bBdAMyqv387Rb6fF7UMaryxoJ Z/6HZcJIgTZzpE1n45fovWrqOmnTwFUa0e40xsBw/Q5ZjBll1TU9SUG77Q5V8yNjpga3lz Ab0nekMI+udobvzD+ZPxeLw4b2lyHNd496ZJxqkzCif7YT+B3/65/fYygN4pKcPnNH98Hx /Y/7i6gitpXxQ2kn5I6Hf1VstGpIrgPS3HDJEH33nQC4GZ6IhAEyTh9/CdD/2qfSxv4PV6 JO74kL9QlxpwS4QJavOj8H4nDF3fnMHt3keGncMMTb81RoxBQgCsz/wbOeV8WA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770842529; a=rsa-sha256; cv=none; b=qf5PkRgP+BRc2nYAj9lLY3nyN9jpjLVR2qr9u55ILH9KbjOYr552b9F1F4p25P2YRzSRyG f5sK1ClnSgoaw0a3HMMFOFXGdou5JuYcLEKKpkcu/NJIjrfrfMSBHjkUmnO7Ar7uocqh3m DSoWU6StYDthsadp4KFwgNi5/pVwMXYJOMdRtD0v0nTk3C2EkIMCUiC0pmfWkDAekZkTsy 2Pp6Ji18ASuwmaFWzIvX3fEUghzEZMLJRLoGGeA/ehYL2tCpqXZdAH/wBpPK0oXZ72rl4D zQ4CZMPPIsVwl7bCTu+2vjzbgF5bb88Qvv9EcWChIJIGMlyRZBMPL8QXpSJUYA== 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=1770842529; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=amcPGpqCurW2EiUSGr5KdCUNFksiEvJn7Z8lJZQSp/s=; b=C80auzvLaxHM1TkCCcniJvY5lppzTOL6Yk8tvdIXg+riODG3YlGSgY95wG9J6D5CIYSci4 t7V64Tb1ZdAVJN9iauBbfN02I3+6VIdBpAn3HShdUzwT6ZM5G7nrFiKnZy25xenuuOCD9B tQ112nFi4sV82aoT0Q9KBFcIBTrWjN7QWKD6dixIqf5k+di9KQFIBbcuFySaZT7TFHrVVW KiIlyStLyyheka8SWCk20Y5xEGmD9PTxGzkhe7tvlawbhNOsE0vi0f+PBDpeGUnIQAcA/R usHLGmuGPkENCjpxR3nnVzhF2eXS5zE1rV0+ixYj+lm9dCPyC7zso2OnwYyJHQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fB9N06F9Xz14Qy for ; Wed, 11 Feb 2026 20:42:08 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 46a74 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Wed, 11 Feb 2026 20:42:08 +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: 767f1ebcf75e - stable/13 - libfetch: Check for failure to create SSL context 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: 767f1ebcf75e85912b65f9a117c9ab4f76ce71c0 Auto-Submitted: auto-generated Date: Wed, 11 Feb 2026 20:42:08 +0000 Message-Id: <698ce9a0.46a74.5d1ccd84@gitrepo.freebsd.org> The branch stable/13 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=767f1ebcf75e85912b65f9a117c9ab4f76ce71c0 commit 767f1ebcf75e85912b65f9a117c9ab4f76ce71c0 Author: Dag-Erling Smørgrav AuthorDate: 2026-02-07 14:24:40 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2026-02-11 13:54:33 +0000 libfetch: Check for failure to create SSL context * Drop the ssl_meth member, there is no reason to hang on to it. * Replace deprecated SSLv23_client_method() with TLS_client_method(). * Check the return value from SSL_CTX_new(). MFC after: 1 week PR: 292903 Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D55098 (cherry picked from commit 4e160c6197f75fda3d5d5997ce893087058cf718) --- lib/libfetch/common.c | 10 +++++++--- lib/libfetch/common.h | 1 - 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/libfetch/common.c b/lib/libfetch/common.c index 723cba62bb57..ca5022df38b4 100644 --- a/lib/libfetch/common.c +++ b/lib/libfetch/common.c @@ -1180,8 +1180,11 @@ fetch_ssl(conn_t *conn, const struct url *URL, int verbose) X509_NAME *name; char *str; - conn->ssl_meth = SSLv23_client_method(); - conn->ssl_ctx = SSL_CTX_new(conn->ssl_meth); + if ((conn->ssl_ctx = SSL_CTX_new(TLS_client_method())) == NULL) { + fprintf(stderr, "SSL context creation failed\n"); + ERR_print_errors_fp(stderr); + return (-1); + } SSL_CTX_set_mode(conn->ssl_ctx, SSL_MODE_AUTO_RETRY); fetch_ssl_setup_transport_layer(conn->ssl_ctx, verbose); @@ -1192,7 +1195,8 @@ fetch_ssl(conn_t *conn, const struct url *URL, int verbose) conn->ssl = SSL_new(conn->ssl_ctx); if (conn->ssl == NULL) { - fprintf(stderr, "SSL context creation failed\n"); + fprintf(stderr, "SSL connection creation failed\n"); + ERR_print_errors_fp(stderr); return (-1); } SSL_set_fd(conn->ssl, conn->sd); diff --git a/lib/libfetch/common.h b/lib/libfetch/common.h index 7396c8a68ab6..06089aae5451 100644 --- a/lib/libfetch/common.h +++ b/lib/libfetch/common.h @@ -56,7 +56,6 @@ struct fetchconn { SSL *ssl; /* SSL handle */ SSL_CTX *ssl_ctx; /* SSL context */ X509 *ssl_cert; /* server certificate */ - const SSL_METHOD *ssl_meth; /* SSL method */ #endif int ref; /* reference count */ }; From nobody Thu Feb 12 05:07: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 4fBNb30CLLz6SJ63 for ; Thu, 12 Feb 2026 05:07: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 4fBNb26c3Tz3PkF for ; Thu, 12 Feb 2026 05:07:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770872846; 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=HYhZu8vYqw1E/0xQS0rjPbaS8u2Jw5oxIla3TlY0Fww=; b=Fo03EFiPGQE4wdCdk25x7Vg0a+rgP7dnpcd8Hp5S9Pg/pfhj03G8t+kObeUVPH3tvqJpfe TV6lHAuLzhQQv8mOFlkJMTQC5pABd5f5QpNrs/P77BU00Pb9fytsMkBD/Quysrqa4tvCNP BFLytiPnTmfdECMLmAm75NIdFxnNCVWr6Q3HMwTzAOSEiWt44IddVyKetuMW88C53+73Hk dLYyI0oOHt0aFWCokQszA6y8IlocmS3EcfK1vEggSuIsy6QutwE0r6jmSGDxJyS+YY9FzM W1e4f+B8AZg4637cFwIpWOSvxQJisastykGtk/4zKGvHXhGRUw6kz2neyL4Q6Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770872846; a=rsa-sha256; cv=none; b=wbRKzcc83FuZzDUPmUjyAPp3epryPUsaEJqF4UxTi7yzFEkN4GRE9YlPAWb6iYmIKDHsfe Q126xpL+kyrFrk+VV4mpJZ7Dua/8sZyatK6wxWjjgrWY3IFWFl6QgfWuKJVo6cfRajbD2y +NRBepz3VrM2SEySRM9ZYYgKug7J/8rtzuAv8lgyfXVIkMqxKhCjVDy6fRaXoF+dXqJPJ1 SM1jIA/os3qrafH4lTnT/lQ/+33HGqkY3+ngzh4I+lFe+6tKXxgvTmvYRowMGckCqkEtwP 4FMOGg/Amq5Hwk1SZHvscBGpkePZTMSryw1UXir8shiI0ztqBKjjESwb/18Zvg== 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=1770872846; 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=HYhZu8vYqw1E/0xQS0rjPbaS8u2Jw5oxIla3TlY0Fww=; b=ti+xeZ6Sqk3dK2K5BfXnHpNa5DNME2rxwup7W+4EOFJ1wiJ/GMOfG4ACpw5pUP1CZUQUk+ WL0G2rCDc5PawRHvrl9AphwqQE/bFci8NYWVcKZVjuFEz1v6WsX8Fhn76lHgopZOgUGueu PbBEa/bNNybHkD2EhqIbdeRyE8VykU2RS7TGZiiFPoTFudrvW92Cx1sw9LUAElQkfN6QcS P368aLlZD8y8SWIhYSprrqrYYs2G4/ZKyPZTnGcHL4a3Hb7eAeYUub9/6kop1bqfy+lKyp lh560svDRFGnBJw77aaU2eV2nYCpN3DTDeRJ8QSR2hrVLdSlvAN6wVoRRdUbWg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fBNb268fyz6F6 for ; Thu, 12 Feb 2026 05:07:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 22e7d by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 12 Feb 2026 05:07:26 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Artem Bunichev From: Alexander Ziaee Subject: git: 35a4e3a73367 - stable/15 - sh.1: Fix rendering error due to redundant .El 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: 35a4e3a73367715bb2b55a0b9190617da8155cea Auto-Submitted: auto-generated Date: Thu, 12 Feb 2026 05:07:26 +0000 Message-Id: <698d600e.22e7d.5426710f@gitrepo.freebsd.org> The branch stable/15 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=35a4e3a73367715bb2b55a0b9190617da8155cea commit 35a4e3a73367715bb2b55a0b9190617da8155cea Author: Artem Bunichev AuthorDate: 2026-02-03 16:14:09 +0000 Commit: Alexander Ziaee CommitDate: 2026-02-12 05:04:33 +0000 sh.1: Fix rendering error due to redundant .El Due to this all the rest of the items in the Built-in Commands section were not rendered at all. Fixes: 2711852bd9ac ("sh.1: Provide detailed job control documentation") MFC after: 3 days Reviewed by: emaste, ziaee Differential Revision: https://reviews.freebsd.org/D55080 (cherry picked from commit 9555d80066c919596e152f923d38d58a740cdb5f) --- bin/sh/sh.1 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/bin/sh/sh.1 b/bin/sh/sh.1 index dc3ebfb17215..3113c1cf6166 100644 --- a/bin/sh/sh.1 +++ b/bin/sh/sh.1 @@ -41,7 +41,7 @@ .\" the referee document. The original Standard can be obtained online at .\" http://www.opengroup.org/unix/online.html. .\" -.Dd January 27, 2026 +.Dd February 3, 2026 .Dt SH 1 .Os .Sh NAME @@ -2600,7 +2600,6 @@ write to the terminal while in the background. See .Xr signal 3 for additional information on the meanings of the aforementioned signals. -.El .It Ar command The associated command that was given to the shell. .El From nobody Thu Feb 12 05:07: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 4fBNb43RW1z6SJ67 for ; Thu, 12 Feb 2026 05:07: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 4fBNb4097mz3Q5V for ; Thu, 12 Feb 2026 05:07:28 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770872848; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6zWcbWc7/48BPywL79NSv8zIvRIhiV5j0INc9zbi3r8=; b=lEInTRjVgeWJqdtq4wdVfgkPQXvEn0iefsbjs7zZhbIO9nRDHrEEnxuzP3GbES933GZdzX 5LxuU5asszUZTswGt1ISkVB0hxBxU42pnS/nhbs91n4i4xlZWJXiUNLM5yAJgly4r5Rwb9 3jd9eAxYPH9Y0R4pxmCc6CKmb+P26Q7+p0W5NhHsP87cS57cQg8Eb6tXbPO0iTNoQBpS5/ 1ViGVO5KLRvVPnrwi96LdgjEcxM1JYwkRPPCWbbuPWsylD9kVdu5rP5l0zEMIWu7/CoaUU scPUnU+DdBEs2LHcutDU9syviM0E89W374a5+FtYDmn+hdLS5rWQmW9CIKcmMw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770872848; a=rsa-sha256; cv=none; b=c2okitkv+inf0bJvxdYJEXCoRPoNqFKeR1Ywt/4prjz1jEP9XuSpxfPB11Q25dJbuzQOJI sXeLJtI6mZh2twddhquPKdNlEzsQFy8MvY/Ie0/WIGNQx+6IeaJYUhcPXgfbfTYnqHgmEV ThKnOyaOE/l0MV0uSPL+0MwGEeZwXxPgS8vTQ7iO2dwYYmdTsnpjwIHYQAbzmSr75SYZ6o uS+E7U1tuWapXyvYdug7L0SA88uXgIvrt+bE0wP6mxeRzYunZQqoSdg3sF4XJ0g2sXsd2h jcH/VvCJEg4T+K28ud1jI+EToWRQHliBuwPfZtdHdOo+xwOukKqFXGr8780kCw== 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=1770872848; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=6zWcbWc7/48BPywL79NSv8zIvRIhiV5j0INc9zbi3r8=; b=hMYeKUbRJ6y5J4R5UaanoT84DlpaFWAR4xHNTeW9E5aMVJ/+BQW8WUsyuO7YHCNPLyi4ZI 2jKCZMyA+gYf0Kt2BGP2p3q4y8vUXxTb0inbiTVqT3Xw2ntqwMOeEz2xJKb0Tfgi+Z9Nyu iD3MiRzDs5GH7O5lV+FMIvXeiBAZoD6Nh2EKq07IHQz2WovujFZoakvqyjsU4fa6QMmF8k JCxmw1SJKP6QG9mengFB3s9qwp0INSkscdsNcpuh8DrX0LEYpVCNhWJh0hNSvVeDJfIm4C Fd6ZgZN5St8DKr7KZQqdXC7AR9Ywv031nUJVSZor/cd61L5GidpBeaPWUoad8Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fBNb36t0cz63N for ; Thu, 12 Feb 2026 05:07:27 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 25348 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 12 Feb 2026 05:07:27 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: 679c88ce9bfc - stable/15 - committers-ports: Belatedly add jwb 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: 679c88ce9bfcc90df784cac07a8b89bbb4618b2b Auto-Submitted: auto-generated Date: Thu, 12 Feb 2026 05:07:27 +0000 Message-Id: <698d600f.25348.66bdcd6d@gitrepo.freebsd.org> The branch stable/15 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=679c88ce9bfcc90df784cac07a8b89bbb4618b2b commit 679c88ce9bfcc90df784cac07a8b89bbb4618b2b Author: Alexander Ziaee AuthorDate: 2026-02-05 14:12:29 +0000 Commit: Alexander Ziaee CommitDate: 2026-02-12 05:04:43 +0000 committers-ports: Belatedly add jwb PR: 292962 MFC after: 3 days (cherry picked from commit 8c40c7bb361f0c8b595bfee9dc6f8790e0eb6d68) --- share/misc/committers-ports.dot | 1 + 1 file changed, 1 insertion(+) diff --git a/share/misc/committers-ports.dot b/share/misc/committers-ports.dot index fb6c168f1425..faa15c355145 100644 --- a/share/misc/committers-ports.dot +++ b/share/misc/committers-ports.dot @@ -220,6 +220,7 @@ josef [label="Josef El-Rayes\njosef@FreeBSD.org\n2004/12/20"] jpaetzel [label="Josh Paetzel\njpaetzel@FreeBSD.org\n2008/09/05"] jrm [label="Joseph R. Mingrone\njrm@FreeBSD.org\n2016/09/17"] jsm [label="Jesper Schmitz Mouridsen\njsm@FreeBSD.org\n2018/06/30"] +jwb [label="Jason Bacon\njwb@FreeBSD.org\n2017/11/12"] kai [label="Kai Knoblich\nkai@FreeBSD.org\n2019/02/01"] kami [label="Dominic Fandrey\nkami@FreeBSD.org\n2014/09/09"] kbowling [label="Kevin Bowling\nkbowling@FreeBSD.org\n2018/09/02"] From nobody Thu Feb 12 05:07: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 4fBNb5428yz6SJF2 for ; Thu, 12 Feb 2026 05:07: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 4fBNb51MnWz3PdC for ; Thu, 12 Feb 2026 05:07:29 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770872849; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vaC8ZQgZw/iZz8Fbb0OfTsiG3wD6Fv49fruPHTCdgCE=; b=QWVTDgeDdRqkxtKWEnVGF2Gp8FklVBbjPtucEXGW9fYkqNcrcb/2/ZzNrPh0JihbwRrg7B MB/JKmTxvhKtcqBFXhCiMDxSiLm9ZvwunIFBujO0yCuQnDArX2lr550IIJ8Sfna5QnUFzb q6xTE7+yqwhpBCNEm+3CM47mOyI3tmdPgSpQ4LLkj5rZWiAa+Jjv9Uz110eCSME3aWodUM 1DrdbBVRl7KRyPSW8xPlZRI4+A0vZkepz0ah99uiGAYUw9l2jNguMICkrGiOLrubvmmwCd En0eITxDXrkrFP2ysuoV73nRf1Ustj4jb8vMKfusBSNvewz8hwPKYY2s2f1U3Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770872849; a=rsa-sha256; cv=none; b=kj5vdvPuNeKAfdFGL5aOg4vjdXJ8jnmRbWuOTMDZqu3ARqgrBhiee8fbNKPCbJWS0OrY3s TghnGPoOQoeOEm71TrVRwguxGrqDWbGOUJR7d+cvsnsoUQSyCzmyG9X0BSw6OOvDhGdyAz 2zPvdu0ckRu1yqrkLND5My+0ObjH1AWHB0tOxo4AUrRhsIa/p24d8nKVg6s0OFq5V6+Obf KF2j/t0ZrbBZZvzal5PaE0ay2u8x0mgU/ZSTcs2uu4LFcIXMoDsjjylF/aNEsx2lS3SqYv l4bguYoW/RLFBTIL+TuftEUQWaAF37EtkuopDj6tWqprsQb9gexHVHurfZUefg== 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=1770872849; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=vaC8ZQgZw/iZz8Fbb0OfTsiG3wD6Fv49fruPHTCdgCE=; b=o0n0l0PaihYqIgnDhLxABFWQlnh2BTwaXTn9+SAYJFm09KtNcUACLXhrgzjKd5qaHd8omf fDuRDsA2Qoh/h9+NmYEcKHWndCs619BHnFPY2RCsPtHeoaXk3KhR5j9RiXMBei/3jTir63 h1SRKM2HyRdQENpZDYqUfhosRi3ZBtCDQ4Hu0EfMYL7w1Qn7qBZ0hw4EulCxD4v6d6TeMJ SPPyAf0VIGLUvpQNPfPuIoweqjGDL++tg8H1yrUnHuQl7SAei+oMhU+uzcwgTdDygscgxf aW5m9oqTgaZEid4IRJpCbOhDWdr208UBv4XGBFcpddxbjDVcUdz+iWzsXwTIMQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fBNb50Y15z6F7 for ; Thu, 12 Feb 2026 05:07:29 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 23fd4 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 12 Feb 2026 05:07:29 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: 33326a7b9149 - stable/15 - geom.8: Improve classes list into a table 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: 33326a7b91490fd0c826ac4928f6b2b8fc278374 Auto-Submitted: auto-generated Date: Thu, 12 Feb 2026 05:07:29 +0000 Message-Id: <698d6011.23fd4.18a64ef8@gitrepo.freebsd.org> The branch stable/15 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=33326a7b91490fd0c826ac4928f6b2b8fc278374 commit 33326a7b91490fd0c826ac4928f6b2b8fc278374 Author: Alexander Ziaee AuthorDate: 2026-02-05 15:31:29 +0000 Commit: Alexander Ziaee CommitDate: 2026-02-12 05:04:43 +0000 geom.8: Improve classes list into a table Add missing entries MD, VFS, and DISK. Refactor list into a three column table, so the data is all visible at once, buying us ten lines at MANWIDTH 80, and still rendering nicely at MANWIDTH 59. PR: 292530 MFC after: 3 days Reported by: Slawomir Wojciech Wojtczak (cherry picked from commit dc2ec1ccc17a0c43c736b16a537c01bb28d814a4) --- sbin/geom/core/geom.8 | 45 +++++++++------------------------------------ 1 file changed, 9 insertions(+), 36 deletions(-) diff --git a/sbin/geom/core/geom.8 b/sbin/geom/core/geom.8 index 29c6385da3f7..96db7f3a80e4 100644 --- a/sbin/geom/core/geom.8 +++ b/sbin/geom/core/geom.8 @@ -25,7 +25,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd December 4, 2025 +.Dd February 5, 2026 .Dt GEOM 8 .Os .Sh NAME @@ -143,41 +143,14 @@ Currently, classes aware of .Nm are: .Pp -.Bl -bullet -offset indent -compact -.It -CACHE -.It -CONCAT -.It -ELI -.It -JOURNAL -.It -LABEL -.It -MIRROR -.It -MOUNTVER -.It -MULTIPATH -.It -NOP -.It -PART -.It -RAID -.It -RAID3 -.It -SCHED -.It -SHSEC -.It -STRIPE -.It -UNION -.It -VIRSTOR +.Bl -column "* MULTIPATH" "* MULTIPATH" "* MULTIPATH" -offset indent +.It \(bu CACHE Ta \(bu MIRROR Ta \(bu SCHED +.It \(bu CONCAT Ta \(bu MOUNTVER Ta \(bu SHSEC +.It \(bu DISK Ta \(bu MULTIPATH Ta \(bu STRIPE +.It \(bu ELI Ta \(bu NOP Ta \(bu UNION +.It \(bu JOURNAL Ta \(bu PART Ta \(bu VFS +.It \(bu LABEL Ta \(bu RAID Ta \(bu VIRSTOR +.It \(bu MD Ta \(bu RAID3 .El .Sh ENVIRONMENT The following environment variables affect the execution of From nobody Thu Feb 12 05:07: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 4fBNb63xhBz6SJF3 for ; Thu, 12 Feb 2026 05:07:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fBNb61d5Nz3Pgh for ; Thu, 12 Feb 2026 05:07:30 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770872850; 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=h5HeAt4uN7SvWAkK7fED3axnGfl24aXF/ZvcMuQM/J8=; b=r7soEhLXIN+zvKy9W2jc8pHltRiS8t9fc1ku/SDD5KOQIw5OPZYIRTmNGAPXv/yKJsiuTS zs8EQciO4BGmuBPD6v3DTf5qJ9jqp4BH9K2GZg6JERVTDkBrqriglkm3uskV8DYxrRHpm2 ILkLzUFilCjKnnFbMs5hAToOLH2yGv1e37/xRczcoheww2J2XBR8TUw4M7xka55zTH4xpY tpLnYtw+UYicHkFGB75UqUboO6TNUI0nskw113aBrc8tvPei9yqz1itI9mgpZS+Gxn1Qsg 8Z8nhaC69fO+rkTIZ2v+M1468mIihgAr4alWXSNSNRrhVFE8Y8TRf7yqfOk8ig== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770872850; a=rsa-sha256; cv=none; b=UI9Nz214XVHoFh8lcEqmOSSvHgrWxkbNZiB1/p9FpHYIy9l5mJ720v3M4RmTI5pt0XNHF7 /sJUAE3FB6jkBkhD19yEM5E9ALAYh2TjXbbha2T7dKEXv0A/RafK7ceCy97k8UxMUSYtVD 49GpjQ9cftCIbmR/GYUdB1n73XVRbRfzSUarrGLVttuWqBBzKDS5rNl3xJay10EtQHgHDS mBhojSH0yZiu4NrsmyoFMN6JOPLhXATwFu4j6dhlaiaMqPkn6324+QdPzWmx7+X++djbG9 TNmOsmfMt/JCWJMXxdiT4ZvIUgCTywyAL0ZjjLoTcm8vXY6Pu9wHdYQa/CuuXg== 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=1770872850; 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=h5HeAt4uN7SvWAkK7fED3axnGfl24aXF/ZvcMuQM/J8=; b=W1bWZ3PZmvifVKW32JhLPlrgO1oMPx/VQGcFSiV87yNXFseApasc5G05BptCsMLJl0vZgK gPxX7M7rHizGM0PrdbOyAwNvl3q6Q/Buas97Zmx9PCrLvm5O9TSA2yChakP8zsAxoyFpko Mrs4SY9ZOpb3H6yUDEWNLtjTV2kX/fXn/zRGZYIkKRB0wOLtKT33eDrfGgOLz1zTYHLjGW G1GdHoc+c+i+1d49pTbzgZQZqAXxLDwxa9l9jGXJwsHU7QoceSLFKO2s9sqdwZxMMVCG75 NZpWi8m/HO+rGk3O1an0hWW928+M6JSamdajzbrJmvFZ0XUl3kxEo2tOzSCs6Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fBNb615Qvz6L9 for ; Thu, 12 Feb 2026 05:07:30 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 24d46 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 12 Feb 2026 05:07:30 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Felix Johnson From: Alexander Ziaee Subject: git: 867ef0cf9e02 - stable/15 - wpa_supplicant.conf.5: Remove removed variables 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: 867ef0cf9e02b1e11be3f1a9b6f0b9d266f9fae0 Auto-Submitted: auto-generated Date: Thu, 12 Feb 2026 05:07:30 +0000 Message-Id: <698d6012.24d46.2bb50092@gitrepo.freebsd.org> The branch stable/15 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=867ef0cf9e02b1e11be3f1a9b6f0b9d266f9fae0 commit 867ef0cf9e02b1e11be3f1a9b6f0b9d266f9fae0 Author: Felix Johnson AuthorDate: 2026-02-05 15:46:49 +0000 Commit: Alexander Ziaee CommitDate: 2026-02-12 05:04:43 +0000 wpa_supplicant.conf.5: Remove removed variables 2005-09-25 - wpa_supplicant v0.4.5 removed "server_nai" 2008-02-22 - wpa_supplicant v0.6.3 removed "eappsk" and "nai" PR: 284126 MFC after: 3 days Reviewed by: carlavilla, ziaee Reported by: J.R. Oldroyd Differential Revision: https://reviews.freebsd.org/D49010 (cherry picked from commit c5ee920c3f35c5f0f485a7a274d87ebd91469892) --- usr.sbin/wpa/wpa_supplicant/wpa_supplicant.conf.5 | 6 ------ 1 file changed, 6 deletions(-) diff --git a/usr.sbin/wpa/wpa_supplicant/wpa_supplicant.conf.5 b/usr.sbin/wpa/wpa_supplicant/wpa_supplicant.conf.5 index 852d83f463ce..59dc8be6a99d 100644 --- a/usr.sbin/wpa/wpa_supplicant/wpa_supplicant.conf.5 +++ b/usr.sbin/wpa/wpa_supplicant/wpa_supplicant.conf.5 @@ -405,12 +405,6 @@ but for EAP inner Phase 2. Like .Va subject_match but for EAP inner Phase 2. -.It Va eappsk -16-byte pre-shared key in hex format for use with EAP-PSK. -.It Va nai -User NAI for use with EAP-PSK. -.It Va server_nai -Authentication Server NAI for use with EAP-PSK. .It Va pac_file Pathname to the file to use for PAC entries with EAP-FAST. The From nobody Thu Feb 12 05:07: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 4fBNb83qYfz6SJ8W for ; Thu, 12 Feb 2026 05:07: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 4fBNb74558z3QH4 for ; Thu, 12 Feb 2026 05:07:31 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770872851; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YjExRD9Yi92mpv9peMHNz1fHMwzaiPqcD1zky6O6Pmw=; b=KLhdtLKUPheGz/XV96BtHcQHc9N1x3pdrOySao9jYihXV7epo86P5P7kqO1hjbMdYihf7N K3D5A+v28nzZTc4znO/OvRYE5vb6pNoOrsfM/5W5tZ33Nrr8JUMI0DHubsand0xZpnlp+m 54b0uFR8fLpKyypDiTKhpazfWYNgYj+mJis8N3pyJbnRwhGhjkWwtSMejQi5mC+92vv3QK snTY82AUz5fbuAMY7+86sLri8zHRjFxVQON3wmkwcsgGIZLApj5Xzy7qo7LyKcu7MEaIJ5 a/3NoMqcxdhN0AAtHEllEi3nQcTztFD1fbqPdgeFmHz4XVfDBKG27KQzeuT97w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770872851; a=rsa-sha256; cv=none; b=iEH+fsIgVkgUrrIvfvP/Rz57PGNJSz7PpAJofUKwBh+qx+IW17zXm3ple65ANORNTvtRbf SN80SCpGoupoj7girywWSXPwM8SGOeRQFbkJfm8YAAHO0elbnRc2UPd3q1XagVjGSSIL/h 0YZoDrBxbuRmXMJtOAgNLi5+YZOrH98GN0lzyGrBIlFVfxg0ryuEXc4zSQHspnOGShBLiG 29bWS2ySjElbnyPRiQF/qnxVN2690J0aGmAjtSKUcfkPvkD1hnw5STJkQEbBdgT/WUx7LT 0DKvijvTs+WUJ76H7gPuGa4KIzXn0f6ty7aCCeuImq6ZTVckQWsJbcal1AzIvQ== 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=1770872851; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=YjExRD9Yi92mpv9peMHNz1fHMwzaiPqcD1zky6O6Pmw=; b=ADBeTvvBWpzWIe1vJjZxCofA7sRU9xa25ixFgtpo2gbx6riNHjoAhTVmBKZIXr61C45V+l 0onWpbXg493rqqhzJJmioGniOP1SqZj4R3gMifo311rRlXQHgeGCbDWicxPCn90jSyd2hm OWKWkRykAhMNhv7kfo0OyFosj9xaEjeuy2csafw1oeeYmLmZV6U5vIEAO+1hxDILZ57U5h lNHy6skl75VNRHo+Oo3krUrXaFdU+B6k+IIbLMjDANF+KbK8RcQglh6m3HSSleDWbkeJG1 1TInYsIRHq5EasVVjE6qMS7Ye04Md5IE/sveNM+D1th2f8CJJCwUGPfTlvF5Jw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fBNb71rtkz5mn for ; Thu, 12 Feb 2026 05:07:31 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 2502f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 12 Feb 2026 05:07:31 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: 578fa3779a60 - stable/15 - accf_*.9: Rewrite broken synopsis 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: 578fa3779a606c3b9d8d763b5c13a3873f6459e3 Auto-Submitted: auto-generated Date: Thu, 12 Feb 2026 05:07:31 +0000 Message-Id: <698d6013.2502f.409daae4@gitrepo.freebsd.org> The branch stable/15 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=578fa3779a606c3b9d8d763b5c13a3873f6459e3 commit 578fa3779a606c3b9d8d763b5c13a3873f6459e3 Author: Alexander Ziaee AuthorDate: 2026-02-07 21:54:59 +0000 Commit: Alexander Ziaee CommitDate: 2026-02-12 05:04:44 +0000 accf_*.9: Rewrite broken synopsis These manuals abused the name macro for every line of kernel cfg as well as an example command to show the module name which was mixed in without separation. This bugs the whatis database into thinking that `INET` and `kldload` are names for this page, and violates best practice by mixing commands and configuration in a continuous example. Rewrite to use the kernel configuration macro, Cd, and show the module name via an example configuration in rc.conf, according to the spec and established practice. Do not bump the date because these markup errors are not a content change. MFC after: 3 days (cherry picked from commit c59f12da11d75502b16f9163edc76514007462db) --- share/man/man9/accf_data.9 | 9 ++++++--- share/man/man9/accf_dns.9 | 9 ++++++--- share/man/man9/accf_http.9 | 9 ++++++--- share/man/man9/accf_tls.9 | 9 ++++++--- 4 files changed, 24 insertions(+), 12 deletions(-) diff --git a/share/man/man9/accf_data.9 b/share/man/man9/accf_data.9 index 17584288b753..47d84d17aad7 100644 --- a/share/man/man9/accf_data.9 +++ b/share/man/man9/accf_data.9 @@ -30,9 +30,12 @@ .Nm accf_data .Nd buffer incoming connections until data arrives .Sh SYNOPSIS -.Nm options INET -.Nm options ACCEPT_FILTER_DATA -.Nm kldload accf_data +.Cd options INET +.Cd options ACCEPT_FILTER_DATA +.Pp +In +.Xr rc.conf 5 : +.Cd kld_list="accf_data" .Sh DESCRIPTION This is a filter to be placed on a socket that will be using .Fn accept diff --git a/share/man/man9/accf_dns.9 b/share/man/man9/accf_dns.9 index 971dd964e530..00b7bcf1765d 100644 --- a/share/man/man9/accf_dns.9 +++ b/share/man/man9/accf_dns.9 @@ -30,9 +30,12 @@ .Nm accf_dns .Nd buffer incoming DNS requests until the whole first request is present .Sh SYNOPSIS -.Nm options INET -.Nm options ACCEPT_FILTER_DNS -.Nm kldload accf_dns +.Cd options INET +.Cd options ACCEPT_FILTER_DNS +.Pp +In +.Xr rc.conf 5 : +.Cd kld_list="accf_dns" .Sh DESCRIPTION This is a filter to be placed on a socket that will be using .Fn accept diff --git a/share/man/man9/accf_http.9 b/share/man/man9/accf_http.9 index f71bb7811dc0..6037088f235d 100644 --- a/share/man/man9/accf_http.9 +++ b/share/man/man9/accf_http.9 @@ -30,9 +30,12 @@ .Nm accf_http .Nd "buffer incoming connections until a certain complete HTTP request arrives" .Sh SYNOPSIS -.Nm options INET -.Nm options ACCEPT_FILTER_HTTP -.Nm kldload accf_http +.Cd options INET +.Cd options ACCEPT_FILTER_HTTP +.Pp +In +.Xr rc.conf 5 : +.Cd kld_list="accf_http" .Sh DESCRIPTION This is a filter to be placed on a socket that will be using .Fn accept diff --git a/share/man/man9/accf_tls.9 b/share/man/man9/accf_tls.9 index d4dbc299e5bb..ce73b370e5e7 100644 --- a/share/man/man9/accf_tls.9 +++ b/share/man/man9/accf_tls.9 @@ -28,9 +28,12 @@ .Nm accf_tls .Nd "buffer incoming connections until a TLS handshake like request arrives" .Sh SYNOPSIS -.Nm options INET -.Nm options ACCEPT_FILTER_TLS -.Nm kldload accf_tls +.Cd options INET +.Cd options ACCEPT_FILTER_TLS +.Pp +In +.Xr rc.conf 5 : +.Cd kld_list="accf_tls" .Sh DESCRIPTION This is a filter to be placed on a socket that will be using .Fn accept 2 From nobody Thu Feb 12 05:13: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 4fBNjb0hQ9z6SJXd for ; Thu, 12 Feb 2026 05:13: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 4fBNjZ5FGlz3SL1 for ; Thu, 12 Feb 2026 05:13:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770873186; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rdSW1JRkCqQ0hDtzI27WDJi3WzOtif8vgmpVdaQkdcA=; b=yYW2VbisDAHSTYvfp2UUaBD6mzfP1P2zQtgQMFR3I3J7As7lLbeWnxMEls/yUPtUFS+EdS urccR+d0s4czKxeIB26T+bxe2iVWJuxMVp7PblKQ/M4rcwpdHDBSdBg6iVk6iWEk5X+cMj rF352ydzNiaU/WMEeK8GMDgyAQxdaO3LitTFOSMdM68e7Bc5X1giK37GYrjnF77PWavoCy D6OSDRG08yrY352AROkME2xJhdipSyM82VQyqyEZ0A3iDugyS2IJqNER0zIeHTZIBGroJp a5Cu+FyWCMhCU1Ywgj0nymmHUDRxx5OjpkmusLdZ85wk/souw6eb0GEKU+WZMw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770873186; a=rsa-sha256; cv=none; b=drsWRm7b+W6nAPWaba4XD+P8XRHboQmoblX6d93BZnrYMfB+BUpxj/wh5f8oTplt9sUXse ODNObX8n1lTiUCbeTu9pbNXpQ71hRr91iPczCXY1fdd7GvFzy3rhXjMutDAe2403YF0ki6 teURF/tj/WM8sT76tMpDi5ArfAGswXWi5qiAUzvR6ddgVuGAPqZ8o2uWS4Pe84eqJ5Gr+6 hH0soby/2Rc/HGqVSmrXrL8hGwEpesdUvt6VCfh1gY2362k2d/+Ek89yOSia9FXdW6n1dX RlBqRPYL0KrJI3G/Kv3sZTRcmr2Bl867ziDXi1njTedOOMhQRcywPyhfAhr04g== 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=1770873186; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=rdSW1JRkCqQ0hDtzI27WDJi3WzOtif8vgmpVdaQkdcA=; b=Be7fyNnE30BTIqnD4F/4Fpd/e5B80TMqO+95giEXp3jyMi+l7pPeo9eF48BdiuJDRH1X0j kDjsN2BMz+Nw7Aw0obP9XwxVMccfSfqUHMeb/jU/hBkH9av+zWlVmGGWs8E2HK+qjIfcpv oZEghrunC+a2VkPICJSHiFWhHrUBSwAyLbdpZ+YMGSN2dOBSB7jpOJaXm/zeEowaRB88to lFXBr/w1/PibNX9xxA/hdyBSp5gwrBVC8sbvrDcfNX3RGLon/4xMVwIZqwqd+Lyg3gd1JH WdyvIGzlL/BxVT4XKldKjLpKiGuDUVwkXaxXFoI5RP07rWtTLsEGH7cmKla4jA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fBNjZ4fNYz6J4 for ; Thu, 12 Feb 2026 05:13:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 25f13 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 12 Feb 2026 05:13:06 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: 0b71c76ff11e - stable/14 - committers-ports: Belatedly add jwb 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: 0b71c76ff11e0ddd2aec8b39c1b91293464d9210 Auto-Submitted: auto-generated Date: Thu, 12 Feb 2026 05:13:06 +0000 Message-Id: <698d6162.25f13.3f76603d@gitrepo.freebsd.org> The branch stable/14 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=0b71c76ff11e0ddd2aec8b39c1b91293464d9210 commit 0b71c76ff11e0ddd2aec8b39c1b91293464d9210 Author: Alexander Ziaee AuthorDate: 2026-02-05 14:12:29 +0000 Commit: Alexander Ziaee CommitDate: 2026-02-12 05:12:31 +0000 committers-ports: Belatedly add jwb PR: 292962 MFC after: 3 days (cherry picked from commit 8c40c7bb361f0c8b595bfee9dc6f8790e0eb6d68) --- share/misc/committers-ports.dot | 1 + 1 file changed, 1 insertion(+) diff --git a/share/misc/committers-ports.dot b/share/misc/committers-ports.dot index df1187b06080..cf0195de88d7 100644 --- a/share/misc/committers-ports.dot +++ b/share/misc/committers-ports.dot @@ -214,6 +214,7 @@ josef [label="Josef El-Rayes\njosef@FreeBSD.org\n2004/12/20"] jpaetzel [label="Josh Paetzel\njpaetzel@FreeBSD.org\n2008/09/05"] jrm [label="Joseph R. Mingrone\njrm@FreeBSD.org\n2016/09/17"] jsm [label="Jesper Schmitz Mouridsen\njsm@FreeBSD.org\n2018/06/30"] +jwb [label="Jason Bacon\njwb@FreeBSD.org\n2017/11/12"] kai [label="Kai Knoblich\nkai@FreeBSD.org\n2019/02/01"] kami [label="Dominic Fandrey\nkami@FreeBSD.org\n2014/09/09"] kbowling [label="Kevin Bowling\nkbowling@FreeBSD.org\n2018/09/02"] From nobody Thu Feb 12 05:13: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 4fBNjc27Ldz6SJd0 for ; Thu, 12 Feb 2026 05:13: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 4fBNjb5v9Qz3SNF for ; Thu, 12 Feb 2026 05:13:07 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770873187; 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=nR0y7hkyG5WlwJI3OlN5g5/ASDyVW7HjxpwbkJUWq5U=; b=ObcaMOhUR+AADHp3hGFeSpWsFFQ+E4GWjzsSkliWXhbON85QS6RRNlSqgS5ksE7SwVCFoS gg4HTDdhCR8PakBAQ/0nma6mONWUN71eMKv61+dn1YiSeehcBrBlRM3k8y9iT6PFgL2Yz5 ld9eMMq1ogy5PYz4O8Tkev5FwExlv8ACVsu2MuNALRoMQJjdHnsgty/tim5fRg36HrJ88E Cy+0TYZmVVHBKQoofycJuNFjD4bop5jWwWcA7HR88QLrqrENpzCjwdS4Ubk1oUutGP9aSV 84C9rtmd/V3FgLh592eshCph1iKwHdF8JxaaEdxATxW0FddlHTqdyRTN6bjnzQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770873187; a=rsa-sha256; cv=none; b=ebleQop1mPNViQD+9dvYGi7jELibbqrNt1sgiZFoSTyuEblUSBz75AootvlnUxYfacg9Dm U5q7Y/vNxmI2CRyVzEDstzeyIMruIglH6wAcdwCDlNWqXyUAUI3tvaFvbRjb+Xp5kBXWFw 1EWT71v47iSk4AruOVyfgK45s/GQHgWRe+3cpgbud1BH3GcuTePN0+emRfmLj3zaf5hAas iv1/B+TyqeddjjBLtEhjl8BKeEaz+nF2b5YGVKN9GeN8UeLDA0RInu1R+foppKCJHA2Zef PFPbwfTGIoogQP91NCLdYnbkAvIQYyiIalVuHG3z7BMAE2anGR4ByGH8vRMBiw== 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=1770873187; 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=nR0y7hkyG5WlwJI3OlN5g5/ASDyVW7HjxpwbkJUWq5U=; b=xaC3MN84SLW+JNIWaKN1VERmUT3e7iL+/CFdMMthfGyFSvP/MiWHlbByWDwhUWmqY6ZnG1 Vki2LH+Jcmt6Eaxtz+nLa3PwJhP6oOM/PH3udPBrfmeV4xmIQQBkdyzhts8qlAX/0gMlXs 2bz/KdVCeDjC2Wcg3RslCBNGDc0MOjzc2g/nZ70x9Q/ycChoLDtFuAUnfpV8x3fKZ638/X FGzLgShVkxAb5AXqOswQJ+b6RxN1QYTcDpfRQi8uM8HkgZaaKmXWUQ2FxgPThTF0MWc2iV NOcXjnvVbHuFhSWlXPfEnD+TB0iJuC2SVJSbHdSq+B3AnosiUt4RbxI6Yw8VYw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fBNjb5SnTz6J5 for ; Thu, 12 Feb 2026 05:13:07 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 25e24 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 12 Feb 2026 05:13:07 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Felix Johnson From: Alexander Ziaee Subject: git: a5ab42a46c80 - stable/14 - wpa_supplicant.conf.5: Remove removed variables 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: a5ab42a46c803c5ec6404d0073cd93a3d362802d Auto-Submitted: auto-generated Date: Thu, 12 Feb 2026 05:13:07 +0000 Message-Id: <698d6163.25e24.36a29d81@gitrepo.freebsd.org> The branch stable/14 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=a5ab42a46c803c5ec6404d0073cd93a3d362802d commit a5ab42a46c803c5ec6404d0073cd93a3d362802d Author: Felix Johnson AuthorDate: 2026-02-05 15:46:49 +0000 Commit: Alexander Ziaee CommitDate: 2026-02-12 05:12:32 +0000 wpa_supplicant.conf.5: Remove removed variables 2005-09-25 - wpa_supplicant v0.4.5 removed "server_nai" 2008-02-22 - wpa_supplicant v0.6.3 removed "eappsk" and "nai" PR: 284126 MFC after: 3 days Reviewed by: carlavilla, ziaee Reported by: J.R. Oldroyd Differential Revision: https://reviews.freebsd.org/D49010 (cherry picked from commit c5ee920c3f35c5f0f485a7a274d87ebd91469892) --- usr.sbin/wpa/wpa_supplicant/wpa_supplicant.conf.5 | 6 ------ 1 file changed, 6 deletions(-) diff --git a/usr.sbin/wpa/wpa_supplicant/wpa_supplicant.conf.5 b/usr.sbin/wpa/wpa_supplicant/wpa_supplicant.conf.5 index 852d83f463ce..59dc8be6a99d 100644 --- a/usr.sbin/wpa/wpa_supplicant/wpa_supplicant.conf.5 +++ b/usr.sbin/wpa/wpa_supplicant/wpa_supplicant.conf.5 @@ -405,12 +405,6 @@ but for EAP inner Phase 2. Like .Va subject_match but for EAP inner Phase 2. -.It Va eappsk -16-byte pre-shared key in hex format for use with EAP-PSK. -.It Va nai -User NAI for use with EAP-PSK. -.It Va server_nai -Authentication Server NAI for use with EAP-PSK. .It Va pac_file Pathname to the file to use for PAC entries with EAP-FAST. The From nobody Thu Feb 12 05:13: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 4fBNjf6h71z6SJqv for ; Thu, 12 Feb 2026 05:13:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fBNjf5YWpz3SL3 for ; Thu, 12 Feb 2026 05:13:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770873190; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZGjKG1UnxN04RHruMhY1q32kMzQ/n/eW9mqOcoqyUE8=; b=SIKngWADS275uCEuCTSRQloZO0bpLToA5QohAJNLb6Ihhw8bUdwWb2lap2P+7l8eKvB3fR 9cwK6HGhkj9kQLJJrg8itNdLTOqIRCsyU/l9Z67mQG9TGngwtsuS5xnGPq+1RpXs/w8EeW pJP/PSlWvmqhvmgLEjcTOoCKESokRUdeTqlFlEYM8Z+3CxL6DBc1UDfpWWoU4V3IDk/duT 9UxlMPOgzSd5FGBAyCsWfOEou/Xqo3Uhd+EDKPE8fegCZjhgzj+j6Gy/4OEwbyHgUlvIZw 1Y/YYrFr8fYbAI5tV3W1fDbYDuHZHtIWMd7jtcyQP/1X7Q5hBy3Spkfsr2mZkQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770873190; a=rsa-sha256; cv=none; b=clCYSVhnirwlMaogzrFgKRzFvQhk9cLC5aEp/5YzNcaQxSTcZCVsajXvYxtYJU0GlwhD44 ByNqS2pNrMLQ2E5PK0/mBcLTE0apy5m+1pUcSf6tKDA/4x3QCfqwKcsvvxF+6MorbuKTqs woNLQWhgZaCSpyOmBR8x5F6v5DKrhpy6yYK4EPNttnXwJHSrAvpv+dnl4En7AkBOLWtkeB bcmzSveKUh1UenHReif3WzpdUTvVyw8uhw4r+4gXBhsTaUuptEXC2ow9FtaQcPShEMqGgc MkuaN39OVtQXQexZCBggKtCUTT7hst9q5qkrtKqLC6gYQOwrOt2nxRKk6uXIig== 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=1770873190; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ZGjKG1UnxN04RHruMhY1q32kMzQ/n/eW9mqOcoqyUE8=; b=GsdH1c/UMq0z1ntT55pFyKC+ty0l58Nd+/1QEvkNI8MQ9i/9f/xOQNC4mVn4NU4Un0usAx YGrSodobaFD/YC4/gHtbpoY2DIZBDqsk2vvVDtVyWIBBqnX+YJYNC1vGJMuB+WY0HBFgMJ a1MJiAHfjOOJgM7wyEAAEmPMdE6QUEbo0a+4ilshKcMYgx3Z9OdyadzsemL9zX5+NObvZJ rT2O/ETVNTlxje5tdyb+wYHW3YKrMuC/UsFR7ZFTmToiLmIOKp/ptI98p+2tno+foXTj4g YY4dEYZO1NOBMpOrGAcaAxlY1vQrJ6YgWiMrnY7zEyzOM+EDA9lA6zOmdHbteQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fBNjf4y7Dz6XH for ; Thu, 12 Feb 2026 05:13:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 25da2 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 12 Feb 2026 05:13:05 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: b8d3541f1469 - stable/14 - pxeboot.8: Fix mdoc typo for emails, tag spdx 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: b8d3541f146944355560de6832d40791d247d8cd Auto-Submitted: auto-generated Date: Thu, 12 Feb 2026 05:13:05 +0000 Message-Id: <698d6161.25da2.73ba9185@gitrepo.freebsd.org> The branch stable/14 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=b8d3541f146944355560de6832d40791d247d8cd commit b8d3541f146944355560de6832d40791d247d8cd Author: Alexander Ziaee AuthorDate: 2026-01-06 22:45:42 +0000 Commit: Alexander Ziaee CommitDate: 2026-02-12 05:12:24 +0000 pxeboot.8: Fix mdoc typo for emails, tag spdx Fixes: a37825313f62 (Fix mdoc typos for emails, tag spdx) MFC after: 3 days (cherry picked from commit 1961785e35484a89e49672c5ac7f9da6a7f56b3c) --- stand/i386/pxeldr/pxeboot.8 | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/stand/i386/pxeldr/pxeboot.8 b/stand/i386/pxeldr/pxeboot.8 index e10e570edf54..496b244cf00f 100644 --- a/stand/i386/pxeldr/pxeboot.8 +++ b/stand/i386/pxeldr/pxeboot.8 @@ -1,3 +1,6 @@ +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" .\" Copyright (c) 1999 Doug White .\" All rights reserved. .\" @@ -142,8 +145,8 @@ bootloader first appeared in The .Nm bootloader was written by -.An John Baldwin Aq jhb@FreeBSD.org +.An John Baldwin Aq Mt jhb@FreeBSD.org and -.An Paul Saab Aq ps@FreeBSD.org . +.An Paul Saab Aq Mt ps@FreeBSD.org . This manual page was written by -.An Doug White Aq dwhite@FreeBSD.org . +.An Doug White Aq Mt dwhite@FreeBSD.org . From nobody Thu Feb 12 05:26: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 4fBP1D3chCz6SKgK for ; Thu, 12 Feb 2026 05:26: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 4fBP1D0tcrz3V3t for ; Thu, 12 Feb 2026 05:26:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770874000; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=30K2qFBOAKkwDbprFP9fBWDTI7pBZjmlZSP6hU7y05g=; b=OSp3z1ZbWZlkYGnPaZHl9qkUukVALJca5fAqTEZH6Azm+kivB2UbMRNmhLr3Z9RvzSzzIO 0CotEvn4mBCCmkGEEYdia3RzfPpLRWh9YCTKWQKPzDvTe16lDTzwJUvoxuuyUOtMMystww c9Of6yEq13tPpVqajEsD9ZeB9Le4Uw6AHxMyGKcZb/JYyXlvRjq01kgHsZwQGHh9O8JR4a pONcUqM0gjUzmeRWRRGdFgdHrqMDBweVq2vuPVhEj4RsF51qp3xVkEWQudc+nCJn3r5nuc rIZCd2bZ2KxMWhpAk+draFYh1QO3dAjQr67gNdzfKI6NMxxie8sxYPOuswZkzw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770874000; a=rsa-sha256; cv=none; b=VM48zWhh3hiLXKt2Nqya8FUP9EhQplvimjK0OaAoFCFWGl0NYJqtMqeSWtjtxjNwAMxgQi BE5xbUkzpoUtUYkoFbGNVEv056QW+2QFjqz0w5e1LvocCDzikG8B2SPjGfWWN+Yf12vVX5 mDGuSchMOxThsxT1zip0c0qwzLNK1bgNDm9N3S0HCaI2hIHdUJN2XGR/LNqUV8p3XkBRTg uktsOdFlZRvlAIqapOIYI6bXXZL8jxAbqc3dGCAgYylWbwsdNqpGfBptQ6mg1et3MHGHzq wXG1qt3al7Eq2Tg2yMi91Mwj7baksUrDclndI7pz4tCGFzPv6vyPf/pn5q9ong== 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=1770874000; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=30K2qFBOAKkwDbprFP9fBWDTI7pBZjmlZSP6hU7y05g=; b=CtGpXtmwHDw1rcy36YlhmhaS1R6BrnhMUygeMbz5wnRW1eH+nAftbYQdomz/4U4auVxrYq Ffu3viZfD/lRjtMD604jsFCrnr3vgYBbTyRh4kqw4SKt8ZWBHT9onLjmKgnktmMD/83CDo CKSdfHEzXbu8U9Ct+ODONoYbtEwq0XKzSwHUBrhcJStd7pnE5+i83cPv9CmYITWn+bXw+a KHOigLZ9zbL0Pdjw6A17eVoSvytu0j6QwqsofRy0k2B7HyxHRBauZuh0jwnJ3ZC/nrUvT+ JUosSgPS8D8rbZqvAcH9cwgh6U1mF3QxtVI51To6rO17V2DVJeNnWqPqpIAK+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 4fBP1C71ygz5ly for ; Thu, 12 Feb 2026 05:26:39 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 257d1 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 12 Feb 2026 05:26:39 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: 5cc6280205bb - stable/14 - genet.4: Only for AArch64 + tag spdx 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: 5cc6280205bbb1cf51adc8c905b820349c0aeef1 Auto-Submitted: auto-generated Date: Thu, 12 Feb 2026 05:26:39 +0000 Message-Id: <698d648f.257d1.3ec71fd6@gitrepo.freebsd.org> The branch stable/14 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=5cc6280205bbb1cf51adc8c905b820349c0aeef1 commit 5cc6280205bbb1cf51adc8c905b820349c0aeef1 Author: Alexander Ziaee AuthorDate: 2025-12-29 17:16:37 +0000 Commit: Alexander Ziaee CommitDate: 2026-02-12 05:14:13 +0000 genet.4: Only for AArch64 + tag spdx MFC after: 3 days (cherry picked from commit c4bd487da73a28887f86750a5dc5832303592c5a) --- share/man/man4/genet.4 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/share/man/man4/genet.4 b/share/man/man4/genet.4 index 665aaff49507..1de92294ee9d 100644 --- a/share/man/man4/genet.4 +++ b/share/man/man4/genet.4 @@ -1,3 +1,6 @@ +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" .\" Copyright (c) 2021 Michael J. Karels .\" .\" Redistribution and use in source and binary forms, with or without @@ -22,7 +25,7 @@ .\" SUCH DAMAGE. .\" .Dd December 8, 2021 -.Dt GENET 4 +.Dt GENET 4 aarch64 .Os .Sh NAME .Nm genet From nobody Thu Feb 12 05:26: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 4fBP1F3TLTz6SKXT for ; Thu, 12 Feb 2026 05:26: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 4fBP1F0hP3z3VBQ for ; Thu, 12 Feb 2026 05:26:41 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770874001; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OZEgC1FSF07ffcu6TR4wB3jl9i03LxS0/iPdEdMP8Ow=; b=Ujs1lqpGQGBWRrE9j7VpSxpGrbYfXPb/MyjYNRGtTJNR++bHDXX6CbJpahdtTpc958SaHq b0uNhruD75OqNhYPiJYquaZaU1e45xv+ORiQvila8L36E2VU1K46xsSym03ZXe4e057Ma4 Q61T24vaiz3JG14SagsIybhEFUFONWdl+FIU+HVK2czjwmb6FbtR099aEfMR2dMOg2p3jE UOHOJLCE8H4MowHr0nyyxC8D8zSScy76meTZAUsmnH2hu5gMN2dr1RXACSy9LbTg3SPvHB aBCqXMdlkQUa1WaySYmxC2N4QsRVxOYPI0cii/MKz1L5SU6SjUJMsj13EAMEEw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770874001; a=rsa-sha256; cv=none; b=rmwCaHTu7U90YWxnSeLHqOaLIRujn5UttfteerEx+DGdeR29q2Th+uaZJlhChMFK1Wn9V8 KVFGqxNTHAsfGqbuz05mj6v3plmO6k56akbC8Jd5y7aKF0BevJmgsYRV/V7l+w92tfNRJQ bQxMcrf63k3ykBYD3IwXRXmtf4Jw4cG/8K6K+ufeWxYAOO/c/THDXWlDco7FVqTey6e6KN +2WAL7DBFwAk7aDTcwXeN0HfW4e/akpHzxgW41XIOi9b0rNVD+rQDXLEFifmEvZ2wl8Ozk EEUdLutK6iCTJGvdx/Pjs5f7TH+CLz1kOtJBvVXUj76h1OXovEoUGYY3QOM6ng== 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=1770874001; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=OZEgC1FSF07ffcu6TR4wB3jl9i03LxS0/iPdEdMP8Ow=; b=AslT+yl80gOjJEH5aaGdoobuHG9PGFtBwPmExvqtpSPyT+kTvQYgIDczu8CVRxnZ7pBRDO U1bW/COQ7loMMjwvjbTCMukt2efX7tcUjhW9oRORiAB7GST9zHaxwORhAZfwUjQYwIoZee kM5kEKcb3U7iwECOfb4Wc2nA2IVPebPRW/avrNTYfadvJgO4qBtC9Cdt//g/YQnCLcmWwu ct5JJTbp1TdwLxFC6xuJPVw3zKwmC/qcSBuRF7ippbi9RfGCeJDyQlp7TDPAbLX7dFnNzX ZI91UIhPjUddtC8uSWiFQ/j+tEFaDMzMhK2dCLKr69mhWX0WGZRvazyAfWFSLQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fBP1F0DShz6Yq for ; Thu, 12 Feb 2026 05:26:41 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26ea8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 12 Feb 2026 05:26:41 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: c0523030a207 - stable/14 - cpuctl.4: Formatting nits 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: c0523030a207a0f3917a0ca6db1d657bd1d25d8b Auto-Submitted: auto-generated Date: Thu, 12 Feb 2026 05:26:41 +0000 Message-Id: <698d6491.26ea8.6fcb3c7a@gitrepo.freebsd.org> The branch stable/14 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=c0523030a207a0f3917a0ca6db1d657bd1d25d8b commit c0523030a207a0f3917a0ca6db1d657bd1d25d8b Author: Alexander Ziaee AuthorDate: 2025-12-29 17:17:09 +0000 Commit: Alexander Ziaee CommitDate: 2026-02-12 05:14:21 +0000 cpuctl.4: Formatting nits + Align ioctl list + Pad code examples + Tag spdx license identifier MFC after: 3 days (cherry picked from commit c6bd2aa8353c6c34dbff487132a7f7372752d0ad) --- share/man/man4/cpuctl.4 | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/share/man/man4/cpuctl.4 b/share/man/man4/cpuctl.4 index fc42cf14f254..5846fc4129f8 100644 --- a/share/man/man4/cpuctl.4 +++ b/share/man/man4/cpuctl.4 @@ -1,3 +1,6 @@ +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" .\" Copyright (c) 2006-2008 Stanislav Sedov .\" All rights reserved. .\" @@ -63,7 +66,7 @@ All of the supported operations are invoked using the .Xr ioctl 2 system call. Currently, the following ioctls are defined: -.Bl -tag -width CPUCTL_CPUID_COUNT +.Bl -tag -width indent .It Dv CPUCTL_RDMSR Fa cpuctl_msr_args_t *args .It Dv CPUCTL_WRMSR Fa cpuctl_msr_args_t *args Read/write CPU machine specific register. @@ -92,6 +95,7 @@ typedef struct { uint32_t data[4]; } cpuctl_cpuid_args_t; .Ed +.Pp It is equivalent to the .Dv CPUCTL_CPUID_COUNT request with @@ -107,6 +111,7 @@ typedef struct { uint32_t data[4]; } cpuctl_cpuid_count_args_t; .Ed +.Pp The .Va level field indicates the CPUID level to retrieve, From nobody Thu Feb 12 05:26: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 4fBP1G4zR3z6SKgQ for ; Thu, 12 Feb 2026 05:26: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 4fBP1G2ZxQz3VRw for ; Thu, 12 Feb 2026 05:26:42 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770874002; 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=tTf8VWe+5JTF9Ia/ghI3E9E6psbrQAlgf/knXAUtHO0=; b=hhdDRovn2xrETgv3+ZrOqIC/blZ9MyvX13YwQpcI497o8TNRYLalzmYhloAKbWV/0P5kU/ 2Aea67pXkv8Wcfq/xd5Z2kA96ZNx1Y/YDxOfkyoU+q/bQGiQ4b3AgcXpaEoU/gnCmtWBIn peOI6gsX9cOSkoQbejIXgSyixfNEFxmuHLey9+B5nUYk1bUZ2f3D/HVlhK0d2+U2L6JBJp CQlyoFTwvdyjrfj6vlKwekmszG8EMASOVK0w3TI+Dda5P7OShLIVKuBhC3td5Sy0EGR4zH jO4PMOk6kBBx7eBEPziaPlsH/O4NoGzslXZIJmwjKXjKDlFKVpUXzxBOhXbT/A== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770874002; a=rsa-sha256; cv=none; b=SANYPL1Ic8i1TI7KKLv17fWSO9n56akmo6NYID8TVDpxJZQ3+ZxcteN3LJQCQuru6s3kj6 L0U4UTHFqh5vmuf5FqOgzjoGpiKcD/oFKr1pkPcewIn6YqWgHfCP/b6K6rNZpaRgujRh/d uU5LF0LiLQ/kCyZjyqNTB4cnQXC+oUF9PlWzY9pvv1Hu3uhNkMwPmaaeKK0hOt25EJiFAq Gz9BM9i5JoW1p7x6OrBgpBL0OUkXexZp1dc8XlnHVLWnTp7bss3myzbJq3tLVmU3PARXY6 NWJPp9/a7PfS7nFQO30lExFTa0fvhfQWJAl1cB2bsMf13C9EXMmJliJo5E2n0Q== 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=1770874002; 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=tTf8VWe+5JTF9Ia/ghI3E9E6psbrQAlgf/knXAUtHO0=; b=TVXG+Y+PoibFnlj4NGGzERo70sLL3QjE1FB5oySMH00EdgFU05gKSNh46cVwUgMDi4u2s4 +8WWYqWd7D5NiFNHYJAxOLkGJ10F59PeJ8nC+bvcW+OKmlPbJhNq8zd0NGlaSyQSPJvem+ r5e8i4fKTRZGzvDQ6xk7dTynRs1lCTGr5iavLo3eQKYYjUGG/zK2Lhdm4qPDVO6p3lMVC7 hKal9lKPlpsqr4JD7shj96tTRxS0+zDDdJg3LmMgJ3ZUN7asmyA3E2GQLXc1Dr+n+u8vff wsDqFqWH9wJQxaf4RhQFBfSY6Vay9cU6ne4qjZs1iH3Y1gvLftCiwpgho6K1Tg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fBP1G10Dfz6Jx for ; Thu, 12 Feb 2026 05:26:42 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 27d5e by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 12 Feb 2026 05:26:42 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Rob Nichols From: Alexander Ziaee Subject: git: fdbaa2565596 - stable/14 - jail.conf.5: Fix mandoc typos 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: fdbaa2565596be10628f5ee9484599fd18b91c22 Auto-Submitted: auto-generated Date: Thu, 12 Feb 2026 05:26:42 +0000 Message-Id: <698d6492.27d5e.257731d4@gitrepo.freebsd.org> The branch stable/14 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=fdbaa2565596be10628f5ee9484599fd18b91c22 commit fdbaa2565596be10628f5ee9484599fd18b91c22 Author: Rob Nichols AuthorDate: 2025-12-16 03:26:26 +0000 Commit: Alexander Ziaee CommitDate: 2026-02-12 05:15:10 +0000 jail.conf.5: Fix mandoc typos MFC after: 3 days Reviewed by: ziaee Signed-off-by: Rob Nichols Closes: https://github.com/freebsd/freebsd-src/pull/1928 (cherry picked from commit d1d88b6e8c31b1e472d66471ff1e666e5310709e) --- usr.sbin/jail/jail.conf.5 | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/usr.sbin/jail/jail.conf.5 b/usr.sbin/jail/jail.conf.5 index 1bce1535455a..cdb6c0d03970 100644 --- a/usr.sbin/jail/jail.conf.5 +++ b/usr.sbin/jail/jail.conf.5 @@ -44,13 +44,11 @@ A parameter assignment consists of a single word, the parameter name, an equals sign, a value enclosed in double quotes, and a terminating semicolon. .Pp The syntax of a jail definition is as follows: -.Bd -unfilled -. Ar jailname Cm \&{ -.Bd -unfilled -offset indent -compact -.Ar parameter Cm = Qq Ar value ; -\&... -.Ed -.Cm \&} +.Bd -literal -offset indent +jailname { + parameter = "value"; + ... +} .Ed .Pp This is used by @@ -234,11 +232,11 @@ bar { } # Include configurations from standard locations. -\[char46]include "/etc/jail.conf.d/*.conf"; -\[char46]include "/etc/jail.*.conf"; -\[char46]include "/usr/local/etc/jail[.]conf"; -\[char46]include "/usr/local/etc/jail.conf.d/*.conf"; -\[char46]include "/usr/local/etc/jail.*.conf"; +\&.include "/etc/jail.conf.d/*.conf"; +\&.include "/etc/jail.*.conf"; +\&.include "/usr/local/etc/jail[.]conf"; +\&.include "/usr/local/etc/jail.conf.d/*.conf"; +\&.include "/usr/local/etc/jail.*.conf"; .Ed .Sh SEE ALSO .Xr jail 2 , From nobody Thu Feb 12 05:26: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 4fBP1H3khfz6SKZq for ; Thu, 12 Feb 2026 05:26:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fBP1H237cz3VBr for ; Thu, 12 Feb 2026 05:26:43 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770874003; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=AAWrM6gCNQZ0OaBDZf+VIQ2yQRiYXQACcURWvvHEG+U=; b=I17fSLeM5HKDpDTX8Mc3HOXnwYD98lUseQqXY7vZzbf7NuLjraFEV85bhIzjNxFFe/REFn faMKiV2PllAIS+yFWMUg9xi939ypkE0zqn7RLTdwCwu2UddX5EZVoDsfG99W+r/snN7Ks3 5JTTSrxKrf3vMNf/OTdauJ+7myYv1bXRMPL8wtMhC5qsU06hdXrbvhmgRYTjFsOZtlufKt u1W2bgPWWPzMpUFULllWmvbkaJhgiydOoA45tvGnW+1rjvRhtYhl+c+zgGV7knhMuLPGL4 26y8U0b09RcADewc+cnvNU9N5/NaxxIrGxwwlfXpCWC0YPKmlh0JJBla97wowA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770874003; a=rsa-sha256; cv=none; b=Klc4bRCWatF5QbEtaXv35Sp81OygnnAlpcOw+zqN21tbG79T4uvPYmB0BbDr+xmQ64mAxB PQJSahvMw5/N0ljET3Ov7pV2XzYHEO+sjpmbHwM0/h59+jCC73o94SGOkbkvwr56oJkf8F fCwneYYLLL9eaHu14mN4RjBQKTjedDpF6KyhPhojNk/tXlRhFrDQv4jgvmDbzgUN/GllMZ K5lpreAn5tqs57lGggkAKegTY5J91CilSgHI0bhiu5ShjAR5c5b8oo5y2mXt7xHCUnR8cI KLmnKLY70k2S+v3drcYimoMQnZBqadQ4nxujN4tNvbQ2mSTz4da9chgP9dBirQ== 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=1770874003; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=AAWrM6gCNQZ0OaBDZf+VIQ2yQRiYXQACcURWvvHEG+U=; b=GmhJZiDBx4UhXuIUEplE+ISMVOJso6oEyvFQZJ5CG02wi17uBJ9BVW0lF095/ns81f2e8V u6h3RG6liWaEMiKXPoh5+bg9uO9srA5UOJOaVRURJU73uZtXac4d4eyjRSmDNuXA/mpsFV x2cz2MgNf4725IXPYqPEJ5ZUBjXNUn4+Q5+quoJTDmt0wFCpoljxWEn8PC/dB2gpNTd3aL oafBWdj/Tc9qkrHIOXF8/O/+v+0x48brsforO7wyzVKaeqA3lrUv//NJ1o8umvlEGxMVoK dXsnAzslt3S7buK0FNtmVW4rhSkYC9H+PDLUVvd5eii+Au/R7k5Zoxp3KJLVZQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fBP1H1bMWz6k0 for ; Thu, 12 Feb 2026 05:26:43 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26027 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 12 Feb 2026 05:26:43 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: 8e02e1c37d84 - stable/14 - udl.4: Consolidate HARDWARE and add HISTORY 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: 8e02e1c37d8464816f807efd73d4c9284118bdee Auto-Submitted: auto-generated Date: Thu, 12 Feb 2026 05:26:43 +0000 Message-Id: <698d6493.26027.5da7ec89@gitrepo.freebsd.org> The branch stable/14 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=8e02e1c37d8464816f807efd73d4c9284118bdee commit 8e02e1c37d8464816f807efd73d4c9284118bdee Author: Alexander Ziaee AuthorDate: 2025-12-23 14:35:37 +0000 Commit: Alexander Ziaee CommitDate: 2026-02-12 05:15:28 +0000 udl.4: Consolidate HARDWARE and add HISTORY Some of the information needed for the HARDWARE section was the entire DESCRIPTION section, so merge the two. While here, add the HISTORY of this driver, add "driver" to the document description matching other drivers, and tag the SPDX license identifier for mechanical parsing. MFC after: 3 days (cherry picked from commit 97fa62708f67ce189bde22c98d9102da026b448c) --- share/man/man4/udl.4 | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/share/man/man4/udl.4 b/share/man/man4/udl.4 index b2cfeba2489c..c9a1a1c40045 100644 --- a/share/man/man4/udl.4 +++ b/share/man/man4/udl.4 @@ -1,3 +1,6 @@ +.\" +.\" SPDX-License-Identifier: ISC +.\" .\" $OpenBSD: udl.4,v 1.20 2012/09/18 17:11:41 jasper Exp $ .\" .\" Copyright (c) 2009 Marcus Glocker @@ -14,12 +17,12 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd September 9, 2023 +.Dd December 23, 2025 .Dt UDL 4 .Os .Sh NAME .Nm udl -.Nd DisplayLink DL-120 / DL-160 USB display devices +.Nd DisplayLink DL-120 / DL-160 USB display device driver .Sh SYNOPSIS To compile this driver into the kernel, place the following lines in your @@ -35,13 +38,11 @@ module at boot time, place the following line in .Bd -literal -offset indent udl_load="YES" .Ed -.Sh DESCRIPTION +.Sh HARDWARE The .Nm -driver supports USB display devices based on the DisplayLink DL-120 / DL-160 -graphic chip. -.Sh HARDWARE -The following devices should work: +driver supports USB display devices +based on the DisplayLink DL-120 / DL-160 graphic chip, including: .Pp .Bl -tag -width Ds -offset indent -compact .It Century Corp. Japan Plus One LCD-8000U @@ -66,3 +67,10 @@ The following devices should work: .El .Sh SEE ALSO .Xr usb 4 +.Sh HISTORY +The +.Nm +driver appeared in +.Ox 4.6 +and +.Fx 11.0 . From nobody Thu Feb 12 05:26: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 4fBP1K0sDVz6SKXd for ; Thu, 12 Feb 2026 05:26: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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fBP1J2Wdzz3VFV for ; Thu, 12 Feb 2026 05:26:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770874004; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+NU5zqQK0JX3zFxT7jcgL97n4wqN+WA7LCSzdXRqtaQ=; b=oQ1vnZAyGtbt+AXzFr9vri3ovnjwIpzovTWKgn0UXpXspBNn7ojpbHW9KPUPSVDuTJyTYA DJ7viX2Biq4OOGZb8kl8OJS7WuQL2Ft3w0rgG5D6UQlkx8Rk1/3AKyi0UPyosqlWEKqOwm AQzQrnXXmKtHOcIr34766LjlqisIIBgRbZilGp9AxAWpLmytrL96oWhiZmB5xnR99xzGry RSIh3En03T7dsTgwogvxiISUFQ0XSAzKwP1LbnExaQLfL1cgf5zQw6AOuTGeV+IIi/GgsF WkwGpBeJeEl1w0OySGGEgVcqKg9Za051lIfsRq4khKt74s5jFZdi9S+jhUKPoQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770874004; a=rsa-sha256; cv=none; b=BYNVxm27YdfUqc9B6lOxVITN+2P3EXTxF+OC8/SsA68ADcbVjA9GajWr+j6d1QQIkI3OwF oO8nHSlpy6YF653MDlXXePxEbDdQhllmiZ9FwPH4mSfyJSvT9w3jPIhZZazqr63soBni4l ql0e6mWR1P1koFia5KXieY7+CwdSgIV6NEw/fwQ2yvcwgeMnCI2kQiGG2SpiVTywlVTsNS Fsh4COSFyHU9otN5CxZ6ZtWSVWB8vd66Iy/L6pPnNYl1ukbiMPpFwKVa8X277hhKqw77r4 pLTOiC76s3YtcTmRJPFm/XNDOnTqavvlSm63QsxhHk+1QtOvRp+LOAly6UJ28A== 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=1770874004; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=+NU5zqQK0JX3zFxT7jcgL97n4wqN+WA7LCSzdXRqtaQ=; b=AmUje8rwuEm1s8HgiWDpBFHJCDicRwXrW8iv+6yLdoDh8LQYGAkWY/kl6rjYHQ5wrZe4AN BnupLPQixxcy2R9+JvDv6NTg5AycGEDKJjpzeVY3RcjHai/ksoyc56k28A41VsisMEwa61 w1iqS9i3fHOw/Ml6z4J9RQPNHR1tQDhMeqmMQ3mK9Q1vQOmqFBPPcruW8x383aK8OAw4+J Ew1sIHdUs4/WFQZ2HCf7bMVrPTL9UxYZAnLxckxee8QXBQMW6TeaCI5nli6Q2tSf2URHMl SKRDCwTLhP5mivN7DzvwzvLs8o4PdGKOve8te17kGufUAMDDE+Be+NZ4+2cDZg== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fBP1J1y3rz6bV for ; Thu, 12 Feb 2026 05:26:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 26f97 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 12 Feb 2026 05:26:44 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Alexander Ziaee Subject: git: c92c3852a974 - stable/14 - bhyve.8: Correct description for -c flag, tag spdx 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: c92c3852a9741a04d84a205eb457dd2af6b4a203 Auto-Submitted: auto-generated Date: Thu, 12 Feb 2026 05:26:44 +0000 Message-Id: <698d6494.26f97.47fc5e6c@gitrepo.freebsd.org> The branch stable/14 has been updated by ziaee: URL: https://cgit.FreeBSD.org/src/commit/?id=c92c3852a9741a04d84a205eb457dd2af6b4a203 commit c92c3852a9741a04d84a205eb457dd2af6b4a203 Author: Alexander Ziaee AuthorDate: 2025-10-30 15:06:30 +0000 Commit: Alexander Ziaee CommitDate: 2026-02-12 05:26:08 +0000 bhyve.8: Correct description for -c flag, tag spdx The examples only show the usage of `-c `, as did the flag description, however the -c flag supports more complex cpu topology specifiers. These were documented correctly in SYNOPSIS, add them to the body of the DESCRIPTION as well. Someone could go further and do and example with using them. MFC after: 3 days Event: OpenZFS Developer Summit '25 Reported by: Levi Worley (cherry picked from commit 205af037e302fbd50dabc485a89e2222cd063b9e) --- usr.sbin/bhyve/bhyve.8 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/usr.sbin/bhyve/bhyve.8 b/usr.sbin/bhyve/bhyve.8 index 48735c22e320..124948de3761 100644 --- a/usr.sbin/bhyve/bhyve.8 +++ b/usr.sbin/bhyve/bhyve.8 @@ -1,3 +1,6 @@ +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" .\" Copyright (c) 2013 Peter Grehan .\" All rights reserved. .\" @@ -121,7 +124,7 @@ The xAPIC mode is the default setting so this option is redundant. It will be deprecated in a future version. .It Fl C Include guest memory in core file. -.It Fl c Op Ar setting ... +.It Fl c Oo Oo Cm cpus= Oc Ns Ar numcpus Oc Ns Oo Cm ,sockets= Ns Ar n Oc Ns Oo Cm ,cores= Ns Ar n Oc Ns Oo Cm ,threads= Ns Ar n Oc Number of guest virtual CPUs and/or the CPU topology. The default value for each of From nobody Thu Feb 12 14:16: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 4fBcmK2VGsz6Rh9b for ; Thu, 12 Feb 2026 14:16:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fBcmK1jB3z3rNY for ; Thu, 12 Feb 2026 14:16:17 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770905777; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dfapKCPeL8PPGQGtlJgYYTJVnOKgnA2C8/Qcb+GYF/0=; b=ail+4CIPksIWHJMbe13S6r9LtktPD92TQhRjp8Hux08hHX/xpT08elNUY2fQKiJplBSwNQ 9BSReaLWie8w44HSJC8oh0F9/4RtShiT7h3P4IldWKg1LBPjTxH86Aa1McaqPCRfEN4lpq UuswCLfl8Ed7b4uDpn/5fZpZ5bkq6QJw51bEwSqwlSnkqQY7n9agKoiugkwWQGV1nUHFGX uFXyCO127ItNtmoAuRr3E+KsK8bbTcbktBPYmQ84GeLw2zdhXaXGApGVWJmW96J27YIeqM oRHZI/5oUUOpcbAtQqi2j8MKorNDp73dwwMJTIEPg3gH2zvJ+CqV0Y1zfFpbYw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770905777; a=rsa-sha256; cv=none; b=YvCROL+Um2afRtmKPhMesmrQI+VqMuWlDg0lCmYw+Jf6Lc8a5PuPHZvs3J+h/7D4xJX9/Y BNTENXDdaI9wJ8pXRbxvC4jiwIMxChOM6pG+9zbFRLcF5GkMraLXlEWQ+Kbm33zctcaina ujxDfK+6vQslwTF43pgSMAwdCXPNSbV6NRc3vi+yMPafHtR0dhowz6fR0YlH1Cl9ZjTrEb UXISMsvJhjeeK2EK5yhFukhpCdUmd9fXqwTvaF/nA8dzhOqWMSpQVLJRhXP8JeVsgw0EWz rSjPK6YMsqP/H+T9UhbzD5W334xEBk55mE9hG6whkO5kp/wPxbqmi4CYh8Aorg== 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=1770905777; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=dfapKCPeL8PPGQGtlJgYYTJVnOKgnA2C8/Qcb+GYF/0=; b=eAAubyRbsXftfI56hov6kphCTojYMt8z2oBE5OJfdSyhrkHDz8tU4Fv3JCFDgq9qoIvYSW bNK5xySlywuGrTJcoeTkRtIqwGe/EQqzJEJVKW4/fF0v5gmTbO5zuuu1mvTHxI/lhOl01b VRmq5Zx7OJjNRnAKMfdtbtkLqOCi8z9mSvvkMl+K3WIvqQM30qH5cd9u+o32I4+7qT6aay XpJb7duWurjRpE1Z0ELdHqPizzduNL6NshPRZdwPEQ09Ra5JK0wrjN3ijaavImtxLO5OuJ JrMwLg2hnqVSeagsJD9I5voDqXB1ljGu4GYQK1FgKBbamlEtMxM650MifVaFiw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fBcmK13rLzfxR for ; Thu, 12 Feb 2026 14:16:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3e71f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 12 Feb 2026 14:16:17 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kristof Provost Subject: git: ff2f3a6cc1b7 - stable/15 - pf: fix pcounters array 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: kp X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: ff2f3a6cc1b7625c1f8c01f1b35bb33e4e31a1a1 Auto-Submitted: auto-generated Date: Thu, 12 Feb 2026 14:16:17 +0000 Message-Id: <698de0b1.3e71f.6c7ff669@gitrepo.freebsd.org> The branch stable/15 has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=ff2f3a6cc1b7625c1f8c01f1b35bb33e4e31a1a1 commit ff2f3a6cc1b7625c1f8c01f1b35bb33e4e31a1a1 Author: Kristof Provost AuthorDate: 2025-12-21 10:27:19 +0000 Commit: Kristof Provost CommitDate: 2026-02-12 13:47:53 +0000 pf: fix pcounters array size It's a 2 * 2 * 2, not 2 * 2 * 3. We only use PF_DROP and PF_PASS, so two rows suffices. Sponsored by: Rubicon Communications, LLC ("Netgate") (cherry picked from commit 622d7fa18d33cd8c4e1195888068fe1fe7c631a1) --- sys/netpfil/pf/pf.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sys/netpfil/pf/pf.h b/sys/netpfil/pf/pf.h index 8edd5a5110a1..f8646b782fce 100644 --- a/sys/netpfil/pf/pf.h +++ b/sys/netpfil/pf/pf.h @@ -284,7 +284,7 @@ struct pf_status { uint64_t lcounters[LCNT_MAX]; uint64_t fcounters[FCNT_MAX]; uint64_t scounters[SCNT_MAX]; - uint64_t pcounters[2][2][3]; + uint64_t pcounters[2][2][2]; uint64_t bcounters[2][2]; uint32_t running; uint32_t states;